ASM1130 CROSS ASSEMBLER V1.22 -- V2M12 -- Sun Nov 1 19:25:07 2020
Source File: \r1fmpy.asm
1 | *************************************************** R1G00010
2 | * * R1G00020
3 | * SUBROUTINE NAME- * R1G00030
4 | * FULL NAME- STANDARD PRECISION FLOATING- * R1G00040
5 | * POINT MULTIPLY FUNCTION. * R1G00050
6 | * CODE NAME- FMPY/FMPYX * R1G00060
7 | * PURPOSE- THIS FUNCTION COMPUTES THE PRODUCT OF* R1G00070
8 | * TWO STANDARD PRECISION FLOATING-POINT * R1G00080
9 | * NUMBERS. * R1G00090
10 | * METHOD-SEE IBM 1130 SUBROUTINE LIBRARY MANUAL.* R1G00100
11 | * CAPABILITIES AND LIMITATIONS- SEE IBM 1130 * R1G00110
12 | * SUBROUTINE LIBRARY MANUAL. * R1G00120
13 | * SPECIAL FEATURES- N/A * R1G00130
14 | * ADDITIONAL INFORMATION- * R1G00140
15 | * ESTIMATED EXECUTION TIME- SEE IBM 1130 * R1G00150
16 | * SUBROUTINE LIBRARY MANUAL * R1G00160
17 | * * R1G00170
18 | *************************************************** R1G00180
LIBF FMPY -V1.
20 | LIBR R1G00200
21 | SPR R1G00210
22 | ENT FMPY R1G00220
23 | ENT FMPYX R1G00230
0000 692B 24 | FMPYX STX 1 SAVE+1 SAVE XR1 R1G00240
0001 C400 0000 25 | LD L *-* CALL+1 R1G00250
0003 7004 26 | MDX COM R1G00260
0004 6927 27 | FMPY STX 1 SAVE+1 SAVE XR1 R1G00270
0005 C400 0000 28 | LD L *-* CALL+1 R1G00280
0007 6100 29 | LDX 1 0 XR1=ZERO R1G00290
0008 D004 30 | COM STO *+4 STORE CALL+1 R1G00300
0009 2820 31 | STS STAT STORE STATUS R1G00310
000A 8028 32 | A ONE BUILD EXIT R1G00320
000B D022 33 | STO EXIT+1 R1G00330
000C 7580 0000 34 | MDX I1 *-* EFFECTIVE OP ADDR IN XR1 R1G00340
000E 1000 35 | NOP IF MDX CAUSES BR,SKIP NOP R1G00350
36 | * R1G00360
37 | *COMPUTE PRODUCT R1G00370
38 | * R1G00380
000F C900 39 | LDD 1 0 LOAD MULTIPLIER R1G00390
0010 D81F 40 | STD BARG STORE MULTIPLIER R1G00400
0011 18D0 41 | RTE 16 STORE EXPONENT IN ACC R1G00410
0012 281E 42 | STS BARG+1 STRIP OFF EXPONENT IN BARG R1G00420
0013 F01D 43 | EOR BARG+1 EXPONENENT ONLY IN ACC R1G00430
0014 837D 44 | A 3 125 ADD FAC EXPONENT LESS 128 R1G00440
0015 901C 45 | S EXES R1G00450
0016 D37D 46 | STO 3 125 STORE NEW EXPONENT IN FAC R1G00460
0017 C818 47 | LDD BARG GET MANTISSA FROM FAC R1G00470
0018 2750*4880 48 | LIBF XMDS 24-BIT PREC MPY R1G00480
0019 DB7E 49 | STD 3 126 PRODUCT PUT IN FAC R1G00490
50 | * R1G00500
51 | *GET ABSOLUTE VALUE OF MANTISSA AND NORMALIZE R1G00510
52 | * R1G00520
001A 4C10 001ER 53 | BSC L *+2,- BR IF NON-NEG R1G00530
001C 10A0 54 | SLT 32 IF NEG,REVERSE SIGN R1G00540
001D 9B7E 55 | SD 3 126 R1G00550
001E 1081 56 | SLT 1 CHECK FOR SIGNIFICANT BIT R1G00560
001F 4C08 0027R 57 | BSC L NTPOS,+ BR IF NOT PTV R1G00570
0021 C37D 58 | LD 3 125 IF PTV,DECR EXPONENT BY R1G00580
0022 9010 59 | S ONE ONE R1G00590
0023 D37D 60 | STO 3 125 R1G00600
0024 CB7E 61 | LDD 3 126 AND SHIFT MANTISSA LEFT R1G00610
0025 1081 62 | SLT 1 BY ONE R1G00620
0026 DB7E 63 | STD 3 126 R1G00630
0027 4818 64 | NTPOS BSC +- SKIP IF NOT ZERO R1G00640
0028 D37D 65 | STO 3 125 IF ZERO MAKE EXPONENT ZERO R1G00650
0029 0605*90C0 66 | LIBF FARC CHK OVERFLOW/UNDERFLOW R1G00660
002A 2000 67 | STAT LDS *-* STORE STATUS R1G00670
002B 6500 0000 68 | SAVE LDX L1 *-* STORE XR1 R1G00680
002D 4C00 0000 69 | EXIT BSC L *-* RET TO CALL+2 R1G00690
70 | * R1G00700
71 | *CONSTANTS AREA R1G00710
72 | * R1G00720
0030 0000 0000 73 | BARG DEC 0.0 STORE MULTIPLIER R1G00730
0032 0080 74 | EXES DC /80 EXPONENT EXCESS=128 R1G00740
0033 0001 75 | ONE DC 1 SINGLE WORD ONE R1G00750
0034 76 | END R1G00760
There were no errors in this assembly
=== CROSS REFERENCES ==========================================================
Name Val Defd Referenced
BARG 0030R 73 40 42 43 47
COM 0008R 30 26
EXES 0032R 74 45
EXIT 002DR 69 33
FMPY 0004R 27
FMPYX 0000R 24
NTPOS 0027R 64 57
ONE 0033R 75 32 59
SAVE 002BR 68 24 27
STAT 002AR 67 31