ASM1130 CROSS ASSEMBLER V1.22 -- V2M12 -- Sun Nov 1 19:25:08 2020
Source File: \s3norm.asm
1 | *************************************************** S3E00010
2 | * * S3E00020
3 | * SUBROUTINE NAME- * S3E00030
4 | * FULL NAME- NORMALIZING SUBROUTINE * S3E00040
5 | * CODE NAME- NORM * S3E00050
6 | * PURPOSE- THIS SUBROUTINE NORMALIZES A FLOATING* S3E00060
7 | * POINT NUMBER. * S3E00070
8 | * METHOD-SEE IBM 1130 SUBROUTINE LIBRARY MANUAL.* S3E00080
9 | * CAPABILITIES AND LIMITATIONS- SEE IBM 1130 * S3E00090
10 | * SUBROUTINE LIBRARY MANUAL. * S3E00100
11 | * SPECIAL FEATURES- N/A * S3E00110
12 | * ADDITIONAL INFORMATION- * S3E00120
13 | * ESTIMATED EXECUTION TIME- SEE IBM 1130 * S3E00130
14 | * SUBROUTINE LIBRARY MANUAL * S3E00140
15 | * * S3E00150
16 | *************************************************** S3E00160
LIBF NORM -V1.
18 | LIBR S3E00180
19 | ENT NORM S3E00190
0000 7002 20 | NORM MDX *+2 S3E00200
0001 4C80 0000 21 | BSC I *-* LOADER INSERT S3E00210
0003 10A0 22 | SLT 32 CLEAR ACC AND EXT S3E00220
0004 9B7E 23 | SD 3 126 GET THE ABS VALUE S3E00230
0005 4828 24 | BSC +Z S3E00240
0006 CB7E 25 | LDD 3 126 S3E00250
0007 4C28 0020R 26 | BSC L EXC,+Z IF THE NO. IS NOT /8000 S3E00260
0009 1081 27 | SLT 1 SHIFT 1 BIT INTO SIGN BIT S3E00270
000A 4C28 0001R 28 | BSC L NORM+1,+Z BR OUT IF ALREADY NORMALIZE S3E00280
000C 6911 29 | STX 1 SAVE+1 OTHERWISE,SAVE XR1,AND SET S3E00290
000D 611F 30 | LDX 1 31 XR1 FOR SHIFT COUNT S3E00300
000E 11C0 31 | SLC 1 SHIFT UNTIL 1 IS IN 0 BIT O S3E00310
000F 6917 32 | STX 1 T2 SHIFT IS 32,THEN SAVE XR1. S3E00320
0010 C017 33 | LD EK31 CALCULATE THE SHIFT AND S3E00330
0011 9015 34 | S T2 STORE TO PUT IN XR1. S3E00340
0012 D001 35 | STO SLTK+1 S3E00350
0013 6500 0000 36 | SLTK LDX L1 *-* S3E00360
0015 C37D 37 | LD 3 125 GET EXPONENT AND DECREMENT S3E00370
0016 90FD 38 | S SLTK+1 THE AMOUNT OF THE SHIFT. S3E00380
0017 D37D 39 | STO 3 125 S3E00390
0018 CB7E 40 | LDD 3 126 GET MANTISSA AND PERFORM S3E00400
0019 1180 41 | SLT 1 SHIFT. S3E00410
001A 4818 42 | BSC +- BR IF NOT ZERO S3E00420
001B D37D 43 | STO 3 125 IF ZERO, SET EXPONENT ZERO S3E00430
001C DB7E 44 | STD 3 126 RESTORE NORMALIZED MANTISSA S3E00440
001D 6500 0000 45 | SAVE LDX L1 *-* RESTORE XR1 S3E00450
001F 70E1 46 | MDX NORM+1 RETURN TO MAIN PROG S3E00460
0020 1881 47 | EXC SRT 1 INPUT NO. WAS /8000 S3E00470
0021 DB7E 48 | STD 3 126 DO A SHIFT RIGHT OF 1 S3E00480
0022 C37D 49 | LD 3 125 INCREMENT EXPONENT TO S3E00490
0023 8002 50 | A ONE CORRESPOND. S3E00500
0024 D37D 51 | STO 3 125 S3E00510
0025 70DB 52 | MDX NORM+1 BR TO PREPARE FOR EXIT 2-3 S3E00520
53 | * S3E00530
54 | *CONSTANTS AREA S3E00540
55 | * S3E00550
0026 0001 56 | ONE DC 1 SINGLE WORD ONE S3E00560
0027 0000 57 | T2 DC 0 SHIFT COUNT S3E00570
0028 001F 58 | EK31 DC /1F MAXIMUM SHIFT CONSTANT S3E00580
0029 59 | END S3E00590
There were no errors in this assembly
=== CROSS REFERENCES ==========================================================
Name Val Defd Referenced
EK31 0028R 58 33
EXC 0020R 47 26
NORM 0000R 20 28 46 52
ONE 0026R 56 50
SAVE 001DR 45 29
SLTK 0013R 36 35 38
T2 0027R 57 32 34