ASM1130 CROSS ASSEMBLER V1.22 -- V2M12 -- Sun Nov 1 19:25:08 2020
Source File: \s3fixi.asm
1 | *************************************************** S3B00010
2 | * * S3B00020
3 | * SUBROUTINE NAME- * S3B00030
4 | * FULL NAME- I**J INTEGER FUNCTION. * S3B00040
5 | * CODE NAME- FIXI/FIXIX * S3B00050
6 | * PURPOSE- THIS FUNCTION COMPUTES A SINGLE WORD * S3B00060
7 | * INTEGER TAKEN TO A SINGLE WORD INTEGER * S3B00070
8 | * EXPONENT. * S3B00080
9 | * METHOD-SEE IBM 1130 SUBROUTINE LIBRARY MANUAL.* S3B00090
10 | * CAPABILITIES AND LIMITATIONS- SEE IBM 1130 * S3B00100
11 | * SUBROUTINE LIBRARY MANUAL. * S3B00110
12 | * SPECIAL FEATURES- N/A * S3B00120
13 | * ADDITIONAL INFORMATION- * S3B00130
14 | * ESTIMATED EXECUTION TIME- SEE IBM 1130 * S3B00140
15 | * SUBROUTINE LIBRARY MANUAL * S3B00150
16 | * * S3B00160
17 | *************************************************** S3B00170
LIBF FIXI -V1.
19 | LIBR S3B00190
20 | ENT FIXI S3B00200
21 | ENT FIXIX S3B00210
0000 D03D 22 | FIXIX STO IHOLD STORE INTEGER BASE S3B00220
0001 C400 0000 23 | LD L *-* CALL+1 S3B00230
0003 6919 24 | STX 1 FXSAV+1 SAVE XR1 S3B00240
0004 7005 25 | MDX *+5 S3B00250
0005 D038 26 | FIXI STO IHOLD STORE INTEGER BASE S3B00260
0006 C400 0000 27 | LD L *-* CALL+1 S3B00270
0008 6914 28 | STX 1 FXSAV+1 SAVE XR1 S3B00280
0009 6100 29 | LDX 1 0 XR1 = ZERO S3B00290
000A D003 30 | STO *+3 STORE OP ADDR S3B00300
000B 8034 31 | A ONE BUILD EXIT S3B00310
000C D012 32 | STO FXEX+1 S3B00320
000D 7580 0000 33 | MDX I1 *-* MODIFY X1 BY OP ADDRESS S3B00330
000F 1000 34 | NOP IF MDX CAUSES BR,SLIP NOP S3B00340
35 | * S3B00350
36 | *TAKE CARE OF ERROR CONDITION S3B00360
37 | * S3B00370
0010 280A 38 | STS FXSTA SAVE STATUS S3B00380
0011 C02C 39 | LD IHOLD GET INTEGER BASE S3B00390
0012 4C20 0020R 40 | BSC L FIXI1,Z BE IF NOT ZERO S3B00400
0014 C100 41 | LD 1 0 IF BASE ZERO, SET ACC TO S3B00410
0015 4C30 001AR 42 | BSC L EZERO,-Z ZERO. GET EXPONENT.BR IF S3B00420
0017 C02A 43 | LD ERFL PTV,OTHERWISE SET ERROR S3B00430
0018 EB7C 44 | OR 3 124 INDR WORD (BIT 11) TO 1 S3B00440
0019 D37C 45 | STO 3 124 (ZERO TO NON-PTV EXPONENT) S3B00450
46 | * S3B00460
47 | *EXIT S3B00470
48 | * S3B00480
001A 1010 49 | EZERO SLA 16 ZERO ACC FOR ZERO BASE S3B00490
001B 2000 50 | FXSTA LDS *-* RESTORE STATUS S3B00500
001C 6500 0000 51 | FXSAV LDX L1 *-* RESTORE XR1 S3B00510
001E 4C00 0000 52 | FXEX BSC L *-* EXIT S3B00520
53 | * S3B00530
54 | *CALCULATE I**J S3B00540
55 | * S3B00550
0020 901F 56 | FIXI1 S ONE IF BASE NOT ZERO,SUB 1 S3B00560
0021 4C18 0029R 57 | BSC L EXONE,+- BR IF BASE=+1.I**J=+1 S3B00570
0023 801D 58 | A TWO S3B00580
0024 4C20 002DR 59 | BSC L *+7,Z BR IF BASE NOT +1,-1,ZERO S3B00590
0026 C100 60 | LD 1 0 BASE=-1. . S3B00600
0027 4C04 002BR 61 | BSC L *+2,E BR IF EXPONENT IS ODD S3B00610
0029 C016 62 | EXONE LD ONE I**J=+1 S3B00620
002A 70F0 63 | MDX FXSTA S3B00630
002B C017 64 | LD MASK I**J=-1 S3B00640
002C 70EE 65 | MDX FXSTA S3B00650
002D C100 66 | LD 1 0 GET EXPONENT S3B00660
002E 4C18 0029R 67 | BSC L EXONE,+- BR IF EXPONENT=0.I**J=+1 S3B00670
0030 4C08 001AR 68 | BSC L EZERO,+ BR EXPONENT NEG.I**J=ZERO O S3B00680
0032 1884 69 | SRT 4 EXPONENT PTV S3B00690
0033 4C20 001AR 70 | BSC L EZERO,Z BR EXPONENT GT 15 S3B00700
0035 1084 71 | SLT 4 OTHERWISE RESTORE EXPONENT S3B00710
0036 D008 72 | STO COUNT STORE AS A MPY COUNTER S3B00720
0037 C008 73 | LD ONE ACCUMULATOR = +1 S3B00730
0038 A005 74 | IJPL M IHOLD INCR POWER OF BASE BY ONE S3B00740
0039 18D0 75 | RTE 16 SHIFT TO ACCUMULATOR S3B00750
003A 74FF 003FR 76 | MDX L COUNT,-1 DECR COUNTER S3B00760
003C 70FB 77 | MDX IJPL REPEAT S3B00770
003D 70DD 78 | MDX FXSTA BR OUT S3B00780
79 | * S3B00790
80 | *CONSTANTS AREA S3B00800
81 | * S3B00810
003E 0000 82 | IHOLD DC 0 STORE INTEGER BASE S3B00820
003F 0000 83 | COUNT DC 0 STORE INTEGER EXPONENT S3B00830
0040 0001 84 | ONE DC 1 SINGLE WORD ONE S3B00840
0041 0002 85 | TWO DC 2 SINGLE WORD TWO S3B00850
0042 0010 86 | ERFL DC /10 1 IN BIT POSITION 11 S3B00860
0043 FFFF 87 | MASK DC /FFFF SINGLE WORD MINUS ONE S3B00870
0044 88 | END S3B00880
There were no errors in this assembly
=== CROSS REFERENCES ==========================================================
Name Val Defd Referenced
COUNT 003FR 83 72 76
ERFL 0042R 86 43
EXONE 0029R 62 57 67
EZERO 001AR 49 42 68 70
FIXI 0005R 26
FIXI1 0020R 56 40
FIXIX 0000R 22
FXEX 001ER 52 32
FXSAV 001CR 51 24 28
FXSTA 001BR 50 38 63 65 78
IHOLD 003ER 82 22 26 39 74
IJPL 0038R 74 77
MASK 0043R 87 64
ONE 0040R 84 31 56 62 73
TWO 0041R 85 58