Type ASSEMBLE
Source Lines : 1,071
Fixes Applied : 13
Most Recent Version : Saturday, December 9, 1978
Last Fix ID : [HRC065DK]
Module
DMKCQG
Function
TO RETURN TO THE REQUESTOR INFORMATION FOR YHE FOLLOWING QUERY FUNCTIONS : QUERY VIRTUAL (DASD TAPE UR ETC. )
Attributes
REENTRANT, PAGEABLE, CALLED VIA SVC
Operation
1. ISSUE SVC 16 TO RETURN THE SAVEAREA, THUS, WHEN EXIT WILL RETURN DIRECTLY TO DMKCFM COMMAND PROCESSING INSTEAD OF RETURNING TO DMKCFMQU. 2. THE PROPER ROUTINE IS ENTERED VIA A BRANCH TABLE. REGISTER 6 IS SET UP BY DMKCFMQU TO INDEX TO THE PROPER BRANCH INSTRUCTION. 3. EACH ROUTINE SCANS THE APPROPRIATE CONTROL BLOKS TO PICK UP THE INFORMATION NEEDED FOR THE REQUEST AND FORMATS THE MESSAGE TO BE RETURNED TO THE USER. STEPS 4,5,6,7,8, AND 9 DELETED. MOVED TO DMKCQR. 10. VIRTUAL - CALL DMKSCNFD TO LOCATE THE TYPE OF VIRTUAL REQUEST. IF NONE FOUND, ASSUME ALL. MATCH THE REQUEST TO A LIST OF VALID VIRTUAL REQUEST. THE CLASS CODE IN THE LIST WILL BE USED IN SETTING UP THE VARIOUS MESSAGES. IF STORAGE WAS REQUESTED, THE STORAGE SIZE FROM THE VMBLOK IS CONVERTED TO PRINTABLE CHARACTERS AND DMKQCNWT IS CALLED TO OUTPUT THE STORAGE MESSAGE. FOR THE I/O REQUESTS, THE VIRTUAL DEVICE BLOKS ARE SCANNED. WHEN THE CLASS OF DEVICE MATCHES THE REQUEST, THE FORMAT ROUTINE BUILDS AN APPROPRIATE MESSAGE ACCORDING TO THE DEVICE TYPE AND ITS STATUS. THEN A CALL TO DMKQCNWT IS MADE TO SEND THE MESSAGE TO THE TERMINAL. THIS CONTINUES UNTIL ALL DEVICES HAVE BEEN SCANNED. IF THE ARGUMENT DOESN'T COMPARE TO ANY ENTRY IN THE LIST, IT IS ASSUMED TO BE A VIRTUAL ADDRESS. A CALL IS MADE TO DMKCFCSC TO SCAN OPERAND TO SEE IF IT IS A RANGE OF ADDRESSES. IF YES, THE ADDRESSES ARE VALIDITY CHECKED, CONVERTED TO BINARY (DMKCVTHB) AND SAVED FOR LATER USE. IF ONLY A SINGLE ADDRESS HAS BEEN SPECIFIED, A CALL TO DMKCVTHB IS MADE TO CONVERT THE ADDRESS TO BINARY. IF THE CONVERT IS BAD, CALL DMKERMSG TO SEND ERROR MESSAGE DMKCQG022E. FOR A GOOD CONVERT, CALL DMKSCNVU TO LOCATE THE VIRTUAL DEVICE BLOCKS. IF THE BLOCKS ARE NOT FOUND, CALL DMKERMSG TO SEND ERROR MESSAGE DMKCQG040E. IF THE DEVICE IS FOUND, FORMAT THE RESPONSE ACCORDING TO THE DEVICE TYPE, CALL DMKQCNWT TO SEND THE RESPONSE AND EXIT. 12. STEP 12 DELETED, MOVED TO CQH 13. IF THE REQUEST IS NOT FOUND IN THE LIST, ASSUME THE REQUEST TO BE A VADDR OR USERID. FIRST CHECK IF IT IS A VALID DEVICE ADDRESS. A CALL IS MADE TO DMKCFCSC TO SCAN OPERAND TO SEE IF IT IS A RANGE OF ADDRESSES. IF YES, THE ADDRESSES ARE VALIDITY CHECKED, CONVERTED TO BINARY (DMKCVTHB) AND SAVED FOR LATER USE. IF ONLY A SINGLE ADDRESS HAS BEEN SPECIFIED, A CALL TO DMKCVTHB IS MADE TO CONVERT THE ADDRESS TO BINARY. IN BOTH CASES, THE RESPONSE IS FORMATTED ACCORDING TO THE DEVICE TYPE, AND A CALL IS MADE TO DMKQCNWT TO SEND THE RESPONSE. IF NOT A DEVICE ADDRESS, ASSUME A USERID. CALL DMKSCNAU TO LOCATE THE USERID VMBLOK ADDRESS. IF NOT FOUND, CALL DMKERMSG TO SEND ERROR MESSAGE DMKCQG045E. IF OK, FORMAT THE USERID AND LINE ADDRESS, CALL DMKQCNWT TO SEND THE RESPONSE AND EXIT. WHEN PROCESSING A RANGE OF ADDRESSES, A SEPARATE RESPONSE IS FORMATTED AND ISSUED FOR EACH ADDRESS IN THE RANGE.
Calls to Other Routines
DMKSCNFD - TO LOCATE THE NEXT ARGUMENT IN THE COMMAND BUFFER DMKSCNAU - TO FIND THE VMBLOK FOR A SPECIFIC USERID DMKSCNVU - TO FIND CONTROL BLOKS FOR A VIRTUAL DEVICE DMKCVTHB - TO CONVERT HEXADECIMAL ADDRESS TO BINARY DMKCVTDB - TO CONVERT A DECIMAL NUMBER TO BINARY DMKCVTBD - TO CONVERT A BINARY NUMBER TO DECIMAL DMKCVTBH - TO CONVERT A BINARY NUMBER TO HEXADECIMAL DMKFREE - TO OBTAIN STORAGE FOR REGISTER SAVE DMKFRET - TO RETURN STORAGE TO THE SYSTEM DMKQCNWT - TO OUTPUT MESSAGES TO THE TERMINAL DMKSCNRN - TO GET REAL DEVICE NAME DMKERMSG - TO OUTPUT ERROR MESSAGES TO THE TERMINAL. DMKSCNRD - TO GET THE ADDRESS OF A DEVICE. DMKSCNVN - TO GET A DEVICE NAME. DMKCVTDT - TO GET THE DATE AND TIME. DMKCFCSC - SCAN OPERAND FOR RANGE OF ADDRESSES