PERMANENT FILE DUMP/LOAD UTILITY
jobdpf. user(install,install) attach(opl=opl871) copybf(input,dumppf) replace(dumppf) get,dumppf. modify. compass(i=compile,s=nostext) purge(dpfbin/na) save(lgo=dpfbin) ~eor DUMPPF IDENT DUMPPF,ORIG ABS CMT$ RMT DELAY UNTIL AFTER *COMSPFM* NW DECMIC NWCE,2 *COMMENT PERMANENT FILE DUMP/LOAD UTILITY("NW"). COMMENT COPYRIGHT UNIVERSITY OF MINNESOTA. 1974. CMT$ RMT TITLE DUMPPF/LOADPF - PERMANENT FILE DUMP/LOAD UTILITY. SYSCOM B1 DUMPPF SPACE 4 *** DUMPPF/LOADPF - PERMANENT FILE DUMP/LOAD UTILITY. * K. C. MATTHEWS. 74/07/15. * ALAN F. JOHNSTON. 75/08/30. SPACE 4 *** DUMPPF AND LOADPF PROVIDE USER CAPABILITY TO DUMP AND * AND RELOAD PERMANENT FILES WITHIN THE PERMANENT FILE CATALOG * OF THE CURRENT JOB. MASS STORAGE RESIDENT LOCAL FILES MAY * ALSO BE DUMPED AND LOADED. A DUMPED PERMANENT FILE MAY BE * RELOADED AS A LOCAL FILE. * DUMPPF IS USED TO DUMP FILES. * LOADPF IS USED TO RELOAD FILES. * * EACH FILE DUMPED TO THE DUMP FILE CONSISTS OF ONE * LOGICAL RECORD. THE DUMP FILE MAY BE CATALOGED WITH PROGRAM * *CATALOG* TO DETERMINE ITS CONTENTS. DUMPED FILES HAVE A * RECORD TYPE *DUMP*, AND *DUMP* RECORDS MAY BE REMOVED, * REPLACED, OR INSERTED INTO THE DUMP FILE BY THE USE OF ANY * COPY UTILITIES SUCH AS *COPYX*, *COPYBR*, *GTR*, OR * *LIBEDIT*, PROVIDING THAT THESE UTILITIES HAVE THE MOD TO * COMMON DECK *COMCSRT* ASSEMBLED INTO THEM. * * NOTE THAT THE ONE LOGICAL RECORD OF TYPE *DUMP* FOR * EACH DUMPED FILE IS RECORDED IN A SPECIAL FORMAT. THE * RECORD CANNOT SIMPLY BE RECOPIED TO A LOCAL FILE FOR USE * IN ITS ORIGINAL FORM, BUT MUST BE RELOADED WITH *LOADPF*. * ALSO, SINCE THE RECORDS ARE SPECIALLY STRUCTURED, A PARTIAL * RECORD CANNOT BE SUCCESSFULLY RELOADED BY *LOADPF*. * IF PART OF A *DUMP* RECORD IS LOST DUE TO TAPE PARITY ERRORS, * FOR EXAMPLE, THE ENTIRE *DUMP* RECORD CANNOT BE USED. * * DUMPPF PROVIDES AN OPTION OF UPDATING AN OLD DUMP * FILE BY COPYING RECORDS FROM AN OLD DUMP TO A NEW DUMP FILE. * ALL RECORDS ON THE OLD DUMP FILE ARE COPIED TO THE NEW DUMP * FILE, EXCEPT THOSE RECORDS THAT WERE DUMPED DURING THE RUN OF * DUMPPF, THUS REPLACING CURRENT VERSIONS OF PERMANENT FILES. * THIS COPY OPTION IS SELECTED BY USING THE *P* PARAMETER ON * DUMPPF. A FILE IS NOT COPIED TO THE NEW FILE IF A FILE OF * THE SAME NAME AND USER INDEX WAS DUMPED DURING THE DUMPPF * RUN. (SEE THE *IU* PARAMETER, HOWEVER.) FILES ARE * COPIED UNTIL END OF INFORMATION UNLESS THE *CF* * PARAMETER IS USED. * * DUMPPF AND LOADPF MAY SELECTIVELY DUMP AND LOAD * CERTAIN FILES AS DESCRIBED BY CONTROL CARD PARAMETERS. MORE * DETAILED SELECTION CRITERIA MAY BE SPECIFIED BY INPUT * DIRECTIVE CARDS, WHICH ARE NORMALLY READ FROM THE JOB INPUT * FILE. * * WHEN LOADPF RELOADS A PERMANENT FILE, ANY PREVIOUSLY * EXISTING COPY OF THE FILE IS PURGED. THE RELOADED FILE IS * DEFINED OR SAVED AT LOAD TIME. THUS, RELOADED PERMANENT FILES * ARE NEWLY CREATED FILES IN THE PERMANENT FILE CATALOG. THIS * FACT HAS TWO IMPORTANT IMPLICATIONS FOR THE USER OF * DUMPPF/LOADPF% * (1) RELOADED PERMANENT FILES ARE CATALOGED IN THE * CATALOG OF THE USER WHO RELOADED THE FILES - NOT IN * THE CATALOG OF THE USER WHO DUMPED THE FILES. THIS * FEATURE MAY BE USEFUL TO A USER WHO WISHES TO DUMP * THE FILES OF ONE USER NUMBER AND RELOAD THEM UNDER * A DIFFERENT USER NUMBER. * (2) SINCE THE RELOADED FILE IS A NEW PERMANENT FILE, ALL * HISTORICAL DATA ABOUT IT IS LOST. THIS MEANS THAT * THE CREATION DATE, LAST MODIFICATION DATE, AND LAST * ACCESS DATE ALL BECOME THE RELOAD DATE. ALSO, ANY * PERMITS DONE TO A FILE WILL BE LOST. THE USER MUST * RE-PERMIT THE FILE TO EACH PERMITTED USER AFTER THE * LOAD. THE STATISTICS KEPT FOR PERMITTED USERS AND * ALL USERS ON SEMI-PRIVATE FILES ARE LOST. THE * STATISTICS FOR SEMI-PRIVATE FILES THUS BEGIN ON THE * RE-LOAD DATE. * * * NOTE% PROTECTED PERMANENT FILES (FP=ON) ARE * IGNORED BE DUMPPF/LOADPF. AN ATTEMPT TO LOAD * A FILE WHOSE NAME IS THE SAME AS THAT OF A * PROTECTED FILE WILL CAUSE TO LOADPF ERROR WHEN * THE PURGE OF THE OLD FILE IS ATTEMPTED. PURGE * THE FILE BEFOREHAND OR USE THE *NA* PARAMETER * IF YOU HAVE PROTECTED FILES AND WISH TO USE * DUMPPF/LOADPF. SPACE 4 *** CONTROL CARD CALL% * * * DUMPPF(P1,P2,...,PN) * LOADPF(P1,P2,...,PN) * (PN) MAY BE OF THE FOLLOWING FORMS% * PN * PN=NAME * PN=0 * * OPTIONS. * * I DIRECTIVE INPUT FROM FILE *INPUT*. * I=FNAME DIRECTIVE INPUT FROM FILE *FNAME*. * I=0 NO DIRECTIVE INPUT. * * * L LIST OUTPUT ON FILE *OUTPUT*. * L=FNAME LIST OUTPUT ON FILE *FNAME*. * L=0 NO LIST OUTPUT. * * * B DUMP RECORDS ON FILE *DUMP*. * B=FNAME DUMP RECORDS ON FILE *FNAME*. * B=0 NO DUMP RECORDS. * * * P COPY OLD DUMP FROM FILE *OPL* * P=FNAME COPY OLD DUMP FROM FILE *FNAME* * P=0 NO COPY OLD DUMP * * * * * TY=DIRECT SELECT ONLY DIRECT ACCESS FILES. * [DI] * [D] * TY=INDIR SELECT ONLY INDIRECT ACCESS FILES. * [IN] * [I] * TY=ALL SELECT DIRECT AND INDIRECT ACCESS FILES. * [A] * * * CT=PRIVATE SELECT ONLY PRIVATE FILES. * [PRIV] * [PR] * CT=SPRIV SELECT ONLY SEMI-PRIVATE FILES. * [SP] * [S] * CT=PUBLIC SELECT ONLY PUBLIC FILES. * [PUB] * [PU] * CT=ALL SELECT PRIVATE, SEMI-PRIVATE, AND PUBLIC * [A] FILES. * * * UI=NNNNNN SELECT ONLY FILES BELONGING TO USER INDEX * NNNNNN. THIS OPTION IS USED ONLY FOR * LOADING FILES. * * * LO DUMP AND LOAD FILES AS LOCAL FILES. * FILES TO BE DUMPED MUST BE ALREADY PRESENT. * FILES TO BE LOADED ARE LOADED AS LOCAL * MASS STORAGE FILES. THIS MODE REQUIRES * THAT INPUT DIRECTIVES BE USED TO SELECT * THE FILE(S) TO BE LOADED OR DUMPED. * * * LT APPLIES ONLY IF LO PARAMETER USED FOR * LOADPF. * LT=LOCAL LOAD ONLY FILES DUMPED AS LOCAL FILES. * [LO] * [L] * LT=PERM LOAD ONLY FILES DUMPED AS PERMANENT. * [PM] * [P] * LT=ALL LOAD BOTH SORTS OF FILES. * [A] * * * IU IGNORE USER INDEX ON THE FILE COPY. * IF *IU* IS SPECIFIED, NO FILE * WILL BE COPIED WHICH HAS THE SAME * NAME AS A DUMPED FILE. IF *IU* IS * NOT SPECIFIED, A FILE MUST HAVE * THE SAME NAME AND USER INDEX AS A * DUMPED FILE TO BE EXCEPTED FROM * THE COPY. * * * CF=NNNN COPY NNNN FILES FROM *P* FILE * TO THE *B* FILE. IF NNNN = 0, COPY * FROM *P* TO *B* UNTIL END OF * INFORMATION. * * * N=NNNN DUMP/LOAD NNNN FILES THAT MEET CRITERIA. * * * NA NO ABORT. IF ERRORS, PROCEED AS BEST AS * POSSIBLE. * * * NR DO NOT REWIND EITHER THE OLD OR NEW * DUMP FILES BEFORE AND AFTER THE LOAD OR * DUMP. * * * NE DO NOT ENDFILE THE DUMP FILE AFTER A DUMP. * * * NP DO NOT PURGE PERMANENT FILES BEFORE * LOADING. THIS WILL CAUSE THE LOAD OF * ALREADY EXISTING PERMANENT FILES TO BE * SKIPPED. * * * PG PURGE PERMANENT FILES AFTER DUMPING. * * * EL=NNNN NNNN IS THE INPUT DIRECTIVE ERROR LIMIT. * DUMPPF AND LOADPF UNCONDITIONALLY ABORT * WHEN THE NUMBER OF INPUT DIRECTIVE ERRORS * REACHES THIS LIMIT. THE ABORT OCCURS * REGARDLESS OF THE NA PARAMETER. * NNNN IS NORMALLY A DECIMAL NUMBER, BUT * AN OCTAL VALUE MAY BE GIVEN IF A POST * RADIX *B* IS ADDED. * * * PN=PACKNAM USE PERMANENT FILES FROM PRIVATE DEVICE * NAMED *PACKNAM*. IF THIS PARAMETER IS * USED, THE R PARAMETER MAY BE NEEDED TO * SPECIFY THE DEVICE TYPE. * PN=0 USE NO PACK NAME. * * * R=RES USE PERMANENT FILES RESIDING ON A DEVICE * TYPE *RES*. THE LEGAL PERMANENT FILE * RESIDENCE TYPES ARE DEFINED IN THE * NOS 1.0 REFERENCE MANUAL. IF THIS * PARAMETER IS USED, THE PN PARAMETER MUST * ALSO BE USED. * R=0 USE SYSTEM ASSIGNED RESIDENCE. * * * DR RELOAD FILES TO THE RESIDENCE AND * PACKNAME FROM WHICH THEY WERE ORIGINALLY * DUMPED. * * * Z TAKE DIRECTIVES FROM THE DUMPPF OR LOADPF * CALL CARD. THIS OVER-RIDES ANY *I* * PARAMETER PRESENT ON THE CONTROL CARD. * CARD FORMATS ARE - * DUMPPF(P1,P2,...,PN)TDDDDTDDDTDDD..... * LOADPF(P1,P2,...,PN)TDDDDTDDDTDDD..... * T = LINE TERMINATOR CHARACTER. THIS * ACTS TO SEPARATE THE DIRECTIVES THAT * APPEAR ON THE CARD. THE FIRST * CHARACTER AFTER THE PARAMETER LIST * TERMINATOR IS TAKEN TO BE THE LINE * TERMINATOR. IT MAY BE ANY CHARACTER * THAT WILL NOT BE CONFUSED WITH THOSE * USED IN THE DIRECTIVES THEMSELVES. * DDD... = ANY DUMPPF OR LOADPF * DIRECTIVE AS DESCRIBED BELOW. * * TF = TAPE FORMAT * ALLOWABLE TAPE FORMATS ARE 'DUMP' * AND 'PFU'. 'DUMP' FORMAT IS THE * DUMPPF/LOADPF DUMP TYPE RECORD. * PFU IS THE SYSTEM PFS/PFDUMP * UTILITY DUMP RECORD. 'PFU' TYPE * RECORDS CAN BE READ BY LOADPF TO * LOAD A FILE FROM A UTILITY TAPE. * * * ASSUMED PARAMETERS. * I=0 * L=OUTPUT * B=DUMP * P=0 * TY=ALL * CT=ALL * UI NOT SET * LO NOT SET * LT=ALL * IU NOT SET * CF=0. * N=UNLIMITED * NA NOT SET * NR NOT SET * NE NOT SET * NP NOT SET * PG NOT SET * EL=64 * PN=0 * R=0 - IF PN=0 * R=DI1 - IF PN"0 * DR NOT SET * Z NOT SET * TF=DUMP. * * * NOTE% PERMANENT FILES ARE LOADED AND DUMPED WITH THE LOCAL * FILE NAME ZZZZZRL. THUS , IF ANY OF THE FILE NAMES I, * L, B, OR P ARE EQUIVALENCED TO ZZZZZRL, A RESERVED FILE * NAME ERROR WILL OCCUR AND DUMPPF WILL UNCONDITIONALLY * ABORT. SPACE 4 ** THE FOLLOWING CONTROL CARD OPTIONS ARE LEGEL FOR SYSTEM * ORIGIN JOBS. * * UI=NNNNNN SET DUMP USER INDEX TO NNNNNN. IF USED, * ONLY FILES FROM THE SPECIFIED USER INDEX * ARE DUMPED. THE USER INDEX IS PRINTED IN * THE LIST OF FILES DUMPED. * * * SL SELECTS SYSTEM SHORT LIST OPTION. ONLY * FILES DUMPED ARE LISTED. IF NO FILES ARE * DUMPED, NO LISTING IS PRODUCED. MODS SPACE 4 ** MODIFICATION HISTORY - UNIVERSITY OF MINNESOTA. * * * PSR 82/07/19. D. L. CASWELL. * FIX 552 ASSEMBLY PROBLEM WITH DUMPPF. * * PSR 81/04/20. C. W. COPLEY. * CORRECT SPELLING AND FORMAT PROBLEMS. * * PSR 80/08/08. R. K. NORDIN. * CORRECT CHECK FOR PROTECTED FILE. * * MOD 79/11/14. P.M.THOMPSON. * ADD DAYFILE MESSAGE STATING NUMBER OF PROTECTED FILES * SKIPPED. * * DUMP18 79/09/14. T. J. HOFFMANN. * FIX LOADPF TO WRITE AN EMPTY EOR FOR ZERO LENGTH FILES. * DUMP17A79/06/29. K. C. MATTHEWS. * KLUDGE - DELETE DI RESIDENCE WHEN SET TO MAKE OLD DUMP FILES * GO TO CORRECT DISK AT UCC. * * DUMP17 79/06/29. K. C. MATTHEWS. * INSURE DUMPPF WORDS IF PN= BUT NO R=. * GETVSN (FOR *SL* RUNS) AT START OF THE FILE. * * CDC2 78/10/04. P. C. HIGGINS. * 1) ADD 16 WORD PFC SYSTEM COMPATABILITY. * 2) ALLOW R=DI ETC. AS LEGAL RESIDENCY. * * * DUMP1 76/01/20. K. C. MATTHEWS. * RECALL FILE -S- BEFORE RESTORING (S+1) FOR SAVE REQUEST. * * DUMP12 78/10/22. T. J. HOFFMANN. * READ CDC PFU FORMAT TAPE FOR LOADPF. * * DUMP8 77/06/28. K. C. MATTHEWS. * DELETE REFERENCES TO SECURED/UNSECURED FILES. * * DUMP7 77/03/22. K. C. MATTHEWS. * ALLOW RELOAD OF PROTECTED FILES AS UNPROTECTED. * * DUMP6 76/12/07. K. C. MATTHEWS. * ADD *IU* PARAMETER. * * DUMP5 76/09/16. K. C. MATTHEWS. * ADD *CF* PARAMETER. * * DUMP4 76/09/16. K. C. MATTHEWS. * IGNORE PROTECTED PERMANENT FILES. * * DUMP3 76/09/16. K. C. MATTHEWS. * REMOVE ULTRA-PRIVATE FILE CODE. * * DUMP2 76/09/16. K. C. MATTHEWS. * IGNORE SECURED FILE PARAMETER. * SPACE 4 ** DUMPED FILES ARE DUMPED AS A SINGLE LOGICAL RECORD. THE * *DUMP* RECORD CONSISTS OF 3 PARTS% * * * (1) THE PREFIX (7700) TABLE. THIS IS A STANDARD 7700 * TABLE AND CONTAINS THE FILE NAME, THE DUMP DATE AND * TIME, AND OTHER COMMENT INFORMATION. * * * (2) THE *DUMP* (7400) TABLE. THIS TABLE CONTAINS THE * FOLLOWING% * *T 0 12/ 7400B,12/ LENGTH,12/ VERSION,24/ *T 1 42/ PACKNAME,18/ NUNITS *T 2 12/ DEVICE TYPE,48/ *T 3 60/ PACKED DUMP DATE AND TIME *T 4 60/ SPECIAL TABLE IDENTIFIER *T 5 60/ *T 6 60/ *T 7 60/ * * ******************************************************* * * * * * * * * 8 OR 16 WORD CATALOG ENTRY FOR A PERMANENT FILE. * * * ZEROES FOR A LOCAL FILE. * * * * * * * * ******************************************************* * * * (3) CONTROL WORD COPY OF THE FILE. THIS IS A COPY OF THE * FILE AS READ USING THE *READCW* CIO FUNCTION CODE. * THE CONTROL WORDS ARE NOT EXAMINED BY DUMPPF/LOADPF. * ALL DATA READ USING *READCW* IS WRITTEN TO THE DUMP * RECORD. WHEN THE FILE IS LOADED, THE *WRITECW* CIO * FUNCTION CODE IS USED. THIS CODE INTERPRETS THE CONTROL * WORDS STORED WHEN THE FILE WAS DUMPED. COMMON SPACE 4 *CALL COMCCMD *CALL COMCMAC *CALL COMCMTM *CALL COMSPFM CMT$ HERE COMMENT STATEMENTS ENTRY SPACE 4 ENTRY LOADPF ENTRY DUMPPF ENTRY RFL= TITLE FILE ENVIRONMENT TABLES. ORG 113B ORIG BSS 0 DUMPPF ORIGIN BUFL EQU 377B WORKING STORAGE BUFFER LENGTH CBUFL EQU NWCE*100B+1 CATLIST BUFFER LENGTH DBUFL EQU 4023B DUMP FILE BUFFER LENGTH PBUFL EQU 3023B PERMANENT FILE BUFFER LENGTH OBUFL EQU 401B OUTPUT BUFFER LENGTH IF -DEF,CFFS,1 CFFS EQU 16B UCC ADDED PFM PARAMETERS IF -DEF,CFLM,1 CFLM EQU 17B LIMIT OF PF PARAMETERS IN FET FETL EQU CFLM IF -DEF,FCFP,1 FCFP EQU 17B FILE PROTECT WORD IN CATALOG ENTRY T74ID MICRO 1,10,/UOFM**DUMP/ 74 TABLE IDENTIFIER QUAL PFC8 8 WORD PFC DEFINITIONS T74L EQU 20B 74 TABLE LENGTH T74ID8 MICRO 1,10,/PFC8**DUMP/ 74 TABLE IDENTIFIER - 8 WORD PFC QUAL * QUAL PFC16 16 WORD PFC DEFINITIONS T74L EQU 30B 74 TABLE LENGTH T74ID16 MICRO 1,10,/PFC16*DUMP/ 74 TABLE IDENTIFIER - 16 WORD PFC QUAL * T74V EQU NWCE/10B+0 74 TABLE VERSION VRMX EQU 2 LARGEST VERSION NUMBER FETS SPACE 4 B BSS 0 DUMP FILEB DBUF,DBUFL,(FET=14) DUMP FILE C FILEB CBUF,CBUFL,(FET=CFLM),EPR CATLIST FUNCTION FET I BSS 0 INPUT FILEB DBUF,DBUFL,(FET=14) INPUT FILE L BSS 0 OUTPUT FILEB OBUF,OBUFL,(FET=14) OUTPUT FILE P BSS 0 OPL FILEB PBUF,PBUFL,(FET=14) COPY FILE S BSS 0 ZZZZZRL FILEB PBUF,PBUFL,(FET=CFLM),EPR PERMANENT FILE INPUT SPACE 4 .1 BSS 0 ORG I DATA 0 SET DEFAULT I=0 ORG P DATA 0 SET DEFAULT P=0 ORG S+CFFS CON 300B SELECT NO ACCESS DATE UPDATE, INDIRECT ACCESS FILE MESSAGES ORG .1 SPACE 4 ** MANAGED TABLES. * * DUMPPF MANAGES THREE TABLES TO PROVIDE VARIOUS * FUNCTIONS FOR DIRECTIVES AND CONTROL CARD PARAMETERS. ONE * OF THESE TABLES CONTAINS THE *SELECT OR *IGNORE FILE NAME * DIRECTIVES. THE SECOND TABLE CONTAINS THE USER INDICES FOR * *SUI DIRECTIVES. THE THIRD TABLE CONTAINS THE NAME AND USER * INDEX OF ALL DUMPED FILES FOR THE COPY OR PURGE AFTER DUMP * OPTIONS. TIFN TABLE 1 TABLE OF INPUT FILE NAMES TSUI TABLE 1 TABLE OF USER INDICES TDFN TABLE 1 TABLE OF DUMPED FILE NAMES TITLE LOAD/DUMP SUBROUTINES. DPF SPACE 4 ** DPF - DUMP PERMANENT FILES. * DPF RJ CPR CHECK FOR RESERVED FILE NAME ZR X1,UAB ERROR SX7 =C* PERMANENT FILES DUMPED.* RJ WOH WRITE HEADER SA1 PN SA2 RS SA3 C+1 MX0 12 BX6 X1 LX7 X2 SA6 T74PN SET PACKNAME AND RESIDENCE IN 74 TABLE SA7 T74RS BX3 -X0*X3 SET PACKNAME AND RESIDENCE IN CATLIST FET SA6 C+CFPK BX7 X3+X7 SA7 A3 SA1 SU ZR X1,DPF2 IF NO *SUI DPF1 SA2 L.TSUI SA3 F.TSUI ZR X2,DPF9 IF END OF LIST SA5 X3 GET INDEX SX7 X2-1 BX6 X5 SA7 A2 RESET LENGTH SX7 X3+B1 SA6 UI SAVE USER INDEX SA7 A3 RESET FWA OF *SUI TABLE SETUI X5 SA1 A5 RJ COD LX6 24 MX7 0 SA6 DRN+1 SET INDEX IN MESSAGE SA7 C+6 CLEAR RANDOM INDEX DPF2 CATLIST C DPF3 RECALL S SA1 S CLEAR CODE AND STATUS FIELD FOR PFM MX0 17 LX0 18 BX6 -X0*X1 SA6 A1 SA1 NF ZR X1,DPF8 IF ALL SELECTED FILES DUMPED READW C,PFCB,NWCE READ NEXT CATALOG ENTRY ZR X1,DPF4 IF READ PL X1,SYE IF EOR SB2 X1+2 EQ B2,B1,DPF2 IF MORE CATALOG ENTRIES ZR B2,DPF8 IF ENTIRE CATALOG PROCESSED EQ SYE DPF4 SA1 FP INCREMENT FILES PROCESSED SX6 X1+B1 SA6 A1 RJ CFW CHECK FILE WANTED NG X1,DPF3 IF UNWANTED SA1 PFCB+FCPW SET PASSWORD MX0 42 SX6 PFME PFM ERROR MESSAGE ADDRESS BX1 X0*X1 BX6 X6+X1 SA6 S+CFPW RJ SPT SET DATA IN PREFIX TABLE SA1 T77NM PERMANENT FILE NAME SX7 PTRD SET READ PERMISSION BX7 X7+X1 SA7 S+CFPN SET PERMANENT FILE NAME RJ SFN SPACE FILL FILE NAME SA6 PFMA SA6 DRN SA3 S+1 SA1 PN SET PACKNAME AND RESIDENCE SA2 RS MX0 12 BX6 -X0*X3 LX7 X1 BX6 X6+X2 SA7 S+CFPK SET PACKNAME AND UNIT NUMBER SA6 A3 SET RESIDENCE SA1 PFCB+FCBS GET FILE TYPE LX1 48 NG X1,DPF5 IF DIRECT GET S EQ DPF6 DPF5 ATTACH S DPF6 RJ CER CHECK ERROR RESPONSE ZR X6,DPF7 IF NO ERROR SA0 PFMM ISSUE PFM ERROR RJ EXR EQ DPF3 PROCESS NEXT CATALOG ENTRY DPF7 RJ DMF DUMP PERMANENT FILE EQ DPF3 DPF8 SA1 SU NZ X1,DPF1 IF *SUI IN EFFECT DPF9 UNLOAD S,R DPF10 RJ CDF COPY OLD DUMP FILE SA1 NE CHECK IF ENDFILE WANTED NZ X1,DPF11 IF NO ENDFILE WANTED SA1 DW CHECK DATA WRITTEN ZR X1,DPF11 IF NO DATA WRITTEN NG X1,DPF11 IF ENDFILE ALREADY WRITTEN WRITEF B DPF11 SA1 NR CHECK IF DUMP FILE REWIND WANTED NZ X1,ENR IF NO REWIND WANTED REWIND B REWIND P EQ ENR DLF SPACE 4 ** DLF - DUMP LOCAL FILES. * DLF SX7 =C* LOCAL FILES DUMPED.* RJ WOH WRITE HEADER SA1 NF SX2 B0 IX2 X2-X1 PL X2,DLF3 IF (NF) @ 0 DLF1 RECALL S SA3 L.TIFN GET NEXT FILE SA2 FP ZR X3,DLF3 IF TABLE EMPTY SA4 F.TIFN SX6 X2+B1 INCREMENT FILES PROCESSED IX5 X3+X4 GET LAST FILE IN LIST SA1 X4 GET NEXT FILE TO PROCESS SA6 A2 SA5 X5-1 BX7 X1 MX0 -1 SX6 X3-1 RESET TABLE LENGTH SA7 PFCB+FCFN SAVE FILE NAME BX7 X5 SA6 A3 SA7 A1 BX6 -X0+X1 SA6 S RJ SFN SPACE FILL FILE NAME SA6 DRN RJ CFW CHECK FILE WANTED NG X1,DLF1 IF NOT WANTED RJ SPT SET INFORMATION IN PREFIX TABLE STATUS S,P SA1 S MX0 -4 AX1 10 BX1 -X0*X1 NZ X1,DLF1 IF FILE NOT AVAILABLE SA2 A1+B1 PL X2,DLF2 IF ON MASS STORAGE SA5 DRN GET FILE NAME SA0 =C* XXXXXXX NOT MASS STORAGE FILE.* BX6 X5 LX6 -6 SA6 A0 RJ EXR EQ DLF1 DLF2 RJ CPR ZR X1,DLF1 IF RESERVED FILE REWIND S RJ DMF DUMP FILE EQ DLF1 DLF3 EQU DPF10 WRITE EOF ON DUMP FILE LPF SPACE 4 ** LPF - LOAD PERMANENT FILES. * LPF RJ CPR CHECK IF RESERVED FILE NAME ZR X1,UAB IF RESERVED UNLOAD S SX7 =C* FILES LOADED AS PERMANENT FILES.* RJ WOH WRITE HEADER LPF1 SA1 NF ZR X1,LPF11 IF ALL LOADED RJ RST READ 74 TABLE NG X1,LPF11 IF EOF NZ X1,LPF10 IF NOT GOOD 74 TABLE SA1 FP INCREMENT FILES PROCESSED SX6 X1+B1 SA6 A1 RJ CFW CHECK FOR FILE WANTED SA2 SU NG X1,LPF10 IF NOT WANTED ZR X2,LPF2 IF *SUI NOT SELECTED SA5 PFCB+FCUI SET USER INDEX SX1 X5 RJ COD LX6 24 SA6 DRN+1 SX6 X5 SEARCH TSUI,X6 ZR X2,LPF10 IF NOT WANTED SETUI X5 LPF2 RECALL S SA5 PFCB+FCFN SET PERMANENT FILE NAME MX0 42 BX5 X0*X5 BX1 X5 RJ SFN SPACE FILL NAME SA6 PFMA SA6 DRN SA1 PFCB+FCCT SET CATALOG TYPE,MODE MX0 -12 LX1 12 BX6 -X0*X1 BX6 X6+X5 SA6 S+CFPN PFC16$ IFEQ NWCE,20B SA2 PFCB+FCFS SET SUBSYSTEM MX0 6 LX0 -6 BX6 X0*X2 SA6 S+CFSS PFC16$ ENDIF SA1 PFCB+FCPW PASSWORD SA2 PFCB+FCUC USER CONTROL WORD MX0 42 SX6 PFME BX1 X0*X1 LX7 X2 BX6 X6+X1 SA7 S+CFUC SA6 A7-B1 SA3 DR CHECK IF DUMPED RESIDENCE WANTED SA1 PN SA2 RS ZR X3,LPF3 IF CURRENT PACKNAME AND RESIDENCE WANTED SA1 T74PN PACKNAME + NUMBER UNITS SA2 T74RS RESIDENCE TYPE SX6 DFPT/100B CHECK IF TYPE WAS DI (KLUDGE) LX6 48 BX6 X6-X2 NZ X6,LPF3 IF IT WAS DI MX2 0 LPF3 SA3 S+1 MX0 12 LX7 X1 BX3 -X0*X3 BX6 X3+X2 SA7 S+CFPK SA6 A3 SA6 LPFA RECALL B RJ SPT SET INFORMATION IN PREFIX TABLE SA1 PF NZ X1,LPF4 IF PURGE REQUESTED SX7 PFME SX6 0 SA7 C+CFPW SET ERROR ADDRESS SA6 C+6 CLEAR RANDOM ADDRESS CATLIST C,S+CFPN SA1 C CHECK ERROR RESPONSE MX0 -8 LX1 -10 BX1 -X0*X1 SX2 X1-2 ZR X2,LPF5 IF FILE NOT FOUND EQ LPF10 SKIP LPF4 PURGE S RJ CER CHECK ERROR RESPONSE ZR X6,LPF5 IF NO ERROR SX2 X6-2 ZR X2,LPF5 IF *FILE NOT FOUND* SA0 PFMM RJ EXR EQ LPF10 SKIP RECORD LPF5 SA1 PFCB+FCBS FIND PERMANENT FILE TYPE LX1 48 PL X1,LPF6 IF INDIRECT ACCESS DEFINE S RJ CER CHECK ERROR RESPONSE ZR X6,LPF6 IF NO ERROR SX1 X6-5 SA0 PFMM ZR X1,LPF10 IF FILE ALREADY PERMANENT RJ EXR ISSUE ERROR MESSAGE EQ LPF10 SKIP RECORD LPF6 RJ LDF LOAD FILE SA1 PFCB+FCBS FIND PERMANENT FILE TYPE LX1 48 NG X1,LPF7 IF DIRECT ACCESS RECALL S SA1 LPFA SET RESIDENCE FOR SAVE BX6 X1 SA6 S+1 SAVE S RJ CER CHECK ERROR RESPONSE NZ X6,LPF8 IF ERRORS LPF7 RJ COF UNLOAD S EQ LPF1 LPF8 SX1 X6-5 ZR X1,LPF9 IF FILE ALREADY PERMANENT SA0 PFMM ISSUE ERROR MESSAGE RJ EXR LPF9 UNLOAD S EQ LPF1 LPF10 UNLOAD S RJ SKR SKIP RECORD EQ LPF1 LPF11 EQU DPF11 PROCESS REWIND OF DUMP FILE LPFA CON 0 SAVE (S+1) LLF SPACE 4 ** LLF - LOAD LOCAL FILES. * LLF SX7 =C* FILES LOADED AS LOCAL FILES.* RJ WOH WRITE HEADER LLF1 SA1 NF ZR X1,LLF3 IF ALL FILES LOADED RJ RST READ 74 TABLE SA2 FP INCREMENT FILES PROCESSED NG X1,LLF3 IF EOF SX6 X2+B1 SA6 A2 NZ X1,LLF2 IF NO GOOD 74 TABLE RJ CFW CHECK IF FILE WANTED NG X1,LLF2 IF FILE NOT WANTED RJ SPT SET INFORMATION IN PREFIX TABLE RECALL S SA1 PFCB+FCFN MX0 42 MX7 -1 BX1 X0*X1 BX7 -X7+X1 SA7 S RJ SFN SPACE FILL FILE NAME SA6 DRN RJ CPR CHECK IF RESERVED FILE NAME ZR X1,LLF2 IF RESERVED RJ LDF LOAD THE FILE RJ COF EQ LLF1 LLF2 RJ SKR SKIP RECORD ON DUMP FILE EQ LLF1 LLF3 EQU DPF11 REWIND DUMP FILE RST SPACE 4 ** RST - READ 74 TABLE. * * ENTRY NONE. * * EXIT 74 TABLE READ TO (T74+1) AND FOLLOWING. * TABLE CONVERTED IF NECESSARY. * (X1) < 0 IF EOF/EOI ON DUMP FILE. * (X1) = 0 IF GOOD 74 TABLE. * (X1) > 0 IF NO GOOD 74 TABLE. * (DRN) = RECORD NAME READ. RST0 SA1 DRN PROCESS TABLE ERROR SA2 T0 NZ X1,RST1 IF RECORD ALREADY NAMED BX6 X2 USE FIRST WORD AS NAME SA6 A1 RST1 SX1 B1 SET NO GOOD TABLE RST SUBR ENTRY/EXIT MX6 0 CLEAR RECORD NAME SA6 T77NM SA6 A6+B1 SA6 DRN CLEAR NAME / INDEX SA6 DRN+1 READ B RST2 READW B,T0,B1 SA2 T0 NG X1,RSTX IF EOF NZ X1,RST0 IF SHORT RECORD BX1 X2 AX2 36 AX1 48 SX7 T77L SX4 X1-777400B CHECK FOR 74 TABLE SX3 X1-777700B CHECK FOR 77 TABLE SX5 X2 SET TABLE LENGTH ZR X4,RST3 IF 74 TABLE IX6 X7-X5 ZR X3,RST2.1 IF 77 TABLE SA1 TF NZ X1,RST0 IF NOT PFU TAPE SA4 A2 RELOAD WORD LX4 -12 MX1 -3 BX1 -X1*X4 SX1 X1-1 ZR X1,RST7 IF CATALOG BLOCK SA1 =10HPFU-HEADER BX6 X1 SA6 DRN SET B-DISPLAY MESSAGE RJ SKR SKIP REST OF RECORD EQ RST2 TRY AGAIN RST2.1 ZR X5,RST0 IF ZERO LENGTH TABLE BX0 X6 FIND MINIMUM OF X5,T77L AX6 60 SX7 B0 BX6 X6*X0 IX4 X5+X6 MINIMUM IX5 X5-X4 EXTRA WORDS IN 77 TABLE SA7 X4+T77+1 CLEAR WORD AFTER 77 TABLE READW B,T77+1,X4 NZ X1,RST0 IF READ INCOMPLETE SA1 T77NM SET NAME BX6 X1 SA6 DRN SX6 X5-BUFL-1 ZR X5,RST2 IF FULL TABLE READ PL X6,RST0 IF 77 TABLE TOO LONG READW B,BUF,X5 READ REST OF TABLE EQ RST2 RST3 SX6 X5-T74L-1 PL X6,RST0 IF 74 TABLE TOO BIG READW B,T74+1,X5 NZ X1,RST0 IF READ INCOMPLETE SA1 T0 CHECK VERSION FIELD MX0 -36 BX1 -X0*X1 BX4 X1 AX1 24 SX6 X1-VRMX-1 PL X6,RST0 IF ILLEGAL VERSION SA2 T74ID CHECK FOR ID FIELD MATCH SA3 TID+X1 SA1 RSTA+X1 GET BRANCH ADDRESS MX0 -24 BX6 X2-X3 SB2 X1 NZ X6,RST0 IF TABLE ID MISMATCH JP B2 CHECK BY TABLE VERSION RSTA CON RST4 VERSION 0, ID = UOFM**DUMP CON RST5 VERSION 1, ID = PFC8**DUMP CON RST6 VERSION 2, ID = PFC16*DUMP * VERSION 0 - UNIVERSITY OF MINNESOTA 8 WORD DUMP. RST4 SX6 X5-20B CHECK TABLE LENGTH BX7 X6+X4 NZ X7,RST0 IF NOT CORRECT TABLE IFEQ NWCE,20B,2 SX4 PFCB RJ CCE CONVERT CATALOG ENTRY SX1 B0 EQ RSTX RETURN * VERSION 1 - STOCK 8 WORD PFC DUMP. RST5 BX4 -X0*X4 SX6 X5-/PFC8/T74L BX7 X6+X4 NZ X7,RST0 IF TABLE ERROR IFEQ NWCE,20B,2 SX4 PFCB RJ CCE CONVERT CATALOG ENTRY SX1 B0 EQ RSTX RETURN * VERSION 2 - STOCK 16 WORD PFC DUMP. RST6 BX4 -X0*X4 SX6 X5-/PFC16/T74L BX7 X6+X4 NZ X7,RST0 IF TABLE ERROR IFEQ NWCE,10B,2 SX4 PFCB RJ CCE CONVERT CATALOG ENTRY SX1 B0 EQ RSTX RETURN * READ CDC PFU FORMAT TAPE. RST7 LX4 12 RESTORE HEADER WORD MX2 42 BX6 X2*X4 MX5 -9 SA6 DRN BX5 -X5*X4 EXTRACT CATALOG ENTRY LENGTH READW B,PFCB,X5 READ CATALOG ENTRY SX5 X5-NWCE CHECK CATALOG SIZE READ ZR X5,RST8 IF MATCHES CURRENT SIZE SX4 PFCB CONVERT CATALOG ENTRY RJ CCE RST8 SX1 B0 SET NO ERROR JP RSTX RETURN SKR SPACE 4 ** SKR - SKIP RECORD. * * SKR SKIPS PAST ONE RECORD ON THE DUMP FILE. SKR SUBR ENTRY/EXIT SA1 =10H SKIPPING BX6 X1 SA6 DRT MESSAGE A6,1,R DISPLAY SKIPPING SKR1 READW B,BUF,BUFL NZ X1,SKRX IF END OF RECORD EQ SKR1 DMF SPACE 4 ** DMF - DUMP FILE. * * DMF DUMPS THE FILE *S* TO THE DUMP FILE. DMF SUBR ENTRY/EXIT SA1 =8H DUMPING BX6 X1 SA6 DRT MESSAGE A6,1,R DISPLAY *DUMPING* SA1 B ZR X1,DMF1 IF B=0 RECALL B SA1 SL CHECK IF SYSTEM LIST FORMAT ZR X1,DMF0 IF NOT SYSTEM LIST GETVSN IF MAC,GETVSN GETVSN B SET DUMP TAPE VSN SA1 B+7 SAVE VSN MX3 36 BX1 X3*X1 RJ SFN SPACE FILL VSN SA6 CV SAVE CURRENT VSN GETVSN ENDIF DMF0 WRITE B,* WRITEW B,T77,HDBL WRITE 77 AND 74 TABLES DMF1 READCW S DMF2 READW S,BUF,BUFL NZ X1,DMF3 IF EOF/EOR WRITEW B,BUF,BUFL EQ DMF2 DMF3 SX7 B6-BUF PL X1,SYE IF END OF RECORD RETURNED BY READCW ZR X7,DMF4 WRITEW B,BUF,X7 DMF4 WRITER B,R SX6 1 SET DATA WRITTEN SA6 DW RJ COF COMPLETE ONE FILE EQ DMFX LDF SPACE 4 ** LDF - LOAD FILE. * * LDF LOADS ONE RECORD FROM THE DUMP FILE TO *S*. LDF SUBR ENTRY/EXIT OPEN S,ALTER,R SA1 S+4 CHECK PRU SIZE FOR MASS STORAGE FILE LX1 -18 SX1 X1-100B ZR X1,LDF1 IF MASS STORAGE FILE SA1 DRN RJ SFN LX6 -6 SA0 =C* XXXXXXX NOT MASS STORAGE FILE.* SA6 A0 RJ EXR PROCESS ERROR RJ SKR SKIP THE RECORD EQ LDFX LDF1 SA1 =10H LOADING BX6 X1 SA6 DRT MESSAGE A6,1,R DISPLAY *LOADING* SX6 0 SA6 LDFD CLEAR DATA WRITTEN SA1 TF ZR X1,LDF14 IF PFU TAPE WRITECW S,* LDF2 READW B,BUF,BUFL NZ X1,LDF3 IF END OF RECORD WRITEW S,BUF,BUFL SX6 X2+ SA6 LDFD SET NON-ZERO (DATA WRITTEN) EQ LDF2 LDF3 SX7 X1-BUF ZR X7,LDF4 WRITEW S,BUF,X7 SX6 X2+ SA6 LDFD SET DATA WRITTEN LDF4 WRITECW S SA1 LDFD NZ X1,LDF4.1 IF SOMETHING WRITTEN WRITER X2 PUT AN EMPTY EOR ON THE FILE LDF4.1 REWIND X2 EQ LDFX LDF14 WRITE S,* PRESET CIO FUNCTION CODE LDF5 READW B,T0,1 CONTROL WORD NZ X1,LDF12 IF END OF DATA RJ CCW CRACK CONTROL WORD SX0 0 SET NO SKIPPING SA1 LDFA SX1 X1-3 NZ X1,LDF10 IF NOT DATA RECORD LDF6 SA2 LDFC SX6 X2-BUFL-1 ZR X2,LDF7.1 IF NO DATA TO TRANSFER NG X6,LDF7 IF SMALL ENOUGH TO FIT IN 'BUF' SX6 X6+1 SA6 A2 DECREMENT COUNT READW B,BUF,BUFL NZ X0,LDF6 IF SKIPPING DATA WRITEW S,BUF,BUFL XFER 'BUFL' AT A TIME EQ LDF6 GET REST OF BLOCK LDF7 BX5 X2 READW B,BUF,X5 NZ X0,LDF5 IF SKIPPING DATA WRITEW S,BUF,X5 LDF7.1 SA1 LDFB ZR X1,LDF5 IF DATA BLOCK SX2 X1-1 NZ X2,LDF8 WRITER S,R EQ LDF14 LDF8 SX2 X1-2 NZ X2,LDF9 WRITEF S,R EQ LDF14 LDF9 BSS 0 MESSAGE (=C* FORMAT ERROR IN LDF.*) ABORT LDF10 SX1 X1+B1 NZ X1,LDF9 IF NEITHER DATA NOR PERMITS SX0 B1 FLAG SKIPPING EQ LDF6 LDF12 RECALL S WAIT FOR LAST CIO TO COMPLETE SA1 X2 MX3 -6 BX1 -X3*X1 CHECK LAST CIO CODE SX1 X1-14B CIO WRITE NZ X1,LDF13 BUFFER HAS BEEN FLUSHED WRITER S LDF13 REWIND S FILE TRANSFERRED TO DISK JP LDFX RETURN LDFA BSS 1 PFU A-FLAG LDFB BSS 1 PFU B-FLAG LDFC BSS 1 PFU C-FLAG LDFD BSS 1 DATA WRITTEN FLAG CCW SPACE 4,6 ** CCW - CRACK PFU CONTROL WORD. * * ENTRY (T0) = CONTROL WORD FROM DUMP TAPE. * * EXIT (LDFA - LDFC) = A - C FLAGS (SEE COMSPFU). CCW SUBR ENTRY/EXIT SX1 00777B SX2 07000B SX3 70000B SA4 T0 BX7 X2*X4 B BX6 X1*X4 C AX7 9 SA6 LDFC SA7 A6-B1 BX6 X3*X4 A AX6 12 SA6 A7-B1 A EQ CCWX RETURN CER SPACE 4 ** CER - CHECK ERROR RESPONSE. * * ENTRY NONE. * * EXIT (X6) = ERROR RESPONSE FROM PFM ON FILE *S*. CER SUBR ENTRY/EXIT SA1 S MX0 -8 LX1 -10 BX6 -X0*X1 SET ERROR RESPONSE EQ CERX RETURN COF SPACE 4 ** COF - COMPLETE ONE FILE. * * ENTRY NONE. * * EXIT 77 TABLE WRITTEN ON OUTPUT FILE. * (NF) DECREMENTED. * (FD) INCREMENTED. COF SUBR ENTRY/EXIT RJ SOL SA1 P SA2 PG SA3 PFCB+FCFN GET FILE NAME/USER INDEX BX1 X1+X2 LX5 X3 ZR X1,COF1 IF NOT TO BE SAVED ADDWRD TDFN,X5 COF1 SA1 NF SA2 FD SX6 X1-1 SA3 SL SX7 X2+B1 SA6 A1 SA7 A2 NZ X3,COF2 IF SYSTEM LIST BX1 X7 RJ CDD CONVERT FILE NUMBER EQ COF3 COF2 SA1 CV FETCH CURRENT VSN MX6 0 TERMINATE LIST AFTER DATES BX7 X1 SA6 T77CT LX7 -12 SA7 BUF WRITEW L,A7,1 SA1 UI CONVERT USER INDEX RJ COD COF3 LX6 12 SX7 1R.*100B-1R *100B IX6 X6+X7 SA6 BUF WRITEW L,A6,1 WRITE FILE NUMBER SA1 T77CT MOVE TIMES OVER ZERO WORD SA2 A1+B1 BX6 X1 LX7 X2 SA1 A2+B1 SA6 T77ZW SA7 A6+B1 BX6 X1 MX7 0 TERMINATE PRINT LINE SA6 A7+B1 SA7 A6+B1 SA1 T77NM SPACE FILL FILE NAME RJ SFN SA1 TX SA6 T77NM MX7 0 NZ X1,COF4 IF NOT TELEX OUTPUT FILE SA7 T77CD COF4 WRITEC L,A6 EQ COFX RETURN CFW SPACE 4 ** CFW - CHECK FILE WANTED. * * CFW EXAMINES THE PERMANENT FILE CATALOG ENTRY IN (PFCB) TO * DETERMINE IF THE FILE IS TO BE LOADED OR DUMPED. * * ENTRY (PFCB - PFCB+NWCE-1) = CATALOG ENTRY. * * EXIT (X1) < 0 IF ENTRY NOT WANTED. CFW13 SA4 ENRB ENRB = COUNTER FOR NUMBER OF SX6 X4+B1 PROTECTED FILES SKIPPED SA6 A4 CFW12 SX1 -1 SET NOT WANTED RESPONSE CFW SUBR ENTRY/EXIT SA1 JO TEST JOB ORIGIN SA3 DF CHECK DUMP/LOAD SA2 PFCB+FCFP FETCH PROTECTED BIT ZR X1,CFW0 IF SYSTEM ORIGIN LX2 59-0 NZ X3,CFW0 IF NOT DUMP NG X2,CFW13 IF (DUMP AND) PROTECTED FILE CFW0 SA1 LO SA2 PFCB+FCBS NZ X1,CFW9 IF LOCAL FILE LOAD/DUMP ZR X2,CFW12 IF LOCAL FILE CFW1 SA1 FT CHECK FILE TYPE ZR X1,CFW2 IF FILE TYPE NOT SPECIFIED LX1 59 LX2 59-11 BX1 X1-X2 NG X1,CFW12 IF NOT CORRECT TYPE CFW2 SA1 CT CHECK CATALOG TYPE SA2 PFCB+FCCT ZR X1,CFW4 IF CATALOG TYPE NOT SPECIFIED LX1 54 BX1 X1-X2 AX1 54 NZ X1,CFW12 IF NOT CORRECT CATALOG TYPE CFW4 SA1 UI SA2 PFCB+FCUI ZR X1,CFW5 IF NO USER INDEX SELECTED BX1 X1-X2 SX1 X1 NZ X1,CFW12 IF USER INDICES DO NOT MATCH * CHECK DATES WITHIN LIMITS. CFW5 SA1 TDAT SA2 PFCB+FCCD CREATION DATE AND TIME SA3 A1+B1 MX0 24 BX2 -X0*X2 IX4 X1-X2 < 0 IF AFTER CREATION AFTER DATE SA1 A3+B1 IX6 X2-X3 < 0 IF BEFORE CREATION BEFORE DATE SA2 A2+B1 LAST MODIFICATION DATE BX4 X6*X4 SA3 A1+B1 BX2 -X0*X2 IX6 X1-X2 < 0 IF AFTER MODIFICATION AFTER DATE SA1 A3+B1 IX7 X2-X3 < 0 IF BEFORE MODIFICATION BEFORE DATE BX4 X6*X4 SA2 A2+B1 LAST ACCESS DATE BX4 X7*X4 SA3 A1+B1 BX2 -X0*X2 IX6 X1-X2 < 0 IF AFTER LAST ACCESS AFTER DATE IX7 X2-X3 < 0 IF BEFORE LAST ACCESS BEFORE DATE BX4 X4*X6 BX4 X4*X7 PL X4,CFW12 IF DATE NOT WITHIN LIMITS CFW6 SA1 SF SA2 PFCB+FCFN SA3 SU ZR X1,CFWX IF NO INPUT FILE DIRECTIVES MX0 42 ZR X3,CFW7 IF NOT ALTERNATE INDEX MX0 60 CFW7 SEARCH TIFN,X2,X0 SA3 SF SX1 0 SA4 F.TIFN NG X3,CFW8 IF *IGNORE SA5 L.TIFN ZR X2,CFW12 IF NOT FOUND IX3 X4+X5 SX6 X5-1 SA3 X3-1 STORE LAST ENTRY OVER FOUND ENTRY SA6 A5 BX7 X3 SA7 A2 EQ CFWX CFW8 ZR X2,CFWX IF NOT FOUND EQ CFW12 CFW9 SA3 DF SX1 0 SA4 LT ZR X3,CFWX IF LOCAL FILE DUMP PL X4,CFW10 IF NOT LOCAL FILES ONLY * PROCESS LOCAL FILES ONLY. ZR X2,CFW6 IF LOCAL FILE EQ CFW12 CFW10 ZR X4,CFW11 IF PERMANENT FILES ONLY * PROCESS LOCAL OR PERMANENT FILES. ZR X2,CFW6 IF LOCAL FILE EQ CFW1 PROCESS PERMANENT FILE * PROCESS PERMANENT FILES ONLY. CFW11 NZ X2,CFW1 IF PERMANENT FILE EQ CFW12 CPR SPACE 4 ** CPR - CHECK FOR *S* A RESERVE FILE NAME. * * ENTRY NONE. * * EXIT (X6) " 0 IF NOT RESERVED FILE NAME. * (X6) = 0 IF RESERVED FILE NAME AND NO ABORT SELECTED. * JOB ABORTED IF RESERVED FILE NAME AND NO ABORT NOT * SELECTED. CPR SUBR ENTRY/EXIT SA1 S SA2 I SA3 L SA4 B SA5 P BX2 X1-X2 BX3 X1-X3 BX4 X1-X4 BX5 X1-X5 AX2 18 AX3 18 AX4 18 AX5 18 CX2 X2 SET DIFFERENCES = SMALL INTEGERS MX7 42 CX3 X3 BX1 X7*X1 CX4 X4 IX6 X2*X3 CX5 X5 IX6 X5*X6 IX6 X4*X6 NZ X6,CPRX IF NO RESERVED NAME RJ SFN LX6 -6 SA6 =C* XXXXXXX IS A RESERVED FILE NAME.* SA0 A6 RJ EXR SX6 0 SET ERROR RESPONSE EQ CPRX SPT SPACE 4 ** SPT - SET PREFIX TABLE. * * SPT SETS 74 TABLE INFORMATION IN THE 77 TABLE. SPT SUBR ENTRY/EXIT SA1 PFCB+FCFN SET FILE NAME MX0 42 BX6 X0*X1 SA6 T77NM SA1 T74DD GET DUMP DATE BX1 -X0*X1 ETIME X1 SET DUMP TIME SA6 T77TM SA1 T74DD LX1 -18 BX1 -X0*X1 EDATE X1 SET DUMP TIME SA6 T77DT SA2 SL CHECK FOR SYSTEM LIST SA1 PFCB+FCUI SET USER INDEX NZ X2,SPT0 IF SHORT SYSTEM LIST SX1 X1 RJ COD EQ SPT0.1 SPT0 SA1 MI SET MACHINE ID SA2 =8L MI= BX6 X1+X2 SPT0.1 LX6 12 SA6 T77UI SA1 PFCB+FCBS GET FILE ACCESS TYPE SA2 PFCB+FCCT GET FILE CATALOG TYPE MX7 0 SX3 B1 SA7 T77ZW SET ZERO WORD = 0 ZR X1,SPT1 IF LOCAL FILE LX1 -11 AX2 54 BX1 X3*X1 SA1 X1+TFAT SET ACCESS TYPE SA2 X2+TFCT SET CATALOG TYPE BX6 X1+X2 SA6 T77TP SA1 T74PN SET PACK NAME MX2 42 BX1 X2*X1 RJ SFN SA6 T77PN SA1 PFCB+FCCD GET CREATION DATE BX1 -X0*X1 ETIME X1 SET CREATION TIME SA6 T77CT SA1 PFCB+FCCD LX1 -18 BX1 -X0*X1 EDATE X1 SET CREATION DATE SA6 T77CD SA1 PFCB+FCMD GET MODIFICATION DATE BX1 -X0*X1 ETIME X1 SET LAST MODIFICATION TIME SA6 T77MT SA1 PFCB+FCMD LX1 -18 BX1 -X0*X1 EDATE X1 SET LAST MODIFICATION DATE SA6 T77MD SA1 PFCB+FCAD GET LAST ACCESS DATE BX1 -X0*X1 ETIME X1 SET LAST ACCESS TIME SA6 T77AT SA1 PFCB+FCAD LX1 -18 BX1 -X0*X1 EDATE X1 SET LAST ACCESS DATE SA6 T77AD EQ SPTX RETURN SPT1 SA1 =10H LOCAL MX7 0 BX6 X1 SA7 T77PN SA6 T77TP EQ SPTX RETURN CDF SPACE 4 ** CDF - COPY OLD DUMP FILE * * CDF COPIES RECORDS FROM FILE *S* TO FILE *D*. ALL RECORDS * ARE COPIED THAT ARE NOT DUMP RECORDS (TYPE 11) AS WELL * AS ALL DUMP RECORDS THAT WERE NOT DUMPED DURING THIS * DUMPPF. THIS ALLOWS UPDATING OF AN OLD DUMP FILE FROM A * PREVIOUS DUMP. RECORDS ARE COPIED UNTIL AN EOI. CDF SUBR SA1 FD SA2 SL BX1 X1+X2 NZ X1,CDF1 SOME LOADED/DUMPED/SHORT LISTING RJ SOL WRITEC L,(=C/ *** NONE. ***/) CDF1 SA1 B SA2 P ZR X1,CDFX IF B=0 ZR X2,CDFX IF P=0 SX6 =C* * SX7 HD5 SA6 SOLA SA7 SOLB SX6 LINP SX7 =C* RECORDS COPIED.* SA6 LC SET TO NEW PAGE RJ WOH SX6 0 SA6 DRN+1 CLEAR INDEX RECALL B CDF2 WRITE B,* SA0 B1 SET FIRST READ READ P CDF3 READW P,BUF,BUFL SB2 A0+ NZ B2,CDF11 IF FIRST READ CDF4 NZ X1,CDF6 IF EOR/EOF/EOI CDF5 WRITEW B,BUF,BUFL EQ CDF3 CONTINUE CDF6 SB7 X1-BUF NG X1,CDF7 IF EOF/EOI WRITEW B,BUF,B7 WRITER B,R SX6 1 SET DATA WRITTEN SA6 DW EQ CDF2 CDF7 NG B7,CDF8 IF EOF/EOI SX6 1 SET DATA WRITTEN SA6 DW WRITER B,R EQ CDF2 CDF8 SB7 X1+B1 NG B7,CDF9 IF EOI SX6 -1 SET EOF WRITTEN SA6 DW WRITEF B,R SA1 CF UPDATE FILE COPY COUNT MX6 59 IX6 X1+X6 SA6 A1 NZ X6,CDF2 IF ALL FILES NOT COPIED * EQ CDF9 CDF9 RJ SOL SA1 RC SA0 =C/ *** NONE. ***/ ZR X1,CDF10 IF NO RECORDS COPIED SA0 =C/ *** COPY COMPLETE. ***/ CDF10 WRITEC L,A0 EQ CDFX RETURN CDF11 NG X1,CDF8 IF EOF/EOI SA4 RN SX2 BUF SET FWA OF BUFFER SA0 B0 SET PAST FIRST READ SX7 X4+B1 BX6 X1 SX1 B6 SET END OF TABLE SA7 A4 INCREMENT RECORD NUMBER SA6 T0 SAVE CIO STATUS RJ SRT SET RECORD TYPE SA6 T77+3 SAVE TYPE SX5 X6-11 BX1 X7 RJ SFN SA6 T77+2 SAVE NAME SA6 DRN NZ X5,CDF13 IF NOT DUMP RECORD SA2 BUF+PFCB-T77 GET FILE NAME/USER INDEX CDF12 SA3 CDFM SET COPY FILE MASK BX0 X3 SEARCH TDFN,X2,MASKED SA0 B0 NZ X2,CDF16 IF FILE DUMPED CDF13 RJ SOL SA2 RC SA1 RN SX7 X2+B1 SA7 A2 INCREMENT FILES COPIED RJ CDD SX2 2R &2R. SA1 =8H COPYING LX6 12 BX7 X1 SA3 T77+3 GET TYPE BX6 X6-X2 SA7 DRT SET *COPYING* SA6 T77+1 SET NUMBER NZ X3,CDF14 IF NOT ZERO LENGTH RECORD SA1 =C*(00)* BX6 X1 SA6 A6+B1 SET NAME EQ CDF15 CDF14 SA2 X3+TRTH SA1 BUF BX6 X2 SA6 A3 RJ CPT COPY PREFIX TABLE SA1 TX SX7 0 NZ X1,CDF15 IF NOT TELEX OUTPUT FILE SA7 T77+1+7 CDF15 WRITEC L,T77+1 MESSAGE DRT,1,R SA1 T0 GET CIO STATUS EQ CDF4 FINISH COPYING CDF16 SA2 =10H SKIPPING BX6 X2 SA6 DRT MESSAGE A6,1,R SA1 T0 CDF17 NZ X1,CDF2 IF EOR READW P,BUF,BUFL EQ CDF17 CDFM VFD 42/-0,18/377777B FILE NAME + INDEX MASK TITLE SUBROUTINES. SOL SPACE 4 ** SOL - SETUP ONE LINE. * * PREPARE TO PRINT ONE LINE. SOL1 SA6 LC SET LINE COUNT SOL SUBR ENTRY/EXIT SA1 TX SA2 SL SA4 LC ZR X1,SOLX IF TELEX OUTPUT FILE NZ X2,SOLX IF SYSTEM SHORT LIST SELECTED SX3 X4-LINP SX6 X4+1 NG X3,SOL1 IF NOT AT PAGE BOTTOM SA1 PC SX1 X1+1 BX6 X1 SA6 A1 RJ CDD CONVERT PAGE NUMBER SX7 1R.-1R LX6 6 IX6 X6+X7 SA6 HPN WRITEW L,HD1,HD1L WRITE HEADER 1 SA4 SOLA WRITE 2ND HEADER WRITEC L,X4 SA4 SOLB WRITE 3RD HEADER WRITEC L,X4 WRITEW L,(=C* *),1 SX6 5 EQ SOL1 SOLA CON HD2 2ND HEADER ADDRESS SOLB CON =C* * 3RD HEADER ADDRESS TOV SPACE 4 ** TOV - PROCESS TABLE OVERFLOW * * TOV PROCESSES MANAGED TABLE OVERFLOWS AND WILL INCREASE * THE FIELD LENGTH BY 100B WORDS. IF THE INCREASE CAUSES * AN ABORT THEN THE MESSAGE *MEMORY OVERFLOW* WILL BE GIVEN * AND DUMPPF WILL ABORT. * * NOTE% THIS ROUTINE IS ENTERED BY A *JP*. TOV EREXIT TOV1 GET 100B WORDS MORE OF CM SA1 F.TEND SX7 X1+100B SA7 A1 MEMORY CM,,R,X7 EREXIT JP B6 RETURN TO TABLE MANAGER TOV1 SA0 =C* MEMORY OVERFLOW.* EQ UAB WOH SPACE 4 ** WOH - WRITE OUTPUT HEADER. * * WOH WRITES A HEADER LINE ON THE OUTPUT FILE. * * ENTRY (X7) = HEADER LINE ADDRESS. * * EXIT NONE. WOH SUBR ENTRY/EXIT SA4 SL SA3 TX SA1 LC SA7 T0 SAVE HEADER ADDRESS NZ X4,WOHX IF SYSTEM SHORT LIST SELECTED SX2 X1-LINP+5 ZR X3,WOH2 IF TELEX OUTPUT FILE NG X2,WOH1 IF ROOM FOR HEADER AND 2 LINES SX6 LINP FORCE NEW PAGE SA6 LC EQ WOH2 WOH1 RJ SOL WRITEW L,(=C* *),1 WRITE BLANK LINE WOH2 RJ SOL SA4 T0 WRITEC L,X4 WRITE HEADER RJ SOL WRITEW L,(=C* *),1 WRITE BLANK LINE EQ WOHX RETURN ENM SPACE 4 ** ENM - END OF JOB MESSAGES. ENM SUBR SA1 IF CHECK IF IN INITIALIZATION ZR X1,ENM6 IF IN INITIALIZATION ENM1 SA2 SF SA1 L.TIFN NG X2,ENM5 IF NO FILES *SELECTED ZR X2,ENM5 IF NO FILES *SELECTED ZR X1,ENM5 IF NO *SELECTED FILES LEFT RJ CDD SA6 =C* 0 SELECTED FILES NOT FOUND.* MESSAGE A6,3,R SA2 SL SX7 =C/ THE FOLLOWING *SELECTED FILES WERE NOT FOUND./ NZ X2,ENM5 IF SHORT LISTING RJ WOH WRITE HEADER SA1 L.TIFN SA2 F.TIFN BX0 X1 SA5 X2 EQ ENM3 ENM2 ZR X0,ENM4 IF DONE SA1 A5 MX7 42 SX0 X0-1 BX1 X7*X1 SA5 A5+B1 RJ SFN SA6 BUF WRITEW L,A6,1 SA1 T0 SX6 X1-1 SA6 T0 NZ X6,ENM2 IF LINE NOT FULL WRITEW L,(=C* *),1 TERMINATE PRINT LINE ENM3 RJ SOL BEGIN NEXT PRINT LINE SX7 7 SA1 TX SA7 T0 SET FILES PER LINE ZR X1,ENM2 IF TELEX OUTPUT FILE WRITEW L,(=1H ),1 SX6 10 SA6 T0 EQ ENM2 ENM4 WRITEW L,(=C* *),1 TERMINATE LAST PRINT LINE ENM5 SA1 FP SET FILES PROCESSED RJ CDD SA6 ENMA SA1 FD SET FILES LOADED/DUMPED RJ CDD SA6 ENMB MESSAGE ENMA,3,R SA1 P ZR X1,ENM6 IF P=0 SA1 RC GET RECORDS COPIED RJ CDD SA6 ENMC MESSAGE A6,3,R ENM6 WRITER L,R EQ ENMX RETURN ENMA DATA 20H 0 SCANNED - ENMB DIS ,* 0 DUMPED.* ENMC DATA C* 0 RECORDS COPIED.* ERR SPACE 4 ** ERR - PROCESS INPUT DIRECTIVE ERROR. * * ENTRY (A0) = ERROR MESSAGE ADDRESS. * * EXIT NONE. ERR SUBR ENTRY/EXIT SX6 A0 SAVE LAST ERROR MESSAGE ADDRESS SA6 LE RJ SOL SETUP OUTPUT LINE SA3 ERRA SET ERROR IDENTIFIER WRITEW L,X3,2 WRITEC L,A0 WRITE ERROR MESSAGE SA1 EC INCREMENT ERROR COUNT SA2 EL GET ERROR LIMIT SX6 X1+B1 SA6 A1 IX2 X6-X2 NG X2,ERRX IF ERROR LIMIT NOT REACHED SA0 =C* DIRECTIVE ERROR LIMIT REACHED.* EQ UAB ERRA CON =H/ *** ERROR ***/ EXR SPACE 4 ** EXR - EXECUTION TIME ERROR. * * ENTRY (A0) = ERROR MESSAGE ADDRESS. * * EXIT TO ABT IF *NA* NOT SELECTED. EXR SUBR ENTRY/EXIT RJ ERR SA1 NA NZ X1,EXRX IF *NA* SELECTED SA1 L SA2 =0LOUTPUT BX1 X1-X2 AX1 18 ZR X1,ABT IF ERRORS WRITTEN ON *OUTPUT* MESSAGE A0,3,R * EQ ABT ABT SPACE 4 ** ABT - ABORT JOB. ABT RJ ENM COMPLETE OUTPUT MESSAGE ABTA,,R ABORT ABTA DIS ,* DUMPPF ABORTED.* ENR SPACE 4 ** ENR - ENDRUN. ENR RJ ENM COMPLETE OUTPUT RECALL S SA1 PG SA2 F.TDFN ZR X1,ENR3 IF NO PURGE AFTER DUMP SX6 PFME SA3 L.TDFN PURGE ALL DUMPED FILES SA5 X2-1 SET FWA-1 OF TABLE SA4 SU SA6 S+CFPW SET ERROR ADDRESS SA1 =8H PURGING MX7 0 BX6 X1 SA7 DRN+1 SB5 X3 SET TABLE LENGTH MX0 -1 SA7 S+CFPN SA6 DRT SET *PURGING* ZR X4,ENR1 IF NO *SUI SX0 0 ENR1 ZR B5,ENR3 IF DONE SA5 A5+B1 GET NEXT DUMP ENTRY MX7 42 NG X0,ENR2 IF NO *SUI BX1 -X7*X5 BX2 X0-X1 ZR X2,ENR2 IF SAME USER INDEX LX0 X1 CHANGE USER INDEX RJ COD LX6 24 MX7 42 SA6 DRN+1 SET INDEX IN MESSAGE SETUI X0 ENR2 SX6 1 BX1 X7*X5 SB5 B5-B1 DECREMENT LENGTH BX6 X1+X6 SA6 S RJ SFN SA6 DRN SET FILE NAME IN MESSAGE MESSAGE DRT,1,R PURGE S EQ ENR1 ENR3 SA1 ENRB ZR X1,ENR4 IF NO PROTECTED FILES RJ CDD SA6 A1 SET NUMBER OF PROTECTED FILES IN MESSAGE MESSAGE ENRB ENR4 MESSAGE ENRA ENDRUN ENRA DIS ,* DUMPPF COMPLETE.* ENRB DATA 0 COUNTER FOR NUMBER OF PROTECTED FILES ENRC DATA C* PROTECTED FILES SKIPPED.* SYE SPACE 4 ** SYE - SYSTEM ERROR. SYE SA0 =C* DUMPPF/LOADPF SYSTEM ERROR.* * EQ UAB UAB SPACE 4 ** UAB - UNCONDITIONAL ABORT. * * ENTRY (A0) = ERROR MESSAGE ADDRESS. UAB MESSAGE A0,3,R EQ ABT COMMON SPACE 4 * COMMON DECK CALLS. WRIF$ EQU 0 SELECT RE-ISSUE OF CURRENT WRITE FUNCTION *CALL COMCCCE *CALL COMCCDD *CALL COMCCIO *CALL COMCCOD *CALL COMCCPM *CALL COMCCPT *CALL COMCEDT *CALL COMCLFM *CALL COMCMTP *CALL COMCMVE *CALL COMCPFM *CALL COMCRDW *CALL COMCSFN *CALL COMCSRT *CALL COMCSYS *CALL COMCWTC *CALL COMCWTW TITLE DATA AREAS. DATA SPACE 4 ** WORKING STORAGE. T0 CON 0 TEMPORARY TX CON 1 0 IF TELEX OUTPUT FILE JO CON 0 JOB ORIGIN CODE DF CON 0 0 FOR DUMP - 1 FOR LOAD TF CON 0LDUMP 0=PFU TAPE, <>0 IF DUMPPF/LOADPF TAPE LO CON 0 0 FOR PERMANENT FILES - 1 FOR LOCAL FILES LT CON 1 LOCAL LOAD TYPE < 0 IF LOCAL ONLY = 0 IF PERMANENT ONLY > 0 IF BOTH IF CON 0 1 IF PAST INITIALIZATION NA CON 0 1 IF NO ABORT *NA* FLAG RC CON 0 NUMBER OF RECORDS COPIED RN CON 0 RECORD NUMBER FP CON 0 NUMBER OF FILES PROCESSED FD CON 0 NUMBER OF FILES DUMPED CF CON 0 NUMBER OF FILES TO COPY DW CON 0 0 IF NO DATA WRITTEN ON *B* FILE 1 IF LAST OPERATION DATA WRITE ON FILE -1 IF LAST OPERATION EOF WRITE NF CON -1 NUMBER OF FILES TO DUMP/LOAD LC CON LINP LINE COUNT PC CON 0 PAGE COUNT SL CON 0 1 IF SHORT SYSTEM LIST SELECTED CV CON 6HPA**** CURRENT VSN FOR SYSTEM LIST EC CON 0 ERROR COUNT EL CON 0L64 ERROR LIMIT FT CON 0 SELECTED FILE TYPE CT CON 0 SELECTED FILE CATALOG TYPE SF CON 0 > IF SELECT FILES - < 0 IF IGNORE FILES LE CON 0 LAST ERROR DR CON 0 1 IF USE DUMPED RESIDENCE ON LOAD NE CON 0 1 IF NO EOF TO BE WRITTEN ON DUMP FILE PF CON 1 1 IF PURGE FILES BEFORE LOAD PG CON 0 1 IF PURGE FILES AFTER DUMP NR CON 0 1 IF NO REWIND DUMP FILE PN CON 0 PACKNAME AND UNIT NUMBER RS CON 0 RESIDENCE TD CON 0 TODAYS PACKED DATE AND TIME SU CON 0 *SUI FLAG UI CON 0 USER INDEX MI CON 0 MACHINE ID TDAT CON 0 AFTER DATE - CREATE TDAT1 CON 777777777777B BEFORE DATE - CREATE TDAT2 CON 0 AFTER DATE - MODIFY TDAT3 CON 777777777777B BEFORE DATE - MODIFY TDAT4 CON 0 AFTER DATE - ACCESS TDAT5 CON 777777777777B BEFORE DATE - ACCESS TFAT CON 4LIND/ FILE ACCESS TYPE TABLE CON 4LDIR/ TFCT CON 6RPRIV CATALOG TYPE TABLE CON 6RSPRIV CON 6RPUB CON 6RULT TID CON 10H"T74ID" TABLE ID TABLE CON 10H"T74ID8" CON 10H"T74ID16" CON 0 TFSC CON 2LU/ FILE SECURITY TABLE CON 2LS/ DRT CON 10HDUMPING DRN DATA H*FILENAME* DATA 0 USER INDEX DATA 0 * FILE HEADER INFORMATION. T77L EQU 16B 77 TABLE LENGTH T77 VFD 12/7700B,12/T77L,36/0 77 TABLE HEADER T77NM CON 1H PERMANENT FILE NAME T77DT CON 0HDATE DUMP DATE T77TM CON 0HTIME DUMP TIME T77UI CON 0 USER INDEX T77TP CON 0 ACCESS TYPE AND CATALOG TYPE T77PN CON 0 PACK NAME T77CD CON 0 CREATION DATE T77MD CON 0 LAST MODIFICATION DATE T77AD CON 0 LAST ACCESS DATE T77ZW CON 0 ZERO WORD T77CT CON 0 CREATION TIME T77MT CON 0 LAST MODIFICATION TIME T77AT CON 0 LAST ACCESS TIME BSSZ T77+T77L+1-* T74 VFD 12/7400B,12/T74L,12/T74V,24/0 T74PN CON 0 PACKNAME T74RS CON 0 RESIDENCE T74DD CON 0 PACKED DUMP DATE AND TIME IFEQ NWCE,20B,2 T74ID CON 10H"T74ID16" ELSE 1 T74ID CON 10H"T74ID8" CON 0 SPARE CON 0 SPARE CON 0 SPARE CON 0 SPARE T74CE BSS 0 CATALOG ENTRY PFCB BSSZ NWCE CATALOG ENTRY T74L EQU *-T74-1 74 TABLE LENGTH T74MX MAX T74L,/PFC8/T74L,/PFC16/T74L MAX TABLE LENGTH HDBL EQU *-T77 HEADER BLOCK LENGTH ERRNG T74L-T74MX PFC TABLE LENGTH ERROR. PFMM DATA 20H ERROR IN FILE PFMA DATA 10H PFME BSSZ 4 HD1 DATA 20H1DUMPPF DATA H*UNIVERSITY OF MINNESOTA PERMANENT FILE UTILITY * DATA H* VER 2.0* HDT DATA 10HDATE HTM DATA 10HTIME DATA 10H PAGE HPN DIS ,* 0.* HD1L EQU *-HD1 HD2 EQU CCDR-1 HEADER 2 IS CONTROL CARD HD2L EQU 101B-CCDR+1 HD3 DATA 10H DATA 4HFILE DATA 7ADUMP DATA 7ADUMP DATA 7AUSER DATA 7ATYPE DATA 7APACK DATA 10H CREATION DATA 20HLAST MOD LAST ACCESS DATA 10H CREATION DATA 20HLAST MOD LAST ACCESS DATA 0 HD4 DATA 10H DATA 4HNAME DATA 7ADATE DATA 7ATIME DATA 7AINDEX DATA 10H DATA 7ANAME DATA 7ADATE DATA 7ADATE DATA 7ADATE DATA 7ATIME DATA 7ATIME DATA 7ATIME DATA 0 HD5 DATA 10H REC DATA 10HNAME DATA 10HTYPE DATA 10H DATE DATA 10H COMMENTS DATA 0 TRTH DATA 10HTEXT DATA 10HPP DATA 10HCOS DATA 10HREL DATA 10HOVL DATA 10HULIB DATA 10HOPL DATA 10HOPLC DATA 10HOPLD DATA 10HABS DATA 10HPPU DATA 10HDUMP DATA 10HUSER DATA 10H DATA 10HCAP DATA 10H DATA 10HPROC TITLE INITIALIZATION DATA AREA. PRESET SPACE 4 USE PRESET CBUF EQU * CATLIST FUNCTION BUFFER PBUF EQU CBUF+CBUFL PERMANENT FILE BUFFER DBUF EQU PBUF+PBUFL DUMP FILE BUFFER OBUF EQU DBUF+DBUFL OUTPUT FILE BUFFER HDW EQU OBUF+OBUFL WORKING BUFFER HEADER WORD BUF EQU HDW+1 WORKING BUFFER MEML EQU BUF+BUFL FWA OF MANAGED TABLES RFL= EQU MEML+100B RUNNING FIELD LENGTH PRESET SPACE 4 CBSL EQU 80 INPUT DIRECTIVE STRING LENGTH NC CON CB NEXT STRING CHARACTER ZF CON 0 1 IF CONTROL CARD *Z* OPTION SN CON 0 INPUT STATEMENT NUMBER TI CON 1 0 IF TELEX INPUT FILE LF CON 0 OUTPUT FILE FET WORD 0 NN CON 0 NUMBER OF FILES TO DUMP/LOAD ACT CON 0 CATALOG TYPE ARGUMENT APT CON 0 PERMANENT FILE TYPE ARGUMENT ALT CON 0 LOCAL LOAD TYPE ARGUMENT TITLE MAIN PROGRAM. LOADPF SA1 PGNR CHECK IF CALLED AS DUMPPF SA2 =0LDUMPPF BX6 X1-X2 AX6 18 ZR X6,DUMPPF IF CALLED AS FILE DUMPPF SA1 =10H1LOADPF SX6 1 SET LOAD FLAG BX7 X1 SA2 =10H LOADPF AB SA3 =C* LOADED.* SA4 =10H LOADPF CO SA6 DF SA7 HD1 BX6 X2 LX7 X3 SA6 ABTA SA7 ENMB+1 LX6 X4 SA6 ENRA DUMPPF SB1 1 (B1) = CONSTANT 1 RJ PRS PRESET PROGRAM RJ PSP PROCESS SYSTEM PARAMETERS RJ PIF PROCESS INPUT FILE RJ SOL WRITEW L,(=C* *),1 SA1 EC SX6 =H/ *************/ SET ERROR IDENTIFIER SA6 ERRA ZR X1,PRG2 IF NO INPUT ERRORS SA1 L SA2 =0LOUTPUT BX2 X1-X2 AX2 18 ZR X2,PRG1 IF ERRORS WRITTEN ON FILE *OUTPUT* SA3 LE ZR X3,PRG1 MESSAGE X3,3,R ISSUE LAST ERROR TO DAYFILE PRG1 SA1 EC RJ CDD SA6 =C* 0 INPUT ERRORS.* SA0 A6 RJ EXR MESSAGE A0,3,R PRG2 SA2 NF SA1 SF MX7 0 NZ X2,PRG3 IF FILES ACTUALLY SPECIFIED SA7 A1 CLEAR FILE SELECTION EQ PRG4 PRG3 NG X1,PRG4 IF *IGNORE NZ X1,PRG5 IF SELECTED FILE NAMES PRG4 SA3 NN MX6 -1 BX7 X3 SA6 A2 ZR X3,PRG5 IF *N=* NOT SET SA7 A6 PRG5 SX7 1 SET PAST INITIALIZATION SA7 IF LX7 48-1 SET BIG ERROR LIMIT SA7 EL SX6 HD3 SET NEW HEADERS SX7 HD4 SA6 SOLA SA7 SOLB SA3 TX SA1 LC ZR X3,PRG7 IF TELEX OUTPUT FILE SX2 X1-LINP+10 NG X2,PRG6 IF ROOM FOR 10 LINES SX6 LINP FORCE NEW PAGE SA6 LC EQ PRG7 PRG6 RJ SOL WRITE 2 BLANK LINES WRITEW L,(=C* *),1 RJ SOL WRITEW L,(=C* *),1 RJ SOL WRITEC L,HD3 RJ SOL WRITEC L,HD4 PRG7 WRITE L SA1 SL SA3 LF ZR X1,PRG8 IF SHORT LIST NOT SELECTED BX6 X3 SA6 X2 PRG8 SA1 DF SA2 LO LX1 1 IX2 X1+X2 SB2 X2 MX6 0 ZR X1,PRG9 IF DUMP SA6 P SET P=0 FOR LOAD SA6 PG CLEAR PURGE OPTION PRG9 JP B2+PRGA PRGA BSS 0 LOC 0 EQ DPF DUMP PERMANENT FILE EQ DLF DUMP LOCAL FILE EQ LPF LOAD PERMANENT FILE EQ LLF LOAD LOCAL FILE LOC *O TITLE INPUT DIRECTIVE PROCESSING. INPUT SPACE 4 *** INPUT DIRECTIVE FORMATS. * * * FOLLOWING ARE THE LEGAL DUMPPF/LOADPF INPUT DIRECTIVES. * * A DIRECTIVE CARD CONSISTS OF AN ASTERISK IN COLUMN 1 * FOLLOWED BY A LEFT JUSTIFIED DIRECTIVE NAME. ANY DIRECTIVE * PARAMETERS MAY FOLLOW THE DIRECTIVE. DIRECTIVE PARAMETERS * ARE SEPARATED FROM EACH OTHER AND FROM THE DIRECTIVE NAMES BY * 1 OR MORE SEPARATOR CHARACTERS. THE SEPARATOR CHARACTERS ARE * BLANK ( ), COMMA (,), AND SLASH (/). DIRECTIVE NAMES AND * DIRECTIVE PARAMETERS ARE LIMITED TO 7 CHARACTERS. * * WHEN A CONDITION IS SPECIFIED BOTH AS A CALL CARD * PARAMETER AND AS AN INPUT DIRECTIVE, THE INPUT DIRECTIVE * OVER-RIDES. PIF SPACE 4 ** PIF - PROCESS INPUT FILE. * * PIF READS AND INTERPRETS THE DIRECTIVES ON THE INPUT FILE. PIF7 SA1 SN CHECK IF STATEMENTS PROCESSED NZ X1,PIFX IF STATEMENTS PROCESSED RJ SOL SETUP OUTPUT LINE WRITEC L,(=C* NO DIRECTIVES.*) PIF SUBR ENTRY/EXIT SA1 I ZR X1,PIFX IF I=0 RJ SOL SETUP OUTPUT LINE WRITEC L,(=C* INPUT DIRECTIVES.*) PIF1 SX6 CB SA6 NC SET NEXT CHARACTER ADDRESS READS I,X6,CBSL READ NEXT DIRECTIVE NZ X1,PIF7 IF NO MORE INPUT SA1 SN ADVANCE AND CONVERT STATEMENT NUMBER SA2 TX CHECK FOR TELEX FILES SA3 TI SX1 X1+1 BX2 X2+X3 LX6 X1 SX7 0 SA6 A1 ZR X2,PIF2 IF TELEX INPUT AND OUTPUT FILES RJ CDD SX1 1R.-1R ADD *.* TO NUMBER LX6 6 IX6 X6+X1 SA6 T0 RJ SOL WRITEW L,T0,1 PRINT STATEMENT NUMBER WRITES L,CB,CBSL PRINT STATEMENT PIF2 RJ APW ASSEMBLE DIRECTIVE NAME SA1 CB MX0 42 LX6 6 SX1 X1-1R* NZ X1,PIF3 IF NOT ASTERISK IN COLUMN 1 LE B3,B1,PIF6 IF * ONLY CHARACTER BX2 X0*X6 SB2 TDNA RJ SNT SEARCH FOR DIRECTIVE SB2 X6 ZR X6,PIF3 IF DIRECTIVE NOT IN TABLE JP B2 EXECUTE DIRECTIVE PROCESSOR PIF3 SA0 =C*UNKNOWN DIRECTIVE.* EQ PIF5 PIF4 SA0 =C*ILLEGAL PARAMETER.* * EQ PIF5 PIF5 RJ ERR PROCESS ERROR EQ PIF1 PROCESS NEXT DIRECTIVE PIF6 SB4 B4-1R/ ZR B4,PIF1 IF */ (COMMENT) EQ PIF3 TDNA SPACE 4 ** TDNA - DIRECTIVE NAME TABLE. * * 42/ NAME, 18/ PROCESSOR ADDRESS TDNA BSS 0 CON 0LBEFORE+BEF CON 0LB+BEF CON 0LAFTER+AFT CON 0LA+AFT CON 0LSELECT+SEL CON 0LS+SEL CON 0LIGNORE+IGN CON 0LI+IGN CON 0LTY+FTD CON 0LFT+FTD CON 0LCT+CTD CON 0LLT+LTD CON 0LSUI+SUI TDNL CON 0 END OF TABLE AFTER SPACE 4 *** *AFTER,TYPE,DATE * *A,TYPE,DATE * * THE *AFTER DIRECTIVE SPECIFIES A DATE AFTER WHICH A CONDITION * MUST HAVE BEEN MET. THE VALID CONDITION TYPES ARE% * * CREATE, C - CREATION DATE. * MODIFY, MOD, M - LAST MODIFICATION DATE. * ACCESS, A - LAST ACCESS DATE. * * THE DATE MAY BE SPECIFIED IN ONE OF TWO WAYS. EITHER THE * DATE ALONE MUST BE SPECIFIED IN DECIMAL DIGITS (YYMMDD) OR * THE DATE AND TIME OF DAY ARE SPECIFIED IN DECIMAL DIGITS * (YYMMDD/HHMMSS). WHEN SEVERAL *BEFORE AND *AFTER DIRECTIVES * ARE SPECIFIED, ALL THE CONDITIONS MUST BE MET BEFORE A FILE * IS SELECTED. * * EXAMPLE% * *AFTER,MOD,740101 * CAUSES ONLY THOSE FILES LAST MODIFIED AFTER 74/01/01 * TO BE SELECTED. AFT SA0 TDAT INITIAL AFTER DATE EQ BEF1 BEFORE SPACE 4 *** *BEFORE,TYPE,DATE * *B,TYPE,DATE * * THE *BEFORE DIRECTIVE SPECIFIES A DATE BEFORE WHICH A * CONDITION MUST HAVE BEEN MET. THE CONDITION TYPES ARE THE * SAME AS THOSE FOR THE *AFTER DIRECTIVE. * * THE DATE MAY BE SPECIFIED IN ONE OF TWO WAYS. EITHER THE * DATE ALONE MUST BE SPECIFIED IN DECIMAL DIGITS (YYMMDD) OR * THE DATE AND TIME OF DAY ARE SPECIFIED IN DECIMAL DIGITS * (YYMMDD/HHMMSS). WHEN SEVERAL *BEFORE AND *AFTER DIRECTIVES * ARE SPECIFIED, ALL THE CONDITIONS MUST BE MET BEFORE A FILE * IS SELECTED. * * EXAMPLE% * *BEFORE,C,740215/133000 * CAUSES ONLY THOSE FILES CREATED BEFORE 13%30%00 ON * 74/02/15 TO BE SELECTED. BEF SA0 TDAT1 INITIAL BEFORE DATE BEF1 RJ APW ASSEMBLE DATE TYPE ZR B3,BEF2 IF NO TYPE PL B2,BEF2 IF TYPE TOO LONG BX2 X6 SB2 TDTP RJ SNT SEARCH FOR TYPE ZR X6,BEF2 IF TYPE NOT IN TABLE SB2 A0 SA0 B2+X6 SET DATE/TIME ADDRESS RJ DTP PROCESS DATE AND TIME EQ PIF1 BEF2 SA0 =C*ILLEGAL DATE TYPE.* RJ ERR PROCESS ERROR EQ PIF1 EXIT TO NEXT DIRECTIVE TDTP SPACE 4 * TDTP - TABLE OF DATE TYPES. * * ENTRY * 42/ NAME, 18/ TDAT ORDINAL TDTP MACRO NAME,TYPE CON 0L_NAME+2*FC_TYPE-2*FCCD ENDM TDTP BSS 0 TDTP CREATE,CD TDTP C,CD TDTP MODIFY,MD TDTP MOD,MD TDTP M,MD TDTP ACCESS,AD TDTP A,AD CON 0 TABLE TERMINATOR SELECT SPACE 4 *** *SELECT,FNAME1,FNAME2,.... * *S,FNAME1,FNAME2,... * * THE *SELECT DIRECTIVE SPECIFIES THAT ONLY THE SPECIFIED * FILE NAMES ARE TO BE SELECTED. THERE MAY BE SEVERAL *SELECT * DIRECTIVES, AND EACH DIRECTIVE MAY CONTAIN SEVERAL FILE * NAMES. * * IF *SELECT DIRECTIVES ARE USED, *IGNORE DIRECTIVES CANNOT BE * USED. SEL SA1 SF PL X1,SEL2 IF NO *IGNORE YET PROCESSED SA0 =C/*SELECT ILLEGAL AFTER *IGNORE./ SEL1 RJ ERR EQ PIF1 PROCESS NEXT DIRECTIVE SEL2 NZ X1,SEL3 IF NOT FIRST *SELECT MX6 0 CLEAR FILE COUNT SX7 B1 SET *SELECT FLAG SA6 NF SA7 A1 SEL3 RJ APW ASSEMBLE NEXT FILE NAME ZR B3,PIF1 IF ALL PROCESSED SA0 =C*FILE NAME TOO LONG.* PL B2,SEL1 IF FILE NAME TOO LONG SA1 SUIA GET CURRENT INDEX BX6 X1+X6 SEARCH TIFN,X6 NZ X2,SEL3 IF FOUND ADDWRD TIFN,X6 SA1 NF INCREMENT FILES PROCESSED SX7 X1+B1 SA7 A1 EQ SEL3 IGNORE SPACE 4 *** *IGNORE,FNAME1,FNAME2,... * *I,FNAME1,FNAME2,... * * THE *IGNORE DIRECTIVE SPECIFIES THAT THE SPECIFIED FILE NAMES * ARE NOT TO BE SELECTED. THERE MAY BE SEVERAL *IGNORE * DIRECTIVES, AND EACH DIRECTIVE MAY CONTAIN SEVERAL FILE * NAMES. * * IF *IGNORE DIRECTIVES ARE USED, *SELECT DIRECTIVES CANNOT * BE USED. IGN SA1 SF NG X1,SEL3 IF NOT FIRST *IGNORE SA0 =C/*IGNORE ILLEGAL AFTER *SELECT./ NZ X1,SEL1 IF *SELECT ALREADY PROCESSED MX6 59 SET *IGNORE FLAG SX7 B0 CLEAR FILE COUNT SA6 A1 SA7 NF EQ SEL3 SUI SPACE 4 ** *SUI,UI1,UI2,... * * THE *SUI DIRECTIVE SPECIFIES THAT SEVERAL USER INDICES ARE * TO BE DUMPED. THE DUMPPF WILL BE DONE FOR EACH USER * INDEX. *SUI IS LEGAL ONLY FOR DUMPPF FROM SYSTEM ORIGIN * JOBS. IF SUBSEQUENT *SELECT OR *IGNORE DIRECTIVES ARE USED, * THE CURRENT USER INDEX FROM THE LAST *SUI DIRECTIVE WILL * SPECIFY THE INDEX FROM WHICH SELECTIONS WILL BE MADE. SUI SA1 JO NZ X1,PIF3 IF NOT SYSTEM ORIGIN JOB SX6 1 SA6 SU SUI1 RJ APW ASSEMBLE USER INDEX ZR B3,PIF1 IF END OF PARAMETERS PL B2,SUI2 IF PARAMETER TOO LONG BX5 X6 CONVERT USER INDEX TO BINARY SB7 B0 RJ DXB MX7 43 NZ X4,SUI2 IF USER INDEX ERROR BX7 X7*X6 ZR X6,SUI2 IF ILLEGAL USER INDEX NZ X7,SUI2 IF USER INDEX TOO LARGE SA6 SUIA ADDWRD TSUI,X6 EQ SUI1 SUI2 SA0 =C/ILLEGAL USER INDEX./ EQ SEL1 SUIA DATA 0 CURRENT *SUI INDEX FTD SPACE 4 *** *TY,TYPE * *FT,TYPE * * THE *TY DIRECTIVE SPECIFIES THE PERMANENT FILE TYPES TO BE * SELECTED. THE VALID TYPES ARE% * * DIRECT, DI, D - DIRECT ACCESS FILES. * INDIR, IN, I - INDIRECT ACCESS FILES. * ALL, A - DIRECT AND INDIRECT ACCESS FILES. FTD RJ APW ASSEMBLE FILE TYPE ZR B3,PIF4 IF NO FILE TYPE PL B2,PIF4 IF ILLEGAL TYPE BX2 X6 RJ SFT SET FILE TYPE ZR X6,PIF5 IF ERROR EQ PIF1 CTD SPACE 4 *** *CT,TYPE * * THE *CT DIRECTIVE SPECIFIES THE PERMANENT FILE CATALOG * TYPE TO BE SELECTED. THE VALID TYPES ARE% * * PRIVATE, PRIV, PR - PRIVATE FILES. * SPRIV, SP, S - SEMI-PRIVATE FILES. * PUBLIC, PUB, PU - PUBLIC FILES. * ALL, A - PRIVATE, SEMI-PRIVATE, AND * PUBLIC FILES. CTD RJ APW ASSEMBLE CATALOG TYPE ZR B3,PIF4 IF NO CATALOG TYPE PL B2,PIF4 IF ILLEGAL CATALOG TYPE BX2 X6 RJ SCT SET CATALOG TYPE ZR X6,PIF5 IF ERROR EQ PIF1 LTD SPACE 4 *** *LT,TYPE * * THE *LT DIRECTIVE SPECIFIES WHICH TYPE OF DUMPED FILES ARE * TO BE LOADED. THIS DIRECTIVE APPLIES ONLY WHEN LOADPF HAS * BEEN CALLED TO LOAD LOCAL FILES. THE VALID TYPES ARE% * * LOCAL, LO, L - LOAD ONLY FILES DUMPED AS LOCAL. * PERM, PM, P - LOAD ONLY FILES DUMPED AS * PERMANENT. * ALL, A - LOAD EITHER TYPE OF FILE. LTD RJ APW ASSEMBLE LOAD TYPE ZR B3,PIF4 IF NO FILE TYPE PL B2,PIF4 IF ILLEGAL TYPE BX2 X6 RJ SLT SET LOAD TYPE ZR X6,PIF5 IF ERROR EQ PIF1 TITLE INITIALIZATION SUBROUTINES. APW SPACE 4 ** APW - ASSEMBLE PARAMETER WORD. * * ENTRY (NC) = NEXT CHARACTER ADDRESS. * * EXIT (X6) = PARAMETER. * (B2) \ 0 IF MORE THAN 8 CHARACTERS * (B3) = CHARACTER COUNT. * (B4) = SEPARATOR CHARACTER. APW2 SX7 A2 SAVE CHARACTER ADDRESS SB2 B3-8 SA7 A1 APW SUBR ENTRY/EXIT SA1 NC MX6 0 INITIALIZE ASSEMBLY SB2 54 NEXT CHARACTER SHIFT SA2 X1 MX4 1 SET SKIPPING TO NON-DELIMETER BIT SB3 B0 SA5 APWA SET DELIMETER MASK APW1 SB4 X2 LX7 X2,B2 LX3 X5,B4 ZR X7,APW2 IF END OF BUFFER BX0 X3*X4 SA2 A2+B1 NG X0,APW1 IF STILL SKIPPING TO NON DELIMETER NG X3,APW2 IF TERMINATING DELIMETER FOUND SB3 B3+B1 ADVANCE CHARACTER BX6 X6+X7 MX4 0 SB2 B2-6 EQ APW1 APWA BSS 0 POS 60-1R/ VFD 1/1 POS 60-1R VFD 1/1 POS 60-1R, VFD 1/1 POS 60-1R. VFD 1/1 POS 0 CDT SPACE 4 ** CDT - CONVERT DATE. * * CDT CONVERTS A DISPLAY CODE DATE (YYMMDD) INTO A PACKED DATE. * * ENTRY (X1) = DISPLAY CODE DATE. * * EXIT (X6) = PACKED DATE. * (X6) < 0 IF ERROR. CDT SUBR ENTRY/EXIT MX5 30 BX7 X1 MX4 36 SA7 CDTA SAVE DISPLAY CODE BX5 -X5*X1 BX4 -X4*X1 ZR X5,CDT1 IF NO 6TH CHARACTER NZ X4,CDT1 IF MORE THAN 6 CHARACTERS MX5 12 BX5 X5*X1 SB7 B1 USE DECIMAL BASE RJ DXB CONVERT YEAR MX7 -2 SA5 CDTA BX7 -X7*X6 0 IFF LEAP YEAR NZ X4,CDT1 IF ERROR SA1 X7+CDTC GET NUMBER OF DAYS IN FEBRUARY SB6 X6-70 NG B6,CDT1 IF YEAR BEFORE 1970 MX0 12 BX6 X1 LX5 12 BX5 X0*X5 SA6 CDTB+1 SET NUMBER OF DAYS IN FEBRUARY RJ DXB CONVERT MONTH NZ X4,CDT1 IF ERROR SX1 X6-13 SX2 B6 YEAR ZR X6,CDT1 IF NO MONTH PL X1,CDT1 IF MONTH > 12 SA3 X6+CDTB-1 FETCH DAYS IN MONTH SA5 CDTA LX2 6 BX2 X2+X6 SB6 X2 SB7 X3 SAVE DAYS IN MONTH MX0 12 LX5 24 BX5 X0*X5 RJ DXB CONVERT DAY NZ X4,CDT1 ZR X6,CDT1 IF NO DAY SX1 B7+B1 SX2 B6 LX2 6 IX1 X6-X1 BX6 X2+X6 ADD DAY TO MONTH,YEAR NG X1,CDTX IF DAY LEGAL CDT1 SA0 =C*ILLEGAL DATE FORMAT.* RJ ERR MX6 -1 SET ERROR RESPONSE EQ CDT CDTA CON 0 TEMPORARY * DAYS FOR EACH MONTH CDTB CON 31,29,31,30,31,30,31,31,30,31,30,31 CDTC CON 29,28,28,28 NUMBER OF DAYS IN FEBUARY CVTM SPACE 4 ** CVTM - CONVERT TIME. * * CVTM CONVERTS A DISPLAY CODE TIME (HHMMSS) INTO A PACKED TIME. * * ENTRY (X1) = DISPLAY CODE TIME. * * EXIT (X6) = PACKED TIME. * (X6) < 0 IF ERROR. CVTM SUBR ENTRY/EXIT MX2 30 BX7 X1 MX3 36 BX2 -X2*X1 SA7 CTMA SAVE DISPLAY CODE BX3 -X3*X1 ZR X2,CTM1 IF NOT 6 CHARACTERS NZ X3,CTM1 IF MORE THAN 6 CHARACTERS MX0 12 BX5 X0*X1 SB7 B1 RJ DXB CONVERT HOURS SX2 X6-24 SA5 CTMA NZ X4,CTM1 IF ERROR SB6 X6 MX0 12 PL X2,CTM1 IF HOURS > 23 LX5 12 BX5 X0*X5 RJ DXB CONVERT MINUTES SX2 X6-60 SX3 B6 SA5 A5 NZ X4,CTM1 IF ERRORS LX3 6 PL X2,CTM1 IF MINUTES > 59 MX0 12 IX6 X6+X3 PACK HOURS AND MINUTES LX5 24 SB6 X6 BX5 X0*X5 RJ DXB SX2 B6 SX3 X6-60 LX2 6 NZ X4,CTM1 IF ERROR IX6 X6+X2 NG X3,CVTMX IF SECONDS < 60 CTM1 SA0 =C*ILLEGAL TIME FORMAT.* RJ ERR MX0 59 SET ERROR RETURN EQ CVTMX CTMA CON 0 TEMPORARY DTP SPACE 4 ** DTP - DATE/TIME PROCESSOR. * * DTP PROCESSES ENTRIES OF THE TYPE YYMMDD/HHMMSS OR JUST * YYMMDD. * * ENTRY (A0) = DATE/TIME ADDRESS. * * EXIT (X6) < 0 IF ERROR. * * USES T0. DTP SUBR ENTRY/EXIT RJ APW ASSEMBLE DATE SX7 B4-1R/ SAVE 0 FLAG IF */* SEPARATOR BX1 X6 SA7 T0 RJ CDT CONVERT DATE SA1 T0 NG X6,DTPX IF CONVERSION ERROR LX6 18 SA6 A0 NZ X1,DTPX IF NO TIME SPECIFIED RJ APW ASSEMBLE TIME BX1 X6 RJ CVTM CONVERT TIME NG X6,DTPX IF TIME CONVERSION ERROR SA1 A0 BX6 X1+X6 SA6 A1 EQ DTPX EXIT PRS SPACE 4 ** PRS - PRESET PROGRAM. PRS SUBR ENTRY/EXIT SA1 JOPR SET JOB ORIGIN SX6 A0-2 MX0 -12 SA6 F.TEND AX1 24 BX6 -X0*X1 SA6 JO MACHID MI SET MACHINE ID SA1 MI FILL IN SPACES IF NEEDED RJ SFN MX1 -12 BX6 -X1*X6 SA6 MI PDATE TD GET PACKED DATE AND TIME SA1 TD BX6 X1 SA6 T74DD SET DUMP DATE MX0 -18 BX1 -X0*X1 ETIME X1 SA6 T77TM SA6 HTM SA1 TD AX1 18 BX1 -X0*X1 EDATE X1 SA6 T77DT SA6 HDT SA1 ACTR SET ARGUMENT COUNT SA4 ARGR SET 1ST ARGUMENT SB5 ARGT SB4 X1 RJ ARG PROCESS ARGUMENTS SA0 =C* ERROR IN DUMPPF/LOADPF ARGUMENTS.* NZ X1,UAB IF ERRORS SA1 TF SA2 =0LDUMP SA3 =0LPFU BX6 X1-X2 BX7 X1-X3 ZR X6,PRS1 IF TF=DUMP SA7 A1+ ZR X7,PRS1 IF TF=PFU SA0 =C* ERROR IN TAPE FORMAT SPECIFICATION.* JP UAB ABORT PRS1 BSS 0 SA5 EL CONVERT ERROR LIMIT TO BINARY SB7 B1 RJ DXB NZ X4,UAB IF CONVERSION ERROR SA6 EL SA2 APT CHECK FILE TYPE ZR X2,PRS2 IF FILE TYPE NOT SPECIFIED RJ SFT SET FILE TYPE ZR X6,UAB IF ILLEGAL FILE TYPE PRS2 SA2 ACT CHECK CATALOG TYPE ZR X2,PRS3 IF FILE TYPE NOT SPECIFIED RJ SCT SET CATALOG TYPE ZR X6,UAB IF ILLEGAL CATALOG TYPE PRS3 SA2 ALT CHECK LOCAL LOAD TYPE ZR X2,PRS4 IF LOCAL LOAD TYPE NOT SELECTED RJ SLT ZR X6,UAB IF ILLEGAL LOAD TYPE PRS4 SA5 NN SB7 1 ZR X5,PRS6 IF NN NOT SPECIFIED RJ DXB NZ X4,UAB SA6 NN PRS6 SA5 CF CONVERT FILE COPY COUNT SB7 1 ZR X5,PRS6.1 IF NOT SPECIFIED RJ DXB NZ X4,UAB SA6 CF PRS6.1 SA5 UI CONVERT USER INDEX SB7 B0 ZR X5,PRS7 RJ DXB NZ X4,UAB IF ILLEGAL USER INDEX ZR X6,UAB IF ZERO USER INDEX MX7 -17 SA6 UI BX7 X7*X6 NZ X7,UAB IF USER INDEX TOO LARGE PRS7 SA1 ZF ZR X1,PRS8 IF NO *Z* PARAMETER SX2 I SX5 CB RJ PZO PROCESS *Z* OPTION EQ PRS10 PRS8 SA2 I ZR X2,PRS10 IF NO INPUT FILE SX2 A2 SET *INPUT* A TERMINAL FILE RJ STF SA6 TI ZR X6,PRS9 IF TERMINAL INPUT READ I INITIATE INPUT EQ PRS10 PRS9 SA2 I MX0 42 SX6 11B SET READ FUNCTION BX2 X0*X2 IX6 X6+X2 SA6 A2 * CHECK FOR FILE NAME CONFLICTS. PRS10 SA1 I SA2 L SA3 B SA4 P AX1 18 SX5 B1 AX2 18 SX6 B1 AX3 18 SX7 B1 AX4 18 SX0 B1 ZR X1,PRS11 IF I=0 BX5 X1-X2 BX6 X1-X3 CX5 X5 SET TO SMALL INTEGERS BX7 X1-X4 CX6 X6 CX7 X7 PRS11 SX1 1 ZR X2,PRS12 IF L=0 BX0 X2-X3 BX1 X2-X4 CX0 X0 CX1 X1 PRS12 SX2 B1 ZR X3,PRS13 IF B=0 BX2 X3-X4 PRS13 CX2 X2 IX0 X0*X1 IX1 X5*X6 IX2 X2*X7 IX2 X1*X2 IX4 X0*X2 SA0 =C* FILE NAME CONFLICT.* ZR X4,UAB IF FILE NAME CONFLICT SA1 RS CHECK RESIDENCE AND PACKNAME SA2 PN BX6 X1+X2 LX7 X2 ZR X6,PRS15 IF RESIDENCE/PACKNAME NOT SPECIFIED SA0 =C* ILLEGAL R=/PN= PARAMETERS.* ZR X2,UAB IF PACKNAME NOT SPECIFIED * IF RESIDENCE NOT SPECIFIED, BINARY ZERO WORKS IN THE * FOLLOWING CALCULATIONS. MX0 12 BX6 X0*X1 SA6 A1 SET RESIDENCE TYPE LX1 24 MX0 -6 BX6 -X0*X1 NZ X6,UAB IF MORE THAN 3 CHARACTERS AX1 6 BX1 -X0*X1 LX2 X1 ZR X1,PRS15 IF NO THIRD CHARACTER SX2 X1-1R1 SX3 X1-1R9 MI X2,UAB IF ILLEGAL UNIT NUMBER PL X3,UAB IF ILLEGAL UNIT NUMBER SX2 X2+B1 BX7 X7+X2 SET PACKNAME/UNIT NUMBER SA7 A2 PRS15 SA2 =1H SET CONTROL CARD TO BE PRINTED SA1 CCDR BX6 X2 SX5 8 SA6 HD2 PRS16 RJ SFN SPACE FILL HEADER SX5 X5-1 SA1 A1+B1 SA6 A6+B1 NZ X5,PRS16 IF MORE HEADER TO FILL MX6 0 SA6 A6+B1 SA6 CB+CBSL TERMINATE STRING BUFFER PRS17 SA2 L ZR X2,PRS18 IF NO OUTPUT FILE SX2 A2 TEST *OUTPUT* A TERMINAL FILE RJ STF SA6 TX WRITE L,* SET *OUTPUT* WRITE FUNCTION SA1 L SET OUTPUT FILE FET POINTER FOR TELEX MX0 42 SX7 A1 BX1 X0*X1 IX7 X1+X7 FILE NAME + FET ADDRESS SA7 ARGR MX6 0 SA6 A7+B1 TERMINATE LIST PRS18 SA1 NR NZ X1,PRSX IF NO REWIND SELECTED REWIND B REWIND P EQ PRSX RETURN ARGT SPACE 4 ** ARGUMENT TABLE. ARGT BSS 0 ARGUMENT TABLE B ARG B,B L ARG L,L I ARG ARGC,I P ARG ARGD,P NA ARG -ARGA,NA R ARG ARGB,RS PN ARG ARGB,PN NR ARG -ARGA,NR NE ARG -ARGA,NE Z ARG -ARGA,ZF DR ARG -ARGA,DR NP ARG -ARGB,PF PG ARG -ARGA,PG SL ARG -ARGA,SL TY ARG ARGB,APT CT ARG ARGB,ACT LT ARG ARGB,ALT LO ARG -ARGA,LO EL ARG EL,EL UI ARG UI,UI N ARG ARGB,NN IU ARG -ARGE,CDFM CF ARG =1L1,CF TF ARG TF,TF ARG END OF TABLE ARGA CON 1 ARGB CON 0 ARGC CON 0LINPUT+1 ARGD CON 0LOPL+1 ARGE VFD 42/-0,18/0 PSP SPACE 4 ** PSP - PROCESS SYSTEM PARAMETERS. PSP SUBR ENTRY/EXIT SA1 JO MX6 0 ZR X1,PSP1 IF SYSTEM ORIGIN JOB SA6 SL CLEAR SYSTEM LIST FLAG EQ PSPX PSP1 SA1 SL SA2 L ZR X1,PSP2 IF SYSTEM LIST NOT SELECTED BX7 X2 SA6 A2 CLEAR OUTPUT FILE FOR INPUT PROCESSING SA7 LF PSP2 SA5 UI CHECK IF USER INDEX SPECIFIED ZR X5,PSPX IF USER INDEX NOT SPECIFIED SETUI X5 EQ PSPX SFT SPACE 4 ** SFT - SET FILE TYPE. * * ENTRY (X2) = FILE TYPE (DISPLAY CODE). * * EXIT FILE TYPE SET. * (X6) = 0 IF ERROR. * (A0) = ERROR MESSAGE. SFT1 SA0 =C/ ILLEGAL FILE TYPE (FT)./ SFT SUBR ENTRY/EXIT SB2 SFTA RJ SNT SEARCH FOR NAME ZR X6,SFT1 IF ERROR SX7 X6 SET FILE TYPE SA7 FT EQ SFTX SFTA BSS 0 CON 0LA CON 0LALL CON 0LD+10001B CON 0LDIRECT+10001B CON 0LDI+10001B CON 0LINDIR+10000B CON 0LIN+10000B CON 0LI+10000B CON 0 SCT SPACE 4 ** SCT - SET CATALOG TYPE. * * ENTRY (X2) = CATALOG TYPE (DISPLAY CODE). * * EXIT CATALOG TYPE SET. * (X6) = 0 IF ERROR. * (A0) = ERROR MESSAGE. SCT1 SA0 =C/ ILLEGAL CATALOG TYPE (CT)./ SCT SUBR ENTRY/EXIT SB2 SCTA RJ SNT SEARCH FOR NAME ZR X6,SCT1 IF ERROR SX7 X6 SET CATALOG TYPE SA7 CT EQ SCTX SCTA BSS 0 CON 0LA CON 0LALL CON 0LPRIVATE+10000B CON 0LPRIV+10000B CON 0LPR+10000B CON 0LSPRIV+10001B CON 0LSP+10001B CON 0LS+10001B CON 0LPUBLIC+10002B CON 0LPUB+10002B CON 0LPU+10002B CON 0 SLT SPACE 4 ** SLT - SET LOAD TYPE. * * ENTRY (X2) = LOAD TYPE (DISPLAY CODE). * * EXIT LOAD TYPE SET. * (X6) = 0 IF ERROR. * (A0) = ERROR MESSAGE. SLT3 SA0 =C/ ILLEGAL LOCAL LOAD TYPE (LT)./ SLT SUBR ENTRY/EXIT SA1 DF NZ X1,SLT1 IF LOAD SA0 =C/ LT PARAMETER ILLEGAL FOR DUMPPF./ MX6 0 EQ SLTX SLT1 SA1 LO NZ X1,SLT2 IF LOCAL FILE LOAD SA0 =C/ LT PARAMETER ILLEGAL FOR PERMANENT FILE LOAD./ MX6 0 EQ SLTX SLT2 SB2 SLTA RJ SNT SEARCH FOR NAME ZR X6,SLT3 IF ERROR SX7 X6-2 SET LOAD TYPE SA7 LT EQ SLTX SLTA BSS 0 CON 0LLOCAL+1 CON 0LLO+1 CON 0LL+1 CON 0LPERM+2 CON 0LPM+2 CON 0LP+2 CON 0LALL+3 CON 0LA+3 CON 0 SNT SPACE 4 ** SNT - SEARCH NAME TABLE. * * SNT SEARCHES A TABLE OF NAMES. THE TOP 42 BITS OF A TABLE * ELEMENT MUST AGREE WITH THE TOP 42 BITS OF THE ENTRY SOUGHT. * * ENTRY (X2) = NAME SOUGHT. * (B2) = FWA TABLE. * * EXIT (X6) = ENTRY FOUND. * (X6) = 0 IF ENTRY NOT FOUND. SNT1 BX3 X1-X2 COMPARE NAMES LX6 X1 BX3 X0*X3 SA1 A1+B1 ZR X6,SNTX IF END OF TABLE NZ X3,SNT1 IF ENTRY NOT FOUND SNT SUBR ENTRY/EXIT SA1 B2 FIRST ENTRY IN TABLE MX0 42 EQ SNT1 COMMON SPACE 4 * INITIALIZATION COMMON DECKS. *CALL COMCARG *CALL COMCDXB *CALL COMCPZO *CALL COMCRDS *CALL COMCSTF *CALL COMCWTS STRING SPACE 4 CB BSS 0 INPUT CHARACTER BUFFER CBLW EQU CB+CBSL+2 ERRPL CBLW-DBUF IF PRESET OVERFLOWS INPUT BUFFER END ~eor COMCPZO COMMON CTEXT COMCPZO - PROCESS CONTROL CARD *Z* OPTION. SPACE 4 BASE D IF -DEF,QUAL$,1 QUAL COMCPZO * COMMENT COPYRIGHT UNIVERSITY OF MINNESOTA. 1974. SPACE 4 *** PZO - PROCESS CONTROL CARD *Z* OPTION. * K. C. MATTHEWS. 74/07/23. * COPIED FROM SUBROUTINE PIB IN MODIFY. SPACE 4 *** PZO PRESETS THE INPUT BUFFER FROM THE CONTROL CARD. THE * CONTROL CARD HAS THE FORMAT: * NAME(P1,P2,...,PN)TCCCCTCCCCTCCC.... * * T = THE DIRECTIVE SEPARATOR, AND IS THE FIRST CHARACTER * AFTER THE CONTROL CARD TERMINATOR. T MAY BE ANY CHARACTER * THAT WILL NOT BE USED IN THE DIRECTIVES. * CCCC = ANY VALID DIRECTIVE FOR THE PROGRAM CALLED. * * ENTRY (X2) = ADDRESS OF INPUT FET. * (X5) = ADDRESS OF 81 CHARACTER STRING BUFFER. * (B1) = 1 * * EXIT INPUT BUFFER PRESET. * * USES X - ALL EXCEPT X0. * A - ALL EXCEPT A0. * B - ALL. * * CALLS RCL=, RDS=, WTS=. PZO PS ENTRY/EXIT SA5 X5 PRESET A5 SA1 X2 ASSURE IDLE INPUT FET BX5 X2 SAVE INPUT FET ADDRESS NZ X1,PZO1 IF FILE DEFINED SX7 B1 SET FILE IDLE SA7 A1 EQ PZO2 PZO1 LX1 60-1 CHECK BUSY NG X1,PZO2 IF FET IDLE RECALL X2 PZO2 READS PZOA,A5,80 CRACK THE CONTROL CARD MX7 0 BX2 X5 SA7 B6 SA5 A5 SA1 PZOB TERMINATOR CHARACTER MASK PZO3 SB2 X5 SCAN DOWN TO TERMINATOR LX3 X1,B2 NG X3,PZO4 IF TERMINATOR FOUND SA5 A5+B1 CONTINUE SCAN EQ PZO3 PZO4 SA1 A5+1 LINE TERMINATOR CHARACTER SA5 A5+1 PRESET (A5) PZO5 SB6 A5+1 SAVE ADDRESS OF 1ST CHAR OF DIRECTIVE PZO6 SA5 A5+B1 SCAN FOR DIRECTIVE ZR X5,PZO7 IF END OF BUFFER BX3 X5-X1 NZ X3,PZO6 IF NOT LINE TERMINATOR BX5 X1 WRITES X2,B6,A5-B6 SEND DIRECTIVE TO INPUT BUFFER BX1 X5 EQ PZO5 CONTINUE PZO7 WRITES X2,B6,A5-B6 SEND LAST DIRECTIVE SA1 PZOC SET *EOR* AND CHANGE FILE NAME BX6 X1 SA6 X2 JP PZO RETURN PZOA CON 0LDUM+21B DUMMY FET CON CCDR CON CCDR+8 CON CCDR CON CCDR+9 PZOB BSS 0 TERMINATOR CHARACTER MASK POS 60-1R. VFD 1/1 POS 60-1R) VFD 1/1 POS 0 PZOC CON 5L,CARD+21B SPACE 4 BASE * IF -DEF,QUAL$,2 QUAL * PZO EQU /COMCPZO/PZO ENDX ~eor ~eof *create dumppf *edit dumppf ~eoi