cdc:nos2.source:opl871:pfdump
Table of Contents
PFDUMP
Table Of Contents
- [00005] PFDUMP - PERMANENT FILE DUMP.
- [00010] PERMANENT FILE DUMP UTILITY.
- [00402] MACROS.
- [00404] ARCHIVE - PROCESS ARCHIVE FILE OPERATION.
- [00440] CWWRITE - CONTROL WORD WRITE WORDS.
- [00466] PROGRAM CONSTANT SECTION.
- [00551] MAIN ROUTINES.
- [00601] PCT - PROCESS CATALOG TRACK.
- [00724] GENERAL SUBROUTINES.
- [00726] AAT - ASSIGN ALTERNATE STORAGE TAPE.
- [00791] ALF - ATTACH LOCK FILE.
- [00861] APR - ABORT PROCESSOR.
- [00887] CCR - CHECK CATALOG RESCAN FILE.
- [00921] CDT - COPY FILE DATA FROM ALTERNATE STORAGE TAPE.
- [01051] CFD - COMPLETE FILE DUMP.
- [01101] CID - CHECK INCOMPLETE FILE DUMP.
- [01146] CSI - CHECK SPECIAL USER INDEX.
- [01187] CSP - CHECK SELECTION PARAMETERS.
- [01320] CWW - CONTROL WORD WRITE.
- [01527] DLY - DELAY.
- [01542] DSF - DROP STAGED FILES.
- [01575] DTF - DUMP TAPE RESIDENT FILE.
- [01695] FAF - FLUSH ARCHIVE FILES.
- [01714] FCW - FLUSH BUFFER USING CONTROL WORD WRITE.
- [01738] FTR - FORMAT ALTERNATE STORAGE TAPE REQUEST PARAMETERS.
- [01761] GLF - GET LOCK FILES.
- [01875] GRC - GENERATE *RDF* CATALOG RECORDS.
- [01978] GRE - GENERATE *RDF* EXTRACT RECORD.
- [02046] IFM - ISSUE FILE COUNT MESSAGES.
- [02100] IRF - INITILIZE RESCAN FILES.
- [02128] IRS - INITIALIZE RESCAN FOR STAGED FILES.
- [02211] MMC - MOVE MEMORY VIA *CMU* OR REGISTERS.
- [02328] MRE - MAKE DATA READ LIST ENTRY.
- [02413] OPF - OPEN PERMITS FILE.
- [02442] OPN - OPEN DEVICE FILES.
- [02500] PAF - PROCESS ARCHIVE FILE OPERATION.
- [02529] PAR - POSITION ALTERNATE STORAGE TAPE TO NEXT RECORD.
- [02552] PAT - PROCESS ALTERNATE STORAGE TAPE.
- [02682] PFC - PROCESS FILE CATALOG ENTRY.
- [02804] PFI - PROCESS FILE WITH DUMP INHIBITED.
- [02828] PPD - PROCESS PFC/PERMITS ONLY DUMP.
- [02854] PRL - PROCESS DATA READ LIST.
- [02955] PTF - PROCESS TAPE RESIDENT FILES.
- [03000] RCP - RECALL *PFU* TO READ DATA FILE.
- [03031] RCW - READ ARCHIVE FILE BLOCK CONTROL WORD.
- [03066] RFC - REQUEST FILE COPY FROM TAPE ALTERNATE STORAGE.
- [03116] RFS - REQUEST FILE STAGING.
- [03176] RIP - REPRIEVE INTERRUPT PROCESSOR.
- [03189] RLF - RELEASE LOCK FILES.
- [03259] RMF - RETURN MASTER DEVICE FILES.
- [03272] RPF - READ PERMIT FILE.
- [03411] RPR - READ PRU.
- [03490] SDI - SET DEVICE INHIBIT DATES.
- [03534] SDL - SORT DATA LIST.
- [03572] SDP - SET DATA READ LIST PARAMETERS.
- [03595] SRS - SELECT RIGHT SCREEN.
- [03620] STL - SORT TAPE COPY LIST.
- [03660] TER - TERMINATE ARCHIVE FILE AND RETURN SYSTEM FILES.
- [03690] UCE - UPDATE CATALOG ENTRY.
- [03751] WDB - WRITE DATA BLOCK.
- [03987] WDT - WRITE DUMP TAPE.
- [04066] WRT - WRITE CONTROL WORD AND DATA.
- [04099] COMMON DECKS.
- [04143] MESSAGES.
- [04210] RESERVED LOCATIONS.
- [04270] LKC1 - *MSS* STORAGE EXECUTIVE INTERLOCK CONTROL WORD.
- [04271] LKC2 - *MSE* STORAGE EXECUTIVE INTERLOCK CONTROL WORD.
- [04298] UUCW - UTILITY UPDATE CATALOG ENTRY CONTROL WORD.
- [04316] UULV - UPDATE CATALOG ENTRY LOCATION/VERIFY INFORMATION.
- [04329] FETS.
- [04398] BUFFERS.
- [04412] DLRB - DATA LIST REQUEST BUFFER.
- [04452] PRESET MAIN LOOP.
- [04454] PRS - PRESET PROGRAM.
- [04643] PRESET SUBROUTINES.
- [04645] CDR - CHECK DESTAGE REQUIREMENTS.
- [04873] GRH - GENERATE *RDF* HEADER RECORD.
- [04900] LBL - WRITE PFDUMP ARCHIVE FILE LABEL.
- [04939] SLP - SET LABEL PARAMETERS.
- [05016] CATALOG IMAGE RECORD SUBROUTINES.
- [05018] BCL - BUILD CATALOG LIST.
- [05072] CCI - CREATE CATALOG IMAGE.
- [05325] WIB - WRITE CATALOG IMAGE BLOCK.
- [05381] PRESET MESSAGES.
Source Code
- PFDUMP.txt
- IDENT PFDUMP1,/COMSPFS/OVLB,PFD,01,00
- ABS
- SST
- SYSCOM B1
- TITLE PFDUMP - PERMANENT FILE DUMP.
- SPACE 4,10
- *COMMENT PFDUMP - PERMANENT FILE DUMP.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- SPACE 4,10
- *** PFDUMP - PERMANENT FILE DUMP UTILITY.
- * D. A. HIVELEY 71/09/30.
- * S. T. WORSTELL 72/06/05.
- * P. L. VERELL 79/06/28.
- * G. S. YODER 87/01/31.
- SPACE 4,10
- *** *PFDUMP* IS A PERMANENT FILE UTILITY THAT COPIES FILES STORED
- * ON A PERMANENT FILE DEVICE TO A BACKUP STORAGE FILE. FILES
- * CREATED BY *PFDUMP* MAY BE RELOADED BY THE *PFLOAD* UTILITY
- * PROGRAM.
- *
- * *PFDUMP* MAY BE CALLED BY THE PERMANENT FILE SUPERVISOR *PFS*
- * OR BY COMMAND. SEE *COMSPFS* FOR A DESCRIPTION OF THE
- * PARAMETERS VALID FOR *PFDUMP*.
- *
- * PERMANENT FILE DUMPS ARE CLASSIFIED AS ONE OF THE FOLLOWING
- * TYPES -
- *
- * 1. FULL - NO OPTIONS ARE SPECIFIED EXCEPT FOR FAMILY NAME OR
- * PACK NAME, MASTER DEVICE NUMBER (*DN*) OR TRUE DEVICE
- * NUMBER (*TD*). IF *DN* IS SPECIFIED, IT MUST BE A MASTER
- * DEVICE. IF A DEVICE NUMBER IS NOT SPECIFIED, THE ENTIRE
- * FAMILY WILL BE PROCESSED.
- *
- * 2. INCREMENTAL - ALL FILES CHANGED SINCE SOME SPECIFIED DATE
- * AND TIME (USUALLY THE PREVIOUS INCREMENTAL OR FULL DUMP)
- * ARE DUMPED USING THE *OP=M*, *AD* AND *AT* OPTIONS.
- * THE ONLY OTHER OPTIONS THAT ARE SPECIFIED ARE THOSE FOR A
- * FULL DUMP.
- *
- * FULL AND INCREMENTAL DUMPS ARE USED TOGETHER TO RESTORE A
- * PERMANENT FILE BASE AFTER A DEVICE FAILURE. IF FULL DUMPS
- * ARE PERFORMED BY DEVICE, THE CORRESPONDING INCREMENTAL DUMPS
- * SHOULD BE PERFORMED USING THE SAME DEVICE NUMBERS.
- *
- * 3. PARTIAL - ANY OTHER OPTIONS ARE SPECIFIED TO RESTRICT THE
- * FILES SELECTED TO BE DUMPED. PARTIAL DUMPS ARE NOT
- * GENERALLY USED AS PART OF A PERMANENT FILE BACKUP SCHEME.
- *
- *
- * PERMANENT FILE DUMPS DO NOT REQUIRE AN IDLE SYSTEM. HOWEVER,
- * EACH CATALOG TRACK IS INTERLOCKED WHILE THE FILES CATALOGED
- * THERE ARE DUMPED. DURING THIS TIME NO USER MAY PEFORM
- * PERMANENT FILE OPERATIONS ON THOSE FILES, ALTHOUGH A
- * USER CAN CONTINUE TO ACCESS A DIRECT ACCESS FILES WHICH
- * WAS ATTACHED EARLIER. *PFDUMP* WILL NOT DUMP ANY FILE
- * WHICH IS CURRENTLY ATTACHED IN WRITE, MODIFY OR APPEND
- * MODE; A FILE CURRENTLY ATTACHED IN UPDATE MODE WILL BE
- * DUMPED EXCEPT ON A DESTAGE DUMP (*DT* OPTION).
- *
- * SECURITY CONSIDERATIONS.
- *
- * IN AN UNSECURED SYSTEM, *PFDUMP* WILL USE THE *LA* AND *UA*
- * PARAMETERS AS SELECTION CRITERIA ALONG WITH ANY OTHER
- * SPECIFIED PARAMETERS.
- *
- * IN A SECURE SYSTEM, *PFDUMP* MUST ENSURE TWO THINGS. FIRST,
- * THAT THE RANGE OF ACCESS LEVELS DUMPED IS WITHIN THE SYSTEM
- * ACCESS LIMITS. SECOND, THAT THE EQUIPMENT TO WHICH THE
- * ARCHIVE (AND VERIFY) FILES ARE ASSIGNED HAVE APPROPRIATE
- * ACCESS LEVEL LIMITS TO ALLOW PROCESSING OF ALL POTENTIALLY
- * DUMPED FILES.
- *
- * IF THE *LA* AND *UA* PARAMETERS ARE USED TO SELECT THE RANGE
- * OF ACCESS LEVELS, *PFS* HAS VERIFIED THAT THEY ARE WITHIN
- * THE SYSTEM ACCESS LEVEL LIMITS. IF THESE PARAMETERS ARE NOT
- * USED, THE RANGE IS CALCULATED AS THE MAXIMUM RANGE DEFINED BY
- * THE DEVICE ACCESS LEVEL LIMITS OF ALL THE DEVICES TO BE
- * PROCESSED BY *PFDUMP*.
- SPACE 4,30
- *** MESSAGE LEGEND.
- *
- * THE FOLLOWING LEGEND DEFINES PARAMETERS THAT ARE USED IN MANY
- * OF THE *PFDUMP* ERROR MESSAGES. THE DESCRIPTIVE CHARACTER
- * STRINGS DEFINED HERE ARE REPLACED BY THEIR ACTUAL VALUE WHEN
- * A PARTICULAR MESSAGE IS ISSUED. THE _ CHARACTER DOES NOT
- * APPEAR IN ACTUAL MESSAGES BUT IS USED IN THE DOCUMENTATION AS
- * A DELIMITER TO AVOID AMBIGUITIES.
- *
- * DD = DEVICE NUMBER.
- * EEE = EST ORDINAL.
- * MMMMMM = NUMBER OF FILES
- * NNNNNNN = PERMANENT FILE NAME.
- * RRRRRRRR = RELATIVE PRU OF FILE CONTAINING AN ERROR.
- * UUUUUU = USER INDEX.
- SPACE 4,10
- *** INFORMATIVE DAYFILE MESSAGES.
- *
- * * MMMMMM FILES SKIPPED WITH ERRORS.*
- * THE NUMBER OF SELECTED FILES WHICH COULD NOT BE
- * DUMPED.
- *
- * * MMMMMM FILES DUMPED WITH PERMIT/DATA ERRORS.*
- * THE NUMBER OF FILES ON WHICH DISK ERRORS WERE
- * ENCOUNTERED DURING THE DUMP PROCESS. IF THESE FILES
- * ARE RELOADED, *PFLOAD* WILL SET THE APPROPRIATE ERROR
- * FLAGS IN THE FILE-S *PFC* ENTRY (SEE *EO* OPTION
- * DOCUMENTATION).
- *
- * * MMMMMM *PFC ONLY* FILES DUMPED.
- * THE NUMBER OF ALTERNATE STORAGE RESIDENT FILES FOR
- * WHICH ONLY THE *PFC* AND PERMITS WERE DUMPED.
- *
- * * MMMMMM FILES SELECTED FOR *PFC ONLY* DUMP.*
- * THE NUMBER OF ALTERNATE STORAGE RESIDENT FILES
- * SELECTED TO HAVE ONLY THE *PFC* AND PERMITS DUMPED
- * WHEN THE *IP* OPTION WAS SPECIFIED.
- *
- * * MMMMMM FILES DUMPED.*
- * THE NUMBER OF FILES DUMPED TO THE ARCHIVE FILE.
- *
- * * MMMMMM FILES SELECTED FOR DUMP.*
- * THE NUMBER OF FILES SELECTED FOR DUMP WHEN THE *IP*
- * OPTION WAS SELECTED.
- *
- * * MMMMMM DUMPED FILES STAGED.*
- * THE NUMBER OF FILES WHICH WERE STAGED FROM ALTERNATE
- * STORAGE MEDIA TO DUMP THE FILE DATA.
- *
- * * MMMMMM DUMPED FILES PURGED.*
- * THE NUMBER OF FILES PURGED AFTER BEING DUMPED WHEN
- * *OP=P* WAS SPECIFIED.
- *
- * * MMMMMM DUMPED FILES NOT PURGED.*
- * THE NUMBER OF FILES WHICH WERE DUMPED BUT NOT PURGED
- * WHEN THE *OP=P* OPTION WAS SPECIFIED. THIS WILL OCCUR
- * WHEN DATA OR PERMIT ERRORS ARE ENCOUNTERED DURING A
- * FILE DUMP OR WHEN A FILE IS PURGED BY A USER BETWEEN
- * THE TIME OF THE FILE DUMP AND THE *PFDUMP* PURGE
- * PROCESSING.
- *
- * * MMMMMM DUMPED FILES DESTAGED.*
- * THE NUMBER OF DUMPED FILES FOR WHICH THE TAPE
- * ALTERNATE STORAGE INFORMATION WAS SET IN THE FILE-S
- * *PFC* ENTRY WHEN A DESTAGE DUMP (DT OPTION) WAS
- * SPECIFIED.
- *
- * * MMMMMM DUMPED FILES NOT DESTAGED.*
- * THE NUMBER OF DUMPED FILES FOR WHICH THE TAPE
- * ALTERNATE STORAGE INFORMATION WAS NOT SET IN THE
- * FILE-S *PFC* ENTRY WHEN A DESTAGE DUMP (DT OPTION) WAS
- * SPECIFIED. THIS WILL OCCUR WHEN DATA OR PERMIT ERRORS
- * ARE ENCOUNTERED DURING A FILE DUMP OR WHEN A FILE IS
- * MODIFIED OR PURGED BY A USER BETWEEN THE TIME OF THE
- * FILE DUMP AND THE *PFDUMP* ALTERNATE STORAGE UPDATE
- * PROCESSING.
- *
- * * NO FILES PROCESSED.*
- * NO FILES WERE DUMPED ON THIS DEVICE.
- *
- * * PFDUMP COMPLETE.*
- * *PFDUMP* TERMINATED WITHOUT FATAL ERRORS.
- SPACE 4,10
- *** FATAL ERROR DAYFILE MESSAGES.
- *
- * THESE ERRORS RESULT IN *PFDUMP* ABORTING.
- *
- * * ACCESS LEVEL LIMITS OUT OF RANGE.*
- * THE DEVICE ACCESS LEVELS OF THE DEVICES THAT WILL BE
- * PROCESSED CONTAIN A RANGE OF ACCESS LEVELS OUTSIDE THE
- * SYSTEM ACCESS LEVEL LIMITS.
- *
- * * ACCESS LEVELS NOT ALLOWED ON ARCHIVE FILE EQUIPMENT.*
- * THE RANGE OF ACCESS LEVELS TO BE DUMPED IS NOT ALLOWED
- * ON THE EQUIPMENT WHERE THE ARCHIVE FILE, THE VERIFY
- * FILE, THE RELEASE DATA FILE, OR THE SUMMARY FILE
- * RESIDES.
- *
- * * INTERNAL ERROR ON FILE ZZZZZOD.*
- * PFDUMP WAS NOT ABLE TO LOCATE THE SPECIFIED OPTICAL
- * DISK ARCHIVE FILE IN THE *ZZZZZOD* FILE.
- *
- * * NO FILES SELECTED.*
- * THE FILE SELECTION PARAMETERS SPECIFIED FOR THE DUMP
- * WERE SUCH THAT NO DEVICES IN THE SYSTEM COULD CONTAIN
- * THE SPECIFIED FILES. THIS MAY BE CAUSED BY
- * CONFLICTING SELECTION PARAMETERS.
- *
- * * NT/CT/AT TAPE OR OD REQUIRED FOR DESTAGE.*
- * THE FILE SPECIFIED FOR EITHER THE ARCHIVE FILE OR THE
- * VERIFY FILE A DESTAGE DUMP WAS NOT AN *NT*, *CT* OR
- * *AT* TAPE OR AN *OD* OPTICAL DISK DEVICE.
- *
- * * OPTICAL DISK LABEL NOT VALID FOR DESTAGE.*
- * THE SPECIFIED OPTICAL DISK ARCHIVE FILE EITHER DOES
- * NOT HAVE A RECORDED FILE NAME OF *PFARCHIVE*, DOES NOT
- * HAVE AN OWNER IDENTIFIER OF *SYSTEMX*, OR DOES NOT
- * HAVE A GROUP IDENTIFIER EQUAL TO THE FAMILY OF THE
- * ARCHIVE.
- *
- * * PARTITION NOT VALID FOR DESTAGE.*
- * THE SPECIFIED OPTICAL DISK ARCHIVE FILE WAS NOT ON THE
- * *DEFAULT* PARTITION.
- *
- * * SELECTED MASTER OR TRUE DEVICE NOT FOUND.*
- * THE DEVICE SPECIFIED WITH THE *DN* OR *TD* PARAMETER
- * WAS NOT FOUND.
- *
- * * VERSION NUMBER EXCEEDED FOR DESTAGE.*
- * THE VERSION NUMBER OF THE ARCHIVE FILE IS GREATER THAN
- * 4095.
- *
- * * VSN NOT VALID FOR DESTAGE.*
- * THE TAPE OR OPTICAL DISK VSN WAS NOT IN THE CORRECT
- * FORMAT FOR DESTAGE. VSNS MUST BE TWO LETTERS FOLLOWED
- * BY 4 NUMBERS OF THE RANGE (0 - 4095).
- *
- SPACE 4,10
- *** NON-FATAL ERROR DAYFILE MESSAGES.
- *
- * SEE *MESSAGE LEGEND* ABOVE FOR A DESCRIPTION OF PARAMETERS
- * APPEARING IN THESE MESSAGES.
- *
- *
- * * ALTERNATE STORAGE TAPE READ ERROR, FN=NNNNNNN, UI=UUUUUU.*
- * A READ ERROR OCCURRED WHEN COPYING FILE DATA FROM AN
- * ALTERNATE STORAGE TAPE. THE FILE DATA IS TRUNCATED AT
- * THE POINT OF THE ERROR.
- *
- * * BAD SYSTEM SECTOR, FN=NNNNNNN, UI=UUUUUU.*
- * THE SYSTEM SECTOR FOR THE SPECIFIED FILE IS NOT IN THE
- * CORRECT FORMAT. THE FILE IS NOT DUMPED.
- *
- * * CATALOG READ ERROR, UI=UUUUUU.
- * A MASS STORAGE ERROR OCCURRED WHILE READING THE
- * PERMANENT FILE CATALOG TRACK FOR THE INDICATED USER
- * INDEX. ANY REMAINING FILES CATALOGED ON THE AFFECTED
- * TRACK WILL NOT BE DUMPED.
- *
- * * CATALOG UPDATE ERROR, FN=NNNNNNN, UI=UUUUUU.*
- * A DISK READ/WRITE ERROR HAS OCCURRED WHILE ATTEMPTING
- * TO UPDATE THE UTILITY CONTROL DATE/TIME OR THE *TFLOK*
- * FLAG IN THE CATALOG ENTRY OF THE SPECIFIED FILE.
- * ERROR IDLE STATUS IS SET FOR THE DEVICE IF A WRITE
- * ERROR OCCURRED AND DATA ON THE CATALOG FILE HAS BEEN
- * CORRUPTED.
- *
- * * DATA READ ERROR, FN=NNNNNNN, UI=UUUUUU.*
- * A MASS STORAGE ERROR OCCURRED WHEN DUMPING THE DATA
- * OF FILE NNNNNNN. IF NO DATA WAS TRANSFERRED OR IF THE
- * FILE DUMP IS SUPPRESSED WITH THE *EO* OPTION, THE FILE
- * IS TRUNCATED AT THE POINT OF THE ERROR. IF THE BAD
- * SECTOR DATA WAS TRANSFERRED AND THE FILE DUMP IS NOT
- * SUPPRESSED, THE REMAINDER OF THE FILE IS DUMPED IF
- * POSSIBLE. IN EITHER CASE, IF THE FILE IS LATER
- * RELOADED BY *PFLOAD*, THE DATA ERROR FLAG WILL BE SET
- * IN THE FILE-S PFC ENTRY.
- *
- * * DEVICE NOT FOUND, FN=NNNNNNN, UI=UUUUUU, DN_DD.*
- * THE SPECIFIED DIRECT ACCESS FILE, RESIDENT ON DEVICE
- * *DD*, WAS TO BE DUMPED BUT DEVICE *DD* COULD NOT BE
- * FOUND IN THE SYSTEM. THE FILE IS NOT DUMPED.
- *
- * * FILE BUSY, FN=NNNNNNN, UI=UUUUUU.*
- * THE SPECIFIED DIRECT ACCESS FILE WAS BUSY IN WRITE,
- * MODIFY, OR APPEND MODE (ANY DUMP) OR WAS BUSY IN ANY
- * WRITEABLE MODE (DESTAGE DUMP - *TA* OPTION). THE FILE
- * IS NOT DUMPED.
- *
- * * FILE NOT FOUND ON ALTERNATE STORAGE TAPE, FN=NNNNNNN,
- * UI= UUUUUU.*
- * THE DATA FOR THE SPECIFIED FILE WAS NOT FOUND ON THE
- * ASSIGNED ALTERNATE STORAGE TAPE. THE FILE IS NOT
- * DUMPED.
- *
- * * FILE LENGTH ERROR, FN=NNNNNNN, UI=UUUUUU.*
- * THE NUMBER OF DATA SECTORS READ FOR THE INDICATED FILE
- * DID NOT MATCH THE LENGTH DETERMINED FROM THE TRT
- * (DIRECT ACCESS) OR FROM THE CATALOG (INDIRECT ACCESS).
- * IF THE DATA READ EXCEEDS THE DETERMINED LENGTH, THE
- * EXCESS SECTORS ARE TRUNCATED.
- *
- * * NO DISK OR ALTERNATE STORAGE POINTERS FOR FILE, FN=NNNNNNN,
- * UI=UUUUUU.*
- * THE SPECIFIED FILE HAS NEITHER A DISK IMAGE NOR AN
- * ALTERNATE STORAGE IMAGE. THE FILE IS NOT DUMPED.
- *
- * * PERMIT FORMAT ERROR, FN=NNNNNNN, UI=UUUUUU.*
- * THE LENGTH OF A PERMIT SECTOR IS INCORRECT OR THE USER
- * INDEX CONTAINED IN A PERMIT SECTOR DID NOT MATCH THE
- * USER INDEX OF THE FILE. NO FURTHER PERMITS ARE DUMPED
- * FOR THAT FILE. IF THE FILE IS LATER LOADED BY
- * *PFLOAD*, THE PERMITS ERROR FLAG WILL BE SET IN THE
- * FILE-S PFC ENTRY.
- *
- * * PERMIT RANDOM INDEX ERROR, FN=NNNNNNN, UI=UUUUUU.*
- * A PERMIT RANDOM INDEX FOR THE INDICATED FILE IS NOT
- * WITHIN THE PERMITS CHAIN. NO FURTHER PERMITS ARE
- * DUMPED FOR THAT FILE. IF THE FILE IS LATER LOADED BY
- * *PFLOAD*, THE PERMITS ERROR FLAG WILL BE SET IN THE
- * FILE-S PFC ENTRY.
- *
- * * PERMIT READ ERROR, FN=NNNNNNN, UI=UUUUUUU.*
- * A MASS STORAGE ERROR OCCURRED WHEN READING PERMITS FOR
- * THE INDICATED FILE. NEITHER THE BAD PERMIT SECTOR NOR
- * ANY FOLLOWING IT ARE DUMPED FOR THAT FILE. IF THE
- * FILE IS LATER LOADED BY *PFLOAD*, THE PERMITS ERROR
- * FLAG WILL BE SET IN THE FILE-S PFC ENTRY.
- *
- * * STAGED FILE RESCAN TERMINATED, FN=NNNNNNN, UI=UUUUUU.*
- * ISSUED FOR EACH FILE NOT DUMPED DUE TO THE OPERATOR
- * DISCONTINUING THE RESCAN OF A GIVEN CATALOG TRACK FOR
- * STAGED FILES.
- *
- * * UNABLE TO STAGE FILE, FN=NNNNNNN, UI=UUUUUU.*
- * A CARTRIDGE OR TAPE ALTERNATE STORAGE ERROR CONDITION
- * PREVENTS THE FILE FROM BEING STAGED AT THIS TIME. THE
- * PFC AND PERMITS ONLY ARE DUMPED FOR THIS FILE.
- *
- * * ZERO LENGTH FILE, FN=NNNNNNN, UI=UUUUUU.*
- * THE SPECIFIED FILE EITHER HAS NO SYSTEM SECTOR OR NO
- * EOI SECTOR. THE FILE IS NOT DUMPED.
- SPACE 4
- *** OPERATOR MESSAGES.
- *
- * * CLEARING PF ACTIVITY COUNT.*
- * *PFDUMP* IS WAITING FOR *PFU* TO DECREMENT THE
- * PERMANENT FILE ACTIVITY COUNT SINCE DUMPING HAS BEEN
- * COMPLETED.
- *
- * *DUMPING (FILENAME) (USER INDEX)*
- *
- * * GENERATING CATALOG IMAGE.*
- * THE CATALOG IMAGE RECORD IS BEING WRITTEN TO THE
- * ARCHIVE FILE (INCREMENTAL DUMP).
- * INDICATES THE FILE CURRENTLY BEING DUMPED.
- *
- * * RESCAN CATALOG TRACK FOR STAGED FILES.*
- * * THE RIGHT SCREEN LISTS YOUR OPTIONS.* - *PFDUMP* IS
- * RESCANNING THE PREVIOUSLY PROCESSED CATALOG TRACK
- * SEARCHING FOR STAGED FILES NEWLY LINKED TO THEIR
- * CATALOG ENTRIES.
- *
- * THE FOLLOWING RIGHT SCREEN DISPLAY REMINDS THE
- * OPERATOR HOW TO DISCONTINUE OR CONTINUE THE RESCAN OF
- * A GIVEN CATALOG TRACK FOR STAGED FILES.
- *
- * RESCAN OPTIONS
- *
- * ENTER K.RO.
- *
- * RO DESCRIPTION
- *
- * GO CONTINUE RESCANNING.
- * SKIP SCAN NEXT CATALOG TRACK.
- *
- * * SETTING PF ACTIVITY COUNT.*
- * *PFDUMP* IS WAITING FOR *PFU* TO INCREMENT THE
- * PERMANENT FILE ACTIVITY COUNT BEFORE DUMPING A DEVICE.
- *
- * * WAIT FOR ALTERNATE STORAGE INTERLOCK.*
- * *PFDUMP* IS ATTEMPTING TO ATTACH ALTERNATE STORAGE
- * CATALOG FILES TO INSURE THEIR INCLUSION ON THE DUMP.
- *
- * * WAIT FOR CATALOG INTERLOCK.*
- * *PFDUMP* IS WAITING FOR *PFU* TO SET A CATALOG TRACK
- * INTERLOCK BEFORE DUMPING FILES CATALOGED ON THAT
- * TRACK.
- *
- * * WAIT FOR FILE STAGING.*
- * *PFDUMP* HAS GONE INTO RECALL AND RELEASED ALL CATALOG
- * TRACK INTERLOCKS TO ALLOW THE ALTERNATE STORAGE
- * EXECUTIVE(S) TO LINK ANY STAGED FILES TO THEIR
- * RESPECTIVE CATALOG ENTRIES.
- SPACE 4,10
- * COMMON DECKS.
- *CALL COMCMAC
- *CALL COMCCMD
- *CALL COMCDCM
- *CALL COMSACC
- *CALL COMSLFD
- *CALL COMSMLS
- *CALL COMSMMF
- *CALL COMSMST
- QUAL COMSMTX
- *CALL COMSMTX
- QUAL *
- *CALL COMSPFM
- LIST X
- *CALL COMSPFS
- LIST *
- *CALL COMSPFU
- *CALL COMSPRD
- *CALL COMSRPV
- *CALL COMSPRO
- *CALL COMSSFM
- *CALL COMSVER
- QUAL TFM
- *CALL COMSTFM
- QUAL *
- TITLE MACROS.
- ARCHIVE SPACE 4,20
- ** ARCHIVE - PROCESS ARCHIVE FILE OPERATION.
- *
- * ARCHIVE FNC,P1,P2
- *
- * FNC = FUNCTION CODE MNEMONIC.
- * WRITEW = WRITE WORDS ON ARCHIVE FILE.
- * P1 = WORKING BUFFER ADDRESS.
- * P2 = WORD COUNT.
- * WRITER = WRITE EOR ON ARCHIVE FILE. (NO PARAMETERS).
- * WRITEF = WRITE EOF ON ARCHIVE FILE. (NO PARAMETERS).
- * P1 = FIRST PARAMETER.
- * P2 = SECOND PARAMETER.
- *
- * USES B - 6, 7.
- *
- * CALLS PAF.
- PURGMAC ARCHIVE
- ARCHIVE MACRO FNC,P1,P2
- MACREF ARCHIVE
- .1 SET 0
- ECHO 0,F=(WRITEW,WRITER,WRITEF),B6P=(P1,0,17B),B7P=(P2,-1,-1
- ,)
- MATCH IFC EQ,$F$FNC$
- R= B6,B6P
- R= B7,B7P
- RJ PAF
- .1 SET 1
- STOPDUP
- MATCH ENDIF
- ENDD
- IFNE .1,1,1
- ERR ARCHIVE - INCORRECT FUNCTION CODE.
- ENDM
- CWWRITE SPACE 4,20
- ** CWWRITE - CONTROL WORD WRITE WORDS.
- *
- * CWWRITE FET,BUF,BUFL
- *
- * FET = FET ADDRESS FOR FILE.
- * BUF = WORKING BUFFER ADDRESS.
- * BUFL = LENGTH OF WORKING BUFFER.
- *
- * *BUFL* WORDS ARE TRANSFERRED FROM THE WORKING BUFFER *BUF* TO
- * THE CIRCULAR BUFFER. BUFFER CONTROL WORDS ARE ADDED AS
- * NECESSARY.
- *
- * USES X - 2.
- * B - 6, 7.
- *
- * CALLS CWW.
- PURGMAC CWWRITE
- CWWRITE MACRO FET,BUF,BUFL
- MACREF CWWRITE
- R= B6,BUF
- R= B7,BUFL
- R= X2,FET
- RJ CWW
- ENDM
- TITLE PROGRAM CONSTANT SECTION.
- SPACE 4,10
- * MISCELLANEOUS CONSTANTS.
- BFAC EQU 1000B BLOCKING FACTOR
- DFAC EQU 2500B CATALOG TRACK RESCAN DELAY FACTOR
- DLEMX EQU 100B MAXIMUM READ DATA LIST ENTRIES
- MSTEL EQU 2 MST TABLE ENTRY LENGTH
- MXLRR EQU 5 RETRY LIMIT FOR ARCHIVE FILE LABEL READ
- NWCM EQU 100B NUMBER OF WORDS IN A *CMU* MOVE
- ERRNZ NWCM-NWCM/10B*10B CHARACTER COUNT = MULTIPLE OF 20B
- NWPR EQU 100B NUMBER WORDS/PRU
- NWCP EQU NWPR+2 NUMBER WORDS/*CIO* CONTROL WORD PRU
- TCRQL EQU 3 LENGTH OF TAPE COPY REQUEST ENTRY
- * BUFFER LENGTHS.
- CATBL EQU 10*NWCP+1 CATALOG BUFFER LENGTH
- CBUFL EQU 10*NWPR CATALOG WORKING STORAGE LENGTH
- DBUFL EQU 12001B DATA BUFFER LENGTH
- DBUFHL EQU 1101B DATA WORKING STORAGE LENGTH
- DLRBL EQU DLEMX+1 DATA LIST REQUEST BUFFER LENGTH
- DLCBL EQU DLEMX*NWCE DATA LIST CATALOG BUFFER LENGTH
- DLDBL EQU DLEMX DATA LIST DISK ADDRESS BUFFER LENGTH
- LKBUFL EQU 401B LOCK BUFFER LENGTH
- MSFBL EQU 10001B *COMCMSF* SORT FILES BUFFER LENGTH
- ODEBL EQU 20B OPTICAL DISK EXTENSION BUFFER LENGTH
- ODFBL EQU 401B OPTICAL DISK MOUNT FILE BUFFER LENGTH
- OUTBL EQU 1001B OUTPUT FILE BUFFER LENGTH
- PBUFL EQU NWPR+1 PERMIT BUFFER LENGTH
- PHBUFL EQU NWPR PERMIT WORKING STORAGE LENGTH
- PFLBL EQU 1001B PROCESSED FILES FILE BUFFER LENGTH
- PFRBL EQU NWPR+1 *PFM* REQUEST FILE BUFFER LENGTH
- RBUFL EQU 4011B RDF BUFFER LENGTH
- RDFHL EQU 8 RDF WORKING STORAGE LENGTH
- REQBL EQU 101B FILE STAGING REQUEST LIST BUFFER LENGTH
- RESBL EQU 101B RESCAN SELECTION SCREEN BUFFER LENGTH
- SABFL EQU 1000B SUMMARY FILE ASSEMBLY BUFFER LENGTH
- SRTBL EQU 20000B SORT BUFFER LENGTH
- SBTCC EQU SRTBL/TCRQL MAXIMUM TAPE COPY REQUESTS IN *SRTB*
- SBTCL EQU SBTCC*TCRQL LENGTH OF TAPE COPY REQUESTS IN *SRTB*
- SUMBL EQU 1401B SUMMARY FILE BUFFER LENGTH
- TBUFL EQU 30061B ARCHIVE (TAPE) FILE BUFFER LENGTH
- TCLBL EQU 1001B TAPE COPY FILE LIST BUFFER LENGTH
- VBUFL EQU 30061B VERIFY FILE BUFFER LENGTH
- * ARCHIVE FILE CONTROL WORD VALUES.
- LCWC EQU 01000B LABEL CONTROL WORD
- COCW EQU 10000B CATALOG ONLY CONTROL WORD
- CCWC EQU 11000B CATALOG CONTROL WORD
- PMCW EQU 20000B PERMIT CONTROL WORD
- PRCW EQU 21000B PERMIT RECORD CONTROL WORD
- DCWC EQU 30000B DATA CONTROL WORD
- DRCW EQU 31000B DATA RECORD CONTROL WORD
- DFCW EQU 32000B DATA FILE CONTROL WORD
- DSCW EQU 34000B DATA SYSTEM SECTOR CONTROL WORD
- ERCW EQU 47000B END OF REEL CONTROL WORD
- CICW EQU 50000B CATALOG IMAGE CONTROL WORD
- CRWC EQU 51000B CATALOG IMAGE RECORD CONTROL WORD
- CFCW EQU 52000B CATALOG IMAGE FILE CONTROL WORD
- EODC EQU 77000B END OF DUMP CONSTANT
- * RELEASE DATA FILE (RDF) CONTROL WORD VALUES.
- HCWD EQU 1000B HEADER RECORD CONTROL WORD
- ECWD EQU 2007B EXTRACT RECORD CONTROL WORD
- CCWD EQU 3000B MSF CATALOG RECORD CONTROL WORD
- * *SETPFP* OPTION CONSTANTS.
- FMPR EQU 10B FAMILY NAME PARAMETER FLAG
- PKPR EQU 4 PACKNAME PARAMETER FLAG
- UNPR EQU 2 USER NAME PARAMETER FLAG
- UIPR EQU 1 USER INDEX PARAMETER FLAG
- * *COMSPFS* EQUIVALENCES.
- CPAR EQU /COMSPFS/CPL CONVERTED PARAMETER LIST
- IDSA EQU /COMSPFS/PADR
- TITLE MAIN ROUTINES.
- ** MAIN PROGRAM.
- *
- * EXIT TO *END*.
- *
- * CALLS GLF, GRC, OPN, PCF, PCT, PFR, PRS, PSF, PTF, RLF, RMF,
- * SDI, SNC, SND, TER.
- *
- * MACROS MESSAGE, RETURN, SETPFP.
- ORG /COMSPFS/OVLB
- PFD RJ PRS PRESET PROGRAM
- * PROCESS NEXT DEVICE.
- PFD1 RJ SND SET NEXT DEVICE
- ZR X1,PFD4 IF NO MORE DEVICES
- RJ OPN OPEN DEVICE FILES
- RJ GLF GET LOCK FILES
- * PROCESS CATALOG TRACK.
- PFD2 RJ SNC SET NEXT CATALOG TRACK
- RJ PCF POSITION CATALOG FILE
- NG X5,PFD3 IF END OF CATALOG TRACKS
- RJ PCT PROCESS CATALOG TRACK
- EQ PFD2 SET NEXT CATALOG TRACK
- * GENERATE *RDF* EXTRACT RECORDS AND RELEASE LOCK FILES.
- PFD3 RJ GRC GENERATE *RDF* CATALOG RECORDS
- RJ RLF RELEASE LOCK FILES
- RJ RMF RETURN MASTER DEVICE FILES
- EQ PFD1 SET NEXT DEVICE
- * PROCESS TAPE ALTERNATE STORAGE RESIDENT FILES.
- PFD4 RJ PTF PROCESS TAPE RESIDENT FILES
- * END OF DUMP.
- RJ TER TERMINATE ARCHIVE FILE AND RETURN FILES
- RJ SDI SET DEVICE INHIBIT DATES
- RJ PSF PROCESS SORTED FILE AND STATISTICS OUTPUT
- RJ PFR PROCESS *PFM* REQUESTS
- EQ END TERMINATE
- PCT SPACE 4,20
- ** PCT - PROCESS CATALOG TRACK.
- *
- * EXIT ALL SELECTED FILES CATALOGED ON THIS CATALOG TRACK
- * DUMPED EXCEPT FOR FILES WHICH WILL BE COPIED FROM
- * ALTERNATE STORAGE TAPES.
- *
- * USES X - 1, 2, 6, 7.
- * A - 1, 6, 7.
- * B - 2.
- *
- * CALLS CSI, CCR, CSP, GRE, IRS, MRE, PFI, PPD, PRL, RCS, RFC,
- * RFS, SCA.
- *
- * MACROS MOVE, READCW.
- PCT SUBR ENTRY/EXIT
- * INITIALIZE NORMAL CATALOG TRACK SCAN.
- SX6 B0+ SET NORMAL SCAN MODE
- SX7 B0+ SET FIRST CATALOG ON TRACK
- * INITIALIZE CATALOG SCAN.
- PCT1 SA6 SCAN SET SCAN MODE
- SA7 CTIN SET INITIAL CATALOG TRACK INDEX
- SX6 B0+
- SA6 RSTS CLEAR STAGE REQUEST
- SA1 CATS+FTFT
- SX6 X1
- SA6 A1+B1 SET IN = FIRST
- SA6 A1+2 SET OUT = FIRST
- READCW CATS,17B INITIATE CATALOG READ
- * READ CATALOG SECTOR.
- PCT2 SA0 CSBF INITIALIZE CATALOG ADDRESS
- SX2 CATS SET FET ADDRESS
- RJ RCS READ CATALOG SECTOR
- ZR X1,PCT3 IF READ COMPLETE
- PL X1,PCT11 IF END OF CATALOG TRACK OR FATAL ERROR
- SA1 CTIN
- SX6 X1+4 COUNT CATALOG ENTRIES IN BAD SECTOR
- SA6 A1
- EQ PCT2 READ NEXT SECTOR
- * CHECK FILE SELECTED.
- PCT3 SA1 SCAN
- NZ X1,PCT4 IF CATALOG RESCAN
- RJ CSI CHECK SPECIAL USER INDEX
- ZR X6,PCT10 IF FILE NOT TO BE PROCESSED
- SA1 CPAR+/COMSPFS/CPRD
- ZR X1,PCT5 IF RDF NOT REQUESTED
- RJ GRE GENERATE RDF EXTRACT RECORD
- EQ PCT5 CHECK SELECTIVE PARAMETERS
- PCT4 RJ CCR CHECK CATALOG RESCAN FILE
- ZR X6,PCT10 IF FILE NOT TO BE PROCESSED
- NG X6,PCT11 IF END OF RESCAN FILE
- PCT5 RJ CSP CHECK SELECTION PARAMETERS
- ZR X6,PCT10 IF FILE NOT TO BE PROCESSED
- SA3 CPAR+/COMSPFS/CPIP
- SB2 X6-2
- NZ X3,PCT9 IF PROCESSING INHIBITED
- RJ SCA SET CATALOG DISK ADDRESS
- ZR B2,PCT6 IF ONLY PFC/PERMITS TO BE DUMPED
- EQ B2,B1,PCT7 IF STAGE FILE FROM ALTERNATE STORAGE
- GT B2,B1,PCT8 IF COPY FILE FROM ALTERNATE STORAGE TAPE
- * DUMP FILE WITH DATA.
- RJ MRE MAKE READ LIST ENTRY
- NZ X6,PCT10 IF READ LIST NOT FULL
- RJ PRL PROCESS READ LIST
- EQ PCT10 ADVANCE CATALOG POINTERS
- * DUMP PFC AND PERMITS ONLY.
- PCT6 MOVE NWCE,A0,CATH SAVE CATALOG ENTRY (PFC)
- RJ PPD PROCESS PFC/PERMITS ONLY DUMP
- EQ PCT10 ADVANCE CATALOG POINTERS
- * STAGE FILE FROM ALTERNATE STORAGE.
- PCT7 RJ RFS REQUEST FILE STAGING
- EQ PCT10 ADVANCE CATALOG POINTERS
- * COPY FILE FROM ALTERNATE STORAGE TAPE.
- PCT8 RJ RFC REQUEST FILE COPY FROM TAPE
- EQ PCT10 ADVANCE CATALOG POINTERS
- * PROCESS DUMP INHIBITED.
- PCT9 RJ PFI PROCESS FILE WITH DUMP INHIBITED
- * ADVANCE CATALOG POINTERS.
- PCT10 SA1 CTIN
- SA2 CSLW
- SX3 B1
- MX7 -2
- BX7 -X7*X1 INDEX IN CATALOG SECTOR
- IX6 X1+X3 ADVANCE CATALOG TRACK INDEX
- LX7 4 WORD OFFSET IN SECTOR
- ERRNZ NWCE-20B
- SA6 A1
- SX7 X7+CSBF+NWCE ADVANCE CATALOG ADDRESS
- IX2 X7-X2
- SA0 X7 SET CATALOG ADDRESS
- NG X2,PCT3 IF MORE ENTRIES IN CURRENT SECTOR
- EQ PCT2 READ NEXT CATALOG SECTOR
- * END OF CATALOG TRACK.
- PCT11 RJ PRL PROCESS READ LIST
- SA1 RSTS
- ZR X1,PCTX IF NO FILE STAGE REQUESTED
- RJ IRS INITIALIZE RESCAN
- NZ X6,PCT1 IF RESCAN NOT TERMINATED
- EQ PCTX RETURN
- TITLE GENERAL SUBROUTINES.
- AAT SPACE 4,10
- ** AAT - ASSIGN ALTERNATE STORAGE TAPE.
- *
- * ENTRY (ASTI) = TAPE REQUEST PARAMETERS FROM REQUEST FILE.
- *
- * USES X - 1, 2, 5, 6, 7.
- * A - 5, 6, 7.
- *
- * CALLS CDD.
- *
- * MACROS LABEL.
- AAT SUBR ENTRY/EXIT
- * SET TAPE DESCRIPTORS.
- SA5 ASTI
- SX7 2450B SET LABELED *GE* TAPE
- SX2 /COMSMTX/TFI+5000B SET *I* FORMAT AND OPTIONS
- LX5 0-55
- MX6 -2
- BX6 -X6*X5 CARTRIDGE TAPE FLAGS
- LX6 7
- ZR X6,AAT1 IF NOT CARTRIDGE TAPE
- SX7 X6+2000B SET LABELED *CT* OR *AT* TAPE
- AAT1 PL X5,AAT2 IF NOT *LI* FORMAT TAPE
- SX2 /COMSMTX/TFLI+5000B SET *LI* FORMAT AND OPTIONS
- AAT2 LX7 48
- LX2 30-0
- BX7 X7+X2 MERGE TAPE DEVICE TYPE AND FORMAT
- LX5 0-24-0+55
- SA7 AST+10B SET TAPE DEVICE TYPE AND FORMAT
- * SET VSN.
- MX6 -12
- BX1 -X6*X5 VSN NUMERIC SUFFIX
- SX1 X1+10000D FORCE CONVERSION OF LEADING ZEROES
- RJ CDD CONVERT VSN SUFFIX
- MX7 -24
- BX6 -X7*X6 CONVERTED VSN SUFFIX
- MX7 12
- LX6 24
- LX5 36
- BX7 X7*X5 VSN PREFIX
- BX7 X7+X6 MERGE PREFIX AND SUFFIX
- SX6 B0
- SA7 AST+11B SET VSN
- * ASSIGN TAPE.
- SA6 A7+B1 CLEAR UNUSED FET FIELDS
- SA6 A6+B1
- SA6 A6+B1
- SA6 A6+B1
- SA1 AST+1
- MX6 -48
- BX6 -X6*X1 CLEAR DEVICE CODE
- SX7 X1
- SA6 A1
- SA7 A1+B1 SET *IN* = *FIRST*
- SA7 A7+B1 SET *OUT* = *FIRST*
- LABEL AST REQUEST TAPE ASSIGNMENT
- EQ AATX RETURN
- ALF SPACE 4,20
- ** ALF - ATTACH LOCK FILE.
- *
- * ENTRY (B6) = LOCK FILE INDEX.
- * (B4) = 0, IF *MSS* FILE BEING ATTACHED.
- * (B4) = 8, IF *MSE* FILE BEING ATTACHED.
- * (CMSK) = CONTROL MASK HAVING BIT SET FOR EACH
- * SUBFAMILY STILL NEEDING LOCK.
- * (GPAR+2) = ORIGINAL (42/ USER NAME,18/ USER INDEX).
- * *LFAT* = FWA OF LOCK FILE FET ARGUMENT TABLE.
- * *LOCK* = FWA OF LOCK FILE FET.
- * PERMANENT FILE PARAMETERS SET FOR FAMILY DESIRED.
- *
- * EXIT (B6) = LOCK FILE INDEX.
- * (CMSK) = CONTROL MASK UPDATED.
- * (LMSK) = LOCK MASK UPDATED.
- * LOCK FILE ATTACHED, IF AVAILABLE.
- *
- * USES X - 0, 1, 2, 3, 4, 6, 7.
- * A - 1, 2, 3, 6, 7.
- *
- * MACROS ATTACH, CATLIST, SETFET, SETPFP.
- ALF SUBR ENTRY/EXIT
- MX0 42
- SA1 LFAT+B6 ADJUST FET ARGUMENTS
- SA2 LOCK FILE NAME
- BX6 X0*X1
- SA6 A2+8
- BX3 -X0*X2
- BX6 X3+X6
- SA6 A2
- BX6 -X0*X1
- SA6 LOCK+FTIN SET *IN* POINTER
- * ATTEMPT TO ATTACH DESIRED LOCK FILE.
- SX6 UIPR SET SUBFAMILY USER INDEX
- SA6 SPAR
- SX7 B6-B4 GET SUBFAMILY INDEX
- SX7 X7+SBUI SUBFAMILY USER INDEX
- SA7 SPAR+2
- SETPFP SPAR
- SETFET LOCK,ERP=E SET USER ERROR PROCESSING
- CATLIST LOCK,,,,,,,IE GET PFC ENTRY
- ATTACH LOCK,,,,RU,,,,IE
- * CHECK ATTACH ERROR CODE.
- SA1 X2
- MX0 -8
- LX1 7-17
- BX4 -X0*X1 ERROR CODE
- ZR X4,ALF1 IF NO ERROR ON *ATTACH*
- SX3 X4-/ERRMSG/FNF
- NZ X3,ALFX IF FILE FOUND BUT UNAVAILABLE
- * INDICATE LOCK FILE OBTAINED.
- ALF1 SA1 LMSK SET LOCK MASK BIT
- SX2 B1
- LX2 B6,X2
- BX6 X1+X2
- SA6 A1
- AX2 B4
- SA1 CMSK CLEAR CONTROL MASK BIT
- BX6 X1-X2
- SA6 A1
- EQ ALFX RETURN
- APR SPACE 4,10
- ** APR - ABORT PROCESSOR.
- *
- * EXIT SCRATCH FILES RETURNED.
- * OUTPUT FILES FLUSHED.
- * INTERLOCKS RELEASED.
- *
- * CALLS CAC, CID, FAF, RLF, RMF.
- *
- * MACROS MESSAGE, RETURN, SETPFP.
- APR SUBR ENTRY/EXIT
- RETURN CATC
- RETURN REQS
- RETURN RESS
- RETURN TC
- RETURN PFMREQ
- RJ RLF RELEASE LOCK FILES
- RJ RMF RETURN MASTER DEVICE FILES
- RJ CAC CLEAR PERMANENT FILE ACTIVITY COUNT
- RJ CID CHECK INCOMPLETE FILE DUMP
- ARCHIVE WRITEF WRITE EOF ON ARCHIVE/VERIFY FILES
- RJ FAF FLUSH ARCHIVE/VERIFY FILES
- SETPFP GPAR RESTORE PERMANENT FILE PARAMETERS
- EQ APRX RETURN
- CCR SPACE 4,15
- ** CCR - CHECK CATALOG RESCAN FILE.
- *
- * ENTRY (A0) = CATALOG ENTRY ADDRESS.
- * (CTIN) = CURRENT CATALOG TRACK INDEX.
- * (RESE - RESE+1) = CURRENT RESCAN ENTRY.
- *
- * EXIT (A0) = CATALOG ENTRY ADDRESS.
- * (X6) .LT. 0 IF END OF RESCAN FILE.
- * (X6) = 0 IF FILE TO BE SKIPPED.
- * (X6) .GT. 0 IF FILE TO BE PROCESSED.
- *
- * USES X - 1, 2, 3, 4, 6.
- * A - 1, 2, 3, 4.
- CCR SUBR ENTRY/EXIT
- CCR1 SA1 RESE
- SA2 CTIN
- SA3 RESE+1
- SA4 A0+FCFN
- SX6 B0+ SET TO SKIP FILE
- IX1 X1-X2
- BX3 X3-X4
- NG X1,CCR2 IF CURRENT ENTRY PAST STAGE REQUEST
- NZ X1,CCRX IF STAGE REQUEST PAST CURRENT ENTRY
- NZ X3,CCRX IF NOT SAME FILE NAME AND USER INDEX
- SX6 1 SET PROCESS FILE
- EQ CCRX RETURN
- CCR2 READW RESS,RESE,2 READ NEXT STAGE REQUEST
- ZR X1,CCR1 IF NOT END OF RESCAN FILE
- SX6 -1 SET TERMINATE RESCAN
- EQ CCRX RETURN
- CDT SPACE 4,15
- ** CDT - COPY FILE DATA FROM ALTERNATE STORAGE TAPE.
- *
- * ENTRY ALTERNATE STORAGE TAPE POSITIONED AT FIRST BLOCK
- * AFTER CATALOG ENTRY.
- *
- * EXIT FILE DATA COPIED FROM ALTERNATE STORGE TAPE TO ARCHIVE
- * FILE(S).
- *
- * USES X - 1, 2, 3, 4, 5, 6, 7.
- * A - 1, 2, 4, 5, 6, 7.
- * B - 2, 3.
- *
- * CALLS RCW, SFE, WDT.
- *
- * MACROS ARCHIVE, CWREAD.
- CDT SUBR ENTRY/EXIT
- SX6 B0+
- SA6 CDTA INITIALIZE BUFFER WORD COUNT
- * SKIP PERMITS BLOCKS.
- CDT1 RJ RCW READ BLOCK CONTROL WORD
- NZ X7,CDT5 IF ERROR
- NZ X1,CDT5 IF EOR, EOF, OR EOI ON ARCHIVE FILE
- SX1 X3-3
- ZR X1,CDT3 IF DATA BLOCK
- SX1 X3-2
- NZ X1,CDT5 IF NOT PERMITS BLOCK
- CWREAD AST,DBUFH,X6 READ BLOCK
- NZ X7,CDT5 IF ERROR
- NZ X1,CDT5 IF EOR, EOF, OR EOI
- EQ CDT1 READ BLOCK CONTROL WORD
- * READ NEXT DATA BLOCK CONTROL WORD.
- CDT2 RJ RCW READ BLOCK CONTROL WORD
- NZ X7,CDT5 IF ERROR
- NG X1,CDT5 IF EOF OR EOI ON ARCHIVE FILE
- NZ X1,CDT6 IF EOR ON ARCHIVE FILE
- SX1 X3-3
- NZ X1,CDT5 IF NOT DATA BLOCK
- * COPY DATA BLOCK TO ARCHIVE FILES.
- CDT3 SA1 CDTA
- SA5 WREM
- LX4 9
- SX7 X4
- SA7 CDTB SAVE BLOCK SUB-TYPE
- IX7 X1+X6 BUFFER WORD COUNT INCLUDING NEW DATA BLOCK
- SX5 X5-1 DATA SPACE REMAINING IN 1000B WORD SEGMENT
- IX2 X5-X7
- PL X2,CDT4 IF SUFFICIENT ROOM IN SEGMENT FOR DATA
- IX3 X5-X1 SET WORD COUNT TO FILL SEGMENT
- IX6 X6-X3
- SA6 CDTC SAVE WORDS REMAINING IN NEW BLOCK
- CWREAD AST,DBUFH+X1,X3 READ DATA
- SA4 CDTB
- NZ X7,CDT5 IF ERROR
- NZ X1,CDT5 IF EOR, EOF, OR EOI ON ARCHIVE FILE
- SX7 4000B
- SB2 DBUFH SET DATA ADDRESS
- SX6 DCWC+X5 SET DATA BLOCK TYPE AND LENGTH
- SB3 X5+ SET WORD COUNT
- BX4 X7*X4 PRESERVE SYSTEM SECTOR FLAG
- BX6 X6+X4 MERGE SYSTEM SECTOR STATUS
- SA6 CONTH SET CONTROL WORD
- RJ WDT WRITE DATA
- SA2 CDTC
- SX1 B0+ SET OFFSET FOR READ
- SX6 X2+ SET WORD COUNT TO READ
- SX7 X2+ SET WORD COUNT IN BUFFER
- CDT4 SA7 CDTA UPDATE WORDS IN WORKING BUFFER
- CWREAD AST,DBUFH+X1,X6 READ DATA
- SA4 CDTB
- NZ X7,CDT5 IF ERROR
- NZ X1,CDT5 IF EOR, EOF, OR EOI ON ARCHIVE FILE
- ZR X4,CDT2 IF NOT SYSTEM SECTOR, EOR OR EOF BLOCK
- SA1 CDTA
- SB2 DBUFH SET DATA ADDRESS
- SX6 DCWC+X1
- BX6 X6+X4 SET DATA BLOCK SUB-TYPE
- SB3 X1 SET WORD COUNT
- SA6 CONTH SET CONTROL WORD
- RJ WDT WRITE DATA
- SX7 B0+
- SA7 CDTA SET NO DATA IN BUFFER
- EQ CDT2 READ NEXT BLOCK CONTROL WORD
- * PROCESS ERROR IN ALTERNATE STORAGE FILE.
- CDT5 SA1 FLST
- SX6 2
- BX6 X1+X6 SET DATA ERROR IN FILE STATUS
- SA6 A1
- SA1 CATH+FCUI
- SB2 ERTR * READ ERROR ON ALTERNATE STORAGE ...*
- RJ SFE SEND ERROR MESSAGE
- * FLUSH DATA IN WORKING BUFFER AND COMPLETE FILE DUMP.
- CDT6 SA1 CDTA
- ZR X1,CDT7 IF NO DATA IN WORKING BUFFER
- SB2 DBUFH SET DATA ADDRESS
- SB3 X1+ SET WORD COUNT
- SX6 DCWC+X1 SET BLOCK TYPE
- SA6 CONTH SET CONTROL WORD
- RJ WDT WRITE DATA
- CDT7 SA1 FLST
- LX1 59-1
- PL X1,CDT8 IF NO ERROR IN FILE DATA
- SA1 LGCW GET ERROR CONTROL WORD
- BX6 X1
- SB3 B0 CLEAR DATA WORD COUNT
- SA6 CONTH
- SB2 CONTH SET BUFFER ADDRESS
- RJ WDT WRITE ERROR CONTROL WORD
- CDT8 ARCHIVE WRITER WRITE EOR ON ARCHIVE FILE
- SX6 BFAC
- SA6 WREM RESET BLOCK STATUS FOR NEXT FILE
- EQ CDTX RETURN
- CDTA CON 0 WORDS IN *DBUFH*
- CDTB CON 0 DATA CONTROL WORD SUB-TYPE
- CDTC CON 0 WORDS REMAINING IN DATA BLOCK
- CFD SPACE 4,15
- ** CFD - COMPLETE FILE DUMP.
- *
- * ENTRY CATALOG ENTRY, PERMITS AND FILE DATA WRITTEN TO
- * ARCHIVE FILE.
- *
- * EXIT FILE INFORMATION WRITTEN TO OUTPUT AND SUMMARY FILES.
- * *PFM* REQUEST FORMATTED IF FILE TO BE PURGED OR
- * ALTERNATE STORAGE POINTERS TO BE UPDATED.
- *
- * USES X - 1, 2, 3, 6, 7.
- * A - 0, 1, 2, 3, 6.
- * B - 2.
- *
- * CALLS CFP, UCE, WPR.
- CFD SUBR ENTRY/EXIT
- SX6 B0+ CLEAR INCOMPLETE FILE FLAG
- SA6 IFST
- SA0 CATH SET CATALOG ADDRESS
- RJ CFP COUNT FILE PROCESSED
- SA1 FLST
- MX6 -3
- BX1 -X6*X1
- NZ X1,CFDX IF PFC ONLY DUMP OR ERROR IN FILE
- SA1 CPAR+/COMSPFS/CPOP
- SA2 CPAR+/COMSPFS/CPDT
- SX7 B0
- LX1 59-53
- NG X1,CFD2 IF PURGE FILES AFTER DUMP
- ZR X2,CFDX IF NOT DESTAGE DUMP
- SB2 CTSL SET *TFLOK* FLAG FUNCTION
- RJ UCE UPDATE CATALOG ENTRY
- SA3 FLOK
- NG X3,CFD1 IF ARCHIVE TO OPTICAL DISK
- SA2 CATH+FCTV GET TAPE ALTERNATE STORAGE INFORMATION
- SX7 B1+
- LX7 42-0
- BX7 X2+X7 MERGE *SETASA* TAPE ALTERNATE STORAGE FLAG
- EQ CFD2 WRITE *PFM* REQUEST
- CFD1 SA2 CATH+FCAA GET OPTICAL ALTERNATE STORAGE INFORMATION
- BX7 X2
- SA2 CATH+FCOA GET OPTICAL DISK ADDRESS
- MX3 24
- BX6 X3*X2
- SA6 PFRS+2 SET ADDRESS IN *PFM* REQUEST PARAMETERS
- CFD2 RJ WPR WRITE *PFM* REQUEST PARAMETERS
- EQ CFDX RETURN
- CID SPACE 4,25
- ** CID - CHECK INCOMPLETE FILE DUMP.
- *
- * ENTRY (IFST) = 0 IF NO INCOMPLETE FILE DUMP.
- * (IFST) = 1 IF INCOMPLETE FILE DUMP AND PFC DUMPED.
- * (IFST) = 2 IF INCOMPLETE FILE DUMP AND PERMITS DUMPED.
- * CATALOG ENTRY IN *CATH* IF INCOMPLETE FILE DUMP.
- * (FLST) = FILE STATUS WORD IF INCOMPLETE FILE DUMP.
- *
- * EXIT EOR WRITTEN ON ARCHIVE AND VERIFY FILES.
- * CATALOG DATA OUTPUT AND FILE COUNTS UPDATED FOR FILE
- * BEING DUMPED.
- * ARCHIVE FILE ERROR FLAGS SET IF PERMITS DUMP AND/OR
- * DATA DUMP INCOMPLETE.
- *
- * USES X - 1, 6.
- * A - 0, 1, 6.
- *
- * CALLS CFP.
- *
- * MACROS WRITER.
- CID SUBR ENTRY/EXIT
- SA1 IFST
- ZR X1,CIDX IF NO INCOMPLETE FILE DUMP
- ARCHIVE WRITER WRITE EOR ON ARCHIVE/VERIFY FILES
- SA1 IFST
- SX6 X1-2
- ZR X6,CID1 IF PERMITS DUMP COMPLETE
- SA1 CATH+FCRI
- MX6 24
- BX6 X6*X1
- ZR X6,CID1 IF NO PERMITS
- SX6 4 SET PERMITS LOST FLAG
- CID1 SA1 FLST
- LX1 59-0
- NG X1,CID2 IF *PFC ONLY* FILE
- SX6 X6+2 SET DATA ERROR FLAG
- CID2 LX1 1
- BX6 X1+X6 MERGE ERROR FLAGS
- SA6 FLST UPDATE FILE STATUS
- SA0 CATH SET CATALOG ENTRY ADDRESS
- RJ CFP COUNT FILE PROCESSED
- EQ CIDX RETURN
- CSI SPACE 4,10
- ** CSI - CHECK SPECIAL USER INDEX.
- *
- * ENTRY (A0) = CATALOG ADDRESS.
- *
- * EXIT (A0) = CATALOG ADDRESS.
- * (X6) .NE. 0 IF FILE TO BE DUMPED.
- * (X6) = 0 IF FILE NOT TO BE DUMPED.
- *
- * USES X - 1, 2, 3, 6, 7.
- * A - 1, 2, 3.
- CSI2 SX6 B0+ SET NO FILE DUMP
- CSI SUBR ENTRY/EXIT
- SA1 CPAR+/COMSPFS/CPOP
- SA2 CPAR+/COMSPFS/CPDT
- SA3 A0+FCUI
- SX6 B1 SET TO DUMP FILE
- LX1 59-53
- SX7 X3-IFUI
- SX3 X3+ USER INDEX
- ZR X3,CSI2 IF CATALOG HOLE
- ZR X7,CSI2 IF INDIRECT ACCESS DATA FLAW
- ZR X2,CSI1 IF NOT DESTAGE DUMP
- SX2 X3-SYUI
- ZR X2,CSI2 IF SYSTEM USER INDEX
- SX1 377770B
- SX2 SBUI
- BX1 X1*X3
- BX1 X1-X2
- NZ X2,CSIX IF NOT SUBFAMILY USER INDEX
- EQ CSI2 SET NO FILE DUMP
- CSI1 PL X1,CSIX IF PURGE OPTION NOT SELECTED
- SA1 /COMSPFS/FISP
- SX2 X3-PGUI
- NZ X1,CSIX IF USER INDEX SELECTIONS PRESENT
- NG X2,CSIX IF FILE TO BE DUMPED
- EQ CSI2 SET NO FILE DUMP
- CSP SPACE 4,20
- ** CSP - CHECK SELECTION PARAMETERS.
- *
- * ENTRY (A0) = ADDRESS OF CATALOG ENTRY.
- * (CPAR) = CRACKED PARAMETER ARRAY.
- *
- * EXIT (A0) = ADDRESS OF CATALOG ENTRY.
- * (X6) = 0 IF FILE NOT TO BE DUMPED.
- * (X6) = 1 IF TOTAL FILE TO BE DUMPED.
- * (X6) = 2 IF ONLY PFC AND PERMITS TO BE DUMPED.
- * (X6) = 3 IF STAGE FILE FROM ALTERNATE STORAGE.
- * (X6) = 4 IF FILE TO BE COPIED FROM ALTERNATE STORAGE
- * TAPE.
- *
- * USES X - 1, 2, 4, 6, 7.
- * A - 1, 2, 3, 6.
- * B - 2, 3, 4.
- *
- * CALLS CBR, CFE, CSC, SFE, SFL.
- CSP SUBR ENTRY/EXIT
- * CHECK TRUE DEVICE RESIDENCE CRITERION.
- * DISK RESIDENCY IS CHECKED BECAUSE OLDER SYSTEM LEVELS DID
- * NOT CLEAR THE DEVICE NUMBER IN THE PFC ENTRY WHEN DISK SPACE
- * WAS RELEASED.
- SA1 CPAR+/COMSPFS/CPTD
- SX6 B0+ SET NO FILE DUMP
- SA6 FLCF CLEAR *FILE LENGTH CORRECT* FLAG
- ZR X1,CSP1 IF NO TRUE DEVICE SELECTION
- SA2 A0+FCDN
- SA3 CPAR+/COMSPFS/CPDN
- SA4 A0+FCBT
- MX7 -6
- LX2 -36
- BX3 X1-X3
- LX4 59-23
- ZR X3,CSP1 IF TRUE DEVICE IS MASTER DEVICE
- BX2 -X7*X2 RESIDENCY DEVICE
- PL X4,CSPX IF FILE NOT DISK RESIDENT
- BX2 X1-X2
- NZ X2,CSPX IF FILE DOES NOT RESIDE ON TRUE DEVICE
- * GET FILE LENGTH IF REQUIRED AND CHECK SELECTION CRITERIA.
- * FILES SPECIFIED IN TABLE *TSFF* WILL BE DUMPED ON AN
- * INCREMENTAL DUMP EVEN IF THE SPECIFIED DATE/TIME CRITERION
- * IS NOT MET BECAUSE THEY MAY HAVE BEEN MODIFIED WHILE IN
- * FAST ATTACH MODE.
- CSP1 SA1 FLSF
- ZR X1,CSP2 IF FILE LENGTH NOT REQUIRED FOR SELECTION
- RJ SFL SET FILE LENGTH
- ZR X6,CSPX IF DEVICE NOT FOUND ERROR
- CSP2 SB4 A0 SET CATALOG ENTRY ADDRESS
- RJ CSC CHECK SELECTION CRITERIA
- NZ X6,CSP4 IF FILE SELECTED
- ZR X7,CSPX IF NON-SELECTION NOT DUE TO DATE/TIME
- SA1 INCD
- ZR X1,CSPX IF NOT INCREMENTAL DUMP
- SA2 TSFF-1
- SA1 A0+FCUI
- CSP3 SA2 A2+1 GET FAST ATTACH FILE NAME AND USER INDEX
- ZR X2,CSPX IF END OF ENTRIES
- BX3 X1-X2
- NZ X3,CSP3 IF NO MATCH
- * CHECK FILE BACKUP REQUIREMENTS.
- CSP4 RJ CBR CHECK BACKUP REQUIREMENTS
- SA1 CPAR+/COMSPFS/CPOP
- SX6 X6-BRNO
- LX1 59-53
- NG X1,CSP6 IF PURGE OPTION SPECIFIED
- ZR X6,CSPX IF BACKUP NOT REQUIRED
- ZR B2,CSP6 IF NO ALTERNATE STORAGE COPIES
- NZ B7,CSP5 IF ALTERNATE DATE/TIME USED IN SELECTION
- ZR X7,CSP6 IF FILE NOT BACKED UP ON ALTERNATE STORAGE
- * DETERMINE IF THE FILE CAN BE DUMPED AS *PFC ONLY*.
- * NOTE - IF *OP=Z* OR A DESTAGE DUMP IS SELECTED, *PRS*
- * SETS THE *COS* LIMIT TO FORCE A DATA DUMP FOR ALL FILES.
- CSP5 RJ SFL ENSURE FILE LENGTH CORRECT IN PFC ENTRY
- ZR X6,CSPX IF DEVICE NOT FOUND ERROR
- SA1 A0+FCLF GET FILE LENGTH
- SA2 CPAR+/COMSPFS/CPCO
- MX7 -24
- LX1 -36
- BX7 -X7*X1
- IX7 X7-X2
- PL X7,CSP9 IF FILE SIZE .GE. *PFC* ONLY LIMIT
- * CHECK DISK IMAGE.
- CSP6 SA1 A0+FCBT GET BEGINNING TRACK POINTER
- SX6 B1 SET TOTAL FILE DUMP
- LX1 59-23
- NG X1,CSPX IF DISK IMAGE EXISTS
- NZ B2,CSP7 IF ALTERNATE STORAGE COPY EXISTS
- SA1 A0+FCFN SET FILE NAME AND USER INDEX
- SB2 ERNP * NO DISK OR ALTERNATE STORAGE ...*
- RJ SFE SEND ERROR MESSAGE
- RJ CFE COUNT FILE SKIPPED
- EQ CSP10 SET NO FILE DUMP
- * DETERMINE IF FILE TO BE STAGED FROM ALTERNATE STORAGE.
- CSP7 SA1 CPAR+/COMSPFS/CPOP
- SX6 3 SET STAGE FILE
- ZR B3,CSP8 IF FILE NOT ON TAPE ALTERNATE STORAGE
- SX6 4 SET COPY FILE FROM TAPE
- CSP8 LX1 59-47
- PL X1,CSPX IF FILE STAGING NOT SUPPRESSED
- CSP9 SA1 CPAR+/COMSPFS/CPDT
- NZ X1,CSP10 IF DESTAGE DUMP
- SX6 2 SET DUMP PFC AND PERMITS ONLY
- EQ CSPX RETURN
- * SET TO NOT DUMP FILE.
- CSP10 SX6 B0 CLEAR *DUMP FILE* FLAG
- EQ CSPX RETURN
- * TABLE OF SPECIAL FAST ATTACH FILES.
- TSFF BSS 0 TABLE OF SPECIAL FAST ATTACH FILES
- VFD 42/0L"APFN",18/SYUI
- VFD 42/0L"PPFN",18/SYUI
- VFD 42/0L"TMFC",18/"TMUI"
- CON 0 END OF TABLE
- CWW SPACE 4,50
- ** CWW - CONTROL WORD WRITE.
- *
- * *CWW* TRANSFERS DATA FROM A WORKING BUFFER TO A
- * CIRCULAR BUFFER. CONTROL WORDS ARE INSERTED INTO THE
- * CIRCULAR BUFFER AS NECESSARY BASED ON THE PRU SIZE CONTAINED
- * IN THE FET. IF THE BUFFER BECOMES SUFFICIENTLY FULL TO
- * REQUIRE DUMPING, A *CIO* *WRITECW* REQUEST IS ISSUED FOR
- * THE FILE.
- *
- * *CWW* USES A WORD IN THE FET TO CONTROL THE BLOCKING
- * OF DATA. THE LOCATION OF THIS WORD IN THE FET IS DETERMINED
- * BY THE ASSEMBLY CONSTANT *CWSW*. BEFORE THE INITIAL CALL TO
- * *CWW* FOR A GIVEN FET THE LOCATION *CWSW* OF THAT FET SHOULD
- * BE INITIALIZED TO -1 TO INSURE PROPER OPERATION OF *CWW*.
- * AFTER THE INITIAL CALL TO *CWW* FOR A GIVEN FET, THE LOCATION
- * *CWSW* IS MAINTAINED AUTOMATICALLY BY *CWW* AND SHOULD NOT BE
- * SET BY THE CALLER.
- *
- * AN END OF RECORD WRITE CAUSES AN END OF RECORD LEVEL
- * NUMBER *LN* (SEE *B6* ENTRY CONDITION) TO BE WRITTEN ON THE
- * FILE.
- *
- * ENTRY (X2) = FET ADDRESS.
- * (B6) = FWA OF WORKING BUFFER IF (B7) .GE. 0.
- * = LN = END OF RECORD LEVEL NUMBER IF (B7) .LT. 0.
- * (B7) = WORD COUNT OF WORKING BUFFER (.GE. 0).
- * = .LT. 0 FOR AN END OF RECORD WRITE.
- *
- * EXIT (X2) = FET ADDRESS.
- * (B6) = ADDRESS OF NEXT WORD TO BE TRANSFERRED FROM
- * WORKING BUFFER.
- * (B7) = 0 IF OPERATION WAS COMPLETED.
- * = REMAINING WORD COUNT IF A BUFFER DUMP WAS
- * NECESSARY AND AN ERROR STATUS WAS DETECTED IN
- * THE FET.
- * = .LT. 0 IF AN ERROR WAS DETECTED AS ABOVE AND
- * THE CALL WAS FOR AN END OF RECORD WRITE.
- * (X7) = ERROR STATUS IF (B7) .NE. 0.
- *
- * USES X - 1, 3, 4, 6, 7.
- * A - 1, 3, 6, 7.
- * B - 2, 3, 4, 5, 6, 7.
- *
- * CALLS MMC.
- *
- * MACROS RECALL, WRITECW.
- * SAVE CURRENT BLOCK WORD COUNT.
- CWW17 SX6 B2+ SAVE CURRENT BLOCK WORD COUNT
- SA6 X2+CWSW
- CWW SUBR ENTRY/EXIT
- ZR B7,CWWX IF WORKING BUFFER EMPTY
- SA1 X2+4 SET LIMIT
- SB5 X1
- LX1 -18 SET BLOCK SIZE
- SA3 X2+CWSW GET CURRENT BLOCK WORD COUNT
- SB3 X1
- SB2 X3
- SA1 X2+2 IN
- SB4 X1
- NG B2,CWW1 IF NO PARTIAL BLOCK IN BUFFER
- SX1 B4+B2 IN = IN + BLOCK LENGTH
- SB4 X1+B1
- LT B4,B5,CWW1 IF IN .LT. LIMIT
- SA1 X2+B1 IN = IN-LIMIT+FIRST
- SB4 B4-B5
- SB4 X1+B4
- * DETERMINE BUFFER SPACE.
- CWW1 SA3 X2+3 OUT
- SX6 B4+B1 BUFFER SPACE = OUT-(IN+1)
- IX4 X3-X6
- PL X4,CWW2 IF NO BUFFER WRAP
- SA3 X2+B1 FIRST
- SX6 X4+B5 BUFFER SPACE = BUFFER SPACE+(LIMIT-FIRST)
- SX3 X3
- IX4 X6-X3
- CWW2 ZR X4,CWW13 IF NO SPACE IN BUFFER
- * PROCESS TRAILING CONTROL WORD.
- NE B2,B3,CWW4 IF CURRENT BLOCK NOT FULL
- SB2 -B1 SET CURRENT BLOCK EMPTY
- BX6 X6-X6 SET LEVEL 0 SECOND CONTROL WORD
- SA6 B4
- SB4 B4+B1 ADVANCE IN
- LT B4,B5,CWW3 IF IN .LT. LIMIT
- SA1 X2+B1 IN = FIRST
- SB4 X1
- CWW3 SX6 B4+ UPDATE IN
- SX4 X4-1 DECREMENT BUFFER SPACE
- SA6 X2+2
- ZR X4,CWW13 IF NO SPACE IN BUFFER
- * PROCESS LEADING CONTROL WORD.
- CWW4 PL B2,CWW6 IF BLOCK STARTED
- SB2 B0 CLEAR BLOCK WORD COUNT
- SX6 B3 (X7) = 5*BLOCK SIZE
- SX1 B3
- LX6 2
- IX7 X6+X1
- LX1 36 24/BLOCK SIZE,36/5*BLOCK SIZE
- BX6 X1+X7
- SA6 B4 STORE LEADING CONTROL WORD
- SB4 B4+B1 ADVANCE IN
- LT B4,B5,CWW5 IF IN .LT. LIMIT
- SA1 X2+B1 IN = FIRST
- SB4 X1
- CWW5 SX4 X4-1 DECREMENT BUFFER SPACE
- ZR X4,CWW13 IF NO SPACE IN BUFFER
- * PROCESS END OF RECORD WRITE.
- CWW6 PL B7,CWW8 IF NOT END OF RECORD CALL
- SX6 B6 SAVE LEVEL NUMBER
- LX6 48
- SA6 B4
- SX1 B2 BLOCK BYTE COUNT = 5 * BLOCK WORD COUNT
- LX1 2
- SX3 X1+B2
- SX1 B3 24/BLOCK SIZE,36/BLOCK BYTE COUNT
- LX1 36
- BX6 X1+X3
- SB4 B4+B1 ADVANCE IN
- LT B4,B5,CWW7 IF IN .LT. LIMIT
- SA1 X2+B1 IN = FIRST
- SB4 X1
- CWW7 SA1 X2+2 UPDATE FIRST CONTROL WORD
- SX7 B4 UPDATE IN
- SA6 X1
- SA7 A1
- SB7 B0+ CLEAR WORKING BUFFER WORD COUNT
- SB2 -B1 SET CURRENT BLOCK EMPTY FLAG
- EQ CWW13 BUFFER AHEAD
- * TRANSFER DATA FROM WORKING BUFFER TO CIRCULAR BUFFER.
- CWW8 SB5 B5-B4 DETERMINE AVAILABLE SPACE WITHOUT WRAP
- LE B5,B7,CWW9 IF BUFFER WRAP
- SB5 B7 USE WORKING BUFFER WORD COUNT
- CWW9 SX1 B3-B2 DETERMINE REMAINING BLOCK WORD COUNT
- SX3 B5+
- IX6 X4-X1
- PL X6,CWW10 IF BLOCK COUNT FITS IN AVAILABLE SPACE
- SX1 X4+ USE AVAILABLE SPACE WORD COUNT
- CWW10 IX6 X3-X1
- PL X6,CWW11 IF NO BUFFER WRAP
- SX1 B5 USE SPACE AVAILABLE WITHOUT WRAP
- CWW11 SX3 B6 SET STARTING ADDRESS OF MOVE
- SX6 B4 SET DESTINATION ADDRESS OF MOVE
- SB6 B6+X1 INCREMENT WORKING BUFFER ADDRESS
- SB2 B2+X1 INCREMENT BLOCK COUNT
- SB4 B4+X1 INCREMENT IN
- SB5 X1+
- SB7 B7-B5 DECREMENT WORKING BUFFER WORD COUNT
- RJ MMC MOVE DATA FROM WORKING BUFFER
- SA1 X2+FTLM REREAD LIMIT
- SB5 X1+
- LT B4,B5,CWW12 IF LIMIT NOT REACHED
- SA1 X2+B1 READ FIRST
- SB4 X1
- CWW12 NZ B7,CWW1 IF MORE DATA TO WRITE
- * PROCESS FULL BUFFER AND BUFFER AHEAD.
- CWW13 SA1 X2 CHECK FET STATUS
- LX1 59-0
- NG X1,CWW14 IF FET NOT BUSY
- ZR B7,CWW17 IF WORKING BUFFER EMPTY
- RECALL WAIT FOR *CIO* TO CATCH UP
- EQ CWW1 TRANSFER REMAINDER OF DATA
- CWW14 LX1 0-10-59+0+60 CHECK ERROR STATUS
- MX3 -4
- BX7 -X3*X1
- NZ X7,CWW17 IF ERROR ON LAST WRITE REQUEST
- NZ B7,CWW16 IF WORKING BUFFER NOT EMPTY
- SA1 X2+B1 FIRST
- SA3 X2+3 OUT
- SX6 B5
- SX1 X1
- IX7 X6-X1 BUFFER SIZE = LIMIT-FIRST
- SX6 B4
- IX3 X6-X3 BUFFER WC = IN-OUT
- PL X3,CWW15 IF NO BUFFER WRAP
- IX3 X3+X7 BUFFER WC = BUFFER WC+BUFFER SIZE
- CWW15 AX7 1 BUFFER SIZE/2
- IX1 X3-X7
- NG X1,CWW17 IF BUFFER NOT AT LEAST HALF FULL
- SX6 B3+2 MINIMUM BLOCK LENGTH
- IX1 X3-X6
- NG X1,CWW17 IF NOT FULL BLOCK IN BUFFER
- * CALL *CIO* TO WRITE DATA.
- CWW16 WRITECW X2 CALL *CIO* TO WRITE DATA
- NZ B7,CWW1 IF WORKING BUFFER NOT EMPTY
- EQ CWW17 SAVE CURRENT BLOCK WORD COUNT
- CWSW EQU 5 CONTROL WORD STATUS WORD
- DLY SPACE 4,10
- ** DLY - DELAY.
- *
- * ENTRY (B2) = NUMBER OF RECALL-S TO ISSUE.
- *
- * USES B - 2.
- *
- * MACROS RECALL.
- DLY SUBR ENTRY/EXIT
- DLY1 RECALL
- SB2 B2-B1
- GT B2,DLY1 IF MORE DELAY NEEDED
- EQ DLYX RETURN
- DSF SPACE 4,15
- ** DSF - DROP STAGED FILES.
- *
- * ENTRY DATA LIST ELEMENTS IN *DLRB*.
- * CATALOG TRACK INTERLOCK SET.
- *
- * EXIT DISK SPACE OCCUPIED BY STAGED FILES DROPPED.
- * CATALOG TRACK INTERLOCK SET.
- *
- * USES X - 1, 5, 6.
- * A - 1, 5, 6.
- * B - 2.
- *
- * CALLS SDP, SPR.
- *
- * MACROS DROPDS, PCINT.
- DSF SUBR ENTRY/EXIT
- PCINT CATS,CTCC CLEAR CATALOG TRACK INTERLOCK
- SA5 DLRB GET FIRST LIST ENTRY
- DSF1 BX1 X5
- RJ SDP SET DATA LIST PARAMETERS
- SB2 DDBK SET SPECIAL REQUEST BLOCK ADDRESS
- RJ SPR
- DROPDS DDFT DROP DISK SPACE
- SA1 STFC INCREMENT NUMBER OF FILES STAGED
- SX6 X1+B1
- SA6 A1
- SA5 A5+1 GET NEXT LIST ENTRY
- NZ X5,DSF1 IF MORE DATA LIST ELEMENTS
- PCINT CATS,CTSC SET CATALOG TRACK INTERLOCK
- EQ DSFX RETURN
- DTF SPACE 4,20
- ** DTF - DUMP TAPE RESIDENT FILE.
- *
- * ENTRY (RESE - RESE+2) = REQUEST PARAMETERS.
- * (DBUFH - DBUFH+17B) = CATALOG ENTRY FROM TAPE.
- *
- * EXIT FILE DUMP COMPLETE IF FILE FOUND AND SELECTED.
- * ALL DEVICE ACCESS FILES RETURNED.
- * PF ACTIVITY COUNT AND CATALOG TRACK INTERLOCK NOT SET.
- *
- * USES X - 0, 1, 2, 3, 6, 7.
- * A - 1, 2, 3, 6.
- * B - 3.
- *
- * CALLS CAC, CDT, CFD, CSP, OPF, PFC, PPD, RCS, RMF, RPF, SAC,
- * SCA, SFL.
- *
- * MACROS CALLPFU, MOVE, PCINT, READCW.
- DTF SUBR ENTRY/EXIT
- * SET UP CATALOG AND PERMITS FILES AND SET INTERLOCKS.
- SA1 RESE+1
- MX6 -18
- MX7 -3
- BX6 -X6*X1 USER INDEX
- BX2 -X7*X1 SUBFAMILY INDEX
- SA6 PDUI SET USER INDEX FOR *RCS* ERROR MESSAGE
- SA2 TMDA+X2 GET MASTER DEVICE *MSTT* ADDRESS
- SA3 X2+ GET MASTER DEVICE EST ORDINAL
- BX6 X2
- SA6 MSTA SET MASTER DEVICE *MSTT* ADDRESS
- MX6 -6
- BX6 -X6*X3
- SA6 CPAR+/COMSPFS/CPDN SET MASTER DEVICE NUMBER
- MX6 -9
- LX3 -6
- BX6 -X6*X3
- SA6 MAEQ SET MASTER DEVICE EST ORDINAL
- RJ SAC SET PF ACTIVITY COUNT
- SA1 RESE+2
- SA2 MAEQ
- MX6 36
- SX3 5
- LX6 -12
- BX6 X6*X1 FIRST TRACK, CURRENT TRACK AND SECTOR
- LX2 48
- BX6 X6+X3 MERGE FILE STATUS
- BX6 X6+X2 MERGE EST ORDINAL
- SA6 CATS+FTPM SET FST PARAMETERS
- CALLPFU CATS,CTOL,R OPEN CATALOG FILE
- RJ OPF OPEN PERMITS FILE
- PCINT CATS,CTSC SET CATALOG TRACK INTERLOCK
- * READ CATALOG ENTRY.
- SA1 CATS+FTFT
- SX6 X1
- SA6 A1+B1 SET IN = FIRST
- SA6 A1+2 SET OUT = FIRST
- READCW CATS,17B INITIATE CATALOG READ
- RJ RCS READ CATALOG SECTOR
- NZ X1,DTF3 IF ERROR IN READ
- SA2 RESE+2
- MX6 -2
- BX6 -X6*X2 CATALOG BUFFER INDEX
- LX6 4
- ERRNZ NWCE-20B
- SA0 CSBF+X6 SET CATALOG ENTRY ADDRESS
- * VERIFY CATALOG ENTRY.
- SA1 A0+FCFN
- SA2 RESE+1
- SA3 A0+FCCD
- SA4 DBUFH+FCCD
- MX6 -36
- BX1 X1-X2 COMPARE FILE NAMES FROM REQUEST AND PFC
- BX3 X3-X4 COMPARE CREATION TIME FROM TAPE AND PFC
- BX3 -X6*X3
- NZ X1,DTF3 IF NOT SAME FILE NAME AND USER INDEX
- NZ X3,DTF3 IF NOT SAME CREATION DATE/TIME
- SA1 A0+FCMD
- SA2 DBUFH+FCMD
- SA3 A0+FCTV
- SA4 DBUFH+FCTV
- MX7 -42
- BX1 X1-X2 COMPARE DATA MODIFCATION DATE AND TIME
- BX3 X3-X4 COMPARE ALTERNATE STORAGE POINTERS
- BX1 -X6*X1
- BX3 -X7*X3
- NZ X1,DTF3 IF NOT SAME DATA MODIFICATION DATE/TIME
- NZ X3,DTF3 IF NOT SAME ALTERNATE STORAGE POINTERS
- * DUMP FILE IF SELECTED.
- RJ CSP CHECK SELECTION PARAMETERS
- ZR X6,DTF3 IF NOT TO PROCESS FILE
- SX0 X6-2
- RJ SCA SET CATALOG DISK ADDRESS
- MOVE NWCE,A0,CATH MOVE CATALOG ENTRY
- NZ X0,DTF2 IF FILE DATA TO BE DUMPED
- RJ PPD DUMP PFC AND PERMITS
- EQ DTF3 RETURN MASTER DEVICE FILES
- DTF2 RJ SFL SET FILE LENGTH
- SX5 CCWC SET DUMP WITH FILE DATA
- RJ PFC WRITE CATALOG ENTRY
- RJ RPF WRITE FILE PERMITS
- PCINT CATS,CTCC CLEAR CATALOG TRACK INTERLOCK
- RJ CDT COPY FILE DATA FROM TAPE
- RJ CFD COMPLETE FILE DUMP
- * RETURN DEVICE FILES AND DECREMENT PF ACTIVITY COUNT.
- DTF3 RJ RMF RETURN MASTER DEVICE FILES
- RJ CAC DECREMENT PF ACTIVITY COUNT
- EQ DTFX RETURN
- FAF SPACE 4,10
- ** FAF - FLUSH ARCHIVE FILES.
- *
- * EXIT ARCHIVE AND VERIFY FILES FLUSHED.
- *
- * USES X - 1, 2.
- * A - 1.
- *
- * CALLS FCW.
- FAF SUBR ENTRY/EXIT
- SX2 TAPE FLUSH ARCHIVE FILE BUFFER
- RJ FCW
- SA1 CPAR+/COMSPFS/CPVF
- ZR X1,FAFX IF NO VERIFY FILE SPECIFIED
- SX2 PFVER
- RJ FCW FLUSH VERIFY FILE BUFFER
- EQ FAFX RETURN
- FCW SPACE 4,20
- ** FCW - FLUSH BUFFER USING CONTROL WORD WRITE.
- *
- * A CONTROL WORD WRITE REQUEST (*WRITECW*) IS ISSUED
- * FOR THE SPECIFIED FILE IF THE BUFFER IS NOT EMPTY.
- *
- * ENTRY (X2) = FET ADDRESS.
- *
- * EXIT (X2) = FET ADDRESS.
- *
- * USES X - 1, 3.
- * A - 1, 3.
- *
- * MACROS RECALL, WRITECW.
- FCW SUBR ENTRY/EXIT
- RECALL X2 WAIT COMPLETION OF ANY PENDING OPERATION
- SA1 X2+2 GET *IN*
- SA3 A1+B1 GET *OUT*
- IX1 X1-X3
- ZR X1,FCWX IF BUFFER EMPTY
- WRITECW X2 FLUSH BUFFER
- EQ FCWX RETURN
- FTR SPACE 4,10
- ** FTR - FORMAT ALTERNATE STORAGE TAPE REQUEST PARAMETERS.
- *
- * ENTRY (A1) = *FCTV* WORD FROM CATALOG ENTRY.
- *
- * EXIT (X7) = TAPE REQUEST PARAMETERS FORMATTED FOR SORT.
- *
- * USES X - 1, 2, 6, 7.
- FTR SUBR ENTRY/EXIT
- SX7 700B
- MX6 -24
- LX7 48
- BX7 X7*X1 TAPE TYPE FLAGS AND FORMAT
- BX6 -X6*X1 VSN POINTER
- MX2 -18
- LX6 24
- LX1 0-24
- BX7 X7+X6 MERGE VSN POINTER
- BX2 -X2*X1 FILE SEQUENCE NUMBER
- BX7 X7+X2 MERGE SEQUENCE NUMBER
- EQ FTRX RETURN
- GLF SPACE 4,20
- ** GLF - GET LOCK FILES.
- *
- * ENTRY (MSSF) = 0, IF NOT *MSS* ENVIRONMENT.
- * = 1, IF *MSS* ENVIRONMENT.
- * (ASFF) = 0, IF NOT *MSE* ENVIRONMENT.
- * = 1, IF *MSE* ENVIRONMENT.
- * (FMPN) = FAMILY NAME.
- *
- * EXIT (LMSK) = 0, IF NO LOCK FILES ATTACHED.
- * .NE. 0, IF LOCK FILES ATTACHED.
- *
- * USES X - 1, 2, 3, 6, 7.
- * A - 1, 2, 3, 6, 7.
- * B - 4, 5, 6.
- *
- * CALLS ALF.
- *
- * MACROS CALLPFU, MESSAGE, MOVE, SETPFP.
- GLF SUBR ENTRY/EXIT
- SA1 MSSF
- SA2 ASFF
- BX1 X1+X2
- ZR X1,GLFX IF NEITHER *MSS* NOR *MSE* ENVIRONMENT
- SA1 CPAR+/COMSPFS/CPPN
- NZ X1,GLFX IF DUMPING AUXILIARY PACK
- SA1 MSTA
- SA1 X1+B1
- MX6 -8
- BX6 -X6*X1 DEVICE MASK
- SA6 CMSK SET SUBFAMILY CONTROL DEVICE MASK
- SA6 GLFA
- * INITIALIZE LOCK LOOP.
- SA3 IDSA+/COMSPFS/ADM1 ISSUE WAIT MESSAGE
- MOVE 4,MSGAA,X3 K-DISPLAY
- MESSAGE MSGAA,2,R B-DISPLAY
- * CLEAR FIRST WORD OF EACH LOCK FILE *PFC* ENTRY BUFFER.
- SB6 LFATL-1 SET LENGTH OF *LFAT* TABLE
- SX6 B0+
- GLF0 SA1 LFAT+B6 GET ADDRESS OF *PFC* ENTRY BUFFER
- SA6 X1
- SB6 B6-B1 DECREMENT *LFAT* INDEX
- PL B6,GLF0 IF MORE ENTRIES
- * GET NEEDED LOCK FILES FOR *MSS*.
- SA1 MSSF
- ZR X1,GLF4 IF NOT *MSS* ENVIRONMENT
- SB4 B0
- GLF1 SB6 B0
- GLF2 SA1 CMSK
- SX2 B1+
- LX2 B6,X2
- BX3 X2*X1
- ZR X3,GLF3 IF THIS LOCK FILE NOT NEEDED
- RJ ALF ATTACH LOCK FILE
- GLF3 SB6 B6+1 INCREMENT INDEX
- SB5 MNSF
- LT B6,B5,GLF2 IF SUBFAMILIES NOT EXHAUSTED
- SA1 GLFA
- SA2 LMSK
- BX1 X1-X2
- ZR X1,GLF4 IF ALL NEEDED LOCK FILES OBTAINED
- CALLPFU LKC1,CTGU,R GET LOCK FILES HELD BY *MSS* EXECUTIVE
- SB2 100B
- RJ DLY DELAY
- EQ GLF1 RETRY ATTACHING NEEDED LOCK FILES
- * GET NEEDED LOCK FILES FOR *MSE*.
- GLF4 SA1 ASFF
- ZR X1,GLF8 IF NOT *MSE* ENVIRONMENT
- SA1 GLFA RESET MASK
- BX6 X1
- SA6 CMSK
- SB4 10B
- GLF5 SB6 10B
- GLF6 SA1 CMSK
- SX2 B1
- LX2 B6,X2
- AX2 B4
- BX3 X2*X1
- ZR X3,GLF7 IF THIS LOCK FILE NOT NEEDED
- RJ ALF ATTACH LOCK FILE
- GLF7 SB6 B6+1 INCREMENT INDEX
- SB5 B4+MNSF
- LT B6,B5,GLF6 IF SUBFAMILIES NOT EXHAUSTED
- SA1 GLFA
- SA2 LMSK
- AX2 B4
- BX1 X1-X2
- ZR X1,GLF8 IF ALL NEEDED LOCK FILES OBTAINED
- CALLPFU LKC2,CTGU,R GET LOCK FILES HELD BY *MSE* EXECUTIVE
- SB2 100B
- RJ DLY DELAY
- EQ GLF5 RETRY ATTACHING NEEDED LOCK FILES
- GLF8 SX6 UIPR CLEAR USER INDEX
- SA6 SPAR
- SX7 B0+
- SA7 SPAR+2
- SETPFP SPAR
- SA3 IDSA+/COMSPFS/ADM1 CLEAR WAIT MESSAGE
- MOVE 4,MSGL,X3 K-DISPLAY
- MESSAGE (=C**),2,R B-DISPLAY
- EQ GLFX RETURN
- GLFA BSSZ 1 SUBFAMILY CONTROL MASK HOLD
- GRC SPACE 4,20
- ** GRC - GENERATE *RDF* CATALOG RECORDS.
- *
- * ENTRY (LMSK) = LOCK FILE MASK.
- * (MSSF) = 0, IF NOT AN *MSS* ENVIRONMENT.
- * = 1, IF AN *MSS* ENVIRONMENT EXISTS.
- * (ASFF) = NONZERO, IF *MSE* ENVIRONMENT.
- * *LFAT* = FWA OF LOCK FILE FET ARGUMENT TABLE.
- * *LOCK* = FWA OF LOCK FILE FET.
- * *RDF* = FWA OF *RDF* FET.
- *
- * EXIT IF RELEASE DATA FILE (RDF) GENERATION REQUESTED
- * AND AN *MSS* AND/OR AN *MSE* ENVIRONMENT
- * EXISTS, AN *MSS* AND/OR AN *MSE* CATALOG
- * RECORD IS WRITTEN TO THE *RDF* FOR EACH SUBFAMILY
- * INDICATED IN THE DUMP DEVICE MASK.
- *
- * USES X - 0, 1, 2, 3, 6.
- * A - 1, 2, 3, 6.
- * B - 2, 3.
- *
- * MACROS READ, READW, REWIND, SETFET, WRITER, WRITEW.
- GRC SUBR ENTRY/EXIT
- SA1 CPAR+/COMSPFS/CPRD
- ZR X1,GRCX IF RDF NOT REQUESTED
- SA1 RDFE
- ZR X1,GRC0.1 IF NO *RDF* EXTRACTS WRITTEN
- BX6 X6-X6 CLEAR EXTRACT WRITTEN FLAG
- SA6 A1
- WRITER RDF,R TERMINATE SERIES OF *RDF* DEVICE EXTRACTS
- GRC0.1 SA1 MSSF
- SA2 ASFF
- BX1 X1+X2
- ZR X1,GRCX IF NEITHER *MSS* NOR *MSE* ENVIRONMENT
- BX6 X6-X6 INITIALIZE FET TABLE INDEX
- SA6 GRCA
- * INITIALIZE LOCK FET.
- SA1 LOCK+1 FIRST
- MX0 42
- BX6 X0*X1
- SX2 CATB
- BX6 X6+X2
- SA6 A1
- BX6 X2 IN
- SA6 A6+B1
- SA6 A6+B1 OUT
- SETFET LOCK,ERP=B0 CLEAR USER ERROR PROCESSING BIT
- * DETERMINE NEXT *MSS*/*MSE* CATALOG FILE TO PROCESS.
- GRC1 SA1 GRCA
- SX2 LFATL-1
- IX2 X2-X1
- NG X2,GRCX IF SUBFAMILIES EXHAUSTED
- SB3 X1
- SX2 B1 INCREMENT FET TABLE INDEX
- IX6 X1+X2
- SA6 A1
- SA1 LMSK CHECK LOCK FILE MASK
- SB2 59
- SB2 B2-B3
- LX1 B2,X1
- PL X1,GRC1 IF SUBFAMILY NOT DUMPED
- * OPEN *MSS*/*MSE* CATALOG FILE.
- SA1 LOCK SET LOCK FET FILE NAME
- SA2 LFAT+B3
- MX0 42
- BX6 X0*X2
- BX3 -X0*X1
- BX6 X6+X3
- SA6 A1+
- REWIND LOCK,R INITIATE *CIO*
- READ X2
- * WRITE *RDF* CATALOG RECORD CONTROL WORD.
- SX6 CCWD BUILD CATALOG RECORD CONTROL WORD
- SX1 B3 SET SUBFAMILY NUMBER
- LX1 53-5
- BX6 X1+X6
- SA6 RDFH
- WRITEW RDF,RDFH,B1
- * COPY *MSS*/*MSE* CATALOG FILE TO RELEASE DATA FILE.
- GRC2 READW LOCK,RDFH,RDFHL
- NZ X1,GRC3 IF END OF MSF CATALOG
- WRITEW RDF,RDFH,RDFHL
- EQ GRC2 COPY NEXT SECTOR
- GRC3 SX1 B6-RDFH
- WRITEW RDF,RDFH,X1
- WRITER X2,R
- EQ GRC1 PROCESS NEXT CATALOG FILE
- GRCA BSSZ 1 INDEX HOLD
- GRE SPACE 4,15
- ** GRE - GENERATE *RDF* EXTRACT RECORD.
- *
- * ENTRY (A0) = CATALOG ENTRY ADDRESS.
- * (CPAR+/COMSPFS/CPDN) = DEVICE NUMBER.
- *
- * EXIT EXTRACT RECORD WRITTEN TO THE RELEASE DATA FILE,
- * IF ALTERNATE STORAGE ADDRESS NOT ZERO.
- * (RDFE) = 1, IF EXTRACT RECORD WRITTEN.
- *
- * USES X - 0, 1, 6.
- * A - 1, 6.
- *
- * MACROS WRITEW.
- GRE SUBR ENTRY/EXIT
- SA1 CPAR+/COMSPFS/CPIP
- NZ X1,GREX IF INHIBITED PROCESSING
- SA1 A0+FCAA GET ALTERNATE STORAGE ADDRESS
- MX0 -36
- BX1 -X0*X1
- ZR X1,GREX IF NO ALTERNATE STORAGE ADDRESS
- SX6 1 SET RDF EXTRACT FLAG
- SA6 RDFE
- * BUILD EXTRACT RECORD CONTROL WORD.
- SX6 ECWD
- SA1 CPAR+/COMSPFS/CPDN SET DEVICE NUMBER
- LX1 59-5
- BX6 X1+X6
- SA1 A0+FCUI SET SUBFAMILY NUMBER
- MX0 -3
- BX1 -X0*X1
- LX1 53-5
- BX6 X1+X6
- SA6 RDFH
- * BUILD BODY OF EXTRACT RECORD.
- SA1 A0+FCFN+FCUI* SET FILE NAME AND USER INDEX
- BX6 X1
- SA6 A6+B1
- SA1 A0+FCCD SET CREATION DATE/TIME
- MX0 -36
- BX6 -X0*X1
- SA6 A6+B1
- SA1 A0+FCMD SET DATA MODIFICATION DATE/TIME
- BX6 -X0*X1
- SA6 A6+B1
- SA1 A0+FCKD SET CONTROL MODIFICATION DATE/TIME
- BX6 -X0*X1
- SA6 A6+B1
- SA1 A0+FCUD SET UTILITY CONTROL DATE/TIME
- BX6 -X0*X1
- SA1 A0+FCBT+FCBS*
- MX0 -24
- BX1 -X0*X1
- ZR X1,GRE1 IF FILE NOT DISK RESIDENT
- MX0 1 SET *DISK RESIDENT* FLAG
- BX6 X0+X6
- GRE1 SA6 A6+B1
- SA1 A0+FCAF+FCAT*0+FCAA* ALTERNATE STORAGE INFORMATION
- BX6 X1
- SA6 A6+B1
- WRITEW RDF,RDFH,8 WRITE EXTRACT RECORD
- EQ GREX RETURN
- IFM SPACE 4,10
- ** IFM - ISSUE FILE COUNT MESSAGES.
- *
- * EXIT FILES PROCESSED COUNTS ISSUED TO DAYFILE.
- *
- * USES X = 1, 2, 5, 6.
- * A = 1, 2, 5, 6.
- *
- * CALLS IFC.
- IFM SUBR ENTRY/EXIT
- SA1 CPAR+/COMSPFS/CPIP
- SA5 IFMD
- NZ X1,IFM2 IF PROCESSING INHIBITED
- SA5 IFMA
- RJ IFC ISSUE FILE COUNT MESSAGES
- SA1 CPAR+/COMSPFS/CPOP
- SA2 CPAR+/COMSPFS/CPDT
- SA5 IFMB
- LX1 59-53
- NG X1,IFM1 IF PURGE OPTION SPECIFIED
- SA5 IFMC
- ZR X2,IFMX IF NOT DESTAGE DUMP
- IFM1 SA1 PRFC
- SA2 PPFC
- IX6 X1-X2
- SA6 NPFC SET FILES NOT POST PROCESSED
- IFM2 RJ IFC ISSUE FILE COUNT MESSAGES
- EQ IFMX RETURN
- IFMA BSS 0 NORMAL PROCESSING MESSAGE TABLE
- VFD 1/1,1/0,22/0,18/DUMS,18/PRFC
- VFD 1/1,1/0,22/0,18/POMS,18/POFC
- VFD 1/0,1/0,22/0,18/STMS,18/STFC
- VFD 1/1,1/0,22/0,18/SEMS,18/SEFC
- VFD 1/1,1/0,22/0,18/DEMS,18/PEFC
- CON 0 END OF TABLE
- IFMB BSS 0 DUMP WITH PURGE MESSAGE TABLE
- VFD 1/1,1/0,22/0,18/PGMS,18/PPFC
- VFD 1/0,1/0,22/0,18/NPMS,18/NPFC
- CON 0 END OF TABLE
- IFMC BSS 0 DESTAGE DUMP MESSAGE TABLE
- VFD 1/1,1/0,22/0,18/DSMS,18/PPFC
- VFD 1/0,1/0,22/0,18/NDMS,18/NPFC
- CON 0 END OF TABLE
- IFMD BSS 0 INHIBITED PROCESSING MESSAGE TABLE
- VFD 1/1,1/0,22/0,18/SDMS,18/PRFC
- VFD 1/1,1/0,22/0,18/SPMS,18/POFC
- CON 0 END OF TABLE
- IRF SPACE 4,10
- ** IRF - INITILIZE RESCAN FILES.
- *
- * EXIT *REQS* FILE FLUSHED, REWOUND, AND RENAMED TO *RESS*.
- * OLD *RESS* FILE RETURNED.
- *
- * USES X - 0, 1, 2, 6.
- * A - 1, 2, 6.
- *
- * MACROS READ, RECALL, RENAME, REWIND, WRITEF.
- IRF SUBR ENTRY/EXIT
- WRITEF REQS,R FLUSH REQUEST FILE BUFFER
- RENAME REQS,RESS CREATE SCREEN FILE FROM REQUEST FILE
- REWIND RESS
- RECALL REQS
- SA1 IRFA RESTORE LFN IN *REQS* FET
- SA2 REQS
- MX0 -18
- BX6 -X0*X2
- BX6 X1+X6
- SA6 A2
- READ RESS
- EQ IRFX RETURN
- IRFA CON 0LZZZZZG5 ORIGINAL *REQS* FILE NAME
- IRS SPACE 4,15
- ** IRS - INITIALIZE RESCAN FOR STAGED FILES.
- *
- * ENTRY CATALOG TRACK INTERLOCK SET.
- *
- * EXIT (X6) = 1 IF TO RESCAN CATALOG TRACK.
- * (X7) = INITIAL CATALOG TRACK INDEX IF TO RESCAN TRACK.
- * CATALOG TRACK INTERLOCK SET.
- *
- * USES X - 1, 2, 3, 5, 6, 7.
- * A - 1, 2, 3, 6.
- * B - 2.
- *
- * CALLS CFE, IRF, SRS.
- *
- * MACROS CALLPFU, MESSAGE, MOVE, PCINT, RECALL, READW.
- IRS SUBR ENTRY/EXIT
- * CLEAR CATALOG TRACK INTERLOCK AND ISSUE STATUS MESSAGE.
- PCINT CATS,CTCC CLEAR CATALOG TRACK INTERLOCK
- RJ IRF INITIALIZE RESCAN FILES
- MESSAGE MSGS,1 *WAITING FOR STAGED FILES*
- SA3 IDSA+/COMSPFS/ADMS
- MOVE 3,MSGS,X3 SET STATUS MESSAGE IN *K* DISPLAY
- SX6 RESC
- RJ SRS SELECT RIGHT SCREEN
- * DELAY FOR FILE STAGING.
- SX5 DFAC SET NUMBER OF RECALLS TO WAIT
- IRS1 SA1 /COMSPFS/KIN GET K-DISPLAY INPUT
- SA2 IRSA
- SX6 B0
- SA6 A1+ CLEAR INPUT
- BX2 X1-X2
- ZR X2,IRS2 IF *SKIP* ENTERED
- RECALL
- SX5 X5-1
- NZ X5,IRS1 IF MORE DELAY
- * INITIALIZE RESCAN OF CATALOG TRACK.
- READW RESS,RESE,2 READ FIRST RESCAN REQUEST
- RETURN CATS,R RETURN OLD CATALOG FILE
- SA1 RSTS
- SA2 CATS+FTPM
- MX6 24
- SX7 5
- LX1 12
- BX6 X6*X2 PRESERVE EST ORDINAL AND FIRST TRACK
- BX1 X1+X7 MERGE CURRENT TRACK/SECTOR AND STATUS
- BX6 X6+X1
- SA6 A2 SET FST PARAMETERS
- CALLPFU CATS,CTOL,R OPEN CATALOG FILE
- SX5 B1 SET TO RESCAN TRACK
- EQ IRS3 RESET TRACK INTERLOCK
- * ISSUE MESSAGES FOR SKIPPED FILES.
- IRS2 READW RESS,RESE,2 READ STAGE REQUEST ENTRY
- SX5 B0+ SET NO RESCAN
- NZ X1,IRS3 IF END OF REQUESTS
- SA1 RESE+1 SET FILE NAME AND USER INDEX
- SB2 ERRT * STAGED FILE RESCAN TERMINATED ...*
- RJ SFE SEND ERROR MESSAGE
- RJ CFE COUNT FILE SKIPPED
- EQ IRS2 READ NEXT ENTRY
- * CLEAR MESSAGE AND RESET CATALOG TRACK INTERLOCK.
- IRS3 SA3 IDSA+/COMSPFS/ADER CLEAR HELP MESSAGE
- MOVE 4,MSGW,X3
- PCINT CATS,CTSC RESET CATALOG TRACK INTERLOCK
- SA1 RSIN
- BX6 X5 SET RESCAN STATUS
- BX7 X1 SET CATALOG INDEX FOR RESCAN
- EQ IRSX RETURN
- IRSA CON 0LSKIP *SKIP* KEYBOARD ENTRY
- MMC SPACE 4,10
- ** MMC - MOVE MEMORY VIA *CMU* OR REGISTERS.
- *
- * ENTRY (X1) = WORD COUNT OF MOVE.
- * (X3) = ADDRESS TO MOVE FROM.
- * (X6) = ADDRESS TO MOVE TO.
- *
- * USES X - 0, 1, 3, 6.
- * A - 1, 3, 6.
- * B - 5.
- MMC SUBR ENTRY/EXIT
- LX3 30 BUILD DESCRIPTOR WORD
- BX6 X6+X3
- SA3 MMCB GET ADDRESS INCREMENT
- UX3,B5 X3 EXTRACT CHARACTER COUNT
- PX6 X6,B5 SET CHARACTER COUNT UPPER FIELD
- SB5 X1 SET WORD COUNT
- BX1 X0 SAVE X0
- MMC1 SA6 A3-B1 STORE DESCRIPTOR WORD
- SB5 B5+X3 DECREMENT WORD COUNT
- NG B5,MMC2 IF SHORT BLOCK TO MOVE
- IM MMCA
- IX6 X6-X3 INCREMENT ADDRESSES
- GT B5,B0,MMC1 IF MORE DATA TO TRANSFER
- BX0 X1 RESTORE X0
- EQ MMCX RETURN
- * PROCESS BLOCK SHORTER THAN *NWCM* WORDS.
- MMC2 SX3 B5+NWCM RESET CHARACTER COUNT IN DESCRIPTOR
- UX6 X6
- LX0 X3,B1 COMPUTE CHARACTERS LEFT TO MOVE
- LX3 3
- IX3 X0+X3
- MX0 4
- LX3 -4
- BX0 X0*X3 EXTRACT LOWER FIELD
- SB5 2000B+X3 SET UPPER FIELD
- LX0 -30
- PX6 X6,B5
- BX6 X6+X0
- SA6 MMCA STORE DESCRIPTOR
- IM MMCA
- BX0 X1 RESTORE X0
- EQ MMCX RETURN
- MMCA VFD 12/0 UPPER CHARACTER COUNT OF MOVE
- VFD 18/0 ADDRESS TO MOVE FROM
- VFD 4/0 LOWER CHARACTER COUNT FIELD
- VFD 8/0
- VFD 18/0 ADDRESS TO MOVE TO
- MMCB VFD 12/-NWCM*10D/20B,18/-NWCM,30/-NWCM ADDRESS INCREMENT
- ERRNZ MMCB-MMCA-1 CODE DEPENDS ON LOCATION OF CELLS
- MMCL EQU *-MMC LENGTH OF CODE TO OVERLAY
- * THE FOLLOWING CODE IS USED WHEN NO *CMU* IS PRESENT.
- MOVE RMT
- LOC MMC
- MMC SUBR ENTRY/EXIT
- SA3 X3 READ FIRST WORD TO MOVE
- SB5 X1-10B SET WORD COUNT
- SA1 X6-1 INITIALIZE STORE ADDRESS
- BX6 X1
- SA6 A1
- NG B5,MMC4 IF LESS THAN 10B WORDS TO MOVE
- * REGISTER MOVE LOOP.
- MMC3 SA1 A3+B1
- BX6 X3
- SA6 A6+B1
- SA3 A1+B1
- BX6 X1
- SA6 A6+B1
- SA1 A3+B1
- BX6 X3
- SA6 A6+B1
- SB5 B5-10B DECREMENT WORD COUNT
- SA3 A1+B1
- BX6 X1
- SA6 A6+B1
- SA1 A3+B1
- BX6 X3
- SA6 A6+B1
- SA3 A1+B1
- BX6 X1
- SA6 A6+B1
- SA1 A3+B1
- BX6 X3
- SA6 A6+B1
- SA3 A1+B1
- BX6 X1
- SA6 A6+B1
- PL B5,MMC3 IF MORE 10 WORD BLOCKS TO MOVE
- * MOVE REMAINDER OF DATA.
- MMC4 SB5 B5+10B
- ZR B5,MMCX IF NO MORE DATA TO MOVE
- MMC5 BX6 X3
- SA3 A3+B1
- SB5 B5-B1
- SA6 A6+B1
- GT B5,B0,MMC5 IF MORE DATA TO MOVE
- EQ MMCX RETURN
- ERRPL *-MMC-MMCL CODE TOO LARGE TO OVERLAY *MMC*
- LOC *O
- MOVE RMT
- MRE SPACE 4,20
- ** MRE - MAKE DATA READ LIST ENTRY.
- *
- * ENTRY (A0) = CATALOG ADDRESS.
- *
- * EXIT (A0) = CATALOG ADDRESS.
- * (X6) = 0 IF DATA LIST FULL.
- * (X6) .NE. 0 IF DATA LIST NOT FULL.
- * DATA READ LIST ENTRY MADE IF NO ERROR.
- * (NDLE) = UPDATED COUNT OF READ LIST ENTRIES.
- *
- * USES X - 0, 1, 2, 3, 5, 6, 7.
- * A - 1, 2, 6, 7.
- * B - 2.
- *
- * CALLS CDS, CFE, SDE.
- *
- * MACROS MOVE.
- MRE SUBR ENTRY/EXIT
- * SET BUFFER INDEX AND TRACK/SECTOR IN ENTRY.
- SA1 A0+FCBT
- SA2 NDLE
- MX0 -24
- BX7 -X0*X1 TRACK AND SECTOR
- SB2 X2 NEXT CATALOG INDEX
- LX1 59-11
- PX7 X7,B2 SET CATALOG INDEX AND TRACK/SECTOR
- MX0 24
- PL X1,MRE2 IF INDIRECT ACCESS FILE
- * PROCESS DIRECT ACCESS FILE.
- SA1 A0+FCDN
- SA2 CPAR+/COMSPFS/CPDN
- MX0 48
- MX6 -6
- LX1 -36
- BX1 -X6*X1 DEVICE NUMBER
- ZR X1,MRE1 IF FILE RESIDES ON MASTER DEVICE
- SX2 X1+
- MRE1 SX2 X2+4000B SET DIRECT ACCESS FLAG
- BX7 X0*X7
- BX7 X7+X2 SET DEVICE NUMBER IN LIST ENTRY
- ZR X1,MRE3 IF FILE RESIDES ON MASTER DEVICE
- RJ CDS CHECK DEVICE STATUS
- NZ X6,MRE3 IF DEVICE FOUND
- SX2 X1+ SET DEVICE NUMBER
- SA1 A0+FCFN GET FILE NAME AND USER INDEX
- SB2 ERDN * DEVICE NOT FOUND ...*
- RJ SDE SEND ERROR MESSAGE
- RJ CFE COUNT FILE SKIPPED
- SX6 B1 SET DATA LIST NOT FULL
- EQ MREX RETURN
- * PROCESS INDIRECT ACCESS FILE.
- MRE2 SA1 A0+FCLF
- SX6 B1
- LX6 24
- BX7 X7+X6 SET FILE LENGTH ADJUSTMENT
- BX1 X0*X1 FILE LENGTH
- LX1 -12
- IX7 X7+X1 SET FILE LENGTH IN ENTRY
- * PUT ENTRY IN LIST.
- MRE3 SA1 CADA
- SA7 DLRB+B2 PUT READ LIST ENTRY IN TABLE
- SX3 B2+
- LX3 4 OFFSET IN *DLCB*
- ERRNZ NWCE-20B
- BX6 X1
- SX3 DLCB+X3 CATALOG ADDRESS IN *DLCB*
- SA6 DLDB+B2 SAVE DISK ADDRESS
- MOVE NWCE,A0,X3 MOVE CATALOG ENTRY TO BUFFER
- SX6 B2+B1 ADVANCE READ LIST ENTRY COUNT
- SX7 B0
- SA6 NDLE UPDATE ENTRY COUNT
- SA7 DLRB+X6 WRITE TERMINATOR WORD
- SX6 X6-DLEMX SET LIST FULL STATUS
- EQ MREX RETURN
- OPF SPACE 4,10
- ** OPF - OPEN PERMITS FILE.
- *
- * EXIT PERMITS FILE OPENED.
- *
- * USES X - 1, 2, 3, 6, 7.
- * A - 1, 2, 7.
- *
- * MACROS CALLPFU.
- OPF SUBR ENTRY/EXIT
- SA2 MSTA
- SA1 MAEQ
- SA2 X2
- MX6 -12
- SX7 10005B FIRST SECTOR AND FILE STATUS
- LX1 48
- LX2 -24
- BX7 X1+X7 MERGE EST ORDINAL, SECTOR, AND STATUS
- BX3 -X6*X2 PERMITS FIRST TRACK
- BX2 -X6*X2 SET CURRENT TRACK
- LX3 36
- LX2 24
- BX7 X7+X3 MERGE FIRST TRACK
- BX7 X7+X2 MERGE CURRENT TRACK
- SA7 PETS+FTPM SET PARAMETER WORD
- CALLPFU PETS,CTOL,R OPEN FILE
- EQ OPFX RETURN
- OPN SPACE 4,20
- ** OPN - OPEN DEVICE FILES.
- *
- * ENTRY (MSTA) = MASTER DEVICE *MSTT* ENTRY ADDRESS.
- * (MAEQ) = MASTER DEVICE EST ORDINAL.
- * (CPAR+/COMSPFS/CPDN) = MASTER DEVICE NUMBER.
- *
- * EXIT CATALOG, PERMIT AND DATA FILES OPENED.
- *
- * USES X - 1, 2, 3, 5, 6, 7.
- * A - 1, 2, 5, 7.
- *
- * CALLS OCF, OPF.
- *
- * MACROS CALLPFU.
- OPN SUBR ENTRY/EXIT
- * OPEN CATALOG AND PERMITS FILES.
- RJ OCF OPEN CATALOG FILE
- RJ OPF OPEN PERMITS FILE
- * OPEN DATA FILE.
- SA2 MSTA
- SA1 MAEQ
- SA2 X2
- MX6 -12
- SX7 10005B FIRST SECTOR AND FILE STATUS
- LX1 48
- LX2 -48
- BX7 X1+X7 MERGE EST ORDINAL, SECTOR, AND STATUS
- BX3 -X6*X2 INDIRECT DATA CHAIN FIRST TRACK
- BX2 -X6*X2 SET CURRENT TRACK
- LX3 36
- LX2 24
- BX7 X7+X3 MERGE FIRST TRACK
- BX7 X7+X2 MERGE CURRENT TRACK
- SA7 DATA+FTPM
- CALLPFU DATA,CTOL,R
- * SET UP DATA FET FOR *PFU* READ LIST FUNCTION (CTRL).
- SA2 CPAR+/COMSPFS/CPDN SET MASTER DEVICE NUMBER
- SA1 MAEQ SET MASTER DEVICE EST ORDINAL
- SA5 CPAR+/COMSPFS/CPDT
- SX7 X2+4000B
- LX1 47-11
- LX7 59-11
- ZR X5,OPN1 IF NOT DESTAGE DUMP
- SX5 1 SET TO CHECK UPDATE MODE FILE BUSY
- LX5 35-0
- BX7 X7+X5
- OPN1 BX7 X7+X1
- SA7 DATA+FTPM
- EQ OPNX RETURN
- PAF SPACE 4,10
- ** PAF - PROCESS ARCHIVE FILE OPERATION.
- *
- * ENTRY (B6) = FIRST PARAMETER FOR *CWWRITE* MACRO.
- * (B7) = SECOND PARAMETER FOR *CWWRITE* MACRO.
- *
- * USES X - 1, 2, 6, 7.
- * A - 1, 2, 6, 7.
- * B - 6, 7.
- *
- * MACROS CWWRITE.
- PAF SUBR ENTRY/EXIT
- SX6 B6 SAVE PARAMETERS
- SX7 B7
- SA6 PAFA
- SA7 PAFA+1
- CWWRITE TAPE,B6,B7 WRITE DATA TO ARCHIVE FILE
- SA1 CPAR+/COMSPFS/CPVF
- ZR X1,PAFX IF NO VERIFY FILE SPECIFIED
- SA1 PAFA RESTORE PARAMETERS
- SA2 PAFA+1
- SB6 X1
- SB7 X2
- CWWRITE PFVER,B6,B7 WRITE DATA TO ARCHIVE VERIFY FILE
- EQ PAFX RETURN
- PAFA BSS 2 PARAMETER SAVE AREA
- PAR SPACE 4,15
- ** PAR - POSITION ALTERNATE STORAGE TAPE TO NEXT RECORD.
- *
- * EXIT ALTERNATE STORAGE TAPE POSITIONED TO START OF NEXT
- * RECORD IF NOT CURRENTLY AT EOF OR EOI.
- * (X1) .LT. 0 IF CURRENTLY AT EOF OR EOI.
- * (CWSW) = 0 IF NOT AT EOF OR EOI.
- *
- * USES X - 6.
- * A - 6.
- *
- * MACROS CWREAD.
- PAR SUBR ENTRY/EXIT
- PAR1 CWREAD AST,DBUFH,DBUFHL
- ZR X7,PAR2 IF NO READ ERROR
- ZR B7,PAR1 IF TRANSFER COMPLETE
- PAR2 ZR X1,PAR1 IF NOT EOR/EOF/EOI
- NG X1,PARX IF EOF/EOI
- SX6 B0+ ENABLE READ OF NEXT RECORD
- SA6 AST+CWSW
- EQ PARX RETURN
- PAT SPACE 4,15
- ** PAT - PROCESS ALTERNATE STORAGE TAPE.
- *
- * EXIT FILES RESIDING ON SELECTED TAPE DUMPED.
- *
- * USES X - 1, 2, 6, 7.
- * A - 1, 2, 6, 7.
- * B - 2, 3.
- *
- * CALLS AAT, CFE, DTF, FTR, IRF, PAR, RCW, SFE.
- *
- * MACROS CWREAD, READCW, READW, UNLOAD, WRITEW.
- PAT SUBR ENTRY/EXIT
- * ASSIGN TAPE.
- UNLOAD AST,R RETURN CURRENT TAPE
- RJ AAT ASSIGN ALTERNATE STORAGE TAPE
- SX6 1
- SA6 PATA+1 ENABLE RESCAN OF TAPE
- * INITIALIZE TAPE PASS.
- PAT1 SX6 B0+
- SA6 PATA CLEAR FILE PROCESSED FLAG
- SA6 PATB CLEAR RESCAN REQUESTED
- SX0 MXLRR SET RETRY LIMIT FOR LABEL READ
- * INITIATE READ AND PROCESS ARCHIVE FILE LABEL.
- PAT2 SX0 X0-1 DECREMENT LABEL READ RETRY COUNTER
- NG X0,PAT9 IF RETRIES EXHAUSTED
- REWIND AST REWIND ARCHIVE FILE
- SX6 B0
- SA6 AST+CWSW CLEAR CONTROL WORD STATUS WORD
- READCW X2,17B INITIATE READ
- RJ RCW READ BLOCK CONTROL WORD
- NZ X7,PAT2 IF ERROR
- NZ X1,PAT9 IF EOR, EOF, OR EOI
- NZ X3,PAT9 IF NOT ARCHIVE LABEL CONTROL WORD
- CWREAD AST,DBUFH,X6+B1 READ BLOCK
- NZ X7,PAT2 IF READ ERROR
- NE B7,B1,PAT9 IF NOT FULL BLOCK TERMINATED BY EOR
- * READ NEXT REQUEST.
- PAT3 READW RESS,RESE,TCRQL READ REQUEST
- ZR X1,PAT4 IF NOT END OF REQUESTS
- SA1 PATB
- ZR X1,PATX IF RESCAN NOT REQUESTED
- EQ PAT8 CHECK RESCAN LIMIT
- * FIND NEXT TAPE FILE.
- PAT4 RJ PAR POSITION ARCHIVE FILE TO NEXT RECORD
- RJ RCW READ BLOCK CONTROL WORD
- NZ X7,PAT4 IF ERROR
- NG X1,PAT7 IF EOF OR EOI
- NZ X1,PAT4 IF EOR
- SX3 X3-1
- SX4 X4-1
- SX2 X6-NWCE
- NZ X3,PAT4 IF NOT CATALOG BLOCK
- NZ X4,PAT4 IF NOT FILE DUMP WITH DATA
- NZ X2,PAT4 IF NOT CORRECT BLOCK LENGTH
- CWREAD AST,DBUFH,X6 READ BLOCK
- NZ X7,PAT4 IF READ ERROR
- NZ X1,PAT4 IF PREMATURE EOR, EOF, OR EOI
- * COMPARE TAPE FILE TO REQUEST.
- PAT5 SA1 DBUFH+FCTV GET TAPE ALTERNATE STORAGE INFORMATION
- RJ FTR FORMAT TAPE REQUEST PARAMETERS
- SA1 RESE
- MX6 -18
- BX7 -X6*X7 SEQUENCE NUMBER OF CURRENT FILE
- BX1 -X6*X1 SEQUENCE NUMBER OF REQUEST
- IX7 X7-X1
- NG X7,PAT4 IF NOT YET AT REQUESTED FILE
- NZ X7,PAT6 IF PAST REQUESTED FILE
- * DUMP FILE.
- SX6 B1+
- SA6 PATA SET FILE PROCESSED
- RJ DTF DUMP TAPE RESIDENT FILE
- EQ PAT3 CHECK REQUEST AND TAPE FILE
- * SET TO PROCESS REQUEST ON RESCAN.
- PAT6 SX7 1
- SA7 PATB SET RESCAN REQUESTED
- WRITEW REQS,RESE,TCRQL WRITE REQUEST FOR RESCAN
- READW RESS,RESE,TCRQL READ NEXT REQUEST
- ZR X1,PAT5 IF NOT END OF REQUESTS
- EQ PAT8 CHECK RESCAN LIMIT
- * PROCESS EOF/EOI ON TAPE WITH REQUESTS REMAINING.
- * ALL REMAINING REQUESTS WILL BE COPIED TO RESCAN FILE.
- PAT7 WRITEW REQS,RESE,TCRQL WRITE REQUEST FOR RESCAN
- READW RESS,RESE,TCRQL READ NEXT REQUEST
- ZR X1,PAT7 IF NOT END OF REQUESTS
- * CHECK RESCAN LIMIT.
- PAT8 RJ IRF INITIALIZE RESCAN FILES
- SA1 PATA
- SA2 A1+B1
- IX2 X1+X2
- BX6 X1
- SA6 A2 SET LAST PASS STATUS
- NZ X2,PAT1 IF FILES PROCESSED ON THIS OR LAST PASS
- * ISSUE MESSAGES FOR FILES NOT FOUND ON ALTERNATE STORAGE TAPE.
- PAT9 READW RESS,RESE,TCRQL READ REQUEST
- NZ X1,PATX IF END OF REQUESTS
- SA1 RESE+1 SET FILE NAME AND USER INDEX
- SB2 ERNT * FILE NOT FOUND ON ALTERNATE STORAGE ...*
- RJ SFE SEND ERROR MESSAGE
- RJ CFE COUNT FILE SKIPPED
- EQ PAT9 READ NEXT ENTRY
- PATA CON 0 FILE PROCESSED ON CURRENT PASS FLAG
- CON 0 FILE PROCESSED ON LAST PASS FLAG
- PATB CON 0 TAPE RESCAN REQUESTED
- PFC SPACE 4,25
- ** PFC - PROCESS FILE CATALOG ENTRY.
- *
- * ENTRY CATALOG ENTRY IN *CATH*.
- * (FLOK) = *AFLOK*/*TFLOK* SELECTION FLAG.
- * (SCAN) = 0, IF NORMAL SCAN.
- * = 1, IF RESCAN.
- * (X5) = SKELETON CONTROL WORD.
- *
- * EXIT TRACK AND SECTOR FIELDS OF CATALOG ENTRY IMAGE CLEARED
- * IF RESCAN MODE TO IDENTIFY FILE NOT DISK RESIDENT AT
- * THE TIME OF DUMP.
- * ALTERNATE STORAGE INFORMATION CLEARED IN CATALOG ENTRY
- * IMAGE IF ZERO ALTERNATE STORAGE OPTION SELECTED.
- * TAPE ALTERNATE STORAGE VSN POINTER SET IN CATALOG
- * IMAGE IF DESTAGE DUMP.
- * CATALOG ENTRY IMAGE WRITTEN TO ARCHIVE FILE.
- * (FLST) = FILE STATUS (*PFC ONLY* STATUS SET).
- * (IFST) = 1 (CATALOG ENTRY DUMPED).
- *
- * USES X - 0, 1, 2, 3, 5, 6, 7.
- * A - 1, 2, 3, 6, 7.
- * B - 2, 3.
- *
- * CALLS DFN, WDT.
- PFC SUBR ENTRY/EXIT
- SA1 CATH+FCFN
- SX7 X5-CCWC
- ZR X7,PFC0.1 IF FILE DATA TO BE DUMPED
- SX7 1 SET *PFC ONLY* FLAG
- PFC0.1 SA7 FLST INITIALIZE FILE STATUS
- * BUILD DUMP FILE CONTROL WORD.
- MX6 42
- BX1 X6*X1
- SX5 X5+NWCE SET WORD COUNT
- BX6 X1+X5 SET FILE NAME
- SA6 CONTH
- * UPDATE FILE LENGTH IN CATALOG ENTRY.
- * NOTE - CODE IN SUBROUTINE *CSP* ENSURES THAT THE FILE
- * LENGTH IN THE PFC IS ALREADY CORRECT IF THE FILE DATA
- * IS NOT TO BE DUMPED.
- SA1 CATH+FCBS CHECK FILE TYPE
- SA2 CATH+FCLF SET LENGTH IN CATALOG ENTRY
- MX0 24
- LX1 59-11
- BX6 X2
- BX2 -X0*X2
- PL X1,PFC2 IF INDIRECT ACCESS FILE
- NZ X7,PFC2 IF DATA NOT TO BE DUMPED
- SA3 DBUFH GET ACCURATE LENGTH FROM CONTROL WORD
- LX3 59-47
- BX6 X0*X3
- BX6 X6+X2
- PFC1 SX2 B1 ADJUST LENGTH TO EXCLUDE EOI SECTOR
- BX1 X0*X6 GET FILE LENGTH
- ZR X1,PFC2 IF ZERO FILE LENGTH
- LX2 36-0
- IX6 X6-X2
- SA6 A2 UPDATE CATALOG ENTRY
- * WRITE CATALOG ENTRY TO ARCHIVE FILE.
- PFC2 SA1 CATH+FCFN SET FILE NAME AND USER INDEX
- SA2 =10HDUMPING
- RJ DFN DISPLAY STATUS MESSAGE
- SA1 SCAN
- ZR X1,PFC3 IF NORMAL SCAN MODE
- SA1 CATH+FCBT CLEAR BEGINNING TRACK FIELD
- MX2 48
- LX2 23-11
- BX6 X2*X1
- SA6 A1
- PFC3 SA1 CPAR+/COMSPFS/CPDT
- ZR X1,PFC3.2 IF NOT DESTAGE DUMP
- SA3 FLOK
- NG X3,PFC3.1 IF DESTAGE TO OPTICAL DISK
- SA1 VSNP
- SX2 1
- LX2 24
- BX6 X1
- IX7 X1+X2 INCREMENT FILE SEQUENCE NUMBER
- SA6 CATH+FCTV+FCTS*0+FCTF*0 SET TAPE STORAGE INFORMATION
- SA7 VSNP STORE UPDATED VSN POINTER
- EQ PFC3.2 CONTINUE
- PFC3.1 SA1 VSNP
- BX6 X1
- SA6 CATH+FCAA+FCAF*0+FCAT*0 SET OPTICAL DISK INFORMATION
- RECALL T WAIT COMPLETION OF ANY PENDING OPERATION
- SA1 T+6 GET CURRENT DISK ADDRESS
- MX3 24
- LX1 30-24
- BX7 X3*X1
- SA1 CATH+FCOA INSERT DISK ADDRESS INTO *FCOA*
- BX6 -X3*X1
- BX6 X6+X7
- SA6 A1
- PFC3.2 SA1 CPAR+/COMSPFS/CPOP
- SA2 FLST
- SX6 B0+
- LX1 59-46
- LX2 59-0
- NG X2,PFC3.3 IF DUMPING PFC AND PERMITS ONLY
- PL X1,PFC3.3 IF *OP=Z* NOT SELECTED
- SA6 CATH+FCAA+FCAT*0+FCAF*0 CLEAR CARTRIDGE POINTERS
- SA6 CATH+FCTV+FCTS*0+FCTF*0 CLEAR TAPE POINTERS
- SA1 CATH+FCOA CLEAR OPTICAL DISK ADDRESS
- MX6 24
- BX6 -X6*X1
- SA6 A1+
- PFC3.3 SB2 CATH
- SB3 NWCE
- RJ WDT WRITE CATALOG ENTRY TO ARCHIVE FILE
- SX6 1 SET PFC DUMPED INCOMPLETE FILE STATUS
- SA6 IFST
- EQ PFCX RETURN
- PFI SPACE 4,15
- ** PFI - PROCESS FILE WITH DUMP INHIBITED.
- *
- * ENTRY (A0) = CATALOG ADDRESS.
- * (B2) = 0 IF *PFC ONLY* DUMP SELECTED.
- *
- * EXIT (A0) = CATALOG ADDRESS.
- * OUTPUT FILES WRITTEN WITH FILE INFORMATION.
- *
- * USES X - 7.
- * A - 7.
- *
- * CALLS CFP, SFL.
- PFI SUBR ENTRY/EXIT
- SX7 B0
- NZ B2,PFI1 IF NOT *PFC ONLY* FILE SELECTION
- SX7 B1 SET *PFC ONLY* FLAG
- PFI1 SA7 FLST INITIALIZE FILE STATUS
- RJ SFL ENSURE FILE LENGTH CORRECT IN PFC ENTRY
- ZR X6,PFIX IF DEVICE NOT FOUND ERROR
- RJ CFP COUNT FILE PROCESSED
- EQ PFIX RETURN
- PPD SPACE 4,10
- ** PPD - PROCESS PFC/PERMITS ONLY DUMP.
- *
- * EXIT PFC ENTRY AND PERMITS WRITTEN TO ARCHIVE FILE.
- *
- * USES X - 5, 6, 7.
- * A - 0.
- *
- * CALLS CFP, PFC, RPF, SFL.
- *
- * MACROS ARCHIVE.
- PPD SUBR ENTRY/EXIT
- RJ SFL ENSURE FILE LENGTH SET IN CATALOG ENTRY
- SX5 COCW SET *PFC ONLY* CONTROL WORD
- RJ PFC WRITE CATALOG ENTRY
- RJ RPF WRITE FILE PERMITS
- ARCHIVE WRITER WRITE EOR ON ARCHIVE FILE
- SX6 B0+
- SX7 BFAC
- SA6 IFST CLEAR DUMP INCOMPLETE STATUS
- SA7 WREM RESET BLOCK STATUS FOR NEXT FILE
- SA0 CATH SET CATALOG ADDRESS
- RJ CFP COUNT FILE PROCESSED
- EQ PPDX RETURN
- PRL SPACE 4,20
- ** PRL - PROCESS DATA READ LIST.
- *
- * ENTRY (NDLE) = NUMBER OF ELEMENTS IN *DLRB*.
- *
- * EXIT ALL ENTRIES IN THE DATA READ LIST PROCESSED.
- * CATALOG INFORMATION WRITTEN TO OUTPUT FILE AND SUMMARY
- * FILE FOR DUMPED FILES.
- * (NDLE) = 0.
- *
- * USES X - 1, 5, 6, 7.
- * A - 1, 2, 6.
- * B - 2, 3, 5.
- *
- * CALLS CFD, CFE, DSF, PFC, RPR, RPF, SDL, SDP, UCE, WDB.
- *
- * MACROS CALLPFU, MOVE, RECALL.
- PRL SUBR ENTRY/EXIT
- SA1 NDLE
- ZR X1,PRLX IF NO READ LIST ENTRIES
- * SORT DATA LIST.
- RJ SDL SORT DATA LIST
- * INITIALIZE *DATA* FET AND CALL *PFU*.
- RECALL DATA
- SA1 NDLE
- SX6 B0+
- SA6 DATA+FTRE CLEAR RECALL WORD
- SX6 DLRB
- LX6 36
- BX6 X6+X1 SET DATA LIST ADDRESS AND ENTRY COUNT
- SA6 DATA+FTDL
- CALLPFU DATA,CTRL READ DATA LIST
- SX6 DLRB-1
- SA6 PRLA INITIALIZE BUFFER POINTER
- * PROCESS DATA READ LIST ENTRY.
- PRL1 SA1 PRLA
- SX6 X1+B1 ADVANCE TO NEXT ENTRY
- SA6 A1
- SA1 X6+ GET DATA LIST ELEMENT
- ZR X1,PRL4 IF END OF ENTRIES
- RJ SDP SET DATA LIST PARAMETERS
- * CHECK FILE STATUS.
- MOVE NWCE,A0,CATH SAVE CATALOG ENTRY
- SB5 B0 SET TO READ ONE WORD
- SB3 B1
- RJ RPR READ FILE CONTROL WORD
- SA1 DBUFH
- MX6 12
- BX6 X6*X1
- ZR X6,PRL3 IF NO ERROR CONDITION AND FILE NOT BUSY
- * PROCESS FILE BUSY OR ERROR CONDITION.
- SB2 ERSS * BAD SYSTEM SECTOR ...*
- LX1 59-50
- NG X1,PRL2 IF BAD SYSTEM SECTOR
- LX1 59-49-59+50
- SB2 ERZL * ZERO LENGTH FILE ...*
- NG X1,PRL2 IF ZERO LENGTH DIRECT ACCESS FILE
- SB2 CTUU SET UPDATE UTILITY CONTROL DATE FUNCTION
- RJ UCE UPDATE CATALOG ENTRY
- SB2 ERFB * FILE BUSY ...*
- PRL2 SA1 CATH+FCFN SET FILE NAME AND USER INDEX
- RJ SFE SEND ERROR MESSAGE
- RJ CFE COUNT FILE SKIPPED
- EQ PRL1 CHECK NEXT ENTRY
- * WRITE CATALOG ENTRY, PERMITS, AND FILE DATA.
- PRL3 SX5 CCWC SET CONTROL WORD FOR DATA DUMP
- RJ PFC WRITE CATALOG ENTRY
- RJ RPF WRITE FILE PERMITS
- RJ WDB WRITE DATA BLOCKS
- RJ CFD COMPLETE FILE DUMP
- EQ PRL1 CHECK NEXT ENTRY
- * DROP STAGED FILES IF CATALOG RESCAN.
- PRL4 SA1 SCAN
- ZR X1,PRL5 IF NOT RESCAN
- RJ DSF DROP STAGED FILES
- * SET DATA LIST EMPTY.
- PRL5 SX6 B0+
- SA6 NDLE SET NO ENTRIES IN READ LIST
- SA6 DLRB TERMINATE EMPTY LIST
- EQ PRLX RETURN
- PRLA BSS 1 *DLRB* POINTER
- PTF SPACE 4,10
- ** PTF - PROCESS TAPE RESIDENT FILES.
- *
- * EXIT TAPE ALTERNATE STORAGE RESIDENT FILES DUMPED.
- *
- * USES X - 1, 2, 3, 6.
- * A - 1, 2, 3, 6.
- *
- * CALLS IRF, PAT, STL.
- *
- * MACROS READ, READW, REWIND, WRITER, WRITEW.
- PTF SUBR ENTRY/EXIT
- SA1 TCRQ
- ZR X1,PTFX IF NO TAPE RESIDENT FILES
- WRITER TC FLUSH FILE LIST ENTRIES
- REWIND TC
- RJ STL SORT TAPE COPY FILE LIST
- REWIND S3
- READ S3
- PTF1 READW S3,TCRQ,TCRQL
- SA2 TCRQ
- SA3 ASTI
- BX6 X1
- SA6 PTFA SAVE EOR STATUS
- MX6 42
- NZ X1,PTF2 IF EOR ENCOUNTERED
- BX2 X6*X2 TAPE FLAGS AND VSN
- BX2 X2-X3
- ZR X3,PTF3 IF FIRST ENTRY
- ZR X2,PTF3 IF SAME TAPE
- PTF2 RJ IRF INITIALIZE RESCAN FILES
- RJ PAT PROCESS ALTERNATE STORAGE TAPE
- SA1 PTFA
- NZ X1,PTFX IF EOR ON REQUEST FILE
- PTF3 WRITEW REQS,TCRQ,TCRQL WRITE REQUEST FILE
- SA1 TCRQ
- MX6 42
- BX6 X6*X1
- SA6 ASTI SET TAPE IDENTIFIER
- EQ PTF1 CHECK NEXT REQUEST
- PTFA CON 0 EOR STATUS
- RCP SPACE 4,15
- ** RCP - RECALL *PFU* TO READ DATA FILE.
- *
- * EXIT DATA FILE BUFFER NOT EMPTY.
- * *PFU* CALLED IF BUFFER FOUND EMPTY AND FET NOT BUSY.
- * (X2) = FIRST.
- * (B4) = OUT.
- * (B6) = IN.
- * (A2) = ADDRESS OF FIRST IN DATA FET.
- *
- * USES X - 1, 2, 7.
- * A - 1, 2.
- * B - 4, 6.
- *
- * MACROS CALLPFU, RECALL.
- RCP SUBR ENTRY/EXIT
- RCP1 SA1 DATA CHECK FET STATUS
- BX7 X1
- SA2 A1+B1 READ FIRST
- SA1 A2+B1 READ IN
- SB6 X1
- SA1 A1+B1 READ OUT
- SB4 X1
- NE B4,B6,RCPX IF DATA AVAILABLE
- LX7 59-0
- PL X7,RCP2 IF FET STILL BUSY
- CALLPFU A2-B1,CTRL RECALL *PFU*
- RCP2 RECALL WAIT FOR *PFU*
- EQ RCP1 RECHECK BUFFER
- RCW SPACE 4,20
- ** RCW - READ ARCHIVE FILE BLOCK CONTROL WORD.
- *
- * EXIT (X7) .NE. 0 IF READ ERROR OR INVALID CONTROL WORD.
- * (X6) = BLOCK WORD COUNT IF CONTROL WORD READ AND NO
- * ERROR.
- * (X3) = CONTROL WORD TYPE CODE IF CONTROL WORD READ
- * AND NO ERROR.
- * (X4) = CONTROL WORD SUB-TYPE CODE IF CONTROL WORD READ
- * AND NO ERROR.
- * (X1) = READ STATUS FROM *CWREAD*.
- * (CWBF) = ARCHIVE FILE CONTROL WORD.
- *
- * USES X - 2, 3, 4, 6, 7.
- * A - 2.
- *
- * MACROS CWREAD.
- RCW SUBR ENTRY/EXIT
- CWREAD AST,CWBF,B1 READ ARCHIVE FILE CONTROL WORD
- SA2 CWBF
- NZ X7,RCWX IF READ ERROR
- NZ X1,RCWX IF EOR, EOF, OR EOI
- MX6 -9
- MX3 -3
- BX6 -X6*X2 BLOCK WORD COUNT
- LX2 -9
- BX4 -X3*X2 CONTROL WORD SUB-TYPE
- LX2 -3
- BX3 -X3*X2 CONTROL WORD TYPE
- SX2 X3-10B
- NG X2,RCWX IF VALID CONTROL WORD TYPE
- SX7 1 SET ERROR
- EQ RCWX RETURN
- RFC SPACE 4,15
- ** RFC - REQUEST FILE COPY FROM TAPE ALTERNATE STORAGE.
- *
- * ENTRY (A0) = FWA OF CATALOG ENTRY.
- *
- * EXIT ENTRY MADE IN TAPE COPY LIST.
- *
- * USES X - 1, 2, 3, 6, 7.
- * A - 1, 2, 3, 7.
- *
- * CALLS FTR.
- *
- * MACROS WRITEW.
- RFC SUBR ENTRY/EXIT
- * SET TAPE REQUEST INFORMATION FOR SORT.
- SA1 A0+FCTV GET TAPE ALTERNATE STORAGE INFORMATION
- RJ FTR FORMAT TAPE REQUEST PARAMETERS
- SA7 TCRQ SET SORT PARAMETERS
- * SET FILE NAME AND USER INDEX.
- SA1 A0+FCFN
- BX7 X1
- SA7 A7+B1 SET FILE NAME AND USER INDEX
- * SET PFC DISK POINTERS.
- SA1 CATS+FTPM GET FIRST TRACK OF CATALOG FILE
- SA2 CADA GET CATALOG TRACK AND SECTOR
- MX6 12
- MX7 -24
- LX6 -12
- SX3 A0-CSBF
- AX3 4 INDEX OF CATALOG ENTRY IN SECTOR
- ERRNZ NWCE-20B
- BX1 X6*X1 FIRST TRACK
- BX2 -X7*X2 CURRENT TRACK AND SECTOR
- BX7 X1+X3 MERGE FIRST TRACK AND INDEX
- LX2 12
- BX7 X7+X2 MERGE CURRENT TRACK/SECTOR
- SA7 A7+B1 SET PFC DISK POINTERS
- * WRITE REQUEST FILE ENTRY.
- WRITEW TC,TCRQ,TCRQL
- EQ RFCX RETURN
- RFS SPACE 4,20
- ** RFS - REQUEST FILE STAGING.
- *
- * ENTRY (A0) = FWA OF CATALOG ENTRY REQUIRING STAGING.
- *
- * EXIT (RSTS) = CATALOG TRACK AND SECTOR TO BEGIN RESCAN.
- * (RSIN) = CATALOG TRACK INDEX TO BEGIN RESCAN.
- * FILE STAGING REQUEST ISSUED TO *PFM*.
- * ENTRY POSTED IN LIST OF OUTSTANDING FILE STAGING
- * REQUESTS (*REQS*).
- *
- * USES X - 1, 2, 5, 6, 7.
- * A - 1, 2, 6, 7.
- * B - 2.
- *
- * CALLS CFE, SPR.
- *
- * MACROS STAGEPF, WRITEO.
- * ISSUE STAGE REQUEST ERROR MESSAGE.
- RFS1 SA1 A0+FCFN SET FILE NAME AND USER INDEX
- SB2 ERUS * UNABLE TO STAGE FILE ...*
- RJ SFE SEND ERROR MESSAGE
- RJ CFE COUNT FILE SKIPPED
- RFS SUBR ENTRY/EXIT
- * INITIATE FILE STAGE.
- SB2 SRBK SET REQUEST BLOCK ADDRESS
- SX7 B0+
- RJ SPR SET *PFM* STAGE REQUEST PARAMETERS
- STAGEPF SRFT REQUEST FILE STAGE
- SA1 X2 CHECK FOR ERROR
- MX6 -8
- LX1 -10
- BX1 -X6*X1
- NZ X1,RFS1 IF ERROR ON STAGE REQUEST
- * WRITE FILE INFORMATION TO RESCAN REQUEST FILE.
- SA1 CTIN SET INDEX OF ENTRY ON CATALOG TRACK
- BX6 X1
- WRITEO REQS WRITE CATALOG TRACK INDEX
- SA1 A0+FCFN SET FILE NAME AND USER INDEX
- BX6 X1
- WRITEO REQS
- SA1 RSTS
- NZ X1,RFSX IF NOT FIRST STAGE REQUEST
- SA1 CADA
- SA2 CTIN
- MX6 -24
- MX7 58
- BX6 -X6*X1 CATALOG TRACK AND SECTOR
- BX7 X7*X2 INDEX OF FIRST ENTRY IN SECTOR
- SA6 RSTS SET CATALOG TRACK AND SECTOR FOR RESCAN
- SA7 RSIN SET CATALOG TRACK INDEX FOR RESCAN
- EQ RFSX RETURN
- RIP SPACE 4,10
- ** RIP - REPRIEVE INTERRUPT PROCESSOR.
- *
- * EXIT BUSY FETS SET COMPLETE TO ALLOW TERMINATION
- * PROCESSING.
- *
- * MACROS COMPFET.
- RIP SUBR ENTRY/EXIT
- COMPFET (CATS,PETS,DATA,CATC,TAPE,O,SU,PFVER,PFMREQ,ACFT)
- COMPFET (ACFT,REQS,RESS,RDF,TC)
- EQ RIPX RETURN
- RLF SPACE 4,15
- ** RLF - RELEASE LOCK FILES.
- *
- * ENTRY (LMSK) = LOCK FILE MASK.
- * *LFAT* = FWA OF LOCK FILE FET ARGUMENT TABLE.
- * *LOCK* = FWA OF LOCK FILE FET.
- * (MSSF) = NONZERO, IF *MSS* ENVIRONMENT.
- * (ASFF) = NONZERO, IF *MSE* ENVIRONMENT.
- *
- * EXIT LOCKED FILES RETURNED.
- * (LMSK) = 0.
- *
- * USES X - 0, 1, 2, 3, 6, 7.
- * A - 1, 2, 6, 7.
- * B - 5, 6.
- *
- * MACROS CALLPFU, RETURN.
- RLF SUBR ENTRY/EXIT
- SA1 LMSK
- ZR X1,RLFX IF NO FILES LOCKED
- SB6 B0 INITIALIZE LOCK INDEX
- SA6 RLFA
- * RELEASE LOCK FILES.
- RLF1 SA1 LMSK
- SX2 1
- LX2 B6,X2
- BX3 X2*X1
- ZR X3,RLF2 IF THIS FILE NOT LOCKED
- SA1 LFAT+B6 SET FILE NAME
- SA2 LOCK
- MX0 42
- BX6 X0*X1
- BX3 -X0*X2
- BX6 X3+X6
- SA6 A2
- RETURN LOCK,R RELEASE LOCK FILE
- SA1 RLFA RESTORE LOCK INDEX
- SB6 X1+
- RLF2 SB6 B6+1 INCREMENT INDEX
- SB5 LFATL
- GE B6,B5,RLF3 IF ALL LOCK FILES RELEASED
- SX6 B6 SAVE LOCK INDEX
- SA6 RLFA
- EQ RLF1 RELEASE NEXT LOCK FILE
- * ISSUE RELEASE NOTICE.
- RLF3 SA1 LMSK INDICATE FILES RELEASED
- BX6 X1
- LX1 0-8 GET *MSE* LOCK MASK
- BX6 X6+X1
- MX7 -8
- BX6 -X7*X6
- BX7 X7-X7
- SA6 CMSK
- SA7 A1+
- SA2 MSSF
- ZR X2,RLF4 IF NOT *MSS* ENVIRONMENT
- CALLPFU LKC1,CTRU RELEASE *MSS* INTERLOCK
- RLF4 SA2 ASFF
- ZR X2,RLFX IF NOT *MSE* ENVIRONMENT
- CALLPFU LKC2,CTRU RELEASE *MSE* INTERLOCK
- EQ RLFX RETURN
- RLFA BSSZ 1 LOCK INDEX HOLD AREA
- RMF SPACE 4,10
- ** RMF - RETURN MASTER DEVICE FILES.
- *
- * EXIT CATALOG, PERMITS, AND DATA FILES RETURNED.
- *
- * MACROS RETURN.
- RMF SUBR ENTRY/EXIT
- RETURN CATS RETURN CATALOG FILE
- RETURN PETS RETURN PERMITS FILE
- RETURN DATA RETURN DATA FILE
- EQ RMFX RETURN
- RPF SPACE 4,20
- ** RPF - READ PERMIT FILE.
- *
- * ENTRY CATALOG ENTRY IN *CATH*.
- *
- * EXIT PERMIT DATA COPIED TO THE ARCHIVE FILE.
- * PERMITS LOST FLAG SET IN *FLST* IF ERROR DETECTED IN
- * PERMITS.
- * (IFST) = 2 IF PERMITS DUMPED.
- *
- * USES X - 0, 1, 2, 3, 5, 6, 7.
- * A - 1, 2, 3, 6, 7.
- * B - 2, 3.
- *
- * CALLS SFE, WDT.
- *
- * MACROS READ, READW, RECALL, SKIPEI.
- * PROCESS ERROR IN PERMIT DATA.
- RPF5 SA1 CATH+FCUI
- SB2 ERPR * PERMIT READ ERROR ...*
- RJ SFE SEND ERROR MESSAGE
- SA2 PETS CLEAR FET ERROR STATUS
- SX1 36000B
- MX6 0 CLEAR DETAILED ERROR CODE
- BX7 -X1*X2
- SA6 A2+6
- SA7 A2
- RPF6 SA1 FLST SET PERMITS LOST IN FILE STATUS
- SX6 4
- BX6 X1+X6
- SA6 A1
- SA1 RCWD SET READ ERROR CONTROL WORD
- SX2 PRCW
- SB2 PHBUF SET FWA OF PERMIT DATA
- SB3 B0 CLEAR PERMIT DATA WORD COUNT
- BX6 X1+X2
- EQ RPF8 WRITE *ERROR* CONTROL WORD
- * PROCESS END OF PERMIT DATA.
- RPF7 SX1 PRCW SET END OF PERMIT CONTROL WORD
- SX2 B3 ADD WORD COUNT
- BX6 X1+X2
- RPF8 SA6 CONTH
- RJ WDT WRITE LAST BLOCK OF PERMITS
- SX6 2 SET PERMITS DUMPED INCOMPLETE FILE STATUS
- SA6 IFST
- RPF SUBR
- * CHECK FOR PERMITS PRESENT.
- SA1 CATH+FCRI
- MX0 -24
- LX1 24
- BX6 -X0*X1 PERMITS FILE RANDOM INDEX
- SX7 B0
- ZR X6,RPFX IF NO PERMITS
- SA6 RPFA SAVE RANDOM INDEX
- SA7 RPFC CLEAR LENGTH RETRIEVAL FLAG
- * READ PRU OF PERMITS.
- RPF1 RECALL PETS REWIND PERMIT FILE
- MX0 -18
- SA2 PETS+1
- BX6 -X0*X2
- SA6 A2+B1
- SA6 A6+B1
- SA1 RPFA GET RANDOM INDEX
- SA2 RPFB CHECK FOR PETS FILE LIMIT EXCEEDED
- IX2 X1-X2
- PL X2,RPF3 IF RANDOM INDEX NOT ON FILE
- BX6 X1
- SA6 PETS+6
- READ PETS,R FILL ONE SECTOR CIRCULAR BUFFER
- READW PETS,PHBUF,100B READ PERMIT SECTOR
- SB2 PHBUF SET FWA OF PERMITS BUFFER
- SB3 B6-B2 SET WORD COUNT IN BUFFER
- SX6 B3-NWPH-NWPE CHECK WORD COUNT
- NG X6,RPF2 IF INCORRECT WORD COUNT
- SX3 NWPE-1
- ERRNZ NWPH-NWPE CODE DEPENDS ON VALUE
- BX6 X3*X6
- NZ X6,RPF2 IF INCORRECT WORD COUNT
- SA3 X2 GET FET ERROR STATUS
- SX6 36000B
- BX2 X6*X3
- SA3 B2 GET USER INDEX FROM PERMIT SECTOR
- NZ X2,RPF5 IF ERROR ON PERMIT READ
- SA2 CATH+FCUI GET USER INDEX FROM CATALOG
- LX3 -12
- BX6 X2-X3 VALIDATE PERMIT USER INDEX
- MX2 -18
- BX6 -X2*X6
- NZ X6,RPF2 IF NOT CORRECT USER INDEX
- NZ X1,RPF7 IF END OF PERMIT DATA
- LX3 -24 SET LINKAGE RANDOM INDEX
- MX6 -24
- BX7 -X6*X3
- ZR X7,RPF7 IF END OF PERMIT DATA
- SX6 PMCW+100B SET FULL BLOCK PERMIT CONTROL WORD
- SA7 RPFA
- SA6 CONTH
- RJ WDT WRITE ARCHIVE FILE
- EQ RPF1 GET NEXT SECTOR
- * PROCESS PERMIT FORMAT ERROR.
- RPF2 SA1 CATH+FCUI
- SB2 ERPF * PERMIT FORMAT ERROR ...*
- RJ SFE SEND ERROR MESSAGE
- EQ RPF6 PROCESS END OF PERMIT DATA
- * PERMIT RANDOM INDEX OUT OF RANGE.
- RPF3 SA1 RPFC CHECK LENGTH RETRIEVAL FLAG
- NZ X1,RPF4 IF LENGTH RETRIEVAL FLAG SET
- SX6 B1 SET LENGTH RETRIEVAL FLAG
- SA6 A1
- SKIPEI PETS,R SET LAST SECTOR
- SA1 PETS+6
- AX1 30
- BX6 X1
- SA6 RPFB
- EQ RPF1 TRY AGAIN
- RPF4 SA1 CATH+FCUI
- SB2 ERPI * PERMIT RANDOM INDEX ERROR ...*
- RJ SFE SEND ERROR MESSAGE
- EQ RPF6 PROCESS END OF PERMIT DATA
- RPFA BSSZ 1 RANDOM INDEX HOLD
- RPFB BSSZ 1 PETS FILE LENGTH
- RPFC BSSZ 1 LENGTH RETRIEVAL FLAG
- RPR SPACE 4,15
- ** RPR - READ PRU.
- *
- * ENTRY (B5) = 0 IF ONLY TO READ CONTROL WORD.
- * (B5) = INDEX TO START READING DATA IN *DBUFH*.
- *
- * EXIT CONTROL WORD TRANSFERRED TO *DBUFH*.
- * DATA TRANSFERRED IF NOT CONTROL WORD ONLY READ.
- * (B5) = INDEX TO READ NEXT PRU IF DATA READ.
- *
- * USES X - 1, 3, 4, 6.
- * A - 1, 6.
- * B - 2, 3, 4, 5, 6, 7.
- *
- * CALLS MMC, RCP.
- RPR SUBR ENTRY/EXIT
- SA1 DATA+FTLM READ LIMIT
- SB7 X1+
- * CHECK FOR EMPTY BUFFER.
- RJ RCP RECALL *PFU* ON EMPTY BUFFER
- SA1 B4+ READ DATA WORD
- SB4 B4+B1
- BX6 X1
- SA6 DBUFH STORE CONTROL WORD
- NE B4,B7,RPR1 IF OUT+1 .NE. LIMIT
- SB4 X2 SET OUT+1 TO FIRST
- RPR1 MX4 -12 EXTRACT WORD COUNT FROM CONTROL WORD
- BX3 -X4*X1
- LX4 12
- SX6 B4
- SA6 DATA+FTOT
- ZR B5,RPRX IF ONLY READ OF CONTROL WORD
- ZR X3,RPRX IF NO DATA TO READ
- BX1 -X4*X1
- SB3 B4+X3
- ZR X1,RPRX IF EOF/EOI
- * TRANSFER DATA FROM CIRCULAR BUFFER TO WORKING BUFFER.
- RPR2 RJ RCP RECALL *PFU* IF EMPTY BUFFER
- SX6 DBUFH+B5 ADDRESS TO TRANSFER TO
- LT B3,B7,RPR4 IF NO BUFFER WRAP
- * PROCESS FIRST HALF OF BUFFER WRAP.
- SX3 B4 ADDRESS TO TRANSFER FROM
- SX1 B6-B4
- GT B6,B4,RPR3 IF REMAINDER OF BUFFER NOT FULL
- SB6 X2 SET NEW OUT
- SB3 B3-B7 RESET END OF TRANSFER
- SX1 B7-B4 SET WORD COUNT TO END OF BUFFER
- SB3 X2+B3
- RPR3 SB2 B5+X1 RESET WORKING BUFFER INDEX
- SB4 B6
- RJ MMC MOVE DATA TO WORKING BUFFER
- SX6 B4 RESET OUT
- SB5 B2
- SA6 DATA+FTOT
- EQ RPR2 RECHECK BUFFER
- * PROCESS SECOND HALF OF BUFFER WRAP OR NON-WRAP.
- RPR4 SX3 B4 ADDRESS TO TRANSFER FROM
- SX1 B3-B4 WORDS TO TRANSFER
- LT B6,B4,RPR5 IF ALL OF DATA IN BUFFER
- GT B6,B3,RPR5 IF ALL OF DATA IN BUFFER
- SX1 B6-B4 SET LENGTH TO DATA IN BUFFER
- RPR5 SB2 B5+X1 RESET WORKING BUFFER INDEX
- SB4 B4+X1 RESET OUT
- RJ MMC MOVE DATA TO WORKING BUFFER
- SB5 B2 RESTORE B5
- SX6 B4 RESET OUT
- SA6 DATA+FTOT
- NE B3,B4,RPR2 IF NOT ALL DATA TRANSFERRED
- EQ RPRX RETURN
- SDI SPACE 4,15
- ** SDI - SET DEVICE INHIBIT DATES.
- *
- * ENTRY DIFT = ADDRESS OF FET TO SET DEVICE INHIBIT DATES.
- * (/COMSPFS/STDT) = START DATE/TIME.
- * MSTT = FWA OF MST TABLE.
- *
- * EXIT DISK SPACE RELEASE INHIBIT DATES SET ON ALL DEVICES
- * MARKED AS DUMP COMPLETED IN THE MST TABLE.
- *
- * USES X - 0, 1, 2, 3, 4, 5, 6.
- * A - 1, 3, 4, 6.
- * B - 2.
- *
- * MACROS SETDI.
- SDI SUBR ENTRY/EXIT
- SA1 CPAR+/COMSPFS/CPSD
- SA2 CPAR+/COMSPFS/CPIP
- ZR X1,SDIX IF INHIBIT DATE SETTING NOT REQUESTED
- NZ X2,SDIX IF PROCESSING INHIBITED
- SB2 MSTT INITIALIZE MST TABLE POINTER
- SDI1 SA1 B2+B1
- SA2 MASK
- MX0 -8
- BX2 X1*X2
- BX2 -X0*X2
- ZR X1,SDIX IF MST TABLE EXHAUSTED
- ZR X2,SDI2 IF DEVICE NOT DUMPED
- SA3 B2 GET DEVICE NUMBER
- MX0 -6
- BX5 -X0*X3
- LX3 5-11 GET EST ORDINAL
- MX0 -9
- BX3 -X0*X3
- SETDI DIFT,X3,MDIT,/COMSPFS/STDT SET MASTER DEVICE DATE
- SA4 CPAR+/COMSPFS/CPTD
- ZR X4,SDI2 IF NOT TRUE DEVICE DUMP
- IX4 X4-X5
- NZ X4,SDI2 IF NOT SPECIFIED TRUE DEVICE
- SETDI X2,X3,RDIT SET RESIDENT DEVICE INHIBIT DATE
- SDI2 SB2 B2+2 INCREMENT MST TABLE POINTER
- EQ SDI1 PROCESS NEXT ENTRY
- SDL SPACE 4,10
- ** SDL - SORT DATA LIST.
- *
- * ENTRY (X1) = NUMBER OF ENTRIES IN LIST.
- * *DLRB* = FWA OF LIST.
- *
- * EXIT LIST SORTED IN *DLRB*.
- *
- * USES X - 0, 1, 2, 3, 4, 6.
- * A - 1, 2, 6.
- * B - 3, 4, 5, 6, 7.
- SDL SUBR
- MX0 -24
- SB6 X1 SET ITEM LIMIT
- SB4 B0
- SB5 B1
- LE B6,B5,SDLX IF ONE OR LESS ELEMENTS - RETURN
- SDL1 SA1 DLRB+B4 GET ELEMENTS TO SORT
- SA2 DLRB+B5
- UX3 B7,X1
- UX4 B3,X2
- BX4 -X0*X4
- BX3 -X0*X3
- IX3 X4-X3
- PL X3,SDL2 IF NO CANGE IN POSITION
- PX6 B7,X1 CHANGE POSITIONS - RESORT
- SA6 A2
- PX6 B3,X2
- SA6 A1
- SDL2 SB5 B5+B1
- GT B6,B5,SDL1 IF MORE ELEMENTS TO COMPARE TO BASE
- SB4 B4+B1
- SB5 B4+B1
- SB7 B6-B1
- NE B7,B4,SDL1 IF MORE ELEMENTS TO COMPARE
- EQ SDLX RETURN
- SDP SPACE 4,10
- ** SDP - SET DATA READ LIST PARAMETERS.
- *
- * ENTRY (X1) = DATA LIST ENTRY.
- *
- * EXIT (A0) = ADDRESS OF CATALOG ENTRY.
- * (CADA) = CATALOG ENTRY DISK ADDRESS.
- *
- * USES X - 1, 6.
- * A - 0, 6.
- * B - 2.
- SDP SUBR ENTRY/EXIT
- UX1,B2 X1
- SA1 DLDB+B2 GET CATALOG DISK ADDRESS
- SX6 B2
- LX6 4
- ERRNZ NWCE-20B
- SA0 DLCB+X6 SET CATALOG ENTRY ADDRESS
- BX6 X1
- SA6 CADA SET CATALOG ADDRESS
- EQ SDPX RETURN
- SRS SPACE 4,15
- ** SRS - SELECT RIGHT SCREEN.
- *
- * *SRS* REPLACES THE CURRENT RIGHT SCREEN WITH THE REQUESTED
- * ONE AND ALERTS THE OPERATOR TO ENTER AN OPTION.
- *
- * ENTRY (X6) = FWA OF THE REQUESTED RIGHT SCREEN BUFFER.
- *
- * USES X - 0, 5, 6.
- * A - 5, 6.
- *
- * MACROS MOVE.
- SRS SUBR ENTRY/EXIT
- SA5 IDSA+/COMSPFS/KDCW CHANGE *K* DISPLAY CONTROL WORD
- MX0 42
- LX6 18
- LX0 18
- BX5 X0*X5
- BX6 X5+X6
- SA6 A5
- SA5 IDSA+/COMSPFS/ADER ALERT THE OPERATOR
- MOVE 4,MSGI,X5
- EQ SRSX RETURN
- STL SPACE 4,15
- ** STL - SORT TAPE COPY LIST.
- *
- * ENTRY REQUEST FILE *TC* AT BOI.
- *
- * EXIT SORTED REQUESTS ON FILE *S3*.
- *
- * USES X - 0, 1, 5, 6.
- * A - 0, 5.
- * B - 4, 5.
- *
- * CALLS MSF, ISF, WSB.
- *
- * MACROS READ, READW, WRITER.
- STL SUBR ENTRY/EXIT
- READ TC
- RJ ISF INITIALIZE SORT FILES
- STL1 READW TC,SRTB,SBTCL
- SB7 B7-SBTCL
- ZR B7,STL2 IF END OF ENTRIES
- MX0 60 SET SORT KEY MASK
- SX1 B1 SET SORT KEY LENGTH
- SB4 1 SET KEY OFFSET
- SB5 TCRQL SET ENTRY LENGTH
- RJ WSB WRITE SORTED ENTRIES TO FILE
- EQ STL1 READ NEXT BUFFER OF ENTRIES
- STL2 WRITER S1 FLUSH BUFFER
- WRITER S2 FLUSH BUFFER
- SX0 TCRQL SET ENTRY LENGTH
- SX1 SBTCC SET FULL BLOCK ENTRY COUNT
- MX2 60 SET KEY MASK
- SB4 B0 SET KEY OFFSET
- SB5 1 SET KEY LENGTH
- SA0 SW1B SET WORKING BUFFER 1 ADDRESS
- SA5 SW2B SET WORKING BUFFER 2 ADDRESS
- RJ MSF MERGE SORT FILES
- EQ STLX RETURN
- TER SPACE 4,15
- ** TER - TERMINATE ARCHIVE FILE AND RETURN SYSTEM FILES.
- *
- * EXIT END OF DUMP RECORD AND EOF WRITTEN TO ARCHIVE AND
- * VERIFY FILES.
- * SYSTEM FILES RETURNED.
- * PERMANENT FILE PARAMETERS RESTORED TO ENTRY VALUES.
- *
- * USES X - 7.
- * A - 7.
- *
- * CALLS FAF.
- *
- * MACROS ARCHIVE, RETURN, SETPFP.
- TER SUBR ENTRY/EXIT
- SA1 CPAR+/COMSPFS/CPIP
- NZ X1,TER1 IF PROCESSING INHIBITED
- SX7 EODC WRITE END OF DUMP CONTROL WORD
- SA7 CONTH
- ARCHIVE WRITEW,CONTH,B1
- ARCHIVE WRITER
- ARCHIVE WRITEF WRITE EOF ON ARCHIVE FILE
- RJ FAF FLUSH ARCHIVE FILE BUFFERS
- RETURN REQS
- RETURN RESS
- RETURN TC
- TER1 SETPFP GPAR RESTORE PERMANENT FILE PARAMETERS
- EQ TERX RETURN
- UCE SPACE 4,20
- ** UCE - UPDATE CATALOG ENTRY.
- *
- * ENTRY (B2) = *PFU* FUNCTION CODE.
- * (CADA) = CATALOG ENTRY DISK ADDRESS IN *PFM* FORMAT.
- * (FLOK) = *AFLOK*/*TFLOK* SELECTION FLAG.
- * CATALOG ENTRY IN *CATH*.
- * CATALOG TRACK INTERLOCKED.
- *
- * EXIT *PFU* CALLED TO UPDATE PFC ENTRY.
- * DEVICE ERROR IDLE SET, IF WRITE ERROR ON CATALOG
- * FILE AND DATA ON THE FILE HAS BEEN CORRUPTED.
- * CATALOG TRACK INTERLOCKED.
- *
- * USES X - 0, 1, 2, 3, 6, 7.
- * A - 1, 3, 6, 7.
- *
- * CALLS SEI, SFE.
- *
- * MACROS CALLPFU.
- UCE SUBR ENTRY/EXIT
- SA1 CATH+FCFN+FCUI* SET FILE NAME AND USER INDEX
- BX6 X1
- SA6 UULV
- SA1 CATH+FCCD GET CREATION DATE/TIME
- SA3 FLOK GET FILE LOCK FLAG
- MX0 -36
- BX6 -X0*X1
- BX6 X3+X6
- SA6 UULV+1
- SA1 CADA GET *PFM* FORMAT CATALOG ADDRESS
- SA2 MAEQ
- MX6 30
- BX7 X6*X1 CATALOG INDEX
- MX6 -24
- LX7 6
- BX6 -X6*X1 TRACK AND SECTOR
- LX2 24
- BX6 X6+X7 MERGE TRACK/SECTOR AND CATALOG INDEX
- BX6 X6+X2 MERGE EST ORDINAL
- SA6 UULV+2
- CALLPFU UUCW,B2,R CALL *PFU* TO UPDATE PFC
- SA1 UUCW
- MX0 -12
- LX1 -12
- BX1 -X0*X1 ERROR CODE
- ZR X1,UCEX IF NO ERROR
- SA1 CATH+FCUI
- SB2 ERCU * CATALOG UPDATE ERROR ...*
- RJ SFE SEND ERROR MESSAGE
- SA1 UUCW
- MX0 -12
- LX1 -12
- BX1 -X0*X1
- SX1 X1-3
- NZ X1,UCEX IF NOT WRITE ERROR WITH DATA TRANSFERRED
- SB2 ELWC * ERROR IDLE SET - PF CATALOG WRITE ...*
- RJ SEI SET ERROR IDLE
- EQ UCEX RETURN
- WDB SPACE 4,25
- ** WDB - WRITE DATA BLOCK.
- *
- * ENTRY (CATH - CATH+NWCE) = CATALOG IMAGE OF FILE BEING
- * DUMPED.
- * (CPAR+/COMSPFS/CPDN) = MASTER DEVICE NUMBER.
- * (FLOK) = *AFLOK*/*TFLOK* SELECTION FLAG.
- * (MAEQ) = MASTER DEVICE NUMBER.
- * *DATA* FILE POSITIONED AT DATA FOR FILE BEING DUMPED.
- *
- * EXIT DATA FOR FILE BEING DUMPED COPIED TO THE ARCHIVE FILE.
- * *DATA* FILE POSITIONED AT BEGINNING OF NEXT FILE.
- * ERROR MESSAGE ISSUED FOR FILE IF IT WAS TOO LONG, TOO
- * SHORT OR HAD A MASS STORAGE ERROR.
- *
- * USES X - 0, 1, 2, 3, 4, 6, 7.
- * A - 1, 2, 3, 6, 7.
- * B - 2, 3, 5, 6.
- *
- * CALLS FAF, RPR, SEI, SFE, WDT.
- *
- * MACROS ARCHIVE.
- WDB SUBR
- WDB1 BX6 X6-X6
- SA6 WDBC
- SB5 B1
- * READ FILE CONTROL WORD AND DATA.
- WDB2 RJ RPR READ PHYSICAL RECORD
- * DETERMINE CONTROL WORD TYPE.
- WDB3 SA2 WDBE INCREMENT PRU NUMBER
- SX3 B1+
- SA1 DBUFH GET SECTOR CONTROL WORD
- IX6 X2+X3
- MX0 -12
- BX2 -X0*X1 WORD COUNT
- LX1 0-12
- SA6 A2
- BX3 -X0*X1 NEXT SECTOR LINK
- LX1 59-49-0+12
- BX7 X2+X3
- NG X1,WDB10 IF MASS STORAGE ERROR
- SX1 3777B
- ZR X7,WDB6 IF EOI SECTOR
- BX1 X3-X1
- SX7 X2-NWPR
- ZR X3,WDB15 IF EOF SECTOR
- ZR X1,WDB17 IF SYSTEM SECTOR
- NG X7,WDB16 IF EOR SECTOR
- * PROCESS FULL SECTOR.
- SA1 WREM GET WORDS REMAINING
- SB2 X1
- SB6 B5
- SA1 WDBC GET TOTAL WORD COUNT
- IX6 X2+X1
- SA6 A1
- GT B2,B6,WDB2 GET MORE DATA
- SX6 DCWC
- SX4 B2-B1
- BX6 X6+X4
- SA6 CONTH
- SB2 DBUFH+1
- SB3 X4
- SX6 B5
- SA6 WDBB
- SB6 B5-B3
- SX6 B6-B1
- SA6 WDBA STORE WORDS LEFT IN WS BUFFER
- RJ WDT WRITE ARCHIVE FILE
- SA1 WDBA
- SB6 X1
- SA1 WDBB
- SB5 X1
- SB2 B1
- NG B6,WDB5 IF NO WORDS TO TRANSFER
- ZR B6,WDB5 IF NO WORDS TO TRANSFER
- SB6 B5-B6
- WDB4 SA1 DBUFH+B6
- BX6 X1
- SA6 DBUFH+B2
- SB2 B2+B1
- SB6 B6+B1
- GT B5,B6,WDB4 IF NOT END OF TRANSFER
- WDB5 SX6 B2-B1 SET NEW WORD COUNT
- SA6 WDBC
- SB5 B2
- EQ WDB2 GET MORE DATA
- * PROCESS EOI.
- WDB6 SX6 DCWC SET EOI
- SA1 WDBC
- ZR X1,WDB7 IF NO WORDS
- IX6 X6+X1
- SA6 CONTH
- SB2 DBUFH+1
- SB3 X1
- RJ WDT
- WDB7 SA1 CATH+FCLF GET PFC LENGTH (DATA SECTORS)
- SA2 WDBE GET ACTUAL LENGTH
- MX3 -24
- LX1 -36
- BX6 -X3*X1
- SX1 B1+B1
- IX2 X2-X1 SUBTRACT EOI AND SYSTEM SECTOR
- IX2 X2-X6 CHECK FOR FILE TOO SHORT
- NG X2,WDB8 IF FILE TOO SHORT
- SA2 DBUFH CHECK FOR FILE TOO LONG
- LX2 59-48
- PL X2,WDB9 IF FILE NOT TOO LONG
- WDB8 SA1 CATH+FCUI
- SB2 ERFL * FILE LENGTH ERROR ...*
- RJ SFE SEND ERROR MESSAGE
- SA1 LGCW SET LENGTH ERROR CONTROL WORD
- BX6 X1
- SB3 B0 CLEAR DATA WORD COUNT
- SA6 CONTH
- SB2 CONTH SET BUFFER ADDRESS
- RJ WDT WRITE LENGTH ERROR CONTROL WORD
- SA1 FLST SET DATA ERROR IN FILE STATUS
- SX6 2
- BX6 X1+X6
- SA6 A1
- SA1 CATH+FCBS
- LX1 59-11
- NG X1,WDB9 IF DIRECT ACCESS FILE
- SB2 ELLI * ERROR IDLE SET - INDIRECT PF LENGTH ...*
- RJ SEI SET ERROR IDLE STATUS
- * COMPLETE PROCESSING OF FILE.
- WDB9 ARCHIVE WRITER WRITE EOR ON ARCHIVE FILES
- SX6 B0+ CLEAR FILE LENGTH COUNTER
- SX7 BFAC RESET BLOCK STATUS FOR NEXT FILE
- SA6 WDBE
- SA7 WREM
- SA3 FLOK
- ZR X3,WDBX IF NOT DESTAGE TO OPTICAL DISK
- RJ FAF FLUSH ARCHIVE FILE BUFFERS
- EQ WDBX RETURN
- * PROCESS READ ERROR.
- WDB10 SX6 DCWC
- ZR X7,WDB11 IF EOI SECTOR
- SX6 DFCW
- ZR X3,WDB11 IF EOF SECTOR
- SX6 X2+DCWC
- SX7 X2-NWPR
- ZR X7,WDB11 IF FULL DATA SECTOR
- SX6 X2+DSCW
- SX1 3777B
- BX1 X3-X1
- ZR X1,WDB11 IF SYSTEM SECTOR
- SX6 X2+DRCW SET EOR CONTROL WORD
- WDB11 SA1 WDBC GET GOOD BLOCK WORD COUNT
- SA6 WDBD SAVE BAD BLOCK CONTROL WORD
- SX7 X1+DCWC BUILD GOOD CONTROL WORD
- SB2 DBUFH+1 SET BUFFER ADDRESS
- SA7 CONTH
- SB3 X1+ SET BUFFER WORD COUNT
- ZR X1,WDB12 IF GOOD BLOCK EMPTY
- RJ WDT WRITE GOOD BLOCK
- WDB12 SA1 RCWD SET BAD BLOCK CONTROL WORD
- SA2 WDBD
- SA3 WDBC GET GOOD BLOCK WORD COUNT
- BX6 X1+X2
- MX7 -9
- SB2 X3+DBUFH+1 SET BAD BLOCK BUFFER ADDRESS
- SA6 CONTH
- BX2 -X7*X2 SET BAD BLOCK WORD COUNT
- SB3 X2
- RJ WDT WRITE BAD BLOCK
- SA1 CATH+FCUI
- SB2 ERDR * DATA READ ERROR ...*
- RJ SFE SEND ERROR MESSAGE
- SA1 FLST SET DATA ERROR IN FILE STATUS
- SX6 B1+B1
- BX6 X1+X6
- SA6 A1
- SA1 DBUFH GET READ STATUS
- MX2 -24
- BX6 -X2*X1
- LX1 59-48
- ZR X6,WDB9 IF EOI SECTOR
- NG X1,WDB9 IF FATAL ERROR
- EQ WDB1 CHECK NEXT SECTOR
- * PROCESS EOF.
- WDB15 SX6 DFCW SET EOF CONTROL WORD
- SA1 WDBC
- IX6 X6+X1
- SA6 CONTH
- SB3 X1
- SB2 DBUFH+1
- RJ WDT
- EQ WDB1 PROCESS DATA SECTOR
- * PROCESS EOR.
- WDB16 SX6 DRCW SET EOR CONTROL WORD
- SA1 WDBC
- IX2 X2+X1
- BX6 X6+X2
- SA6 CONTH
- SB2 DBUFH+1
- SB3 X2
- RJ WDT
- EQ WDB1 PROCESS DATA SECTOR
- * PROCESS SYSTEM SECTOR.
- WDB17 SX6 DSCW SET SYSTEM SECTOR CONTROL WORD
- BX6 X6+X2
- SA6 CONTH
- SB2 DBUFH+1
- SB3 X2
- RJ WDT WRITE SYSTEM SECTOR TO ARCHIVE FILE
- EQ WDB1 PROCESS FIRST DATA SECTOR
- SPACE 4,10
- * DATA STORAGE FOR DATA BLOCK WRITE
- WDBA BSS 1 WORDS REMAINING HOLD
- WDBB BSS 1 TOTAL WORDS READ HOLD
- WDBC BSS 1 INTERIM WORDS IN WS HOLD
- WDBD BSS 1 BAD DATA CONTROL WORD
- WDBE CON 0 PRU COUNTER
- WDT SPACE 4,15
- ** WDT - WRITE DUMP TAPE.
- *
- * ENTRY (B2) = FWA OF DATA.
- * (B3) = NUMBER OF WORDS TO WRITE.
- * (CONTH) = CONTROL WORD.
- *
- * EXIT CONTROL WORD AND DATA WRITTEN.
- * WORDS REMAINING IN BLOCK UPDATED.
- *
- * USES X - 0, 1, 2, 6, 7.
- * A - 1, 2, 6, 7.
- * B - 2, 3, 5.
- *
- * CALLS WRT.
- WDT SUBR
- * CHECK NUMBER OF WORDS TO BE WRITTEN.
- WDT1 SA1 WREM
- SX2 B3+B1
- IX6 X1-X2
- NG X6,WDT2 IF WORDS+1 MORE THAN WORDS REMAINING
- SA6 A1 RESET WORDS REMAINING
- SX6 B2 SET BUFFER ADDRESS
- SA6 WDTD
- SX6 B3+ SET WORD COUNT
- SA6 WDTC
- RJ WRT WRITE
- EQ WDTX RETURN
- * PROCESS BLOCK LARGER THAN 1000B WORDS.
- WDT2 IX6 X2-X1 WORDS LEFT FOR NXT BLOCK
- SA6 WDTA SAVE WORDS LEFT FOR NEXT BLOCK
- SA2 CONTH
- BX6 X2
- SA6 WDTB SAVE OLD CONTROL WORD
- * CLEAR THE EOR/EOF SUB-TYPE CODES (1 AND 2) BUT RETAIN
- * THE SYSTEM SECTOR SUB-TYPE CODE (4). SET THE WORD COUNT
- * FOR THE FIRST PART OF THE SPLIT.
- MX0 49
- BX6 X0*X2
- SX7 X1-1
- BX6 X6+X7
- SA6 CONTH
- SA7 WDTC SAVE WORDS WRITTEN
- SB3 X7
- SX6 B2
- SA6 WDTD SAVE BUFFER ADDRESS
- BX6 X6-X6
- SA6 WREM
- RJ WRT WRITE
- * SET UP TO WRITE BEGINNING OF NEXT BLOCK.
- SA1 WDTB GET OLD CONTROL WORD
- MX0 51
- BX6 X0*X1
- SA1 WDTA WORDS FOR NEXT BLOCK
- BX6 X6+X1
- SA6 CONTH SET UP NEXT CONTROL WORD
- SB3 X1
- SA1 WDTC
- SB5 X1
- SA1 WDTD GET BUFFER ADDRESS
- SB2 X1
- SB2 B2+B5
- EQ WDT1 PROCESS NEXT BLOCK
- WDTA BSS 1 WORDS IN NEXT BLOCK
- WDTB BSS 1 OLD CONTROL WORD
- WDTC BSS 1 WORDS WRITTEN
- WDTD BSS 1 BUFFER ADDRESS
- WRT SPACE 4,20
- ** WRT - WRITE CONTROL WORD AND DATA.
- *
- * ENTRY (WDTD) = BUFFER ADDRESS.
- * (WDTC) = WORD COUNT FOR NON-EOR WRITE.
- * (CONTH) = CONTROL WORD.
- *
- * EXIT EOR OR CONTROL WORD AND DATA WRITTEN TO ARCHIVE FILE.
- *
- * USES X - 1, 2, 6.
- * A - 1, 2, 6.
- * B - 6, 7.
- *
- * MACROS ARCHIVE.
- WRT SUBR
- * WRITE CONTROL WORD.
- ARCHIVE WRITEW,CONTH,B1 WRITE CONTROL WORD
- * WRITE DATA.
- SA1 WDTD GET BUFFER ADDRESS
- SA2 WDTC
- SB6 X1 RESET ADDRESS
- SB7 X2 RESET WORD COUNT
- ARCHIVE WRITEW,B6,B7 WRITE DATA
- SA1 WREM
- NZ X1,WRTX IF NOT FULL BLOCK
- SX6 BFAC
- SA6 A1
- EQ WRTX RETURN
- TITLE COMMON DECKS.
- ** COMMON DECKS.
- *CALL COMCCCE
- *CALL COMCCDD
- ERP1$ SET 0 SELECT *COMCCIO* ERROR PROCESSING OPTION
- *CALL COMCCIO
- *CALL COMCCOD
- *CALL COMCCPM
- *CALL COMCDXB
- *CALL COMCEDT
- FCE$ SET 0 SELECT *COMCFCE* UTILITY FORMAT OPTION
- *CALL COMCFCE
- GMS$ EQU 1 USE SORT KEY MASK
- MWK$ EQU 1 ALLOW MULTIPLE WORD SORT KEYS
- *CALL COMCGMS
- *CALL COMCJCR
- *CALL COMCLFM
- *CALL COMCMSF
- *CALL COMCMVE
- *CALL COMCPFM
- LIST X
- COM$ EQU 1 ASSEMBLE COMMON ROUTINES
- PFD$ EQU 1 ASSEMBLE *PFDUMP*/*PFDM* COMMON ROUTINES
- DVA$ EQU 1 ASSEMBLE DEVICE ACCESS ROUTINES
- PFR$ EQU 1 ASSEMBLE ARCHIVE FILE READ ROUTINES
- PF8$ EQU 1 ASSEMBLE CATALOG CONVERSION ROUTINES
- *CALL COMCPFS
- LIST *
- *CALL COMCPFU
- *CALL COMCRDO
- *CALL COMCRDW
- *CALL COMCSCB
- *CALL COMCSFM
- *CALL COMCSFN
- *CALL COMCSNM
- *CALL COMCSYS
- *CALL COMCVLC
- *CALL COMCWTC
- *CALL COMCWTH
- *CALL COMCWTO
- *CALL COMCWTW
- *CALL COMCZTB
- TITLE MESSAGES.
- ** MESSAGES.
- MSDU DATA C*DUMPING ??????? !!!!!!*
- MSGI DATA 40H THE RIGHT SCREEN LISTS YOUR OPTIONS.
- MSGL DATA 40C
- MSGS DATA 30CWAITING FOR STAGED FILES
- MSGT DATA 40H RESCAN CATALOG TRACK FOR STAGED FILES.
- MSGW DATA 40H
- MSGAA DATA 40C WAIT FOR ALTERNATE STORAGE INTERLOCK.
- SPACE 4,10
- * ERROR MESSAGES.
- ERCU DATA C* CATALOG UPDATE ERROR, FN=???????, UI=!!!!!!.*
- ERDR DATA C* DATA READ ERROR, FN=???????, UI=!!!!!!.*
- ERFB DATA C* FILE BUSY, FN=???????, UI=!!!!!!.*
- ERFL DATA C* FILE LENGTH ERROR, FN=???????, UI=!!!!!!.*
- ERNP DATA C* NO DISK OR ALTERNATE STORAGE POINTERS FOR FILE, FN=?
- ,??????, UI=!!!!!!.*
- ERNT DATA C* FILE NOT FOUND ON ALTERNATE STORAGE TAPE, FN=???????
- ,, UI=!!!!!!.*
- ERPF DATA C* PERMIT FORMAT ERROR, FN=???????, UI=!!!!!!.*
- ERPI DATA C* PERMIT RANDOM INDEX ERROR, FN=???????, UI=!!!!!!.*
- ERPR DATA C* PERMIT READ ERROR, FN=???????, UI=!!!!!!.*
- ERRT DATA C* STAGED FILE RESCAN TERMINATED, FN=???????, UI=!!!!!!
- ,.*
- ERSS DATA C* BAD SYSTEM SECTOR, FN=???????, UI=!!!!!!.*
- ERTR DATA C* ALTERNATE STORAGE TAPE READ ERROR, FN=???????, UI=!!
- ,!!!!.*
- ERUS DATA C* UNABLE TO STAGE FILE, FN=???????, UI=!!!!!!.*
- ERZL DATA C* ZERO LENGTH FILE, FN=???????, UI=!!!!!!.*
- SPACE 4,10
- ** NORMAL PROCESSING FILE COUNT MESSAGES.
- DUMS DATA C* ?????? FILE! DUMPED.*
- SEMS DATA C* ?????? FILE! SKIPPED WITH ERRORS.*
- DEMS DATA C* ?????? FILE! DUMPED WITH PERMIT/DATA ERRORS.*
- POMS DATA C/ ?????? *PFC ONLY* FILE! DUMPED./
- STMS DATA C* ?????? DUMPED FILE! STAGED.*
- PGMS DATA C* ?????? DUMPED FILE! PURGED.*
- NPMS DATA C* ?????? DUMPED FILE! NOT PURGED.*
- DSMS DATA C* ?????? DUMPED FILE! DESTAGED.*
- NDMS DATA C* ?????? DUMPED FILE! NOT DESTAGED.*
- SPACE 4,10
- ** INHIBITED PROCESSING FILE COUNT MESSAGES.
- SDMS DATA C* ?????? FILE! SELECTED FOR DUMP.*
- SPMS DATA C/ ?????? FILE! SELECTED FOR *PFC ONLY* DUMP./
- RESC SPACE 4,10
- * RIGHT SCREEN BUFFER FOR *RESCAN* OPTIONS.
- RESC VFD 12/0,36/0,12/0 DISPLAY CONTROL WORD
- KDL 28,T,(RESCAN OPTIONS)
- KDL 13,H,(ENTER K.RO.)
- KDL 13,,(RO)
- KDL 26,H,(DESCRIPTION)
- KDL 13,K,(GO CONTINUE RESCANNING.)
- KDL 13,K,(SKIP SCAN NEXT CATALOG TRACK.)
- CON 0 END OF BUFFER
- SPACE 4,10
- USE LITERALS
- TITLE RESERVED LOCATIONS.
- ** RESERVED LOCATIONS
- ASTI CON 0 ALTERNATE STORAGE TAPE IDENTIFIER
- CONTH BSSZ 1 CONTROL WORD HOLD
- CWBF BSSZ 1 ARCHIVE FILE CONTROL WORD BUFFER
- FLOK BSSZ 1 FILE LOCK *AFLOK*/*TFLOK* FLAG
- FLSF BSSZ 1 FILE LENGTH NEEDED FOR *LS*/*US* SELECTION
- IFST BSSZ 1 INCOMPLETE FILE DUMP STATUS
- INCD BSSZ 1 INCREMENTAL DUMP FLAG
- NDLE BSSZ 1 NUMBER OF DATA LIST ENTRIES
- VSNP BSSZ 1 DESTAGE DUMP VSN POINTER
- WREM CON BFAC UNUSED WORDS REMAING IN ARCHIVE FILE BLOCK
- * CATALOG HOLD AREA AND RELATED CONTROLS.
- CATH BSSZ NWCE CATALOG ENTRY HOLD AREA
- * DUMP FILE LABEL BUILD AREA.
- DMPLBL VFD 36/0LPFDUMP,24/0 HEADER
- VFD 48/0LREEL,12/1
- VFD 24/0LMASK,1/1,35/0
- BSSZ /COMSPFS/AFLBL-3
- * DUMP FILE -- FILE ERROR CONTROL WORDS.
- LGCW VFD 42/7HERROR**,3/1,3/3,3/2,9/0
- RCWD VFD 42/7HERROR**,3/1,15/0 READ ERROR CONTROL WORD
- * *MSS*/*MSE* EXECUTIVE INTERLOCK AND *RDF* WORK AREAS.
- CMSK BSSZ 1 SUBFAMILY CONTROL MASK
- LMSK BSSZ 1 SUBFAMILY LOCK MASK
- LFAT VFD 42/7H"MSFCAT"0,18/LKBUF LOCK FILE FET ARGUMENTS
- VFD 42/7H"MSFCAT"1,18/LKBUF+1*NWCE
- VFD 42/7H"MSFCAT"2,18/LKBUF+2*NWCE
- VFD 42/7H"MSFCAT"3,18/LKBUF+3*NWCE
- VFD 42/7H"MSFCAT"4,18/LKBUF+4*NWCE
- VFD 42/7H"MSFCAT"5,18/LKBUF+5*NWCE
- VFD 42/7H"MSFCAT"6,18/LKBUF+6*NWCE
- VFD 42/7H"MSFCAT"7,18/LKBUF+7*NWCE
- VFD 42/7H"SFMCAT"0,18/LKBUF+8*NWCE
- VFD 42/7H"SFMCAT"1,18/LKBUF+9*NWCE
- VFD 42/7H"SFMCAT"2,18/LKBUF+10*NWCE
- VFD 42/7H"SFMCAT"3,18/LKBUF+11*NWCE
- VFD 42/7H"SFMCAT"4,18/LKBUF+12*NWCE
- VFD 42/7H"SFMCAT"5,18/LKBUF+13*NWCE
- VFD 42/7H"SFMCAT"6,18/LKBUF+14*NWCE
- VFD 42/7H"SFMCAT"7,18/LKBUF+15*NWCE
- LFATL EQU *-LFAT LENGTH OF LFAT TABLE.
- RDFE BSSZ 1 *RDF* EXTRACT RECORD WRITTEN FLAG
- EMSG BSS 3 HOLD FOR SUPPRESSED *PFM* ERROR MESSAGES
- SPACE 2,12
- ** LKC1 - *MSS* STORAGE EXECUTIVE INTERLOCK CONTROL WORD.
- ** LKC2 - *MSE* STORAGE EXECUTIVE INTERLOCK CONTROL WORD.
- *T LKCN 18/ FAM,18/ DM,12/ CODE,6/ AT,5/,1/C
- *
- * FAM = FAMILY/PACK NAME ADDRESS.
- * DM = ACCUMULATED DEVICE MASK ADDRESS.
- * CODE = *TDAM* RESPONSE CODE.
- * 0 = NORMAL - REQUEST ACCEPTED.
- * 4 = EXECUTIVE NOT ACTIVE.
- * AT = ALTERNATE STORAGE TYPE CODE.
- * *ATMS* = *MSS* SUBSYSTEM.
- * *ATAS* = *MSE* SUBSYSTEM.
- * C = COMPLETION BIT.
- LKC1 VFD 18/FMPN,18/CMSK,12/0,6/ATMS,5/0,1/1
- LKC2 VFD 18/FMPN,18/CMSK,12/0,6/ATAS,5/0,1/1
- * CATALOG TRACK RESCAN, TAPE ALTERNATE STORAGE COPY DATA AREA.
- CTIN BSSZ 1 INDEX OF ENTRY ON CATALOG TRACK
- RESE BSSZ TCRQL *RESS* FILE ENTRY WORKING BUFFER
- RSIN BSSZ 1 CATALOG TRACK INDEX TO BEGIN RESCAN
- RSTS BSSZ 1 CATALOG TRACK AND SECTOR TO BEGIN RESCAN
- SCAN BSSZ 1 SCAN MODE (0 = NORMAL SCAN, 1 = RESCAN)
- TCRQ BSSZ TCRQL TAPE COPY REQUEST WORKING BUFFER
- SPACE 2,13
- ** UUCW - UTILITY UPDATE CATALOG ENTRY CONTROL WORD.
- *
- *T UUCW 18/,18/ FWLV,12/ CODE,11/,1/C
- *
- * FWLV = FWA OF CATALOG ENTRY LOCATION AND VERIFICATION
- * INFORMATION.
- * CODE = RESPONSE CODE.
- * 0 = UPDATE COMPLETED.
- * 1 = MASS STORAGE READ ERROR OCCURRED.
- * 2 = VERIFICATION ERROR OCCURRED.
- * 3 = MASS STORAGE WRITE ERROR OCCURRED AND DATA WAS
- * TRANSFERRED TO THE DEVICE.
- * 4 = MASS STORAGE WRITE ERROR OCCURRED AND NO DATA
- * WAS TRANSFERRED TO THE DEVICE.
- * C = COMPLETION BIT.
- UUCW VFD 18/0,18/UULV,12/0,11/0,1/1
- SPACE 2,13
- ** UULV - UPDATE CATALOG ENTRY LOCATION/VERIFY INFORMATION.
- *
- *T UULV 42/ FILE NAME,18/ USERID
- *T UULV+1 24/ 0,36/ CDT
- *T UULV+2 22/ 0,2/ CO,12/ EQ,12/ TK,12/ SC
- *
- * CDT = CREATION DATE/TIME.
- * CO = CATALOG ENTRY ORDINAL.
- * EQ = EST ORDINAL.
- * TK = TRACK NUMBER.
- * SC = SECTOR NUMBER.
- UULV BSSZ 3
- TITLE FETS.
- ** FETS.
- T BSS 0 ARCHIVE FILE
- TAPE FILEB TBUF,TBUFL,FET=13
- ODEB BSSZ ODEBL OPTICAL DISK EXTENSION BUFFER
- V BSS 0 VERIFY FILE
- PFVER FILEB VBUF,VBUFL,FET=13
- R BSS 0 RELEASE DATA FILE
- RDF FILEB RBUF,RBUFL,FET=13
- CATC BSS 0 *CIR* CATALOGS
- ZZZZZG0 FILEB CATB,CATBL,EPR,FET=10
- CATS BSS 0 CATALOG TRACKS
- ZZZZZG1 FILEB CATB,CATBL,EPR,FET=10
- PETS BSS 0 PERMIT ENTRIES
- ZZZZZG2 RFILEB PBUF,PBUFL,EPR,FET=10
- DATA BSS 0 FILE DATA
- ZZZZZG3 FILEB DBUF,DBUFL,FET=10
- AST BSS 0 ALTERNATE STORAGE ARCHIVE FILE
- ZZZZZG8 FILEB DBUF,DBUFL,EPR,FET=14
- DIFT FILEB IBUF,1,(FET=10) FET TO SET DEVICE INHIBIT DATES
- DDFT FILEB REQB,REQBL,EPR,FET=16 *DROPDS* *PFM* FET
- ORG DDFT+CFPW
- VFD 42/0,18/DDEM ERROR MESSAGE RETURN ADDRESS
- ORG DDFT+CFSR
- VFD 42/0,18/DDBK SPECIAL REQUEST BLOCK ADDRESS
- ORG DDFT+16
- DDBK BSSZ 4 *PFM* SPECIAL REQUEST BLOCK
- DDEM BSSZ 6 *PFM* ERROR MESSAGE BUFFER
- SRFT FILEB REQB,REQBL,EPR,UPR,FET=16 STAGE REQUEST *PFM* FET
- ORG SRFT+CFPW
- VFD 42/0,18/SREM ERROR MESSAGE RETURN ADDRESS
- ORG SRFT+CFSR
- VFD 42/0,18/SRBK SPECIAL REQUEST BLOCK ADDRESS
- ORG SRFT+16
- SRBK BSSZ 4 *PFM* SPECIAL REQUEST BLOCK
- SREM BSSZ 6 *PFM* ERROR MESSAGE BUFFER
- LOCK FILEB LKBUF,LKBUFL,EPR,FET=16 FET TO LOCK FILES
- LOCKL EQU *
- ORG LOCK+CFPW
- VFD 42/0,18/EMSG
- ORG LOCKL
- PFMREQ BSS 0 POST-PROCESSING *PFM* REQUESTS
- ZZZZZG4 FILEB PFRB,PFRBL,FET=10
- REQS BSS 0 FILE STAGE REQUESTS
- ZZZZZG5 FILEB REQB,REQBL,FET=10
- RESS BSS 0 SCREEN RESCAN SELECTION
- ZZZZZG6 FILEB RESB,RESBL,FET=10
- TC BSS 0 TAPE COPY FILE LIST
- ZZZZZG7 FILEB TCLB,TCLBL,FET=10
- STAT FILEB 0,0,FET=7 FILE STATUS
- TITLE BUFFERS.
- ** BUFFERS.
- PBUF EQU *
- PHBUF EQU PBUF+PBUFL
- DBUF EQU PHBUF+PHBUFL DATA BUFFER
- DBUFH EQU DBUF+DBUFL DATA WORKING STORAGE BUFFER
- CATB EQU DBUFH+DBUFHL CATALOG BUFFER
- LKBUF EQU CATB+CATBL LOCK FILE BUFFER
- IBUF EQU LKBUF+LKBUFL INHIBIT DATE SETTING BUFFER
- RBUF EQU IBUF+1 RELEASE DATA FILE BUFFER
- RDFH EQU RBUF+RBUFL RELEASE DATA FILE WORKING STORAGE
- DLRB SPACE 4,15
- ** DLRB - DATA LIST REQUEST BUFFER.
- *
- * ONE ENTRY IN FOLLOWING FORMAT FOR EACH FILE TO BE DUMPED.
- *
- *T DLRB 12/ 2000B+IN,24/ LF,12/ TK,12/ SC
- *
- * IN = INDEX INTO CATALOG BUFFER AND DISK ADDRESS BUFFER.
- * LF = LENGTH OF FILE (INDIRECT ACCESS ONLY).
- * TK = FIRST TRACK OF FILE.
- * SC = FIRST SECTOR FOR INDIRECT ACCESS FILES.
- * = 1/1,5/0,6/RD FOR DIRECT ACCESS FILES.
- * RD = RESIDENCY DEVICE NUMBER.
- DLRB EQU RDFH+RDFHL DATA LIST REQUEST BUFFER
- DLCB EQU DLRB+DLRBL DATA LIST CATALOG BUFFER
- DLDB EQU DLCB+DLCBL DATA LIST CATALOG DISK ADDRESS BUFFER
- SPACE 4,10
- OUTB EQU DLDB+DLDBL OUTPUT BUFFER
- SUMB EQU OUTB+OUTBL SUMMARY FILE BUFFER
- PFLB EQU SUMB+SUMBL PROCESSED FILES FILE BUFFER
- MS1B EQU PFLB+PFLBL SORT FILE 1
- MS2B EQU MS1B+MSFBL SORT FILE 2
- MS3B EQU MS2B+MSFBL SORT FILE 3
- MS4B EQU MS3B+MSFBL SORT FILE 4
- SRTB EQU MS3B SORT BUFFER (OVERLAYS *MS3B* AND *MS4B*)
- ERRNG MSFBL*2-SRTBL SORT BUFFER OVERFLOW
- PFRB EQU MS4B+MSFBL *PFMREQ* FILE BUFFER
- REQB EQU PFRB+PFRBL *REQS* FILE BUFFER
- RESB EQU REQB+REQBL *RESS* FILE BUFFER
- TCLB EQU RESB+RESBL *TC* FILE BUFFER
- * THE ARCHIVE AND VERIFY FILE BUFFERS MUST BE LAST. FIELD
- * LENGTH FOR THE VERIFY BUFFER WILL NOT BE ALLOCATED UNLESS
- * THE *VF* PARAMETER IS SPECIFIED.
- TBUF EQU TCLB+TCLBL ARCHIVE (TAPE) FILE BUFFER
- EBUF EQU TBUF+TBUFL+4 END OF BUFFERS (WITHOUT VERIFY BUFFER)
- VBUF EQU TBUF+TBUFL VERIFY FILE BUFFER
- EBUFV EQU VBUF+VBUFL+4 END OF BUFFERS (WITH VERIFY BUFFER)
- TITLE PRESET MAIN LOOP.
- PRS SPACE 4,35
- ** PRS - PRESET PROGRAM.
- *
- * ENTRY (CPAR) = CRACKED PARAMETER ARRAY.
- * FILES *ZZZZZG0* THROUGH *ZZZZZG9* AND *ZZZZZGA*
- * THROUGH *ZZZZZGB* RETUNED BY *PFS*.
- * FILE *ZZZZZGB* RETURNED BY *PFS* IF NO FILE
- * SELECTIONS.
- * FILE *ZZZZZGB* CONTAINS FILE SELECTIONS IF PRESENT.
- *
- * EXIT (B1) = 1.
- * (FMPN) = FAMILY NAME OR PACK NAME.
- * (INCD) = 1, IF INCREMENTAL DUMP.
- * (CPAR=/COMSPFS/CPCO) = 37777777777777777777B IF OP=Z
- * OR DESTAGE DUMP (FORCED DATA DUMP).
- * EXECUTION FIELD LENGTH SET.
- * ARCHIVE AND ARCHIVE VERIFY FILES OPENED.
- * DEVICE VALIDATION AND SELECTION PERFORMED.
- * ARCHIVE FILE LABEL WRITTEN.
- * MESSAGES PRESET.
- * CATALOG IMAGE RECORD WRITTEN IF REQUIRED.
- * ACCES LEVEL RANGE VALIDATED IF SECURE SYSTEM.
- * OUTPUT FILE AND SUMMARY FILE INITIALIZED.
- *
- * USES X - 0, 1, 2, 3, 5, 6, 7.
- * A - 0, 1, 2, 3, 5, 6, 7.
- * B - 1.
- *
- * CALLS BMT, CAL, CCI, CDR, DSS, GRH, IFL, IOF, LBL, ODV, OSP,
- * PFO, PRK, PSI, RPS, SBS, SFN, SFP, SLP, SMP, SOE, SSP.
- *
- * MACROS MEMORY, MOVE, REPRIEVE.
- PRS SUBR
- SB1 1
- MEMORY CM,,R,EBUF REQUEST REQUIRED MEMORY
- REPRIEVE RPVB,SET,277B SET EXTENDED REPRIEVE PROCESSING
- SA1 CMUR
- NG X1,PRS1 IF *CMU* PRESENT
- MOVE MMCL,PRSB,MMC SET UP REGISTER TRANSFER CODE
- PRS1 RJ DSS DETERMINE SECURITY STATUS
- RJ BMT BUILD MASS STORAGE TABLE
- RJ CAL CHECK ACCESS LEVELS
- SB2 ERAR * ACCESS LEVEL LIMITS OUT OF RANGE.*
- NG X2,ABT IF ACCESS LEVELS NOT WITHIN SYSTEM LIMITS
- SX3 PRSC PRESET *K* DISPLAY COORDINATES
- RJ PRK
- SA1 CPAR+/COMSPFS/CPIP
- ZR X1,PRS1.1 IF PROCESSING NOT INHIBITED
- SX6 B0+ CLEAR MSS/MSE PROCESSING
- SA6 MSSF
- SA6 ASFF
- EQ PRS3 INITIALIZE DUMP ENVIRONMENT
- * OPEN ARCHIVE FILE.
- PRS1.1 SA1 CPAR+/COMSPFS/CPTB GET FILE NAME
- SA5 TAPE
- MX0 42
- BX6 X0*X1
- BX5 -X0*X5
- BX6 X6+X5
- SA6 A5 SET FILE NAME IN FET
- SX2 A5 SET FET ADDRESS
- SA3 PRSK SET OPTICAL DISK EXTENSION BUFFER ADDRESS
- RJ SOE SET FET EXTENSION IF OPTICAL DISK FILE
- NZ X1,PRS1.2 IF NOT ASSIGNED TO OPTICAL DISK
- SA3 TAPE+1 SET RANDOM FLAG IN SET
- SX1 B1
- LX1 47
- BX6 X1+X3
- SA6 A3
- PRS1.2 SA1 CPAR+/COMSPFS/CPTB GET FILE NAME
- SA5 TAPE SET FET ADDRESS
- RJ PFO PROCESS ARCHIVE FILE OPENING
- SX6 -1
- SA6 TAPE+CWSW INITIALIZE CONTROL WORD WRITE STATUS
- SA5 TAPE SET FET ADDRESS AND FILE NAME
- RJ CDR CHECK DESTAGE REQUIREMENTS
- * OPEN VERIFY FILE.
- SA1 CPAR+/COMSPFS/CPVF
- ZR X1,PRS2 IF NO VERIFY FILE SPECIFIED
- SX6 VBUFL SET BUFFER INCREASE VALUE
- SA6 BUFI
- MEMORY CM,,R,EBUFV INCREASE FL FOR VERIFY FILE BUFFER
- SA1 CPAR+/COMSPFS/CPVF
- SA5 PFVER SET FET ADDRESS
- RJ PFO PROCESS VERIFY FILE OPENING
- SX6 -1
- SA6 PFVER+CWSW INITIALIZE CONTROL WORD WRITE STATUS
- SA5 PFVER SET FET ADDRESS AND FILE NAME
- RJ CDR CHECK DESTAGE REQUIREMENTS
- * OPEN RELEASE DATA FILE.
- PRS2 SA1 CPAR+/COMSPFS/CPRD GET FILE NAME
- ZR X1,PRS3 IF NO RELEASE DATA FILE
- SA5 RDF SET FET ADDRESS
- RJ PFO PROCESS RELEASE DATA FILE OPENING
- * INITIALIZE DUMP ENVIRONMENT.
- PRS3 SA1 BUFI
- SX0 X1+EBUF SET SELECTION BUFFER ADDRESS
- RJ RPS READ PERMANENT FILE SELECTIONS
- RJ SMK SET FILE SELECTION MASK
- RJ SFP SET PERMANENT FILE PARAMETERS
- SA1 CPAR+/COMSPFS/CPIP
- NZ X1,PRS4 IF PROCESSING INHIBITED
- RJ SLP SET LABEL PARAMETERS
- RJ LBL GENERATE LABEL
- RJ GRH GENERATE RDF HEADER RECORD
- PRS4 SA1 CPAR+/COMSPFS/CPOP
- SA2 CPAR+/COMSPFS/CPDT
- MX7 1
- BX6 -X7 UNLIMITED FILE SIZE VALUE
- LX1 59-46
- BX7 X7*X1
- BX7 X7+X2
- ZR X7,PRS4.1 IF NOT *OP=Z* OR DESTAGE DUMP
- SA6 CPAR+/COMSPFS/CPCO FORCE DUMP OF FILE DATA
- PRS4.1 SA1 CPAR+/COMSPFS/CPLS
- SA2 CPAR+/COMSPFS/CPUS
- NZ X1,PRS4.2 IF LOWER SIZE LIMIT .NE. 0
- BX2 X6-X2
- ZR X2,PRS4.3 IF UNLIMITED UPPER SIZE LIMIT
- PRS4.2 SA6 FLSF FILE LENGTH NEEDED FOR *LS*/*US* SELECTION
- * INITIALIZE OUTPUT FILE AND SUMMARY FILE.
- PRS4.3 RJ IOF INITIALIZE OUTPUT FILES
- RJ OSP OUTPUT SELECTION PARAMETERS
- SX6 DSTBUF SET DEVICE STATUS BUFFER ADDRESS
- RJ ODV OUTPUT DEVICE STATUS
- * GENERATE CIR IF REQUESTED.
- PRS5 SA1 CPAR+/COMSPFS/CPOP CHECK IF CIR DESIRED
- LX1 2
- PL X1,PRS6 IF NO *MODIFICATION DATE* OPTION
- SA1 CPAR+/COMSPFS/CPBD
- NZ X1,PRS6 IF *BD=YYMMDD* PARAMETER SPECIFIED
- SX6 B1 SET INCREMENTAL DUMP FLAG
- SA6 INCD
- SA1 CPAR+/COMSPFS/CPIP
- NZ X1,PRS6 IF PROCESSING INHIBITED
- RJ CCI CREATE CATALOG IMAGE
- RJ PSI PROCESS SORTED CIR OUTPUT
- * SET UP OUTPUT PARAMETERS FOR FILE PROCESSING.
- PRS6 RJ IFL INITIALIZE FILE PROCESSING
- * INITIALIZE *PFM* POST PROCESSING REQUEST FILE IF PURGE FILES
- * AFTER DUMP OR DESTAGE DUMP.
- SA1 CPAR+/COMSPFS/CPOP CHECK *PURGE AFTER* OPTION
- SA2 CPAR+/COMSPFS/CPDT
- SA3 PRSD SELECT *PURGE* PROCESSING
- LX1 6
- NG X1,PRS7 IF PURGE OPTION SPECIFIED
- ZR X2,PRSX IF NOT DESTAGE DUMP
- SA3 PRSE SELECT *SETASA* PROCESSOR
- PRS7 BX6 X3
- SA6 PFRI
- SX6 B0+ CLEAR INCREMENTAL DUMP FLAG
- SA6 INCD
- EQ PRSX RETURN
- PRSB BSS 0 CODE TO OVERLAY *MMC*
- MOVE HERE
- PRSC BSS 0 Y-COORDINATE TABLE
- KDL *
- PRSD VFD 12/2000B+PRPP,30/0,18/=10HPURGING
- PRSE VFD 12/2000B+SAPP,30/0,18/=10HDESTAGING
- PRSH DATA 40HFILES DUMPED TO ARCHIVE FILE.
- PRSK VFD 36/,6/ODEBL,18/ODEB POINTER TO *OD* EXT. BUFFER
- SPACE 4,6
- * PRESET FETS.
- ODF BSS 0 OPTICAL DISK MOUNT FILE
- ZZZZZOD FILEB ODFBUF,ODFBL,FET=10
- TITLE PRESET SUBROUTINES.
- CDR SPACE 4,15
- ** CDR - CHECK DESTAGE REQUIREMENTS.
- *
- * ENTRY (A5) = FET ADDRESS.
- * (X5) = FILE NAME.
- *
- * EXIT (VSNP) = UPDATED ALTERNATE STORAGE VSN POINTER.
- * TO *ABT* IF ERROR IN EQUIPMENT TYPE OR VSN FORMAT.
- *
- * USES X - ALL.
- * A - 1, 2, 3, 4, 6, 7.
- * B - 2, 7.
- *
- * CALLS DXB.
- *
- * MACROS FILINFO, REWIND.
- CDR SUBR ENTRY/EXIT
- SA2 CPAR+/COMSPFS/CPDT
- ZR X2,CDRX IF NOT DESTAGE DUMP
- REWIND A5 INSURE FILE AT BOI
- MX7 42
- SX6 100001B
- BX7 X7*X5 ISOLATE FILE NAME
- BX6 X6+X7 SET FILE NAME AND BLOCK LENGTH
- SA6 CDRA
- FILINFO A6 GET FILE STATUS
- SA2 CDRA+1 READ DEVICE TYPE
- BX0 X2
- AX0 48
- SX0 X0-2ROD
- ZR X0,CDR3 IF OPTICAL DISK DEVICE TYPE *OD*
- MX0 -2
- LX2 0-25
- BX6 -X0*X2
- SB2 ERTD * NT/CT/AT TAPE OR OD REQD FOR DESTAGE.*
- ZR X6,ABT IF NOT *NT*, *CT*, OR *AT* TAPE
- LX2 0-18-0+25 ISOLATE *NT* BIT
- BX0 -X0*X2
- BX6 X6-X0 CLEAR TAPE DEVICE TYPE IF *NT* TAPE
- LX6 55-0 SAVE TAPE DEVICE TYPE
- SA6 CDRB
- SA3 CDRA+5 READ TAPE FORMAT
- MX4 -6
- LX3 -6
- BX3 -X4*X3
- SB2 ERFD * TAPE FORMAT OR LABEL NOT VALID ... *
- ZR X3,CDR0 IF *I* FORMAT TAPE
- SX3 X3-/COMSMTX/TFLI
- NZ X3,ABT IF NOT *LI* FORMAT TAPE
- MX3 1 SAVE *LI* FORMAT FLAG
- LX3 54-59
- BX6 X6+X3
- SA6 A6
- CDR0 SA4 A3+B1 READ LABEL TYPE
- LX4 -12
- BX4 -X6*X4
- SX4 X4-1
- NZ X4,ABT IF NOT STANDARD LABEL TYPE
- SA4 A4+B1 READ VSN
- MX7 -36
- LX4 -24
- BX4 -X7*X4
- BX1 -X6*X4
- ZR X1,CDR2 IF NOT A SIX CHARACTER VSN
- SX2 X1-1RB
- SX1 X1-1RD
- ZR X2,CDR2 IF *B* RADIX
- ZR X1,CDR2 IF *D* RADIX
- MX0 -24
- BX5 -X0*X4 NUMERIC PART OF VSN
- SB7 B1 SET DECIMAL CONVERSION
- LX5 36
- RJ DXB CONVERT NUMERIC PART OF VSN
- NZ X4,CDR2 IF NOT ALL NUMERIC CHARACTERS
- SA4 CDRA+7 READ VSN
- SA2 VSNP
- SX1 X6-4095-1
- MX7 12 EXTRACT VSN PREFIX
- BX4 X7*X4
- LX4 -36
- NZ X2,CDR1 IF VSN POINTER ALREADY SET
- PL X1,CDR2 IF NUMERIC PART OF VSN .GT. 4095
- BX6 X4+X6 BUILD PACKED VSN
- SX7 B1 SET INITIAL FILE SEQUENCE NUMBER
- LX7 24
- BX6 X6+X7
- SA1 CDRB MERGE TAPE DEVICE TYPE AND FORMAT FLAGS
- BX6 X1+X6
- SA6 VSNP SET VSN POINTER (PACKED VSN)
- EQ CDRX RETURN
- * CHECK CORRESPONDING SECONDARY (VERIFY FILE) VSN.
- CDR1 MX3 -24 ISOLATE EXISTING PACKED VSN
- BX3 -X3*X2
- SX1 5000
- IX6 X6-X1
- NG X6,CDR2 IF VSN SUFFIX .GT. 4095 AND .LT. 5000
- BX6 X6+X4 BUILD NEW PACKED VSN FOR COMPARISON
- BX6 X6-X3
- NZ X6,CDR2 IF SECONDARY VSN DOES NOT CORRESPOND
- SA1 CDRB CHECK TAPE DEVICE TYPE AND FORMAT FLAGS
- MX3 3
- LX3 56-59
- BX6 X3*X2
- BX6 X6-X1
- NZ X6,CDR2 IF DEVICE TYPE & FORMAT DO NOT CORRESPOND
- SX7 B1+ SET SECONDARY VSN FLAG IN VSN POINTER
- LX7 49-0
- BX7 X2+X7
- SA7 VSNP
- EQ CDRX RETURN
- CDR2 SB2 ERVD * VSN NOT VALID FOR DESTAGE.*
- EQ ABT ABORT
- * CHECK OPTICAL DISK LABEL INFORMATION.
- *
- * EXPECTS VSN = *AAXXXX*
- * PARTITION NAME = *DEFAULT*
- * RECORDED FILE NAME = *PFARCHIVE*
- * FILE OWNER NAME = *SYSTEMX*
- * FILE GROUP NAME = FAMILY
- * VERSION = 1 - 4095
- CDR3 REWIND ODF,R
- READ ODF
- CDR4 READW ODF,CDRC,1 SEARCH OPTICAL DISK MOUNT FILE
- SA1 A5 COMPARE FILE NAMES
- SA2 CDRA
- MX0 42
- BX6 X1-X2
- BX6 X0*X6
- ZR X6,CDR5 IF FILE NAMES MATCH
- SKIPW ODF,1600B-1 SKIP ENTRY (16 SECTORS)
- EQ CDR4 PROCESS NEXT ENTRY
- CDR5 SKIPW ODF,10-1
- READW ODF,CDRD,1 READ VERSION NUMBER
- SKIPW ODF,40B-11
- READW ODF,CDRC,16 READ VSN/PARTITION/OWNER INFORMATION
- NZ X1,CDR8 IF EOR/EOF ON FILE
- SA4 CDRC VERIFY VSN
- MX7 -36
- LX4 -24
- BX3 X7*X4
- MX6 -6
- NZ X3,CDR2 IF MORE THAN SIX CHARACTERS
- BX1 -X6*X4
- ZR X1,CDR2 IF LESS THAN SIX CHARACTERS
- SX2 X1-1RB
- SX1 X1-1RD
- ZR X2,CDR2 IF *B* RADIX
- ZR X1,CDR2 IF *D* RADIX
- MX0 -24
- BX5 -X0*X4 NUMERIC PART OF VSN
- SB7 B1 SET DECIMAL CONVERSION
- LX5 36
- RJ DXB CONVERT NUMERIC PART OF VSN
- NZ X4,CDR2 IF NOT ALL NUMERIC CHARACTERS
- SA4 CDRC GET VSN
- SX1 X6-4095-1
- MX7 12 EXTRACT VSN PREFIX
- BX4 X7*X4
- LX4 -36
- PL X1,CDR2 IF NUMERIC PART OF VSN .GT. 4095
- SX7 ATOD SET OPTICAL DISK STORAGE
- BX6 X4+X6 BUILD PACKED VSN
- LX7 24+6+6
- BX6 X6+X7
- SA6 VSNP SET VSN POINTER (PACKED VSN)
- SA4 CDRC+2 VERIFY PARTITION NAME
- SA1 CDRE
- BX6 X1-X4
- NZ X6,CDR7 IF NOT *DEFAULT* PARTITION
- SA4 CDRC+4 VERIFY RECORDED FILE NAME
- SA1 CDRF
- BX6 X1-X4
- NZ X6,CDR6 IF RECORDED FILE NAME NOT *PFARCHIVE*
- SA4 CDRC+8 VERIFY FILE OWNER NAME
- SA1 CDRG
- BX6 X1-X4
- NZ X6,CDR6 IF NOT *SYSTEMX*
- SA4 CDRC+12 VERIFY GROUP OWNER NAME
- SA1 CDRH
- BX6 X1-X4
- NZ X6,CDR6 IF GROUP OWNER NAME NOT *NOSARCHIVE*
- SA4 A4+B1
- NZ X4,CDR6 IF GROUP OWNER INVALID
- SA4 CDRD VERIFY VERSION NUMBER
- SX7 X4-4096
- PL X7,CDR9 IF VERSION NUMBER TOO LARGE
- SA1 VSNP SET VERSION NUMBER IN POINTER
- LX4 24
- BX6 X1+X4
- SA6 A1
- MX6 1 SET *AFLOK* FLAG
- SA6 FLOK
- RECALL ODF WAIT NOT BUSY
- EQ CDRX RETURN
- CDR6 SB2 ERLD * OPTICAL DISK LABEL NOT VALID ...*
- EQ ABT ABORT
- CDR7 SB2 ERPD * PARTITION NOT VALID FOR DESTAGE.*
- EQ ABT ABORT
- CDR8 SB2 EROF * INTERNAL ERROR ON FILE ZZZZZOD.*
- EQ ABT ABORT
- CDR9 SB2 ERND * VERSION NUMBER EXCEEDED FOR DESTAGE.*
- EQ ABT ABORT
- CDRA BSSZ 5 *FILNFO* CALL BLOCK
- VFD 54/0,6/1 TAPE FORMAT KEY
- VFD 54/0,6/2 LABEL TYPE KEY
- VFD 54/0,6/4 VSN KEY
- CDRB CON 0 TAPE DEVICE TYPE AND FORMAT FLAGS
- CDRC BSSZ 16 OPTICAL DISK LABEL INFORMATION
- CDRD BSSZ 1 VERSION NUMBER
- CDRE VFD 60/0LDEFAULT
- CDRF VFD 60/0LPFARCHIVE
- CDRG VFD 60/0LSYSTEMX
- CDRH VFD 60/0LNOSARCHIVE
- GRH SPACE 4,15
- ** GRH - GENERATE *RDF* HEADER RECORD.
- *
- * ENTRY ARCHIVE FILE LABEL RECORD GENERATED.
- * RELEASE DATA FILE (RDF) OPEN.
- *
- * EXIT HEADER RECORD WRITTEN TO RELEASE DATA FILE,
- * IF *RDF* REQUESTED.
- *
- * USES X - 1, 2, 6.
- * A - 6.
- *
- * MACROS WRITER, WRITEW.
- GRH SUBR ENTRY/EXIT
- SA1 CPAR+/COMSPFS/CPRD
- ZR X1,GRHX IF RDF NOT REQUESTED
- SA1 /COMSPFS/STDT SET UP CONTROL WORD
- SX2 HCWD
- LX1 47-35
- BX6 X1+X2
- SA6 CONTH
- WRITEW RDF,CONTH,B1 WRITE CONTROL WORD
- WRITEW X2,DMPLBL,/COMSPFS/AFLBL WRITE DUMP LABEL
- WRITER X2,R
- EQ GRHX RETURN
- LBL SPACE 4,15
- ** LBL - WRITE PFDUMP ARCHIVE FILE LABEL.
- *
- * ENTRY (DMPLBL - DMPLBL+/COMSPFS/AFLBL) = LABEL PARAMETERS.
- * (FLOK) = *AFLOK*/*TFLOK* SELECTION FLAG.
- *
- * EXIT ARCHIVE FILE SKIP COUNT PROCESSED.
- * ARCHIVE FILE LABEL WRITTEN TO ARCHIVE FILE.
- *
- * USES X - 0, 1, 2, 6, 7.
- * A - 1, 6, 7.
- *
- * CALS FAF.
- *
- * MACROS ARCHIVE, SKIPFF.
- LBL SUBR ENTRY/EXIT
- SA3 CPAR+/COMSPFS/CPSF
- ZR X3,LBL1 IF NO FILES TO SKIP
- SKIPFF TAPE,X3 SKIP FILES ON ARCHIVE FILE
- SA1 CPAR+/COMSPFS/CPVF
- ZR X1,LBL1 IF NO VERIFY FILE SPECIFIED
- SKIPFF PFVER,X3 SKIP FILES ON ARCHIVE VERIFY FILE
- LBL1 SX1 LCWC
- SX2 /COMSPFS/AFLBL SET UP CONTROL WORD
- BX6 X1+X2
- SA1 DMPLBL
- MX0 36
- BX1 X0*X1
- BX6 X6+X1
- SA6 CONTH
- ARCHIVE WRITEW,CONTH,B1 WRITE CONTROL WORD
- ARCHIVE WRITEW,DMPLBL,/COMSPFS/AFLBL WRITE DUMP LABEL
- ARCHIVE WRITER
- SA1 FLOK
- ZR X1,LBLX IF NOT DESTAGE TO OPTICAL DISK
- RJ FAF FLUSH ARCHIVE FILE BUFFERS
- EQ LBLX RETURN
- SLP SPACE 4,15
- ** SLP - SET LABEL PARAMETERS.
- *
- * ENTRY (CPAR) = CONVERTED PARAMETER ARRAY.
- * (MASK) = FILE SELECTION MASK.
- *
- * EXIT DUMP PARAMETERS SET IN ARCHIVE FILE LABEL.
- *
- * USES X - 1, 2, 3, 4, 6, 7.
- * A - 1, 2, 3, 6, 7.
- * B - 2, 3, 4, 5.
- *
- * CALLS SFN.
- *
- * MACROS EDATE, ETIME.
- SLP SUBR ENTRY/EXIT
- * SET FILE MASK, DATE AND TIME, FAMILY OR PACK NAME, AND
- * PREVIOUS VSN.
- SA1 MASK SET FILE SELECTION MASK IN LABEL
- SA2 DMPLBL+/COMSPFS/MAAL
- BX6 X1+X2
- SA6 A2
- SA1 /COMSPFS/STDT GET DUMP START DATE
- AX1 18-0
- EDATE X1
- SA6 DMPLBL+/COMSPFS/DAAL SET DATE IN LABEL
- SA1 /COMSPFS/STDT GET DUMP START TIME
- MX2 -18
- BX1 -X2*X1
- ETIME X1
- SA6 DMPLBL+/COMSPFS/TIAL SET TIME IN LABEL
- SA1 CPAR+/COMSPFS/CPFN
- SA2 CPAR+/COMSPFS/CPPN
- BX6 X1
- BX7 X2
- SA6 DMPLBL+/COMSPFS/FMAL SET FAMILY NAME IN LABEL
- SA7 DMPLBL+/COMSPFS/PNAL SET PACK NAME IN LABEL
- SA1 CPAR+/COMSPFS/CPPV PUT PREVIOUS VSN IN LABEL
- RJ SFN
- SA6 DMPLBL+/COMSPFS/PVAL
- * SET MASTER DEVICE MASKS AND CATALOG TRACK COUNTS.
- * IF FILE STAGING IS NOT SUPPRESSED, THE MASTER DEVICE MAP IS
- * NOT WRITTEN BECAUSE FILES COPIED FROM ALTERNATE STORAGE TAPES
- * ARE NOT DUMPED IN CATALOG TRACK ORDER.
- SA1 CPAR+/COMSPFS/CPOP
- LX1 59-47
- PL X1,SLPX IF STAGING NOT SUPPRESSED
- MX2 -9
- MX4 -8
- SB4 B0 SHIFT COUNT
- SB2 MSTT+1 SET ADDRESS OF MASS STORAGE TABLE
- SB3 DMPLBL+/COMSPFS/D0AL DEVICE INFORMATION OFFSET
- SB5 60
- SLP2 SA3 B2 MASS STORAGE TABLE ENTRY
- ZR X3,SLPX IF END OF MASS STORAGE TABLE
- BX6 -X4*X3 GET DEVICE MASK
- SB2 B2+2 ADVANCE MASS STORAGE TABLE ADDRESS
- ZR X6,SLP2 IF NOT MASTER DEVICE
- SA3 A3-B1 GET NUMBER OF CATALOG TRACKS
- LX6 12
- LX3 -15
- BX3 -X2*X3
- BX6 X6+X3
- SA1 B3 STORE DEVICE MASK AND CATALOG TRACKS
- LX6 X6,B4
- BX6 X6+X1
- SA6 A1
- SB4 B4+20
- LT B4,B5,SLP2 IF MORE ROOM IN LABEL WORD
- SB3 B3+B1 ADVANCE POINTER
- SB4 B0 RESET SHIFT COUNT
- EQ SLP2 GET NEXT ENTRY
- TITLE CATALOG IMAGE RECORD SUBROUTINES.
- BCL SPACE 4,15
- ** BCL - BUILD CATALOG LIST.
- *
- * ENTRY (B2) = NEXT WORD ADDRESS OF CATALOG BUFFER.
- * (B3) = NEXT WORD ADDRESS OF WORKING STORAGE BUFFER.
- * (B4) = LAST WORD ADDRESS OF CATALOG BUFFER.
- *
- * EXIT (B2) = NEXT WORD ADDRESS OF CATALOG BUFFER.
- * (B3) = NEXT WORD ADDRESS OF WORKING STORAGE BUFFER.
- * (B4) = LAST WORD ADDRESS OF CATALOG BUFFER.
- * (B5) = NUMBER OF CATALOGS.
- *
- * USES X - 0, 1, 2, 6.
- * A - 1, 2, 6.
- * B - 2, 3, 5.
- BCL SUBR ENTRY/EXIT
- SB5 B0 INITIALIZE NUMBER OF CATALOGS
- MX3 -18
- BCL1 SX6 B3-DBUFH-776B
- PL X6,BCLX IF END OF 1000B WORD BLOCK
- SA2 B2
- BX6 -X3*X2
- ZR X6,BCL3 IF PURGED FILE
- SA1 CPAR+/COMSPFS/CPOP
- LX1 59-45
- NG X1,BCL2 IF OP=Y SELECTED
- SA1 B2+FCBR GET BACKUP REQUIREMENT
- MX0 -3
- LX1 0-54
- BX6 -X0*X1
- SX6 X6-BRNO
- ZR X6,BCL3 IF NO BACKUP REQUIRED
- * GENERATE CATALOG IMAGE ENTRY.
- BCL2 BX6 X2 STORE WORD IN CATALOG LIST
- SA6 B3
- SB3 B3+B1
- SB5 B5+B1
- MX0 18 SET SECOND WORD OF CIR ENTRY
- SA1 B2+3
- SA2 A1+B1
- LX1 6
- BX6 X0*X1
- BX2 -X0*X2
- BX6 X6+X2
- SA6 B3
- SB3 B3+B1
- SB5 B5+B1
- BCL3 SB2 B2+NWCE INCREMENT CATALOG BUFFER INDEX
- LT B2,B4,BCL1 IF NOT AT END OF CATALOG BUFFER
- EQ BCLX RETURN
- CCI SPACE 4,20
- ** CCI - CREATE CATALOG IMAGE.
- *
- * EXIT CIR WRITTEN TO ARCHIVE FILE.
- *
- * USES X - ALL.
- * A - 1, 2, 3, 4, 5, 6, 7.
- * B - 2, 3, 4, 5, 6.
- *
- * CALLS BCL, CAC, ICI, RCS, SAC, WIB.
- *
- * MACROS ARCHIVE, CALLPFU, MOVE, PCINT, READCW, RETURN,
- * WRITER.
- CCI16 RETURN CATC
- SA5 IDSA+/COMSPFS/ADMS
- MOVE 4,MSGL,X5 CLEAR MESSAGE
- CCI SUBR ENTRY/EXIT
- SA1 CPAR+/COMSPFS/CPPN PF DESCRIPTION = PACK NAME
- MX2 42
- BX6 X2*X1
- NZ X1,CCI1 IF PACK NAME SPECIFIED
- SA1 MSTT PF DESCRIPTION = A FAMILY EQUIPMENT
- MX2 -9
- AX1 6
- BX6 -X2*X1
- CCI1 SA6 CDWD SAVE PF DESCRIPTION
- * INITIALIZE MESSAGES AND OUTPUT FILES FOR CIR PROCESSING.
- RJ ICI INITIALIZE FOR CIR OUTPUT
- SA5 IDSA+/COMSPFS/ADMS
- MOVE 3,CIRM,X5
- EQ CCI3 SEARCH FOR DEVICE
- * SEARCH FOR MASTER DEVICE TO PROCESS.
- CCI2 PCINT CATC,CTCC CLEAR CATALOG TRACK INTERLOCK
- CCI3 SX6 B1 INITIALIZE CATALOG TRACK
- SA6 CCTR
- SA1 CCIB GET MSTT INDEX
- SX6 X1+2
- SA6 A1
- SA1 MSTT+X1 GET MASS STORAGE TABLE ENTRY
- SA2 A1+B1
- ZR X1,CCI16 IF END OF MASS STORAGE TABLE
- * INITIALIZE FOR CATALOG TRACK PROCESSING.
- MX6 -8 GET DEVICE MASK
- BX3 -X6*X2
- ZR X3,CCI3 IF NOT A MASTER DEVICE
- SA4 MASK GET FILE SELECTIION MASK
- BX4 X4*X3
- ZR X4,CCI3 IF THIS DEVICE NOT BEING DUMPED
- MX6 -6
- BX6 -X6*X1
- SA6 CPAR+/COMSPFS/CPDN SET MASTER DEVICE NUMBER
- MX7 -9
- LX1 -6
- BX6 -X7*X1
- SA6 MAEQ
- LX1 -9
- BX6 -X7*X1
- LX3 24 PUT DEVICE MASK IN HEADER
- SA6 NCAT
- SA1 CIRH GET CATALOG IMAGE HEADER
- LX6 36 PUT NUMBER OF CATALOG TRACKS IN HEADER
- BX3 X1+X3
- BX7 X3+X6
- SB2 B0 CLEAR USER INDEX
- SA7 CICH SAVE HEADER WORD
- CCI4 LX2 -1 POSITION MASK BIT
- SB2 B2+B1 ADVANCE USER INDEX
- PL X2,CCI4 IF MASK BIT NOT SET
- SA1 CDPM SET CATALOG DESCRIPTION PARAMETER
- SX7 B2-B1 SET CATALOG DESCRIPTION USER INDEX
- BX6 X1
- SA7 CDUI
- SA6 CATC+FTPM
- RJ SAC SET PF ACTIVITY COUNT
- CALLPFU CATC,CTCT,R GET CORRECT CATALOG TRACK
- SA1 CATC+FTPM GET CATALOG TRACK PARAMETERS
- SX2 5 SET FILE STATUS
- MX0 -24
- BX1 -X0*X1 SET EQ AND FIRST TRACK
- MX0 -12
- BX7 -X0*X1 SET CURRENT TRACK
- LX1 36
- BX2 X1+X2 BUILD CATALOG TRACK FST ENTRY
- LX7 24
- BX6 X2+X7
- SA6 A1
- RETURN CATC,R RETURN ANY EXISTING CATC
- CALLPFU CATC,CTOL,R CREATE CATALOG TRACK FILE
- PCINT CATC,CTSC SET CATALOG TRACK INTERLOCK
- * INITIALIZE CATALOG TRACK WORKING BUFFER.
- CCI5 READCW CATC,17B INITIATE CATALOG READ
- BX6 X6-X6 CLEAR EMPTY RECORD FLAG
- SA6 EMRF
- SX6 DBUFH INITIALIZE CONTROL WORD ADDRESS
- SA6 CWAD
- SB3 X6+B1 INITIALIZE WORKING STORAGE POINTER
- SB5 B0
- * READ CATALOG FILE.
- CCI6 SX6 B3 SAVE *CIR* BUFFER PARAMETERS
- SX7 B5
- LX6 18
- BX7 X6+X7
- SA7 CCIA
- CCI6.1 SX6 B0+
- SA6 CFTS CLEAR END OF CATALOG TRACK STATUS
- SX2 CATC READ BUFFER OF CATALOG ENTRIES
- RJ RCS
- SA2 CSLW
- SX6 B1
- SX7 X2 SET LWA+1 OF ENTRIES
- ZR X1,CCI6.2 IF ENTRIES READ
- NG X1,CCI6.1 IF READ ERROR WITH DATA TRANSFERRED
- SA6 CFTS SET END OF CATALOG TRACK
- SX7 CSBF SET NO DATA READ
- CCI6.2 SX6 CSBF SAVE CATALOG BUFFER PARAMETERS
- LX6 18
- BX7 X6+X7
- SA7 CCIC
- SA1 CCIA RESTORE *CIR* BUFFER PARAMETERS
- SB5 X1
- LX1 -18
- SA2 CCIC RESTORE CATALOG BUFFER PARAMETERS
- SB3 X1
- SB4 X2
- LX2 -18
- SB2 X2
- NE B2,B4,CCI7 IF CATALOG ENTRIES TRANSFERRED
- SA1 CFTS
- ZR X1,CCI6 IF NOT END OF CATALOG TRACK
- SA2 EMRF
- NZ X2,CCI8 IF NOT EMPTY RECORD
- EQ CCI13 CONTINUE TO NEXT CATALOG TRACK
- * BUILD *CIR*.
- CCI7 SX6 B1 SET EMPTY RECORD FLAG
- SA6 EMRF
- RJ BCL BUILD CATALOG LIST
- CCI8 SA2 NCTL UPDATE NUMBER OF CATALOGS ON THIS TRACK
- SX4 B5
- SB5 B0 CLEAR CATALOG COUNT
- IX6 X2+X4
- SA3 NCTB
- SA6 A2
- IX6 X3+X4
- SA6 A3
- SA2 CWAD GET CONTROL WORD ADDRESS
- GE B2,B4,CCI9 IF CATALOG BUFFER EMPTY
- SX3 CICW SET UP CONTROL WORD
- SX7 B5 SAVE *CIR* BUFFER PARAMETER
- SA7 CCIA
- SX6 B2 SAVE CATALOG BUFFER PARAMETERS
- SX7 B4+
- LX6 18
- BX7 X6+X7
- SA7 CCIC
- RJ WIB WRITE IMAGE BLOCK
- SA1 CCIA RESTORE *CIR* BUFFER PARAMETER
- SB5 X1+
- SA1 CCIC RESTORE CATALOG BUFFER PARAMETERS
- SB4 X1
- LX1 -18
- SB2 X1
- EQ CCI7 LOOP TO FINISH CATALOG BLOCK
- CCI9 SX6 B3-DBUFH-776B
- PL X6,CCI10 IF END OF 1000B WORD BLOCK
- SA1 CFTS
- ZR X1,CCI6 IF NOT EOR OR EOF
- EQ CCI11 WRITE IMAGE BLOCK
- CCI10 SX3 CICW SET CONTROL WORD
- SA1 CFTS
- ZR X1,CCI12 IF NOT EOR OR EOF
- CCI11 SX3 CRWC SET EOR CONTROL WORD
- CCI12 SX7 B5 SAVE *CIR* BUFFER PARAMETER
- SA7 CCIA
- SX6 B2 SAVE CATALOG BUFFER PARAMETERS
- SX7 B4+
- LX6 18
- BX7 X6+X7
- SA7 CCIC
- RJ WIB WRITE IMAGE BLOCK
- SA1 CCIA RESTORE *CIR* BUFFER PARAMETER
- SB5 X1+
- SA1 CCIC RESTORE CATALOG BUFFER PARAMETERS
- SB4 X1
- LX1 -18
- SB2 X1+
- SA1 CFTS
- ZR X1,CCI6 IF NOT EOR OR EOF
- CCI13 SA2 EMRF
- ZR X2,CCI14 IF EMPTY CATALOG TRACK
- ARCHIVE WRITER
- CCI14 SA2 NCAT CONTINUE TO NEXT CATALOG TRACK
- SA3 CCTR
- SX6 X3+B1
- IX2 X3-X2
- PL X2,CCI15 IF END OF CATALOG TRACKS
- SA6 A3
- * ADVANCE TO NEXT CATALOG TRACK.
- PCINT CATC,CTAC ADVANCE CATALOG TRACK
- EQ CCI5 LOOP FOR NEXT TRACK
- * ADVANCE TO NEXT DEVICE.
- CCI15 RJ CAC CLEAR PF ACTIVITY COUNT
- EQ CCI2 SEARCH FOR NEXT MASTER DEVICE
- CCIA BSSZ 1 CATALOG TRACK WORKING BUFFER INDICES
- CCIB CON 0 MSTT LOCATOR
- CCIC BSS 1 CATALOG BUFFER PARAMETER SAVE AREA
- CDPM VFD 24/0,18/CDWD,18/CDUI CATALOG DESCRIPTION PARAMETER
- CDUI BSS 1 CATALOG DESCRIPTION USER INDEX
- *T CDWD 42/ PN, 6/, 12/ EQ
- * PN = PACKNAME FOR AN AUXILIARY DEVICE.
- * = 0 FOR A FAMILY DEVICE.
- * EQ = EST ORDINAL OF THE DEVICE.
- CDWD BSS 1 CATALOG DESCRIPTION WORD
- CFTS CON 0 CATALOG TRACK TERMINATION FLAG
- CRIN CON 1 CURRENT RANDOM INDEX
- NCTL BSSZ 1 NUMBER OF CATALOGS
- NCTB BSSZ 1 NUMBER OF CATALOGS IN BLOCK
- EMRF BSSZ 1 EMPTY CATALOG RECORD FLAG
- CCTR CON 1 CURRENT CATALOG TRACK
- CWAD BSSZ 1 CONTROL WORD ADDRESS
- CONT CON CFCW+201B DIRECTORY CONTROL WORD
- TCCT BSSZ 1 TOTAL CATALOG COUNT
- CDIR BSSZ 200B CATALOG DIRECTORY
- CIRM DIS 3,GENERATING CATALOG IMAGE.
- CIRH VFD 12/0LCH,48/0 CATALOG IMAGE RECORD HEADER
- CICH BSS 1 HEADER WORD WITH MASK
- NCAT BSSZ 1 NUMBER OF CATALOG TRACKS
- WIB SPACE 4,20
- ** WIB - WRITE CATALOG IMAGE BLOCK.
- *
- * ENTRY (X2) = ADDRESS TO STORE CONTROL WORD AT.
- * (X3) = CONTROL WORD.
- * (NCTB) = WORD COUNT OF BLOCK.
- * (CICH) = CATALOG IMAGE HEADER.
- * (DBUFH - DBUFH+1000B) = CATALOG IMAGE BLOCK.
- *
- * EXIT (B3) = NEXT AVAILABLE WORKING STORAGE ADDRESS.
- * (NCTB) = 0.
- * (CICH) = 0.
- * (CWAD) = NEXT CONTROL WORD ADDRESS.
- * CATALOG IMAGE BLOCK WRITTEN TO ARCHIVE FILE.
- * CATALOG IMAGE DATA WRITTEN TO SELECTED OUTPUT FILES.
- *
- * USES X - 1, 4, 6, 7.
- * A - 1, 4, 6, 7.
- * B - 3.
- *
- * CALLS OCI.
- *
- * MACROS ARCHIVE.
- WIB SUBR ENTRY/EXIT
- * SET UP CONTROL WORD.
- SA4 NCTB
- SA1 CICH
- BX6 X3+X4 MERGE CONTROL WORD AND WORD COUNT
- BX6 X6+X1 MERGE HEADER IF PRESENT
- SA6 X2
- * WRITE BLOCK.
- SX7 B1 INCLUDE CONTROL WORD IN WORD COUNT
- IX4 X4+X7
- ARCHIVE WRITEW,DBUFH,X4 WRITE CATALOG IMAGE BLOCK
- * WRITE CIR DATA TO OUTPUT FILES.
- SA1 NCTB
- SX6 DBUFH+1 SET BUFFER ADDRESS
- BX7 X1 SET WORD COUNT
- RJ OCI OUTPUT CIR ENTRIES
- * RESET BLOCK POINTERS.
- SX7 B0+
- SA7 CICH CLEAR CATALOG IMAGE HEADER
- SA7 NCTB CLEAR BLOCK CATALOG COUNT
- SX6 DBUFH SET CONTROL WORD ADDRESS
- SA6 CWAD
- SB3 X6+1 SET WORKING STORAGE ADDRESS
- EQ WIBX RETURN
- TITLE PRESET MESSAGES.
- PRESET SPACE 4,10
- ** PRESET ERROR MESSAGES.
- ERAR DATA C* ACCESS LEVEL LIMITS OUT OF RANGE.*
- ERFD DATA C* TAPE FORMAT OR LABEL NOT VALID FOR DESTAGE.*
- ERLD DATA C* OPTICAL DISK LABEL NOT VALID FOR DESTAGE.*
- ERND DATA C* VERSION NUMBER EXCEEDED FOR DESTAGE.*
- EROF DATA C* INTERNAL ERROR ON FILE ZZZZZOD.*
- ERPD DATA C* PARTITION NOT VALID FOR DESTAGE.*
- ERTD DATA C* NT/CT/AT TAPE OR OD REQUIRED FOR DESTAGE.*
- ERVD DATA C* VSN NOT VALID FOR DESTAGE.*
- SPACE 4,10
- * PRESET RESERVED LOCATIONS.
- BUFI CON 0 FL INCREASE FOR VERIFY FILE BUFFER
- COMMON SPACE 4,10
- ** PRESET COMMON DECKS.
- *CALL COMCDCP
- LIST X
- *CALL COMCPFP
- LIST *
- *CALL COMCRSB
- *CALL COMCSKW
- *CALL COMCSOE
- PRK HERE ASSEMBLE Y-COORDINATE PRESET CODE HERE
- SPACE 4,10
- * PRESET BUFFERS.
- ODFBUF EQU * OPTICAL DISK MOUNT FILE BUFFER *ZZZZZOD*
- ESTADD EQU ODFBUF+ODFBL *RSB* PARAMETER WORD FOR EST
- ESTBUF EQU ESTADD+1 EST BUFFER
- MSTADD EQU ESTBUF+ESMX*ESTE *RSB* PARAMETER WORD FOR MST
- MSTBUF EQU MSTADD+1 MST BUFFER
- DSTBUF EQU MSTBUF+MSTL DEVICE STATUS BUFFER
- PREL EQU DSTBUF+2*MSMX*2 PRESET LWA + 1
- ERRNG CATB-PREL PRESET OVERLAYS *CATB*
- SPACE 4,10
- END
cdc/nos2.source/opl871/pfdump.txt ยท Last modified: 2023/08/05 17:24 by Site Administrator