ASM1130 CROSS ASSEMBLER V1.22 -- V2M12 -- Sun Nov 1 19:25:09 2020 Source File: \u2ompr1.asm OMPR1,LIBRARY SUBROUTINE FOR 1231 2 | *************************************************** U2C00020 3 | *STATUS - VERSION 2, MODIFICATION LEVEL 12 * U2C00030 4 | * * U2C00040 5 | *TITLE-OMPR1,LIBRARY SUBROUTINE FOR 1231 OPTICAL * U2C00050 6 | * MARK PAGE READER * U2C00060 7 | * * U2C00070 8 | *FUNCTION/OPERATION- * U2C00080 9 | * THIS IS A SUBROUTINE FOR THE 1130 DISK * U2C00090 10 | *MONITOR SUBROUTINE LIBRARY.THIS SUBROUTINE * U2C00100 11 | *SUPPORTS THE 1231 OPTICAL MARK PAGE READER.IT * U2C00110 12 | *HANDLES THE READING OF 8 1/2 X 11 PAPER DOCUMENTS* U2C00120 13 | *BY THE 1231. FUNCTIONS PERFORMED ARE-TEST FOR * U2C00130 14 | *ROUTINE BUSY,READ,FEED,STACKER SELECT AND * U2C00140 15 | *DISCONNECT.IN GENERAL THIS SUBR.CONSISTS OF * U2C00150 16 | *TWO SECTIONS- A CALL PORTION AND AN INTERRUPT * U2C00160 17 | *PORTION. IN THE CALL PORTION THE FUNCTION IS * U2C00170 18 | *ANALYZED AND THE APPROPRIATE OPERATION(S) * U2C00180 19 | *INITIATED. IN THE INTERRUPT PORTION THE VARIOUS * U2C00190 20 | *INTERRUPTS ARE ANALYZED AND SERVICED. * U2C00200 21 | * * U2C00210 22 | *ENTRY POINTS- * U2C00220 23 | * * U2C00230 24 | * 1.OMPR1,THIS IS ENTRY FOR CALL PORTION, * U2C00240 25 | * CALLING SEQUENCE IS THE STANDARD 1130 SUBR* U2C00250 26 | * LIBRARY LIBF STATEMENT.FOR A READ FUNCTION* U2C00260 27 | * IT IS- * U2C00270 28 | * LIBF OMPR1 * U2C00280 29 | * DC /1000 (CONTROL PARAMETER) * U2C00290 30 | * DC AREA (ADDRESS OF I/O AREA) * U2C00300 31 | * DC ERROR (ADDR.OF USERS ERROR ROUTINE)* U2C00310 32 | * * U2C00320 33 | * 2.INT1,THIS IS THE INTERRUPT ENTRANCE FROM * U2C00330 34 | * THE SYSTEM ILS04 ROUTINE * U2C00340 35 | * * U2C00350 36 | *INPUT- NOT APPLICABLE * U2C00360 37 | * * U2C00370 38 | *OUTPUT- THE SUBROUTINE READS WORDS FROM A PAPER * U2C00380 39 | * DOCUMENT AND PLACES AN IMAGE OF EACH SEGMENT* U2C00390 40 | * (OR TWO SEGMENTS)INTO CONTIGUOUS MEMORY * U2C00400 41 | * LOCATIONS STARTING AT THE ADDRESS SPECIFIED * U2C00410 42 | * BY THE USERS I/O AREA PARAMETER * U2C00420 43 | * * U2C00430 44 | *EXTERNAL ROUTINES-NONE * U2C00440 45 | * * U2C00450 46 | *EXITS- NORMAL * U2C00460 47 | * 1.CALL PORTION--MPR59,BACK TO USER PROGRAM * U2C00470 48 | * * U2C00480 49 | * 2.INTERRUPT PORTION-- EXIT,BACK TO ILS SUBR * U2C00490 50 | * * U2C00500 51 | * - ERROR * U2C00510 52 | * 1.CALL PORTION--1.MPR70,2.MPR72.PREOPERATIVE* U2C00520 53 | * ERROR EXITS TO $PRET * U2C00530 54 | * 2.INTRPT PORTION--MPR84,TO USERS ERROR SUBR * U2C00540 55 | * $PST4,POST-OPERATIVE ERROR TRAP* U2C00550 56 | *TABLES,WORK AREAS-NONE * U2C00560 57 | *ATTRIBUTES-REUSABLE * U2C00570 58 | *NOTES- * U2C00580 59 | *************************************************** U2C00590 60 | LIBR U2C00600 0000 61 | 1130 ISS 10 OMPR1 4 U2C00610 62 | * U2C00620 63 | * LOADER REQUIRED INSTRUCTIONS U2C00630 64 | * U2C00640 0000 6906 65 | OMPR1 STX 1 SAVX1 WORD TO SAVE XR1 U2C00650 0001 6580 0000 66 | LDX I1 0 LOADER STORES TV ADDRESS U2C00660 0003 7006 67 | MDX MPR10 GO START CALL PROCESSING U2C00670 68 | * U2C00680 0004 0000 69 | INT1 DC 0 INTERRUPT ENTRANCE U2C00690 0005 4C00 00D0R 70 | BSC L MPR80 TO INTERRUPT SERVICE SUBR U2C00700 71 | * U2C00710 0007 0000 72 | SAVX1 DC *-* WORD TO SAVE XR1 U2C00720 0008 0000 0000 73 | SAVAQ DEC 0 2 WORDS FOR ACC AND EXT U2C00730 74 | * U2C00740 75 | * HERE STARTS CALL PORTION OF OMPR1 U2C00750 76 | * U2C00760 000A 6E00 009CR 77 | MPR10 STX L2 MPR56+1 SAVE XR2 U2C00770 000C 6600 00BCR 78 | LDX L2 Z SET TRANSFER VECTOR 2-3 U2C00780 000E 2AE1 79 | STS 2 MPR58-Z SAVE STATUS U2C00790 000F D8F8 80 | STD SAVAQ SAVE ACC AND EXTENSION U2C00800 81 | * U2C00810 82 | * CHECK IF IT IS A TEST FUNCTION U2C00820 83 | * U2C00830 0010 C100 84 | MPR12 LD 1 0 LOAD CONTROL PARAMETER U2C00840 0011 4C18 0020R 85 | BSC L MPR15,+- BR IF TEST FUNCTION U2C00850 86 | * U2C00860 0013 92F2 87 | S 2 D1-Z CHECK IF IT IS A TIMING U2C00870 0014 4C20 0024R 88 | BSC L MPR20,Z *MARK TEST FUNC, NO, GO U2C00880 89 | * U2C00890 90 | * TIMING MARK TEST FUNCTION U2C00900 91 | * U2C00910 0016 7400 00B4R 92 | MDX L BUSY,0 IS ROUTINE BUSY 2-6 U2C00920 0018 7003 93 | MDX PLUS2 YES - EXIT TO LIBF+2 2-6 U2C00930 0019 0AF8 94 | XIO 2 SENSE-Z SENSE DSW 2-3 U2C00940 001A 1008 95 | SLA 8 IS TIMING MRK CHCK BSY 2-3 U2C00950 001B 4828 96 | BSC +Z NO,EXIT TO LIBF+3 U2C00960 97 | * U2C00970 001C 71FF 98 | PLUS2 MDX 1 -1 YES,EXIT TO LIBF+2 U2C00980 001D 71FF 99 | PLUS3 MDX 1 -1 SET UP FOR LIBF+3 U2C00990 001E 4C00 0095R 100 | BSC L MPR50 WRAP-UP PRIOR TO EXIT U2C01000 101 | * U2C01010 102 | * TEST FUNCTION U2C01020 103 | * U2C01030 0020 7400 00B4R 104 | MPR15 MDX L BUSY,0 IS ROUTINE BUSY U2C01040 0022 70F9 105 | MDX PLUS2 YES,LIBF+2 U2C01050 0023 70F9 106 | MDX PLUS3 NO,LIBF+3 U2C01060 107 | * U2C01070 108 | * DETERMINE IF FUNCTION IS LEGAL U2C01080 109 | * U2C01090 0024 C100 110 | MPR20 LD 1 0 LOAD CONTROL PARAMETER U2C01100 0025 188C 111 | SRT 12 RT-JUSTIFY FUNCTION CODE U2C01110 0026 4C28 00C7R 112 | BSC L MPR70,+Z BRANCH IF DIGIT IS 8-F U2C01120 0028 92FA 113 | S 2 D2-Z ERROR IF FUNCTION U2C01130 0029 4C18 00C7R 114 | BSC L MPR70,+- *CODE IS 2 U2C01140 002B 92F2 115 | S 2 D1-Z U2C01150 002C D2F6 116 | STO 2 MPR62-Z SAVE FUNCTION U2C01160 002D 4C08 0044R 117 | BSC L MPR30,+ BRANCH IF FEED OR READ U2C01170 002F 92F2 118 | S 2 D1-Z CHK IF FUNC IS DISCONNECT U2C01180 0030 4C20 0068R 119 | BSC L MPR35,Z NO,GO CHK STKR SEL FUNC U2C01190 0032 4001 120 | BSI MPR25 YES,DISCONNECT 2-3 U2C01200 0033 70E8 121 | MDX PLUS2 EXIT TO LIBF+2 U2C01210 122 | * U2C01220 123 | * DISCONNECT SUBROUTINE U2C01230 124 | * U2C01240 0034 0000 125 | MPR25 DC *-* ENTRY 2-3 U2C01250 0035 42E4 126 | BSI 2 MPR48-Z LOOP ON FEED BUSY 2-6 U2C01260 0036 087B 127 | XIO DSCNT DISCONNECT 2-6 U2C01270 0037 C209 128 | LD 2 IOCT-Z IS IOCT SWITCH SET 2-6 U2C01280 0038 4C18 003ER 129 | BSC L MPR29,+- BRANCH IF NO 2-6 U2C01290 003A 74FF 0032 130 | MDX L $IOCT,-1 DECREMENT $IOCT 2-6 U2C01300 003C 1000 131 | NOP 2-6 U2C01310 003D 1010 132 | SLA 16 CLEAR 2-6 U2C01320 003E D2F8 133 | MPR29 STO 2 BUSY-Z *BUSY INDICATOR 2-6 U2C01330 003F D206 134 | STO 2 MPR67-Z *INTERRUPT SWITCH 2-6 U2C01340 0040 D207 135 | STO 2 MPR68-Z *FEED INDICATOR 2-6 U2C01350 0041 D209 136 | STO 2 IOCT-Z *IOCT SWITCH 2-6 U2C01360 0042 4C80 0034R 137 | BSC I MPR25 RETURN 2-3 U2C01370 138 | * U2C01380 139 | * READ OR FEED FUNCTION U2C01390 140 | * U2C01400 0044 4810 141 | MPR30 BSC - SKIP IF READ FUNCTION U2C01410 0045 7033 142 | MDX MPR40 GO HANDLE FEED FUNCTION U2C01420 143 | * U2C01430 144 | *CHECK IF A FEED HAS ALREADY BEEN PERFORMED FOR U2C01440 145 | *THIS DOCUMENT,SIGNIFIED BY MPR68=1,IF MPR68=0,IT U2C01450 146 | *MEANS A FEED HAS NOT YET BEEN INITIATED FOR THIS U2C01460 147 | *READ FUNCTION. U2C01470 148 | * U2C01480 0046 7400 00C3R 149 | MDX L MPR68,0 IS FEED IND. SET U2C01490 0048 7007 150 | MDX MPR31 YES - BRANCH U2C01500 0049 7400 00B4R 151 | MDX L BUSY,0 NO - LOOP ON U2C01510 004B 70FD 152 | MDX *-3 ROUTINE BUSY U2C01520 004C C101 153 | LD 1 +1 STORE ADDR.OF I/O U2C01530 004D D062 154 | STO READ AREA IN READ IOCC U2C01540 004E D05D 155 | STO MPR60 SAVE I/O AREA ADDR U2C01550 004F 7030 156 | MDX MPR42 GO CHECK DEVICE READY U2C01560 157 | * U2C01570 0050 C067 158 | MPR31 LD MPR64 LOOP TILL THE FIRST CHAR. U2C01580 0051 4C18 0050R 159 | BSC L *-3,+- INTRPT IS RECEIVED 2-3 U2C01590 0053 1810 160 | SRA 16 CLEAR FEED U2C01600 0054 D06E 161 | STO MPR68 INDICATOR U2C01610 0055 C06C 162 | LD MPR67 EXIT IF AN ERROR 2-8 U2C01620 0056 4C18 0095R 163 | BSC L MPR50,+- *HAS OCCURRED 2-8 U2C01630 164 | * U2C01640 0058 C068 165 | LD MPR66 IS THIS A MASTER MARK U2C01650 0059 4C20 005ER 166 | BSC L MPR32,Z DOCUMENT,YES,GOTO MPR32 U2C01660 005B C101 167 | LD 1 +1 NO,STORE USERS I/O AREA U2C01670 005C D053 168 | STO READ IN READ IOCC. U2C01680 005D D04E 169 | STO MPR60 SAVE I/O AREA ADDR. 2-3 U2C01690 005E 6866 170 | MPR32 STX IOCT SET IOCT SWITCH 2-10 U2C01693 005F 7401 0032 171 | MDX L $IOCT,1 INCREMENT $IOCT 2-10 U2C01696 0061 084E 172 | XIO READ READ THE FIRST CHARACTER U2C01700 0062 C04D 173 | LD READ UPDATE I/O ADDRESS U2C01710 0063 804A 174 | A D1 FOR NEXT U2C01720 0064 D04B 175 | STO READ CHARACTER U2C01730 0065 7029 176 | MDX MPR44 GO CHK FOR STACKER SELECT U2C01760 177 | * U2C01770 178 | *USER HAS GIVEN 2 FEEDS WITHOUT AN INTERVENING U2C01780 179 | *READ FUNCTION--RUN OUT THE U2C01790 180 | *CURRENT DOCUMENT,DO AN I/O DISCONNECT U2C01800 181 | * U2C01810 0066 40CD 182 | MPR33 BSI MPR25 DISCONNECT 2-3 U2C01820 0067 7017 183 | MDX MPR41 BRANCH TO START FEED 2-6 U2C01830 184 | * U2C01840 185 | * CHECK IF STACKER SELECT FUNCTION U2C01850 186 | * U2C01860 0068 9045 187 | MPR35 S D1 IS FUNC STK SEL U2C01870 0069 4C20 00C7R 188 | BSC L MPR70,Z ILLEGAL FUNC. U2C01880 006B 4001 189 | BSI MPR36 YES - STK SEL 2-3 U2C01890 006C 70AF 190 | MDX PLUS2 EXIT U2C01900 191 | * U2C01910 192 | * STACKER SELECT SUBROUTINE U2C01920 193 | * U2C01930 006D 0000 194 | MPR36 DC *-* ENTRY 2-3 U2C01940 006E C208 195 | LD 2 MPR69-Z IS DOC ALREADY SEL 2-3 U2C01950 006F 4C20 0077R 196 | BSC L MPR39,Z YES - RETURN 2-3 U2C01960 0071 42E4 197 | BSI 2 MPR48-Z LOOP ON FEED BUSY 2-3 U2C01970 0072 0AF8 198 | XIO 2 SENSE-Z SENSE DSW 2-3 U2C01980 0073 1005 199 | SLA 5 IS IT OK TO SEL 2-3 U2C01990 0074 4828 200 | BSC +Z NO - SKIP 2-3 U2C02000 0075 0AFA 201 | XIO 2 STKSL-Z YES - STK SEL 2-3 U2C02010 0076 684D 202 | STX MPR69 SET SELECT SWITCH 2-3 U2C02020 0077 4C80 006DR 203 | MPR39 BSC I MPR36 RETURN 2-3 U2C02030 204 | * U2C02040 205 | * FEED FUNCTION U2C02050 206 | * U2C02060 207 | *************************************************** U2C02070 208 | *CHECK IF FEED FLAG IS ALREADY SET,IF SO,IT MEANS * U2C02080 209 | *WE HAVE 2 FEED CALLS WITHOUT AN INTERVENING READ.* U2C02090 210 | *IN A CASE LIKE THIS,WE RUN-OUT THE FIRST DOCUMENT* U2C02100 211 | *BY MEANS OF AN I/O DISCONNECT * U2C02110 212 | *************************************************** U2C02120 0079 C049 213 | MPR40 LD MPR68 IF FEED IND IS ON - GO U2C02130 007A 4C20 0066R 214 | BSC L MPR33,Z *DISCONNECT CURRENT DOC U2C02140 215 | * U2C02150 007C 7400 00B4R 216 | MDX L BUSY,0 LOOP ON PROGRAM BUSY U2C02160 007E 70FD 217 | MDX *-3 *INDICATOR U2C02170 218 | * U2C02180 007F 6843 219 | MPR41 STX MPR68 SET FEED INDICATOR U2C02190 0080 C031 220 | MPR42 LD MPR62 IS FUNCTION FEED(MPR62=0) U2C02200 0081 D036 221 | STO MPR64 RESET FIRST-CHAR-INTRPT SW U2C02210 0082 0AF8 222 | MPR43 XIO 2 SENSE-Z SENSE DSW AND EXIT TO 2-7 U2C02220 0083 4C04 00CCR 223 | BSC L MPR72,E *$PRET IF NOT READY 2-7 U2C02230 0085 682E 224 | STX BUSY SET BUSY INDICATOR 2-7 U2C02240 0086 683E 225 | STX IOCT SET IOCT SWITCH 2-7 U2C02250 0087 7401 0032 226 | MDX L $IOCT,1 INCREMENT IOCS COUNTER 2-7 U2C02260 0089 0824 227 | XIO CNTRL INITIATE A FEED U2C02270 008A 1810 228 | SRA 16 2-3 U2C02280 008B D208 229 | STO 2 MPR69-Z CLEAR SELECT SW. 2-3 U2C02290 008C C025 230 | LD MPR62 IS FUNCTION FEED U2C02300 008D 4C18 001CR 231 | BSC L PLUS2,+- YES - SET UP FOR LIBF+2 U2C02310 008F C102 232 | MPR44 LD 1 +2 STORE ERROR PARAMETER IN U2C02320 0090 D23C 233 | STO 2 MPR84+2-Z ERROR EXIT INSTRUCTION U2C02330 0091 1810 234 | SRA 16 CLEAR ACC U2C02340 0092 1084 235 | SLT 4 MOVE IN STACKER SEL DIGIT U2C02350 0093 4820 236 | BSC Z SKIP IF NO SEL REQ. 2-3 U2C02360 0094 40D8 237 | BSI MPR36 SEL DOCUMENT 2-3 U2C02370 238 | * U2C02380 239 | * RESET REGISTERS PRIOR TO EXIT U2C02390 240 | * U2C02400 0095 7103 241 | MPR50 MDX 1 +3 XR1 CONTAINS RETURN ADDR U2C02410 0096 CC00 0008R 242 | LDD L SAVAQ RESTORE ACC AND EXT U2C02420 0098 6906 243 | STX 1 MPR59+1 STORE RETURN ADDRESS U2C02430 0099 6580 0007R 244 | LDX I1 SAVX1 RESTORE XR1 U2C02440 009B 6600 0000 245 | MPR56 LDX L2 *-* RESTORE XR2 U2C02450 009D 2000 246 | MPR58 LDS 0 RESTORE OVERFLOW AND CARRY U2C02460 009E 4C00 0000 247 | MPR59 BSC L *-* RETURN TO MAINLINE U2C02470 248 | * U2C02480 249 | * LOOP ON FEED BUSY SUBROUTINE U2C02490 250 | * U2C02500 00A0 0000 251 | MPR48 DC *-* ENTRY 2-3 U2C02510 00A1 C019 252 | LD MPR65 HAS JAM OCURRED 2-3 U2C02520 00A2 4C20 00A8R 253 | BSC L MPR49,Z YES - RETURN 2-3 U2C02530 00A4 080F 254 | XIO SENSE SENSE DSW 2-3 U2C02540 00A5 1006 255 | SLA 6 IS FEED BUSY 2-3 U2C02550 00A6 4C28 00A1R 256 | BSC L MPR48+1,+Z YES - LOOP 2-3 U2C02560 00A8 1810 257 | MPR49 SRA 16 2-3 U2C02570 00A9 D2FF 258 | STO 2 MPR65-Z RESTORE JAMSWITCH 2-3 U2C02580 00AA 4C80 00A0R 259 | BSC I MPR48 RETURN 2-3 U2C02590 260 | * U2C02600 261 | * CONSTANTS AND WORK AREAS U2C02610 262 | * U2C02620 00AC 0000 263 | MPR60 DC *-* WD TO SAVE I/O AREA ADDR U2C02630 00AE 264 | BSS E 0 U2C02640 00AE 0001 265 | CNTRL DC 1 CONSTANT ONE U2C02650 00AF 4404 266 | DC /4404 START FEED IOCC U2C02660 00B0 0000 267 | READ DC *-* I/O AREA ADDRESS U2C02670 00B1 4200 268 | DC /4200 READ IOCC U2C02680 00B2 0000 269 | DSCNT DC 0 SAVE FUNCTION CODE HERE U2C02690 00B3 4402 270 | DC /4402 DISCONNECT IOCC U2C02700 00B4 0000 271 | SENSE DC 0 BUSY INDICATOR U2C02710 00B5 4700 272 | DC /4700 SENSE WITHOUT RESET IOCC U2C02720 00B6 0002 273 | STKSL DC 2 CONSTANT TWO U2C02730 00B7 4480 274 | DC /4480 STACKER SELECT IOCC U2C02740 00B8 0000 275 | SENSR DC 0 FIRST-CHAR-INTRPT IND U2C02750 00B9 4701 276 | DC /4701 SENSE WITH RESET IOCC U2C02760 00B4R 277 | BUSY EQU SENSE BUSY INDICATOR U2C02770 00B2R 278 | MPR62 EQU DSCNT FUNCTION CODE U2C02780 00BA 0000 279 | MPR63 DC *-* TEMP STORAGE FOR DSW 2-6 U2C02790 00B8R 280 | MPR64 EQU SENSR FIRST-CHAR-INTRPT IND U2C02800 00BB 0000 281 | MPR65 DC *-* JAM SWITCH 2-3 U2C02810 00BCR 282 | Z EQU * TV VALUE 2-3 U2C02820 00BC A000 283 | HA000 DC /A000 NOT READY ERROR CODE U2C02830 00BD A001 284 | HA001 DC /A001 BAD CALL ERROR CODE U2C02840 00BE A002 285 | HA002 DC /A002 FEED CHECK ERR CODE 2-3 U2C02850 00BF A003 286 | HA003 DC /A003 FEED CHECK ERR CODE 2-3 U2C02860 00C0 0069 287 | H0069 DC /0069 MASK FOR DSW U2C02870 00C1 0000 288 | MPR66 DC 0 MASTER MARK INDICATOR U2C02880 00C2 0000 289 | MPR67 DC *-* INTERRUPT SWITCH 2-3 U2C02890 00C3 0000 290 | MPR68 DC 0 FEED FUNCTION INDICATOR U2C02900 00C4 0000 291 | MPR69 DC *-* STACKER SELECT SWITCH 2-3 U2C02910 00C5 0000 292 | IOCT DC *-* IOCT SWITCH 2-6 U2C02920 0028 293 | $PRET EQU /28 PRE-OPER ERROR TRAP 2-3 U2C02930 0032 294 | $IOCT EQU /32 IOCS COUNTER 2-3 U2C02940 008D 295 | $PST4 EQU /8D LVL 4 POST-OPER ERROR TRAP U2C02950 00AER 296 | D1 EQU CNTRL CONSTANT ONE U2C02960 00B6R 297 | D2 EQU STKSL CONSTANT TWO U2C02970 00C6 0003 298 | D3 DC 3 CONSTANT THREE U2C02980 299 | * U2C02990 300 | * EXIT TO $PRET IF BAD CALL U2C03000 301 | * U2C03010 00C7 C0F5 302 | MPR70 LD HA001 LOAD ILLEGAL CALL CODE 2-3 U2C03020 00C8 4400 0028 303 | BSI L $PRET EXIT TO $PRET 2-3 U2C03030 00CA 4C00 0010R 304 | BSC L MPR12 RETRY MPR12 2-3 U2C03040 305 | * U2C03050 306 | * U2C03060 307 | * EXIT TO $PRET WITH AN ERROR CODE U2C03070 308 | * FOR NOT READY DEVICE U2C03080 309 | * U2C03090 00CC C200 310 | MPR72 LD 2 HA000-Z LD NOT READY ERR CODE 2-3 U2C03100 00CD 4400 0028 311 | BSI L $PRET EXIT TO $PRET 2-3 U2C03110 00CF 70B2 312 | MDX MPR43 RETRY SENSE 2-3 U2C03120 313 | * U2C03130 314 | * U2C03140 315 | * INTERRUPT HANDLING PART OF OMPR1 U2C03150 316 | * U2C03160 317 | * INTERUPTS ARE CAUSED FOR FOUR REASONS U2C03170 318 | * 1. DATA TRANSFER...... U2C03180 319 | * 2. OP COMPLETE....... U2C03190 320 | * 3. TIMING MARK ERROR..... U2C03200 321 | * 4. JAM STOP..... U2C03210 322 | * U2C03220 00D0 08E3 323 | MPR80 XIO SENSE SENSE THE DSW 2-6 U2C03230 00D1 D0E8 324 | STO MPR63 SAVE TEMPORARY 2-6 U2C03240 00D2 08E5 325 | XIO SENSR RESET DSW INDICATORS 2-6 U2C03250 00D3 C0E6 326 | LD MPR63 LOAD THE DSW 2-6 U2C03260 00D4 1885 327 | SRT 5 IS IT FEED CHECK 2-3 U2C03270 00D5 4C04 00FBR 328 | BSC L MPR85,E YES - BRANCH 2-3 U2C03280 00D7 4C10 0110R 329 | BSC L MPR90,- BRANCH IF OP COMPLETE U2C03290 00D9 68E8 330 | STX MPR67 SET INTERRUPT SWITCH 2-3 U2C03300 00DA 1008 331 | SLA 8 IS IT MASTER MARK U2C03310 00DB 4C10 00E0R 332 | BSC L MPR81,- BRANCH IF NO U2C03320 00DD C0E3 333 | LD MPR66 SEE IF MASTER MARK SWITCH U2C03330 00DE 4C18 00EER 334 | BSC L MPR83,+- IS SET. NO,GOTO MARK U2C03340 335 | * U2C03350 336 | *CHECK TO SEE IF THIS IS THE FIRST CHARACTER U2C03360 337 | *INTERRUPT IN RESPONSE TO A FEED FUNCTION,THIS IS U2C03370 338 | *DETECTED BY SEEING IF THE 1ST CHAR INTRP INDICATOR U2C03380 339 | *MPR64 IS ZERO. IF MPR64 IS ZERO AND WE HAVE U2C03390 340 | *RECEIVED A CHARACTER INTERRUPT,THIS CAN ONLY MEAN U2C03400 341 | *THAT THE INTERRUPT CAME IN RESPONSE TO A FEED U2C03410 342 | *FUNCTION U2C03420 343 | * U2C03430 00E0 C0D7 344 | MPR81 LD MPR64 LOAD INDICATOR U2C03440 00E1 4C20 00E9R 345 | BSC L MPR82,Z IS MPR64 ZERO, NO GO READ U2C03450 00E3 D0E1 346 | STO IOCT RESET IOCT SWITCH 2-6 U2C03460 00E4 68D3 347 | STX MPR64 YES,MAKE MPR64 NONZERO AND U2C03470 00E5 74FF 0032 348 | MDX L $IOCT,-1 DECREMENT $IOCT 2-6 U2C03480 00E7 1000 349 | NOP 2-6 U2C03490 00E8 7056 350 | MDX EXIT RETURN WITHOUT READING U2C03500 351 | * U2C03510 00E9 08C6 352 | MPR82 XIO READ READ A CHARACTER U2C03520 00EA C0C5 353 | LD READ UPDATE I/O AREA ADDRESS U2C03530 00EB 80C2 354 | A D1 FOR NEXT U2C03540 00EC D0C3 355 | STO READ CHARACTER U2C03550 00ED 7051 356 | MDX EXIT RETURN U2C03560 357 | * U2C03570 00EE C0BF 358 | MPR83 LD D1 LOAD MASTER MARK CODE U2C03580 00EF 4006 359 | BSI MPR84 TO USERS ERROR ROUTINE U2C03590 00F0 4C18 00E0R 360 | BSC L MPR81,+- IF A=0,GOTO FIRST,IF NOT U2C03600 00F2 D0BD 361 | STO READ USER HAS PUT NEW I/O AREA U2C03610 00F3 D0B8 362 | STO MPR60 IN ACC - STORE IT 2-3 U2C03620 00F4 68CC 363 | STX MPR66 U2C03630 00F5 70EA 364 | MDX MPR81 SET MASTER MARK U2C03640 365 | * AND GO CHECK 1ST.CHAR.INTR U2C03650 366 | * U2C03660 367 | * EXIT TO USERS ERROR PARAMETER U2C03670 368 | * U2C03680 00F6 1000 369 | MPR84 NOP ENTRY U2C03690 00F7 4400 0000 370 | BSI L *-* EXIT TO USER U2C03700 00F9 4C80 00F6R 371 | BSC I MPR84 RETURN U2C03710 372 | * U2C03720 00FB 68BC 373 | MPR85 STX MPR64 SET FIRST-CHAR SWITCH 2-6 U2C03730 00FC C0B7 374 | LD BUSY IS PROGRAM BUSY 2-3 U2C03740 00FD 4C18 0108R 375 | BSC L MPR86,+- BRANCH IF NO 2-3 U2C03750 376 | * 2 INSTRUCTIONS REMOVED 212 U2C03760 00FF 08B2 377 | XIO DSCNT DISCONNECT 2-3 U2C03780 0100 C0BE 378 | LD HA003 EXIT TO POSTOPERATIVE 2-3 U2C03790 0101 4400 008D 379 | BSI L $PST4 ERROR TRAP 2-3 U2C03800 0103 08B0 380 | XIO SENSE IS DEVICE READY 2-3 U2C03810 0104 4C04 0100R 381 | BSC L *-6,E BRANCH BACK IF NO 2-3 U2C03820 0106 08AB 382 | XIO DSCNT DISCONNECT 212 U2C03825 0107 7023 383 | MDX MPR93 BRANCH TO INITIATE FEED2-3 U2C03830 384 | * U2C03840 0108 C0B5 385 | MPR86 LD HA002 EXIT TO POSTOPERATIVE 2-3 U2C03850 0109 4400 008D 386 | BSI L $PST4 ERROR TRAP 2-3 U2C03860 010B 08A8 387 | XIO SENSE IS DEVICE READY 2-3 U2C03870 010C 4C04 0108R 388 | BSC L *-6,E BRANCH BACK IF NO 2-3 U2C03880 010E 68AC 389 | STX MPR65 SET JAMSWITCH 2-3 U2C03890 010F 702F 390 | MDX EXIT EXIT 2-3 U2C03900 391 | * U2C03910 392 | *OP COMPLETE INTERRUPT PROCESSING U2C03920 393 | * U2C03930 0110 68A7 394 | MPR90 STX MPR64 SET FIRST-CHAR SWITCH 2-6 U2C03940 0111 1883 395 | SRT 3 RIGHT-JUSTIFY DOC.SELECTED U2C03950 0112 E0AD 396 | AND H0069 BIT,IS BIT PRESENT U2C03960 0113 4C04 014AR 397 | BSC L MPR98,E YES,GO HANDLE DOC.SELECTED U2C03970 0115 1883 398 | SRT 3 NO,CHK OP COMPLETE U2C03980 0116 4804 399 | BSC E SKIP IF NOT OP COMPLETE U2C03990 0117 7001 400 | MDX *+1 OP COMPLETE INTRP,SKIP U2C04000 0118 7026 401 | MDX EXIT NOT OP COMPLETE,EXIT U2C04010 0119 1881 402 | SRT 1 MOVE OUT OP COMPLETE BIT U2C04020 011A 4C08 0133R 403 | BSC L MPR94,+ BRANCH IF NO MORE BIT U2C04030 404 | * U2C04040 405 | * READ OR TIMING MARK ERROR U2C04050 406 | * U2C04060 011C 6897 407 | STX BUSY SET BUSY INDICATOR 2-6 U2C04070 011D C0A7 408 | LD IOCT IF IOCT SWITCH IS 2-6 U2C04080 011E 4C20 0123R 409 | BSC L MPR91,Z *ZERO - SET IT 2-6 U2C04090 0120 68A4 410 | STX IOCT *NON-ZERO AND 2-6 U2C04100 0121 7401 0032 411 | MDX L $IOCT,1 INCR $IOCT 2-3 U2C04110 0123 C092 412 | MPR91 LD D2 TIMING MARK ERROR,LOAD U2C04120 0124 40D1 413 | MPR92 BSI MPR84 ERROR CODE AND EXIT TO USER U2C04130 0125 4C18 0136R 414 | BSC L MPR95,+- IF RETURN WITH A=0,GOTO CLR U2C04140 0127 088C 415 | MPR99 XIO SENSE ROUTINE BUSY INDR.,IF A IS U2C04150 0128 4C04 0141R 416 | BSC L MPR96,E NONZERO,CHK.DEV.READY U2C04160 012A 0887 417 | XIO DSCNT DISCONNECT LAST DOCUMNT 2-6 U2C04170 012B C400 00ACR 418 | MPR93 LD L MPR60 RESTORE I/O U2C04180 012D D082 419 | STO READ AREA ADDRESS U2C04190 012E 1810 420 | SRA 16 2-3 U2C04200 012F D094 421 | STO MPR69 RESET STK SEL SW. 2-3 U2C04210 0130 0C00 00AER 422 | XIO L CNTRL INITIATE FEED U2C04220 0132 700C 423 | MDX EXIT BACK TO ILS U2C04230 424 | * U2C04240 0133 1086 425 | MPR94 SLT 6 CHECK FOR HOPPER EMPTY U2C04250 0134 4C04 0146R 426 | BSC L MPR97,E YES GOTO HOPPR,NO MEANS END U2C04260 0136 1810 427 | MPR95 SRA 16 OF TRANSMISSION,CLEAR U2C04270 0137 D400 00B4R 428 | STO L BUSY ROUTINE BUSY INDICATOR AND U2C04280 0139 D087 429 | STO MPR66 MASTER MARK FLAG U2C04290 013A D087 430 | STO MPR67 RESET INTERRUPT SWITCH 2-3 U2C04300 013B D089 431 | STO IOCT RESET IOCT SWITCH 2-6 U2C04310 013C 74FF 0032 432 | MDX L $IOCT,-1 DECREMENT IOCS COUNTER 2-3 U2C04320 013E 1000 433 | NOP U2C04330 013F 4C80 0004R 434 | EXIT BSC I INT1 RETURN TO ILS. U2C04340 435 | * U2C04350 436 | * EXIT TO $PST4 IF NOT READY U2C04360 437 | * U2C04370 0141 C400 00BCR 438 | MPR96 LD L HA000 TO POST-OPER ERROR TRAP U2C04380 0143 4400 008D 439 | BSI L $PST4 WITH OMPR ERROR CODE U2C04390 0145 70E1 440 | MDX MPR99 RETRY U2C04400 441 | * U2C04410 442 | *HOPPER EMPTY,LOAD APPROPRIATE CODE AND EXIT TO U2C04420 443 | *USERS ERROR ROUTINE U2C04430 444 | * U2C04440 0146 C400 00C6R 445 | MPR97 LD L D3 HOPPER EMPTY ERROR CODE U2C04450 0148 40AD 446 | BSI MPR84 EXIT TO USER U2C04460 0149 70EC 447 | MDX MPR95 UPON REENTRY GO CLEAR BUSY U2C04470 448 | * U2C04480 449 | * DOCUMENT SELECTED,LOAD APPROPRIATE ERROR CODE AND U2C04490 450 | *EXIT TO USERS ERROR PARAMETER U2C04500 451 | * U2C04510 014A 1081 452 | MPR98 SLT 1 LOAD 4 OR 5 2-6 U2C04520 014B C400 00B6R 453 | LD L D2 *RESPECTIVELY 2-6 U2C04530 014D 1081 454 | SLT 1 *AND EXIT TO 2-6 U2C04540 014E 70D5 455 | MDX MPR92 *USER ERROR ROUTINE 2-6 U2C04550 456 | * U2C04560 014F 457 | END U2C04570 There were no errors in this assembly === CROSS REFERENCES ========================================================== Name Val Defd Referenced $IOCT 0032 294 130 171 226 348 411 432 $PRET 0028 293 303 311 $PST4 008D 295 379 386 439 BUSY 00B4R 277 92 104 133 151 216 224 374 407 428 CNTRL 00AER 265 227 296 422 D1 00AER 296 87 115 118 174 187 354 358 D2 00B6R 297 113 412 453 D3 00C6R 298 445 DSCNT 00B2R 269 127 278 377 382 417 EXIT 013FR 434 350 356 390 401 423 H0069 00C0R 287 396 HA000 00BCR 283 310 438 HA001 00BDR 284 302 HA002 00BER 285 385 HA003 00BFR 286 378 INT1 0004R 69 434 IOCT 00C5R 292 128 136 170 225 346 408 410 431 MPR10 000AR 77 67 MPR12 0010R 84 304 MPR15 0020R 104 85 MPR20 0024R 110 88 MPR25 0034R 125 120 137 182 MPR29 003ER 133 129 MPR30 0044R 141 117 MPR31 0050R 158 150 MPR32 005ER 170 166 MPR33 0066R 182 214 MPR35 0068R 187 119 MPR36 006DR 194 189 203 237 MPR39 0077R 203 196 MPR40 0079R 213 142 MPR41 007FR 219 183 MPR42 0080R 220 156 MPR43 0082R 222 312 MPR44 008FR 232 176 MPR48 00A0R 251 126 197 256 259 MPR49 00A8R 257 253 MPR50 0095R 241 100 163 MPR56 009BR 245 77 MPR58 009DR 246 79 MPR59 009ER 247 243 MPR60 00ACR 263 155 169 362 418 MPR62 00B2R 278 116 220 230 MPR63 00BAR 279 324 326 MPR64 00B8R 280 158 221 344 347 373 394 MPR65 00BBR 281 252 258 389 MPR66 00C1R 288 165 333 363 429 MPR67 00C2R 289 134 162 330 430 MPR68 00C3R 290 135 149 161 213 219 MPR69 00C4R 291 195 202 229 421 MPR70 00C7R 302 112 114 188 MPR72 00CCR 310 223 MPR80 00D0R 323 70 MPR81 00E0R 344 332 360 364 MPR82 00E9R 352 345 MPR83 00EER 358 334 MPR84 00F6R 369 233 359 371 413 446 MPR85 00FBR 373 328 MPR86 0108R 385 375 MPR90 0110R 394 329 MPR91 0123R 412 409 MPR92 0124R 413 455 MPR93 012BR 418 383 MPR94 0133R 425 403 MPR95 0136R 427 414 447 MPR96 0141R 438 416 MPR97 0146R 445 426 MPR98 014AR 452 397 MPR99 0127R 415 440 OMPR1 0000R 65 PLUS2 001CR 98 93 105 121 190 231 PLUS3 001DR 99 106 READ 00B0R 267 154 168 172 173 175 352 353 355 361 419 SAVAQ 0008R 73 80 242 SAVX1 0007R 72 65 244 SENSE 00B4R 271 94 198 222 254 277 323 380 387 415 SENSR 00B8R 275 280 325 STKSL 00B6R 273 201 297 Z 00BCR 282 78 79 87 94 113 115 116 118 126 128 133 134 135 136 195 197 198 201 222 229 233 258 310