R1FMPY

Table Of Contents
  • [00022] LIBF FMPY -V1.
r1fmpy.lst
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