ASM1130 CROSS ASSEMBLER V1.22 -- V2M12 -- Sun Nov 1 19:25:09 2020
Source File: \u3pappr.asm
PTTC/8 TO CP, CP TO PTTC/8 CONVERSION
2 | ************************************************** U3G00020
3 | * * U3G00030
4 | * SUBROUTINE NAME- * U3G00040
5 | * FULL NAME- PTTC/8 SUBSET TO 1053 OR 1403 * U3G00050
6 | * CONSOLE PRINTER CODE * U3G00060
7 | * CODE NAME- PAPPR * U3G00070
8 | * PURPOSE- THIS SUBROUTINE CONVERTS PTTC/8 * U3G00080
9 | * SUBSET TO 1053 OR 1403 PRINTER CODE. * U3G00090
10 | * METHOD- * U3G00100
11 | * SEE IBM 1130 SUBROUTINE LIBRARY MANUAL * U3G00110
12 | * CAPABILITIES AND LIMITATIONS- * U3G00120
13 | * SEE IBM 1130 SUBROUTINE LIBRARY MANUAL * U3G00130
14 | * SPECIAL FEATURES- N/A * U3G00140
15 | * ADDITIONAL INFORMATION- * U3G00150
16 | * ESTIMATED EXECUTION TIME- * U3G00160
17 | * SEE IBM 1130 SUBROUTINE LIBRARY MANUAL * U3G00170
18 | * U3G00180
19 | *************************************************** U3G00190
PTTC/8 TO CP, CP TO PTTC/8 CONVERSION
21 | LIBR U3G00210
22 | ENT PAPPR U3G00220
0000 6940 23 | PAPPR STX 1 SAV1+1 CALL ENTRY POINT U3G00230
0001 6580 0000 24 | LINK LDX I1 0 LOADER STORED TV ADDR U3G00240
0003 6A3F 25 | STX 2 SAV2+1 SAVE XR2 U3G00250
0004 283F 26 | STS SAVST SAVE STATUS U3G00260
0005 D84E 27 | STD SAVAQ SAVE ACC AND EXT U3G00270
0006 C101 28 | LD 1 1 XR1 = ADDR OF CALL+1 U3G00280
0007 D018 29 | STO INPUT+1 = INPUT PARAMETER U3G00290
0008 C102 30 | LD 1 2 U3G00300
0009 D018 31 | STO OUTPT+1 = OUTPUTPARAMETER U3G00310
000A C103 32 | LD 1 3 U3G00320
000B D04F 33 | STO COUNT = NO. OF CHARS TO CONVERT U3G00330
000C C049 34 | LD CALL1 U3G00340
000D 403A 35 | BSI SBRTA U3G00350
000E D05B 36 | STO TLU12+1 OBTAIN EBPA ADDRESS U3G00360
000F C047 37 | LD CALL2 U3G00370
0010 4037 38 | BSI SBRTA U3G00380
0011 D062 39 | STO TLU14+1 OBTAIN PRTY ADDRESS U3G00390
0012 1810 40 | SRA 16 SET OUTPUT CONTROL FOR U3G00400
0013 D045 41 | STO CNTRL LEFT CHARACTER U3G00410
0014 C100 42 | LD 1 0 = CONTROL PARAMETER U3G00420
0015 1884 43 | SRT 4 U3G00430
0016 4818 44 | BSC +- IS CASE MODE SET U3G00440
0017 D040 45 | STO CASE YES, INITIALIZE CASE U3G00450
0018 1810 46 | SRA 16 U3G00460
0019 1084 47 | SLT 4 OBTAIN CODE CONTROL U3G00470
001A D03F 48 | STO CODE U3G00480
001B C042 49 | LD HFFFF INITLZ OUTPUT BUFFER U3G00490
001C D047 50 | STO TEMP U3G00500
001D 7104 51 | MDX 1 +4 U3G00510
001E 6928 52 | STX 1 EXIT+1 SET EXIT TO CALL+5 U3G00520
001F 6500 0000 53 | INPUT LDX L1 0 XR1=INPUT ADDRESS U3G00530
0021 6600 0000 54 | OUTPT LDX L2 0 XR2=OUTPUT ADDRESS U3G00540
55 | * U3G00550
56 | *THIS SECTION SETS UP THE CONVERSION AND STORING U3G00560
57 | *OF THE REQUIRED NUMBER OF CHARACTERS. U3G00570
58 | * U3G00580
0023 C100 59 | PAP22 LD 1 0 U3G00590
0024 1808 60 | SRA 8 U3G00600
0025 406E 61 | BSI SHIFT IS CHAR = CASE SHIFT U3G00610
0026 7002 62 | MDX PAP24 YES, CHK NEXT CHARACTER U3G00620
0027 403D 63 | BSI TLU CONVERT LEFT PTTC/8 CHAR U3G00630
0028 4059 64 | BSI STORE STORE CONVERTED CHAR U3G00640
0029 74FF 005BR 65 | PAP24 MDX L COUNT,-1 ANY MORE PTTC/8 CHARS U3G00650
002B 7001 66 | MDX PAP26 YES U3G00660
002C 7009 67 | MDX PAP30 NO U3G00670
002D C100 68 | PAP26 LD 1 0 U3G00680
002E 4065 69 | BSI SHIFT IS CHAR = CASE SHIFT U3G00690
002F 7002 70 | MDX PAP28 YES, CHECK NEXT CHAR U3G00700
0030 4034 71 | BSI TLU CONVERT RIGHT PTTC/8 CHAR U3G00710
0031 4050 72 | BSI STORE STORE CONVERTED CHAR U3G00720
0032 7101 73 | PAP28 MDX 1 +1 SET FOR NEXT INPUT WORD U3G00730
0033 74FF 005BR 74 | MDX L COUNT,-1 ANY MORE PTTC/8 CHARS U3G00740
0035 70ED 75 | MDX PAP22 YES U3G00750
0036 C02D 76 | PAP30 LD TEMP NO, ANY CHAR LEFT TO U3G00760
0037 8049 77 | A D0001 STORE U3G00770
0038 4C18 0040R 78 | BSC L SAV1,+- U3G00780
003A 9046 79 | S D0001 U3G00790
003B 7400 005AR 80 | MDX L CODE,0 YES, WHAT OUTPUT CODE U3G00800
003D 7001 81 | MDX PAP32 1443 CODE U3G00810
003E 8022 82 | A H0021 1053 CODE U3G00820
003F D200 83 | PAP32 STO 2 0 STORE CHAR AND BLANK U3G00830
0040 6500 0000 84 | SAV1 LDX L1 *-* RESTORE XR1 U3G00840
0042 6600 0000 85 | SAV2 LDX L2 *-* RESTORE XR2 U3G00850
0044 2000 86 | SAVST LDS *-* RESTORE STATUS U3G00860
0045 C80E 87 | LDD SAVAQ RESTORE ACC AND EXTENSION U3G00870
0046 4C00 0000 88 | EXIT BSC L 0 EXIT U3G00880
89 | * U3G00890
90 | *THIS SECTION GETS THE LOAD ADDRESS OF EITHER EBPA U3G00900
91 | *OR PRTY TABLE SUBROUTINES. U3G00910
92 | * U3G00920
0048 0000 93 | SBRTA DC 0 U3G00930
0049 1008 94 | SLA 8 GET TV ENTRY DISPLACEMENT U3G00940
004A 1888 95 | SRT 8 U3G00950
004B 6B04 96 | STX 3 SBA12+1 U3G00960
004C 8003 97 | A SBA12+1 ADD IN TV TABLE ADDR U3G00970
004D 800E 98 | A D0002 REF THIRD WD OF TV ENTRY U3G00980
004E D001 99 | STO SBA12+1 GET LOAD ADDRESS U3G00990
004F C400 0000 100 | SBA12 LD L 0 U3G01000
0051 800B 101 | A D0003 AVOID STORED LINK WORD U3G01010
0052 4C80 0048R 102 | BSC I SBRTA RETURN U3G01020
103 | * U3G01030
104 | *CONSTANTS AND BUFFER AREA U3G01040
105 | * U3G01050
106 | * U3G01060
0054 107 | SAVAQ BSS E 2 SAVE ACC AND EXTENSION U3G01070
0056 0509*7040 108 | CALL1 LIBF EBPA USED TO GET EBPA ADDR U3G01080
0057 1766*3A00 109 | CALL2 LIBF PRTY USED TO GET PRTY ADDR U3G01090
0058 0000 110 | CASE DC 0 CASE INDR(0=LOWER,1=UPPER) U3G01100
0059 0000 111 | CNTRL DC 0 OUTPUT CONTROL (0= LEFT ) U3G01110
005A 0000 112 | CODE DC 0 OUTPUT CODE (0=1053,1=1403) U3G01120
005B 0000 113 | COUNT DC 0 CHAR COUNT U3G01130
005C 0002 114 | D0002 DC +2 DECIMAL 2 U3G01140
005D 0003 115 | D0003 DC +3 DECIMAL 3 U3G01150
005E FFFF 116 | HFFFF DC /FFFF INITLZ O/P BUFFER U3G01160
005F FF00 117 | HFF00 DC /FF00 LOW BIT MASK U3G01170
0060 00FF 118 | H00FF DC /00FF HIGH BIT MASK U3G01180
0061 0021 119 | H0021 DC /0021 1053 BLANK U3G01190
0062 6E00 120 | LOWER DC /6E00 PTTC/8 LOWER CASE INDR CHAR U3G01200
0063 0E00 121 | UPPER DC /0E00 PTTC/8 UPPER CASE INDR CHAR U3G01210
0064 FFFF 122 | TEMP DC /FFFF TEMPORARY STG BUFFER U3G01220
123 | * U3G01230
124 | *THIS SECTION DOES A TABLE LOOKUP CONVERSION U3G01240
125 | * U3G01250
0065 1000 126 | TLU NOP SAVE RETURN ADDRESS U3G01260
0066 D015 127 | STO CHAR SAVE INPUT CHAR U3G01270
0067 6911 128 | STX 1 TLU16+1 SAVE XR1 U3G01280
0068 614B 129 | LDX 1 +75 XR1= LENGTH OF EBPA TABLE U3G01290
0069 F500 0000 130 | TLU12 EOR L1 0 U3G01300
006B 1008 131 | SLA 8 LEFT JUSTIFY PTTC/8 CHAR U3G01310
006C 4C18 0073R 132 | BSC L TLU14,+- HAS CHARACTER BEEN FOUND U3G01320
006E C00D 133 | LD CHAR U3G01330
006F 71FF 134 | MDX 1 -1 NO, ANY MORE TO CHECK U3G01340
0070 70F8 135 | MDX TLU12 YES U3G01350
0071 C00E 136 | LD H2001 NO, TURN ON OVFLO U3G01360
0072 D0D1 137 | STO SAVST U3G01370
0073 C500 0000 138 | TLU14 LD L1 0 U3G01380
0075 7400 005AR 139 | MDX L CODE,0 IS OUTPUT FOR 1053 U3G01390
0077 1008 140 | SLA 8 NO, FOR 1403 U3G01400
0078 6500 0000 141 | TLU16 LDX L1 *-* RESTORE XR1 U3G01410
007A 4C80 0065R 142 | BSC I TLU RETURN U3G01420
143 | * U3G01430
144 | *CONSTANTS AND BUFFER AREA U3G01440
145 | * U3G01450
007C 0000 146 | CHAR DC 0 CHAR TO BE CONVERTED U3G01460
007D DD00 147 | NEWLN DC /DD00 PTTC/8 NEW LINE CHAR U3G01470
007E 000C 148 | H000C DC /000C CHK FOR CONTROL CHAR U3G01480
007F 0010 149 | H0010 DC /0010 CHK FOR PTTC/8 BLANK U3G01490
0080 2001 150 | H2001 DC /2001 SET OVERFLOW U3G01500
0081 0001 151 | D0001 DC +1 DECIMAL ONE U3G01510
152 | * U3G01520
153 | *THIS SECTION STORES THE CONVERTED CHARS 2 PER WORD U3G01530
154 | * U3G01540
155 | * U3G01550
0082 1000 156 | STORE NOP U3G01560
0083 7400 0059R 157 | MDX L CNTRL,0 IS O/P FOR LEFT HALF (=0) U3G01570
0085 7006 158 | MDX STR16 U3G01580
0086 E0D8 159 | AND HFF00 YES, STORE IN TEMP U3G01590
0087 D0DC 160 | STO TEMP SET CNTRL FOR RIGHT U3G01600
0088 C0F8 161 | LD D0001 HALF AND RETURN. U3G01610
0089 D0CF 162 | STR12 STO CNTRL U3G01620
008A 4C80 0082R 163 | BSC I STORE U3G01630
008C 1808 164 | STR16 SRA 8 NO, ADD IN TEMP AND STORE U3G01640
008D 80D6 165 | A TEMP CHARS IN OUTPUT AREA U3G01650
008E D200 166 | STO 2 0 U3G01660
008F C0CE 167 | LD HFFFF U3G01670
0090 D0D3 168 | STO TEMP CLEAR CHAR STORAGE U3G01680
0091 7201 169 | MDX 2 +1 SET FOR NEXT OUTPUT WORD U3G01690
0092 1810 170 | SRA 16 U3G01700
0093 70F5 171 | MDX STR12 U3G01710
172 | * U3G01720
173 | *THIS SECTION CHECKS THE PTTC/8 CHAR TO SEE IF IT U3G01730
174 | *IS A CASE SHIFT, A NEW LINE, BLANK OR ILLEGAL CHAR U3G01740
175 | * U3G01750
0094 1000 176 | SHIFT NOP SAVE RETURN ADDRESS U3G01760
0095 E0CA 177 | AND H00FF U3G01770
0096 D0E5 178 | STO CHAR SAVE CHARACTER U3G01780
0097 E0E6 179 | AND H000C U3G01790
0098 F0E5 180 | EOR H000C IS CHAR = CONTROL U3G01800
0099 4C20 00B0R 181 | BSC L SFT20,Z NO U3G01810
009B C0E0 182 | LD CHAR U3G01820
009C 1008 183 | SLA 8 U3G01830
009D F0C4 184 | EOR LOWER IS CHAR = LOWER CASE U3G01840
009E 4C18 00AER 185 | BSC L SFT18,+- YES U3G01850
00A0 F0C1 186 | EOR LOWER U3G01860
00A1 F0C1 187 | EOR UPPER IS CHAR = UPPER CASE U3G01870
00A2 4C18 00ADR 188 | BSC L SFT16,+- YES U3G01880
00A4 F0BE 189 | EOR UPPER U3G01890
00A5 F0D7 190 | EOR NEWLN IS CHAR = NEW LINE U3G01900
00A6 4818 191 | BSC +- U3G01910
00A7 D0B3 192 | STO COUNT YES U3G01920
00A8 C0D3 193 | SFT12 LD CHAR U3G01930
00A9 7401 0094R 194 | SFT13 MDX L SHIFT,+1 NO, SET TO SKIP ONE WORD U3G01940
00AB 4C80 0094R 195 | SFT14 BSC I SHIFT U3G01950
00AD C0D3 196 | SFT16 LD D0001 U3G01960
00AE D0A9 197 | SFT18 STO CASE SET CASE ACCORDINGLY U3G01970
00AF 70FB 198 | MDX SFT14 U3G01980
00B0 C0CB 199 | SFT20 LD CHAR IS CHAR = BLANK U3G01990
00B1 90CD 200 | S H0010 U3G02000
00B2 4C18 00A8R 201 | BSC L SFT12,+- YES, DON'T CHECK CASE U3G02010
00B4 80CA 202 | A H0010 U3G02020
00B5 1887 203 | SRT 7 IS CHAR ILLEGAL U3G02030
00B6 4C04 00BBR 204 | BSC L SFT22,E U3G02040
00B8 C09F 205 | LD CASE NO, ADD CASE INTO U3G02050
00B9 1087 206 | SLT 7 CHAR VALUE. U3G02060
00BA 70EE 207 | MDX SFT13 U3G02070
00BB C0C4 208 | SFT22 LD H2001 YES, SET OVERFLOW ON U3G02080
00BC D087 209 | STO SAVST AND LOAD BLANK AS U3G02090
00BD C0C1 210 | LD H0010 CHARACTER U3G02100
00BE 70EA 211 | MDX SFT13 U3G02110
00BF 212 | END U3G02120
There were no errors in this assembly
=== CROSS REFERENCES ==========================================================
Name Val Defd Referenced
CALL1 0056R 108 34
CALL2 0057R 109 37
CASE 0058R 110 45 197 205
CHAR 007CR 146 127 133 178 182 193 199
CNTRL 0059R 111 41 157 162
CODE 005AR 112 48 80 139
COUNT 005BR 113 33 65 74 192
D0001 0081R 151 77 79 161 196
D0002 005CR 114 98
D0003 005DR 115 101
EXIT 0046R 88 52
H000C 007ER 148 179 180
H0010 007FR 149 200 202 210
H0021 0061R 119 82
H00FF 0060R 118 177
H2001 0080R 150 136 208
HFF00 005FR 117 159
HFFFF 005ER 116 49 167
INPUT 001FR 53 29
LINK 0001R 24
LOWER 0062R 120 184 186
NEWLN 007DR 147 190
OUTPT 0021R 54 31
PAP22 0023R 59 75
PAP24 0029R 65 62
PAP26 002DR 68 66
PAP28 0032R 73 70
PAP30 0036R 76 67
PAP32 003FR 83 81
PAPPR 0000R 23
SAV1 0040R 84 23 78
SAV2 0042R 85 25
SAVAQ 0054R 107 27 87
SAVST 0044R 86 26 137 209
SBA12 004FR 100 96 97 99
SBRTA 0048R 93 35 38 102
SFT12 00A8R 193 201
SFT13 00A9R 194 207 211
SFT14 00ABR 195 198
SFT16 00ADR 196 188
SFT18 00AER 197 185
SFT20 00B0R 199 181
SFT22 00BBR 208 204
SHIFT 0094R 176 61 69 194 195
STORE 0082R 156 64 72 163
STR12 0089R 162 171
STR16 008CR 164 158
TEMP 0064R 122 50 76 160 165 168
TLU 0065R 126 63 71 142
TLU12 0069R 130 36 135
TLU14 0073R 138 39 132
TLU16 0078R 141 128
UPPER 0063R 121 187 189