*DECK C$BD2BD 
          IDENT  C$BD2BD
          TITLE  C$BD2BD - MOVE BOOLEAN DISPLAY TO BOOLEAN DISPLAY
**        C$BD2BD - MOVE BOOLEAN DISPLAY TO BOOLEAN DISPLAY 
* 
*         INPUT 
*                B3 - ADDRESS DESTINATION 
*                B4 - OFFSET DESTINATION
*                B5 - ADDRESS SOURCE
*                B6 - OFFSET SOURCE 
*                X0 - JUSTIFIED FLAG
*                X1 - BYTE LENGTH SOURCE
*                X2 - BYTE LENGTH DESTINATION 
* 
          ENTRY  C.BD2BD
 C.BD2BD  DATA   0
          SX4    314632B
          SX3    B6 
          IX4    X4*X3
          AX4    20 
          SB5    B5+X4       NEW SOURCE ADDRESS 
          IX5    X4+X4
          LX4    3
          IX5    X4+X5
          IX6    X3-X5       SOURCE BCP 
          SA6    SRCOFFS
          SX7    B5 
          SA7    SRCADDR
          SX4    314632B
          SX3    B4 
          IX4    X4*X3
          AX4    20 
          SB3    B3+X4       NEW DESTINATION ADDRESS
          IX5    X4+X4
          LX4    3
          IX5    X5+X4
          IX6    X3-X5       BCP DESTINATION
          SA6    DSTOFFS
          SX7    B3 
          SA7    DSTADDR
          IX3    X2-X1
          BX7    X1 
          PL     X3,BD2BD1   DESTINATION LONGER 
          MX3    0
          BX7    X2 
 BD2BD1   SA7    MOVECNT     NUMBER OF SOURCE CHARACTERS TO MOVE
          BX6    X3 
          SA6    ZEROCNT
          IX3    X2-X1
          ZR     X3,BD2BD6   EQUAL LENGTHS
          ZR     X0,BD2BD4   NOT JUSTIFIED RIGHT
          PL     X3,BD2BD2   LEFT FILL
*      LEFT TRUNCATION, ADJUST SOURCE OFFSET
          SA1    SRCOFFS
          SA2    SRCADDR
          SX4    314632B
          IX1    X1-X3       INCREMENT OFFSET 
          IX4    X1*X4
          AX4    20 
          IX7    X2+X4       NEW ADDRESS
          IX5    X4+X4
          LX4    3
          IX5    X4+X5
          IX6    X1-X5
          SA6    SRCOFFS
          SA7    SRCADDR
          EQ     BD2BD6 
          SPACE  3
*      RIGHT JUSTIFIED - LEFT FILL
 BD2BD2   SA1    DSTOFFS
          SA2    DSTADDR
          SB3    X2 
          SA3    ZEROCNT
          SB4    X3 
 BD2BD3   SA3    =XC.ZERO 
          BX6    X3 
          RJ     PUT10CH
          NZ     B4,BD2BD3
          SA1    DSTOFFS
          SA2    ZEROCNT
          IX1    X1+X2
          SX4    314632B
          IX4    X4*X1
          AX4    20 
          SA3    DSTADDR
          IX6    X3+X4       NEW ADDRESS
          SA6    A3 
          IX5    X4+X4
          LX4    3
          IX5    X4+X5
          IX6    X1-X5       NEW BCP
          SA6    DSTOFFS
          EQ     BD2BD6 
*      LEFT JUSTIFIED - RIGHT FILL
 BD2BD4   SA2    ZEROCNT
          ZR     X2,BD2BD6
          SA1    DSTOFFS
          SA2    MOVECNT
          IX1    X1+X2
          SX4    314632B
          IX4    X4*X1
          AX4    20 
          SA3    DSTADDR
          IX6    X4+X3
          SB3    X6 
          IX5    X4+X4
          LX4    3
          IX5    X4+X5
          IX1    X1-X5
          SA3    ZEROCNT
          SB4    X3 
 BD2BD5   SA4    C.ZEROS
          BX6    X4 
          RJ     PUT10CH
          NZ     B4,BD2BD5
          EQ     BD2BD6 
*      MOVE SOURCE TO DESTINATION 
 BD2BD6   SA1    SRCADDR
          SB3    X1 
          SA2    MOVECNT
          SB4    X2 
          SA1    SRCOFFS
          RJ     GET10CH
          SX7    B3 
          SA7    SRCADDR
          SA1    DSTOFFS
          SA2    DSTADDR
          SB3    X2 
          SA2    MOVECNT
          SB4    X2 
          RJ     PUT10CH
          ZR     B4,C.BD2BD 
          SX6    B3 
          SA6    DSTADDR
          SX7    B4 
          SA7    MOVECNT
          EQ     BD2BD6 
          SPACE  3
 DSTADDR  BSS    1
 DSTOFFS  BSS    1
 MOVECNT  BSS    1
 SRCADDR  BSS    1
 SRCOFFS  BSS    1
 ZEROCNT  BSS    1
*CALL CBPUT10C
*CALL CBGET10C
          END 
