cdc:nos2.source:opl871:mfiles
Table of Contents
MFILES
Table Of Contents
- [00015] MFILES - MULTIPLE FILE PROCESSOR.
- [00228] ACON - SET ARGUMENT CONTROL.
- [00243] SCON - SET COMMAND CONTROL.
- [00333] TACW - TABLE OF ARGUMENT CONTROL WORDS.
- [00350] TDSP - *DSP* PARAMETER BLOCK.
- [00357] TSFN - TABLE OF SPECIAL FILE NAMES.
- [00442] MFP - MULTIPLE FILE PROCESSOR.
- [00474] SUBROUTINES.
- [00476] ABT - ISSUE MESSAGE AND ABORT.
- [00487] CFN - CHECK FILE NAME FOR EXCLUSION.
- [00549] CIF - CHECK FOR INPUT* FILE.
- [00566] CMS - CHECK FOR MASS STORAGE AND READ ONLY FILE.
- [00630] COC - CHECK FOR OPTICAL CONTROL FILE *ZZZZZOD*.
- [00651] COF - CHECK IF OUTPUT FILE.
- [00727] CPF - CHECK FOR PROTECTED FILE.
- [00799] GNF - GET NONBUSY FET.
- [00841] IFC - ISSUE FILE COUNT MESSAGE.
- [00878] IRJ - INDEX RETURN JUMP.
- [00897] PAF - PROCESS ALL FILES.
- [00935] POF - PROCESS ONE FILE.
- [01012] RSR - RESTORE RESERVED REGISTERS.
- [01038] SVR - SAVE RESERVED REGISTERS.
- [01090] PRS - PRESET.
- [01171] MOL - MOVE ** OPTIONS.
Source Code
- MFILES.txt
- IDENT MFILES,FETS
- ABS
- SST
- ENTRY CLEAR
- ENTRY OUT
- ENTRY OVWRITE
- ENTRY RETURN
- ENTRY REWIND
- ENTRY SETFS
- ENTRY UNLOAD
- ENTRY NPC=
- ENTRY RFL=
- ENTRY SSM=
- SYSCOM B1
- TITLE MFILES - MULTIPLE FILE PROCESSOR.
- *COMMENT MFILES - MULTIPLE FILE PROCESSOR.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- SPACE 4,10
- ***** MFILES - MULTIPLE FILE PROCESSOR.
- *
- * A. SKJOLDEBRAND. 75/09/07.
- * H. G. VARNIS. 79/01/02.
- *
- * *MFILES* REQUESTS THAT CERTAIN OPERATIONS BE PERFORMED ON A
- * SUBSET OF FILES ASSIGNED TO A JOB.
- MFILES SPACE 4,30
- *** *MFILES* REQUESTS THAT CERTAIN OPERATIONS BE PERFORMED ON A
- * SUBSET OF FILES ASSIGNED TO A JOB. THE SUBSET IS DEFINED BY
- * THE COMMAND AS FOLLOWS:
- *
- * FORMAT FORMAT SUBSET
- * CODE
- *
- * 0 NAME. ALL FILES
- * 1 NAME(*) ALL FILES
- * 2 NAME(*,LFN1,...,LFNN) ALL FILES EXCEPT LFN1,...,LFNN
- * 3 NAME(LFN1,...,LFNN) FILES LFN1,...,LFNN
- *
- * LEGAL COMMAND NAMES ARE *CLEAR*, *OUT*, *OVWRITE*,
- * *RETURN*, *REWIND*, *SETFS*, AND *UNLOAD*. OPERATIONS AND
- * ALLOWED FORMATS ARE GIVEN BY THE FOLLOWING TABLE.
- *
- * 0 1 2 3
- * --- --- --- ---
- * CLEAR RELEASE FILE FROM JOB X X X -
- * OUT RELEASE FILE TO OUTPUT QUEUE X X X -
- * OVWRITE OVERWRITE FILES - X X X
- * RETURN RELEASE FILE FROM JOB - X X X
- * REWIND POSITION FILE AT BOI - X X X
- * SETFS SET FILE STATUS - X X X
- * UNLOAD RELEASE FILE FROM JOB - X X X
- *
- * WHERE: X = FORMAT ALLOWED FOR THIS COMMAND.
- * - = FORMAT NOT ALLOWED FOR THIS COMMAND.
- *
- *
- * NOTES:
- *
- * 1. THE *CLEAR* AND *RETURN* COMMANDS PRODUCE
- * IDENTICAL OPERATIONS ON THE FILES TO WHICH THEY REFER.
- * THEY DIFFER ONLY IN ALLOWED COMMAND FORMATS.
- MFILES SPACE 4,20
- *** THE COMMAND.
- *
- *
- * CLEAR. RETURNS ALL FILES EXCEPT FOR FILES WITH
- * *CBST*, *CKST* OR *NDST* STATUS, AND
- * THE OPTICAL DISK CONTROL FILE *ZZZZZOD*.
- *
- * CLEAR/OP=O. RETURNS ALL OPTICAL DISK FILES AND THE
- * OPTICAL DISK CONTROL FILE *ZZZZZOD*.
- *
- * CLEAR(*) RETURNS ALL FILES EXCEPT FOR FILES WITH
- * *CBST*, *CKST* OR *NDST* STATUS, AND
- * THE OPTICAL DISK CONTROL FILE *ZZZZZOD*.
- *
- * CLEAR(*/OP=O) RETURNS ALL OPTICAL DISK FILES AND THE
- * OPTICAL DISK CONTROL FILE *ZZZZZOD*.
- *
- * CLEAR(*,LFN1,...,LFNN) RETURNS ALL FILES EXCEPT FOR
- * FILES LFN1,...,LFNN, FILES WITH *CBST*,
- * *CKST* OR *NDST* STATUS, AND THE OPTICAL
- * DISK CONTROL FILE *ZZZZZOD*.
- *
- *
- * OUT. RELEASES TO THE OUTPUT QUEUE ALL
- * FILES OF TYPE *QFFT* AND ALL FILES
- * WITH THE SPECIAL NAMES *OUTPUT*,
- * *PUNCH*, *PUNCHB*, AND *P8*.
- *
- * OUT(*) SAME AS *OUT.*
- *
- * OUT(*/OP=X) SAME AS *OUT.* USING THE OPTION *X*.
- * THIS FORM IS USED ONLY BY THE SYSTEM
- * DURING JOB TERMINATION PROCESSING.
- * THE POSSIBLE VALUES OF THE OPTION
- * *X* AND THEIR MEANINGS ARE SHOWN
- * BELOW.
- *
- * E PERFORM END-OF-JOB ROUTING.
- *
- * OUT(*,LFN1,...,LFNN) SAME AS *OUT* WITH THE
- * EXCEPTION OF FILES LFN1,...,LFNN.
- *
- *
- * OVWRITE,*. OVERWRITE ALL MASS STORAGE FILES EXCEPT
- * FOR FILES NOT IN WRITE MODE.
- *
- * OVWRITE,*/OP=OPTIONS. OVERWRITE ALL MASS STORAGE FILES
- * EXCEPT FOR FILES NOT IN WRITE MODE WITH
- * THE FOLLOWING OPTIONS.
- * Z - OVERWRITE THE FILE WITH BINARY ZEROES.
- * BOTH THE Z AND THE X OPTIONS CANNOT
- * BE SIMULTANEOUSLY SELECTED. THIS IS
- * THE DEFAULT VALUE.
- *
- * X - OVERWRITE THE FILE FIRST WITH BINARY
- * ZEROS, THEN WITH BINARY ONES, THEN
- * WITH A PATTERN OF ALTERNATING BINARY
- * ONES AND ZEROS.
- *
- * R - RETURN ALL FILES PROCESSED AFTER
- * COMPLETION.
- *
- * OVWRITE,*,LFN1,...,LFNN/OP=OPTIONS.
- * OVERWRITE ALL MASS STORAGE FILES EXCEPT
- * FOR FILES NOT IN WRITE MODE AND FILES
- * LFN1,...LFNN USING SELECTED OPTIONS.
- *
- * OVWRITE,LFN1,...,LFNN/OP=OPTIONS.
- * OVERWRITE FILES LFN1,...,LFNN USING
- * SELECTED OPTIONS. NON-MASS STORAGE FILES
- * AND FILES NOT IN WRITE MODE WILL BE
- * IGNORED.
- *
- *
- * RETURN(*) RETURNS ALL FILES EXCEPT FOR FILES WITH
- * *CBST*, *CKST* OR *NDST* STATUS, AND
- * THE OPTICAL DISK CONTROL FILE *ZZZZZOD*.
- *
- * RETURN(*/OP=O) RETURNS ALL OPTICAL DISK FILES AND THE
- * OPTICAL DISK CONTROL FILE *ZZZZZOD*.
- *
- * RETURN(*,LFN1,...,LFNN) RETURNS ALL FILES EXCEPT FOR
- * FILES LFN1,...,LFNN, FILES WITH *CBST*,
- * *CKST* OR *NDST* STATUS, AND THE OPTICAL
- * DISK CONTROL FILE *ZZZZZOD*.
- *
- * RETURN(LFN1,...LFNN) RETURNS FILES LFN1,...,LFNN.
- * WILL *NOT* RETURN THE OPTICAL DISK
- * CONTROL FILE *ZZZZZOD*.
- *
- *
- * REWIND(*) REWINDS ALL FILES.
- *
- * REWIND(*,LFN1,...,LFNN) REWINDS ALL FILES EXCEPT
- * FOR FILES LFN1,...,LFNN.
- *
- * REWIND(LFN1,...,LFNN) REWINDS FILES LFN1,...LFNN.
- *
- *
- * SETFS(*/FS=S) SET FILE STATUS *S* ON ALL FILES.
- *
- * SETFS(*,LFN1,...,LFNN/FS=S) SET FILE STATUS *S* ON ALL FILES
- * EXCEPT FILES LFN1,...,LFNN.
- *
- * SETFS(LFN1,...,LFNN/FS=S) SET FILE STATUS *S* ON FILES
- * LFN1,....,LFNN.
- *
- *
- * UNLOAD(*) UNLOADS ALL FILES EXCEPT FOR FILES WITH
- * *CBST*, *CKST* OR *NDST* STATUS, AND
- * THE OPTICAL DISK CONTROL FILE *ZZZZZOD*.
- *
- * UNLOAD(*/OP=O) UNLOADS ALL OPTICAL DISK FILES AND THE
- * OPTICAL DISK CONTROL FILE *ZZZZZOD*.
- *
- * UNLOAD(*,LFN1,...,LFNN) UNLOADS ALL FILES EXCEPT FOR
- * FILES LFN1,...,LFNN, FILES WITH *CBST*,
- * *CKST* OR *NDST* STATUS, AND THE OPTICAL
- * DISK CONTROL FILE *ZZZZZOD*.
- *
- * UNLOAD(LFN1,...,LFNN) UNLOADS FILES LFN1,...LFNN.
- * WILL *NOT* UNLOAD THE OPTICAL DISK
- * CONTROL FILE *ZZZZZOD*.
- SPACE 4,10
- *** DAYFILE MESSAGES.
- *
- *
- * * ERROR IN ARGUMENTS.* = AN INCORRECT ARGUMENT OR FORMAT
- * WAS USED ON THE COMMAND. COMPARE THE
- * COMMAND USED WITH THE DOCUMENTED FORMATS.
- *
- * * FILE STATUS NOT SPECIFIED.* = A *SETFS* COMMAND WAS
- * ISSUED WITH NO FILE STATUS SPECIFIED.
- *
- * * INCORRECT FILE STATUS.* = THE FILE STATUS SPECIFIED
- * ON A *SETFS* COMMAND WAS NOT VALID.
- *
- * * INCORRECT */* OPTION.* = AN INCORRECT COMMAND
- * OPTION WAS ENTERED FOLLOWING A */* SEPARATOR.
- *
- * * NNN FILE(S) PROCESSED.* = NNN IS THE NUMBER OF FILES FOR
- * WHICH THE FUNCTION WAS REQUESTED.
- *
- * * XXXXXXX ROUTED. JSN IS YYYY.* = XXXXXXX IS THE NAME
- * OF THE FILE BEING ROUTED AND YYYY IS THE JSN WHICH
- * WAS ASSIGNED TO THAT FILES QFT ENTRY.
- *
- * * (FILENAME) NOT ON MASS STORAGE.* = THE NAMED FILE WAS NOT
- * PROCESSED BECAUSE IT DOES NOT RESIDE ON MASS STORAGE.
- *
- * * (FILENAME) NOT IN WRITE MODE.* = THE NAMED FILE WAS NOT
- * PROCESSED BECAUSE IT IS NOT IN WRITE MODE.
- MFILES TITLE CONSTANTS AND MACRO DEFINITIONS.
- MFILES SPACE 4,10
- ** DEFINITION COMMON DECKS.
- *CALL COMCMAC
- *CALL COMCCMD
- *CALL COMSDSP
- *CALL COMSJCE
- *CALL COMSLFD
- SPACE 4,15
- ** MACRO DEFINITIONS.
- ACON SPACE 4,10
- ** ACON - SET ARGUMENT CONTROL.
- *
- * ACON P,T
- *
- * ENTRY *P* = ARGUMENT PROCESSOR ADDRESS.
- * *T* = ARGUMENT TABLE (*COMCARG* FORMAT) ADDRESS.
- *
- * EXIT 24/0, 18/P, 18/T
- PURGMAC ACON
- ACON MACRO P,T
- + VFD 24/0,18/P,18/T
- ENDM
- SCON SPACE 4,10
- ** SCON - SET COMMAND CONTROL.
- *
- * SCON A,B,C,D,EXP,CF
- *
- * ENTRY *A* = 1 IF FORMAT 0 ALLOWED.
- * *B* = 1 IF FORMAT 1 ALLOWED.
- * *C* = 1 IF FORMAT 2 ALLOWED.
- * *D* = 1 IF FORMAT 3 ALLOWED.
- * *EXP* = ADDRESS OF FILE EXCLUSION PROCESSOR.
- * *CF* = *CIO* FUNCTION CODE.
- PURGMAC SCON
- SCON MACRO A,B,C,D,EXP,CF
- VFD 1/A,1/B,1/C,1/D,20/0,18/EXP,18/CF
- ENDM
- MFILES SPACE 4,10
- **** INSTALLATION PARAMETERS.
- MNF EQU 200B FILES PROCESSED PER *GETFNT* CALL
- ****
- SPACE 4,10
- ** ASSEMBLY CONSTANTS.
- FMT0 EQU 0 FORMAT 0
- FMT1 EQU 1 FORMAT 1
- FMT2 EQU 2 FORMAT 2 (EXCLUSION FORMAT)
- FMT3 EQU 3 FORMAT 3 (INCLUSION FORMAT)
- FNTBL EQU 2*MNF+2 *GETFNT* BUFFER SIZE
- PSBFL EQU 1 LENGTH OF PSEUDO BUFFER FOR FETS
- FRDC EQU 20B *DSP* FLAG FOR DISPOSITION CODE
- MFILES TITLE TABLES AND DATA STORAGE.
- ** FETS.
- ORG 110B
- FETS BSS 0
- FET1 FILEB PSBF,PSBFL,(FET=8)
- FET2 FILEB PSBF,PSBFL,(FET=8)
- FET3 FILEB PSBF,PSBFL,(FET=8)
- FETX FILEB PSBF,PSBFL,(FET=13) *GETFNT* FET (MUST BE LAST FET)
- FETC EQU FETX+8 *GETFNT* CONTROL WORD ADDRESS
- FETL EQU FET2-FET1 FET LENGTH
- FETW EQU FETX-FETS LENGTH OF FET BLOCK
- FETN EQU FETW/FETL+1 NUMBER OF FETS
- SPACE 4,10
- ** RESERVED LOCATIONS.
- CSOC CON 0 COMMAND OPTION COUNT
- EOJS CON 0 END-OF-JOB PROCESSING STATUS
- FICT CON 0 FILE COUNT
- FLST CON 0 FILE STATUS TO BE SET
- FRMT CON 0 FORMAT CODE
- OPARG CON 0 *OP=* ARGUMENT
- OPOF CON 0 *OP=O* PROCESSED FLAG
- OVWF CON 0 *OVWRITE* OPTION FLAG
- NOJF CON 1 *NOJT* TERMINATION FLAG
- ZODF CON 0 OPTICAL DISK CONTROL FILE FOUND FLAG
- SPACE 4,10
- ** PRESERVED REGISTER STORAGE LOCATIONS.
- SVA3 CON 0 SAVE (A3)
- SVB2 CON 0 SAVE (B2)
- SVB3 CON 0 SAVE (B3)
- SVB4 CON 0 SAVE (B4)
- SPACE 4,10
- ** *GETFNT* CONTROL WORD.
- GFCW VFD 12/MNF,6/0,18/0,2/0,1/1,3/4,18/FNTB
- SPACE 4,10
- ** COMMAND TABLE.
- TCSC BSS 0 FWA OF CONTROL WORD TABLE
- CLCC SCON 1,1,1,0,CPF,70B CLEAR
- OUCC SCON 1,1,1,0,COF,0B OUT
- OVCC SCON 0,1,1,1,CMS,244B OVWRITE
- OVCR SCON 0,1,1,1,CMS,254B OVWRITE RETURN
- RTCC SCON 0,1,1,1,CPF,70B RETURN
- RWCC SCON 0,1,1,1,0,50B REWIND
- SFCC SCON 0,1,1,1,CIF,0 SETFS
- UNCC SCON 0,1,1,1,CPF,60B UNLOAD
- TACW SPACE 4,10
- ** TACW - TABLE OF ARGUMENT CONTROL WORDS.
- *
- * THIS TABLE IS ADDRESSED USING THE OFFSET (*TACW*) FROM
- * THE CORRESPONDING ENTRY IN THE COMMAND
- * CONTROL WORD TABLE.
- TACW EQU *-TCSC TABLE OFFSET FROM *TCSC*
- ACON CAP,TOARG CLEAR
- ACON OAP,TOARG OUT
- ACON VAT,TOARG OVWRITE
- ACON VAT,TOARG OVWRITE RETURN
- ACON CAP,TOARG RETURN
- ACON 0,0 REWIND
- ACON SAP,TSARG SETFS
- ACON CAP,TOARG UNLOAD
- TDSP SPACE 4,10
- ** TDSP - *DSP* PARAMETER BLOCK.
- TDSP BSSZ 1
- VFD 42/0,18/FRFN RETURN JSN TO CALLER
- BSSZ 5
- TSFN SPACE 4,10
- ** TSFN - TABLE OF SPECIAL FILE NAMES.
- *
- *T 42/FILE NAME, 18/ 0
- TSFN BSS 0 START OF TABLE
- LOC 0
- OTPT CON 0LOUTPUT
- CON 0LPUNCH
- CON 0LPUNCHB
- CON 0LP8
- CON 0 END OF TABLE
- LOC *O
- SPACE 4,10
- MFILES TITLE COMMAND ENTRY POINTS.
- ** CLEAR.
- *
- * RETURN FILES ASSIGNED TO A JOB.
- CLEAR SB2 CLCC SET COMMAND WORD ADDRESS
- EQ MFP ENTER MAIN ROUTINE
- OUT SPACE 4,10
- ** OUT.
- * OUT(.../OP=X)
- *
- * RELEASE FILES ASSIGNED TO A JOB TO THE OUTPUT QUEUE.
- * THE OPTION SPECIFIED BY *X* IS DESCRIBED BELOW. IT
- * IS VALID ONLY DURING JOB TERMINATION PROCESSING.
- *
- * E PERFORM END-OF-JOB ROUTING.
- *
- * Q QUEUE FILE REGARDLESS OF USER
- * VALIDATION LIMITS.
- OUT SB2 OUCC SET COMMAND WORD ADDRESS
- EQ MFP ENTER MAIN LOOP
- OVWRITE SPACE 4,10
- ** OVWRITE.
- *
- * OVERWRITE FILES.
- OVWRITE SB2 OVCC SET COMMAND WORD ADDRESS
- EQ MFP ENTER MAIN ROUTINE
- SPACE 4,10
- ** RETURN.
- *
- * RETURN FILES ASSIGNED TO A JOB.
- RETURN SB2 RTCC SET COMMAND WORD ADDRESS
- EQ MFP ENTER MAIN ROUTINE
- SPACE 4,10
- ** REWIND.
- *
- * REWIND FILES ASSIGNED TO A JOB.
- REWIND SB2 RWCC SET COMMAND WORD ADDRESS
- EQ MFP ENTER MAIN ROUTINE
- SETFS SPACE 4,10
- ** SETFS.
- *
- * SET STATUS ON FILES ASSIGNED TO A JOB.
- SETFS SB2 SFCC SET COMMAND WORD ADDRESS
- EQ MFP ENTER MAIN ROUTINE
- SPACE 4,10
- ** UNLOAD.
- *
- * UNLOAD FILES ASSIGNED TO A JOB.
- UNLOAD SB2 UNCC SET COMMAND WORD ADDRESS
- * EQ MFP ENTER MAIN ROUTINE
- MFILES TITLE MAIN PROGRAM.
- MFILES SPACE 4,10
- ** RESERVED REGISTER USAGE.
- *
- * (A3) = ADDRESS OF FIRST FILE NAME ARGUMENT.
- * (B2) = COMMAND WORD ADDRESS.
- MFP SPACE 4,15
- ** MFP - MULTIPLE FILE PROCESSOR.
- *
- * ENTRY (B2) = COMMAND WORD ADDRESS.
- *
- * USES X - 4, 6, 7.
- * A - 4, 6, 7.
- *
- * CALLS IFC, PAF, PRS.
- *
- * MACROS ENDRUN, GETFNT, RECALL.
- MFP BSS 0 ENTRY
- RJ PRS PRESET
- SA4 GFCW PUT *GETFNT* CONTROL WORD IN FET
- BX6 X4
- SX7 B0
- SA6 FETC
- SA7 FNTB SET INITIAL *GETFNT* CALL
- MFP1 GETFNT FETX
- RJ PAF PROCESS ALL FILES
- ZR X1,MFP2 IF ALL FILES RETURNED IN BUFFER
- RECALL FETX
- EQ MFP1 GET ANOTHER BUFFER OF FNT ENTRIES
- * TERMINATE JOB.
- MFP2 SA4 FRMT GET FORMAT CODE
- SX4 X4-FMT3
- ZR X4,MFP3 IF FORMAT 3
- RJ IFC ISSUE FILE COUNT MESSAGE
- MFP3 ENDRUN
- TITLE SUBROUTINES.
- ABT SPACE 4,10
- ** ABT - ISSUE MESSAGE AND ABORT.
- *
- * ENTRY (X2) = MESSAGE ADDRESS.
- *
- * MACROS ABORT, MESSAGE.
- ABT BSS 0 ENTRY
- MESSAGE X2,3
- ABORT ABORT CONTROL POINT
- CFN SPACE 4,20
- ** CFN - CHECK FILE NAME FOR EXCLUSION.
- *
- * *CFN* CHECKS AN ARGUMENT LIST FOR THE PRESENCE OF THE FILE
- * NAME GIVEN BY AN FNT ENTRY. DEPENDING ON THE CONTROL
- * COMMAND, OTHER EXCLUSION TESTS MAY BE MADE.
- *
- * ENTRY (X1) = FNT ENTRY.
- * (X3) = FILE NAME.
- * (A1) = ADDRESS OF FNT ENTRY IN *GETFNT* BUFFER.
- * (A3) = ADDRESS OF FIRST ARGUMENT.
- * (B2) = COMMAND WORD ADDRESS.
- *
- * EXIT (X6) = 0 IF FILE TO BE EXCLUDED.
- * (X6) .NE. 0 IF FILE NOT TO BE EXCLUDED.
- *
- * USES X - 0, 4, 6.
- * A - 4.
- * B - 7.
- *
- * CALLS IRJ.
- *
- * NOTE EXCLUSION PROCESSOR SUBROUTINES MUST NOT DESTROY
- * REGISTERS A3, X3, B2, B3, OR B4.
- CFN SUBR ENTRY/EXIT
- SA4 B2 GET EXCLUSION PROCESSOR ADDRESS
- MX0 -18
- AX4 18
- BX4 -X0*X4
- ZR X4,CFN1 IF NO EXCLUSION PROCESSOR DEFINED
- SB7 X4+ SET PROCESSOR ADDRESS
- RJ IRJ EXECUTE EXCLUSION PROCESSOR
- ZR X6,CFNX IF FILE TO BE EXCLUDED
- CFN1 SA4 FRMT GET FORMAT CODE
- SB7 X4-FMT3
- SA4 A3+ READ FIRST FILE NAME ARGUMENT
- CFN2 ZR X4,CFN3 IF END OF ARGUMENT LIST
- BX6 X4-X3
- SA4 A4+B1 READ NEXT ARGUMENT
- NZ X6,CFN2 IF NOT FOUND
- * THE FILE NAME WAS FOUND AS ONE OF THE ARGUMENTS SPECIFIED
- * (EITHER FORMAT 2 OR FORMAT 3 WAS USED). AN ADDITIONAL CHECK
- * IS REQUIRED TO DETERMINE IF THE FILE IS TO BE INCLUDED
- * OR EXCLUDED FROM PROCESSING. IF THE INCLUSION FORMAT
- * (FORMAT 3) WAS SPECIFIED, THE FILE WILL NOT BE EXCLUDED.
- NZ B7,CFNX IF NOT FORMAT 3
- SX6 B1+ SET FILE NOT EXCLUDED
- EQ CFNX RETURN
- * THE FILE NAME DID NOT MATCH ANY OF THE ARGUMENTS SPECIFIED.
- * A CHECK MUST BE MADE TO DETERMINE IF THE FILE SHOULD
- * BE EXCLUDED OR INCLUDED BY THE PROCESSING TYPE SPECIFIED.
- * IF THE INCLUSION FORMAT (FORMAT 3) WAS SPECIFIED, THE
- * FILE WILL BE EXCLUDED.
- CFN3 NZ B7,CFNX IF NOT FORMAT 3
- SX6 B0+ SET FILE EXCLUDED
- EQ CFNX RETURN
- CIF SPACE 4,10
- ** CIF - CHECK FOR INPUT* FILE.
- *
- * ENTRY (X1) = FNT ENTRY.
- *
- * EXIT (X6) = 0 IF FILE IS INPUT*.
- *
- * USES X - 0, 4, 6, 7.
- * A - 4.
- CIF SUBR ENTRY/EXIT
- SA4 =6LINPUT*
- MX0 42
- BX7 X0*X1
- BX6 X4-X7
- EQ CIFX RETURN
- CMS SPACE 4,15
- ** CMS - CHECK FOR MASS STORAGE AND READ ONLY FILE.
- *
- * ENTRY (X1) = FNT ENTRY.
- * (A1) = ADDRESS OF FNT ENTRY IN *GETFNT* BUFFER.
- * (X3) = FILE NAME.
- * (A3) = ADDRESS OF FIRST ARGUMENT.
- *
- * EXIT (X6) = 0 IF FILE TO BE EXCLUDED.
- *
- * USES X - 0, 1, 4, 6.
- * A - 4.
- * B - 2, 3, 5.
- *
- * CALLS CIF, RSR, SNM, SVR.
- *
- * MACROS MESSAGE.
- CMS SUBR ENTRY/EXIT
- MX0 2
- LX0 14-59
- BX6 X0*X1
- SB5 -CMSA MESSAGE TEXT
- NZ X6,CMS1 IF FILE NOT MASS STORAGE
- RJ CIF
- ZR X6,CMSX IF INPUT* FILE
- SA4 A1+B1 CHECK FOR WRITE MODE
- MX0 -4
- SX6 B1+ SET FILE INCLUDED
- LX4 -4
- BX4 -X0*X4
- SB5 X4
- EQ B5,B1,CMSX IF FILE IN WRITE MODE
- SB5 -CMSB MESSAGE TEXT
- * SEARCH ARGUMENT LIST FOR MATCHING FILE NAME TO DETERMINE
- * IF WARNING MESSAGE SHOULD BE ISSUED.
- CMS1 SA4 A3+ READ FIRST FILE NAME ARGUMENT
- CMS2 ZR X4,CMS3 IF END OF ARGUMENT LIST
- BX0 X4-X3
- SA4 A4+B1 READ NEXT ARGUMENT
- NZ X0,CMS2 IF NOT FOUND
- SA4 FRMT GET FORMAT CODE
- SX4 X4-FMT3
- NZ X4,CMS3 IF NOT FORMAT 3
- * ISSUE WARNING MESSAGE AND EXCLUDE FILE.
- RJ SVR SAVE REGISTERS
- SB2 1R+ SET SEARCH CHARACTER
- SB3 CMSC MESSAGE ASSEMBLY BUFFER
- MX0 42
- BX1 X0*X1 FILE NAME
- RJ SNM SET NAME IN MESSAGE
- MESSAGE CMSC,3,R
- RJ RSR RESTORE REGISTERS
- CMS3 SX6 B0+ EXCLUDE FILE
- EQ CMSX RETURN
- CMSA DATA C* +++++++ NOT ON MASS STORAGE.*
- CMSB DATA C* +++++++ NOT IN WRITE MODE.*
- CMSC BSS 4 ASSEMBLY BUFFER
- COC SPACE 4,10
- ** COC - CHECK FOR OPTICAL CONTROL FILE *ZZZZZOD*.
- *
- * ENTRY (X1) = FNT ENTRY.
- *
- * EXIT (X6) = 0 IF FILE IS ZZZZZOD.
- *
- * USES X - 0, 4, 6, 7.
- * A - 4.
- COC SUBR ENTRY/EXIT
- MX0 2
- LX0 14-59
- BX6 X0*X1
- NZ X6,COCX IF FILE NOT MASS STORAGE
- SA4 =7LZZZZZOD
- MX0 42
- BX7 X0*X1
- BX6 X4-X7
- EQ COCX RETURN
- COF SPACE 4,20
- ** COF - CHECK IF OUTPUT FILE.
- *
- * *COF* CHECKS TO SEE IF THE GIVEN FILE SHOULD BE
- * ROUTED TO THE OUTPUT QUEUE. THE CRITERIA USED
- * FOR SELECTION ARE -
- *
- * (1) FILE TYPE IS *QFFT*.
- * (2) FILE IS A LOCAL FILE (FILE TYPE *LOFT*) AND
- * HAS A SPECIAL NAME, *OUTPUT*, *PUNCH*, *P8*,
- * OR *PUNCHB*.
- *
- * ENTRY (X1) = FNT ENTRY.
- * (X3) = FILE NAME.
- *
- * EXIT (X6) = NONZERO IF FILE TO BE ROUTED TO QUEUE.
- *
- * USES X - 4, 6, 7.
- * A - 4.
- * B - 6.
- COF SUBR ENTRY/EXIT
- * CHECK FILE TYPE.
- BX4 X1 CHECK FNT PARAMETERS
- MX6 -2
- AX4 13
- BX6 -X6*X4
- NZ X6,COF3 IF NOT MASS STORAGE FILE
- BX4 X1 CHECK FILE TYPE
- MX6 -6
- AX4 6
- BX7 -X6*X4
- SB6 X7-QFFT
- ZR B6,COF1.1 IF QUEUED FILE
- SB6 X7-LOFT
- NZ B6,COF3 IF NOT LOCAL FILE
- SA4 NOJF CHECK TERMINATION OPTION FLAG
- ZR X4,COF3 IF NOT ROUTING *SPECIAL NAME* LOCAL FILES
- * CHECK FOR SPECIAL FILE NAMES.
- COF1 SA4 TSFN+B6 READ TABLE ENTRY
- ZR X4,COF3 IF END OF TABLE
- BX7 X4-X3 COMPARE FILE NAMES
- SB6 B6+B1 ADVANCE TABLE INDEX
- NZ X7,COF1 IF NO MATCH
- * PROCESS END-OF-JOB FILE ROUTING.
- COF1.1 SA4 EOJS CHECK FOR END-OF-JOB PROCESSING
- ZR X4,COF2 IF NOT END-OF-JOB
- BX7 -X6*X1 CHECK FILE STATUS
- SX7 X7-SOST
- ZR X7,COF2 IF *SOST* STATUS
- SA4 NOJF CHECK TERMINATION OPTION FLAG
- ZR X4,COF2 IF ROUTING ANY QUEUED FILE
- SA4 TSFN+OTPT CHECK FILE NAME
- BX7 X3-X4
- NZ X7,COF2 IF FILE NAME .NE. *OUTPUT*
- BX4 X1 CHECK IF *OUTPUT* IS LOCKED
- LX4 59-12
- PL X4,COF3 IF *OUTPUT* IS NOT LOCKED
- * RETURN STATUS TO ROUTE FILE.
- COF2 SX6 B1+
- EQ COFX RETURN
- * RETURN STATUS TO IGNORE FILE.
- COF3 SX6 B0+
- EQ COFX RETURN
- CPF SPACE 4,10
- ** CPF - CHECK FOR PROTECTED FILE.
- *
- * ENTRY (X1) = FNT ENTRY.
- * (X3) = FILE NAME.
- * (A3) = ADDRESS OF FIRST ARGUMENT.
- *
- * EXIT (X6) = 0 IF PROTECTED FILE TO BE EXCLUDED.
- *
- * USES X - 4, 6, 7.
- * A - 4, 7.
- *
- * CALLS COC, CIF, RSR, SVR.
- *
- * MACROS FILINFO.
- CPF5 SX7 X4+ SET CONTROL FILE FOUND FLAG IF *OP=O*
- SA7 ZODF
- CPF SUBR ENTRY/EXIT
- RJ CIF
- ZR X6,CPFX IF INPUT* FILE
- RJ COC CHECK FOR OPTICAL CONTROL FILE
- SA4 OPOF
- ZR X6,CPF5 IF OPTICAL CONTROL FILE
- NZ X4,CPF4 IF *OP=O* SPECIFIED
- MX4 -6 CHECK IF *CBST*, *CKST* OR *NDST* STATUS
- BX4 -X4*X1
- SX6 X4-CBST
- ZR X6,CPF1 IF CHECKPOINT FILE
- SX6 X4-CKST
- ZR X6,CPF1 IF CHECKPOINT FILE
- SX6 X4-NDST
- NZ X6,CPFX IF NOT NO-AUTO-DROP STATUS
- * IT IS A PROTECTED FILE. SEARCH THE ARGUMENT LIST FOR
- * MATCHING FILE NAME. IF A MATCH IS FOUND AND INCLUSION
- * PROCESSING (FORMAT 3) HAS BEEN SELECTED, RETURN (X6)
- * NON-ZERO SO THAT THE FILE WILL BE PROCESSED. OTHERWISE,
- * RETURN (X6) = 0 SO THAT THE FILE WILL BE EXCLUDED.
- CPF1 SA4 A3+ READ FIRST FILE NAME ARGUMENT
- CPF2 ZR X4,CPFX IF END OF ARGUMENT LIST
- BX7 X4-X3
- SA4 A4+B1 READ NEXT ARGUMENT
- NZ X7,CPF2 IF NOT FOUND
- SA4 FRMT GET FORMAT CODE
- SX4 X4-FMT3 CHECK FOR FORMAT 3
- CPF3 NZ X4,CPFX IF FILE TO BE EXCLUDED
- SX6 B1+ PROCESS THE FILE
- EQ CPFX RETURN
- * *OP=O* SPECIFIED - CHECK FOR OPTICAL DISK FILE.
- CPF4 SA4 CPFA SET UP *FILINFO* PARAMETER BLOCK
- MX6 42
- BX7 X6*X1
- BX6 -X6*X4
- BX7 X6+X7
- SA7 A4+
- RJ SVR SAVE REGISTERS
- FILINFO CPFA GET FILE INFORMATION
- RJ RSR RESTORE REGISTERS
- SA4 CPFA+1
- BX6 X6-X6 SET TO EXCLUDE FILE IF NOT OPTICAL DISK
- AX4 48
- SX4 X4-2ROD
- EQ CPF3 EXCLUDE FILE UNLESS ON OPTICAL DISK
- CPFA VFD 42/0,6/5,12/1 *FILINFO* PARAMETER BLOCK
- BSSZ 5
- GNF SPACE 4,20
- ** GNF - GET NONBUSY FET.
- *
- * *GNF* DETERMINES WHETHER ANY FET IN THE SET OF FETS IS
- * CURRENTLY BUSY WITH THE GIVEN FILE AND IF NONE IS, RETURNS
- * THE ADDRESS OF A NONBUSY FET.
- *
- * ENTRY (X3) = FILE NAME TO LOOK FOR.
- *
- * EXIT (X2) = 0 IF A FET IS BUSY WITH THE FILE.
- * (X2) = ADDRESS OF A NONBUSY FET OTHERWISE.
- *
- * USES X - 0, 1, 2.
- * A - 1.
- * B - 5, 7.
- *
- * MACROS RECALL.
- GNF2 SX2 A1+ SAVE ADDRESS OF NONBUSY FET
- NZ B5,GNFX IF EXCLUSION FORM
- GNF3 SA1 A1+FETL
- SB7 A1-FETX-1
- NG B7,GNF1 IF NOT PAST END OF FETS
- NZ X2,GNFX IF NONBUSY FET FOUND
- RECALL FETS
- GNF SUBR ENTRY/EXIT
- SA1 FRMT GET FORMAT CODE
- SB5 X1-FMT3
- SA1 FETS
- MX0 42
- BX2 X2-X2
- GNF1 LX1 59-0
- NG X1,GNF2 IF NOT BUSY
- LX1 1 RESTORE X1
- NZ B5,GNF3 IF EXCLUSION FORM
- BX1 X0*X1
- BX1 X1-X3
- NZ X1,GNF3 IF NOT A FILE NAME MATCH
- SX2 B0+
- EQ GNFX RETURN
- IFC SPACE 4,15
- ** IFC - ISSUE FILE COUNT MESSAGE.
- *
- * ENTRY (FICT) = FILE COUNT.
- *
- * EXIT MESSAGE ISSUED.
- *
- * USES X - 1, 2, 6.
- * A - 1, 6.
- *
- * CALLS CDD.
- *
- * MACROS MESSAGE.
- IFC SUBR ENTRY/EXIT
- SA1 FICT GET FILE COUNT
- SX2 IFCA ASSUME NO FILES
- ZR X1,IFC1 IF NO FILES PROCESSED
- SX6 X1-1 CHECK FILE COUNT
- SX2 IFCB
- ZR X6,IFC1 IF ONE FILE PROCESSED
- RJ CDD CONVERT TO DECIMAL
- SA1 IFCC MERGE FILE COUNT WITH MESSAGE
- MX2 24
- LX6 36
- BX1 -X2*X1
- BX6 X2*X6
- BX6 X6+X1
- SA6 A1
- SX2 A1 SET MESSAGE ADDRESS
- IFC1 MESSAGE X2,3 ISSUE DAYFILE MESSAGE
- EQ IFCX RETURN
- IFCA DATA C* NO FILES PROCESSED.*
- IFCB DATA C* 1 FILE PROCESSED.*
- IFCC DATA C* 000 FILES PROCESSED.*
- IRJ SPACE 4,15
- ** IRJ - INDEX RETURN JUMP.
- *
- * EXECUTES A RETURN JUMP TO (B7).
- *
- * ENTRY (B7) = BRANCH ADDRESS.
- *
- * EXIT TO (B7)+1.
- * JUMP INSTRUCTION TO RETURN LOCATION IN ((B7)).
- *
- * USES X - 5, 6.
- * A - 5, 6.
- IRJ SUBR ENTRY/EXIT
- SA5 IRJ READ RETURN INSTRUCTION
- BX6 X5 SET RETURN IN CALLED ROUTINE
- SA6 B7
- JP B7+1 ENTER CALLED ROUTINE
- PAF SPACE 4,20
- ** PAF - PROCESS ALL FILES.
- *
- * *PAF* REQUESTS AN OPERATION FOR EACH FILE IN THE SET OF
- * FNT ENTRIES EXCEPT THOSE THAT ARE EXCLUDED.
- *
- * ENTRY (A3) = ADDRESS OF THE FIRST ARGUMENT.
- * (B2) = COMMAND WORD ADDRESS.
- *
- * EXIT (X1) = 0 IF ALL FILES RETURNED IN THE BUFFER.
- *
- * USES X - 0, 1, 3.
- * A - 1, 3.
- * B - 3, 4.
- *
- * CALLS CFN, POF.
- PAF3 SA1 ZODF
- ZR X1,PAFX IF NOT PROCESSING OPTICAL CONTROL FILE
- SA3 =7LZZZZZOD
- RJ POF PROCESS ONE FILE
- * SX1 0 (*POF* EXIT CONDITION)
- PAF SUBR ENTRY/EXIT
- SB4 FNTBL-1 END OF *GETFNT* BUFFER
- SB3 B1
- PAF1 SA1 B3+FNTB GET FNT ENTRY
- MX0 42
- BX3 X0*X1
- ZR X1,PAF3 IF END OF ENTRIES
- RJ CFN CHECK FILE NAME FOR EXCLUSION
- ZR X6,PAF2 IF FILE TO BE EXCLUDED
- RJ POF PROCESS ONE FILE
- PAF2 SB3 B3+2
- NE B3,B4,PAF1 IF MORE FNT ENTRIES
- SX1 B1+
- EQ PAFX RETURN
- POF SPACE 4,20
- ** POF - PROCESS ONE FILE.
- *
- * *PAF* REQUESTS AN OPERATION FOR ONE FILE.
- *
- * ENTRY (X3) = NAME OF FILE TO BE PROCESSED.
- * (B2) = COMMAND WORD ADDRESS.
- *
- * EXIT SPECIFIED FILE PROCESSED AS REQUESTED.
- * (X1) = 0.
- *
- * USES X - 0, 1, 2, 4, 6, 7.
- * A - 1, 4, 6, 7.
- * B - 2, 3, 5, 6.
- *
- * CALLS CIO=, GNF, RSR, SNM, SVR.
- *
- * MACROS MESSAGE, ROUTE, SETFS.
- POF SUBR ENTRY/EXIT
- SB6 B2-OUCC
- ZR B6,POF3 IF *OUT* COMMAND
- SA4 B2 GET *CIO* CODE
- SX7 X4
- RJ GNF GET NONBUSY FET
- ZR X2,POF5 IF FILE ALREADY DONE
- SX4 B1
- BX6 X3+X4
- SA6 X2+
- SB6 B2-SFCC
- ZR B6,POF2 IF *SETFS* COMMAND
- SB6 B2-OVCC
- NZ B6,POF1 IF NOT *OVWRITE* COMMAND
- SA1 OVWF OPTIONAL PARAMETER INDICATOR
- LX1 18-0
- BX2 X1+X2 COMBINE OPTIONAL PARAMETER WITH FILE NAME
- * PROCESS *CIO* FUNCTION.
- POF1 RJ CIO= MAKE REQUEST
- EQ POF4 INCREMENT FILE COUNT
- * PROCESS *LFM* REQUEST.
- POF2 SA1 FLST SET FILE STATUS
- SETFS X2,X1
- EQ POF4 INCREMENT FILE COUNT
- * PROCESS *DSP* FUNCTION.
- POF3 BX7 X3 SET FILE NAME
- MX0 42
- BX1 X0*X7
- SA7 TDSP
- RJ SVR SAVE REGISTERS
- SB2 1R= SET SCAN PARAMETER
- SB5 -POFA SET STENCIL ADDRESS
- SB3 POFB SET ASSEMBLY BUFFER ADDRESS
- RJ SNM SET NAME IN MESSAGE
- ROUTE TDSP,RECALL
- MX0 24
- SA1 TDSP GET JSN RETURNED
- BX1 X0*X1
- SB2 1R+ SET SCAN PARAMETER
- SB5 POFB SET *POFB* AS ASSEMBLY BUFFER
- RJ SNM SET NAME IN MESSAGE
- MESSAGE POFB,0,RECALL SEND MESSAGE TO USER DAYFILE
- RJ RSR RESTORE REGISTERS
- POF4 SA1 FICT INCREMENT FILE COUNT
- SX6 X1+B1
- SA6 A1
- POF5 SX1 B0+
- EQ POFX RETURN
- POFA DATA C* ======= ROUTED. JSN IS ++++. *
- POFB DATA C* ======= ROUTED. JSN IS ++++. *
- RSR SPACE 4,10
- ** RSR - RESTORE RESERVED REGISTERS.
- *
- * RESTORES THE CONTENTS OF X3, A3, B2, B3, AND B4.
- *
- * ENTRY (SVA3) = (A3).
- * ((SVA3)) = (X3).
- * (SVB2) = (B2).
- * (SVB4) = (B4).
- * (SVB3) = (B3).
- *
- * USES X - 3.
- * A - 3.
- * B - 2, 3, 4.
- RSR SUBR ENTRY/EXIT
- SA3 SVB4 RESTORE (B4)
- SB4 X3
- SA3 A3-B1 RESTORE (B3)
- SB3 X3
- SA3 A3-B1 RESTORE (B2)
- SB2 X3
- SA3 A3-B1 READ A3
- SA3 X3+ RESTORE (A3) AND (X3)
- EQ RSRX RETURN
- SVR SPACE 4,15
- ** SVR - SAVE RESERVED REGISTERS.
- *
- * SAVES RESERVED REGISTERS A3, X3, B2, B3, AND B4.
- * THESE REGISTERS MAY LATER BE RESTORED BY
- * EXECUTING *RSR*. NOTE THAT X3 IS NOT SAVED
- * DIRECTLY, BUT IS AUTOMATICALLY RELOADED WHEN
- * A3 IS RESTORED.
- *
- * EXIT (SVA3) = (A3).
- * (SVB2) = (B2).
- * (SVB4) = (B4).
- * (SVB3) = (B3).
- *
- * USES X - 6.
- * A - 6.
- SVR SUBR ENTRY/EXIT
- SX6 A3 SAVE (A3)
- SA6 SVA3
- SX6 B2 SAVE (B2)
- SA6 A6+B1
- SX6 B3+ SAVE (B3)
- SA6 A6+B1
- SX6 B4 SAVE (B4)
- SA6 A6+B1
- EQ SVRX RETURN
- SPACE 4,10
- * COMMON DECKS.
- *CALL COMCCDD
- *CALL COMCCIO
- *CALL COMCCPM
- *CALL COMCLFM
- *CALL COMCSNM
- *CALL COMCSYS
- BUFFERS SPACE 4,10
- ** BUFFER ASSIGNMENTS.
- USE BUFFERS
- PSBF EQU * PSEUDO BUFFER FOR FETS
- FNTB EQU PSBF+PSBFL BUFFER FOR *GETFNT*
- RFL= EQU FNTB+FNTBL
- NPC= EQU 0 FORCE OPERATING SYSTEM PARAMETER FORMAT
- SSM= EQU 0 DECLARE *SSM=* ENTRY POINT
- ERRNG JTFL*100B-RFL= IF OVERFLOW MAXIMUM JOB TERMINATION FL
- MFILES TITLE OVERLAID PRESET.
- PRS SPACE 4,30
- ** PRS - PRESET.
- *
- * *PRS* DETERMINES THE FORMAT OF THE CALLING CONTROL
- * COMMAND, SETS THE ADDRESS OF THE FIRST ARGUMENT
- * TO PROCESS AND CHECKS FOR THE PRESENCE OF NONZERO
- * SEPARATORS (= OR /).
- *
- * ENTRY (B2) = COMMAND WORD ADDRESS.
- *
- * EXIT (X3) = FIRST ARGUMENT.
- * (A3) = ADDRESS OF FIRST ARGUMENT TO PROCESS.
- * (FRMT) = COMMAND FORMAT CODE.
- * TO *ABT* IF ARGUMENT ERROR.
- *
- * USES X - 0, 1, 2, 3, 4, 5, 6.
- * A - 1, 3, 4, 6.
- * B - 1, 3, 4, 5, 6.
- *
- * CALLS MOL, POL.
- *
- * ERROR TO *ABT*.
- PRS SUBR ENTRY/EXIT
- SB1 1 SET CONSTANT B1=1
- RJ MOL MOVE */* OPTION LIST
- SX2 =C* ERROR IN ARGUMENTS.*
- SB4 B0 INITIALIZE FORMAT CODE TO 0
- ERRNZ FMT0 ADJUST IF VALUE CHANGES
- MX0 42
- SA3 ARGR GET FIRST ARGUMENT
- SA4 ACTR GET ARGUMENT COUNT
- SB3 X4+
- ZR B3,PRS1 IF NO ARGUMENTS - FORMAT 0
- SB4 FMT3
- SA4 PRSA GET SPECIAL ARGUMENT VALUE (*)
- BX4 X3-X4
- NZ X4,PRS1 IF ARGUMENT NOT * - FORMAT 3
- SA3 A3+B1
- SB3 B3-B1 ADJUST ARGUMENT COUNT FOR *
- SB4 B1
- ERRNZ FMT1-1 ADJUST IF VALUE CHANGES
- ZR B3,PRS1 IF ONLY * - FORMAT 1
- SB4 B4+B1 SET FORMAT CODE TO 2
- ERRNZ FMT2-FMT1-1 ADJUST IF VALUE CHANGES
- * CHECK COMMAND FORMAT VALIDITY.
- PRS1 SA1 B2 GET CONTROL WORD
- LX4 X1,B4
- PL X4,ABT IF INCORRECT COMMAND FORMAT
- * CHECK SEPARATORS OF ARGUMENTS.
- SA1 A3 GET FIRST ARGUMENT
- SB5 B0
- SX6 B4+ SAVE FORMAT CODE
- SA6 FRMT
- SB6 B4-FMT3
- NZ B6,PRS2 IF NOT FORMAT 3
- MX6 6
- BX4 X6*X1
- SX5 1R*
- LX4 6
- BX4 X4-X5
- ZR X4,ABT IF FIRST CHARACTER OF FILENAME IS *
- PRS2 EQ B5,B3,PRS3 IF END OF ARGUMENTS
- BX4 -X0*X1
- ZR X1,ABT IF BLANK ARGUMENT
- NZ X4,ABT IF SEPARATOR IS = OR /
- SA1 A1+B1
- SB5 B5+B1
- EQ PRS2 CHECK NEXT ARGUMENT
- PRS3 NZ X1,ABT IF NOT ZERO LAST WORD
- RJ POL PROCESS */* OPTION LIST
- EQ PRSX RETURN
- PRSA DATA 0L* SPECIAL ARGUMENT
- MFILES TITLE OVERLAID PRESET SUBROUTINES.
- MOL SPACE 4,20
- ** MOL - MOVE */* OPTION LIST.
- *
- * MOVES THE OPTION LIST DELIMITED BY THE */* SEPARATOR
- * TO A SEPARATE OPTION LIST AND CLEARS IT FROM THE
- * ORIGINAL COMMAND PARAMETER LIST. THE PARAMETER
- * COUNT OF THE REMAINING COMMAND PARAMETER LIST
- * IS ADJUSTED TO REFLECT THE NEW PARAMETER COUNT.
- *
- * ENTRY (B2) = COMMAND WORD ADDRESS.
- *
- * EXIT (CSOC) = COUNT OF */* OPTION LIST PARAMETERS.
- * (TOPS) = */* OPTION LIST.
- * (ACTR) = ADJUSTED PARAMETER COUNT.
- *
- * ERROR TO *ABT* IF NO FILE STATUS SPECIFIED ON *SETFS*.
- *
- * USES X - 0, 1, 2, 6, 7.
- * A - 1, 6, 7.
- * B - 4, 5, 6, 7.
- MOL SUBR ENTRY/EXIT
- SA1 ACTR GET ARGUMENT COUNT
- SB6 B0 CLEAR INDEX
- MX0 42 SET PARAMETER MASK
- SB7 X1+ (B7) = ARGUMENT COUNT
- ZR B7,MOLX IF NO ARGUMENTS, RETURN
- * SEARCH FOR */* DELIMITER IN PARAMETER LIST.
- MOL1 SA1 ARGR+B6 READ ARGUMENT
- SB6 B6+B1 COUNT ARGUMENT
- BX6 -X0*X1 CHECK SEPARATOR
- SX6 X6-1R/
- ZR X6,MOL2 IF */*
- NE B6,B7,MOL1 IF NOT END OF PARAMETER LIST
- SX2 =C* FILE STATUS NOT SPECIFIED.*
- SB5 B2-SFCC
- ZR B5,ABT IF *SETFS* COMMAND
- EQ MOLX RETURN
- * ADJUST PARAMETER COUNT.
- MOL2 BX7 X0*X1 CLEAR */* FROM PARAMETER
- SA7 A1
- SA1 ACTR READ PARAMETER COUNT WORD
- SX6 B6 SET NEW PARAMETER COUNT
- BX1 X0*X1
- NZ X7,MOL3 IF NOT NOW A NULL LAST PARAMETER
- SX6 X6-1 DECREMENT PARAMETER COUNT
- MOL3 BX6 X1+X6 STORE NEW PARAMETER COUNT
- SA6 A1+
- SX7 B7-B6 SET OPTION LIST ARGUMENT COUNT
- SA7 CSOC
- SX7 B0 CLEAR (X7)
- SB4 B0 CLEAR INDEX
- * MOVE OPTIONS TO SEPARATE LIST.
- MOL4 SA1 ARGR+B6 READ OPTION FROM PARAMETER LIST
- SB6 B6+B1 COUNT OPTION
- BX6 X1
- SA6 TOPS+B4 STORE OPTION IN OPTION LIST
- SA7 A1 CLEAR OPTION FROM PARAMETER LIST
- SB4 B4+B1
- NE B6,B7,MOL4 IF NOT END OF LIST
- EQ MOLX RETURN
- CAP SPACE 4,25
- ** CAP - *CLEAR* ARGUMENT PROCESSOR.
- *
- * PROCESSES THE OPTIONAL ARGUMENTS FOR THE *CLEAR*,
- * *RETURN* AND *UNLOAD* COMMANDS. *OP=O* ALLOWED
- * ONLY ON FORMAT 0 OR 1 FOR THESE COMMANDS.
- *
- * ENTRY (OPARG) = *OP=* ARGUMENT.
- * (B4) = FORMAT MODE.
- *
- * EXIT (OPOF) = NON-ZERO IF PROCESSING ONLY OPTICAL DISK
- * FILES AND THE *ZZZZZOD* FILE (*O* OPTION).
- *
- * ERROR TO *ABT* IF INCORRECT ARGUMENT OR FORMAT.
- *
- * USES X - 1, 2, 6.
- * A - 1, 6.
- CAP SUBR ENTRY/EXIT
- SX2 =C+ INCORRECT */* OPTION.+ PRESET ERROR MESSAGE
- SA1 OPARG READ ARGUMENT
- SX6 1RO CLEAR, RETURN OR UNLOAD W/OP=O.
- LX1 6
- BX1 X6-X1
- NZ X1,ABT IF NOT *O* OPTION
- * PROCESS *O* OPTION.
- GT B4,B1,ABT IF NOT FORMAT 0 OR 1.
- SA6 OPOF
- EQ CAPX RETURN
- OAP SPACE 4,25
- ** OAP - *OUT* ARGUMENT PROCESSOR.
- *
- * PROCESSES THE OPTIONAL ARGUMENTS FOR THE *OUT*
- * COMMAND.
- *
- * ENTRY (OPARG) = *OP=* ARGUMENT.
- *
- * EXIT (EOJS) = END-OF-JOB STATUS IF PROCESSING
- * *E* OPTION.
- *
- * ERROR TO *ABT* IF INCORRECT ARGUMENT.
- *
- * USES X - 1, 2, 4, 6.
- * A - 1, 4, 6.
- *
- * MACROS GETEOJS.
- OAP SUBR ENTRY/EXIT
- SX2 =C+ INCORRECT */* OPTION.+ PRESET ERROR MESSAGE
- ZR B4,ABT IF FORMAT CODE = 0
- SA1 OPARG READ ARGUMENT
- SX6 1RE
- LX1 6
- BX6 X6-X1
- NZ X6,ABT IF NOT *E* OPTION
- * CHECK FOR JOB TERMINATION IN PROGRESS.
- GETEOJS OAPA READ END-OF-JOB STATUS
- SA4 OAPA READ REPLY WORD
- SX2 =C+ INCORRECT */* OPTION.+
- SX6 X4-100B CHECK FOR TERMINATION IN PROGRESS
- NG X6,ABT IF TERMINATION NOT IN PROGRESS
- MX2 -3 MASK FOR TERMINATION DISPOSITION
- BX2 -X2*X4
- SX6 X2-NOJT
- SA6 NOJF SET *NOJT* TERMINATION OPTION
- * PROCESS *E* OPTION.
- SX6 X4+ SET END-OF-JOB PROCESSING STATUS
- SA6 EOJS
- EQ OAPX RETURN
- OAPA CON 0 *GETEOJS* REPLY WORD
- SAP SPACE 4,15
- ** SAP - *SETFS* ARGUMENT PROCESSOR.
- *
- * PROCESSES THE ARGUMENTS FOR THE *SETFS* COMMAND.
- *
- * ENTRY (FLST) = SPECIFIED FILE STATUS (DISPLAY CODE).
- *
- * EXIT (FLST) = FILE STATUS (BINARY).
- *
- * ERROR TO *ABT* IF INCORRECT ARGUMENT.
- *
- * USES X - 0, 1, 2, 4, 6.
- * A - 1, 4, 6.
- SAP SUBR ENTRY/EXIT
- SA1 FLST
- SX2 =C* INCORRECT FILE STATUS.*
- MX0 42
- SA4 SAPA
- SAP1 BX6 X0*X4 CHECK TABLE FOR MATCH
- BX6 X1-X6
- ZR X6,SAP2 IF SPECIFIED FILE STATUS FOUND
- SA4 A4+B1
- NZ X4,SAP1 IF NOT END OF TABLE
- EQ ABT PROCESS INCORRECT FILE STATUS
- SAP2 SX6 X4 SAVE FILE STATUS VALUE
- SA6 A1
- EQ SAPX RETURN
- SAPA BSS 0 TABLE OF VALID FILE STATUSES
- VFD 42/0LAD,18/0
- VFD 42/0LNAD,18/NDST
- CON 0
- VAT SPACE 4,15
- ** VAT - *OVWRITE* ARGUMENT PROCESSOR.
- *
- * PROCESSES THE OPTIONAL ARGUMENTS FOR THE *OVWRITE* COMMAND.
- *
- * ENTRY (OPARG) = *OP=* ARGUMENT.
- *
- * EXIT (OVWF) = 0, IF *Z* OPTION SELECTED.
- * 3, IF *X* OPTION SELECTED.
- * (B2) = COMMAND WORD ADDRESS.
- *
- * ERROR TO *ABT* IF INCORRECT ARGUMENT.
- *
- * USES X - 0, 2, 4, 6, 7.
- * A - 4, 6.
- * B - 2, 3, 5.
- VAT SUBR ENTRY/EXIT
- SX2 =C+ INCORRECT */* OPTION.+
- SX6 3 PRESET *X* OPTION
- MX0 -6
- SA4 OPARG LIST OF OPTIONAL PARAMETERS
- SB3 B1 INITIALIZE OPTION COUNTER
- VAT1 LX4 6 RIGHT JUSTIFY CHARACTER
- BX7 -X0*X4
- ZR X7,VAT4 IF END OF OPTIONAL PARAMETERS
- SB5 X7-1RZ
- ZR B5,VAT3 IF *Z* PARAMETER
- SB5 X7-1RX
- ZR B5,VAT2 IF *X* PARAMETER
- SB5 X7-1RR
- NZ B5,ABT IF NOT A LEGAL OPTION
- SB2 OVCR RESET COMMAND
- EQ VAT1 CHECK NEXT OPTION
- VAT2 SA6 OVWF SET *X* OPTION FLAG
- VAT3 SB3 B3-1 DECREMENT OPTION COUNT
- EQ VAT1 PROCESS NEXT OPTION
- VAT4 LT B3,ABT IF INCORRECT OPTION COMBINATION
- EQ VATX RETURN
- POL SPACE 4,15
- ** POL - PROCESS OPTION LIST.
- *
- * CRACKS THE COMMAND OPTIONAL ARGUMENTS
- * AND EXECUTES THE ARGUMENT PROCESSOR DEFINED FOR
- * THE COMMAND.
- *
- * ERROR TO *ABT* IF ARGUMENT ERROR.
- *
- * USES X - 1, 2, 4.
- * A - 1, 4.
- * B - 4, 5, 7.
- *
- * CALLS ARG, IRJ, RSR, SVR.
- *
- * NOTE THE ARGUMENT PROCESSOR SUBROUTINES MUST NOT
- * DESTROY (B4), (A3), OR (X3).
- POL SUBR ENTRY/EXIT
- SA4 CSOC CHECK OPTION LIST PARAMETER COUNT
- ZR X4,POLX IF NULL LIST, RETURN
- SA1 B2+TACW GET ARGUMENT CONTROL WORD
- ZR X1,POL1 IF NO ARGUMENTS ALLOWED
- * PROCESS ARGUMENT LIST.
- RJ SVR SAVE RESERVED REGISTERS
- SB4 X4 SET ARGUMENT COUNT
- SB5 X1 SET ARGUMENT TABLE ADDRESS
- SA4 TOPS READ FIRST ARGUMENT
- RJ ARG CRACK ARGUMENT LIST
- RJ RSR RESTORE RESERVED REGISTERS
- NZ X1,POL1 IF ERROR IN ARGUMENT LIST
- * EXECUTE ARGUMENT PROCESSOR.
- SA1 B2+TACW GET ARGUMENT CONTROL WORD
- AX1 18
- SB7 X1 SET PROCESSOR ADDRESS
- ZR B7,POLX IF NO PROCESSOR DEFINED
- RJ IRJ EXECUTE PROCESSOR
- EQ POLX RETURN
- * PROCESS ARGUMENT ERROR.
- POL1 SX2 =C+ INCORRECT */* OPTION.+
- EQ ABT ABORT
- SPACE 4,10
- * *CLEAR*, *OUT*, *OVWRITE*, *RETURN* AND *UNLOAD*
- * COMMAND ARGUMENT TABLE.
- TOARG BSS 0 ARGUMENT TABLE FOR *COMCARG*
- OP ARG OPARG,OPARG
- ARG
- TSARG SPACE 4,10
- * *SETFS* COMMAND ARGUMENT TABLE.
- TSARG BSS 0
- FS ARG FLST,FLST
- ARG
- MFILES SPACE 4,10
- ** OVERLAID COMMON DECKS.
- *CALL COMCARG
- MFILES SPACE 4,10
- ** TOPS - TABLE OF COMMAND */* OPTIONS.
- TOPS BSS 0 OPTIONS TABLE FWA
- TOPSE EQU TOPS+64 END OF TABLE
- ERRNG RFL=-TOPSE PRESET OVERFLOWS BUFFERS.
- END
cdc/nos2.source/opl871/mfiles.txt ยท Last modified: 2023/08/05 17:24 by Site Administrator