*DECK C$R1U10 
          IDENT  C$R1U10
          TITLE C.R1U10 -  COMP-1 TO 7-10 DIGIT UNSIGNED NUMERIC DISPLAY
  
          MACHINE  ANY,I
          COMMENT  COMP-1 TO 10-DIGIT UNSIGNED NUM. DISPLAY 
          SPACE  4
**        C.R1U10 -  COMP-1 TO 7-10 DIGIT UNSIGNED NUMERIC DISPLAY
* 
*         X1 = POSITIVE COMP-1 VALUE
*         RJ     C.R1U10
* 
*         SETS X1 = 10 CHARACTER NUMERIC DISPLAY VALUE
* 
*         METHOD BY R. E. JAMES 
* 
*         CODING PRIORITIES-
*                1)  BE FAST. 
*                2)  USE FEW X-REGISTERS. 
*                3)  BE SMALL IN SIZE.
* 
*         USES-  X  0 1 2 - - - - - 
*                A  - 1 2 - - - - - 
*                B    * - - - - - 7    *B1=1
  
  
          ENTRY  C.R1U10
 C.R1U10  DATA   0
          SA2    DIVISOR     (10.0'-10)*(2'33)
          SB7    5-1777B
          PX1    X1,B7       0005000...NNNNNNNNNNB
          LX1    10          (N*2'10)+1   (PACKED)
          NX1 
          RX2    X2*X1       EFFECTIVELY 0.NNNNNNNNNN*2'43, ROUNDED UP
          SX1    11772B 
          LX1    48          1772000...001B 
          FX1    X1+X2       ADD ROUNDING FACTOR AND SHIFT RESULT LEFT 5
          UX2    X1          (0.NNNNNNNNNN*2'48)*1
          IX0    X2+X2       (0.NNNNNNNNNN*2'48) * 2
          BX1    X1-X1       CLEAR RESULT REGISTER
          IX2    X2+X0       (0.NNNNNNNNNN*2'48) * 3
          LX0    1           (0.NNNNNNNNNN*2'48) * 4
          LX2    5           (0.NNNNNNNNNN*2'48) * 96 
          IX0    X2+X0       NN.NNNNNNNN*2'48 
          UX2    X0,B7       EXTRACT UPPER TWO DIGITS F-OM EXPONENT 
          PX1    X1,B7       PUT UPPER TWO DIGITS INTO RESULT 
          IX0    X2+X2       (0.NNNNNNNN*2'48) * 2
          LX1    12          MAKE ROOM FOR NEXT TWO DIGITS
          IX2    X2+X0       (0.NNNNNNNN*2'48) * 3
          LX0    1           (0.NNNNNNNN*2'48) * 4
          LX2    5           (0.NNNNNNNN*2'48) * 96 
          IX0    X2+X0       NN.NNNNNN*2'48 
          UX2    X0,B7       EXTRACT UPPE- TWO DIG+TS F-OM EXPONENT 
          PX1    X1,B7       PUT UPPER TWO DIGITS IN RESULT 
          IX0    X2+X2       (0.NNNNNN*2'48) * 2
          LX1    12          MAKE ROOM FOR NEXT TWO DIGITS
          IX2    X2+X0       (0.NNNNNN*2'48) * 3
          LX0    1           (0.NNNNNN*2'48) * 4
          LX2    5           (0.NNNNNN*2'48) * 96 
          IX0    X2+X0       NN.NNNN*2'48 
          UX2    X0,B7       EXTRACT UPPER TWO DIGITS FROM EXPONENT 
          PX1    X1,B7       PUT UPPER TWO DIGITS IN RESULT 
          IX0    X2+X2       (0.NNNN*2'48) * 2
          LX1    12          MAKE ROOM FOR NEXT TWO DIGITS
          IX2    X2+X0       (0.NNNN*2'48) * 3
          LX0    1           (0.NNNN*2'48) * 4
          LX2    5           (0.NNNN*2'48) * 96 
          IX0    X2+X0       NN.NN*2'48 
          UX2    X0,B7       EXTRACT UPPER TWO DIGITS FROM EXPONENT 
          PX1    X1,B7       PUT UPPER TWO DIGITS INTO RESULT 
          IX0    X2+X2       (0.NN*2'48) * 2
          LX1    12          MAKE ROOM FOR LAST TWO DIGITS
          IX2    X2+X0       (0.NN*2'48) * 3
          LX0    1           (0.NN*2'48) * 4
          LX2    5           (0.NN*2'48) * 96 
          IX0    X2+X0       NN.0*2'48
          UX2    X0,B7       EXTRACT UPPER TWO DIGITS FROM EXPONENT 
          SA2    A2+B1       76017601760176017601B
          PX1    X1,B7       PUT LAST TWO DIGITS INTO RESULT
          LX1    12 
          BX0    -X2*X1       1.
          IX2    X0+X0       10.
          IX2    X0+X2       11.
          LX0    -2            .01
          IX0    X0+X2       11.01
          SA2    A2          76017601760176017601B
          LX0    -4            .001101
          BX2    -X2*X0 
          IX0    X1-X2       (10*N+M)-2*N 
          LX2    2           8*N
          IX0    X0-X2       M
          SA1    =XC.ZEROS         10H0000000000
          LX2    3
          BX0    X2+X0
          IX1    X1+X0       BIAS BY DISPLAY ZERO 
          EQ     C.R1U10     EXIT 
  
 DIVISOR  CON    1.0E-10S33+1                                     WORD 1
          CON    76017601760176017601B                            WORD 2
  
  
          END 
