R2FEXP

Table Of Contents
  • [00028] CALL FEXP -V1.
r2fexp.lst
ASM1130 CROSS ASSEMBLER V1.22 -- V2M12 -- Sun Nov  1 19:25:07 2020
 
Source File: \r2fexp.asm 
                             1 | *************************************************** R2D00010
                             2 | *                                                 * R2D00020
                             3 | *   SUBROUTINE NAME-                              * R2D00030
                             4 | *      FULL NAME- STANDARD PRECISION FLOATING-    * R2D00040
                             5 | *         POINT EXPONENTIAL FUNCTION.             * R2D00050
                             6 | *      CODE NAME- FXPN/FEXP                       * R2D00060
                             7 | *   PURPOSE- THIS SUBPROGRAM COMPUTES THE FLOATING* R2D00070
                             8 | *      POINT EXPONENTIAL OF A STANDARD PRECISION  * R2D00080
                             9 | *      FLOATING-POINT NUMBER.                     * R2D00090
                            10 | *   METHOD-SEE IBM 1130 SUBROUTINE LIBRARY MANUAL.* R2D00100
                            11 | *   CAPABILITIES AND LIMITATIONS- SEE IBM 1130    * R2D00110
                            12 | *      SUBROUTINE LIBRARY MANUAL.                 * R2D00120
                            13 | *   SPECIAL FEATURES- N/A                         * R2D00130
                            14 | *   ADDITIONAL INFORMATION-                       * R2D00140
                            15 | *      ESTIMATED EXECUTION TIME- SEE IBM 1130     * R2D00150
                            16 | *         SUBROUTINE LIBRARY MANUAL               * R2D00160
                            17 | *      OTHER- A PERIOD FOLLOWED BY B, APPEARING TO* R2D00170
                            18 | *         THE RIGHT OF COMMENT, INDICATES THAT THE* R2D00180
                            19 | *         NUMBER FOLLOWING IS THE BINARY POINT OF * R2D00190
                            20 | *         THE NUMBER PRESENTLY IN THE ACCUMULATOR.* R2D00200
                            21 | *         LET C REFER TO THE TRUE EXPONENT OF THE * R2D00210
                            22 | *         INPUT ARGUMENT.                         * R2D00220
                            23 | *                                                 * R2D00230
                            24 | *************************************************** R2D00240
CALL FEXP  -V1.
 
                            26 |       SPR                                           R2D00260
                            27 |       ENT     FEXP      STANDARD FORTRAN NAME       R2D00270
                            28 |       ENT     FXPN                                  R2D00280
0000 0000                   29 | FEXP  DC      0         FORTRAN ENTRY               R2D00290
0001 061C*58D7              30 |       LIBF    FGETP     GET PARAMETER               R2D00300
0002 0000                   31 | FXPN  DC      0         USER ENTRY                  R2D00310
0003 2864                   32 |       STS     EXPS      SAVE STATUS                 R2D00320
0004 6966                   33 |       STX   1 XR1+1     SAVE XR1                    R2D00330
0005 6A67                   34 |       STX   2 XR2+1     SAVE XR2                    R2D00340
0006 C839                   35 |       LDD     LOG2E     GET LOG2E           .B1     R2D00350
0007 2750*4880              36 |       LIBF    XMDS      MPY BY (FAC).       .B1+C   R2D00360
                            37 | *                       LET Y=INPUT ARGUMENT        R2D00370
0008 DB7E                   38 |       STD   3 126       STORE Y*LOG2E IN FAC.B1+C   R2D00380
0009 C37D                   39 |       LD    3 125       GET Y EXPONENT              R2D00390
000A 9041                   40 |       S       X         SUB 128+14.          C-14   R2D00400
000B 4C30 0070R             41 |       BSC  L  OVFL,Z-   BR IF Y EXPONENT TOO BIG    R2D00410
000D 803F                   42 |       A       X+1       SCALE Y EXPONENT BY 3. C+3  R2D00420
000E D003                   43 |       STO     BUF1+1    KEEP SCALED EXPONENT        R2D00430
000F 4C28 0022R             44 |       BSC  L  SRT,+Z    BR IF EXPONENT LT -3        R2D00440
0011 6500 0000              45 | BUF1  LDX  L1 *-*       Y EXPONENT+3 IN XR1   .C-3  R2D00450
0013 C37E                   46 |       LD    3 126       GET Y*LOG2E          .B1+C  R2D00460
0014 1891                   47 | SRTR  SRT     17        MOVE TO EXTENSION   .B18+C  R2D00470
0015 1180                   48 |       SLT   1           SHIFT TO EXPONENT+3  .B15   R2D00480
0016 8037                   49 |       A       X+2       ADD IN EXCESS               R2D00490
0017 D37D                   50 |       STO   3 125       SET THE EXPONENT OF 2=N     R2D00500
0018 1010                   51 |       SLA     16        CLEAR ACCUMULATOR           R2D00510
0019 1082                   52 |       SLT     2         2 BITS USED AS INDR         R2D00520
001A 1001                   53 |       SLA     1         MPY D BY 2                  R2D00530
001B D043                   54 |       STO     D+1                                   R2D00540
001C CB7E                   55 |       LDD   3 126       GET Y*LOG2E         .B1+C   R2D00550
001D 1180                   56 |       SLT   1           CORRECT FOR EXPONENT.B-2    R2D00560
001E E030                   57 |       AND     X+3       MAKE SIGN PTV               R2D00570
001F 9030                   58 |       S       X+4       SUB 1/8                     R2D00580
0020 D829                   59 |       STD     Z         STORE REMAINING FRACTION    R2D00590
0021 7031                   60 |       MDX     EXP2                                  R2D00600
0022 1010                   61 | SRT   SLA     16        CLEAR ACCUMULATOR           R2D00610
0023 90EE                   62 |       S       BUF1+1    REVERSE EXPONENT SIGN.-C-3  R2D00620
0024 D001                   63 |       STO     *+1       STORE PTV EXPONENT IN XR1   R2D00630
0025 6500 0000              64 |       LDX  L1 *-*       PTV EXPONENT IN XR1   .C-3  R2D00640
0027 902A                   65 |       S       C32       CHECK SIZE OF EXPONENT      R2D00650
0028 4810                   66 |       BSC     -         BR IF IN RANGE              R2D00660
0029 6120                   67 |       LDX   1 32        TOO BIG,SET XR1 TO 32       R2D00670
002A CB7E                   68 |       LDD   3 126       GET Y*LOG2E         .B1+C   R2D00680
002B 4828                   69 |       BSC     +Z        BR IF NOT NEG               R2D00690
002C 9807                   70 |       SD      ONE       IF NEG,DECR EXPONENT BY 1   R2D00700
002D 1980                   71 |       SRT   1           CORRECT FOR EXPONENT.B-2    R2D00710
002E 4828                   72 |       BSC     +Z        BR IF NOT NEG               R2D00720
002F 8804                   73 |       AD      ONE       IF NEG,RESTORE 1            R2D00730
0030 DB7E                   74 |       STD   3 126       MODIFIED Y*LOG2E IN FAC     R2D00740
0031 6100                   75 |       LDX   1 0         XR1=ZERO                    R2D00750
0032 70E1                   76 |       MDX     SRTR      GO TO GET N,D,Z             R2D00760
0034 0000 0001              77 | ONE   DEC     1         FLT PT ONE                  R2D00770
0036 7FFF FFFF              78 | HELP  DEC     1.999999999999B1   OVERFLOW CON       R2D00780
0038 45CA E0F4              79 | M8TAB DEC     1.090507734725258B1     2**(1/8)      R2D00790
003A 52FF 6B55              80 |       DEC     1.296839554851010B1     2**(3/8)      R2D00800
003C 62B3 9509              81 |       DEC     1.542210825807941B1     2**(5/8)      R2D00810
003E 7560 6374              82 |       DEC     1.834008086509342B1     2**(5/8)      R2D00820
0040 5C55 1D95              83 | LOG2E DEC     1.442695041288963B1  LOG BASE 2 OF E  R2D00830
0042 162E 42C8              84 | A1    DEC     0.693147079B2        CONSTANTS        R2D00840
0044 01EB FBDD              85 | A2    DEC     0.240226486B4        FOR              R2D00850
0046 001C 6E72              86 | A3    DEC     0.0555301557B6       APPROXIMATING    R2D00860
0048 0001 3B49              87 | A4    DEC     0.0096217399B8       POLYNOMIAL       R2D00870
004A 0000 0000              88 | Z     DEC     0         STORE REMAINDER FRACTION    R2D00880
004C 008E                   89 | X     DC      128+14    CHK SIZE OF EXPONENT        R2D00890
004D 0011                   90 |       DC      14+3      SCALE EXPONENT              R2D00900
004E 0081                   91 |       DC      129       SCALE EXPONENT              R2D00910
004F 7FFF                   92 |       DC      /7FFF     CHANGE SIGN TO PTV          R2D00920
0050 4000                   93 |       DC      /4000     CON OF 1/8                  R2D00930
0051 3A98                   94 |       DC      15000                                 R2D00940
0052 0020                   95 | C32   DC      32                                    R2D00950
0053 C8F6                   96 | EXP2  LDD     Z         USE THE POLYNOMIAL    .B-2  R2D00960
0054 DB7E                   97 |       STD   3 126       APPROXIMATION TO GET        R2D00970
0055 C8F2                   98 |       LDD     A4        2**Z                  .B8   R2D00980
0056 2750*4880              99 |       LIBF    XMDS                            .B6   R2D00990
0057 88EE                  100 |       AD      A3                              .B6   R2D01000
0058 2750*4880             101 |       LIBF    XMDS                            .B4   R2D01010
0059 88EA                  102 |       AD      A2                              .B4   R2D01020
005A 2750*4880             103 |       LIBF    XMDS                            .B2   R2D01030
005B 88E6                  104 |       AD      A1                              .B2   R2D01040
005C 2750*4880             105 |       LIBF    XMDS                            .B0   R2D01050
005D DB7E                  106 |       STD   3 126       STORE 2**Z IN FAC           R2D01060
005E 6600 0000             107 | D     LDX  L2 *-*       SET XR2 TO REFERENCE TABLE  R2D01070
0060 CE00 0038R            108 |       LDD  L2 M8TAB     GET 2**D              .B1   R2D01080
0062 2750*4880             109 |       LIBF    XMDS      (2**Z)*(2**D)         .B1   R2D01090
0063 8E00 0038R            110 |       AD   L2 M8TAB     ADD IN AO TERM        .B1   R2D01100
0065 4801                  111 |       BSC     O         BR IF NO OVERFLOW           R2D01110
0066 C8CF                  112 |       LDD     HELP      OVFLO DUE TO ROUND ERROR.   R2D01120
0067 DB7E                  113 |       STD   3 126       STORE IN FAC                R2D01130
0068 2000                  114 | EXPS  LDS     *-*       RESTORE STATUS              R2D01140
0069 0605*90C0             115 |       LIBF    FARC      CHECK FAC RANGE.            R2D01150
006A 6500 0000             116 | XR1   LDX  L1 *-*       RESTORE XR1                 R2D01160
006C 6600 0000             117 | XR2   LDX  L2 *-*       RESTORE XR2                 R2D01170
006E 4C80 0002R            118 |       BSC  I  FXPN                                  R2D01180
0070 C37E                  119 | OVFL  LD    3 126       IF ARGUMENT IS MUCH TOO     R2D01190
0071 D37D                  120 |       STO   3 125       FAR OUT OF RANGE, SET       R2D01200
0072 1801                  121 |       SRA     1         FAC TO FORCE PROPER         R2D01210
0073 D37E                  122 |       STO   3 126       ACTION IN FARC.             R2D01220
0074 70F3                  123 |       MDX     EXPS                                  R2D01230
0075                       124 |       END                                           R2D01240
 
There were no errors in this assembly
 
=== CROSS REFERENCES ==========================================================
Name  Val   Defd  Referenced
A1    0042R   84  104
A2    0044R   85  102
A3    0046R   86  100
A4    0048R   87   98
BUF1  0011R   45   43   62
C32   0052R   95   65
D     005ER  107   54
EXP2  0053R   96   60
EXPS  0068R  114   32  123
FEXP  0000R   29
FXPN  0002R   31  118
HELP  0036R   78  112
LOG2E 0040R   83   35
M8TAB 0038R   79  108  110
ONE   0034R   77   70   73
OVFL  0070R  119   41
SRT   0022R   61   44
SRTR  0014R   47   76
X     004CR   89   40   42   49   57   58
XR1   006AR  116   33
XR2   006CR  117   34
Z     004AR   88   59   96