User Tools

Site Tools


ibm:ibm1130-lib:dmsr2v12:s2esqr_lst

S2ESQR

Table Of Contents
  • [00022] CALL ESQR -V1.
s2esqr.lst
ASM1130 CROSS ASSEMBLER V1.22 -- V2M12 -- Sun Nov  1 19:25:08 2020
 
Source File: \s2esqr.asm 
                             1 | *************************************************** S2H00010
                             2 | *                                                 * S2H00020
                             3 | *   SUBROUTINE NAME-                              * S2H00030
                             4 | *     FULL NAME- EXTENDED PRECISION FLOATING-     * S2H00040
                             5 | *         POINT SQUARE ROOT FUNCTION.             * S2H00050
                             6 | *      CODE NAME- ESQR/ESQRT                      * S2H00060
                             7 | *   PURPOSE- THIS SUBPROGRAM COMPUTES THE SQUARE  * S2H00070
                             8 | *      ROOT OF AN EXTENDED PRECISION FLOATING-    * S2H00080
                             9 | *      POINT NUMBER.                              * S2H00090
                            10 | *   METHOD-SEE IBM 1130 SUBROUTINE LIBRARY MANUAL.* S2H00100
                            11 | *   CAPABILITIES AND LIMITATIONS- SEE IBM 1130    * S2H00110
                            12 | *      SUBROUTINE LIBRARY MANUAL.                 * S2H00120
                            13 | *   SPECIAL FEATURES- N/A                         * S2H00130
                            14 | *   ADDITIONAL INFORMATION-                       * S2H00140
                            15 | *      ESTIMATED EXECUTION TIME- SEE IBM 1130     * S2H00150
                            16 | *         SUBROUTINE LIBRARY MANUAL               * S2H00160
                            17 | *                                                 * S2H00170
                            18 | *************************************************** S2H00180
CALL ESQR  -V1.
 
                            20 |       EPR                                           S2H00200
                            21 |       ENT     ESQR                                  S2H00210
                            22 |       ENT     ESQRT     STANDARD FORTRAN NAME       S2H00220
0000 0000                   23 | ESQRT DC      0         FORTRAN ENTRY               S2H00230
0001 051C*58D7              24 |       LIBF    EGETP     GET PARAMETER               S2H00240
0002 0000                   25 | ESQR  DC      0         USER ENTRY                  S2H00250
0003 692D                   26 |       STX   1 XR1+1     SAVE XR1                    S2H00260
0004 C37E                   27 |       LD    3 126                                   S2H00270
0005 4C98 0002R             28 |       BSC  I  ESQR,+-   SQRT(0.0)=0.0               S2H00280
0007 4C10 000FR             29 |       BSC  L  NNEG,-    BR IF PTV                   S2H00290
0009 C02E                   30 |       LD      SQREF     SET SQRT ERROR FLAG         S2H00300
000A EB7C                   31 |       OR    3 124       IF X NEGATIVE.              S2H00310
000B D37C                   32 |       STO   3 124       USE ABSOLUTE VALUE.         S2H00320
000C 10A0                   33 |       SLT     32                                    S2H00330
000D 9B7E                   34 |       SD    3 126                                   S2H00340
000E DB7E                   35 |       STD   3 126                                   S2H00350
                            36 | *                                                   S2H00360
                            37 | *COMPUTE EXPONENT AND INPUT TO ITERATION ROUTINE    S2H00370
                            38 | *                                                   S2H00380
000F C37D                   39 | NNEG  LD    3 125                                   S2H00390
0010 8026                   40 |       A       Q+2       ADD 129 TO EXPONENT         S2H00400
0011 1881                   41 |       SRT     1         DIVIDE BY TWO               S2H00410
0012 D021                   42 |       STO     BLC       SAVE EXPONENT OF RESULT     S2H00420
0013 1010                   43 |       SLA     16                                    S2H00430
0014 1081                   44 |       SLT     1         GET LAST BIT OF EXPONENT+1  S2H00440
0015 6100                   45 |       LDX   1 0         IA.ZERO,SET XR1=ZERO        S2H00450
0016 4820                   46 |       BSC     Z                                     S2H00460
0017 6103                   47 |       LDX   1 3         IF ONE,SET XR1=3.           S2H00470
0018 801D                   48 |       A       Q+1       SET UP EXPONENT FOR         S2H00480
0019 D37D                   49 |       STO   3 125       MANTISSA                    S2H00490
001A 058A*3580              50 |       LIBF    ESTO      STORE RANGED ARGUMENT       S2H00500
001B 0039R                  51 |       DC      F                                     S2H00510
001C 0551*7A27              52 |       LIBF    EMPYX     P1=A*X+B                    S2H00520
001D 003FR                  53 |       DC      A                                     S2H00530
001E 0504*4127              54 |       LIBF    EADDX                                 S2H00540
001F 0045R                  55 |       DC      B                                     S2H00550
                            56 | *                                                   S2H00560
                            57 | *USE NEWTON ITERATION TO GET SQUARE ROOT--          S2H00570
                            58 | *           P(I+1)=(P(I)+F/P(I))/2                  S2H00580
                            59 | *                                                   S2H00590
0020 6103                   60 |       LDX   1 3         SET NEWTON ITERATION COUNT. S2H00600
0021 058A*3580              61 | LOOP  LIBF    ESTO      STORE LAST APPROXIMATION    S2H00610
0022 003CR                  62 |       DC      PN                                    S2H00620
0023 054C*4000              63 |       LIBF    ELD       GET ARGUMENT                S2H00630
0024 0039R                  64 |       DC      F                                     S2H00640
0025 0510*9940              65 |       LIBF    EDIV      DIVIDE BY PRIOR             S2H00650
0026 003CR                  66 |       DC      PN        APPROXIMATION.              S2H00660
0027 0504*4100              67 |       LIBF    EADD      ADD PRIOR APPROXIMATION     S2H00670
0028 003CR                  68 |       DC      PN                                    S2H00680
0029 C37D                   69 |       LD    3 125       DECR EXPONENT BY ONE-       S2H00690
002A 900A                   70 |       S       Q         (EFFECTIVELY DIVIDES BY 2)  S2H00700
002B D37D                   71 |       STO   3 125                                   S2H00710
002C 71FF                   72 |       MDX   1 -1        DECR CTR FOR RET            S2H00720
002D 70F3                   73 |       MDX     LOOP                                  S2H00730
002E C005                   74 |       LD      BLC       GET PROPER EXPONENT FOR     S2H00740
002F D37D                   75 |       STO   3 125       SQUARE ROOT.                S2H00750
0030 6500 0000              76 | XR1   LDX  L1 *-*       RESTORE XR1                 S2H00760
0032 4C80 0002R             77 |       BSC  I  ESQR      EXIT                        S2H00770
                            78 | *                                                   S2H00780
                            79 | *CONSTANTS AREA                                     S2H00790
                            80 | *                                                   S2H00800
0034 0000                   81 | BLC   DC      0         RESULT EXPONENT.            S2H00810
0035 0001                   82 | Q     DC      1         SINGLE WORD ONE             S2H00820
0036 007F                   83 |       DC      127       EXPONENT SCALING CONSTANTS  S2H00830
0037 0081                   84 |       DC      129       2                           S2H00840
0038 0004                   85 | SQREF DC      /4        BIT 13--SQUARE ROOT ERROR   S2H00850
0039 0000 0000 0000         86 | F     XFLC              RANGED ARGUMENT.            S2H00860
003C 0000 0000 0000         87 | PN    XFLC              NEWTON ITERATION RESULT.    S2H00870
003F 0080 7000 0000         88 | A     XFLC    0.875     F BETWEEN 0.25 AND 0.5      S2H00880
0042 0080 4A00 0000         89 |       XFLC    0.578125  F BETWEEN 0.50 AND 1.0      S2H00890
0045 007F 4754 4BB2         90 | B     XFLC    0.27863   F BETWEEN 0.25 AND 0.5      S2H00900
0048 007F 6C00 0000         91 |       XFLC    0.421875  F BETWEEN 0.50 AND 1.0      S2H00910
004B                        92 |       END                                           S2H00920
 
There were no errors in this assembly
 
=== CROSS REFERENCES ==========================================================
Name  Val   Defd  Referenced
A     003FR   88   53
B     0045R   90   55
BLC   0034R   81   42   74
ESQR  0002R   25   28   77
ESQRT 0000R   23
F     0039R   86   51   64
LOOP  0021R   61   73
NNEG  000FR   39   29
PN    003CR   87   62   66   68
Q     0035R   82   40   48   70
SQREF 0038R   85   30
XR1   0030R   76   26
ibm/ibm1130-lib/dmsr2v12/s2esqr_lst.txt ยท Last modified: 2023/08/06 13:34 by Site Administrator