PDFDUMP

PERMANENT FILE DUMP/LOAD UTILITY

CDC Terminal
---- WELCOME TO THE NOS SOFTWARE SYSTEM. COPYRIGHT CONTROL DATA SYSTEMS INC. 1994. 97/11/05. 21.14.00. TE03 NOS CYBIS SYSTEM - IRATADEV. 1. NOS 2.8.7 871/871. FAMILY: USER NAME: install install PASSWORD: install PASSWORD: JSN: AABV, NAMIAF /label(quack,vsn=quack,lb=kl,f=i,po=r,r) label(quack,vsn=quack,lb=kl,f=i,po=r,r) NT052 ASSIGNED TO QUACK, VSN=QUACK. /loadpf(b=quack,lo) loadpf(b=quack,lo) FILES LOADED AS LOCAL FILES. 1. CHEMODS 82/06/28. 15.12.24. 51116 IND/PRIV 2. CHS 82/06/28. 15.12.24. 51116 DIR/PRIV 3. SPYSRC 82/06/28. 15.12.24. 51116 IND/PUB 4. RBCS 82/06/28. 15.12.24. 51116 IND/PRIV 5. IAFPROC 82/06/28. 15.12.24. 51116 IND/PRIV 6. URSS 82/06/28. 15.12.24. 51116 IND/PRIV 7. FDLUGDS 82/06/28. 15.12.24. 51116 IND/PRIV 8. QSRC 82/06/28. 15.12.24. 51116 DIR/PRIV 9. DSDMODS 82/06/28. 15.12.24. 51116 IND/PRIV 10. NV2OPL 82/06/28. 15.12.24. 51116 DIR/PRIV 11. GLSMODS 82/06/28. 15.12.24. 51116 IND/PRIV 12. NV2DS 82/06/28. 15.12.24. 51116 DIR/PRIV 13. COOKIE 82/06/28. 15.12.24. 51116 DIR/PRIV 14. FDLCGDS 82/06/28. 15.12.24. 51116 IND/PRIV 15. FPROGS 82/06/28. 15.12.24. 51116 IND/PRIV 16. FBLD 82/06/28. 15.12.24. 51116 IND/PRIV 17. MAILMOD 82/06/28. 15.12.24. 51116 IND/PRIV 18. MAILTPE 82/06/28. 15.12.24. 51116 DIR/PRIV LOADPF COMPLETE.

jobdpf.txt
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       &lt; 0 IF AFTER CREATION AFTER DATE 
          SA1    A3+B1
          IX6    X2-X3       &lt; 0 IF BEFORE CREATION BEFORE DATE 
          SA2    A2+B1       LAST MODIFICATION DATE 
          BX4    X6*X4
          SA3    A1+B1
          BX2    -X0*X2 
          IX6    X1-X2       &lt; 0 IF AFTER MODIFICATION AFTER DATE 
          SA1    A3+B1
          IX7    X2-X3       &lt; 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       &lt; 0 IF AFTER LAST ACCESS AFTER DATE
          IX7    X2-X3       &lt; 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, &lt;>0 IF DUMPPF/LOADPF TAPE
 LO       CON    0           0 FOR PERMANENT FILES - 1 FOR LOCAL FILES
 LT       CON    1           LOCAL LOAD TYPE &lt; 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 - &lt; 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 &lt; 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