*DECK C$CVCS
          IDENT  C$CVCS 
          TITLE  C$CVCS - CONVERT PACKED COLLATING SEQ TO UNPACKED
  
          MACHINE  ANY,I
          COMMENT  CONVERT COLLATING SEQUENCES
          SST 
  
 C.CVCS   SPACE  4
**        C.CVCS - CONVERT 7-WORD PACKED WEIGHT TABLES TO 64-WORD 
*                UNPACKED WEIGHT TABLES 
* 
*         CALLING SEQ:  
*         SX1    30/SEQ NR,30/64-WORD BLOCK ADDR
*         SB7    ADDR OF USER DEFINED 7-WORD TABLE IF SEQ =1
*                            ELSE 0 
*         RJ     =XC.CVCS 
* 
*                B7 IS REQUIRED ONLY FOR TYPE 1 (USER SPECIFIED)
*                            SEQUENCES.  ALL OTHER TABLES ARE CONTAINED 
*                            HERE.
* 
*                SEQ NRS MAY BE:  
*                1           USER DEFINED 
*                2           STANDARD-1 (ASCII-64)
*                3           NATIVE 
*                4           CDC-63    (NOT IMPLEMENTED)
*                5           CDC-64 
*                6           ASCII-63  (NOT IMPLEMENTED)
*                7           ASCII-64 
*                8           UNIVAC 
*                9           EBCDIC 
* 
* 
*         USES: 
*                X  - 1 2 - - - 6 - 
*                A  - 1 - - - - 6 - 
*                B  - - - 3 4 5 6 7    EXPECTS B1=1 
* 
*         ENTRY POINT:  
* 
          ENTRY  C.CVCS 
  
*         EXTERNAL REFS:  
* 
*         NONE
* 
          LIST   F
  
 CVCMSV   BSSZ   1           REGISTER SAVE AREA 
 C.CVEX   SA2    CVCMSV      RESTORE A2/A5
          SA5    X2 
          AX2    18D
          SA2    X2 
 C.CVCS   DATA   0
          SB3    X1          SAVE TABLE ADDR
          LX1    30 
          SB4    X1-1        GET TYPE NR - 1
          JP     B4+CVCS1 
 CVCS1    EQ     CVCS2       1
+         SB7    STD1        2
          EQ     CVCS2
+         SB7    NATIVE      3
          EQ     CVCS2
+         EQ     CVCSERR     4 -BAD 
+         SB7    CDC64       5
          EQ     CVCS2
+         EQ     CVCSERR     6- BAD 
+         SB7    ASCII64     7
          EQ     CVCS2
+         SB7    UNIVAC      8
          EQ     CVCS2
+         SB7    EBCDIC      9
  
 CVCS2    SX6    B7          SAVE TABLE POINTER AND A-REGS
          LX6    18D
          SX2    A2 
          BX6    X6+X2
          LX6    18D
          SX2    A5+0 
          BX6    X6+X2
          SA6    CVCMSV      SAVE B7/A2/A5
          SB4    B3+8        LIMIT
          SX6    B0 
          SA1    B7 
          SB6    60          SHIFT COUNT
          SB7    8
          SB5    12 
 CVCS2.1  SA2    =XC.MASK+B7
          BX5    X2*X1
          LX5    X5,B6
          BX6    X6+X5
          BX1    -X2*X1      REMAIN CHARS 
          SB6    B6-B5
          SA6    B3 
          LX6    X1,B6
          SB3    B3+B1
          SA1    A1+1 
          SB7    B7-2 
          NZ     B7,CVCS2.2 
          SB7    8
          SA6    B3 
          SB6    60 
          SB3    B3+B1
          SX6    B0 
 CVCS2.2  LT     B3,B4,CVCS2.1
          SB4    B4+64-8     SET TO END OF HYBRID TABLE 
 CVCS2.3  SX6    B0 
          SA6    B3 
          SB3    B3+1 
          LT     B3,B4,CVCS2.3   ZERO OUT REMAINDER OF TABLE
          SB3    B4-64-1     BACK TO BEGIN - 1 OF TABLE 
          SA5    CVCMSV 
          AX5    36D
          SB7    X5          RESTORE TABLE POINTER
          SB4    10 
          SA1    B7 
          SB5    B4 
          SB6    64 
          SX2    77B
  
 CVCS3    LX1    6           GET NEXT CHAR
          SB5    B5-1 
          BX6    X1*X2       STRIP CHAR OFF 
          SB3    B3+1 
          SA5    B3 
          BX6    X6+X5       ADD PREVIOUS CONTENTS
          SA6    B3+0 
          NZ     B5,CVCS3    LOOP TILL WORD GONE
          SB6    B6-10
          LT     B6,B4,CVCS4 LAST WORD
          SB5    B4 
          SA1    A1+B1       GET NEXT WORD
          EQ     CVCS3
  
 CVCS4    ZR     B6,C.CVEX   DONE 
          SA1    A1+B1
          SB5    B6          LAST 4 CHARS 
          SB6    10 
          EQ     CVCS3
 CVCSERR  EQ     *+400000B   ***TEMP*** 
 TABLES   EJECT 
**        BELOW ARE THE STANDARD SEQUENCES AVAILABLE.  THESE ARE
*                7-WORD PACKED TABLES AND MUST BE UNPACKED BEFORE USE.
* 
 C        IFEQ   OP.CH63,OP.NO         64 CHARS 
 CDC64    DATA   65313233343536374041B
 C        ELSE                         63 CHARS 
 CDC64    DATA   02313233343536374041B
 C        ENDIF 
          DATA   43444546475051525355B
          DATA   56576061626364666770B
          DATA   71727374757677172221B
          DATA   23251520260024140503B
 C        IFEQ   OP.CH63,OP.NO
          DATA   54022704420607103011B
 C        ELSE
          DATA   54652704420607103011B
 C        ENDIF 
          DATA   01121316000000000000B
  
  
 C        IFEQ   OP.CH63,OP.NO         64 CHARS 
 ASCII64  DATA   32414243444546475051B
 C        ELSE                         63 CHARS 
 ASCII64  DATA   05414243444546475051B
 C        ENDIF 
          DATA   52535455565760616263B
          DATA   64656667707172202122B
          DATA   23242526273031131512B
          DATA   17101104350014160373B
 C        IFEQ   OP.CH63,OP.NO
          DATA   75050277010607373436B
 C        ELSE
          DATA   75320277010607373436B
 C        ENDIF 
          DATA   40747633000000000000B
  
  
          ENTRY  C.UNICS
 C.UNICS  BSS    0
 UNIVAC   DATA   46060710111213141516B
          DATA   17202122232425262730B
          DATA   31323334353637606162B
          DATA   63646566677071424150B
          DATA   74514047440556755700B
          DATA   77457252557602735404B
          DATA   53014303000000000000B
  
  
          ENTRY  C.EBCCS
 C.EBCCS  BSS    0
 EBCDIC   DATA   23323334353637404142B
          DATA   44454647505152535456B
          DATA   57606162636465666770B
          DATA   71727374757677041410B
          DATA   15031107270016012431B
          DATA   43173020050626220221B
          DATA   25551312000000000000B
  
  
 STD1     EQU    ASCII64
  
 A        IFEQ   OP.COLSQ,OP.ASCII
 NATIVE   EQU    ASCII64
 A        ELSE
 NATIVE   EQU    CDC64
 A        ENDIF 
          END 
