ASM1130 CROSS ASSEMBLER V1.22 -- V2M12 -- Sun Nov 1 19:25:08 2020
Source File: \t5prntz.asm
PRNTZ - FORTRAN 1132 PRINTER I/O SUBR
2 | *************************************************** T5H00010
3 | *STATUS - VERSION 2, MODIFICATION 11 * T5H00020
4 | * * T5H00030
5 | *PROGRAM NAME - * T5H00040
6 | * FULL NAME - FORTRAN 1132 PRINTER I/O SUBR * T5H00050
7 | * CODE NAME - PRNTZ * T5H00060
8 | * * T5H00070
9 | *FUNCTION/OPERATION- * T5H00080
10 | * THIS SUBROUTINE PRINTS UNPACKED EBCDIC DATA ON* T5H00090
11 | * THE 1132 PRINTER. SPACING IS DONE ON THE BASIS* T5H00100
12 | * OF USING THE FIRST CHARACTER OF THE BUFFER. * T5H00110
13 | * * T5H00120
14 | *ENTRY POINTS- * T5H00130
15 | * * PRNTZ-CALL PORTION FROM FORTRAN SIFO PROGRAM* T5H00140
16 | * * AZ100-INTERRUPT ENTRY FROM ILS01 * T5H00150
17 | * THE SUBROUTINE IS ENTERED BY A LIBF PRNTZ * T5H00160
18 | * * T5H00170
19 | *INPUT- * T5H00180
20 | * * XR1 CONTAINS THE OUTPUT BUFFER ADDRESS * T5H00190
21 | * * XR2 CONTAINS THE WORD COUNT * T5H00200
22 | * * T5H00210
23 | *OUTPUT- * T5H00220
24 | * * PRINTER SPACING AND A LINE OF PRINT. * T5H00230
25 | * * T5H00240
26 | *EXTERNAL REFERENCES * T5H00250
27 | * * $SCAN * T5H00260
28 | * * $PRET * T5H00270
29 | * * $IOCT * T5H00280
30 | * * $1132 * T5H00290
31 | * * T5H00300
32 | *EXITS- * T5H00310
33 | * NORMAL- * T5H00320
34 | * * CALL PORTION-PRNTZ+1, BACK TO SFIO * T5H00330
35 | * * INTERRUPT PORTION-AZ100, BACK TO ILS01 * T5H00340
36 | * ERROR- * T5H00350
37 | * * $PRET-MOINTOR PRE-OPERATIVE ERROR TRAP * T5H00360
38 | * WHEN NOT IN READY STATUS. * T5H00370
39 | * * T5H00380
40 | *TABLE/WORK AREAS-N/A * T5H00390
41 | * * T5H00400
42 | *ATTRIBUTES-RELOCATABLE * T5H00410
43 | * * T5H00420
44 | *SPEED - * T5H00430
45 | * *THE SLOWEST THAT THIS SUBROUTINE PRINTS IS 80 * T5H00440
46 | * LINES PER MINUTE. * T5H00450
47 | * *NUMERICAL PRINTING IS AT 110 LINES PER MINUTE.* T5H00460
48 | * *THE NUMBER OF PRINT SCAN CYCLES NEED TO PRINT * T5H00470
49 | * A LINE IS THE NUMBER OF CHARACTERS FROM THE * T5H00480
50 | * PRESENT POSITON OF THE PRINT WHEELS TO THE * T5H00490
51 | * POSITON OF THE LAST ENCOUNTERED CHARACTER TO * T5H00500
52 | * BE PRINTED, PLUS 17 IDLE CYCLES. * T5H00510
53 | * *THE PRINT SPEED IN LPM = 110*(48/SCAN CYCLES) * T5H00520
54 | * *IF THE INPUT BUFFER CONTAINS A CHARACTER NOT * T5H00530
55 | * IN THE 1132 PRINTER CHARACTER SET, THE LINE * T5H00540
56 | * PRINTS AT THE SLOWEST SPEED AND THE CHARACTER * T5H00550
57 | * PRINTS AS A BLANK. * T5H00560
58 | * *SINGLE AND DOUBLE SPACING IS OVERLAPED WITH * T5H00570
59 | * PRINTING TIME. * T5H00580
60 | * *PRINT LINES CONTAINING ONLY 1 CHARACTER, OR * T5H00590
61 | * ONLY BLANKS AFTER THE FIRST CHARACTER, DO NOT * T5H00600
62 | * TAKE ANY PRINT SCAN CYCLES. THEREFORE CONTROL* T5H00610
63 | * RETURNS TO THE MAINLINE IMMEDIATELY. * T5H00620
64 | * THE PRINTER IS BUSY FOR THE TIME THE CARRIAGE * T5H00630
65 | * CONTROL TAKES. A SINGLE SPACE TAKES ABOUT 3-4* T5H00640
66 | * SCAN CYCLES OF TIME. * T5H00650
67 | * A DOUBLE SPACE TAKES ABOUT 7 SCAN CYCLES OF * T5H00660
68 | * TIME. * T5H00670
69 | * * T5H00680
70 | *NOTES - * T5H00690
71 | * *REGISTERS NOT SAVED. * T5H00700
72 | * *NO PROVISION MADE FOR SCAN CHECK DETECTION OR * T5H00710
73 | * RECOVERY. * T5H00720
74 | * *SPACING IS DONE PRIOR TO PRINTING. * T5H00730
75 | * *UNRECOGNIZABLE CARRIAGE CONTROL CHARACTERS * T5H00740
76 | * CAUSE SINGLE SPACING. * T5H00750
77 | * *CONTROL IS RETURNED AS SOON AS THE EBCDIC DATA* T5H00760
78 | * BUFFER IS NO LONGER NEEDED. THUS, ABOUT * T5H00770
79 | * 193 MILLISECONDS IS AVAILABLE FOR COMPUTATION * T5H00780
80 | * BETWEEN PRINT LINES DURING THE 17 IDLE CYCLES.* T5H00790
81 | * *INTERRUPTS CONTINUE UNTIL ALL PRINTING FOR A * T5H00800
82 | * CALL IS DONE. * T5H00810
83 | * *USE OF $IOCT PREVENTS OVERLAY BEFORE I/O IS * T5H00820
84 | * COMPLETED. * T5H00830
85 | * *IF CALLED AGAIN BEFORE I/O IS COMPLETED, * T5H00840
86 | * CONTROL LOOPS AT THE BEGINNING OF SUBROUTINE * T5H00850
87 | * UNTIL I/O IS COMPLETE. * T5H00860
88 | * * T5H00870
89 | * *THE ORDER OF THE CHARACTERS ON THE 1132 * T5H00880
90 | * PRINT WHEELS IS AS FOLLOWS BY COLUMN -- * T5H00890
91 | * * T5H00900
92 | * A 2 ' M * T5H00910
93 | * B 3 , N * T5H00920
94 | * C 4 ) O * T5H00930
95 | * D 5 - P * T5H00940
96 | * F 6 ( Q * T5H00950
97 | * H 7 + R * T5H00960
98 | * I 8 / E * T5H00970
99 | * S 9 * G * T5H00980
100 | * T 0 & W * T5H00990
101 | * U = J X * T5H01000
102 | * V $ K Y * T5H01010
103 | * 1 . L Z * T5H01020
104 | * * T5H01030
105 | * * T5H01040
106 | *************************************************** T5H01050
107 | * EJCT BLK REMOVED T5H01060
108 | LIBR T5H01070
109 | ISS 06 PRNTZ 1 T5H01080
110 | * T5H01090
111 | * SYSTEM COMMUNICATION WORDS T5H01100
112 | * T5H01110
0020 113 | $SCAN EQU /20 1132 PRINT SCAN FIELD T5H01120
0028 114 | $PRET EQU /28 PRE-OPERATIVE ERROR TRAP T5H01130
0032 115 | $IOCT EQU /32 ZERO IF NO I/O IN PROGRESS T5H01140
007F 116 | $1132 EQU /7F 1132 PRINTER CHANNEL12 INDR T5H01150
117 | * T5H01160
118 | * SUBROUTINE ENTRY POINTS T5H01170
119 | * T5H01180
0000 7072 120 | PRNTZ MDX AZ205 MAINLINE ENTRY 2-7 T5H01190
0001 4C80 0000 121 | BSC I *-* RETURN T5H01200
0003 0000 122 | AZ010 DC *-* TEMPORARY STORAGE COUNT WD T5H01210
123 | * T5H01220
124 | *************************************************** T5H01230
125 | * INTERRUPT PROCESSING PART OF SUBROUTINE * T5H01240
126 | *************************************************** T5H01250
127 | * T5H01260
0004 0000 128 | AZ100 DC *-* INTERRUPT ENTRY AND RETURN T5H01270
0005 6220 129 | LDX 2 $SCAN LOAD XR2 WITH BASE ADDR TO T5H01280
130 | * *1132 PRINTER SCAN FIELD T5H01290
131 | * T5H01300
0006 086F 132 | XIO AZ900 SENSE WITH RESET T5H01310
0007 D070 133 | STO AZ914 SAVE SENSE DSW WORD T5H01320
134 | * T5H01330
135 | * TEST IF SPACING COMPLETED T5H01340
136 | * T5H01350
0008 1001 137 | SLA 1 SHIFT SKIP INDICATOR T5H01360
0009 4C28 0026R 138 | BSC L AZ140,+Z BR IF SKIP INTERRUPT T5H01370
000B 1001 139 | SLA 1 SHIFT SPACE INDICATOR T5H01380
000C 4C28 0031R 140 | BSC L AZ145,+Z BR IF SPACE INTERRUPT T5H01390
141 | * T5H01400
000E C06F 142 | LD AZ906 IS CARRIAGE SKIP GOING ON T5H01410
000F 4C28 0071R 143 | BSC L AZ195,Z+ BR TO RETURN IF YES T5H01420
144 | * T5H01430
0011 C066 145 | AZ110 LD AZ914 IS THIS EMITTER INTERRUPT T5H01440
0012 4C10 0071R 146 | BSC L AZ195,- BR TO RETURN IF NOT T5H01450
147 | * T5H01460
0014 407C 148 | BSI AZ260 CLEAR 32-39 TO ZEROES T5H01470
149 | * T5H01480
150 | * STOP SCANNING IF ALL PRINT POSITIONS ARE T5H01490
151 | * EITHER BLANK OR ALREADY PRINTED, T5H01500
152 | * OR 48 PRINT SCAN CYCLES HAVE BEEN TAKEN. T5H01510
153 | * T5H01520
0015 C05E 154 | LD AZ922 GET CHARS LEFT TO PRINT CNT T5H01530
0016 9072 155 | S AZ920+1 SUB 2 BASE VALUE 2-7 T5H01535
0017 4C08 001CR 156 | BSC L AZ130,+ BR IF ALL PRINTED T5H01540
157 | * T5H01550
0019 74FF 008CR 158 | MDX L AZ924,-1 DECR SCAN COUNTER T5H01560
001B 701F 159 | MDX AZ148 GO SCAN FOR NEXT CHAR T5H01570
160 | * T5H01580
161 | * LAST CHARACTER TO BE PRINTED HAS ALREADY BEEN T5H01590
162 | * SCANED, INPUT DATA BUFFER IS NOT NEEDED ANY T5H01600
163 | * MORE. ALLOW RETURN TO CALLER FROM PRNTZ WHILE T5H01610
164 | * 17 IDLE SCANS ARE TAKEN. T5H01620
165 | * T5H01630
001C 1810 166 | AZ130 SRA 16 ZERO ACC T5H01640
001D D06E 167 | STO AZ924 SET SCAN COUNTER = 0 T5H01650
001E 74FF 008DR 168 | MDX L AZ925,-1 DECR IDLE COUNTER T5H01660
0020 7050 169 | MDX AZ195 RETURN, MORE IDLES NEEDED T5H01670
0021 0858 170 | XIO AZ902 STOP PRINTER T5H01680
0022 74FF 0032 171 | MDX L0 $IOCT,-1 INDICATE 1132 I/O DONE T5H01690
0024 704C 172 | MDX AZ195 TWICE BECAUSE MAY SKIP T5H01700
0025 704B 173 | MDX AZ195 BR OUT OF INTERRUPT T5H01710
174 | * T5H01720
175 | * CARRIAGE SKIP COMPLETE TEST T5H01730
176 | * T5H01740
0026 1007 177 | AZ140 SLA 7 TEST FOR CHANNEL 1 T5H01750
0027 4C10 0071R 178 | BSC L AZ195,- BR OUT OF INTERRUPT IF NOT T5H01760
0029 0852 179 | XIO AZ904 STOP CARRIAGE T5H01770
002A 1810 180 | SRA 16 ZERO ACC T5H01780
002B D052 181 | STO AZ906 ZERO SPACE COUNTER T5H01790
002C D25F 182 | STO 2 $1132-$SCAN CLEAR CHANNEL 12 SWITCH T5H01800
183 | * T5H01810
184 | * ALL CARRIAGE CONTROL COMPLETED T5H01820
185 | * T5H01830
002D 74FF 0032 186 | AZ142 MDX L0 $IOCT,-1 INDICATE CARIAGE OP COMPLT T5H01840
002F 1000 187 | NOP MAY SKIP T5H01850
0030 70E0 188 | MDX AZ110 BR TO SEE IF EMITTER INTRPT T5H01860
189 | * T5H01870
190 | * SPACE COUNTER TEST (NOTE, ONLY SINGLE AND T5H01880
191 | * DOUBLE SPACE ALLOWED BECAUSE OF OVERLAP WITH T5H01890
192 | * PRINTING) T5H01900
193 | * T5H01910
0031 C046 194 | AZ145 LD AZ914 LOAD DSW FROM SENSE T5H01920
0032 E054 195 | AND AZ916+1 MASK OUT ALL BUT BIT 15 T5H01930
0033 EA5F 196 | OR 2 $1132-$SCAN OR WITH PREV CHANNEL 12 T5H01940
0034 D25F 197 | STO 2 $1132-$SCAN SAVE CHANNEL 12 SWITCH T5H01950
0035 74FF 007ER 198 | MDX L0 AZ906,-1 DECREMENT SPACE COUNTER T5H01960
0037 7001 199 | MDX AZ146 BR IF COUNTER NOT 0 T5H01970
0038 70F4 200 | MDX AZ142 BR LAST REQUIRED SPACE DONE T5H01980
0039 0844 201 | AZ146 XIO AZ906 DO ANOTHER CARRIAGE SPACE T5H01990
003A 70D6 202 | MDX AZ110 BR TO SEE IF EMITTER INTRPT T5H02000
203 | * T5H02010
204 | * READ 1132 PRINTER EMITTER AND SCAN BUFFER T5H02020
205 | * FOR MATCHING CHARACTERS. SET BITS IN T5H02030
206 | * CORRESPONDING POSITIONS IN WORDS 32-39 OF CORE. T5H02040
207 | * T5H02050
003B 6A25 208 | AZ148 STX 2 AZ180+1 RESET STORE ADDR TO START T5H02060
209 | * *1132 PRINTER SCAN FIELD T5H02070
003C 0847 210 | XIO AZ912 READ EMITTER T5H02080
003D C042 211 | LD AZ908 LOAD EMITTED CHARACTER 2-7 T5H02082
003E 1808 212 | SRA 8 PUT IN RIGHT HALF ACC 2-7 T5H02084
003F E840 213 | OR AZ908 ADD CHAR TO LEFT HALF 2-7 T5H02086
0040 D03F 214 | STO AZ908 STORE IN COMPARE WORD 2-7 T5H02088
215 | * T5H02090
0041 6500 0000 216 | AZ150 LDX L1 *-* PUT START OF BUFR IN XR1 T5H02100
0043 C03E 217 | LD AZ910 LOAD CHARACTER COUNT T5H02110
0044 D0BE 218 | STO AZ010 SAVE IN TEMPORARY STORAGE T5H02120
0045 6210 219 | LDX 2 16 SET BITS/WORD COUNTER TO 16 T5H02130
0046 1082 220 | AZ160 SLT 2 SHIFT BITS LEFT IN EXT 2-7 T5H02140
0047 C101 221 | LD 1 1 LOAD NEXT CHAR IN ACC 2-7 T5H02150
0048 1008 222 | SLA 8 SHIFT CHAR TO LEFT ACC 2-7 T5H02160
0049 E902 223 | OR 1 2 OR 2ND CHAR IN RIGHT ACC2-7 T5H02165
004A F035 224 | EOR AZ908 COMPARE WITH EMITTED CHAR T5H02170
004B 4C20 0051R 225 | BSC L AZ163,Z NO BR IF BOTH MATCH 2-7 T5H02173
004D 8840 226 | AD AZ926 SET ON LAST 2 BITS EXT 2-7 T5H02176
004E 74FE 0074R 227 | MDX L0 AZ922,-2 DECR CHAR TO PRINT BY 2 2-7 T5H02180
0050 700B 228 | MDX AZ170 2-7 T5H02183
0051 803C 229 | AZ163 A AZ926 ADD /FF00 TO FORCE CARRY2-7 T5H02186
230 | * *IF ANY BITS DIFFERENT 2-7 T5H02190
0052 4C02 0056R 231 | BSC L AZ165,C BR IF FIRST CHAR NOT 2-7 T5H02193
232 | * *EMITTED CHAR 2-7 T5H02196
0054 8833 233 | AD AZ920 SET ON LAST-1 BIT IN EXT2-7 T5H02200
0055 7004 234 | MDX AZ166 2-7 T5H02202
0056 1008 235 | AZ165 SLA 8 REMOVE 1ST CHAR FROM ACC2-7 T5H02204
0057 4C20 005CR 236 | BSC L AZ170,Z BR IF 2ND CHAR NOT 2-7 T5H02206
237 | * *EMITTED CHAR 2-7 T5H02208
0059 882C 238 | AD AZ916 SET LAST BIT IN EXT ON T5H02210
005A 74FF 0074R 239 | AZ166 MDX L0 AZ922,-1 DECR CHARS TO PRINT CNT 2-7 T5H02215
005C 72FE 240 | AZ170 MDX 2 -2 DECR BIT/WD COUNT BY 2 2-7 T5H02220
005D 7006 241 | MDX AZ190 BR IF SCAN WORD NOT FULL T5H02230
005E 6210 242 | LDX 2 16 SET BITS/WORD COUNTER TO 16 T5H02240
005F 18D0 243 | RTE 16 MOVE SCAN BIT WORD TO ACC T5H02250
0060 D400 0020 244 | AZ180 STO L $SCAN STORE IN 1132 SCAN FIELD T5H02260
0062 7401 0061R 245 | MDX L0 AZ180+1,1 INCR SCAN FIELD STORE ADDR T5H02270
0064 7102 246 | AZ190 MDX 1 2 INCR INPUT BUFFER ADDR 2-7 T5H02280
0065 74FE 0003R 247 | MDX L0 AZ010,-2 DECR BUFFER CHAR COUNTER2-7 T5H02290
0067 70DE 248 | MDX AZ160 BR IF MORE CHARS IN BUFFER T5H02300
0068 1090 249 | SLT 16 MOVE ANY SCAN BITS TO ACC T5H02310
0069 1280 250 | SLT 2 0 SHIFT BITS LEFT BY REMAINDR T5H02320
006A D480 0061R 251 | STO I AZ180+1 STORE IN NEXT WD SCAN FIELD T5H02330
006C C400 0027 252 | LD L $SCAN+7 LOAD SCAN WORD 8, 2-11 T5H02332
006E E821 253 | OR SCAN1 *TURN ON BIT 16, AND 2-11 T5H02335
006F D400 0027 254 | STO L $SCAN+7 *RESTORE IN SCAN FIELD 2-11 T5H02338
255 | * T5H02340
0071 4C80 0004R 256 | AZ195 BSC I AZ100 RETURN FROM INTERRUPT T5H02350
257 | * 2-7 T5H02354
0073 7028 258 | AZ205 MDX AZ210 BOOST ON TO MAINLINE 2-7 T5H02356
259 | * T5H02360
260 | * CONSTANTS AND WORK AREAS T5H02370
261 | * T5H02380
0074 0000 262 | AZ922 DC *-* CHARS LEFT TO PRINT COUNTER T5H02390
0076 263 | BSS E 0 T5H02400
0076 6000 264 | AZ900 DC /6000 ERROR DISPLAY CONSTANT T5H02410
0077 3701 265 | DC /3701 *AND SENSE W/ RESET IOCC T5H02420
0078 0000 266 | AZ914 DC *-* DSW AND SENSE WITH NO T5H02430
0079 3700 267 | DC /3700 *RESET IOCC T5H02440
007A 00A3 268 | AZ902 DC .1-.+ CHAN1 CON AND PRINTER STOP T5H02450
007B 3440 269 | DC /3440 *IOCC T5H02460
007C 004E 270 | AZ904 DC .+ SPACE SUPPRESS CON AND T5H02470
007D 3402 271 | DC /3402 *STOP CARRIAGE IOCC T5H02480
007E 0000 272 | AZ906 DC *-* SPACE COUNTER T5H02490
007F 3401 273 | DC /3401 *AND SPACE IOCC T5H02500
0080 0000 274 | AZ908 DC *-* EMITTER STORAGE AND T5H02510
0081 3404 275 | DC /3404 *START CARRIAGE IOCC T5H02520
0082 0000 276 | AZ910 DC *-* CHARACTER COUNT STORAGE AND T5H02530
0083 3480 277 | DC /3480 *PRINTER IOCC T5H02540
0084 0080R 278 | AZ912 DC AZ908 READ EMITTER INTO CORE T5H02550
0085 3200 279 | DC /3200 *IOCC T5H02560
0086 0000 0001 280 | AZ916 DEC 1 CONSTANT 1 T5H02570
0087R 281 | AZ917 EQU *-1 SPACE CONSTANT -(.0-.1) = T5H02580
282 | * * -(-1) = 1 T5H02590
0088 0040 283 | AZ920 DC . EBCDIC BLANK FOR SCAN 2-7 T5H02594
0089 0002 284 | DC 2 *AND DOUBLE WD CONST 2 2-7 T5H02596
008A 0031 285 | AZ918 DC 49 PRINT SCAN CONSTANT AND T5H02600
008B 0011 286 | DC 17 *IDLE SCAN CONSTANT T5H02610
008C 0000 287 | AZ924 DC *-* PRINT SCAN COUNTER T5H02620
288 | * *+ TEMP BLANK SCAN COUNTER T5H02630
008D 0000 289 | AZ925 DC *-* IDLE COUNTER T5H02640
008E FF00 290 | AZ926 DC /FF00 FIRST CHAR MASK AND 2-7 T5H02644
008F 0003 291 | DC 3 *DOUBLE WD CONSTANT 3 2-7 T5H02650
0090 0001 292 | SCAN1 DC 1 CONSTANT TO SET SCAN 2-11 T5H02655
293 | * *FIELD BIT ON 2-11 T5H02657
294 | * T5H02660
295 | * SUBROUTINE TO CLEAR WORDS 32-39 TO ZEROES T5H02670
296 | * T5H02680
0091 0000 297 | AZ260 DC *-* BSI ENTRY POINT T5H02690
0092 10A0 298 | SLT 32 CLEAR ACC AND EXTENSION T5H02700
0093 6100 299 | LDX 1 0 SET XR1 = 0 T5H02710
0094 D920 300 | STD 1 $SCAN ZERO T5H02720
0095 D922 301 | STD 1 $SCAN+2 *1132 T5H02730
0096 D924 302 | STD 1 $SCAN+4 *PRINT SCAN T5H02740
0097 D926 303 | STD 1 $SCAN+6 *FIELD T5H02750
0098 7401 0027 304 | MDX L $SCAN+7,1 SET ON BIT 16 2-11 T5H02755
009A 4C80 0091R 305 | BSC I AZ260 RETURN T5H02760
306 | * T5H02770
307 | *************************************************** T5H02780
308 | * MAINLINE PORTION OF SUBROUTINE * T5H02790
309 | *************************************************** T5H02800
310 | * T5H02810
311 | * TEST FOR NOT READY AND CARRIAGE OR PRINTER BUSY T5H02820
312 | * T5H02830
009C 08DB 313 | AZ210 XIO AZ914 SENSE DSW WITHOUT RESET T5H02840
009D 1003 314 | SLA 3 SHIFT TO SIGN T5H02850
009E 4810 315 | BSC - BR IF CARRIAGE BUSY T5H02860
009F 18DD 316 | RTE 29 SHIFT TO SIGN T5H02870
00A0 4C28 009CR 317 | BSC L AZ210,+Z BR IF PRINTER BUSY T5H02880
00A2 18C1 318 | RTE 1 SHIFT TO SIGN T5H02890
00A3 4C10 00A9R 319 | BSC L AZ215,- BR IF PRINTER READY T5H02900
320 | * T5H02910
321 | * NOT READY OR FORMS CHECK. T5H02920
322 | * BR TO PRE-OPERATIVE ERROR TRAP. T5H02930
323 | * T5H02940
00A5 C0D0 324 | LD AZ900 LOAD ERROR INDICATOR T5H02950
00A6 4400 0028 325 | BSI L $PRET BR TO PRE-OP ERROR T5H02960
00A8 70F3 326 | MDX AZ210 TRY FORMS TEST AGAIN T5H02970
327 | * T5H02980
328 | * DOUBLE CHECK CARRIAGE BUSY. SOMEHOW THE DSW BIT T5H02990
329 | * TEST IS NOT RELIABLE. HOWEVER, IT IS STILL T5H03000
330 | * NEEDED TO DETECT MANUALLY INITIATED SPACING. T5H03010
331 | * THIS SECOND TEST METHOD IS EXPLICIT FOR SPACES T5H03020
332 | * INITIATED BY THIS SUBROUTINE. T5H03030
333 | * T5H03040
00A9 7400 007ER 334 | AZ215 MDX L0 AZ906,0 IS SPACING COMPLETED T5H03050
00AB 70F0 335 | MDX AZ210 NO, BR TO LOOP UNTIL DONE T5H03060
336 | * T5H03070
00AC 6AD5 337 | STX 2 AZ910 SAVE COUNT OF CHARACTERS T5H03080
00AD 6994 338 | STX 1 AZ150+1 SAVE BUFFER ADDR T5H03090
00AE C100 339 | LD 1 0 LOAD CONTROL CHARACTER T5H03100
00AF 90CC 340 | S AZ904 TEST IF SUPPRESS SPACE '+' T5H03110
00B0 4C18 00C9R 341 | BSC L AZ220,+- BR TO PRINT IF SUPPRESS T5H03120
00B2 7401 0032 342 | MDX L0 $IOCT,1 IND CARRIAGE I/O IN PROGRES T5H03130
00B4 90C5 343 | S AZ902 TEST IF SKIP CHANNEL 1 '1' T5H03140
00B5 4C18 00C1R 344 | BSC L AZ218,+- BRANCH IF SKIP T5H03150
00B7 7400 007F 345 | MDX L0 $1132,0 TEST IF CH 12 SWITCH IS ON T5H03160
00B9 7007 346 | MDX AZ218 BR TO SKIP IF ON T5H03170
00BA 6201 347 | LDX 2 1 ASSUME SINGLE SPACE T5H03180
00BB 80CB 348 | A AZ917 TEST IF DOUBLE SPACE '0' T5H03190
00BC 4818 349 | BSC +- SKIP IF NOT DOUBLE SPACE T5H03200
00BD 6202 350 | LDX 2 2 SET FOR DOUBLE SPACE T5H03210
00BE 6ABF 351 | STX 2 AZ906 SAVE SPACE COUNTER T5H03220
00BF 08BE 352 | XIO AZ906 START CARRIAGE SPACE T5H03230
00C0 7008 353 | MDX AZ220 BR TO PRINT LINE T5H03240
354 | * T5H03250
355 | * SKIP TO CHANNEL 1 T5H03260
356 | * T5H03270
00C1 62FF 357 | AZ218 LDX 2 -1 SET SPACE COUNT NEG (TO T5H03280
00C2 6ABB 358 | STX 2 AZ906 *INHIBIT CHAR SCANS) T5H03290
00C3 C400 0027 359 | LD L $SCAN+7 LOAD SCAN WORD 8, 2-11 T5H03293
00C5 E8CA 360 | OR SCAN1 *TURN ON BIT 16, AND 2-11 T5H03295
00C6 D400 0027 361 | STO L $SCAN+7 *RESTORE IN SCAN FIELD 2-11 T5H03297
00C8 08B7 362 | XIO AZ908 START CARRIAGE SKIP T5H03300
363 | * TEST IF MORE THAN JUST CARRIAGE CONTROL T5H03310
364 | * CHARACTER IN INPUT BUFFER T5H03320
365 | * T5H03330
00C9 C0B8 366 | AZ220 LD AZ910 DECR COUNT OF CHARS IN T5H03340
00CA 90BC 367 | S AZ916+1 *IN BUFFER BY 1 T5H03350
00CB 4C08 0001R 368 | BSC L PRNTZ+1,+ BR TO RETURN IF ONLY T5H03360
369 | * *CARRIAGE CONTROL CHARACTER T5H03370
370 | * T5H03380
371 | * CHECK IF REST OF LINE IS ALL BLANKS T5H03390
372 | * T5H03400
00CD D0B4 373 | STO AZ910 SAVE DECR CHAR COUNT T5H03410
00CE D0BD 374 | STO AZ924 SAVE FOR COUNT BLANK SCAN T5H03420
00CF 18D0 375 | RTE 16 SET IN EXT AS CHARS LEFT T5H03430
376 | * *TO PRINT COUNTER T5H03440
377 | * T5H03450
00D0 C101 378 | AZ245 LD 1 1 GET NEXT CHAR IN BUFFER T5H03460
00D1 F0B6 379 | EOR AZ920 IS IT A BLANK 2-7 T5H03470
00D2 4818 380 | BSC +- SKIP IF NOT A BLANK T5H03480
00D3 98B2 381 | SD AZ916 DECR CHARS LEFT TO PRINT T5H03490
382 | * *COUNTER IN EXT BY 1 T5H03500
00D4 7101 383 | MDX 1 1 ADVANCE BUFFER PINTER T5H03510
00D5 74FF 008CR 384 | MDX L0 AZ924,-1 DECR CHAR COUNTER BY 1 T5H03520
00D7 70F8 385 | MDX AZ245 BR IF MORE CHARS IN BUFFER T5H03530
386 | * T5H03540
00D8 18D0 387 | RTE 16 GET CHARS LEFT TO 2-7 T5H03550
388 | * *PRINT COUNTER FROM EXT 2-7 T5H03560
00D9 4C08 0001R 389 | BSC L PRNTZ+1,+ BR RETURN IF ALL BLANKS T5H03570
390 | * T5H03580
391 | * PRINTING REQUIRED. T5H03590
392 | * SET INDICATORS AND START PRINTER. T5H03600
393 | * T5H03610
00DB 80AD 394 | A AZ920+1 ADD 2 TO CHARS LEFT SO 2-7 T5H03614
00DC D097 395 | STO AZ922 *SCAN MDX CAN NOT SKIP 2-7 T5H03616
00DD 40B3 396 | BSI AZ260 CLEAR 32-39 TO ZEROES T5H03620
00DE C8AB 397 | LDD AZ918 SET PRINT SCAN COUNTER=49 T5H03630
00DF D8AC 398 | STD AZ924 *SET IDLE COUNTER = 17 T5H03640
00E0 7401 0032 399 | MDX L0 $IOCT,1 IND CHAR I/O IN PROGRESS T5H03650
00E2 089F 400 | XIO AZ910 START PRINTER T5H03660
401 | * T5H03670
402 | * LOOP UNTIL PRINT BUFFER NO LONGER NEEDED T5H03680
403 | * T5H03690
00E3 7400 008DR 404 | AZ250 MDX L0 AZ925,0 NEED MORE IDLE CYCLES? 2-11 T5H03708
00E5 70FD 405 | MDX AZ250 YES, BR UNTIL NOT NEEDED T5H03710
00E6 4C00 0001R 406 | BSC L PRNTZ+1 BR TO RETURN TO CALLER T5H03720
00E8 407 | END T5H03730
There were no errors in this assembly
=== CROSS REFERENCES ==========================================================
Name Val Defd Referenced
$1132 007F 116 182 196 197 345
$IOCT 0032 115 171 186 342 399
$PRET 0028 114 325
$SCAN 0020 113 129 182 196 197 244 252 254 300 301 302 303 304
359 361
AZ010 0003R 122 218 247
AZ100 0004R 128 256
AZ110 0011R 145 188 202
AZ130 001CR 166 156
AZ140 0026R 177 138
AZ142 002DR 186 200
AZ145 0031R 194 140
AZ146 0039R 201 199
AZ148 003BR 208 159
AZ150 0041R 216 338
AZ160 0046R 220 248
AZ163 0051R 229 225
AZ165 0056R 235 231
AZ166 005AR 239 234
AZ170 005CR 240 228 236
AZ180 0060R 244 208 245 251
AZ190 0064R 246 241
AZ195 0071R 256 143 146 169 172 173 178
AZ205 0073R 258 120
AZ210 009CR 313 258 317 326 335
AZ215 00A9R 334 319
AZ218 00C1R 357 344 346
AZ220 00C9R 366 341 353
AZ245 00D0R 378 385
AZ250 00E3R 404 405
AZ260 0091R 297 148 305 396
AZ900 0076R 264 132 324
AZ902 007AR 268 170 343
AZ904 007CR 270 179 340
AZ906 007ER 272 142 181 198 201 334 351 352 358
AZ908 0080R 274 211 213 214 224 278 362
AZ910 0082R 276 217 337 366 373 400
AZ912 0084R 278 210
AZ914 0078R 266 133 145 194 313
AZ916 0086R 280 195 238 367 381
AZ917 0087R 281 348
AZ918 008AR 285 397
AZ920 0088R 283 155 233 379 394
AZ922 0074R 262 154 227 239 395
AZ924 008CR 287 158 167 374 384 398
AZ925 008DR 289 168 404
AZ926 008ER 290 226 229
PRNTZ 0000R 120 368 389 406
SCAN1 0090R 292 253 360