S1EADD

Table Of Contents
  • [00022] LIBF EADD -V1.
s1eadd.lst
ASM1130 CROSS ASSEMBLER V1.22 -- V2M12 -- Sun Nov  1 19:25:07 2020
 
Source File: \s1eadd.asm 
                             1 | *************************************************** S1A00010
                             2 | *                                                 * S1A00020
                             3 | *   SUBROUTINE NAME-                              * S1A00030
                             4 | *      FULL NAME- EXTENDED PRECISION FLOATING-    * S1A00040
                             5 | *         POINT ADD OR SUBTRACT SUBROUTINE.       * S1A00050
                             6 | *      CODE NAME- EADD/EADDX/ESUB/ESUBX           * S1A00060
                             7 | *   PURPOSE- THIS SUBPROGRAM PERFORMS A FLOATING- * S1A00070
                             8 | *      POINT ADD OR SUBTRACT OF TWO EXTENDED      * S1A00080
                             9 | *      PRECISION NUMBERS.                         * S1A00090
                            10 | *   METHOD-SEE IBM 1130 SUBROUTINE LIBRARY MANUAL.* S1A00100
                            11 | *   CAPABILITIES AND LIMITATIONS- SEE IBM 1130    * S1A00110
                            12 | *      SUBROUTINE LIBRARY MANUAL.                 * S1A00120
                            13 | *   SPECIAL FEATURES- N/A                         * S1A00130
                            14 | *   ADDITIONAL INFORMATION-                       * S1A00140
                            15 | *      ESTIMATED EXECUTION TIME- SEE IBM 1130     * S1A00150
                            16 | *         SUBROUTINE LIBRARY MANUAL               * S1A00160
                            17 | *                                                 * S1A00170
                            18 | *************************************************** S1A00180
LIBF EADD  -V1.
 
                            20 |       LIBR                                          S1A00200
                            21 |       EPR                                           S1A00210
                            22 |       ENT     EADD                                  S1A00220
                            23 |       ENT     ESUB                                  S1A00230
                            24 |       ENT     EADDX                                 S1A00240
                            25 |       ENT     ESUBX                                 S1A00250
                            26 | *                                                   S1A00260
                            27 | *SUBTRACT ENTRIES                                   S1A00270
                            28 | *                                                   S1A00280
0000 6939                   29 | ESUB  STX   1 SAVE+1    SAVE XR1                    S1A00290
0001 C400 0000              30 |       LD   L  *-*       LOADER INSERT               S1A00300
0003 6100                   31 |       LDX   1 0         XR1 NOT USED,SET TO ZERO    S1A00310
0004 7003                   32 |       MDX     ES1                                   S1A00320
0005 6934                   33 | ESUBX STX   1 SAVE+1                                S1A00330
0006 C400 0000              34 |       LD   L  *-*       LOADER INSERT               S1A00340
0008 282F                   35 | ES1   STS     STAT                                  S1A00350
0009 2001                   36 |       LDS     1         SUBTRACT ENTRY, OVERFLOW ON S1A00360
000A 700A                   37 |       MDX     COMM                                  S1A00370
                            38 | *                                                   S1A00380
                            39 | *ADD ENTRIES                                        S1A00390
                            40 | *                                                   S1A00400
000B 692E                   41 | EADD  STX   1 SAVE+1    SAVE XR1                    S1A00410
000C C400 0000              42 |       LD   L  *-*       LOADER INSERT               S1A00420
000E 6100                   43 |       LDX   1 0         XR1 NOT USED,SET TO ZERO    S1A00430
000F 2828                   44 |       STS     STAT                                  S1A00440
0010 7004                   45 |       MDX     COMM                                  S1A00450
0011 6928                   46 | EADDX STX   1 SAVE+1    SAVE XR1                    S1A00460
0012 C400 0000              47 |       LD   L  *-*       LOADER INSERT               S1A00470
0014 2823                   48 |       STS     STAT                                  S1A00480
                            49 | *                                                   S1A00490
                            50 | *GET RETURN ADDRESS,AND LOAD ADDEND                 S1A00500
                            51 | *                                                   S1A00510
0015 D003                   52 | COMM  STO     *+3                                   S1A00520
0016 8042                   53 |       A       ONE                                   S1A00530
0017 D024                   54 |       STO     EXIT+1    BUILD EXIT                  S1A00540
0018 7580 0000              55 |       MDX  I1 *-*       MODIFY XR1 BY OPND ADDR     S1A00550
001A 1000                   56 |       NOP               MAY SKIP                    S1A00560
001B C102                   57 |       LD    1 2         GET THE TWO WORD ADDEND     S1A00570
001C 18D0                   58 |       RTE     16        MANTISSA TO ACC AND EXT     S1A00580
001D C101                   59 |       LD    1 1                                     S1A00590
001E 4C01 004ER             60 |       BSC  L  SARG,O    IF SUB ENTRY,BR TO REVERSE  S1A00600
                            61 | *                       SIGN OF SUBTRAHEND          S1A00610
                            62 | *COMPUTE AND PERFORM SHIFT ON ADDEND,PERFORM ADD    S1A00620
                            63 | *                                                   S1A00630
0020 D831                   64 | STB   STD     BARG      SAVE ADDEND (OR SUBTRAHEND) S1A00640
0021 C100                   65 |       LD    1 0         GET ADDEND EXPONENT,SAVE    S1A00650
0022 D031                   66 |       STO     TEMP                                  S1A00660
0023 937D                   67 |       S     3 125       SUB AUGEND EXPONENT         S1A00670
0024 4C30 003DR             68 |       BSC  L  FLIP,-Z   BR TO FLIP IF ADDEND LARGER S1A00680
0026 F02E                   69 |       EOR     ALL1      MAKE SHIFT CONSTANT OF TWOS S1A00690
0027 8033                   70 |       A       SRT1      COMPLEMENT OF DIFFERENCE    S1A00700
0028 D006                   71 |       STO     RTS                                   S1A00710
0029 902D                   72 |       S       RANGK     CHECK RANGE OF SHIFT        S1A00720
002A 4C30 0034R             73 |       BSC  L  NORM+1,-Z IF GT 31,GO RET ONLY (FAC)  S1A00730
002C C025                   74 |       LD      BARG      GET ADDEND                  S1A00740
002D 4828                   75 |       BSC     +Z        IF NEG,SUB ONE FOR 2S COMP- S1A00750
002E 9829                   76 |       SD      D1        LEMENT ADJUSTMENT.          S1A00760
002F 1880                   77 | RTS   SRT     *-*       SCALE TO MATCH AUGEND       S1A00770
0030 4828                   78 |       BSC     +Z        IF NEG,RESTORE ONE          S1A00780
0031 8826                   79 |       AD      D1                                    S1A00790
0032 8B7E                   80 |       AD    3 126       PERFORM ADDITION/SUB        S1A00800
                            81 | *                                                   S1A00810
                            82 | *PREPARE TO EXIT                                    S1A00820
                            83 | *                                                   S1A00830
0033 DB7E                   84 | NORM  STD   3 126       SAVE SUM IN FAC             S1A00840
0034 4C01 005BR             85 |       BSC  L  OFLW,O    IF OVFLO,BR TO SHIFT RT     S1A00850
0036 1559*9500              86 |       LIBF    NORM      NORMALIZE RSLT              S1A00860
0037 0605*90C0              87 | OFT   LIBF    FARC      SET ERROR CONDITIONS        S1A00870
0038 2000                   88 | STAT  LDS     *-*       RESTORE STATUS              S1A00880
0039 6500 0000              89 | SAVE  LDX  L1 *-*       RESTORE XR1                 S1A00890
003B 4C00 0000              90 | EXIT  BSC  L  *-*       RET TO MAIN PROG            S1A00900
                            91 | *                                                   S1A00910
                            92 | *REVERSE THE ROLE OF ADDEND AND AUGEND              S1A00920
                            93 | *                                                   S1A00930
003D 8018                   94 | FLIP  A       SRTO      SHIFT RT 0 CONSTANT         S1A00940
003E D00A                   95 |       STO     RTSF      SAVE SCALE SHIFT            S1A00950
003F 9017                   96 |       S       RANGK     CHECK RANGE OF SHIFT        S1A00960
0040 4C08 0044R             97 |       BSC  L  *+2,+     IF OUT OF RANGE,SET         S1A00970
0042 C014                   98 |       LD      RANGK     SCALE SHIFT TO 31.          S1A00980
0043 D005                   99 |       STO     RTSF                                  S1A00990
0044 C00F                  100 |       LD      TEMP      GET ADDEND EXPONENT AND     S1A01000
0045 D37D                  101 |       STO   3 125       PUT IN FAC                  S1A01010
0046 CB7E                  102 |       LDD   3 126       GET AUGEND                  S1A01020
0047 4828                  103 |       BSC     +Z        IF NEG,SUB ONE FOR 2S COMP- S1A01030
0048 980F                  104 |       SD      D1        LEMENT ADJUSTMENT.          S1A01040
0049 1880                  105 | RTSF  SRT     *-*       SCALE SHIFT                 S1A01050
004A 4828                  106 |       BSC     +Z        IF NEG,RESTORE ONE          S1A01060
004B 880C                  107 |       AD      D1                                    S1A01070
004C 8805                  108 |       AD      BARG      PERFORM ADD/SUB             S1A01080
004D 70E5                  109 |       MDX     NORM      RET TO NORMALIZE RSLT       S1A01090
                           110 | *                                                   S1A01100
                           111 | *IF SUBTRACT ENTRY USED,REVERSE SIGN OF SUBTRAHEND  S1A01110
                           112 | *                                                   S1A01120
004E D803                  113 | SARG  STD     BARG      SAVE ADDEND                 S1A01130
004F 10A0                  114 |       SLT     32        REVERSE SIGN, RESULT        S1A01140
0050 9801                  115 |       SD      BARG      IN ACC AND EXT.             S1A01150
0051 70CE                  116 |       MDX     STB       GO TO COMPUTE SUM           S1A01160
                           117 | *                                                   S1A01170
                           118 | *CONSTANTS AND BUFFER AREA                          S1A01180
                           119 | *                                                   S1A01190
0052 0000 0000             120 | BARG  DEC     0.0       ADDEND MANTISSA BUFFER      S1A01200
0054 0000                  121 | TEMP  DC      /0        ADDEND EXPONENT STG         S1A01210
0055 FFFF                  122 | ALL1  DC      /FFFF     TWOS COMPLEMENT MASK        S1A01220
0056 1880                  123 | SRTO  SRT     0         SHIFT CONSTANT              S1A01230
0057 189F                  124 | RANGK SRT     31        SHIFT RANGE CONSTANT        S1A01240
0058 0000 0001             125 | D1    DEC     1         TWO WORD ONE                S1A01250
005A 8000                  126 | SINK  DC      /8000     SIGN BIT MASK               S1A01260
                           127 | *                                                   S1A01270
                           128 | *SHIFT RSLT RT ONE TO COMPENSATE FOR OVERFLOW.      S1A01280
                           129 | *                                                   S1A01290
005B 1881                  130 | OFLW  SRT     1         PERFORM SHIFT AND           S1A01300
005C F0FD                  131 |       EOR     SINK      CORRECT SIGN BIT.           S1A01310
005D DB7E                  132 |       STD   3 126                                   S1A01320
005E C37D                  133 |       LD    3 125       INCREMENT RSLT EXPONENT     S1A01330
005F 80F9                  134 |       A       ONE       BY ONE TO COMPENSATE FOR    S1A01340
0060 D37D                  135 |       STO   3 125       SHIFT.                      S1A01350
0061 70D5                  136 |       MDX     OFT       GO TO EXIT                  S1A01360
005BR                      137 | SRT1  EQU     OFLW      DEFINE SHIFT RT 1 CON       S1A01370
0059R                      138 | ONE   EQU     D1+1      DEFINE SINGLE WORD ONE      S1A01380
0062                       139 |       END                                           S1A01390
 
There were no errors in this assembly
 
=== CROSS REFERENCES ==========================================================
Name  Val   Defd  Referenced
ALL1  0055R  122   69
BARG  0052R  120   64   74  108  113  115
COMM  0015R   52   37   45
D1    0058R  125   76   79  104  107  138
EADD  000BR   41
EADDX 0011R   46
ES1   0008R   35   32
ESUB  0000R   29
ESUBX 0005R   33
EXIT  003BR   90   54
FLIP  003DR   94   68
NORM  0033R   84   73  109
OFLW  005BR  130   85  137
OFT   0037R   87  136
ONE   0059R  138   53  134
RANGK 0057R  124   72   96   98
RTS   002FR   77   71
RTSF  0049R  105   95   99
SARG  004ER  113   60
SAVE  0039R   89   29   33   41   46
SINK  005AR  126  131
SRT1  005BR  137   70
SRTO  0056R  123   94
STAT  0038R   88   35   44   48
STB   0020R   64  116
TEMP  0054R  121   66  100