ASM1130 CROSS ASSEMBLER V1.22 -- V2M12 -- Sun Nov 1 19:25:08 2020
Source File: \s2etanh.asm
1 | *************************************************** S2I00010
2 | * * S2I00020
3 | * SUBROUTINE NAME- * S2I00030
4 | * FULL NAME- EXTENDED PRECISION FLOATING- * S2I00040
5 | * POINT HYPERBOLIC TANGENT FUNCTION. * S2I00050
6 | * CODE NAME- ETNH/ETANH * S2I00060
7 | * PURPOSE- THIS SUBPROGRAM COMPUTES THE HYPER- * S2I00070
8 | * BOLIC TANGENT OF AN EXTENDED PRECISION * S2I00080
9 | * FLOATING-POINT NUMBER. * S2I00090
10 | * METHOD-SEE IBM 1130 SUBROUTINE LIBRARY MANUAL.* S2I00100
11 | * CAPABILITIES AND LIMITATIONS- SEE IBM 1130 * S2I00110
12 | * SUBROUTINE LIBRARY MANUAL. * S2I00120
13 | * SPECIAL FEATURES- N/A * S2I00130
14 | * ADDITIONAL INFORMATION- * S2I00140
15 | * ESTIMATED EXECUTION TIME- SEE IBM 1130 * S2I00150
16 | * SUBROUTINE LIBRARY MANUAL * S2I00160
17 | * * S2I00170
18 | *************************************************** S2I00180
CALL ETANH -V1.
20 | EPR S2I00200
21 | ENT ETANH STANDARD FORTRAN NAME S2I00210
22 | ENT ETNH S2I00220
0000 0000 23 | ETANH DC 0 FORTRAN ENTRY S2I00230
0001 051C*58D7 24 | LIBF EGETP GET PARAMETER S2I00240
0002 0000 25 | ETNH DC 0 USER ENTRY S2I00250
0003 C37D 26 | LD 3 125 ADD ONE TO EXPONENT TO S2I00260
0004 801C 27 | A ONE DOUBLE X. S2I00270
0005 D37D 28 | STO 3 125 S2I00280
0006 901C 29 | S EXK CHK IF ARGUMENT GT 32 S2I00290
0007 4C30 0018R 30 | BSC L OUT1,-Z BR TOO LARGE....TANH=+1 S2I00300
0009 C37E 31 | LD 3 126 S2I00310
000A 4818 32 | BSC +- RESTORE EXPONENT TO ZERO IF S2I00320
000B D37D 33 | STO 3 125 MANTISSA IS ZERO. S2I00330
000C 059D*7540 34 | CALL EXPN OTHERWISE COMPUTE E**2X S2I00340
000E 0504*4100 35 | LIBF EADD (E**2X)+1 S2I00350
000F 0024R 36 | DC FLONE S2I00360
0010 058A*3580 37 | LIBF ESTO STORE IN Z S2I00370
0011 002AR 38 | DC Z S2I00380
0012 0504*4100 39 | LIBF EADD COMPUTE (E**2X)-1 S2I00390
0013 0027R 40 | DC MIN2 -2 =(E**2X)-1 S2I00400
0014 0510*9940 41 | LIBF EDIV TANH(X)=((E**2X)-1)/ S2I00410
0015 002AR 42 | DC Z ((E**2X)+1) S2I00420
0016 4C80 0002R 43 | BSC I ETNH EXIT S2I00430
0018 C37E 44 | OUT1 LD 3 126 GET THE SIGN BIT FROM THE S2I00440
0019 18A0 45 | SRT 32 MANTISSA.TANH(X)=+1 IF X S2I00450
001A 109F 46 | SLT 31 GT 32.TANH(X)=-1,X LT -32. S2I00460
001B E809 47 | OR FLONE+1 SET SIGN ON CONSTANT OF 1 S2I00470
001C DB7E 48 | STD 3 126 S2I00480
001D C004 49 | LD EXP1 GET PROPER EXPONENT S2I00490
001E D37D 50 | STO 3 125 S2I00500
001F 4C80 0002R 51 | BSC I ETNH EXIT S2I00510
52 | * S2I00520
53 | *CONSTANTS AREA S2I00530
54 | * S2I00540
0021 0001 55 | ONE DC 1 SINGLE WORD ONE S2I00550
0022 0081 56 | EXP1 DC 129 EXPONENT OF CON ONE S2I00560
0023 0085 57 | EXK DC 128+5 RANGE CHK CON S2I00570
0024 0081 4000 0000 58 | FLONE XFLC 1.0 EXTENDED PREC FLT PT ONE S2I00580
0027 0082 C000 0000 59 | MIN2 XFLC -2.0 EXTENDED PREC FLT PT -2 S2I00590
002A 0000 0000 0000 60 | Z XFLC 0.0 STORE DIVISOR S2I00600
002D 61 | END S2I00610
There were no errors in this assembly
=== CROSS REFERENCES ==========================================================
Name Val Defd Referenced
ETANH 0000R 23
ETNH 0002R 25 43 51
EXK 0023R 57 29
EXP1 0022R 56 49
FLONE 0024R 58 36 47
MIN2 0027R 59 40
ONE 0021R 55 27
OUT1 0018R 44 30
Z 002AR 60 38 42