ASM1130 CROSS ASSEMBLER V1.22 -- V2M12 -- Sun Nov 1 19:25:09 2020
Source File: \u3papeb.asm
PTTC/8- EBC OR EBC- PTTC/8 CONVERSION
2 | *************************************************** U3E00020
3 | * * U3E00030
4 | * SUBROUTINE NAME- * U3E00040
5 | * FULL NAME- PTTC/8 TO EBCDIC OR EBCDIC TO * U3E00050
6 | * PTTC/8 CONVERSION SUBROUTINE. * U3E00060
7 | * CODE NAME- PAPEB * U3E00070
8 | * PURPOSE- THIS SUBROUTINE CONVERTS EBCDIC * U3E00080
9 | * SUBSET TO PTTC/8 SUBSET, OR PTTC/8 * U3E00090
10 | * SUBSET TO EBCDIC SUBSET. SUBSET CONSISTS * U3E00100
11 | * ONLY OF THOSE CHARACTERS WITH AN ASTERISK * U3E00110
12 | * IN APPENDIX D OF THE IBM 1130 SUBROUTINE * U3E00120
13 | * LIBRARY MANUAL. * U3E00130
14 | * METHOD- * U3E00140
15 | * SEE IBM 1130 SUBROUTINE LIBRARY MANUAL * U3E00150
16 | * CAPABILITIES AND LIMITATIONS- * U3E00160
17 | * SEE IBM 1130 SUBROUTINE LIBRARY MANUAL * U3E00170
18 | * SPECIAL FEATURES- N/A * U3E00180
19 | * ADDITIONAL INFORMATION- * U3E00190
20 | * ESTIMATED EXECUTION TIME- * U3E00200
21 | * SEE IBM 1130 SUBROUTINE LIBRARY MANUAL * U3E00210
22 | * * U3E00220
23 | *************************************************** U3E00230
PTTC/8- EBC OR EBC- PTTC/8 CONVERSION
25 | LIBR U3E00250
26 | ENT PAPEB U3E00260
0000 6946 27 | PAPEB STX 1 SAV1+1 CALL ENTRY POINT U3E00270
0001 6580 0000 28 | LINK LDX I1 0 LOADER STORED TV ADDR U3E00280
0003 6A45 29 | STX 2 SAV2+1 SAVE XR2 U3E00290
0004 2845 30 | STS SAVST SAVE STATUS U3E00300
0005 D848 31 | STD SAVAQ SAVE ACC AND EXT U3E00310
0006 C101 32 | LD 1 1 XR1= ADDR OF CALL+1 U3E00320
0007 D01D 33 | STO INPUT+1 INPUT PARAMETER U3E00330
0008 C102 34 | LD 1 2 U3E00340
0009 D01D 35 | STO OUTPT+1 OUTPUT PARAMETER U3E00350
000A C103 36 | LD 1 3 U3E00360
000B D400 0098R 37 | STO L COUNT CHAR COUNT U3E00370
38 | * U3E00380
39 | *OBTAIN ADDR OF EBPA TABLE U3E00390
40 | * U3E00400
000D C042 41 | LD CALL1 GET TV DISPLACEMENT U3E00410
000E 1008 42 | SLA 8 PROPAGATE SIGN BIT THROUGH U3E00420
000F 1888 43 | SRT 8 FIRST 8 BITS U3E00430
0010 6B41 44 | STX 3 TEMP GET TV TABLE ADDR U3E00440
0011 8040 45 | A TEMP COMPUTE ADDR OF THIRD WD OF U3E00450
0012 8040 46 | A D0002 TV U3E00460
0013 D001 47 | STO PAP14+1 U3E00470
0014 C400 0000 48 | PAP14 LD L 0 GET EBPA ENTRY ADDR U3E00480
0016 803D 49 | A D0003 AVOID STORED LINK WORD U3E00490
0017 D400 00A1R 50 | STO L TLU12+1 ST EBPA TABLE ADDR U3E00500
0019 D400 00ABR 51 | STO L TLU14+1 U3E00510
001B 1810 52 | SRA 16 SET OUTPUT CONTROL FOR U3E00520
001C D038 53 | STO CNTRL LEFT CHARACTER. U3E00530
001D C100 54 | LD 1 0 GET CONTROL PARAM U3E00540
001E F400 009BR 55 | EOR L H0010 SET CARRY INDR ON IF U3E00550
0020 100C 56 | SLA 12 INITLZ CASE REQUESTED U3E00560
0021 D02F 57 | STO CODE SAVE OUTPUT CODE INDR U3E00570
0022 7104 58 | MDX 1 +4 U3E00580
0023 6929 59 | STX 1 EXIT+1 SET EXIT FOR CALL+5 U3E00590
0024 6500 0000 60 | INPUT LDX L1 0 XR1= INPUT ADDR U3E00600
0026 6600 0000 61 | OUTPT LDX L2 0 XR2= OUTPUT ADDR U3E00610
0028 4C18 005AR 62 | BSC L PAPIN,+- BR IF PTTC/8 TO EBCDIC U3E00620
63 | * U3E00630
64 | *THIS SECTION SETS UP THE CONVERSION FROM EBCDIC U3E00640
65 | *TO PTTC/8, AND STORES THE OUTPUT U3E00650
66 | * U3E00660
002A C02B 67 | EBCIN LD HFF00 U3E00670
002B D400 00B1R 68 | STO L MASK SET UP TABLE LOOKUP MASK U3E00680
002D 4802 69 | BSC C U3E00690
002E D068 70 | STO CASE SET UP CASE CHANGE INDR U3E00700
002F C100 71 | EBC12 LD 1 0 U3E00710
0030 406B 72 | BSI TLU CONVERT LEFT EBCDIC CHAR U3E00720
0031 4040 73 | EBC13 BSI CHECK CHECK CASE AND STORE CHAR U3E00730
0032 74FF 0098R 74 | MDX L COUNT,-1 ANY MORE EBCDIC CHARS U3E00740
0034 7001 75 | MDX EBC14 YES,GO CONVERT RT CHAR U3E00750
0035 7008 76 | MDX EBC18 NO,GO TERMINATE O/P U3E00760
0036 C100 77 | EBC14 LD 1 0 U3E00770
0037 1008 78 | SLA 8 U3E00780
0038 4063 79 | BSI TLU CONVERT RT EBCDIC CHAR U3E00790
0039 4038 80 | BSI CHECK CHECK CASE AND ST CHAR U3E00800
003A 7101 81 | MDX 1 +1 SET FOR NEXT INPUT WORD U3E00810
003B 74FF 0098R 82 | MDX L COUNT,-1 ANY MORE EBCDIC CHARS U3E00820
003D 70F1 83 | MDX EBC12 YES,REPEAT LOOP FOR NEXT WD U3E00830
003E C013 84 | EBC18 LD TEMP NO, ANY CHAR LEFT TO U3E00840
003F 4C18 0046R 85 | BSC L SAV1,+- STORE. U3E00850
0041 7400 0051R 86 | MDX L CODE,0 YES, WHAT CODE OUT U3E00860
0043 8014 87 | A H003F PTTC/8 DELETE U3E00870
0044 8014 88 | A H0040 EBCDIC SPACE U3E00880
0045 D200 89 | STO 2 0 STORE LAST CHAR U3E00890
0046 6500 0000 90 | SAV1 LDX L1 *-* RESTORE XR1 U3E00900
0048 6600 0000 91 | SAV2 LDX L2 *-* RESTORE XR2 U3E00910
004A 2000 92 | SAVST LDS *-* RESTORE STATUS U3E00920
004B C802 93 | LDD SAVAQ RESTORE ACC AND EXT U3E00930
004C 4C00 0000 94 | EXIT BSC L 0 EXIT U3E00940
95 | * U3E00950
96 | *CONSTANTS AND BUFFER AREA U3E00960
97 | * U3E00970
004E 98 | SAVAQ BSS E 2 SAVE ACC AND EXTENSION U3E00980
0050 0509*7040 99 | CALL1 LIBF EBPA USED TO GET EBPA TBL ADDR U3E00990
0051 0000 100 | CODE DC 0 O/P CODE INDR(0 IF EBCDIC) U3E01000
0052 0000 101 | TEMP DC 0 WORKING STORAGE U3E01010
0053 0002 102 | D0002 DC +2 DECIMAL CONSTANT U3E01020
0054 0003 103 | D0003 DC +3 DECIMAL CONSTANT U3E01030
0055 0000 104 | CNTRL DC 0 O/P CONTROL(0=LEFT) U3E01040
0056 FF00 105 | HFF00 DC /FF00 HIGH AND U3E01050
0057 00FF 106 | H00FF DC /00FF LOW BIT MASKS U3E01060
0058 003F 107 | H003F DC /003F 3F+40=PTTC/8 DELETE U3E01070
0059 0040 108 | H0040 DC /0040 EBCDIC BLANK U3E01080
109 | * U3E01090
110 | *THIS SECTION SETS UP THE PTTC/8 TO EBCDIC CON- U3E01100
111 | *VERSION AND OUTPUT OF EBCDIC U3E01110
112 | * U3E01120
005A 4802 113 | PAPIN BSC C CHK FOR INITLZ CASE REQUEST U3E01130
005B D03B 114 | STO CASE NONE, ZERO CASE U3E01140
005C C0FA 115 | LD H00FF U3E01150
005D D053 116 | STO MASK SET UP TABLE LOOK-UP MASK U3E01160
005E C100 117 | PAP22 LD 1 0 GET A PTTC/8 CHAR U3E01170
005F 1808 118 | SRA 8 U3E01180
0060 4067 119 | BSI SHIFT IS CHAR = CASE SHIFT U3E01190
0061 7002 120 | MDX PAP24 YES, CHECK NEXT CHAR U3E01200
0062 4039 121 | BSI TLU CONVERT LEFT PTTC/8 CHAR U3E01210
0063 4052 122 | BSI STORE STORE CONVERTED CHAR U3E01220
0064 74FF 0098R 123 | PAP24 MDX L COUNT,-1 ANY MORE PTTC/8 CHARS U3E01230
0066 7001 124 | MDX PAP26 YES, GO CONVERT RT CHAR U3E01240
0067 70D6 125 | MDX EBC18 NO, GO EXIT U3E01250
0068 C100 126 | PAP26 LD 1 0 U3E01260
0069 405E 127 | BSI SHIFT IS CHAR = CASE SHIFT U3E01270
006A 7002 128 | MDX PAP28 YES, CHK NEXT CHAR U3E01280
006B 4030 129 | BSI TLU CONVERT RT PTTC/8 CHAR U3E01290
006C 4049 130 | BSI STORE STORE CONVERTED CHAR U3E01300
006D 7101 131 | PAP28 MDX 1 +1 SET FOR NEXT INPUT WORD U3E01310
006E 74FF 0098R 132 | MDX L COUNT,-1 ANY MORE PTTC/8 CHARS U3E01320
0070 70ED 133 | MDX PAP22 YES, REPEAT LOOP U3E01330
0071 70CC 134 | MDX EBC18 NO, GO PREPARE FOR EXIT U3E01340
135 | * U3E01350
136 | *THIS SECTION CHECKS THE CASE AND STORES THE CHAR U3E01360
137 | * U3E01370
0072 1000 138 | CHECK NOP STORE RETURN ADDRESS U3E01380
0073 E0E3 139 | AND H00FF GET CORRECT PTTC/8 CHAR U3E01390
0074 9026 140 | S H0010 IS CHAR = BLANK U3E01400
0075 4C18 0095R 141 | BSC L CHK18,+- YES, GO STORE BLANK U3E01410
0077 8023 142 | A H0010 NO,RESTORE CHAR U3E01420
0078 1882 143 | SRT 2 IS CHAR = CONTROL U3E01430
0079 4804 144 | BSC E (BITS 12-13 = 11) U3E01440
007A 7001 145 | MDX CHK10 U3E01450
007B 7004 146 | MDX CHK12 U3E01460
007C 1881 147 | CHK10 SRT 1 U3E01470
007D 4C04 0091R 148 | BSC L CHK16,E YES, NO CASE CHECK U3E01480
007F 1081 149 | SLT 1 U3E01490
0080 1885 150 | CHK12 SRT 5 NO, SAVE CHAR IN EXTENSION U3E01500
0081 F015 151 | EOR CASE U3E01510
0082 4C18 008CR 152 | BSC L CHK14,+- IS CASE CHANGE NEEDED U3E01520
0084 F012 153 | EOR CASE U3E01530
0085 D011 154 | STO CASE U3E01540
0086 1010 155 | SLA 16 YES, WHICH CASE U3E01550
0087 C011 156 | LD LOWER = LOWER CASE CHAR U3E01560
0088 4802 157 | BSC C U3E01570
0089 C010 158 | LD UPPER = UPPER CASE CHAR U3E01580
008A 402B 159 | BSI STORE STORE CASE CHAR U3E01590
008B 1001 160 | SLA 1 U3E01600
008C 1087 161 | CHK14 SLT 7 U3E01610
008D 1008 162 | CHK15 SLA 8 U3E01620
008E 4027 163 | BSI STORE STORE PAPER TAPE CHAR U3E01630
008F 4C80 0072R 164 | BSC I CHECK U3E01640
0091 1884 165 | CHK16 SRT 4 IS CONTROL CHAR = NL U3E01650
0092 4804 166 | BSC E U3E01660
0093 D004 167 | STO COUNT YES,SET LAST CHAR INDR U3E01670
168 | * U3E01680
169 | *CONSTANTS U3E01690
170 | * U3E01700
0094 70F7 171 | MDX CHK14 U3E01710
0095 C005 172 | CHK18 LD H0010 CHAR = SPACE U3E01720
0096 70F6 173 | MDX CHK15 U3E01730
0097 0000 174 | CASE DC 0 CASE INDR(0=LOWER,1=UPPER) U3E01740
0098 0000 175 | COUNT DC 0 CHAR COUNT U3E01750
0099 6E00 176 | LOWER DC /6E00 LOWER CASE PTTC/8 CONTROL U3E01760
009A 0E00 177 | UPPER DC /0E00 UPPER CASE PTTC-8 CONTROL U3E01770
009B 0010 178 | H0010 DC /0010 PTTC/8 BLANK U3E01780
179 | * U3E01790
180 | *THIS SECTION DOES A TABLE LOOKUP CONVERSION OF U3E01800
181 | *PTTC/8 TO EBCDIC OR EBCDIC TO PTTC/8. U3E01810
182 | * U3E01820
009C 1000 183 | TLU NOP SAVE RETURN ADDRESS U3E01830
009D D012 184 | STO CHAR SAVE INPUT U3E01840
009E 690E 185 | STX 1 TLU16+1 SAVE XR1 U3E01850
009F 614B 186 | LDX 1 +75 XR1=LENGTH OF EBPA TABLE U3E01860
00A0 F500 0000 187 | TLU12 EOR L1 0 CHK AGAINST EBPA ENTRY U3E01870
00A2 E00E 188 | AND MASK IF CHKS,MAKE ZERO U3E01880
00A3 4C18 00AAR 189 | BSC L TLU14,+- HAS CHAR BEEN FOUND U3E01890
00A5 C00A 190 | LD CHAR NO,RESTORE CHAR U3E01900
00A6 71FF 191 | MDX 1 -1 ANY MORE TABLE REMAINING U3E01910
00A7 70F8 192 | MDX TLU12 YES, REPEAT LOOP U3E01920
00A8 C00B 193 | LD H2001 NO, TURN OVFLO ON U3E01930
00A9 D0A0 194 | STO SAVST U3E01940
00AA C500 0000 195 | TLU14 LD L1 0 CHAR FOUND,PUT EBPA WD INTO U3E01950
00AC 6500 0000 196 | TLU16 LDX L1 0 ACC AND RESTORE XR1 U3E01960
00AE 4C80 009CR 197 | BSC I TLU RETURN U3E01970
198 | * U3E01980
199 | *CONSTANTS AND BUFFER AREA U3E01990
200 | * U3E02000
00B0 0000 201 | CHAR DC 0 CHAR TO BE CONVERTED U3E02010
00B1 0000 202 | MASK DC 0 MASK FOR INPUT CODE U3E02020
00B2 DD00 203 | NEWLN DC /DD00 NEW LINE PTTC/8 CONTROL U3E02030
00B3 000C 204 | H000C DC /000C CHECK FOR CONTROL CHAR U3E02040
00B4 2001 205 | H2001 DC /2001 CON TO SET OVRFLO ON U3E02050
00B5 0001 206 | D0001 DC +1 DECIMAL 1 U3E02060
207 | * U3E02070
208 | *THIS SECTION STORES CONVERTED CHARS IN THE U3E02080
209 | * OUTPUT AREA. U3E02090
210 | * U3E02100
00B6 1000 211 | STORE NOP SAVE RETURN ADDR U3E02110
00B7 7400 0055R 212 | MDX L CNTRL,0 IS OUTPUT FOR LEFT WORD(=0) U3E02120
00B9 7006 213 | MDX STR16 U3E02130
00BA E09B 214 | AND HFF00 YES, STORE IN TEMP U3E02140
00BB D096 215 | STO TEMP U3E02150
00BC C0F8 216 | LD D0001 SET CONTROL FOR RT HALF U3E02160
00BD D097 217 | STR12 STO CNTRL U3E02170
00BE 4C80 00B6R 218 | BSC I STORE U3E02180
00C0 1808 219 | STR16 SRA 8 NO, ADD IN TEMP AND STORE U3E02190
00C1 8090 220 | A TEMP CHARS IN O/P AREA U3E02200
00C2 D200 221 | STO 2 0 U3E02210
00C3 1810 222 | SRA 16 U3E02220
00C4 D08D 223 | STO TEMP CLEAR CHAR STORAGE U3E02230
00C5 7201 224 | MDX 2 +1 SET FOR NEXT O/P WORD U3E02240
00C6 1810 225 | SRA 16 SET CONTROL FOR LEFT HALF U3E02250
00C7 70F5 226 | MDX STR12 U3E02260
227 | * U3E02270
228 | *THIS SECTION CHECKS IF THE CHAR IS A CONTROL CHAR, U3E02280
229 | *WHETHER IT IS LEGAL OR NOT,WHETHER IT IS A CASE U3E02290
230 | *SHIFT OR NEW LINE CHAR. U3E02300
231 | * U3E02310
00C8 1000 232 | SHIFT NOP SAVE RETURN ADDRESS U3E02320
00C9 E08D 233 | AND H00FF U3E02330
00CA D0E5 234 | STO CHAR SAVE CHARACTER U3E02340
00CB E0E7 235 | AND H000C U3E02350
00CC F0E6 236 | EOR H000C IS CHAR = CONTROL U3E02360
00CD 4C20 00E4R 237 | BSC L SFT20,Z NO U3E02370
00CF C0E0 238 | LD CHAR U3E02380
00D0 1008 239 | SLA 8 U3E02390
00D1 F0C7 240 | EOR LOWER IS CHAR = LOWER CASE U3E02400
00D2 4C18 00E2R 241 | BSC L SFT18,+- YES U3E02410
00D4 F0C4 242 | EOR LOWER U3E02420
00D5 F0C4 243 | EOR UPPER IS CHAR = UPPER CASE U3E02430
00D6 4C18 00E1R 244 | BSC L SFT16,+- YES U3E02440
00D8 F0C1 245 | EOR UPPER U3E02450
00D9 F0D8 246 | EOR NEWLN IS CHAR = NEW LINE U3E02460
00DA 4818 247 | BSC +- U3E02470
00DB D0BC 248 | STO COUNT YES U3E02480
00DC C0D3 249 | SFT12 LD CHAR U3E02490
00DD 7401 00C8R 250 | SFT13 MDX L SHIFT,+1 NO, SHIFT TO SKIP ONE WORD U3E02500
00DF 4C80 00C8R 251 | SFT14 BSC I SHIFT U3E02510
00E1 C0D3 252 | SFT16 LD D0001 U3E02520
00E2 D0B4 253 | SFT18 STO CASE SET CASE ACCORDINGLY U3E02530
00E3 70FB 254 | MDX SFT14 U3E02540
00E4 C0CB 255 | SFT20 LD CHAR IS CASE = BLANK U3E02550
00E5 90B5 256 | S H0010 U3E02560
00E6 4C18 00DCR 257 | BSC L SFT12,+- YES, DON'T CHECK CASE U3E02570
00E8 80B2 258 | A H0010 U3E02580
00E9 1887 259 | SRT 7 IS CHAR ILLEGAL U3E02590
00EA 4C04 00EFR 260 | BSC L SFT22,E U3E02600
00EC C0AA 261 | LD CASE NO, ADD CASE INTO U3E02610
00ED 1087 262 | SLT 7 CHAR VALUE. U3E02620
00EE 70EE 263 | MDX SFT13 U3E02630
00EF C0C4 264 | SFT22 LD H2001 YES, SET OVFLO ON U3E02640
00F0 D400 004AR 265 | STO L SAVST AND LOAD BLANK AS U3E02650
00F2 C400 009BR 266 | LD L H0010 CHARACTER. U3E02660
00F4 70E8 267 | MDX SFT13 U3E02670
00F5 268 | END U3E02680
There were no errors in this assembly
=== CROSS REFERENCES ==========================================================
Name Val Defd Referenced
CALL1 0050R 99 41
CASE 0097R 174 70 114 151 153 154 253 261
CHAR 00B0R 201 184 190 234 238 249 255
CHECK 0072R 138 73 80 164
CHK10 007CR 147 145
CHK12 0080R 150 146
CHK14 008CR 161 152 171
CHK15 008DR 162 173
CHK16 0091R 165 148
CHK18 0095R 172 141
CNTRL 0055R 104 53 212 217
CODE 0051R 100 57 86
COUNT 0098R 175 37 74 82 123 132 167 248
D0001 00B5R 206 216 252
D0002 0053R 102 46
D0003 0054R 103 49
EBC12 002FR 71 83
EBC13 0031R 73
EBC14 0036R 77 75
EBC18 003ER 84 76 125 134
EBCIN 002AR 67
EXIT 004CR 94 59
H000C 00B3R 204 235 236
H0010 009BR 178 55 140 142 172 256 258 266
H003F 0058R 107 87
H0040 0059R 108 88
H00FF 0057R 106 115 139 233
H2001 00B4R 205 193 264
HFF00 0056R 105 67 214
INPUT 0024R 60 33
LINK 0001R 28
LOWER 0099R 176 156 240 242
MASK 00B1R 202 68 116 188
NEWLN 00B2R 203 246
OUTPT 0026R 61 35
PAP14 0014R 48 47
PAP22 005ER 117 133
PAP24 0064R 123 120
PAP26 0068R 126 124
PAP28 006DR 131 128
PAPEB 0000R 27
PAPIN 005AR 113 62
SAV1 0046R 90 27 85
SAV2 0048R 91 29
SAVAQ 004ER 98 31 93
SAVST 004AR 92 30 194 265
SFT12 00DCR 249 257
SFT13 00DDR 250 263 267
SFT14 00DFR 251 254
SFT16 00E1R 252 244
SFT18 00E2R 253 241
SFT20 00E4R 255 237
SFT22 00EFR 264 260
SHIFT 00C8R 232 119 127 250 251
STORE 00B6R 211 122 130 159 163 218
STR12 00BDR 217 226
STR16 00C0R 219 213
TEMP 0052R 101 44 45 84 215 220 223
TLU 009CR 183 72 79 121 129 197
TLU12 00A0R 187 50 192
TLU14 00AAR 195 51 189
TLU16 00ACR 196 185
UPPER 009AR 177 158 243 245