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