COMSPFM 
COMMON
                                                                      # 
          CTEXT  COMSPFM - PERMANENT FILE EQUIVALENCES. 
                                                                      # 
                                               CONTROL NOLIST;
                                                                      # 
 COMSPFM  SPACE  4,10 
*         COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 COMSPFM  SPACE  4
***       COMSPFM - PERMANENT FILE EQUIVALENCES.
*         R. A. LARSEN.      71/01/19.
*         W. B. CHAPIN       79/04/27.
*         J. R. CARLSON.     79/05/09.
          BASE   M
          SPACE  4
***       *COMSPFM* PROVIDES EQUIVALENCES FOR PERMANENT FILE
*         SYMBOLS AND LOCATIONS, FORMATS OF CALL BLOCKS, CATALOG AND
*         PERMIT ENTRYS.
* 
*         SYMBOLS DEFINED BY THE #   #DEF#   # MACRO ARE USED IN
*         BOTH *SYMPL* AND *COMPASS* PROGRAMS.  IN *SYMPL*, 
*         COMMENTS ARE DELIMITED BY THE # # CHARACTER.
          SPACE  4
***       PFM CALL FORMATS. 
* 
* 
* 
* 
**        SYSTEM CALLS. 
* 
* 
*T   IR   18/ *PFM* ,6/ ,12/ CC ,6/ ,18/ FET
* 
*         CC     COMMAND CODE.
* 
*                01 = SAVE SPECIFIED FILE ON PERMANENT FILE DEVICE. 
*                02 = GET FILE SPECIFIED FROM PERMANENT FILE DEVICE.
*                03 = PURGE FILE SPECIFIED FROM PERMANENT FILE DEVICE.
*                04 = CATALOG FILES ON THE PERMANENT FILE DEVICE
*                05 = PERMIT SPECIFIED FILE TO BE ACCESSED BY OPTIONAL
*                     USER. 
*                06 = SAVE FILE SPECIFIED IN CALL ON PERMANENT FILE 
*                     AND PURGE ANY PREVIOUS FILE SAVED BY THAT NAME. 
*                07 = APPEND PERMANENT FILE SPECIFIED WITH SYSTEM FILE, 
*                      PROCESSED IN SAME MANNER AS REPLACE. 
*                10 = DEFINE DIRECT ACCESS PERMANENT FILE.
*                11 = ATTACH DIRECT ACCESS PERMANENT FILE TO JOB. 
*                12 = CHANGE CATALOG DATA FOR FILE
*                13 = ATTACH DIRECT ACCESS PERMANENT FILE TO JOB, 
*                     WITHOUT UPDATING ACCESS COUNT OR DATES. 
*                14 = SET ALTERNATE STORAGE ADDRESS IN CATALOG ENTRY
*                     FOR SPECIFIED FILE. 
*                15 = SET/CLEAR ALTERNATE STORAGE FLAGS IN CATALOG
*                     ENTRY OF SPECIFIED FILE.
*                16 = SET DISK ADDRESS INTO CATALOG OF SPECIFIED FILE.
*                17 = DROP DISK SPACE FOR SPECIFIED DIRECT ACCESS FILE. 
*                20 = PLACE LOCAL FILE ON PROPER PERMANENT FILE DEVICE. 
*                21 = GENERATE A PRIMARY-FILE LOCAL COPY OF SPECIFIED 
*                     INDIRECT ACCESS FILE. 
*                22 = SET ACCESS CATEGORY SET INTO CATALOG ENTRY FOR
*                     SPECIFIED FILE. 
*                23 = SET ACCESS LEVEL INTO CATALOG ENTRY FOR 
*                     SPECIFIED FILE. 
*                24 = GET SPECIFIED FILE FROM PERMANENT FILE DEVICE 
*                     WITHOUT UPDATING ACCESS COUNT OR DATE.
*                25 = SAVE FILE SPECIFIED IN CALL ON PERMANENT FILE 
*                     AND PURGE ANY PREVIOUS FILE SAVED BY THAT NAME
*                     WITHOUT UPDATING ANY DATE/TIME WORDS IN PFC.
*                26 = DROP DISK SPACE FOR SPECIFIED INDIRECT
*                     ACCESS FILE.
*                27 = DELETE PFC ENTRY AND ASSOCIATED INDIRECT SPACE
*                     REMAINING FROM OLD PERMANENT FILE ON *APPEND*.
*                30 = RETURN STATUS TO ORIGINAL CALLER AFTER COMPLETION 
*                     OF CPU TRANSFER OF INDIRECT FILE. 
*                31 = STAGE PERMANENT FILE FROM ALTERNATE STORAGE.
* 
*         BIT 2**10 SET      IGNORE PACKNAME. 
*         BIT 2**9 SET       USE SYSTEM DEFAULT FAMILY (SSJ= JOBS ONLY).
*         FET    FET ADDRESS. 
* 
* 
*T  MB    1/S, 7/ ,4/ RF ,12/ RC ,12/ CC ,12/ EQ ,12/ 
*         S      SET IF *PFM* RESTARTED FROM RECALL STACK.
*         RF     RESTART FLAGS = 1/RR, 1/PC, 1/AC, 1/AM.
*                RR = RETRY REQUEST FLAG. 
*                     (UNRECOVERED WRITE ERROR ON SCRATCH FILE.)
*                PC = PERMIT COUNTS UPDATED FLAG. 
*                AC = ACCESS COUNTS UPDATED FLAG. 
*                AM = ACCOUNTING MESSAGES ISSUED FLAG.
*         RC     REASON CODE FOR RECALL STACK ENTRY.
*         CC     ORIGINAL COMMAND CODE FOR *RPFSTAT* REQUEST. 
*         EQ     MASTER EST ORDINAL FOR *RPFSTAT* REQUEST.
* 
* 
* 
*         SYSTEM CALLS USE A 16 WORD CALL BLOCK (FET).
*         THE FORMAT IS AS FOLLOWS. 
* 
*T  FET   42/ *FILE NAME*,17/,1/0 
*T,       12/ DT,1/,5/ EPO,2/,1/A,15/,6/ LEN,18/ FIRST
*T,       42/,18/ IN
*T,       42/,18/ OUT 
*T,       21/ ,3/ AL,18/ ,18/ LIMIT 
*T,       28/,32/ CATEGORIES
*T,       60/ CATLIST CONTINUATION DATA 
*T,       60/ 
*T, FET+8 42/ *PF NAME*,6/ SR,6/ CT,6/ MODE 
*T,       42/ OUAN, 6/ DN, 12/
*T,       42/ FILE PASSWORD,18/ ERAD
*T,       60/ USER CONTROL WORD 
*T,       42/ PACKNAME ,6/0, 12/ UC 
*T,       42/ NEW FILE NAME,18/ EXP 
*T,       60/ RESERVED
*T,       3/PR,3/BR,6/ SS,2/AC,28/ RESERVED,18/ SRBP
* 
* 
*         FILE NAME          LOCAL FILE NAME. 
*         DT                 DEVICE TYPE FOR FILE RESIDENCE 
*         EPO                ERROR PROCESSING OPTIONS.
*                            ( 1/SA, 1/UP, 1/EP, 1/RT, 1/IP ) 
*                            SA   SUPPRESS ADDRESS ON ERROR MESSAGES. 
*                            UP   RETURN TIME-DEPENDANT STATUS. 
*                                  RETURN EXTRA STATUS TO SUBSYSTEMS. 
*                            EP   RETURN STATUS ON ERRORS.
*                            RT   RETURN STATUS ON FILE STAGING.
*                            IP   RETURN STATUS ON INTERLOCKS.
*         A                  ACCESS LEVEL PROCESSING BIT. 
*         FIRST              BUFFER ADDRESS FOR *CATLIST*/*UATTACH*.
*         AL                 FILE ACCESS LEVEL. 
*         CATEGORIES         FILE ACCESS CATEGORIES.
*         PF NAME            PERMANENT FILE NAME.  (IF *PF NAME* IS NOT 
*                            SPECIFIED, *FILE NAME* IS USED). 
*         SR                 SPECIAL REQUESTS.
*         CT                 FILE CATEGORY. 
*                            (40B MUST BE ADDED IN ORDER TO PROCESS 
*                            THIS FIELD FOR *CHANGE* FUNCTION). 
*         MODE               MODE OF PERMISSION.
*                            (40B MUST BE ADDED IN ORDER TO PROCESS 
*                            THIS FIELD FOR *CHANGE* FUNCTION). 
*         OUAN               USER NAME. 
*         DN                 DEVICE NUMBER FOR CATALOG LIST.
*         FILE PASSWORD      OPTIONAL PASSWORD FOR FILE ACCESS. 
*                            (FIELD MUST BE SET TO 7777 7777 7777 77B 
*                            TO AVOID PROCESSING ON *CHANGE* FUNCTION)
*         ERAD               ERROR RETURN ADDRESS 
*         USER CONTROL WORD  USER INFORMATION.
*                            (BIT 59 MUST BE SET IN ORDER TO PROCESS
*                            THIS WORD FOR *CHANGE* FUNCTION).
*         PRU                PRU COUNT FOR DEFINE COMMAND 
*         PACKNAME           NAME OF REMOVABLE DEVICE TO ACCESS 
*         UC                 NUMBER OF UNITS IN PACK REQUESTED
*         NEW NAME           NEW FILE NAME FOR CHANGE COMMAND 
*         EXP                ACCESS EXPIRATION DATE OR TERM. (PROCESSED 
*                            AS TERM IF UPPER 6 BITS ARE ZERO). 
*         PR                 PREFERRED RESIDENCE. 
*         BR                 BACKUP REQUIREMENT.
*         SS                 FILE SUBSYSTEM.
*                            (40B MUST BE ADDED IN ORDER TO PROCESS 
*                            THIS FIELD FOR *CHANGE* FUNCTION). 
*         AC                 ALTERNATE CATLIST PERMISSION.
*         SRBP               POINTER TO SPECIAL FUNCTION REQUEST BLOCK. 
          SPACE  4,15 
***       SPECIAL FUNCTION REQUEST BLOCK FORMAT.
* 
* 
*T        28/ RESERVED,2/ P,6/ DN,12/ TRACK,12/ SECTOR
*T,       60/ ASI 
*T,       24/ RESERVED,36/ CREATION DATE-TIME 
*T,       42/ FAMILY,18/ USER INDEX 
* 
* 
*         P                  *PFC* ENTRY ORDINAL, *PEO*.
*         DN                 DEVICE NUMBER. 
*         TRACK              TRACK WITH *PFC* ENTRY.
*         SECTOR             SECTOR WITH *PFC* ENTRY. 
*         ASI                ALTERNATE STORAGE INFORMATION WORD.
*                            BIT 42 = 0 IF CARTRIDGE ALTERNATE STORAGE. 
*                            BIT 42 = 1 IF TAPE ALTERNATE STORAGE.
*         FAMILY             FAMILY ON WHICH THE PERMANENT FILE WAS 
*                            CREATED. 
*         USER INDEX         USER INDEX OF FILE CREATOR.
* 
* 
*         *ASI* WORD FORMAT - CARTRIDGE ALTERNATE STORAGE.
* 
*T,       12/ AF,5/ ,1/0,6/ AT,36/ ASA
* 
*         AF                 CARTRIDGE ALTERNATE STORAGE STATUS FLAGS.
*         AT                 CARTRIDGE ALTERNATE STORAGE TYPE = ATAS. 
*         ASA                CARTRIDGE ALTERNATE STORAGE ADDRESS. 
* 
* 
*         *ASI* WORD FORMAT - OPTICAL DISK STORAGE. 
* 
*T,       12/ AF,5/ ,1/0,6/ AT, 12/ VER ,24/ PACKED VSN 
* 
*         AF                 CARTRIDGE ALTERNATE STORAGE STATUS FLAGS.
*         AT                 ALTERNATE STORAGE TYPE = ATOD. 
*         VER                ARCHIVE FILE VERSION NUMBER. 
*         PACKED VSN         PACKED VSN OF ARCHIVE TAPE (12/VP,12/VS) 
*                            VP = TWO-CHARACTER DISPLAY CODE VSN PREFIX 
*                            VS = NUMERIC VSN SUFFIX (0000 TO 4095).
* 
* 
*         *ASI* WORD FORMAT - TAPE ALTERNATE STORAGE. 
* 
*T,       12/ TF,5/ ,1/1,18/ SEQ,24/ PACKED VSN 
* 
*         TF                 TAPE ALTERNATE STORAGE STATUS FLAGS. 
*         SEQ                FILE SEQUENCE NUMBER ON ARCHIVE TAPE.
*         PACKED VSN         PACKED VSN OF ARCHIVE TAPE (12/VP,12/VS) 
*                            VP = TWO-CHARACTER DISPLAY CODE VSN PREFIX 
*                            VS = NUMERIC VSN SUFFIX (0000 TO 4095).
          SPACE  4,15 
***       *TDAM* REQUEST BLOCK FORMATS. 
* 
*         *MSE* EXECUTIVE CARTRIDGE ALTERNATE STORAGE REQUEST BLOCK 
*         FORMAT. 
* 
*T        6/ FC,3/ AL,15/ RESERVED,4/ F,2/ P,6/ DN,12/ TRACK,12/ SECTOR 
*T,       18/,6/ AT,36/ ASA 
*T,       42/ PFN,12/ UI
*T,       24/ JSN,15/ RESERVED,21/ EVENT
*T,       42/ FAMILY,18/ RESERVED 
*T,       1/I,23/ LENGTH,36/ CREATION DATE-TIME 
* 
* 
*         FC                 FUNCTION CODE. 
*                            1 = STAGE FILE.
*                            2 = RELEASE MSS CATALOG MODIFY MODE
*                                INTERLOCKS.
*                            3 = GET MSS CATALOG MODIFY MODE
*                                INTERLOCKS.
*                            6 = RELEASE MSS CATALOG UPDATE MODE
*                                INTERLOCKS.
*                            7 = GET MSS CATALOG UPDATE MODE
*                                INTERLOCKS.
*         AL                 ACCESS LEVEL OF THE FILE.
*         F                  FLAGS. 
*                            BIT 35 = AFFRE - FREE UP CARTRIDGE.
*                            BIT 34 = RESERVED. 
*                            BIT 33 = AFVER - *ASA* VERIFY FLAG.
*                            BIT 32 = AFPDR - PSEUDO RELEASE FLAG.
*         P                  *PFC* ENTRY ORDINAL. 
*         DN                 DEVICE NUMBER. 
*         TRACK              TRACK FOR THE PFC ENTRY. 
*         SECTOR             SECTOR FOR THE PFC ENTRY.
*         AT                 ALTERNATE STORAGE TYPE.
*         ASA                ALTERNATE STORAGE ADDRESS. 
*         PFN                PERMANENT FILE NAME. 
*         UI                 USER INDEX.
*         JSN                JSN OF THE JOB ISSUING THE *ATTACH*. 
*         EVENT              EVENT THE JOB WILL ROLL OUT ON (9/E,12/A). 
*                            E = EST ORDINAL OF THE FIRST CSU.
*                            A = FOLDED *ASA* FOR THE FILE (FORMED
*                            BY THE EXCLUSIVE *OR* OF THE THREE 12-BIT
*                            BYTES OF THE *ASA* VALUE). 
*         FAMILY             THE FAMILY/PACK CONTAINING THE PFC ENTRY.
*         I                  SET IF INDIRECT ACCESS FILE. 
*         LENGTH             LENGTH OF THE FILE IN SECTORS. 
* 
* 
*         *MAGNET* TAPE ALTERNATE STORAGE REQUEST BLOCK FORMAT. 
* 
*T        6/ FC,3/ AL,19/ RESERVED,2/ P,6/ DN,12/ TRACK,12/ SECTOR
*T,       12/ TF,6/,18/ FSN,24/ PACKED VSN
*T,       42/ PFN,18/ UI
*T,       24/ JSN,15/ RESERVED,21/ EVENT
*T,       42/ FAMILY,9/ RESERVED,9/ ESTO
*T,       1/I,23/ LENGTH,36/ CREATION DATE-TIME 
* 
* 
*         FC                 FUNCTION CODE. 
*                            1 = STAGE FILE FROM TAPE.
*                            2 = STAGE FILE FROM OPTICAL DISK.
*                            3 - 77 RESERVED. 
*         AL                 ACCESS LEVEL OF THE FILE.
*         P                  *PFC* ENTRY ORDINAL. 
*         DN                 DEVICE NUMBER. 
*         TRACK              TRACK FOR THE *PFC* ENTRY. 
*         SECTOR             SECTOR FOR THE *PFC* ENTRY.
*         TF                 *FCTF* FLAGS FROM PFC. 
*         FSN                FILE SEQUENCE NUMBER ON ARCHIVE TAPE.
*         PACKED VSN         PACKED VSN OF ARCHIVE TAPE (12/VP,12/VS) 
*                            VP = TWO-CHARACTER DISPLAY CODE VSN PREFIX 
*                            VS = NUMERIC VSN SUFFIX (0000 TO 4095).
*         PFN                PERMANENT FILE NAME. 
*         UI                 USER INDEX.
*         JSN                JSN OF THE JOB REQUESTING THE FILE.
*         EVENT              EVENT THE JOB WILL ROLL OUT ON.
*         FAMILY             THE FAMILY/PACK CONTAINING THE PFC ENTRY.
*         ESTO               THE EST ORDINAL OF THE MASTER DEVICE.
*         I                  SET IF INDIRECT ACCESS FILE. 
*         LENGTH             LENGTH OF THE FILE IN SECTORS. 
* 
* 
*         NOTE - IF STAGING IS FROM OPTICAL DISK, THE SECOND WORD OF
*                THE *TDAM* REQUEST IS FORMATTED THE SAME AS THE SECOND 
*                WORD OF THE *MSE* *TDAM* REQUEST.
 CPFC     SPACE  4,10 
***       *CPUPFM* CALL WORD (*SPCW*).
* 
*T        18/ *CPF*,6/ 30B,18/ 0,18/ CC 
* 
*         CC = PFM COMMAND CODE.
 CPFB     SPACE  4,10 
***       *CPUPFM* PARAMETER BLOCK FORMAT.
* 
*T        42/ LFN,18/ FLAGS 
*T,       12/,24/ APLF,24/ LF 
*T,       36/,24/ RI
*T,       60/ SRB WORD 0
*T,       60/ SRB WORD 1
*T,       60/ SRB WORD 2
*T,       60/ SRB WORD 3
* 
*         LFN                LOCAL FILE NAME OF FILE TO BE TRANSFERRED. 
*         FLAGS              FLAG BITS FOR CPU TRANSFER.
*                            17/0,1/FGIA
*                            FGIA = INDIRECT ALLOCATION INTERLOCK HELD. 
*         APLF               LENGTH OF LOCAL FILE ON *APPEND*.
*         LF                 TOTAL LENGTH OF FILE TO BE TRANSFERRED 
*                            (BOTH PERMANENT AND LOCAL FOR *APPEND*). 
*         RI                 RANDOM ADDRESS OF PERMANENT FILE 
*                            ON *SAVE*, *REPLACE* AND *APPEND*. 
*         SRB WORDS 0 - 3    SPECIAL REQUEST BLOCK POINTING TO OLD
*                            PERMANENT FILE FOR *APPEND*. 
 CPFR     SPACE  4,10 
***       *CPUPFM* REPLY WORD (*SPCW*). 
* 
*T        24/ 0,3/ 1,1/E ,8/ EC,24/ 0 
* 
*         E                  ERROR IDLE FLAG. 
*                            IF SET, ERROR IDLE STATUS IS TO BE SET 
*                            FOR THE MASTER DEVICE BY *PFM*.
* 
*                            THIS FLAG IS SET WHEN THE FILE TRANSFER
*                            IS INCOMPLETE FOR *APPEND*, *REPLACE*, 
*                            AND *SAVE* COMMANDS.  THIS CONDITION CAN 
*                            OCCUR WITH *TRACK LIMIT*, *PFM ABORTED*, 
*                            AND *MASS STORAGE ERROR* ERROR CODES.
* 
*                            THIS FLAG IS SET WITH *FILE LENGTH ERROR*
*                            ERROR CODE WHEN THERE IS A LOGICAL ERROR 
*                            IN THE LENGTH OF THE FILE. 
* 
*         EC                 *PFM* ERROR CODE.
*                            DTE(17) - DATA TRANSFER ERROR. 
*                            TKL(31) - TRACK LIMIT. 
*                            FLE(32) - FILE LENGTH ERROR. 
*                            ABT(36) - PFM ABORTED. 
*                            MSE(37) - MASS STORAGE ERROR.
*                            RTR(127) - RETRY REQUEST.
 CAT      SPACE  4,10 
***       CATALOG ENTRY (PFC) FORMAT. 
* 
* 
*T        42/ *FILENAME*,18/ USER INDEX 
*T,       24/ FILE LENGTH,12/,12/ TRACK,12/ SECTOR
*T,       24/ RANDOM INDEX,36/ CREATION DATE-TIME 
*T,       24/ ACCESS COUNT,36/ DATA MODIFICATION DATE-TIME
*T,       6/ CT,6/ MODE,3/EF,3/EC,6/ DN,36/ LAST ACCESS DATE-TIME 
*T,       24/ ASOD,36/ CONTROL MODIFICATION DATE-TIME 
*T,       3/PR,3/BR,6/ SS,2/AC,10/,36/ UTILITY CONTROL DATE-TIME
*T,       42/ FILE PASSWORD, 18/ EXPIRATION DATE
*T,       12/ AF,6/,6/ AT,36/ ASA 
*T,       21/ RESERVED, 3/ AL, 4/, 32/ CATEGORIES 
*T,       60/ CHARGE NUMBER 
*T,       60/ PROJECT NUMBER (FIRST 10 CHARACTERS)
*T,       60/ PROJECT NUMBER (SECOND 10 CHARACTERS) 
*T,       12/ TF,6/ ,18/ FSN,24/ PACKED VSN 
*T,       60/ USER CONTROL WORD 
*T,       60/ INSTALLATION WORD 
* 
* 
*         FILE NAME          PERMANENT FILE NAME. 
*         USER INDEX         USER INDEX OF FILE CREATOR.
*         TRACK              BEGINNING TRACK OF FILE. 
*         SECTOR             BEGINNING SECTOR OF FILE.
*         RANDOM INDEX       RANDOM DISK ADDRESS OF PERMIT SECTOR.
*         ACCESS COUNT       COUNT OF ACCESSES TO FILE. 
*         CT                 FILE CATEGORY
*                            (PRIVATE, SEMI-PRIVATE, LIBRARY) 
*         MODE               MODE OF ACCESS FOR SEMIPUBLIC AND PUBLIC 
*                            FILES. 
*         EF                 ERROR FLAGS PASSED TO *0RP*
*                            (ONLY EXISTS IN SYSTEM SECTOR) 
*         EC                 ERROR CODES DETECTED BY UTILITIES
*         DN                 DEVICE NUMBER
*         ASOD               ALTERNATE STORAGE OPTICAL DISK ADDRESS.
*         CONTROL MODIFICATION  DATE AND TIME OF LAST *CHANGE*
*           DATE AND TIME       OR *PERMIT* COMMAND.
*         PR                 PREFERRED RESIDENCE. 
*         BR                 BACKUP REQUIREMENT.
*         SS                 FILE SUBSYSTEM.
*         AC                 ALTERNATE CATLIST PERMISSION.
*         UTILITY CONTROL    DATE AND TIME SET BY *PFM* AND/OR *PFU*
*           DATE AND TIME    TO INSURE THAT THE FILE WILL BE DUMPED.
*         PASSWORD           OPTIONAL PASSWORD. 
*         EXPIRATION DATE    PASSWORD EXPIRATION DATE.
*         AF                 CARTRIDGE ALTERNATE STORAGE FLAGS. 
*         AT                 CARTRIDGE ALTERNATE STORAGE TYPE.
*                            0 = NO CARTRIDGE ALTERNATE STORAGE.
*                            2 = *MSE* ALTERNATE STORAGE. 
*                            3 = OPTICAL DISK ALTERNATE STORAGE.
*         ASA                CARTRIDGE ALTERNATE STORAGE ADDRESS. 
*                            OPTICAL DISK = 12/ VER, 24/ PACKED VSN.
*                             VER = ARCHIVE FILE VERSION NUMBER. THE
*                                   ARCHIVE FILE NAME IS *PFARCHIVE*, 
*                                   OWNER IDENTIFIER IS *SYSTEMX*, AND
*                                   GROUP IDENTIFIER IS THE FAMILY OF 
*                                   THE ARCHIVE.
*                             PACKED VSN = 12/ VP, 12/VS. 
*                              VP = TWO-CHARACTER DISPLAY CODE PREFIX.
*                              VS = NUMERIC SUFFIX (0000 TO 4095).
*         AL                 FILE ACCESS LEVEL. 
*         CATEGORIES         FILE ACCESS CATEGORIES.
*         CHARGE NUMBER      CHARGE NUMBER THIS FILE IS BILLED TO.
*         PROJECT NUMBER     PROJECT NUMBER THIS FILE IS BILLED TO. 
*         TF                 TAPE ALTERNATE STORAGE FLAGS.
*         FSN                FILE SEQUENCE NUMBER ON ARCHIVE TAPE.
*         PACKED VSN         PACKED VSN OF ARCHIVE TAPE (12/VP,12/VS) 
*                            VP = TWO-CHARACTER DISPLAY CODE VSN PREFIX 
*                            VS = NUMERIC VSN SUFFIX (0000 TO 4095).
*         USER CONTROL WORD  USER INFORMATION.
 PMT      SPACE  4
***       PERMIT BUFFER FORMAT. 
* 
* 
*         THE FIRST TWO CM WORDS OF THE PERMIT BUFFER (DATA AREA) ARE 
*         USED FOR LINKAGE. 
* 
*         LINKAGE FORMAT. 
* 
*T        24/ RANDOM INDEX,24/ USER INDEX,12/ 
*T,       24/,36/ PACKED DATE AND TIME
* 
*         RANDOM INDEX       RANDOM DISK ADDRESS OF PERMIT BUFFER.
*                            ZERO INDICATES END OF FILE CHAIN.
*         USER INDEX         USER INDEX WHO CREATED THIS PERMIT SECTOR. 
*         PACKED DATE/TIME   DATE AND TIME THAT THE LAST PERMIT 
*                            ENTRY IN THE SECTOR WAS CREATED. 
* 
* 
*         THE NEXT 31 PAIRS OF CM WORDS ARE THE PERMIT ENTRYS.
* 
*         PERMIT ENTRY FORMAT.
* 
*T        42/ USER NAME, 18/ EXP
*T,       18/ ACCESS COUNT,6/ MODE,18/ ACCESS DATE,18/ ACCESS TIME
* 
*         USER NAME          USER NAME OF PERMITTED USER. 
*         EXP                EXPIRATION DATE OF THE PERMIT. 
*         ACCESS COUNT       NUMBER OF ACCESSES PERMITTED USER HAS MADE 
*                            TO FILE. 
*         MODE               PERMIT MODE INFORMATION. 
*                            1/X, 1/T, 4/MODE.
*                            X = EXPIRATION DATE IS PRESENT.
*                            T = PERMIT TYPE (0=EXPLICIT, 1=ACCOUNTING).
*                            MODE = PERMITTED MODE. 
*         ACCESS DATE        LAST ACCESS DATE OF FILE BY PERMITTED USER.
*         ACCESS TIME        LAST ACCESS TIME OF FILE BY PERMITTED USER.
 SSF      SPACE  4,60 
***       DIRECT ACCESS FILE SYSTEM SECTOR FORMAT.
* 
*T        42/ FILE NAME,6/,6/PMFT,6/
*T,       12/ EQSS,12/ FTSS,36/ 
*T,       24/,36/ DATE AND TIME SYSTEM SECTOR WAS LAST UPDATED
*T,       60/ 
*T,       60/ 
*T,       60/ 
*T,       60/ 
*T,       60/ 
*T, CTSS  60/ THE NEXT 16 WORDS ARE A COPY OF THE PFC FOR THE FILE. 
*T,       60/                .
*T,       60/                .
*T,       60/                .
*T,       60/ (LAST WORD OF PFC COPY) 
*T,       12/ CASS,12/ FISS,36/ 
*T, UCSS  12/,12/ R,12/ RU,12/ RA,12/ RM
*T,       9/,1/ A,1/ U,1/ W,12/ R,12/ RU,12/ RA,12/ RM
*T,       60/ THE ABOVE WORD IS REPEATED FOR EACH POSSIBLE MAINFRAME. 
*T,       60/                .
*T,       60/                .
*T,       60/                .
*T,       60/ (USER COUNT WORD FOR 16TH MAINFRAME)
*T,       60/ 
*T,       60/                .
*T,       60/                .
*T,       60/                .
*T,       60/ 
*T, WJSS  60/ JSNE
*T, WDSS  12/ MID,12/ ,36/ DATE AND TIME OF LAST WRITEABLE ACCESS 
*T, I0SS  60/ WORD 0 OF INSTALLATION AREA 
*T, I1SS  60/ WORD 1 OF INSTALLATION AREA 
*T, I2SS  60/ WORD 2 OF INSTALLATION AREA 
*T, I3SS  60/ WORD 3 OF INSTALLATION AREA 
* 
*         EQSS   EST ORDINAL OF FILE (WHEN CREATED).
*         FTSS   FIRST TRACK OF FILE. 
* 
*         CASS   CURRENT ACCESS MODE. 
*                11-8  RESERVED.
*                7     FILE ATTACHED WITH NON-ROLLABLE OPTION (USED 
*                      FOR INDEPENDENT SHARED DEVICES ONLY).
*                6     FILE ATTACHED BY SYSTEM UTILITY. 
*                5     FILE PURGED. 
*                4     FILE MAY BE SHORTENED (W MODE).
*                3     FILE MAY BE REWRITTEN (W, M OR U MODE).
*                2     ZERO.
*                1     FILE MAY BE EXTENDED (W, M OR A MODE). 
*                0     ZERO.
* 
*         FISS   1/FAST ATTACH FLAG, 11/*FAT* INDEX 
*         UCSS   CURRENT USER COUNTS. 
*                A = THIS MAINFRAME IS ACTIVE (HAS FILE ATTACHED).
*                U = FILE ATTACHED BY UTILITY IN THIS MAINFRAME (MF). 
*                W = FILE ATTACHED IN W, M, U OR A MODE IN THIS MF. 
*                R = TOTAL USERS (OR USERS IN THIS MF) WITH R ACCESS. 
*                RU = TOTAL USERS (OR USERS IN THIS MF) WITH RU ACCESS. 
*                RA = TOTAL USERS (OR USERS IN THIS MF) WITH RA ACCESS. 
*                RM = TOTAL USERS (OR USERS IN THIS MF) WITH RM ACCESS. 
* 
*         JSNE   EJT WORD *JSNE* FOR LAST JOB WITH WRITEABLE ACCESS.
*         MID    MAINFRAME ID OF LAST JOB WITH WRITEABLE ACCESS.
  
  
  
  
*         THE FOLLOWING MICRO DEFINITIONS CREATE MICRO NAMES
*         WHICH CORRESPOND TO THE OCTAL NUMBERS 10B THROUGH 177B. 
*         THEY HAVE VALUES WHICH ARE THE SAME AS THEIR NAME (IE,
*         "37" MICRO 1,,$37$  ).
*         THE PURPOSE OF THIS IS TO AVOID TYPE 9 ERRORS WHICH 
*         WOULD OTHERWISE OCCUR WHEN *COMPASS* PROCESSES A
*         LINE WITH A #   #DEF#    # MACRO CONTAINING THE 
*         *SYMPL* REPRESENTATION OF AN OCTAL NUMBER (O"37").
  
  
  
          NOREF  .R 
  
 OCTMIC   ECHO   ,FIRST=10B,LAST=177B 
 .R       SET    LAST 
 GENMIC   DUP    LAST-FIRST+1 
 .R       SET    .R-1 
 .V       OCTMIC .R 
 ".V"     MICRO  1,,$.V$
 GENMIC   ENDD
 OCTMIC   ENDD
          SPACE  4,10 
****      PERMANENT FILE EQUIVALENCES.
  
  
  
  
**        ENTRY LENGTHS.
  
  
  
 NWCES    EQU    4           POWER OF 2 EQUIVALENT TO THE *PFC* SIZE
 NWCEM    EQU    6-NWCES     NUMBER OF BITS IN MASK TO ISOLATE *PEO* VAL
 NWCES    OCTMIC NWCES,1
 NWCEM    OCTMIC NWCEM,1
 NWCE     EQU    1S"NWCES"   NUMBER OF CM WORDS IN *PFC*
 NWPH     EQU    2           NUMBER OF CM WORDS IN PERMIT SECTOR HEADER 
 NWPE     EQU    NWPH        NUMBER OF CM WORDS IN PERMIT ENTRY 
  
*         IN ORDER FOR *PFM* TO VALIDATE WORD COUNTS WHEN 
*         READING SECTORS OF CATALOG OR PERMIT ENTRIES, 
*         *NWCE* AND *NWPE* MUST BE POWERS OF TWO.  ALSO
*         *NWPH* MUST BE EQUAL TO *NWPE*. 
  
          ERRNZ  NWPH-NWPE
  
  
  
  
**        COMMAND CODES.
* 
*         NOTE - THESE VALUES ARE HARDCODED INTO *PPCOM*, *COMCMAC*,
*                *COMCCMD* AND *COMCPFM*.  THEY MUST NEVER BE CHANGED.
  
  
 CCSV     EQU    1           SAVE COMMAND 
 CCGT     EQU    2           GET COMMAND
 CCPG     EQU    3           PURGE COMMAND
 CCCT     EQU    4           CATLIST COMMAND
 CCPM     EQU    5           PERMIT COMMAND 
 CCRP     EQU    6           REPLACE COMMAND
 CCAP     EQU    7           APPEND COMMAND 
 CCDF     EQU    10B         DEFINE COMMAND 
 CCAT     EQU    11B         ATTACH COMMAND 
 CCCG     EQU    12B         CHANGE COMMAND 
 CCUA     EQU    13B         UATTACH COMMAND
 CCSA     EQU    14B         SETASA COMMAND 
 CCAF     EQU    15B         SETAF COMMAND
 CCSD     EQU    16B         SETDA COMMAND
 CCDD     EQU    17B         DROPDS COMMAND 
 CCAN     EQU    20B         ASSIGNPF COMMAND 
 CCOD     EQU    21B         OLD COMMAND
 CCAC     EQU    22B         SETPFAC COMMAND
 CCAL     EQU    23B         SETPFAL COMMAND
 CCUG     EQU    24B         UGET COMMAND 
 CCUR     EQU    25B         UREPLACE COMMAND 
 CCDI     EQU    26B         DROPIDS COMMAND
 CCDP     EQU    27B         DELPFC COMMAND 
 CCRS     EQU    30B         RPFSTAT COMMAND
 CCSP     EQU    31B         STAGEPF COMMAND
  
 CCLM     EQU    32B         COMMAND CODE LIMIT 
  
  
  
  
*         ERROR MNEMONICS.
  
  
          QUAL   ERRMSG 
  
*                NME = ERROR MESSAGE MNEMONIC.
*                CODE = ERROR MNEMONIC VALUE
*                TYPE = MESSAGE PROCESSING CONTROL. 
*                   0 = APPEND FILE NAME AND ISSUE TO THE USER DAYFILE. 
*                   1 = ISSUE MESSAGE TO THE USER DAYFILE.
*                   2 = ISSUE MESSAGE TO THE SYSTEM AND USER DAYFILES.
*                   3 = ISSUE NO MESSAGE. 
  
  
*MNE             CODE   TYPE *MESSAGE*
  
 NEC      EQU    0           ( NON-ERROR COMPLETION ) 
 FBS      EQU    1        0  *(FILE NAME) BUSY.*
 FNF      EQU    2        0  *(FILE NAME) NOT FOUND.* 
 EFL      EQU    3        0  *(FILE NAME) EMPTY.* 
 NMS      EQU    4        0  *(FILE NAME) NOT ON MASS STORAGE.* 
 FAP      EQU    5        0  *(FILE NAME) ALREADY PERMANENT.* 
 IFT      EQU    6        0  *(FILE NAME) INCORRECT FILE TYPE.* 
 FNE      EQU    7        1  *FILE NAME ERROR.* 
 IUA      EQU    10B      1  *USER ACCESS NOT VALID.* 
 IDR      EQU    11B      1  *INCORRECT DEVICE REQUEST.*
 FTL      EQU    12B      1  *FILE TOO LONG.* 
 ILR      EQU    13B      1  *PFM INCORRECT REQUEST.* 
 PFN      EQU    14B      1  *DEVICE UNAVAILABLE.*
 DAD      EQU    15B      1  *DIRECT ACCESS DEVICE ERROR.*
 PFA      EQU    16B      1  *PF UTILITY ACTIVE.* 
 DTE      EQU    17B      1  *DATA TRANSFER ERROR.* 
 COF      EQU    20B      1  *TOO MANY PERMANENT FILES.*
 COS      EQU    21B      1  *TOO MUCH INDIRECT ACCESS FILE SPACE.* 
 SPN      EQU    22B      1  *PRUS REQUESTED UNAVAILABLE.*
 IOE      EQU    23B      1  *I/O SEQUENCE ERROR.*
 LFL      EQU    24B      1  *LOCAL FILE LIMIT.*
 PRL      EQU    25B      1  *PRU LIMIT.* 
 PLE      EQU    26B      1  *PERMIT LIMIT EXCEEDED.* 
 PAE      EQU    27B      1  *PFM ARGUMENT ERROR.*
 RSE      EQU    30B      2  *RESEX FAILURE.* 
 TKL      EQU    31B      2  *EQXXX,DNYY, TRACK LIMIT.* 
 FLE      EQU    32B      2  *EQXXX,DNYY, FILE LENGTH ERROR.* 
 RIN      EQU    33B      2  *EQXXX,DNYY, RANDOM INDEX ERROR.*
 DAF      EQU    34B      2  *EQXXX,DNYY, DIRECT ACCESS FILE ERROR.*
 RPE      EQU    35B      2  *EQXXX,DNYY, REPLACE ERROR.* 
 ABT      EQU    36B      2  *EQXXX,DNYY, PFM ABORTED.* 
 MSE      EQU    37B      2  *EQXXX,DNYY, MASS STORAGE ERROR.*
 EDA      EQU    40B      1  *ERROR IN FILE DATA.*
 EPT      EQU    41B      1  *ERROR IN PERMIT DATA.*
 EDP      EQU    42B      1  *DATA/PERMIT ERRORS.*
 FLC      EQU    43B      1  *EOI CHANGED BY RECOVERY.* 
 NEM      EQU    44B      3  NO ERROR MESSAGE.
 RS2      EQU    45B      1  RESERVED 
 RS3      EQU    46B      1  RESERVED 
 RS4      EQU    47B      1  RESERVED 
 FSE      EQU    50B      2  *EQXXX,DNYY, FILE BOI/EOI/UI MISMATCH.*
 SSE      EQU    51B      2  *EQXXX,DNYY, SYSTEM SECTOR ERROR.* 
 BCS      EQU    52B      2  *EQXXX,DNYY, BAD CATALOG/PERMIT SECTOR.* 
 TNR      EQU    53B      2  *EQXXX,DNYY, TRACK NOT RESERVED.*
 PPE      EQU    71B      0  *(FILE NAME) PERMANENT ERROR.* 
 PSI      EQU    72B      0  *(FILE NAME) STAGE INITIATED.* 
 PWE      EQU    73B      0  *(PFN) WAITING FOR SUBSYSTEM.* 
 FIN      EQU    74B      0  *(FILE NAME) INTERLOCKED.* 
 FDA      EQU    75B      0  *(FILE NAME) IS DIRECT ACCESS.*
 FIA      EQU    76B      0  *(FILE NAME) IS INDIRECT ACCESS.*
 FEO      EQU    77B      0  *(FILE NAME) IS EXECUTE ONLY.* 
 SGD      EQU    100B     1  *PF STAGING DISABLED.* 
 IPA      EQU    101B     1  *INCORRECT PFC ADDRESS.* 
 PVE      EQU    102B     1  *PFC VERIFICATION ERROR.*
 FND      EQU    103B     1  *FILE NOT DISK RESIDENT.*
 INA      EQU    104B     1  *INTERLOCK NOT AVAILABLE.* 
 AIO      EQU    105B     1  *NO ALTERNATE STORAGE COPY OF FILE.* 
 ASE      EQU    106B     1  *ALTERNATE STORAGE ERROR.* 
 FTF      EQU    107B     1  *FNT FULL.*
 ICU      EQU    110B     1  *INCORRECT CATALOG UPDATE.*
 PEA      EQU    111B     1  *PFM EXCESS ACTIVITY.* 
 NVX      EQU    112B     1  *NOT VALIDATED TO SET XD/XT.*
 DEM      EQU    113B     1  *XD/XT EXCEEDS MAXIMUM.* 
 JCA      EQU    114B     1  *JOB CANNOT ACCESS FILE.*
 LNJ      EQU    115B     1  *ACCESS LEVEL NOT VALID FOR JOB.*
 WDP      EQU    116B     1  *WRITE-DOWN OF DATA PROHIBITED.* 
 CNJ      EQU    117B     1  *ACCESS CATEGORIES NOT VALID FOR JOB.* 
 LNP      EQU    120B     1  *ACCESS LEVEL NOT VALID ON PF DEVICE.* 
 NVD      EQU    121B     1  *NOT VALIDATED TO DOWNGRADE DATA.* 
 NTD      EQU    122B     0  *(FILE NAME) - NO TEMP DEVICE FOUND.*
 LNF      EQU    123B     1  *ACCESS LEVEL NOT VALID FOR FILE.* 
 TPE      EQU    124B     0  *(FILE NAME) TEMPORARY ERROR, TRY LATER.*
 WNF      EQU    125B     1  *WAITING FOR NFL.* 
 WID      EQU    126B     1  *WAITING - INACCESSIBLE DEVICE.* 
 RTR      EQU    127B     3  ( REQUEST RETRIED BY PFM ) 
 ECD      EQU    130B     1  *ERROR IN CATLIST CONTINUATION DATA.*
 MXER     EQU    177B        MAXIMUM ERROR MNEMONIC 
                                                                      # 
                                               CONTROL IFEQ LISTCON,1;
                                               CONTROL LIST;
                                               CONTROL FI;
                             BEGIN  # COMSPFM # 
  
                                                                      # 
*         *PFM* ERROR MNEMONICS FOR *SYMPL* PROGRAM ACCESS.  MESSAGES 
*         WHICH BEGIN WITH *EQXXX,DNYY, * ARE SHOWN AS *$, *. 
                                                                      # 
  
#NEC      #DEF#  0      # NEC #0#;       # ( NON-ERROR COMPLETION ) # 
#FBS      #DEF#  1      # FBS #1#;       # (NAME) BUSY. # 
#FNF      #DEF#  2      # FNF #2#;       # (NAME) NOT FOUND. #
#EFL      #DEF#  3      # EFL #3#;       # (NAME) EMPTY. #
#NMS      #DEF#  4      # NMS #4#;       # (NAME) NOT ON MASS STORAGE.# 
#FAP      #DEF#  5      # FAP #5#;       # (NAME) ALREADY PERMANENT. #
#IFT      #DEF#  6      # IFT #6#;       # (NAME) INCORRECT FILE TYPE. #
#FNE      #DEF#  7      # FNE #7#;       # FILE NAME ERROR. # 
#IUA      #DEF#  10B    # IUA #O"10"#;   # USER ACCESS NOT VALID. # 
#IDR      #DEF#  11B    # IDR #O"11"#;   # INCORRECT DEVICE REQUEST. #
#FTL      #DEF#  12B    # FTL #O"12"#;   # FILE TOO LONG. # 
#ILR      #DEF#  13B    # ILR #O"13"#;   # PFM INCORRECT REQUEST. # 
#PFN      #DEF#  14B    # PFN #O"14"#;   # DEVICE UNAVAILABLE. #
#DAD      #DEF#  15B    # DAD #O"15"#;   # DIRECT ACCESS DEV ERROR. # 
#PFA      #DEF#  16B    # PFA #O"16"#;   # PF UTILITY ACTIVE. # 
#DTE      #DEF#  17B    # DTE #O"17"#;   # DATA TRANSFER ERROR. # 
#COF      #DEF#  20B    # COF #O"20"#;   # TOO MANY PERMANENT FILES. #
#COS      #DEF#  21B    # COS #O"21"#;   # TOO MUCH INDIRECT SPACE. # 
#SPN      #DEF#  22B    # SPN #O"22"#;   # PRUS DESIRED UNAVAILABLE. #
#IOE      #DEF#  23B    # IOE #O"23"#;   # I/O SEQUENCE ERROR. #
#LFL      #DEF#  24B    # LFL #O"24"#;   # LOCAL FILE LIMIT. #
#PRL      #DEF#  25B    # PRL #O"25"#;   # PRU LIMIT. # 
#PLE      #DEF#  26B    # PLE #O"26"#;   # PERMIT LIMIT EXCEEDED. # 
#PAE      #DEF#  27B    # PAE #O"27"#;   # PFM ARGUMENT ERROR. #
#RSE      #DEF#  30B    # RSE #O"30"#;   # RESEX FAILURE. # 
#TKL      #DEF#  31B    # TKL #O"31"#;   # $, TRACK LIMIT. #
#FLE      #DEF#  32B    # FLE #O"32"#;   # $, FILE LENGTH ERROR. #
#RIN      #DEF#  33B    # RIN #O"33"#;   # $, RANDOM INDEX ERROR.#
#DAF      #DEF#  34B    # DAF #O"34"#;   # $, DIRECT ACCESS FILE ERROR.#
#RPE      #DEF#  35B    # RPE #O"35"#;   # $, REPLACE ERROR. #
#ABT      #DEF#  36B    # ABT #O"36"#;   # $, PFM ABORTED. #
#MSE      #DEF#  37B    # MSE #O"37"#;   # $, MASS STORAGE ERROR. # 
#EDA      #DEF#  40B    # EDA #O"40"#;   # ERROR IN FILE DATA. #
#EPT      #DEF#  41B    # EPT #O"41"#;   # ERROR IN PERMIT DATA. #
#EDP      #DEF#  42B    # EDP #O"42"#;   # DATA/PERMIT ERRORS. #
#FLC      #DEF#  43B    # FLC #O"43"#;   # EOR CHANGED BY RECOVERY. # 
#NEM      #DEF#  44B    # NEM #O"44"#;   # NO ERROR MESSAGE. #
#FSE      #DEF#  50B    # FSE #O"50"#;   # $, FILE BOI/EOI/UI MISMATCH.#
#SSE      #DEF#  51B    # SSE #O"51"#;   # $, SYSTEM SECTOR ERROR. #
#BCS      #DEF#  52B    # BCS #O"52"#;   # $, BAD CATALOG/PERMIT SECTOR#
#TNR      #DEF#  53B    # TNR #O"53"#;   # $, TRACK NOT RESERVED.#
#PPE      #DEF#  71B    # PPE #O"71"#;   # (NAME) PERMANENT ERROR. #
#PSI      #DEF#  72B    # PSI #O"72"#;   # (NAME) STAGE INITIATED. #
#PWE      #DEF#  73B    # PWE #0"73"#;   # (PFN) WAITING FOR SUBSYSTEM.#
#FIN      #DEF#  74B    # FIN #O"74"#;   # (NAME) INTERLOCKED. #
#FDA      #DEF#  75B    # FDA #O"75"#;   # (NAME) IS DIRECT ACCESS. # 
#FIA      #DEF#  76B    # FIA #O"76"#;   # (NAME) IS INDIRECT ACCESS. # 
#FEO      #DEF#  77B    # FEO #O"77"#;   # (NAME) IS EXECUTE ONLY. #
#SGD      #DEF#  100B   # SGD #O"100"#;  # PF STAGING DISABLED. # 
#IPA      #DEF#  101B   # IPA #O"101"#;  # INCORRECT PFC ADDRESS. # 
#PVE      #DEF#  102B   # PVE #O"102"#;  # PFC VERIFICATION ERROR. #
#FND      #DEF#  103B   # FND #O"103"#;  # FILE NOT DISK RESIDENT. #
#INA      #DEF#  104B   # INA #O"104"#;  # INTERLOCK NOT AVAILABLE. # 
#AIO      #DEF#  105B   # AIO #O"105"#;  # NO ALTERNATE STORAGE COPY. # 
#ASE      #DEF#  106B   # ASE #O"106"#;  # ALTERNATE STORAGE ERROR. # 
#FTF      #DEF#  107B   # FTF #O"107"#;  # FNT FULL. #
#ICU      #DEF#  110B   # ICU #O"110"#;  # INCORRECT CATALOG UPDATE. #
#PEA      #DEF#  111B   # PEA #O"111"#;  # PFM EXCESS ACTIVITY. # 
#NVX      #DEF#  112B   # NVX #O"112"#;  # NOT VALID TO SET XD/XT. #
#DEM      #DEF#  113B   # DEM #O"113"#;  # XD/XT EXCEEDS MAXIMUM. # 
#JCA      #DEF#  114B   # JCA #O"114"#;  # JOB CANNOT ACCESS FILE. #
#LNJ      #DEF#  115B   # LNJ #O"115"#;  # ACC LVL NOT VALID FOR JOB. # 
#WDP      #DEF#  116B   # WDP #O"116"#;  # WRITE-DOWN PROHIBITED. # 
#CNJ      #DEF#  117B   # CNJ #O"117"#;  # ACC CAT NOT VALID FOR JOB. # 
#LNP      #DEF#  120B   # LNP #O"120"#;  # ACC LVL NOT VAL ON PF DEV. # 
#NVD      #DEF#  121B   # NVD #O"121"#;  # NOT VALIDATED TO DOWNGRADE.# 
#NTD      #DEF#  122B   # NTD #O"122"#;  # FILE - NO TEMP DEVICE. # 
#LNF      #DEF#  123B   # LNF #O"123"#;  # ACC LVL NOT VAL FOR FILE. #
#TPE      #DEF#  124B   # TPE #O"124"#;  # (NAME) TEMPORARY ERROR. #
#WNF      #DEF#  125B   # WNF #O"125"#;  # WAITING FOR NFL. # 
#WID      #DEF#  126B   # WID #O"126"#;  # WAITING - INACC. DEVICE. # 
#RTR      #DEF#  127B   # RTR #O"127"#;  # ( REQUEST RETRIED BY PFM ) # 
#ECD      #DEF#  130B   # ECD #O"130"#;  # ERROR IN CATLIST CONT DATA. #
                                                                      # 
          QUAL   *
  
  
  
  
**        PERMISSION TYPES. 
  
  
                                                                      # 
#PTWR     #DEF#  0           # PTWR #0#;  # WRITE MODE #
#PTRD     #DEF#  1           # PTRD #1#;  # READ MODE # 
#PTAP     #DEF#  2           # PTAP #2#;  # APPEND MODE # 
#PTEX     #DEF#  3           # PTEX #3#;  # EXECUTE MODE #
#PTNU     #DEF#  4           # PTNU #4#;  # NEGATE PERMISSION # 
#PTMD     #DEF#  5           # PTMD #5#;  # MODIFY MODE # 
#PTRM     #DEF#  6           # PTRM #6#;  # READ/ALLOW MODIFY # 
#PTRA     #DEF#  7           # PTRA #7#;  # READ/ALLOW EXTEND # 
#PTUP     #DEF#  10B         # PTUP #O"10"#;  # UPDATE MODE # 
#PTRU     #DEF#  11B         # PTRU #O"11"#;  # READ/ALLOW UPDATE # 
                                               CONTROL NOLIST;
                                                                      # 
 PTLM     EQU    12B         MAXIMUM PERMISSION TYPE
  
*         NOTE - A NON-ROLLABLE OPTION IS AVAILABLE ON *AFAM* ATTACHES
*         FOR ALL WRITEABLE MODES (WRITE, MODIFY, APPEND AND UPDATE). 
*         THIS OPTION IS USED BY PP PROGRAMS THAT ARE UPDATING FAST 
*         ATTACH FILES BUT WILL ONLY NEED TO HAVE THE FILE ATTACHED 
*         FOR A SHORT TIME.  WHEN ONE OF THESE PROGRAMS FINDS THE FAST
*         ATTACH FILE BUSY, IT CHECKS IF IT IS CURRENTLY ATTACHED WITH
*         THE NON-ROLLABLE OPTION.  IF SO, THE FILE WILL BE AVAILABLE 
*         SHORTLY, SO THE PP WAITS AND TRIES THE *AFAM* FUNCTION AGAIN. 
*         IF NOT, SOME OTHER PROGRAM HAS THE FILE ATTACHED AND THE FILE 
*         MAY NOT BE AVAILABLE FOR AN EXTENDED PERIOD OF TIME.  IN THIS 
*         CASE THE PP DOES NOT WAIT FOR THE FILE BUT ABANDONS THE 
*         FUNCTION IT IS PROCESSING.  THIS OPTION IS USED BY *0AU* WHEN 
*         UPDATING THE *PROFILE* FILE AND BY *0AV* WHEN UPDATING THE
*         SECURITY COUNT IN THE VALIDATION FILE.  IF A PP PROGRAM USES
*         *AFAM* TO ATTACH A FAST ATTACH FILE WITHOUT THE NON-ROLLABLE
*         OPTION SELECTED, THERE MUST BE A LOCAL FNT/FST ENTRY FOR THE
*         FILE SO THAT USER COUNTS WILL BE UPDATED CORRECTLY BY *REC* 
*         ON RECOVERY.
          SPACE  4,14 
**        PERMISSION MODE EQUIVALENCES. 
* 
*         BIT POSITION SET INDICATES PERMISSION ALLOWED 
* 
*T,       2/0,1/J,1/I,1/H,1/G,1/F,1/E,1/D,1/C,1/B,1/A 
* 
*                A           WRITE
*                B           READ 
*                C           APPEND 
*                D           EXECUTE
*                E           NULL (NEGATE ALL PERMISSION) 
*                F           MODIFY 
*                G           READ/ALLOW MODIFY
*                H           READ/ALLOW APPEND
*                I           UPDATE 
*                J           READ/ALLOW UPDATE
  
  
 MDWR     EQU    1757        WRITE - WR, RD, AP, EX, MD, RM, RA, UP, RU 
 MDRD     EQU    12          READ - RD, EX
 MDAP     EQU    4           APPEND - AP
 MDEX     EQU    10          EXECUTE - EX 
 MDNU     EQU    0           NULL - NEGATE ALL PERMISSIONS
 MDMD     EQU    1756        MODIFY - RD, AP, EX, MD, RM, RA, UP, RU
 MDRM     EQU    1312        READ/ALLOW MODIFY - RD, EX, RM, RA, RU 
 MDRA     EQU    212         READ/ALLOW APPEND - RD, EX, RA 
 MDUP     EQU    400         UPDATE - UP
 MDRU     EQU    1012        READ/ALLOW UPDATE - RD, EX, RU 
  
  
  
  
*         CATLIST SUBFUNCTIONS (SPECIFIED IN *MODE* FIELD). 
  
  
 CTNC     EQU    0           NORMAL CATLIST 
 CTPM     EQU    1           PERMIT CATLIST 
 CTID     EQU    2           NORMAL CATLIST WITH *PFID* INFORMATION 
 CTMX     EQU    3           MAXIMUM USER CATLIST SUBFUNCTION + 1 
 CTCA     EQU    CTMX        ALTERNATE CATLIST (INTERNAL TO *PFM*)
  
  
  
  
**        SPECIAL REQUESTS. 
  
  
 SRFA     EQU    1           FORCE FAST ATTACH FILE (*SSJ=*)
 SRDN     EQU    2           REQUEST LIST OF FILES ON DEVICE NUMBER DN
 SRCE     EQU    3           CLEAR ERROR STATUS 
 SRNF     EQU    4           FORCE NON FAST ATTACH OF SPECIFIED FILE
 SRMR     EQU    5           FORCE MASTER DEVICE RESIDENCY (*SSJ=*) 
 SRIE     EQU    6           IGNORE ERROR IDLE STATUS (*SSJ=*)
 SRSY     EQU    7           SET SYSTEM SECTOR (*ASSIGNPF*) 
 SRCP     EQU    10B         RESET CHARGE AND PROJECT NUMBERS 
 SRNB     EQU    11B         REQUIRE FILE NOT BUSY ON *PURGE* 
 SRMA     EQU    12B         MIXED FAST ATTACH, TRY FA THEN NF (*SSJ=*) 
 SRLM     EQU    13B         SPECIAL REQUEST LIMIT + 1
  
  
  
  
                                                                      # 
                                               CONTROL IFEQ LISTCON,1;
                                               CONTROL LIST;
                                               CONTROL FI;
                                                                      # 
**        FILE CATEGORIES.
  
  
                                                                      # 
#FCPR     #DEF#  0           # FCPR #0#;  # PRIVATE FILES # 
#FCSP     #DEF#  1           # FCSP #1#;  # SEMIPRIVATE FILES # 
#FCPB     #DEF#  2           # FCPB #2#;  # PUBLIC FILES #
#FCLI     #DEF#  2           # FCLI #2#;  # LIBRARY FILES # 
                                                                      # 
  
  
  
  
  
**        BACKUP REQUIREMENT. 
  
  
                                                                      # 
#BRNO     #DEF#  1           # BRNO #1#;  # NO BACKUP 
                                            REQUIRED #
#BRAL     #DEF#  2           # BRAL #2#;  # BACKUP ALWAYS 
                                            REQUIRED #
#BRMD     #DEF#  3           # BRMD #3#;  # MEDIA DEPENDENT # 
  
#BRMX     #DEF#  3           # BRMX #3#; #  MAXIMUM BR VALUE #
                                                                      # 
 BRDE     EQU    BRAL        DEFAULT *BR* VALUE 
          ERRNG  BRMX-BRDE   INCORRECT *BR* DEFAULT 
          ERRZR  BRDE        INCORRECT *BR* DEFAULT 
  
  
  
  
**        PREFERRED RESIDENCE.
  
  
                                                                      # 
#RSLK     #DEF#  1           # RSLK #1#;  # LOCKED TO DISK #
#RSDS     #DEF#  2           # RSDS #2#;  # DISK RESIDENCE
                                            PREFERRED # 
#RSMS     #DEF#  3           # RSMS #3#;  # CARTRIDGE RESIDENCE 
                                            PREFERRED # 
#RSNP     #DEF#  4           # RSNP #4#;  # NO PREFERENCE # 
#RSTP     #DEF#  5           # RSTP #5#;  # TAPE RESIDENCE
                                            PREFERRED # 
  
#RSMX     #DEF#  5           # RSMX #5#; #  MAXIMUM PR VALUE #
                                                                      # 
 RSDE     EQU    RSNP        DEFAULT *PR* VALUE 
          ERRNG  RSMX-RSDE   INCORRECT *PR* DEFAULT 
          ERRZR  RSDE        INCORRECT *PR* DEFAULT 
  
  
  
  
**        CARTRIDGE ALTERNATE STORAGE TYPES.
                                                                      # 
#ATNO     #DEF#  0           # ATNO #0#;  # ALTERNATE STORAGE - NONE #
#ATMS     #DEF#  1           # ATMS #1#;  # ALTERNATE STORAGE - MSS # 
#ATAS     #DEF#  2           # ATAS #2#;  # ALTERNATE STORAGE - MSE # 
#ATOD     #DEF#  3           # ATOD #3#;  # ALTERNATE STORAGE - OPTICS# 
                                                                      # 
 ATMAX    EQU    ATOD        MAXIMUM *AT* VALUE 
  
  
  
  
**        CARTRIDGE ALTERNATE STORAGE STATUS FLAGS. 
  
  
                                                                      # 
#AFOBS    #DEF#  0           # AFOBS #0#;  # ALTERNATE STORAGE COPY 
                                             OF FILE OBSOLETE # 
#AFPSE    #DEF#  1           # AFPSE #1#;  # SYSTEM ERROR(S) ON 
                                             ALTERNATE STORAGE #
#AFPDE    #DEF#  2           # AFPDE #2#;  # DATA ERROR(S) ON 
                                             ALTERNATE STORAGE #
#AFPDR    #DEF#  3           # AFPDR #3#;  # DISK COPY HAS BEEN 
                                             *PSUEDO-RELEASED* #
#AFVER    #DEF#  4           # AFVER #4#;  # ALTERNATE STORAGE ADD- 
                                             RESS TO BE VERIFIED #
#AFTMP    #DEF#  5           # AFTMP #5#;  # TEMPORARY ERROR ON 
                                             ALTERNATE STORAGE #
#AFFRE    #DEF#  6           # AFFRE #6#;  # ALTERNATE STORAGE COPY 
                                             TO BE REMOVED FROM CART #
  
  
#AFLOK    #DEF#  13B         # AFLOK #O"13"#;  # INDIRECT ACCESS FILE 
                                                 UNCHANGED SINCE UGET # 
                                                                      # 
  
 AFMAX    EQU    AFFRE       MAXIMUM ALTERNATE STORAGE FLAG 
*                            THAT CAN BE SET/CLEARED BY *SETAF*.
  
  
*         THE FOLLOWING MASKS CORRESPOND TO THE BITS DEFINED ABOVE. 
  
  
 AFOBSM   EQU    1           *AFOBS*
 AFPSEM   EQU    2           *AFPSE*
 AFPDEM   EQU    4           *AFPDE*
 AFPDRM   EQU    10          *AFPDR*
 AFVERM   EQU    20          *AFVER*
 AFTMPM   EQU    40          *AFTMP*
 AFFREM   EQU    100         *AFFRE*
 AFLOKM   EQU    4000        *AFLOK*
  
  
  
  
**        TAPE ALTERNATE STORAGE STATUS FLAGS.
  
  
                                                                      # 
#TFVER    #DEF#  0           # TFVER #0#;  # TAPE ALTERNATE STORAGE 
                                             PRESENT ON *PFLOAD* #
#TFSVS    #DEF#  1           # TFSVS #1#;  # SECONDARY VSN EXISTS # 
#TFPVN    #DEF#  2           # TFPVN #2#;  # PRIMARY VSN
                                             NOT AVAILABLE #
#TFSVN    #DEF#  3           # TFSVN #3#;  # SECONDARY VSN
                                             NOT AVAILABLE #
#TFEPV    #DEF#  4           # TFEPV #4#;  # DATA ERROR ON
                                             PRIMARY VSN #
#TFESV    #DEF#  5           # TFESV #5#;  # DATA ERROR ON
                                             SECONDARY VSN #
#TFLIF    #DEF#  6           # TFLIF #6#;  # FILE ON *LI* FORMAT
                                             TAPE # 
#TFCTS    #DEF#  7           # TFCTS #7#;  # FILE ON CARTRIDGE TAPE 
                                             (*CT* OR *AT*) # 
#TFACS    #DEF#  10B         # TFACS #O"10"#;  # FILE ON ACS CARTRIDGE
                                                 TAPE (*AT*) #
  
#TFLOK    #DEF#  13B         # TFLOK #O"13"#;  # FILE UNCHANGED SINCE 
                                                 DATA READ BY *PFDUMP*
                                                 (SET BY *PFU*)       # 
                                                                      # 
  
 TFMAX    EQU    TFLOK       MAXIMUM TAPE ALTERNATE STORAGE FLAG
*                            THAT CAN BE SET/CLEARED BY *SETAF*.
  
  
*         THE FOLLOWING MASKS CORRESPOND TO THE BITS DEFINED ABOVE. 
  
  
 TFVERM   EQU    1           *TFVER*
 TFSVSM   EQU    2           *TFSVS*
 TFPVNM   EQU    4           *TFPVN*
 TFSVNM   EQU    10          *TFSVN*
 TFEPVM   EQU    20          *TFEPV*
 TFESVM   EQU    40          *TFESV*
 TFLIFM   EQU    100         *TFLIF*
 TFCTSM   EQU    200         *TFCTS*
 TFACSM   EQU    400         *TFACS*
 TFLOKM   EQU    4000        *TFLOK*
  
  
  
  
**        ALTERNATE CATLIST PERMISSIONS.
  
  
                                                                      # 
#ACNO     #DEF#  1           # ACNO #1#;  # ALTERNATE CATLIST NOT 
                                            PERMITTED # 
#ACYS     #DEF#  2           # ACYS #2#;  # ALTERNATE CATLIST 
                                            PERMITTED # 
                                              CONTROL NOLIST; 
                                                                      # 
  
 ACMX     EQU    2           MAXIMUM ALTERNATE CATLIST PERMISSION 
  
 ACDF     EQU    ACNO        DEFAULT PERMISSION FOR NEW FILES 
 ACEX     EQU    ACNO        DEFAULT PERMISSION FOR EXISTING FILES
  
  
  
  
**        ENTRY LOCATIONS OF PFM CALL BLOCKS. 
  
  
*         SYSTEM CALL BLOCK (FET).
  
 CFSN     EQU    0           SYSTEM FILE NAME 
 CFAL     EQU    4           FILE ACCESS LEVEL
 CFFC     EQU    5           FILE ACCESS CATEGORY SET 
 CFCN     EQU    6           CATLIST CONTINUATION DATA (RANDOM INDEX) 
 CFPN     EQU    10B         PERMANENT FILE NAME
 CFCT     EQU    10B         FILE CATEGORY
 CFMD     EQU    10B         FILE MODE
 CFOU     EQU    11B         OPTIONAL USER
 CFPW     EQU    12B         FILE PASSWORD
 CFUC     EQU    13B         USER CONTROL WORD
 CFPK     EQU    14B         PACKNAME 
 CFNF     EQU    15B         NEW FILE NAME
 CFXT     EQU    15B         ACCESS EXPIRATION DATE/TERM
*         EQU    16B         RESERVED 
 CFPR     EQU    17B         FILE PREFERRED RESIDENCE 
 CFBR     EQU    17B         FILE BACKUP REQUIREMENT
 CFSS     EQU    17B         FILE SUBSYSTEM 
 CFAP     EQU    17B         ALTERNATE CATLIST PERMISSION 
 CFSR     EQU    17B         SPECIAL FUNCTION REQUEST BLOCK POINTER 
 CFLM     EQU    20B         FET LIMIT FOR PF PARAMETERS
  
  
  
  
*         SPECIAL FUNCTION REQUEST BLOCK. 
  
 SFID     EQU    0           PERMANENT FILE INDEX (*PFC* ADDRESS) 
 SFES     EQU    1           ALTERNATE STORAGE ERROR STATUS 
 SFAS     EQU    1           ALTERNATE STORAGE POINTER INFORMATION
 SFCD     EQU    2           CREATION DATE AND TIME 
 SFFM     EQU    3           FAMILY 
 SFUI     EQU    3           USER INDEX 
 SFBL     EQU    4           SPECIAL FUNCTION BLOCK LENGTH
  
  
  
  
  
**        CATALOG ENTRY LOCATIONS.
  
  
 DEFC     IFPP
 FCFN     EQU    0           FILE NAME (42 BITS)
 FCUI     EQU    3           USER INDEX (18 BITS) 
 FCLF     EQU    5           LENGTH OF FILE (24 BITS) 
 FCBT     EQU    10          FIRST TRACK OF PERMANENT FILE (12 BITS)
 FCBS     EQU    11          FIRST SECTOR OF PERMANENT FILE (12 BITS) 
 FCRI     EQU    12          PERMIT RANDOM INDEX (24 BITS)
 FCCD     EQU    14          FILE CREATION DATE AND TIME (36 BITS)
 FCAC     EQU    17          ACCESS COUNT OF FILE (24 BITS) 
 FCMD     EQU    21          DATA MODIFICATION DATE-TIME (36 BITS)
 FCCT     EQU    24          CATALOG TYPE (6 BITS)
 FCAM     EQU    24          CATALOG ACCESS MODE (6 BITS) 
 FCEF     EQU    25          FILE ERROR FLAGS (3 BITS)
 FCEC     EQU    25          FILE ERROR CODE (3 BITS) 
 FCDN     EQU    25          DEVICE NUMBER (6 BITS) 
 FCEO     EQU    FCDN        DEVICE NUMBER (6 BITS) 
 FCAD     EQU    26          LAST ACCESS DATE-TIME (36 BITS)
 FCOA     EQU    31          ARCHIVE OPTICAL DISK ADDRESS (24 BITS) 
 FCKD     EQU    33          CONTROL MODIFICATION DATE-TIME (36 BITS) 
 FCRS     EQU    36          PREFERRED RESIDENCE (3 BITS) 
 FCBR     EQU    36          BACKUP REQUIRED (3 BITS) 
 FCFS     EQU    36          FILE SUBSYSTEM (6 BITS)
 FCAP     EQU    37          ALTERNATE CATLIST PERMISSION (2 BITS)
 FCUD     EQU    40          UTILITY CONTROL DATE-TIME (36 BITS)
 FCPW     EQU    43          FILE PASSWORD (42 BITS)
 FCXD     EQU    46          PASSWORD EXPIRATION DATE (18 BITS) 
 FCAF     EQU    50          ALTERNATE STORAGE COPY FLAGS (12 BITS) 
 FCAT     EQU    51          ALTERNATE STORAGE TYPE (6 BITS)
 FCAA     EQU    52          ALTERNATE STORAGE ADDRESS (36 BITS)
 FCAV     EQU    53          ARCHIVE OPTICAL DISK VSN POINTER (24 BITS) 
 FCAL     EQU    56          FILE ACCESS LEVEL (3 BITS) 
 FCFC     EQU    57          FILE ACCESS CATEGORY (32 BITS) 
 FCCN     EQU    62          CHARGE NUMBER (60 BITS)
 FCP1     EQU    67          PROJECT NUMBER (FIRST 10 CHARACTERS) 
 FCP2     EQU    74          PROJECT NUMBER (SECOND 10 CHARACTERS)
 FCTF     EQU    101         TAPE ALTERNATE STORAGE FLAGS (12 BITS) 
 FCTS     EQU    102         TAPE FILE SEQUENCE NUMBER (18 BITS)
 FCTV     EQU    104         ARCHIVE TAPE VSN POINTER (24 BITS) 
 FCCW     EQU    106         USER CONTROL WORD (60 BITS)
 FCIW     EQU    113         INSTALLATION WORD (60 BITS)
 DEFC     ENDIF 
  
 DEFC     IFCP
                                                                      # 
                                               CONTROL IFEQ LISTCON,1;
                                               CONTROL LIST;
                                               CONTROL FI;
  
#FCFN     #DEF#  0           # FCFN #0#;  # FILE NAME (42 BITS) # 
#FCUI     #DEF#  0           # FCUI #0#;  # USER INDEX (18 BITS) #
#FCLF     #DEF#  1           # FCLF #1#;  # LENGTH OF FILE (24 BITS) #
#FCBT     #DEF#  1           # FCBT #1#;  # BEGINNING TRACK OF PERM-
                                            ANENT FILE (12 BITS) #
#FCBS     #DEF#  1           # FCBS #1#;  # BEGINNING SECTOR OF 
                                            PERMANENT FILE (12 BITS) #
#FCRI     #DEF#  2           # FCRI #2#;  # PERMIT RANDOM INDEX 
                                            (24 BITS) # 
#FCCD     #DEF#  2           # FCCD #2#;  # FILE CREATION DATE AND
                                            TIME (36 BITS) #
#FCAC     #DEF#  3           # FCAC #3#;  # ACCESS COUNT OF FILE
                                            (24 BITS) # 
#FCMD     #DEF#  3           # FCMD #3#;  # DATA MODIFICATION DATE
                                            AND TIME (36 BITS) #
#FCCT     #DEF#  4           # FCCT #4#;  # CATALOG TYPE (6 BITS) # 
#FCAM     #DEF#  4           # FCAM #4#;  # CATALOG ACCESS MODE 
                                            (6 BITS) #
#FCEF     #DEF#  4           # FCEF #4#;  # FILE ERROR FLAGS (3 BITS) # 
#FCEC     #DEF#  4           # FCEC #4#;  # FILE ERROR CODE (3 BITS) #
#FCDN     #DEF#  4           # FCDN #4#;  # DEVICE NUMBER (6 BITS) #
#FCEO     #DEF#  4           # FCEO #4#;  # DEVICE NUMBER (6 BITS) #
#FCAD     #DEF#  4           # FCAD #4#;  # LAST ACCESS DATE AND
                                            TIME (36 BITS) #
#FCOA     #DEF#  5           # FCOA #5#;  # ARCHIVE OPTICAL DISK
                                            ADDRESS (24 BITS) # 
#FCKD     #DEF#  5           # FCKD #5#;  # CONTROL MODIFICATION
                                            DATE AND TIME (36 BITS) # 
#FCRS     #DEF#  6           # FCRS #6#;  # PREFERRED RESIDENCE 
                                            (3 BITS) #
#FCBR     #DEF#  6           # FCBR #6#;  # BACKUP REQUIRED (3 BITS) #
#FCFS     #DEF#  6           # FCFS #6#;  # FILE SUBSYSTEM (6 BITS) # 
#FCAP     #DEF#  6           # FCAP #6#;  # ALTERNATE CATLIST 
                                            PERMISSION (2 BITS) # 
#FCUD     #DEF#  6           # FCUD #6#;  # UTILITY CONTROL DATE
                                            AND TIME (36 BITS) #
#FCPW     #DEF#  7           # FCPW #7#;  # FILE PASSWORD (42 BITS) # 
#FCXD     #DEF#  7           # FCXD #7#;  # PASSWORD EXPIRATION DATE
                                            (18 BITS) # 
#FCAF     #DEF#  10B         # FCAF #O"10"#;  # ALTERNATE STORAGE COPY
                                                FLAGS (12 BITS) # 
#FCAT     #DEF#  10B         # FCAT #O"10"#;  # ALTERNATE STORAGE 
                                                TYPE (6 BITS) # 
#FCAA     #DEF#  10B         # FCAA #O"10"#;  # ALTERNATE STORAGE 
                                                ADDRESS (36 BITS) # 
#FCAV     #DEF#  10B         # FCAV #O"10"#;  # ARCHIVE DISK VSN
                                                (24 BITS) # 
#FCAL     #DEF#  11B         # FCAL #O"11"#;  # ACCESS LEVEL (3 BITS) # 
#FCFC     #DEF#  11B         # FCFC #O"11"#;  # FILE ACCESS CATEGORY
                                                (32 BITS) # 
#FCCN     #DEF#  12B         # FCCN #O"12"#;  # CHARGE NUMBER 
                                                (60 BITS) # 
#FCP1     #DEF#  13B         # FCP1 #O"13"#;  # PROJECT NUMBER
                                                FIRST 10 CHARACTERS # 
#FCP2     #DEF#  14B         # FCP2 #O"14"#;  # PROJECT NUMBER
                                                SECOND 10 CHARACTERS #
#FCTF     #DEF#  15B         # FCTF #O"15"#;  # TAPE ALTERNATE STORAGE
                                                FLAGS (12 BITS) # 
#FCTS     #DEF#  15B         # FCTS #O"15"#;  # TAPE FILE SEQUENCE
                                                NUMBER (18 BITS) #
#FCTV     #DEF#  15B         # FCTV #O"15"#;  # ARCHIVE TAPE PACKED 
                                                VSN (24 BITS) # 
#FCUC     #DEF#  16B         # FCUC #O"16"#;  # USER CONTROL WORD 
                                                (60 BITS) # 
#FCIW     #DEF#  17B         # FCIW #O"17"#;  # INSTALLATION WORD 
                                                (60 BITS) # 
                                               CONTROL NOLIST;
                                                                      # 
 DEFC     ENDIF 
  
  
  
  
**        PERMIT ENTRY LOCATIONS. 
  
  
*         PERMIT HEADER INFORMATION.
  
 DEFP     IFPP
 FPRI     EQU    2           PERMIT BUFFER RANDOM LINKAGE 
 FPUI     EQU    4           USER INDEX OF PERMIT BUFFER CREATOR
 FPUD     EQU    7           LAST MODIFICATION DATE FOR THIS SECTOR 
  
  
*         PERMIT ENTRY INFORMATION. 
  
 FPAN     EQU    0           USER NAME OF PERMITTED USER (42 BITS)
 FPPI     EQU    3           PERMITTED USER INDEX (18 BITS) 
 FPXD     EQU    3           PERMIT EXPIRATION DATE (18 BITS) 
 FPAC     EQU    5           ACCESS COUNT (18 BITS) 
 FPMD     EQU    6           PERMITTED MODE (6 BITS)
 FPAD     EQU    7           LAST ACCESS DATE (18 BITS) 
 FPAT     EQU    11          LAST ACCESS TIME (18 BITS) 
 DEFP     ENDIF 
  
  
  
  
**        DIRECT ACCESS SYSTEM SECTOR LOCATIONS.
  
  
 DEFSS    IFPP
 CTSS     EQU    BFMS+2+10*5 CATALOG ENTRY IMAGE
 CASS     EQU    CTSS+NWCE*5 CURRENT ACCESS MODES 
 FISS     EQU    CASS+1      1/FAST ATTACH FILE, 11/*FAT* TABLE INDEX 
 UCSS     EQU    CASS+5      CURRENT USER COUNTS
 WJSS     EQU    BFMS+2+71*5 EJT WORD *JSNE* FOR LAST WRITEABLE ACCESS
 WDSS     EQU    WJSS+5      MID AND DATE/TIME OF LAST WRITEABLE ACCESS 
 I0SS     EQU    BFMS+2+73*5 INSTALLATION AREA
 I1SS     EQU    I0SS+5 
 I2SS     EQU    I1SS+5 
 I3SS     EQU    I2SS+5 
 DEFSS    ENDIF 
  
  
  
  
**        SYSTEM ASSEMBLY CONSTANTS.
  
  
 CPFBL    EQU    7           LENGTH OF *CPUPFM* PARAMETER BLOCK 
 DFPT     EQU    3RDI1       DEFAULT REMOVABLE AUXILIARY PACK TYPE
* 
*         NOTE - THE ACTUAL PACK TYPE MAY BE ADJUSTED VIA THE *DFPT*
*                *IPRDECK* ENTRY. 
  
  
*         CPU TRANSFER THRESHOLD DEFAULT VALUE. 
*         INDIRECT ACCESS FILES LONGER THAN *CPTT* PRU-S WILL BE
*         COPIED VIA *CPUPFM*.  IF *CPTT* IS SET TO ZERO, 
*         CPU TRANSFER WILL BE DISABLED.
* 
*         NOTE - THE ACTUAL THRESHOLD MAY BE ADJUSTED VIA THE *CPTT*
*                *IPRDECK* ENTRY AND/OR *DSD* COMMAND.
  
 CPTT     EQU    100B 
  
          ERRNG  7777-CPTT   THRESHOLD TOO LARGE
  
  
*         *CPUPFM* FLAG BIT MASKS.
  
 FGIA     EQU    1           INDIRECT ALLOCATION INTERLOCK HELD 
  
  
*         *CPUPFM* COMMUNICATION FILES. 
* 
*         THE "APF" FNT POINTS TO THE ORIGINAL PERMANENT FILE WITHIN
*         THE INDIRECT CHAIN ON SOME *APPEND* REQUESTS. 
* 
*         THE "ILK" FNT POINTS TO THE CATALOG TRACK FOR THE USER. 
*         IT HAS THE TRACK INTERLOCK BIT SET (TO INTERLOCK THE
*         USER-S CATALOG) AND THE PF ACTIVITY BIT SET (TO PREVENT 
*         THE DEVICE FROM BEING UNLOADED).
* 
*         THE "PFN" FNT POINTS TO THE PERMANENT FILE WITHIN THE 
*         INDIRECT CHAIN.  WHEN EXTENDING THE INDIRECT CHAIN
*         ON A BUFFERED DEVICE, IT WILL HAVE THE TRACK INTERLOCK
*         BIT SET TO INTERLOCK ALLOCATION ON THE DEVICE.  THIS
*         ALLOWS THE INDIRECT CHAIN TO BE EXTENDED VIA A SEQUENTIAL 
*         WRITE, WHICH IS A REQUIREMENT FOR BUFFERED DEVICES. 
  
  
 APF      MICRO  1,,/PFM*APF/ 
 ILK      MICRO  1,,/PFM*ILK/ 
 PFN      MICRO  1,,/PFM*PFN/ 
  
  
*         SPECIAL USER INDEXES. 
* 
*         A *PFDUMP* WITH THE *PURGE* OPTION WILL NOT PURGE 
*         FILES FROM USER INDEXES HIGHER THAN *PGUI*. 
* 
*         ANY USER NAME WITH A USER INDEX .GE. *AUIMX*
*         IS NOT AVAILABLE FOR INTERACTIVE LOGIN, AND ONLY
*         A SYSTEM ORIGIN JOB MAY DO A *USER* COMMAND TO IT.
  
 PGUI     EQU    300000      USER INDEX LIMIT ON *PFDUMP*/*PURGE* 
  
 HSUI     EQU    377677      CENTRAL HARDWARE SUPPORT USER INDEX
          ERRPL  HSUI-AUIMX  USER MUST BE ABLE TO LOGIN 
  
 AUIMX    EQU    377700      MAXIMUM NON-SYOT USER (ALSO IN *COMSACC*)
  
 SBUI     EQU    377760 - 377767  SUBFAMILY USER INDICES
 NTUI     EQU    377772      NETWORK USER INDEX 
 PLUI     EQU    377773      CYBIS USER INDEX 
 AAUI     EQU    377774      APPLICATION ACCOUNTING LIBRARY USER INDEX
 IFUI     EQU    377775      *IAPF* FLAWED SECTOR CHAIN USER INDEX
 LIUI     EQU    377776      LIBRARY USER INDEX 
 SYUI     EQU    377777      SYSTEM USER INDEX (PERMITTED INDEX)
  
  
*         *MSE*/*MSS* CONSTANTS.
  
 MIRE     EQU    70B         ADDRESS OF *MSS*/*MSE* *TDAM* BUFFER 
 MNSF     EQU    8D          MAXIMUM NUMBER OF SUBFAMILIES (0 - 7)
 MSFCAT   MICRO  1,6,*MSFCAT*  NAME STEM FOR *MSS* CATALOG FILES
 SFMCAT   MICRO  1,6,*SFMCAT*  NAME STEM FOR *MSE* CATALOG FILES
  
  
*         *FPXL* DEFINES THE MAXIMUM EXPIRATION TERM WHICH MAY BE 
*         SPECIFIED FOR A PASSWORD OR PERMIT (IN DAYS).  *FPXT* 
*         DEFINES THE DEFAULT VALUE THAT WILL BE USED IF NONE IS
*         SPECIFIED.  A VALUE OF 7777 INDICATES A NON-EXPIRING
*         PASSWORD OR PERMIT. 
  
 FPXL     EQU    7777        MAXIMUM PASSWORD/PERMIT EXPIRATION TERM
 FPXT     EQU    7777        DEFAULT PASSWORD/PERMIT EXPIRATION TERM
          ERRNG  FPXL-FPXT   DEFAULT MUST BE .LE. MAXIMUM 
          ERRNG  7777-FPXL   MAXIMUM MUST BE .LE. 7777B 
  
  
*         *PMLM* DEFINES THE NUMBER OF EXPLICIT PERMIT ENTRIES ALLOWED
*         FOR EACH PERMANENT FILE.  THE CURRENT VALUE IS 2 SECTORS OF 
*         31D ENTRIES.
  
 PMLM     EQU    2*31D       NUMBER OF EXPLICIT PERMIT ENTRIES
          ERRNG  4095D-PMLM  EXPLICIT PERMIT LIMIT EXCEEEDED
  
  
*         *MNHS* DEFINES THE MINIMUM SIZE OF HOLE THAT
*         *PFM* WILL CREATE WHEN USING AN EXISTING HOLE.
*         THIS SIZE INCLUDES SYSTEM SECTOR AND EOI. 
  
 MNHS     EQU    5           MINIMUM HOLE SIZE
          ERRNG  MNHS-3      NOT ROOM FOR SYSTEM, DATA AND EOI SECTORS
          ERRNG  7777-MNHS   MINIMUM MUST BE .LE. 7777B 
  
  
*         *APLO* IS THE AUXILIARY PACK LOAD OPTION FOR PERMANENT
*         FILE ACCESS FROM ANOTHER MAINFRAME VIA *RHF*.  IF *APLO=0*, 
*         ACCESS TO A AUXILIARY PACK WILL BE ALLOWED ONLY IF THE
*         PACK IS ALREADY MOUNTED.  IF *APLO=1*, A REQUEST FOR THE PACK 
*         TO BE MOUNTED WILL BE ISSUED IN THE NORMAL FASHION. 
*         IT SHOULD BE NOTED THAT A TEMPORARY DEADLOCK SITUATION
*         CAN OCCUR IF *APLO=1* IS USED, SINCE THERE IS NO GLOBAL 
*         RESOURCE EXECUTIVE IN AN RHF MULTI-MAINFRAME ENVIRONMENT. 
*         IF THIS OCCURS, THE RHF APPLICATIONS INVOLVED WILL BE 
*         TIMED OUT AND ABORTED.
  
 APLO     EQU    1           ALLOW AUX PACK LOAD REQUESTS VIA RHF 
  
****
          SPACE  4,10 
**        USER CONTROL VALUES.
* 
*         THE FOLLOWING VALUES DEFINE THE UPPER LIMITS FOR EACH 
*         RANGE INDEX (0 - 7) SPECIFIED FOR THE INDIVIDUAL USER 
*         CONTROLS.  A VALUE OF ZERO FOR AN UPPER LIMIT INDICATES 
*         AN UNLIMITED VALUE. 
  
  
*         NUMBER OF FILES.  (VALUE = FILES/10B) 
  
 NFRNG1   EQU    1
 NFRNG2   EQU    4
 NFRNG3   EQU    10 
 NFRNG4   EQU    20 
 NFRNG5   EQU    100
 NFRNG6   EQU    400
 NFRNG7   EQU    0
  
  
*         INDIVIDUAL INDIRECT ACCESS FILE SIZE.  (VALUE = PRUS/10B) 
  
 FSRNG1   EQU    1
 FSRNG2   EQU    3
 FSRNG3   EQU    10 
 FSRNG4   EQU    30 
 FSRNG5   EQU    100
 FSRNG6   EQU    200
 FSRNG7   EQU    0
  
  
*         CUMULATIVE INDIRECT ACCESS FILE SIZE.  (VALUE = PRUS/100B)
  
 CSRNG1   EQU    10 
 CSRNG2   EQU    50 
 CSRNG3   EQU    500
 CSRNG4   EQU    1000 
 CSRNG5   EQU    2000 
 CSRNG6   EQU    4000 
 CSRNG7   EQU    0
  
  
*         INDIVIDUAL DIRECT ACCESS FILE SIZE.  (VALUE = PRUS/100B)
  
 DSRNG1   EQU    10 
 DSRNG2   EQU    50 
 DSRNG3   EQU    500
 DSRNG4   EQU    1000 
 DSRNG5   EQU    2000 
 DSRNG6   EQU    4000 
 DSRNG7   EQU    0
          SPACE  4
          BASE   *
          SPACE  4
          COL    12 
                                                                      # 
                                               CONTROL IFEQ LISTCON,1;
                                               CONTROL LIST;
                                               CONTROL FI;
                                                                      # 
  
*     *SYMPL* BASED ARRAY DESCRIBING *PFC* FORMAT.
                                                                      # 
  
#NWCE     #DEF#  16D         # PFCENTL #16#;  # SIZE OF *PFC* ENTRY # 
  
  
           COMMON SPFMCOM;
             BEGIN  # SPFMCOM # 
  
             BASED ARRAY PFC [0:0] S(PFCENTL);
               BEGIN
               ITEM PFC$FN     C(FCFN,00,07);  # FILE NAME #
               ITEM PFC$UI     U(FCUI,42,18);  # USER INDEX # 
               ITEM PFC$SF     U(FCUI,57,03);  # SUB FAMILY # 
               ITEM PFC$LF     U(FCLF,00,24);  # FILE LENGTH #
               ITEM PFC$BT     U(FCBT,36,12);  # BEGINNING TRACK OF 
                                                 FILE # 
               ITEM PFC$BS     U(FCBS,48,12);  # BEGINNING SECTOR OF
                                                 FILE # 
               ITEM PFC$DA     B(FCBS,48,01);  # DIRECT ACCESS FILE 
                                                 BIT #
               ITEM PFC$RI     I(FCRI,00,24);  # PERMIT RANDOM INDEX #
               ITEM PFC$CD     U(FCCD,24,36);  # CREATION DATE AND
                                                 TIME # 
               ITEM PFC$CDD    U(FCCD,24,18);  # CREATION DATE #
               ITEM PFC$CDT    U(FCCD,42,18);  # CREATION TIME #
               ITEM PFC$AC     U(FCAC,00,24);  # ACCESS COUNT # 
               ITEM PFC$MD     U(FCMD,24,36);  # MODIFICATION DATE AND
                                                 TIME # 
               ITEM PFC$MDD    U(FCMD,24,18);  # MODIFICATION DATE #
               ITEM PFC$MDT    U(FCMD,42,18);  # MODIFICATION TIME #
               ITEM PFC$CT     U(FCCT,00,06);  # CATALOG TYPE # 
               ITEM PFC$AM     U(FCAM,06,06);  # CATALOG ACCESS MODE #
               ITEM PFC$EF     U(FCEF,12,03);  # FILE ERROR FLAGS # 
               ITEM PFC$EC     U(FCEC,15,03);  # FILE ERROR CODE #
               ITEM PFC$DN     U(FCDN,18,06);  # DEVICE NUMBER #
               ITEM PFC$EO     U(FCEO,18,06);  # DEVICE NUMBER #
               ITEM PFC$AD     U(FCAD,24,36);  # LAST ACCESS DATE AND 
                                                 TIME # 
               ITEM PFC$ADD    U(FCAD,24,18);  # LAST ACCESS DATE # 
               ITEM PFC$ADT    U(FCAD,42,18);  # LAST ACCESS TIME # 
               ITEM PFC$KD     U(FCKD,24,36);  # CONTROL MODIFICATION 
                                                 DATE AND TIME #
               ITEM PFC$KDD    U(FCKD,24,18);  # CONTROL MODIFICATION 
                                                 DATE # 
               ITEM PFC$KDT    U(FCKD,42,18);  # CONTROL MODIFICATION 
                                                 TIME # 
               ITEM PFC$RS     U(FCRS,00,03);  # PREFERRED RESIDENCE #
               ITEM PFC$BR     U(FCBR,03,03);  # BACKUP REQUIREMENT # 
               ITEM PFC$FS     U(FCFS,06,06);  # FILE SUBSYSTEM # 
               ITEM PFC$ACP    U(FCAP,12,02);  # ALTERNATE CATLIST
                                                 PERMISSION # 
               ITEM PFC$UD     U(FCUD,24,36);  # UTILITY CONTROL DATE 
                                                 AND TIME # 
               ITEM PFC$UDD    U(FCUD,24,18);  # UTILITY CONTROL DATE # 
               ITEM PFC$UDT    U(FCUD,42,18);  # UTILITY CONTROL TIME # 
               ITEM PFC$PW     U(FCPW,00,42);  # FILE PASSWORD #
               ITEM PFC$XD     U(FCXD,42,18);  # PASSWORD EXPIRATION
                                                 DATE # 
               ITEM PFC$AF     U(FCAF,00,12);  # ALTERNATE STORAGE COPY 
                                                 FLAGS #
               ITEM PFC$AFLOK  B(FCAF,00,01);  # INDIRECT ACCESS FILE 
                                                 UNCHANGED SINCE UGET # 
               ITEM PFC$AFFRE  B(FCAF,05,01);  # ALTERNATE STORAGE COPY 
                                              TO BE REMOVED FROM CART # 
               ITEM PFC$AFTMP  B(FCAF,06,01);  # TEMPORARY ERROR FLAG # 
               ITEM PFC$AFVER  B(FCAF,07,01);  # ALTERNATE STORAGE
                                                 VERIFY FLAG #
               ITEM PFC$AFPDR  B(FCAF,08,01);  # PSUEDO RELEASE FLAG #
               ITEM PFC$AFPDE  B(FCAF,09,01);  # DATA ERROR FLAG #
               ITEM PFC$AFPSE  B(FCAF,10,01);  # SYSTEM ERROR FLAG #
               ITEM PFC$AFOBS  B(FCAF,11,01);  # ALTERNATE STORAGE COPY 
                                                 OBSOLETE FLAG #
               ITEM PFC$AT     U(FCAT,18,06);  # ALTERNATE STORAGE
                                                 TYPE # 
               ITEM PFC$AA     U(FCAA,24,36);  # ALTERNATE STORAGE
                                                 ADDRESS #
               ITEM PFC$AV     U(FCAV,36,24);  # ARCHIVE DISK VSN 
                                                 ADDRESS (36 BITS) #
               ITEM PFC$AL     U(FCAL,21,03);  # FILE ACCESS LEVEL #
               ITEM PFC$FC     U(FCFC,28,32);  # FILE CATEGORY SET #
               ITEM PFC$CN     U(FCCN,00,60);  # CHARGE NUMBER #
               ITEM PFC$P1     U(FCP1,00,60);  # PROJECT NUMBER 
                                                 FIRST 10 CHARACTERS #
               ITEM PFC$P2     U(FCP2,00,60);  # PROJECT NUMBER 
                                                 SECOND 10 CHARACTERS # 
               ITEM PFC$TF     U(FCTV,00,12);  # TAPE ALTERNATE STORAGE 
                                                 FLAGS #
               ITEM PFC$TS     U(FCTV,18,18);  # TAPE FILE SEQUENCE 
                                                 NUMBER # 
               ITEM PFC$TV     U(FCTV,36,24);  # ARCHIVE TAPE PACKED
                                                 VSN #
               ITEM PFC$UC     U(FCUC,00,60);  # USER CONTROL WORD #
               ITEM PFC$IW     U(FCIW,00,60);  # RESERVED FOR INSTALL-
                                                 ATION #
  
                                 END
  
                               END  # SPFMCOM # 
  
                             END  # COMSPFM # 
                                                                      # 
   COL 30 
  
  
          ENDX    #                            CONTROL LIST;
