R1FADD

Table Of Contents
  • [00022] LIBF FADD -V1.
r1fadd.lst
ASM1130 CROSS ASSEMBLER V1.22 -- V2M12 -- Sun Nov  1 19:25:07 2020
 
Source File: \r1fadd.asm 
                             1 | *************************************************** R1A00010
                             2 | *                                                 * R1A00020
                             3 | *   SUBROUTINE NAME-                              * R1A00030
                             4 | *      FULL NAME- STANDARD PRECISION FLOATING-    * R1A00040
                             5 | *         POINT ADD-SUBTRACT SUBPROGRAM.          * R1A00050
                             6 | *      CODE NAME- FADD/FADDX/FSUB/FSUBX           * R1A00060
                             7 | *   PURPOSE- THIS SUBPROGRAM ADDS OR SUBTRACTS    * R1A00070
                             8 | *      TWO STANDARD PRECISION FLOATING POINT      * R1A00080
                             9 | *      NUMBERS.                                   * R1A00090
                            10 | *   METHOD-SEE IBM 1130 SUBROUTINE LIBRARY MANUAL.* R1A00100
                            11 | *   CAPABILITIES AND LIMITATIONS- SEE IBM 1130    * R1A00110
                            12 | *      SUBROUTINE LIBRARY MANUAL.                 * R1A00120
                            13 | *   SPECIAL FEATURES- N/A                         * R1A00130
                            14 | *   ADDITIONAL INFORMATION-                       * R1A00140
                            15 | *      ESTIMATED EXECUTION TIME- SEE IBM 1130     * R1A00150
                            16 | *         SUBROUTINE LIBRARY MANUAL               * R1A00160
                            17 | *                                                 * R1A00170
                            18 | *************************************************** R1A00180
LIBF FADD  -V1.
 
                            20 |       LIBR                                          R1A00200
                            21 |       SPR                                           R1A00210
                            22 |       ENT     FADD                                  R1A00220
                            23 |       ENT     FSUB                                  R1A00230
                            24 |       ENT     FADDX                                 R1A00240
                            25 |       ENT     FSUBX                                 R1A00250
0000 693B                   26 | FSUB  STX   1 SAVE+1    SAVE XR1                    R1A00260
0001 C400 0000              27 |       LD   L  *-*       CALL+1                      R1A00270
0003 6100                   28 |       LDX   1 0         XR1=ZERO                    R1A00280
0004 7003                   29 |       MDX     FS1                                   R1A00290
0005 6936                   30 | FSUBX STX   1 SAVE+1    SAVE XR1                    R1A00300
0006 C400 0000              31 |       LD   L  *-*       CALL+1                      R1A00310
0008 2831                   32 | FS1   STS     STAT      SAVE STATUS                 R1A00320
0009 2001                   33 |       LDS     1         SINCE SUB ENTRY IS USED PUT R1A00330
000A 700A                   34 |       MDX     COMM      OVERFLOW INDICATOR ON       R1A00340
000B 6930                   35 | FADD  STX   1 SAVE+1    SAVE XR1                    R1A00350
000C C400 0000              36 |       LD   L  *-*       CALL+1                      R1A00360
000E 6100                   37 |       LDX   1 0         XR1=ZERO                    R1A00370
000F 282A                   38 |       STS     STAT      SAVE STATUS                 R1A00380
0010 7004                   39 |       MDX     COMM                                  R1A00390
0011 692A                   40 | FADDX STX   1 SAVE+1    SAVE XR1                    R1A00400
0012 C400 0000              41 |       LD   L  *-*       CALL+1                      R1A00410
0014 2825                   42 |       STS     STAT      SAVE STATUS                 R1A00420
0015 D003                   43 | COMM  STO     *+3       ST LOC OF OPND ADDR         R1A00430
0016 8046                   44 |       A       ONE                                   R1A00440
0017 D026                   45 |       STO     EXIT+1    BUILD EXIT                  R1A00450
0018 7580 0000              46 |       MDX  I1 *-*       MODIFY XR1 BY OPND ADDR     R1A00460
001A 1000                   47 |       NOP               IF MDX CAUSES BR,SKIP NOP   R1A00470
                            48 | *                                                   R1A00480
                            49 | *SAVE ADDEND MANTISSA AND EXPONENT                  R1A00490
                            50 | *                                                   R1A00500
001B C900                   51 |       LDD   1 0         LOAD OPERAND                R1A00510
001C D839                   52 |       STD     BARG      ST OPND IN BARG             R1A00520
001D 18D0                   53 |       RTE     16        SECOND WORD OF OPND IN ACC  R1A00530
001E 2802                   54 |       STS     *+2       STATUS INDRS SET TO ZERO    R1A00540
001F 2837                   55 |       STS     BARG+1    STRIP OFF EXPONENT          R1A00550
0020 F036                   56 |       EOR     BARG+1    EXPONENT ONLY IN ACC        R1A00560
0021 2000                   57 |       LDS     *-*       RESTORE STATUS              R1A00570
0022 D035                   58 |       STO     BEX       STORE EXPONENT IN BEX       R1A00580
0023 4C01 0050R             59 |       BSC  L  SARG,O    BRANCH ON OVERFLOW TO SUBR  R1A00590
                            60 | *                                                   R1A00600
                            61 | *DO REQUIRED ADDITION OR SUBTRACTION                R1A00610
                            62 | *                                                   R1A00620
0025 937D                   63 | CALS  S     3 125       SUB FAC EXPONENT FROM BEX   R1A00630
0026 4C30 003FR             64 |       BSC  L  FLIP,-Z   BR ON PTV                   R1A00640
0028 F030                   65 |       EOR     ALL1      IF NEG OR ZERO,2'S CMPL     R1A00650
0029 8035                   66 |       A       SRT1      STORE SHIFT                 R1A00660
002A D006                   67 |       STO     RTS                                   R1A00670
002B 902F                   68 |       S       RANGK     SRT31 TO CHK RANGE          R1A00680
002C 4C30 0036R             69 |       BSC  L  NORM+1,-Z BR IF OUT OF RANGE          R1A00690
002E C827                   70 |       LDD     BARG      IN RANGE,GET ADDEND         R1A00700
002F 4828                   71 |       BSC     +Z        SKIP IF NON-NEG             R1A00710
0030 982B                   72 |       SD      D1        IF NEG,SUB 1                R1A00720
0031 1880                   73 | RTS   SRT     *-*       CORR FOR EXPONENT SHIFT     R1A00730
0032 4828                   74 |       BSC     +Z        SKIP IF NON-NEG             R1A00740
0033 8828                   75 |       AD      D1        IF NEG,ADD 1                R1A00750
0034 8B7E                   76 |       AD    3 126       ADD FAC MANTISSA            R1A00760
0035 DB7E                   77 | NORM  STD   3 126       STORE IN FAC                R1A00770
0036 4C01 005FR             78 |       BSC  L  OFLW,O    BR IF OVERFLOW INDR ON      R1A00780
0038 1559*9500              79 |       LIBF    NORM      OTHERWISE NORMALIZE         R1A00790
0039 0605*90C0              80 | OFT   LIBF    FARC      CALL CHKING SUBR            R1A00800
003A 2000                   81 | STAT  LDS     *-*       RESTORE STATUS              R1A00810
003B 6500 0000              82 | SAVE  LDX  L1 *-*       RESTORE XR1                 R1A00820
003D 4C00 0000              83 | EXIT  BSC  L  *-*       BR OUT                      R1A00830
                            84 | *                                                   R1A00840
                            85 | *CALCULATE AND ALLOW FOR RSLT EXPONENT SHIFT        R1A00850
                            86 | *                                                   R1A00860
003F 801A                   87 | FLIP  A       SRTO                                  R1A00870
0040 D00A                   88 |       STO     RTSF      CONSTRUCT EXPONENT SHIFT    R1A00880
0041 9019                   89 |       S       RANGK     SUB SRT31 TO CHECK RANGE    R1A00890
0042 4C08 0046R             90 |       BSC  L  *+2,+     BR IF IN RANGE              R1A00900
0044 C016                   91 |       LD      RANGK     OUT OF RANGE,SET UP SRT31   R1A00910
0045 D005                   92 |       STO     RTSF      GET ADDEND EXPONENT         R1A00920
0046 C011                   93 |       LD      BEX                                   R1A00930
0047 D37D                   94 |       STO   3 125       AND PUT IN FAC              R1A00940
0048 CB7E                   95 |       LDD   3 126       GET FAC MANTISSA            R1A00950
0049 4828                   96 |       BSC     +Z        SKIP IF NON-NEG             R1A00960
004A 9811                   97 |       SD      D1        IF NEG SUB 1                R1A00970
004B 1880                   98 | RTSF  SRT     *-*       SHIFT TO ALLOW FOR EXPONENT R1A00980
004C 4828                   99 |       BSC     +Z        SKIP IF NON-NEG             R1A00990
004D 880E                  100 |       AD      D1        IF NEG ADD 1                R1A01000
004E 8807                  101 |       AD      BARG      ADD THE TWO MANTISSAS       R1A01010
004F 70E5                  102 |       MDX     NORM      GO TO NORMALIZE             R1A01020
                           103 | *                                                   R1A01030
                           104 | *MODIFY SIGN FOR SUBTRACT ROUTINES                  R1A01040
                           105 | *                                                   R1A01050
0050 10A0                  106 | SARG  SLT     32        CLEAR ACC AND EXT           R1A01060
0051 9804                  107 |       SD      BARG      REVERSE SIGN OF ADDEND      R1A01070
0052 D803                  108 |       STD     BARG                                  R1A01080
0053 C004                  109 |       LD      BEX       GET EXPONENT OF ADDEND      R1A01090
0054 70D0                  110 |       MDX     CALS                                  R1A01100
                           111 | *                                                   R1A01110
                           112 | *CONSTANTS TABLE                                    R1A01120
                           113 | *                                                   R1A01130
0056 0000 0000             114 | BARG  DEC     0.0       STORE ADDEND                R1A01140
0058 0000                  115 | BEX   DC      0         STORE ADDEND EXPONENT       R1A01150
0059 FFFF                  116 | ALL1  DC      /FFFF     ONE'S CMPL MASK             R1A01160
005A 1880                  117 | SRTO  SRT     0         SHIFT CONSTANT              R1A01170
005B 189F                  118 | RANGK SRT     31        RANGE CHECK CONSTANT        R1A01180
005C 0000 0001             119 | D1    DEC     1         FLT PT ONE                  R1A01190
005E 8000                  120 | SINK  DC      /8000     SIGN BIT MASK               R1A01200
                           121 | *                                                   R1A01210
                           122 | *DO SHIFT TO ALLOW FOR OVERFLOW                     R1A01220
                           123 | *                                                   R1A01230
005F 1881                  124 | OFLW  SRT     1         SHIFT RESULT RIGHT          R1A01240
0060 F0FD                  125 |       EOR     SINK      AND REVERSE SIGN BIT        R1A01250
0061 DB7E                  126 |       STD   3 126       STORE IN FAC                R1A01260
0062 C37D                  127 |       LD    3 125       COMPENSATE BY INCRING       R1A01270
0063 80F9                  128 |       A       ONE       EXPONENT BY 1               R1A01280
0064 D37D                  129 |       STO   3 125                                   R1A01290
0065 70D3                  130 |       MDX     OFT                                   R1A01300
                           131 | *                                                   R1A01310
                           132 | *EQUATE STATEMENTS                                  R1A01320
                           133 | *                                                   R1A01330
005FR                      134 | SRT1  EQU     OFLW      DEFINE CONSTANT SRT1        R1A01340
005DR                      135 | ONE   EQU     D1+1      DEFINE SINGLE WORD ONE      R1A01350
0066                       136 |       END                                           R1A01360
 
There were no errors in this assembly
 
=== CROSS REFERENCES ==========================================================
Name  Val   Defd  Referenced
ALL1  0059R  116   65
BARG  0056R  114   52   55   56   70  101  107  108
BEX   0058R  115   58   93  109
CALS  0025R   63  110
COMM  0015R   43   34   39
D1    005CR  119   72   75   97  100  135
EXIT  003DR   83   45
FADD  000BR   35
FADDX 0011R   40
FLIP  003FR   87   64
FS1   0008R   32   29
FSUB  0000R   26
FSUBX 0005R   30
NORM  0035R   77   69  102
OFLW  005FR  124   78  134
OFT   0039R   80  130
ONE   005DR  135   44  128
RANGK 005BR  118   68   89   91
RTS   0031R   73   67
RTSF  004BR   98   88   92
SARG  0050R  106   59
SAVE  003BR   82   26   30   35   40
SINK  005ER  120  125
SRT1  005FR  134   66
SRTO  005AR  117   87
STAT  003AR   81   32   38   42