*DECK CON6X 
          IDENT  T8.C6. 
 CON6..   TITLE  CON6.. - 6-BIT DESTINATION CONVERSION ROUTINES         059280
*                                                                       059290
**    CON6.. - A SERIES OF ROUTINES TO PERFORM NUMERIC CONVERSIONS
*        TO INTERNAL (6-BIT) FORM                                       059310
*                                                                       059320
*         INPUT  -  B1 = 1                                              059330
*                   X1 = DESTINATION POINTER                            059340
*                   B5 = RETURN ADDRESS                                 059350
*                                                                       059360
*         OUTPUT -  NONE IN REGISTERS                                   059370
*                                                                       059380
*         PRESERVED  --, --, --, --, --, --, --, --                     059390
*                    A0, --, --, --, --, --, --, --                     059400
*                        B1, --, --, --, --, --, --                     059410
*                                                                       059420
*         TEMPORARY CELLS USED..                                        059430
*                                                                       059440
*                T.NUM,+1,+2    SOURCE, A TRIPLE PRECISION NUMBER       059450
*                T.TEMP1     TEMPORARY                                  059460
*                T.TEMP2     TEMPORARY                                  059470
*                                                                       059480
*         NOTES..   THE ROUTINES THAT FOLLOW ARE NAMED -CON6..Q-,       059490
*                 WHERE -Q- IS A VALID DESTINATION TYPE FOR 6-BIT       059500
*                 FIELDS (B,X,A,C,I,U,E,D,S,N,Z).                       059510
*                                                                       059520
          SPACE  1
*CALL COM2
          SPACE  4                                                      059540
*                                                                       059550
* BIT FIELDS                                                            059560
*                                                                       059570
 CON6..B  SB4    B0          FLAG ONES COMPLEMENT                       059580
          EQ     CONA..B                                                059590
*                                                                       059600
          SPACE  2                                                      059610
*                                                                       059620
* X,A,C  FIELDS                                                         059630
*                                                                       059640
 CON6..A  SX6    SIZE.A                                                 059650
          EQ     CONA..A                                                059660
*                                                                       059670
 CON6..C  SX6    SIZE.C                                                 059680
          EQ     CONA..C                                                059690
*                                                                       059700
 CON6..X  SX6    SIZE.X                                                 059710
          SB7    CN6.1                                                  059720
          EQ     CONA..X                                                059730
*                                                                       059740
 CN6.1    SB7    CN6.2       CONVERTED NUMBER NOW IN T.STRING           059750
          SX6    SPACE.X                                                059760
          EQ     CONA.BL     PRE FILL BLANKS                            059770
 CN6.2    BX2    X1                                                     059780
          AX2    36          REMAINING FIELD SIZE TO STORE              059790
          SB6    B5                                                     059800
          EQ     MVBITS      JUST MOVE, NO TRANSLATION NECESSARY        059810
          SPACE  2                                                      059820
*                                                                       059830
* I, U, E, D  FIELDS                                                    059840
*                                                                       059850
 CON6..I  SB6    CN6.3       I-TYPE                                     059860
          EQ     CONA.RN     ROUND VALUE TO INTEGER                     059870
 CN6.3    OR     X1,CN6.E1   INFINITE                                   059880
          ID     X1,CN6.E2   INDEFINITE 
          UX6    X1,B2
          ZR     X1,CN6.3A                                              059910
          SB3    12                                                     059920
          GE     B2,B3,CN6.E3  TOO LARGE                                059930
          SX0    B0          BITS OK                                    059940
          PX0    X0,B3       20140000000000000000B
          DX4    X1+X0       DE-NORMALIZE                               059950
          FX6    X1+X0                                                  059960
          MX3    12                                                     059970
          FX5    X4+X2                                                  059980
          BX6    -X3*X6      GET 60 BITS                                059990
          BX5    -X3*X5                                                 0001  10
          LX6    12                                                     060000
          AX5    60-12-12                                               060010
          BX6    X6+X5                                                  060020
 CN6.3A   SA1    T.TEMP1                                                060030
          SX2    60                                                     060040
          SB6    B5                                                     060050
          EQ     STBITS                                                 060060
*                                                                       060070
          SPACE  2                                                      060080
*                                                                       060090
 CON6..U  SB6    CN6.4       U-TYPE                                     060100
          EQ     CONA.RN     ROUND VALUE TO INTEGER                     060110
 CN6.4    BX6    X1                                                     060120
          SA1    T.TEMP1                                                060130
          SB6    B5                                                     060140
          SX2    60                                                     060150
          OR     X6,STBITS                                              060160
          ID     X6,STBITS
          ZR     X6,STBITS                                              060180
          UX7    X6,B4
          GE     B4,B0,STBITS                                           060200
          LX6    X7,B4                                                  060210
          PX6    X6,B0                                                  060220
          EQ     STBITS                                                 060230
*                                                                       060240
          SPACE  2                                                      060250
*                                                                       060260
 CON6..E  SA3    T.NUM       E-TYPE 
          SX2    60                                                     060280
          SA4    A3+B1                                                  060290
          SB6    B5                                                     060300
          RX6    X3+X4                                                  060310
          EQ     STBITS                                                 060320
*                                                                       060330
          SPACE  2                                                      060340
*                                                                       060350
 CON6..D  SA3    T.NUM       D-TYPE 
          SX2    60                                                     060370
          SA4    A3+B1                                                  060380
          SA5    A4+B1                                                  060390
          SB6    CN6.5                                                  060400
          RX5    X4+X5                                                  060410
          FX6    X3+X5                                                  060420
          DX5    X3+X5                                                  060430
          EQ     STBITS                                                 060440
 CN6.5    BX6    X5                                                     060450
          SB6    B5 
          EQ     STBITS                                                 060460
*                                                                       060470
          SPACE  2                                                      060480
*                                                                       060490
* S, N, Z  FIELDS                                                       060500
*                                                                       060510
 CON6..S  SB7    CN6.9       S-TYPE 
          EQ     CN6.6                                                  060530
*                                                                       060540
 CON6..N  SB7    CN6.8       N-TYPE                                     060550
          EQ     CN6.6                                                  060560
*                                                                       060570
 CON6..Z  SB7    CN6.7       Z TYPE 
*                                                                       060590
 CN6.6    SA2    T.NUM                                                  060600
          BX7    X1                                                     060610
          SX6    B1          FORCE INTEGER                              060620
          OR     X2,CN6.E4   INFINITE                                   060630
          ID     X2,CN6.E5   INDEFINITE 
          SA7    T.TEMP1                                                060650
          SA6    T.I2                                                   060660
          EQ     ECON        CONVERT NUMBER                             060670
*                                                                       060680
*                                                                       060690
 CN6.7    SA1    T.TEMP1     Z, CK SGN + BLANK FILL 
          SA4    T.MSG                                                  060710
          SA5    T.NBL                                                  060720
          ZR     X4,CN6.10                                              060730
          SX4    B1                                                     060740
          IX5    X5-X4                                                  060750
 CN6.10   BX7    X5                                                     060760
          SA7    A5          T.NBL UPDATED
          BX7    X1 
          NG     X5,CN6.E6   JP FIELD OVERFLOW                          060780
          ZR     X5,CN6.11   JP NO BLANK FILL                           060790
          SX6    SIZE.X 
          SA6    T.TEMP2
          SX6    SPACE.X                                                060810
          SB7    CN6.11                                                 060820
          EQ     CONA.BL     FILL LEADING BLANKS                        060830
*                                                                       060840
 CN6.11   SA5    T.MSG                                                  060850
          ZR     X5,CN6.12   JP +                                       060860
          SX2    SIZE.X      SET - SIGN                                 060870
          SX6    1R-                                                    060880
          SB6    CN6.12                                                 060890
          BX1    X7          DESTINATION PTR TO X1
          EQ     STBITS                                                 060900
*                                                                       060910
 CN6.12   SX1    T.STRING    FILL VALUE PART OF FIELD                   060920
          BX2    X7                                                     060930
          AX2    36          SIZE                                       060940
          LX2    36                                                     060950
          BX1    X1+X2                                                  060960
          AX2    36                                                     060970
          SB6    B5                                                     060980
          EQ     MVBITS                                                 060990
*                                                                       061000
*                                                                       061010
 CN6.8    SX7    B0          N,FILL MAGNITUDE ONLY                      061020
          EQ     CN6.13                                                 061030
*                                                                       061040
 CN6.9    SX7    6           S, FILL MAGNITUDE + SIGN OVERPUNCH 
*                                                                       061060
 CN6.13   SA1    T.TEMP1                                                061070
          SA7    T.I2        N-S FLAG 
          SA5    T.NBL       NUMBER OF LEADING ZEROES NEEDED            061080
          SX6    SIZE.X 
          SA6    T.TEMP2
          SX6    ZERO.X                                                 061100
          LX7    36 
          IX7    X1-X7       REMOVE SIGN FROM SIZE
          SB7    CN6.14                                                 061110
          SA7    A1                                                     061120
          NZ     X5,CONA.BL                                             061130
 CN6.14   SX1    T.STRING    MOVE THE DATA VALUE
          BX2    X7                                                     061150
          AX2    36                                                     061160
          LX2    36                                                     061170
          BX1    X1+X2                                                  061180
          AX2    36                                                     061200
          SB6    CN6.15 
          NG     X2,CN6.18   DONE (FIELD WIDTH 0) 
          NZ     X2,MVBITS                                              061240
 CN6.15   SA3    T.I2        N-S FLAG 
          ZR     X3,CN6.18    DONE (N)
          SB6    CN6.16 
          SX3    SIZE.X      SIZE OF SIGNED CHR 
          LX3    36 
          BX1    X1+X3       UPDATED PTRS--ADD TOSIZE 
          IX7    X7+X3
          SA7    T.I2        SAVE DESTIN PTR
          EQ     NCHAR       LAST CHARACTER, TO BE SIGNED               061280
 CN6.16   SA3    T.MSG       SIGN 
          SB4    X6-ZERO.X                                              061300
          ZR     X3,CN6.17    JP +
          SB4    B4+10                                                  061320
 CN6.17   SA5    CN6.SGN+B4  GET PROPER CHARACTER 
          SX2    SIZE.X                                                 061340
          SB6    B5                                                     061350
          BX6    X5                                                     061360
          SA1    T.I2        DESTIN PTR 
          EQ     STBITS                                                 061370
*                                                                       061380
 CN6.18   JP     B5          DONE 
*                                                                       061400
          SPACE  2                                                      061410
*                                                                       061420
* DATA AREA - OVERPUNCHED SIGN CODES, + THEN -                          061430
*                                                                       061440
 CN6.SGN  DATA   72B,1RA,1RB,1RC,1RD,1RE,1RF,1RG,1RH,1RI    +           061450
          DATA   66B,1RJ,1RK,1RL,1RM,1RN,1RO,1RP,1RQ,1RR    -           061460
          SPACE  2
**    ERROR ACTIONS 
*                                                                       061490
 CN6.E1   SA2    CN6.M1      INFINITE VALUE FOR INTEGER FIELD           061500
          EQ     ERR.CON                                                061510
 CN6.E2   SA2    CN6.M2      INDEFINITE VALUE FOR INTEGER FIELD         061520
          EQ     ERR.CON                                                061530
 CN6.E3   SA2    CN6.M3      VALUE TOO LARGE FOR FIELD                  061540
          EQ     ERR.CON                                                061550
 CN6.E4   EQU    CN6.E1      SAME AS E1 FOR (S,N,Z)                     061560
 CN6.E5   EQU    CN6.E2      SAME AS E2 FOR (S,N,Z)                     061570
 CN6.E6   EQU    CN6.E3      SAME AS E3 FOR (S,N,Z)                     061580
****
*                                                                       061600
 CN6.M1   VFD    12/0,18/E.CON,12/0,18/*+1
          DATA    C/INFINITE VALUE FOR INTEGER DESTINATION FIELD/       061620
 CN6.M2   VFD    12/0,18/E.CON,12/0,18/*+1
          DATA    C/INDEFINITE VALUE FOR INTEGER DESTINATION FIELD/     061640
 CN6.M3   VFD    12/0,18/E.CON,12/0,18/*+1
          DATA    C/VALUE TOO LARGE FOR FIELD WIDTH/                    061660
****
          END 
