*DECK C$U10R1 
          IDENT  C$U10R1
          TITLE  C.U10R1 -  10 DIGIT UNSIGNED NUMERIC DISPLAY TO COMP-1 
          COMMENT  10 DIGIT UNSIGNED NUMERIC DISPLAY TO COMP-1
          SPACE  4
**        C.U10R1 -  10 DIGIT UNSIGNED NUMERIC DISPLAY TO COMP-1
* 
*         X1 = 10 DIGIT UNSIGNED NUMERIC DISPLAY INPUT
*         RJ     C.U10R1
* 
*         SETS X1 = POSITIVE COMP-1 VALUE 
* 
*         CODING PRIORITIES ARE-
*                1)  BE FAST. 
*                2)  USE FEW X-REGISTERS. 
*                3)  BE SMALL IN SIZE.
* 
*         USES-  X  0 1 2 3 - - - - 
*                A  - - 2 - - - - - 
*                B    * - - - - - 7    *B1=1
  
  
          ENTRY  C.U10R1
 C.U10R1  DATA   0
          MX0    12          77770000000000000000B
          SA2    =XC.ZEROS   10H0000000000
          IX3    X1-X2       REMOVE DISPLAY ZERO BIAS 
          BX1    -X0*X3      KEEP:  0  0 D7 D6 D5 D4 D3 D2 D1 D0
          MX0    -6          00000000000000000077B
          LX3    12          GETS: D7 D6 D5 D4 D3 D2 D1 D0 D9 D8
          BX2    -X0*X3      DIGIT: 0  0  0  0  0  0  0  0  0 D8
          SB7    X2          D8 
          LX3    -6          GETS: D8 D7 D6 D5 D4 D3 D2 D1 D0 D9
          BX3    -X0*X3      DIGIT: 0  0  0  0  0  0  0  0  0 D9
          IX2    X3+X3       2*D9 
          LX3    3           8*D9 
          IX3    X3+X2       10*D9
          SB7    B7+X3       10*D9+D8 
          SA2    =XC.CNVRT   00770077007700770077B
          BX0    -X2*X1      ODD:   0  0 D7  0 D5  0 D3  0 D1  0
          IX3    X0+X0       ODD DIGITS * 2 
          BX1    X2*X1       EVEN:  0  0  0 D6  0 D4  0 D2  0 D0
          LX0    -3          ODD DIGITS * 8 / 2'6 
          SA2    A2+B1       00007777000077770000B
          LX3    -6          ODD DIGITS * 2 / 2'6 
          IX0    X0+X3       ODD DIGITS *10 / 2'6 
          IX0    X0+X1       10*D7+D6, 10*D5+D4, 10*D3+D2, 10*D1+D0 
          BX3    X2*X0       10*D7+D6,        0, 10*D3+D2,        0 
          BX0    -X2*X0             0, 10*D5+D4,        0, 10*D1+D0 
          LX3    -6          (10*D7+D6, 0, 10*D3+D2, 0) * 64 / 2'12 
          AX1    X3,B1       (10*D7+D6, 0, 10*D3+D2, 0) * 32 / 2'12 
          IX3    X3+X1       (10*D7+D6, 0, 10*D3+D2, 0) * 96 / 2'12 
          LX1    -3          (10*D7+D6, 0, 10*D3+D2, 0) *  4 / 2'12 
          IX3    X3+X1       (10*D7+D6, 0, 10*D3+D2, 0) *100 / 2'12 
          MX2    -24         77777777777700000000B
          IX1    X3+X0       1000*D7+100*D6+10*D5+D4, 1000*D3+ +10*D1+D0
          SX3    B7          10*D9+D8 
          BX0    X2*X1       1000*D7+100*D6+10*D5+D4, 0 
          SA2    A2+B1       10000/2'24 - 1 
          PX0    X0 
          FX0    X0*X2       -(1000*D7+100*D6+10*D5+D4),
                             10'7*D7+10'6*D6+10'5*D5+10'4*D4
          UX0    X0,B7
          LX0    X0,B7
          IX1    X1+X0       EVERYTHING CANCELS, LEAVING *IT* 
          SA2    A2+B1       10'8 (INTEGER) 
          IX3    X2*X3       10'9*D9+10'8*D8
          IX1    X1+X3       ADD 10'8*D8
          EQ     C.U10R1     EXIT 
  
  
          END 
