ASM1130 CROSS ASSEMBLER V1.22 -- V2M12 -- Sun Nov 1 19:25:07 2020
Source File: \s1eaxi.asm
1 | *************************************************** S1B00010
2 | * * S1B00020
3 | * SUBROUTINE NAME- * S1B00030
4 | * FULL NAME- EXTENDED PRECISION FLOATING * S1B00040
5 | * POINT A**I FUNCTION. * S1B00050
6 | * CODE NAME- EAXI/EAXIX * S1B00060
7 | * PURPOSE- THIS SUBPROGRAM COMPUTES AN EXTENDED * S1B00070
8 | * PRECISION FLOATING-POINT BASE TO AN INTEGER* S1B00080
9 | * EXPONENT. * S1B00090
10 | * METHOD-SEE IBM 1130 SUBROUTINE LIBRARY MANUAL.* S1B00100
11 | * CAPABILITIES AND LIMITATIONS- SEE IBM 1130 * S1B00110
12 | * SUBROUTINE LIBRARY MANUAL. * S1B00120
13 | * SPECIAL FEATURES- N/A * S1B00130
14 | * ADDITIONAL INFORMATION- * S1B00140
15 | * ESTIMATED EXECUTION TIME- SEE IBM 1130 * S1B00150
16 | * SUBROUTINE LIBRARY MANUAL * S1B00160
17 | * * S1B00170
18 | *************************************************** S1B00180
LIBF EAXI -V1.
20 | LIBR S1B00200
21 | EPR S1B00210
22 | ENT EAXI S1B00220
23 | ENT EAXIX S1B00230
0000 6934 24 | EAXIX STX 1 SAVE+1 SAVE XR1 S1B00240
0001 C400 0000 25 | LD L *-* LOADER INSERT S1B00250
0003 7004 26 | MDX COM S1B00260
0004 6930 27 | EAXI STX 1 SAVE+1 SAVE XR1 S1B00270
0005 C400 0000 28 | LD L *-* LOADER INSERT S1B00280
0007 6100 29 | LDX 1 0 INITIALIZE XR1-NOT USED S1B00290
0008 D003 30 | COM STO *+3 S1B00300
0009 803B 31 | A ONE BUILD EXIT S1B00310
000A D02C 32 | STO EXIT+1 S1B00320
000B 7580 0000 33 | MDX I1 *-* OPND ADDR INTO XR1 S1B00330
000D 1000 34 | NOP MAY SKIP S1B00340
35 | * S1B00350
36 | *CHECK FOR SPECIAL CONDITIONS. GET ABSOLUTE VALUE S1B00360
37 | *OF I. INITIALIZE FACTOR. S1B00370
38 | * S1B00380
000E C37E 39 | LD 3 126 GET BASE=A S1B00390
000F 4C18 003ER 40 | BSC L ZOER,+- BR IF A=0 TO CHK FOR ERROR S1B00400
0011 C100 41 | LD 1 0 GET EXPONENT=I S1B00410
0012 4C18 003BR 42 | BSC L STONE,+- BR IF I=O TO RET ONE S1B00420
0014 C032 43 | LD FL1 GET FLT PT ONE S1B00430
0015 D037 44 | STO FACTR SET FACTR TO EXTENDED S1B00440
0016 C831 45 | LDD FL1+1 PRECISION FLT PT ONE-- S1B00450
0017 D836 46 | STD FACTR+1 INITIALIZE PRODUCT LOOP. S1B00460
0018 1010 47 | SLA 16 CALC ABS VALUE OF I S1B00470
0019 9100 48 | S 1 0 AND STORE IN I S1B00480
001A 4808 49 | BSC + S1B00490
001B C100 50 | LD 1 0 S1B00500
001C D029 51 | STO I S1B00510
52 | * S1B00520
53 | *COMPUTE A**I S1B00530
54 | * S1B00540
001D 058A*3580 55 | EVEN LIBF ESTO S1B00550
001E 004AR 56 | DC A A=A*A S1B00560
001F C026 57 | LD I PUT ABS VALUE OF I IN A REG S1B00570
0020 4C04 002BR 58 | BSC L MULT,E BR IF LEAST BIT OF I = ONE S1B00580
0022 1801 59 | SHRT1 SRA 1 I=I/2 S1B00590
0023 D022 60 | STO I S1B00600
0024 4C18 0031R 61 | BSC L NEGCK,+- IF I=ZERO,GO CHK FOR NEG I S1B00610
0026 054C*4000 62 | LIBF ELD OTHERWISE,GET CURRENT S1B00620
0027 004AR 63 | DC A CONTENTS OF A AND SQUARE S1B00630
0028 0551*7A00 64 | LIBF EMPY THEM,LEAVING RSLT IN FAC. S1B00640
0029 004AR 65 | DC A S1B00650
002A 70F2 66 | MDX EVEN REPEAT LOOP S1B00660
002B 0551*7A00 67 | MULT LIBF EMPY IF PRESENT I VALUE IS ODD, S1B00670
002C 004DR 68 | DC FACTR MPY FACTR BY A TO ACCOUNT S1B00680
002D 058A*3580 69 | LIBF ESTO FOR THE BIT LOST IN SHIFT. S1B00690
002E 004DR 70 | DC FACTR S1B00700
002F C016 71 | LD I RESTORE I TO A REG S1B00710
0030 70F1 72 | MDX SHRT1 RET TO SQUARE A S1B00720
73 | * S1B00730
74 | *IF I WAS NEGATIVE, TAKE RECIPROCAL OF RESULT S1B00740
75 | * S1B00750
0031 C100 76 | NEGCK LD 1 0 GET SIGN OF I S1B00760
0032 4C08 0038R 77 | BSC L RCPR,+ IF NEG,GO TO GET RECIPROCAL S1B00770
0034 6500 0000 78 | SAVE LDX L1 *-* RESTORE XR1 S1B00780
0036 4C00 0000 79 | EXIT BSC L *-* EXIT S1B00790
80 | * S1B00800
81 | *SUBROUTINES TO TAKE RECIPROCAL,OR LOAD ONE INTO S1B00810
82 | *FAC,OR SET ERROR CONDITION INDICATORS. S1B00820
83 | * S1B00830
0038 0512*5640 84 | RCPR LIBF EDVR TAKE RECIPROCAL OF FACTR S1B00840
0039 0047R 85 | DC FL1 AND PUT IN FAC. S1B00850
003A 70F9 86 | MDX SAVE GO TO EXIT S1B00860
003B 054C*4000 87 | STONE LIBF ELD A NOT ZERO,I=ZERO=RETURN S1B00870
003C 0047R 88 | DC FL1 FLT PT ONE IN FAC S1B00880
003D 70F6 89 | MDX SAVE GO TO EXIT S1B00890
003E C100 90 | ZOER LD 1 0 A=ZERO.GET SIGN OF I S1B00900
003F 4C30 0034R 91 | BSC L SAVE,-Z IF PTV,EXIT WITH FAC=ZERO S1B00910
0041 C00E 92 | LD AIEBT IF NOT PTV,TURN ON ERROR S1B00920
0042 EB7C 93 | OR 3 124 INDICATOR. S1B00930
0043 D37C 94 | STO 3 124 S1B00940
0044 70EF 95 | MDX SAVE GO TO EXIT S1B00950
96 | * S1B00960
97 | *CONSTANTS AND BUFFER AREA S1B00970
98 | * S1B00980
0045 0001 99 | ONE DC 1 SINGLE WORD ONE S1B00990
0046 100 | BSS E 0 S1B01000
0046 0000 101 | I DC 0 EXPONENT BUFFER S1B01010
0047 0081 4000 0000 102 | FL1 XFLC 1.0 EXTENDED PREC FLT PT ONE S1B01020
004A 0000 0000 0000 103 | A XFLC 0.0 BASE BUFFER S1B01030
004D 0000 0000 0000 104 | FACTR XFLC 0.0 PRODUCT BUFFER S1B01040
0050 0020 105 | AIEBT DC /20 BIT 10--A**I ERROR BIT. S1B01050
0051 106 | END S1B01060
There were no errors in this assembly
=== CROSS REFERENCES ==========================================================
Name Val Defd Referenced
A 004AR 103 56 63 65
AIEBT 0050R 105 92
COM 0008R 30 26
EAXI 0004R 27
EAXIX 0000R 24
EVEN 001DR 55 66
EXIT 0036R 79 32
FACTR 004DR 104 44 46 68 70
FL1 0047R 102 43 45 85 88
I 0046R 101 51 57 60 71
MULT 002BR 67 58
NEGCK 0031R 76 61
ONE 0045R 99 31
RCPR 0038R 84 77
SAVE 0034R 78 24 27 86 89 91 95
SHRT1 0022R 59 72
STONE 003BR 87 42
ZOER 003ER 90 40