*DECK C$S14R1 
          IDENT  C$S14R1
          TITLE  C.S14R1 -  SIGNED 10-14 DIGIT SIGNED NUMERIC DISPLAY TO
  
          MACHINE  ANY,I
, COMP-1
          COMMENT  14-DIGIT SIGNED NUMERIC DISPLAY TO COMP-1
          SPACE  4
**        C.S14R1 -  10-14 DIGIT SIGNED NUMERIC DISPLAY TO COMP-1 
* 
*         X0 = NEGATIVE MASK   (CREATED WITH MX0 N, N\36) 
*                INDICATES WHICH MOST SIG. DIGITS ARE TO CONVERTED
*         X1 = MOST SIGNIFICANT 0-4 DIGITS
*         X2 = LEAST SIGNIFICANT 10 DIGITS
*         RJ     C.S14R1
* 
*         SETS X1 = SIGNED COMP-1 RESULT
* 
*         CODING PRIORITIES-
*                1)  BE FAST. 
*                2)  USE FEW X-REGISTERS. 
*                3)  BE SMALL IN SIZE.
* 
*         USES-  X  0 1 2 3 4 - - - 
*                A  - - 2 - - - - - 
*                B    * - - - - 6 7    *B1=1
  
  
          ENTRY  C.S14R1
 C.S14R1  DATA   0
          BX4    X1          COPY THE REGISTER WITH THE SIGN
          AX4    54          00000000000000000033B:77777777777777777744B
          SB6    X4          SAVE SIGN TO APPLY TO RESULT 
          SA3    =XC.ZEROS   10H0000000000
          AX4    5           00000000000000000000B:77777777777777777777B
          BX1    X1-X4       ABSOLUTE VALUE OF MOST SIGNIFICANT DIGITS
          IX1    X1-X3       REMOVE DISPLAY ZERO BIAS FROM MOST SIG.
          BX1    -X0*X1      KEEP ONLY SPECIFIED DIGITS 
          MX0    -6          77777777777777777700B
          BX2    X2-X4       ABSOLUTE VALUE OF LEAST SIGNIFICANT DIGITS 
          IX2    X2-X3       REMOVE DISPLAY ZERO BIAS FROM LEAST SIG. 
          LX2    6            D8  D7  D6  D5  D4  D3  D2  D1  D0  D9
          BX4    -X0*X2        0   0   0   0   0   0   0   0   0  D9
          IX3    X4+X4       2*D9 
          LX4    3           8*D9 
          IX3    X4+X3       10*D9
          LX2    6            D7  D6  D5  D4  D3  D2  D1  D0  D9  D8
          SB7    X3          10*D9
          BX4    -X0*X2        0   0   0   0   0   0   0   0   0  D8
          LX2    48           D9  D8  D7  D6  D5  D4  D3  D2  D1  D0
          SB7    X4+B7       10*D9+D8 
          MX0    12          77770000000000000000B
          SA3    =XC.CNVRT   00770077007700770077B
          BX2    -X0*X2        0   0  D7  D6  D5  D4  D3  D2  D1  D0
          BX0    X3*X1         0   0   0   0   0   0   0 D12   0 D10
          BX1    -X3*X1        0   0   0   0   0   0 D13   0 D11   0
          LX1    -3          (M.S. ODD) * 8 / 2'6 
          BX4    X3*X2         0   0   0  D6   0  D4   0  D2   0  D0
          BX2    -X3*X2        0   0  D7   0  D5   0  D3   0  D1   0
          IX3    X2+X2       (L.S. ODD) * 2 
          LX2    -3          (L.S. ODD) * 8 / 2'6 
          LX3    -6          (L.S. ODD) * 2 / 2'6 
          IX2    X2+X3       (L.S. ODD) *10 / 2'6 
          BX3    X1          (M.S. ODD) * 8 / 2'6 
          IX2    X2+X4       10*D7+D6, 10*D5+D4, 10*D3+D2, 10*D1+D0 
          LX3    -2          (M.S. ODD) * 2 / 2'6 
          IX1    X1+X3       (M.S. ODD) *10 / 2'6 
          SA3    A3+B1       00007777000077770000B
          IX1    X1+X0       10*D13+D12, 10*D11+D10 
          BX0    X3*X1       10*D13+D12, 0
          BX1    -X3*X1      0, 10*D11+D10
          LX0    -6          (10*D13+D12, 0) * 64 / 2'12
          BX4    X3*X2       10*D7+D6, 0, 10*D3+D2, 0 
          BX2    -X3*X2      0, 10*D5+D4, 0, 10*D1+D0 
          LX4    -6          (10*D7+D6, 0, 10*D3+D2, 0) * 64 / 2'12 
          AX3    X4,B1       (10*D7+D6, 0, 10*D3+D2, 0) * 32 / 2'12 
          IX4    X3+X4       (10*D7+D6, 0, 10*D3+D2, 0) * 96 / 2'12 
          LX3    -3          (10*D7+D6, 0, 10*D3+D2, 0) *  4 / 2'12 
          IX3    X4+X3       (10*D7+D6, 0, 10*D3+D2, 0) *100 / 2'12 
          IX2    X3+X2       1000*D7+100*D6+10*D5+D4, 1000*D3+ +10*D1+D0
          AX3    X0,B1       (10*D13+D12, 0) * 32 / 2'12
          IX0    X0+X3       (10*D13+D12, 0) * 96 / 2'12
          LX3    -3          (10*D13+D12, 0) *  4 / 2'12
          IX0    X0+X3       (10*D13+D12, 0) *100 / 2'12
          MX3    -24         77777777777700000000B
          IX1    X0+X1       1000*D13+100*D12+10*D11+D10
          BX4    X3*X2       1000*D7+100*D6+10*D5+D4, 0 
          SX0    B7          10*D9+D8 
          SA3    A3+B1       10000.0/2'12 - 1.0 
          PX4    X4 
          FX4    X3*X4       -(1000*D7+100*D6+10*D5+D4, 0)
                             10'7*D7+10'6*D6+10'5*D5+10'4*D4
          UX4    X4,B7
          SA3    A3+B1       10'8   (INTEGER) 
          LX4    X4,B7
          IX2    X2+X4       10'7*D7+...+10'2*D2+10*D1+D0   (INTEGER) 
          SX4    B6          000033B IF +,  777744B IF -
          IX0    X3*X0       10'9*D9+10'8*D8
          SA3    A3+B1       10'10   (INTEGER)
          IX2    X0+X2       10'9*D9+...+10'2*D2+10*D1+D0 
          AX4    5           00000000000000000000B:77777777777777777777B
          IX1    X3*X1       10'13*D13+10'12*D12+10'11*D11+10'10*D10
          IX1    X1+X2       *IT* 
          BX1    X1-X4       (EXCEPT FOR SIGN)
          EQ     C.S14R1     EXIT 
  
  
          END 
