ASM1130 CROSS ASSEMBLER V1.22 -- V2M12 -- Sun Nov 1 19:25:09 2020
Source File: \t5prnz.asm
PRNZ
2 | LIBR T5I00020
3 | ISS 09 PRNZ 4 T5I00030
4 | *************************************************** T5I00040
5 | * * T5I00050
6 | *STATUS - VERSION 2, MODIFICATION 12 * T5I00060
7 | * * T5I00070
8 | *FUNCTION/OPERATION- * T5I00080
9 | * PRNZ IS AN ISS SUBROUTINE CALLED BY FORTRAN * T5I00090
10 | * SFIO TO PRINT A LINE OF OUTPUT ON THE 1403 * T5I00100
11 | * PRINTER. A CARRIAGE CONTROL OPERATION IS * T5I00110
12 | * PERFORMED PRIOR TO PRINTING A LINE. THE * T5I00120
13 | * CARRIAGE CONTROL CHARS ARE BASED ON THE * T5I00130
14 | * FIRST CHARACTER OF THE PRINT BUFFER. * T5I00140
15 | * THE FIRST CHARACTER CAN BE AS FOLLOWS- * T5I00150
16 | * * 00F1 - SKIP TO CHANNEL 1 BEFORE PRINTING * T5I00160
17 | * * XR2 CONTAINS THE NUMBER OF CHARACTERS TO * T5I00170
18 | * BE PRINTED * T5I00180
19 | * * T5I00190
20 | *OUTPUT- * T5I00200
21 | * * A LINE OF PRINT ON THE 1403, SPACED * T5I00210
22 | * ACCORDING TO THE CARRIAGE CONTROL CHARACTER * T5I00220
23 | * * T5I00230
24 | *EXTERNAL REFERENCES- * T5I00240
25 | * * $1403 * T5I00250
26 | * * $PRET * T5I00260
27 | * * $IOCT 2-3* T5I00270
28 | * * $PST4 2-3* T5I00280
29 | * * $LEV4 2-3* T5I00290
30 | * * T5I00300
31 | *EXITS- * T5I00310
32 | * NORMAL- * T5I00320
33 | * * CALL PORTION-PRNZ+1, BACK TO SFIO * T5I00330
34 | * * INTERRUPT PORTION-WZ100 BACK TO THE ILS * T5I00340
35 | * * T5I00350
36 | * ERROR- * T5I00360
37 | * * $PRET-MONITOR PRE-OPERATIVE ERROR TRAP * T5I00370
38 | * WHEN 1403 NOT IN READY STATUS * T5I00380
39 | * * $PST4 IF ERROR DETECTED WHEN 2-3* T5I00390
40 | * PROCESSING AN INTERRUPT 2-3* T5I00400
41 | * * T5I00410
42 | *TABLES/WORK AREAS- * T5I00420
43 | * SELF CONTAINED EBC-1403 CODE TABLE CONTAINING * T5I00430
44 | * EBC CHARACTERS IN FIRST 8 BITS, 1403 CODE IN * T5I00440
45 | * NEXT 8 BITS. TABLE CONTAINS 36 ALPHA AND * T5I00450
46 | * NUMERIC CHARACTERS AND 13 SPECIAL CHARACTERS. * T5I00460
47 | * * T5I00470
48 | *ATTRIBUTES-RELOCATABLE * T5I00480
49 | * * T5I00490
50 | *NOTES-NO REGISTERS SAVED * T5I00500
51 | * * T5I00510
52 | *************************************************** T5I00520
PRNZ
54 | * T5I00540
55 | * SYSTEM CONSTANT AREAS T5I00550
56 | * T5I00560
0080 57 | $1403 EQU /80 1403 CHAN 12 INDICATOR WD T5I00570
0028 58 | $PRET EQU /28 PRE-OPERATIVE ERROR TRAP T5I00580
0032 59 | $IOCT EQU /32 PENDING INTRPT CNT 2-3 T5I00590
008D 60 | $PST4 EQU /8D POST OPERATIV 2-3 T5I00600
000C 61 | $LEV4 EQU /C LEVEL 4 INTRPT ADDR 2-3 T5I00610
62 | * T5I00620
63 | * PROGRAM ENTRY POINT T5I00630
64 | * T5I00640
0000 7042 65 | PRNZ MDX WZ200 BR TO IN LINE CODING T5I00650
0001 4C80 0000 66 | BSC I *-* EXIT FROM SUBROUTINE-SFIO T5I00660
0003 9000 67 | WZ010 DC /9000 ERROR INDICATOR WORD T5I00670
68 | * T5I00680
69 | * T5I00690
70 | * T5I00700
0004 0000 71 | WZ100 DC *-* INTERRUPT ENTRY T5I00710
0005 082C 72 | XIO WZ906 SENSE W/ RESET T5I00720
0006 D03B 73 | STO WZ943 SAVE NEW DSW 2-3 T5I00730
0007 E82C 74 | OR WZ935 COMBINE WITH OLD DSW 2-3 T5I00740
0008 D02B 75 | STO WZ935 *AND SAVE FOR ERR CHECK2-3 T5I00750
0009 C038 76 | LD WZ943 GET NEW DSW 2-3 T5I00760
000A 1002 77 | SLA 2 CHK FOR PRINT COMPLETE 2-3 T5I00770
78 | * *INTERRUPT T5I00780
000B 4C10 0017R 79 | BSC L WZ110,- BR IF CARRIAGE OR TR 2-3 T5I00790
80 | * 2-3 T5I00800
81 | * CHECK IF ANY ERROR BITS SET 2-3 T5I00810
82 | * IF SO BR TO $PST4 2-3 T5I00820
83 | * 2-3 T5I00830
000D C026 84 | LD WZ935 GET SAVED DSW 2-3 T5I00840
000E E026 85 | AND WZ936 ANY ERRORS 2-3 T5I00850
000F 4C18 0024R 86 | BSC L WZ120,+- *BR IF NO 2-5 T5I00860
0011 1010 87 | SLA 16 CLEAR 2-3 T5I00890
0012 D021 88 | STO WZ935 *SAVED DSW 2-3 T5I00900
0013 C02A 89 | LD WZ937 GET PRINT CHECK CODE 2-5 T5I00910
0014 4400 008D 90 | BSI L $PST4 BR TO POST OF ERR TRAP 2-3 T5I00920
0016 700D 91 | MDX WZ120 2-5 T5I00925
92 | * T5I00930
93 | * SET CHANNEL 12 INDR IN COMMA T5I00940
94 | * T5I00950
0017 4C02 0029R 95 | WZ110 BSC L WZ130,C BR ON TRANSFER COMPLETE2-5 T5I00955
0019 100A 96 | SLA 10 CHECK DSW FOR CHANNEL 12 T5I00960
001A 180F 97 | SRA 15 SHIFT BIT TO POSITION 15 T5I00970
98 | * T5I00980
001B 7400 003FR 99 | MDX L WZ940,0 SKIP IF NOT CHANNEL 1 T5I00990
001D 7004 100 | MDX WZ115 BRANCH IF CHANNEL 1 T5I01000
101 | * T5I01010
001E EC00 0080 102 | OR L $1403 OR BIT TO SYSTEM WORD IF T5I01020
0020 D400 0080 103 | STO L $1403 * CHANNEL 12 FOUND T5I01030
104 | * T5I01040
0022 1010 105 | WZ115 SLA 16 T5I01050
0023 D01B 106 | STO WZ940 CLEAR CHANNEL 1 SWITCH T5I01060
107 | * T5I01070
0024 74FF 0032 108 | WZ120 MDX L $IOCT,-1 DECR PENDING INTRPT CNT T5I01080
0026 1000 109 | NOP IN CASE CTR = 0 T5I01090
0027 4C80 0004R 110 | BSC I WZ100 RETURN TO ILS T5I01100
111 | * T5I01110
112 | * TRANSFER COMPLETE T5I01120
113 | * T5I01130
0029 1010 114 | WZ130 SLA 16 CLEAR 2-5 T5I01135
002A D012 115 | STO WZ934 *TRANSFER COPLETE T5I01140
002B 70F8 116 | MDX WZ120 *SWITCH T5I01150
117 | * T5I01160
118 | * CONSTANTS AND WORK AREAS T5I01170
119 | * T5I01180
002C 120 | BSS E 0 T5I01190
002C 002ER 121 | WZ900 DC WZ902 SPACE IOCC ADDR AND T5I01200
002D A900 122 | DC /A900 *SKIP IOCC WORD T5I01210
002E 0800 123 | WZ902 DC /0800 SPACE IOCC T5I01220
002F AC00 124 | DC /AC00 T5I01230
0030 0000 125 | WZ904 DC *-* PRINT BUFFER ADDR AND T5I01240
0031 AD00 126 | DC /AD00 *PRINT IOCC T5I01250
0032 003F 127 | WZ906 DC /003F 6 BIT MASK FOR EBCDIC 2-3 T5I01260
0033 AF01 128 | DC /AF01 *AND SENSE IOCC WITH RESET T5I01270
0034 0000 129 | WZ935 DC *-* CELL WHERE DSW SAVED 2-3 T5I01280
0035 8600 130 | WZ936 DC /8600 ERROR MASK 2-3 T5I01290
0036 0000 131 | WZ908 DC 0 CHARACTER COUNT AND T5I01300
0037 AF00 132 | DC /AF00 *SENSE IOCC WITHOUT RESET T5I01310
0038 003C 133 | WZ910 DC 60 CONSTANT = MAX O/P WD CNT T5I01320
0036R 134 | WZ920 EQU WZ908 CHAR COUNT T5I01330
0032R 135 | WZ921 EQU WZ906 6 BIT MASK FOR EBCDIC 2-3 T5I01340
0039 00F1 136 | WZ930 DC /00F1 SKIP TO CHANNEL 1 TEST T5I01350
003A 00A3 137 | WZ931 DC /00A3 SUPPRESS SPACE TEST CODE T5I01360
003B 00A2 138 | WZ932 DC /00A2 DOUBLE SPACE TEST T5I01370
003C 0000 139 | WZ933 DC 0 TEMPORARY CHAR STORAGE WD T5I01380
003D 0000 140 | WZ934 DC 0 TRANS COMPLETE EWITCH 2-3 T5I01390
003E 9002 141 | WZ937 DC /9002 PRINT CHECK ERROR CODE 2-5 T5I01415
003F 0000 142 | WZ940 DC 0 NON-ZERO IF CHANNEL 1 T5I01420
0040 00A0R 143 | WZ941 DC WZ990 TABLE ADDRESS 2-3 T5I01434
0041 FF00 144 | WZ942 DC /FF00 1403 TABLE MASK 2-3 T5I01436
0042 0000 145 | WZ943 DC *-* STORAGE FOR DSW 2-9 T5I01438
146 | * T5I01440
147 | * MAINLINE AND INITIALIZATION T5I01450
148 | * T5I01460
0043 6923 149 | WZ200 STX 1 WZ320+1 SAVE BUFFER ADDRESS T5I01470
0044 69EB 150 | STX 1 WZ904 SAVE BUFFER ADDRESS T5I01480
151 | * T5I01490
152 | * TEST FOR CARRIAGE CONTROL T5I01500
153 | * T5I01510
0045 C100 154 | LD 1 0 LOAD CARRIAGE CONTROL CHAR T5I01520
0046 90F2 155 | S WZ930 SUBTRACT CHANNEL 1 SKIP T5I01530
0047 4820 156 | BSC Z A PAGE EJECT IS REQ'D? 2-12 T5I01540
0048 7004 157 | MDX *+4 NO, CONTINUE CHECKING 2-12 T5I01542
0049 7400 003FR 158 | MDX L WZ940,0 CHECK CHANNEL 1 INDR 2-12 T5I01544
004B 700E 159 | MDX WZ300 IT'S SET, NO EJECT 2-12 T5I01546
004C 702A 160 | MDX WZ370 NOT SET, DO EJECT 2-12 T5I01548
004D 80EC 161 | A WZ931 ADD SPACE SUPPRESS CON T5I01550
004E 4C18 005AR 162 | BSC L WZ300,+- BR TO CONVERT BUFR IF = T5I01560
0050 7400 0080 163 | MDX L $1403,0 TEST FOR CHANNEL 12 T5I01570
0052 7024 164 | MDX WZ370 BR TO PAGE EJECT 212 T5I01580
0053 90E7 165 | S WZ932 TEST FOR DOUBLE SPACE T5I01590
0054 4C20 0058R 166 | BSC L WZ220,Z *BR IF YES 2-3 T5I01600
167 | * T5I01610
168 | * DOUBLE AND SINGLE SPACE ROUTINES T5I01620
169 | * T5I01630
0056 4032 170 | BSI WZ380 GO CHECK FOR CARRIAGE BUSY T5I01640
0057 08D6 171 | XIO WZ902 MOVE CARRIAGE ONE SPACE T5I01650
172 | * T5I01660
173 | * SPACE ONCE AGAIN T5I01670
174 | * T5I01680
0058 4030 175 | WZ220 BSI WZ380 GO CHECK FOR CARRIAGE BUSY T5I01690
0059 08D4 176 | XIO WZ902 MOVE CARRIAGE ONE SPACE T5I01700
177 | * T5I01710
178 | * CONVERT THE EBC CHARACTER TO 1403 T5I01720
179 | * CODE T5I01730
180 | * T5I01740
005A 72FF 181 | WZ300 MDX 2 -1 SKIP IF CHAR CNT .EQ. 1 T5I01750
005B 7001 182 | MDX WZ305 BRANCH IF CNT .GT. 1 T5I01760
005C 70A4 183 | MDX PRNZ+1 EXIT T5I01770
184 | * T5I01780
005D 623C 185 | WZ305 LDX 2 60 T5I01790
005E 6AD7 186 | STX 2 WZ920 SET WD CNT .EQ. 60 T5I01800
187 | * T5I01810
188 | * GET 1403 CHARS AND PACK TWO TO A WORD T5I01820
189 | * T5I01830
005F C101 190 | WZ310 LD 1 1 GET CHARACTER T5I01840
0060 4033 191 | BSI WZ400 DO TABLE SEARCH TO FIND IT T5I01850
0061 D0DA 192 | STO WZ933 SAVE IN TEMPORARY STORAGE T5I01860
0062 C102 193 | LD 1 2 GET NEXT EBC CHARACTER T5I01870
0063 4030 194 | BSI WZ400 CONVERT TO 1403 CODE T5I01880
0064 1808 195 | SRA 8 PUT CHAR IN RIGHT 8 BITS T5I01890
0065 E8D6 196 | OR WZ933 PACK WITH LEFT 8 BITS T5I01900
0066 D400 0000 197 | WZ320 STO L *-* STORE BACK IN BUFFER T5I01910
0068 7401 0067R 198 | MDX L WZ320+1,1 INCR O/P ADDR BY 1 T5I01920
006A 7102 199 | MDX 1 2 INCR I/P BUFFER ADDR BY 2 T5I01930
006B 74FF 0036R 200 | MDX L WZ920,-1 TEST TO SEE IF CONVERSION T5I01940
201 | * *DONE T5I01950
006D 70F1 202 | MDX WZ310 GET NEXT CHAR IF NOT T5I01960
203 | * T5I01970
006E 68CE 204 | STX WZ934 YES,TURN ON TRANSFER T5I01980
205 | * *COMPLETE SWITCH T5I01990
206 | * T5I02000
207 | * PRINTER BUSY TEST AND PRINT T5I02010
208 | * T5I02020
006F 4019 209 | WZ350 BSI WZ380 T5I02030
0070 4018 210 | BSI WZ380 T5I02040
0071 08BE 211 | XIO WZ904 PRINT A LINE T5I02050
0072 400B 212 | WZ355 BSI WZ375 TEST FOR PRINTER READY 2-3 T5I02060
0073 7400 003DR 213 | MDX L WZ934,0 TEST FOR PRINT COMPLETE2-3 T5I02070
214 | * *INTERRUPT T5I02080
0075 70FC 215 | MDX WZ355 NO INTRPT TRY AGAIN 2-3 T5I02090
0076 708A 216 | WZ360 MDX PRNZ+1 EXIT BACK TO SFIO T5I02100
217 | * T5I02110
218 | * SKIP TO CHANNEL 1, NEW PAGE T5I02120
219 | * T5I02130
0077 4011 220 | WZ370 BSI WZ380 CHECK FOR CARRIAGE BUSY 212 T5I02140
0078 1010 221 | SLA 16 CLEAR CHANNEL 12 SWITCH 212 T5I02150
0079 D400 0080 222 | STO L $1403 SAVE IN COMMA WORD 212 T5I02160
007B 68C3 223 | STX WZ940 SET CHANNEL 1 IN SWITCH 212 T5I02170
007C 08AF 224 | XIO WZ900 SKIP TO CHANNEL 1 T5I02180
007D 70DC 225 | MDX WZ300 GO CONVERT MESSAGE TO 1403 T5I02190
226 | * 2-3 T5I02200
227 | * TEST FOR PRINTER READY 2-3 T5I02210
228 | * IF NO-BR TO PRE-OP ERR TRAP 2-3 T5I02220
229 | * 2-3 T5I02230
007E 0000 230 | WZ375 DC *-* ENTRY POINT 2-3 T5I02240
007F 08B6 231 | WZ376 XIO WZ908 SENSE W/O RESET T5I02250
0080 4C04 0084R 232 | BSC L WZ377,E BR IF NOT READY 2-3 T5I02260
0082 4C80 007ER 233 | BSC I WZ375 RETURN 2-3 T5I02270
234 | * T5I02275
0084 C400 0003R 235 | WZ377 LD L WZ010 LOAD ERROR FLAG 2-12 T5I02280
0086 4400 0028 236 | BSI L $PRET BR TO TRAP T5I02290
0088 70F6 237 | MDX WZ376 TEST READY AGAIN 2-3 T5I02300
0089 0000 238 | WZ380 DC *-* BSI ENTRY POINT T5I02310
008A 40F3 239 | WZ381 BSI WZ375 TEST PRINTER READY 2-3 T5I02320
008B 100D 240 | SLA 13 TEST ON CARR. OR PRINTER T5I02330
008C 4C20 008AR 241 | BSC L WZ381,Z *BUSY, BR IF YES T5I02340
008E 7401 0032 242 | MDX L $IOCT,1 INCR INTRPT PENDING CNT2-3 T5I02350
0090 1000 243 | NOP IN CASE OF SKIP 212 T5I02355
0091 4C80 0089R 244 | BSC I WZ380 RETURN T5I02360
245 | * T5I02440
246 | * TABLE SEARCH SUBROUTINE TO FIND 1403 T5I02450
247 | * CHARACTER CORRESPONDING TO EBC T5I02460
248 | * T5I02470
0093 4C00 0000 249 | BSC L *-* RETURN T5I02480
0094R 250 | WZ400 EQU *-1 BSI ENTRY POINT T5I02490
0095 E09C 251 | AND WZ921 REMOVE 2 HIGH BITS 2-3 T5I02500
0096 1881 252 | SRT 1 SAVE LOW BIT IN Q 2-3 T5I02510
0097 80A8 253 | A WZ941 CONSTRUCT TABLE ADDRESS2-3 T5I02520
0098 D002 254 | STO WZ410+1 PUT IN LOAD INSTRUCTION2-3 T5I02530
0099 1091 255 | SLT 17 SET CARRY WITH LOW BIT 2-3 T5I02540
009A C400 0000 256 | WZ410 LD L *-* GET 1403 CHAR FROM TBL 2-3 T5I02550
009C 4802 257 | BSC C SKIP IF NO CARRY 2-3 T5I02560
009D 1008 258 | SLA 8 2-3 T5I02570
009E E0A2 259 | AND WZ942 MASK OUT RIGHT 8 BITS 2-3 T5I02580
260 | * 2-3 T5I02590
009F 70F3 261 | MDX WZ400-1 EXIT FROM THIS SUBROUTINE T5I02620
PRNZ
263 | * T5I02640
264 | * 1403 CODE TABLE - EBCDIC USED 2-3 T5I02650
265 | * TO GENERATE TABLE ACCESS ADDRESS 2-3 T5I02660
266 | * T5I02670
00A0 7F64 267 | WZ990 DC /7F64 BLANK/A 2-3 T5I02680
00A1 2526 268 | DC /2526 B/C 2-3 T5I02690
00A2 6768 269 | DC /6768 D/E 2-3 T5I02700
00A3 292A 270 | DC /292A F/G 2-3 T5I02710
00A4 6B2C 271 | DC /6B2C H/I 2-3 T5I02720
00A5 7F6E 272 | DC /7F6E BLANK/PERIOD 2-3 T5I02730
00A6 7F57 273 | DC /7F57 BLANK/LEFT PAREN 2-3 T5I02740
00A7 6D7F 274 | DC /6D7F PLUS/BLANK 2-3 T5I02750
00A8 1558 275 | DC /1558 AMPERSAND/J 2-3 T5I02760
00A9 191A 276 | DC /191A K/L 2-3 T5I02770
00AA 5B1C 277 | DC /5B1C M/N 2-3 T5I02780
00AB 5D5E 278 | DC /5D5E O/P 2-3 T5I02790
00AC 1F20 279 | DC /1F20 Q/R 2-3 T5I02800
00AD 7F62 280 | DC /7F62 BLANK/DOLLAR 2-3 T5I02810
00AE 232F 281 | DC /232F ASTERISK/RIGHT PAREN 2-3 T5I02820
00AF 7F7F 282 | DC /7F7F BLANK/BLANK 2-3 T5I02830
00B0 614C 283 | DC /614C MINUS/SLASH 2-3 T5I02840
00B1 0D0E 284 | DC /0D0E S/T 2-3 T5I02850
00B2 4F10 285 | DC /4F10 U/V 2-3 T5I02860
00B3 5152 286 | DC /5152 W/X 2-3 T5I02870
00B4 1354 287 | DC /1354 Y/Z 2-3 T5I02880
00B5 7F16 288 | DC /7F16 BLANK/COMMA 2-3 T5I02890
00B6 7F7F 289 | DC /7F7F BLANK/BLANK 2-3 T5I02900
00B7 7F7F 290 | DC /7F7F BLANK/BLANK 2-3 T5I02910
00B8 4940 291 | DC /4940 0/1 2-3 T5I02920
00B9 0102 292 | DC /0102 2/3 2-3 T5I02930
00BA 4304 293 | DC /4304 4/5 2-3 T5I02940
00BB 4546 294 | DC /4546 6/7 2-3 T5I02950
00BC 0708 295 | DC /0708 8/9 2-3 T5I02960
00BD 7F7F 296 | DC /7F7F BLANK/BLANK 2-3 T5I02970
00BE 7F0B 297 | DC /7F0B BLANK/APOSTROPHE 2-3 T5I02980
00BF 4A7F 298 | DC /4A7F EQUAL/BLANK 2-3 T5I02990
00C0 299 | END T5I03000
There were no errors in this assembly
=== CROSS REFERENCES ==========================================================
Name Val Defd Referenced
$1403 0080 57 102 103 163 222
$IOCT 0032 59 108 242
$LEV4 000C 61
$PRET 0028 58 236
$PST4 008D 60 90
PRNZ 0000R 65 183 216
WZ010 0003R 67 235
WZ100 0004R 71 110
WZ110 0017R 95 79
WZ115 0022R 105 100
WZ120 0024R 108 86 91 116
WZ130 0029R 114 95
WZ200 0043R 149 65
WZ220 0058R 175 166
WZ300 005AR 181 159 162 225
WZ305 005DR 185 182
WZ310 005FR 190 202
WZ320 0066R 197 149 198
WZ350 006FR 209
WZ355 0072R 212 215
WZ360 0076R 216
WZ370 0077R 220 160 164
WZ375 007ER 230 212 233 239
WZ376 007FR 231 237
WZ377 0084R 235 232
WZ380 0089R 238 170 175 209 210 220 244
WZ381 008AR 239 241
WZ400 0094R 250 191 194 261
WZ410 009AR 256 254
WZ900 002CR 121 224
WZ902 002ER 123 121 171 176
WZ904 0030R 125 150 211
WZ906 0032R 127 72 135
WZ908 0036R 131 134 231
WZ910 0038R 133
WZ920 0036R 134 186 200
WZ921 0032R 135 251
WZ930 0039R 136 155
WZ931 003AR 137 161
WZ932 003BR 138 165
WZ933 003CR 139 192 196
WZ934 003DR 140 115 204 213
WZ935 0034R 129 74 75 84 88
WZ936 0035R 130 85
WZ937 003ER 141 89
WZ940 003FR 142 99 106 158 223
WZ941 0040R 143 253
WZ942 0041R 144 259
WZ943 0042R 145 73 76
WZ990 00A0R 267 143