IDENT PFILES,FWA
ABS
SST
ENTRY APPEND
ENTRY ATTACH
ENTRY CHANGE
ENTRY DEFINE
ENTRY DROPDS
ENTRY GET
ENTRY NEW
ENTRY OLD
ENTRY PACKNAM
ENTRY PERMIT
ENTRY PURGE
ENTRY REPLACE
ENTRY SAVE
ENTRY NPC=
ENTRY RFL=
ENTRY SDM=
ENTRY SSM=
SYSCOM B1 DEFINE (B1) = 1
TITLE PFILES - PERMANENT FILE REQUEST PROCESSOR.
*COMMENT PFILES - PERMANENT FILE MANIPULATOR.
COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
SPACE 4
*** PFILES - PERMANENT FILE MANIPULATOR.
* J. L. WARDELL. 70/11/03.
* G. R. GREENFIELD 75/02/07. (MODIFIED)
SPACE 4
*** PFILES PROCESSES PERMANENT FILE REQUESTS FOR A JOB.
* TO ACCESS ANY PERMANENT FILES THE USER MUST HAVE DEFINED A
* USER NAME. THIS IS DONE VIA *LOGIN* (FOR INTERACTIVE)
* OR *USER* COMMAND (FOR BATCH). THE USER NAME IS
* A 7 CHARACTER FIELD WHICH REPRESENTS A SPECIFIC CATALOG IN
* THE PERMANENT FILE SYSTEM. UNLESS SPECIFIED VIA AN OPTIONAL
* USER NAME, ALL PERMANENT FILE REQUESTS WILL BE TO THIS
* CATALOG.
* THOSE USER NAMES WITH ASTERISKS (*) REPRESENT USERS WITH
* AUTOMATIC READ ONLY PERMISSION TO CATALOGS OF OTHER USERS
* IF ALL NON-ASTERISK CHARACTERS OF THE TWO USER NAMES MATCH.
*
* EXAMPLE.
* NORMAL USER NAMES.
* KRONOS1
* KRONOS2
* KRONOS3
*
* A USER NAME WITH AUTOMATIC PERMISSION ON ALL FILES
* IN CATALOGS OF
* KRONOS1
* KRONOS2
* KRONOS3
* WOULD BE KRON***
* OR KRONO**
* OR KRONOS*
* OR *RONOS*
*
*
* TWO METHODS OF ACCESS ARE AVAILABLE TO PERMANENT FILES.
*
* 1. DIRECT ACCESS. FILES CAN BE ACCESSED DIRECTLY VIA
* NORMAL I/O PROCEDURES INCLUDING RANDOM READS AND
* WRITES. FILES OF THIS TYPE ARE ALLOCATED IN LARGE
* BLOCKS (SEE *R* OPTION FOR BLOCK SIZES).
*
* 2. INDIRECT ACCESS. FILES CAN BE ACCESSED INDIRECTLY BY
* USING A WORKING COPY OF THE PERMANENT FILE. THIS COPY
* CAN BE GENERATED VIA THE *GET* COMMAND. IF THE USER
* DESIRES THE WORKING COPY TO REMAIN PERMANENT A SPECIFIC
* PERMANENT FILE REQUEST MUST BE MADE AFTER THE FILE
* HAS BEEN ALTERED (SEE SAVE OR REPLACE COMMAND).
* FILES OF THIS TYPE ARE ALLOCATED IN BLOCK SIZES
* OF 64 CM WORDS (640 CHARACTERS).
*
*
* FOR ANY PERMANENT FILE (DIRECT OR INDIRECT) THAT HAS A
* CURRENT COPY ON ALTERNATE STORAGE, THE USER CAN DROP THE
* ASSOCIATED DISK SPACE WITH THE *DROPDS* COMMAND. THIS
* COMMAND WILL ALSO RETURN THE LOCAL FILE IF IT EXISTS.
*
*
*
* PERMANENT FILE COMMAND FORMAT.
*
* THE GENERAL FORMAT FOR A PERMANENT FILE REQUEST IS DESCRIBED
* BELOW. IF SPECIAL OPTIONS ARE DESIRED, THEY MUST FOLLOW ALL
* FILES SPECIFIED AND MUST APPLY TO ALL FILES. THE OPTIONS MUST
* FOLLOW THE /, ARE ORDER-INDEPENDENT, AND ARE INDICATED BY
* THE SPECIFIED KEYWORD.
*
* PFCMD (LFN = PFN / KW1 = OPTION1, . . . , KWN = OPTIONN)
*
* PFCMD
* THE PARTICULAR PERMANENT FILE COMMAND.
* LFN
* THE WORKING FILE NAME USED WHILE ACCESSING
* THE PERMANENT FILE.
* PFN
* THE NAME UNDER WHICH THE FILE IS CATALOGED
* IN THE PERMANENT FILE DIRECTORY. IF THE
* PFN PARAMETER IS NOT PRESENT, LFN IS
* ASSUMED TO BE BE THE PERMANENT FILE NAME.
*
* IN CERTAIN CASES, IF NO LFN IS SPECIFIED, THE USER-S
* PRIMARY FILE IS IMPLIED. THESE ARE DEFAULT CALLS,
* AND OCCUR WHEN THE COMMAND IS *GET*, *PURGE*, *REPLACE*
* OR *SAVE*, AND NO ARGUMENT OR ONE BLANK ARGUMENT IS
* SPECIFIED, I.E. *GET.* OR *SAVE,.*
*
* THE KEYWORDS AND OPTIONS WHICH MAY BE SUPPLIED ARE DESCRIBED
* BELOW:
*
* KEYWORD OPTION DESCRIPTION
*
* UN= USERNAM USER NAME FOR THE FILE. THIS
* PARAMETER IS NECESSARY ONLY IF THE
* PERMANENT FILE INVOLVED RESIDES IN ANOTHER
* USERS CATALOG. TO BE ABLE TO ACCESS OTHER
* FILE CATALOGS, THE USER MUST BE GRANTED
* EXPLICIT PERMISSION (SEE PERMIT COMMAND).
* THE FILE MUST BE A SEMIPRIVATE OR LIBRARY
* FILE, OR THE USER MUST HAVE AUTOMATIC
* PERMISSION (REFER TO THE PREVIOUS
* DESCRIPTION OF USER NAMES).
*
* PW= PASSWRD THE USER HAS THE OPTION OF SPECIFYING A
* SEVEN CHARACTER PASSWORD FOR A FILE. THIS
* PASSWORD MUST BE SPECIFIED WHENEVER
* ALTERNATE USERS ACCESS THE FILE.
*
* PW SPECIFIES USER DESIRES SECURE ENTRY OF
* PASSWORD.
*
* XD= YYMMDD OPTIONAL PASSWORD/PERMIT EXPIRATION DATE
* FOR THE FILE. YYMMDD MUST NOT BE BEFORE
* THE CURRENT DATE. *XD* CANNOT BE
* SPECIFIED TOGETHER WITH *XT*. ON A *SAVE*
* OR *DEFINE*, *XD* CANNOT BE SPECIFIED
* WITHOUT *PW*.
*
* XT= NNNN OPTIONAL PASSWORD/PERMIT EXPIRATION TERM
* WHERE NNNN IS THE NUMBER OF DAYS THAT IS
* ADDED TO THE CURENT DATE AND THEN USED AS
* THE PASSWORD/PERMIT EXPIRATION DATE.
* VALUES MAY RANGE FROM 0 TO 4095 (OR *),
* WHERE 0 SETS THE PASSWORD AS IMMEDIATELY
* EXPIRED, AND 4095 (OR *) IS USED TO SET A
* NON-EXPIRING PASSWORD/PERMIT. *XT* CAN
* NOT BE SPECIFIED TOGETHER WITH *XD*. ON
* A *SAVE* OR *DEFINE*, *XD* CANNOT BE
* SPECIFIED WITHOUT *PW*.
*
* CT= PERMANENT FILE CATEGORY. PERMANENT FILES
* MAY FALL INTO THREE CATEGORIES WHICH
* CONTROL THE METHOD OF ACCESS. THIS
* PARAMETER MUST BE SPECIFIED WHEN THE FILE
* IS SAVED OR DEFINED.
* P - FILES AVAILABLE FOR ACCESS ONLY BY THE
* PRIVATE ORIGINATING USER OR TO THOSE EXPLICITLY
* PR GRANTED PERMISSION. (SEE PERMIT COMMAND.)
*
* S - FILES AVAILABLE FOR ACCESS BY ALL USERS
* SPRIV KNOWING THE FILE NAME, PASSWORD AND USER
* NUMBER. ACCESSES FOR FILES OF THIS
* CATEGORY ARE RECORDED FOR THE ORIGINATOR
* OF THE FILE IN THE PERMIT ENTRIES OF
* THE FILE.
* L - FILES AVAILABLE FOR ACCESS BY ALL USERS
* LIBRARY KNOWING THE FILE NAME, PASSWORD, AND USER
* PUBLIC NUMBER. ACCESSES FOR FILES OF THIS TYPE
* PU ARE NOT RECORDED FOR THE ORIGINATOR OF THE
* FILE.
*
* M= ACCESS MODE (PERMISSION LEVEL)
* W - WRITE, MODIFY, UPDATE, APPEND, READ,
* WRITE EXECUTE AND/OR PURGE
* R - READ AND/OR EXECUTE
* READ
* E - EXECUTE ONLY
* EXECUTE
* A - APPEND ONLY (INDIRECT FILES).
* APPEND APPEND, READ AND EXECUTE (DIRECT FILES).
* N - REMOVE PREVIOUS PERMISSION
* NULL
* M - MODIFY, UPDATE, APPEND, READ AND EXECUTE.
* MODIFY
* RM - READ/ALLOW MODIFY, READ/ALLOW UPDATE,
* READMD READ/ALLOW APPEND, READ AND EXECUTE.
* RA - READ/ALLOW APPEND, READ AND EXECUTE.
* READAP
* U - UPDATE, READ AND EXECUTE.
* UPDATE
* RU - READ/ALLOW UPDATE, READ AND EXECUTE.
* READUP
*
* AL= LEVEL OPTIONAL SECURITY ACCESS LEVEL THAT THE
* FILE IS TO BE CREATED WITH. ONE- TO
* SEVEN-CHARACTER MNEMONIC. IF *AL* IS
* NOT SPECIFIED, THE CURRENT JOB ACCESS
* LEVEL WILL BE USED.
*
* SS= FILE SUBSYSTEM.
* IF *SS* IS OMITTED, NO SUBSYSTEM IS USED
* EXCEPT IN THE CASE OF A *SAVE* OF THE
* PRIMARY FILE. IF *SS* IS USED ALONE, THE
* CURRENT SUBSYSTEM IS FORCED ON ALL FILES
* AFFECTED. IF *SS* IS EQUIVALENCED, THE
* SPECIFIED SUBSYSTEM IS FORCED ON ALL
* FILES AFFECTED. A THREE-CHARACTER
* ABBREVIATION MAY BE USED FOR
* THE SUBSYSTEM NAME.
*
* BR = BACKUP REQUIREMENT (PFDUMP).
* N - NO BACKUP REQUIRED.
* Y - BACKUP ALWAYS REQUIRED.
* MD - (MEDIA DEPENDENT) BACKUP REQUIRED IF FILE
* RESIDES ON DISK, BUT NOT IF FILE
* RESIDES ON MSF.
*
* PR = PREFERRED RESIDENCE (TYPE OF DEVICE).
* L - FILE LOCKED TO DISK (VALIDATION REQUIRED).
* D - DISK RESIDENCE PREFERRED.
* M - CARTRIDGE ALTERNATE STORAGE RESIDENCE
* PREFERRED.
* N - NO PREFERENCE.
* T - TAPE ALTERNATE STORAGE RESIDENCE
* PREFERRED.
*
* R= SPECIFIES TYPE OF DEVICE ON WHICH THE
* PERMANENT FILE RESIDES OR IS TO RESIDE.
* IF NOT REQUIRED FOR THE REQUESTED
* OPERATION, IT IS IGNORED. THIS
* PARAMETER MAY ALSO HAVE BEEN SPECIFIED
* ON A PREVIOUS *PACKNAM* COMMAND.
* IF *R* HAS NOT BEEN SPECIFIED IN
* EITHER FASHION, A SYSTEM DEFAULT (SEE
* *COMSPFM*) WILL BE USED FOR AUXILIARY
* PACK REQUESTS.
*
* DEVICE PRUS/BLOCK CHARS/BLOCK
*
* DE EXTENDED MEMORY 16 10240
* DI 844-21 PACK GROUP 107*N 68480*N
* DIN N = UNIT COUNT
* (1-8,BLANK=1)
* DJ 844-41 PACK GROUP 227*N 145280*N
* DJN N = UNIT COUNT
* (1-8,BLANK=1)
* DK 844-21 FULL TRACK 112*N 71680*N
* DKN N = UNIT COUNT
* (N=1-8,BLANK=1)
* DL 844-4X FULL TRACK 227*N 145280*N
* DLN N = UNIT COUNT
* (N=1-8,BLANK=1)
* DM 885 PACK GROUP 640*N 409600*N
* DMN N = UNIT COUNT
* (1-3,BLANK=1)
* DP EXTENDED MEMORY 16 10240
* DQ 885 FULL TRACK 640*N 409600*N
* DQN N = UNIT COUNT
* (1-3,BLANK=1)
* DV 819 SINGLE DENSITY 620 396800
* DW 819 DOUBLE DENSITY 1240 793600
*
* PN= PACK NAME. UNIQUE SEVEN CHARACTER
* NAME ASSOCIATED WITH A REMOVABLE
* DEVICE. USER CAN SPECIFY THE PACK NAME
* OF THE DEVICE HE WISHES THE PERMANENT
* FILE REQUEST TO GO TO.
*
* NA NO ABORT OPTION. IF SET PROGRAM WILL NOT
* ABORT. IF FILE IS BUSY (ATTACH ONLY)
* THE JOB WILL BE SUSPENDED TILL FILE IS
* AVAILABLE. FOR ALL OTHER CONDITIONS,
* THE ERROR MESSAGE WILL BE ISSUED AND
* THE PROGRAM WILL CONTINUE. *NA* CANNOT BE
* SPECIFIED TOGETHER WITH *WB*.
*
* WB WAIT BUSY OPTION. IF SET, PROGRAM WILL
* WAIT FOR BUSY FILES AND PACK MOUNTS, BUT
* ALL OTHER ERRORS WILL CAUSE ABORTS. *WB*
* CANNOT BE SPECIFIED TOGETHER WITH *NA*.
*
* RT REAL-TIME OPTION. IF SET, PROGRAM WILL
* CONTINUE PROCESSING AFTER A STAGE HAS
* BEEN INITIATED FOR A NON-DISK RESIDENT
* FILE, OR IF A PF UTILITY IS ACTIVE.
* IF NOT SET, PROGRAM WILL WAIT
* UNTIL STAGE IS COMPLETE OR PF UTILITY
* IS NO LONGER ACTIVE, AND FILE
* IS AVAILABLE.
*
* CE CLEAR ERROR STATUS IN THE FILES
* CATALOG ENTRY. THIS OPTION IS ONLY
* PROCESSED BY *CHANGE*, AND CANNOT BE
* SPECIFIED TOGETHER WITH THE *CE* OPTION.
*
* CP RESET THE CHARGE AND PROJECT NUMBERS IN
* THE FILE-S CATALOG ENTRY TO THE CURRENT
* ACTIVE CHARGE AND PROJECT NUMBERS. THIS
* OPTION IS ONLY PROCESSED BY *CHANGE*, AND
* CANNOT BE SPECIFIED TOGETHER WITH THE *CP*
* PARAMETER.
*
* S= SPACE DESIRED. THIS SPECIFIES SPACE
* DESIRED, IN PRUS, FOR ALLOCATION. IF
* SPECIFIED, DEVICE(OF DEVICE TYPE SPECIFIED
* BY *R*) WILL BE ASSIGNED IF THIS MANY
* PRUS ARE AVAILABLE FOR ALLOCATION. NOTE -
* SPACE IS NOT RESERVED BY SPECIFING THIS
* PARAMETER.
*
* ND DO NOT DROP NON-PRIMARY LOCAL FILES AFTER
* PROCESSING FUNCTION.
*
* AC= ALTERNATE CATLIST PERMISSION.
* N - ALTERNATE USERS ARE NOT PERMITTED TO
* CATLIST THE FILE.
* Y - ALTERNATE USERS ARE PERMITTED TO CATLIST
* THE FILE.
*
*
* MULTIPLE FILE REQUESTS
*
* UP TO 20 FILES MAY BE ACCESSED WITH A SINGLE CALL BY USING
* THE FOLLOWING COMMAND FORMAT. IF SPECIAL OPTIONS ARE
* SPECIFIED, THEY APPLY TO ALL FILES.
* NOTE - MULTIPLE FILE REQUESTS ARE NOT PERMITTED ON
* *NEW* OR *OLD* FUNCTIONS.
*
* PFCMD (LFNN = PFNN, LFN2, . . ., LFNN = PFNN) / KW1 =
* OPTION1, . . ., KWN = OPTIONN)
SPACE 4,40
*** DAYFILE MESSAGES.
*
*
* * ERROR IN ALTERNATE CATLIST PERMISSION.* = ALTERNATE CATLIST
* PERMISSION SPECIFIED WAS NOT RECOGNIZED.
*
* * ERROR IN ARGUMENT.* = THE COMMAND IS SYNTACTICALLY
* INCORRECT, OR AN INCORRECT PARAMETER WAS ENTERED
* FOR THE COMMAND.
*
* * ERROR IN BACKUP REQUIREMENT.* = BACKUP REQUIREMENT
* SPECIFIED WAS NOT RECOGNIZED.
*
* * ERROR IN EXPIRATION DATE.* = THE VALUE SPECIFIED
* FOR *XD* WAS NOT A VALID DATE, OR THE VALUE
* SPECIFIED FOR *XT* WAS GREATER THAN 4095.
*
* * ERROR IN FILE CATEGORY.* = FILE CATEGORY SPECIFIED WAS
* NOT RECOGNIZED.
*
* * ERROR IN MODE.* = MODE SPECIFIED WAS NOT RECOGNIZED.
*
* * ERROR IN PREFERRED RESIDENCE.* = PREFERRED RESIDENCE
* SPECIFIED WAS NOT RECOGNIZED.
*
* * ERROR IN RESIDENCE.* = RESIDENCE PARAMETER IS INCORRECT.
*
* * ERROR IN SUBSYSTEM.* = SUBSYSTEM SPECIFIED WAS
* NOT RECOGNIZED.
*
* * INCORRECT PASSWORD.* = AN INCORRECT PASSWORD WAS ENCOUNTERD
* UPON SECURE ENTRY.
*
* * NO PRIMARY FILE.* = AN IMPLIED PRIMARY FILE OPERATION
* (DEFAULT CALL) WAS MADE, BUT NO PRIMARY FILE WAS
* FOUND.
*
* * PARAMETERS CE AND CP ARE MUTUALLY EXCLUSIVE.* = THE
* PARAMETERS *CE* AND *CP* CANNOT BE BOTH BE INCLUDED
* ON THE SAME *CHANGE* COMMAND.
*
* * UNKNOWN ACCESS LEVEL NAME.* = THE VALUE SPECIFIED FOR
* THE *AL* PARAMETER WAS NOT VALID. SEE *COMSMLS*
* FOR A LIST OF VALID ACCESS LEVEL NAMES.
*
* NOTE - SEE *PFM* DOCUMENTATION FOR ADDITIONAL ERROR MESSAGES.
SPACE 4,10
*** OPERATOR MESSAGES.
*
*
* NONE.
SPACE 4
*CALL COMCMAC
*CALL COMCCMD
*CALL COMSLFD
*CALL COMSMLS
*CALL COMSMSP
*CALL COMSPFM
*CALL COMSREM
*CALL COMSTCM (230)
SPACE 4
** PROGRAM CONSTANTS.
NFILES EQU 21 MAX NUMBER OF FILES + 1 IN ONE COMMAND
NPC= EQU 0 FORCE OPERATING SYSTEM PARAMETER FORMAT
BUFL EQU NWCE+2 BUFFER LENGTH
SDM= EQU 0 SUPPRESS DAYFILE MESSAGE
SSM= EQU 0 SECURE SYSTEM MEMORY
CCPK EQU 13B PACKNAME COMMAND
CCNW EQU 14B NEW COMMAND
CCOL EQU 15B OLD COMMAND
CCDS EQU 16B DROPDS COMMAND
GFILES EQU 40B NUMBER OF ENTRIES IN GETFNT BUFFER
GLEN EQU GFILES*2 LENGTH OF *GETFNT* BUFFER
* NOTE - SHOULD CONSIDER VALUE OF *RFL=*
PBUFL EQU 100 *PACKNAM* STRING BUFFER LENGTH
TITLE PARAMETER PROCESSING.
** PFILES - PROCESS REQUEST.
ORG 125B
FET SPACE 4
FWA BSS 0 DEFINE LOAD ADDRESS
F BSS 0
FILE FILEB IBUF,BUFL,(FET=CFLM)
.F BSS 0
ORG F+1 SUPPRESS ADDRESS ON *PFM* ERRORS
VFD 13/0,1/1,22/0,6/CFLM-5,18/IBUF
ORG .F
I BSS 0
INPUT FILEB IBUF,BUFL,FET=6
O BSS 0
OUTPUT FILEB PMSG,PMSGL+1,FET=6
ERR SPACE 4,10
** ERR - PROCESS ARGUMENT ERROR.
*
* MACROS ABORT, MESSAGE.
ERR BSS 0 ENTRY
MESSAGE (=C* ERROR IN ARGUMENT.*)
ERR1 ABORT
PFL SPACE 4,10
** PFL - PROCESS PERMANENT FILE REQUEST.
*
* ENTRY (B7) = COMMAND CODE.
*
* USES X - ALL.
* A - 1, 2, 4, 5, 6.
* B - 1, 2, 3, 4, 5, 6, 7.
*
* CALLS ARG, CTJ, ESP, IDF, PAC, PAL, PBR, PCT, PDC, PMD,
* PNA, PPX, PRE, PRT, PSS.
*
* MACROS CONTROL, MESSAGE.
PFL SUBR ENTRY/EXIT
SX6 B7+ SAVE COMMAND CODE
SB1 1
SA6 PFLA
RJ IDF ISSUE DAYFILE MESSAGE
SA1 ACTR ARGUMENT COUNT
SA2 PFLA GET COMMAND CODE
SB4 X1
SB7 X2
SB6 60 SET SHIFT COUNT FOR COMMAND
SB6 B6-B7
RJ PDC PROCESS DEFAULT CALL
ZR B2,PFL7 IF DEFAULT AND PRIMARY FOUND
* PROCESS FILE NAME LIST.
PFL1 SA4 ARGR
MX0 42
SB2 B0 CLEAR FILE COUNT
SX3 PRM17 SET MASK FOR *LFN=PFN* SYNTAX
PFL2 BX6 X0*X4
SX7 X4-1R= CHECK SEPARATOR
SX1 B0 CLEAR PF NAME
ZR X6,ERR IF BLANK NAME
SA6 B2+TSFN SET SYSTEM FILE NAME
NZ X7,PFL3 IF NOT *=*
SB4 B4-B1 DECREMENT ARG. COUNT
SA4 A4+B1 READ NEXT ARG.
ZR B4,ERR IF NO ARG.
BX1 X0*X4
ZR X1,ERR IF BLANK ARG.
SX7 X4-1R=
ZR X7,ERR IF *LFN1=PFN1=*
LX7 X3,B6
PL X7,ERR IF *LFN=PFN* SYNTAX NOT ALLOWED ON COMMAND
PFL3 BX6 X1 SET PF NAME
SA6 B2+TPFN
SX7 B2 SAVE INDEX OF LAST FILE
SA7 PFLB
SB2 B2+B1 ADVANCE FILE COUNT
SB5 B2-NFILES
GT B5,ERR IF TOO MANY FILES
SB3 X4-1R/ CHECK FOR SPECIAL ARG.
SB4 B4-B1 DECREMENT ARG. COUNT
SX6 B0 CLEAR NEXT FILE NAME
SA6 B2+TSFN
SA4 A4+B1 READ NEXT ARG.
EQ B3,PFL4 IF SPECIAL ARG.
NZ B4,PFL2 LOOP FOR NEXT ARG.
EQ PFL7 PROCESS SPECIAL PARAMETERS
* PROCESS SPECIAL ARGUMENTS.
PFL4 SB5 TARG ARGUMENT TABLE
RJ ARG
NZ X1,ERR IF ERROR
* DETERMINE IF PARAMETERS ARE LEGAL FOR COMMAND SPECIFIED.
SB2 TPARL
PFL6 SB2 B2-B1
LT B2,PFL7 IF NO MORE PARAMETERS
SA1 B2+TPAR READ ARGUMENT VALIDATION
SA2 B2+TARG
SA2 X2
ZR X2,PFL6 IF ARGUMENT NOT ENTERED
LX1 X1,B6
NG X1,PFL6 IF PARAMETER ALLOWED
EQ ERR ISSUE ERROR
* PROCESS SECURE PASSWORD ENTRY.
PFL7 SA5 PWD
SB2 X5
SB2 B2-B1
NZ B2,PFL8 IF *PW* NOT ENTERED
MX0 42
BX5 X0*X5
NZ X5,PFL8 IF PASSWORD NOT ENTERED SECURELY
RJ ESP ENTER SECURE PASSWORD
SA6 PWD SET PASSWORD
* PROCESS REMAINING PARAMETERS.
PFL8 MX0 42
RJ PAC PROCESS ALTERNATE CATLIST
RJ PAL PROCESS ACCESS LEVEL
RJ PBR PROCESS BACKUP REQUIREMENT
RJ PCT PROCESS CATEGORY
SA5 MODE PROCESS MODE
RJ PMD
RJ PNA PROCESS *NO ABORT*/*WAIT BUSY* PARAMETERS
RJ PPX PROCESS PASSWORD/PERMIT EXPIRATION DATE
RJ PRE PROCESS PREFERRED RESIDENCE
RJ PRT PROCESS *REAL-TIME* PARAMETER
RJ PSS PROCESS SUBSYSTEM
RJ PRD PROCESS RESIDENCE DEFINITION
EQ PFLX RETURN
PFLA CON 0 COMMAND CODE
PFLB CON 0 INDEX OF LAST FILE NAME
PNC SPACE 4,15
** PNC - PROCESS NEXT COMMAND.
*
* READ AHEAD ON COMMAND FILE, AND PROCESS
* THE NEXT COMMAND IF IT IS A *PFILES* CALL.
*
* EXIT TO FUNCTION PROCESSOR.
*
* USES X - 0, 1, 2, 3, 5, 6.
* A - 1, 2, 5, 6.
* B - 2, 3.
*
* CALLS CTJ.
*
* MACROS CONTROL, ENDRUN, MESSAGE, RECALL.
PNC BSS 0 ENTRY
SA1 JOPR CHECK FOR *DIS* CALL
LX1 59-19
NG X1,PNC4 IF *DIS* CALL
CONTROL CCDR,RSS
SA5 CCDR
ZR X5,PNC4 IF NO COMMAND PENDING
SA1 ACTR READ PROGRAM NAME
SA2 FWA-1 FIRST ENTRY NAME
MX0 42
BX1 X0*X1
PNC1 NG X2,PNC4 IF END OF ENTRY POINT NAMES
BX3 X0*X2
BX6 X3-X1
SB2 X2
SA2 A2-B1
NZ X6,PNC1 IF NO MATCH
CONTROL CCDR ADVANCE COMMAND
SA1 PGNR
SX6 B0+
ZR X1,ERR1 IF COMMAND LIMIT
SB3 PARML CLEAR PARAMETERS
PNC2 SA6 PARM-1+B3
SB3 B3-B1
NZ B3,PNC2 IF MORE PARAMETERS TO CLEAR
RECALL F
SB3 CFLM-CFCN
PNC3 SA6 F+CFCN-1+B3 CLEAR *PFM* FET PARAMETERS
SB3 B3-B1
NZ B3,PNC3 IF MORE WORDS IN FET
SA1 F+1 CLEAR *EP*, *RT* AND *SP* BITS
SX6 61B
LX6 39-0
BX6 -X6*X1
SA6 A1
SA2 F+4 CLEAR *AL* FIELD IN FET
MX0 -6
LX0 36-0
BX6 X0*X2
SA6 A2
JP B2 PROCESS CALL
PNC4 RJ CTJ CHECK FOR *TXOT* JOB
ZR X2,PNC5 IF *TXOT* JOB
MESSAGE (=C*PF REQUEST COMPLETE.*),1
EQ PNC6 END
PNC5 SA1 ERRFLG
NZ X1,PNC6 IF ERROR ENCOUNTERED
MESSAGE ZR,1 CLEAR *MS1W*
PNC6 ENDRUN
SPACE 4
* TABLES.
ZR CON 0 ZERO WORD FOR ARG. DEFAULT
NZ CON 1 NON-ZERO WORD FOR ARG. DEFAULT
CE CON SRCE CLEAR ERROR FUNCTION
CPN CON SRCP RESET CHARGE/PROJECT NUMBERS
CSV DECMIC CCSV-1
CGT DECMIC CCGT-1
CPG DECMIC CCPG-1
CPM DECMIC CCPM-1
CRP DECMIC CCRP-1
CAP DECMIC CCAP-1
CDF DECMIC CCDF-1
CAT DECMIC CCAT-1
CCG DECMIC CCCG-1
CPK DECMIC CCPK-1
CNW DECMIC CCNW-1
COL DECMIC CCOL-1
CDS DECMIC CCDS-1
PRM1 SET 1S"CSV"+1S"CGT"+1S"CPG"+1S"CRP"+1S"CAP"+1S"CDF"+1S"CAT"
,+1S"CCG"+1S"COL" PASSWORD
PRM2 SET 1S"CSV"+1S"CRP"+1S"CDF"+1S"CAT"+1S"CCG" MODE
PRM3 SET 1S"CSV"+1S"CDF"+1S"CCG" FILE CATEGORY
PRM4 SET 1S"CSV"+1S"CGT"+1S"CDF"+1S"CPG"+1S"CPM"+1S"CRP"+1S"CAP"
,+1S"CAT"+1S"CCG"+1S"COL"+1S"CDS" NO ABORT, WAIT BUSY
PRM5 SET 1S"CGT"+1S"CPG"+1S"CRP"+1S"CAP"+1S"CAT"+1S"COL" UN
PRM6 SET 1S"CSV"+1S"CGT"+1S"CPG"+1S"CPM"+1S"CRP"+1S"CAP"+1S"CDF"
,+1S"CAT"+1S"CCG"+1S"CPK"+1S"COL"+1S"CDS" PACKNAME, RESIDENCE
PRM7 SET 1S"CDF" SPACE
PRM8 SET 1S"CNW"+1S"COL" NO DROP
PRM9 SET 1S"CGT"+1S"CSV"+1S"CPG"+1S"CRP" NO ARGUMENTS
PRM10 SET 1S"CCG" CLEAR ERROR STATUS
PRM11 SET 1S"CSV"+1S"CCG" SUBSYSTEM
PRM12 SET 1S"CDF"+1S"CCG"+1S"CSV" BACKUP REQUIREMENT
PRM13 SET 1S"CSV"+1S"CDF"+1S"CCG" PREFERRED RESIDENCE
PRM14 SET 1S"CGT"+1S"CAT"+1S"COL" REAL TIME PARAMETER
PRM15 EQU 1S"CCG"+1S"CDF"+1S"CSV"+1S"CPM" PASSWORD/PERMIT EXP
PRM16 EQU 1S"CDF"+1S"CSV" FILE ACCESS LEVEL
PRM17 EQU 1S"CSV"+1S"CGT"+1S"CPM"+1S"CRP"+1S"CDF"+1S"CAT"+1S"CCG"
,+1S"COL"+1S"CDS" *LFN=PFN* SYNTAX
PRM18 SET 1S"CSV"+1S"CDF"+1S"CCG" ALTERNATE CATLIST PERMISSION
PRM19 SET 1S"CCG" RESET CHARGE/PROJECT NUMBERS
* NOTE - ENTRIES IN THE NEXT TWO TABLES MUST BE IN
* THE SAME ORDER IN EACH TABLE.
* TABLE OF LEGAL PARAMETERS FOR COMMANDS.
TPAR BSS 0
VFD 42/0,18/PRM8 NO DROP
VFD 42/0,18/PRM1 PASSWORD
VFD 42/0,18/PRM2 MODE
VFD 42/0,18/PRM3 FILE CATEGORY
VFD 42/0,18/PRM6 RESIDENCE
VFD 42/0,18/PRM5 USER NAME
VFD 42/0,18/PRM6 PACKNAME
VFD 42/0,18/PRM4 NO ABORT
VFD 42/0,18/PRM4 WAIT BUSY
VFD 42/0,18/PRM7 SPACE
VFD 42/0,18/PRM10 CLEAR ERROR STATUS
VFD 42/0,18/PRM11 SUBSYSTEM
VFD 42/0,18/PRM12 BACKUP REQUIREMENT
VFD 42/0,18/PRM13 PREFERRED RESIDENCE
VFD 42/0,18/PRM14 REAL-TIME PARAMETER
VFD 42/0,18/PRM15 PASSWORD/PERMIT EXPIRATION DATE
VFD 42/0,18/PRM15 PASSWORD/PERMIT EXPIRATION TERM
VFD 42/0,18/PRM16 FILE ACCESS LEVEL
VFD 42/0,18/PRM18 ALTERNATE CATLIST PERMISSION
VFD 42/0,18/PRM19 RESET CHARGE/PROJECT NUMBERS
TPARL EQU *-TPAR LIMIT OF PARAMETERS
* TABLE OF KEYWORD/PARAMETER EQUIVALENCES.
TARG BSS 0
ND ARG -NZ,NODROP
PW ARG NZ,PWD
M ARG NZ,MODE
CT ARG NZ,CTG
R ARG ZR,RES
UN ARG ZR,USNM
PN ARG ZR,PKNM,400B
NA ARG -NZ,NABT
WB ARG -NZ,WBUSY
S ARG ZR,SPACE
CE ARG -CE,CLRE
SS ARG NZ,SUBSYS
BR ARG NZ,BREQ
PR ARG NZ,PRES
RT ARG -NZ,RTIME
XD ARG NZ,PXD,400B
XT ARG NZ,PXT,400B
AL ARG ZR,FAL,400B
AC ARG ZR,ALCT
CP ARG -CPN,CPNG
ARG
TARGP BSS 0 ARGUMENT TABLE FOR *PACKNAM* COMMAND
PN ARG ZR,PKNM
R ARG ZR,RES
ARG
TARGPL EQU *-TARGP-1
SPACE 4,10
** PARAMETER AREA.
PARM BSS 0
NODROP CON 0 NO DROP
PWD CON 0 PASSWORD
MODE CON 0 FILE MODE
CTG CON 0 FILE CATEGORY
RES CON 0 RESIDENCE OF FILE
USNM CON 0 USER NAME
PKNM CON 0 PACKNAME
NABT CON 0 NO ABORT OPTION
WBUSY CON 0 WAIT BUSY OPTION
SPACE CON 0 SPACE
CLRE CON 0 CLEAR ERROR STATUS
SUBSYS CON 0 SUBSYSTEM
BREQ CON 0 BACKUP REQUIREMENT
PRES CON 0 PREFERRED RESIDENCE
ALCT CON 0 ALTERNATE CATLIST PERMISSION
RTIME CON 0 REAL-TIME PARAMETER
PXD CON 0 PASSWORD/PERMIT EXPIRATION DATE
PXT CON 0 PASSWORD/PERMIT EXPIRATION TERM
FAL CON 0 FILE ACCESS LEVEL
CPNG CON 0 RESET CHARGE/PROJECT NUMBERS
SREQ CON 0 SPECIAL REQUEST SUBFUNCTION FOR *CHANGE*
ERRFLG CON 0 NONZERO IF *PFM* ERROR DETECTED
PARML EQU *-PARM
* MESSAGE FOR SECURE ENTRY OF PASSWORD.
PMSG DATA 10H"EM" PASSWO
DATA 10HRD:"NL" (((
DATA 10H((((("CR" )
DATA 10H)))))))"CR"
DATA 10H MMMMMMMM
DATA 10H"CR" QQQQQQ
DATA 10HQQ"CR" XXXX
DATA 10HXXXX"CR""CB""EL"
PMSGL EQU *-PMSG
TITLE FUNCTION PROCESSORS.
APPEND SPACE 4,15
*** APPEND (P,F1,F2,F3,...,FN/PW,UN,PN,R,NA,WB)
*
* APPEND FILES F1...FN TO PERMANENT FILE.
* EACH FILE *FN* IS APPENDED AT EOI OF *P*.
*
* P = PERMANENT FILE TO BE APPENDED TO.
* FN = FILES TO BE APPENDED.
* PW = FILE PASSWORD.
* UN = USER NAME.
* PN = PACK NAME.
* R = RESIDENCE.
* NA = NO ABORT IF ERROR ENCOUNTERED.
* WB = WAIT FOR PACK MOUNT.
APPEND BSS 0 ENTRY
SB7 CCAP SET FUNCTION CODE
RJ PFL PROCESS PERMANENT FILE REQUEST
SA1 TSFN SET PERMANENT FILE NAME
BX6 X1
SA6 F+CFPN
SB3 B1 SET TABLE COUNTER
SA5 B3+TSFN
ZR X5,ERR IF NO LOCAL FILE NAME
APP1 SX6 B1 SET LOCAL FILE NAME IN FET
BX6 X6+X5
SA6 F
APPEND F,,USNM,PWD,PKNM,RES
RJ CES CHECK ERROR STATUS
SB3 B3+B1 ADVANCE POINTER
SA5 B3+TSFN
NZ X5,APP1 IF ANOTHER FILE
EQ PNC PROCESS NEXT COMMAND
ATTACH SPACE 4,25
*** ATTACH (F=P/UN,PW,M,PN,R,NA,WB,RT)
*
* ATTACH PERMANENT FILE FOR DIRECT ACCESS USE.
*
* AN ATTEMPT WILL BE MADE FIRST TO ATTACH EACH FILE WITH THE
* *RT* BIT SET IN THE FET. FOR ANY FILE FOR WHICH STAGING WAS
* INITIATED OR A PF UTILITY WAS ACTIVE, ANOTHER *ATTACH* WILL
* BE PERFORMED WITHOUT THE *RT* BIT SET TO ACTUALLY ATTACH
* THE FILE.
*
* F = WORKING FILE NAME
* P = PERMANENT FILE NAME
* UN = USER NAME.
* PW = FILE PASSWORD
* M = MODE OF ACCESS
* PN = PACK NAME.
* R = RESIDENCE.
* NA = NO ABORT IF ERROR ENCOUNTERED. WAIT FOR BUSY
* FILE UNTIL AVAILABLE.
* WB = WAIT FOR PACK MOUNT AND FOR BUSY FILE.
* RT = RETURN CONTROL AFTER STAGE INITIATED OR IF
* PF UTILITY IS ACTIVE. DO NOT
* WAIT FOR FILE TO BE AVAILABLE.
*
* DEFAULT VALUES.
* M = READ.
* PW = 0.
* NA = 0.
ATTACH BSS 0 ENTRY
SB7 CCAT SET FUNCTION CODE
RJ PFL PROCESS PERMANENT FILE REQUEST
SA1 PFLB GET INDEX OF LAST FILE NAME
SB4 X1+
ATT1 SB3 B0+ GET FIRST FILE NAME
ATT2 SA5 B3+TSFN
ZR X5,ATT5 IF PREVIOUS *ATTACH* OF THIS FILE WORKED
SX6 B1 PROCESS FILE NAME
BX6 X5+X6
SA6 F
ATT3 ATTACH F,B3+TPFN,USNM,PWD,MODE,PKNM,RES
RJ CES CHECK ERROR STATUS
ZR X6,ATT6 IF FILE BUSY
ZR X7,ATT4 IF WAITING STAGING, UTILITY OR INTERLOCK
SX6 B0+ CLEAR FILE NAME
SA6 B3+TSFN
EQ ATT5 CHECK FOR MORE FILES
ATT4 SX6 B1+ SET FLAG TO INDICATE RETRY NEEDED
SA6 ATTA
ATT5 SB3 B3+1 CHECK FOR MORE FILES
LE B3,B4,ATT2 IF MORE FILES TO PROCESS
SA1 ATTA
ZR X1,PNC IF NO RETRY NEEDED
BX6 X6-X6 CLEAR FLAG
SA6 A1
SA1 RTIME
NZ X1,PNC IF *RT* PARAMETER SPECIFIED
SA1 F+1 CLEAR REAL-TIME PROCESSING BIT
MX6 1
LX6 43-59
BX6 X1-X6
SA6 A1
EQ ATT1 RETRY WITH *RT* CLEARED
ATT6 ROLLOUT ZR ROLL OUT UNTIL FILE AVAILABLE
EQ ATT3 RETRY AFTER ROLLED IN
ATTA CON 0 NONZERO IF RETRY WITHOUT *RT* REQUIRED
CHANGE SPACE 4,20
*** CHANGE (N=P/PW,CT,M,BR,PR,SS,PN,R,NA,WB,CE,XT,AC,CP)
*
* CHANGE CATALOG ENTRY FOR PERMANENT FILE.
*
* N = NEW FILE NAME.
* P = OLD PERMANENT FILE NAME.
* PW = FILE PASSWORD.
* CT = FILE CATEGORY.
* M = MODE OF ACCESS ALLOWED FOR FILE.
* BR = BACKUP REQUIREMENT.
* PR = PREFERRED RESIDENCE.
* SS = SUBSYSTEM.
* PN = PACK NAME.
* R = RESIDENCE.
* NA = NO ABORT IF ERROR ENCOUNTERED.
* WB = WAIT FOR PACK MOUNT.
* CE = CLEAR ERROR STATUS.
* XT = PASSWORD EXPIRATION DATE OR TERM.
* AC = ALTERNATE CATLIST PERMISSION.
* CP = RESET CHARGE/PROJECT NUMBERS IN PFC.
CHANGE BSS 0 ENTRY
SB7 CCCG SET FUNCTION CODE
MX6 42 SET PWD DEFAULT TO ALL 7S
SA6 PWD
RJ PFL PROCESS PERMANENT FILE REQUEST
RJ PSR PROCESS SPECIAL REQUEST SUBFUNCTION
SB3 B0
SA5 B3+TSFN
CHG1 SB4 A5
SA1 B3+TPFN
NZ X1,CHG2 IF NAME CHANGE
BX1 X5 SET PERMANENT FILE NAME
SB4 B0 SET NO NEW NAME
CHG2 CHANGE F,X1,B4,PWD,,CTG,MODE,PKNM,RES,,SREQ,SUBSYS,BREQ,PRES,P
,XT,ALCT
RJ CES CHECK ERROR STATUS
SB3 B3+B1
SA5 B3+TSFN
NZ X5,CHG1 IF ANOTHER FILE
EQ PNC PROCESS NEXT COMMAND
DEFINE SPACE 4,30
*** DEFINE (F=P/PW,CT,M,BR,PR,PN,R,NA,WB,XT,AL,AC)
*
* DEFINE PERMANENT FILE FOR DIRECT ACCESS USAGE.
*
* F = WORKING FILE NAME.
* P = PERMANENT FILE NAME.
* PW = FILE PASSWORD
* CT = FILE CATEGORY.
* M = MODE OF ACCESS ALLOWED FOR SEMI-PRIVATE OR LIBRARY
* BR = BACKUP REQUIREMENT.
* PR = PREFERRED RESIDENCE.
* PN = PACK NAME.
* R = DEVICE TYPE FILE IS TO BE ASSIGNED TO.
* S = SPACE REQUIRED ON DEVICE (PRUS-DECIMAL).
* NA = NO ABORT IF ERROR ENCOUNTERED.
* WB = WAIT FOR PACK MOUNT.
* XT = PASSWORD EXPIRATION DATE OR TERM.
* AL = FILE ACCESS LEVEL.
* AC = ALTERNATE CATLIST PERMISSION.
*
* DEFAULT VALUES.
* PW = 0.
* CT = PRIVATE.
* R = 0 (USES MASTER DEVICE OR DEVICE
* FILE CURRENTLY RESIDES ON).
* M = WRITE.
* S = 0.
* NA = 0.
* AC = NO.
DEFINE BSS 0 ENTRY
SB7 CCDF SET FUNCTION CODE
RJ PFL PROCESS PERMANENT FILE REQUEST
SA5 SPACE CONVERT SPACE PARAMETER
ZR X5,DEF1 IF NOT SPECIFIED
SB7 B1 SET DECIMAL DEFAULT
RJ DXB
NZ X4,ERR IF ERROR
SA6 F+CFOU
DEF1 SB3 B0
SA5 B3+TSFN SET SYSTEM FILE NAME
DEF2 SX6 B1 SET STATUS COMPLETE
BX6 X5+X6
SA6 F
DEFINE F,B3+TPFN,PWD,,RES,CTG,MODE,PKNM,,,BREQ,PRES,,PXT,FAL,A
,LCT
RJ CES CHECK ERROR STATUS
SB3 B3+B1 ADVANCE TO NEXT FILE
SA5 B3+TSFN
NZ X5,DEF2 IF ANOTHER FILE TO PROCESS
EQ PNC PROCESS NEXT COMMAND
DROPDS SPACE 4,15
*** DROPDS(F=P/PN,R,NA,WB)
*
* DROP DISK SPACE FOR FILE WITH ALTERNATE STORAGE COPY.
* RETURN LOCAL FILE IF PRESENT.
*
* F = LOCAL FILE NAME.
* P = PERMANENT FILE NAME.
* PN = PACK NAME.
* R = RESIDENCE.
* NA = NO ABORT IF ERROR ENCOUNTERED.
* WB = WAIT FOR PACK MOUNT.
DROPDS BSS 0 ENTRY
SB7 CCDS
RJ PFL PROCESS PERMANENT FILE REQUEST
SB3 B0
SA5 B3+TSFN
DRO1 SX6 B1
BX6 X5+X6
SA6 F
RETURN F,R
SA1 B3+TPFN SET PERMANENT FILE NAME (IF SPECIFIED)
BX6 X1
SA6 X2+CFPN
DROPDS F
RJ CES CHECK ERROR STATUS
SB3 B3+B1 ADVANCE TO NEXT FILE
SA5 B3+TSFN
NZ X5,DRO1 IF ANOTHER FILE TO PROCESS
EQ PNC PROCESS NEXT COMMAND
GET SPACE 4,20
*** GET (F=P/PW,UN,PN,R,RT,NA,WB)
*
* RETRIEVE COPY OF INDIRECT ACCESS PERMANENT FILE.
*
* AN ATTEMPT WILL BE MADE FIRST TO GET EACH FILE WITH THE
* *RT* BIT SET IN THE FET. FOR ANY FILE FOR WHICH STAGING WAS
* INITIATED OR A PF UTILITY WAS ACTIVE, ANOTHER *GET* WILL BE
* PERFORMED WITHOUT THE *RT* BIT SET TO ACTUALLY GET THE FILE.
*
* F = WORKING FILE NAME.
* P = PERMANENT FILE NAME
* PW = FILE PASSWORD
* UN = USER NAME.
* PN = PACK NAME.
* R = RESIDENCE.
* RT = RETURN CONTROL AFTER STAGE INITIATED OR IF
* A PF UTILITY IS ACTIVE. DO NOT
* WAIT FOR FILE TO BE AVAILABLE.
* NA = NO ABORT IF ERROR ENCOUNTERED.
* WB = WAIT FOR PACK MOUNT.
GET BSS 0 ENTRY
SB7 CCGT SET FUNCTION CODE
RJ PFL PROCESS PERMANENT FILE REQUEST
RJ GPN GET PRIMARY FILE NAME
SA1 PFLB GET INDEX OF LAST FILE NAME
SB4 X1+
GET1 SB3 B0+ GET FIRST FILE NAME
GET2 SA5 B3+TSFN SYSTEM FILE NAME
ZR X5,GET6 IF PREVIOUS *GET* OF THIS FILE WORKED
SX6 B1
BX6 X6+X5
SA6 F
SA2 GETTAB+1 CHECK FOR PRIMARY FILE
BX2 X5-X2
NZ X2,GET3 IF NOT PRIMARY FILE
OLD F,B3+TPFN,USNM,PWD,PKNM,RES
EQ GET4 CHECK FOR NEXT FILE
GET3 GET F,B3+TPFN,USNM,PWD,PKNM,RES
GET4 RJ CES CHECK ERROR STATUS
ZR X7,GET5 IF WAITING STAGING, UTILITY OR INTERLOCK
SX6 B0+ CLEAR FILE NAME
SA6 B3+TSFN
EQ GET6 ADVANCE TO NEXT FILE
GET5 SX6 B1+ SET FLAG TO INDICATE THAT RETRY NEEDED
SA6 GETA
GET6 SB3 B3+1 ADVANCE TO NEXT FILE
LE B3,B4,GET2 IF ANOTHER FILE TO PROCESS
SA1 GETA
ZR X1,PNC IF NO RETRY NEEDED
BX6 X6-X6 CLEAR FLAG
SA6 A1
SA1 RTIME
NZ X1,PNC IF *RT* PARAMETER SPECIFIED
SA1 F+1 CLEAR REAL-TIME PROCESSING BIT
MX6 1
LX6 43-59
BX6 X1-X6
SA6 A1
EQ GET1 RETRY WITH *RT* CLEARED
GETA CON 0 NONZERO IF RETRY WITHOUT *RT* REQUIRED
NEW SPACE 4,10
*** NEW (F/ND)
*
* CREATE A NEW PRIMARY FILE. ANY CURRENT WORKING FILE
* NAMED F IS RETURNED, AND A NEW (EMPTY) FILE F CREATED
* AND MADE USER S NEW PRIMARY FILE.
*
* F = NEW PRIMARY FILE NAME.
* ND = IF NOT SPECIFIED, ALL WORKING FILES WILL BE
* RETURNED (EXCEPT PRIMARY).
NEW BSS 0 ENTRY
SB7 CCNW SET FUNCTION CODE
RJ PFL PROCESS PERMANENT FILE REQUEST
SX1 B1 INDICATE FILE NOT BUSY
SA2 TSFN
SA3 A2+B1
NZ X3,ERR IF MORE THAN 1 WORKING FILE SPECIFIED
SA3 TPFN
NZ X3,ERR IF PERMANENT FILE NAME SPECIFIED
BX6 X1+X2
SA6 F
RETURN A6 RETURN EXISTING PRIMARY FILE
PRIMARY X2 CREATE NEW PRIMARY FILE
RJ RNF RETURN NON-PRIMARY FILES
EQ PNC PROCESS NEXT COMMAND
OLD SPACE 4,15
*** OLD (F=P/PW,UN,PN,R,RT,NA,WB,ND)
*
* RETRIEVE COPY OF PERMANENT FILE FOR SYSTEM USAGE.
* INDIRECT ACCESS FILES ONLY.
* FILE F WILL BE MADE USER S NEW PRIMARY FILE.
*
* F = WORKING FILE NAME.
* P = PERMANENT FILE NAME.
* PW = FILE PASSWORD.
* UN = USER NAME.
* PN = PACK NAME.
* R = RESIDENCE.
* RT = RETURN CONTROL AFTER STAGE INITIATED OR IF
* A PF UTILITY IS ACTIVE. DO NOT
* WAIT FOR FILE TO BE AVAILABLE.
* NA = NO ABORT IF ERROR ENCOUNTERED.
* WB = WAIT FOR PACK MOUNT.
* ND = IF NOT SPECIFIED, ALL WORKING FILES WILL BE
* RETURNED (EXCEPT PRIMARY).
OLD BSS 0 ENTRY
SB7 CCOL SET FUNCTION CODE
RJ PFL PROCESS PERMANENT FILE REQUEST
SX1 B1 INDICATE FILE NOT BUSY
SA2 TSFN
SA3 A2+B1
NZ X3,ERR IF MORE THAN 1 WORKING FILE SPECIFIED
BX6 X1+X2
SA6 F
OLD F,TPFN,USNM,PWD,PKNM,RES
RJ CES CHECK ERROR STATUS
RJ RNF RETURN NON-PRIMARY FILES
EQ PNC PROCESS NEXT COMMAND
PACKNAM SPACE 4,10
*** PACKNAM(NAME)
* PACKNAM(NAME,TYPE)
* PACKNAM(NAME,R=TYPE)
* PACKNAM(PN=NAME)
* PACKNAM(PN=NAME,R=TYPE)
*
* SET DEFAULT PACKNAME AND DEVICE TYPE.
*
* NAME = PACK NAME.
* TYPE = DEVICE TYPE.
PACKNAM BSS 0 ENTRY
SB1 1
RJ IDF ISSUE DAYFILE MESSAGE
SB2 CCDR UNPACK COMMAND TO STRING BUFFER
RJ USB
RJ POP SKIP OVER PROGRAM NAME
ZR B6,PAC2 IF NO ARGUMENTS
SB2 TARGPL CONVERT POSITIONAL ARGUMENTS
SB3 TARGP
SB4 PBUF
RJ CPA
NG B5,ERR IF ERRORS IN CONVERSION
PL X1,PAC2 IF NO ARGUMENTS PROCESSED
SX6 B5+ PROCESS ARGUMENTS
SB6 PBUF
SA6 USBC
RJ ARM
NZ X1,ERR IF ARGUMENT ERROR
RJ PRD PROCESS RESIDENCE DEFINITION
SA4 RES VALIDATE DEVICE TYPE
ZR X4,PAC2 IF DEVICE TYPE NOT SPECIFIED
MX0 -6
LX4 18
BX6 -X0*X4
NZ X6,PAC1 IF THREE CHARACTER DEVICE TYPE SPECIFIED
SX6 1R1 ADD *1* TO TWO CHARACTER DEVICE TYPE
BX4 X4+X6
PAC1 SA1 PKNM
ZR X1,PAC2 IF *PN* NOT SPECIFIED
BX6 X1+X4 COMBINE *PN* WITH *R*
SA6 A1
PAC2 PACKNAM PKNM ENTER PACK NAME AND PACK TYPE
EQ PNC PROCESS NEXT COMMAND
PERMIT SPACE 4,20
*** PERMIT (P,UN1=M1,UN2=M2,...,UNN=MN/PN,R,NA,WB,XT)
*
* PERMIT USER TO ACCESS PERMANENT FILE WITH SPECIFIED MODE.
*
* P = PERMANENT FILE NAME.
* UN = USER NAME TO BE PERMITTED.
* M = MODE OF ACCESS PERMITTED.
* W - WRITE, READ, EXECUTE APPEND
* R - READ, EXECUTE.
* E - EXECUTE.
* A - APPEND.
* N - NULL.
* PN = PACK NAME.
* R = RESIDENCE.
* NA = NO ABORT IF ERROR ENCOUNTERED.
* WB = WAIT FOR PACK MOUNT.
* XT = PERMIT EXPIRATION DATE OR TERM.
*
* DEFAULT VALUES.
* M = READ.
PERMIT BSS 0 ENTRY
SB7 CCPM SET FUNCTION CODE
RJ PFL PROCESS PERMANENT FILE REQUEST
SA1 TSFN SET FILE NAME
SA2 TPFN CHECK FOR LOCAL FILE NAME
NZ X2,ERR IF LOCAL FILE SPECIFIED
SB7 CCPM SET PERMIT FUNCTION
SX6 B1
BX6 X6+X1
SA6 F
SB3 B1
SA1 B3+TSFN READ FIRST USER NAME
ZR X1,ERR IF NO USER SPECIFIED
PER1 SA5 B3+TPFN MODE
RJ PMD CONVERT MODE
PERMIT F,,B3+TSFN,MODE,PKNM,RES,,,PXT
RJ CES CHECK ERROR STATUS
SB3 B3+B1 ADVANCE TO NEXT USER
SA1 B3+TSFN
NZ X1,PER1 IF ANOTHER USER TO PROCESS
EQ PNC PROCESS NEXT COMMAND
PURGE SPACE 4,15
*** PURGE (P/UN,PW,PN,R,NA,WB)
*
* PURGE PERMANENT FILE.
*
* P = PERMANENT FILE NAME
* UN = USER NAME.
* (USER MUST HAVE WRITE PERMISSION)
* PW = FILE PASSWORD
* PN = PACK NAME.
* R = RESIDENCE.
* NA = NO ABORT IF ERROR ENCOUNTERED.
* WB = WAIT FOR PACK MOUNT.
PURGE BSS 0 ENTRY
SB7 CCPG SET FUNCTION CODE
RJ PFL PROCESS PERMANENT FILE REQUEST
SB3 B0 PROCESS FILE NAME LIST
SA5 B3+TSFN
PUR1 SX6 B1
BX6 X6+X5
SA6 F
PURGE F,USNM,PWD,PKNM,RES
RJ CES CHECK ERROR STATUS
SB3 B3+B1 ADVANCE TO NEXT FILE
SA5 B3+TSFN
NZ X5,PUR1 IF ANOTHER FILE TO PROCESS
EQ PNC PROCESS NEXT COMMAND
REPLACE SPACE 4,15
*** REPLACE (F=P/PW,M,UN,PN,R,NA,WB)
*
* REPLACE PERMANENT FILE WITH COPY OF WORKING FILE.
* INDIRECT ACCESS FILES ONLY.
*
* F = WORKING FILE NAME.
* P = PERMANENT FILE NAME
* PW = FILE PASSWORD
* M = MODE OF ACCESS (IF FILE DOES NOT ALREADY EXIST).
* UN = USER NAME.
* (USER MUST HAVE WRITE PERMISSION).
* PN = PACK NAME.
* R = RESIDENCE.
* NA = NO ABORT IF ERROR ENCOUNTERED.
* WB = WAIT FOR PACK MOUNT.
REPLACE BSS 0 ENTRY
SB7 CCRP SET FUNCTION CODE
RJ PFL PROCESS PERMANENT FILE REQUEST
SB3 B0
SA5 B3+TSFN SYSTEM FILE NAME
REP1 SX6 B1
BX6 X5+X6
SA6 F
REPLACE F,B3+TPFN,USNM,PWD,,PKNM,RES,,,MODE
RJ CES CHECK ERROR STATUS
SB3 B3+B1 ADVANCE TO NEXT FILE
SA5 B3+TSFN
NZ X5,REP1 IF ANOTHER FILE TO PROCESS
EQ PNC PROCESS NEXT COMMAND
SAVE SPACE 4,25
*** SAVE (F=P/PW,CT,M,BR,SS,PR,PN,R,NA,WB,XT,AL,AC)
*
* SAVE COPY OF WORKING FILE ON PERMANENT FILES.
* IF PRIMARY FILE IS SAVED, ASSOCIATED SUBSYSTEM IS
* SET INTO CATALOG.
* INDIRECT ACCESS FILES ONLY.
*
* F = WORKING FILE NAME.
* P = PERMANENT FILE NAME
* PW = FILE PASSWORD
* CT = FILE CATEGORY
* M = MODE OF ACCESS
* BR = BACKUP REQUIREMENT.
* SS = SUBSYSTEM.
* PN = PACK NAME.
* R = RESIDENCE.
* PR = PREFERRED RESIDENCE.
* NA = NO ABORT IF ERROR ENCOUNTERED.
* WB = WAIT FOR PACK MOUNT.
* XT = PASSWORD EXPIRATION DATE OR TERM.
* AL = FILE ACCESS LEVEL.
* AC = ALTERNATE CATLIST PERMISSION.
*
* DEFAULT VALUES.
* PW = 0.
* CT = PRIVATE.
* M = WRITE.
* NA = 0.
* AC = NO.
SAVE BSS 0 ENTRY
SB7 CCSV SET FUNCTION CODE
RJ PFL PROCESS PERMANENT FILE REQUEST
RJ GPN GET PRIMARY FILE NAME
SB3 B0
SA5 B3+TSFN SYSTEM FILE NAME
SAV1 SX6 B1
BX6 X6+X5
SA6 F
SA1 SUBSYS
NZ X1,SAV2 IF *SS* SPECIFIED
SA1 GETTAB+1 CHECK FOR PRIMARY FILE
BX1 X1-X5
NZ X1,SAV2 IF NOT MATCH
SA2 PSSA GET CURRENT SUBSYSTEM
BX6 X2
SA6 SUBSYS
SAV2 SAVE F,B3+TPFN,PWD,,CTG,MODE,PKNM,RES,,SUBSYS,BREQ,PRES,,PXT
,,FAL,ALCT
RJ CES CHECK ERROR STATUS
SB3 B3+B1 ADVANCE TO NEXT FILE
SA5 B3+TSFN
NZ X5,SAV1 IF ANOTHER FILE TO PROCESS
EQ PNC PROCESS NEXT COMMAND
TITLE SUBROUTINES.
CES SPACE 4,20
** CES - CHECK ERROR STATUS.
*
* ABORT IF *NA* WAS NOT SPECIFIED, AND AN ERROR OTHER THAN
* *FILE BUSY*, *FILE INTERLOCKED*, *STAGE INITIATED* OR
* *PF UTILITY ACTIVE* IS DETECTED.
*
* ENTRY (X2) = FET ADDRESS.
*
* EXIT (X6) = 0 IF *FILE BUSY* ERROR.
* (X7) = 0 IF *STAGE INITIATED*, *PF UTILITY ACTIVE*
* OR *FILE INTERLOCKED*.
* (ERRFLG) .NE. 0 IF ERROR OTHER THAN *FILE BUSY*,
* *STAGE INITIATED*, *PF UTILITY ACTIVE* OR
* *FILE INTERLOCKED*.
*
* USES X - 1, 6, 7.
* A - 1, 6.
*
* MACROS ABORT.
CES SUBR ENTRY/EXIT
MX6 -8 CHECK ERROR STATUS FIELD
SA1 X2
AX1 10
BX1 -X6*X1
SX6 X1-/ERRMSG/FBS
SX7 X1-/ERRMSG/PSI
ZR X1,CESX IF NO ERROR
ZR X6,CESX IF *FILE BUSY* STATUS
ZR X7,CESX IF *STAGE INITIATED* STATUS
SX7 X1-/ERRMSG/PFA
ZR X7,CESX IF *PF UTILITY ACTIVE* STATUS
SX7 X1-/ERRMSG/FIN
ZR X7,CESX IF *FILE INTERLOCKED* STATUS
SA6 ERRFLG SAVE ERROR FLAG
SA1 NABT
NZ X1,CESX IF *NA* SPECIFIED RATHER THAN *WB* OR *RT*
ABORT ABORT (ERROR MESSAGE ISSUED BY *PFM*)
CTJ SPACE 4,9
** CTJ - CHECK FOR *TXOT* JOB.
*
* EXIT (X2) = 0, IF *TXOT* JOB.
*
* USES X - 0, 1.
* A - 1.
CTJ SUBR ENTRY/EXIT
SA1 JOPR FETCH ORIGIN TYPE FROM COMMUNICATION AREA
LX1 -24
MX0 -12
BX1 -X0*X1
SX2 X1-TXOT
EQ CTJX EXIT
CVT SPACE 4,15
** CVT - CONVERT ARGUMENT
*
* ENTRY (B5) = ADDRESS OF TABLE
* (X5) = ARGUMENT
* TABLE OF ARGUMENTS IN FOLLOWING FORMAT.
*T, 42/ARGUMENT,18/VALUE
*
* EXIT (X6) = 0 IF LEGAL ARGUMENT
* (X7) = EQUIVALENT VALUE (RIGHT JUSTIFIED)
*
* CALLS *NONE*
*
* USES X - 0, 2, 4, 5, 6, 7.
* A - 4.
* B - 5.
CVT SUBR ENTRY/EXIT
MX0 42
MX6 1
BX5 X0*X5
CVT1 SA4 B5 READ NEXT TABLE ENTRY
ZR X4,CVTX IF END OF TABLE
SB5 B5+B1 ADVANCE TABLE POINTER
BX2 X0*X4 PICK ARGUMENT
BX7 -X0*X4 PICK EQUIVALENCE
IX6 X2-X5
ZR X6,CVTX IF ARGUMENT FOUND
EQ CVT1 LOOP FOR NEXT TABLE VALUE
ESP SPACE 4,25
** ESP - ENTER SECURE PASSWORD.
*
* THIS SUBROUTINE PROCESSES SECURELY ENTERED PASSWORDS.
* IF OUTPUT FILE IS ASSIGNED TO A TERMINAL THE MESSAGE
* *PASSWORD:* ALONG WITH BLANK OUT CHARACTERS FOR SECURE
* ENTRY OF PASSWORD WILL BE SENT TO THE TERMINAL.
* FILE *INPUT* WILL THEN BE READ FOR THE PASSWORD.
* FOR BATCH JOBS FILE *INPUT* IS READ FOR THE PASSWORD.
*
* ENTRY (PFLA) = COMMAND CODE.
*
* EXIT (X6) = PASSWORD.
* (B7) = COMMAND CODE.
* TO *ABT* IF INCORRECT PASSWORD ENCOUNTERED.
*
* USES X - ALL.
* A - 1, 2, 6, 7.
* B - 2, 3, 4, 5, 6, 7.
*
* CALLS STF.
*
* MACROS CSET, MESSAGE, READSKP, WRITE.
ESP SUBR ENTRY/EXIT
SX2 O SET ADDRESS OF FET
RJ STF CHECK IF OUTPUT ASSIGNED TO TERMINAL
NZ X6,ESP1 IF OUTPUT NOT ASSIGNED TO TERMINAL
SA1 X2+B1 SET BUFFER FULL
SX7 X1
SX6 X1+PMSGL
SA6 A1+B1 SET IN BELOW DATA FOR MESSAGE
SA7 A6+B1 SET OUT = FIRST
WRITE X2,* FORCE WRITE BIT SET
SA1 O
MX0 42
BX2 X0*X1 FILE NAME FOR OUTPUT POINTER
SX1 A1 SET ADDRESS OF FET FOR POINTER
BX6 X1+X2
SA6 ARGR FORCE WRITE BEFORE READ ON ROLLOUT
ESP1 SX2 I SET ADDRESS OF FET
RJ STF CHECK IF INPUT ASSIGNED TO TERMINAL
NZ X6,ESP2 IF INPUT NOT ASSIGNED TO TERMINAL
CSET NORMAL ENSURE TERMINAL IN NORMAL MODE
ESP2 READSKP I,,R READ INPUT FOR PASSWORD
SA1 I+2 DETERMINE NUMBER OF WORDS READ
SA2 A1+B1
IX6 X1-X2
ZR X6,ESP10 IF NO DATA ENTERED (NULL PASSWORD)
SB5 X6
SB3 B0
BX5 X5-X5
BX6 X6-X6
SB4 60
SB7 B0
MX0 -6
ESP3 SA2 IBUF+B3 PICK UP NEXT DATA WORD
SB2 B0+
ESP4 LX2 6
BX1 -X0*X2 PICK UP CHARACTER TO CHECK
NZ X1,ESP5 IF CHARACTER NOT ZERO
NZ X5,ESP10 IF 00 ENCOUNTERED
SX5 B1+ SET FLAG TO INDICATE 0 ENCOUNTERED
EQ ESP9 CHECK FOR MORE CHARACTERS
ESP5 NZ X5,ESP11 IF PREVIOUS CHARACTER = COLON
ESP6 SB6 X1-1R9
GT B6,ESP8 IF NOT ALPHANUMERIC CHARACTER
ESP7 SB4 B4-6
LX7 X1,B4
BX6 X7+X6
SB7 B7+1
SB6 B7-7
GT B6,ESP11 IF PASSWORD .GT. SEVEN CHARACTERS
EQ ESP9 CHECK FOR MORE CHARACTERS
ESP8 SX4 X1-1R*
ZR X4,ESP7 IF CHARACTER = *
SX3 X1-1R
NZ X3,ESP11 IF CHARACTER NOT BLANK
ESP9 SB2 B2+B1
SB6 B2-10
LT B6,ESP4 IF NOT END OF WORD
SB3 B3+B1
SB6 B5-B3
EQ B6,ESP11 IF TOO MUCH DATA ENTERED
EQ ESP3 GET NEXT WORD
ESP10 SA1 I+1
BX7 X1
SA7 A1+B1 SET IN = FIRST FOR INPUT BUFFER
SA1 PFLA RESET (B7) = COMMAND CODE
SB7 X1
SA1 =1L0 CHECK FOR *0*
BX7 X6-X1
NZ X7,ESPX IF *0* NOT SPECIFIED
BX6 X7 SET NULL PASSWORD
EQ ESPX RETURN
ESP11 MESSAGE (=C* INCORRECT PASSWORD.*)
ABORT
GPN SPACE 4,21
** GPN - GET PRIMARY FILE NAME.
* THIS SUBROUTINE IS USED FOR DETERMINING THE NAME OF
* THE USER S PRIMARY FILE- IF ONE EXISTS.
*
* A LFM GETFNT CALL IS MADE, WITH SELECTIVITY OF PRIMARY
* TYPE ONLY, AND CONTROL BITS SET FOR NORMAL TREATMENT
* OF CHECKPOINT FILES AND NO MODIFICATION OF FST ENTRIES.
*
* ENTRY (GPNB) .NE. 0 IMPLIES PRIMARY HAS ALREADY BEEN
* FETCHED BY A DEFAULT CALL.
*
* EXIT IF (GPNB) = 0,
* (GETTAB+1) AND (X6) .NE. 0 IMPLIES PRIMARY EXISTS AND
* CONTAINS NAME (LEFT
* JUSTIFIED WITH ZERO FILL).
* (GETTAB+1) AND (X6) = 0 IMPLIES NO PRIMARY EXISTS.
*
* USES X - 2, 3, 6, 7.
* A - 2, 6, 7.
*
* MACROS GETFNT.
GPN SUBR ENTRY/EXIT
SA2 GPNB
NZ X2,GPNX IF HAVE ALREADY FETCHED PRIMARY, EXIT
BX7 X7-X7 CLEAR BUFFER CONTROL WORD
SA7 GETTAB
SA2 GPNA
BX6 X2
SA6 F+CFPN
GETFNT F
BX6 X6-X6 CLEAR PFM LOCATION FET+CFPN
SA6 F+CFPN
SA2 GETTAB+1
MX3 42 MASK OUT ALL BUT NAME OF PRIMARY
BX6 X2*X3
SA6 A2
EQ GPNX EXIT
* GETFNT CONTROL WORD.
PRIM DECMIC PTFT
PMSK EQU 1S"PRIM"
GPNA VFD 12/1,24/PMSK,6/15B,18/GETTAB
GPNB DATA 0 PRIMARY FETCHED FLAG
IDF SPACE 4,10
** IDF - ISSUE DAYFILE MESSAGE.
*
* ENTRY (CCDR) = COMMAND.
*
* USES X - 4, 5.
* A - 4, 5.
* B - 2, 6.
*
* CALLS CTJ, RSP.
IDF SUBR ENTRY/EXIT
SA4 TARG+1 FWA ARGUMENT TABLE
SB6 TKPR FWA KEYWORD/POSITION TABLE
SA5 CCDR FWA COMMAND BUFFER
SB2 1R/ SKIP TO */*
RJ RSP REMOVE SECURE PARAMETERS FROM COMMAND
MESSAGE CCDR,0,R ISSUE COMMAND TO DAYFILE
EQ IDFX RETURN
TKPR BSS 0 TABLE OF KEYWORDS/POSITIONS TO REMOVE
CON 2LAL ACCESS LEVEL
CON 2LPW PASSWORD
CON 0 END OF TABLE
PAC SPACE 4,15
** PAC - PROCESS ALTERNATE CATLIST PERMISSION.
*
* ENTRY (ALCT) = ALTERNATE CATLIST PERMISSION (DISPLAY CODE).
*
* EXIT (ALCT) = ALTERNATE CATLIST PERMISSION
* (NUMERIC EQUIVALENT).
*
* USES X - 5, 7.
* A - 5, 7.
* B - 5.
*
* CALLS CVT.
*
* MACROS ABORT, MESSAGE.
PAC SUBR ENTRY/EXIT
SA5 ALCT
ZR X5,PACX IF NOT SPECIFIED
SB5 TACP
RJ CVT CONVERT ARGUMENT
SA7 A5
ZR X6,PACX IF LEGAL ARGUMENT
MESSAGE (=C* ERROR IN ALTERNATE CATLIST PERMISSION.*)
ABORT
****
* TABLE OF ALTERNATE CATLIST PERMISSIONS.
TACP BSS 0
VFD 42/0LN,18/ACNO
VFD 42/0LY,18/ACYS
CON 0
****
PAL SPACE 4,10
** PAL - PROCESS ACCESS LEVEL.
*
* EVALUATE IF AN ACCESS LEVEL HAS BEEN SPECIFIED. IF SO,
* SET ACCESS LEVEL VALUE AND *SP* BIT IN THE FET.
*
* ENTRY (FAL) = FILE ACCESS LEVEL.
*
* USES X - 1, 2, 6.
* A - 1, 6.
* B - 2.
*
* CALLS VLC.
*
* MACROS ABORT.
PAL SUBR ENTRY/EXIT
SA1 FAL
ZR X1,PALX IF *AL* NOT SPECIFIED
SB2 B0 SET ACCESS LEVEL FLAG
RJ VLC VALIDATE ACCESS LEVEL MNEMONIC
NG X2,PAL1 IF INCORRECT ACCESS LEVEL
BX6 X2 SET *AL* IN FET
SA6 FAL
SA1 F+B1 SET *SP* BIT IN FET
SX2 B1
LX2 39-0
BX6 X1+X2
SA6 A1
EQ PALX RETURN
PAL1 MESSAGE (=C* UNKNOWN ACCESS LEVEL NAME.*)
ABORT
PBR SPACE 4,20
** PBR - PROCESS BACKUP REQUIREMENT.
*
* ENTRY (BREQ) = BACKUP REQUIREMENT (DISPLAY CODE).
*
* EXIT (BREQ) = BACKUP REQUIREMENT (NUMERIC EQUIVALENT).
*
* USES X - 5.
* A - 5, 7.
* B - 5.
*
* CALLS CVT.
*
* MACROS ABORT, MESSAGE.
PBR SUBR ENTRY/EXIT
SA5 BREQ
ZR X5,PBRX IF NO ARGUMENT SPECIFIED
SB5 TBREQ
RJ CVT CONVERT ARGUMENT TO EQUIVALENT
SA7 A5 SAVE CONVERSION
ZR X6,PBRX IF LEGAL ARGUMENT
MESSAGE (=C* ERROR IN BACKUP REQUIREMENT.*)
ABORT
****
* TABLE OF BACKUP REQUIREMENTS.
TBREQ BSS 0
VFD 42/0LN,18/BRNO BACKUP NOT REQUIRED
VFD 42/0LY,18/BRAL BACKUP ALWAYS REQUIRED
VFD 42/0LMD,18/BRMD BACKUP REQUIRED UNLESS FILE ON MSF
CON 0
****
PCT SPACE 4,15
** PCT - PROCESS FILE CATEGORY.
*
* ENTRY (CTG) = LEFT JUSTIFIED DISPLAY CODED ARGUMENT.
*
* EXIT (CTG) = RIGHT JUSTIFIED EQUIVALENT ARGUMENT.
*
* USES X - 5, 7.
* A - 5, 7.
* B - 5.
*
* CALLS CVT.
*
* MACROS ABORT, MESSAGE.
PCT SUBR ENTRY/EXIT
SA5 CTG
ZR X5,PCTX IF NO ARGUMENT
SB5 TCAT
RJ CVT CONVERT ARGUMENT TO EQUIVALENT
SX7 X7+40B
SA7 A5 SAVE CONVERSION
ZR X6,PCTX IF LEGAL ARGUMENT
MESSAGE (=C* ERROR IN FILE CATEGORY.*)
ABORT
****
* TABLE OF FILE CATEGORIES.
TCAT BSS 0
VFD 42/0LPRIVATE,18/FCPR
VFD 42/0LP,18/FCPR
VFD 42/0LPR,18/FCPR
VFD 42/0LSPRIV,18/FCSP
VFD 42/0LS,18/FCSP
VFD 42/0LLIBRARY,18/FCLI
VFD 42/0LL,18/FCLI
VFD 42/0LPUBLIC,18/FCLI
VFD 42/0LPU,18/FCLI
CON 0
****
PDC SPACE 4,25
** PDC - PROCESS DEFAULT CALL.
*
* DETERMINE IF THE COMMAND IS A DEFAULT CALL.
* THIS IS A *GET*, *PURGE*, *REPLACE*, OR *SAVE*
* WITH NO ARGUMENTS OR ONE BLANK ARGUMENT.
*
* ENTRY (B4) = ARGUMENT COUNT.
* (B6) = SHIFT COUNT FOR COMMAND.
* (B7) = COMMAND CODE.
*
* EXIT (B2) .NE. 0 IF NOT DEFAULT CALL.
* ABORT IF DEFAULT AND NO PRIMARY FILE.
* IF DEFAULT AND PRIMARY FILE FOUND-
* (B2) = 0
* (TSFN) = PRIMARY FILE NAME.
* (GPNB) .NE. 0.
*
* USES X - 1, 2, 6.
* A - 2, 6.
* B - 2.
*
* CALLS GPN.
*
* MACROS ABORT, MESSAGE.
PDC SUBR ENTRY/EXIT
SB2 B1+ SET NO DEFAULT EXIT
GT B4,B1,PDCX IF TOO MANY ARGUMENTS
SX1 PRM9
LX1 X1,B6
PL X1,PDCX IF DEFAULT NOT LEGAL FOR COMMAND
SA2 ARGR
NZ X2,PDCX IF ARGUMENT NOT BLANK
RJ GPN GET PRIMARY FILE NAME
ZR X6,PDC1 IF NO PRIMARY FILE
SA6 GPNB SET PRIMARY FETCHED FLAG
SA6 TSFN SET DEFAULT FILE NAME
SB2 B0 SET DEFAULT EXIT
BX6 X6-X6
SA6 TSFN+1 TERMINATE *TSFN* TABLE
SA6 TPFN
EQ PDCX RETURN
PDC1 MESSAGE (=C* NO PRIMARY FILE.*)
ABORT
PMD SPACE 4,15
** PMD - PROCESS MODE OF FILE.
*
* ENTRY (X5) = ACCESS MODE (DISPLAY CODE).
*
* EXIT (MODE) = ACCESS MODE (NUMERIC EQUIVALENT).
*
* USES X - 5, 7.
* A - 5, 7.
* B - 5.
*
* CALLS CVT.
*
* MACROS ABORT, MESSAGE.
PMD SUBR ENTRY/EXIT
NZ X5,PMD2 IF MODE ENTERED
SX7 PTRD SET DEFAULT MODE (READ MODE)
PMD1 SA7 MODE
EQ PMDX
PMD2 SB5 TMDE
RJ CVT CONVERT ARGUMENT
SX7 X7+40B
ZR X6,PMD1 IF LEGAL ARGUMENT
MESSAGE (=C* ERROR IN MODE.*)
ABORT
****
* TABLE OF FILE MODE EQUIVALENCES.
TMDE BSS 0
VFD 42/0LWRITE,18/PTWR
VFD 42/0LW,18/PTWR
VFD 42/0LREAD,18/PTRD
VFD 42/0LR,18/PTRD
VFD 42/0LEXECUTE,18/PTEX
VFD 42/0LE,18/PTEX
VFD 42/0LAPPEND,18/PTAP
VFD 42/0LA,18/PTAP
VFD 42/0LNULL,18/PTNU
VFD 42/0LN,18/PTNU
VFD 42/0LMODIFY,18/PTMD
VFD 42/0LM,18/PTMD
VFD 42/0LREADMD,18/PTRM
VFD 42/0LRM,18/PTRM
VFD 42/0LREADAP,18/PTRA
VFD 42/0LRA,18/PTRA
VFD 42/0LUPDATE,18/PTUP
VFD 42/0LU,18/PTUP
VFD 42/0LREADUP,18/PTRU
VFD 42/0LRU,18/PTRU
CON 0
****
PNA SPACE 4,10
** PNA - PROCESS *NO ABORT* AND *WAIT BUSY* OPTIONS.
*
* ENTRY (NABT) .NE. 0 IF *NO ABORT* SPECIFIED.
* (WBUSY) .NE. 0 IF *WAIT BUSY* REQUESTED.
*
* EXIT ERROR PROCESSING BIT SET IF REQUIRED.
* TO *ERR* IF BOTH *NA* AND *WB* SPECIFIED.
*
* USES X - 1, 2, 6.
* A - 1, 2, 6.
PNA SUBR ENTRY/EXIT
SA1 NABT
SA2 WBUSY
IX1 X1+X2
ZR X1,PNAX IF NEITHER *NA* OR *WB* SPECIFIED
SX1 X1-2
ZR X1,ERR IF BOTH *NA* AND *WB* SPECIFIED
SA1 F+1 SET ERROR PROCESSING BIT
SX6 B1
LX6 44
BX6 X1+X6
SA6 A1
EQ PNAX RETURN
PPX SPACE 4,20
** PPX - PROCESS PASSWORD/PERMIT EXPIRATION DATE/TERM.
*
* ENTRY (B7) = (PFLA) = COMMAND CODE.
* (PXD) = EXPIRATION DATE (DISPLAY CODE).
* (PXT) = EXPIRATION TERM (DISPLAY CODE).
*
* EXIT (B7) = COMMAND CODE.
* (PXT) = NUMERIC EXPIRATION DATE/TERM.
* TO *ERR* IF BOTH *XD* AND *XT* SPECIFIED,
* OR IF ONE IS SPECIFIED ON A *SAVE OR *DEFINE*
* WITHOUT *PW*.
*
* USES X - 0, 1, 2, 3, 5, 6.
* A - 1, 2, 3, 6.
* B - 2, 7.
*
* CALLS DXB, VDT.
*
* MACROS ABORT, MESSAGE, PDATE.
PPX6 SA6 PXT SAVE *XT*
SA1 PFLA RESTORE COMMAND CODE
SB7 X1
PPX SUBR ENTRY/EXIT
SA1 PXT
SA2 PXD
SB2 X1
SB2 X2+B2
ZR B2,PPXX IF NEITHER *XD* OR *XT* SPECIFIED
NE B2,B1,ERR IF BOTH *XD* AND *XT* SPECIFIED
SB2 B7-CCCG
ZR B2,PPX1 IF *CHANGE* COMMAND
SB2 B7-CCPM
ZR B2,PPX1 IF *PERMIT* COMMAND
SA3 PWD
ZR X3,ERR IF *PW* NOT ENTERED
PPX1 MX0 42
ZR X2,PPX2 IF *XT* SPECIFIED RATHER THAN *XD*
* PROCESS EXPIRATION DATE.
BX1 X0*X2
SX2 B0
BX3 X1
LX3 -54
SX3 X3-1R*
ZR X3,PPX2.1 IF NON-EXPIRING PASSWORD/PERMIT REQUESTED
RJ VDT VERIFY DATE SPECIFIED
NG X1,PPX5 IF DATE ALREADY OCCURRED
NG X6,PPX5 IF CONVERSION ERROR
EQ PPX6 SAVE EXPIRATION DATE
* PROCESS EXPIRATION TERM.
PPX2 BX1 X0*X1
BX5 X1
LX1 -54
SX2 X1-1R* CHECK FOR *XT* = ASTERISK
NZ X2,PPX3 IF NOT NON-EXPIRING
PPX2.1 SX6 7777B
EQ PPX6 STORE NON-EXPIRING TERM
PPX3 SX2 X1-1R0 CHECK FOR *XT* = CHARACTER ZERO
NZ X2,PPX4 IF NOT IMMEDIATELY EXPIRING
PDATE PPXA SET *XT* = CURRENT DATE
SA2 PPXA
AX2 18
BX6 X2
EQ PPX6 SAVE CURRENT DATE
PPX4 ZR X5,PPX5 IF NULL TERM SPECIFIED
SB7 1 CONVERT DECIMAL NUMBER
RJ DXB CONVERT DISPLAY CODE TO BINARY NUMBERS
NZ X4,PPX5 IF CONVERSION ERROR
SB2 X6-7777B
LE B2,B0,PPX6 IF TERM DOES NOT EXCEED MAXIMUM
PPX5 MESSAGE (=C* ERROR IN EXPIRATION DATE.*)
ABORT
PPXA DATA 0
PRD SPACE 4,10
** PRD - PROCESS RESIDENCE DEFINITION.
*
* ENTRY (RES) = RESIDENCE OF FILE.
*
* USES X - 0, 1, 2, 3.
* A - 2, 3.
*
* MACROS ABORT, MESSAGE.
PRD SUBR ENTRY/EXIT
SA3 RES
ZR X3,PRDX IF RESIDENCE NOT DEFINED
MX0 12
BX1 X0*X3
MX2 -6
LX3 18
BX2 -X2*X3
BX0 X0*X3
NZ X0,PRD3 IF RESIDENCE ENTRY TOO LONG
ZR X2,PRD1 IF *N* NOT DEFINED
SX3 X2-1R1
SX2 X2-1R9
NG X3,PRD3 IF *N* .LT. 1
PL X2,PRD3 IF *N* .GT. 8
PRD1 SA2 TDVM-1
PRD2 SA2 A2+B1
BX3 X1-X2
ZR X3,PRDX IF MATCH ON DEVICE
NZ X2,PRD2 IF NOT END OF TABLE
PRD3 MESSAGE PRDA * ERROR IN RESIDENCE.*
ABORT
PRDA DATA C* ERROR IN RESIDENCE.*
TDVM SPACE 4,10
** TDVM - TABLE OF DEVICE MNEMONICS.
*
*T TDVM 12/MN, 48/0
*
* MN = DEVICE MNEMONIC.
** TBLM - DEFINE MACRO TO PRODUCE *TDVM* TABLE.
PURGMAC TBLM
TBLM MACRO EQ
VFD 12/2R_EQ,48/0
ENDM
LIST G
TDVM TBL "MSEQ"
CON 0 END OF TABLE
LIST -G
PRE SPACE 4,20
** PRE - PROCESS PREFERRED RESIDENCE.
*
* ENTRY (PRES) = PREFERRED RESIDENCE (DISPLAY CODE).
*
* EXIT (PRES) = PREFERRED RESIDENCE (NUMERIC EQUIVALENT).
*
* USES X - 5.
* A - 5, 7.
* B - 5.
*
* CALLS CVT.
*
* MACROS ABORT, MESSAGE.
PRE SUBR ENTRY/EXIT
SA5 PRES
ZR X5,PREX IF NO ARGUMENT SPECIFIED
SB5 TPRES
RJ CVT CONVERT ARGUMENT TO EQUIVALENT
SA7 A5 SAVE CONVERSION
ZR X6,PREX IF LEGAL ARGUMENT
MESSAGE (=C*ERROR IN PREFERRED RESIDENCE.*)
ABORT
****
* TABLE OF PREFERRED RESIDENCES.
TPRES BSS 0
VFD 42/0LL,18/RSLK
VFD 42/0LD,18/RSDS
VFD 42/0LM,18/RSMS
VFD 42/0LN,18/RSNP
VFD 42/0LT,18/RSTP
CON 0
****
PRT SPACE 4,10
** PRT - PROCESS *RT* PARAMETER.
*
* ENTRY (RTIME) = 0 IF *RT* NOT SPECIFIED.
* (PFLA) = COMMAND CODE.
* (PFLB) = NUMBER OF FILES SPECIFIED - 1.
*
* EXIT *RT* BIT SET IN FET IF REQUESTED, OR IF MORE THAN ONE
* FILE SPECIFIED ON AN *ATTACH* OR *GET* COMMAND.
*
* USES X - 1, 6.
* A - 1, 6.
PRT SUBR ENTRY/EXIT
SA1 RTIME
NZ X1,PRT2 IF *RT* SPECIFIED
SA1 PFLA
SX6 X1-CCAT
ZR X6,PRT1 IF *ATTACH* COMMAND
SX6 X1-CCGT
NZ X6,PRTX IF NOT *GET* COMMAND
PRT1 SA1 PFLB
ZR X1,PRTX IF ONLY ONE FILE SPECIFIED
PRT2 SA1 F+1 SET REAL-TIME PROCESSING BIT
MX6 1
LX6 43-59
BX6 X1+X6
SA6 A1
EQ PRTX RETURN
PSR SPACE 4,10
** PSR - PROCESS SPECIAL REQUEST SUBFUNCTION.
*
* EXIT *SREQ* SET TO *CE* OR *CP* IF EITHER IS PRESENT.
*
* USES A - 1, 2, 6.
* X - 1, 2, 6.
*
* MACROS ABORT, MESSAGE.
PSR SUBR ENTRY/EXIT
SA1 CLRE ENSURE *CE* AND *CP* NOT BOTH SPECIFIED
ZR X1,PSR1 IF *CE* PARAMETER NOT PRESENT
SA2 CPNG GET *CP* PARAMETER
BX6 X1
ZR X2,PSR2 IF *CP* PARAMETER NOT PRESENT
MESSAGE (=C* PARAMETERS CE AND CP ARE MUTUALLY EXCLUSIVE.*)
ABORT
PSR1 SA2 CPNG PLACE *CP* INTO *SREQ* (MAY BE ZERO)
BX6 X2
PSR2 SA6 SREQ PLACE EITHER *CE* OR *CP* INTO *SREQ*
EQ PSRX RETURN
PSS SPACE 4,10
** PSS - PROCESS SUBSYSTEM SELECTION.
*
* ENTRY (SUBSYS) = VALUE FROM *SS* PARAMETER.
*
* EXIT (SUBSYS) = SUBSYSTEM VALUE (IF *SS* SPECIFIED).
* (PSSA) = CURRENT SUBSYSTEM.
*
* USES X - 0, 1, 5, 7.
* A - 1, 5, 7.
*
* CALLS CVT.
PSS SUBR ENTRY/EXIT
SA5 SUBSYS GET *SS* PARAMETER VALUE
GETSS PSSA GET CURRENT SUBSYSTEM
ZR X5,PSSX IF *SS* NOT SPECIFIED
MX0 42
SA1 PSSA
BX5 X0*X5
BX7 X1
ZR X5,PSS1 IF *SS* NOT EQUIVALENCED
SB5 TSSY
RJ CVT CONVERT ARGUMENT
ZR X6,PSS1 IF LEGAL VALUE
MESSAGE (=C* ERROR IN SUBSYSTEM.*)
ABORT
PSS1 SX7 X7+40B SAVE SELECTED SUBSYSTEM
SA7 SUBSYS
EQ PSSX RETURN
PSSA CON 0 CURRENT SUBSYSTEM
****
* TABLE OF SUBSYSTEMS.
TSSY BSS 0
VFD 42/0LNULL,18/NULS
VFD 42/0LNUL,18/NULS
VFD 42/0LBASIC,18/BASS
VFD 42/0LBAS,18/BASS
VFD 42/0LFORTRAN,18/FORS
VFD 42/0LFOR,18/FORS
VFD 42/0LFTNTS,18/FTNS
VFD 42/0LFTN,18/FTNS
VFD 42/0LEXECUTE,18/EXES
VFD 42/0LEXE,18/EXES
VFD 42/0LBATCH,18/BATS
VFD 42/0LBAT,18/BATS
CON 0
****
RNF SPACE 4,14
** RNF - RETURN NON-PRIMARY FILES.
* THIS SUBROUTINE USES THE LFM FUNCTION GETFNT TO RETURN ALL
* FILES CURRENTLY ASSIGNED TO JOB (EXCEPT THE PRIMARY FILE
* AND ANY FILE WITH *CBST*, *CKST* OR *NDST* STATUS SET).
*
* ENTRY NONE.
*
* EXIT NONE.
*
* USES X - 0, 1, 2, 3, 4, 7.
* A - 2, 7.
* B - 3, 4.
*
* MACROS GETFNT, RECALL, RETURN.
RNF SUBR ENTRY/EXIT
SA2 NODROP
NZ X2,RNFX IF ND PARAMETER SPECIFIED, EXIT
BX7 X7-X7 CLEAR BUFFER CONTROL WORD
SA7 GETTAB
SA2 RNFA MAKE GETFNT CALL
BX7 X2
MX0 42
RECALL F
SA7 F+CFPN
RNF1 GETFNT F
SB3 B0
SB4 GLEN
MX3 -6
RNF2 SA2 B3+GETTAB+1
ZR X2,RNFX IF END OF FILES
BX1 -X3*X2
SX7 X1-NDST
ZR X7,RNF3 IF *NDST* FILE
SX7 X1-CBST
SX4 X1-CKST
ZR X7,RNF3 IF CHECKPOINT FILE
ZR X4,RNF3 IF CHECKPOINT FILE
BX4 X0*X2
SX1 B1+ SET COMPLETE BIT
BX7 X1+X4
RECALL F
SA7 F
RETURN F
RNF3 SB3 B3+2
NE B3,B4,RNF2 IF MORE FILES IN GETTAB
SA2 GETTAB
NZ X2,RNF1 IF MORE FILES TO PROCESS
EQ RNFX RETURN
* GETFNT CONTROL WORD.
RNFA VFD 12/GFILES,24/-PMSK,6/15B,18/GETTAB
SPACE 4
* COMMON DECKS.
*CALL COMCARM
*CALL COMCARG
*CALL COMCCIO
*CALL COMCCPA
*CALL COMCCPM
*CALL COMCDXB
*CALL COMCLFM
*CALL COMCPFM
*CALL COMCPOP
*CALL COMCRSP
*CALL COMCSTF
*CALL COMCSYS
*CALL COMCUSB
*CALL COMCVDT
*CALL COMCVLC
SPACE 4,10
* BUFFER DEFINITIONS.
USE BUFFERS
TSFN BSSN NFILES SYSTEM FILE NAMES
TPFN BSSN NFILES PERMANENT FILE NAMES
IBUF BSSN BUFL INPUT BUFFER
GETTAB BSSN GLEN+2 *GETFNT* TABLE
PBUF BSSN PBUFL *PACKNAM* STRING BUFFER
RFL= BSSN 0
SPACE 4
END