User Tools

Site Tools


ibm:ibm1130-lib:dmsr2v12:s2eexp_lst

S2EEXP

Table Of Contents
  • [00028] CALL EEXP -V1.
s2eexp.lst
ASM1130 CROSS ASSEMBLER V1.22 -- V2M12 -- Sun Nov  1 19:25:08 2020
 
Source File: \s2eexp.asm 
                             1 | *************************************************** S2D00010
                             2 | *                                                 * S2D00020
                             3 | *   SUBROUTINE NAME-                              * S2D00030
                             4 | *      FULL NAME- EXTENDED PRECISION FLOATING-    * S2D00040
                             5 | *         POINT EXPONENTIAL FUNCTION.             * S2D00050
                             6 | *      CODE NAME- EXPN/EEXP                       * S2D00060
                             7 | *   PURPOSE- THIS SUBROUTINE COMPUTES THE EXPONENT* S2D00070
                             8 | *      IAL OF AN EXTENDED PRECISION FLOATING-POINT* S2D00080
                             9 | *      NUMBER.                                    * S2D00090
                            10 | *   METHOD-SEE IBM 1130 SUBROUTINE LIBRARY MANUAL.* S2D00100
                            11 | *   CAPABILITIES AND LIMITATIONS- SEE IBM 1130    * S2D00110
                            12 | *      SUBROUTINE LIBRARY MANUAL.                 * S2D00120
                            13 | *   SPECIAL FEATURES- N/A                         * S2D00130
                            14 | *   ADDITIONAL INFORMATION-                       * S2D00140
                            15 | *      ESTIMATED EXECUTION TIME- SEE IBM 1130     * S2D00150
                            16 | *         SUBROUTINE LIBRARY MANUAL               * S2D00160
                            17 | *      OTHER- A PERIOD FOLLOWED BY B, APPEARING TO* S2D00170
                            18 | *         THE RIGHT OF COMMENT, INDICATES THAT THE* S2D00180
                            19 | *         NUMBER FOLLOWING IS THE BINARY POINT OF * S2D00190
                            20 | *         THE NUMBER PRESENTLY IN THE ACCUMULATOR.* S2D00200
                            21 | *         LET C REFER TO THE TRUE EXPONENT OF THE * S2D00210
                            22 | *         INPUT ARGUMENT.                         * S2D00220
                            23 | *                                                 * S2D00230
                            24 | *************************************************** S2D00240
CALL EEXP  -V1.
 
                            26 |       EPR                                           S2D00260
                            27 |       ENT     EEXP      STANDARD FORTRAN NAME       S2D00270
                            28 |       ENT     EXPN                                  S2D00280
0000 0000                   29 | EEXP  DC      0         FORTRAN ENTRY               S2D00290
0001 051C*58D7              30 |       LIBF    EGETP     GET PARAMETER               S2D00300
0002 0000                   31 | EXPN  DC      0         USER ENTRY                  S2D00310
0003 2872                   32 |       STS     EXPS      SAVE STATUS                 S2D00320
0004 6974                   33 |       STX   1 XR1+1     SAVE XR1                    S2D00330
0005 6A75                   34 |       STX   2 XR2+1     SAVE XR2                    S2D00340
0006 C839                   35 |       LDD     LOG2E     GET LOG2E           .B1     S2D00350
0007 2750*4000              36 |       LIBF    XMD       MPY BY (FAC).       .B1+C   S2D00360
0008 DB7E                   37 |       STD   3 126       STORE Y*LOG2E IN FAC.B1+C   S2D00370
0009 C37D                   38 |       LD    3 125       GET Y EXPONENT              S2D00380
000A 9043                   39 |       S       X         SUB 128+14.          C-14   S2D00390
000B 4C30 0086R             40 |       BSC  L  OVFL,Z-   BR IF Y EXPONENT TOO BIG    S2D00400
000D 8041                   41 |       A       X+1       SCALE Y EXPONENT BY 3. C+3  S2D00410
000E D003                   42 |       STO     BUF1+1    KEEP SCALED EXPONENT        S2D00420
000F 4C28 0022R             43 |       BSC  L  SRT,+Z    BR IF EXPONENT LT -3        S2D00430
0011 6500 0000              44 | BUF1  LDX  L1 *-*       Y EXPONENT+3 IN XR1   .C-3  S2D00440
0013 C37E                   45 |       LD    3 126       GET Y*LOG2E          .B1+C  S2D00450
0014 1891                   46 | SRTR  SRT     17        MOVE TO EXT         .B18+C  S2D00460
0015 1180                   47 |       SLT   1           SHIFT OF EXPONENT+3  .B15   S2D00470
0016 8039                   48 |       A       X+2       ADD IN EXCESS               S2D00480
0017 D37D                   49 |       STO   3 125       SET THE EXPONENT OF 2=N     S2D00490
0018 1010                   50 |       SLA     16        CLEAR ACCUMULATOR           S2D00500
0019 1082                   51 |       SLT     2         2 BITS USED AS INDR         S2D00510
001A 1001                   52 |       SLA     1         MPY D BY 2                  S2D00520
001B D04F                   53 |       STO     D+1                                   S2D00530
001C CB7E                   54 |       LDD   3 126       GET Y*LOG2E         .B1+C   S2D00540
001D 1180                   55 |       SLT   1           CORRECT FOR EXPONENT.B-2    S2D00550
001E E032                   56 |       AND     X+3       MAKE SIGN PTV               S2D00560
001F 9032                   57 |       S       X+4       SUB 1/8                     S2D00570
0020 D82B                   58 |       STD     Z         STORE REMAINING FRACTION    S2D00580
0021 7033                   59 |       MDX     EXP2                                  S2D00590
0022 1010                   60 | SRT   SLA     16        CLEAR ACCUMULATOR           S2D00600
0023 90EE                   61 |       S       BUF1+1    REVERSE EXPONENT SIGN.-C-3  S2D00610
0024 D001                   62 |       STO     *+1       STORE PTV EXPONENT IN XR1   S2D00620
0025 6500 0000              63 |       LDX  L1 *-*       PTV EXPONENT IN XR1   .C    S2D00630
0027 902C                   64 |       S       C32       CHECK SIZE OF EXPONENT      S2D00640
0028 4810                   65 |       BSC     -         BR IF IN RANGE              S2D00650
0029 6120                   66 |       LDX   1 32        TOO BIG,SET XR1 TO 32       S2D00660
002A CB7E                   67 |       LDD   3 126       GET Y*LOG2E         .B1+C   S2D00670
002B 4828                   68 |       BSC     +Z        BR IF NOT NEG               S2D00680
002C 9807                   69 |       SD      ONE       IF NEG,DECR EXPONENT BY 1   S2D00690
002D 1980                   70 |       SRT   1           CORRECT FOR EXPONENT.B-2    S2D00700
002E 4828                   71 |       BSC     +Z        BR IF NOT NEG               S2D00710
002F 8804                   72 |       AD      ONE       IF NEG,RESTORE 1            S2D00720
0030 DB7E                   73 |       STD   3 126       MODIFIED Y*LOG2E IN FAC     S2D00730
0031 6100                   74 |       LDX   1 0         XR1=ZERO                    S2D00740
0032 70E1                   75 |       MDX     SRTR      GO TO GET N,D,Z             S2D00750
0034 0000 0001              76 | ONE   DEC     1         FLT PT ONE                  S2D00760
0036 7FFF FFFF              77 | HELP  DEC     1.999999999999B1   OVERFLOW CON       S2D00770
0038 45CA E0F2              78 | M8TAB DEC     1.090507732725258B1      1/8          S2D00780
003A 52FF 6B55              79 |       DEC     1.296839554851010B1      3/8          S2D00790
003C 62B3 9509              80 |       DEC     1.542210825807941B1      5/8          S2D00800
003E 7560 6374              81 |       DEC     1.834008086509342B1      7/8          S2D00810
0040 5C55 1D95              82 | LOG2E DEC     1.442695041288963B1                   S2D00820
0042 58B9 0BFC              83 | A1    DEC     0.6931471806663105B0    CONSTANTS     S2D00830
0044 7AFE F748              84 | A2    DEC     2.402264858011591E-1B-2 FOR           S2D00840
0046 71AC 22EC              85 | A3    DEC     5.550410540590362E-2B-4 APPROXIMATION S2D00850
0048 4ED2 4042              86 | A4    DEC     9.621739874741388E-3B-6 POLYNOMIAL.   S2D00860
004A 5768 FF25              87 | A5    DEC     1.333772937497065E-3B-9               S2D00870
004C 0000 0000              88 | Z     DEC     0         STORE REMAINDER FRACTION    S2D00880
004E 008E                   89 | X     DC      128+14    CHK SIZE OF EXPONENT        S2D00890
004F 0011                   90 |       DC      14+3      SCALE EXPONENT              S2D00900
0050 0081                   91 |       DC      129       SCALE EXPONENT              S2D00910
0051 7FFF                   92 |       DC      /7FFF     CHANGE SIGN TO PTV          S2D00920
0052 4000                   93 |       DC      /4000     CON OF 1/8                  S2D00930
0053 3A98                   94 |       DC      15000                                 S2D00940
0054 0020                   95 | C32   DC      32                                    S2D00950
                            96 | *                                                   S2D00960
                            97 | *USE POLYNOMIAL APPROXIMATION TO CALC 2**Z          S2D00970
                            98 | *                                                   S2D00980
0055 C8F6                   99 | EXP2  LDD     Z         GET Z INTO FAC        .B-2  S2D00990
0056 DB7E                  100 |       STD   3 126                                   S2D01000
0057 C8F2                  101 |       LDD     A5        A5 INTO ACC AND EXT   .B-9  S2D01010
0058 2750*4000             102 |       LIBF    XMD       A5*Z                  .B-11 S2D01020
0059 6105                  103 |       LDX   1 5         XR1=5 FOR SHIFT             S2D01030
005A 4023                  104 |       BSI     SRTM      SHIFT RT 5 TO ADD A4  .B-6  S2D01040
005B 88EC                  105 |       AD      A4        A4+A5*Z               .B-6  S2D01050
005C 2750*4000             106 |       LIBF    XMD       Z*(A4+A5*Z)           .B-8  S2D01060
005D 6104                  107 |       LDX   1 4         XR1=4 FOR SHIFT             S2D01070
005E 401F                  108 |       BSI     SRTM      SHIFT RT 4 TO ADD A3  .B-4  S2D01080
005F 88E6                  109 |       AD      A3        A3+(ACC AND EXT)      .B-4  S2D01090
0060 2750*4000             110 |       LIBF    XMD       MPY BY Z              .B-6  S2D01100
0061 6104                  111 |       LDX   1 4         XR1=4 FOR SHIFT             S2D01110
0062 401B                  112 |       BSI     SRTM      SHIFT RT 4 TO ADD A2  .B-2  S2D01120
0063 88E0                  113 |       AD      A2                              .B-2  S2D01130
0064 2750*4000             114 |       LIBF    XMD       MPY BY Z              .B-4  S2D01140
0065 6104                  115 |       LDX   1 4         XR1=4 FOR SHIFT             S2D01150
0066 4017                  116 |       BSI     SRTM      SHIFT RT 4 TO ADD A1  .B0   S2D01160
0067 88DA                  117 |       AD      A1                              .B0   S2D01170
0068 2750*4000             118 |       LIBF    XMD       MPY BY Z              .B-2  S2D01180
0069 DB7E                  119 |       STD   3 126       SAVE RESULT IN FAC          S2D01190
                           120 | *                                                   S2D01200
                           121 | *GET 2**D AND MULTIPLY TIMES 2**Z                   S2D01210
                           122 | *                                                   S2D01220
006A 6600 0000             123 | D     LDX  L2 *-*       PUT REFERENCE NO. IN XR2    S2D01230
006C CE00 0038R            124 |       LDD  L2 M8TAB     GET 2**D              .B1   S2D01240
006E 2750*4000             125 |       LIBF    XMD       MPY BY 2**Z           .B-1  S2D01250
006F 6102                  126 |       LDX   1 2         XR2=2 FOR SHIFT             S2D01260
0070 400D                  127 |       BSI     SRTM      SHIFT RT 2 TO ADD     .B1   S2D01270
0071 8E00 0038R            128 |       AD   L2 M8TAB     ADD ON A0 TERM        .B1   S2D01280
0073 4801                  129 |       BSC     O         BR IF NO OVFLO              S2D01290
0074 C8C1                  130 |       LDD     HELP      OVFL DUE TO ROUND ERROR.    S2D01300
0075 DB7E                  131 |       STD   3 126       STORE FINAL RESULT          S2D01310
0076 2000                  132 | EXPS  LDS     *-*       RESTORE STATUS              S2D01320
0077 0605*90C0             133 |       LIBF    FARC      CHECK FAC RANGE             S2D01330
0078 6500 0000             134 | XR1   LDX  L1 *-*       RESTORE XR1                 S2D01340
007A 6600 0000             135 | XR2   LDX  L2 *-*       RESTORE XR2                 S2D01350
007C 4C80 0002R            136 |       BSC  I  EXPN                                  S2D01360
007E 0000                  137 | SRTM  DC      0         SHIFT RIGHT ROUTINE.        S2D01370
007F 4828                  138 |       BSC     +Z        CONVERT - NUMBER            S2D01380
0080 98B3                  139 |       SD      ONE       TO ONES COMP.(SHIFTABLE)    S2D01390
0081 1980                  140 |       SRT   1           SHIFT                       S2D01400
0082 4828                  141 |       BSC     +Z        RE-CONVERT                  S2D01410
0083 88B0                  142 |       AD      ONE                                   S2D01420
0084 4C80 007ER            143 |       BSC  I  SRTM                                  S2D01430
0086 C37E                  144 | OVFL  LD    3 126       IF ARGUMENT IS MUCH TOO     S2D01440
0087 D37D                  145 |       STO   3 125       FAR OUT OF RANGE, SET       S2D01450
0088 1801                  146 |       SRA     1         FAC TO FORCE PROPER         S2D01460
0089 D37E                  147 |       STO   3 126       ACTION IN FARC.             S2D01470
008A 70EB                  148 |       MDX     EXPS                                  S2D01480
008B                       149 |       END                                           S2D01490
 
There were no errors in this assembly
 
=== CROSS REFERENCES ==========================================================
Name  Val   Defd  Referenced
A1    0042R   83  117
A2    0044R   84  113
A3    0046R   85  109
A4    0048R   86  105
A5    004AR   87  101
BUF1  0011R   44   42   61
C32   0054R   95   64
D     006AR  123   53
EEXP  0000R   29
EXP2  0055R   99   59
EXPN  0002R   31  136
EXPS  0076R  132   32  148
HELP  0036R   77  130
LOG2E 0040R   82   35
M8TAB 0038R   78  124  128
ONE   0034R   76   69   72  139  142
OVFL  0086R  144   40
SRT   0022R   60   43
SRTM  007ER  137  104  108  112  116  127  143
SRTR  0014R   46   75
X     004ER   89   39   41   48   56   57
XR1   0078R  134   33
XR2   007AR  135   34
Z     004CR   88   58   99
ibm/ibm1130-lib/dmsr2v12/s2eexp_lst.txt ยท Last modified: 2023/08/06 13:34 by Site Administrator