Table of Contents

DMKIOH Abstract

Statistics

Type ASSEMBLE
Source Lines : 977
Fixes Applied : 4
Most Recent Version : Thursday, July 5, 1979
Last Fix ID : [R13122DK]

Synopsis

Function

      PAGABLE FRAME RECORD INITIALIZATION MODULE. CALLED AT
      CP INITIALIZATION TIME IF THE ERROR RECORDING CYLINDERS
      HAVE BEEN FORMATTED. IF RUNNING ON A 303X PROCESSOR,
      DMKIOH WILL READ FRAMES FROM ALL SRF DEVICES SPECIFIED
      ON THE 'SRF=' KEYWORD OF THE RIOGEN MACRO; THE
      FRAMES WILL BE FORMATTED AS RECORDS AND WRITTEN
      TO THE BEGINNING OF THE VM/370 ERROR RECORDING
      CYLINDERS.
      DMKIOH IS ALSO CALLED DURING CPEREP 'CLEARF' PROCESSING
      TO REINITIALIZE FRAME RECORDS WHEN RUNNING ON A 303X
      PROCESSOR.

Attributes

      PAGABLE,SERIAL-REUSABLE,CALLED BY DMKIOGF1 VIA SVC.

Operation

      1. CHECK FOR ANY SRF DEVICES BY EXAMINING THE LIST
         LOCATED BY DMKRIOSF. IF NONE, WRITE MESSAGE TO
         OPERATOR AND RETURN TO DMKIOGF1 AT STEP 18.
         CALL DMKFREE TO OBTAIN SPACE FOR AN IOBLOK
         PLUS CCW'S, AND INITIALIZE THE IOBLOK.
      2. PREPARE TO READ FRAMES:
           - CALL DMKFREE TO OBTAIN SPACE FOR A 2K
             BUFFER
           - BUILD A STANDARD RECORD HEADER TO BE USED
             IN CONSTRUCTING ALL FRAME RECORDS
      3. CALL DMKPGTVG TO OBTAIN A VIRTUAL PAGE TO USE
         IN CONSTRUCTING BLOCKED FRAME RECORDS.
      4. CALL DMKRPAGT AND DMKPTRLK TO BRING THE FIRST
         RECORDING PAGE INTO STORAGE AND LOCK IT THERE.
         IF AN ERROR OCCURS ON THIS READ OPERATION,
         DISABLE RECORDING AND RETURN TO DMKIOGF1.
      5. ISSUE 'ENABLE' COMMAND TO THE FIRST SRF. IF THE
         SRF IS INACCESSIBLE (OR IF IT WAS NOT SYS GEN'ED)
         WRITE ERROR MESSAGE TO THE OPERATOR AND GO TO
         STEP 11 TO CHECK FOR ANOTHER SRF.
      6. IF THE SRF IS AVAILABLE, ISSUE A 'VERBAGE' COMMAND TO
         THE SRF TO INDICATE THAT CPU FRAMES ARE TO BE READ,
         FOLLOWED BY A 'RDVERB' COMMAND TO OBTAIN THE
         FIRST CPU FRAME.
      7. MOVE THE FRAME TO THE RECORDING PAGE AS
         FOLLOWS:
           - MOVE THE LENGTH OF THE FRAME RECORD
             (LENGTH OF HEADER + LENGTH OF FRAME) INTO
             THE 1ST FULLWORD OF THE RECORD
           - MOVE THE 24-BYTE STANDARD RECORD HEADER
           - MOVE THE FRAME
           - UPDATE THE INDEX IN THE PAGE HEADER TO
             THE NEXT AVAILABLE FREE SPACE IN THE PAGE
         WHEN THE PAGE IS FULL, WRITE IT BACK TO THE
         RECORDING CYLINDERS, AND READ IN THE NEXT
         RECORDING PAGE TO CONTINUE THE FRAME RECORD
         CONSTRUCTION.
      8. CONTINUE READING FROM THE SRF UNTIL ONE OF
         THE FOLLOWING OCCURS:
           (A) CHANNEL END, DEVICE END, UNIT EXCEPTION
               STATUS RECEIVED - END OF CPU FRAMES; GO
               TO STEP 9 TO READ DIRECTOR FRAMES NOW.
           (B) MORE THAN 50 CPU FRAMES READ - WRITE
               ERROR MESSAGE TO OPERATOR; CONTINUE TO
               FORMAT AS IF ONLY 50 FRAMES READ.
           (C) ERROR STATUS (NON-CE,DE) RECEIVED FROM
               RDVERB - IF ANY FRAME RECORDS ARE ON
               THE RECORDING CYLS, TURN ON FRMLAST IN
               LAST FRAME RECORD WRITTEN, SET DMKIOEFR
               TO INDICATE FRAMES PRESENT, AND GO TO
               STEP 11 TO CLEAN UP. IF NO FRAME RECORDS HAVE
               BEEN WRITTEN TO THE RECORDING CYLINDERS,
               GO TO STEP 11.
      9. ISSUE A 'VERBAGE' COMMAND TO THE SRF TO
         RETRIEVE DIRECTOR FRAMES. PROCEED AS IN STEPS
         6-8, EXCEPT WHEN CE,DE,UE STATUS IS DETECTED,
         GO TO STEP 10.
      10. TURN ON 'LAST FRAME' FLAG IN THE LAST FRAME
         RECORD WRITTEN. SET DMKIOEFR TO INDICATE FRAME
         RECORDS EXIST ON THE RECORDING CYLINDERS.
      11. IF THIS IS THE LAST SRF DEVICE IN THE
         LIST, INDICATE THIS RECORDING PAGE
         IS FULL (TO PREVENT ERROR RECORDS FROM BEING
         PLACED ON THE SAME PAGE WITH FRAME RECORDS),
         AND WRITE THE PAGE BACK TO THE RECORDING
         CYLINDERS.
      12. ISSUE A 'DISABLE' COMMAND TO DETACH FROM THE SRF.
         CHECK FOR ANOTHER SRF DEVICE BY EXAMINING THE LIST
         LOCATED BY DMKRIOSF. IF NO MORE SRF'S, GO TO
         STEP 13. IF ANOTHER SRF IS FOUND, RETURN TO
         STEP 5 TO ATTEMPT TO READ FRAMES FROM THIS SRF.
      13. CALCULATE DMKIOEHS VALUE FOR USE BY CPEREP
         PROCESSING. THIS FIELD IS THE DASD START OF
         THE ERROR RECORDS (I.E., FIRST RECORDING PAGE
         AFTER ALL FRAME RECORDS) IN CCPD FORMAT.
      14. CALL DMKPGTVR TO FREE THE VIRTUAL PAGE
         GOTTEN IN STEP 3.
      15. CALL DMKFRET TO RELEASE THE IOBLOK, CCW'S,
         AND 2K BUFFER SPACE.
      16. RETURN TO DMKIOGF1 AT STEP 18.

Calls to Other Routines

      DMKPGTVG - TO GET VIRTUAL PAGES.
      DMKPGTVR - TO RELEASE VIRTUAL PAGES.
      DMKQCNWT - TO WRITE MSGS. TO THE OPERATOR.
      DMKRPAGT - TO READ A PAGE INTO CORE.
      DMKRPAPT - TO WRITE A PAGE TO RECORDING CYLINDER.
      DMKERMSG - TO WRITE OUT ERROR MESSAGES
      DMKPTRLK - TO LOCK A PAGE.
      DMKPTRUL - TO UNLOCK A PAGE.