*DECK C$R1S06 
          IDENT  C$R1S06
          TITLE  CBR1S06 - COMP-1 TO 6-DIGIT SIGNED NUMERIC DISPLAY 
  
          MACHINE  ANY,I
          SPACE  4
          COMMENT  COMP-1 TO 6-DIGIT SIGNED NUMERIC IDSPLAY 
**        C.R1S06 -  COMP-1 TO 6 DIGIT SIGNED NUMERIC DISPLAY 
* 
*         X1 = SIGNED COMP-1 VALUE
*           0 @ ABSOLUTE VALUE OF X1 @ 999999 
*         RJ     C.R1S06
* 
*         SETS X1 = 10 DIGIT NUMERIC DISPLAY ITEM.
*           (NINES COMPLEMENT IF NEGATIVE.) 
*           (MOST SIGNIFICANT 4 DIGITS ARE ZERO OR NINE.) 
* 
*         METHOD BY R. E. JAMES.
* 
*         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    - - - - - 6 - 
  
  
          ENTRY  C.R1S06
 C.R1S06  DATA   0
          MX0    12          77770000000000000000B
          BX3    X1          COPY SIGNED INPUT REGISTER 
          AX3    59          000...000B IF +, 777...777B IF - 
          SB6    X3-0        000...000B IF +, 777...777B IF - 
          SA2    DIVISOR     (10'-6)*(2'47)+ROUNDER       (INTEGER FORM)
          BX1    X1-X3       ABSOLUTE VALUE OF INPUT
          IX2    X2*X1       0.NNNNNN*2'47, ROUNDED UP
          LX2    2           (0.NNNNNN*2'48) * 2
          BX3    X2          (0.NNNNNN*2'48) * 2
          LX2    2           (0.NNNNNN*2'48) * 8
          IX2    X2+X3       N.NNNNN*2'48 
          BX1    X0*X2       00N60000000000000000B
          BX2    -X0*X2      0.NNNNN*2'48 
          IX3    X2+X2       (0.NNNNN*2'48) * 2 
          LX2    3           (0.NNNNN*2'48) * 8 
          IX2    X2+X3       N.NNNN*2'48
          LX1    6           N6000000000000000000B
          BX3    X0*X2       00N50000000000000000B
          IX1    X1+X3       N6N50000000000000000B
          BX2    -X0*X2      0.NNNN*2'48
          IX3    X2+X2       (0.NNNN*2'48) * 2
          LX2    3           (0.NNNN*2'48) * 8
          IX2    X2+X3       N.NNN*2'48 
          LX1    6           N50000000000000000N6B
          BX3    X0*X2       00N40000000000000000B
          IX1    X1+X3       N5N400000000000000N6B
          BX2    -X0*X2      0.NNN*2'48 
          IX3    X2+X2       (0.NNN*2'48) * 2 
          LX2    3           (0.NNN*2'48) * 8 
          IX2    X2+X3       N.NN*2'48
          LX1    6           N400000000000000N6N5B
          BX3    X0*X2       00N30000000000000000B
          IX1    X1+X3       N4N3000000000000N6N5B
          BX2    -X0*X2      0.NN*2'48
          IX3    X2+X2       (0.NN*2'48) * 2
          LX2    3           (0.NN*2'48) * 8
          IX2    X2+X3       N.N*2'48 
          LX1    6           N3000000000000N6N5N4B
          BX3    X0*X2       00N20000000000000000B
          IX1    X1+X3       N3N20000000000N6N5N4B
          BX2    -X0*X2      0.N*2'48 
          IX3    X2+X2       (0.N*2'48) * 2 
          LX2    3           (0.N*2'48) * 8 
          IX2    X2+X3       N.0*2'48 
          LX1    6           N20000000000N6N5N4N3B
          BX3    X0*X2       00N10000000000000000B
          SX0    B6-B0       000...000B IF +, 777...777B IF - 
          IX1    X1+X3       N2N100000000N6N5N4N3B
          SA2    =XC.ZEROS   10H0000000000
          LX1    12          00000000N6N5N4N3N2N1B
          IX1    X1+X2
          BX1    X1-X0       APPLY THE SIGN 
          EQ     C.R1S06     EXIT 
  
          CON    1.0E-6S47P0+1         (COMPARE AGAINST OCTAL CONSTANT) 
          ORG    *-1
          CON    1.0E-6S-955P1002+1    (THIS IS SMALLEST COMPASS EXPON.)
          ORG    *-1
 DIVISOR  CON    00000000001030675721B (10'-6)*(2'47) WITHOUT EXPONENT
  
          END 
