ASM1130 CROSS ASSEMBLER V1.22 -- V2M12 -- Sun Nov 1 19:25:08 2020 Source File: \s3xmd.asm 1 | *************************************************** S3H00010 2 | * * S3H00020 3 | * SUBROUTINE NAME- * S3H00030 4 | * FULL NAME- FIXED-POINT (FRACTIONAL) DOUBLE-* S3H00040 5 | * WORD MULTIPLY FUNCTION. * S3H00050 6 | * CODE NAME- XMD * S3H00060 7 | * PURPOSE- THIS FUNCTION PERFORMS A FIXED-POINT * S3H00070 8 | * MULTIPLY OF TWO FIXED-POINT DOUBLE-WORD * S3H00080 9 | * FRACTIONS GIVING A DOUBLE WORD RESULT. * S3H00090 10 | * METHOD-SEE IBM 1130 SUBROUTINE LIBRARY MANUAL.* S3H00100 11 | * CAPABILITIES AND LIMITATIONS- SEE IBM 1130 * S3H00110 12 | * SUBROUTINE LIBRARY MANUAL. * S3H00120 13 | * SPECIAL FEATURES- N/A * S3H00130 14 | * ADDITIONAL INFORMATION- * S3H00140 15 | * ESTIMATED EXECUTION TIME- SEE IBM 1130 * S3H00150 16 | * SUBROUTINE LIBRARY MANUAL * S3H00160 17 | * * S3H00170 18 | *************************************************** S3H00180 LIBF XMD -V1. 20 | LIBR S3H00200 21 | ENT XMD S3H00210 0000 7002 22 | XMD MDX *+2 S3H00220 0001 4C80 0000 23 | XMDX BSC I *-* LOADER INSERT. S3H00230 0003 D836 24 | STD P SAVE MULTIPLICAND S3H00240 0004 F37E 25 | EOR 3 126 COMPUTE AND STORE S3H00250 0005 D030 26 | STO PSGN PRODUCT SIGN. S3H00260 0006 10A0 27 | SLT 32 CLEAR ACC AND EXT S3H00270 0007 9B7E 28 | SD 3 126 GET THE ABS VALUE OF THE S3H00280 0008 4828 29 | BSC +Z MULTIPLIER AND STORE IN EXT S3H00290 0009 CB7E 30 | LDD 3 126 S3H00300 000A D831 31 | STD Q S3H00310 000B 10A0 32 | SLT 32 CLEAR ACC AND EXT S3H00320 000C 982D 33 | SD P GET THE ABSOLUTE VALUE OF S3H00330 000D 4810 34 | BSC - THE MULTIPLICAND AND STORE S3H00340 000E D82B 35 | STD P IN P S3H00350 000F C02A 36 | LD P S3H00360 0010 A02B 37 | M Q MPY MOST SIGNIFICANT HALVES S3H00370 0011 1081 38 | SLT 1 SCALE PRODUCT S3H00380 0012 D82B 39 | STD PS STORE PARTIAL PRODUCT S3H00390 0013 C027 40 | LD P+1 SECOND HALF OF MULTIPLICAND S3H00400 0014 A027 41 | M Q TIMES FIRST HALF OF MPYER S3H00410 0015 4828 42 | BSC +Z BR IF PTV. OTHERWISE S3H00420 0016 8025 43 | A Q ADD TO CORRECT SIGN S3H00430 0017 1881 44 | SRT 1 SCALE PRODUCT S3H00440 0018 D827 45 | STD PS1 ST PARTIAL CROSS-PRODUCT S3H00450 0019 C023 46 | LD Q+1 LEAST HALF MULTIPLIER S3H00460 001A A01F 47 | M P FIRST HALF MULTIPLICAND S3H00470 001B 4828 48 | BSC +Z BR IF PTV.OTHERWISE S3H00480 001C 801D 49 | A P ADD TO CORRECT SIGN S3H00490 001D 1881 50 | SRT 1 SCALE PRODUCT,ADD PREVIOUS S3H00500 001E 8821 51 | AD PS1 PARTIAL CROSS-PRODUCT S3H00510 001F D820 52 | STD PS1 S3H00520 0020 C01C 53 | LD Q+1 LEAST HALF OF MPYER SCALED S3H00530 0021 1801 54 | SRA 1 FOR MULTIPLICATION. S3H00540 0022 D012 55 | STO PS3 S3H00550 0023 C017 56 | LD P+1 MPY BY LEAST HALF OF MULTI- S3H00560 0024 A010 57 | M PS3 PLICAND. S3H00570 0025 4828 58 | BSC +Z BR IF PTV. OTHERWISE S3H00580 0026 800E 59 | A PS3 ADD TO CORRECT SIGN S3H00590 0027 1890 60 | SRT 16 ALIGN W/CROSS-PRODUCTS S3H00600 0028 8817 61 | AD PS1 AND ADD. S3H00610 0029 880E 62 | AD ROUND HALF-ADJUST RESULT. S3H00620 002A 188E 63 | SRT 14 ALIGN W/PARTIAL PRODUCT S3H00630 002B 8812 64 | AD PS ADD FIRST PARTIAL PRODUCT S3H00640 002C D811 65 | STD PS AND STORE FINAL PRODUCT S3H00650 002D C008 66 | LD PSGN RESTORE CORRECT SIGN TO S3H00660 002E 4C10 0033R 67 | BSC L *+3,- THE RESULT. S3H00670 0030 10A0 68 | SLT 32 S3H00680 0031 980C 69 | SD PS PUT RESULT IN THE ACC AND S3H00690 0032 70CE 70 | MDX XMDX EXTENSION FOR RETURN. S3H00700 0033 C00A 71 | LD PS S3H00710 0034 70CC 72 | MDX XMDX S3H00720 73 | * S3H00730 74 | *CONSTANTS AND BUFFER AREA S3H00740 75 | * S3H00750 0035 0000 76 | PS3 DC 0 STORE LEAST HALF OF MPYER. S3H00760 0036 0000 77 | PSGN DC 0 BIT 0 IS PRODUCT SIGN. S3H00770 0038 0000 2000 78 | ROUND DEC 8192 CONSTANT FOR ROUNDING OFF. S3H00780 003A 79 | P BSS E 2 MULTIPLICAND BUFFER S3H00790 003C 80 | Q BSS E 2 MULTIPLIER BUFFER S3H00800 003E 81 | PS BSS E 2 PARTIAL PRODUCT S3H00810 0040 82 | PS1 BSS E 2 PARTIAL CROSS-PRODUCT S3H00820 0042 83 | END S3H00830 There were no errors in this assembly === CROSS REFERENCES ========================================================== Name Val Defd Referenced P 003AR 79 24 33 35 36 40 47 49 56 PS 003ER 81 39 64 65 69 71 PS1 0040R 82 45 51 52 61 PS3 0035R 76 55 57 59 PSGN 0036R 77 26 66 Q 003CR 80 31 37 41 43 46 53 ROUND 0038R 78 62 XMD 0000R 22 XMDX 0001R 23 70 72