SDSPLAY 
          IDENT  SDSPLAY,SDS
          ABS 
          SST    ASCM 
          ENTRY  SDSPLAY
          ENTRY  RFL= 
          ENTRY  SSJ= 
          SYSCOM B1 
          TITLE  SDSPLAY - SYSTEM VALUES DISPLAY. 
*COMMENT  SDSPLAY - SYSTEM VALUES DISPLAY.
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 SDSPLAY  SPACE  4,10 
***       SDSPLAY - SYSTEM VALUES DISPLAY.
* 
*         J. J. CHIASSON.    85/01/04.
          SPACE  4,10 
***       *SDSPLAY* IS A CPU UTILITY USED BY THE OPERATOR TO DISPLAY
*         AND UPDATE THE SYSTEM SERVICE CLASS PARAMETERS ON THE *L* 
*         DISPLAY OR TO FORMAT THE SAME FOR A PRINTER.
          SPACE  4,20 
***       COMMAND FORMAT. 
* 
*         SDSPLAY(LFN,OP,IFN)         ORDER DEPENDENT PARAMETERS. 
*          OR 
*         SDSPLAY(L=LFN,LO=OP,I=IFN)  ORDER INDEPENDENT PARAMETERS. 
* 
*          WHERE
* 
*         OP = *D*           FORMAT DATA FOR *L* DISPLAY (DEFAULT). 
* 
*         OP = *L*           FORMAT DATA FOR A LINE PRINTER.
* 
*         LFN                LIST OUTPUT FILE NAME (DEFAULT = OUTPUT).
*                            THIS PARAMETER IS VALID ONLY WITH *LO=L* 
*                            OR *I=IFN*.
* 
*         IFN                INPUT FILE NAME (DEFAULT = NONE).
* 
*         NOTES  SPECIAL PRIVILEGES REQUIRED. 
*                1. USER MUST BE *SYOT* TO USE *L* DISPLAY (LO=D).
*                2. USER MUST BE *SYOT* OR HAVE SYSTEM ORIGIN 
*                   PRIVILEGES TO GENERATE A LISTING (LO=L).
* 
*                IF A DIRECTIVE ERROR IS DETECTED WHILE PROCESSING
*                INPUT FILE DIRECTIVES (*I=IFN* SPECIFIED), LIST
*                OUTPUT WILL BE GENERATED EVEN IF *LO=L* WAS NOT
*                SPECIFIED. 
          SPACE  4,15 
***       DAYFILE MESSAGES. 
* 
*         * ARGUMENT ERROR - ARG.*
*                THE SPECIFIED ARGUMENT, *ARG* WAS NOT ONE OF THE 
*                ALLOWABLE ARGUMENTS TO *SDSPLAY*.
* 
*         * SDSPLAY UTILITY COMPLETE.*
*                PROCESSING OF THE *SDSPLAY* UTILITY HAS BEEN ENDED.
* 
*         * USER ACCESS NOT VALID.* 
*                THE USER MUST HAVE SYSTEM ORIGIN PRIVILEGE.
          SPACE  4,10 
***       *L* DISPLAY ERROR MESSAGES. 
* 
*         *UNRECOGNIZABLE DIRECTIVE.* 
*                A COMMAND WAS ENTERED VIA THE *L* DISPLAY WHICH WAS
*                NOT ONE OF THE VALID *SDSPLAY* COMMANDS. 
* 
*         *UNKNOWN PARAMETER - KW.* 
*                AN UNKNOWN KEYWORD PARAMETER, KW, WAS ENTERED. 
* 
*         *UNKNOWN SEPARATOR - KW.* 
*                THE SEPARATOR FOR THE KEYWORD, KW, WAS NOT AN *=*. 
* 
*         *UNKNOWN SERVICE CLASS.*
*                THE SPECIFIED SERVICE CLASS ON A *CLASS* COMMAND 
*                WAS INCORRECT. 
* 
*         *INCORRECT NUMERIC PARAMETER FOR KW.* 
*                THE ENTERED VALUE FOR THE KEYWORD, KW, WAS NOT IN THE
*                ALLOWABLE RANGE FOR THAT KEYWORD.
* 
*         *INCORRECT SERVICE CLASS FOR *DT*.* 
*                THE SERVICE CLASS SPECIFIED FOR THE *DT* PARAMETER 
*                WAS NOT ALLOWED. 
* 
*         *LOWER BOUND IS .GE. UPPER BOUND FOR CLASS XX.* 
*                DURING *GO* PROCESSING, A LOWER BOUND WAS ENCOUNTERED
*                WHICH EXCEEDED OR EQUALED THE ASSOCIATED UPPER BOUND 
*                FOR THE SERVICE CLASS XX.
* 
*         /*RS* IS GREATER THAN *US* FOR CLASS XX./ 
*                DURING *GO* PROCESSING, AN *RS* (RECALL CPU SLICE) 
*                WAS ENCOUNTERED WHICH EXCEEDED THE *US* (UNEXTENDED
*                CPU SLICE) FOR THE SERVICE CLASS XX. 
* 
*         *YYYY NOT WITHIN ALLOWABLE RANGE FOR CLASS XX.* 
*                THE PARAMETER *YYYY* (EITHER *EXIL*, *EXIP* OR 
*                *EXTP*) WAS NOT WITHIN THE EXECUTION QUEUE PRIORITY
*                RANGE (*EXLP* TO *EXUP*) FOR SERVICE CLASS *XX*. 
* 
*         *EXCESS PARAMETERS.*
*                ONE OR MORE EXTRA PARAMETERS WERE ENCOUNTERED ON THE 
*                COMMAND. 
          SPACE  4,10 
***       *L* DISPLAY INFORMATIVE MESSAGES. 
* 
*         *UTILITY COMPLETE.* 
*                THE *END* COMMAND WAS ENTERED VIA THE *L* DISPLAY AND
*                *SDSPLAY* SUCCESSFULLY TERMINATED. 
          SPACE  4,10 
***       *L* DISPLAY COMMANDS. 
* 
*         L.+                PAGE DISPLAY FORWARD.
* 
*         L.-                PAGE DISPLAY BACKWARD. 
* 
*         L.CLASS=XX         DISPLAY THE DATA FOR SERVICE CLASS XX. 
* 
*         L.END              END PROCESSING OF *SDSPLAY*. 
* 
*         L.GO               ENTER INTO CMR ALL OF THE VALUES ENTERED 
*                            VIA THE KEYWORD=VALUE COMMMANDS SINCE THE
*                            LAST *GO* OR *RESET* COMMAND.
* 
*         L.HELP             DISPLAY THE FIRST PAGE OF THE *HELP* 
*                            SCREENS. 
* 
*         L.KEYWORD=VALUE    ALTER THE VALUE FOR THE SPECIFIED KEYWORD. 
*                            THIS COMMAND MAY ONLY BE SPECIFIED WHEN A
*                            *CLASS* DISPLAY IS CURRENTLY BEING 
*                            DISPLAYED.  ANY NUMBER OF KEYWORD=VALUE
*                            ENTRIES MAY BE SPECIFIED ON A LINE,
*                            SEPARATED BY COMMAS, SUBJECT TO THE *L*
*                            DISPLAY INPUT LINE LENGTH RESTRICTION. 
* 
*         L.RESET            RE-READS THE KEYWORD=VALUE PARAMETERS
*                            FROM CMR AND SETS THEM INTO THE DISPLAYS.
          SPACE  4,10 
*         COMMON DECKS. 
  
  
*CALL     COMCCMD 
*CALL     COMCDCM 
*CALL     COMCDCP 
*CALL     COMCMAC 
*CALL     COMSEVT 
*CALL     COMSMSC 
*CALL     COMSPFM 
*CALL     COMSSFM 
*CALL     COMSSSJ 
          SPACE  4,15 
**        SCLASS - DEFINE SERVICE CLASS TABLE.
* 
*         SCLASS NM,MN,DF,ST,TX 
* 
*         ENTRY  *NM* = SERVICE CLASS NAME. 
*                *MN* = TWO CHARACTER MNEMONIC. 
*                *DF* = DAYFILE MESSAGE CHARACTER.
*                *ST* = SHORT TEXT FOR *QFTLIST*. 
*                *TX* = TEXT OF SERVICE CLASS NAME FOR BANNER PAGE. 
* 
*         NOTES  THE CALL TO *COMSSCD* MUST FOLLOW THE DEFINITION OF
*                THIS MACRO.
  
  
          PURGMAC SCLASS
  
 SCLASS   MACRO  NM,MN,DF,ST,TX 
          MACREF SCLASS 
 .SCL     RMT 
          VFD    12/0L_MN,48/0  TX
 .SCL     RMT 
 SCLASS   ENDM
  
  
 SCL$     EQU    0           ONLY PROCESS CLASSES WITH JCB-S
*CALL     COMSSCD 
          SPACE  4,20 
*         MACRO DEFINITIONS.
 DTAV     SPACE  4,15 
**        DTAV - DEFINE TABLE VALUES. 
* 
*         DTAV   V
* 
*         ENTRY  *V* = NUMERIC VALUE TO BE CONVERTED. 
* 
*         EXIT   IF *V* = 0, THEN THE DISPLAY CODE STRING *UNLIMITED* 
*                IS GENERATED.
*                IF *V* .NE. 0, THEN A DISPLAY CODE STRING IS GENERATED 
*                WITH LEADING BLANKS AND THE VALUE OF *V* EXPRESSED IN
*                DISPLAY CODE RIGHT JUSTIFIED WITH DECIMAL BASE.
  
  
          PURGMAC  DTAV 
  
 DTAV     MACRO  V
          MACREF DTAV 
 .A       IFEQ   V,0
          DATA   10H UNLIMITED
 .A       ELSE
 M        DECMIC V
 L        MICCNT M
 B        MICRO  1,10-L,*         * 
          DATA   10H_"B"_"M"
 .A       ENDIF 
 DTAV     ENDM
 SETKW    SPACE  4,10 
**        SETKW - SET KEYWORD ENTRY.
* 
*         *SETKW* GENERATES A TABLE OF VALID KEYWORDS AND THEIR 
*         ASSOCIATED ATTRIBUTES.
* 
*         SETKW  MN,HI,LO,OF,LB,SZ,SP 
* 
*         ENTRY  *MN* = KEYWORD MNEMONIC. 
*                *HI* = HIGHEST VALUE ALLOWED FOR KEYWORD.
*                *LO* = LOWEST VALUE ALLOWED FOR KEYWORD. 
*                *OF* = WORD OFFSET INTO *JCB* FOR KEYWORD. 
*                *LB* = LOW ORDER BIT POSITION IN *JCB* FIELD.
*                *SZ* = BIT SIZE OF FIELD.
*                *SP* = SPECIAL PROCESSING OF THIS KEYWORD REQUIRED.
* 
*         NOTES  THE *HI* AND *LO* PARAMETERS DO NOT APPLY IF *SP*
*                IS SPECIFIED.
  
  
          PURGMAC  SETKW
  
 SETKW    MACRO  MN,HI,LO,OF,LB,SZ,SP 
          MACREF SETKW
          VFD    24/0L_MN,6/OF
 .A       IFC    NE,$SP$$ 
          VFD    1/1
 .A       ELSE
          VFD    1/0
 .A       ENDIF 
          VFD    5/ 
 .B       IFC    NE,$HI$$ 
          VFD    18/HI
 .B       ELSE
          VFD    18/0 
 .B       ENDIF 
 .C       IFC    NE,$LO$$ 
          VFD    6/LO 
 .C       ELSE
          VFD    6/0
 .C       ENDIF 
          VFD    48/,6/LB,6/SZ
 SETKW    ENDM
          TITLE  ASSEMBLY CONSTANTS.
          SPACE  4,10 
****      ASSEMBLY CONSTANTS. 
  
  
 CNCI     EQU    4           NO COMMAND INPUT (*CPM* RETURN STATUS) 
 DBUFL    EQU    101B        DIRECTIVE INPUT FILE BUFFER LENGTH 
 LCOMU    EQU    LCOM/2+1    INPUT BUFFER PACKED
 LDML     EQU    6           *L* DISPLAY MESSAGE LENGTH 
 LIML     EQU    6           *L* DISPLAY INPUT LENGTH 
 MXFL     EQU    3777B-MNFL  MAXIMUM CM FL FOR ONE JOB
 SBUFL    EQU    MXJC*JCBE-JCBE  *SBUF* LENGTH
 SDTA     EQU    0           CURRENT DISPLAY SCREEN IS DATA 
 SHLP     EQU    1           CURRENT DISPLAY SCREEN IS *HELP* 
 XCDT     EQU    4           X - COORDINATE FOR *L* DISPLAY 
 YCDT     EQU    2           Y - COORDINATE FOR *L* DISPLAY 
  
****
          TITLE  TABLES AND DATA DEFINITIONS. 
          ORG    111B 
 SDS      BSS    0
          SPACE  4,10 
*         DAYFILE MESSAGES. 
  
 ERAE     DATA   C* ARGUMENT ERROR - XXXXXXXX*
 ERNV     DATA   C* USER ACCESS NOT VALID.* 
 SEND     DATA   C* SDSPLAY UTILITY COMPLETE.*
          SPACE  4,10 
*         *L* DISPLAY MESSAGES. 
*         NOTES   1.  ALL MESSAGES MUST BE *LDML* WORDS IN LENGTH.
*                 2.  THE PROCESSING ROUTINES FOR THESE MESSAGES
*                     ASSUME A SPECIFIC LOCATION FOR THE SUBSTITUTABLE
*                     PARAMETERS.  IF THE POSITION OF ANY OF THE
*                     SUBSTITUTABLE PARAMETERS IS CHANGED, THE
*                     APPROPRIATE PROCESSING ROUTINE SHOULD BE UPDATED. 
  
  
 TMLD     BSS    0
          LOC    0
 EBMS     DATA   58C
          ERRNZ  EBMS        BLANK MESSAGE MUST BE FIRST
 EURD     DATA   58CUNRECOGNIZABLE DIRECTIVE. 
 EUKP     DATA   58CUNKNOWN PARAMETER - XX. 
 EUKS     DATA   58CUNKNOWN SEPARATOR - XX. 
 EUKC     DATA   58CUNKNOWN SERVICE CLASS.
 EICP     DATA   58CINCORRECT NUMERIC PARAMETER FOR XX. 
 EISC     DATA   58CINCORRECT SERVICE CLASS FOR *DT*. 
 ELGU     DATA   58CLOWER BOUND IS .GE. UPPER BOUND FOR CLASS XX. 
 ERGU     DATA   58C*RS* IS GREATER THAN *US* FOR CLASS XX. 
 EVOR     DATA   58CYYYY NOT WITHIN ALLOWABLE RANGE FOR CLASS XX. 
 EEXP     DATA   58CEXCESS PARAMETERS.
 ENDM     DATA   58CUTILITY COMPLETE. 
  
 EBUF     BSS    6           ERROR MESSAGE ASSEMBLY BUFFER
          LOC    *O 
 TASC     SPACE  4,10 
**        TASC - ATTRIBUTES FOR SERVICE CLASS PAGE TABLE. 
  
  
 TASC     PAGT   SCA1        PAGE 1 
          PAGT   SCA2        PAGE 2 
          PAGT   SCA3        PAGE 3 
          PAGT   *
 TCSV     SPACE  4,10 
**        TCSV - TABLE OF EQUIVALENCED PARAMETER VALUES FOR 
*         *CS*. 
* 
*T TCSV   60/VALUE
* 
*         VALUE = RIGHT JUSTIFIED DISPLAY CODE VALUE. 
  
  
 TCSV     BSS    0
          LOC    0
          DTAV   0
          DTAV   CSRNG1*100B
          DTAV   CSRNG2*100B
          DTAV   CSRNG3*100B
          DTAV   CSRNG4*100B
          DTAV   CSRNG5*100B
          DTAV   CSRNG6*100B
          DTAV   CSRNG7*100B
          LOC    *O 
 TDSV     SPACE  4,10 
**        TDSV - TABLE OF EQUIVALENCED PARAMETER VALUES FOR 
*         *DS*. 
* 
*T TDSV   60/VALUE
* 
*         VALUE = RIGHT JUSTIFIED DISPLAY CODE VALUE. 
  
  
 TDSV     BSS    0
          LOC    0
          DTAV   0
          DTAV   DSRNG1*100B
          DTAV   DSRNG2*100B
          DTAV   DSRNG3*100B
          DTAV   DSRNG4*100B
          DTAV   DSRNG5*100B
          DTAV   DSRNG6*100B
          DTAV   DSRNG7*100B
          LOC    *O 
 TFCV     SPACE  4,10 
**        TFCV - TABLE OF EQUIVALENCED PARAMETER VALUES FOR *FC*. 
* 
*T TFCV   60/VALUE
* 
*         VALUE = RIGHT JUSTIFIED DISPLAY CODE VALUE. 
  
  
 TFCV     BSS    0
          LOC    0
          DTAV   0
          DTAV   NFRNG1*10B 
          DTAV   NFRNG2*10B 
          DTAV   NFRNG3*10B 
          DTAV   NFRNG4*10B 
          DTAV   NFRNG5*10B 
          DTAV   NFRNG6*10B 
          DTAV   NFRNG7*10B 
          LOC    *O 
 TFSV     SPACE  4,10 
**        TFSV - TABLE OF EQUIVALENCED PARAMETER VALUES FOR *FS*. 
* 
*T TFSV   60/VALUE
* 
*         VALUE = RIGHT JUSTIFIED DISPLAY CODE VALUE. 
  
  
 TFSV     BSS    0
          LOC    0
          DTAV   0
          DTAV   FSRNG1*10B 
          DTAV   FSRNG2*10B 
          DTAV   FSRNG3*10B 
          DTAV   FSRNG4*10B 
          DTAV   FSRNG5*10B 
          DTAV   FSRNG6*10B 
          DTAV   FSRNG7*10B 
          LOC    *O 
 THLP     SPACE  4,10 
**        THLP - *HELP* PAGE TABLE. 
  
  
 THLP     PAGT   HLPA        PAGE 1 
          PAGT   HLPB        PAGE 2 
          PAGT   HLPC        PAGE 3 
          PAGT   *
 TKWP     SPACE  4,10 
**        TKWP - TABLE OF KEYWORD POSITIONS.
* 
*T        24/ ,18/ TAB,18/ ADDR 
* 
*         TAB = FWA OF PARAMETER EQUIVALENCE TABLE FOR *DS*, *FC*,
*               *CS* AND *FS* PARAMETERS. 
*         ADDR = ADDRESS OF PARAMETER VALUES POSITION IN TEMPLATE.
* 
*         NOTES  ENTRIES IN THIS TABLE MUST BE IN THE SAME ORDER AS 
*                THOSE IN THE *TKWV* TABLE. 
  
  
 TKWP     BSS    0
          VFD    24/0,18/0,18/INLP
          VFD    24/0,18/0,18/INUP
          VFD    24/0,18/0,18/OTLP
          VFD    24/0,18/0,18/OTUP
          VFD    24/0,18/0,18/EXLP
          VFD    24/0,18/0,18/EXUP
          VFD    24/0,18/0,18/EXIL
          VFD    24/0,18/0,18/EXIP
          VFD    24/0,18/0,18/EXTP
          VFD    24/0,18/0,18/INWF
          VFD    24/0,18/0,18/EXWF
          VFD    24/0,18/0,18/OTWF
          VFD    24/0,18/0,18/ASCT
          VFD    24/0,18/0,18/ASCM
          VFD    24/0,18/0,18/ASNJ
          VFD    24/0,18/0,18/ASCP
          VFD    24/0,18/0,18/ASFL
          VFD    24/0,18/0,18/ASAM
          VFD    24/0,18/0,18/ASEC
          VFD    24/0,18/0,18/ASEM
          VFD    24/0,18/0,18/ASPR
          VFD    24/0,18/0,18/ASSE
          VFD    24/0,18/0,18/ASRS
          VFD    24/0,18/0,18/ASUS
          CON    0           END OF PAGE 1 AND 2 PARAMETERS 
          VFD    24/0,18/TDSV,18/ASDS 
          VFD    24/0,18/TFCV,18/ASFC 
          VFD    24/0,18/TCSV,18/ASCS 
          VFD    24/0,18/TFSV,18/ASFS 
          CON    0           END OF INDEXED PARAMETERS
          VFD    24/0,18/0,18/ASDT
          VFD    24/0,18/0,18/ASTD
          VFD    24/0,18/0,18/ASCJ
 TKWV     SPACE  4,25 
**        TKWV - TABLE OF KEYWORD VALUES. 
* 
*T        24/ MN,6/ OF,1/ SP,5/ ,18/ HI,6/ LO 
*T,       48/ ,6/ LB,6/ SZ
* 
*         MN = DISPLAY CODE KEYWORD MNEMONIC. 
*         OF = OFFSET INTO *JCB* FOR KEYWORD. 
*         SP = SET IF SPECIAL PROCESSING REQUIRED FOR THIS KEYWORD. 
*         HI = HIGHEST VALUE ALLOWED FOR THIS KEYWORD.
*         LO = LOWEST VALUE ALLOWED FOR THIS KEYWORD. 
*         LB = LOW ORDER BIT OF KEYWORD IN *JCB*. 
*         SZ = BIT SIZE OF KEYWORD IN *JCB*.
* 
*         NOTES   1.  *HI* AND *LO* ARE NOT USED IF *SP* IS SPECIFIED.
*                 2.  ENTRIES IN THIS TABLE MUST BE IN THE SAME ORDER 
*                     AS THOSE IN THE *TKWP* TABLE. 
*                 3.  ALL 4 CHARACTER KEYWORD MNEMONICS MUST OCCUR
*                     TOGETHER BEFORE ANY OF THE 2 CHARACTER KEYWORD
*                     MNEMONICS IN THIS TABLE.
*                 4.  THE INDEXED KEYWORD ENTRIES *DS*, *FC*, *CS* AND
*                     *FS* MUST REMAIN TOGETHER.
  
  
 TKWV     BSS    0
          SETKW  INLP,7777B,0,INQT,36,12
          SETKW  INUP,7777B,0,INQT,24,12
          SETKW  OTLP,7777B,0,OTQT,36,12
          SETKW  OTUP,7777B,0,OTQT,24,12
          SETKW  EXLP,7777B,0,EXQT,36,12
          SETKW  EXUP,7777B,0,EXQT,24,12
          SETKW  EXIL,7777B,0,EXQT,48,12
          SETKW  EXIP,7777B,0,EXQT,0,12 
          SETKW  EXTP,7777B,0,MCMT,36,12
          SETKW  INWF,,,INQT,12,12,SP 
          SETKW  EXWF,,,EXQT,12,12,SP 
          SETKW  OTWF,,,OTQT,12,12,SP 
 LFCE     BSS    0           END OF 4 CHARACTER KEYWORD ENTRIES 
          SETKW  CT,7777B,0,SVJT,36,12
          SETKW  CM,7777B,0,SVJT,24,12
          SETKW  NJ,7777B,0,SVJT,12,12
          SETKW  CP,7777B,0,MCMT,48,12
          SETKW  FL,MXFL,0,MCMT,24,12 
          SETKW  AM,77777B,0,MCMT,0,18
          SETKW  EC,7777B,0,MECT,24,12
          SETKW  EM,7777B,0,MECT,0,12 
          SETKW  PR,77B,2,CSJT,48,12
          SETKW  SE,7777B,0,CSJT,24,12
          SETKW  RS,7777B,1,CSJT,12,12
          SETKW  US,7777B,1,CSJT,0,12 
          SETKW  DS,7,0,PFCT,57,3 
          SETKW  FC,7,0,PFCT,54,3 
          SETKW  CS,7,0,PFCT,51,3 
          SETKW  FS,7,0,PFCT,48,3 
 LDTE     SETKW  DT,,,PFCT,0,12,SP
          SETKW  TD,7777B,0,SVJT,0,12 
          CON    0           END OF TABLE 
          SETKW  CJ,7777B,0,JCTT,48,12  SPECIAL ENTRY FOR *CJ*
 TSCT     SPACE  4,10 
**        TSCT - SERVICE CLASS TABLE. 
* 
*T        12/ CLASS,48/ 0 
* 
*         CLASS = TWO CHARACTER SERVICE CLASS MNEMONIC. 
  
  
 TSCT     BSS    0
          LOC    0
          LIST   G
 .SCL     HERE               REMOTE BLOCK FROM *SCLASS* MACRO 
          LIST   *
          CON    0           END OF TABLE 
          LOC    *O 
          SPACE  4,10 
**        ROLB - ROLLOUT PARAMETER BLOCK. 
  
  
 ROLB     VFD    30/0,18/LINE,12/0
          SPACE  4,10 
*         *SETJOB* PARAMETER BLOCK. 
  
 SETB     VFD    60/0 
          VFD    48/0,12/2LDF 
          SPACE  4,10 
*         *SFM* PARAMETER BLOCKS. 
  
  
*         READ SYSTEM SERVICE CLASS DATA. 
  
 SFMA     VFD    12/RCIF,11/0,1/0,12/SBUFL,6/0,18/SBUF
          CON    0
  
*         UPDATE SYSTEM SERVICE CLASS DATA. 
  
 SFMB     VFD    12/RCIF,11/0,1/1,12/SBUFL,6/0,18/SBUF
          CON    0
          SPACE  4,10 
*         SSJ= ENTRY POINT. 
  
  
 SSJ=     EQU    SSJP 
          SPACE  4,10 
*         FET DEFINITION. 
  
 INPUT    FILEC  DBUF,DBUFL  DIRECTIVE INPUT FET
  
 OUTPUT   FILEB  OBUF,OBUFL  OUTPUT FET 
          SPACE  4,10 
*         GLOBAL STORAGE DEFINITIONS. 
  
 CLDS     CON    SHLP        CURRENT *L* DISPLAY SCREEN STATUS
 CSCL     CON    0           SERVICE CLASS ORDINAL FOR DATA DISPLAYS
 EMOR     CON    0           *L* DISPLAY MESSAGE ORDINAL
 LDBP     CON    LBUF        *L* DISPLAY BUFFER POINTER 
          SPACE  4,10 
*         FLAG DEFINITIONS. 
  
 DFLG     CON    0           DIRECTIVE INPUT FILE OPTION FLAG 
 LFLG     CON    0           LINE PRINTER OPTION FLAG 
          TITLE  MAIN PROGRAM.
 SDSPLAY  SPACE  4,10 
**        SDSPLAY - MAIN PROGRAM. 
* 
*         EXIT   TO *PLP* IF PRINT OPTION SPECIFIED.
*                TO *PCL* IF *L* DISPLAY OPTION SPECIFIED.
* 
*         USES   X - 1. 
*                A - 1. 
* 
*         CALLS  PRS. 
  
  
 SDSPLAY  BSS    0           ENTRY
          RJ     PRS         PRESET ROUTINE 
          SA1    DFLG 
          NZ     X1,PIN      IF INPUT FILE DIRECTIVES SPECIFIED 
          SA1    LFLG        CHECK IF LINE PRINTER OPTION SPECIFIED 
          NZ     X1,PLP      IF LINE PRINTER SPECIFIED
          EQ     PCL         PROCESS COMMAND LOOP 
          TITLE  PROCESS COMMAND LOOP.
 PCL      SPACE  4,15 
**        PCL - PROCESS COMMAND LOOP. 
* 
*         *PCL* IS THE PROCESSING LOOP FOR THE *L* DISPLAY OPTION.
* 
*         ENTRY  (CSCL) = 0.
* 
*         EXIT   VIA FUNCTION PROCESSOR *END* WHEN *END* DIRECTIVE
*                IS ENCOUNTERED.
* 
*         USES   X - 2. 
*                A - 2. 
* 
*         CALLS  BLD, CMP, EFP, ILD, OLD. 
  
  
 PCL      BSS    0           ENTRY
 PCL1     RJ     BLD         BUILD *L* DISPLAY
          RJ     OLD         OUTPUT *L* DISPLAY 
          RJ     ILD         INPUT *L* DISPLAY COMMAND
          RJ     CMP         COMMAND PROCESSOR
          SA2    EMOR        CHECK FOR ERROR
          NZ     X2,PCL1     IF ERROR 
          RJ     EFP         EXECUTE FUNCTION PROCESSOR 
          EQ     PCL1        LOOP 
 PIN      SPACE  4,20 
**        PIN - PROCESS INPUT FILE DIRECTIVES.
* 
*         *PIN* IS THE PROCESSOR FOR THE INPUT DIRECTIVES FILE. 
* 
*         ENTRY  (CSCL) = 0.
* 
*         EXIT   TO *PLP* IF PRINT OPTION SPECIFIED OR IF ERRORS
*                         ENCOUNTERED.
*                TO *END* IF END OF INPUT FILE ENCOUNTERED. 
* 
*         USES   X -  1, 2, 6.
*                A -  1, 2, 6.
* 
*         CALLS  CMP, EFP, END. 
* 
*         MACROS MESSAGE, READ, READC.
  
  
 PIN      BSS    0           ENTRY
          READ   INPUT       INITIALIZE READ
 PIN1     READC  INPUT,IBUF,LIML       READ NEXT LINE 
          NZ     X1,PIN3     IF END OF INPUT
          RJ     CMP         COMMAND PROCESSOR
          SA2    EMOR        CHECK FOR ERROR
          NZ     X2,PIN2     IF ERROR 
          RJ     EFP         EXECUTE FUNCTION PROCESSOR 
          SA2    EMOR        CHECK FOR ERROR
          ZR     X2,PIN1     IF NO ERROR
 PIN2     BX6    X2 
          SA6    PINA        SET ERROR ENCOUNTERED
          MESSAGE TMLD+X2    POST ERROR 
          MESSAGE IBUF       POST ORIGINAL LINE 
          EQ     PIN1        GET NEXT DIRECTIVE 
  
 PIN3     SA1    PINA        CHECK FOR ERRORS 
          SA2    LFLG        CHECK FOR OUTPUT DESIRED 
          MX6    0
          BX1    X1+X2
          SA6    CSCL 
          NZ     X1,PLP      IF LINE PRINTER OUTPUT NEEDED
          RJ     END
*         ENDRUN
  
  
 PINA     BSSZ   1           .NZ. IF ERROR ENCOUNTERED
 PLP      SPACE  4,15 
**        PLP - PROCESS LINE PRINTER. 
* 
*         *PLP* FORMATS AND OUTPUTS ALL DATA DISPLAYS TO A LOCAL FILE 
*         FOR PRINTING ON A LINE PRINTER. 
* 
*         ENTRY  (CSCL) = 0.
* 
*         EXIT   DATA FORMATTED ON LOCAL FILE.
* 
*         USES   X - 1, 2, 3, 6.
*                A - 1, 6.
* 
*         CALLS  FLD, GSD, SDT. 
* 
*         MACROS ENDRUN, MESSAGE, SETFS, SETJOB, WRITER.
  
  
 PLP      BSS    0           ENTRY
  
*         INITIALIZE DATA BUFFERS.
  
          RJ     GSD         GET SYSTEM SERVICE CLASS DATA
  
*         LOOP THROUGH ALL SERVICE CLASSES. 
  
 PLP1     RJ     SDT         SET DATA IN TEMPLATE 
          SX1    LPHR        FWA OF PAGE TO DISPLAY 
          SX2    OUTPUT      SET FET ADDRESS
          SX3    B1+         INDICATE ZERO BYTE TERMINATED LINES
          SX6    X1+LPHRL+SCA1L-1  LWA OF PAGE TO DISPLAY 
          RJ     FLD         FORMAT *L* DISPLAY BUFFER
          WRITER X2          FLUSH BUFFER 
          SX1    SCA2        PAGE 2 OF DATA 
          SX3    1
          SX6    SCA2+SCA2L-1 
          RJ     FLD         FORMAT *L* DISPLAY BUFFER
          WRITER X2 
          SX1    SCA3        PAGE 3 OF DATA 
          SX3    1
          SX6    SCA3+SCA3L-1 
          RJ     FLD         FORMAT *L* DISPLAY BUFFER
          WRITER X2 
          SA1    CSCL        GET SERVICE CLASS ORDINAL
          SX6    X1+B1       INCREMENT TO NEXT SERVICE CLASS
          SA6    A1 
          SX2    X6-MXJC+1
          NZ     X2,PLP1     IF MORE SERVICE CLASSES TO PROCESS 
  
*         SET JOB PARAMETERS. 
  
 PLP2     SETFS  OUTPUT,0    SAVE OUTPUT AS LOCAL FILE
          SETJOB SETB        CHANGE JOB DISPOSITION TO *DF* 
          MESSAGE  SEND,0,R  * SDSPLAY UTILITY COMPLETE.* 
          ENDRUN
          TITLE  FUNCTION PROCESSORS. 
 CLS      SPACE  4,15 
**        CLS - PROCESS *CLASS* COMMAND.
* 
*         ENTRY  (X1) = SEPARATOR EXIT CONDITION FROM *POP*.
*                (B6) = EXIT CONDITION FROM *POP*.
* 
*         EXIT   (CSCL) = UPDATED SERVICE CLASS ORDINAL, IF NO ERROR. 
*                (CLDS) = CURRENT *L* DISPLAY SCREEN STATUS.
*                THE DATA FOR THE SPECIFIED SERVICE CLASS IS SET INTO 
*                THE TEMPLATES. 
* 
*         USES   X - 1, 6.
*                A - 1, 6.
* 
*         CALLS  POP, RPN, SDT. 
  
  
 CLS3     SX6    EEXP        *EXCESS PARAMETERS.* 
          SA6    EMOR        SET MESSAGE ORDINAL
          EQ     CLSX        RETURN 
  
 CLS4     SX6    EUKC        *UNKNOWN SERVICE CLASS.* 
          SA6    EMOR 
          EQ     CLSX        RETURN 
  
 CLS5     SX6    EURD        *UNRECOGNIZABLE DIRECTIVE.*
          SA6    EMOR 
  
  
 CLS      SUBR               ENTRY/EXIT 
          ZR     B6,CLS5     IF NO MORE PARAMETERS ON COMMAND 
          SX1    X1-1R= 
          NZ     X1,CLS5     IF INCORRECT SEPARATOR 
          RJ     POP         GET SERVICE CLASS PARAMETER
          PL     X2,CLS3     IF NO TERMINATOR, ECXESS PARAMETERS. 
  
*         CHECK SERVICE CLASS TABLE FOR A MATCH.
  
          SA1    TSCT        FWA SERVICE CLASS TABLE
 CLS1     ZR     X1,CLS4     IF UNKNOWN SERVICE CLASS 
          BX1    X6-X1
          ZR     X1,CLS2     IF A VALID SERVICE CLASS IS FOUND
          SA1    A1+1        GET NEXT ENTRY IN SERVICE CLASS TABLE
          EQ     CLS1        CHECK NEXT ENTRY 
  
*         SET SERVICE CLASS TO BE DISPLAYED.
  
 CLS2     SX6    A1-TSCT     SET SERVICE CLASS ORDINAL
          SA6    CSCL 
          SX6    SDTA        SET CURRENT SCREEN STATUS TO DATA
          SA6    CLDS 
          RJ     SDT         SET DATA IN TEMPLATE 
          RJ     RPN         RESET PAGE NUMBER
          EQ     CLSX        RETURN 
 END      SPACE  4,10 
**        END - END *L* DISPLAY UTILITY.
* 
*         *END* TERMINATES THE UTILITY WITH A DAYFILE MESSAGE.
* 
*         USES   X - 6. 
*                A - 6. 
* 
*         CALLS  BLD, OLD.
* 
*         MACROS DSDINP, ENDRUN, MESSAGE. 
  
  
 END      SUBR               ENTRY/EXIT 
          SX6    ENDM        *UTILITY COMPLETE.*
          SA6    EMOR        SET MESSAGE ORDINAL
          SA1    DFLG 
          NZ     X1,END1     IF INPUT DIRECTIVES
          RJ     BLD
          RJ     OLD         OUTPUT *L* DISPLAY 
          DSDINP IPW,C       CLEAR *L* DISPLAY INPUT BUFFER 
 END1     MESSAGE  SEND,0,R  * SDSPLAY UTILITY COMPLETE.* 
          ENDRUN
 HLP      SPACE  4,10 
**        HLP - PROCESS *HELP* COMMAND. 
* 
*         EXIT   (CLDS) = *HELP* DISPLAY SCREEN STATUS. 
*                *HELP* DISPLAY RESET TO PAGE 1.
* 
*         USES   X - 6. 
*                A - 6. 
* 
*         CALLS  RPN. 
  
  
 HLP      SUBR               ENTRY/EXIT 
          SX6    SHLP        SET *HELP* DISPLAY SCREEN STATUS 
          SA6    CLDS 
          RJ     RPN         RESET PAGE NUMBER
          EQ     HLPX        RETURN 
 PGO      SPACE  4,20 
**        PGO - PROCESS *GO* COMMAND. 
* 
*         *PGO* PERFORMS CERTAIN DATA VALIDATIONS, THEN IF THERE ARE
*         NO ERRORS, SETS ALL KEYWORD VALUES ENTERED SINCE THE LAST 
*         *GO* OR *RESET* INTO CMR. 
* 
*         ENTRY  (SBUF) = UPDATED *JCB* DATA. 
* 
*         EXIT   *JCB* IN CMR UPDATED, IF NO ERROR DETECTED.
* 
*         USES   X - 0, 1, 2, 5, 6, 7.
*                A - 1, 2, 5, 7.
*                B - 2, 5.
* 
*         CALLS  CVB, SSM.
* 
*         MACROS SYSTEM.
  
  
*         SET *LOWER BOUND IS .GE. UPPER BOUND FOR CLASS XX.* ERROR.
  
 PGO3     SX0    ELGU 
          EQ     PGO5        PROCESS ERROR MESSAGE
  
*         SET *YYYY NOT WITHIN ALLOWABLE RANGE FOR CLASS XX.* ERROR.
  
 PGO4     SA1    TMLD+EVOR   INSERT VALUE IN MESSAGE
          MX0    -36
          BX1    -X0*X1 
          SX0    EVOR        DEFINE MESSAGE INDEX 
          BX7    X5+X1
          SA7    A1 
 PGO5     RJ     SSM         SET SERVICE CLASS IN MESSAGE 
          EQ     PGOX        RETURN 
  
*         SET /*RS* IS GREATER THAN *US* FOR CLASS XX./ ERROR.
  
 PGO6     SX0    ERGU 
          EQ     PGO5        PROCESS ERROR MESSAGE
  
*         SET VALIDATED VALUES INTO CMR.
  
 PGO7     SYSTEM SFM,R,SFMB,RSDF*100B  SET SYSTEM VALUES IN CMR 
  
 PGO      SUBR               ENTRY/EXIT 
  
*         ENSURE ALL *LP* VALUES ARE LESS THAN ALL *UP* VALUES. 
  
          MX0    -12
          SB2    SBUF        SET FWA SYSTEM BUFFER
          SB5    B0          INITIALIZE *JCB* OFFSET
 PGO1     SB5    B5+1        SET NEXT SERVICE CLASS ORDINAL 
          SX2    B5-MXJC
          ZR     X2,PGO7     IF END OF SERVICE CLASSES
          SA2    B2+INQT     CHECK INPUT QUEUE
          RJ     CVB         CALCULATE VALUE BOUNDARIES 
          NG     X1,PGO3     IF BOUNDS ERROR
          SA2    B2+OTQT     CHECK OUTPUT QUEUE 
          RJ     CVB         CALCULATE VALUE BOUNDARIES 
          NG     X1,PGO3     IF BOUNDS ERROR
          SA2    B2+EXQT     CHECK EXECUTION QUEUE
          RJ     CVB         CALCULATE VALUE BOUNDARIES 
          NG     X1,PGO3     IF BOUNDS ERROR
          SA5    PGOA        SET *EXIL* FOR MESSAGE 
          LX2    -12         CHECK *EXIL* VALUE 
          BX1    -X0*X2 
          IX6    X4-X1
          LX2    -12         CHECK *EXIP* VALUE 
          NG     X6,PGO4     IF *EXIL* IS GREATER THAN *EXUP* 
          IX6    X1-X3
          BX1    -X0*X2 
          NG     X6,PGO4     IF *EXIL* IS LESS THAN *EXLP*
          SA5    A5+B1       SET *EXIP* FOR MESSAGE 
          IX6    X4-X1
          NG     X6,PGO4     IF *EXIP* IS GREATER THAN *EXUP* 
          IX6    X1-X3
          NG     X6,PGO4     IF *EXIP* IS LESS THAN *EXUP*
          SX1    B5-TSSC
          NZ     X1,PGO2     IF NOT TIME-SHARING SERVICE CLASS
          SA2    B2+MCMT     CHECK *EXTP* VALUE 
          LX2    24 
          BX1    -X0*X2 
          SA5    A5+B1       SET *EXTP* FOR MESSAGE 
          IX6    X4-X1
          NG     X6,PGO4     IF *EXTP* IS GREATER THAN *EXLP* 
          IX6    X1-X3
          NG     X6,PGO4     IF *EXTP* IS LESS THAN *EXLP*
 PGO2     SA2    B2+CSJT     GET *US* VALUE 
          BX1    -X0*X2 
          LX2    -12
          BX3    -X0*X2      GET *RS* VALUE 
          IX6    X1-X3
          NG     X6,PGO6     IF *RS* .GT. *US*
          SB2    B2+JCBE     NEXT SERVICE CLASS ORDINAL 
          EQ     PGO1        CHECK BOUNDS FOR NEXT SERVICE CLASS
  
  
 PGOA     DATA   0LEXIL      INSERT INTO MESSAGE IF ERROR 
          DATA   0LEXIP 
          DATA   0LEXTP 
 PLD      SPACE  4,15 
**        PLD - PAGE *L* DISPLAY. 
* 
*         ENTRY  (X1) = PAGING CHARACTER RIGHT JUSTIFIED. 
*                (CLDS) = CURRENT *L* DISPLAY SCREEN STATUS.
* 
*         EXIT   APPROPRIATE PAGE TABLE UPDATED.
* 
*         USES   X - 1, 2, 3, 4.
*                A - 3. 
* 
*         CALLS  PGD. 
  
  
 PLD      SUBR               ENTRY/EXIT 
          SX2    THLP        ASSUME *HELP* PAGE TABLE 
          SA3    CLDS 
          SX3    X3-SHLP
          ZR     X3,PLD1     IF *HELP* STATUS 
          SX2    TASC        SET DATA PAGE TABLE
 PLD1     LX1    54          LEFT JUSTIFY PAGING CHARACTER
          BX3    X1 
          SX1    LDBP        *L* DISPLAY BUFFER POINTER FOR *PGD* 
          SX4    B1+         INDICATE *L* DISPLAY 
          RJ     PGD         PAGE *L* DISPLAY 
          EQ     PLDX        RETURN 
  
  
 PGD      HERE               REMOTE BLOCK FROM *COMCDCP*
 RST      SPACE  4,10 
**        RST - *RESET* DISPLAY TO SYSTEM VALUES. 
* 
*         ENTRY  (CSCL) = CURRENT SERVICE CLASS ORDINAL.
* 
*         EXIT   TEMPLATE UPDATED TO CURRENT SYSTEM DATA. 
* 
*         CALLS  GSD, SDT.
  
  
 RST      SUBR               ENTRY/EXIT 
          RJ     GSD         GET SYSTEM DATA
          RJ     SDT         SET DATA IN TEMPLATE 
          EQ     RSTX        RETURN 
          TITLE  SUBROUTINES. 
 AFT      SPACE  4,20 
**        AFT - ADD FLOATING TERMINATOR.
* 
*         ENTRY  (X1) = NAME TO HAVE FLOATING TERMINATOR APPENDED.
*                (A2) = FWA OF DESTINATION FOR RESULT, IF NAME IS 10
*                       CHARACTERS IN LENGTH. 
* 
*         EXIT   (X6) = NAME WITH FLOATING TERMINATOR APPENDED. 
*                (A2) = UPDATED IF NAME IS 10 CHARACTERS IN LENGTH. 
* 
*         USES   X - 0, 1, 2, 3, 6, 7.
*                A - 1, 2, 3, 6, 7. 
*                B - 2. 
* 
*         CALLS  SFN. 
* 
*         NOTES  IF THE NAME IS 10 CHARACTERS IN LENGTH, THE FLOATING 
*                TERMINATOR WILL BE PLACED IN THE FIRST CHARACTER OF
*                THE NEXT WORD. 
  
  
 AFT      SUBR               ENTRY/EXIT 
          RJ     SFN         SPACE FILL NAME
          SA1    AFTA        FLOATING TERMINATOR
          SB2    6
          AX0    X7,B2       PRODUCE MASK FOR FLOATING TERMINATOR 
          BX0    X7-X0
          SA3    TMLD        INSURE LAST WORD CONTAINS BLANKS 
          BX7    X3 
          SA7    A2+B1
          NZ     X0,AFT1     IF TERMINATOR GOES IN THIS WORD
          SA6    A2          SAVE 10 CHARACTER KEYWORD
          SA2    A2+B1       SET NEXT WORD FOR FLOATING TERMINATOR
          BX6    X2 
          MX0    6
 AFT1     BX6    -X0*X6 
          BX1    X1*X0
          BX6    X6+X1       ADD FLOATING TERMINATOR
          EQ     AFTX        RETURN 
  
  
 AFTA     DATA   10H..........  FLOATING TERMINATOR 
 ATC      SPACE  4,15 
**        ATC - APPEND TERMINATOR CHARACTER.
* 
*         *ATC* ENSURES THAT THE *L* DISPLAY COMMAND IMAGE HAS A
*         TERMINATOR.  THIS ENSURES THAT *POP* WILL NOT RETURN AN 
*         ERROR CODE DUE TO THE LACK OF A VALID TERMINATOR. 
* 
*         ENTRY  (B6) = FWA BUFFER TO CHECK FOR TERMINATOR. 
*                (USBC) = LWA OF BUFFER TO CHECK FOR TERMINATOR.
* 
*         EXIT   *.* APPENDED TO END OF STRING BUFFER.
* 
*         USES   X - 2, 7.
*                A - 2, 7.
*                B - 2, 3.
  
  
 ATC      SUBR               ENTRY/EXIT 
          SB2    B6          SET FWA TO CHECK 
          SA2    USBC        SET LWA TO CHECK 
          SB3    X2+B1
 ATC1     SA2    B2+
          ZR     X2,ATC2     IF END OF INPUT
          EQ     B2,B3,ATC2  IF BUFFER EXHAUSTED
          SB2    B2+1 
          EQ     ATC1        CHECK NEXT CHARACTER 
  
*         APPEND TERMINATOR.
  
 ATC2     SA2    A2-1        CHECK IF THERE IS ALREADY A TERMINATOR 
          SX7    X2-1R. 
          ZR     X7,ATCX     IF TERMINATOR ALREADY PRESENT
          SX7    X2-1R) 
          ZR     X7,ATCX     IF TERMINATOR ALREADY PRESENT
          SX7    1R.         PUT TERMINATOR INTO BUFFER 
          SA7    A2+1 
          SA2    USBC        INCREMENT LWA CHARACTER IN STRING BUFFER 
          SX7    X2+B1
          SA7    A2 
          EQ     ATCX        RETURN 
 BLD      SPACE  4,20 
**        BLD - BUILD *L* DISPLAY.
* 
*         *BLD* FORMATS THE CURRENT SCREEN FOR OUTPUT TO THE CONSOLE
*         *L* DISPLAY.
* 
*         ENTRY  (CLDS) = CURRENT *L* DISPLAY SCREEN STATUS.
*                (EMOR) = *L* DISPLAY MESSAGE INDEX.
* 
*         EXIT   (LBUF) = FORMATTED *L* DISPLAY BUFFER. 
* 
*         USES   X - 1, 2, 3, 5, 6. 
*                A - 1, 2, 3, 6.
*                B - 2, 3, 4, 6.
* 
*         CALLS  COI, FLB.
* 
*         MACROS MOVE.
  
  
 BLD      SUBR               ENTRY/EXIT 
          SA2    CLDS        GET CURRENT SCREEN STATUS
          RJ     COI         CONVERT OPERATOR INPUT 
          SA1    THLP        FWA OF *HELP* PAGE TABLE 
          SA3    LFWA        GET *L-DISPLAY* CONTROL WORD 
          SX6    LHLP        *SDSPLAY - HELP.*
          MX5    42 
          LX5    12 
          SX2    X2-SHLP
          ZR     X2,BLD1     IF *HELP* STATUS 
          SA1    TASC        FWA OF DATA PAGE TABLE 
          SX6    LCLS        *SDSPLAY - CLASS.* 
 BLD1     LX6    12          SET FWA OF DISPLAY ID STRING 
          BX5    X5*X3
          BX6    X6+X5
          LX1    30 
          SA6    A3 
          SB2    X1 
          SA1    A1+B2       GET FWA OF TEMPLATE TO DISPLAY 
          SX5    X1          SAVE FWA OF TEMPLATE TO DISPLAY
          SA2    EMOR        MESSAGE ORDINAL
          MOVE   LDML,TMLD+X2,X5+LDMO  SET MESSAGE INTO TEMPLATE
          MOVE   LIML,IBUF,X5+LDMO+LDML  SET INPUT LINE INTO TEMPLATE 
          SX1    X5          FWA OF BUFFER TO FORMAT
          SX2    B0          SET FORMAT DESTINATION FOR *L* DISPLAY 
          SX6    X1+DSPL-1   LWA OF BUFFER TO FORMAT
          SX3    B1+         INDICATE ZERO BYTE TERMINATED LINES
          SB2    LBUF        FWA TO PLACE FORMATTED DATA
          SB6    LBUF+LBUFL  LWA+1 OF BUFFER TO RECEIVE FORMATTED DATA
          SB3    XCDT        SET X-COORDINATE FOR *L* DISPLAY 
          SB4    YCDT        SET Y-COORDINATE FOR *L* DISPLAY 
          RJ     FLB         FORMAT DATA TO BE OUTPUT 
          EQ     BLDX        RETURN 
 CJA      SPACE  4,10 
**        CJA - CALCULATE *JCB* OFFSET. 
* 
*         ENTRY  (CSCL) = CURRENT SERVICE CLASS ORDINAL.
* 
*         EXIT   (X5) = FWA OF *JCB* IN *SBUF* FOR CURRENT
*                SERVICE CLASS. 
* 
*         USES   X - 1, 2, 5. 
*                A - 1. 
  
  
 CJA      SUBR               ENTRY/EXIT 
          SA1    CSCL        GET CURRENT SERVICE CLASS ORDINAL
          SX2    JCBE 
          IX1    X1*X2       OFFSET INTO *JCB* BUFFER 
          SX5    X1+SBUF
          EQ     CJAX        RETURN 
 CMP      SPACE  4,15 
**        CMP - COMMAND PROCESSOR.
* 
*         ENTRY  (IBUF) = *L* DISPLAY COMMAND.
* 
*         EXIT   (X1) = SEPARATOR FROM *POP*. 
*                     = LEFT JUSTIFIED PAGING CHARACTER, IF PAGING
*                       COMMAND.
*                (B5) = FUNCTION PROCESSOR ADDRESS, IF NO ERROR.
*                (EMOR) = *L* DISPLAY MESSAGE ORDINAL.
* 
*         USES   X - 0, 2, 3, 6.
*                A - 2, 6.
*                B - 2, 5.
* 
*         CALLS  ATC, POP, USB. 
  
  
 CMP5     SX6    EURD        *UNRECOGNIZABLE DIRECTIVE.*
          SA6    EMOR        SET MESSAGE ORDINAL
          EQ     CMPX        RETURN 
  
 CMP6     SX6    EEXP        *EXCESS PARAMETERS.* 
          SA6    EMOR 
  
 CMP      SUBR               ENTRY/EXIT 
          SX6    B0+         SET NO ERROR 
          SA6    EMOR        SET MESSAGE ORDINAL
  
*         CHECK FOR PAGING COMMAND. 
  
          SB2    IBUF        FWA COMMAND BUFFER 
          RJ     USB         UNPACK STRING BUFFER 
          RJ     ATC         APPEND TERMINATOR CHARACTER
          RJ     POP         PICK OUT PARAMETER 
          NZ     X6,CMP1     IF NOT PAGING COMMAND
          SB5    PLD         PAGE *L* DISPLAY 
          SX2    X1-1R+      CHECK FOR *+*
          SX3    X1-1R-      CHECK FOR *-*
          ZR     X2,CMPX     IF PAGING CHARACTER
          ZR     X3,CMPX     IF PAGING CHARACTER
  
*         CHECK REMAINING COMMANDS. 
  
 CMP1     SA2    TCMD        FWA COMMAND TABLE
          MX0    42          COMMAND MASK 
 CMP2     ZR     X2,CMP4     IF END OF TABLE
          BX3    X0*X2       GET COMMAND FROM TABLE 
          BX3    X3-X6
          ZR     X3,CMP3     IF A MATCH 
          SA2    A2+1 
          EQ     CMP2        CHECK NEXT ENTRY IN COMMAND TABLE
  
*         COMMAND FOUND.
  
 CMP3     SB5    X2+         SET PROCESSOR ADDRESS
          SB2    B5-CLS 
          ZR     B2,CMPX     IF THE *CLASS* COMMAND 
          ZR     B6,CMPX     IF NO EXCESS PARAMETERS
          EQ     CMP6        PROCESS *EXCESS PARAMETERS*
  
*         CHECK FOR KEYWORD=VALUE COMMAND.
  
 CMP4     SA2    CLDS        CHECK CURRENT DISPLAY STATUS 
          SX2    X2-SHLP
          ZR     X2,CMP5     IF *HELP* STATUS 
  
*         PROCESS KEYWORD=VALUE COMMAND.
  
          SB5    PKC         PROCESS KEYWORD COMMAND
          EQ     CMPX        RETURN 
 TCMD     SPACE  4,10 
**        TCMD - TABLE OF COMMANDS. 
* 
*T        42/ COMMAND,18/ ADDR
* 
*         COMMAND = DISPLAY CODE COMMAND VALUE. 
*         ADDR = FUNCTION PROCESSOR FWA FOR COMMAND.
  
  
 TCMD     BSS    0
*         VFD    42/0L+,18/PLD
*         VFD    42/0L-,18/PLD
          VFD    42/0LCLASS,18/CLS
          VFD    42/0LEND,18/END
          VFD    42/0LGO,18/PGO 
          VFD    42/0LHELP,18/HLP 
          VFD    42/0LRESET,18/RST
          CON    0           END OF TABLE 
 COI      SPACE  4,20 
**        COI - CONVERT OPERATOR INPUT. 
* 
*         *COI* CONVERTS THE OPERATOR *L* DISPLAY INPUT BY CHANGING 
*         ALL ZERO BYTES TO BLANKS.  THE LAST WORD OF THE INPUT LINE
*         IS NOT CONVERTED TO INSURE THAT A ZERO BYTER TERMINATOR 
*         EXISTS. 
* 
*         ENTRY  IBUF = FWA OF INPUT BUFFER.
* 
*         EXIT   (IBUF) = INPUT BUFFER, BLANK FILLED, ZERO BYTE 
*                         TERMINATED. 
* 
*         USES   X - 1. 
*                A - 1, 6.
*                B - 2. 
* 
*         CALLS  ZTB. 
  
  
 COI      SUBR               ENTRY/EXIT 
          SB2    LCOMU-1     OPERATOR INPUT LINE LENGTH-1 
          SA1    IBUF-1      FIRST WORD-1 OF OPERATOR INPUT 
 COI1     ZR     B2,COIX     IF ALL WORDS-1 CONVERTED 
          SA1    A1+1 
          RJ     ZTB         CONVERT ZERO BYTES TO BLANKS 
          SA6    A1          REPLACE IN *IBUF*
          SB2    B2-B1       DECREMENT NUMBER OF WORDS TO CONVERT 
          EQ     COI1        CONVERT NEXT WORD
 CVB      SPACE  4,20 
**        CVB - CALCULATE VALUE BOUNDARIES. 
* 
*         *CVB* CALCULATES IF THE LOWER BOUNDARY IS LESS THAN 
*         OR EQUAL TO THE UPPER BOUNDARY FOR THE QUEUE PRIORITY 
*         PARAMETERS. 
* 
*         ENTRY  (X2) = *JCB* WORD, *INQT*, *EXQT* OR *OTQT*. 
*                (X0) = MASK FOR PRIORITY FIELDS. 
* 
*         EXIT   (X1) = NEGATIVE, IF BOUNDS ERROR.
*                     = POSITIVE, IF NO BOUNDS ERROR. 
*                (X2) = SHIFTED RIGHT 24 BITS.
*                (X3) = LOWER BOUND VALUE.
*                (X4) = UPPER BOUND VALUE.
* 
*         USES   X - 1, 2, 3, 4.
  
  
 CVB      SUBR               ENTRY/EXIT 
          LX2    -24         GET UPPER BOUND
          BX4    -X0*X2 
          LX2    -12         GET LOWER BOUND
          BX3    -X0*X2 
          IX1    X4-X3
          SX1    X1-1 
          EQ     CVBX        RETURN 
 CVK      SPACE  4,10 
**        CVK - CHECK FOR VALID KEYWORD.
* 
*         ENTRY  (X6) = KEYWORD TO CHECK. 
* 
*         EXIT   (X3) = 0, IF VALID KEYWORD FOUND.
*                     = NON-ZERO, IF VALID KEYWORD NOT FOUND. 
* 
*         USES   X - 0, 3, 5. 
*                A - 5. 
  
  
 CVK      SUBR               ENTRY/EXIT 
          SA5    TKWV        FWA OF KEYWORD TABLE 
          MX0    24 
 CVK1     ZR     X5,CVKX     IF END OF TABLE
          BX3    X0*X5       GET KEYWORD FROM TABLE 
          BX3    X3-X6
          ZR     X3,CVKX     IF A MATCH 
          SA5    A5+2 
          EQ     CVK1        CHECK NEXT ENTRY IN KEYWORD TABLE
 EFP      SPACE  4,15 
**        EFP - EXECUTE FUNCTION PROCESSOR. 
* 
*         *EFP* JUMPS TO THE CORRECT FUNCTION PROCESSOR, BASED UPON 
*         THE COMMAND ENTERED VIA THE *L* DISPLAY.  THE FUNCTION
*         PROCESSING ROUTINE IS SET UP SO THAT IT RETURNS TO THE
*         ADDRESS *EFP* WOULD HAVE RETURNED TO. 
* 
*         ENTRY  (B5) = ADDRESS OF FUNCTION PROCESSOR.
* 
*         EXIT   TO FUNCTION PROCESSOR WITH RETURN ADDRESS SET. 
* 
*         USES   X - 2, 7.
*                A - 2, 7.
  
  
 EFP      SUBR               ENTRY/EXIT 
          SA2    EFPX        SET RETURN ADDRESS IN PROCESSOR
          BX7    X2 
          SA7    B5 
          JP     B5+1        JUMP TO PROCESSOR
 EPA      SPACE  4,15 
**        EPA - ENTER PARAMETER VALUES IN TEMPLATE. 
* 
*         *EPA* SETS ALL OF THE PARAMETER VALUES INTO PAGES 1 AND 2 
*         OF THE TEMPLATES EXCEPT FOR THE CURRENT JOB COUNT.
* 
*         ENTRY  (X5) = OFFSET INTO *SBUF* FOR *JCB* FOR CURRENT
*                       SERVICE CLASS.
* 
*         USES   X - 0, 1, 2. 
*                A - 1, 2.
*                B - 2, 3.
* 
*         CALLS  COD, GSE, SVT. 
  
  
 EPA      SUBR               ENTRY/EXIT 
          SA1    TKWV        FWA OF TABLE OF KEYWORD VALUES 
          SA2    TKWP        FWA OF TABLE OF TEMPLATE ADDRESSES 
 EPA1     ZR     X2,EPAX     IF ALL ENTRIES PROCESSED 
          RJ     GSE         GET SYSTEM ENTRY FOR KEYWORD 
          ZR     B7,EPA2     IF NOT SPECIAL PROCESSING
          SB2    X1+         USER POWER OF 2 AS SHIFT COUNT 
          SX1    B1+
          LX1    B2          SET BINARY POWER OF 2 FOR CONVERSION 
 EPA2     RJ     COD         CONVERT ENTRY TO DISPLAY CODE
          MX0    -18         SET MASKS FOR PAGE 1 PARAMETERS
          MX1    12 
          SB2    48          SET SHIFT COUNT FOR PAGE 1 PARAMETERS
          SB3    A1-LFCE
          NG     B3,EPA3     IF PAGE 1 PARAMETER
          MX0    -24         SET MASKS FOR PAGE 2 PARAMETERS
          MX1    6
          SB2    54          SET SHIFT COUNT FOR PAGE 2 PARAMETERS
 EPA3     RJ     SVT         SET VALUE IN TEMPLATE
          EQ     EPA1        PROCESS NEXT ENTRY 
 EPB      SPACE  4,15 
**        EPB - ENTER REMAINING VALUES IN TEMPLATES.
* 
*         *EPB* SETS THE VALUES INTO PAGE 3 OF THE TEMPLATES AND ALSO 
*         SETS THE CURRENT JOB COUNT INTO PAGE 2. 
* 
*         ENTRY  (A1) = ADDRESS OF *TKWV* ENTRY FOR NEXT DATA ITEM. 
*                (A2) = ADDRESS OF *TKWP* ENTRY FOR NEXT DATA ITEM-1. 
*                (X1) = *TKWV* ENTRY FOR NEXT DATA ITEM.
*                (X5) = FWA OF *SBUF* ENTRY FOR SERVICE CLASS.
* 
*         USES   X - ALL. 
*                A - 1, 2, 3, 4, 5, 6, 7. 
*                B - 2, 6, 7. 
* 
*         CALLS  COD, GSE.
  
  
 EPB      SUBR               ENTRY/EXIT 
          SA2    A2+1        GET NEXT ENTRY IN *TKWP* 
  
*         PROCESS INDEXED PARAMETER VALUES. 
  
 EPB1     ZR     X2,EPB2     IF NO MORE INDEXED PARAMETERS
          RJ     GSE         GET SYSTEM ENTRY FOR KEYWORD 
          SB7    X1+         SAVE INDEX VALUE 
          RJ     COD         CONVERT ENTRY TO DISPLAY CODE
          MX0    6
          LX0    30 
          LX6    24 
          SA2    A2          GET TEMPLATE WORD
          SA3    X2 
          BX6    X0*X6
          BX3    -X0*X3 
          BX6    X6+X3
          SA6    A3          SET INDEX VALUE IN TEMPLATE
  
*         PROCESS EQUIVALENCED PARAMETER VALUES.
  
          AX2    18          FWA OF TABLE OF EQUIVALENCED VALUES
          SB6    X5          SAVE *JCB* ADDRESS 
          SA5    B7+X2       GET EQUIVALENCED VALUE 
          LX5    -12
          MX0    42 
          LX0    -18
          MX1    12 
          SA3    A3+B1       GET TEMPLATE WORDS 
          SA4    A3+B1
          BX6    X0*X5       SET FIRST PART OF VALUE
          BX7    X1*X5       SET LAST PART OF VALUE 
          BX3    -X0*X3 
          BX4    -X1*X4 
          BX6    X6+X3
          BX7    X7+X4
          SA6    A3          SET VALUE INTO TEMPLATE
          SA7    A4 
          SA1    A1+B1       GET NEXT ENTRY IN *TKWV* 
          SA2    A2+B1       GET NEXT ENTRY IN *TKWP* 
          SX5    B6+         RESTORE *JCB* ADDRESS
          EQ     EPB1        PROCESS NEXT ENTRY 
  
*         PROCESS *DT* PARAMETER. 
  
 EPB2     SA2    A2+1        GET NEXT ENTRY IN *TKWP* 
          RJ     GSE         GET SYSTEM ENTRY FOR KEYWORD 
          SB2    X1-1 
          SA4    TSCT+B2     GET SERVICE CLASS MNEMONIC 
          LX4    30 
          MX0    -48
          LX0    30 
          SA3    X2          GET TEMPLATE WORD
          BX6    -X0*X3 
          BX6    X6+X4
          SA6    A3          SET VALUE IN TEMPLATE
  
*         PROCESS *TD* PARAMETER. 
  
          SA1    A1+B1       GET NEXT ENTRY IN *TKWV* 
          SA2    A2+1        GET NEXT ENTRY IN *TKWP* 
          RJ     GSE         GET SYSTEM ENTRY FOR KEYWORD 
          RJ     COD         CONVERT ENTRY TO DISPLAY CODE
          LX6    6
          MX0    24 
          LX0    30 
          SA2    A2          GET TEMPLATE WORD
          SA3    X2 
          BX6    X0*X6
          BX3    -X0*X3 
          BX6    X6+X3
          SA6    A3+         SET VALUE IN TEMPLATE
  
*         PROCESS CURRENT JOB COUNT.
  
          SA1    A1+2        GET SPECIAL ENTRY IN *TKWV* FOR *CJ* 
          SA2    A2+1        GET NEXT ENTRY IN *TKWP* 
          RJ     GSE         GET SYSTEM ENTRY FOR KEYWORD 
          RJ     COD         CONVERT ENTRY TO DISPLAY CODE
          SA2    A2          GET TEMPLATE WORD
          SA3    X2 
          MX0    24 
          LX6    36          LEFT JUSTIFY DIGITS
          BX6    X0*X6
          BX3    -X0*X3 
          BX6    X6+X3
          SA6    A3          SET VALUE IN TEMPLATE
          EQ     EPBX        RETURN 
 GMP      SPACE  4,15 
**        GMP - GENERATE MASKING PARAMETERS.
* 
*         ENTRY  (A1) = ADDRESS OF *TKWV* ENTRY FOR KEYWORD.
*                (X1) = *TKWV* ENTRY FOR KEYWORD. 
*                (X5) = FWA OF *JCB* IN *SBUF* FOR CURRENT
*                       SERVICE CLASS.
* 
*         EXIT   (B2) = LOW ORDER BIT POSITION FOR VALUE IN *SBUF*. 
*                (B7) = 1 IF SPECIAL PROCESSING REQUIRED. 
*                     = 0 IF SPECIAL PROCESSING NOT REQUIRED. 
*                (X3) = *SBUF* ENTRY FOR KEYWORD VALUE. 
*                (X4) = SIZE OF FIELD IN *SBUF* FOR KEYWORD VALUE.
* 
*         USES   X - 0, 1, 3, 4.
*                A - 1, 3.
*                B - 2, 7.
  
  
 GMP      SUBR               ENTRY/EXIT 
          LX1    30 
          SB7    B0          ASSUME NO SPECIAL PROCESSING 
          PL     X1,GMP1     IF SPECIAL PROCESSING NOT REQUIRED 
          SB7    B1+         SET SPECIAL PROCESSING REQUIRED
 GMP1     MX0    -6 
          BX1    -X0*X1      GET OFFSET IN *JCB* FOR KEYWORD VALUE
          SB2    X1 
          SA3    X5+B2       GET *SBUF* ENTRY FOR KEYWORD VALUE 
          SA1    A1+B1       GENERATE MASK FOR KEYWORD VALUE
          BX4    -X0*X1      GET SIZE OF FIELD FOR KEYWORD VALUE
          AX1    6
          BX1    -X0*X1      GET LOW ORDER BIT POSITION 
          SB2    X1 
          EQ     GMPX        RETURN 
 GSD      SPACE  4,10 
**        GSD - GET SYSTEM *JCB* DATA.
* 
*         EXIT   (SBUF) = SYSTEM *JCB* DATA.
* 
*         MACROS SYSTEM.
  
  
 GSD      SUBR               ENTRY/EXIT 
          SYSTEM SFM,R,SFMA,RSDF*100B  RETURN *JCB* DATA
          EQ     GSDX        RETURN 
 GSE      SPACE  4,15 
**        GSE - GET SYSTEM ENTRY. 
* 
*         ENTRY  (A1) = ADDRESS OF *TKWV* ENTRY FOR KEYWORD VALUE.
*                (X1) = *TKWV* ENTRY FOR KEYWORD VALUE TO GET.
*                (X5) = *JCB* FWA IN *SBUF* FOR CURRENT SERVICE CLASS.
* 
*         EXIT   (A1) = ADDRESS OF SECOND WORD OF *TKWV* ENTRY. 
*                (X1) = SYSTEM KEYWORD VALUE FOR PARAMETER RIGHT
*                       JUSTIFIED.
* 
*         USES   X - 0, 1, 3. 
*                B - 2. 
* 
*         CALLS  GMP. 
  
  
 GSE      SUBR               ENTRY/EXIT 
          RJ     GMP         GENERATE MASKING PARAMETERS
          SB2    -B2
          LX3    B2          RIGHT JUSTIFY FIELD
          SB2    X4-1 
          MX0    1
          AX0    B2          GENERATE MASK
          SB2    B2+B1
          LX0    B2          RIGHT JUSTIFY MASK 
          BX1    X0*X3       SET VALUE
          EQ     GSEX        RETURN 
 ILD      SPACE  4,10 
**        ILD - INPUT *L* DISPLAY.
* 
*         EXIT   (LBUF) = *L* DISPLAY COMMAND INPUT.
* 
*         USES   X - 0, 1, 2, 6.
*                A - 1, 6.
*                B - 2. 
* 
*         MACROS DSDINP, ROLLOUT. 
  
  
 ILD      SUBR               ENTRY/EXIT 
          SB2    LIML-1 
          SX6    B0+
 ILD1     SA6    IBUF+B2     INITIALIZE INPUT BUFFER
          SB2    B2-1 
          PL     B2,ILD1     IF MORE WORDS TO INITIALIZE
 ILD2     DSDINP IPW         REQUEST INPUT FROM OPERATOR
          SA1    IPW
          MX0    -12
          BX1    -X0*X1 
          AX1    1           IGNORE COMPLETION BIT
          SX2    X1-CNCI
          NZ     X2,ILDX     IF COMMAND ENTERED 
          ROLLOUT  ROLB      WAIT FOR *L* DISPLAY INPUT 
          EQ     ILD2        RECHECK *L* DISPLAY INPUT
 OLD      SPACE  4,10 
**        OLD - OUTPUT *L* DISPLAY DATA.
* 
*         ENTRY  TEMPLATE FORMATTED FOR *L* DISPLAY SET IN *LBUF*.
* 
*         EXIT   *L* DISPLAY UPDATED. 
* 
*         MACROS DSDOUT.
  
  
 OLD      SUBR               ENTRY/EXIT 
          DSDOUT LFWA        DISPLAY *L* DISPLAY BUFFER 
          EQ     OLDX        RETURN 
 PKC      SPACE  4,15 
**        PKC - PROCESS KEYWORD=VALUE COMMAND.
* 
*         ENTRY  (X1) = SEPARATOR.
*                (X6) = KEYWORD VALUE.
*                (B6) = FWA OF NEXT PARAMETER IN STRING BUFFER. 
* 
*         USES   X - 0, 1, 2, 5, 6, 7.
*                A - 1, 5, 6, 7.
*                B - 7. 
* 
*         CALLS  CVK, DXB, POP, PSK, SDT, SIN, SIP, SPS.
  
  
 PKC10    RJ     SDT         SET DATA IN TEMPLATE 
  
 PKC      SUBR               ENTRY/EXIT 
          SX7    B0+         CLEAR TERMINATOR ENCOUNTERED FLAG
          RJ     CVK         CHECK FOR VALID KEYWORD
          SA7    PKCA 
          NZ     X3,PKC6     IF NO VALID KEYWORD FOUND
          EQ     PKC2        ENTER LOOP 
  
 PKC1     ZR     B6,PKC8     IF TERMINATOR ENCOUNTERED
          RJ     CVK         CHECK FOR VALID KEYWORD
          NZ     X3,PKC6     IF NO VALID KEYWORD FOUND
  
*         VALIDATE THE SEPARATOR. 
  
 PKC2     SX1    X1-1R= 
          NZ     X1,PKC7     IF INCORRECT SEPARATOR 
          RJ     POP         GET KEYWORD VALUE
          ZR     X6,PKC8     IF NO PARAMETER VALUE GIVEN
          PL     X2,PKC3     IF NO TERMINATOR ENCOUNTERED 
          MX7    1           SET TERMINATOR ENCOUNTERD
          SA7    PKCA 
 PKC3     LX5    30 
          NG     X5,PKC5     IF SPECIAL PROCESSING REQUIRED 
  
*         VALIDATE THE NUMERIC PARAMETER FOR THE KEYWORD. 
  
          BX5    X6          SET WORD TO CONVERT FOR *DXB*
          SB7    B0+         SET OCTAL BASE DEFAULT 
          RJ     DXB         CONVERT DISPLAY CODE TO BINARY 
          SA5    A5          GET KEYWORD TABLE ENTRY BACK 
          NZ     X4,PKC8     IF ERROR IN CONVERSION 
          MX0    -6 
          BX1    -X0*X5      GET LOW VALUE FOR KEYWORD
          MX0    -18
          AX5    6
          BX2    -X0*X5      GET HIGH VALUE FOR KEYWORD 
          IX2    X2-X6
          NG     X2,PKC8     IF PARAMETER TOO LARGE 
          IX1    X6-X1
          NG     X1,PKC8     IF PARAMETER TOO SMALL 
          RJ     SPS         SET PARAMETER INTO SYSTEM BUFFER 
 PKC4     SA1    PKCA        CHECK IF TERMINATOR ENCOUNTERED
          NZ     X1,PKC10    IF TERMINATOR ENCOUNTERED
          RJ     POP         GET NEXT KEYWORD FROM INPUT LINE 
          EQ     PKC1        LOOP FOR NEXT KEYWORD
  
*         PROCESS KEYWORDS REQUIRING SPECIAL PROCESSING.
  
 PKC5     RJ     PSK         PROCESS SPECIAL KEYWORDS 
          NZ     B2,PKC10    IF AN ERROR IN SPECIAL KEYWORD 
          EQ     PKC4        PROCESS NEXT KEYWORD 
  
*         PROCESS ERRORS. 
  
 PKC6     SX1    EUKP        *UNKNOWN PARAMETER - KW.*
          RJ     SIP         SET INCORRECT PARAMETER KEYWORD
          EQ     PKC10       SET ANY GOOD DATA IN TEMPLATE
  
 PKC7     SX1    EUKS        *UNKNOWN SEPARATOR - KW.*
          RJ     SIP         SET INCORRECT PARAMETER
          EQ     PKC10       SET ANY GOOD DATA IN TEMPLATE
  
 PKC8     SX1    EICP        *INCORRECT NUMERIC PARAMETER FOR KW.*
          RJ     SIN         SET INCORRECT NUMERIC PARAMETER
          EQ     PKC10       SET ANY GOOD DATA IN TEMPLATE
  
 PKC9     SX6    EURD        *UNRECOGNIZABLE DIRECTIVE.*
          SA6    EMOR 
          EQ     PKCX        RETURN 
  
  
 PKCA     BSS    1           TERMINATOR ENCOUNTERED FLAG
 PSK      SPACE  4,15 
**        PSK - PROCESS SPECIAL KEYWORDS. 
* 
*         ENTRY  (X5) = FIRST WORD OF CURRENT *TKWV* ENTRY. 
*                (X6) = NON-ZERO KEYWORD VALUE (FROM *COMCPOP*).
*                (A5) = ADDRESS OF FIRST WORD OF CURRENT *TKWV* ENTRY.
* 
*         EXIT   (B2) = 0, IF NO ERROR. 
*                     = 1, IF ERROR.
*                (EMOR) = MESSAGE ORDINAL.
* 
*         USES   X - 1, 2, 5, 6.
*                A - 1, 6.
*                B - 2, 3, 7. 
* 
*         CALLS  DXB, SPS.
  
  
 PSK6     SX6    EISC        *INCORRECT SERVICE CLASS FOR *DT*.*
          SA6    EMOR        SET MESSAGE ORDINAL
  
 PSK      SUBR               ENTRY/EXIT 
          SX2    A5-LDTE
          ZR     X2,PSK3     IF *DT* PARAMETER
  
*         PROCESS WEIGHTING FACTOR PARAMETERS.
  
          BX5    X6 
          SB7    B0          CONVERT DISPLAY CODE TO OCTAL
          RJ     DXB
          NZ     X4,PKC8     IF ERROR IN CONVERSION 
          ZR     X6,PKC8     IF NULL WEIGHTING FACTOR 
          CX5    X6          CHECK FOR POWER OF 2 
          SB3    X5 
          NE     B3,B1,PKC8  IF NOT POWER OF 2
          SX1    X6-MXWF-1
          PL     X1,PKC8     IF VALUE TOO LARGE 
          PX5    X6 
          NX6,B3 X5 
          SB3    B3-47       RETURN POWER OF 2
          SX6    -B3
 PSK1     RJ     SPS         SET PARAMETER IN SYSTEM BUFFER 
          SB2    B0 
          EQ     PSKX        RETURN 
  
*         PROCESS *DT* PARAMETER. 
  
 PSK3     SA1    TSCT        FWA OF SERVICE CLASS TABLE 
          SB2    1
 PSK4     ZR     X1,PSK6     IF END OF TABLE
          BX5    X1-X6
          SA1    A1+B1       GET NEXT ENTRY IN *TSCT* 
          NZ     X5,PSK4     IF NOT SPECIFIED SERVICE CLASS 
  
*         CHECK FOR SPECIAL CASE DISALLOWED ENTRIES.
  
          SX1    X6-2RSS
          ZR     X1,PSK6     IF INCORRECT SERVICE CLASS 
  
*         SET CORRECT *DT* VALUE IN SYSTEM BUFFER.
  
          SX6    A1-TSCT     SET SERVICE CLASS ORDINAL+1
          EQ     PSK1        SET PARAMETER IN SYSTEM BUFFER 
 RPN      SPACE  4,10 
**        RPN - RESET PAGE NUMBER.
* 
*         ENTRY  (CLDS) = CURRENT *L* DISPLAY SCREEN STATUS.
* 
*         EXIT   CURRENT LEFT PAGE NUMBER RESET TO 1. 
* 
*         USES   X - 0, 1, 2, 3, 6. 
*                A - 1, 3, 6. 
  
  
 RPN      SUBR               ENTRY/EXIT 
          SA3    THLP        ASSUME *HELP* STATUS 
          SA1    CLDS        CHECK CURRENT *L* DISPLAY SCREEN STATUS
          SX1    X1-SHLP
          MX0    42 
          LX0    30 
          ZR     X1,RPN1     IF *HELP* STATUS 
          SA3    TASC        SET DATA DISPLAY STATUS
 RPN1     SX2    B1          SET PAGE 1 OF *HELP* DISPLAY 
          LX2    30 
          BX3    X0*X3       CLEAR CURRENT PAGE 
          BX6    X2+X3       SET PAGE 1 
          SA6    A3 
          EQ     RPNX        RETURN 
 SDT      SPACE  4,15 
**        SDT - SET DATA IN TEMPLATE. 
* 
*         ENTRY  (CSCL) = CURRENT SERVICE CLASS ORDINAL.
*                (SBUF) = CURRENT SYSTEM *JCB* INFORMATION. 
* 
*         EXIT   DATA FROM *SBUF* SET IN TEMPLATES. 
* 
*         USES   X - ALL. 
*                A - 1, 3, 4, 5, 6, 7.
*                B - 2. 
* 
*         CALLS  CJA, EPA, EPB. 
  
  
 SDT      SUBR               ENTRY/EXIT 
  
*         SET SERVICE CLASS MNEMONIC IN PAGE HEADERS. 
  
          SA3    TASC        FWA DATA TEMPLATES PAGING TABLE
          MX0    12 
          BX3    X0*X3       NUMBER OF PAGES IN DATA TEMPLATES
          LX3    12 
          SB2    X3 
          SA1    CSCL        GET CURRENT SERVICE CLASS ORDINAL
          SA1    X1+TSCT
          BX1    X0*X1
          LX1    6
          MX0    -54
          BX2    -X0*X1      FIRST CHARACTER OF SERVICE CLASS 
          BX1    X0*X1       LAST CHARACTER OF SERVICE CLASS
 SDT1     SA4    A3+B1       GET NEXT PAGE
          SA4    X4+2        GET TEMPLATE WORDS 
          SA5    A4+B1
          BX5    -X0*X5 
          LX0    6
          BX4    -X0*X4 
          BX6    X4+X2       SET FIRST CHARACTER OF SERVICE  CLASS
          BX7    X5+X1       SET LAST CHARACTER OF SERVICE CLASS
          SA6    A4 
          MX0    -54         RESET MASK 
          SA7    A5 
          SB2    B2-B1
          ZR     B2,SDT2     IF ALL PAGES DONE
          SA3    A3+B1       NEXT ENTRY IN PAGING TABLE 
          EQ     SDT1        ENTER SERVICE CLASS IN NEXT PAGE 
  
*         SET DATA IN THE TEMPLATES.
  
 SDT2     RJ     CJA         CALCULATE *JCB* OFFSET IN *SBUF* 
          RJ     EPA         ENTER PAGES 1 AND 2 VALUES 
          RJ     EPB         ENTER PAGE 3 VALUES
          EQ     SDTX        RETURN 
 SIN      SPACE  4,20 
**        SIN - SET INCORRECT NUMERIC PARAMETER.
* 
*         ENTRY  (X1) = MESSAGE ORDINAL.
*                (A5) = FWA OF *TKWV* ENTRY OF KEYWORD TO ADD TO
*                       MESSAGE.
* 
*         EXIT   (EMOR) = MESSAGE ORDINAL.
*                KEYWORD SET IN MESSAGE.
* 
*         USES   X - 0, 1, 2, 5, 6, 7.
*                A - 2, 5, 6, 7.
* 
*         CALLS  AFT. 
* 
*         NOTES  THIS ROUTINE ASSUMES A SPECIFIC LOCATION FOR THE 
*                KEYWORD IN THE MESSAGE.  IF THE KEYWORD POSITION IN
*                THE MESSAGE IS CHANGED, THIS ROUTINE SHOULD BE 
*                UPDATED. 
  
  
 SIN      SUBR               ENTRY/EXIT 
          BX7    X1 
          SA7    EMOR        SET MESSAGE ORDINAL
          SA5    A5          GET KEYWORD IN ERROR 
          MX0    24 
          BX1    X0*X5
          SA2    TMLD+3+X7   FWA OF WORD IN MESSAGE 
          RJ     AFT         APPEND FLOATING TERMINATOR 
          LX6    -12         JUSTIFY KEYWORD FOR MESSAGE
          MX0    12 
          BX2    X0*X2
          BX6    -X0*X6 
          BX6    X6+X2
          SA6    A2          ADD KEYWORD AND TERMINATOR TO MESSAGE
          EQ     SINX        RETURN 
 SIP      SPACE  4,20 
**        SIP - SET INCORRECT PARAMETER KEYWORD.
* 
*         ENTRY  (X1) = MESSAGE ORDINAL.
*                (POPA) = KEYWORD IN ERROR, LEFT JUSTIFIED, ZERO
*                         FILLED. 
* 
*         EXIT   KEYWORD SET IN MESSAGE.
*                (EMOR) = MESSAGE ORDINAL.
* 
*         USES   X - 1, 2, 7. 
*                A - 1, 2, 6, 7.
* 
*         CALLS  AFT. 
* 
*         NOTES  THIS ROUTINE ASSUMES A SPECIFIC LOCATION FOR THE 
*                KEYWORD IN THE MESSAGE.  IF THE KEYWORD POSITION IN
*                THE MESSAGE IS CHANGED, THIS ROUTINE SHOULD BE 
*                UPDATED. 
  
  
 SIP      SUBR               ENTRY/EXIT 
          BX7    X1 
          SA7    EMOR        SET MESSAGE ORDINAL
          SA1    POPA        GET PARAMETER IN ERROR 
          SA2    TMLD+X7+2   GET WORD IN MESSAGE TO MODIFY
          RJ     AFT         APPEND FLOATING TERMINATOR 
          SA6    A2          ADD KEYWORD AND TERMINATOR TO MESSAGE
          EQ     SIPX        RETURN 
 SPS      SPACE  4,15 
**        SPS - SET PARAMETER INTO SYSTEM BUFFER. 
* 
*         ENTRY  (X6) = PARAMETER, RIGHT JUSTIFIED. 
*                (A5) = FWA OF CURRENT *TKWV* ENTRY.
*                (CSCL) = CURRENT SERVICE CLASS ORDINAL.
* 
*         EXIT   PARAMETER SET INTO *SBUF*. 
* 
*         USES   X - 0, 1, 3, 6.
*                A - 1, 6.
*                B - 2, 3.
* 
*         CALLS  CJA, GMP.
  
  
 SPS      SUBR               ENTRY/EXIT 
          RJ     CJA         CALCULATE *JCB* ADDRESS
          SA1    A5+         GET *TKWV* ENTRY 
          RJ     GMP         GENERATE MASKING PARAMETERS
          LX6    B2          JUSTIFY PARAMETER FOR SYSTEM BUFFER
          SB2    B2+X4       SET SHIFT COUNT FOR MASK 
          SB3    X4-1 
          MX0    1
          AX0    B3 
          LX0    B2          GENERATE MASK FOR PARAMETER
          BX3    -X0*X3 
          BX6    X6+X3
          SA6    A3          SET VALUE IN SYSTEM BUFFER 
          EQ     SPSX        RETURN 
 SSM      SPACE  4,20 
**        SSM - SET SERVICE CLASS IN MESSAGE. 
* 
*         ENTRY  (B5) = SERVICE CLASS.
*                (X0) = *L* DISPLAY MESSAGE INDEX.
* 
*         EXIT   (EBUF) = MESSAGE WITH SERVICE CLASS MNEMONIC SET.
*                (EMOR) = MESSAGE ORDINAL OF *EBUF*.
* 
*         USES   X - 1, 6.
*                A - 1, 6.
*                B - 2, 3, 5. 
* 
*         CALLS  SNM. 
* 
*         MACROS MOVE.
  
  
 SSM      SUBR               ENTRY/EXIT 
          MOVE   LDML,TMLD+EBMS,TMLD+EBUF  CLEAR ASSEMBLY BUFFER
          SA1    B5+TSCT-1   GET SERVICE CLASS MNEMONIC 
          SB2    1RX         SUBSTITUTION CHARACTER 
          SB3    TMLD+EBUF   ASSEMBLY BUFFER
          SB5    X0+TMLD     MESSAGE ADDRESS
          SB5    -B5
          RJ     SNM         SET SERVICE CLASS NAME IN MESSAGE
          SX6    EBUF        ERROR MESSAGE ORDINAL FOR ASSEMBLY BUFFER
          SA6    EMOR 
          EQ     SSMX        RETURN 
 SVT      SPACE  4,15 
**        SVT - SET VALUE IN TEMPLATE.
* 
*         ENTRY  (A1) = ADDRESS OF CURRENT *TKWV* ENTRY.
*                (A2) = ADDRESS OF CURRENT *TKWP* ENTRY.
*                (X0) = MASK FOR FIRST PART OF VALUE TO BE SET. 
*                (X1) = MASK FOR LAST PART OF VALUE TO BE SET.
*                (X6) = VALUE TO SET IN TEMPLATE. 
*                (B2) = SHIFT COUNT FOR VALUE TO BE SET.
* 
*         EXIT   VALUE SET INTO TEMPLATE. 
*                (A1) = INCREMENTED TO NEXT *TKWV* ENTRY. 
*                (A2) = INCREMENTED TO NEXT *TKWP* ENTRY. 
* 
*         USES   X - 1, 2, 3, 4, 6, 7.
*                A - 1, 2, 3, 4, 6, 7.
  
  
 SVT      SUBR               ENTRY/EXIT 
          SA2    A2          GET TEMPLATE WORDS 
          SA3    X2 
          SA4    A3+B1
          LX6    B2 
          BX7    -X0*X6      GET FIRST CHARACTERS OF VALUE
          BX3    X0*X3
          BX6    X1*X6       GET LAST CHARACTERS OF VALUE 
          BX4    -X1*X4 
          BX6    X6+X4       SET LAST CHARACTERS
          BX7    X7+X3       SET FIRST CHARACTERS 
          SA6    A4 
          SA7    A3 
          SA1    A1+B1       NEXT ENTRY IN *TKWV* 
          SA2    A2+B1       NEXT ENTRY IN *TKWP* 
          EQ     SVTX        RETURN 
          SPACE  4,10 
*         COMMON DECKS. 
  
  
*CALL     COMCCIO 
*CALL     COMCCOD 
*CALL     COMCCPM 
*CALL     COMCDXB 
*CALL     COMCFLD 
*CALL     COMCLFM 
*CALL     COMCMVE 
*CALL     COMCPOP 
*CALL     COMCRDC 
*CALL     COMCRDW 
*CALL     COMCSFN 
*CALL     COMCSNM 
*CALL     COMCSYS 
*CALL     COMCUSB 
*CALL     COMCWOD 
*CALL     COMCWTC 
*CALL     COMCWTO 
*CALL     COMCWTW 
*CALL     COMCZTB 
          TITLE  HELP - PAGE 1. 
          USE    BUFFERS
          SPACE  4,10 
 HLPA     BSS    0
  DATA   58CSDSPLAY COMMANDS                               PAGE 1 OF 3
  DATA   58C
  DATA   58C COMMAND                        DESCRIPTION 
  DATA   58C
  DATA   58C CLASS=XX         DISPLAY THE DATA FOR SERVICE CLASS XX.
  DATA   58C END              END THE PROCESSING OF SDSPLAY.
  DATA   58C GO               SET ALL ENTERED VALUES INTO THE SYSTEM. 
  DATA   58C HELP             SHOW L DISPLAY COMMANDS FOR SDSPLAY.
  DATA   58C RESET            IGNORE ALL VALUES ENTERED SINCE THE 
  DATA   58C                  LAST GO.
  DATA   58C
  DATA   58C +                PAGE THE DISPLAY FORWARD. 
  DATA   58C -                PAGE THE DISPLAY BACKWARD.
  DATA   58C
  DATA   58C
  DATA   58C
  DATA   58C
  DATA   58C
  DATA   58C
  DATA   58C
 LDMO     EQU    *-HLPA      GLOBAL MESSAGE OFFSET IN TEMPLATE
  DATA   58C
  DATA   58C
 HLPAL    EQU    *-HLPA      LENGTH OF TEMPLATE 
 DSPL     EQU    HLPAL       GLOBAL TEMPLATE LENGTH 
          TITLE  HELP - PAGE 2. 
 HLPB     BSS    0
  DATA   58CSERVICE CLASS DEFINITIONS                      PAGE 2 OF 3
  DATA   58C
  DATA   58C     SY          SYSTEM SERVICE CLASS.
  DATA   58C     BC          BATCH SERVICE CLASS. 
  DATA   58C     RB          REMOTE BATCH SERVICE CLASS.
  DATA   58C
  DATA   58C     TS          INTERACTIVE SERVICE CLASS. 
  DATA   58C     DI          DETACHED INTERACTIVE SERVICE CLASS.
  DATA   58C     NS          NETWORK SUPERVISOR SERVICE CLASS.
  DATA   58C
  DATA   58C     SS          SUBSYSTEM SERVICE CLASS. 
  DATA   58C     MA          MAINTENANCE SERVICE CLASS. 
  DATA   58C     CT          COMMUNICATION TASK SERVICE CLASS.
  DATA   58C
  DATA   58C
  DATA   58C
  DATA   58C
  DATA   58C
  DATA   58C
  DATA   58C
          ERRNZ  *-HLPB-LDMO  MESSAGE LINE LOCATION INCORRECT 
  DATA   58C
          ERRNZ  *-HLPB-LDMO-LDML  INPUT LINE LOCATION INCORRECT
  DATA   58C
 HLPBL    EQU    *-HLPB      LENGTH OF TEMPLATE 
          ERRNZ  HLPBL-DSPL  TEMPLATES MUST BE SAME LENGTH
          TITLE  HELP - PAGE 3. 
 HLPC     BSS    0
  DATA   58CSERVICE CLASS DEFINITIONS                      PAGE 3 OF 3
  DATA   58C
  DATA   58C     I0          INSTALLATION CLASS 0.
  DATA   58C     I1          INSTALLATION CLASS 1.
  DATA   58C     I2          INSTALLATION CLASS 2.
  DATA   58C     I3          INSTALLATION CLASS 3.
  DATA   58C
  DATA   58CTHE FOLLOWING SERVICE CLASSES MAY BE DEFINED AT YOUR SITE.
  DATA   58C
  DATA   58C     I4          INSTALLATION CLASS 4.
  DATA   58C     I5          INSTALLATION CLASS 5.
  DATA   58C     I6          INSTALLATION CLASS 6.
  DATA   58C     I7          INSTALLATION CLASS 7.
  DATA   58C     I8          INSTALLATION CLASS 8.
  DATA   58C     I9          INSTALLATION CLASS 9.
  DATA   58C     II          INSTALLATION CLASS I.
  DATA   58C     IJ          INSTALLATION CLASS J.
  DATA   58C     IK          INSTALLATION CLASS K.
  DATA   58C     IL          INSTALLATION CLASS L.
  DATA   58C
          ERRNZ  *-HLPC-LDMO  MESSAGE LINE LOCATION INCORRECT 
  DATA   58C
          ERRNZ  *-HLPC-LDMO-LDML  INPUT LINE LOCATION INCORRECT
  DATA   58C
 HLPCL    EQU    *-HLPC      LENGTH OF TEMPLATE 
          ERRNZ  HLPCL-DSPL  TEMPLATES MUST BE SAME LENGTH
          TITLE  LINE PRINTER HEADER FOR TEMPLATES. 
 LPHR     BSS    0
  DATA   50HSDSPLAY - SYSTEM SERVICE CLASS DISPLAY
 LPHD     BSS    1           DATE STAMP 
 LPHT     BSS    1           TIME STAMP 
          DATA   C* * 
          CON    0
 LPHRL    EQU    *-LPHR      HEADER LENGTH
          TITLE  ATTRIBUTES FOR SERVICE CLASS - PAGE 1. 
 SCA1     BSS    0
  DATA   58CATTRIBUTES FOR SERVICE CLASS XX                PAGE 1 OF 3
  DATA   58C
  DATA   58C    OPTION                      DESCRIPTION 
  DATA   58C
 INLP     EQU    *
  DATA   58C INLP = XXXXB     INPUT QUEUE LOWER PRIORITY. 
 INUP     EQU    *
  DATA   58C INUP = XXXXB     INPUT QUEUE UPPER PRIORITY. 
 OTLP     EQU    *
  DATA   58C OTLP = XXXXB     OUTPUT QUEUE LOWER PRIORITY.
 OTUP     EQU    *
  DATA   58C OTUP = XXXXB     OUTPUT QUEUE UPPER PRIORITY.
 EXLP     EQU    *
  DATA   58C EXLP = XXXXB     EXECUTION QUEUE LOWER PRIORITY. 
 EXUP     EQU    *
  DATA   58C EXUP = XXXXB     EXECUTION QUEUE UPPER PRIORITY. 
 EXIL     EQU    *
  DATA   58C EXIL = XXXXB     EXECUTION QUEUE INITIAL LOWER PRIORITY. 
 EXIP     EQU    *
  DATA   58C EXIP = XXXXB     EXECUTION QUEUE INITIAL PRIORITY. 
 EXTP     EQU    *
  DATA   58C EXTP = XXXXB     INITIAL TERMINAL PRIORITY AFTER I/O.
  DATA   58C
 INWF     EQU    *
  DATA   58C INWF = XXXXB     INPUT QUEUE WEIGHTING FACTOR. 
 EXWF     EQU    *
  DATA   58C EXWF = XXXXB     EXECUTION QUEUE WEIGHTING FACTOR. 
 OTWF     EQU    *
  DATA   58C OTWF = XXXXB     OUTPUT QUEUE WEIGHTING FACTOR.
  DATA   58C
  DATA   58C          (ALL PRIORITY VALUES ARE 0-7777B).
  DATA   58C (WEIGHTING FACTORS MUST BE A POWER OF 2 FROM 1 - 4000B). 
          ERRNZ  *-SCA1-LDMO  MESSAGE LINE LOCATION INCORRECT 
  DATA   58C
          ERRNZ  *-SCA1-LDMO-LDML  INPUT LINE LOCATION INCORRECT
  DATA   58C
 SCA1L    EQU    *-SCA1      LENGTH OF TEMPLATE 
          ERRNZ  SCA1L-DSPL  TEMPLATES MUST BE SAME LENGTH
 OBUFL    EQU    *-LPHR      OUTPUT BUFFER LENGTH 
          TITLE  ATTRIBUTES FOR SERVICE CLASS - PAGE 2. 
 SCA2     BSS    0
  DATA   58CATTRIBUTES FOR SERVICE CLASS XX                PAGE 2 OF 3
  DATA   58C
  DATA   58C   OPTION                       DESCRIPTION 
  DATA   58C
 ASCT     EQU    *
  DATA   58C CT =  XXXXB     CP TIME SLICE (0-7777B SECONDS). 
 ASCM     EQU    *
  DATA   58C CM =  XXXXB     CM TIME SLICE (0-7777B SECONDS). 
 ASNJ     EQU    *
  DATA   58C NJ =  XXXXB     MAXIMUM NUMBER OF JOBS (0-7777B).
  DATA   58C
 ASCP     EQU    *
  DATA   58C CP =  XXXXB     CONTROL POINT SLICE PRIORITY (0-7777B).
 ASFL     EQU    *
 ASFM     EQU    *+4
  DATA   58C FL =  XXXXB     MAXIMUM CM FL/100B, ANY JOB (0-MXFLB). 
 ASAM     EQU    *
  DATA   58C AM = XXXXXB     MAXIMUM CM FL/100B, ALL JOBS (0-77777B). 
 ASEC     EQU    *
  DATA   58C EC =  XXXXB     MAXIMUM XM FL/1000B, ANY JOB (0-3777B).
 ASEM     EQU    *
  DATA   58C EM =  XXXXB     MAXIMUM XM FL/1000B, ALL JOBS (0-7777B). 
  DATA   58C
 ASPR     EQU    *
  DATA   58C PR =    XXB     CPU PRIORITY (2-77B).
 ASSE     EQU    *
  DATA   58C SE =  XXXXB     CPU SLICE EXTENSION (0-7777B MS).
 ASRS     EQU    *
  DATA   58C RS =  XXXXB     CPU RECALL SLICE (1-7777B MS). 
 ASUS     EQU    *
  DATA   58C US =  XXXXB     UNEXTENDED CPU SLICE (1-7777B MS). 
  DATA   58C
 ASCJ     EQU    *+5
  DATA   58C  THE CURRENT JOB COUNT FOR THIS SERVICE CLASS IS XXXXB.
          ERRNZ  *-SCA2-LDMO  MESSAGE LINE LOCATION INCORRECT 
  DATA   58C
          ERRNZ  *-SCA2-LDMO-LDML  INPUT LINE LOCATION INCORRECT
  DATA   58C
 SCA2L    EQU    *-SCA2      LENGTH OF TEMPLATE 
          ERRNZ  SCA2L-DSPL  TEMPLATES MUST BE SAME LENGTH
          TITLE  ATTRIBUTES FOR SERVICE CLASS - PAGE 3. 
 SCA3     BSS    0
  DATA   58CATTRIBUTES FOR SERVICE CLASS                   PAGE 3 OF 3
  DATA   58C
  DATA   58C  INDEX        VALUE                DESCRIPTION 
  DATA   58C
 ASDS     EQU    *
  DATA   58CDS = X      (XXXXXXXXX)      MAXIMUM DIRECT ACCESS FILE 
  DATA   58C                             SIZE (0-7).
 ASFC     EQU    *
  DATA   58CFC = X      (XXXXXXXXX)      MAXIMUM NUMBER PERMANENT 
  DATA   58C                             FILES (0-7). 
 ASCS     EQU    *
  DATA   58CCS = X      (XXXXXXXXX)      MAXIMUM PRUS, ALL INDIRECT 
  DATA   58C                             FILES (0-7). 
 ASFS     EQU    *
  DATA   58CFS = X      (XXXXXXXXX)      MAXIMUM PRUS, ONE INDIRECT 
  DATA   58C                             FILE (0-7).
  DATA   58C
  DATA   58C   OPTION                       DESCRIPTION 
  DATA   58C
 ASDT     EQU    *
  DATA   58CDT = XX            SERVICE CLASS ON DETACH (NOT SS OR DS).
 ASTD     EQU    *
  DATA   58CTD = XXXXB         SUSPENSION TIMEOUT DELAY (0-7777B
  DATA   58C                   SECONDS*10B).
  DATA   58C
  DATA   58CNOTE - EXTP, DT AND TD ARE USED ONLY FOR INTERACTIVE JOBS.
          ERRNZ  *-SCA3-LDMO  MESSAGE LINE LOCATION INCORRECT 
  DATA   58C
          ERRNZ  *-SCA3-LDMO-LDML  INPUT LINE LOCATION INCORRECT
  DATA   58C
 SCA3L    EQU    *-SCA3      LENGTH OF TEMPLATE 
          ERRNZ  SCA3L-DSPL  TEMPLATES MUST BE SAME LENGTH
          TITLE  OTHER BUFFERS. 
*         *L* DISPLAY INPUT BUFFER. 
  
 IPW      BSS    0           INPUT BUFFER FOR *L* DISPLAY 
          VFD    12/LIML,1/0,1/0,46/0 
 IBUF     BSSZ   LIML        INPUT BUFFER 
  
*         *L* DISPLAY ID STRINGS. 
  
 LHLP     DATA   C*SDSPLAY - HELP.* 
 LCLS     DATA   C*SDSPLAY - CLASS.*
  
*         *L* DISPLAY BUFFER. 
  
 .DSPL    EQU    DSPL/6      EXTRA DISPLAY LENGTH FOR COORDINATES 
 LBUFL    EQU    DSPL+.DSPL  *L* DISPLAY BUFFER LENGTH
 LFWA     VFD    12/LBUFL,1/0,1/0,46/0
 LBUF     EQU    *           *L* DISPLAY BUFFER 
 LBUFE    EQU    LBUF+LBUFL  END OF *L* DISPLAY BUFFER
  
*         SYSTEM SERVICE CLASS INFORMATION BUFFER.
  
 SBUF     EQU    LBUFE       FWA *SBUF* 
 SBUFE    EQU    SBUF+SBUFL  LWA *SBUF* 
  
*         DIRECTIVE INPUT FILE BUFFER.
  
 DBUF     EQU    SBUFE       FWA INPUT FILE BUFFER
 DBUFE    EQU    DBUF+DBUFL  END OF INPUT FILE BUFFER 
  
*         OUTPUT FILE BUFFER. 
  
 OBUF     EQU    DBUFE       FWA OUTPUT FILE BUFFER 
 OBUFE    EQU    OBUF+OBUFL  END OF OUTPUT BUFFER 
          TITLE  PRESET.
 PRS      SPACE  4,20 
**        PRS - PRESET ROUTINE. 
* 
*         ENTRY  CONTROL STATEMENT ARGUMENT LIST IN RA+2 (*ARGR*) 
*                IN OPERATING SYSTEM FORMAT.
* 
*         EXIT   (B1) = 1.
*                (DFLG) = NON-ZERO IF DIRECTIVE INPUT FILE SPECIFIED. 
*                (LFLG) = NON-ZERO IF LINE PRINTER OPTION SPECIFIED.
* 
*         ERROR  TO *ERR* IF ARGUMENT ERROR OR INCORRECT USER ACCESS. 
*                (X1) = ERROR MESSAGE OFFSET. 
* 
*         USES   X - ALL. 
*                A - 1, 2, 3, 6, 7. 
*                B - 1, 2.
* 
*         CALLS  COD, CVO, GSD, POP, USB. 
* 
*         MACROS CLOCK, DATE, GETSPS. 
  
  
 PRS      SUBR               ENTRY/EXIT 
          SB1    1           SYSTEM COMMUNICATION (B1) = 1
          DATE   LPHD        SET DATE IN PRINTER HEADER 
          CLOCK  LPHT        SET TIME IN PRINTER HEADER 
          GETSPS PRSE        CHECK FOR SYSTEM ORIGIN PRIVILEGES 
          SA1    PRSE 
          ZR     X1,PRS1     IF SYSTEM ORIGIN PRIVILEGES
          SX1    ERNV        * USER ACCESS NOT VALID.*
          EQ     ERR         ABORT WITH ERROR MESSAGE 
  
*         PROCESS ARGUMENT LIST.
  
 PRS1     SB2    CCDR        UNPACK COMMAND 
          RJ     USB         UNPACK STRING BUFFER 
          SX6    1R.         ASSURE TERMINATOR CHARACTER
          SA6    B7+1 
          RJ     POP         SKIP PROGRAM NAME
          ZR     B6,PRS13    IF NO ARGUMENTS ON CONTROL CARD
  
*         PROCESS CONTROL CARD ARGUMENTS. 
  
 PRS2     RJ     POP         GET ARGUMENT 
          PL     B5,PRS3     IF NO ERROR
          SX1    ERAE        * ARGUMENT ERROR - XXXXXXX.* 
          EQ     ERR         PROCESS ERROR
  
 PRS3     NZ     B6,PRS4     IF NO TERMINATOR 
          SX7    B1+
          SA7    PRSD        SET TERMINATOR FLAG
 PRS4     SX2    X1-1R= 
          SX1    ERAE        * ARGUMENT ERROR - XXXXXXX.* 
          SA3    PRSA        INCREMENT ARGUMENT COUNTER 
          SX7    X3+B1
          SA7    A3 
          SX7    X7-TARGL-1 
          PL     X7,ERR      IF TOO MANY ARGUMENTS
          NZ     X2,PRS8     IF POSITIONAL ARGUMENT 
  
*         PROCESS EQUIVALENCED ARGUMENTS. 
  
          SA2    PRSD 
          NZ     X2,ERR      IF TERMINATOR, NO VALUE FOR ARGUMENT 
          SA2    TARG        FWA OF ARGUMENT TABLE
 PRS5     ZR     X2,ERR      IF END OF TABLE, INCORRECT ARGUMENT
          MX0    12 
          BX3    X6-X2
          BX3    X0*X3
          ZR     X3,PRS6     IF A MATCH 
          SA2    A2+B1
          EQ     PRS5        CHECK NEXT ARGUMENT IN TABLE 
  
 PRS6     SX4    X2+         FWA OF TABLE OF LIST OPTIONS 
          AX2    18 
          SX5    X2          FWA OF ARGUMENT AREA 
          RJ     POP         GET ARGUMENT VALUE 
          SX1    ERAE        * ARGUMENT ERROR - XXXXXXX.* 
          NG     B5,ERR      IF ERROR 
          ZR     X4,PRS7     IF NO OPTION TABLE 
          RJ     CVO         CHECK FOR VALID OPTION 
          NZ     X3,ERR      IF VALID OPTION NOT FOUND
 PRS7     MX0    -18
          BX2    -X0*X6 
          NZ     X2,ERR      IF ARGUMENT VALUE TOO LONG 
          SA6    X5+         SAVE VALID OPTION
          ZR     B6,PRS10    IF END OF ARGUMENTS
          EQ     PRS2        CHECK NEXT ARGUMENT
  
*         PROCESS POSITIONAL ARGUMENTS. 
  
 PRS8     SX1    ERAE        * ARGUMENT ERROR - XXXXXXX.* 
          MX0    -18
          BX2    -X0*X6 
          NZ     X2,ERR      IF ARGUMENT TOO LONG 
          SA2    PRSA        GET ARGUMENT COUNTER 
          SA3    TARG+X2-1
          SX4    X3+         FWA TABLE OF LIST OPTIONS
          AX3    18 
          SX5    X3          SAVE FWA OF ARGUMENT AREA
          ZR     X4,PRS9     IF NO LIST OPTION TABLE
          RJ     CVO         CHECK FOR VALID OPTION 
          NZ     X3,ERR      IF INVALID OPTION
 PRS9     SA6    X5+         SAVE ARGUMENT
          SA1    PRSD 
          ZR     X1,PRS2     IF NOT END OF ARGUMENTS
  
*         CHECK FOR ARGUMENT CONFLICTS. 
  
 PRS10    SA2    PRSC        CHECK LIST OPTION
          SX3    1RL
          LX3    54 
          BX3    X3-X2
          NZ     X3,PRS12    IF NOT LINE PRINTER OPTION 
          SA2    PRSB        GET LOCAL FILE NAME
          SA1    OUTPUT 
          BX6    X1 
          ZR     X2,PRS11    IF FILE NAME NOT SPECIFIED 
          MX0    -18
          BX1    -X0*X1 
          BX6    X1+X2
          SA6    OUTPUT      SET FILE NAME IN FET 
 PRS11    SA6    LFLG        SET LINE PRINTER FLAG
          EQ     PRS12.1     CHECK INPUT FILE OPTION
  
 PRS12    SA2    PRSB        CHECK IF FILE NAME SPECIFIED 
          ZR     X2,PRS12.1  IF NOT FILE NAME SPECIFIED 
          BX6    X2 
          SX1    ERAE        * ARGUMENT ERROR - XXXXXXX.* 
          EQ     ERR         PROCESS ERROR
  
 PRS12.1  SA1    PRSF        GET LOCAL FILE NAME FOR DIRECTIVES 
          SA2    INPUT
          MX0    42 
          BX6    X0*X1
          BX7    -X0*X2 
          BX7    X6+X7
          SA6    DFLG        SET INPUT FILE FLAG
          SA7    A2+         SET INPUT FILE 
  
*         SET *MAXIMUM CM FL FOR ONE JOB* IN TEMPLATE DESCRIPTION.
  
 PRS13    SX1    MXFL        MAXIMUM CM FL FOR ONE JOB
          RJ     COD         CONVERT TO DISPLAY CODE
          LX6    -12
          MX0    12 
          SA1    ASFM        GET TEMPLATE WORDS 
          SA2    A1+B1
          BX7    X0*X6       SET SET LAST PART OF VALUE 
          BX2    -X0*X2      SET FIRST PART OF VALUE
          LX0    12 
          BX6    X0*X6
          BX1    -X0*X1 
          BX6    X6+X1
          BX7    X7+X2
          SA6    A1          SET VALUE IN TEMPLATE
          SA7    A2 
          RJ     GSD         GET SYSTEM DATA
          EQ     PRSX        RETURN 
  
  
 PRSA     CON    0           ARGUMENT COUNTER 
 PRSB     CON    0           OUTPUT FILE ARGUMENT VALUE 
 PRSC     CON    0LD         LIST OPTION ARGUMENT VALUE 
 PRSD     CON    0           TERMINATOR ENCOUNTERED FLAG
 PRSE     CON    0           SYSTEM ORIGIN FLAG 
 PRSF     CON    0           INPUT FILE ARGUMENT VALUE
          SPACE  4,10 
**        ARGUMENT EQUIVALENCE TABLE. 
* 
*T        12/ OP,12/ ,18/ AV,18/ OT 
* 
*         OP = DISPLAY CODE ARGUMENT OPTION VALUE.
*         AV = ADDRESS OF ARGUMENT VALUE. 
*         OT = FWA OPTION TABLE, IF ARGUMENT HAS DISCRETE OPTIONS.
*            = 0, OTHERWISE.
  
  
 TARG     BSS    0
          VFD    12/0LL,12/0,18/PRSB,18/0  LOCAL FILE ARGUMENT
          VFD    12/0LLO,12/0,18/PRSC,18/TLOP  LIST OPTION ARGUMENT 
          VFD    12/0LI,12/0,18/PRSF,18/0  INPUT FILE ARGUMENT
 TARGL    EQU    *-TARG      NUMBER OF VALID ARGUMENTS
          CON    0           END OF TABLE 
          SPACE  4,10 
**        TLOP - TABLE OF LIST OPTIONS. 
* 
*T        42/ OPTION,18/
* 
*         OPTION = DISPLAY CODE OPTION VALUE. 
  
  
 TLOP     BSS    0
          VFD    42/0LD,18/0 SELECT *L* DISPLAY/DUMMY LOCATION
          VFD    42/0LL,18/0 SELECT LINE PRINTER
          CON    0           END OF TABLE 
 CVO      SPACE  4,10 
**        CVO - CHECK FOR VALID OPTION. 
* 
*         ENTRY  (X4) = FWA OF LIST OPTION TABLE. 
*                (X6) = LIST OPTION ARGUMENT. 
* 
*         EXIT   (X3) = 0, IF VALID LIST OPTION FOUND.
*                     = NOT 0, IF VALID LIST OPTION NOT FOUND.
* 
*         USES   X - 2, 3.
*                A - 2. 
  
  
 CVO      SUBR               ENTRY/EXIT 
          SA2    X4+         FWA OF LIST OPTION TABLE.
 CVO1     ZR     X2,CVOX     IF END OF TABLE, OPTION NOT FOUND
          BX3    X6-X2
          ZR     X3,CVOX     IF LIST OPTION FOUND 
          SA2    A2+1 
          EQ     CVO1        PROCESS NEXT ENTRY IN TABLE
 ERR      SPACE  4,10 
**        ERR - ABORT PROGRAM WITH ERROR MESSAGE. 
* 
*         *ERR* ISSUES AN ERROR MESSAGE TO THE USER AND SYSTEM
*         DAYFILE AND THEN ABORTS THE UTILITY.
* 
*         ENTRY  (X1) = FWA OF ERROR MESSAGE. 
*                (X6) = KEYWORD VALUE FOR ERROR MESSAGE, IF THE 
*                       MESSAGE IS *ERAE*.
*                (X6) = KEYWORD VALUE FOR ERROR MESSAGE.
* 
*         EXIT   MESSAGE ISSUED IN SYSTEM AND USER DAYFILE. 
* 
*         USES   X - 1, 2.
*                B - 2, 5.
* 
*         CALLS  AFT, SNM.
* 
*         MACROS ABORT, MESSAGE.
  
  
 ERR      BSS    0           ENTRY
          SB5    X1+         SET FWA OF MESSAGE 
          SX2    X1-ERAE
          NZ     X2,ERR1     IF NOT * ARGUMENT ERROR...* MESSAGE
          BX1    X6 
          RJ     AFT         APPEND FLOATING TERMINATOR 
          SB2    1RX         SET SEARCH CHARACTER 
          BX1    X6          SET PARAMETER IN ERROR 
          RJ     SNM         SET PARAMETER IN MESSAGE 
 ERR1     MESSAGE  B5,0,R    ISSUE MESSAGE TO USER AND SYSTEM DAYFILE 
          ABORT              ABORT UTILITY
          SPACE  4,10 
 SDSPE    EQU    *           END OF PROGRAM 
 .RFL=    MAX    SDSPE,LBUFE,OBUFE
 RFL=     EQU    .RFL=
          SPACE  4,10 
          END 
