Table of Contents

DMKCQG Abstract

Statistics

Type ASSEMBLE
Source Lines : 1,071
Fixes Applied : 13
Most Recent Version : Saturday, December 9, 1978
Last Fix ID : [HRC065DK]

Synopsis

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