*DECK C$6TO12 
          IDENT  C$6TO12
          TITLE  C$6TO12 - TRANSLATE 6 BIT DISPLAY CODE TO 12 BIT 
  
          MACHINE   ANY,I 
          COMMENT   TRANSLATE 6 BIT TO 12 BIT 
          SST 
          B1=1
 C.6TO12  SPACE  5
**        CB6TO12 - TRANSLATE 6 BIT DISPLAY CODE TO 12 BIT ASCII/EBCDIC/
                                                           STANDARD-1 
* 
*         THIS ROUTINE PERFORMS TRANSLATIONS INTO A 12 BIT CODE THAT
*                RESULTS IN CARDS BEING PUNCHED CORRECTLY WHEN PUNCHED
*                AS ABSOLUTE BINARY...REGARDLESS OF SYSTEM CHAR CODES 
* 
*         EXPECTS A0 = FIT ADDR, B1=1 
* 
*         USES ALL REGISTERS EXCEPT A0 AND B5 
* 
*CALL IOMICROS
  
          ENTRY  C.6TO12
 C.6TO12  DATA   0
          SX6    B5 
          SA6    SAVB5
          FETCH  A0,RL,X2 
          FETCH  A0,RECA,X3 
          IX6    X2+X2       UP RL (ACCOUNT FOR *2 EXPANSION) 
          STORE  A0,RL=X6 
          SB7    X2+0        REC LENGTH..CHARS
          SX5    52429       =2'19/10 
          IX6    X5*X2
          AX6    19          GET RL IN WORDS
          SB4    5
          SX5    B4+B4       =10
          IX5    X5*X6
          SX7    0
          IX2    X2-X5       REM CHARS IN LAST WORD 
          ZR     X2,C6TO120 
          SX7    1
 C6TO120  IX6    X6+X7       ROUND UP IF REM CHARS
          SB3    X2 
          IX5    X3+X6       LAST WORD ADDR, SOURCE 
          LX6    1
          IX2    X3+X6       LWA - DESITNATION
          MX0    6
          SB6    X2-2 
          SB2    XTAB 
          SA5    X5-1        GET SOURCE 
          MX7    0
          SB7    B7-B3
          SX3    12 
          SX2    7777B
          ZR     B3,C6TO12A 
          SB7    B7+10
          EQ     C6TO121
 C6TO12A  SB3    10 
 C6TO121  LT     B4,B3,C6TO122
          SA4    =XC.MASK+B3
          BX5    X4*X5
          BX6    X4 
          SA4    =XC.BLANK
          BX4    -X6*X4 
          BX5    X4+X5
          SB3    B4 
 C6TO122  BX6    X5*X0
          LX6    6           GET 6 BIT CHAR 
          SX4    X6 
          AX4    2           DIVIDE BY 4 = WORD 
          SA1    B2+X4
          LX4    2
          IX6    X6-X4       EXTRACT CHAR NR
          SX6    X6+B1
          LX7    12 
          IX6    X6*X3       SHIFT COUNT
          SB5    X6 
          LX1    X1,B5
          BX6    X1*X2       EXTRACT 12 BIT CHAR
          BX7    X7+X6       .OR. INTO OUTPUT REG 
          SB3    B3-B1
          SB4    B4-B1
          LX5    6
          NZ     B4,C6TO122 
          SA7    B6 
          SB4    5
          MX7    0
          SB6    B6+B1
          EQ     B3,B4,C6TO122
          ZR     B3,C6TO124 
          SA4    =XC.MASK+B3
          BX5    X4*X5
          BX6    X4 
          SA4    =XC.BLANK
          BX4    -X6*X4 
          BX5    X4+X5
          SB3    B4 
          EQ     C6TO122
  
 C6TO124  SB6    B6-4 
          SA5    A5-B1
          SB3    10 
          SB7    B7-B3
          NZ     B7,C6TO122 
          SA4    SAVB5
          SB5    X4 
          EQ     C.6TO12     XIT
  
 SAVB5    BSS    1
  
          PURGMAC   CODE
 CODE     MACRO  NR 
          VFD    12/NR_B
          IFEQ   *P,12,1
          VFD    12/0 
          ENDM
  
 XTAB     CODE   0202        00,:,8-2 
          CODE   4400        01,A,12-1
          CODE   4200        02,B,12-2
          CODE   4100        03,C,12-3
          CODE   4040        04,D,12-4
          CODE   4020        05,E,12-5
          CODE   4010        06,F,12-6
          CODE   4004        07,G,12-7
          CODE   4002        10,H,12-8
          CODE   4001        11,I,12-9
          CODE   2400        12,J,11-1
          CODE   2200        13,K,11-2
          CODE   2100        14,L,11-3
          CODE   2040        15,M,11-4
          CODE   2020        16,N,11-5
          CODE   2010        17,O,11-6
          CODE   2004        20,P,11-7
          CODE   2002        21,Q,11-8
          CODE   2001        22,R,11-9
          CODE   1200        23,S,0-2 
          CODE   1100        24,T,0-3 
          CODE   1040        25,J,0-4 
          CODE   1020        26,V,0-5 
          CODE   1010        27,W,0-6 
          CODE   1004        30,X,0-7 
          CODE   1002        31,Y,0-8 
          CODE   1001        32,Z,0-9 
          CODE   1000        33,0,0 
          CODE   0400        34,1,1 
          CODE   0200        35,2,2 
          CODE   0100        36,3,3 
          CODE   0040        37,4,4 
          CODE   0020        40,5,5 
          CODE   0010        41,6,6 
          CODE   0004        42,7,7 
          CODE   0002        43,8,8 
          CODE   0001        44,9,9 
          CODE   4012        45,+,12-8-6
          CODE   2000        46,-,11
          CODE   2042        47,*,11-8-4
          CODE   1400        50,/,0-1 
          CODE   4022        51,(,12-8-5
          CODE   2022        52,),11-8-5
          CODE   2102        53,$,11-8-3
          CODE   0012        54,=,8-6 
          CODE   0000        55, ,
          CODE   1102        56,,,0-8-3 
          CODE   4102        57,.,12-8-3
          CODE   0102        60,#,8-3 
          CODE   4202        61,[,12-8-2
          CODE   2202        62,],11-8-2
 CH1      IFEQ   OP.CH63,OP.NO
          CODE   1042        63,PERCENT,0-8-4 
 CH1      ELSE
          CODE   0202        63,:,8-2 
 CH1      ENDIF 
          CODE   0006        64,",8-7 
          CODE   1022        65,_,0-8-5 
          CODE   4006        66,!,12-8-7
          CODE   4000        67,&,12
          CODE   0022        70,',8-5 
          CODE   1006        71,?,0-8-7 
          CODE   4042        72,<,12-8-4
          CODE   1012        73,>,0-8-6 
          CODE   0042        74,@,8-4 
          CODE   1202        75,\,0-8-2 
          CODE   2006        76,^,11-8-7
          CODE   2012        77,;,11-8-6
          END 
