Type ASSEMBLE
Source Lines : 1,001
Fixes Applied : 6
Most Recent Version : Thursday, December 7, 1978
Last Fix ID : [HRC106DK]
Module
DMKNLE
Function
TO PERFORM THE DUMP FUNCTION ON THE 3705 INDICATED.
Attributes
REENTRANT, PAGEABLE, CALLED VIA SVC
Operation
1. DETERMINE WHETHER ENTRY WAS FROM SYSTEM OR VIA NETWORK CONSOLE COMMAND. IF ENTERED FROM SYSTEM, GO TO STEP 11. OTHERWISE SET NETWORK CALL FLAG AND CONTINUE. 2. CALL DMKSCNFD TO GET 'RADDR' OPERAND FROM COMMAND LINE. IF NO OPERAND, CALL DMKERMSG TO SEND MESSAGE DMKNLE021E. 3. CALL DMKCVTHB TO CONVERT 'RADDR' TO BINARY. IF ERROR ON CONVERSION, CALL DMKERMSG TO SEND MESSAGE DMKNLE021E. 4. CALL DMKSCNRU TO GET REAL DEVICE (RDEVBLOK) FOR 'RADDR' DEVICE. IF DEVICE DOES NOT EXIST, CALL DMKERMSG TO SEND MESSAGE DMKNLE040E. 5. DETERMINE WHETHER 'RADDR' DEVICE IS A 370X. IF NOT, CALL DMKERMSG TO SEND DMKNLE006E MESSAGE. 6. CHECK IF 370X IS CURRENTLY OFFLINE. IF SO, CALL DMKERMSG TO SEND MESSAGE DMKNLE046E. 7. DETERMINE IF 370X IS DEDICATED TO A USER. IF YES, CALL DMKERMSG TO SEND MESSAGE DMKNLE140. 8. CALL DMKSCNFD TO GET DUMP OPTIONS (IF ANY). 9. IF NO OPTIONS, DEFAULT TO 'IMMED' AND GO TO STEP 11. 10. IF OPTION IS 'OFF' OR 'AUTO' , REFLECT STATUS IN APPROPRIATE BIT (RDEVAUTO) OF RDEVBLOK OF 370X AND EXIT. IF OPTION IS 'IMMED' GO TO STEP 28. IF ANY OTHER OPTION SPECIFIED, CALL DMKERMSG TO SEND MESSAGE DMKNLE003E. 11. CALCULATE THE NUMBER OF SPOOL RECORDS ( IE. 1 RECORD PER 4K OF 370X STORAGE + 1) NEEDED FOR DUMP. 12. CALL DMKPGTCG TO GET NECESSARY SPOOL SPACE. IF SPACE UNAVAILABLE, SEND MESSAGE; DMKNLE460E CTLR 'RADDR' DUMP FAILED: TEMP SPACE UNAVAILABLE AND EXIT TO CALLER. 13. CALCULATE MAXIMUM NUMBER OF PAGES / CYL FOR THE ALLOCATED SPOOL DEVICE. 14. GO TO IOBINIT SUBROUTINE TO GET AND INITIALIZE AN IOBLOK AND ADDITIONAL SAVE AREA FOR USE BY THE 370X I/O ROUTINE. 15. IF DUMP FUNCTION WAS REQUESTED VIA CONSOLE COMMAND, ISSUE A TIO TO THE 370X TO DETERMINE ITS STATUS (THIS IS UN-NECESSARY IF THE CALLER WAS A SYSTEM ROUTINE). 16. GO TO SNDBOOTS SUB-ROUTINE TO TRANSMIT THE OS/360 DUMP BOOTSTRAP PROGRAM TO THE 370X. ANY ERRORS THAT OCCUR DURING THE BOOTSTRAP ROUTINE WILL RESULT IN MESSAGE: DMKNLE460E CTLR 'RADDR' DUMP FAILED; PROGRAM CHECK 17. CALL DMKPGTVG TO GET A PAGE OF CP PAGEABLE CORE FOR USE AS A BUFFER. 18. TRANS IN BUFFER PAGE TO GET REAL ADDRESS. 19. BUILD CCWS TO READ IN RECORD CONTAING 370X LOCAL STORE CONTENTS AND END OF CORE ADDRESS AND GO TO 370X I/O ROUTINE. 20. INSURE VALIDITY OF 370X END OF CORE ADDRESS AND CORRECT DATA IN GROUP 0 REGISTERS IF 370X IS 48K OR LESS. ( THIS CODE IS EXTRACTED FROM THE OS/360 NCP DUMP UTILITY) 21. WRITE 370X REGISTER DATA AND END OF CORE ADDRESS TO SPOOL FILE. 22. READ SUCCESSIVE 512 BYTE RECORDS FROM 370X, BLOCK INTO PAGE SIZE (4K) SPOOL RECORDS AND WRITE TO SPOOL FILE. 23. WHEN END OF 370X CORE ADDRESS IS REACHED, CALL DMKFREE TO GET CORE FOR A SPOOL FILE CONTROL BLOCK. 24. FILL IN SFBLOK, AND QUEUE ON RDR SPOOL CHAIN FOR SYSTEM DUMP ID. 25. IF ANY SPOOL RECORDS REMAIN, CALL DMKPGTCR TO RELEASE THEM 26. UNLOCK AND RELEASE BUFFER, FREE IOBLOK AND SAVE AREA, AND EXIT TO CALLER.
Calls to Other Routines
DMKSCNFD - TO LOCATE NEXT ARGUMENT IN THE COMMAND LINE DMKCVTHB - CONVERT HEXADECIMAL ADDRESSES TO BINARY DMKSCNRU - TO LOCATE ADDRESSES OF THE REAL DEVICE BLOKS DMKQCNWT - TO OUTPUT MESSAGES TO THE TERMINAL DMKFREE - TO OBTAIN STORAGE FROM FREE STORAGE DMKFRET - TO RETURN STORAGE TO FREE STORAGE DMKPGTVG - TO GET A BUFFER OF PAGEABLE CP CORE. DMKPGTVR - TO RELEASE A BUFFER OF PAGEABLE CP CORE. DMKPTRUL - TO UNLOCK A PAGE IN VIRTUAL MACHINE DMKERMSG - TO SEND ERROR MESSAGES TO THE TERMINAL. DMKPTRAN - TO BRING A PAGE IN CORE DMKCVTBH - CONVERT BINARY DATA TO HEXADECMAL DMKSTKIO - TO STACK AN I/O BLOCK FOR PROCESSING DMKRPAPT - TO WRITE A PAGE IN CORE TO DASD DMKIOSQR - TO PERFORM I/O OPERATIONS ON 3705 DMKCKSPL - TO CHECKPOINT DUMP SPOOL FILE BLOCK