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