*COMDECK /DCDTDSQ/
 .MD      IFNE      #BETA#,0
          F.RM      WSAD,2
          F.RM      WSAB,X5        0=SCM WSA, 1=LCM WSA 
 .MD      ELSE
          F.RM      WSA,2 
 .MD      ENDIF 
          F.RM      LP,1           FIND BCP OF RECORD DES. PARM 
          PX.3      X1             DIVID CHARACTER COUNT
          SA4       TENTH          BY TEN 
          FX.3      X.3*X4         TO GET 
          UX7       X3             WORD COUTN 
          IX4       X7+X7          MULTIPLY WORD COUNT
          IX1       X1-X4          BY TEN 
          LX4       2              TO GET REMAINING 
          IX1       X1-X4          CHARACTER COUNT
          LX4       B1,X1          *2 
          IX1       X4+X1          *3 
          LX4       B1,X1          *6 
          SB4       X4-1           BITS - 1 
          MX4       1              SET UP MASK TO REMOVE
          IX2       X2+X7 
 .MD      IFNE      #BETA#,0
          ZR        X5,SCM1        IF WSA IN SCM
          RX1       X2             GET CONTENT OF COUNT FIELD FROM LCM
          EQ        NXT1
          SPACE     1 
 SCM1     BSS       0 
 .MD      ENDIF 
          SA1       X2             GET CONTENT OF COUNT FIELD FROM SCM
 .MD      IFNE      #BETA#,0
 NXT1     BSS       0 
 .MD      ENDIF 
          AX4       B.4,X4         LEADING GARBAGE
          F.RM      LL,3           FIND LENGTH OF COUNT FIELD 
          BX4       -X4*X1         REMOVE LEADING GARBAGE 
          LX1       B1,X.3         MULTIPLY 
          SB.4      B.4-59         DETERMINE NO. OF BITS IN WORD
          LX.3      2              BY SIX 
          IX1       X1+X.3         TO GET 
          SB.2      X1             BITS 
          SB.4      -B.4
          EQ        B.2,B.4,CNV.DB IF EQUAL LNG.OF CNT FLD CONVERT TO BI
          GE        B.2,B.4,TJNXWD ELSE IF GREATER CONVERT NEXT WORD
          SB.4      B.4-B.2        ELSE SHIFT OFF GARBAGE 
          AX4       B.4,X4         ON RIGHT 
          PL        X4,CNV.DB 
          SB4       B4-1
          MX3       1 
          AX3       B4,X3 
          BX4       -X3*X4
          EQ        =XCNV.DB       GO CONVERT TO BINARY 
          SPACE     1 
 TJNXWD   BSS       0 
          SB4       B2-B4          REDUCE LENGTH BY AMOUNT IN FIRST WORD
          SX7       B1
          IX2       X2+X7          INCR TO NEXT WORD
 .MD      IFNE      #BETA#,0
          ZR        X5,SCM2        IF WSA IN SCM
          RX3       X2
          EQ        NXT2
          SPACE     1 
 SCM2     BSS       0 
 .MD      ENDIF 
          SA3       X2             PICK UP SECOND WORD FROM SCM 
 .MD      IFNE      #BETA#,0
 NXT2     BSS       0 
 .MD      ENDIF 
          LX4       B.4,X4         SHIFT FRST WRD BY NO BITS REMAINING
          LX.3      B.4,X.3        PUT REMAINING CHAR IN LOW END
          MX7       1 
          SB.4      B.4-59         SET UP MASK TO 
          LX7       B.4,X7
          BX.3      -X7*X.3        REMOVE GARBAGE 
          BX4       X4+X.3         OR INTO FIRST WORD 
          EQ        B4,B0,TJCHKT
 CNV.DB   BSS       0 
          OFF.RM    SOL,NOTSOL     LONG PADDING NOT POSSIBLE ON PRU 
          F.RM      PC             ONE PADDING CHARACTER
          BX3       X1
          LX1       6 
          BX3       X1+X3          TWO PADDING CHARACTERS 
          BX1       X3
          LX3       12
          BX1       X3+X1          FOUR PADDING CHARACTERS
          LX3       12
          MX7       1 
          SB4       B2-59 
          BX3       X1+X3          SIX PADDING CHARACTERS 
          LX7       X7,B4          MASK OF JUNK 
          BX3       -X7*X3         LL PADDING CHARACTERS
          BX7       X3-X4 
          ZR        X7,TJGPAD    IF COUNT ALL PADDING 
 NOTSOL   BSS       0 
          ON.RM     C1,TJCHKT 
          OFF.RM    SB,NOSIGN 
          MX3       6 
          LX3       6 
          BX1       X4*X3 
          SX1       X1-72B
          NZ        X1,NOZERO 
          SX1       37B 
          IX4       X4-X1 
          EQ        NOSIGN
          SPACE     1 
*                   SET POINTERS TO SKIP OVER PADDING 
 TJGPAD   BSS       0 
          F.RM      BLP,B3
          SET.RM    OUT,B3
          F.RM      STM,3 
          SET.RM    BL,X3          SET TO END OF BLOCK
          F.RM      MNR,3 
          SET.RM    BCC,0 
          EQ        =XGPAD$SQ      GO GET NEXT RECORD 
          SPACE     1 
 NOZERO   BSS       0                                                   AT25  11
          SX1       X1+72B-33B                                          AT25  12
          PL        X1,NOSIGN                                           AT25  13
          SX2       33B                                                 AT25  14
          IX4       X2+X4                                               AT25  15
 NOSIGN   SA3       BLANKS         PICK UP
          LX.3      1              WORD OF ZEROS
          MX1       1              SET UP MASK
          SB4       B2-59          CALCULATE MASK COUNT 
          LX1       B.4,X1         EXTEND MASK
          BX.3      -X1*X.3        MASK OFF EXTRA ZEROS 
          IX4       X4-X.3         SUBYRACT OFF ZEROS 
          SB.4      B.4-B1         CALC SHIFT COUNT TO
          AX7       B.4,X4         LEFT JUSTIFY DEC NUMBER
          SB.4      B.4+60         RESET BIT COUNT
          MX.3      54             SET CHAR MASK
 TJCNV1   EQ        B.4,B0,TJCHKT  IF BIT COUNT ZERO EXIT 
          LX7       6              SHIFT IN NEXT CHAR 
          BX4       -X.3*X7        MASK OFF CHAR
          SB.4      B.4-6          DECREMENT BIT COUNT
          ZR        X4,TJCNV1      IF CHAR ZERO CHECH NEXT CHAR 
          SX4       X4-22B         ELSE,
          ZR        X4,TJCNV1      IF CHAR BLANK CHECK NEXT CHAR
          SX4       X4+22B         ELSE,RESET CHAR
          EQ        B4,B0,TJCHKT   IF ONLY CHARACTER
 TJCNV2   BSS       0 
          LX7       6              SHIFT IN NEXT CHAR 
          IX1       X4+X4          MULTIPLY COUNT BY 10 
          LX4       3 
          IX1       X4+X1 
          BX4       -X3*X7         MASK OFF CHARACTER 
          SB4       B4-6           DECREMENT BIT COUNT
          IX4       X4+X1          ADD NEW DIGIT
          GT        B4,B0,TJCNV2   IF MORE, RETURN
 TJCHKT   BSS       0 
          SB2       #TT#
          F.RM      RT,3,B4 
          NE        B2,B4,TJSTCW   IF NOT T-TYPE SET EXIT 
          F.RM      TL,3           FIND LENGTH OF TRAILER 
          IX1       X4*X3          (NUM TRAILERS) * (LEN OF TRAILER)
          F.RM      HL,3
          IX4       X1+X3          ADD HEADER LENGTH
 TJSTCW   BSS       0 
* END /DCDTDSQ/ 
