ASM1130 CROSS ASSEMBLER V1.22 -- V2M12 -- Sun Nov 1 19:25:07 2020 Source File: \r1faxi.asm 1 | *************************************************** R1B00010 2 | * * R1B00020 3 | * SUBROUTINE NAME- * R1B00030 4 | * FULL NAME- STANDARD PRECISION FLOATING- * R1B00040 5 | * POINT A**I FUNCTION. * R1B00050 6 | * CODE NAME- FAXI/FAXIX * R1B00060 7 | * PURPOSE- THIS FUNCTION COMPUTES A STANDARD * R1B00070 8 | * PRECISION FLOATING POINT NUMBER TAKEN TO AN* R1B00080 9 | * INTEGER EXPONENT. * R1B00090 10 | * METHOD-SEE IBM 1130 SUBROUTINE LIBRARY MANUAL.* R1B00100 11 | * CAPABILITIES AND LIMITATIONS- SEE IBM 1130 * R1B00110 12 | * SUBROUTINE LIBRARY MANUAL. * R1B00120 13 | * SPECIAL FEATURES- N/A * R1B00130 14 | * ADDITIONAL INFORMATION- * R1B00140 15 | * ESTIMATED EXECUTION TIME- SEE IBM 1130 * R1B00150 16 | * SUBROUTINE LIBRARY MANUAL * R1B00160 17 | * * R1B00170 18 | *************************************************** R1B00180 LIBF FAXI -V1. 20 | LIBR R1B00200 21 | SPR R1B00210 22 | ENT FAXI R1B00220 23 | ENT FAXIX R1B00230 0000 6932 24 | FAXIX STX 1 SAVE+1 SAVE XR1 R1B00240 0001 C400 0000 25 | LD L *-* CALL+1 R1B00250 0003 7004 26 | MDX COM R1B00260 0004 692E 27 | FAXI STX 1 SAVE+1 SAVE XR1 R1B00270 0005 C400 0000 28 | LD L *-* CALL+1 R1B00280 0007 6100 29 | LDX 1 0 XR1=ZERO R1B00290 0008 D003 30 | COM STO *+3 R1B00300 0009 8039 31 | A ONE BUILD EXIT R1B00310 000A D02A 32 | STO EXIT+1 R1B00320 000B 7580 0000 33 | MDX I1 *-* OP ADDRESS INTO XR1 R1B00330 000D 1000 34 | NOP IF MDX CAUSES BR, SKIP NOP R1B00340 35 | * R1B00350 36 | *CHECK FOR SPECIAL CONDITIONS. GET SIGN OF I. USE R1B00360 37 | *ABSOLUTE VALUE OF I. INITIALIZE FACTR. R1B00370 38 | * R1B00380 000E C37E 39 | LD 3 126 GET FLT PT BASE=A R1B00390 000F 4C18 003CR 40 | BSC L ZOER,+- BR A=ZERO R1B00400 0011 C100 41 | LD 1 0 GET INTEGER EXPONENT=I R1B00410 0012 4C18 0039R 42 | BSC L STONE,+- BR I=ZERO R1B00420 0014 C831 43 | LDD FL1 GET FLT PT 1 R1B00430 0015 D834 44 | STD FACTR FACTR=1 R1B00440 0016 1010 45 | SLA 16 CLEAR ACCUMULATOR R1B00450 0017 9100 46 | S 1 0 GET - I R1B00460 0018 4808 47 | BSC + SKIP IF -I IS PTV R1B00470 0019 C100 48 | LD 1 0 -I NEG,GET I R1B00480 001A D029 49 | STO I STORE ABS VALUE OF I R1B00490 50 | * R1B00500 51 | *COMPUTE A**I R1B00510 52 | * R1B00520 001B 068A*3580 53 | EVEN LIBF FSTO GET CONTENTS OF FAC R1B00530 001C 0048R 54 | DC A STORE IN A R1B00540 001D C026 55 | LD I R1B00550 001E 4C04 0029R 56 | BSC L MULT,E BR IF LEAST BIT OF I = ONE R1B00560 0020 1801 57 | SHRT1 SRA 1 REPLACE I WITH I/2 R1B00570 0021 D022 58 | STO I R1B00580 0022 4C18 002FR 59 | BSC L NEGCK,+- BR IF I=ZERO R1B00590 0024 064C*4000 60 | LIBF FLD GET (A) INTO FAC R1B00600 0025 0048R 61 | DC A R1B00610 0026 0651*7A00 62 | LIBF FMPY MPY,STORE (A)((A) IN FAC R1B00620 0027 0048R 63 | DC A R1B00630 0028 70F2 64 | MDX EVEN R1B00640 0029 0651*7A00 65 | MULT LIBF FMPY R1B00650 002A 004AR 66 | DC FACTR R1B00660 002B 068A*3580 67 | LIBF FSTO R1B00670 002C 004AR 68 | DC FACTR FACTR=FACTR*A R1B00680 002D C016 69 | LD I GET I R1B00690 002E 70F1 70 | MDX SHRT1 RET TO REITERATE R1B00700 71 | * R1B00710 72 | *IF I WAS NEGATIVE,TAKE RECIPROCAL OF RESULT R1B00720 73 | * R1B00730 002F C100 74 | NEGCK LD 1 0 GET ORIGINAL I R1B00740 0030 4C08 0036R 75 | BSC L RCPR,+ BR IF I NEGATIVE R1B00750 0032 6500 0000 76 | SAVE LDX L1 *-* RESTORE XR1 R1B00760 0034 4C00 0000 77 | EXIT BSC L *-* (FAC)=(FACTR) R1B00770 78 | * R1B00780 79 | *SUBROUTINES TO TAKE RECIPROCAL, LOAD ONE INTO FAC R1B00790 80 | *OR SET ERROR INDICATORS. R1B00800 81 | * R1B00810 0036 0612*5640 82 | RCPR LIBF FDVR R1B00820 0037 0046R 83 | DC FL1 R1B00830 0038 70F9 84 | MDX SAVE (FAC)=1/(FACTR) R1B00840 0039 064C*4000 85 | STONE LIBF FLD SINCE I=O,A NOT ZERO R1B00850 003A 0046R 86 | DC FL1 SET A**I=1 R1B00860 003B 70F6 87 | MDX SAVE (FAC)=1 R1B00870 003C C100 88 | ZOER LD 1 0 CHECK I. IF NOT POSITIVE, R1B00880 003D 4C30 0032R 89 | BSC L SAVE,-Z TURN ON A**I PROGRAM R1B00890 003F C00C 90 | LD AIEBT ERROR INDICATOR. R1B00900 0040 EB7C 91 | OR 3 124 R1B00910 0041 D37C 92 | STO 3 124 R1B00920 0042 70EF 93 | MDX SAVE R1B00930 94 | * R1B00940 95 | *CONSTANTS AREA R1B00950 96 | * R1B00960 0043 0001 97 | ONE DC 1 SINGLE WORD ONE R1B00970 0044 0000 98 | I DC 0 STORE INTEGER EXPONENT R1B00980 0046 4000 0081 99 | FL1 DEC 1.0 FLT PT STD PREC ONE R1B00990 0048 0000 0000 100 | A DEC 0.0 STORE FLT PT BASE R1B01000 004A 0000 0000 101 | FACTR DEC 0.0 STORE RESULTS R1B01010 004C 0020 102 | AIEBT DC /20 BIT 10--A**I ERROR BIT. R1B01020 004D 103 | END R1B01030 There were no errors in this assembly === CROSS REFERENCES ========================================================== Name Val Defd Referenced A 0048R 100 54 61 63 AIEBT 004CR 102 90 COM 0008R 30 26 EVEN 001BR 53 64 EXIT 0034R 77 32 FACTR 004AR 101 44 66 68 FAXI 0004R 27 FAXIX 0000R 24 FL1 0046R 99 43 83 86 I 0044R 98 49 55 58 69 MULT 0029R 65 56 NEGCK 002FR 74 59 ONE 0043R 97 31 RCPR 0036R 82 75 SAVE 0032R 76 24 27 84 87 89 93 SHRT1 0020R 57 70 STONE 0039R 85 42 ZOER 003CR 88 40