ASM1130 CROSS ASSEMBLER V1.22 -- V2M12 -- Sun Nov 1 19:25:07 2020 Source File: \s1empy.asm 1 | *************************************************** S1G00010 2 | * * S1G00020 3 | * SUBROUTINE NAME- * S1G00030 4 | * FULL NAME- EXTENDED PRECISION FLOATING- * S1G00040 5 | * POINT MULTIPLY SUBPROGRAM. * S1G00050 6 | * CODE NAME- EMPY/EMPYX * S1G00060 7 | * PURPOSE- THIS SUBPROGRAM COMPUTES THE PRODUCT * S1G00070 8 | * OF TWO EXTENDED PRECISION FLOATING-POINT * S1G00080 9 | * NUMBERS. * S1G00090 10 | * METHOD-SEE IBM 1130 SUBROUTINE LIBRARY MANUAL.* S1G00100 11 | * CAPABILITIES AND LIMITATIONS- SEE IBM 1130 * S1G00110 12 | * SUBROUTINE LIBRARY MANUAL. * S1G00120 13 | * SPECIAL FEATURES- N/A * S1G00130 14 | * ADDITIONAL INFORMATION- * S1G00140 15 | * ESTIMATED EXECUTION TIME- SEE IBM 1130 * S1G00150 16 | * SUBROUTINE LIBRARY MANUAL * S1G00160 17 | * * S1G00170 18 | *************************************************** S1G00180 LIBF EMPY -V1. 20 | LIBR S1G00200 21 | EPR S1G00210 22 | ENT EMPY LIBF S1G00220 23 | ENT EMPYX S1G00230 0000 6926 24 | EMPYX STX 1 EMX1+1 SAVE XR1 S1G00240 0001 C400 0000 25 | LD L *-* LOADER INSERT. S1G00250 0003 7004 26 | MDX EMC S1G00260 0004 6922 27 | EMPY STX 1 EMX1+1 SAVE XR1 S1G00270 0005 C400 0000 28 | LD L *-* LOADER INSERT. S1G00280 0007 6100 29 | LDX 1 0 SUPPRESS INDEXING. S1G00290 0008 D003 30 | EMC STO *+3 STORE ADDR OF OPND S1G00300 0009 8022 31 | A MCN+1 INCR ADDR BY ONE S1G00310 000A D01F 32 | STO MX+1 BUILD EXIT S1G00320 000B 7580 0000 33 | MDX I1 *-* OPND ADDRESS INTO XR1. S1G00330 000D 1000 34 | NOP IF MDX CAUSES BR,SKIP NOP S1G00340 35 | * S1G00350 36 | *COMPUTE PRODUCT S1G00360 37 | * S1G00370 000E C37D 38 | CMN LD 3 125 GET FAC EXPONENT S1G00380 000F 8100 39 | A 1 0 ADD ARGUMENT EXPONENT S1G00390 0010 901A 40 | S MCN CORR FACTOR OF 128 S1G00400 0011 D37D 41 | STO 3 125 PRODUCT EXPONENT INTO FAC S1G00410 0012 C102 42 | LD 1 2 GET ARGUMENT MANTISSA S1G00420 0013 18D0 43 | RTE 16 INTO ACC AND EXT S1G00430 0014 C101 44 | LD 1 1 S1G00440 0015 2750*4000 45 | LIBF XMD MULTIPLY FRACTIONS. S1G00450 0016 DB7E 46 | STD 3 126 STORE IN FAC S1G00460 47 | * S1G00470 48 | *GET ABSOLUTE VALUE OF MANTISSA AND NORMALIZE S1G00480 49 | * S1G00490 0017 4C10 001BR 50 | BSC L *+2,- BR IF NON-NEG S1G00500 0019 10A0 51 | SLT 32 IF NEG,REVERSE SIGN S1G00510 001A 9B7E 52 | SD 3 126 S1G00520 001B 1081 53 | SLT 1 S1G00530 001C 4C08 0024R 54 | BSC L NONP,+ BR IF NOT PTV S1G00540 001E C37D 55 | LD 3 125 IF PTV,GET EXPONENT S1G00550 001F 900C 56 | S MCN+1 AND DECR BY ONE S1G00560 0020 D37D 57 | STO 3 125 S1G00570 0021 CB7E 58 | LDD 3 126 GET MANTISSA AND S1G00580 0022 1081 59 | SLT 1 SHIFT LEFT ONE S1G00590 0023 DB7E 60 | STD 3 126 S1G00600 0024 4818 61 | NONP BSC +- BR IF MANTISSA NON-ZERO S1G00610 0025 D37D 62 | STO 3 125 ZERO CHARACTERISTIC S1G00620 0026 6500 0000 63 | EMX1 LDX L1 RESTORE XR1. S1G00630 0028 0605*90C0 64 | LIBF FARC ERROR ROUTINE S1G00640 0029 4C00 0000 65 | MX BSC L *-* EXIT. S1G00650 66 | * S1G00660 67 | *CONSTANTS AREA S1G00670 68 | * S1G00680 002B 0080 69 | MCN DC 128 CONSTANT TO SCALE EXPONENT S1G00690 002C 0001 70 | DC 1 SINGLE WORD ONE S1G00700 002D 71 | END S1G00710 There were no errors in this assembly === CROSS REFERENCES ========================================================== Name Val Defd Referenced CMN 000ER 38 EMC 0008R 30 26 EMPY 0004R 27 EMPYX 0000R 24 EMX1 0026R 63 24 27 MCN 002BR 69 31 40 56 MX 0029R 65 32 NONP 0024R 61 54