Type ASSEMBLE
Source Lines : 567
Fixes Applied : 7
Most Recent Version : Thursday, December 7, 1978
Last Fix ID : [HRC021DK]
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.