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