Type ASSEMBLE
Source Lines : 1,498
Fixes Applied : 8
Most Recent Version : Saturday, December 9, 1978
Last Fix ID : [R13713DK]
Module
DMKRSERR
Function
TO RETRY AND ATTEMPT RECOVERY FOR REAL UNIT RECORD DEVICE IO ERRORS. ALSO TO RECORD HARDWARE ENVIRONMENTAL DATA FOR A 3800.
Attributes
REENTRANT, PAGEABLE, CALLED VIA SVC FROM DMKRSPER
Operation
1. FIRST ERROR ENTRY - THE ADDRESS OF THE IO ERROR BLOCK (IOERBLOK) IS LOCATED IN THE IOBLOK(IOBIOER). THE ADDRESS OF THE IOERBLOK IS MOVED TO THE RDEVBLOK (RDEVIOER) AND THE IOBIOER IS ZEROED. THE IOB RESTART COUNT IS UPDATED BY ONE, AT THIS POINT THE STATISTICAL DATA COUNTERS ARE UPDATED THEN THE IOERBLOK IS CHECKED FOR THE TYPE OF ERROR. THE STATISTICAL COUNTERS ARE UPDATED VIA A CALL TO DMKIOEST. FOR A 3800 PRINTER, A PARAMETER LIST WILL HAVE TO BE PASSED INDICATING WHICH COUNTERS TO UPDATE. FOR ALL OTHER SPOOLING DEVICES NO PARAMETER IS PASSED. 2. RETRY ERROR ENTRY - THE ADDRESS OF THE FIRST ERROR IOERBLOK IS LOCATED IN THE RDEVBLOK (RDEVIOER), AND IN THE IOBLOK (IOBIOER), IF AN ERROR, WILL BE THE ADDRESS OF THE NEW IOERBLOK. TWO TYES OF ENTRIES - (A) DEVICE END INTERRUPT FROM OPERATOR INTERVENTION, THE IOBLOK IS POSTED WITH THE RESTART FLAG AND ALLOW IOS TO RESTART THE OPERATION. (B) CHANNEL AND DEVICE END INTERRUPT FROM ERP INITIATED CCW'S TO OBTAINED OBR INFORMATION. 3. CONDITION CODE 3 ON SIO - MARK THE IOBLOK AS FATAL ERROR AND ALLOW IOS TO RETURN THE IOBLOK TO THE USER. 4. CHANNEL CONTROL AND INTERFACE CONTROL CHECK - TAKE APPROPIATE ACTION AS GROVEN BY THE TERMINATION AND/OR SEQUENCE CODE IN THE EXTENDED CHANNEL STATUS (ECSW). THE ACTION TAKEN IS DEVICE DEPENDENT AND IS AS FOLLOWS. CODE ACTION (0) NO RETRY - THE DEVICE IS UNABLE TO RECOVERY FROM THIS ERROR CONDITION. MARK THE ERROR AS FATAL AND ALLOW IOS TO RETURN THE IOBLOK TO THE USER. (4) RETRY ONCE - RETRY THE CCW AT WHICH THE ERROR ACCURRED. IF RETRY FAILS, POST THE ERROR AS FATAL AND ALLOW IOS TO RETURN THE IOBLOK TO THE USER. (8) IGNORE - TREAT THIS CONDITION AS COMPLETE WITHOUT ERROR. RESTART THE OPERATION WITH THE NEXT CCW. (12) RETRY WITH OPERATOR INTERVENTION - RETRY MAY BE POSSIBLE WITH OPERATOR INTERVENTION. GIVE CHANNEL ERROR ACTION MESSAGE AND RESTART THE OPERATION WHEN OPERATOR INTERVENTION IS COMPLETE. 5. CHANNEL DATA CHECK - RETRY THE OPERATION ONCE, IF RETRY FAILS, POST THE ERROR AS FATAL, AND ALLOW IOS TO RETURN THE IOBLOK TO THE USER. 6. UNITCHECK ERRORS - RECOVERY PROCEDURES FOR UNITCHECK ERRORS ARE DEVICE DEPENDENT, BUT GENERALLY SPEAKING, THE FOLLOWING ACTIONS ARE TAKEN.- (A) COMMAND REJECT - THE OPERATION IS MARK FATAL ERROR IN THE IOBLOK, ERROR MESSAGE DMKRSE500I IS ISSUED AND ALLOW IOS TO RETURN THE IOBLOK TO THE USER. (B) INTERVENTION REQUIRED - ONE OF TWO ACTIONS IS TAKEN, DEPENDENT ON THE DEVICE TYPE. (1) OPERATOR INTERVENTION - LOCATE THE RESTART CCW ADDRESS AND STORE IN IOBRCAW. CALL DMKMSWR TO GIVE ERROR MESSAGE DMKRSE501A (INT REQ), RETURN TO IOS WITH IOBERP SET, INDICATING DEVICE END INTERRUPT PENDING FROM DEVICE. WHEN DEVICE END INTERRUPT IS RECEIVED, THE OPERATION IS RESTARTED AT THE CCW ADDRESS LOCATED IN IOBRCAW. (2) FATAL ERROR - OPERATION FOR WHICH INTERVENTION REQUIRED IS FATAL, SUCH AS LOADBUF COMMAND, POST IOBLOK AS FATAL, GIVE ERROR MESSAGE DMKRSE501I (INT REQ) AND ALLOW IOS TO RETURN THE IOBLOK TO THE USER. (C) BUSOUT CHECK - THE OPERATION IS RETRYED ONCE, IF THE RETRY FAILS, GIVE ERROR MESSAGE DMKRSE502I, POST ERROR AS FATAL AND ALLOW IOS TO RETURN THE IOBLOK TO THE USER. (D) EQUIPMENT CHECK - ONE OF THREE ACTIONS WILL BE TAKEN. (DEVICE DEPENDENT) (1) EQUIPMENT CHECKS REQUIRING OPERATOR INTERVENTION, LOCATE THE RESTART CCW, STORE ITS ADDRESS IN IOBRCAW. GIVE ERROR MESSAGE DMKRSE503A (EQUIP CK), RETURN TO IOS WITH IOBERP FLAG SET, TO WAIT FOR DEVICE END INTERRUPT FROM THE DEVICE. WHEN DEVICE END INTERRUPT IS RECEIVED FROM OPERATOR INTERVENTION COMPLETE, INDICATE RESTART AND ALLOW TO RESTART THE OPERATION. (2) RETRY ONCE - EQUIPMENT CHECKS NOT REQUIRING OPERATOR INTERVENTION AND CAN BE RETRYED. LOCATE AND SET UP THE RESTART CCW ADDRESS FOR THE FAILING CCW, RETURN TO IOS TO RESTART THE OPERATION. IF RETRY FAILS, GIVE ERROR MESSAGE DMKRSE503I (EQUIP CK), POST THE ERROR AS FATAL AND RETURN THE IOBLOK TO THE USER VIA IOS. (3) FATAL EQUIPMENT CHECKS - EQUIPMENT CHECKS WHICH CAN NOT BE RETRYED OR NEED OPERATOR INTERVENTION, POST THE ERROR AS FATAL, GIVE ERROR MESSAGE DMKRSE503I AND ALLOW IOS TO RETURN THE IOBLOK TO THE USER. (E) DATA CHECKS - DEVICE DEPENDENT - DATA CHECKS REQUIRING OPERATOR INTERVENTION, SET UP RESTART CCW ADDRESS, GIVE MESSAGE DMKRSE504A, AND RETURN TO IOS TO WAIT FOR DEVICE END INTERRUPT. WHEN DEVICE END INTERRUPT IS RECEIVED FROM OPERATOR INTERVENTION COMPLETE, RETURN TO IOS ALLOW IOS TO RESTART THE OPERATION. DATA CHECKS NOT REQUIRING OPERATOR INTERVENTION, SET UP THE RESTART CCW ADDRESS, RETRY THE OPERATION, IF RETRY FAILS, POST THE ERROR AS FATAL, GIVE ERROR MESSAGE DMKRSE504I (DATA CK) AND ALLOW IOS TO RETURN THE IOBLOK TO THE USER. (F) BUFFER PARITY CHECK - LOCATE THE RESTART CCW ADDRESS, RETRY THE OPERATION ONCE, IF REQUIRED (DEVICE DEPENDENT), OTHERWISE POST ERROR AS FATAL, GIVE ERROR MESSAGE DMKRSE529I (PARITY CK) AND ALLOW IOS TO RETURN THE IOBLOK TO THE USER. (G) PROGRAM CONTROLLED INTERRUPT AND PROTECTION CHECKS POSTED AS FATAL ERROR, GIVE ERROR MESSAGE DMKRSE520I (CHAN ERROR) AND ALLOW IOS TO RETURN THE IOBLOK TO THE USER. (H) ERRORS NOT STATED OR EXCEPTION WILL BE GIVEN BY DEVICE TYPE. (I) 2501 READER - OVERRUN CHECK - LOCATE THE RESTART CCW ADDRESS, GIVE ERROR ACTION MESSAGE DMKRSE505A (OVERRUN CK), RETURN TO IOS TO WAIT FOR OPERATOR INTERVENTION. WHEN OPERATOR INTERVENTION IS COMPLETE, RETURN TO IOS TO RESTART THE DEVICE. (J) 1403-1443-3211-3203 PRINTERS CHANNEL 9 - LOCATE THE NEXT CCW ADDRESS AND RETURN TO IOS TO RESTART THE DEVICE. (K) 2520-2540 PUNCHES EQUIPMENT CHECKS - THE CCW ADDRESS IS LOCATED TO REPUNCH THE LAST TWO CARDS ON THE FIRST EQUIPMENT CHECK, RESTART THE OPERATION, IF RETRY FAILS, RETRY THE FAILING CCW, AFTER 20 CONSECUTIVE RETRIES, POST ERROR AS FATAL, GIVE ERROR MESSAGE DMKRSE503I (EQUIP CK) AND ALLOW IOS TO RETURN THE IOBLOK TO THE USER. (L) 3505 READER FORMAT CHECK - THIS ERROR SHOULD NOT ACCURR SINCE SPOOLING DOES NOT USE OMR OR RCE, POST THE ERROR AS FATAL, GIVE ERROR MESSAGE DMKRSE525I (FORMAT CK), AND ALLOW IOS TO RETURN THE IOBLOK TO THE USER. (M) 3505 READER AND 3525 PUNCH - PERMANENT ERROR CHECK - THE OPERATOR HAS PRESSED THE PERMANENT ERROR KEY AND MAKE THE DEVICE READY. POST THE ERROR AS FATAL, GIVE ERROR MESSAGE DMKRSE508I (PERM CK), AND ALLOW IOS TO RETURN THE IOBLOK TO THE USER. (N) 3211 PRINTER CANCEL KEY - POST THE ERROR AS FATAL, GIVE ERROR MESSAGE DMKRSE503I (EQUIP CK), AND ALLOW IOS TO RETURN THE IOBLOK TO THE USER. OUTBOARD RECORDING DATA - THE STANDARD UNIT CHECK RECORD IS RECORDED ON THE IO ERROR RECORDING CYLINDER BY DMKIOE VIA DMKIOS. ADDITIONAL INFORMATION IS REQUIRED FOR CERTAIN ERROR CONDITIONS. 1. THE CONTENTS OF THE FCB BUFFER. 2. THE CONTENTS OF THE UCS BUFFER. 3. THE CHECK DATA FOR THE PRINT LINE BUFFER. 4. THE CONTENTS OF THE PRINT LINE BUFFER. 5. THE FIRST TEN CHARACTERS IN ERROR. THE INFORMATION IS OBTAINED AND STORED IN THE OBR3211 EXTENTION OF THE IOERBLOK. (O) 3203 PRINTER CANCEL KEY - NONE EXISTS ON THIS PRINTER. OUTBOARD RECORDING DATA - SAME AS 3211 PRINTER (ABOVE) (P) 3800 PRINTING SUBSYSTEM CANCEL KEY - SAME AS FOR A 3211 INTERVENTION REQD - ISSUE MESSAGE DMKRSE242I VIA CALL TO DMKERMSG. IF 'SYSTEM RESTART' IS ALSO INDICATED DO THAT FUNCTION AND THEN RETURN TO IOS WITH IOBERP SET. SYSTEM RESTART REQUIRED - THIS INDICATES THAT THE PAGE BUFFER HAS POSSIBLY BEEN DESTROYED. ISSUE MESSAGE DMKRSE255I SHOWING THE PAGE BACKUP COUNT AND HOLD AND REQUEUE EACH FILE ON THE DELAYED PURGE QUEUE ISSUING DMKRSE252I FOR EACH ONE SO REQUEUED EQUIPMENT CHECK (INTERNAL ERROR LOG FULL) - CALL DMKRSESD TO DO THE 'SENSE ERROR LOG' WHICH WILL CLEAR THE EQUIPMENT CHECK AND THEN RESTART THE CCW CHAIN. LOAD CHECK - IF IT IS AN FCB-FORMST MISMATCH, AND DMKTCS IS IN CONTROL, INDICATE THAT FACT BY PLACING 'FCBM' IN IOBMISC2. IF ANY OTHER CHECK INDICATING BAD LOAD MODULES, PLACE 'BADM' IN IOBMISC2. OTHERWISE IGNORE LD CHK. OUTBOARD RECORDING DATA - SAME AS 3211 00 - INTERFACE DISCONNECT 01 - STOP OR STACK OR NORMAL TERMINATION 10 - SELECTIVE RESET 11 - SYSTEM RESET 8. SEQUENCE CODE BITS 5,6 AND 7 OF BYTE 3 000 - A CHANNEL DETECTED ERROR ACCURRED DURING THE OF A TEST I/O INSTRUCTION. 001 - COMMAND OUT WITH A NON-ZERO COMMAND BYTE ON BUS OUT HAS BEEN SENT BY THE CHANNEL, BUT DEVICE STATUS HAS NOT YET BEEN ANALYZED BY THE CHANNEL. 010 - THE COMMAND HAS BEEN ACCEPTED BY THE DEVICE BUT NO DATA HAS BEEN TRANSFERRED. 011 - AT LEAST ONE BYTE OF DATA HAS BEEN TRANSFERRED OVER THE INTERFACE. 100 - THE COMMAND IN THE CURRENT CCW HAS EITHER NOT YET BEEN SENT TO THE DEVICE OR ELSE WAS SENT BUT NOT ACCEPTED BY THE DEVICE. 101 - THE COMMAND HAS BEEN ACCEPTED, BUT DATA TRANSFER IS UNPREDICTABLE. 110 - RESERVED. 111 - RESERVED.
Calls to Other Routines
DMKMSWR - TO WRITE ERROR MESSAGES DMKFRET - TO RETURN STORAGE DMKIOEST - TO UPDATE STATISTICAL COUNTERS DMKIOESD - FORMAT 3800 HARDWARE ENVIRONMENTAL COUNTERS DMKERMSG - SEND MESSAGES TO THE OPERATOR DMKIOSQR - TO DO THE BUFFER UNLOAD FOR A 3800 DMKIOESD - RECORD RESULTS OF BUFFER UNLOAD FOR FE DMKCVTBH - CONVERT ERROR MESSAGE DATA TO PRINTABLE HEX