ibm:vm370-lib:cp:dmkrse.assemble_src
Table of Contents
DMKRSE Source
References
- Fixes Applied : 8
- This Source Date : Saturday, December 9, 1978
- Last Fix ID : [R13713DK]
Source Listing
- DMKRSE.ASSEMBLE.txt
- RSE TITLE 'DMKRSE (CP) VM/370 - RELEASE 6' 00001000
- ISEQ 73,80 VALIDATE INPUT SERIALIZATION @V200820 00002000
- *. 00003000
- * 00004000
- * MODULE NAME - 00005000
- * 00006000
- * DMKRSERR 00007000
- * 00008000
- * FUNCTION - 00009000
- * 00010000
- * TO RETRY AND ATTEMPT RECOVERY FOR REAL UNIT RECORD DEVICE 00011000
- * IO ERRORS. 00012000
- * ALSO TO RECORD HARDWARE ENVIRONMENTAL DATA FOR A 3800. 00012500
- * 00013000
- * ATTRIBUTES - 00014000
- * 00015000
- * REENTRANT, PAGEABLE, CALLED VIA SVC FROM DMKRSPER 00016000
- * 00017000
- * ENTRY POINTS - 00018000
- * 00019000
- * DMKRSERR - ENTRY POINT FOR REAL SPOOL ERROR 00020000
- * DMKRSESD - COLLECT 3800 ENVIRONMENTAL SENSE DATA 00020500
- * 00021000
- * ENTRY CONDITIONS - 00022000
- * 00023000
- * GPR8 = ADDRESS OF THE RDEVBLOK FOR THE FAILING DEVICE 00024000
- * GPR10 = ADDRESS OF THE IOBLOK 00025000
- * GPR11 = ADDRESS OF USER VMBLOK 00026000
- * GPR12 = DMKRSERR BASE ADDRESS 00027000
- * GPR13 = ADDRESS OF STANDARD SAVEAREA 00028000
- * 00029000
- * EXIT CONDITIONS - 00030000
- * 00031000
- * THE IOBLOK IS RETURNED TO THE CALLER (DMKIOS) WITH, 00032000
- * 1. THE RESTART FLAG SET, IN WHICH CASE THE OPERATION IS 00033000
- * RESTARTED, STARTING AT THE ADDRESS IN IOBRCAW. 2. THE FATAL 00034000
- * FLAG SET, INDICATING AN UNRECOVERABLE CONDITION. 3. RESTART, 00035000
- * FATAL AND ERROR ROUTINE IN CONTROL FLAGS OFF, IN WHICH CASE 00036000
- * THE IOBLOK IS RETURN TO THE ADDRESS IN IOBIRA VIA DMKIOS. 00037000
- * 00038000
- * CALLS TO OTHER ROUTINES - 00039000
- * 00040000
- * DMKMSWR - TO WRITE ERROR MESSAGES 00041000
- * DMKFRET - TO RETURN STORAGE 00042000
- * DMKIOEST - TO UPDATE STATISTICAL COUNTERS 00042100
- * DMKIOESD - FORMAT 3800 HARDWARE ENVIRONMENTAL COUNTERS 00042250
- * DMKERMSG - SEND MESSAGES TO THE OPERATOR 00042400
- * DMKIOSQR - TO DO THE BUFFER UNLOAD FOR A 3800 00042550
- * DMKIOESD - RECORD RESULTS OF BUFFER UNLOAD FOR FE 00042700
- * DMKCVTBH - CONVERT ERROR MESSAGE DATA TO PRINTABLE HEX 00042850
- * 00043000
- * EXTERNAL REFERENCES - 00044000
- * 00045000
- * DMKRSP83 - 3811 CONTROL UNIT RESET CCW 00046000
- * DMKRSPPR - ANCHOR FOR PRINTER FILE CHAIN 00046500
- * 00047000
- * TABLES /WORKAREAS - 00048000
- * 00049000
- * NONE 00050000
- * 00051000
- EJECT 00052000
- * 00053000
- * REGISTER USAGE - 00054000
- * 00055000
- * GPR1 = ADDRESS OF RESTART CAW 00056000
- * GPR2,3,4 = WORK REGISTERS 00057000
- * GPR5 = INTERNAL SUBROUTINE LINKAGE 00058000
- * GPR7 = ADDRESS OF IOERBLOK 00059000
- * GPR8 = ADDRESS OF RDEVBLOK 00060000
- * GPR10 = ADDRESS OF IOBLOK 00061000
- * GPR11 = ADDRESS OF VMBLOK 00062000
- * GPR12 = DMKRSE MODULE BASE ADDRESS 00063000
- * GPR13 = ADDRESS OF SAVEAREA 00064000
- * 00065000
- * NOTE - 00066000
- * 00067000
- * NONE - 00068000
- * 00069000
- * OPERATION - 00070000
- * 00071000
- * 1. FIRST ERROR ENTRY - THE ADDRESS OF THE IO ERROR BLOCK 00072000
- * (IOERBLOK) IS LOCATED IN THE IOBLOK(IOBIOER). THE 00073000
- * ADDRESS OF THE IOERBLOK IS MOVED TO THE RDEVBLOK 00074000
- * (RDEVIOER) AND THE IOBIOER IS ZEROED. THE IOB RESTART 00075000
- * COUNT IS UPDATED BY ONE, AT THIS POINT THE STATISTICAL 00076000
- * DATA COUNTERS ARE UPDATED THEN THE IOERBLOK IS CHECKED 00076100
- * FOR THE TYPE OF ERROR. 00076200
- * THE STATISTICAL COUNTERS ARE UPDATED VIA A CALL TO 00076550
- * DMKIOEST. FOR A 3800 PRINTER, A PARAMETER LIST WILL 00076900
- * HAVE TO BE PASSED INDICATING WHICH COUNTERS TO UPDATE. 00077250
- * FOR ALL OTHER SPOOLING DEVICES NO PARAMETER IS PASSED. 00077600
- * 00078000
- * 2. RETRY ERROR ENTRY - THE ADDRESS OF THE FIRST ERROR 00079000
- * IOERBLOK IS LOCATED IN THE RDEVBLOK (RDEVIOER), AND 00080000
- * IN THE IOBLOK (IOBIOER), IF AN ERROR, WILL BE 00081000
- * THE ADDRESS OF THE NEW IOERBLOK. TWO TYES OF ENTRIES - 00082000
- * 00083000
- * (A) DEVICE END INTERRUPT FROM OPERATOR INTERVENTION, 00084000
- * THE IOBLOK IS POSTED WITH THE RESTART FLAG AND 00085000
- * ALLOW IOS TO RESTART THE OPERATION. 00086000
- * (B) CHANNEL AND DEVICE END INTERRUPT FROM ERP 00087000
- * INITIATED CCW'S TO OBTAINED OBR INFORMATION. 00088000
- * 00089000
- * 3. CONDITION CODE 3 ON SIO - MARK THE IOBLOK 00090000
- * AS FATAL ERROR AND ALLOW IOS TO RETURN THE IOBLOK 00091000
- * TO THE USER. 00092000
- * 00093000
- * 4. CHANNEL CONTROL AND INTERFACE CONTROL CHECK - 00094000
- * TAKE APPROPIATE ACTION AS GROVEN BY THE TERMINATION 00095000
- * AND/OR SEQUENCE CODE IN THE EXTENDED CHANNEL STATUS 00096000
- * (ECSW). THE ACTION TAKEN IS DEVICE DEPENDENT AND IS AS 00097000
- * FOLLOWS. 00098000
- * 00099000
- * CODE ACTION 00100000
- * 00101000
- * (0) NO RETRY - THE DEVICE IS UNABLE TO RECOVERY FROM THIS 00102000
- * ERROR CONDITION. MARK THE ERROR AS FATAL AND 00103000
- * ALLOW IOS TO RETURN THE IOBLOK TO THE USER. 00104000
- * (4) RETRY ONCE - RETRY THE CCW AT WHICH THE ERROR 00105000
- * ACCURRED. IF RETRY FAILS, POST THE ERROR AS 00106000
- * FATAL AND ALLOW IOS TO RETURN THE IOBLOK TO THE 00107000
- * USER. 00108000
- * (8) IGNORE - TREAT THIS CONDITION AS COMPLETE WITHOUT 00109000
- * ERROR. RESTART THE OPERATION WITH THE NEXT CCW. 00110000
- * (12) RETRY WITH OPERATOR INTERVENTION - RETRY MAY BE 00111000
- * POSSIBLE WITH OPERATOR INTERVENTION. GIVE CHANNEL 00112000
- * ERROR ACTION MESSAGE AND RESTART THE OPERATION 00113000
- * WHEN OPERATOR INTERVENTION IS COMPLETE. 00114000
- * 00115000
- * 5. CHANNEL DATA CHECK - RETRY THE OPERATION ONCE, 00116000
- * IF RETRY FAILS, POST THE ERROR AS FATAL, AND 00117000
- * ALLOW IOS TO RETURN THE IOBLOK TO THE USER. 00118000
- * 6. UNITCHECK ERRORS - RECOVERY PROCEDURES FOR UNITCHECK 00119000
- * ERRORS ARE DEVICE DEPENDENT, BUT GENERALLY SPEAKING, THE 00120000
- * FOLLOWING ACTIONS ARE TAKEN.- 00121000
- * (A) COMMAND REJECT - THE OPERATION IS MARK FATAL ERROR IN 00122000
- * THE IOBLOK, ERROR MESSAGE DMKRSE500I IS ISSUED 00123000
- * AND ALLOW IOS TO RETURN THE IOBLOK TO THE USER. 00124000
- * 00125000
- * (B) INTERVENTION REQUIRED - ONE OF TWO ACTIONS IS TAKEN, 00126000
- * DEPENDENT ON THE DEVICE TYPE. 00127000
- * (1) OPERATOR INTERVENTION - LOCATE THE RESTART CCW 00128000
- * ADDRESS AND STORE IN IOBRCAW. CALL DMKMSWR 00129000
- * TO GIVE ERROR MESSAGE DMKRSE501A (INT REQ), 00130000
- * RETURN TO IOS WITH IOBERP SET, INDICATING 00131000
- * DEVICE END INTERRUPT PENDING FROM DEVICE. 00132000
- * 00133000
- * WHEN DEVICE END INTERRUPT IS RECEIVED, THE 00134000
- * OPERATION IS RESTARTED AT THE CCW ADDRESS 00135000
- * LOCATED IN IOBRCAW. 00136000
- * 00137000
- * (2) FATAL ERROR - OPERATION FOR WHICH INTERVENTION 00138000
- * REQUIRED IS FATAL, SUCH AS LOADBUF COMMAND, POST 00139000
- * IOBLOK AS FATAL, GIVE ERROR MESSAGE DMKRSE501I 00140000
- * (INT REQ) AND ALLOW IOS TO RETURN THE IOBLOK TO 00141000
- * THE USER. 00142000
- * 00143000
- * 00144000
- * (C) BUSOUT CHECK - THE OPERATION IS RETRYED ONCE, IF THE 00145000
- * RETRY FAILS, GIVE ERROR MESSAGE DMKRSE502I, POST 00146000
- * ERROR AS FATAL AND ALLOW IOS TO RETURN THE IOBLOK 00147000
- * TO THE USER. 00148000
- * 00149000
- * (D) EQUIPMENT CHECK - ONE OF THREE ACTIONS WILL BE 00150000
- * TAKEN. (DEVICE DEPENDENT) 00151000
- * (1) EQUIPMENT CHECKS REQUIRING OPERATOR INTERVENTION, 00152000
- * LOCATE THE RESTART CCW, STORE ITS ADDRESS 00153000
- * IN IOBRCAW. GIVE ERROR MESSAGE DMKRSE503A (EQUIP 00154000
- * CK), RETURN TO IOS WITH IOBERP FLAG SET, TO 00155000
- * WAIT FOR DEVICE END INTERRUPT FROM THE 00156000
- * DEVICE. WHEN DEVICE END INTERRUPT IS 00157000
- * RECEIVED FROM OPERATOR INTERVENTION 00158000
- * COMPLETE, INDICATE RESTART AND ALLOW 00159000
- * TO RESTART THE OPERATION. 00160000
- * (2) RETRY ONCE - EQUIPMENT CHECKS NOT REQUIRING 00161000
- * OPERATOR INTERVENTION AND CAN BE RETRYED. 00162000
- * LOCATE AND SET UP THE RESTART CCW ADDRESS 00163000
- * FOR THE FAILING CCW, RETURN TO IOS TO 00164000
- * RESTART THE OPERATION. IF RETRY FAILS, 00165000
- * GIVE ERROR MESSAGE DMKRSE503I (EQUIP CK), 00166000
- * POST THE ERROR AS FATAL AND RETURN THE 00167000
- * IOBLOK TO THE USER VIA IOS. 00168000
- * 00169000
- * (3) FATAL EQUIPMENT CHECKS - EQUIPMENT CHECKS 00170000
- * WHICH CAN NOT BE RETRYED OR NEED 00171000
- * OPERATOR INTERVENTION, POST THE ERROR AS 00172000
- * FATAL, GIVE ERROR MESSAGE DMKRSE503I AND 00173000
- * ALLOW IOS TO RETURN THE IOBLOK TO THE USER. 00174000
- * 00175000
- * (E) DATA CHECKS - DEVICE DEPENDENT - DATA CHECKS 00176000
- * REQUIRING OPERATOR INTERVENTION, SET UP 00177000
- * RESTART CCW ADDRESS, GIVE MESSAGE DMKRSE504A, AND 00178000
- * RETURN TO IOS TO WAIT FOR DEVICE END INTERRUPT. 00179000
- * WHEN DEVICE END INTERRUPT IS RECEIVED FROM 00180000
- * OPERATOR INTERVENTION COMPLETE, RETURN TO IOS 00181000
- * ALLOW IOS TO RESTART THE OPERATION. 00182000
- * 00183000
- * DATA CHECKS NOT REQUIRING OPERATOR INTERVENTION, 00184000
- * SET UP THE RESTART CCW ADDRESS, RETRY THE 00185000
- * OPERATION, IF RETRY FAILS, POST THE ERROR AS 00186000
- * FATAL, GIVE ERROR MESSAGE DMKRSE504I (DATA CK) 00187000
- * AND ALLOW IOS TO RETURN THE IOBLOK TO THE USER. 00188000
- * (F) BUFFER PARITY CHECK - LOCATE THE RESTART CCW 00189000
- * ADDRESS, RETRY THE OPERATION ONCE, IF 00190000
- * REQUIRED (DEVICE DEPENDENT), OTHERWISE POST 00191000
- * ERROR AS FATAL, GIVE ERROR MESSAGE DMKRSE529I 00192000
- * (PARITY CK) AND ALLOW IOS TO RETURN THE 00193000
- * IOBLOK TO THE USER. 00194000
- * 00195000
- * (G) PROGRAM CONTROLLED INTERRUPT AND PROTECTION CHECKS 00196000
- * POSTED AS FATAL ERROR, GIVE ERROR MESSAGE 00197000
- * DMKRSE520I (CHAN ERROR) AND ALLOW IOS 00198000
- * TO RETURN THE IOBLOK TO THE USER. 00199000
- * 00200000
- * (H) ERRORS NOT STATED OR EXCEPTION WILL BE GIVEN BY 00201000
- * DEVICE TYPE. 00202000
- * 00203000
- * (I) 2501 READER - 00204000
- * OVERRUN CHECK - LOCATE THE RESTART CCW ADDRESS, 00205000
- * GIVE ERROR ACTION MESSAGE DMKRSE505A (OVERRUN 00206000
- * CK), RETURN TO IOS TO WAIT FOR OPERATOR 00207000
- * INTERVENTION. WHEN OPERATOR INTERVENTION IS 00208000
- * COMPLETE, RETURN TO IOS TO RESTART THE DEVICE. 00209000
- * 00210000
- * (J) 1403-1443-3211-3203 PRINTERS 00211000
- * CHANNEL 9 - LOCATE THE NEXT CCW ADDRESS 00212000
- * AND RETURN TO IOS TO RESTART THE DEVICE. 00213000
- * 00214000
- * (K) 2520-2540 PUNCHES 00215000
- * EQUIPMENT CHECKS - THE CCW ADDRESS IS LOCATED 00216000
- * TO REPUNCH THE LAST TWO CARDS ON THE FIRST 00217000
- * EQUIPMENT CHECK, RESTART THE OPERATION, IF RETRY 00218000
- * FAILS, RETRY THE FAILING CCW, AFTER 20 00219000
- * CONSECUTIVE RETRIES, POST ERROR AS FATAL, 00220000
- * GIVE ERROR MESSAGE DMKRSE503I (EQUIP CK) AND ALLOW 00221000
- * IOS TO RETURN THE IOBLOK TO THE USER. 00222000
- * 00223000
- * (L) 3505 READER 00224000
- * FORMAT CHECK - THIS ERROR SHOULD NOT 00225000
- * ACCURR SINCE SPOOLING DOES NOT USE OMR OR RCE, 00226000
- * POST THE ERROR AS FATAL, GIVE ERROR MESSAGE 00227000
- * DMKRSE525I (FORMAT CK), AND ALLOW IOS TO 00228000
- * RETURN THE IOBLOK TO THE USER. 00229000
- * 00230000
- * (M) 3505 READER AND 3525 PUNCH - 00231000
- * PERMANENT ERROR CHECK - THE OPERATOR HAS 00232000
- * PRESSED THE PERMANENT ERROR KEY AND MAKE THE 00233000
- * DEVICE READY. POST THE ERROR AS FATAL, 00234000
- * GIVE ERROR MESSAGE DMKRSE508I (PERM CK), AND 00235000
- * ALLOW IOS TO RETURN THE IOBLOK TO THE USER. 00236000
- * 00237000
- * (N) 3211 PRINTER 00238000
- * CANCEL KEY - POST THE ERROR AS FATAL, GIVE 00239000
- * ERROR MESSAGE DMKRSE503I (EQUIP CK), AND ALLOW 00240000
- * IOS TO RETURN THE IOBLOK TO THE USER. 00241000
- * 00242000
- * OUTBOARD RECORDING DATA - THE STANDARD UNIT CHECK 00243000
- * RECORD IS RECORDED ON THE IO ERROR RECORDING 00244000
- * CYLINDER BY DMKIOE VIA DMKIOS. ADDITIONAL 00245000
- * INFORMATION IS REQUIRED FOR CERTAIN ERROR 00246000
- * CONDITIONS. 00247000
- * 1. THE CONTENTS OF THE FCB BUFFER. 00248000
- * 2. THE CONTENTS OF THE UCS BUFFER. 00249000
- * 3. THE CHECK DATA FOR THE PRINT LINE BUFFER. 00250000
- * 4. THE CONTENTS OF THE PRINT LINE BUFFER. 00251000
- * 5. THE FIRST TEN CHARACTERS IN ERROR. 00252000
- * THE INFORMATION IS OBTAINED AND STORED 00253000
- * IN THE OBR3211 EXTENTION OF THE IOERBLOK. 00254000
- * 00255000
- * (O) 3203 PRINTER 00255150
- * CANCEL KEY - NONE EXISTS ON THIS PRINTER. 00255300
- * 00255450
- * OUTBOARD RECORDING DATA - SAME AS 3211 00255600
- * PRINTER (ABOVE) 00255750
- * 00256000
- * (P) 3800 PRINTING SUBSYSTEM 00256030
- * CANCEL KEY - SAME AS FOR A 3211 00256060
- * 00256090
- * INTERVENTION REQD - ISSUE MESSAGE DMKRSE242I VIA 00256120
- * CALL TO DMKERMSG. IF 'SYSTEM RESTART' IS 00256150
- * ALSO INDICATED DO THAT FUNCTION AND THEN 00256180
- * RETURN TO IOS WITH IOBERP SET. 00256210
- * 00256240
- * SYSTEM RESTART REQUIRED - THIS INDICATES THAT 00256270
- * THE PAGE BUFFER HAS POSSIBLY BEEN DESTROYED. 00256300
- * ISSUE MESSAGE DMKRSE255I SHOWING THE PAGE 00256330
- * BACKUP COUNT AND HOLD AND REQUEUE EACH 00256360
- * FILE ON THE DELAYED PURGE QUEUE ISSUING 00256390
- * DMKRSE252I FOR EACH ONE SO REQUEUED 00256420
- * 00256450
- * EQUIPMENT CHECK (INTERNAL ERROR LOG FULL) - 00256480
- * CALL DMKRSESD TO DO THE 'SENSE ERROR LOG' 00256510
- * WHICH WILL CLEAR THE EQUIPMENT CHECK AND 00256540
- * THEN RESTART THE CCW CHAIN. 00256570
- * 00256600
- * LOAD CHECK - IF IT IS AN FCB-FORMST MISMATCH, 00256630
- * AND DMKTCS IS IN CONTROL, INDICATE THAT FACT 00256660
- * BY PLACING 'FCBM' IN IOBMISC2. IF ANY OTHER 00256690
- * CHECK INDICATING BAD LOAD MODULES, PLACE 00256720
- * 'BADM' IN IOBMISC2. OTHERWISE IGNORE LD CHK. 00256750
- * 00256780
- * OUTBOARD RECORDING DATA - SAME AS 3211 00256810
- * 00257000
- * 00 - INTERFACE DISCONNECT 00258000
- * 01 - STOP OR STACK OR NORMAL TERMINATION 00259000
- * 10 - SELECTIVE RESET 00260000
- * 11 - SYSTEM RESET 00261000
- * 00262000
- * 8. SEQUENCE CODE BITS 5,6 AND 7 OF BYTE 3 00263000
- * 00264000
- * 000 - A CHANNEL DETECTED ERROR ACCURRED DURING THE 00265000
- * OF A TEST I/O INSTRUCTION. 00266000
- * 00267000
- * 001 - COMMAND OUT WITH A NON-ZERO COMMAND BYTE 00268000
- * ON BUS OUT HAS BEEN SENT BY THE CHANNEL, 00269000
- * BUT DEVICE STATUS HAS NOT YET BEEN ANALYZED 00270000
- * BY THE CHANNEL. 00271000
- * 00272000
- * 010 - THE COMMAND HAS BEEN ACCEPTED BY THE DEVICE BUT NO 00273000
- * DATA HAS BEEN TRANSFERRED. 00274000
- * 00275000
- * 011 - AT LEAST ONE BYTE OF DATA HAS BEEN TRANSFERRED 00276000
- * OVER THE INTERFACE. 00277000
- * 00278000
- * 100 - THE COMMAND IN THE CURRENT CCW HAS EITHER NOT YET 00279000
- * BEEN SENT TO THE DEVICE OR ELSE WAS SENT BUT NOT 00280000
- * ACCEPTED BY THE DEVICE. 00281000
- * 00282000
- * 101 - THE COMMAND HAS BEEN ACCEPTED, BUT DATA TRANSFER IS 00283000
- * UNPREDICTABLE. 00284000
- * 00285000
- * 110 - RESERVED. 00286000
- * 00287000
- * 111 - RESERVED. 00288000
- * 00289000
- * RESPONSE - 00290000
- * 00291000
- * NONE 00292000
- * 00293000
- * ERROR MESSAGES - 00294000
- * 00295000
- * DMKRSE242I PRT (CUU) INT REQD, STATUS CODE=(SENSEBYTE4) 00295200
- * DMKRSE255I PRT (CUU) PAGE BUFFER DESTROYED, BACKUP 00295400
- * PAGE COUNT = (COUNT) 00295600
- * DMKRSE252I PRT (CUU) FILE (SPLID) REQUEUED AND HELD 00295800
- * DMKRSE500I (TYPE) (CCU) CMD REJECT CMD=(CM) SNS=(SENSE) 00296000
- * DMKRSE501A (TYPE) (CCU) INT REQ 00297000
- * DMKRSE501I (TYPE) (CCU) INT REQ CMD=(CM) SNS=(SENSE) 00298000
- * DMKRSE502I (TYPE) (CCU) BUSOUT CK CMD=(CM) SNS=(SENSE) 00299000
- * DMKRSE503I (TYPE) (CCU) EQUIP CK CMD=(CM) SNS=(SENSE) 00300000
- * DMKRSE503A (TYPE) (CCU) EQUIP CK CMD=(CM) SNS=(SENSE) 00301000
- * DMKRSE504A (TYPE) (CCU) DATA CK CMD=(CM) SNS=(SENSE) 00302000
- * DMKRSE504I (TYPE) (CCU) DATA CK CMD=(CM) SNS=(SENSE) 00303000
- * DMKRSE505A (TYPE) (CCU) OVERRUN CK CMD=(CM) SNS=(SENSE) 00304000
- * DMKRSE508I (TYPE) (CCU) PERM ERROR CMD=(CM) SNS=(SENSE) 00305000
- * DMKRSE520I (TYPE) (CCU) CHAN ERROR CMD=(CM) SNS=(SENSE) 00306000
- * DMKRSE520A (TYPE) (CCU) CHAN ERROR CMD=(CM) SNS=(SENSE) 00307000
- * DMKRSE521I (TYPE) (CCU) NO DEVICE CMD=(CM) SNS=(SENSE) 00308000
- * DMKRSE524I (TYPE) (CCU) LOAD-CHECK CMD=(CM) SNS=(SENSE) 00309000
- * DMKRSE525I (TYPE) (CCU) FORMAT CK CMD=(CM) SNS=(SENSE) 00310000
- * DMKRSE529I (TYPE) (CCU) PARITY CK CMD=(CM) SNS=(SENSE) 00311000
- * 00312000
- *. 00313000
- EJECT 00314000
- COPY OPTIONS 00315000
- COPY LOCAL OPTIONS 00316000
- EJECT 00317000
- DMKRSE CSECT 00318000
- SPACE 2 00319000
- ID DC CL8'DMKRSE' MODULE NAME 00320000
- SPACE 2 00321000
- EXTRN DMKRSP83,DMKMSWR 00322000
- EXTRN DMKIOEST STATISTICAL COUNTER UPDATE @VA03757 00322100
- EXTRN DMKIOSQR @V60B9BA 00322200
- EXTRN DMKIOESD @V60B9BA 00322300
- EXTRN DMKERMSG @V60B9BA 00322400
- EXTRN DMKCVTBH @V60B9BA 00322500
- EXTRN DMKCVTBD @V60B9BA 00322600
- EXTRN DMKRSPPR @V60B9BA 00322700
- SPACE 3 00323000
- USING PSA,R0 00324000
- USING IOERBLOK,R7 00325000
- USING RDEVBLOK,R8 00326000
- USING IOBLOK,R10 00327000
- USING VMBLOK,R11 00328000
- USING SAVEAREA,R13 00329000
- SPACE 3 00330000
- DMKRSERR RELOC 00331000
- SWITCH MAKE SURE WE ARE ON THE IO PROCESSOR @V4075A0 00331100
- SPACE 00332000
- SR R0,R0 .. 00333000
- L R7,RDEVIOER SET BASE FOR IOERBLOK 00334000
- LTR R7,R7 FIRST TIME FOR THIS ERROR ? 00335000
- BZ FIRST YES -- IOERBLOK ON RDEVBLOK 00336000
- BAL R5,UPDTCSW UPDATE IOERCSW 00337000
- ICM R15,B'1111',IOBIOER DOES 2ND IOERBLOK EXIST ? @VA01254 00338000
- BZ FIRST0 NO, GO TEST XOB FLAG @VA01254 00339000
- TM IOERCSW+5-IOERBLOK(R15),IFCC+CCC+CDC IS CHANNEL @VA01254 00340000
- * ERROR INDICATED ? 00341000
- BNZ FIRSTDE YES, GO CHAIN IOERBLOK @VA01254 00342000
- FIRST0 EQU * @VA01254 00343000
- TM IOERFLG1,IOERXERP GETTING DATA FOR XOBR3211 @V386298 00343600
- * OR XOBR3203 ?? 00344200
- BO UNITCHK YES -- 00345000
- TM IOERFLG1,IOERDEPD DEVICE END PENDING FOR THIS DEVICE 00346000
- BZ FIRST NO -- TREAT AS FIRST ERROR 00347000
- OI IOERFLG1,IOERDERD SET DEVICE END RECEIVED 00348000
- FIRSTDE EQU * @VA01254 00349000
- LTR R15,R15 DOES 2ND IOERBLOK EXIST ? @VA01254 00350000
- BZ EXITDE NO - USE THIS DEVICE END 00351000
- ST R15,RDEVIOER CHAIN NEW IOERBLOK FIRST 00352000
- ST R7,0(R15) .. 00353000
- LR R7,R15 ADDRESS OF NEW IOERBLOK 00354000
- ST R0,IOBIOER CLEAR POINTER 00355000
- BAL R5,UPDTCSW UPDATE IOERCSW 00356000
- TM IOERCSW+5,IFCC+CCC+CDC IS CHANNEL ERROR @VA01254 00357000
- * INDICATED ? 00358000
- BNZ FATAL ERROR ON ERROR RECOVERY @VA01254 00359000
- CLI RDEVTYPE,TYP3800 IS THIS A 3800 PRINTER? @VA11761 00359100
- BNE TST3211 NO, GO SEE IF IT IS A 3211 @VA11761 00359110
- TM IOERDATA,EQCHK POSSIBLE CANCEL KEY? @VA11761 00359120
- BO ER3800A1 YES, TEST FOR CANCEL KEY @VA11761 00359130
- TST3211 DS 0H @VA11761 00359140
- CLI RDEVTYPE,TYP3211 3211 PRINTER ? @VA00701 00360000
- BNE EXITDE NO -- BRANCH @VA00701 00361000
- TM IOERDATA+1,X'02' CANCEL KEY ? (3211) @VA00701 00362000
- BZ EXITDE NO -- BRANCH @VA00701 00363000
- B FATAL ERROR ON ERROR RECOVERY @VA00701 00364000
- SPACE 00365000
- FIRST L R7,IOBIOER LOAD NEW IOERBLOK 00366000
- LTR R7,R7 IS THERE ONE ?? 00367000
- BZ FATAL1 NO -- FATAL ERROR 00368000
- BAL R5,UPDTCSW UPDATE IOERCSW 00369000
- CLC =C'LOADBUF',VMCOMND LOADBUF COMMAND ?? 00370000
- BE FIRST1 YES -- RDEVSPL MISSING FOR COMMAND 00371000
- ICM R9,B'1111',RDEVSPL ACTIVE FILE ?? 00372000
- BZ EREXIT1 NO -- FORGET IT 00373000
- FIRST1 LH R1,IOBRCNT UPDATE RESTART COUNT 00374000
- LA R1,1(R1) BY ONE 00375000
- STH R1,IOBRCNT AND STORE 00376000
- L R1,RDEVIOER CHAIN NEW IOERBLOK TO 00377000
- ST R7,RDEVIOER RDEVBLOK 00378000
- ST R1,IOERPNT .. 00379000
- LTR R1,R1 REALLY FIRST TIME ?? @VA03757 00379050
- BNZ NOCALL NO, FORGET UPDATING SDR COUNTERS @VA03757 00379100
- CLI RDEVTYPE,TYP3505 3505/3525 DEVICES ??? @VA03757 00379150
- BE NOCALL YES, FORGET SDR @VA03757 00379200
- NI IOERFLG3,X'FF'-IOERREAD RESET FLAG @VA03757 00379250
- TM IOERDATA,X'08' DATA CHECK PRESENT ?? @VA03757 00379300
- BZ SDRSTAT NO @VA03757 00379350
- BAL R5,RDOPCK GO CHECK FOR READ FLAG @VA03757 00379400
- SPACE 1 00379450
- SDRSTAT EQU * @VA03757 00379500
- SLR R1,R1 CLEAR PARAMETER REG @VA03757 00379550
- CLI RDEVTYPE,TYP3800 IS IT A 3800 ? @V60B9BA 00379600
- BNE NOPARM XFER IF NOT @V60B9BA 00379650
- LA R0,PARMLEN LENGTH OF AREA IN DBLWDS @V60B9BA 00379700
- CALL DMKFREE GET A STORAGE AREA @V60B9BA 00379750
- MVC 0(L'PARM3800,R1),PARM3800 MOVE IN PROTOTYPE @V60B9BA 00379800
- TM IOERCSW+5,CDC CHANNEL DATA CHECK @V60B9BA 00379850
- BZ *+8 XFER IF NOT @V60B9BA 00379900
- MVI 2(R1),X'2F' INCREMENT THIS COUNTER @V60B9BA 00379950
- TM IOERCSW+5,CCC CHANNEL CONTROL CHECK ? @V60B9BA 00380000
- BZ *+8 XFER IF NOT @V60B9BA 00380050
- MVI 3(R1),X'2F' INCREMENT THIS COUNTER @V60B9BA 00380100
- TM IOERCSW+5,IFCC INTERFACE CONTROL CHECK ? @V60B9BA 00380150
- BZ *+8 XFER IF NOT @V60B9BA 00380200
- MVI 4(R1),X'2F' INCREMENT COUNTER @V60B9BA 00380250
- CLI IOERDATA+4,X'32' CFS MISFOLD ? @V60B9BA 00380300
- BNE *+8 XFER IF NOT @V60B9BA 00380350
- MVI 5(R1),X'2F' INCREMENT COUNTER @V60B9BA 00380400
- CLI IOERDATA+4,X'42' BTS STACKER CHECK ? @V60B9BA 00380450
- BNE *+8 XFER IF NOT @V60B9BA 00380500
- MVI 6(R1),X'2F' INCREMENT COUNTER @V60B9BA 00380550
- CLI IOERDATA+4,X'41' NO BURST CHECK ? @V60B9BA 00380600
- BNE *+8 XFER IF NOT @V60B9BA 00380650
- MVI 7(R1),X'2F' INCREMENT COUNTER @V60B9BA 00380700
- SR R0,R0 ZERO OUT R0 @V60B9BA 00380750
- NOPARM CALL DMKIOEST,AFFINITY @V60B9BA 00380800
- LTR R1,R1 WAS A PARAMETER PASSED? @VA09395 00380810
- BZ NOCALL XFER IF NOT @VA09395 00380818
- LA R0,PARMLEN GET LENGTH TO FRET @VA09395 00380826
- CALL DMKFRET FRET THE PARM AREA @VA09395 00380834
- SR R0,R0 CLEAR REGISTER 0 @VA09395 00380842
- NOCALL EQU * @VA03757 00380850
- SPACE 1 00380900
- ST R0,IOBIOER CLEAR IOERBLOK POINTER IN IOB 00380950
- TM IOBSTAT,IOBCC3 WAS IT CONDITION CODE 3 ON SIO 00381000
- BO FATAL1 YES -- FATAL ERROR 00382000
- TM IOERCSW+5,IFCC+CCC INTERFACE OR CHANNEL CONTROL CHECK ? 00383000
- BNZ CHANERR YES -- CHECK FOR TYPE OF RESTART 00384000
- TM IOERCSW+5,CDC CHANNEL DATA CHECK ?? 00385000
- BO RETRY1 YES -- RETRY ONCE 00386000
- TM IOBCSW+5,CHC CHAINING CHECK ?? 00387000
- BO RETRY1 YES - RETRY ONCE 00388000
- TM IOBCSW+4,ATTN+CUE+SM TEST IMPOSSIBLE CONDITIONS 00389000
- BNZ RETRY1 RETRY ONCE 00390000
- SPACE 00391000
- SPACE 00392000
- TM RDEVFLAG,RDEVTERM+RDEVBACK+RDEVRSTR FLUSH - BACKSPACE 00393000
- * OR BACKSPACE FILE ?? 00394000
- BZ TESTUC NO -- CHECK FOR UNIT CHECK 00395000
- CLC =C'SEP ',IOBMISC2 PRINTING OR PUNCHING SEPARATOR DATA 00396000
- BE TESTTERM @VA10631 00397100
- CLC =C'TCS ',IOBMISC2 SETTING UP A 3800 ? @V60B9BA 00397300
- BNE EXITDE NO -- EXIT FOR IMM BACKSPAC @V60B9BA 00397600
- TESTTERM DS 0H @VA10631 00397700
- TM RDEVFLAG,RDEVTERM FLUSH REQUESTED ? 00398000
- BO FATAL1 YES -- 00399000
- TESTUC TM IOERCSW+4,UC UNIT CHECK ?? 00400000
- BZ FATAL NO -- FATAL ERROR ALL OTHERS @VW01227 00401000
- CLI IOERDATA,X'00' ANY SENSE INFORMATION ?? @VA00701 00402000
- BE RETRY1 NO -- RETRY THE OPERATION ONCE @VA00701 00403000
- SPACE 00404000
- SPACE 2 00405000
- UNITCHK EQU * HERE TO TEST SENSE INFORMATION ON UNIT CHECK 00406000
- CLI RDEVTYPE,TYP3505 3525 PUNCH OR 3505 READER ?? 00407000
- BE ERR35XX YES -- 00408000
- TM RDEVTYPC,CLASURO OUTPUT DEVICE ?? 00409000
- BO TSTURO YES -- 00410000
- * 00411000
- * ERROR RECOVERY FOR 2540 AND 2501 READERS 00412000
- * 00413000
- TM IOERDATA,EQCHK EQUIPMENT CHECK ?? 00414000
- BO DELAY2 YES -- OPERATOR INTERVENTION 00415000
- * REQUIRED 00416000
- TM IOERDATA,INTREQ INTERVENTION REQUIRED ??? 00417000
- BO DELAY YES -- WAIT FOR IT 00418000
- TM IOERDATA,BUSOUT BUSOUT CHECK ??? 00419000
- BO RETRY1 YES -- RETRY ONCE 00420000
- TM IOERDATA,DATACHK+4 DATA CHECK ?? OVERRUN ?? 00421000
- BNZ DELAY2 YES -- OPERATOR INTERVENTION 00422000
- B FATAL1 ALL OTHERS FATAL ERROR 00423000
- SPACE 00424000
- SPACE 00425000
- TSTURO EQU * OUTPUT DEVICES 00426000
- TM RDEVTYPE,TYP3211 IS IT A 3203/3211 PRINTER?? @V386298 00426700
- BO ERR3211 YES--BRANCH INTO EXISTING @V386298 00427400
- * 3211 ERROR LOGIC 00428100
- CLI RDEVTYPE,TYP3800 IS IT A 3800 PRINTER ? @V60B9BA 00428400
- BE ERR3800 XFER IF SO @V60B9BA 00428700
- SPACE 00429000
- TM IOERDATA,INTREQ+EQCHK INTERVENTION AND @VA00701 00430000
- * EQUIPMENT CK 00431000
- BNO TESTTYPE NO -- CHECK FOR PUNCH OR PRINTER @VA00701 00432000
- TM IOBSTAT,IOBCC1 STATUS STORED ON INITIAL @VA00701 00433000
- * SELECTION 00434000
- BO DELAY2 YES -- FOR OPERATOR ACTION @VA00701 00435000
- TESTTYPE TM RDEVTYPE,TYPPUN 2540P ?? PUNCH @VA00701 00436000
- BO TSTPUN YES - 00437000
- * 00438000
- * 1403 AND 1443 PRINTER ERROR ROUTINE 00439000
- * 00440000
- TM IOERDATA,EQCHK EQUIPMENT CHECK ?? 00441000
- BO RETRY1 YES -- RETRY ONCE 00442000
- CLI RDEVTYPE,TYP1443 1443 PRINTER 00443000
- BE TSTPRTNR YES -- GO TEST FOR INTERVENTION 00444000
- TM IOERDATA,4 UCS GEN STOR PARITY ERROR ?? (1403) 00445000
- BO FATAL YES -- FATAL ERROR 00446000
- TSTPRTNR TM IOERDATA,INTREQ INTERVENTION REQUIRED ?? 00447000
- BO DELAY YES -- WAIT FOR IT 00448000
- TM IOERDATA,BUSOUT BUSOUT CHECK ?? 00449000
- BO RETRY1 YES -- RETRY ONCE 00450000
- TM IOERDATA,1 CHANNEL 9 ??? 00451000
- BO IGNORE YES -- IGNORE 00452000
- CLI RDEVTYPE,TYP1443 1443 PRINTER ?? 00453000
- BE FATAL1 YES -- FATAL ERROR 00454000
- TM IOERDATA,DATACHK DATA CHECK ??? (1403) 00455000
- BO NXTDELAY YES -- GET NEXT CCW 00456000
- B FATAL1 FATAL ERROR ALL OTHERS 00457000
- SPACE 00458000
- TSTPUN EQU * HERE FOR 2540 AND 2520 PUNCH 00459000
- TM IOERDATA,EQCHK EQUIPMENT CHECK ??? 00460000
- BZ TSTPUNNR NO -- 00461000
- BAL R5,GETRCAW GET RESTART CAW 00462000
- CLI IOBRCNT,X'14' 20 CONTINOUS ERRORS ??? 00463000
- BH FATAL YES -- 00464000
- B RETRY RETRY THE OPERATION 00465000
- TSTPUNNR TM IOERDATA,INTREQ INTERVENTION REQUIRED ?? 00466000
- BO DELAY YES -- WAIT FOR IT 00467000
- TM IOERDATA,BUSOUT BUSOUT CHECK ??? 00468000
- BO RETRY1 YES -- RETRY ONCE 00469000
- B FATAL1 COMMAND REJECT AND ALL OTHERS 00470000
- SPACE 00471000
- SPACE 3 00472000
- NXTDELAY EQU * HERE TO GET NEXT CCW AND OPERATOR 00473000
- * INTERVENTION 00474000
- CLC =C'SEP ',IOBMISC2 SEPARATOR ROUTINE ? 00475000
- BE FATAL YES - FATAL ERROR CONDITION 00476000
- CLC =C'TCS ',IOBMISC2 3800 SETUP ROUTINE ? @V60B9BA 00476300
- BE FATAL YES - FATAL ERROR @V60B9BA 00476600
- BAL R5,IGNORE1 GET NEXT CCW 00477000
- B DELAY3 AND GIVE INTERVENTION MESSAGE 00478000
- SPACE 2 00479000
- DELAY EQU * HERE TO SET UP FOR DE FROM DEVICE AFTER OPERATOR 00480000
- * HAS READIED IT FOLLOWING AN ERROR 00481000
- OI IOERFLG1,IOERPEND INDICATE DEVICE END AND SHORT 00482000
- * MESSAGE 00483000
- OI IOERFLG2,IOERCEMD DO NOT RECORD ERROR 00484000
- DELAY2 BAL R5,GETRCAW GET RESTART CAW 00485000
- DELAY3 TM VMOSTAT,VMCF CONSOLE FUNCTION ? @VW01227 00486000
- BZ DELAY4 NO -- @VW01227 00487000
- CLC =C'LOADBUF',VMCOMND LOADBUFF COMMAND ? @VW01227 00488000
- BE FATAL YES - DON'T HANG USER @VW01227 00489000
- DELAY4 CLI IOBRCNT,X'14' 20 CONTINOUS ERRORS ? @VW01227 00490000
- BH FATAL YES -- FATAL ERROR 00491000
- ST R1,IOBRCAW SET UP RESTART CCW 00492000
- OI IOERFLG1,IOERDEPD SET DEVICE END PENDING 00493000
- MVI IOERIND3,IOERACT INDICATE OPERATOR ACTION 00494000
- CLI RDEVTYPE,TYP3800 IS IT A 3800 PRINTER ? @V60B9BA 00494300
- BNE DELAY4A XFER IF NOT (PRINT MSG) @VA09266 00494500
- TM SAVEWRK1,X'80' 3800 MSG PRINTED? @VA09266 00494700
- BO DELAY4B XFER IF SO @VA09266 00494900
- DELAY4A BAL R5,MSGERR INFORM OPERATOR @VA09266 00495100
- DELAY4B TM IOERFLG1,IOERDERD DEVICE END RECEIVED ?? @VA09266 00495300
- BO EXITDE YES -- WHILE PRINTING MSG @VA00701 00497000
- NI IOBFLAG,X'FF'-IOBRSTRT RESET RESTART FLAG 00498000
- NI IOBSTAT,X'FF'-IOBFATAL RESET FATAL FLAG 00499000
- OI RDEVSTAT,RDEVNRDY INDICATE INTERVENTION REQUIRED 00500000
- B EREXIT EXIT 00501000
- SPACE 3 00502000
- IGNORE1 EQU * HERE TO GET NEXT CCW 00503000
- SR R1,R1 CLEAR CCW ADDRESS REG 00504000
- ICM R1,B'0111',IOERCSW+1 POINT TO NEXT CCW 00505000
- CLI 0(R1),X'08' IS IT A TIC ?? 00506000
- BNE *+8 NO - USE THIS CCW 00507000
- ICM R1,B'0111',1(R1) GET TRANSFER ADDRESS 00508000
- BZ FATAL1 RESTART ADDRESS INVALID @VA00701 00509000
- ST R1,IOBRCAW STORE RESTART CAW 00510000
- BR R5 RETURN TO CALLER 00511000
- SPACE 00512000
- IGNORE EQU * HERE TO IGNORE THE ERROR 00513000
- OI IOERFLG2,IOERCEMD DO NOT RECORD IOERBLOK 00514000
- IGNORE2 BAL R5,IGNORE1 GET NEXT CCW 00515000
- EXITDE NI IOBFLAG,X'FF'-(IOBERP+IOBRSTRT) RESET FLAGS 00516000
- NI RDEVSTAT,X'FF'-RDEVNRDY RESET INTERVENTION REQUIRED FLAG 00517000
- NI IOERFLG1,X'FF'-IOERPEND RESET PENDING FLAG 00518000
- CLC =C'SEP ',IOBMISC2 PRINTING SEPARATOR PAGE 00519000
- BE RETRYDE YES -- DO NOT FLUSH OR BACKSPACE 00520000
- CLC =C'TCS ',IOBMISC2 SETTING UP THE 3800 PRINTER @V60B9BA 00520300
- BE RETRYDE YES - DON'T FLSH OR BACKSPAC@V60B9BA 00520600
- TM RDEVFLAG,RDEVTERM+RDEVBACK+RDEVRSTR FLUSH OR BACKSPACE 00521000
- BZ RETRYDE NO -- 00522000
- OI IOBCSW+4,CE FORCE CHANNEL END FOR DMKRSP 00523000
- MVC IOBCSW(4),IOBRCAW SET CSW FOR DMKRSP BACKSPACE 00524000
- OI IOERFLG2,IOERCEMD DO NOT RECORD IOERBLOK 00525000
- B EREXIT1 00526000
- SPACE 3 00527000
- RETRY1 EQU * HERE TO DO IMMEDIATE RETRY 00528000
- BAL R5,GETRCAW GO CALCULATE RESTART CAW 00529000
- CLI IOBRCNT,X'01' RETRYED ONCE ?? 00530000
- BH FATAL YES -- FATAL ERROR 00531000
- RETRY ST R1,IOBRCAW PUT RESTART CAW IN IOBLOK 00532000
- RETRYDE OI IOBFLAG,IOBRSTRT REQUEST RESTART 00533000
- NI IOBFLAG,X'FF'-IOBERP RESET ERP INCONTROL 00534000
- B EREXIT2 AND EXIT TO IOS 00535000
- SPACE 2 00536000
- FATAL1 LTR R7,R7 IOERBLOK PRESENT ?? @VA00701 00537000
- BZ *+8 NO - @VA00701 00538000
- OI IOERFLG2,IOERCEMD DO NOT RECORD THIS ERROR @VA00701 00539000
- SPACE 00540000
- FATAL EQU * HERE TO INDICATE FATAL ERROR TO IOSUPP 00541000
- OI IOBSTAT,IOBFATAL SET FATAL FLAG 00542000
- NI RDEVSTAT,X'FF'-RDEVNRDY RESET NOT READY FLAG 00543000
- LTR R7,R7 IOERBLOK PRESENT ?? 00544000
- BZ EREXIT1 NO - FORGET MESSAGE 00545000
- NI IOERFLG1,X'FF'-IOERPEND FORCE LONG MESSAGE FORMAT 00546000
- MVI IOERIND3,IOERINFO ACTION CODE OF I 00547000
- BAL R5,MSGERR NOTIFY OPERATOR 00548000
- EREXIT1 EQU * 00549000
- NI IOBFLAG,X'FF'-(IOBRSTRT+IOBERP) RESET FLAGS 00550000
- CLI RDEVTYPE,TYP3211 3211 PRINTER ?? 00551000
- BNE EREXIT2 NO -- 00552000
- TM IOBSTAT,IOBFATAL FATAL I/O ERROR ?? 00553000
- BZ EREXIT2 NO -- 00554000
- LTR R7,R7 IOERBLOK PRESENT ?? 00555000
- BZ EREXIT2 NO - EXIT 00556000
- TM IOERCSW+5,IFCC+CCC+CDC IS CHANNEL ERROR @VA01254 00557000
- * INDICATED ? 00558000
- BNZ EREXIT2 YES, GO EXIT @VA01254 00559000
- TM IOERDATA+1,X'80' COMMAND RETRY ?? 00560000
- BZ EREXIT2 NO -- 00561000
- CLI RDEVTYPE,TYP3203 IS IT A 3203 PRINTER ?? @V386298 00561300
- BE EREXIT2 YES--DON'T DO A RESET @V386298 00561600
- L R1,=A(DMKRSP83) ADDRESS OF 3211 CONTROL UNIT 00562000
- ST R1,IOBRCAW RESET CCW AND STORE IN RESTART CAW 00563000
- OI IOBFLAG,IOBRSTRT INDICATE RESTART 00564000
- EREXIT2 MVI IOBRCNT+1,X'00' RESET COUNT TO ZERO 00565000
- SPACE 3 00566000
- EREXIT EQU * EXIT FROM RSERR 00567000
- ICM R1,B'1111',IOBIOER ADDRESS OF IOERBLOK 00568000
- BZ EXIT NO -- 00569000
- TM IOERCSW+5-IOERBLOK(R1),IFCC+CCC+CDC IS CHANNEL @VA01254 00570000
- * ERROR INDICATED ? 00571000
- BZ CKEND NO, GO FRET IOERBLOK @VA01254 00572000
- LR R3,R1 SAVE IOERBLOK POINTER @VA01254 00573000
- L R1,IOERCCRA-IOERBLOK(R3) CHANNEL REC ADDR @V508690 00574500
- L R0,IOERCCRL-IOERBLOK(R3) CHANNEL REC LENGTH @V508690 00575500
- CALL DMKFRET RELEASE STORAGE @VA01254 00578000
- LR R1,R3 GET IOERBLOK POINTER @VA01254 00579000
- CKEND EQU * @VA01254 00580000
- LA R0,IOERSIZE SIZE OF BLOK 00581000
- AH R0,IOEREXT-IOERBLOK(,R1) ADD LENGTH OF EXTENSION 00582000
- CALL DMKFRET FRET IOERBLOK 00583000
- XC IOBIOER(4),IOBIOER CLEAR POINTER IN IOBLOK 00584000
- EXIT EQU * 00585000
- LTR R7,R7 IOERBLOK PRESENT ?? 00586000
- BZ *+8 NO - 00587000
- NI IOERFLG1,X'FF'-IOERERP RESET DMKRSERR IN CONTROL 00588000
- SVC 16 RETURN TO CALLER'S CALLER (DMKIOS) 00589000
- EXIT 00590000
- EJECT 00590050
- RDOPCK EQU * @VA03757 00590100
- TM RDEVTYPC,CLASURI INPUT DEVICE ?? @VA03757 00590150
- BZR R5 NO, RETURN TO IN LINE CODE @VA03757 00590200
- L R1,IOERCSW GET FAILING CCW PLUS 8 @VA03757 00590250
- LA R1,0(,R1) CLEAR HI-ORDER BYTE @VA03757 00590300
- S R1,F8 GET FAILING CCW ADDRESS @VA03757 00590350
- BM NOTREAD NO CCW @VA03757 00590400
- TM 0(R1),X'01' CONTROL OP @VA03757 00590450
- BO NOTREAD YES @VA03757 00590500
- OI IOERFLG3,IOERREAD MUST BE READ OP @VA03757 00590550
- NOTREAD EQU * @VA03757 00590600
- BR R5 RETURN TO IN LINE CODE @VA03757 00590650
- SPACE 2 00590700
- SPACE 3 00591000
- GETRCAW EQU * HERE TO CALCULATE RESTART CAW 00592000
- IC R0,IOBRCNT GET ERROR RETRY COUNT 00593000
- AL R0,F1 UPDATE BY ONE 00594000
- STC R0,IOBRCNT AND STORE 00595000
- L R1,IOBCAW POINT TO 1ST CCW IN BUFFER 00596000
- TM IOBFLAG,IOBRSTRT IS THIS A RESTART CONDITION ?? 00597000
- BZ *+8 NO - IOBRCAW NOT VALID 00598000
- L R1,IOBRCAW YES - USE RESTART CAW 00599000
- LTR R1,R1 VALID RESTART CAW ? @VA00701 00600000
- BZ FATAL1 NO - FATAL ERROR @VA00701 00601000
- TM IOBSTAT,IOBCC1 STATUS STORED ON INITIAL SELECTION? 00602000
- BCR 1,R5 YES -- RESTART AT 1ST CCW 00603000
- L R1,IOERCSW GET ADDRESS OF LAST USED CCW+8 00604000
- LA R1,0(R1) CLEAR HIGH BYTE 00605000
- LTR R1,R1 CCW ADDRESS PRESENT 00606000
- BNZ CSWOK YES -- OK 00607000
- ICM R1,B'1111',IOBRCAW NO - USE RESTART CAW @VA00701 00608000
- BZ FATAL1 INVALID IOBRCAW ADDRESS @VA00701 00609000
- BR R5 .. 00610000
- CSWOK S R1,F8 AND POINT TO CCW 00611000
- CL R1,IOBRCAW ERROR ON SAME CCW ?? 00612000
- BE *+8 YES -- 00613000
- MVI IOBRCNT,X'01' SET RETRY COUNT TO ONE 00614000
- CLI RDEVTYPC,CLASURI INPUT DEVICE ?? 00615000
- BCR 8,R5 YES - CAW IS CORRECT 00616000
- CLI RDEVTYPE,TYP2520P STAND ALONE 2520 PUNCH ?? 00617000
- BCR 8,R5 YES CAW IS CORRECT FOR 2520 @VA05776 00618000
- CLI RDEVTYPE,TYP2540P IS IT 2540 PUNCH ?? 00619000
- BCR 7,R5 NO -- CAW IS CORRECT 00620000
- TM IOERDATA,EQCHK WAS IT EQUIPMENT CHECK ON PUNCH? 00621000
- BCR 8,R5 NO -- CAW IS CORRECT 00622000
- * IF ERROR IS ON SAME CCW RESTART WITH THAT CCW 00623000
- CL R1,IOBRCAW IS ERROR ON SAME CCW ? 00624000
- BCR 8,R5 YES - CAW IS CORRECT 00625000
- * HERE ON EQUIPMENT CHECK ON WRITE TO PUNCH -- EQUIPMENT CHECK 00626000
- * IS FOR PREVIOUS CARD PUNCHED -- MUST BACK UP AND REPUNCH 00627000
- SPACE 00628000
- TM RDEVFLAG,RDEVACNT PUNCHING ACCOUNTING CARDS ?? 00629000
- BZ TSTSEP NO TEST FOR SEPARATOR CARD 00630000
- L R1,ACNTBACK-ACNTBLOK(R1) GET ADDRESS OF PREVIOUS CCW 00631000
- LTR R1,R1 BACK CHAIN ADDRESS ZEROES ?? 00632000
- BNZ *+8 NO -- GOOD RESTART ADDRESS 00633000
- L R1,IOBCAW RESTART WITH IOB CAW 00634000
- BR R5 RETURN TO CALLER 00635000
- SPACE 00636000
- TSTSEP CLC IOBMISC2(4),=C'SEP ' PUNCHING SEPARATOR CARDS 00637000
- BNE NORMERR NO -- NORMAL ERROR 00638000
- S R1,F8 BACK UP TO PREVIOUS CCW 00639000
- CL R1,IOBCAW ADDRESS BELOW IOB CAW ?? 00640000
- BNL *+8 NO -- GOOD RESTART ADDRESS 00641000
- L R1,IOBCAW YES - RESTART WITH IOBCAW 00642000
- BR R5 RETURN TO CALLER 00643000
- SPACE 00644000
- NORMERR L R1,8(R1) PICK UP TIC ADDRESS 00645000
- S R1,F4 BACK UP FOUR TO BACK POINTER 00646000
- LA R1,0(R1) CLEAR TIC OP-CODE 00647000
- L R1,0(R1) ADDRESS OF -2 BUFFER CCW 00648000
- LTR R1,R1 VALID ADDRESS ?? 00649000
- BZ FATAL NO - CAN'T RESTART 00650000
- SPACE 2 00651000
- UPDTCSW EQU * HERE TO UPDATE IOERCSW ON CONDITION CODE 1 00652000
- TM IOBSTAT,IOBCC1 STATUS STORED ON SIO ?? 00653000
- BCR 8,R5 NO -- FULL CSW PRESENT 00654000
- UPDTCSW1 CLC IOERCSW+1(3),ZEROES CCW ADDRESS PRESENT IN CSW ?? 00655000
- BCR 7,R5 YES -- 00656000
- L R15,IOBCAW GET CAW 00657000
- TM IOBFLAG,IOBRSTRT WAS THIS A RESTART ?? 00658000
- BZ *+8 NO -- USE IOBCAW 00659000
- L R15,IOBRCAW RESTART - USE IOBRCAW 00660000
- LTR R15,R15 ADDRESS PRESENT ? 00661000
- BCR 8,R5 NO - RETURN TO CALLER 00662000
- AL R15,F8 UPDATE TO CCW + 8 00663000
- STCM R15,B'0111',IOERCSW+1 FILL IN CSW FOR CONDITION 1 00664000
- BR R5 RETURN TO CALLER 00665000
- SPACE 2 00666000
- SPACE 3 00667000
- MSGERR EQU * HERE TO NOTIFY OPERATOR OF IO ERROR OR ACTION 00668000
- NI IOERIND3,X'FF'-(IOERIGN+IOERETRY) RESET FLAGS 00669000
- * 00670000
- * MATCH MESSAGE NUMBER TO ERROR 00671000
- * 00672000
- MVI IOERNUM,21 NO DEVICE MESSAGE 00673000
- TM IOBSTAT,IOBCC3 CONDITION CODE 3 00674000
- BO IDFOUND YES -- 00675000
- MVI IOERNUM,20 CHANNEL ERROR MESSAGE 00676000
- TM IOBCSW+5,CDC+CCC+IFCC+CHC+PRGC+PRTC+PCI CHANNEL ERRORS ? 00677000
- BNZ IDFOUND YES -- 00678000
- SR R1,R1 CLEAR REG 00679000
- MVI IOERNUM,3 EQUIPMENT CHECK MESSAGE 00680000
- ICM R1,B'0001',IOERDATA FIRST SENSE BYTE 00681000
- BZ IDFOUND FORCE CHANNEL CHECK MESSAGE 00682000
- IC R14,RDEVTYPE DEVICE TYPE 00683000
- LA R15,MSGTABLE-3 ADDRESS OF MESSAGE TABLE 00684000
- IDLOOP A R15,F3 POINT TO NEXT ENTRY 00685000
- EX R14,TMTYPE CORRECT DEVICE TYPE ?? 00686000
- BNO IDLOOP NO -- 00687000
- EX R1,TMERR ERROR MATCH ?? 00688000
- BZ IDLOOP NO -- 00689000
- MVC IOERNUM(1),2(R15) MOVE IN MSG ID 00690000
- IDFOUND ICM R0,B'1110',ID+3 INSERT MODULE ID 00691000
- CLI IOERNUM,1 INTERVENTION REQ MSG ? @VA00701 00692000
- BE *+8 YES - SHORT OR LONG MSG FORMAT @VA00701 00693000
- NI IOERFLG1,X'FF'-IOERPEND FORCE LONG MSG FORMAT @VA00701 00694000
- CALL DMKMSWR,AFFINITY @V4075A0 00695100
- BR R5 00696000
- SPACE 3 00697000
- ERR35XX EQU * HERE FOR 3505 AND 3525 ERROR RECOVERY 00698000
- TM IOERDATA,1 PERMANENT ERROR ?? 00699000
- BO FATAL1 YES -- 00700000
- SPACE 00701000
- SENSE1 TM IOERDATA+1,X'80' PERMANENT ERROR ?? 00702000
- BO FATAL1 YES -- FATAL ERROR 00703000
- TM IOERDATA+1,X'10' RETRY AFTER INTERVENTION REQ ?? 00704000
- BZ RETRY1 NO -- RETRY ONCE 00705000
- TM IOERDATA,EQCHK EQUIPMENT CHECK ? 00706000
- BO DELAY2 YES -- 00707000
- TM IOERDATA,INTREQ INTERVENTION REQUIRED ?? 00708000
- BO DELAY YES - 00709000
- B DELAY2 -- 00710000
- SPACE 2 00711000
- ERR3211 EQU * HERE TO GET 3211 OR 3203 PRINTER ERROR @V386298 00712000
- * INFORMATION FOR ERROR RECORDING 00713000
- SPACE 00714000
- LA R5,GETDATA SET UP RETURN ADDRESS 00715000
- CLI IOEREXT+1,XOBREXT OBR3211 BLOK PRESENT ?? 00716000
- BCR 8,R5 YES -- 00717000
- XC SAVEWRK1(4),SAVEWRK1 CLEAR SAVEWRK1 AREA 00718000
- TM IOERDATA,DATACHK DATA CHECK ERROR ?? 00719000
- BZ TEST1 NO -- 00720000
- * 00721000
- * PROCESS ROUTINES RT1, RT2, RT3 AND RT5 FOR UCSB DATA 00722000
- * 00723000
- MVI SAVEWRK1,XOBRRT1+XOBRRT2+XOBRRT3+XOBRRT5 00724000
- TM IOERDATA+1,X'10' LINE PLACEMENT ERROR ?? FCB 00725000
- BCR 8,R5 NO -- ALL SET UP FOR UCSB ERROR 00726000
- MVI SAVEWRK1,XOBRRT6 DO ROUTINE RT6 FOR FCB ERROR 00727000
- BR R5 GO GET ERROR DATA 00728000
- SPACE 00729000
- TEST1 TM IOERDATA,X'22' LOAD CHECK ? BUS CHECK ? 00730000
- BZ TEST2 NO -- 00731000
- L R6,IOERCSW LOCATE CCW OP-CODE 00732000
- LA R6,0(R6) .. 00733000
- SL R6,F8 .. 00734000
- BC 6,TEST2 NO ADDRESS CHECK NEXT 00735000
- MVI SAVEWRK1,XOBRRT6 ROUTINE FOR FCB DATA 00736000
- CLI 0(R6),X'63' LOAD FCB OP-CODE ?? 00737000
- BCR 8,R5 YES -- 00738000
- MVI SAVEWRK1,XOBRRT5 ROUTINE FOR UCSB DATA 00739000
- CLI 0(R6),X'FB' LOAD UCSB OP-CODE 00740000
- BCR 8,R5 YES - 00741000
- TM IOERDATA+3,X'A0' FCB OR UCSB PARITY CHECK ? 00742000
- BNZ TEST3 YES -- 00743000
- MVI SAVEWRK1,XOBRRT1+XOBRRT2+XOBRRT3 ROUTINE 1 2 3 00744000
- BR R5 .. 00745000
- SPACE 00746000
- TEST2 TM IOERDATA+1,X'02' MECHANICAL MOTION ERROR ?? 00747000
- BZ TEST3 NO -- 00748000
- * 00749000
- * SET UP FOR ROUTINES RT1, RT2, RT3, RT4, AND RT5 00750000
- * 00751000
- MVI SAVEWRK1,XOBRRT1+XOBRRT2+XOBRRT3+XOBRRT4+XOBRRT5 00752000
- BR R5 GET ERROR DATA 00753000
- SPACE 00754000
- TEST3 MVI SAVEWRK1,XOBRRT5 ROUTINE 5 00755000
- TM IOERDATA+3,X'80' UCSB PARITY ??? 00756000
- BCR 1,R5 YES -- GET ERROR DATA 00757000
- MVI SAVEWRK1,XOBRRT6 ROUTINE 6 00758000
- TM IOERDATA+3,X'20' FCB PARITY ?? 00759000
- BCR 1,R5 YES -- GET FCB DATA 00760000
- * ROUTINES 1, 2, AND 3. 00761000
- MVI SAVEWRK1,XOBRRT1+XOBRRT2+XOBRRT3 00762000
- TM IOERDATA+3,X'58' PLB PARITY ? COIL PROTECT ? 00763000
- * HAMMER FILE CHECK ? 00764000
- BCR 7,R5 YES -- 00765000
- TM IOERDATA,X'04' BUFFER PARITY CHECK ?? 00766000
- BZ TEST3211 NO -- DO NORMAL RECORDING 00767000
- MVI SAVEWRK1,XOBRRT6 ROUTINE FOR FCB DATA 00768000
- TM IOERDATA+1,X'10' PRINT LINE PLACEMENT ?? 00769000
- BCR 1,R5 YES -- GET FCB DATA 00770000
- MVI SAVEWRK1,XOBRRT5 ROUTINE FOR UCSB DATA 00771000
- SPACE 2 00772000
- GETDATA EQU * HERE TO SET CCW TO GET ERROR DATA FROM PRINTER 00773000
- SPACE 00774000
- OI IOERFLG1,IOERXERP INDICATE ERP GETTING OBR DATA 00775000
- CLI IOEREXT+1,XOBREXT XOBR3211 BLOK PRESENT ?? 00776000
- BE RT1 YES -- CONTINUAL 00777000
- LA R0,XOBRSIZE SIZE OF XOBR3211 BLOK 00778000
- CALL DMKFREE GET STORAGE 00779000
- LA R0,XOBREXT SIZE OF XOBR3211 BLOK 00780000
- STH R0,IOEREXT SAVE LENGTH 00781000
- LR R9,R1 SAVE ADDRESS 00782000
- LR R0,R9 CLEAR XOBR3211 00783000
- LA R1,XOBRSIZE*8 .. 00784000
- SR R14,R14 .. 00785000
- SR R15,15 .. 00786000
- MVCL R0,R14 CLEAR AREA 00787000
- SPACE 00788000
- LR R1,R7 OLD IOERBLOK ADDRESS 00789000
- LR R7,R9 ADDRESS OF NEW IOERBLOK EXT 00790000
- MVC 0(IOERSIZE*8,R7),0(R1) COPY IOERBLOK 00791000
- ST R7,RDEVIOER SAVE NEW IOERBLOK ADDRESS 00792000
- LA R0,IOERSIZE SIZE OF NORMAL IOERBLOK 00793000
- CALL DMKFRET FRET OLD BLOCK 00794000
- SPACE 00795000
- MVC XOBRSTAT(1),SAVEWRK1 SAVE ERROR ROUTINE STATUS 00796000
- MVC XOBRMIS2(4),IOBRCAW SAVE RESTART CAW 00797000
- MVC XOBRMIS1(2),IOBFLAG SAVE IOBFLAG AND STAT 00798000
- LA R9,4 NUMBER OF CCWS 00799000
- LA R14,CKRDCCW ADDRESS OF FIRST CCW 00800000
- LA R15,XOBRCCW1 ADDRESS OF AREA IN IOERBLOK EXT 00801000
- GETCCW LM R5,R6,0(R14) GET CCW 00802000
- ALR R5,R7 UPDATE DATA ADDRESS 00803000
- STM R5,R6,0(R15) STORE CCW IN XOBRCCW AREA 00804000
- A R14,F8 UPDATE FROM AND TO ADDRESS 00805000
- A R15,F8 .. 00806000
- BCT R9,GETCCW DO FOUR CCWS 00807000
- SPACE 2 00808000
- RT1 EQU * HERE TO READ CHECK PRINT LINE BUFFER INFORMATION 00809000
- ICM R9,B'1111',IOBIOER ERROR BLOK PRESENT ?? 00810000
- BZ RT1A NO -- 00811000
- MVC IOERPNT-IOERBLOK(4,R9),IOERPNT CHAIN NEW IOERBLOK 00812000
- ST R9,IOERPNT 2ND IN CHAIN 00813000
- SR R5,R5 AND CLEAR 00814000
- ST R5,IOBIOER IOB POINTER TO ERROR BLOK 00815000
- XR R7,R9 UPDATE IOERCSW 00816000
- XR R9,R7 .. 00817000
- XR R7,R9 .. 00818000
- BAL R5,UPDTCSW1 UPDATE IOERCSW NOT CC=1 00819000
- LR R7,R9 RESTORE ADDRESS OF IOERBLOK 00820000
- RT1A TM XOBRSTAT,XOBRRT1 THIS ROUTINE SCHEDULED ?? 00821000
- BZ RT2 NO -- 00822000
- NI XOBRSTAT,X'FF'-XOBRRT1 RESET ROUTINE FLAG 00823000
- LA R1,XOBRCCW1 ADDRESS OF CHECK READ CCW 00824000
- B ERROBR AND EXIT TO IOS 00825000
- SPACE 00826000
- RT2 EQU * HERE TO READ PRINT LINE BUFFER DATA 00827000
- TM XOBRSTAT,XOBRRT2 THIS ROUTINE SCHEDULED ? 00828000
- BZ RT3 NO - 00829000
- LA R1,XOBRCCW2 ADDRESS OF PLB READ CCW 00830000
- NI XOBRSTAT,X'FF'-XOBRRT2 RESET ROUTINE FLAG 00831000
- OI XOBRFLAG,XOBRT3 INDICATE BUFFER TYPE 3 INFORMATION 00832000
- B ERROBR AND EXIT TO IOS 00833000
- SPACE 00834000
- RT3 EQU * HERE TO LOCATE THE FIRST CHARACTER IN ERROR 00835000
- TM XOBRSTAT,XOBRRT3 THIS ROUTINE SCHEDULED ? 00836000
- BZ RT5 NO -- 00837000
- LA R5,XOBR512 ADDRESS OF PRINT LINE BUFFER DATA 00838000
- LA R6,XOBR150 ADDRESS OF CHECK PLB DATA 00839000
- LA R0,1 CONSTANT OF 1 00840000
- LA R1,150 LENGTH OF BUFFER DATA 00841000
- CLI RDEVTYPE,TYP3203 IS IT A 3203 PRINTER ?? @V386298 00841200
- BNE CHARERR NO--CHECK 3211 PLB ERRORS @V386298 00841400
- LA R1,132 3203 PLB LENGTH @V386298 00841600
- CHARERR EQU * @V386298 00841800
- LA R14,10 NUMBER OF ERROR CHARACTER NEEDED 00842000
- LA R15,XOBR010 AREA TO PUT ERROR CHARACTERS 00843000
- RT3LP TM XOBRSTAT,XOBRRT4 ROUTINE 4 SCHEDULED ?? 00844000
- BO RT4A YES -- 00845000
- TM 0(R6),X'02' PRINT ERROR CHECK FOR THIS POSITION? 00846000
- BO RT3AA YES -- RECORD IT 00847000
- B RT3A CHECK NEXT 00848000
- RT4A EQU * @V386298 00848250
- CLI RDEVTYPE,TYP3203 IS IT A 3203 PRINTER ?? @V386298 00848500
- BNE RT4A3211 NO--CHECK 3211 PLB ERRORS @V386298 00848750
- TM 0(R6),PLB3203 CHECK 3203 PLB FOR ERRORS @V3M4036 00849000
- BO RT3A YES--DO NOT RECORD @V386298 00849250
- B RT3AA NO--MOVE ERROR CHAR. @V386298 00849500
- RT4A3211 TM 0(R6),X'04' CHECK 3211 PLB FOR ERRORS @V386298 00849750
- BO RT3A YES - DO NOT RECORD 00850000
- RT3AA MVC 0(1,R15),0(R5) MOVE ERROR CHARACTER TO XOBR010 00851000
- AR R15,R0 ADD ONE TO XOBR010 ADDRESS REG 00852000
- BCT R14,*+8 DO ONLY 10 CHARACTERS 00853000
- B RT3B ALL DONE - 00854000
- SPACE 00855000
- RT3A BCT R1,*+8 END OF PLB DATA (150/132)?? @V386298 00856000
- B RT3B YES -- 00857000
- AR R6,R0 UPDATE PRINT LINE DATA ADDRESS 00858000
- AR R5,R0 UPDATE CHECK DATA ADDRESS 00859000
- B RT3LP AND CONTINUAL 00860000
- SPACE 00861000
- RT3B NI XOBRSTAT,X'FF'-(XOBRRT3+XOBRRT4) RESET FLAGS 00862000
- XC XOBR512(150),XOBR512 CLEAR AREA FOR UCSB DATA 00863000
- SPACE 00864000
- RT5 EQU * HERE TO READ UCSB DATA 00865000
- TM XOBRSTAT,XOBRRT5 THIS ROUTINE SCHEDULED ? 00866000
- BZ RT6 NO - 00867000
- NI XOBRSTAT,X'FF'-XOBRRT5 RESET ROUTINE 5 FLAG 00868000
- LA R1,XOBRCCW3 ADDRESS OF READ UCSB CCW 00869000
- OI XOBRFLAG,XOBRT1 INDICATE BUFFER TYPE 1 INFORMATION 00870000
- B ERROBR AND EXIT TO IOS 00871000
- SPACE 00872000
- RT6 EQU * HERE TO READ FCB INFORMATION 00873000
- TM XOBRSTAT,XOBRRT6 THIS ROUTINE SCHEDULED 00874000
- BZ ENDOBR NO -- 00875000
- NI XOBRSTAT,X'FF'-XOBRRT6 RESET FLAG 00876000
- LA R1,XOBRCCW4 ADDRESS OF READ FCB CCW 00877000
- OI XOBRFLAG,XOBRT2 INDICATE BUFFER TYPE 2 INFORMATION 00878000
- SPACE 00879000
- ERROBR ST R1,IOBRCAW SET RESTART CCW ADDRESS 00880000
- OI IOBFLAG,IOBRSTRT+IOBERP SET RESTART FLAG AND ERROR 00881000
- * ROUTINE IN CONTROL 00882000
- B EREXIT EXIT TO IOS 00883000
- SPACE 00884000
- ENDOBR EQU * HERE IF ALL DONE GETTING OBR DATA 00885000
- NI IOERFLG1,X'FF'-IOERXERP RESET OBR FLAG 00886000
- MVC IOBRCAW(4),XOBRMIS2 RESTORE RESTART CAW 00887000
- MVC IOBFLAG(2),XOBRMIS1 RESTORE FLAG AND STAT 00888000
- SPACE 00889000
- TEST3211 EQU * HERE FOR 3211/3203 PRINTER ERROR RECOVERY 00890000
- TM IOERDATA,EQCHK EQUIPMENT CHECK ?? 00891000
- BZ BUS32 NO -- 00892000
- SPACE 00893000
- TM IOERDATA+1,X'80' COMMAND RETRY ?? 00894000
- BO RETRY1 YES - RETRY ONCE 00895000
- SPACE 00896000
- TM IOERDATA+1,X'70' BYTE 1 BITS 1 2 3 00897000
- BNZ NXTDELAY YES -- WAIT FOR DEVICE END 00898000
- TM IOERDATA+1,X'02' BYTE 1 - BIT 6 MECHANICAL MOTION 00899000
- BO FATAL YES - FATAL ERROR 00900000
- B DELAY2 WAIT FOR DEVICE END 00901000
- SPACE 00902000
- BUS32 TM IOERDATA,BUSOUT BUSOUT CHECK ?? 00903000
- BO RETRY1 YES -- RETRY ONCE 00904000
- TM IOERDATA,DATACHK DATA CHECK ERROR ??? 00905000
- BO NXTDELAY YES -- WAIT FOR DEVICE END 00906000
- TM IOERDATA,X'04' BUFFER PARITY CHECK ?? 00907000
- BO FATAL YES -- 00908000
- TM IOERDATA,CMDREJ COMMAND REJECT ?? 00909000
- BO FATAL1 YES -- FATAL ERROR 00910000
- SPACE 00911000
- TM IOERDATA,X'02' LOAD CHECK ?? 00912000
- BO RETRY1 YES -- RETRY ONCE 00913000
- TM IOERDATA,X'40' INTERVENTION REQUIRED ?? 00914000
- BO DELAY YES -- 00915000
- TM IOERDATA+1,4 COMMAND SUPPRESSED ??? 00916000
- BO RETRY1 YES - RETRY ONCE 00917000
- TM IOERDATA,X'01' CHANNEL 9 ?? 00918000
- BO IGNORE YES, IGNORE, RESTART WITH NEXT 00918050
- B RETRY1 ... 00918090
- SPACE 3 00918130
- ERR3800 EQU * HERE FOR 3800 PRINTER ERROR RECOVERY @V60B9BA 00918170
- MVI SAVEWRK1,X'00' RESET LOCAL 3800 FLAG BYTE @VA09266 00918200
- TM IOERDATA,EQCHK EQUIPMENT CHECK ? @V60B9BA 00918250
- BZ ER3800B XFER IF NOT @V60B9BA 00918290
- TM IOERDATA+1,X'20' ERROR LOG FULL ? @V60B9BA 00918330
- BZ ER3800A1 XFER IF NOT @V60B9BA 00918370
- ST R10,SAVEWRK2 SAVE THE CURRENT IOBLOK @V60B9BA 00918410
- LA R0,IOBSIZE GET DUMMY IOB @V60B9BA 00918450
- CALL DMKFREE GET THE STORAGE @V60B9BA 00918490
- XC 0(IOBSIZE*8,R1),0(R1) CLEAR THE DUMMY IOB @V60B9BA 00918530
- LR R10,R1 NEED THE ADDRESSIBILITY @V60B9BA 00918570
- XC RDEVIOER,RDEVIOER CLEAR IOERBLOK @V60B9BA 00918610
- XC RDEVAIOB,RDEVAIOB CLEAR ACTIVE IO BLOCK @V60B9BA 00918650
- NI RDEVSTAT,X'FF'-RDEVBUSY RESET DEVICE BUSY @V60B9BA 00918690
- CALL DMKRSESD DO & RECORD SENSE ERROR LOG @V60B9BA 00918730
- CALL DMKFRET RETURN STORAGE FOR DUM IOB @V60B9BA 00918770
- L R10,SAVEWRK2 RESTORE ORIGINAL IOBLOK @V60B9BA 00918810
- ST R7,RDEVIOER RESTORE ORIG IOERBLOK @V60B9BA 00918850
- ST R10,RDEVAIOB RESTORE ACTIVE IOBLOK @V60B9BA 00918890
- OI RDEVSTAT,RDEVBUSY SET DEVICE BUSY @V60B9BA 00918930
- B RETRY1 RETRY THE CCW ONCE @V60B9BA 00918970
- SPACE 00919010
- ER3800A1 TM IOERDATA+1,X'10' CANCEL KEY ? @V60B9BA 00919050
- BO REQUEUE REQUEUE THE FILE @VA11761 00919100
- SPACE 00919130
- * IT MUST BE A HARDWARE OR PERMANENT ERROR 00919170
- SPACE 00919210
- TM IOERDATA+3,X'08' SYSTEM RESTART REQUIRED @VA13713 00919260
- BO REQUEUE XFER IF SO @V60B9BA 00919290
- SPACE 00919330
- DELAY38A TM IOERDATA+1,X'10' CANCEL KEY? @VA11761 00919340
- BO FATAL1 @VA11761 00919345
- DELAY38 LH R1,IOBRADD GET PRINTER ADDRESS @V60B9BA 00919370
- OI SAVEWRK1,X'80' 3800 MSG HAS BEEN PRINTED @VA09266 00919385
- CALL DMKCVTBH CONVERT TO PRINTABLE HEX @V60B9BA 00919410
- STCM R1,B'0111',SAVEWRK2 SAVE IT IN DATA AREA @V60B9BA 00919450
- MVI SAVEWRK2+3,X'00' DELIMITER FOR DMKERMSG @V60B9BA 00919490
- SR R1,R1 SET UP FOR STATUS BYTE @V60B9BA 00919530
- IC R1,IOERDATA+4 STATUS CODE @V60B9BA 00919570
- CALL DMKCVTBH CONVERT TO PRINTABLE HEX @V60B9BA 00919610
- STCM R1,B'0011',SAVEWRK3 PUT IT IN DATA AREA @V60B9BA 00919650
- LA R0,6 LENGTH OF DATA @V60B9BA 00919690
- ICM R0,B'1110',ID+3 MODULE ID @V60B9BA 00919730
- LA R1,SAVEWRK2 ADDRESS OF THE DATA @V60B9BA 00919770
- LA R2,242 BINARY MESSAGE NUMBER @V60B9BA 00919810
- ICM R2,B'1100',=X'B0C9' RETURN, OPERATOR, ALARM @V60B9BA 00919850
- * AND INFORMATION MESSAGE 00919890
- CALL DMKERMSG GO TYPE THE MESSAGE @V60B9BA 00919930
- TM IOERDATA,EQCHK EQUIPMENT CHECK ? @V60B9BA 00919970
- BO DELAY2 RECORD ERROR IF SO @V60B9BA 00920010
- TM IOERDATA+3,X'08' SYSTEM RESTART REQUIRED @VA13713 00920060
- BO DELAY2 RECORD ERROR IF SO @V60B9BA 00920090
- B DELAY WAIT FOR DE - DON'T RECORD @V60B9BA 00920130
- SPACE 00920170
- ER3800B TM IOERDATA,CMDREJ COMMAND REJECT ? @V60B9BA 00920210
- BO FATAL1 YES - FATAL ERROR @V60B9BA 00920250
- TM IOERDATA,BUSOUT BUS OUT CHECK ? @V60B9BA 00920290
- BO RETRY1 RETRY OPERATION ONCE @V60B9BA 00920330
- TM IOERDATA,DATACHK DATA CHECK @V60B9BA 00920370
- BO NXTDELAY YES - GET NEXT CCW @V60B9BA 00920410
- TM IOERDATA,INTREQ INTERVENTION REQUIRED ? @V60B9BA 00920450
- BZ ER3800C XFER IF NOT @V60B9BA 00920490
- TM IOERDATA+3,X'08' SYSTEM RESTART REQUIRED ? @V60B9BA 00920530
- BO REQUEUE REUEUE DELAY PURGE IF SO @V60B9BA 00920570
- B DELAY38 SEND MESSAGE OTHERWISE @V60B9BA 00920610
- SPACE 00920650
- ER3800C TM IOERDATA,X'01' CHANNEL 9 ? @V60B9BA 00920690
- BO IGNORE YES-IGNORE & RSTRT NEXT CCW @V60B9BA 00920730
- TM IOERDATA,X'02' LOAD CHECK ? @V60B9BA 00920770
- BZ FATAL FATAL ERROR IF NOT @V60B9BA 00920810
- SPACE 00920850
- * LOAD CHECK - SEND INFO BACK TO DMKTCS 00920890
- SPACE 00920930
- CLC =C'TCS ',IOBMISC2 3800 SETUP IN CONTROL ? @V60B9BA 00920970
- BNE FATAL1 FATAL ERROR IF NOT @V60B9BA 00921010
- MVC IOBMISC2(2),=C'LD' TELL TCS IT'S A LOAD CHECK @V60B9BA 00921050
- MVC IOBMISC2+2(2),IOERDATA+1 TELL HIM WHAT KIND @V60B9BA 00921090
- B EREXIT1 RETURN WITH NO FATAL ERROR @V60B9BA 00921130
- * AND NO RESTART @V60B9BA 00921170
- SPACE 00921210
- *. 00921250
- * THE SYSTEM RESTART BIT IS ON. THE PAGE BUFFER MUST HAVE 00921290
- * BEEN DESTROYED. WE MUST TAKE ALL THE FILES THAT WERE ON 00921330
- * THE DELAY PURGE QUEUE AND REQUEUE THEM ONTO THE PRINTER 00921370
- * OR PUNCH CHAIN. WE SEND MESSAGES DMKRSE255I AND DMKRSE252I 00921410
- * INFORMING THE OPERATOR OF WHAT JUST OCCURRED. 00921450
- *. 00921490
- SPACE 00921530
- REQUEUE LH R1,IOBRADD PRINTER ADDRESS FOR MESSAGE @V60B9BA 00921570
- CALL DMKCVTBH CONVERT TO PRINTABLE HEX @V60B9BA 00921610
- STCM R1,B'0111',SAVEWRK2 STORE PRINTER ADDRESS @V60B9BA 00921650
- MVI SAVEWRK2+3,X'00' DELIMITER FOR DMKERMSG @V60B9BA 00921690
- TM IOERDATA+1,X'10' CANCEL KEY? @VA11761 00921700
- BO REQLOOP @VA11761 00921705
- LH R1,IOERDATA+20 PAGE BACKUP COUNT @V60B9BA 00921730
- CALL DMKCVTBD CONVERT TO DECIMAL @V60B9BA 00921770
- ST R1,SAVEWRK3 SAVE IT FOR DMKERMSG @V60B9BA 00921810
- LA R0,8 LENGTH OF DATA @V60B9BA 00921850
- ICM R0,B'1110',ID+3 MODULE ID @V60B9BA 00921890
- LA R1,SAVEWRK2 ADDR OF DATA AREA @V60B9BA 00921930
- LA R2,255 MESSAGE NUMBER @VMI0027 00921970
- ICM R2,B'1100',=X'B0C9' RTN, OP, ALARM, INFO MSG @V60B9BA 00922010
- CALL DMKERMSG SEND THE MESSAGE @V60B9BA 00922050
- SPACE 00922090
- *. 00922130
- * WE NOW TAKE EACH SPOOL FILE THAT IS ON THE DELAYED 00922170
- * PURGE QUEUE AND REQUEUE IT ON ITS ORIGINAL 00922210
- * QUEUE (PRINTER). IN ADDITION, EACH SUCH FILE 00922250
- * IS PLACED IN 'SYSTEM HOLD'. FINALLY, THE OPERATOR IS 00922290
- * SENT DMKRSE252I FOR EACH FILE INFORMING HIM OF WHAT WAS DONE. 00922330
- *. 00922370
- SPACE 00922410
- REQLOOP L R4,RDEVDELP FIRST FILE ON DEL PUR Q @V60B9BA 00922450
- LTR R4,R4 ANY MORE LEFT ? @V60B9BA 00922490
- BZ DELAY38A @VA11761 00922535
- USING SFBLOK,R4 TEMPORARY ADDRESSIBILITY @V60B9BA 00922570
- MVC RDEVDELP,SFBPNT TAKE IT OFF DEL PURGE QUEUE @V60B9BA 00922610
- L R1,=A(DMKRSPPR) PRINTER CHAIN START @V60B9BA 00922650
- OI SFBFLAG,SFBRECER+SFBSHOLD INDICATE ALLOCATION @V60B9BA 00922690
- * INCOMPLETE AND SYSTEM HOLD @V60B9BA 00922730
- L R2,0(,R1) SAVE PTR TO FIRST ON CHAIN @V60B9BA 00922770
- ST R4,0(,R1) RECHAIN DEL PURGE FILE @V60B9BA 00922810
- ST R2,SFBPNT CHAIN OTHER FILE BEHIND IT @V60B9BA 00922850
- SPACE 00922890
- * TELL OPERATOR ABOUT IT. PRINTER ADDR IS IN SAVEWRK2 00922930
- SPACE 00922970
- LH R1,SFBFILID GET SPOOL FILE NUMBER @V60B9BA 00923010
- CALL DMKCVTBD CONVERT TO EBCDIC DECIMAL @V60B9BA 00923050
- ST R1,SAVEWRK3 PUT IT IN DATA AREA @V60B9BA 00923090
- LA R0,8 LENGTH OF DATA AREA @V60B9BA 00923130
- ICM R0,B'1110',ID+3 MODULE ID @V60B9BA 00923170
- LA R1,SAVEWRK2 ADDRESS OF DATA AREA @V60B9BA 00923210
- LA R2,252 MESSAGE NUMBER @V60B9BA 00923250
- ICM R2,B'1100',=X'B0C9' RTN, OP, ALARM, INFO MSG @V60B9BA 00923290
- CALL DMKERMSG TYPE THE MESSAGE @V60B9BA 00923330
- B REQLOOP DO FOR NEXT FILE ON QUEUE @V60B9BA 00923370
- DROP R4 NO LONGER NEEDED @V60B9BA 00923410
- SPACE 3 00923450
- CHANERR EQU * HERE FOR INTERFACE OR CHAN CON CK 00923490
- SPACE 00923530
- * R1 = ADDR OF FAILING CCW 00923570
- * R2 = DEVICE ACTION TABLE ADDR 00923610
- * R3 = TERMINATION CODE 00923650
- * R4 = SEQUENCE CODE 00923690
- * R15 = BRANCH INDEX OUT OF TERMINATION SEQUENCE ROUTINE 00928000
- SPACE 00929000
- TM IOBSTAT,IOBCC1 CONDITION CODE 1 ON SIO ? 00930000
- BO RETRY1 YES -- RETRY ONCE 00931000
- SR R1,R1 LOCATE FAILING CCW 00932000
- ICM R1,B'0111',IOERCSW+1 CCW ADDRESS + 8 00933000
- BZ FATAL CCW ADDRESS MISSING - FATAL 00934000
- S R1,F8 POINT TO FAILING CCW 00935000
- SPACE 00936000
- SR R3,R3 CLEAR TERMINATION REG 00937000
- SR R4,R4 CLEAR SEQUENCE REG 00938000
- LA R2,SENSEALL ADDRESS OF SENSE ACTION TABLE 00939000
- CLI 0(R1),X'04' FAILING CCW A SENSE COMMAND ? 00940000
- BE TERMSEQ YES -- LOCATE ACTION CODE 00941000
- SPACE 00942000
- * POSSIBLE READER OP-CODES FOR SPOOLING - 02 42 00943000
- CLI RDEVTYPE,TYP2501 2501 READER ? 00944000
- BNE CH3505 NO -- 00945000
- LA R2,RD2501 POINT TO READ ACTION TABLE 00946000
- B TERMSEQ GO LOCATE ACTION CODE 00947000
- SPACE 00948000
- CH3505 CLI RDEVTYPE,TYP3505 3505 READER ? 3525 PUNCH ? 00949000
- BNE CH2540 NO -- 00950000
- LA R2,RD3505 POINT TO READ ACTION TABLE 00951000
- TM RDEVTYPC,CLASURI 3505 READER ? 00952000
- BO *+8 YES - 00953000
- LA R2,WC3525 POINT TO PUNCH ACTION TABLE 00954000
- B TERMSEQ GO LOCATE ACTION CODE 00955000
- SPACE 00956000
- CH2540 EQU * HERE FOR 2540 READER AND 2540 PUNCH 00957000
- CLI RDEVTYPE,TYP2540R 2540 READER ? 2540 PUNCH ? 00958000
- BNE CH1443 NO -- 00959000
- LA R2,RD2540 POINT TO READ 2540 ACTION TABLE 00960000
- B SEQONLY GO LOCATE ACTION CODE 00961000
- SPACE 00962000
- CH1443 CLC =C'LOADBUF',VMCOMND LOADBUF COMMAND INPROCESS ? 00963000
- BE FATAL YES - CAN NOT RESTART 00964000
- CLI RDEVTYPE,TYP1443 1443 PRINTER ? 00965000
- BNE CH1403 NO - 00966000
- LA R2,C1443 CONTROL ACTION TABLE 00967000
- TM 0(R1),X'03' CONTROL OP CODE ? 00968000
- BO SEQONLY YES -- LOCATE ACTION CODE 00969000
- BZ FATAL NOT PRINT OR CONTROL 00970000
- LA R2,PC1443 PRINT, PRINT AND CONTROL TABLE 00971000
- B SEQONLY LOCATE ACTION CODE 00972000
- SPACE 00973000
- CH1403 CLI RDEVTYPE,TYP1403 1403 PRINTER ? 00974000
- BNE CH3211 NO - 00975000
- LA R2,P1403 PRINT ACTION TABLE 00976000
- CLI 0(R1),X'01' PRINT OP-CODE ? 00977000
- BE SEQONLY YES -- LOCATE ACTION CODE 00978000
- LA R2,PC1403 PRINT, PRINT AND CONTROL TABLE 00979000
- B SEQONLY LOCATE ACTION CODE 00980000
- SPACE 00981000
- CH3211 EQU * 00981700
- TM RDEVTYPE,TYP3211 IS IT A 3203/3211 PRINTER?? @V386298 00982400
- BNO CH3800 NO--CHECK 3800 @V60B9BA 00983100
- LA R2,P3211 PRINT ACTION TABLE 00984000
- CLI 0(R1),X'01' PRINT OP-CODE ? 00985000
- BE SEQONLY YES -- LOCATE ACTION CODE 00986000
- LA R2,C3211 CONTROL ACTION TABLE 00987000
- TM 0(R1),X'03' CONTROL OP-CODE ? 00988000
- BO SEQONLY YES - LOCATE ACTION CODE 00989000
- LA R2,PC3211 PRINT AND CONTROL TABLE 00990000
- B SEQONLY LOCATE ACTION CODE 00991000
- SPACE 00992000
- CH3800 CLI RDEVTYPE,TYP3800 IS IT 3800 PRINTER ? @V60B9BA 00992100
- BNE CH2520 NO, TRY 2520 @V60B9BA 00992200
- LA R2,L3800 SENSE CONTROL TABLE @V60B9BA 00992300
- IC R4,0(R1) SEE IF ONE OF THE SENSE @V60B9BA 00992400
- N R4,F15 .. OP CODES @V60B9BA 00992500
- CLM R4,B'0001',=X'04' IS IT ? @V60B9BA 00992600
- BE SEQONLY LOCATE ACTION CODE IF SO @V60B9BA 00992700
- LA R2,PC3800 PRINT AND CONTROL TABLE @V60B9BA 00992800
- B SEQONLY LOCATE ACTION CODE @V60B9BA 00992900
- SPACE 00993000
- CH2520 CLI RDEVTYPE,TYP2520P 2520 PUNCH ?? 00994000
- BNE FATAL NO --UNKNOWN - FATAL ERROR 00995000
- LA R2,WC2520 WRITE WITH CONTROL TABLE 00996000
- SPACE 2 00997000
- TERMSEQ EQU * HERE TO LOCATE CORRECT ACTION CODE 00998000
- SPACE 00999000
- * R1 = ADDRESS OF FAILING CCW 01000000
- * R2 = ADDRESS OF ACTION TABLE 01001000
- * R3 = USED FOR TERMINATION CODE 01002000
- * R4 = USED FOR SEQUENCE CODE 01003000
- * R15 = EXIT BRANCH INDEX CODE 01004000
- * IOERECSW EQU IOERCSW 01005000
- SPACE 01006000
- IC R3,IOERECSW+3 GET TERMINATION CODE BITS 0 AND 1 01007000
- SRL R3,6 SHIFT TERMINATION CODE TO BITS 6 - 7 01008000
- SLL R3,3 TERMINATION CODE TIME TABLE 01009000
- * ENTRY LENGTH (8) 01010000
- AR R2,R3 POINT TO CORRECT TABLE ENTRY 01011000
- SPACE 01012000
- SEQONLY EQU * ENTRY HERE WHEN TERM CODES 00 01 10 01013000
- * HAVE SAME SEQUENCE ACTION CODES 01014000
- IC R4,IOERECSW+3 GET SEQUENCE CODE FROM ECSW 01015000
- N R4,F7 SAVE ONLY SEQUENCE CODE (BITS 5,6,7) 01016000
- SR R15,R15 CLEAR INDEX REG 01017000
- IC R15,0(R2,R4) PICK UP ACTION INDEX CODE 01018000
- B *+4(R15) BRANCH TO CORRECT ACTION FOR ERROR 01019000
- B FATAL ACTION CODE 0 FATAL CHANNEL ERROR 01020000
- B RETRY1 ACTION CODE 4 RETRY THE OPERATION 01021000
- B IGNORECH ACTION CODE 8 IGNORE THE ERROR 01022000
- B DELAY2 ACTION CODE 12 OPERATOR INTERVENTION 01023000
- * REQUIRED 01024000
- SPACE 01025000
- IGNORECH TM 4(R1),CC COMMAND CHAINING ?? 01026000
- BO IGNORE YES - RESTART WITH NEXT CCW 01027000
- MVC IOBCSW+4(2),=AL1(CE+DE,0) FORCE GOOD CSW 01028000
- B EREXIT1 RETURN TO DMKRSPEX VIA IOS 01029000
- EJECT 01030000
- *. 01030010
- * 01030020
- * ENTRY POINT - 01030030
- * 01030040
- * DMKRSESD - FORMAT HARDWARE ENVIRONMENTAL COUNTERS FOR A 3800 01030050
- * 01030060
- * OPERATION - 01030070
- * 01030080
- * CALLED FROM DMKCPS, DMKCCW AND DMKRSERR TO RECORD 01030090
- * THE HARDWARE ENVIRONMENTAL DATA PRESENT IN THE 01030100
- * 3800 INTERNAL ERROR LOG. 01030110
- * ISSUE THE 'SENSE ERROR LOG' CCW AND IF NO ERRORS OCCUR, 01030120
- * A CALL IS MADE TO DMKIOESD TO RECORD THE DATA FOR 01030130
- * FIELD ENGINEERING USE. 01030140
- * 01030150
- *. 01030160
- SPACE 01030170
- DMKRSESD RELOC , @V60B9BA 01030180
- LR R1,R11 CHARGE USER @V60B9BA 01030190
- ST R1,IOBUSER ..... INTO IOBLOK @V60B9BA 01030200
- LA R7,136/8 NO OF EXTRA WDS IN IOERBLOK @V60B9BA 01030210
- LA R0,IOERSIZE+136/8 FOR A 3800 GET EXTRA SPACE @V60B9BA 01030220
- CALL DMKFREE NOW GET EXTRA-SIZE IOERBLOK @V60B9BA 01030230
- DROP R7 DROP IT TEMPORARILY @V60B9BA 01030240
- USING IOERBLOK,R1 (VERY BRIEFLY) @V60B9BA 01030250
- XC IOERBLOK(IOERSIZE*8),IOERBLOK CLEAR THE IT @V60B9BA 01030260
- STH R7,IOEREXT STORE EXTRA SIZE OF BLOCK @V60B9BA 01030270
- DROP R1 @V60B9BA 01030280
- LR R7,R1 NOW NORMAL IOERBLOK ADDRESSABILIT@V60B9BA 01030290
- USING IOERBLOK,R7 ... @V60B9BA 01030300
- TM RDEVFTR,FTREXTSN DOES DEVICE HAVE BUFFERS ? @V60B9BA 01030490
- BZ FRETIOER IF NOT, DO NOT ISSUE BUFFER UNLOA@V60B9BA 01030500
- LM R0,R1,UNLD3800 GET THE RIGHT CCW TO UNLOAD BFR @V60B9BA 01030510
- ALR R0,R7 POINT TO IOERDATA @V60B9BA 01030520
- STM R0,R1,SAVEWRK4 SAVE THE CCW @V60B9BA 01030530
- STH R1,IOERLEN SAVE SENSE LENGTH FOR ERROR RECOR@V60B9BA 01030540
- MVC SAVEWRK6(8),LOADSNS DUMMY SENSE CCW @V60B9BA 01030550
- LA R1,READBUF LOAD R1 W/ INTERRUPT RETURN ADDRE@V60B9BA 01030560
- ST R1,IOBIRA STORE IT IN THE IOBLOK. @V60B9BA 01030570
- LA R4,SAVEWRK4 BFR UNLOAD CCWS @V60B9BA 01030580
- ST R4,IOBCAW SET CAW ADDR IN IOBLOK @V60B9BA 01030590
- ST R13,IOBMISC SAVE R13 ACROSS I/O @V60B9BA 01030600
- STM R7,R8,SAVEWRK2 SAVE PTR TO IOERBLOK AND RDEVBLOK@V60B9BA 01030610
- CALL DMKIOSQR CALL IOS FOR BUFFER UNLOAD OPERAT@V60B9BA 01030620
- GOTO DMKDSPCH WAIT FOR I/O TO COMPLETE. @V60B9BA 01030630
- SPACE 01030640
- READBUF DS 0H CONNECTOR @V60B9BA 01030650
- USING *,R12 @V60B9BA 01030660
- S R12,=A(READBUF-DMKRSE) NORMAL ADDRESSIBILITY @V60B9BA 01030670
- USING DMKRSE,R12 @V60B9BA 01030680
- L R13,IOBMISC RESTORE ADDRESS OF STD WORKAREA @V60B9BA 01030690
- LM R7,R8,SAVEWRK2 RESTORE ADD OF IOERBLOK & RDEVBLO@V60B9BA 01030700
- TM IOBSTAT,IOBFATAL+IOBCC3 WAS THERE AN ERROR COND@V60B9BA 01030710
- BNZ FRETIOER IF YES, EXIT @V60B9BA 01030720
- ST R7,IOBIOER STORE ADDRESS OF IOERBLOK FOR REC@V60B9BA 01030730
- CALL DMKIOESD RECORD THIS RECORD. @V60B9BA 01030740
- B CKIOB RELEASE ANY MOVE IOERBLOKS @V60B9BA 01030750
- SPACE 01030760
- FRETIOER LA R0,IOERSIZE SIZE OF 1 IOERBLOK @V60B9BA 01030770
- AH R0,IOEREXT INCLUDE EXTRA SIZE (IF ANY) @V60B9BA 01030780
- LR R1,R7 LOCATION OF IOERBLOK. @V60B9BA 01030790
- CALL DMKFRET FRET THIS STORAGE @V60B9BA 01030800
- SPACE 01030810
- * THIS ROUTINE WILL CHECK FOR A SECOND IOERBLOK . IF ONE WAS 01030820
- * OBTAINED STORAGE WILL BE GIVEN BACK TO THE SYSTEM. 01030830
- * 01030840
- CKIOB L R1,IOBIOER GET ADDR. OF 2'ND IOERBLOK @V60B9BA 01030850
- LA R1,0(R1) CLEAR HI BYTE @V60B9BA 01030860
- LTR R1,R1 WAS BLOCK REALY OBTAINED ? @V60B9BA 01030870
- BZ NOTUSED BRANCH IF NO. @V60B9BA 01030880
- TM IOERCSW+5-IOERBLOK(R1),IFCC+CCC+CDC IS CHANNEL @V60B9BA 01030890
- * ERROR 01030900
- * INDICATED ? 01030910
- BZ CKEND2 NO, GO FRET IOERBLOK @V60B9BA 01030920
- LR R3,R1 SAVE THE IOERBLOK POINTER @V60B9BA 01030930
- L R1,IOERCCRA-IOERBLOK(R3) CHANNEL REC ADDR @V60B9BA 01030940
- L R0,IOERCCRL-IOERBLOK(R3) CHANNEL REC LENGTH @V60B9BA 01030950
- CALL DMKFRET RELEASE STORAGE @V60B9BA 01030960
- LR R1,R3 GET IOERBLOK POINTER @V60B9BA 01030970
- CKEND2 EQU * @V60B9BA 01030980
- LA R0,IOERSIZE LOAD IOERBLOK SIZE. @V60B9BA 01030990
- AH R0,IOEREXT-IOERBLOK(,R1) INCLUDE EXTRA SIZE (IF @V60B9BA 01031000
- CALL DMKFRET @V60B9BA 01031010
- NOTUSED MVC IOBIOER,ZEROES CLEAR ADDRESS IN IOBLOK IN CASE @V60B9BA 01031020
- SPACE 01031030
- RETNSHUT EXIT EXIT TO CALLER. @V60B9BA 01031040
- SPACE 3 01031050
- EJECT 01031060
- TMTYPE TM 0(R15),0 EXCUTE TM 01032000
- TMERR TM 1(R15),0 EXCUTE TM 01033000
- CKRDCCW CCW X'06',XOBR150-IOERBLOK,SILI,150 CHECK READ CCW 01034000
- PLBCCW CCW X'02',XOBR512-IOERBLOK,SILI,150 READ PLB 01035000
- UCSBCCW CCW X'0A',XOBR512-IOERBLOK,SILI,512 READ UCSB DATA 01036000
- FCBCCW CCW X'12',XOBR180-IOERBLOK,SILI,180 READ FCB DATA 01037000
- SPACE 01037250
- UNLD3800 CCW X'24',IOERDATA-IOERBLOK,CC+SILI,136 3800 UNLD @V60B9BA 01037500
- LOADSNS CCW X'04',*-*,SILI+SKIP,1 DUMMY SENSE CCW @V60B9BA 01037750
- SPACE 01038000
- MSGTABLE DC X'FF1003' EQUIPMENT CHECK 01039000
- DC X'FF0804' DATA CHECK 01040000
- DC X'FF2002' BUS OUT CHECK 01041000
- DC X'FF8000' COMMAND REJECT 01042000
- DC X'FF4001' INTERVENTION REQUIRED 01043000
- DC X'43041D' PARITY (3211 1403 3203) @V386298 01044000
- DC X'420218' LOAD CHECK (3211 3203) @V386298 01045000
- DC X'840219' FORMAT CHECK (35XX) 01046000
- DC X'840108' PERMANENT ERROR (35XX) 01047000
- DC X'810405' OVERRUN (2501) 01048000
- DC X'FFFF03' ALL OTHERS EQUIPMENT CHECK 01049000
- DS 0H 01050000
- EJECT 01051000
- * 01052000
- * SEQUENCE CODE 000,001,010,011,100,101,110,111 01053000
- * 01054000
- SENSEALL DC AL1(0,4,4,4,4,4,0,0) TERM CODE 00 01055000
- DC AL1(0,0,4,4,0,4,0,0) TERM CODE 01 01056000
- DC AL1(0,4,4,4,4,4,0,0) TERM CODE 10 01057000
- SPACE 01058000
- RD2501 DC AL1(0,4,12,12,4,12,0,0) TERM CODE 00 01059000
- DC AL1(0,0,12,12,0,12,0,0) TERM CODE 01 01060000
- DC AL1(0,4,12,12,4,12,0,0) TERM CODE 10 01061000
- SPACE 01062000
- SPACE 01063000
- RD3505 DC AL1(0,4,4,4,4,12,0,0) TERM CODE 00 01064000
- DC AL1(0,0,4,4,0,04,0,0) TERM CODE 01 01065000
- DC AL1(0,4,4,4,4,12,0,0) TERM CODE 10 01066000
- SPACE 01067000
- WC3525 DC AL1(0,4,4,4,4,0,0,0) TERM CODE 00 01068000
- DC AL1(0,0,4,4,0,4,0,0) TERM CODE 01 01069000
- DC AL1(0,4,4,4,4,0,0,0) TERM CODE 10 01070000
- SPACE 01071000
- C3211 EQU * TERM 00 01 10 01072000
- C1443 EQU * TERM 00 01 10 01073000
- PC1403 EQU * TERM 00 01 10 01074000
- C1403 EQU * TERM 00 01 10 01075000
- RD2540 EQU * TERM 00 01 10 01076000
- WC2540 EQU * TERM 00 01 10 01077000
- PLB3203 EQU X'10' MASK FOR 3203 PLB @V3M4036 01077150
- SPACE 1 01077300
- * ALL TERM CODES WHICH APPLY TO THE 3211 PRINTER ALSO 01077450
- * APPLY TO THE 3203 PRINTER 01077600
- SPACE 1 01077750
- DC AL1(0,0,0,0,4,0,0,0) TERM CODE 00 01 10 01078000
- SPACE 01079000
- PC3800 EQU * TERM CODE 00 01 10 @V60B9BA 01080000
- PC1443 EQU * TERM CODE 00 01 10 01080500
- P1443 DC AL1(0,4,4,0,4,0,0,0) TERM CODE 00 01 10 01081000
- SPACE 01082000
- L3800 EQU * TERM CODE 00 01 10 @V60B9BA 01082500
- P1403 DC AL1(0,4,4,4,4,4,0,0) TERM CODE 00 01 10 01083000
- SPACE 01084000
- P3211 DC AL1(0,4,4,4,4,4,0,0) TERM CODE 00 01 10 01085000
- SPACE 01086000
- PC3211 DC AL1(0,0,0,0,4,4,0,0) TERM CODE 00 01 10 01087000
- SPACE 01088000
- WC2520 DC AL1(0,4,12,12,4,12,0,0) TERM CODE 00 01089000
- DC AL1(0,0,12,12,0,12,0,0) TERM CODE 01 01090000
- DC AL1(0,4,04,04,0,04,0,0) TERM CODE 10 01091000
- SPACE 3 01092000
- PARMLEN EQU 2 NUM OF DBLWDS FOR 3800 PARM FIELD @V60B9BA 01092250
- PARM3800 DC X'04040F0F0F0F0F0FFF' 3800 COUNTERS @V60B9BA 01092500
- SPACE 2 01092750
- LTORG 01093000
- EJECT 01094000
- PSA 01095000
- COPY VMBLOK 01096000
- COPY RBLOKS 01097000
- COPY SAVE 01098000
- COPY EQU 01099000
- COPY DEVTYPES 01100000
- COPY SPOOL @V60B9BA 01100500
- COPY IOBLOKS 01101000
- COPY IOER 01102000
- COPY ACCOUNT 01103000
- END 01104000
ibm/vm370-lib/cp/dmkrse.assemble_src.txt ยท Last modified: 2023/08/06 13:37 by Site Administrator