ASM1130 CROSS ASSEMBLER V1.22 -- V2M12 -- Sun Nov 1 19:25:09 2020
Source File: \u3paphl.asm
PTTC/8-HOLL OR HOLL-PTTC/8 CONVERSION
2 | *************************************************** U3F00020
3 | * * U3F00030
4 | * SUBROUTINE NAME- * U3F00040
5 | * FULL NAME- PTTC/8 TO HOLLERITH OR HOLLERITH* U3F00050
6 | * TO PTTC/8 CONVERSION SUBROUTINE. * U3F00060
7 | * CODE NAME- PAPHL * U3F00070
8 | * PURPOSE- THIS SUBROUTINE CONVERTS PTTC/8 * U3F00080
9 | * SUBSET TO HOLLERITH SUBSET,OR HOLLERITH * U3F00090
10 | * SUBSET TO PTTC/8 SUBSET. SUBSET CONSISTS * U3F00100
11 | * OF THOSE CHARS ASTERISKED IN APPENDIX D * U3F00110
12 | * OF THE IBM 1130 SUBROUTINE LIBRARY MANUAL * U3F00120
13 | * METHOD- * U3F00130
14 | * SEE IBM 1130 SUBROUTINE LIBRARY MANUAL * U3F00140
15 | * CAPABILITIES AND LIMITATIONS- * U3F00150
16 | * SEE IBM 1130 SUBROUTINE LIBRARY MANUAL * U3F00160
17 | * SPECIAL FEATURES- N/A * U3F00170
18 | * ADDITIONAL INFORMATION- * U3F00180
19 | * ESTIMATED EXECUTION TIME- * U3F00190
20 | * SEE IBM 1130 SUBROUTINE LIBRARY MANUAL * U3F00200
21 | * * U3F00210
22 | *************************************************** U3F00220
PTTC/8-HOLL OR HOLL-PTTC/8 CONVERSION
24 | LIBR U3F00240
25 | ENT PAPHL U3F00250
0000 694E 26 | PAPHL STX 1 SAV1+1 CALL ENTRY POINT U3F00260
0001 6580 0000 27 | LINK LDX I1 0 LOADER STORED TV ADDR U3F00270
0003 6A4D 28 | STX 2 SAV2+1 SAVE XR2 U3F00280
0004 284D 29 | STS SAVST SAVE STATUS U3F00290
0005 D856 30 | STD SAVAQ SAVE ACC AND EXTENSION U3F00300
0006 C101 31 | LD 1 1 XR1= ADDR OF CALL+1 U3F00310
0007 D00D 32 | STO INPUT+1 = INPUT PARAMETER U3F00320
0008 C102 33 | LD 1 2 U3F00330
0009 D00D 34 | STO OUTPT+1 = OUTPUT PARAMETER U3F00340
000A C103 35 | LD 1 3 U3F00350
000B D400 0062R 36 | STO L COUNT = NO. OF CHARS TO CONVERT U3F00360
000D 1810 37 | SRA 16 SET OUTPUT CONTROL FOR U3F00370
000E D052 38 | STO CNTRL LEFT CHARACTER. U3F00380
000F C100 39 | LD 1 0 = CONTROL PARAMETER U3F00390
0010 F054 40 | EOR H0010 SET CARRY ON IF INITLZ CASE U3F00400
0011 100C 41 | SLA 12 REQUESTED U3F00410
0012 7104 42 | MDX 1 +4 U3F00420
0013 6941 43 | STX 1 EXIT+1 SET EXIT TO CALL+5 U3F00430
0014 6500 0000 44 | INPUT LDX L1 0 XR1= INPUT ADDRESS U3F00440
0016 6600 0000 45 | OUTPT LDX L2 0 XR2= OUTPUT ADDRESS U3F00450
0018 4C18 006CR 46 | BSC L PAPIN,+- U3F00460
47 | *HOLLERITH = INPUT CODE U3F00470
001A C04D 48 | HOLIN LD HFFF0 U3F00480
001B D400 00AFR 49 | STO L MASK SET UP TABLE LOOK-UP MASK U3F00490
001D 4802 50 | BSC C U3F00500
001E D041 51 | STO CASE SET UP CASE CHANGE INDR U3F00510
001F C03F 52 | LD CALL2 OBTAIN HOLL TABLE ADDR U3F00520
0020 406B 53 | BSI SBRTA U3F00530
0021 D400 009FR 54 | STO L TLU12+1 U3F00540
0023 C03A 55 | LD CALL1 OBTAIN EBPA TABLE ADDR U3F00550
0024 4067 56 | BSI SBRTA U3F00560
0025 D400 00A9R 57 | STO L TLU14+1 U3F00570
0027 C100 58 | HOL12 LD 1 0 U3F00580
0028 4071 59 | BSI TLU CONVERT HOLLERITH CHAR U3F00590
0029 E03D 60 | AND H00FF U3F00600
002A 903A 61 | S H0010 IS CHAR = BLANK U3F00610
002B 4C18 005AR 62 | BSC L CHK18,+- YES, OUTPUT PTTC/8 BLANK U3F00620
002D 8037 63 | A H0010 NO, RESTORE HOLLERITH U3F00630
002E 1882 64 | SRT 2 IS CHAR = CONTROL U3F00640
002F 4804 65 | BSC E (BITS 12-13 = 11) U3F00650
0030 7001 66 | MDX CHK10 U3F00660
0031 7004 67 | MDX CHK12 U3F00670
0032 1881 68 | CHK10 SRT 1 U3F00680
0033 4C04 0056R 69 | BSC L CHK16,E YES, NO CASE CHECK U3F00690
0035 1081 70 | SLT 1 U3F00700
0036 1885 71 | CHK12 SRT 5 SAVE CHAR IN EXTENSION U3F00710
0037 F028 72 | EOR CASE U3F00720
0038 4C18 0042R 73 | BSC L CHK14,+- IS CASE CHANGE NEEDED U3F00730
003A F025 74 | EOR CASE U3F00740
003B D024 75 | STO CASE U3F00750
003C 1010 76 | SLA 16 YES, WHICH CASE U3F00760
003D C02B 77 | LD LOWER =LOWER CASE CHAR U3F00770
003E 4802 78 | BSC C U3F00780
003F C02B 79 | LD UPPER =UPPER CASE CHAR U3F00790
0040 4074 80 | BSI STORE STORE CASE CHAR U3F00800
0041 1001 81 | SLA 1 U3F00810
0042 1087 82 | CHK14 SLT 7 U3F00820
0043 1008 83 | CHK15 SLA 8 U3F00830
0044 4070 84 | BSI STORE STORE PAPER TAPE CHAR U3F00840
0045 7101 85 | MDX 1 +1 SET FOR NEXT INPUT WORD U3F00850
0046 74FF 0062R 86 | MDX L COUNT,-1 ANY MORE EBCDIC CHARS U3F00860
0048 70DE 87 | MDX HOL12 YES, REPEAT LOOP U3F00870
0049 C020 88 | LD TEMP NO, ANY CHAR LEFT TO U3F00880
004A 4C18 004ER 89 | BSC L SAV1,+- STORE. U3F00890
004C 8019 90 | A H007F YES, ADD DELETE U3F00900
004D D200 91 | STO 2 0 U3F00910
004E 6500 0000 92 | SAV1 LDX L1 *-* NO,RESTORE XR1 U3F00920
0050 6600 0000 93 | SAV2 LDX L2 *-* RESTORE XR2 U3F00930
0052 2000 94 | SAVST LDS *-* RESTORE STATUS U3F00940
0053 C808 95 | LDD SAVAQ RESTORE ACC AND EXT U3F00950
0054 4C00 0000 96 | EXIT BSC L 0 EXIT U3F00960
0056 1884 97 | CHK16 SRT 4 IS CONTROL CHAR= NEW LINE U3F00970
0057 4804 98 | BSC E U3F00980
0058 D009 99 | STO COUNT YES, SET LAST CHAR INDR U3F00990
0059 70E8 100 | MDX CHK14 U3F01000
005A C00A 101 | CHK18 LD H0010 CHAR = SPACE U3F01010
005B 70E7 102 | MDX CHK15 U3F01020
103 | * U3F01030
104 | *CONSTANTS AND BUFFER AREA U3F01040
105 | * U3F01050
005C 106 | SAVAQ BSS E 2 SAVE ACC AND EXT U3F01060
005E 0509*7040 107 | CALL1 LIBF EBPA USED TO GET EBPA LOAD ADDR U3F01070
005F 0859*34C0 108 | CALL2 LIBF HOLL USED TO GET HOLL LOAD ADDR U3F01080
0060 0000 109 | CASE DC 0 CASE INDR(O=LOWER,1=UPPER) U3F01090
0061 0000 110 | CNTRL DC 0 OUTPUT CONTROL (0= LEFT) U3F01100
0062 0000 111 | COUNT DC 0 CHAR COUNT U3F01110
0063 0002 112 | D0002 DC +2 DECIMAL CONSTANT U3F01120
0064 0003 113 | D0003 DC +3 DECIMAL CONSTANT U3F01130
0065 0010 114 | H0010 DC /0010 PTTC/8 BLANK U3F01140
0066 007F 115 | H007F DC /007F PTTC/8 DELETE U3F01150
0067 00FF 116 | H00FF DC /00FF LOW BIT MASK U3F01160
0068 FFF0 117 | HFFF0 DC /FFF0 HOLLERITH CHAR MASK U3F01170
0069 6E00 118 | LOWER DC /6E00 PTTC/8 LOWER CASE CHAR INDR U3F01180
006A 0000 119 | TEMP DC 0 WORKING STORAGE U3F01190
006B 0E00 120 | UPPER DC /0E00 PTTC/8 UPPER CASE CHAR INDR U3F01200
121 | * U3F01210
122 | *THIS SECTION SETS UP THE CONVERSION FROM PTTC/8 U3F01220
123 | *TO HOLLERITH AND STORES THE CONVERTED CHARS IN U3F01230
124 | *THE OUTPUT AREA. U3F01240
125 | * U3F01250
006C 4802 126 | PAPIN BSC C IF NO CASE CHANGE, U3F01260
006D D0F2 127 | STO CASE ZERO THE INDICATOR. U3F01270
006E C0F8 128 | LD H00FF U3F01280
006F D03F 129 | STO MASK SET UP TABLE LOOK-UP MASK U3F01290
0070 C0ED 130 | LD CALL1 U3F01300
0071 401A 131 | BSI SBRTA OBTAIN EBPA TABLE ADDR U3F01310
0072 D02C 132 | STO TLU12+1 U3F01320
0073 C0EB 133 | LD CALL2 U3F01330
0074 4017 134 | BSI SBRTA OBTAIN HOLL TABLE ADDR U3F01340
0075 D033 135 | STO TLU14+1 U3F01350
0076 C100 136 | PAP22 LD 1 0 U3F01360
0077 1808 137 | SRA 8 U3F01370
0078 404D 138 | BSI SHIFT IS CHAR = CASE SHIFT U3F01380
0079 7003 139 | MDX PAP24 YES, CHECK NEXT CHAR U3F01390
007A 401F 140 | BSI TLU CONVERT LEFT PTTC/8 CHAR U3F01400
007B D200 141 | STO 2 0 STORE CONVERTED CHAR U3F01410
007C 7201 142 | MDX 2 +1 SET FOR NEXT OUTPUT WD U3F01420
007D 74FF 0062R 143 | PAP24 MDX L COUNT,-1 ANY MORE PTTC/8 CHARS U3F01430
007F 7001 144 | MDX PAP26 YES U3F01440
0080 70CD 145 | MDX SAV1 NO U3F01450
0081 C100 146 | PAP26 LD 1 0 U3F01460
0082 4043 147 | BSI SHIFT IS CHAR = CASE SHIFT U3F01470
0083 7003 148 | MDX PAP28 YES, CHECK NEXT CHAR U3F01480
0084 4015 149 | BSI TLU CONVERT RIGHT PTTC/8 CHAR U3F01490
0085 D200 150 | STO 2 0 STORE CONVERTED CHAR U3F01500
0086 7201 151 | MDX 2 +1 SET FOR NEXT OUTPUT WORD U3F01510
0087 7101 152 | PAP28 MDX 1 +1 SET FOR NEXT INPUT WORD U3F01520
0088 74FF 0062R 153 | MDX L COUNT,-1 ANY MORE PTTC/8 CHARS U3F01530
008A 70EB 154 | MDX PAP22 YES U3F01540
008B 70C2 155 | MDX SAV1 NO,EXIT U3F01550
156 | * U3F01560
157 | *THIS SECTION OBTAINS THE LOAD ADDR OF EBPA AND U3F01570
158 | *HOLL TABLES. U3F01580
159 | * U3F01590
008C 1000 160 | SBRTA NOP U3F01600
008D 1008 161 | SLA 8 U3F01610
008E 1888 162 | SRT 8 DUPLICATE SIGN BIT U3F01620
008F 6B04 163 | STX 3 SBA12+1 U3F01630
0090 8003 164 | A SBA12+1 ADD TV ADDR U3F01640
0091 8006 165 | A D2 REF THIRD WD OF TV TBL U3F01650
0092 D001 166 | STO SBA12+1 ENTRY. U3F01660
0093 C400 0000 167 | SBA12 LD L 0 OBTAIN SUBROUTINE ADDR U3F01670
0095 8003 168 | A D3 SKIP FIRST THREE WORDS U3F01680
0096 4C80 008CR 169 | BSC I SBRTA U3F01690
0098 0002 170 | D2 DC +2 U3F01700
0099 0003 171 | D3 DC +3 U3F01710
172 | * U3F01720
173 | *THIS SECTION DOES A TABLE LOOKUP CONVERSION OF U3F01730
174 | *PTTC/8 TO HOLLERITH OR HOLLERITH TO PTTC/8. U3F01740
175 | * U3F01750
009A 1000 176 | TLU NOP STORE RETURN ADDR U3F01760
009B D012 177 | STO CHAR U3F01770
009C 690E 178 | STX 1 TLU16+1 U3F01780
009D 614B 179 | LDX 1 +75 XR1= LENGTH OF TABLES U3F01790
009E F500 0000 180 | TLU12 EOR L1 0 U3F01800
00A0 E00E 181 | AND MASK U3F01810
00A1 4C18 00A8R 182 | BSC L TLU14,+- HAS CHAR BEEN FOUND U3F01820
00A3 C00A 183 | LD CHAR U3F01830
00A4 71FF 184 | MDX 1 -1 NO, ANY MORE TO CHECK U3F01840
00A5 70F8 185 | MDX TLU12 YES U3F01850
00A6 C00B 186 | LD H2001 NO, TURN OVERFLOW ON U3F01860
00A7 D0AA 187 | STO SAVST U3F01870
00A8 C500 0000 188 | TLU14 LD L1 0 YES, PUT EBPA WORD INTO U3F01880
00AA 6500 0000 189 | TLU16 LDX L1 0 ACCUMULATOR. U3F01890
00AC 4C80 009AR 190 | BSC I TLU RETURN U3F01900
191 | * U3F01910
192 | *CONSTANTS AND BUFFER AREA U3F01920
193 | * U3F01930
00AE 0000 194 | CHAR DC 0 CHAR TO BE CONVERTED U3F01940
00AF 0000 195 | MASK DC 0 MASK FOR INPUT CODE U3F01950
00B0 DD00 196 | NEWLN DC /DD00 PTTC/8 NEW LINE U3F01960
00B1 000C 197 | H000C DC /000C CHK FOR PTTC/8 CONTROL CHAR U3F01970
00B2 2001 198 | H2001 DC /2001 SET OVERFLOW U3F01980
00B3 0001 199 | D0001 DC +1 DECIMAL 1 U3F01990
00B4 0010 200 | X0010 DC /0010 PTTC/8 BLANK U3F02000
201 | * U3F02010
202 | *THIS SECTION STORES THE OUTPUT CHARS U3F02020
203 | * U3F02030
00B5 1000 204 | STORE NOP SAVE RETURN ADDR U3F02040
00B6 7400 0061R 205 | MDX L CNTRL,0 IS O/P FOR LEFT HALF OF WD U3F02050
00B8 7005 206 | MDX STR16 YES, SAVE IN TEMP U3F02060
00B9 D0B0 207 | STO TEMP U3F02070
00BA C0F8 208 | LD D0001 U3F02080
00BB D0A5 209 | STR12 STO CNTRL U3F02090
00BC 4C80 00B5R 210 | BSC I STORE U3F02100
00BE 1808 211 | STR16 SRA 8 NO, ADD IN TEMP AND STORE U3F02110
00BF 80AA 212 | A TEMP CHARS IN OUTPUT AREA. U3F02120
00C0 D200 213 | STO 2 0 U3F02130
00C1 1810 214 | SRA 16 U3F02140
00C2 D0A7 215 | STO TEMP CLEAR CHAR STORAGE U3F02150
00C3 7201 216 | MDX 2 +1 SET FOR NEXT OUTPUT WORD U3F02160
00C4 1810 217 | SRA 16 U3F02170
00C5 70F5 218 | MDX STR12 U3F02180
219 | * U3F02190
220 | *THIS SECTION CHECKS FOR A CASE SHIFT OR NEW LINE U3F02200
221 | *CHARACTER IN PTTC/8 TO HOLLERITH CONVERSION. U3F02210
222 | * U3F02220
00C6 1000 223 | SHIFT NOP CHK CHAR FOR FOR CASE SHIFT U3F02230
00C7 E09F 224 | AND H00FF U3F02240
00C8 D0E5 225 | STO CHAR SAVE CHARACTER U3F02250
00C9 E0E7 226 | AND H000C U3F02260
00CA F0E6 227 | EOR H000C IS CHAR = CONTROL U3F02270
00CB 4C20 00E3R 228 | BSC L SFT20,Z NO U3F02280
00CD C0E0 229 | LD CHAR U3F02290
00CE 1008 230 | SLA 8 U3F02300
00CF F099 231 | EOR LOWER IS CHAR = LOWER CASE U3F02310
00D0 4C18 00E0R 232 | BSC L SFT18,+- YES U3F02320
00D2 F096 233 | EOR LOWER U3F02330
00D3 F097 234 | EOR UPPER IS CHAR = UPPER CASE U3F02340
00D4 4C18 00DFR 235 | BSC L SFT16,+- YES U3F02350
00D6 F094 236 | EOR UPPER U3F02360
00D7 F0D8 237 | EOR NEWLN IS CHAR = NEW LINE U3F02370
00D8 4818 238 | BSC +- U3F02380
00D9 D088 239 | STO COUNT YES U3F02390
00DA C0D3 240 | SFT12 LD CHAR U3F02400
00DB 7401 00C6R 241 | SFT13 MDX L SHIFT,+1 NO, SET TO SKIP ONE WORD U3F02410
00DD 4C80 00C6R 242 | SFT14 BSC I SHIFT U3F02420
00DF C0D3 243 | SFT16 LD D0001 U3F02430
00E0 D400 0060R 244 | SFT18 STO L CASE SET CASE ACCORDINGLY U3F02440
00E2 70FA 245 | MDX SFT14 U3F02450
00E3 C0CA 246 | SFT20 LD CHAR IS CHAR = BLANK U3F02460
00E4 90CF 247 | S X0010 U3F02470
00E5 4C18 00DAR 248 | BSC L SFT12,+- YES, DON'T CHECK CASE U3F02480
00E7 80CC 249 | A X0010 U3F02490
00E8 1887 250 | SRT 7 IS CHAR ILLEGAL U3F02500
00E9 4C04 00EFR 251 | BSC L SFT22,E U3F02510
00EB C400 0060R 252 | LD L CASE NO, ADD CASE INTO U3F02520
00ED 1087 253 | SLT 7 CHAR VALUE. U3F02530
00EE 70EC 254 | MDX SFT13 U3F02540
00EF C0C2 255 | SFT22 LD H2001 YES, SET OVERFLOW ON AND U3F02550
00F0 D400 0052R 256 | STO L SAVST LOAD BLANK AS U3F02560
00F2 C0C1 257 | LD X0010 CHARACTER U3F02570
00F3 70E7 258 | MDX SFT13 U3F02580
00F4 259 | END U3F02590
There were no errors in this assembly
=== CROSS REFERENCES ==========================================================
Name Val Defd Referenced
CALL1 005ER 107 55 130
CALL2 005FR 108 52 133
CASE 0060R 109 51 72 74 75 127 244 252
CHAR 00AER 194 177 183 225 229 240 246
CHK10 0032R 68 66
CHK12 0036R 71 67
CHK14 0042R 82 73 100
CHK15 0043R 83 102
CHK16 0056R 97 69
CHK18 005AR 101 62
CNTRL 0061R 110 38 205 209
COUNT 0062R 111 36 86 99 143 153 239
D0001 00B3R 199 208 243
D0002 0063R 112
D0003 0064R 113
D2 0098R 170 165
D3 0099R 171 168
EXIT 0054R 96 43
H000C 00B1R 197 226 227
H0010 0065R 114 40 61 63 101
H007F 0066R 115 90
H00FF 0067R 116 60 128 224
H2001 00B2R 198 186 255
HFFF0 0068R 117 48
HOL12 0027R 58 87
HOLIN 001AR 48
INPUT 0014R 44 32
LINK 0001R 27
LOWER 0069R 118 77 231 233
MASK 00AFR 195 49 129 181
NEWLN 00B0R 196 237
OUTPT 0016R 45 34
PAP22 0076R 136 154
PAP24 007DR 143 139
PAP26 0081R 146 144
PAP28 0087R 152 148
PAPHL 0000R 26
PAPIN 006CR 126 46
SAV1 004ER 92 26 89 145 155
SAV2 0050R 93 28
SAVAQ 005CR 106 30 95
SAVST 0052R 94 29 187 256
SBA12 0093R 167 163 164 166
SBRTA 008CR 160 53 56 131 134 169
SFT12 00DAR 240 248
SFT13 00DBR 241 254 258
SFT14 00DDR 242 245
SFT16 00DFR 243 235
SFT18 00E0R 244 232
SFT20 00E3R 246 228
SFT22 00EFR 255 251
SHIFT 00C6R 223 138 147 241 242
STORE 00B5R 204 80 84 210
STR12 00BBR 209 218
STR16 00BER 211 206
TEMP 006AR 119 88 207 212 215
TLU 009AR 176 59 140 149 190
TLU12 009ER 180 54 132 185
TLU14 00A8R 188 57 135 182
TLU16 00AAR 189 178
UPPER 006BR 120 79 234 236
X0010 00B4R 200 247 249 257