*COMDECK /GETDW/
          ENTRY     GET$W 
 FWRD.RM  MICRO     1,,/36B/
 XREG.RM  MICRO     1,, 0 
 GET$W    TITLE     GET$W 
 GET$W    CAP.RM
          F.RM      BCC            FIND BUFFER CHAR COUNT 
          ZR        X1,WBOUND      IF ZERO, SKIP
          SB6       WBOUND
          SX1       X1-10          ELSE, CALC REMAINING CHAR IN OUT 
          SB3       B3+B1          INCREMENT OUT
          IX2       X2+X1          DECREMENT AVAIL CHAR BY REM CHAR 
          BX3       X1
          DEC.RM    BL,X3          INCREMENT BL BY REM CHAR 
          SET.RM    BCC,0          SET BUF CHAR COUNT TO AERO 
          NZ        X2,WBOUND      IF AVAIL CHAR COUNT NZ, SKIP 
 TRYAGN   BSS       0 
          SET.RM    ISD,0 
          EQ        =XGTMR$SQ      GET MORE DATA
          SPACE     4,8 
 WBOUND   BSS       0 
          SA3       B3             PICK UP W-CONTROL WORD 
          CX4       X3             COUNT THE NUMBER OF BITS IN W C-WORD 
          SB3       B3+B1          INCREMENT OUT
          LX4       59
          SX6       10
          IX2       X2-X6          REDUCE AVAIL CHARACTERS BY 10
          NG        X2,TRYAGN 
          INC.RM    BL,X6          INCREMENT BL FOR W CONTROL WORD
          PL        X4,=XWPAR.SQ   IF EVEN, W PARITY ERROR
          SX6       X3+B1 
          SET.RM    PRL,X6,,,TRUNC    SAVE RL FOR SKBL
          LX4       X3,B1          POSITION FLAG BIT                    000100
          PL        X4,NOTFLG      IF NOT SET, SKIP                     000110
          LX4       1 
          SET.RM    PAE,0 
          SX2       #EOF# 
          PL        X4,=XDXIT$SQ   IF EOP 
          SX2       #EOS# 
          EQ        =XDXIT$SQ      GO TAKE DATA EXIT
          SPACE     1 
 NOTFLG   BSS       0 
          LX4       1              POSITION DEL BIT                     000150
          PL        X4,NOTDEL      IF NOT SET, SKIP                     000160
          SX4       X3
          ZR        X4,TRYAGN 
          ON.RM     GPS,GET 
          F.RM      SKP 
          SX6       X1+B1          INC SKP BY 1 
          MI        X6,GET           IF NOT EXCEED MAXIMIUM CT
          SET.RM    SKP,X6
 GET      BSS       0 
          SET.RM    DEL,1,         ELSE, SET DEL BIT                    000170
 NOTDEL   BSS       0                                                   000180
          BX1       X3             SAVE W-CONTROL WORD
          MX7       36                                                  000190
          SX5       10923 
          BX4       -X7*X3         PICK UP RECORD LENGTH
          IX5       X5*X4 
          SX3       X4             PICK UP WRD COUNT
          IX7       X3+X3          MULTIPLY BY TEN                      000220
          LX3       3                                                   000230
          IX7       X7+X3                                               000240
          AX5       18+16          /6 
          IX4       X7-X5 
          NG        X4,=XWPAR.SQ
          BX5       X4             CURRENT REC LEN
          LX1       59-43 
          PL        X1,SET         IF NEW RECORD, SKIP
          F.RM      RRL,3 
          IX5       X4+X3          ELSE, ADD CURRENT TO OLD RL
 SET      BSS       0 
          SET.RM    RRL,X5,,3      SAVE NEW RECORD LENGTH 
          LX3       X1,B1 
          BX1       X3-X1 
          MX3       1 
          BX1       X3*X1 
          LX3       X1,B1 
          SET.RM    CRF,X3         SET CONTINUATION RECORD FLAG 
          ZR        X4,ZERORL      NO DATA TO MOVE-CHECK W-CONT REC FLG 
          NZ        X2,=XRMU$SQ 
          SB6       =XRMU$SQ
          EQ        =XGTMR$SQ      GET MORE DATA
          SPACE     4,8 
 ZERORL   BSS       0 
          ZR        X3,=XGXIT$SQ   EXIT IF NOT W-CONTINUATION RECORD
          EQ        =XAMAC$SQ      W-CONT REC, GO PROCESS NEXT PIECE
          SPACE     1 
 WPAR.SQ  BSS       0 
          SET.RM    OUT,B3
          SX6       130B+1S17      W PARITY ERROR 
          SB5       * 
          EQ        =XERR$RM
* END /GETDW/ 
