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