ASM1130 CROSS ASSEMBLER V1.22 -- V2M12 -- Sun Nov 1 19:25:09 2020 Source File: \u3hxbin.asm HEXADECIMAL TO BINARY CONVERSION 2 | *************************************************** U3D00020 3 | * * U3D00030 4 | * SUBROUTINE NAME- * U3D00040 5 | * FULL NAME- HEXADECIMAL TO BINARY CON- * U3D00050 6 | * VERSION SUBROUTINE. * U3D00060 7 | * CODE NAME- HXBIN * U3D00070 8 | * PURPOSE- THIS SUBROUTINE CONVERTS A FOUR- * U3D00080 9 | * CHARACTER HEXADECIMAL NUMBER IN EBCDIC * U3D00090 10 | * TO ITS ONE-WORD BINARY EQUIVALENT. * U3D00100 11 | * METHOD- * U3D00110 12 | * SEE IBM 1130 SUBROUTINE LIBRARY MANUAL * U3D00120 13 | * CAPABILITIES AND LIMITATIONS- * U3D00130 14 | * SEE IBM 1130 SUBROUTINE LIBRARY MANUAL * U3D00140 15 | * SPECIAL FEATURES- N/A * U3D00150 16 | * ADDITIONAL INFORMATION- * U3D00160 17 | * ESTIMATED EXECUTION TIME- * U3D00170 18 | * SEE IBM 1130 SUBROUTINE LIBRARY MANUAL * U3D00180 19 | * * U3D00190 20 | *************************************************** U3D00200 HEXADECIMAL TO BINARY CONVERSION 22 | LIBR U3D00220 23 | ENT HXBIN U3D00230 0000 6928 24 | HXBIN STX 1 C24+1 CALL ENTRY POINT U3D00240 0001 6580 0000 25 | LINK LDX I1 0 LOADER STORED TV ADDR U3D00250 0003 6A27 26 | STX 2 C26+1 SAVE XR2 U3D00260 0004 2820 27 | STS C20 SAVE STATUS U3D00270 0005 D83A 28 | STD TEMP SAVE ACC AND EXTENSION U3D00280 0006 C100 29 | LD 1 0 XR1=ADDR OF INPUT PARAM U3D00290 0007 8031 30 | A D0003 INCR TO REF LAST CHAR U3D00300 0008 D003 31 | STO C15+1 U3D00310 0009 7101 32 | MDX 1 +1 SET UP RETURN ADDR U3D00320 000A 6922 33 | STX 1 C28+1 U3D00330 000B 6500 0000 34 | C15 LDX L1 0 XR1= IOAR +3 U3D00340 000D C02C 35 | LD D0004 SET COUNT FOR 4 DIGITS U3D00350 000E D029 36 | STO COUNT U3D00360 37 | * U3D00370 38 | *LOOP TO CONVERT HEXADECIMAL DIGITS U3D00380 39 | * U3D00390 000F C100 40 | C16 LD 1 0 OBTAIN HOLLERITH DIGIT U3D00400 0010 4C28 002ER 41 | BSC L C40,Z+ TEST FOR ALPHA DIGIT U3D00410 0012 E02A 42 | AND H400F IF NUMERIC, GO SET ERROR U3D00420 0013 4C20 0036R 43 | BSC L C42,Z INDR IF BITS 1,12-15 ON U3D00430 0015 C100 44 | LD 1 0 WHICH ROW BIT IS SET U3D00440 0016 620C 45 | C17 LDX 2 12 U3D00450 0017 1240 46 | SLCA 2 0 XR2=10 IF 0 ROW,1 IF 9,ETC U3D00460 0018 9026 47 | S H8000 ERROR IF MULTIPLE ROWS U3D00470 0019 4C20 0036R 48 | BSC L C42,Z OR IF NO BITS SET. U3D00480 001B 6A24 49 | STX 2 TEMP U3D00490 001C C01F 50 | LD D0010 10-(XR2) = ROW BIT SET U3D00500 001D 9022 51 | S TEMP U3D00510 001E 4801 52 | BSC O IS DIGIT ALPHA U3D00520 001F 801B 53 | A D0009 YES, ADD +9 TO ROW U3D00530 0020 1884 54 | SRT 4 ST BINARY DIGIT IN EXT U3D00540 0021 71FF 55 | MDX 1 -1 ARE 4 DIGITS DONE YET U3D00550 0022 74FF 0038R 56 | MDX L COUNT,-1 U3D00560 0024 70EA 57 | MDX C16 NO,DO NEXT HEX CHAR U3D00570 0025 2000 58 | C20 LDS 0 YES, RESTORE STATUS U3D00580 0026 C01A 59 | C22 LD TEMP+1 PUT BINARY IN ACC AND U3D00590 0027 18D0 60 | RTE 16 RESTORE EXTENSION. U3D00600 0028 6500 0000 61 | C24 LDX L1 *-* RESTORE XR1 U3D00610 002A 6600 0000 62 | C26 LDX L2 *-* RESTORE XR1 U3D00620 002C 4C00 0000 63 | C28 BSC L 0 EXIT U3D00630 64 | * U3D00640 65 | *SECTION TO TREAT ALPHA CHARACTERS U3D00650 66 | * U3D00660 002E 2001 67 | C40 LDS 1 SET ALPHA DIGIT INDR U3D00670 002F C100 68 | LD 1 0 U3D00680 0030 E00D 69 | AND H607F ERROR IF 11,0,7,8,9 ROW U3D00690 0031 4C20 0036R 70 | BSC L C42,Z OR BITS 12-15 SET U3D00700 0033 C100 71 | LD 1 0 U3D00710 0034 F00A 72 | EOR H8000 MASK OUT 12 ROW BIT U3D00720 0035 70E0 73 | MDX C17 GO DO NORMAL CONVERSION U3D00730 0036 2001 74 | C42 LDS 1 SET ERROR INDR (OVERFLOW ON U3D00740 0037 70EE 75 | MDX C22 AND CARRY OFF) U3D00750 76 | * U3D00760 77 | *CONSTANTS AND BUFFER AREA U3D00770 78 | * U3D00780 0038 0000 79 | COUNT DC 0 FOUR-CHAR COUNT BUFFER U3D00790 0039 0003 80 | D0003 DC +3 DECIMAL NUMBERS FOR SCALING U3D00800 003A 0004 81 | D0004 DC +4 ROW BIT VALUE. U3D00810 003B 0009 82 | D0009 DC +9 SCALING DIGIT U3D00820 003C 000A 83 | D0010 DC +10 SCALING DIGIT U3D00830 003D 400F 84 | H400F DC /400F MASK FOR BITS 1,12-15 U3D00840 003E 607F 85 | H607F DC /607F MASK FOR BITS 11,0,7,8,9, U3D00850 003F 8000 86 | H8000 DC /8000 12-15 SIGN BIT MASK U3D00860 0040 87 | TEMP BSS E 2 TEMPORARY STG. SAVE EXT U3D00870 0042 88 | END U3D00880 There were no errors in this assembly === CROSS REFERENCES ========================================================== Name Val Defd Referenced C15 000BR 34 31 C16 000FR 40 57 C17 0016R 45 73 C20 0025R 58 27 C22 0026R 59 75 C24 0028R 61 24 C26 002AR 62 26 C28 002CR 63 33 C40 002ER 67 41 C42 0036R 74 43 48 70 COUNT 0038R 79 36 56 D0003 0039R 80 30 D0004 003AR 81 35 D0009 003BR 82 53 D0010 003CR 83 50 H400F 003DR 84 42 H607F 003ER 85 69 H8000 003FR 86 47 72 HXBIN 0000R 24 LINK 0001R 25 TEMP 0040R 87 28 49 51 59