IDENT VALEX,ORIG
ABS
SST
SYSCOM B1
ENTRY ACCOUNT
ENTRY BYE
ENTRY CHARGE
ENTRY GOODBYE
ENTRY HELLO
ENTRY LOGIN
ENTRY LOGOUT
ENTRY USER
ENTRY XPR
ENTRY ARG=
ENTRY VAL=
ENTRY RFL=
ENTRY SDM=
ENTRY SSJ=
TITLE VALEX - VALIDATION EXECUTIVE.
SPACE 4,10
*COMMENT VALEX - VALIDATION EXECUTIVE.
COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
SPACE 4,10
*** VALEX - VALIDATION EXECUTIVE.
* R. P. ROHRBOUGH 72/09/08.
* G. R. GREENFIELD 75/11/25.
* P. C. SMITH 81/06/10.
* G. S. YODER 87/03/13.
SPACE 4,10
*** USER AND ACCOUNT COMMANDS.
*
* USER,USERNAM,PASSWOR,FAMILY.
*
* USER,UN=USERNAM,PW=PASSWOR,FM=FAMILY.
*
* ACCOUNT,USERNAM,PASSWOR,FAMILY.
*
* ACCOUNT,UN=USERNAM,PW=PASSWOR,FM=FAMILY.
*
* USERNAM = USER NAME (1-7 ALPHNUMERIC CHARACTERS
* INCLUDING ASTERISK).
*
* PASSWOR = PASSWORD (1-7 ALPHNUMERIC CHARACTERS).
*
* FAMILY = FAMILY NAME (1-7 ALPHANUMERIC CHARACTERS).
*
* IF THE FAMILY NAME IS OMITTED, THE DEFAULT FAMILY WILL BE
* ASSUMED. DEFAULT CHARGE VALIDATION WILL BE PERFOMED IF THE
* USER NAME REQUIRES CHARGE VALIDATION AND NO *CHARGE* COMMAND
* FOLLOWS THE *USER* COMMAND. IF DEFAULT CHARGE VALIDATION
* FAILS AND FILE *INPUT* IS ASSIGNED TO A TERMINAL, THE USER
* WILL BE PROMPTED FOR ENTRY OF A VALID CHARGE AND PROJECT
* NUMBER.
SPACE 4,10
*** CHARGE COMMAND.
*
* CHARGE,CHARGE,PROJECT.
*
* CHARGE,CN=CHARGE,PN=PROJECT.
*
* CHARGE.
*
* CHARGE = EITHER OF THE FOLLOWING -
*
* - CHARGE NUMBER (1-10 ALPHANUMERIC
* CHARACTERS INCLUDING ASTERISK).
*
* - DEFAULT CHARGE PARAMETER (*). IF
* SPECIFIED, AND THE PROJECT NUMBER IS
* NULL, THE DEFAULT CHARGE AND PROJECT
* NUMBERS CONTAINED IN THE USER-S
* VALIDATION FILE ENTRY ARE USED.
*
* PROJECT = PROJECT NUMBER (1-20 ALPHANUMERIC CHARACTERS
* INCLUDING ASTERISK).
*
* IF BOTH CHARGE AND PROJECT NUMBERS ARE SPECIFIED THEY WILL BE
* VALIDATED FROM THE PROJECT PROFILE FILE (PROFILX) AND IF
* VALID, A NEW ACCOUNT BLOCK WILL BE BEGUN. OTHERWISE, THE JOB
* WILL BE ABORTED. IF THE DEFAULT CHARGE PARAMETER (*) IS
* SPECIFIED AS THE CHARGE PARAMETER AND THE PROJECT PARAMETER
* IS NULL, THE DEFAULT CHARGE AND PROJECT NUMBERS IN THE USER-S
* VALIDATION FILE (VALIDUX) ENTRY WILL BE USED AND PROCESSED AS
* IF THEY HAD BEEN ENTERED ON THE *CHARGE* COMMAND WITH THE
* EXCEPTION THAT IF BOTH THE DEFAULT CHARGE AND PROJECT FIELDS
* ARE NULL AND THE USER NAME DOES NOT REQUIRE A *CHARGE*
* COMMAND (*CCNR* PRIVILEGE) THE COMMAND WILL BE PROCESSED AS A
* NO-OP. THIS IS FOR COMPATIBILITY WITH PREVIOUS SYSTEM LEVELS
* AND WILL BE REMOVED IN A FUTURE RELEASE. IF THE *CHARGE.*
* FORM OF THE COMMAND IS USED THE CHARGE AND PROJECT NUMBERS
* WILL BE READ FROM THE FILE *INPUT*. IF *INPUT* IS NOT
* ASSIGNED TO A TERMINAL DEVICE, THE CHARGE AND PROJECT NUMBERS
* MUST APPEAR ON ONE LINE IN THE FORM -
*
* CHARGE,PROJECT
*
* IF *INPUT* IS A TERMINAL FILE, THE USER WILL BE PROMPTED
* FOR CHARGE AND PROJECT NUMBERS. THEY MAY BE ENTERED
* SEPARATELY OR IN THE ABOVE FORMAT IN RESPONSE TO THE CHARGE
* NUMBER PROMPT. IF AN ASTERISK IS ENTERED IN RESPONSE TO
* THE CHARGE NUMBER PROMPT, THE DEFAULT CHARGE WILL BE USED
* AND NO PROJECT NUMBER PROMPT WILL BE ISSUED. IN THE CASE
* OF AN ERROR IN INPUT OR CHARGE VALIDATION, THE USER WILL BE
* REPROMPTED FOR CHARGE AND PROJECT NUMBERS UP TO A DEFINED
* ERROR LIMIT.
*
*
* *CHARGE* COMMAND PROCESSING -
*
* - IF THE COMMAND IS A SECONDARY *CHARGE* COMMAND AND A
* PROJECT EPILOGUE EXISTS FOR THE CURRENT PROJECT NUMBER
* THE EPILOGUE IS EXECUTED BEFORE ANY PROCESSING IS PERFORMED
* ON THE *CHARGE* COMMAND. THE SECONDARY *CHARGE* COMMAND IS
* REEXECUTED WHEN THE EPILOGUE TERMINATES.
*
* - FOR A SECONDARY *CHARGE* COMMAND THE ACCOUNTING INFORMATION
* FOR THE CURRENT ACCOUNT BLOCK IS DISPLAYED IN THE ACCOUNT
* DAYFILE AND THE SRU-S ACCUMULATED DURING THE ACCOUNT BLOCK
* ARE ADDED TO THE ACCUMULATOR IN THE PROFILE FILE LEVEL 3
* BLOCK.
*
* - THE NEW CHARGE AND PROJECT NUMBERS ARE SET IN THE JOB-S
* NFL, THE SRU ACCUMULATOR IS CLEARED, AND THE SRU
* MULTIPLIERS AND SRU LIMITS ARE RESET IF NECESSARY.
*
* - IF A PROJECT PROLOGUE IS DEFINED FOR THE NEW PROJECT NUMBER
* IT IS EXECUTED. CHARGE REQUIRED STATUS MAY BE SET ON
* TERMINATION DEPENDING ON THE OPTION SET IN THE PROFILE FILE
* ENTRY. SEE PROLOGUE SEQUENCING DOCUMENTATION.
*
* CHARGE VALIDATION MAY BE INVOKED IMPLICITLY BY *USER* COMMAND
* PROCESSING. SEE *USER* COMMAND DOCUMENTATION.
SPACE 4,15
*** LOGOUT COMMANDS.
*
* BYE,ANAME.
*
* BYE,AP=ANAME.
*
* GOODBYE,ANAME.
*
* GOODBYE,AP=ANAME.
*
* HELLO,ANAME.
*
* HELLO,AP=ANAME.
*
* LOGIN,ANAME.
*
* LOGIN,AP=ANAME.
*
* LOGOUT,ANAME.
*
* LOGOUT,AP=ANAME.
*
* ANAME = NETWORK APPLICATION NAME (1-7 ALPHANUMERIC
* CHARACTERS). THE DEFAULT IS *LOGOUT* FOR THE
* *BYE*, *GOODBYE*, AND *LOGOUT* COMMANDS AND
* *LOGIN* FOR THE *HELLO* AND *LOGIN* COMMANDS.
*
*
* LOGOUT COMMANDS ARE PROCESSED AS FOLLOWS -
*
* - AN EPILOGUE PROGRAM IS EXECUTED IF ONE IS DEFINED.
*
* - AN ONLINE INTERACTIVE JOB IS DISCONNECTED FROM THE
* TERMINAL AND THE TERMINAL IS OPTIONALLY SWITCHED TO
* ANOTHER NETWORK APPLICATION.
*
* - THE JOB IS TERMINATED.
SPACE 4,10
*** *XPR* COMMAND - EXECUTE SEQUENCED PROLOGUE.
*
* $XPR.IT NNNNNNN
*
* I = PROLOGUE INDEX.
* = 0 IF SYSTEM PROLOGUE.
* = 1 IF PROJECT PROLOGUE.
* = 2 IF USER PROLOGUE.
*
* T = PROLOGUE TERMINATION OPTION + 1 TO SET IF .NE. 0.
* = 0 IF NO CHANGE IN TERMINATION OPTION.
*
* NNNNNNN = PROLOGUE FILE NAME.
* = NULL (LINE TERMINATION) IF PROLOGUE FILE
* ACCESS ERROR.
*
*
* THE *XPR* COMMAND IS USED IN PROLOGUE SEQUENCING TO CLEAR
* NO-DROP STATUS AND TO RESET THE LOCAL FILE NAME OF A PROLOGUE
* FILE AFTER TERMINATION OF A PREVIOUS PROLOGUE. THE PROLOGUE
* TERMINATION OPTION MAY ALSO BE CHANGED OR CLEARED IF
* NECESSARY.
SPACE 4,10
*** PROLOGUE AND EPILOGUE EXECUTION.
*
* SYSTEM AND USER PROLOGUE EXECUTION IS INITIATED ONLY BY A
* VALID PRIMARY *USER* COMMAND. PROJECT PROLOGUE EXECUTION IS
* INITIATED BY A VALID *CHARGE* COMMAND OR BY A *USER* COMMAND
* IF A CHARGE IS VALIDATED IMPLICITLY. FOR A PRIMARY *USER*
* COMMAND THE EXECUTION ORDER IS SYSTEM, PROJECT, AND USER
* PROLOGUE. FOR THE SYSTEM AND PROJECT PROLOGUES, OPTIONS CAN
* BE SELECTED UNDER *MODVAL* OR *PROFILE* TO SPECIFY SECURITY
* PROCESSING TO BE PERFORMED ON PROLOGUE TERMINATION. THIS
* MAKES IT POSSIBLE TO RESTRICT THE USAGE OF USER NAMES AND
* PROJECT NUMBERS TO SPECIFIC APPLICATIONS OR TO PERFORM
* VALIDATION CHECKS BEFORE ALLOWING UNRESTRICTED USAGE. IF A
* SHELL PROGRAM IS DEFINED, IT IS POSSIBLE TO PREVENT NORMAL
* PROCESSING OF COMMANDS IN A PROCEDURE. THEREFORE, EITHER
* SHELL CONTROL WILL BE CLEARED OR THE JOB WILL BE ABORTED
* DEPENDING ON THE SHELL PROGRAM ABORT OPTION UPON INITIATION
* OF A SYSTEM OR PROJECT PROLOGUE. THE PROLOGUE FILES ARE
* ACCESSED INTERNALLY BY *CHARGE* TO AVOID PASSING PERMANENT
* FILE PASSWORDS TO THE SEQUENCING PROCEDURE. IF ANY OF THE
* PROLOGUES ABORT, THE SEQUENCING PROCEDURE WILL ABORT AT THAT
* POINT. IF A PROLOGUE FILE WAS DEFINED BUT COULD NOT BE
* ACCESSED, THE SEQUENCING PROCEDURE WILL ABORT AT THE POINT AT
* WHICH THAT PROLOGUE IS INVOKED.
*
* PROJECT EPILOGUE EXECUTION IS INITIATED BY A SECONDARY
* *CHARGE* COMMAND OR BY A LOGOUT COMMAND IF AN EPILOGUE IS
* DEFINED FOR THE CURRENT ACCOUNT BLOCK. SHELL CONTROL IS
* CLEARED BEFORE EPILOGUE EXECUTION BEGINS AND CHARGE REQUIRED
* IS SET ON EPILOGUE TERMINATION TO ENSURE TERMINATION OF THE
* ACCOUNT BLOCK. AN ATTEMPT TO SET SHELL CONTROL WITHOUT THE
* CLEAR CONTROL ON SHELL ABORT OPTION IN AN ACCOUNT BLOCK WHICH
* HAS AN EPILOGUE DEFINED WILL ABORT THE JOB.
*
* *CHARGE* COMMANDS ARE NOT PERMITTED IN A SYSTEM OR PROJECT
* PROLOGUE OR IN A PROJECT EPILOGUE TO AVOID AMBIGUITY WITH
* RESPECT TO SETTING CHARGE REQUIRED WHICH WOULD RESULT FROM
* PROLOGUE OR EPILOGUE NESTING. FOR THE SAME REASON, LOGOUT
* COMMANDS ARE NOT PERMITTED IN A PROJECT PROLOGUE IF AN
* EPILOGUE IS DEFINED FOR THE CURRENT ACCOUNT BLOCK.
SPACE 4,10
*** DAYFILE MESSAGES.
*
* * ALTERNATE FAMILY NOT ALLOWED.*
* THE USER IS NOT VALIDATED TO SPECIFY AN ALTERNATE
* FAMILY ON A SECONDARY *USER* COMMAND.
*
* * ALTERNATE USER NAME NOT ALLOWED.*
* THE USER IS NOT VALIDATED TO SPECIFY AN ALTERNATE USER
* NAME ON A SECONDARY *USER* COMMAND.
*
* * CHARGE = CHARGENUMBER, PROJECT = PROJECTNUMBER.
* AN ACCOUNT BLOCK HAS BEEN INITIATED UNDER THE
* INDICATED CHARGE AND PROJECT NUMBERS.
*
* * CHARGE ABNORMAL.*
* INTERNAL SYSTEM ERROR OCCURRED.
*
* * CHARGE ABORTED.*
* EXTERNAL JOB ABORT.
*
* * CHARGE COMMAND REQUIRED.*
* THE COMMAND CANNOT BE EXECUTED UNTIL A VALID *CHARGE*
* COMMAND IS EXECUTED.
*
* * CHARGE FILE BUSY.*
* FILE IS NOT AVAILABLE FOR CHARGE PURPOSES. WAIT AND
* TRY AGAIN.
*
* * CHARGE NOT VALID.*
* 1) CHARGE OR PROJECT NUMBER DOES NOT EXIST.
* 2) PROJECT NUMBER IS NOT AVAILABLE TO A USER WITH THIS
* USER NAME.
* 3) CHARGE OR PROJECT NUMBER EXISTS BUT IS INACTIVE.
*
* * CHARGE NOT VALID AT THIS HOUR.*
* THIS PROJECT NUMBER CANNOT BE USED AT THIS TIME OF
* DAY.
*
* * CHARGE NUMBER EXPIRED.*
* CHARGE NUMBER EXPIRATION DATE HAS OCCURRED.
*
* * CHARGE RESTRICTED TO DEFAULT.*
* THE USER MAY ONLY USE THE DEFAULT CHARGE AND PROJECT
* NUMBER.
*
* * COMMAND NOT ALLOWED IN PROLOGUE/EPILOGUE.*
* A *CHARGE* COMMAND WAS EXECUTED IN A SYSTEM PROLOGUE,
* PROJECT PROLOGUE OR PROJECT EPILOGUE OR A LOGOUT
* COMMAND WAS EXECUTED IN A PROJECT PROLOGUE WHEN AN
* EPILOGUE WAS DEFINED (ISSUED BY *CPM*).
*
* * CUMULATIVE LIMIT EXCEEDED.*
* ONE OF THE INSTALLATION DEFINED RESOURCE USAGE
* ACCUMULATORS FOR THIS PROJECT EXCEEDS THE MAXIMUM
* ALLOWABLE VALUE.
*
* * CUMULATIVE SRU LIMIT EXCEEDED.*
* SRU ACCUMULATOR FOR THIS PROJECT EXCEEDS THE MAXIMUM
* ALLOWABLE VALUE.
*
* * DATA BASE ERROR.*
* ERROR IN VALIDATION FILE STRUCTURE DETECTED.
*
* * DEFAULT CHARGE NOT VALID.*
* SAME AS "CHARGE NOT VALID" EXCEPT THAT THE DEFAULT
* CHARGE INFORMATION WAS USED FOR PROCESSING.
*
* * DEFAULT CHARGE NULL.*
* THE DEFAULT CHARGE NUMBER AND THE DEFAULT PROJECT
* NUMBER WERE NULL.
*
* * EPILOGUE AND SHELL CONFLICT.*
* A SHELL PROGRAM WITH THE NO-ABORT OPTION WAS ACTIVE AT
* THE TIME A CHARGE AND PROJECT NUMBER WITH AN EPILOGUE
* WAS VALIDATED.
*
* * ERROR IN ARGUMENTS.*
* ARGUMENT ERROR WAS DETECTED ON COMMAND.
*
* * ERROR IN DEFAULT CHARGE. *
* DEFAULT CHARGE PROCESSING WAS NOT ATTEMPTED BECAUSE
* THE DEFAULT CHARGE INFORMATION IN THE USER-S
* VALIDATION FILE ENTRY WAS INCORRECT.
*
* * EXTENDED MEMORY MINIMUM CM NOT VALIDATED.*
* MINIMUM CM REQUIRED FOR EXTENDED MEMORY USAGE EXCEEDS
* VALIDATION LIMIT.
*
* * FORMAT ERROR IN INPUT.*
* THE CHARGE OR PROJECT NUMBER READ FROM THE INPUT FILE
* WAS NOT IN THE CORRECT FORMAT.
*
* * INCORRECT COMMAND.*
* THE *XPR* COMMAND WAS EXECUTED IN OTHER THAN THE
* PROLOGUE SEQUENCING PROCEDURE.
*
* * INPUT ERROR LIMIT.*
* THE MAXIMUM ALLOWED NUMBER OF CONSECUTIVE INPUT ERRORS
* WAS EXCEEDED.
*
* * NO USER COMMAND EXECUTED.*
* *CHARGE* COMMAND WAS NOT PRECEDED BY A *USER* COMMAND.
*
* * PROJECT EPILOGUE NOT FOUND.*
* THE PROJECT EPILOGUE FILE COULD NOT BE ACCESSED.
*
* * PROJECT NUMBER EXPIRED.*
* PROJECT NUMBER EXPIRATION DATE HAS OCCURRED.
*
* * PROJECT PROLOGUE NOT FOUND.*
* THE PROJECT PROLOGUE FILE COULD NOT BE ACCESSED.
*
* * PROJECT PROLOGUE FILE NOT LOCAL.*
* THE FILE ZZZZPR1 WAS NOT LOCAL TO THE JOB AT THE TIME
* THE PROJECT PROLOGUE WAS TO BE EXECUTED.
*
* * PROLOGUE AND SHELL CONFLICT.*
* A SHELL PROGRAM WITH THE NO-ABORT OPTION WAS ACTIVE AT
* THE TIME A CHARGE AND PROJECT NUMBER WITH A PROLOGUE
* WAS VALIDATED.
*
* * SECONDARY USER COMMANDS DISABLED.* = THE SYSTEM IS NOT
* OPERATING IN SECURE MODE AND SECONDARY USER COMMANDS
* ARE DISABLED.
*
* * SECURITY CONFLICT.*
* USER AND/OR FAMILY NAME SPECIFIED ON A *USER* COMMAND
* WERE NOT VALID OR A SECONDARY *USER* COMMAND WAS
* EXECUTED WHEN THE SYSTEM WAS RUNNING IN SECURED MODE
* (ISSUED BY *CPM*).
*
* * SYSTEM PROLOGUE NOT FOUND.*
* THE SYSTEM PROLOGUE FILE COULD NOT BE ACCESSED.
*
* * TL NOT VALIDATED.*
* JOB COMMAND *TL* PARAMETER IS GREATER THAN THE USER-S
* VALIDATION LIMIT.
*
* * USER PROLOGUE NOT FOUND.*
* THE USER PROLOGUE FILE COULD NOT BE ACCESSED.
*
* * USER PROLOGUE FILE NOT LOCAL.*
* THE FILE ZZZZPR2 WAS NOT LOCAL TO THE JOB AT THE TIME
* THE USER PROLOGUE WAS TO BE EXECUTED.
*
* * YOUR PASSWORD EXPIRES AT 00.00.00 ON YY/MM/DD.*
* YOUR PASSWORD EXPIRES ON THE SPECIFIED TIME AND DATE.
SPACE 4,10
*** ACCOUNT FILE MESSAGES -
*
* *ABUN, USER, FAMILY, TERMINAL.*
* PRIMARY *USER* COMMAND EXECUTED.
*
* *ABIC, CHARGE, PROJECT.*
* INITIAL DEFAULT CHARGE AND PROJECT NUMBER.
*
* *ACUN, USER, FAMILY.*
* SECONDARY USER COMMAND EXECUTED.
*
* *ABCN, CHARGE, PROJECT.*
* BEGIN ACCOUNT BLOCK FOR PRIMARY CHARGE.
*
* *ACCN, CHARGE, PROJECT.*
* BEGIN ACCOUNT BLOCK FOR SECONDARY CHARGE.
TITLE PROGRAM EQUIVALENCES.
** ASSEMBLY OPTIONS.
*
* LIM$ EQU 0 - FULL CHECKING- CHARGE PERFORMS ALL CHECKS
* CORRESPONDING TO THE ABOVE ERROR MESSAGE
* DOCUMENTATION.
* LIM$ EQU 1 - SUPPRESSES CHECKING OF SRU ACCUMULATORS AND
* INSTALLATION DEFINED RESOURCE USAGE
* ACCUMULATORS, BUT RETAINS ALL OTHER CHECKING.
* RPE$ DEFINED - ASSEMBLE CODE TO READ PROFILE FILE LEVEL 3
* BLOCK FROM RANDOM ADDRESS.
RPE$ EQU 0
LIM$ EQU 0
SPACE 4,10
*CALL COMCCMD
*CALL COMCMAC
*CALL COMSACC
*CALL COMSJCE
*CALL COMSLFD
*CALL COMSPRD
*CALL COMSPFM
LIST X
*CALL COMSPRO
LIST *
*CALL COMSRPV
*CALL COMSSCD
*CALL COMSSRU
*CALL COMSSSJ
*CALL COMSTCM
SPACE 4,10
** PROGRAM EQUATES.
ARG= EQU 0 SUPPRESS COMMAND CRACKING
SDM= EQU * SUPPRESS DAYFILE MESSAGE
VAL= EQU * ALLOW VALIDATION
BUFL EQU 101B BUFFER LENGTH
ERLIM EQU 5 INPUT ERROR RETRY LIMIT
RPMS EQU /COMSRPV/OTMS+/COMSRPV/TIMS+/COMSRPV/PPMS RPV MASK
TITLE GLOBAL DATA AREA.
** FETS.
ORG 120B
ORIG BSS 0
I BSS 0
INPUT FILEB IBUF,BUFL,FET=10B
O BSS 0
ZZZZZG0 FILEB OBUF,BUFL,FET=10B,DTY=2RTT
F BSS 0
FILE FILEB FBUF,BUFL,EPR,(FET=17B)
SSJ= SPACE 4,10
* SPECIAL SYSTEM JOB PARAMETER AREA.
SSJ= VFD 12/0,24/0,12/PRCS,12/0
BSSZ SSJL-1
SPACE 4,10
* GLOBAL STORAGE.
ACSF CON 0 *ASCII* CHARACTER SET FLAG
APN CON 0 APPLICATION NAME FOR LOGOUT
DFCF CON 0 DEFAULT CHARGE PRESENT FLAG
EXER CON 0 EXTERNAL ERROR CODE
PRST CON 0 PROLOGUE/EPILOGUE STATUS
TJEF CON 0 TERMINATE JOB ON ERROR FLAG
TRIA CON 0 TERMINAL INTERRUPT ADDRESS
TRIF CON 0 TERMINAL INTERACTION FLAG
* THE ORDER OF THE FOLLOWING NINE LOCATIONS MUST BE MAINTAINED.
SPF CON 0 SYSTEM PROLOGUE FILE NAME
DATA 7LLIBRARY SYSTEM PROLOGUE USER NAME
CON 0 SYSTEM PROLOGUE PASSWORD
PPF CON 0 PROJECT PROLOGUE FILE NAME AND OPTION
CON 0 PROJECT PROLOGUE USER NAME
CON 0 PROJECT PROLOGUE PASSWORD
UPF CON 0 USER PROLOGUE FILE NAME
CON 0 USER PROLOGUE USER NAME
CON 0 USER PROLOGUE PASSWORD
* USER VALIDATION PARAMETER BLOCK.
UNAM CON 0 USER NAME
UPSW CON 0 USER PASSWORD / SPECIAL USER NAMES FLAG
UFAM CON 0 FAMILY NAME / STATUS FLAGS
UALMW CON 0 ALMW - ACCOUNT LIMIT WORD
UACLW CON 0 ACLW - ACCOUNT COUNTING LIMIT WORD
UAACW CON 0 AACW - ACCOUNT ACCESS CONTROL WORD
UPRO CON 0 PROLOGUE FILE NAMES
UPJ1 CON 0 DEFAULT PROJECT NUMBER (FIRST WORD)
UPJ2 CON 0 DEFAULT PROJECT NUMBER (SECOND WORD)
UCRN CON 0 DEFAULT CHARGE NUMBER
UTRN CON 0 TERMINAL NAME/TERMINAL NUMBER
* CHARGE VALIDATION PARAMETER BLOCK.
SRUM BSS 2 CONTROL POINT SRU WORDS
CGN BSS 1 CHARGE NUMBER
PRN BSS 2 PROJECT NUMBER
ACCM BSS 5 ACCOUNT FILE MESSAGE BUFFER
* PROLOGUE/EPILOGUE CONTROL PARAMETER BLOCK.
PRC CON 0
* REPRIEVE PARAMETER BLOCK.
RPB RPVBLK RPV
TITLE COMMAND PROCESSORS.
USER SPACE 4,20
** USE - *USER* AND *ACCOUNT* COMMANDS.
*
* EXIT TO *EPF* IF CHARGE NOT REQUIRED.
* TO *CHARGE* IF CHARGE REQUIRED AND NEXT COMMAND IS
* *CHARGE*.
* TO *RCH* IF DEFAULT CHARGE ERROR AND TERMINAL INPUT
* FILE.
* TO *ABT* IF DEFAULT CHARGE ERROR AND NOT TERMINAL
* INPUT FILE.
*
* USES X - 1, 2, 3, 5, 6.
* A - 0, 1, 2.
* B - 3, 6.
*
* CALLS ABT, EPF, GPR, PRS, RCH, SCA, STI, VCH, VUN.
*
* MACROS CONTROL, DISSR, MESSAGE, WRITEC, WRITER.
USER BSS 0 ENTRY
ACCOUNT BSS 0
RJ PRS PRESET
DISSR IAAC DISABLE SRU ACCUMULATION
SA0 USEA SET ARGUMENT TABLE ADDRESS
SB3 USEB SET SECURE ARGUMENT TABLE ADDRESS
RJ SCA SET COMMAND ARGUMENTS
USE1 SA1 A0 READ ARGUMENT TABLE
ZR X1,USE2 IF END OF ARGUMENTS
SA1 X1 READ ARGUMENT
SX1 X1
SA0 A0+B1 ADVANCE ARGUMENT POINTER
ZR X1,USE1 IF ARGUMENT .LE. 7 CHARACTERS
SB6 ERAR * ERROR IN ARGUMENTS.*
EQ ABT ABORT
USE2 RJ VUN VALIDATE USER NAME
CONTROL CCDR,RSS READ NEXT COMMAND
SA1 ACTR
MX0 -6 CHECK FOR LEADING *$* OR */*
MX3 42
LX1 6
BX0 -X0*X1
SX2 X0-1R$
ZR X2,USE3 IF *$*
SX2 X0-1R/
ZR X2,USE3 IF */*
LX1 -6
USE3 SA2 =6LCHARGE
BX1 X3*X1
BX2 X1-X2
NZ X2,USE4 IF NOT *CHARGE*
CONTROL CCDR ADVANCE TO *CHARGE* COMMAND
EQ CHARGE PROCESS *CHARGE* COMMAND
USE4 SA1 SSJ=+AACS GET CHARGE REQUIRED FLAG
LX1 59-7
NG X1,EPF IF CHARGE NOT REQUIRED, PROCESS PROLOGUES
DISSR IACH SET CHARGE VALIDATION UNIT CHARGE
RJ GPR GET PROLOGUE/EPILOGUE STATUS
SX2 B0 SET VALIDATE DEFUALT CHARGE
RJ VCH VALIDATE DEFAULT CHARGE
RJ STI SET TERMINAL INTERACTION
SA1 TRIF
ZR X1,ABT IF NOT INTERACTIVE JOB
MESSAGE B6,,R ISSUE ERROR MESSAGE
WRITEC O,B6 ISSUE MESSAGE TO TERMINAL
WRITER O,R
EQ RCH READ CHARGE FROM INPUT FILE
USEA BSS 0 ARGUMENT TABLE
UN ARG UNAM,UNAM,400B,1
PW ARG UPSW,UPSW,400B,1
FM ARG UFAM,UFAM,400B,1
ARG
USEB BSS 0 SECURE ARGUMENTS FOR REMOVAL
VFD 42/2LPW,18/2 PASSWORD
CON 0 END OF TABLE
CHARGE SPACE 4,15
** CHA - *CHARGE* COMMAND.
*
* EXIT TO *ABT* IF INVALID CHARGE.
* TO *RCH* TO READ CHARGE FROM INPUT FILE.
*
* USES X - 1, 2, 6, 7.
* A - 0, 1, 2.
* B - 3, 6.
*
* CALLS ABT, EEF, GPR, ICA, PRS, RCH, SCA, STI, VCH.
*
* MACROS DISSR.
CHARGE BSS 0 ENTRY
RJ PRS PRESET
RJ GPR GET PROLOGUE/EPILOGUE STATUS
SA1 PRST
MX6 2
MX0 -25
SB6 ERCN * COMMAND NOT ALLOWED IN PROLOGUE/ ...*
SX7 CRPT SET CHARGE REQUIRED OPTION
BX2 X6*X1
BX1 -X0*X1
NZ X2,ICA IF IN SYSTEM OR PROJECT PROLOGUE/EPILOGUE
NZ X1,EEF IF EPILOGUE PENDING
DISSR IACH DISABLE SRU ACCUMULATION
SA0 CHAA SET ARGUMENT TABLE ADDRESS
SB3 B0+ SET NO SECURE ARGUMENTS
RJ SCA SET COMMAND ARGUMENTS
SB6 ERNU * NO USER COMMAND EXECUTED.*
SA1 SSJ=+UIDS
MX0 42
BX1 X0*X1
ZR X1,ABT IF NO USER COMMAND EXECUTED
SA1 CGN
SA2 PRN
SB6 ERAR * ERROR IN ARGUMENTS.*
ZR X1,CHA2 IF CHARGE PARAMETER NOT SPECIFIED
LX1 6
NZ X2,CHA1 IF PROJECT NUMBER SPECIFIED
SX1 X1-1R*
NZ X1,ABT IF NOT DEFAULT CHARGE PARAMETER
CHA1 RJ VCH VALIDATE CHARGE AND PROJECT NUMBERS
EQ ABT ABORT
CHA2 NZ X2,ABT IF PROJECT NUMBER SPECIFIED
RJ STI SET TERMINAL INTERACTION
EQ RCH READ CHARGE FROM *INPUT* FILE
CHAA BSS 0 ARGUMENT TABLE
CN ARG CGN,CGN,400B,1
PN ARG PRN,PRN,400B,2
ARG
LOG SPACE 4,15
** LOG - LOGOUT COMMANDS.
*
* EXIT TO *ABT* IF ERROR.
* TO *EEF* TO EXECUTE EPILOGUE.
* TO *TRJ* TO TERMINATE JOB.
*
* USES X - 1, 6, 7.
* A - 0, 1.
* B - 3, 6.
*
* CALLS ABT, EEF, GPR, ICA, PRS, SCA, TRJ.
HELLO BSS 0 ENTRY
LOGIN BSS 0 ENTRY
SA1 =5LLOGIN SET DEFAULT APPLICATION
BX6 X1
SA6 APN
BYE BSS 0 ENTRY
GOODBYE BSS 0 ENTRY
LOGOUT BSS 0 ENTRY
RJ PRS PRESET
RJ GPR GET PROLOGUE/EPILOGUE STATUS
SA2 PRST
MX0 -25
BX1 -X0*X2
ZR X1,LOG1 IF NO EPILOGUE PENDING
SB6 ERCN * COMMAND NOT ALLOWED IN PROLOGUE/ ...*
NG X2,ICA IF IN PROLOGUE
SX7 LOPT SET LOGOUT OPTION
EQ EEF EXECUTE EPILOGUE
LOG1 SA0 LOGA SET ARGUMENT TABLE ADDRESS
SB3 0 SET NO SECURE ARGUMENTS
RJ SCA SET COMMAND ARGUMENTS
SA1 APN
SX1 X1
NZ X1,LOG2 IF ERROR IN APPLICATION NAME
EQ TRJ TERMINATE JOB
LOG2 SB6 ERAR * ERROR IN ARGUMENTS.*
EQ ABT ABORT
LOGA BSS 0 ARGUMENT TABLE
AP ARG APN,APN,400B,1
ARG
XPR SPACE 4,10
** XPR - EXECUTE SEQUENCED PROLOGUE.
*
* EXIT TO *END* IF NO ERROR.
* TO *ABT* IF PROLOGUE FILE ERROR.
* TO *ICA* IF ERROR IN *XPR* CALL.
*
* CALLS ABT, END, GPR, ICA, PRS, SNM.
*
* MACROS RENAME, SETFS.
XPR BSS 0 ENTRY
RJ PRS PRESET
RJ GPR GET PROLOGUE/EPILOGUE STATUS
SA1 PRST
SA5 CCDR
SB6 ERIC * INCORRECT COMMAND.*
LX1 59-58
LX5 -18
PL X1,ICA IF NOT CALLED FROM SEQUENCING PROCEDURE
MX0 -6
BX6 -X0*X5
SB6 ERAR * ERROR IN ARGUMENTS.*
SX1 X6-1R0
SX6 X6-1R1
SX2 X1-CAPT-2
NG X1,ICA IF NOT VALID TERMINATION OPTION
PL X2,ICA IF NOT VALID TERMINATION OPTION
NG X6,XPR1 IF NOT TO CHANGE TERMINATION OPTION
SX1 B1 SET TERMINATION OPTION
LX6 18
BX6 X6+X1
SA6 PRC
XPR1 SA3 =6LZZZZPR
SA4 CCDR+1
LX5 -6
BX6 -X0*X5
SX1 X6-1R0
SX2 X6-1R3
SX7 B1
LX6 18
NG X1,ICA IF NOT VALID PROLOGUE INDEX
PL X2,ICA IF NOT VALID PROLOGUE INDEX
SB6 ERPF * XXXXXXX PROLOGUE NOT FOUND.*
ZR X4,XPR2 IF PROLOGUE FILE ACESSS ERROR
BX6 X6+X7
BX6 X6+X3
BX7 X4
SA6 F
SA7 F+6
RENAME F RESET FILE NAME
SA1 F
MX7 -8
LX1 -10
BX1 -X7*X1
SB6 ERPL * XXXXXXX PROLOGUE FILE NOT LOCAL.*
NZ X1,XPR2 IF PROLOGUE FILE NOT LOCAL
SX7 B1 SET FILE NAME IN FET
BX7 X4+X7
SA7 F
SETFS F,AD CLEAR NO-DROP STATUS
EQ END TERMINATE
* PROCESS PROLOGUE FILE ERROR.
XPR2 BX6 -X0*X5 SET PROLOGUE TYPE
SX6 X6-1R0
SA1 XPRA+X6 SET PROLOGUE/EPILOGUE TYPE IN MESSAGE
SB5 B6+ SET MESSAGE ADDRESS
SB2 1R?
RJ SNM
EQ ABT ABORT
XPRA DATA 6LSYSTEM
DATA 7LPROJECT
DATA 4LUSER
TITLE PROLOGUE AND EPILOGUE SEQUENCING ROUTINES.
ACF SPACE 4,15
** ACF - ACCESS PROLOGUE OR EPILOGUE FILE.
*
* ENTRY (X1) = 42/PERMANENT FILE NAME, 18/0.
* (X2) = 42/PASSWORD, 18/0.
* (X3) = 42/USERNAME, 18/0.
* (X4) = 42/LOCAL FILE NAME, 18/0.
* (B6) = 0 IF TO CLEAR SSJ= FILE STATUS.
* (B6) .NE. 0 IF TO SET NO-DROP FILE STATUS.
*
* EXIT (X5) = 0 IF FILE FOUND.
*
* USES X - 0, 5, 6, 7.
* A - 5, 6, 7.
*
* MACROS ATTACH, GET, SETFS.
ACF SUBR ENTRY/EXIT
SX6 3 SET FILE STATUS
SX7 SRNF*10000B+PTRD SET NO FAST ATTACH AND READ MODE
BX6 X4+X6
BX7 X1+X7
SA6 F+CFSN SET LOCAL FILE NAME
SA7 F+CFPN SET PERMANENT FILE NAME AND MODE
SX5 ACFA SET ERROR MESSAGE ADDRESS
BX6 X3
BX7 X2+X5
SA6 F+CFOU SET USERNAME
SA7 F+CFPW SET PASSWORD
GET F,,,,,,IP
SA5 X2 CHECK ERROR
MX0 -8
AX5 10
BX5 -X0*X5
SX6 X5-/ERRMSG/FNF
NZ X6,ACF1 IF NOT *FILE NOT FOUND*
ATTACH F,,,,,,,IP
SA5 X2+ SET ERROR STATUS
AX5 10
BX5 -X0*X5
ACF1 NZ X5,ACFX IF ERROR IN ACCESS
NZ B6,ACF2 IF SET NO-DROP STATUS
SETFS F,AD CLEAR SSJ= STATUS
EQ ACFX EXIT
ACF2 SETFS F,NAD SET NO-DROP STATUS
EQ ACFX EXIT
ACFA BSS 3 ERROR MESSAGE
EEF SPACE 4,20
** EEF - EXECUTE EPILOGUE FILE.
*
* ENTRY (X1) = PROFILE FILE LEVEL 3 BLOCK POINTERS.
* (X7) = EPILOGUE TERMINATION OPTION.
*
* EXIT TO *EXP* TO EXECUTE EPILOGUE.
* TO *ABT* IF ERROR.
*
* USES X - 0, 1, 2, 3, 7.
* A - 0, 1, 2, 3, 7.
* B - 2, 5, 6.
*
* CALLS ACF, EXP, IPS, RPE, RPF, SNM.
*
* MACROS MESSAGE, MOVE, WRITEC.
EEF BSS 0 ENTRY
SX6 X7-LOPT
LX7 18
NZ X6,EEF1 IF NOT LOGOUT ON TERMINATION OPTION
SA6 EEFB SET NO *REVERT,EX* PROCESSING
EEF1 SX2 3 SET EPILOGUE PENDING AND OPTION FLAGS
BX7 X7+X2 SET EPILOGUE CONTROLS
SA7 PRC
RJ RPE READ PROFILE ENTRY
NZ B6,ABT IF ERROR IN PROFILE ENTRY
RJ RPF RESTORE USER-S PERMANENT FILE PARAMETERS
SA1 B5+PENW READ EPILOGUE FILE NAME
SA3 B5+PEUW READ USERNAME
SA2 B5+PEPW READ PASSWORD
MX0 42
BX1 X0*X1
BX3 X0*X3
BX2 X0*X2
BX4 X1 EPILOGUE LOCAL FILE NAME
SA0 A1 SAVE EPILOGUE NAME ADDRESS
SB6 B0 CLEAR SSJ= FILE STATUS
RJ ACF ACCESS FILE
SA1 EEFB
NZ X1,EEF2 IF *CHARGE* COMMAND
MOVE 8,CCDR,EEFB MOVE LOGOUT COMMAND
EQ EEF3 SET EPILOGUE CALL
EEF2 MOVE 7,CCDR,EEFB+2 MOVE *CHARGE* COMMAND
SX1 0 PACK *CHARGE* COMMAND CALL
SB5 EEFB
SB2 1R? SET SEARCH CHARACTER
RJ SNM
EEF3 ZR X5,EEF4 IF NO FILE ACCESS ERROR
MESSAGE EREF * PROJECT EPILOGUE NOT FOUND.*
EQ EEF5 INITIALIZE SEQUENCING
EEF4 SA1 A0+ SET FILE NAME
MX0 42
BX1 X0*X1
SB5 EEFA SET CALL ADDRESS
SB2 1R? SET SEARCH CHARACTER
RJ SNM SET EPILOGUE CALL
EEF5 RJ IPS INITIALIZE EPILOGUE SEQUENCING
NZ X5,EEF6 IF EPILOGUE FILE ACCESS ERROR
WRITEC F,EEFA WRITE EPILOGUE CALL
EEF6 WRITEC F,EEFB WRITE CHARGE OR LOGOUT COMMAND
WRITEC F,(=C*$REVERT,NOLIST.*)
WRITEC F,(=C*EXIT.*) WRITE EXIT PROCESSING
WRITEC F,EEFB
WRITEC F,(=C*$REVERT,NOLIST.*)
EQ EXP EXECUTE EPILOGUE
EEFA DATA C*???????. PROJECT EPILOGUE*
EEFB DATA 20L$REVERT,EX.?????????
BSSZ 8
EPF SPACE 4,15
** EPF - EXECUTE PROLOGUE FILES.
*
* ENTRY (SPF - SPF+8) = PROLOGUE PARAMETERS.
*
* EXIT PROLOGUE AND EPILOGUE CONTROLS SET IF REQUIRED.
* TO *EXP* TO EXECUTE PROLOGUES.
*
* USES X - 1, 2, 3, 4, 5.
* A - 0, 1, 2, 3, 4.
* B - 2, 5, 6, 7.
*
* CALLS ACF, END, EXP, SNM.
EPF BSS 0 ENTRY
* PROCESS SYSTEM AND PROJECT PROLOGUE TERMINATION OPTIONS.
SA1 SPF
SA2 PPF
SA3 UPF
SA4 PRC
SX7 X1+
SX0 X2+
BX6 X1+X2
ZR X6,EPF3 IF NO SYSTEM OR PROJECT PROLOGUE DEFINED
IX0 X7-X0 CHECK SYSTEM AND PROJECT PROLOGUE OPTIONS
PL X0,EPF1 IF PROJECT PROLOGUE OPTION NOT GREATER
SX7 X2+ USE PROJECT PROLOGUE OPTION
EPF1 SX6 B1 SET INITIAL TERMINATION OPTION FLAGS
LX7 18
BX7 X4+X7
BX7 X7+X6
SA7 A4
LX6 18
ZR X2,EPF2 IF NO PROJECT PROLOGUE DEFINED
NG X0,EPF2 IF PROJECT PROLOGUE OPTION SET AS INITIAL
SA4 EPFA+2
SX7 X2+B1 SET TO CHANGE TERMINATION OPTION
LX7 18
IX7 X4+X7
SA7 A4
EPF2 ZR X3,EPF3 IF NO USER PROLOGUE DEFINED
SA4 EPFA+4
IX6 X4+X6 SET TO CLEAR TERMINATION OPTION
SA6 A4
SX6 X2-CRPT CHECK PROJECT PROLOGUE OPTION
NZ X6,EPF3 IF NOT UNCONDITIONAL CHARGE REQUIRED
SA6 UPF CLEAR USER PROLOGUE PROCESSING
* ACCESS PROLOGUE FILES.
EPF3 SB7 B0 INITIALIZE PROLOGUE INDEX
SB6 B0 INITIALIZE EXECUTE PROLOGUE FLAG
SB5 EPFB INITIALIZE PROLOGUE CALL ADDRESS
SA0 SPF SET PROLOGUE PARAMETERS ADDRESS
EPF4 SA1 A0 READ FILE NAME
SA3 A0+B1 READ USER NAME
SA2 A0+2 READ PASSWORD
MX0 42
ZR X1,EPF6 IF PROLOGUE NOT DEFINED
BX1 X0*X1
BX4 X1 PRESET LOCAL FILE NAME
ZR B6,EPF5 IF NO PREVIOUS PROLOGUE
SX5 B7
SA4 =7LZZZZPR0 SET LOCAL FILE NAME
LX5 18
IX4 X4+X5
EPF5 RJ ACF ACCESS PROLOGUE FILE
SB6 B1 SET EXECUTE PROLOGUE FLAG
NZ X5,EPF8 IF FILE NOT FOUND
SA1 A0 SET PROLOGUE NAME IN CALL
MX0 42
SB2 B7+B7 INDEX*2
BX1 X0*X1
BX6 X1
SA6 EPFA+1+B2
SB2 1R?
RJ SNM
EPF6 NZ B7,EPF7 IF SYSTEM PROLOGUE NOT JUST PROCESSED
RJ RPF RESTORE USER-S PERMANENT FILE PARAMETERS
EPF7 SB7 B7+1 ADVANCE PROLOGUE INDEX
SB5 B5+4 ADVANCE PROLOGUE CALL ADDRESS
SB2 B7-3
SA0 A0+3 ADVANCE PARAMETER ADDRESS
NZ B2,EPF4 IF ALL PROLOGUES NOT PROCESSED
ZR B6,END IF NO PROLOGUES DEFINED
* BUILD SEQUENCING PROCEDURE.
EPF8 RJ IPS INITIALIZE PROLOGUE SEQUENCING
SA0 SPF SET PARAMETERS ADDRESS
MX0 42 SET FIRST PROLOGUE MASK
SB7 B0 SET CALL PARAMETERS INDEX
EPF9 SA1 A0+
SA5 EPFA+1+B7
ZR X1,EPF11 IF PROLOGUE NOT DEFINED
BX2 X0*X5
NZ X2,EPF10 IF FIRST PROLOGUE AND NO ACCESS ERROR
WRITEC F,EPFA+B7 WRITE REENTRY PROCESSING
EPF10 ZR X5,EPF12 IF FILE ACCESS ERROR
SB2 B7+B7 WRITE PROLOGUE CALL
WRITEC F,EPFB+B2
SX0 B0+ CLEAR FIRST PROLOGUE MASK
EPF11 SB7 B7+2 ADVANCE CALL PARAMETERS INDEX
SA0 A0+3 ADVANCE PARAMETER ADDRESS
SB2 B7-6
NZ B2,EPF9 IF ALL PROLOGUES NOT PROCESSED
EPF12 WRITEC F,(=C*$REVERT,NOLIST.*)
WRITEC F,(=C*EXIT.*)
WRITEC F,(=C*$REVERT,ABORT. PROLOGUE EXECUTION ABORTED*)
* INSURE TERMINATION OPTION SET FOR *XPR* PROCESSING IF USER
* PROLOGUE NOT FOUND AND NO SYSTEM OR PROJECT PROLOGUE DEFINED.
SX1 A0-UPF
NZ X1,EXP IF NOT EXIT ON USER PROLOGUE NOT FOUND
SA1 SPF
SA2 PPF
BX1 X1+X2
SX6 B1
NZ X1,EXP IF SYSTEM OR PROJECT PROLOGUE DEFINED
SX1 CCPT SET *CLEAR CONTROLS* TERMINATION OPTION
LX1 18
BX6 X1+X6
SA1 PRC ADD TO OTHER OPTIONS, IF ANY
BX6 X1+X6
SA6 A1
EQ EXP EXECUTE PROLOGUES
EPFA VFD 30/0L$XPR.,6/1L0,6/1L0,18/3H
CON 0
VFD 30/0L$XPR.,6/1L1,6/1L0,18/3H
CON 0
VFD 30/0L$XPR.,6/1L2,6/1L0,18/3H
CON 0
EPFB DATA 24L???????. SYSTEM PROLOGUE
DATA 0
DATA 25L???????. PROJECT PROLOGUE
DATA 0
DATA 30L$BEGIN,,???????. USER PROLOGUE
DATA 0
IPS SPACE 4,10
** IPS - INITIALIZE PROLOGUE OR EPILOGUE SEQUENCING.
*
* EXIT PROCEDURE HEADER WRITTEN TO SEQUENCING PROCEDURE FILE.
*
* USES X - 1, 6.
* A - 1, 6.
*
* MACROS RETURN, WRITEC.
IPS SUBR ENTRY/EXIT
SA1 =7LZZZZZG1 SET FILE NAME IN FET
SX6 B1
BX6 X6+X1
SA6 F
RETURN F,R
WRITEC F,(=14L.PROC,ZZZZZG1.) WRITE PROCEDURE HEADER
EQ IPSX RETURN
RPF SPACE 4,10
** RPF - RESTORE USER-S PERMANENT FILE PARAMETERS.
*
* EXIT USER-S PERMANENT FILE PARAMETERS RESTORED.
*
* USES X - 1, 6, 7.
* A - 1, 6, 7.
*
* MACROS SETPFP.
RPF SUBR ENTRY/EXIT
SA1 SSJ=+UIDS RESTORE USER-S PERMANENT FILE PARAMETERS
SX7 3 SET USER NAME AND INDEX
BX6 X1
SA7 RPFA
SA6 RPFA+2
SETPFP RPFA SET PERMANENT FILE PARAMETERS
EQ RPFX RETURN
RPFA BSS 3 PERMANENT FILE PARAMETERS
TITLE CHARGE VALIDATION ROUTINES.
GDC SPACE 4,20
** GDC - GET DEFAULT CHARGE AND PROJECT NUMBERS.
*
* CALLS *CPM* TO GET DEFAULT CHARGE AND PROJECT NUMBERS IF NOT
* ALREADY PRESENT.
*
* ENTRY (DFCF) .NE. 0 IF DEFAULT CHARGE PRESENT.
*
* EXIT (UCRN) = DEFAULT CHARGE NUMBER.
* (UPJ1 - UPJ2) = DEFAULT PROJECT NUMBER.
* (DFCF) .NE. 0.
*
* USES X - 1, 6.
* A - 1, 6.
*
* CALLS CPM=.
*
* MACROS MOVE.
GDC SUBR ENTRY/EXIT
SA1 DFCF
NZ X1,GDCX IF DEFAULT CHARGE INFORMATION PRESENT
SX6 B1 SET INFORMATION PRESENT
SA6 A1
SX1 SBUF SET PARAMETER BLOCK ADDRESS
SX2 126B SET RETURN USER BLOCK FUNCTION
RJ CPM=
MOVE 3,(SBUF+APJN),UPJ1 SET DEFAULT CHARGE INFORMATION
EQ GDCX RETURN
RCH SPACE 4,15
** RCH - READ CHARGE FROM *INPUT* FILE.
*
* ENTRY (TRIF) = TERMINAL INTERACTION FLAG.
*
* EXIT TO *VCH* TO VALIDATE CHARGE AND PROJECT.
* TO *ABT* IF RETRY LIMIT EXCEEDED.
* TO *RSE* IF EXTERNAL ERROR.
*
* USES X - 0, 1, 2, 3, 4, 6, 7.
* A - 1, 2, 3, 4, 6, 7.
* B - 2, 6.
*
* CALLS ABT, POP, USB, VCH.
*
* MACROS READ, READC, WRITEC, WRITER.
RCH BSS 0 ENTRY
SA1 TRIF
SA2 EXER
SX0 X1+
ZR X1,RCH1 IF NO TERMINAL INTERACTION
NZ X2,RSE IF EXTERNAL ERROR
SX6 RCH SET INTERRUPT ADDRESS
SA6 TRIA
WRITEC O,RCHA ISSUE CHARGE NUMBER PROMPT
WRITER O,R FORCE WRITE
RCH1 READ I,R READ CHARGE NUMBER
READC I,SBUF,4
NG X1,RCH5 IF NULL INPUT
SB2 SBUF UNPACK INPUT
RJ USB
SA1 USBC FORCE TERMINATION
SX6 1R.
SX7 X1+B1
SA6 X7
SA7 USBC
RJ POP ASSEMBLE CHARGE NUMBER
SA3 POPA
NG B5,RCH5 IF ERROR IN ASSEMBLY
GE B5,B1,RCH5 IF CHARGE NUMBER TOO LONG
ZR X3,RCH5 IF NO CHARGE NUMBER
BX6 X3 SET CHARGE NUMBER
LX3 6
SX2 X3-1R*
SA6 CGN
NZ B6,RCH2 IF NOT TERMINATOR
ZR X2,RCH4 IF DEFAULT CHARGE PARAMETER
ZR X0,RCH5 IF NOT TERMINAL INPUT
WRITEC O,RCHB ISSUE PROJECT NUMBER PROMPT
WRITER O,R FORCE WRITE
READ I,R READ PROJECT NUMBER
READC I,SBUF,3
NG X1,RCH5 IF NULL INPUT
SB2 SBUF UNPACK PROJECT NUMBER
RJ USB
SA1 USBC FORCE TERMINATION
SX6 1R.
SX7 X1+B1
SA6 X7
SA7 USBC
RCH2 RJ POP ASSEMBLE PROJECT NUMBER
SA2 POPA
SA4 POPA+1
NG B5,RCH5 IF ERROR IN ASSEMBLY
GT B5,B1,RCH5 IF PROJECT NUMBER TOO LONG
NZ B6,RCH5 IF NOT TERMINATOR
ZR X2,RCH5 IF NO PROJECT NUMBER
BX7 X7-X7
ZR B5,RCH3 IF ONE WORD PROJECT NUMBER
BX7 X4
RCH3 BX6 X2
SA6 PRN SET PROJECT NUMBER
SA7 A6+B1
RCH4 SX6 B0+ CLEAR INTERRUPT ADDRESS
SA6 TRIA
RJ VCH VALIDATE CHARGE AND PROJECT
EQ RCH6 PROCESS VALIDATION ERROR
* PROCESS ERROR IN INPUT.
RCH5 SB6 ERFI * FORMAT ERROR IN INPUT.*
RCH6 SA1 TRIF
ZR X1,ABT IF NOT TERMINAL INTERACTION
WRITEC O,B6 ISSUE ERROR MESSAGE TO TERMINAL
WRITER O,R FORCE WRITE
SA2 RCHC
SX3 X2-ERLIM+1
SX6 X2+B1
PL X3,RCH7 IF INPUT ERROR LIMIT EXCEEDED
SA6 A2 SET RETRY COUNT
EQ RCH REPROMPT FOR CHARGE NUMBER
RCH7 SX0 ERIL * INPUT ERROR LIMIT.*
WRITEC O,X0
WRITER O,R FORCE WRITE
SB6 X0
EQ ABT ABORT
RCHA DATA C*CHARGE NUMBER: "CB"*
RCHB DATA C*PROJECT NUMBER: "CB"*
RCHC CON 0 ERROR RETRY COUNT
VCH SPACE 4,20
** VCH - VALIDATE CHARGE AND PROJECT NUMBERS.
*
* ENTRY (X2) = 0 IF TO VALIDATE DEFAULT CHARGE.
* (CGN) = CHARGE NUMBER IF NOT DEFAULT CHARGE.
* (PRN- PRN+1) = PROJECT NUMBER IF NOT DEFAULT CHARGE.
*
* EXIT TO *EPF* IF NO ERROR.
* (B6) = MESSAGE ADDRESS IF ERROR.
* CHARGE AND PROJECT NUMBERS DISPLAYED IN DAYFILE IF NO
* ERROR.
*
* USES X - ALL.
* A - 1, 2, 3, 4, 5, 6, 7.
* B - 2, 6.
*
* CALLS BAB, CHG, EPF, GDC, SNM.
*
* MACROS MESSAGE.
VCH SUBR ENTRY/EXIT
NZ X2,VCH2 IF NOT TO VALIDATE DEFAULT CHARGE
RJ GDC GET DEFAULT CHARGE AND PROJECT
SA3 UCRN
SA5 UPJ1
SA4 UPJ2
NZ X3,VCH1 IF DEFAULT CHARGE NUMBER PRESENT
SB6 ERDN * DEFAULT CHARGE NULL.*
SA1 SSJ=+AACS CHECK *CCNR* PRIVILEGE
LX1 59-7
PL X1,VCHX IF USER NAME REQUIRES CHARGE COMMAND
MESSAGE B6,,R ISSUE DEFAULT CHARGE MESSAGE
EQ EPF EXIT TO PROCESS PROLOGUES
VCH1 SB6 ERDC * ERROR IN DEFAULT CHARGE.*
ZR X5,VCHX IF DEFAULT PROJECT NOT PRESENT
BX6 X3 SET CHARGE NUMBER
BX7 X5 SET PROJECT NUMBER WORD 1
SA6 CGN
SA7 PRN
BX6 X4 SET PROJECT NUMBER WORD 2
SA6 A7+B1
SX2 B1 SET DEFAULT CHARGE
EQ VCH4 VALIDATE CHARGE
VCH2 SA1 SSJ=+AACS CHECK RESTRICTION TO DEFAULT CHARGE
LX1 59-22
NG X1,VCH3 IF NOT RESTRICTED TO DEFAULT CHARGE
RJ GDC GET DEFAULT CHARGE AND PROJECT
SB6 ERRD * CHARGE RESTRICTED TO DEFAULT.*
SA1 CGN
SA2 UCRN
BX1 X1-X2
NZ X1,VCHX IF NOT DEFAULT CHARGE NUMBER
SA1 PRN
SA3 UPJ1
SA2 A1+B1
SA4 A3+B1
BX1 X1-X3
BX2 X2-X4
NZ X1,VCHX IF NOT DEFAULT PROJECT NUMBER
NZ X2,VCHX IF NOT DEFAULT PROJECT NUMBER
VCH3 SX2 0 SET NOT DEFAULT CHARGE
VCH4 SA3 SSJ=+UIDS VALIDATE CHARGE AND PROJECT NUMBERS
RJ VCN
NZ B6,VCHX IF ERROR
SA2 B5+PPNW READ PROJECT PROLOGUE FILE NAME
SA5 PRST READ PROLOGUE/EPILOGUE STATUS
SB6 ERPC * PROLOGUE AND SHELL CONFLICT.*
MX0 42
MX7 -2
BX6 X0*X2
LX5 59-57
ZR X6,VCH5 IF NO PROJECT PROLOGUE DEFINED
NG X5,VCHX IF PROLOGUE AND SHELL CONFLICT
SA3 B5+PPUW READ PROJECT PROLOGUE USER NAME
SA4 B5+PPPW READ PROJECT PROLOGUE PASSWORD
BX7 -X7*X2
ERRNZ CRPT-CCPT-1 CODE DEPENDS ON VALUE
ERRNZ CAPT-CRPT-1 CODE DEPENDS ON VALUE
SX7 X7+CCPT SET TERMINATION OPTION
BX6 X6+X7
SA6 PPF SET PROJECT PROLOGUE FILE NAME
BX6 X0*X3
BX7 X0*X4
SA6 PPF+1 SET PROJECT PROLOGUE USER NAME
SA7 PPF+2 SET PROJECT PROLOGUE PASSWORD
VCH5 SA2 B5+PENW
BX2 X0*X2
ZR X2,VCH6 IF NO PROJECT EPILOGUE DEFINED
SB6 EREC * EPILOGUE AND SHELL CONFLICT.*
NG X5,VCHX IF EPILOGUE AND SHELL CONFLICT
SX1 B1 SET EPILOGUE PENDING FLAG
SX6 B1+B1
LX1 21
BX6 X6+X1
SA6 PRC
VCH6 SA1 CGN SET CHARGE NUMBER
SB5 VCHA SET MESSAGE ADDRESS
SB2 1R?
RJ SNM
SA1 PRN SET PROJECT NUMBER WORD 1
SB2 1R!
RJ SNM
SA1 PRN+1 SET PROJECT NUMBER WORD 2
SB2 1R+
RJ SNM
MESSAGE VCHA,,R ISSUE CHARGE MESSAGE
VCH7 RJ BAB BEGIN ACCOUNT BLOCK
EQ EPF PROCESS PROLOGUES
VCHA DATA 50H CHARGE = ??????????, PROJECT = !!!!!!!!!!++++++++
DATA 3L++.
TITLE SUBROUTINES.
ABT SPACE 4,15
** ABT - ISSUE ERROR MESSAGE AND ABORT.
*
* ENTRY (B6) = ERROR MESSAGE ADDRESS.
* (TJEF) = TERMINATE JOB FLAG.
*
* EXIT TO *TRJ* IF TO TERMINATE ON ERROR.
*
* USES X - 1, 2.
* A - 1, 2.
*
* CALLS TER, TRJ.
*
* MACROS ABORT, MESSAGE.
ABT BSS 0 ENTRY
MESSAGE B6,,R ISSUE ERROR MESSAGE
SA1 TJEF
SA2 TRIF
NZ X1,TRJ IF TERMINATE ON ERROR
ZR X2,ABT1 IF NO TERMINAL INTERACTION
MESSAGE =0,1,R CLEAR *MS1W* ERROR MESSAGE
ABT1 RJ TER PERFORM TERMINATION
ABORT
END SPACE 4,15
** END - NORMAL END.
*
* ENTRY (EXER) = EXTERNAL ERROR CODE.
*
* EXIT TO *RSE* IF EXTERNAL ERROR.
*
* USES X - 1.
* A - 1.
*
* CALLS RSE, TER.
*
* MACROS ENDRUN.
END BSS 0 ENTRY
SA1 EXER
NZ X1,RSE IF EXTERNAL ERROR
RJ TER PERFORM TERMINATION
ENDRUN
EXP SPACE 4,15
** EXP - EXECUTE PROLOGUE OR EPILOGUE.
*
* ENTRY (B2) = ADDRESS OF PROLOGUE OR EPILOGUE CALL.
* (EXER) = EXTERNAL ERROR CODE.
*
* EXIT TO *RSE* IF EXTERNAL ERROR.
*
* USES X - 1.
* A - 1.
*
* CALLS RSE, TER.
*
* MACROS MEMORY, SYSTEM, WRITER.
EXP BSS 0 ENTRY
WRITER F,R
SA1 EXER
NZ X1,RSE IF EXTERNAL ERROR
RJ TER PERFORM TERMINATION
MEMORY CM,,R,CCFL*100B REQUEST STORAGE FOR *CCL* LOAD
SA1 =C*ZZZZZG1.* SET PROCEDURE CALL
BX6 X1
SA6 CCDR
REPRIEVE RPB,SETUP,0 CLEAR REPRIEVE PROCESSING
SYSTEM LDR,R,EXPA LOAD *CCL* *BEGIN* PROCESSOR
EXPA VFD 42/5LBEGIN,18/0 *LDR* CALL BLOCK
VFD 6/0,6/0,2/0,3/0,1/1,1/1,4/0,1/0,18/0,18/0
ICA SPACE 4,10
** ICA - ISSUE COMMAND TO DAYFILE AND ABORT.
*
* ENTRY (B6) = ERROR MESSAGE ADDRESS.
*
* EXIT TO *ABT*.
*
* MACROS MESSAGE.
ICA BSS 0 ENTRY
MESSAGE CCDR ISSUE COMMAND TO DAYFILE
EQ ABT ABORT
RPV SPACE 4,20
** RPV - PROCESS REPRIEVE.
*
* ENTRY (TRIA) = TERMINAL INTERRUPT ADDRESS IF .NE. 0.
*
* EXIT TO POINT OF INTERRUPT IN INTERRUPT HANDLER MODE IF NO
* TERMINAL INTERRUPT ADDRESS AND NOT USER BREAK.
* TO POINT OF INTERRUPT WITH INTERRUPT ENABLED IF NO
* TERMINAL INTERRUPT ADDRESS AND USER BREAK.
* TO *RSE* IN INTERRUPT HANDLER MODE IF TERMINAL
* INTERRUPT ADDRESS SPECIFIED AND NOT USER BREAK.
* TO INTERRUPT ADDRESS WITH INTERRUPT ENABLED IF ADDRESS
* SPECIFIED AND USER BREAK.
* (EXER) = ERROR CODE IF NOT USER BREAK.
*
* USES X - 0, 1, 2, 3, 6, 7.
* A - 1, 2, 6, 7.
* B - 2.
*
* MACROS REPRIEVE.
RPV BSS 0 ENTRY
SA1 RPB+/COMSRPV/OSEF
SA2 TRIA
MX0 -12
BX6 -X0*X1 ISOLATE ERROR CODE
SB2 X6-TIET
ZR B2,RPV1 IF USER BREAK ONE
SB2 X6-TAET
RPV1 NZ X2,RPV2 IF INTERRUPT ADDRESS SPECIFIED
ZR B2,RPV3 IF USER BREAK
SA6 EXER SET ERROR CODE
REPRIEVE RPB,IRESUME,RPMS RESUME EXECUTION
RPV2 NZ B2,RSE IF NOT USER BREAK
SA1 RPB+/COMSRPV/EXPA
MX0 18
LX0 -6
LX2 36
SX7 B0
BX6 -X0*X1 SET INTERRUPT ADDRESS
BX6 X6+X2
SA6 A1
SA7 RPB+/COMSRPV/ITIO CLEAR TERMINAL INPUT
SA7 RPB+/COMSRPV/PRAR CLEAR PENDING RA+1 REQUEST
SA1 I READ INPUT FET POINTERS
SA2 A1+B1
SX3 B1
LX0 -36
BX6 X1+X3 SET COMPLETE
BX7 X0*X2
SA6 A1 WRITE FIRST
SA7 A2+B1 SET IN = FIRST
SA7 A7+B1 SET OUT = FIRST
SA1 O READ OUTPUT FET POINTERS
SA2 A1+B1
BX6 X1+X3 SET COMPLETE
BX7 X0*X2
SA7 A2+B1 SET IN = FIRST
SA7 A7+B1 SET OUT = FIRST
RPV3 REPRIEVE RPB,RESUME,RPMS RESUME EXECUTION
RSE SPACE 4,10
** RSE - RESET EXTERNAL ERROR.
*
* ENTRY (TJEF) = TERMINATE JOB FLAG.
*
* EXIT ERROR FLAG RESET AND JOB ABORTED.
*
* USES X - 1.
* A - 1.
*
* MACROS REPRIEVE.
RSE BSS 0 ENTRY
SA1 TJEF
NZ X1,TRJ IF TERMINATE ON ERROR
RJ TER PERFORM TERMINATION
REPRIEVE RPB,RESET,0 RESET ERROR FLAG
STI SPACE 4,15
** STI - SET TERMINAL INTERACTION PARAMETERS.
*
* EXIT (TRIF) .NE. 0 IF FILE *INPUT* ASSIGNED TO TERMINAL.
* (ACSF) .NE. 0 IF *INPUT* ASSIGNED TO TERMINAL AND
* *ASCII* CHARACTER SET MODE SET.
* OUTPUT FILE *ZZZZZG0* ASSIGNED TO TERMINAL, NORMAL
* MODE SET, AND PROMPT DISABLED IF *INPUT* ASSIGNED
* TO TERMINAL.
*
* USES X - 1, 2, 7.
* A - 1, 7.
*
* CALLS STF.
*
* MACROS CSET, PROMPT, REQUEST, RETURN, SETFS, TSTATUS.
STI SUBR ENTRY/EXIT
SX2 I CHECK *INPUT* FILE ASSIGNMENT
RJ STF
NZ X6,STIX IF NOT ASSIGNED TO TERMINAL
SX7 1 SET TERMINAL INTERACTION FLAG
SA7 TRIF
RETURN O,R
REQUEST O,U,N ASSIGN TERMINAL OUTPUT FILE
SETFS O,SSST SET SSJ= FILE STATUS
PROMPT OFF DISABLE TERMINAL PROMPT
TSTATUS SBUF GET TERMINAL CHARACTER SET
SA1 SBUF+B1
SX7 B1
LX1 59-2
PL X1,STIX IF NOT *ASCII* MODE
SA7 ACSF SET *ASCII* MODE FLAG
CSET NORMAL CLEAR *ASCII* MODE
EQ STIX EXIT
TER SPACE 4,15
** TER - TERMINATION PROCESSING.
*
* ENTRY (ACSF) .NE. 0 IF CHARACTER SET TO BE RESET.
* (PRCF) = PROLOGUE/EPILOGUE REQUEST FLAGS.
*
* EXIT TERMINAL CHARACTER SET RESET IF NECESSARY.
* PROLOGUE/EPILOGUE CONTROLS MODIFIED IF REQUEST FLAGS
* SET.
*
* USES X - 1.
* A - 1.
*
* MACROS CSET.
TER SUBR ENTRY/EXIT
SA1 ACSF
ZR X1,TER1 IF NOT *ASCII* MODE ON ENTRY
CSET ASCII RESET *ASCII* MODE
TER1 SA1 PRC
SX1 X1
ZR X1,TERX IF NO CONTROLS TO SET
SX1 A1 SET STATUS WORD ADDRESS
SX2 104B SET PROLOGUE/EPILOGUE CONTROLS FUNCTION
RJ CPM=
EQ TERX RETURN
TRJ SPACE 4,10
** TRJ - TERMINATE JOB.
*
* USES X - 1, 2.
*
* CALLS CPM=.
*
* MACROS ENCSF, ENDRUN, RETURN, SETJOB.
TRJ BSS 0 ENTRY
SETJOB TRJA SET JOB TERMINATION
SX1 APN SET APPLICATION NAME
SX2 132B SET LOGOUT FUNCTION
RJ CPM=
RETURN F,R CLEAR COMMANDS
ENCSF F
ENDRUN
TRJA VFD 60/0 SETJOB PARAMETERS
VFD 36/0,12/2RTJ,12/0
SPACE 4,10
* COMMON DECKS.
*CALL COMCCIO
*CALL COMCCPM
*CALL COMCLFM
*CALL COMCPFM
*CALL COMCPOP
*CALL COMCMVE
*CALL COMCRDC
*CALL COMCRDW
*CALL COMCSNM
*CALL COMCSTF
*CALL COMCSYS
*CALL COMCUSB
*CALL COMCWTC
*CALL COMCWTW
SPACE 4,10
* ERROR MESSAGES.
ERDC DATA C* ERROR IN DEFAULT CHARGE.*
ERDN DATA C* DEFAULT CHARGE NULL.*
ERFI DATA C* FORMAT ERROR IN INPUT.*
ERIL DATA C* INPUT ERROR LIMIT.*
EREC DATA C* EPILOGUE AND SHELL CONFLICT.*
ERPC DATA C* PROLOGUE AND SHELL CONFLICT.*
ERRD DATA C* CHARGE RESTRICTED TO DEFAULT.*
USE LITERALS FLUSH OUT LITERALS
LIST X,F
*CALL COMCCHG
LIST *
TITLE BUFFER ALLOCATION.
* BUFFERS.
*
* NOTE - THESE BUFFERS OVERLAY BOTH THE BUFFERS IN *COMCCHG*
* AND THE REMAINING ROUTINES IN *VALEX*.
FBUF BSSN BUFL PROLOGUE/EPILOGUE FILE BUFFER
IBUF BSSN BUFL INPUT FILE BUFFER
OBUF BSSN BUFL OUTPUT FILE BUFFER
SBUF BSSN ARBS SCRATCH BUFFER
ENDBUF BSSN 0 END OF BUFFERS
END BSSN
TITLE OVERLAID SUBROUTINES.
GPR SPACE 4,10
** GPR - GET PROLOGUE/EPILOGUE STATUS.
*
* EXIT (PRST) = PROLOGUE AND EPILOGUE STATUS FLAGS.
*
* USES X - 1, 2.
*
* CALLS CPM=.
GPR SUBR ENTRY/EXIT
SX2 131B SET FUNCTION CODE
SX1 PRST SET STATUS WORD ADDRESS
RJ CPM= GET PROLOGUE/EPILOGUE STATUS
EQ GPRX RETURN
PRS SPACE 4,10
** PRS - PRESET.
*
* MACROS REPRIEVE.
PRS SUBR ENTRY/EXIT
NE B1,B0,PRSX IF PRESET ALREADY PERFORMED
SB1 1
REPRIEVE RPB,SETUP,RPMS SET REPRIEVE PARAMETERS
EQ PRSX RETURN
SCA SPACE 4,15
** SCA - SET COMMAND ARGUMENTS.
*
* ENTRY (A0) = ADDRESS OF ARGUMENT TABLE.
* (B3) = ADDRESS OF SECURE ARGUMENT TABLE IF .GT. 0.
*
* EXIT COMMAND ISSUED TO DAYFILE.
* TO *ABT* IF ARGUMENT ERROR.
*
* USES X - 1, 5, 6.
* A - 5, 6.
* B - 2, 3, 4, 6.
*
* CALLS ABT, ARM, POP, RSP, USB.
*
* MACROS MESSAGE.
SCA SUBR ENTRY/EXIT
SB2 CCDR UNPACK COMMAND
RJ USB
ZR B3,SCA1 IF NO SECURE ARGUMENTS
SA4 A0+ SET ARGUMENT TABLE ADDRESS
SA5 CCDR SET COMMAND ADDRESS
SB6 B3 SET SECURE ARGUMENT TABLE ADDRESS
SB2 B0 SET NO PARAMETERS TO SKIP
RJ RSP REMOVE SECURE PARAMETERS
SCA1 MESSAGE CCDR ISSUE COMMAND TO DAYFILE
SB6 USBB SET STRING BUFFER ADDRESS
RJ POP
NZ X6,SCA2 IF NO LEADING *$* OR */*
RJ POP SKIP KEYWORD
SCA2 SB3 A0 SET ARGUMENT TABLE ADDRESS
SB4 SCAA SET ASSEMBLY ADDRESS
SB2 B0 SET ARGUMENT TABLE LENGTH
SCA3 SA1 A0+B2
SB2 B2+B1 INCREMENT ARGUMENT COUNT
NZ X1,SCA3 IF NOT END OF TABLE
RJ CPA CONVERT POSITIONAL ARGUMENTS
NG B5,SCA4 IF ARGUMENT ERROR
PL X1,SCAX IF NO ARGUMENTS PROCESSED
SX6 B5 SET END OF STRING
SA6 USBC
SB3 A0 SET ARGUMENT TABLE ADDRESS
SB6 SCAA SET BUFFER ADDRESS
RJ ARM PROCESS ARGUMENTS
ZR X1,SCAX IF NO ARGUMENT ERROR
SCA4 SB6 ERAR * ERROR IN ARGUMENTS.*
EQ ABT ABORT
SCAA BSS 87 STRING BUFFER
VUN SPACE 4,15
** VUN - VALIDATE USER NAME.
*
* EXIT TO *ABT* IF ERROR.
* TO *RSE* IF ERROR IN VALIDATION.
*
* USES X - ALL.
* A - 1, 2, 3, 5, 6, 7.
* B - 2, 5, 6.
*
* CALLS CMI, COD, SNM.
*
* MACROS EDATE, GETFLC, MESSAGE, MOVE, VALID.
VUN SUBR ENTRY/EXIT
* VALIDATE USER NAME, PASSWORD, FAMILY NAME.
SA1 UPSW SET SPECIAL USER NAMES FLAG
SX6 10B
BX6 X1+X6
SA6 A1
VALID UNAM
SA2 EXER
SA1 UFAM
SX0 70B
NZ X2,RSE IF ERROR IN VALIDATION
BX0 X0*X1
ZR X0,VUN1 IF NO ERROR CODE RETURNED
SX2 X0-10B
SB6 ERCR * CHARGE COMMAND REQUIRED.*
ZR X2,ABT IF CHARGE COMMAND REQUIRED
SX2 X0-20B
SB6 ERSD * SECONDARY USER COMMANDS DISABLED.*
ZR X2,ABT IF SECONDARY USER COMMANDS DISABLED
SX2 X0-30B
SB6 ERAF * ALTERNATE FAMILY NOT ALLOWED.*
ZR X2,ABT IF ALTERNATE FAMILY NOT ALLOWED
SB6 ERAU * ALTERNATE USER NAME NOT ALLOWED.*
EQ ABT ABORT
VUN1 SX6 1 SET DEFAULT CHARGE PRESENT
SA6 DFCF
* VALIDATE JOB COMMAND PARAMETERS.
LX1 59-0
MX6 -12
NG X1,VUN2 IF NOT FIRST USER COMMAND
SA1 JOPR
LX1 -24
BX1 -X6*X1 JOB ORIGIN TYPE
SX1 X1-SYOT
ZR X1,VUN2 IF SYSTEM ORIGIN
SX6 B1+ SET TERMINATE ON ERROR
SA6 TJEF
* VALIDATE JOB COMMAND CM FIELD LENGTH.
SA1 UALMW GET CM VALIDATION LIMIT
LX1 -18
RJ CMI CONVERT CM VALIDATION LIMIT
BX5 X1 SAVE CM VALIDATION LIMIT
GETFLC ,VUNE GET EM FIELD LENGTH CONTROL WORD
SA3 VUNE
MX0 -12
LX3 36 GET MAXFL (EXTENDED MEMORY)
BX3 -X0*X3
ZR X3,VUN2 IF NO EXTENDED MEMORY FL REQUESTED
NG X5,VUN2 IF CM VALIDATION UNLIMITED
SX2 MCMX/100B
IX6 X5-X2
SB6 EREM * EXTENDED MEMORY MINIMUM CM NOT ...*
NG X6,ABT IF NOT VALIDATED FOR AT LEAST *MCMX*
* MOVE ACCOUNT WORDS TO *SSJ=* AREA.
VUN2 MOVE 3,UALMW,(SSJ=+ALMS)
SA1 UNAM
BX6 X1
SA6 SSJ=+UIDS
* ISSUE ACCOUNTING MESSAGES.
SA5 UFAM
SA1 =4HABUN
SB5 VUNA SET MESSAGE ADDRESS
LX5 59-0
PL X5,VUN3 IF FIRST *USER* COMMAND
SA1 =4HACUN
VUN3 SB2 1R?
RJ SNM SET MESSAGE IDENTIFIER
SA1 UNAM GET USER NAME
MX0 42
BX1 X0*X1
SB2 1R!
RJ SNM SET USER NAME
SA1 UFAM GET FAMILY NAME
BX1 X0*X1
SB2 1R+
RJ SNM SET FAMILY NAME
SA1 UTRN GET TERMINAL NAME
BX1 X0*X1
SB2 1R&
RJ SNM SET TERMINAL NAME
MESSAGE VUNA,5 ISSUE USER MESSAGE TO ACCOUNT FILE
NG X5,VUN4 IF NOT FIRST *USER* COMMAND
SA1 UFAM GET SERVICE CLASS
MX0 -6
AX1 12
SX3 10 SET WORD NUMBER
BX1 -X0*X1
BX4 X1
SX6 X3
IX3 X1/X3
SA2 VUND+X3 READ SERVICE CLASS WORD
IX3 X3*X6
IX4 X4-X3
SX3 6 SET SHIFT COUNT
IX4 X3*X4
SB2 X4
MX0 6
LX2 X2,B2 GET SERVICE CLASS CHARACTER
BX1 X0*X2
SB5 VUNB SET MESSAGE ADDRESS
SB2 1R?
RJ SNM SET SERVICE CLASS
MESSAGE VUNB,5 ISSUE SERVICE CLASS TO ACCOUNT FILE
MESSAGE VUNB,3 ISSUE SERVICE CLASS TO USER DAYFILE
SA1 UCRN
ZR X1,VUN4 IF NO CHARGE NUMBER
SB5 VUNC SET DEFAULT CHARGE MESSAGE ADDRESS
SB2 1R?
RJ SNM SET CHARGE NUMBER
SA1 UPJ1 READ FIRST PART OF PROJECT NUMBER
SB2 1R!
RJ SNM SET PROJECT NUMBER
SA1 UPJ2 READ SECOND PART OF PROJECT NUMBER
SB2 1R+
RJ SNM SET PROJECT NUMBER
MESSAGE VUNC,5 ISSUE DEFAULT CHARGE TO ACCOUNT FILE
* ISSUE PASSWORD EXPIRATION MESSAGE.
VUN4 SA1 UPSW
MX0 -18
LX1 -24
BX1 -X0*X1
ZR X1,VUN6 IF NO PASSWORD EXPIRATION DATE
EDATE X1 CONVERT EXPIRATION DATE
BX1 X6
SB5 VUNF
SB2 1R!
RJ SNM SET EXPIRATION DATE IN MESSAGE
MESSAGE B5,3 * YOUR PASSWORD EXPIRES AT ...*
* SET SYSTEM AND USER PROLOGUE PARAMETERS.
VUN6 NG X5,VUNX IF NOT FIRST *USER* COMMAND
SA1 UPRO
MX7 42
BX7 X1*X7 SET USER PROLOGUE FILE NAME
SA7 UPF
BX1 X1-X7
AX1 12
ZR X1,VUNX IF NO SYSTEM PROLOGUE DEFINED
SX0 X1-SSPMN
RJ COD CONVERT PROLOGUE INDEX
SB2 B2-6
MX6 6
ZR B2,VUN7 IF ONE DIGIT
MX6 12
VUN7 SA1 =4LPROC SET SYSTEM PROLOGUE NAME
SX2 CCPT SET CLEAR CONTROLS TERMINATION OPTION
NG X0,VUN8 IF NO LOGOUT ON SYSTEM PROLOGUE ABORT
SX2 LAPT SET LOGOUT ON ABORT TERMINATION OPTION
VUN8 BX4 X6*X4
LX4 -24
BX7 X1+X4
BX7 X7+X2
SA7 SPF
EQ VUNX RETURN
* ACCOUNT MESSAGE TEMPLATES.
VUNA DATA C*????, !!!!!!!, +++++++, &&&&&&&.*
VUNB DATA C*ABSC, ?.*
VUNC DATA C*ABIC, ??????????, !!!!!!!!!!++++++++++.*
VUND DATA 0H"NMDS" SERVICE CLASS IDENTIFIERS
VUNE CON 0 CM FIELD LENGTH CONTROL WORD
* PASSWORD EXPIRATION WARNING MESSAGE.
VUNF DATA 50H YOUR PASSWORD EXPIRES AT 00.00.00 ON!!!!!!!!!!
CON 0
SPACE 4,10
* OVERLAID COMMON DECKS.
CMI$ SET 1 ASSEMBLE *CMI*
TLI$ SET 1 ASSEMBLE *TLI*
*CALL COMCARM
*CALL COMCCDD
*CALL COMCCOD
*CALL COMCCPA
*CALL COMCCVI
*CALL COMCEDT
*CALL COMCRSP
SPACE 4,10
* OVERLAID ERROR MESSAGES.
ERAF DATA C* ALTERNATE FAMILY NOT ALLOWED.*
ERAR DATA C* ERROR IN ARGUMENTS.*
ERAU DATA C* ALTERNATE USER NAME NOT ALLOWED.*
ERCN DATA C* COMMAND NOT ALLOWED IN PROLOGUE/EPILOGUE.*
ERCR DATA C* CHARGE COMMAND REQUIRED.*
EREF DATA C* PROJECT EPILOGUE NOT FOUND.*
EREM DATA C* EXTENDED MEMORY MINIMUM CM NOT VALIDATED.*
ERIC DATA C* INCORRECT COMMAND.*
ERNU DATA C* NO USER COMMAND EXECUTED.*
ERPF DATA C* ??????? PROLOGUE NOT FOUND.*
ERPL DATA C* ??????? PROLOGUE FILE NOT LOCAL.*
ERSD DATA C* SECONDARY USER COMMANDS DISABLED.*
ERTL DATA C* TL NOT VALIDATED.*
SPACE 4,10
CHGFL MAX *+4,CHGL+4,ENDBUF+4
RFL= EQU CHGFL
ERRNG AFFL*100B-RFL= FIELD LENGTH EXCEEDS MAXIMUM
END