S3IFIX

Table Of Contents
  • [00022] LIBF IFIX -V1.
s3ifix.lst
ASM1130 CROSS ASSEMBLER V1.22 -- V2M12 -- Sun Nov  1 19:25:08 2020
 
Source File: \s3ifix.asm 
                             1 | *************************************************** S3D00010
                             2 | *                                                 * S3D00020
                             3 | *   SUBROUTINE NAME-                              * S3D00030
                             4 | *      FULL NAME- FLOATING-POINT TO INTEGER       * S3D00040
                             5 | *          CONVERSION SUBROUTINE.                 * S3D00050
                             6 | *      CODE NAME- IFIX                            * S3D00060
                             7 | *   PURPOSE- THIS SUBROUTINE CONVERTS A FLOATING- * S3D00070
                             8 | *      POINT NUMBER TO AN INTEGER, DROPPING ANY   * S3D00080
                             9 | *      FRACTIONAL EXCESS.                         * S3D00090
                            10 | *   METHOD-SEE IBM 1130 SUBROUTINE LIBRARY MANUAL.* S3D00100
                            11 | *   CAPABILITIES AND LIMITATIONS- SEE IBM 1130    * S3D00110
                            12 | *      SUBROUTINE LIBRARY MANUAL.                 * S3D00120
                            13 | *   SPECIAL FEATURES- N/A                         * S3D00130
                            14 | *   ADDITIONAL INFORMATION-                       * S3D00140
                            15 | *      ESTIMATED EXECUTION TIME- SEE IBM 1130     * S3D00150
                            16 | *         SUBROUTINE LIBRARY MANUAL               * S3D00160
                            17 | *                                                 * S3D00170
                            18 | *************************************************** S3D00180
LIBF IFIX  -V1.
 
                            20 |       LIBR                                          S3D00200
                            21 |       ENT     IFIX                                  S3D00210
0000 7002                   22 | IFIX  MDX     *+2                                   S3D00220
0001 4C80 0000              23 |       BSC  I  *-*                                   S3D00230
0003 C021                   24 |       LD      K128      CALCULATE SHIFT VARIABLE    S3D00240
0004 937D                   25 |       S     3 125       GET NEG OF TRUE EXPONENT    S3D00250
0005 4C10 0015R             26 |       BSC  L  FZER,-    IF RSLT WILL BE FRACTIONAL, S3D00260
                            27 | *                       BR TO SET FAC=0.            S3D00270
0007 8021                   28 |       A       SRT15     OTHERWISE,GENERATE SHIFT    S3D00280
0008 D012                   29 |       STO     FSHFT     CONSTANT AND STORE.         S3D00290
0009 9021                   30 |       S       FSHFZ     CONSTANT TO CHK RANGE       S3D00300
000A 4C10 0017R             31 |       BSC  L  OK,-      GO TO DO SHIFT IF IN RANGE  S3D00310
000C C019                   32 |       LD      FLAG      INTEGER TOO LARGE           S3D00320
000D EB7C                   33 |       OR    3 124       SET IFIX ERROR INDICATOR    S3D00330
000E D37C                   34 |       STO   3 124                                   S3D00340
000F C37E                   35 |       LD    3 126       TEST SIGN                   S3D00350
0010 4810                   36 |       BSC     -         IF NEG,SKIP TO RET NEG NO.  S3D00360
0011 C015                   37 |       LD      MAXI      RET LARGEST PTV INTEGER     S3D00370
0012 4828                   38 |       BSC     +Z        IF PTV,SKIP TO BR OUT       S3D00380
0013 C014                   39 |       LD      MINI      RET LARGEST NEGATIVE NO.    S3D00390
0014 70EC                   40 |       MDX     IFIX+1    EXIT                        S3D00400
0015 1010                   41 | FZER  SLA     16        RETURN ZERO                 S3D00410
0016 70EA                   42 |       MDX     IFIX+1    EXIT                        S3D00420
0017 10A0                   43 | OK    SLT     32        INTEGER IS IN RANGE-PROCEED S3D00430
0018 9B7E                   44 |       SD    3 126       GET ABS VALUE OF MANTISSA   S3D00440
0019 4828                   45 |       BSC     Z+                                    S3D00450
001A C37E                   46 |       LD    3 126                                   S3D00460
001B 1880                   47 | FSHFT SRT     *-*       PERFORM REQUIRED SHIFT      S3D00470
001C D00D                   48 |       STO     TEMP      KEEP RSLT INTEGER           S3D00480
001D C37E                   49 |       LD    3 126       GET SIGN OF MANTISSA        S3D00490
001E 4C28 0022R             50 |       BSC  L  NEG,+Z    BR IF NEG                   S3D00500
0020 C009                   51 |       LD      TEMP      IF PTV,RET PTV INTEGER      S3D00510
0021 70DF                   52 |       MDX     IFIX+1    EXIT                        S3D00520
0022 1010                   53 | NEG   SLA     16        IF NEG,NEGATE INTEGER       S3D00530
0023 9006                   54 |       S       TEMP                                  S3D00540
0024 70DC                   55 |       MDX     IFIX+1    EXIT                        S3D00550
                            56 | *                                                   S3D00560
                            57 | *CONSTANTS TABLE AND BUFFER AREA                    S3D00570
                            58 | *                                                   S3D00580
0025 0080                   59 | K128  DC      128       SCALE EXPONENT CONSTANT     S3D00590
0026 0008                   60 | FLAG  DC      /8        ERROR FLAG CONSTANT         S3D00600
0027 7FFF                   61 | MAXI  DC      /7FFF     MAXIMUM PTV INTEGER         S3D00610
0028 8000                   62 | MINI  DC      /8000     MINIMUM NEG INTEGER         S3D00620
0029 188F                   63 | SRT15 SRT     15        SHIFT CONSTANT              S3D00630
002A 0000                   64 | TEMP  DC      0         BUFFER FOR INTEGER          S3D00640
002B 1880                   65 | FSHFZ SRT     0         SHIFT CONSTANT              S3D00650
002C                        66 |       END                                           S3D00660
 
There were no errors in this assembly
 
=== CROSS REFERENCES ==========================================================
Name  Val   Defd  Referenced
FLAG  0026R   60   32
FSHFT 001BR   47   29
FSHFZ 002BR   65   30
FZER  0015R   41   26
IFIX  0000R   22   40   42   52   55
K128  0025R   59   24
MAXI  0027R   61   37
MINI  0028R   62   39
NEG   0022R   53   50
OK    0017R   43   31
SRT15 0029R   63   28
TEMP  002AR   64   48   51   54