Table of Contents

DMKCFM Abstract

Statistics

Type ASSEMBLE
Source Lines : 567
Fixes Applied : 7
Most Recent Version : Thursday, December 7, 1978
Last Fix ID : [HRC021DK]

Synopsis

Module

       DMKCFM

Function

       TO READ CP REQUESTS FROM THE USER'S TERMINAL AND DIRECT THEM
       TO THE APPROPRIATE CONSOLE FUNCTION ROUTINE FOR PROCESSING.

Attributes

       REENTRANT, RESIDENT, CALLED VIA SVC

Operation

       1. DMKCFMBK - BREAK ENTRY-CALL DMKFREE TO OBTAIN AN INPUT
          BUFFER.
       2. IF SYSTEM OPERATOR, CALL DMKQCNWT TO SEND A NULL LINE.
           IF NOT, SET UP 'CP' MESSAGE AND CALL DMKQCNWT TO
           SEND IT. THEN GO TO STEP 4.
       3. CONTROL IS GIVEN HERE TO READ THE SECOND AND SUBSEQUENT
           LINES. SET UP FOR NULL LINE AND IF THIS IS THE SYSTEM
           OPERATOR, CALL DMKQCNWT TO SEND IT AND THEN GO TO  NEXT
           STEP. IF NOT SYSTEM OPERATOR, JUST GO TO NEXT STEP.
       4. CALL DMKQCNRD TO READ THE NEXT COMMAND. CONTROL WILL BE
          RETURNED TO STEP 6 WHEN A COMMAND IS READ. IF THIS IS THE
          FIRST READ GO TO STEP 18. IF NOT, GO TO STEP 17.
       5. DMKCFMEN - ENTRY FROM A DIAGNOSE RECEIVED FROM CMS OR
           FROM DMKGRF. SAVE THE REGS AND GO TO STEP 10.
       6. CONFRRTN - RETURN FROM LINE READ. IF GPR 2 IS EQUAL TO
          ZERO, GO TO STEP 7. IF EQUAL TO 4 OR 8, GO TO STEP 8.
          IF EQUAL TO 12, GO TO STEP 9.
       7. IF INPUT COUNT IS NON-ZERO, GO TO STEP 10. IF ZERO, CALL
          DMKQCNWT TO SEND 'CP' MESSAGE. THEN GO TO STEP 20.
       8. IF INPUT COUNT IS ZERO GO TO CALL DMKCFMAT TO
           SIMULATE AN ATTENTION INTERRUPT. THEN GO TO STEP 14.
           ELSE- GO TO STEP 4 TO REISSUE THE READ.
       9. THIS IS A 'LINE BREAK'. GO TO STEP 15.
       10. STORE COUNT OF CHARACTERS IN LINE AND ADDRESS OF THE
           FIRST CHARACTER IN THE COMMAND LINE FOR USE BY DMKSCNFD.
       11. CALL DMKSCNFD TO LOCATE THE COMMAND ARGUMENT. IF NONE IS
           FOUND GO TO STEP 19. IF HAVE ONE, CALL DMKCFCMD TO GET
           THE ROUTINES ADDRESS AND TO INSURE THAT THE ABREVIATION
           AND CLASS ARE VALID.
       12. IF GET A VALID HIT, CALL THE APPROPRIATE ROUTINE TO
           HANDLE THE REQUEST VIA AN SVC 8.
       13. IF GET A NORMAL RETURN FROM THE CALLED ROUTINE, GO TO
          STEP 19 TO CONTINUE PROCESSING.
       14. IF GET A RETURN+4, TURN OFF CONSOLE FUNCTION WAIT
           TO ALLOW VIRTUAL MACHINE TO RUN. THEN CONTINUE WITH NEXT
           STEP.
       15. IF RETURN IS+8, TURN OFF ONLY THE CONSOLE FUNCTION FLAG.
           IF BOTH STEPS 14 AND 15 ARE EXECUTED, THE VIRTUAL MACHINE
           IS ALLOWED TO RUN AND DO CONSOLE FUNCTIONS. IF ONLY
           STEP 15 IS EXECUTED, THE ONLY FUNCTION THE USER MAY
           DO IS HIT THE ATTENTION.
       16. CALL DMKFRET TO RETURN THE LINE BUFFER TO STORAGE.
       17. IF ENTRY WAS VIA A DIAGNOSE,CONTINUE--ELSE GO TO
           DMKDSPCH(DISPATCH).
       18. STORE RETURN CODE IN SAVER2 AND RETURN VIA SVC 12.
       19. IF ENTRY WAS VIA DIAGNOSE, STORE RETURN CODE IN SAVER2.
           THEN CALL DMKSCNFD TO SCAN DOWN LINE . IF A LOGICAL
           LINE END IS ENCOUNTERED, GO TO STEP 11 TO CHECK COMMAND.
       20. IF GET TO THE END OF THE LINE AND ENTERED VIA A DIAGNOSE,
           GO TO STEP 14. IF VIRTUAL MACHINE IS TO BE RUN, GO TO
           STEP 14---ELSE GOT TO STEP 3 TO READ NEXT LINE.

Calls to Other Routines

       DMKCFCMD - TO RETURN THE ADDRESS OF THE ROUTINE THAT
                  WILL PROCESS THE COMMAND.