COMCSCB 
COMMON
          CTEXT  COMCSCB - SET CHARACTERS IN BUFFER.
 SCB      SPACE  4,10 
          IF     -DEF,QUAL$,1 
          QUAL   COMCSCB
          BASE   D
*         COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 SCB      SPACE  4,10 
***       SCB - SET CHARACTERS IN BUFFER. 
*         W. B. CHAPIN.      79/01/22.
 SCB      SPACE  4,25 
***       SCB PACKS UP TO 10 CHARACTERS INTO A WORKING BUFFER.  THE 
*         CHARACTER DESTINATION AND NUMBER OF CHARACTERS ARE DETERMINED 
*         BY A LINE DEFINITION TABLE, *LDT*, WITH THE FOLLOWING LINE
*         ENTRY FORMAT. 
* 
*         VFD    12/WORD INDEX,6/CHARACTER INDEX,6/NUMBER OF CHAR.,36/
* 
*         THE ABOVE FORMAT IS REPEATED FOR EACH LINE ENTRY. 
*         THE *CFORM* MACRO CAN BE USED TO ESTABLISH THESE ENTRIES. 
* 
*         ENTRY  (B1) = 1.
*                (B3) = ADDRESS OF LINE ENTRY DESCRIPTOR IN *LDT*.
*                (B7) = FWA OF WORKING BUFFER.
*                (X6) = LEFT JUSTIFIED CHARACTER STRING TO BE PLACED. 
* 
*         EXIT   CHARACTERS FROM *X6* PLACED IN WORKING BUFFER. 
* 
*         USES   A - 1, 7.
*                X - 1, 2, 3, 4, 6, 7.
*                B - 2, 3, 4, 5.
* 
  
  
 SCB      SUBR               ENTRY/EXIT 
          SA1    B3          SET DESTINATION ADDRESS
          MX2    -12
          LX1    0-48+60
          BX2    -X2*X1 
          SB2    X2+B7
          LX1    0-42-0+48   SET DESTINATION CHARACTER INDEX
          MX2    -6 
          BX3    -X2*X1 
          SX4    6           CALCULATE CHARACTERS TO BE SHIFTED 
          SB5    X3 
          IX3    X3*X4
          SB3    X3 
          LX1    0-36-0+42   SET NUMBER OF CHARACTERS 
          BX4    -X2*X1 
          SB4    X4 
          MX2    -54
  
*         INITIALIZE FOR PLACEMENT OF CHARACTERS IN NEXT WORD.
  
          SA1    B2          CURRENT DESTINATION WORD 
 SCB1     ZR     B4,SCBX     IF ALL CHARACTERS PLACED 
  
*         POSITION CHARACTERS IN DESTINATION WORD FOR CHARACTER 
*         PLACEMENT.
  
          LX1    B3          POSITION CHARACTERS
  
*         PLACE CHARACTERS INTO CURRENT WORD. 
  
          SB3    9
 SCB2     BX1    -X2*X1      INSERT CHARACTER 
          BX7    X2*X6
          BX1    X1+X7
          SB4    B4-B1       COUNT CHARACTERS REMAINING 
          LX6    6           POSITION FOR NEXT SOURCE CHARACTER 
          ZR     B4,SCB3     IF ALL CHARACTERS PLACED 
  
*         CHECK FOR OVERFLOW INTO NEXT WORD.
  
          EQ     B3,B5,SCB3  IF CHARACTERS TO GO IN NEXT WORD 
          LX1    6           CONTINUE PLACEMENT IN CURRENT WORD 
          SB5    B5+B1       COUNT CHARACTER POSITION IN CURRENT WORD 
          EQ     SCB2        CONTINUE PLACING CHARACTERS
  
*         CHARACTERS OVERFLOW INTO NEXT WORD. 
  
 SCB3     SX4    6           REPOSITION CHARACTERS FOR DESTINATION
          SX3    B5 
          IX3    X3*X4
          SX4    60 
          IX4    X4-X3
          SB3    X4 
          LX7    X1,B3
  
*         PLACE WORD IN DESTINATION BUFFER. 
  
          SA7    A1 
          SA1    A1+B1       SET FOR NEXT DESTINATION WORD
          SB3    B0          SET FIRST CHARACTER POSITION 
          SB5    B0          FIRST CHARACTER POSITION 
          EQ     SCB1        CONTINUE PLACING CHARACTERS
          SPACE  4,10 
 QUAL$    IF     -DEF,QUAL$ 
          QUAL   *
 SCB      EQU    /COMCSCB/SCB 
 QUAL$    ENDIF 
          ENDX
