ASM1130 CROSS ASSEMBLER V1.22 -- V2M12 -- Sun Nov 1 19:25:09 2020 Source File: \u2prnt1.asm LIBF PRNT1 2 | *************************************************** U2J00010 3 | * * U2J00020 4 | * TITLE - PRNT1 * U2J00030 5 | * * U2J00040 6 | *STATUS - VERSION 2, MODIFICATION 12 * U2J00050 7 | * * U2J00060 8 | * FUNCTION/OPERATION - PRNT1 CAN PERFORM THE * U2J00070 9 | * FOLLOWING FUNCTIONS * U2J00080 10 | * 1. TEST * U2J00090 11 | * 2. PRINT * U2J00100 12 | * 3. CONTROL CARRIAGE * U2J00110 13 | * 4. PRINT NUMERICAL * U2J00120 14 | * * U2J00130 15 | * ENTRY POINTS - * U2J00140 16 | * 1. PRNT1 CALL ENTRANCE, LIBF PRNT1 * U2J00150 17 | * 2. INT1 INTERRUPT ENTRANCE FROM ILS01 * U2J00160 18 | * * U2J00170 19 | * INPUT - THE I/O AREA CONTAINS EBCDIC CHARACTERS * U2J00180 20 | * PACKED TWO PER WORD * U2J00190 21 | * * U2J00200 22 | * OUTPUT - PRINTED ON 1132 PRINTER * U2J00210 23 | * * U2J00220 24 | * EXTERNAL SUBROUTINES - NONE * U2J00230 25 | * * U2J00240 26 | * EXITS - * U2J00250 27 | * NORMAL * U2J00260 28 | * 1. CALL PORTION - FC58, BACK TO USER. * U2J00270 29 | * 2. INTERRUPT PORTION - OUT, BACK TO ILS01 * U2J00280 30 | * ERROR * U2J00290 31 | * 1. CALL PORTION - IF PRE-OP ERROR IS DETECT* U2J00300 32 | * *ED, SUBROUTINE BRANCHES TO $PRET AND * U2J00310 33 | * DISPLAYS 6000 OR 6001 IN ACCUMULATOR. * U2J00320 34 | * 2. INTERRUPT PORTION - IF CARRIAGE CHANNEL * U2J00330 35 | * 9 OR 12 IS DETECTED, SUBROUTINE PERFORMS* U2J00340 36 | * BSI TO USER'S ERROR SUBROUTINE WITH 0003* U2J00350 37 | * OR 0004 RESPECTIVELY IN ACCUMULATOR. * U2J00360 38 | * * U2J00370 39 | * TABLES/WORK AREAS - NONE * U2J00380 40 | * * U2J00390 41 | * ATTRIBUTES - REUSABLE * U2J00400 42 | * * U2J00410 43 | * NOTES - EBCDIC CHARACTERS NOT INCLUDED IN 1132 * U2J00420 44 | * CHARACTER SET ARE PRINTED AS BLANKS. * U2J00430 45 | * * U2J00440 46 | *************************************************** U2J00450 47 | * EJCT BLK REMOVED U2J00460 48 | LIBR U2J00470 0000 49 | 1130 ISS 06 PRNT1 1 U2J00480 0000 697F 50 | PRNT1 STX 1 FC58+1 CALL ENTRANCE (+0) U2J00490 0001 6580 0000 51 | LDX I1 *-* ADDR OF 1ST PARAM +2 U2J00500 0003 7068 52 | MDX FC10 TO PROCESS CALL U2J00510 0004 0000 53 | INT1 DC *-* INTERRUPT ENTRANCE +4 U2J00520 0005 4C00 0124R 54 | BSC L FC50 TO INTRPT PROCESSING U2J00530 55 | * U2J00540 56 | *CONSTANTS AND BUFFER AREA U2J00550 57 | * U2J00560 0007 0000 58 | WHEEL DC *-* STORAGE FOR WHEEL CHAR U2J00570 0008 59 | BSS E U2J00580 0008 0000 60 | AQ DC 0 SAVE ACC AND EXT U2J00590 0009 0000 61 | DC 0 * U2J00600 000A 6001 62 | H6001 DC /6001 ERROR CODE U2J00610 63 | * U2J00620 64 | *THIS SECTION DOES THE SHIFT TO POSITION SCAN BITS, U2J00630 65 | *STORES THEM IN THE SCAN FIELD AND KEEPS TRACK OF U2J00640 66 | *THE WORD COUNT. U2J00650 67 | * U2J00660 000B 1082 68 | CKLPS SLT 2 POSITION FOR 2 MORE BITS U2J00670 000C 74FC 0023R 69 | MDX L QTEST,-4 IF A WD IS DONE,BR U2J00680 000E 7036 70 | MDX SCAN *ELSE RET TO GET 2 BITS U2J00690 000F 108E 71 | SLT 14 WHEN EXT FULL,MOVE TO ACC U2J00700 0010 7420 0023R 72 | MDX L QTEST,32 RESET FOR NEXT WD U2J00710 0012 7408 008FR 73 | MDX L NEGW2,8 MODIFY WD CNT U2J00720 0014 D400 0020 74 | PARTM STO L 32 STORE 1 WD IN SCAN FIELD U2J00730 0016 7401 0015R 75 | MDX L PARTM+1,1 INCR SCAN FIELD ADDR U2J00740 0018 702C 76 | MDX SCAN RET TO SET UP NEXT WD U2J00750 77 | * U2J00790 78 | *END OF FORMS ERROR EXIT U2J00800 79 | * U2J00810 0019 C06C 80 | ILGL2 LD STRTP GET ERROR CODE U2J00820 001A 7001 81 | MDX ILLGL+1 EXIT TO CORE LOC 41 U2J00830 82 | * U2J00840 83 | *ERROR EXIT TO CORE LOC 41 W/CALL ADDR IN LOC 40 U2J00850 84 | * U2J00860 001B C0EE 85 | ILLGL LD H6001 GET ERROR CODE U2J00870 001C 6500 0000 86 | LDX L1 *-* GET CALL ADDR AND STORE IN U2J00880 001E 71FF 87 | MDX 1 -1 CORE LOC 40 U2J00890 001F 6D00 0028 88 | STX L1 40 U2J00900 0021 6129 89 | LDX 1 41 SET TO EXIT TO CORE LOC 41 U2J00910 0022 705B 90 | MDX STXIT U2J00920 91 | * U2J00930 92 | *CONSTANTS AND BUFFER AREA U2J00940 93 | * U2J00950 0028 94 | $PRET EQU /28 U2J00952 0020 95 | $SCAN EQU /20 2-10 U2J00955 007F 96 | $1132 EQU /007F SYSTEM 1132 INDICATOR 2-12 U2J00956 0023 0020 97 | QTEST DC 32 16 BITS CTR FOR SCAN ST2-12 U2J00957 0024 98 | BSS E U2J00960 0024 0007R 99 | READE DC WHEEL * U2J00970 0025 3200 100 | DC /3200 READ EMITTER IOCC WDS U2J00980 101 | * U2J01060 102 | *THIS SECTION SETS UP THE BITS FOR THE SCAN FIELD U2J01070 103 | * U2J01080 104 | * U2J01090 0026 08FD 105 | EMIT XIO READE WHEEL CHAR TO EMITTER U2J01100 0027 C069 106 | LD NUM IS NUMERIC INDR ON U2J01110 0028 4C08 0036R 107 | BSC L FC75,+ NO,GO START SCAN SETUP U2J01120 002A C0DC 108 | LD WHEEL GET PRESENT WHEEL CHAR U2J01150 002B 4C10 0030R 109 | BSC L FC74A,- BR IF SPECIAL CHAR 2-12 U2J01155 002D 905E 110 | S KNUM U2J01160 002E 4C28 0163R 111 | BSC L OUT,Z+ NO CMP, BR TO WAIT FOR 212 U2J01170 112 | * * INTRPT ON NEXT WHEEL CHAR U2J01180 0030 74FF 0091R 113 | FC74A MDX L NUM,-1 DO CMP, DECR NUM CTR 2-12 U2J01182 0032 7003 114 | MDX FC75 BR IF CTR NOT = 0 2-12 U2J01184 0033 C059 115 | LD BIN1 SET SCAN COUNTER 2-12 U2J01186 0034 D400 00E2R 116 | STO L CTR48 * = 1 IF CMPLT 2-12 U2J01190 0036 C059 117 | FC75 LD K32 2-10 U2J01192 0037 D0DD 118 | STO PARTM+1 RESET SCAN FIELD ADDR 2-10 U2J01194 0038 D0EA 119 | STO QTEST RESET Q REQ FULL CTR 2-10 U2J01196 0039 C00A 120 | LD NEGWD RESET MODIFIED WD CNT 2-10 U2J01198 003A D054 121 | STO NEGW2 *TO STARTING VALUE 2-10 U2J01200 003B 10A0 122 | SLT 32 CLEAR A & Q 2-11 U2J01203 003C C0CA 123 | LD WHEEL LOAD CHARACTER 2-11 U2J01205 003D 1808 124 | SRA 8 MOVE CHAR TO RT SIDE ACC U2J01210 003E E8C8 125 | OR WHEEL OR CHAR INTO LEFT SIDE U2J01220 003F D0C7 126 | STO WHEEL 2 CHARS NOW AT WHEEL U2J01230 0040 6100 127 | LDX 1 0 RESET CHAR COUNTER 2-10 U2J01235 0041 6D00 0027 128 | STX L1 $SCAN+7 CLEAR THE SCAN CK BIT 2-10 U2J01240 0043 6600 0000 129 | LDX L2 *-* NEG WD CNT TO XR2 2-10 U2J01250 0044R 130 | NEGWD EQU *-1 NEG WD CNT OF MSG 2-10 U2J01255 0045 C600 0000 131 | SCAN LD L2 *-* GET NEXT WD TO BE O/P U2J01260 0047 F0BF 132 | EOR WHEEL CMP W/PRESENT WHEEL CHAR U2J01270 0048 8041 133 | A FF DID LEFT CHAR CMP U2J01280 0049 4C02 004DR 134 | BSC L SCAN1,C NO,BR 2-10 U2J01290 004B 883E 135 | AD BIN2-1 YES,SET 2 BIT IN Q REG U2J01300 004C 7101 136 | MDX 1 1 BUMP CHAR CNT 2-10 U2J01305 004D 1008 137 | SCAN1 SLA 8 DID RT CHAR CMP 2-10 U2J01310 004E 4C20 0052R 138 | BSC L SCANX,Z NO,BR 2-10 U2J01320 0050 883B 139 | AD BIN1-1 YES,SET 1 BIT IN Q REG U2J01330 0051 7101 140 | MDX 1 1 BUMP CHAR CNT 2-10 U2J01335 0052 7201 141 | SCANX MDX 2 1 DECR WD CNT 2-10 U2J01340 0053 70B7 142 | MDX CKLPS IF NOT ZERO,GO DO SHIFT U2J01350 143 | * U2J01360 144 | *WD CNT ZERO, DO FINAL SHIFT AND STORE U2J01370 145 | * U2J01380 0054 C03B 146 | LD K32 RESET CTR THAT TESTS 212 U2J01390 0055 8039 147 | A NEGW2 ADD MODIFIED WD CNT U2J01410 0056 8038 148 | A NEGW2 *TWICE TO SET Q SHIFT U2J01420 0057 D001 149 | STO SETSH+1 *LEFT-JUSTIFIED U2J01430 0058 6600 0000 150 | SETSH LDX L2 *-* SET UP XR2 FOR SLC U2J01440 005A 1810 151 | SRA 16 CLEAR ACC BEFORE SHIFT U2J01450 005B 12C0 152 | SLC 2 COUNT XR2 U2J01460 005C D480 0015R 153 | STO I PARTM+1 STORE FINAL PART OF SCAN U2J01470 005E C400 0027 154 | LD L $SCAN+7 SET SCAN COMPLETE 2-12 U2J01475 0060 E82C 155 | OR BIN1 *INDR 2-12 U2J01476 0061 D400 0027 156 | STO L $SCAN+7 2-12 U2J01478 0063 C07E 157 | LD CTR48 U2J01480 0064 9028 158 | S BIN1 DECR CTR48 U2J01490 0065 D07C 159 | STO CTR48 U2J01500 0066 C07C 160 | LD CTRWD UPDATE THE CHAR CTR 2-10 U2J01510 0067 697C 161 | STX 1 CTRX *TO EQUAL REMAINING 2-10 U2J01520 0068 907B 162 | S CTRX *NUMBER OF CHARS TO BE 2-10 U2J01530 0069 D079 163 | STO CTRWD *PRINTED 2-10 U2J01540 006A 4C00 0163R 164 | BSC L OUT BR TO EXIT INTRPT RTN 2-10 U2J01550 166 | *************************************************** U2J01700 167 | * * U2J01710 168 | *THIS PORTION SERVICES A CALL ENTRANCE * U2J01720 169 | * * U2J01730 170 | *************************************************** U2J01740 006C 69B0 172 | FC10 STX 1 ILLGL+2 ADDR OF CALL+1 STORED U2J01760 006D 6A14 173 | STX 2 FC58+3 SAVE XR2 U2J01770 006E 2814 174 | STS FC58+4 SAVE STATUS U2J01780 006F D898 175 | STD AQ SAVE A AND Q REGS U2J01790 0070 086F 176 | XIO SENSE SENSE PRINTER U2J01800 0071 1005 177 | SLA 5 END OF FORMS TEST U2J01810 0072 4C28 0019R 178 | BSC L ILGL2,+Z IF END, TAKE ERROR EXIT U2J01820 0074 C100 179 | LD 1 0 FETCH 1ST PARAMETER 2-10 U2J01830 0075 188C 180 | SRT 12 WHAT IS THE FUNCTION U2J01840 0076 4820 181 | BSC Z BR IF TEST FUNC U2J01850 0077 701A 182 | MDX FC13 NOT TEST,GO CHK PR OF CTRL U2J01860 0078 0867 183 | XIO SENSE CHK FOR PTR OR CARRIAGE U2J01870 0079 1808 184 | SRA 8 BUSY. U2J01880 007A 4818 185 | BSC +- U2J01890 007B 7101 186 | MDX 1 1 NOT BUSY,EXIT AL CALL+3 U2J01900 007C 7101 187 | MDX 1 1 BUSY, EXIT AT CALL+2 U2J01910 007D C88A 188 | LDD AQ RESTORE A AND Q REGS U2J01920 007E 6906 189 | STXIT STX 1 EXIT+1 SET UP EXIT U2J01930 007F 6500 0000 190 | FC58 LDX L1 *-* RESTORE XR1 U2J01940 0081 6600 0000 191 | LDX L2 *-* RESTORE XR2 U2J01950 0083 2000 192 | LDS *-* RESTORE STATUS U2J01960 0084 4C00 0000 193 | EXIT BSC L *-* EXIT TO MAINLINE U2J01970 194 | * 2-10 U2J01972 195 | *CONSTANTS AND BUFFER AREA 2-10 U2J01974 196 | * 2-10 U2J01976 0086 197 | BSS E 2-10 U2J01978 0086 6000 198 | STRTP DC /6000 END OF FORMS ERROR CODE2-10 U2J01980 0087 3480 199 | DC /3480 START PRINTER IOCC WD 2-10 U2J01982 0088 0030 200 | K48 DC 48 CON TO SET 48 PR CYCLES2-10 U2J01984 201 | * OR 16 IDLE CYCLES. 2-10 U2J01986 0089 000C 202 | K12 DC 12 CON TO SET 2 CYCLES 2-10 U2J01988 008A FF00 203 | FF DC /FF00 SETS CARRY IF NOT CMP 2-10 U2J01990 008B 0002 204 | BIN2 DC 2 SET 1ST CHAR CMP BIT 2-10 U2J01992 008C F000 205 | KNUM DC /F000 USED TO CHK FOR NUMERIC2-12 U2J01994 008D 0001 206 | BIN1 DC 1 SET 2ND CHAR CMP BIT 2-10 U2J01996 008E FFC4 207 | NEG60 DC -60 WD CNT ERROR CHK CON 2-10 U2J01998 008F 0000 208 | NEGW2 DC *-* WD CNT BUFFER USED BY S2-10 U2J02000 0090 0020 209 | K32 DC 32 Q REG FULL CON 2-10 U2J02002 0091 0000 210 | NUM DC *-* PTV=NUMERIC,NEG=ALPHA 2-12 U2J02003 211 | * 2-10 U2J02004 212 | *NOT TEST FUNCTION,CHECK PRINT OR CARRIAGE CTL 2-10 U2J02006 213 | * 2-10 U2J02008 0092 90FA 214 | FC13 S BIN1 IS FUNCTION LEGAL 2-11 U2J02040 0093 4C08 001BR 215 | BSC L ILLGL,+ NO,BR U2J02050 0095 90F5 216 | S BIN2 TEST IF CONTROL U2J02060 0096 4818 217 | BSC +- NOT,SKIP U2J02070 0097 704F 218 | MDX FC20 IS, TO CTRL PROCESSING U2J02080 0098 D04C 219 | STO NIND SAVE TO SET NUMERIC IND2-10 U2J02090 0099 10A0 220 | SLT 32 CLEAR Q REG U2J02100 221 | * U2J02110 222 | *THIS SECTION SETS UP THE ROUTINE TO PRINT U2J02120 223 | * U2J02130 009A 0845 224 | FC14X XIO SENSE ANY RESPONSE,BUSY,OR ERROR U2J02140 009B 1005 225 | SLA 5 IS 1132 READY 2-6 U2J02141 009C 4C10 00A2R 226 | BSC L FC14Y,- BR IF YES 2-6 U2J02142 009E C0E7 227 | LD STRTP LOAD ERROR CODE 2-6 U2J02143 009F 4400 0028 228 | BSI L $PRET BR TO PRE-OP ERROR 2-6 U2J02144 00A1 70F8 229 | MDX FC14X TEST AGAIN 2-6 U2J02145 00A2 083D 230 | FC14Y XIO SENSE SENSE DSW 2-6 U2J02146 00A3 1808 231 | SRA 8 BITS ON. U2J02150 00A4 4C20 009AR 232 | BSC L FC14X,Z YES,SENSE PTR AGAIN U2J02160 00A6 C03E 233 | LD NIND IF PREVIOUS LN NUMERIC 2-10 U2J02170 00A7 4830 234 | BSC Z- *SKIP DOESN'T OCCUR 2-12 U2J02172 00A8 C03D 235 | LD K13 SET NUMERIC CTR 2-12 U2J02174 00A9 D0E7 236 | STO NUM INDR WAS SET OFF WHEN U2J02180 237 | * 1ST NUMERIC CHAR FOUND U2J02190 00AA C100 238 | LD 1 0 LOAD CALL+1 (1ST PARM) 2-11 U2J02193 00AB D034 239 | STO SENSE SAVE CONTROL WORDPARM) 2-11 U2J02195 00AC 7101 240 | MDX 1 1 INCR XR1 TO CALL+2 ADDR U2J02200 00AD 6909 241 | STX 1 FC16+1 ST CALL+2 ADDR U2J02210 00AE 7101 242 | MDX 1 1 INCR XR1 TO CALL+3 ADR 2-11 U2J02220 00AF 6D00 01AER 243 | STX L1 STRE3+6 STORE CALL +6 ADDRESS 212 U2J02230 244 | * 2-10 U2J02250 00B1 188C 245 | SRT 12 GET FUNC DIGIT U2J02260 00B2 906E 246 | S K1 SUB 1 U2J02270 00B3 1802 247 | SRA 2 IF ANY BIT REMAINS, PARAM U2J02280 00B4 4C20 001BR 248 | FC14C BSC L ILLGL,Z WAS OVER 4.TAKE ERROR EXIT U2J02290 00B6 9480 0000 249 | FC16 S I *-* SUB WD CNT FROM ZERO U2J02300 00B8 4C10 001BR 250 | BSC L ILLGL,- RESULT SHOULD BE NEG U2J02310 00BA D089 251 | STO NEGWD SAVE MINUS WD CNT U2J02320 00BB D0D3 252 | STO NEGW2 U2J02330 00BC 90D1 253 | S NEG60 CHECK RANGE AND DISPLAY U2J02340 00BD 4C28 001BR 254 | BSC L ILLGL,+Z *6001 IF ERROR U2J02350 00BF C480 00B7R 255 | LD I FC16+1 LD ADDR OF I/O AREA U2J02360 00C1 805F 256 | A K1 AVOID STORED WD CNT U2J02370 00C2 9400 0044R 257 | S L NEGWD SUB NEG WDCNT-PT TO END2-12 U2J02380 00C4 D081 258 | STO SCAN+1 SAVE IN SCAN RTN U2J02390 00C5 D004 259 | STO TOTL+1 SAVE PRINTABLE CHAR CNT2-10 U2J02392 00C6 10A0 260 | SLT 32 CLEAR Q REG 2-10 U2J02394 00C7 6680 0044R 261 | LDX I2 NEGWD FETCH MSG WD CNT 2-10 U2J02396 00C9 C600 0000 262 | TOTL LD L2 *-* FETCH NEXT CHAR PAIR 2-10 U2J02398 00CB F056 263 | EOR BLANK CHECK FOR BLANK CHARS 2-10 U2J02400 00CC 80BD 264 | A FF IS LEFT CHAR BLANK 2-10 U2J02402 00CD 4802 265 | BSC C YES,SKIP 2-10 U2J02404 00CE 88BD 266 | AD BIN1-1 ADD 1 TO Q REG 2-10 U2J02406 00CF 1008 267 | SLA 8 IS RT BLK 2-10 U2J02408 00D0 4820 268 | BSC Z YES,SKIP 2-10 U2J02410 00D1 88BA 269 | AD BIN1-1 ADD 1 TO Q REG 2-10 U2J02412 00D2 7201 270 | MDX 2 1 SKIP WHEN COMPLETED 2-10 U2J02414 00D3 70F5 271 | MDX TOTL DO NEXT WD 2-10 U2J02416 00D4 18D0 272 | RTE 16 2-10 U2J02418 00D5 D00D 273 | STO CTRWD SAVE PRINTABLE CNT 2-10 U2J02420 00D6 C8B1 274 | LDD K48 SET CTRS 48, 16, +2 U2J02422 00D7 D00A 275 | STO CTR48 *FOR A TOTAL OF 66 CYCLES U2J02425 00D8 D835 276 | STD CTR16 U2J02427 00D9 4400 01BDR 277 | BSI L CLEAR CLEAR SCAN FIELD (32-39) U2J02430 00DB 08AA 278 | XIO STRTP START THE PRINTER U2J02450 00DC 7401 0032 279 | CNTUP MDX L 50,1 INCR ISS CTR (I/O OP CTR) U2J02460 00DE 1000 280 | NOP MAY SKIP U2J02470 00DF 709C 281 | MDX STXIT-2 EXIT TO CALLING PROG U2J02480 282 | * 2-10 U2J02482 00E0 283 | BSS E 0 2-10 U2J02483 00E0 0000 284 | SENSE DC *-* STORAGE FOR CALL +1 2-10 U2J02484 00E1 3700 285 | DC /3700 SENSE PRT IOCC WD 2-10 U2J02485 00E2 0000 286 | CTR48 DC *-* PTR SCAN CNT BUFFER 2-10 U2J02486 00E3 0000 287 | CTRWD DC *-* PRINTABLE CHAR CNT 2-10 U2J02487 00E4 0000 288 | CTRX DC *-* PRINTABLE CHAR THIS LN 2-10 U2J02488 00E5 0000 289 | NIND DC *-* NUMERIC INDICATOR 2-10 U2J02489 00E6 0016 290 | K13 DC 22 CTR IF NUMERIC MODE 2-12 U2J02490 291 | * 2-12 U2J02495 292 | *THIS SECTION DOES THE CARRIAGE CONTROL FUNCTION U2J02500 293 | * PROCESSING U2J02510 294 | * U2J02520 00E7 C026 295 | FC20 LD CTR16 WAIT FOR 16 IDLE SCANS U2J02530 00E8 4830 296 | BSC Z- U2J02540 00E9 70FD 297 | MDX FC20 U2J02550 00EA 08F5 298 | FC20A XIO SENSE U2J02560 00EB 180C 299 | SRA 12 IS THE CARRIAGE BUSY U2J02570 00EC 4C20 00EAR 300 | BSC L FC20A,Z YES,SENSE PTR AGAIN U2J02580 00EE C09A 301 | LD K12 NO, SET 6-CTR FOR CHAN CHK U2J02590 00EF D400 0170R 302 | STO L STOPC 2-12 U2J02600 00F1 1810 303 | SRA 16 CLEAR ACC U2J02610 00F2 1084 304 | SLT 4 GET 2ND HEX DIGIT FROM Q U2J02620 00F3 D02B 305 | STO AFTIN NOT ZERO--IMMEDIATE CTRL U2J02630 306 | * ZERO--CTRL AFTER PRINT U2J02640 00F4 4C20 00F9R 307 | BSC L FC25,Z IS IT ZERO U2J02650 00F6 1084 308 | SLT 4 YES,TRY 3RD HEX DIGIT U2J02660 00F7 4C18 001BR 309 | BSC L ILLGL,+- IS IT ZERO ALSO,ERROR EXIT U2J02670 00F9 908F 310 | FC25 S K12 NO,SUB 12 U2J02680 00FA 4C30 0113R 311 | BSC L FC44,-Z IS THIS A SKIP U2J02690 00FC 6200 312 | LDX 2 0 YES U2J02700 00FD 4C10 0110R 313 | BSC L FC39,- IS IT A SKIP TO CHAN 12 U2J02710 00FF 801C 314 | A K3 NO U2J02720 0100 6201 315 | LDX 2 1 SET XR2 FOR SHIFT & COUNT U2J02730 0101 4C18 0110R 316 | BSC L FC39,+- IS IT CHAN 9 U2J02740 0103 8018 317 | A K3 NO, INCR XR2 U2J02750 0104 7201 318 | MDX 2 1 U2J02760 0105 4C18 0110R 319 | FC38 BSC L FC39,+- TEST FOR NEXT CHANNEL U2J02770 0107 8019 320 | A K1 NO, LOOP & TRY FOR 5,4,3, U2J02780 0108 7201 321 | MDX 2 1 *2,1 U2J02790 0109 74FF 0170R 322 | MDX L STOPC,-1 CTR TO LIMIT LOOPS U2J02800 010B 70F9 323 | MDX FC38 RET TO CHK CHAN U2J02810 010C 70A7 324 | MDX FC14C ILLEGAL CALL-TAKE ERROR U2J02820 325 | * EXIT.(ACC NEG BY NOW) U2J02830 326 | * U2J02840 327 | *CONSTANTS AND BUFFER AREA U2J02850 328 | * U2J02860 010D 0000 329 | DSW DC *-* DVC STATUS WD 2-10 U2J02865 010E 330 | BSS E U2J02870 010E 0000 331 | CTR16 DC *-* CTR FOR 16 IDLE SCANS (48) U2J02880 010F 0000 332 | CTR2 DC *-* CTR FOR 2 IDLE SCANS (12) U2J02890 333 | * U2J02920 334 | *SET UP SKIP MASK,AND EXECUTE SKIP OR EXIT U2J02930 335 | * U2J02940 0110 C010 336 | FC39 LD K1 SET UP BIT FOR SKIP MASK U2J02950 0111 1240 337 | SLCA 2 U2J02960 0112 E859 338 | OR SIGNB SET SIGN BIT ON U2J02970 0113 D00C 339 | FC44 STO SPSK PTV=SPACE, NEG= SKIP U2J02980 0114 C00A 340 | LD AFTIN SHOULD EXECUTION WAIT U2J02990 0115 4C18 007CR 341 | BSC L STXIT-2,+- GO TO EXIT IF YES,ELSE U2J03000 0117 C008 342 | LD SPSK DETERMINE IF SKIP OR SPACE. U2J03010 0118 4C10 011DR 343 | BSC L SPACE,- IS IT A SKIP U2J03020 011A 0807 344 | XIO STRTC YES,START CARRIAGE U2J03030 011B 70C0 345 | MDX CNTUP GO INCR ISS CTR, RET U2J03040 011C 0003 346 | K3 DC 3 CON OF 3 U2J03050 347 | * U2J03060 348 | *SPACE CARRIAGE CONTROL PROCESSING U2J03070 349 | * U2J03080 011D 0850 350 | SPACE XIO CARSP START SPACES THAT INTRPT U2J03090 351 | * *SERVICE PART WILL FINISH U2J03100 011E 70BD 352 | MDX CNTUP INCR ISS CTR, RET TO USER U2J03110 353 | * U2J03120 354 | *CONSTANTS AND BUFFER AREA U2J03130 355 | * U2J03140 011F 0000 356 | AFTIN DC *-* CTRL BEFORE OR AFTER PR U2J03150 0120 0000 357 | SPSK DC *-* SKIP OR SPACE INDR 2-10 U2J03155 0121 0001 358 | K1 DC 1 CON OF 1 2-10 U2J03157 0122 359 | BSS E U2J03160 0122 4040 360 | STRTC DC /4040 BLK CHAR FOR COMPARE 2-10 U2J03170 0123 3404 361 | DC /3404 START CARRIAGE U2J03180 0122R 362 | BLANK EQU *-2 BLK CHARS 2-10 U2J03190 364 | *************************************************** U2J03210 365 | * * U2J03220 366 | * THIS SECTION SERVICES THE INTERRUPTS WHICH * U2J03230 367 | * OCCUR ON INTERRUPT LEVEL 01, THAT COME FROM * U2J03240 368 | * THE 1132 PRINTER. * U2J03250 369 | * * U2J03260 370 | *************************************************** U2J03270 0124 6A3F 372 | FC50 STX 2 OUT+1 SAVE XR2 U2J03280 0125 6940 373 | STX 1 OUT+3 SAVE XR1 2-10 U2J03285 0126 0C00 01BAR 374 | XIO L SENSR-1 SENSE WITH RESET 2-12 U2J03290 0128 D0E4 375 | STO DSW HOLD DSW U2J03300 0129 1001 376 | SLA 1 IS IT A SKIP REQUEST U2J03310 012A 4C10 013AR 377 | BSC L FC56,- NO,BR TO CONT CHK U2J03320 012C 1007 378 | SLA 7 YES,GET CARRIAGE CHAN NO. U2J03330 012D 1808 379 | SRA 8 RIGHT JUSTIFY U2J03340 012E E83D 380 | OR SIGNB SET UP DSW FOR COMPARE U2J03350 012F F0F0 381 | EOR SPSK CMP W/COMMAND U2J03360 0130 4820 382 | BSC Z DO THEY MATCH U2J03370 0131 7019 383 | MDX FC60 NO,GO CONT CHK U2J03380 0132 D400 007F 384 | STO L $1132 ZERO SYSTEM 1132 INDR 2-12 U2J03385 0134 D0EB 385 | STO SPSK CLEAR MASK U2J03400 0135 083A 386 | XIO STOPC STOP CARRIAGE U2J03410 0136 74FF 0032 387 | FC54 MDX L 50,-1 DECR ISS CTR U2J03420 0138 1000 388 | NOP MAY SKIP U2J03430 0139 7011 389 | MDX FC60 CONTINUE U2J03440 391 | *************************************************** U2J03444 392 | * * U2J03450 393 | *THIS SECTION SERVICES CARRIAGE RESPONSE REQUESTS * U2J03460 394 | * * U2J03470 395 | *************************************************** U2J03472 013A 1001 397 | FC56 SLA 1 IS IT A SPACE REQUES U2J03480 013B 4810 398 | BSC - IS CARR SPACE DONE U2J03490 013C 700E 399 | MDX FC60 NO U2J03500 013D C0CF 400 | LD DSW YES,GET DSW U2J03510 013E EC00 007F 401 | OR L $1132 OR IN SYSTEM INDICATOR 2-12 U2J03512 0140 4C04 0143R 402 | BSC L *+1,E SKIP IF CHANNEL 12 ONR 2-12 U2J03514 0142 7002 403 | MDX *+2 NO CHANNEL 12 BIT ON 2-12 U2J03516 0143 D400 007F 404 | STO L $1132 SET SYSTEM INDICATOR 2-12 U2J03518 405 | * *FOR CHANNEL 12 FOUND 2-12 U2J03519 0145 C0DA 406 | LD SPSK U2J03540 0146 90DA 407 | S K1 DECR SPACE CNT U2J03550 0147 D0D8 408 | STO SPSK STORE BACK NEW CNT U2J03560 0148 4C08 0136R 409 | BSC L FC54,+ DECR ISS CTR+EXIT IF ZERO, U2J03570 014A 0823 410 | XIO CARSP *ELSE KEEP SPACING U2J03580 411 | * U2J03590 412 | *CONTINUE CHK IF NOT SKIP OR SPACE REQUEST U2J03600 413 | * U2J03610 014B C0C1 414 | FC60 LD DSW PUT DSW IN PASS U2J03620 014C 4C10 0163R 415 | BSC L OUT,- IS 11.2 MS PTR INTPRT BIT=1 U2J03650 014E C06D 416 | LD CTR46 YES,CHK IF DOING 47 IDLES U2J03660 014F 4C20 0169R 417 | BSC L FC63,Z YES,GO DECR CNT AND EXIT U2J03670 0151 406B 418 | BSI CLEAR CLEAR SCAN FIELD 2-10 U2J03674 0152 C0BA 419 | LD DSW NO U2J03680 0153 1004 420 | SLA 4 DID PRESENT SCAN FINISH U2J03690 0154 4C10 0172R 421 | BSC L FC70,- YES,BR U2J03700 0156 C400 00E3R 422 | LD L CTRWD RESTORE PREVIOUS 2-12 U2J03702 0158 8400 00E4R 423 | A L CTRX *CHARACTER COUNT 2-12 U2J03704 015A D400 00E3R 424 | STO L CTRWD *FOR REMAINING CHARS 2-12 U2J03706 015C C05D 425 | LD K46 NO, SET UP FOR IDLES U2J03710 015D D05E 426 | STO CTR46 U2J03720 015E C400 0027 427 | LD L $SCAN+7 SET SCAN COMPLETE 2-12 U2J03740 0160 E8C0 428 | OR K1 *INDICATOR 2-12 U2J03742 0161 D400 0027 429 | STO L $SCAN+7 2-12 U2J03744 0163 6600 0000 430 | OUT LDX L2 *-* RESTORE XR2 U2J03750 0165 6500 0000 431 | LDX L1 *-* RESTORE XR1 2-10 U2J03755 0167 4C80 0004R 432 | BSC I INT1 TO USER VIA ILS SUBR U2J03760 433 | * U2J03770 434 | *IF INCOMPLETE SCAN OCCURRED, DO 47 IDLES TO GET U2J03780 435 | *THE PRINT WHEEL BACK TO TRY SAME CHAR AGAIN. U2J03790 436 | * U2J03800 0169 90B7 437 | FC63 S K1 DECR CTR46 U2J03810 016A D051 438 | STO CTR46 U2J03820 016B 70F7 439 | MDX OUT EXIT VIA ILS 01. U2J03830 440 | * U2J03840 441 | *CONSTANTS AND BUFFER AREA U2J03850 442 | * U2J03860 016C 8000 443 | SIGNB DC /8000 SIGN BIT U2J03870 016E 444 | BSS E U2J03880 016E 8080 445 | CARSP DC /8080 STG FOR CHAN 1 MASK CON U2J03890 016F 3401 446 | DC /3401 CARRIAGE SPACE IOCC U2J03900 0170 0000 447 | STOPC DC *-* CTR TO LIMIT LOOPS-CHAN CHK U2J03910 0171 3402 448 | DC /3402 STOP CARRIAGE IOCC U2J03920 449 | * U2J03930 450 | *BEGIN PRINT MASK SET UP U2J03940 451 | * U2J03950 0172 CC00 00E2R 452 | FC70 LDD L CTR48 ANY UNPRNTED CHARS 2-10 U2J03960 0174 4820 453 | BSC Z BR IF 48 SCANS COMPLETE2-10 U2J03970 0175 18D0 454 | RTE 16 CK IF CHARS ALL PRT 2-10 U2J03980 0176 4C30 0026R 455 | BSC L EMIT,-Z NO,BRCH 2-11 U2J03990 456 | * 2-10 U2J04000 0178 C095 457 | LD CTR16 ARE IDLE CYCLES DONE U2J04010 0179 4C20 0183R 458 | BSC L FC81,Z NO,GO DECR IDLE CNT U2J04020 017B 74FA 010FR 459 | MDX L CTR2,-6 DECR 2-CTR U2J04040 017D 70E5 460 | MDX OUT TO USER IF NOT ZERO YET U2J04050 017E 0839 461 | XIO STOPP IF ZERO,CUT OFF INTRPTS U2J04060 017F 74FF 0032 462 | MDX L 50,-1 DECR LOC 50 U2J04070 0181 70E1 463 | MDX OUT TO USER U2J04080 0182 70E0 464 | MDX OUT TO USER IF SKIP U2J04090 465 | * U2J04100 466 | *TAKE CARE OF 16 IDLES CNT AFTER PRINT COMPLETE U2J04110 467 | * U2J04120 0183 74FD 010ER 468 | FC81 MDX L CTR16,-3 DECR IDLE CNT FOR 1 IDLE U2J04130 0185 70DD 469 | MDX OUT EXIT IF NOT DONE U2J04140 0186 C099 470 | LD SPSK DONE,GET SPACE/SKIP INDR U2J04150 0187 4C20 018FR 471 | BSC L FC91,Z IS POST-PR SPACE/SKIP ASKED U2J04160 0189 C400 00E0R 472 | LD L SENSE NO, GET THE CONTROL WORD U2J04170 018B 100B 473 | SLA 11 ALL ZERO IF SPACE 1 LINE U2J04180 018C 180F 474 | SRA 15 ALL ONES IF SUPPRESS SPACE U2J04190 018D F093 475 | EOR K1 CHANGE 0 TO 1-1 TO 0 2-11 U2J04200 018E D091 476 | STO SPSK PTV--SET SPACE.NEG--INHIBIT U2J04210 477 | * U2J04220 478 | *THIS SECTION SETS UP THE SPACE OR SKIP AFTER PRINT U2J04230 479 | * U2J04240 018F D400 011FR 480 | FC91 STO L AFTIN SET INDR OFF (+ OR -) 2-12 U2J04250 0191 C400 007F 481 | LD L $1132 SYSTEM CHANNEL 12 INDR 212 U2J04265 0193 4C04 01A3R 482 | BSC L STRE4,E IF ODD,CHAN 12 WAS PASSED U2J04270 0195 1801 483 | SRA 1 U2J04280 0196 4C04 01A8R 484 | BSC L STRE3,E IF ODD,CHAN 9 WAS PASSED U2J04290 0198 C400 0120R 485 | FC84 LD L SPSK IF 9/12 NOT FOUND,START2-12 U2J04300 019A 4818 486 | BSC +- AFTER SPACE/SKIP IF PRESENT U2J04310 019B 70C7 487 | MDX OUT TO USER IF NO SPACE/SKIP U2J04320 019C 4C28 01B4R 488 | BSC L FC86,+Z IS A SPACE CALLED FOR U2J04330 019E 08CF 489 | XIO CARSP YES,START THE CARRIAGE U2J04340 019F 7401 0032 490 | UP7 MDX L 50,1 INCR THE ISS CTR U2J04350 01A1 1000 491 | NOP MAY SKIP U2J04360 01A2 70C0 492 | MDX OUT EXIT TO USER U2J04370 494 | *************************************************** U2J04374 495 | * * U2J04376 496 | *A SKIP TO CHANNEL 9 OR CHANNEL 12 IS INDICATED. * U2J04378 497 | * ZERO THE SYSTEM CHANNEL 12 INDICATOR ($1132) * U2J04380 498 | * AND BRANCH TO THE USER'S ERROR ROUTINE. LOAD * U2J04382 499 | * ACCUMULATOR WITH A /0003 FOR A SKIP TO CHAN- * U2J04384 500 | * NEL 9 OR WITH A /0004 FOR A SKIP TO CHANNEL 12* U2J04386 501 | * * U2J04387 502 | *************************************************** U2J04388 01A3 1010 504 | STRE4 SLA 16 ZERO ACCUMULATOR AND 212 U2J04390 01A4 D400 007F 505 | STO L $1132 STORE IN CH 12 INDR 212 U2J04392 01A6 C011 506 | LD STOPP LOAD CONSTANT OF 4 212 U2J04394 01A7 7005 507 | MDX STRE3+5 GO TO USER ERROR RTN 212 U2J04400 01A8 1010 508 | STRE3 SLA 16 ZERO ACCUMULATOR AND 212 U2J04410 01A9 D400 007F 509 | STO L $1132 *STORE IN CH 12 INDR 212 U2J04412 01AB C400 011CR 510 | LD L K3 LOAD CONSTANT OF 3 212 U2J04414 01AD 4480 0000 511 | BSI I *-* GO TO USER ERROR RTN U2J04420 01AF 4C18 0198R 512 | BSC L FC84,+- TAKE NO ACTION IF CLEARED, U2J04430 01B1 C0BC 513 | LD CARSP ELSE SET UP SKIP TO CHAN 1 U2J04440 01B2 D400 0120R 514 | STO L SPSK 2-12 U2J04450 01B4 0C00 0122R 515 | FC86 XIO L STRTC START CARRIAGE 2-12 U2J04460 01B6 70E8 516 | MDX UP7 GO INCR ISS CTR,EXIT U2J04470 517 | * U2J04480 518 | *CONSTANTS AND BUFFER AREA U2J04490 519 | * U2J04500 01B8 520 | BSS E U2J04520 01B8 0004 521 | STOPP DC 4 ERROR CODE FOR CHAN 12 PASS U2J04530 01B9 3440 522 | DC /3440 STOP PRINTER IOCC U2J04540 01BA 002E 523 | K46 DC 46 CTR CON FOR 47 IDLES U2J04550 01BB 3701 524 | SENSR DC /3701 SENSE W/RESET IOCC U2J04560 01BC 0000 525 | CTR46 DC 0 CTR FOR IDLES U2J04570 526 | * U2J04590 527 | *THIS SECTION CLEARS THE PRINT SCAN FIELD (32-39) U2J04600 528 | * U2J04610 01BD 0000 529 | CLEAR DC *-* SAVE RET ADDR U2J04620 01BE 10A0 530 | SLT 32 CLEAR A AND Q REGS U2J04630 01BF 62F8 531 | LDX 2 -8 SET CTR FOR 4 PASSES U2J04640 01C0 DE00 0028 532 | CL2 STD L2 40 CLEAR 2 WDS U2J04650 01C2 7202 533 | MDX 2 2 DECR XR2 BY 2 U2J04660 01C3 70FC 534 | MDX CL2 RET IF NOT ZERO U2J04670 01C4 7401 0027 535 | MDX L $SCAN+7,1 SET SCAN CMPLT INDR 2-12 U2J04675 01C6 4C80 01BDR 536 | BSC I CLEAR RET U2J04680 01C8 537 | END U2J04690 There were no errors in this assembly === CROSS REFERENCES ========================================================== Name Val Defd Referenced $1132 007F 96 384 401 404 481 505 509 $PRET 0028 94 228 $SCAN 0020 95 128 154 156 427 429 535 AFTIN 011FR 356 305 340 480 AQ 0008R 60 175 188 BIN1 008DR 206 115 139 155 158 214 266 269 BIN2 008BR 204 135 216 BLANK 0122R 362 263 CARSP 016ER 445 350 410 489 513 CKLPS 000BR 68 142 CL2 01C0R 532 534 CLEAR 01BDR 529 277 418 536 CNTUP 00DCR 279 345 352 CTR16 010ER 331 276 295 457 468 CTR2 010FR 332 459 CTR46 01BCR 525 416 426 438 CTR48 00E2R 286 116 157 159 275 452 CTRWD 00E3R 287 160 163 273 422 424 CTRX 00E4R 288 161 162 423 DSW 010DR 329 375 400 414 419 EMIT 0026R 105 455 EXIT 0084R 193 189 FC10 006CR 172 52 FC13 0092R 214 182 FC14C 00B4R 248 324 FC14X 009AR 224 229 232 FC14Y 00A2R 230 226 FC16 00B6R 249 241 255 FC20 00E7R 295 218 297 FC20A 00EAR 298 300 FC25 00F9R 310 307 FC38 0105R 319 323 FC39 0110R 336 313 316 319 FC44 0113R 339 311 FC50 0124R 372 54 FC54 0136R 387 409 FC56 013AR 397 377 FC58 007FR 190 50 173 174 FC60 014BR 414 383 389 399 FC63 0169R 437 417 FC70 0172R 452 421 FC74A 0030R 113 109 FC75 0036R 117 107 114 FC81 0183R 468 458 FC84 0198R 485 512 FC86 01B4R 515 488 FC91 018FR 480 471 FF 008AR 203 133 264 H6001 000AR 62 85 ILGL2 0019R 80 178 ILLGL 001BR 85 81 172 215 248 250 254 309 INT1 0004R 53 432 K1 0121R 358 246 256 320 336 407 428 437 475 K12 0089R 202 301 310 K13 00E6R 290 235 K3 011CR 346 314 317 510 K32 0090R 209 117 146 K46 01BAR 523 425 K48 0088R 200 274 KNUM 008CR 205 110 NEG60 008ER 207 253 NEGW2 008FR 208 73 121 147 148 252 NEGWD 0044R 130 120 251 257 261 NIND 00E5R 289 219 233 NUM 0091R 210 106 113 236 OUT 0163R 430 111 164 372 373 415 439 460 463 464 469 487 492 PARTM 0014R 74 75 118 153 PRNT1 0000R 50 QTEST 0023R 97 69 72 119 READE 0024R 99 105 SCAN 0045R 131 70 76 258 SCAN1 004DR 137 134 SCANX 0052R 141 138 SENSE 00E0R 284 176 183 224 230 239 298 472 SENSR 01BBR 524 374 SETSH 0058R 150 149 SIGNB 016CR 443 338 380 SPACE 011DR 350 343 SPSK 0120R 357 339 342 381 385 406 408 470 476 485 514 STOPC 0170R 447 302 322 386 STOPP 01B8R 521 461 506 STRE3 01A8R 508 243 484 507 STRE4 01A3R 504 482 STRTC 0122R 360 344 515 STRTP 0086R 198 80 227 278 STXIT 007ER 189 90 281 341 TOTL 00C9R 262 259 271 UP7 019FR 490 516 WHEEL 0007R 58 99 108 123 125 126 132