Table of Contents

DMKRSE Abstract

Statistics

Type ASSEMBLE
Source Lines : 1,498
Fixes Applied : 8
Most Recent Version : Saturday, December 9, 1978
Last Fix ID : [R13713DK]

Synopsis

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