ASM1130 CROSS ASSEMBLER V1.22 -- V2M12 -- Sun Nov 1 19:25:09 2020
Source File: \u3holpr.asm
HOLLERITH TO PRINTER CODE CONVERSION
2 | *************************************************** U3C00020
3 | * * U3C00030
4 | * SUBROUTINE NAME- * U3C00040
5 | * FULL NAME- HOLLERITH TO 1053 OR 1443 * U3C00050
6 | * PRINTER CODE CONVERSION SUBROUTINE. * U3C00060
7 | * CODE NAME- HOLPR * U3C00070
8 | * PURPOSE- THIS SUBROUTINE CONVERTS HOLLERITH * U3C00080
9 | * CHARACTER CODE TO EITHER 1053 OR 1443 * U3C00090
10 | * PRINTER CODE,PACKED TWO CHARACTERS PER WORD* U3C00100
11 | * METHOD- * U3C00110
12 | * SEE IBM 1130 SUBROUTINE LIBRARY MANUAL * U3C00120
13 | * CAPABILITIES AND LIMITATIONS- * U3C00130
14 | * SEE IBM 1130 SUBROUTINE LIBRARY MANUAL * U3C00140
15 | * SPECIAL FEATURES- N/A * U3C00150
16 | * ADDITIONAL INFORMATION- * U3C00160
17 | * ESTIMATED EXECUTION TIME- * U3C00170
18 | * SEE IBM 1130 SUBROUTINE LIBRARY MANUAL * U3C00180
19 | * * U3C00190
20 | *************************************************** U3C00200
HOLLERITH TO PRINTER CODE CONVERSION
22 | LIBR U3C00220
23 | ENT HOLPR U3C00230
0000 692F 24 | HOLPR STX 1 SAV1+1 CALL ENTRY POINT U3C00240
0001 6580 0000 25 | LINK LDX I1 0 LOADER STORED TV ADDR U3C00250
0003 6A2E 26 | STX 2 SAV2+1 SAVE XR2 U3C00260
0004 2829 27 | STS CHECK SAVE STATUS U3C00270
0005 D832 28 | STD SAVAQ SAVE ACC AND EXT U3C00280
0006 C101 29 | LD 1 1 U3C00290
0007 D010 30 | STO INPUT+1 SAVE INPUT ADDR U3C00300
0008 C102 31 | LD 1 2 U3C00310
0009 D010 32 | STO OUTPT+1 SAVE OUPUT ADDR U3C00320
000A C103 33 | LD 1 3 U3C00330
000B D02F 34 | STO COUNT SAVE CHAR COUNT U3C00340
000C C029 35 | LD CALL1 U3C00350
000D 4048 36 | BSI SBRTA SET UP HOLL TABLE ADDR U3C00360
000E D035 37 | STO TLU14+1 U3C00370
000F C027 38 | LD CALL2 U3C00380
0010 4045 39 | BSI SBRTA SET UP PRTY TABLE ADDR U3C00390
0011 D03B 40 | STO TLU18+1 U3C00400
0012 C100 41 | LD 1 0 SET OUTPUT CODE INDR U3C00410
0013 F028 42 | EOR D0001 (0 IF 1443, 1 IF 1053) U3C00420
0014 D025 43 | STO CODE U3C00430
0015 7104 44 | MDX 1 +4 SET EXIT TO SKIP 4 PARAMS U3C00440
0016 691E 45 | STX 1 EXIT+1 U3C00450
0017 6500 0000 46 | INPUT LDX L1 0 XR1= INPUT ADDR U3C00460
0019 6600 0000 47 | OUTPT LDX L2 0 XR2= OUTPUT ADDR U3C00470
48 | * U3C00480
49 | *THIS SECTION SETS UP THE CONVERSION AND STORES U3C00490
50 | *THE RESULTS IN THE OUTPUT AREA. U3C00500
51 | * U3C00510
001B C200 52 | LEFT LD 2 0 U3C00520
001C 1888 53 | SRT 8 SAVE RT HALF OF O/P AREA WD U3C00530
001D 4021 54 | BSI TLU GO CONVERT HOLLERITH CHAR U3C00540
001E 1088 55 | SLT 8 ST CONVERTED CHAR IN FIRST, U3C00550
001F D200 56 | STO 2 0 RESTORE LAST HALF OF WORD. U3C00560
0020 74FF 003BR 57 | MDX L COUNT,-1 ANY MORE CHARS TO CONVERT U3C00570
0022 7001 58 | MDX RIGHT YES,GO TO FILL OUT O/P WD U3C00580
0023 700A 59 | MDX CHECK NO,GO TO EXIT U3C00590
0024 C200 60 | RIGHT LD 2 0 U3C00600
0025 1898 61 | SRT 24 SAVED CONVERTED LEFT CHAR U3C00610
0026 4018 62 | BSI TLU CONVERT HOLL CHAR AND PUT U3C00620
0027 1008 63 | SLA 8 IN BITS 0-7. U3C00630
0028 18C8 64 | RTE 8 U3C00640
0029 D200 65 | STO 2 0 STORE BOTH CONVERTED CHARS U3C00650
002A 7201 66 | MDX 2 +1 SET FOR NEXT OUTPUT WORD U3C00660
002B 74FF 003BR 67 | MDX L COUNT,-1 ANY MORE CHARS TO CONVERT U3C00670
002D 70ED 68 | MDX LEFT YES,REPEAT LOOP U3C00680
002E 2000 69 | CHECK LDS 0 NO,RESTORE STATUS U3C00690
002F 6500 0000 70 | SAV1 LDX L1 0 RESTORE XR1 U3C00700
0031 6600 0000 71 | SAV2 LDX L2 0 RESTORE XR2 U3C00710
0033 C804 72 | LDD SAVAQ RESTORE ACC AND EXT U3C00720
0034 4C00 0000 73 | EXIT BSC L 0 EXIT U3C00730
74 | * U3C00740
75 | *CONSTANTS AND BUFFER AREA U3C00750
76 | * U3C00760
0036 0859*34C0 77 | CALL1 LIBF HOLL USED TO GET HOLL LOAD ADDR U3C00770
0037 1766*3A00 78 | CALL2 LIBF PRTY USED TO GET PRTY LOAD ADDR U3C00780
0038 79 | SAVAQ BSS E 2 SAVE ACC AND EXT U3C00790
003A 0000 80 | CODE DC 0 O/P CODE INDR(0=1443,1=1053 U3C00800
003B 0000 81 | COUNT DC 0 CHAR COUNT U3C00810
003C 0001 82 | D0001 DC +1 15-BIT MASK U3C00820
003D 00FF 83 | H00FF DC /00FF HIGH BIT MASK U3C00830
003E 2001 84 | H2001 DC /2001 OVERFLOW STATUS WD U3C00840
85 | * U3C00850
86 | *THIS SECTION DOES A TABLE LOOKUP CONVERSION USING U3C00860
87 | *EBPA AND HOLL. U3C00870
88 | * U3C00880
003F 0000 89 | TLU DC 0 SAVE RET ADDR U3C00890
0040 6A12 90 | STX 2 TLU26+1 SAVE XR1 U3C00900
0041 624B 91 | LDX 2 +75 XR2= NO. OF CHARS IN TABLE U3C00910
0042 C100 92 | TLU12 LD 1 0 GET HOLLERITH CHAR U3C00920
0043 F600 0000 93 | TLU14 EOR L2 0 CHK AGAINST TABLE ENTRY U3C00930
0045 4C18 004BR 94 | BSC L TLU16,+- IF SAME,GO CONVERT U3C00940
0047 72FF 95 | MDX 2 -1 IF NOT,CHK FOR END OF TABLE U3C00950
0048 70F9 96 | MDX TLU12 MORE TBL,CONTINUE SEARCH U3C00960
0049 C0F4 97 | LD H2001 END OF TBL,SET ERROR INDR- U3C00970
004A D0E3 98 | STO CHECK CARRY OFF, OVERFLOW ON. U3C00980
004B 7101 99 | TLU16 MDX 1 +1 RT TBL ENTRY, REF NEXT CHAR U3C00990
004C C600 0000 100 | TLU18 LD L2 0 GET PRTY TABLE ENTRY U3C01000
004E 7400 003AR 101 | MDX L CODE,0 SKIP IF 1443,USE LAST 8 BIT U3C01010
0050 1808 102 | SRA 8 IF 1053,USE FIRST 8 BITS U3C01020
0051 E0EB 103 | AND H00FF RET ONLY ONE CHAR U3C01030
0052 6600 0000 104 | TLU26 LDX L2 0 RESTORE XR2 U3C01040
0054 4C80 003FR 105 | BSC I TLU RETURN U3C01050
106 | * U3C01060
107 | *THIS SECTION GET THE ADDRESS OF THE BEGINNING OF U3C01070
108 | *THE TABLES IN PRTY AND HOLL. U3C01080
109 | * U3C01090
0056 0000 110 | SBRTA DC *-* SAVE RET ADDR U3C01100
0057 1008 111 | SLA 8 PROPAGATE SIGN BIT OF TV U3C01110
0058 1888 112 | SRT 8 DISPLACEMENT. U3C01120
0059 6B04 113 | STX 3 SBA12+1 GET TV TBL LOCATION U3C01130
005A 8007 114 | A D0002 CONSTRUCT THE ADDRESS OF U3C01140
005B 8002 115 | A SBA12+1 THIRD WD OF TV. U3C01150
005C D001 116 | STO SBA12+1 U3C01160
005D C400 0000 117 | SBA12 LD L 0 GET SUBRT ENTRY ADDR U3C01170
005F 8003 118 | A D0003 U3C01180
0060 4C80 0056R 119 | BSC I SBRTA RETURN CALL+3 U3C01190
0062 0002 120 | D0002 DC +2 DECIMAL 2 U3C01200
0063 0003 121 | D0003 DC +3 DECIMAL 3 U3C01210
0064 122 | END U3C01220
There were no errors in this assembly
=== CROSS REFERENCES ==========================================================
Name Val Defd Referenced
CALL1 0036R 77 35
CALL2 0037R 78 38
CHECK 002ER 69 27 59 98
CODE 003AR 80 43 101
COUNT 003BR 81 34 57 67
D0001 003CR 82 42
D0002 0062R 120 114
D0003 0063R 121 118
EXIT 0034R 73 45
H00FF 003DR 83 103
H2001 003ER 84 97
HOLPR 0000R 24
INPUT 0017R 46 30
LEFT 001BR 52 68
LINK 0001R 25
OUTPT 0019R 47 32
RIGHT 0024R 60 58
SAV1 002FR 70 24
SAV2 0031R 71 26
SAVAQ 0038R 79 28 72
SBA12 005DR 117 113 115 116
SBRTA 0056R 110 36 39 119
TLU 003FR 89 54 62 105
TLU12 0042R 92 96
TLU14 0043R 93 37
TLU16 004BR 99 94
TLU18 004CR 100 40
TLU26 0052R 104 90