Table of Contents

DMKCFT Abstract

Statistics

Type ASSEMBLE
Source Lines : 732
Fixes Applied : 4
Most Recent Version : Saturday, December 9, 1978
Last Fix ID : [HRC101DK]

Synopsis

Module

       DMKCFT

Function

       TO ALLOW THE USER TO SPECIFY OPTIONS FOR
       HIS TERMINAL.

Attributes

       REENTRANT, PAGEABLE, CALLED VIA SVC

Operation

       1. CALL DMKSCNFD TO LOCATE THE NEXT ARGUMENT IN THE COMMAND
          LINE. IF NONE FOUND AND NO PREVIOUS SET OF ARGUMENTS
          HAVE BEEN PROCESSED, CALL DMKERMSG TO SEND DMKCFT026E
          ERROR MESSAGE. IF NO ARGUMENT FOUND AND PREVIOUS PROCESS-
          ING HAS BEEN DONE, CALL DMKQCNWT TO OUTPUT 'COMMAND
          COMPLETE' MESSAGE AND EXIT.
       2. SAVE THE LENGTH AND ADDRESS OF THE FIRST ARGUMENT OF THE
          SET, SET A FLAG TO INDICATE THIS, AND CALL DMKSCNFD TO
          LOCATE THE SECOND ARGUMENT OF THE SET. IF NONE FOUND, CALL
          DMKERMSG TO SEND DMKCFT026E ERROR MESSAGE.
       3. COMPARE THE FIRST ARGUMENT AGAINST A LIST OF VALID
          ARGUMENTS. IF GET NO MATCHES, CALL DMKERMSG TO SEND
          DMKCFT002E ERROR MESSAGE.
       4. IF MATCH IS FOUND, CHECK THE ARGUMENT FOR VALID ABREV-
          IATION. IF NOT THE PROPER ABREVIATION, GO BACK TO STEP 3
          TO CONTINUE SCAN OF THE LIST. IF GOOD ,GO TO THE PROPER
          SUBROUTINE TO HANDLE THE REQUEST.
       5. APL - TEST IF THE TERMINAL IS A TTY. IF SO, CALL DMKERMSG
          TO SEND ERROR MESSAGE DMKCFT006E. IF TERMINAL IS OTHER THAN
           A TTY, GO TO STEP 12 TO INTERROGATE THE SECOND ARGUMENT.
          IF ARGUMENT IS 'ON', RETURN TO STEP 5B. IF 'OFF' RETURN
          TO STEP 5C. IF NEITHER, RETURN TO STEP 5A.
       5A. CALL DMKERMSG TO SEND DMKCFT002E ERROR MESSAGE.
       5B. CHECK IF 'APL' ALREADY ON. IF IT IS, GO TO STEP 1. IF
           NOT, TURN THE 'APL' BIT IN THE RDEVTMCD FIELD OF
           THE TERMINAL RDEVBLOK ON AND THE 'TEXT' BIT OFF.
           GO TO STEP 1.
       5C. CHECK IF 'APL' ALREADY OFF. IF SO, GO TO STEP 1. IF NOT,
           SUBTRACT '8' FROM THE RDEVTMCD FIELD AND GO TO STEP 1.
       5D. TEXT - TEST IF THE TERMINAL IS A 3277.  IF NOT,
           CALL DMKERMSG TO SEND ERROR MESSAGE DMKCFT006E.
           IF TERMINAL IS A 3277, GO TO STEP 12 TO
           THE SECOND ARGUMENT.  IF ARGUMENT IS 'ON', RETURN
           TO STEP 5E.  IF 'OFF', RETURN TO STEP 5F.  IF
           NEITHER, GO TO STEP 5A.
       5E. CHECK IF 'TEXT' ALREADY ON.  IF IT IS, GO TO
           STEP 1.  IF NOT, TURN TO 'TEXT' BIT IN THE
           RDEVTMCD FIELD OF THE TERMINAL RDEVBLOK ON AND
           THE 'APL' BIT OFF.  GO TO STEP 1.
       5F. CHECK IF 'TEXT' ALREADY OFF.  IF SO, GO TO STEP 1.
           IF NOT, TURN OFF THE 'TEXT' BIT IN THE RDEVTMCD
           FIELD AND GO TO STEP 1.
       6. CHARDEL - GO TO STEP 12 TO INTERROGATE SECOND ARGUMENT.
          IF 'ON', RETURN TO STEP 6B. IF 'OFF', RETURN TO STEP 6C.
          IF 'CHAR', RETURN TO STEP 6A.
       6A. MOVE THE SPECIFIED CHARACTER INTO THE RDEVCDEL FIELD OF
           THE TERMINAL RDEVBLOK AND GO TO STEP 1.
       6B. MOVE THE SYSTEM DEFAULT CHARDEL CHARACTER FROM
           DMKSYSCD IN SYSLOCS TO THE RDEVCDEL FIELD AND GO TO
           STEP 1.
       6C. ZERO OUT THE RDEVCDEL FIELD AND GO TO STEP 1.
       7. LINEDEL - GO TO STEP 12 TO INTERROGATE THE SECOND
          ARGUMENT.IF 'ON' RETURN TO STEP 7B--IF 'OFF' RETURN TO
          STEP 7C--IF A CHARACTER ,RETURN TO STEP 7A.
       7A. MOVE THE ENTERED CHARACTER INTO THE RDEVLDEL FIELD OF
           THE RDEVBLOK AND GO TO STEP 1.
       7B. MOVE THE SYSTEM DEFAULT LINE DELETE CHARACTER FROM THE
           DMKSYSLD FIELD IN SYSLOCS TO RDEVLDEL AND GO TO STEP 1.
       7C. ZERO OUT THE RDEVLDEL FIELD AND GO TO STEP 1.
       8. LINEND - GO TO STEP 12 TO INTERROGATE THE SECOND ARGUMENT.
          IF 'ON' RETURN TO STEP 8B -- IF 'OFF', RETURN TO STEP 8C
          AND IF CHARACTER, RETURN TO STEP 8A.
       8A. MOVE THE SPECIFIED CHARACTER INTO THE RDEVLEND FIELD OF
           THE TERMINAL RDEVBLOK AND GO TO STEP 1.
       8B. MOVE THE SYSTEM DEFAULT LINE END CHARACTER FROM THE
           DMKSYSLE FIELD OF SYSLOCS AND GO TO STEP 1.
       8C. ZERO OUT THE RDEVLEND FIELD AND GO TO STEP 1.
       9. ESCAPE - GO TO STEP 12 TO INTERROGATE THE SECOND ARGUMENT.
          IF 'ON', RETURN TO STEP 9B-- IF 'OFF' RETURN TO STEP 9C
          AND IF A CHARACTER, RETURN TO STEP 9A.
       9A. MOVE THE SPECIFIED CHARACTER INTO THE RDEVESCP FIELD OF
           RDEVBLOK FOR THE TERMINAL AND GO TO STEP 1.
       9B. MOVE THE SYSTEM DEFAULT ESCAPE CHARACTER FROM THE
           DMKSYSES FIELD OF SYSLOCS TO THE RDEVESCP FIELD OF THE
           TERMINAL RDEVBLOK AND GO TO STEP 1.
       9C. ZERO OUT THE RDEVESCP FIELD IN THE RDEVBLOK AND GO TO
           STEP 1.
      9.1. TABCHAR - INVOKE STEP 12 TO DETERMINE WHETHER 'ON', 'OFF',
           OR 'CHAR' WAS SPECIFIED AS THE ARGUMENT FOR THE TABCHAR.
           IF 'ON' RETURN TO STEP 9.1B, IF 'OFF' RETURN TO STEP 9.1C,
           OR IF A CHARACTER RETURN TO STEP 9.1A.
     9.1A. CHECK THAT THE SPECIFIED CHARACTER IS NOT ALPHABETIC,
           NUMERIC, OR A 3270 CONTROL CHARACTER; IF SO, MOVE IT INTO
           THE VMGRFTAB FIELD OF THE USER'S VMBLOK, OTHERWISE, DON'T
           CHANGE VMGRFTAB AND SEND AN INVALID OPERAND MESSAGE.
     9.1B. MOVE THE SYSTEM DEFAULT TAB CHAR (X'6A') INTO THE USER'S
           VMGRFTAB AND GO TO STEP 1.
     9.1C. ZERO OUT THE USER'S VMGRFTAB FIELD OF THE VMBLOK AND THEN
           GO TO STEP 1.
       10. LINESIZE - CALL DMKCVTDB TO CONVERT THE SECOND ARGUMENT
           TO BINARY. IF THE CONVERT FAILS, CALL DMKERMSG TO SEND
           DMKCFT002E ERROR MESSAGE.THEN CHECK IF A LINESIZE OF ZERO
           WAS SPECIFIED. IF SO , CALL DMKERMSG TO SEND DMKCFT002E
           ERROR MESSAGE. IF NUMBER IS OK, STORE THE NEW
           LINESIZE INTO THE RDEVLLEN FIELD OF THE TERMINAL
           RDEVBLOK AND GO TO STEP 1.
       11. MASK - GO TO STEP 12 TO INTERROGATE THE SECOND ARGUMENT.
           IF 'ON' RETURN TO STEP 11B -- IF 'OFF' , RETURN TO
           STEP 11C -- AND IF NEITHER, RETURN TO STEP 11A.
       11A. CALL DMKERMSG TO SEND ERROR MESSAGE DMKCFT002E.
       11B. TURN OFF THE RDEVPSUP FLAG IN THE RDEVFLAG FIELD
            OF THE TERMINAL RDEVBLOK AND GO TO STEP 1.
       11C. TURN ON THE RDEVPSUP FLAG IN THE RDEVFLAG FIELD
            OF THE TERMINAL RDEVBLOK AND GO TO STEP 1.
       12. THIS IS A SUBROUTINE TO CHECK SECOND ARGUMENT OF A SET.
           CHECK IF 'OFF'. IF IT IS RETURN ON REGISTER 7. IF NOT
           CHECK FOR 'ON'. IF IT IS, RETURN ON REGISTER 6. IF
           NEITHER OF THESE, RETURN ON REGISTER 14.
       13. MODE  OPTION, CHECK FOR VALID ARG, CP OR VM.
           SET THE APPROPRIATE VMBLOK STATUS OR ISSUE ERROR MSG

Calls to Other Routines

       DMKSCNFD - TO LOCATE THE NEXT ARGUMENT
       DMKQCNWT - TO SEND RESPONSE MESSAGE TO TERMINAL
       DMKERMSG - TO SEND ERROR MESSAGES TO TERMINAL