User Tools

Site Tools


cdc:nos2.source:opl.opl871:common:comccfd

Common COMCCFD

Library Member Format: MODIFY

Source

Seq #  *Modification Id* Act 
----------------------------+
00001  M00S00001.comccfd +++|          CTEXT  COMCCFD - CONSTANT TO F10.3 CONVERSION.
00002  M00S00002.comccfd +++|          SPACE  4
00003  M00S00003.comccfd +++|          IF     -DEF,QUAL$,1
00004  M00S00004.comccfd +++|          QUAL   COMCCFD
00005  M00S00005.comccfd +++|          BASE   D
Line S00006 Modification History
M01 (Removed by) 281l803
Seq #  *Modification Id* Act 
----------------------------+
00006  M01S00006.281l803 ---|*         COMMENT COPYRIGHT CONTROL DATA CORP. 1971.
Line S00001 Modification History
M01 (Added by) 281l803
Seq #  *Modification Id* Act 
----------------------------+
00007  M01S00001.281l803 +++|*         COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992.
00008  M00S00007.comccfd +++| CFD      SPACE  4
00009  M00S00008.comccfd +++|***       CFD - CONSTANT TO F10.3 DISPLAY CODE CONVERSION.
00010  M00S00009.comccfd +++|*         J.C. BOHNHOFF. 71/08/15.
00011  M00S00010.comccfd +++|*         ADAPTED FROM SUBROUTINE *RJA* IN CPUMTR.
00012  M00S00011.comccfd +++|          SPACE  4
00013  M00S00012.comccfd +++|***       *CFD* CONVERTS A 30 BIT INTEGER TO DISPLAY CODE IN *FORTRAN*
00014  M00S00013.comccfd +++|*         *F10.3* FORMAT.  THE VALUE RETURNED IS EQUAL TO THE INPUT
00015  M00S00014.comccfd +++|*         VALUE DIVIDED BY 1000D.  THE RESULT IS RETURNED BOTH LEFT
00016  M00S00015.comccfd +++|*         AND RIGHT JUSTIFIED AND LEADING ZEROS IN THE INTEGER PORTION
00017  M00S00016.comccfd +++|*         ARE SUPPRESSED.  IF THE 30 BIT NUMBER EXCEEDS 999999.999
00018  M00S00017.comccfd +++|*         (INPUT EXCEEDS 7346544777B) THE RESULT WILL BE **********.
00019  M00S00018.comccfd +++|*         AN INPUT VALUE GREATER THAN 30 BITS IS TRUNCATED TO THE
00020  M00S00019.comccfd +++|*         LOWER 30 BITS.
00021  M00S00020.comccfd +++|*
00022  M00S00021.comccfd +++|*         ENTRY  (X1)= INTEGER TO BE CONVERTED.
00023  M00S00022.comccfd +++|*                (B1)= 1.
00024  M00S00023.comccfd +++|*
00025  M00S00024.comccfd +++|*         EXIT   (X6)= CONVERSION RIGHT JUSTIFIED.
00026  M00S00025.comccfd +++|*                (X4)= CONVERSION LEFT JUSTIFIED.
00027  M00S00026.comccfd +++|*                (B3) = - (NUMBER OF BLANK CHARACTERS * 6).
00028  M00S00027.comccfd +++|*
00029  M00S00028.comccfd +++|*         USES   B - 2, 3, 4, 5.
00030  M00S00029.comccfd +++|*                A - 2, 3, 4.
00031  M00S00030.comccfd +++|*                X - 1, 2, 3, 4, 6, 7.
00032  M00S00031.comccfd +++|
00033  M00S00032.comccfd +++|
00034  M00S00033.comccfd +++| CFD3     SA4    CFDC        GET OVERFLOW CONVERSION
00035  M00S00034.comccfd +++|          SB3    B0
00036  M00S00035.comccfd +++|          BX6    X4
00037  M00S00036.comccfd +++| CFD      PS                 ENTRY/EXIT
00038  M00S00037.comccfd +++|          SA2    CFDA        =.1P48+1
00039  M00S00038.comccfd +++|          SA3    CFDB        =10.0P
00040  M00S00039.comccfd +++|          SA4    A2+B1
00041  M00S00040.comccfd +++|          MX6    -30
00042  M00S00041.comccfd +++|          SB5    6
00043  M00S00042.comccfd +++|          BX6    -X6*X1      DISCARD UPPER BITS
00044  M00S00043.comccfd +++|          SX7    1000
00045  M00S00044.comccfd +++|          IX4    X4-X6
00046  M00S00045.comccfd +++|          SB4    1R0-1R      (B4)= CONVERSION
00047  M00S00046.comccfd +++|          NG     X4,CFD3     IF INPUT .GT. 999999.999
00048  M00S00047.comccfd +++|          SA4    A3+B1       (X4)= BACKGROUND
00049  M00S00048.comccfd +++|          PX1    X6
00050  M00S00049.comccfd +++|          IX7    X6-X7
00051  M00S00050.comccfd +++|          SB2    -B5
00052  M00S00051.comccfd +++|          PL     X7,CFD1     IF INTEGER PRESENT
00053  M00S00052.comccfd +++|          SB4    B0
00054  M00S00053.comccfd +++|          SA4    A4+B1
00055  M00S00054.comccfd +++| CFD1     DX6    X2*X1       EXTRACT REMAINDER
00056  M00S00055.comccfd +++|          FX1    X2*X1
00057  M00S00056.comccfd +++|          UX7    X1          CHECK QUOTIENT
00058  M00S00057.comccfd +++|          LX4    -6          SHIFT ASSEMBLY
00059  M00S00058.comccfd +++|          SB2    B2+B5       ADVANCE SHIFT COUNT
00060  M00S00059.comccfd +++|          FX6    X3*X6       EXTRACT DIGIT
00061  M00S00060.comccfd +++|          SX6    X6+B4       CONVERT DIGIT
00062  M00S00061.comccfd +++|          IX4    X6+X4
00063  M00S00062.comccfd +++|          NZ     X7,CFD1     LOOP TO ZERO QUOTIENT
00064  M00S00063.comccfd +++|          SX3    1R.         INSERT DECIMAL POINT
00065  M00S00064.comccfd +++|          MX2    -18         FRACTION MASK
00066  M00S00065.comccfd +++|          LX6    X4,B2       RIGHT JUSTIFY ASSEMBLY
00067  M00S00066.comccfd +++|          SB2    B2+12       CALCULATE SHIFT TO LEFT JUSTIFY
00068  M00S00067.comccfd +++|          LX3    18
00069  M00S00068.comccfd +++|          BX1    -X2*X6      EXTRACT FRACTION
00070  M00S00069.comccfd +++|          SB3    6*5
00071  M00S00070.comccfd +++|          IX7    X1+X3       ADD DECIMAL POINT
00072  M00S00071.comccfd +++|          BX4    X2*X6       EXTRACT INTEGER
00073  M00S00072.comccfd +++|          LX4    6
00074  M00S00073.comccfd +++|          IX6    X4+X7       ADD INTEGER INTO RESULT
00075  M00S00074.comccfd +++|          LT     B2,B3,CFD2  LEFT JUSTIFY RESULT
00076  M00S00075.comccfd +++|          SB3    B2+
00077  M00S00076.comccfd +++| CFD2     SB3    B3-60
00078  M00S00077.comccfd +++|          AX4    X6,B3
00079  M00S00078.comccfd +++|          EQ     CFD         **RETURN
00080  M00S00079.comccfd +++|
00081  M00S00080.comccfd +++| CFDA     CON    0.1P48+1
00082  M00S00081.comccfd +++|          CON    7346544777B OVERFLOW BOUNDARY
00083  M00S00082.comccfd +++| CFDB     CON    10.0P
00084  M00S00083.comccfd +++|          CON    9L
00085  M00S00084.comccfd +++|          CON    9L     0000
00086  M00S00085.comccfd +++| CFDC     DATA   10R**********
00087  M00S00086.comccfd +++|          SPACE  4
00088  M00S00087.comccfd +++|          BASE   *
00089  M00S00088.comccfd +++| QUAL$    IF     -DEF,QUAL$
00090  M00S00089.comccfd +++|          QUAL   *
00091  M00S00090.comccfd +++| CFD      EQU    /COMCCFD/CFD
00092  M00S00091.comccfd +++| QUAL$    ENDIF
00093  M00S00092.comccfd +++|          ENDX
cdc/nos2.source/opl.opl871/common/comccfd.txt ยท Last modified: by 127.0.0.1