COMSTFM 
COMMON
          CTEXT  COMSTFM - TAPE FILE MANAGER EQUIVALENCES.
 COMSTFM  SPACE  4,10 
*         COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 COMSTFM  SPACE  4,10 
***       COMSTFM - TAPE MANAGEMENT SYSTEM EQUIVALENCES.
* 
*         J.P. MOORE         81/04/01.
  
          BASE   M
          SPACE  4
***       COMSTFM PROVIDES THE EQUIVALENCES FOR CPU 
*         PROGRAMS THAT USE THE TAPE MANAGEMENT 
*         SYSTEM. 
          SPACE  4,10 
***       TFM RA+1 REQUEST FUNCTIONS. 
* 
*T        18/ *TFM,1/ R,5/ CP,12/ FC,18/ ADDR.
* 
*         R      = AUTO-RECALL (NON-MAGNET ONLY). 
*         CP     = CONTROL POINT NUMBER.
*         FC     = FUNCTION CODE. 
*         ADDR   = FET ADDRESS (NON-MAGNET).
*                = UDT ADDRESS (MAGNET ONLY). 
  
  
 BEGIN    BSSN
  
 TCSF     BSSN   1           TFM COMMANDS 
 RSXF     BSSN   1           RESEX INITIAL ASSIGNMENT 
 MAGF     BSSN   1           MAGNET ASSIGN NEXT REEL
 SSJF     BSSN   1           SSJ= INTERFACE 
 MXNR     BSSN   1           MAXIMUM RA+1 REQUESTS
  
 END      BSSN
          SPACE  4,10 
***       *TFM* ASSIGNMENT FET FORMAT.
* 
*T FET+0  42/ FILE NAME,1/ R,8/ AT,6/ CODE,3/ ST
*T,   +1  15/ 0,1/ EP, 27/ 0,18/ FIRST
*T,   +2  42/ 0,18/ IN
*T,   +3  42/ 0,18/ OUT 
*T,   +4  12/ FNT,30/ 0,18/ LIMIT 
*T,   +5  42/ 0,18/ EADD
*T,   +6  30/ CURRENT R.I.,30/ RANDOM REQUEST 
*T,   +7  36/ VSN,12/ FLAGS,12/ REEL NUM. 
*T,  +10  60/ TAPE DESCRIPTORS
*T,  +11  36/ PRN,6/ FA,18/ SECTION NUMBER
*T,  +12  60/ FILE IDENTIFIER 
*T,  +13  42/ FID (CONT.),18/SEQ. NUM.
*T,  +14  36/ SET I.D.,9/ VER.,15/ GEN. 
*T,  +15  30/ RETENTION DATE,30/ CREATION DATE
*T,  +16  42/ ALT. USERNAME,18/ TO
*T,  +17  42/ PASSWORD,6/ AC,6/ CT,6/ MD
* 
*         NOTE   THE ABOVE FORMAT IS FOR THE USER CALL TO *LFM* VIA THE 
*                *LABEL* MACRO.  WHEN *RESEX* CALLS *TFM*, THE CREATION 
*                DATE AND RETENTION DATE FIELDS ARE REVERSED. 
* 
***       *TFM* MACRO FET FORMAT. 
* 
*T FET+0  42/ FILE NAME,1/ R,8/ AT,6/ CODE,3/ ST
*T,   +1  15/ 0,1/ EP, 27/ 0,18/ FIRST
*T,   +2  42/ 0,18/ IN
*T,   +3  42/ 0,18/ OUT 
*T,   +4  12/ FNT,30/ 0,18/ LIMIT 
*T,   +5  42/ 0,18/ EADD
*T,   +6  24/ CURRENT R.I.,12/ 0,24/ RANDOM REQUEST 
*T,   +7  36/ VOLUME SERIAL NUMBER,24/ 0
*T,  +10  60/ 0 
*T,  +11  60/ 0 
*T,  +12  60/ OLD FILE IDENTIFIER (OFI) 
*T,  +13  42/ (OFI CONT.),18/ 0 
*T,  +14  60/ NEW FILE IDENTIFIER (NFI) 
*T,  +15  42/ (NFI CONT.),6/ 0,6/ CE,6/ AN
*T,  +16  42/ ALT. USER OR UCW
*T,  +17  42/ PASSWORD,6/ AC,6/ CT,6/ MD
* 
*         R      ROLLOUT ON ERROR.
* 
*         AT     ABNORMAL TERMINATION CODE. 
* 
*         CODE   SUBFUNCTION CODE.
* 
*         ST     FET STATUS CODE. 
*                1 = OPERATION COMPLETE.
*                2 = END OF INFORMATION.
*                4 = INTERLOCK OPERATION (*TFSP* ONLY)
* 
*         EP     USER ERROR PROCESSING. 
* 
*         FNT    CATALOG FNT ADDRESS. 
* 
*         EADD   ERROR MESSAGE BUFFER ADDRESS.
* 
*         TO     TMS PROCESSING OPTIONS.
*                 1 = INHIBIT DEFAULTED ATTRIBUTES. 
*                 2 = FOREIGN TAPE FILE.
*                 4 = SYMBOLIC ACCESS.
*                10 = RESERVE ASSIGNED SCRATCH. 
*                20 = TMS CONTROLLED FILE.
*                40 = APPEND FILE (CREATE MULTI-FILE) 
*               100 = RESERVED. 
*               200 = IGNORE CATALOG ERROR FLAG.
*               400 = PRN SPECIFIED MOUNT. (RECLAIM USE ONLY) 
*              1000 = CHECK CATALOG ERROR FLAG. 
* 
*         AC     ALTERNATE USER LIST ATTRIBUTE. 
* 
*         CT     CATEGORY TYPE. 
* 
*         MD     FILE ACCESS MODE.
* 
*         FLAGS  MISCELLANEOUS FLAGS. 
*                4000 = BLANK LABEL REQUIRED. 
*                2000 = VSN SPECIFIED ON THE REQUEST OR VSN COMMAND.
*                1000 = USER OWNED FILE.
*                 400 = VSN OFFSITE.
  
  
 TFLF     EQU    0           LOCAL FILE NAME
 TFEA     EQU    5           ERROR MESSAGE ADDRESS
 TFRR     EQU    6           CURRENT/REQUEST RANDOM INDEX 
 TFFP     EQU    7           FIRST WORD OF TMS PARAMETERS 
 TFES     EQU    TFFP+0      EXTERNAL SERIAL NUMBER 
 TFTD     EQU    TFFP+1      TAPE DESCRIPTORS 
 TFVS     EQU    TFFP+2      VSN (INTERNAL) 
 TFID     EQU    TFFP+3      FILE IDENTIFIER
 TFSQ     EQU    TFFP+4      FILE SEQUENCE NUMBER 
 TFSI     EQU    TFFP+5      SET I.D., VERSION, GENERATION
 TFNI     EQU    TFSI        NEW FILE IDENTIFIER (*AMDS* ONLY)
 TFCR     EQU    TFFP+6      CREATION/RETENTION DATE
 TFCE     EQU    TFCR        CE, AN (*AMDS* ONLY) 
 TFUN     EQU    TFFP+7      ALTERNATE USER, TMS OPTIONS
 TFUC     EQU    TFUN        USER CONTROL WORD
 TFPW     EQU    TFFP+10B    FILE PASSWORD, CATEGORY, MODE
 TFAC     EQU    TFPW        AC, CT, MD 
 TFPL     EQU    TFPW-TFFP+1 FET PARAMETER LENGTH 
          SPACE  4,10 
***       COMMAND REQUEST SUBFUNCTIONS. 
* 
*         COMMAND REQUESTS TO TFM ARE PLACED
*         IN WORD 0 OF THE FET, BITS 3 - 8. 
  
  
 BEGIN    BSSN   1
  
 RSVS     BSSN   1           RESERVE TAPE FILE
 ADMS     BSSN   1           ADMIT ALTERNATE USERS
 AUDS     BSSN   1           AUDIT CATALOG ENTRY
 AMDS     BSSN   1           ALTER CATALOG ENTRY
 RLSS     BSSN   1           RELEASE TAPE FILE
 GVSS     BSSN   1           GET VSN
 MCSS     BSSN   1           MAXIMUM COMMAND SUBFUNCTIONS 
  
 END      BSSN
          SPACE  4,10 
***       RESOURCE EXECUTIVE REQUEST SUBFUNCTIONS.
* 
*         COMMAND REQUESTS TO TFM ARE PLACED
*         IN WORD 0 OF THE FET, BITS 3 - 8. 
  
  
 BEGIN    BSSN   1
  
 RFAS     BSSN   1           *RESEX* FIRST-REEL ASSIGNMENT
 RAPS     BSSN   1           *RESEX* ABORT PROCESSING 
 MFAS     BSSN   1           *RESEX* MULTI-FILE ASSIGNMENT
  
 END      BSSN
          SPACE  4,10 
***       MAGNETIC TAPE EXECUTIVE REQUEST SUBFUNCTIONS. 
* 
*         MAGNET REQUESTS ARE PLACED IN BYTE 0 OF WORD
*         UTMS IN THE UDT. SEE *COMSMTX* FOR A DESCRIPTION
*         OF THE UDT. 
  
  
 BEGIN    BSSN   1
  
 AVSS     BSSN   1           ADVANCE VSN FILE 
 CPPS     BSSN   1           CLEAR *POSMF* CATALOG POINTER
 RFVS     BSSN   1           REWIND TO FIRST VOLUME 
 RTFS     BSSN   1           RETURN/RESERVE TAPE FILE 
 UCES     BSSN   1           UPDATE CATALOG ENTRY 
 VMFS     BSSN   1           VALIDATE MULTI-FILE REQUEST
 VTLS     BSSN   1           VERIFY TAPE LABELS 
  
 END      BSSN
          SPACE  4,10 
***       TAPE FILE SUPERVISOR REQUEST SUBFUNCTIONS.
* 
*         COMMAND REQUESTS TO TFM ARE PLACED
*         IN WORD 0 OF THE FET, BITS 3 - 8. 
  
  
 BEGIN    BSSN   1
  
 AUCS     BSSN   1           AUDIT TAPE CATALOG 
 CUAS     BSSN   1           CLEAR UTILITY ACTIVE 
 DVES     BSSN   1           DELETE VSN ENTRY(S)
 GNSS     BSSN   1           GET NEXT SCRATCH 
 ICES     BSSN   1           INSERT CATALOG ENTRY 
 ISFS     BSSN   1           INITIALIZE FAMILY CATALOG
 IUES     BSSN   1           INSERT USERNAME ENTRY(S) 
 LAES     BSSN   1           LIST ADMIT ENTRY(S)
 LVES     BSSN   1           LIST VSN ENTRY(S)
 RAES     BSSN   1           REPLACE/ADD ADMIT ENTRY(S) 
 RCES     BSSN   1           REPLACE CATALOG ENTRY
 RDRS     BSSN   1           BLOCK READ REQUEST 
 RTCS     BSSN   1           RELEASE TAPE CATALOG 
 RVES     BSSN   1           REPLACE/ADD VSN ENTRY(S) 
 SUAS     BSSN   1           SET UTILITY ACTIVE 
 WRRS     BSSN   1           BLOCK REWRITE REQUEST
 MXTS     BSSN   1           MAXIMUM *TFSP* REQUESTS
  
 END      BSSN
          SPACE  4,10 
***       AUDIT SEARCH TYPES. 
* 
*         AUDIT SEARCH TYPES ARE SET IN FET+TFPW, 
*         BYTE 4. THESE ARE SPECIAL REQUESTS TO *TFM* 
*         THAT DETERMINE THE TYPE OF DATA TO BE RETURNED
*         AND THE MODE OF THE SEARCH. 
* 
  
  
 BEGIN    BSSN   1
  
 FCST     BSSN   1           FULL CATALOG SEARCH TYPE 
 SCST     BSSN   1           SELECTIVE CATALOG SEARCH TYPE
 FAST     BSSN   1           FULL ADMIT SEARCH TYPE 
 SAST     BSSN   1           SELECTIVE ADMIT SEARCH TYPE
 MXST     BSSN   1           MAXIMUM SEARCH TYPE
  
 END      BSSN
          SPACE  4,10 
***       FILE CATEGORIES.
* 
*         FILE ACCESS CATEGORIES ARE SET DIRECTLY IN THE
*         FET OR BY THE CT= PARAMETER OF THE LABEL, 
*         REQUEST, ALTER, AND RESERVE COMMANDS. 
* 
*         FCPU   = PUBLIC FILES. AVAILABLE FOR ACCESS BY
*                  ALL USER WHO KNOW THE FILE/VSN NAME, USER
*                  NUMBER AND PASSWORD. TFM RECORDS THE 
*                  NUMBER OF TIMES THE FILE WAS ACCESSED AND
*                  THE DATE AND TIME OF LAST ACCESS.
* 
*         FCPR   = PRIVATE FILES. AVAILABLE FOR ACCESS ONLY 
*                  BY THEIR CREATOR AND BY THOSE GRANTED
*                  EXPLICIT PERMISSION BY THE FILE CREATOR. 
* 
*         FCSP   = SEMI-PRIVATE. AVAILABLE FOR ACCESS BY ANY
*                  USER WHO KNOWS THE FILE/VSN NAME, USER 
*                  NUMBER, AND PASSWORD, AND WHO HAS NOT
*                  BEEN EXPLICITLY DENIED PERMISSION TO THE 
*                  FILE. THE SYSTEM RECORDS THE USER NUMBER 
*                  OF EACH USER WHO ACCESSED THE FILE, THE
*                  NUMBER OF ACCESSES MADE, AND THE DATE
*                  AND TIME OF THE LAST ACCESS BY EACH USER.
  
  
 BEGIN    BSSN   1
  
 FCPU     BSSN   1           PUBLIC FILE
 FCPR     BSSN   1           PRIVATE FILE 
 FCSP     BSSN   1           SEMI-PRIVATE FILE
 FCMX     BSSN   1           MAXIMUM FILE CATEGORIES
  
 END      BSSN
          SPACE  4,10 
***       FILE ACCESS MODES.
* 
*         FILE ACCESS MODE GRANTED TO OTHER USERS IF
*         THE FILE IS SEMI-PRIVATE OR PUBLIC, AND IF
*         EXPLICIT ACCESS PERMISSION HAS NOT BEEN 
*         GRANTED TO THAT USER. 
* 
*         FMIU   = IMPLICIT USER (INTERNAL).
* 
*         FMRE   = READ ONLY FILE.
* 
*         FMWR   = WRITE OR READ PERMISSION.
* 
*         FMNA   = NEGATE FILE ACCESS. DENY USER
*                  ACCESS 
* 
*         FMPF   = PERMANENT FILE NAME (CONVERSION).
  
  
 BEGIN    BSSN
  
 FMIU     BSSN   1           IMPLICIT USER
 FMRE     BSSN   1           READ ONLY MODE 
 FMWR     BSSN   1           WRITE MODE 
 FMNA     BSSN   1           NEGATE ACCESS MODE 
 FMPF     BSSN   1           PERMANENT FILE NAME (CONVERSION) 
 FMMX     BSSN   1           MAXIMUM FILE MODES 
  
 END      BSSN
          SPACE  4,10 
***       ALTERNATE USER ACCESSIBILITY. 
* 
*         FILE ACCESSIBILITY IS SET THROUGH THE AC= 
*         PARAMETER ON THE LABEL, REQUEST, ALTER, 
*         WHO, OTHER THEN THE FILE CREATOR, CAN 
*         OBTAIN A AUDIT LIST OF THE FILE.
  
  
 BEGIN    BSSN   1
  
 FAYS     BSSN   1           ALTERNATE USERS CAN AUDIT
 FANO     BSSN   1           ALTERNATE USERS CANNOT AUDIT 
  
 END      BSSN
          SPACE  4,10 
***       BUFFER CONTROL WORD FORMAT. 
* 
*         THE BUFFER CONTROL WORDS ARE THE FIRST FOUR 
*         CM WORDS OF EACH PRU OF THE TAPE FILE CATALOG.
*         THESE WORDS DEFINE DATA TYPE, LINKAGE AND 
*         ACCESS. 
* 
*T        6/ RT,6/ LV,12/ WB,12/ EL,12/ NE,12/ FE 
*T,       24/ 0,36/ LAST MODIFICATION DATE/TIME (PACKED)
*T,       12/ 0,24/ PREV. R.I.,24/ NEXT R.I.
*T,       42/ USERNAME,2/ 0,4/ MACHINE INDEX-1,12/ RESERVED 
* 
*         RT     RECORD TYPE. 
*                RTSB = SYSTEM BLOCK. 
*                RTUB = USER INDEX BLOCK. 
*                RTVB = VSN INDEX BLOCK.
*                RTCB = CATALOG BLOCK.
*                RTAB = ADMIT DATA BLOCK. 
*         LV     LEVEL NUMBER.
*         FE     FIRST WORD OF ENTRY. 
*         EL     ENTRY LENGTH IN CM WORDS.
  
  
 BWRT     EQU    0           DATA BLOCK DESCRIPTION 
 BWDT     EQU    1           LAST MODIFICATION DATE/TIME
 BWRI     EQU    2           PREVIOUS/NEXT RANDOM INDEX 
 BWUN     EQU    3           USERNAME INTERLOCK (*TFSP* ONLY) 
          SPACE  4,10 
***       RECORD TYPE EQUIVALENCES. 
  
  
 RTSB     EQU    0           SYSTEM BLOCK 
 RTVB     EQU    1           VSN INDEX BLOCK
 RTUB     EQU    2           USERNAME INDEX BLOCK 
 RTCB     EQU    3           CATALOG BLOCK
 RTAB     EQU    4           ADMIT DATA BLOCK 
          SPACE  4,10 
***       TAPE MANAGER SYSTEM TABLE (TMST) FORMAT.
* 
*         THE FIRST PRU OF THE TAPE CATALOG CONTAINS
*         TAPE MANAGER SYSTEM TABLE (TMST). THIS TABLE
*         DEFINES FAMILY IDENTIFICATION, ACCESSIBILITY
*         AND STATUS INFORMATION. 
* 
*T  TMFM  42/ FAMILY NAME,18/ STATUS
*T, TMID  12/ MACHINE ID,24/ 0,24/ HOLE POINTER 
*T, TMCT  12/ 0,12/ TRACK COUNT,24/ SECTOR COUNT,12/ 0
*T, TMSM  36/ *MT*/*NT* FIRST SCRATCH VOLUME,24/ *MT*/*NT* SCRATCH COUNT
*T, TMMB  60/ MESSAGE BUFFER
*T,       60/ MESSAGE BUFFER
*T,       60/ MESSAGE BUFFER
*T,       60/ MESSAGE BUFFER
*T, TMUN  60/ USER NAME 
*T,       60/ USER NAME 
*T,       60/ USER NAME 
*T,       60/ USER NAME 
*T,       60/ USER NAME 
*T,       60/ USER NAME 
*T,       60/ USER NAME 
*T,       60/ USER NAME 
*T, TMLF  60/ LINKED FAMILY FOR PROCESSING
*T, TMPA  60/ PERMITTED ALTERNATE FAMILY
*T,       60/ PERMITTED ALTERNATE FAMILY
*T,       60/ PERMITTED ALTERNATE FAMILY
*T,       60/ PERMITTED ALTERNATE FAMILY
*T, TMSC  36/ *CT* FIRST SCRATCH VOLUME,24/ *CT* SCRATCH COUNT
*T, TMSA  36/ *AT* FIRST SCRATCH VOLUME,24/ *AT* SCRATCH COUNT
* 
*         STATUS - CATALOG STATUS.
*                000001 = *TFSP* UTILITY INTERLOCK. 
*                000002 = SUSPEND FAMILY ACTIVITY.
*                000004 = FAMILY CATALOG ERROR. 
*                000010 = RECOVERY REQUIRED.
*                010000 = GLOBAL FAMILY.
*                020000 = FOREIGN FAMILY. 
  
  
 MBML     EQU    4           MESSAGE BUFFER MAXIMUM LENGTH
 UNCL     EQU    10B         USERNAME CACHE LENGTH
 PAFL     EQU    4           PERMITTED ALTERNATE FAMILY LIST LENGTH 
  
 BEGIN    BSSN
 TMFM     BSSN   1           FAMILY, STATUS 
 TMID     BSSN   1           MACHINE ID, HOLE POINTER 
 TMCT     BSSN   1           TRACK COUNT
 TMSM     BSSN   1           *MT*/*NT* FIRST SCRATCH VOLUME, SCR COUNT
 TMMB     BSSN   MBML        MESSAGE BUFFER 
 TMUN     BSSN   UNCL        USERNAME CACHE 
 TMLF     BSSN   1           LINKED FAMILY NAME 
 TMPA     BSSN   PAFL        PERMITTED ALTERNATE FAMILY NAMES 
 TMSC     BSSN   1           *CT* FIRST SCRATCH VOLUME, SCRATCH COUNT 
 TMSA     BSSN   1           *AT* FIRST SCRATCH VOLUME, SCRATCH COUNT 
 TSTL     EQU    *           SYSTEM TABLE LENGTH
 END      BSSN
  
          SPACE  4,10 
***       *TMST* STATUS FLAGS.
  
  
 UITS     EQU    000001      *TFSP* UTILITY INTERLOCK 
 SATS     EQU    000002      SUSPEND ACTIVITY (IDLE)
 FETS     EQU    000004      FAMILY CATALOG ERROR 
 RRTS     EQU    000010      RECOVERY REQUIRED
 GFTS     EQU    010000      GLOBAL FAMILY
 FFTS     EQU    020000      FOREIGN FAMILY 
          SPACE  4,10 
***       PRIMARY VSN INDEX ENTRY FORMAT. 
* 
*         THE PRIMARY VSN INDEX ENTRY IS ONE WORD IN LENGTH, WITH 
*         60D ENTRIES PER PRU.  THE INDEX LISTS THE FIRST VSN OF
*         EACH SECONDARY VSN INDEX BLOCK, SORTED IN ASCENDING SEQUENCE. 
*         EACH PRIMARY VSN INDEX BLOCK IS LINKED FORWARD AND BACKWARD 
*         TO THE NEXT PRIMARY BLOCK OF THIS TYPE (IF ANY).
* 
*T        36/EXTERNAL VSN,24/RANDOM INDEX 
* 
*         EXTERNAL VSN       FIRST VSN LISTED IN SECOND-LEVEL VSN 
*                            INDEX BLOCK. 
*         RANDOM INDEX       RANDOM INDEX OF SECOND-LEVEL VSN INDEX 
*                            BLOCK. 
          SPACE  4,10 
***       SECONDARY VSN INDEX ENTRY FORMAT. 
* 
*         THE SECONDARY VSN INDEX ENTRY (USUALLY KNOWN SIMPLY AS THE
*         *VSN ENTRY*), IS FOUR WORDS IN LENGTH, WITH 15D ENTRIES 
*         PER PRU.
* 
*T  VEES  36/ VSN (EXTERNAL),24/ CATALOG INDEX
*T, VEVS  36/ VSN (INTERNAL),6/ REEL,18/ STATUS 
*T, VEFV  36/ VSN (FIRST),8/ 0,4/ MACHINE INDEX-1,6/ 0,9/ EJT ORDINAL 
*T, VENV  36/ VSN (NEXT),6/  USAGE COUNTER,18/ RELEASE DATE 
* 
*         STATUS - VSN STATUS.
*                000001 = VSN INTERLOCKED BUSY. 
*                000002 = READ/WRITE ERROR DETECTED.
*                000004 = VSN NOT IN FILE.
*                000010 = VSN TRANSFERRED OFF SITE. 
*                000020 = RELEASE DATE NEW FORMAT FLAG
*                000040 = CARTRIDGE TAPE (CT OR AT) FLAG
*                000100 = ACS CARTRIDGE TAPE (AT) FLAG
*                000200 = SYSTEM VSN FLAG.
*                010000 = USER OWNED VOLUME.
*                040000 = END OF INFORMATION VOLUME.
*                100000 = AVAILABLE SCRATCH VOLUME. 
*                200000 = HOLD FOR MAINTENANCE. 
*                400000 = RESERVED VOLUME.
  
  
 VEES     EQU    0           EXTERNAL VSN, CATALOG INDEX
 VEVS     EQU    1           INTERNAL VSN, REEL 
 VEFV     EQU    2           FIRST VSN
 VENV     EQU    3           NEXT VSN, RSXV(ID) INDEX 
          SPACE  4,10 
***       VSN ENTRY STATUS FLAGS. 
  
  
 VIVS     EQU    000001      VSN INTERLOCKED BUSY 
 ERVS     EQU    000002      READ/WRITE ERROR DETECTED
 MVVS     EQU    000004      VSN NOT IN FILE
 TVVS     EQU    000010      VSN TRANSFERRED OFF SITE 
 RDVS     EQU    000020      RELEASE DATE FIELD NEW FORMAT
 CTVS     EQU    000040      CARTRIDGE TAPE (CT OR AT) FLAG 
 ACVS     EQU    000100      ACS CARTRIDGE TAPE (AT) FLAG 
 SVVS     EQU    000200      SYSTEM VSN FLAG
 UOVS     EQU    010000      USER OWNED FILE VOLUME 
 TSVS     EQU    020000      TEMPORARY SCRATCH (USED BY *ISFS* ONLY)
 EOIV     EQU    040000      END OF INFORMATION VOLUME
 ASVS     EQU    100000      AVAILABLE SCRATCH VOLUME 
 HMVS     EQU    200000      HOLD FOR MAINTENANCE 
 RTVS     EQU    400000      RESERVED TAPE VOLUME 
          SPACE  4,10 
***       PRIMARY USERNAME INDEX ENTRY. 
* 
*         THE PRIMARY USERNAME INDEX ENTRY IS ONE WORD IN LENGTH, WITH
*         60D ENTRIES PER PRU.  THE INDEX LISTS THE FIRST USERNAME OF 
*         EACH SECONDARY INDEX BLOCK, ALONG WITH THE RANDOM INDEX OF
*         THAT BLOCK.  EACH PRIMARY USERNAME INDEX BLOCK IS LINKED
*         FORWARD AND BACKWARD TO THE NEXT BLOCK OF THIS TYPE.
* 
*T        42/USERNAME,18/RANDOM INDEX 
* 
*         RANDOM INDEX       RANDOM INDEX OF THE SECONDARY USERNAME 
*                            INDEX BLOCK CONTAINING THIS USERNAME.
          SPACE  4,10 
***       SECONDARY USERNAME INDEX ENTRY. 
* 
*         THE SECONDARY USERNAME INDEX ENTRY IS ONE WORD IN LENGTH, 
*         WITH 60D ENTRIES PER PRU.  THE INDEX LISTS USERNAMES IN 
*         ASCENDING ORDER, ALONG WITH THE RANDOM INDEX OF THE FIRST 
*         CATALOG BLOCK FOR THAT USERNAME.  EACH SECONDARY USERNAME 
*         INDEX BLOCK IS LINKED FORWARD AND BACKWARD TO THE NEXT BLOCK
*         OF THIS TYPE. 
* 
*T        42/USERNAME,18/RANDOM INDEX 
* 
*         RANDOM INDEX       RANDOM INDEX OF THE FIRST CATALOG BLOCK
*                            FOR THIS USERNAME. 
          SPACE  4,10 
***       TAPE CATALOG ENTRY FORMAT.
* 
*T, CELI  60/ LOGICAL FILE I.D. 
*T, CEST  42/ LOGICAL I.D.,6/ 0,12/ FLAGS 
*T, CEES  36/ EXTERNAL VSN,12/ 0,12/ RC 
*T, CETD  1/0,2/LB,2/TT,1/0,3/D,3/CV,12/0,6/F,6/NS,24/FC
*T, CEVS  36/ INTERNAL PRN,6/ FA,18/ SEC. NUMBER
*T, CEPI  60/ PHYSICAL FILE I.D.
*T, CESQ  42/ PHY. FILE I.D.,18/ SEQ. NUMBER
*T, CESI  36/ MULTI-SET I.D.,9/ VER.,15/ GEN. NUMBER
*T, CERC  30/ CREATION DATE, 30/ RETENTION DATE 
*T, CEPW  42/ PASSWORD,6/ 0,6/ CT,6/ MD 
*T, CECD  24/ NEXT CAT., 36/ CREATION DATE - TIME 
*T, CEMD  24/ ADMIT R.I.,36/ MODIFICATION DATE - TIME 
*T, CEAD  24/ ACCESS COUNT 36/ LAST ACCESS DATE - TIME
*T, CEUC  60/ USER CONTROL WORD 
*T, CECN  60/ CHARGE NUMBER 
*T, CEPN  60/ PROJECT NUMBER
*T,       60/ PROJECT NUMBER (CONT.)
*T,       60/ UNUSED
*T,       60/ UNUSED
*T,       60/ UNUSED
* 
*         FLAGS  CATALOG STATUS FLAGS.
*                0001 = CATALOG BUSY. 
*                0002 = ERROR FLAG. 
*                0004 = SYMBOLIC ACCESS.
*                0400 = *TMS* RECOVERY MESSAGES NEED TO BE ISSUED.
*                1000 = INITIAL ASSIGNMENT FLAG.
*                2000 = RECOVERED CATALOG.
*                4000 = ALTERNATE USER LISTABLE.
* 
*         LB     LABEL TYPE.
*                0 = NOS UNLABELED. 
*                2 = NOS LABELED. 
*                3 = NON-STANDARD LABELED.
* 
*         TT     TAPE DEVICE TYPE.
*                0 = SEVEN TRACK TAPE (MT). 
*                1 = CARTRIDGE TAPE (CT). 
*                2 = NINE TRACK TAPE (NT).
*                3 = ACS CARTRIDGE TAPE (AT). 
* 
*         D      DENSITY. 
*                0 = INSTALLATION DEFAULT.
*                1 = 556 BPI - MT.
*                2 = 200 BPI - MT.
*                3 = 800 BPI - MT OR NT.
*                4 = 1600 CPI - NT. 
*                5 = 6250 CPI - NT. 
*                6 = 38000 CPI - CT OR AT.
* 
*         CV     CONVERSION MODE. 
*                0 = INSTALLATION DEFAULT.
*                1 = BCD CONVERSION (7 TRACK).
*                2 = ASCII CONVERSION.
*                3 = EBCDIC CONVERSION. 
* 
*         F      FORMAT.
*                0 = INTERNAL (I).
*                1 = SYSTEM INTERNAL (SI).
*                2 = FOREIGN (F). 
*                3 = STRANGER (S).
*                4 = LONG BLOCK STRANGER (L). 
*                5 = LONG BLOCK INTERNAL (LI).
* 
*         NS     NOISE SIZE.
* 
*         FC     FRAME COUNT. 
  
  
 CELI     EQU    0           LOGICAL FILE I.D.
 CEST     EQU    1           CATALOG STATUS 
 CEES     EQU    2           EXTERNAL VSN, REEL COUNT 
 CETD     EQU    3           FET+FTAP FROM RESEX
 CEVS     EQU    4           VOLUME SERIAL NUMBER (INTERNAL)
 CEPI     EQU    5           PHYSICAL FILE I.D. 
 CESQ     EQU    6           FILE SEQUENCE NUMBER 
 CESI     EQU    7           MULTI-SET I.D., VER. NUM., GEN. NUM. 
 CERC     EQU    10B         RETENTION DATE, CREATION DATE
 CEPW     EQU    11B         FILE PASSWORD, CT, MD
 CECD     EQU    12B         NEXT CATALOG, CREATION DATE/TIME 
 CEMD     EQU    13B         ADMIT R.I., MODIFICATION DATE/TIME 
 CEAD     EQU    14B         LAST ACCESS DATE/TIME
 CEUC     EQU    15B         USER CONTROL WORD
 CECN     EQU    16B         CHARGE NUMBER
 CEPN     EQU    17B         PROJECT NUMBER 
          SPACE  4,10 
***       ADMIT ENTRY FORMAT. 
* 
*T  AEUN  42/ USER NAME,18/ 0 
*T, AEAC  18/ ACCESS COUNT,6/ MODE,36/ LAST ACCESS DATE/TIME
  
  
 AEUN     EQU    0           USER NAME OF ALTERNATE USER
 AEAC     EQU    1           ACCESS COUNT,MODE,DATE/TIME
          SPACE  4,10 
**        TAPE CATALOG ENTRY EQUIVALENCES.
* 
  
  
 TBHL     EQU    4           BLOCK HEADER LENGTH
 TPIL     EQU    1           PRIMARY INDEX LENGTH 
 TSUL     EQU    1           SECONDARY USERNAME INDEX LENGTH
 TSVL     EQU    4           SECONDARY VSN INDEX LENGTH 
 TCEL     EQU    24B         TAPE CATALOG ENTRY LENGTH
 TAEL     EQU    2           ADMIT ENTRY LENGTH 
 TCLL     EQU    5           TAPE CATALOG LABEL LENGTH
          SPACE  4,10 
***       KEY LENGTHS IN CHARACTERS.
  
  
 CNKL     EQU    10D         CHARGE NUMBER
 FIKL     EQU    17D         LABEL FILE ID
 FNKL     EQU    7           FAMILY NAME
 IEKL     EQU    7           INDEX ENTRY
 PFKL     EQU    7           PERMANENT FILE NAME
 PNKL     EQU    20D         PROJECT NUMBER 
 PWKL     EQU    7           PASSWORD 
 UCKL     EQU    10D         USER CONTROL WORD
 UNKL     EQU    7           USERNAME 
 VSKL     EQU    6           VOLUME SERIAL NUMBER 
          SPACE  4,10 
***       MISCELLANEOUS SYMBOL DEFINITIONS. 
  
  
 FPUI     EQU    3           FIRST PRIMARY USERNAME INDEX 
 FPVI     EQU    2           FIRST PRIMARY VSN INDEX
 TMSB     EQU    1           TAPE MANAGER SYSTEM BLOCK
 FBRT     EQU    4*60D       FILE BUSY ROLLOUT TIME 
 IOPL     EQU    20B         I/O PAUSE LIMIT
 WGRT     EQU    7*60D       WAIT UNIT GO ROLLOUT TIME
 REMT     EQU    4095D       RECOVERED ERROR MAINTENANCE THRESHOLD
 VUMT     EQU    63D         VOLUME USAGE MAINTENANCE THRESHOLD 
 CRDP     EQU    7           CONDITIONAL RELEASE PERIOD 
*         AND RESERVE COMMANDS. IT DETERMINES 
          SPACE  4,10 
***       TFM/MAGNET RETURN STATUS FLAGS. 
* 
*         THE RETURN STATUS FLAGS ARE LOCATED IN BYTE 4 
*         OF UDT WORD UTMS. THESE ARE USED TO COMMUNICATE 
*         JOB STATUS INFORMATION BETWEEN MAGNET AND TFM.
  
  
 RSIL     EQU    0001        *UTMS* INTERLOCK 
 RSRR     EQU    0002        REISSUE REQUEST
 RSAJ     EQU    0004        ABORT USER JOB 
 RSUF     EQU    0200        UNRECOVERED ERROR FLAG 
 RSSA     EQU    0400        SYMBOLIC ACCESS FILE 
 RSRS     EQU    1000        RESERVE ASSIGNED SCRATCH 
 RSUC     EQU    2000        USER OWNED FILE
 RSTC     EQU    4000        TAPE MANAGER CONTROLLED FILE 
          SPACE  4,10 
***       TFM/MAGNET WAIT UNIT STATUS FLAGS.
* 
*         THE WAIT UNIT STATUS FLAGS ARE LOCATED IN 
*         BYTE 3 OF UDT WORD UTMS. THESE ARE USED TO
*         INDICATE WHEN MAGNET MUST TEMPORARILY IDLE
*         UDT FOR A EXTERNAL RESPONSE.
  
  
 WUBL     EQU    0001        BLANK LABEL STATUS 
 WUOV     EQU    0002        OPERATOR VERIFY
 WUUU     EQU    0004        UNLOAD UNIT
 WUJR     EQU    0010        USER JOB ROLLOUT 
 WUNS     EQU    0020        SELECT NEXT SCRATCH
 WURF     EQU    0040        REWIND FILE
 WUFL     EQU    0100        FIRST *HRD1* LABEL OF VOLUME 
 WUGO     EQU    4000        WAIT UNIT GO 
          SPACE  4,15 
***       TMSG - *TMS* DAYFILE MESSAGE TAG. 
* 
*         TMSG PROVIDES THE MEANS TO DIRECT THE *TMS* ACCOUNTING
*         AND RECOVERY MESSAGES TO THE DESIRED DAYFILE OR TO
*         CANCEL THEM ENTIRELY.  THE VALID VALUES FOR *TMSG* ARE -
* 
*                ZERO (0)    = ISSUE NO MESSAGES. 
*                ACFN        = ISSUE MESSAGES TO ACCOUNT FILE.
*                ERLN        = ISSUE MESSAGES TO ERRLOG FILE. 
  
  
 TMSG     EQU    ACFN        DEFAULT TO ACCOUNT FILE
          SPACE  4,10 
***       TFM ERROR MNEMONICS.
* 
  
  
          QUAL   EMSG 
  
 BEGIN    BSSN   1
  
 VBS      BSSN   1           (VSN) BUSY.
 LNF      BSSN   1           (LFN) NOT FOUND. 
 FNF      BSSN   1           (FILENAME) NOT FOUND.
 VNF      BSSN   1           (VSN) NOT FOUND. 
 UNF      BSSN   1           (USERNAME) NOT FOUND.
 NMT      BSSN   1           (LFN) NOT ON MAGNETIC TAPE.
 VSR      BSSN   1           (VSN) RESERVED.
 VSD      BSSN   1           (VSN) DUPLICATE. 
 FAR      BSSN   1           (FILENAME) ALREADY RESERVED. 
 VAR      BSSN   1           (VSN) ALREADY RESERVED.
 DLK      BSSN   1           DEADLOCK.
 ILR      BSSN   1           TFM INCORRECT REQUEST. 
 TMD      BSSN   1           TMS DISABLED.
 MNA      BSSN   1           MAGNET NOT ACTIVE. 
 EBP      BSSN   1           ERRONEOUS BUFFER POINTER.
 TUA      BSSN   1           TFM UTILITY ACTIVE.
 BAE      BSSN   1           BUFFER ARGUMENT ERROR. 
 EID      BSSN   1           ERROR IN INDEX DATA. 
 ECD      BSSN   1           ERROR IN CATALOG DATA. 
 EAD      BSSN   1           ERROR IN ADMIT DATA. 
 RAE      BSSN   1           NNNNNNNN RANDOM ADDRESS ERROR. 
 TKL      BSSN   1           TRACK LIMIT. 
 MSE      BSSN   1           MASS STORAGE ERROR.
 CNF      BSSN   1           CATALOG NOT FOUND. 
 ECF      BSSN   1           EMPTY CATALOG. 
 CLE      BSSN   1           CATALOG LINKAGE ERROR. 
 IOS      BSSN   1           I/O SEQUENCE ERROR ON CATALOG
 EOI      BSSN   1           EOI NOT ON TRACK CHAIN.
 NAE      BSSN   1           NO ADMITS. 
 TPI      BSSN   1           TMS PROCESSING INHIBITED.
 SFA      BSSN   1           (FAMILY) ACTIVITY SUSPENDED. 
 FCE      BSSN   1           (FAMILY) CATALOG ERROR.
 WSA      BSSN   1           WAIT SCRATCH ASSIGNMENT. 
 NEU      BSSN   1           NO EXTEND ON USER OWNED FILE.
 WRF      BSSN   1           (LFN) WRITE REQUEST ON READ-ONLY FILE
 MPE      BSSN   1           MULTI-FILE PROCESSING ERROR. 
 FCI      BSSN   1           FILE CREATION NOT ALLOWED. 
 EFD      BSSN   1           ERROR IN FILE DATA.
 CNA      BSSN   1           LINKED CATALOG NOT ACCESSIBLE. 
  
 MXEC     BSSN   0           MAXIMUM ERROR CODE + 1 
 END      BSSN
  
          QUAL   *
          SPACE  4,10 
**        TMS PERMANENT FILE MICROS.
  
  
 TMFC     MICRO  1,, ZZZZZFC FAMILY CATALOG FILE NAME 
 TMUI     MICRO  1,, 377777B *TMS* USER INDEX 
 TMSMAC   SPACE  4
 TMSMAC   IFPP
          LIST   -X 
 TMSMAC   ENDIF 
 TMSMAC   SPACE  4,10 
***       TAPE FILE ACTION MACROS.
* 
*         THE FOLLOWING MACROS SET UP THE FET AND RA+1 CALL TO
*         TFM FOR RESERVE, RELEASE, AUDIT, ADMIT AND AMEND TAPE 
*         COMMANDS.  ONE MACRO CALL MUST BE MADE PER FILE REQUIRING 
*         ACTION, WITH THE EXCEPTION OF THE AUDIT COMMAND.
* 
*         THE ADDRESS OF THE FET MUST BE SUPPLIED VIA THE *F* 
*         PARAMETER.  THE USER MUST INSURE THAT ALL ACTIVITY HAS
*         COMPLETED ON THIS FET PRIOR TO EXECUTING A TAPE FILE
*         ACTION MACRO.  THE CALL MADE TO *TFM* WILL RECALL THE CPU 
*         WHEN THE REQUEST IS COMPLETE.  IF THE USER DESIRES TO 
*         PROCESS *TFM* ERRORS THE ERROR PROCESSING BIT MUST BE SET IN
*         THE FET.  SEE *TFM* DOCUMENTATION FOR ERROR CODES AND 
*         DESCRIPTIONS. 
* 
*         WHEN ISSUING AN *AUDIT* OR *GETVSN* MACRO, THE BUFFER 
*         POINTERS IN THE LOWER 18 BITS OF WORDS 1, 2, 3, AND 4 
*         OF THE *FET* MUST BE SET.  THE BUFFER MUST BE AT LEAST
*         262D WORDS IN LENGTH FOR THE *GETVSN* AND *AUDIT* MACROS. 
* 
*         AUDIT MACRO BUFFER DESCRIPTION. 
* 
*         IN THE CASE OF THE *AUDIT* MACRO, A BUFFER IS REQUIRED TO 
*         PASS THE INFORMATION TO THE CALLING PROGRAM.  THE BUFFER
*         LENGTH WILL HAVE TWO DIFFERENT FORMATS, DEPENDING ON
*         WHICH *LO=* OPTION THE USER SPECIFIES.  IF THE *P* OR *FP*
*         OPTION IS USED, THE BUFFER WILL CONTAIN A SERIES OF TWO-WORD
*         ALTERNATE ACCESS ADMIT ENTRIES. (SEE COMSTFM FOR LAYOUT)
*         TFM WILL SET A FLAG IN THE *FET* INDICATING AN END OF 
*         INFORMATION OF EXISTING ADMIT ENTRIES.  ANOTHER CALL TO 
*         *AUDIT* IS MADE IF THE BUFFER WAS FILLED AND THERE WERE 
*         STILL MORE ADMIT ENTRIES. 
* 
*         IN THE CASE OF THE *0* OR *F* OPTION, A CIRCULAR BUFFER IS
*         USED.  THE BUFFER WILL BE FILLED WITH A SERIES OF TAPE
*         CATALOG ENTRIES WITH THEIR CORRESPONDING 4-WORD VSN ENTRIES.
*         IN OTHER WORDS, THERE WILL BE A 23B WORD TAPE CATALOG ENTRY 
*         FOLLOWED BY UP TO 60 4-WORD VSN ENTRIES.  BETWEEN THE LAST
*         VSN ENTRY AND THE NEXT TAPE CATALOG, WILL BE A DELIMITER
*         WORD.  THE UPPER 36 BITS OF THIS WORD ARE SET (I.E. 
*         36/-0,24/0).  WHEN *OUT* = *IN* (SEE FET LAYOUT IN COMSTFM) 
*         AND THE EOI BIT IS SET, ALL INFORMATION HAS BEEN SENT.  WHEN
*         *OUT* = *IN*, AND THE EOI BIT IS CLEAR, THERE ARE STILL MORE
*         TAPE CATALOG ENTRIES AND ANOTHER CALL TO *AUDIT* MUST BE
*         MADE. 
 =T       SPACE  4,15 
**        =T - TAPE FILE FET FORMATTING MACRO.
* 
*         USES   X - 1, 2, 4, 5, 6. 
*                A - 1, 2, 6. 
  
  
          PURGMAC =T
  
 =T       MACRO  F,LF,VSN,FI,UN,NFI,PW,CT,AC,MD,UC,CE,AN,LO 
  LOCAL A,B,C,D,E,G,H,J,K,L,M,Q,X 
  MX5 -3
  SA2 F 
  BX6 X2*X5 
  SA6 A2
*                            LOCAL FILE NAME. 
  IFC  NE,*LF** 
  SA1 LF
  SA2 F+TFLF
  MX5 -18 
  BX4 X1*X5 
  BX2 -X5*X2
  BX6 X4+X2 
  SA6 F+TFLF
  ENDIF 
*                            VOLUME SERIAL NUMBER 
B IFC  NE,*VSN**
C IFC  NE,*FI** 
A ERR 
C ENDIF 
  SA1 VSN 
  SA2 F+TFES
  MX5 -24 
  BX2 -X5*X2
  BX6 X2+X1 
  SA6 A2
B ENDIF 
*                            FILE IDENTIFIER. 
D IFC  NE,*FI** 
E IFC  NE,*VSN**
A ERR 
E ENDIF 
  SA1 FI
  BX6 X1
  SA6 F+TFID
  SA2 A1+B1 
  MX0 42
  BX2 X0*X2 
  SA3 F+TFSQ
  BX3 -X0*X3
  BX6 X2+X3 
  SA6 A3
D ENDIF 
*                            ALTERNATE USER NAME. 
Q IFC  NE,*UN** 
G IFC  NE,*UC** 
A ERR 
G ENDIF 
  SA1 UN
  BX6 X1
  SA6 F+TFUC
Q ENDIF 
*                            PASSWORD.
  IFC  NE,*PW** 
  IFC  NE,*PW*0*
  SA1 PW
  SA2 F+TFPW
  MX5 -18 
  BX4 X1*X5 
  BX2 -X5*X2
  BX6 X4+X2 
  SA6 A2
  ENDIF 
*                            FILE CATEGORY. 
J IFC  NE,*CT** 
H SET 0 
  ECHO  0,B=(S,PU,P,PR),C=(FCSP,FCPU,FCPR,FCPR) 
V IFC  EQ,*B*CT*
  SX1 C 
H SET 77B 
  STOPDUP 
V ENDIF 
  ENDD
  IFNE  H,77B,1 
  SA1 CT
  LX1 6 
  SA2 F+TFPW
  MX5 -6
  LX5 6 
  BX2 X5*X2 
  BX6 X2+X1 
  SA6 A2
J ENDIF 
*                            FILE MODE. 
K IFC  NE,*MD** 
H SET 0 
  ECHO  0,B=(W,R,N),C=(FMWR,FMRE,FMNA)
D IFC  EQ,*B*MD*
  SX1 C 
H SET 77B 
  STOPDUP 
D ENDIF 
  ENDD
  IFNE  H,77B,1 
  SA1 MD
  MX5 -6
  SA2 F+TFPW
  BX2 X5*X2 
  BX6 X2+X1 
  SA6 A2
K ENDIF 
*                            ALTERNATE USER AUDIT ACCESS
L IFC  NE,*AC** 
H SET 0 
  ECHO  0,B=(Y,N),C=(FAYS,FANO) 
X IFC  EQ,*B*AC*
  SX1 C 
H SET 77B 
  STOPDUP 
X ENDIF 
  ENDD
  IFNE  H,77B,1 
  SA1 AC
  LX1 12
  MX5 -6
  LX5 12
  SA2 F+TFAC
  BX2 X5*X2 
  BX6 X2+X1 
  SA6 A2
L ENDIF 
*                            USER CONTROL WORD. 
M IFC  NE,*UC** 
J IFC  NE,*UC*0*
D IFC  NE,*UN** 
A ERR 
D ENDIF 
  SA1 UC
  BX6 X1
  SA6 F+TFUC
J ENDIF 
M ENDIF 
*                            NEW FILE IDENTIFIER
J IFC  NE,*NFI**
H IFC  NE,*VSN**
A ERR 
H ENDIF 
  SA1 NFI 
  BX6 X1
  SA6 F+TFNI
  SA2 A1+B1 
  MX0 42
  BX2 X0*X2 
  SA3 F+TFCE
  BX3 -X0*X3
  BX6 X2+X3 
  SA6 A3
J ENDIF 
*                            CLEAR ERROR OPTION 
  IFC  NE,*CE** 
  MX0 -6
  LX0 6 
  SA2 F+TFCE
  BX2 X0*X2 
  SX6 B1
  LX6 6-0 
  BX6 X2+X6 
  SA6 A2
  ENDIF 
*                            CHANGE TO CURRENT CHARGE/PROJECT NO. 
  IFC  NE,*AN** 
  MX0 -6
  SA2 F+TFCE
  BX2 X2*X0 
  SX6 B1
  BX6 X6+X2 
  SA6 A2
  ENDIF 
  ENDM
 ADMIT    SPACE  4,25 
**        ADMIT(F,TF,VSN,US,M)
* 
*              F = ADDRESS OF FET.
*              TF = ADDRESS OF THE 2-WORD FILE IDENTIFIER.
*              VSN = ADDRESS OF THE VOLUME SERIAL NUMBER. 
*              US = ADDRESS OF ALTERNATE USER NAME. 
*              M = FILE MODE.(W, R) 
  
  
          PURGMAC  ADMIT
  
 ADMIT    MACRO  F,TF,VSN,US,M
  LOCAL A 
  IFC  EQ,*F**
A ERR 
  ENDIF 
  IFC  EQ,*TF** 
  IFC  EQ,*VSN**
A ERR 
  ENDIF 
  IFC  EQ,*US** 
A ERR 
  ENDIF 
  IFC  EQ,*M**
A ERR 
  ENDIF 
  MX0 -6
  SA1 F 
  SX2 ADMS
  LX2 3 
  LX0 3 
  BX1 X0*X1 
  BX6 X1+X2 
  SA6 F 
  =T  F,,VSN,TF,US,,,,,M
  SYSTEM  TFM,R,F 
  ENDM
 AMEND    SPACE  4,15 
**       AMEND(F,NF,TF,VSN,PW,CT,M,UC,AC,CE,AN) 
* 
*             F = ADDRESS OF FET
*             NF = ADDRESS OF NEW TAPE FILE NAME
*             TF = ADDRESS OF OLD TAPE FILE NAME. 
*             VSN = ADDRESS OF EXTERNAL SERIAL NUMBER.
*             PW = ADDRESS OF FILE PASSWORD.
*             CT = FILE CATEGORY. (P,PR,S,PU) 
*             M = FILE MODE. (R,W)
*             UC = ADDRESS OF USER CONTROL WORD.
*             AC = ALTERNATE USER AUDITABILITY.(Y,N)
*             CE = IF SPECIFIED, CLEAR ERROR OPTION.(CE)
*             AN = IF SPECIFIED, CHANGE TO CURRENT CHARGE/PROJECT NO. 
  
  
          PURGMAC  AMEND
  
 AMEND    MACRO  F,NF,TF,VSN,PW,CT,M,UC,AC,CE,AN
  LOCAL A 
  IFC  EQ,*F**
A ERR 
  ENDIF 
  IFC  EQ,*TF** 
  IFC  EQ,*VSN**
A ERR 
  ENDIF 
  MX0 42
  IFC  EQ,*PW*0*
  SA2 F+TFPW
  BX2 -X0*X2
  BX6 X2+X0 
  SA6 A2
  ENDIF 
  IFC  EQ,*UC*0*
  MX6 60
  SA6 F+TFUC
  ENDIF 
  MX0 -6
  SA1 F 
  SX2 AMDS
  LX2 3 
  LX0 3 
  BX1 X0*X1 
  BX6 X1+X2 
  SA6 F 
  =T  F,,VSN,TF,,NF,PW,CT,AC,M,UC,CE,AN 
  SYSTEM  TFM,R,F 
  ENDM
 AUDIT    SPACE  4,10 
**        AUDIT(F,TF,VSN,LO,UN) 
* 
*              F = ADDRESS OF FET.
*              TF = ADDRESS OF 2-WORD TAPE FILE IDENTIFIER. 
*              VSN = ADDRESS OF VOLUME SERIAL NUMBER. 
*              LO = AUDIT OPTION. (F, FP, 0, P) 
*              UN = ADDRESS OF USERNAME.
  
  
          PURGMAC  AUDIT
  
 AUDIT    MACRO  F,TF,VSN,LO,UN 
  LOCAL A,B,C,D,E,G,H,I,J,K,L,M 
  IFC  EQ,*F**
A ERR 
  ENDIF 
  IFC  NE,*TF** 
  IFC  NE,*VSN**
A ERR 
  ENDIF 
  SB2 6 
B IFC  NE,*LO** 
C IFC  EQ,*LO*0*
  SB2  FCST 
D IFC  NE,*TF** 
  SB2 SCST
D ENDIF 
I IFC  NE,*VSN**
  SB2 SCST
I ENDIF 
C ENDIF 
E IFC  EQ,*LO*F*
  SB2 FCST
M IFC  NE,*TF** 
  SB2 SCST
M ENDIF 
J IFC  NE,*VSN**
  SB2 SCST
J ENDIF 
E ENDIF 
G IFC  EQ,*LO*P*
  SB2 FAST
K IFC  NE,*UN** 
  SB2 SAST
K ENDIF 
G ENDIF 
H IFC  EQ,*LO*FP* 
  SB2 FAST
L IFC  NE,*UN** 
  SB2 SAST
L ENDIF 
H ENDIF 
  SX6 B2
  SA6 F+TFPW
B ENDIF 
  MX0 -6
  SA1 F 
  SX2 AUDS
  LX2 3 
  LX0 3 
  BX1 X0*X1 
  BX6 X1+X2 
  SA6 F 
  =T  F,,VSN,TF,UN
  SYSTEM  TFM,R,F 
  ENDM
 GETVSN   SPACE  4,15 
**        GETVSN(F,LF)
* 
*         THE GETVSN MACRO ENABLES THE CALLING PROGRAM TO OBTAIN
*         A TAPE CATALOG IMAGE OF THE TAPE FILE ASSOCIATED WITH 
*         THE LFN INFORMATION CONTAINED THE RSVX(ID) FILE.
* 
*             F = ADDRESS OF FET. 
*             LF = ADDRESS OF LOCAL FILE NAME.
  
  
          PURGMAC GETVSN
  
 GETVSN   MACRO  F,LF 
  LOCAL A 
  IFC  EQ,*F**
A ERR 
  ENDIF 
  IFC  EQ,*LF** 
A ERR 
  ENDIF 
  MX0 -6
  SA1 F 
  SX2 GVSS
  LX2 3 
  LX0 3 
  BX1 X0*X1 
  BX6 X1+X2 
  SA6 F 
  =T   F,LF 
  SYSTEM  TFM,R,F 
  ENDM
 RESERVE  SPACE  4,15 
**        RESERVE(F,LF,PW,CT,AC,M,UC) 
* 
*                F = ADDRESS OF FET.
*                LF = ADDRESS OF LOCAL FILE NAME TO BE RESERVED.
*                PW = ADDRESS OF FILE PASSWORD. 
*                CT = FILE CATEGORY. (P,PR,S,PU)
*                AC = ALTERNATE USER AUDITABILITY. (Y,N)
*                M = FILE MODE. (R,W) 
*                UC = ADDRESS OF USER CONTROL WORD. 
  
  
          PURGMAC RESERVE 
  
 RESERVE  MACRO  F,LF,PW,CT,AC,M,UC 
  LOCAL A 
  IFC  EQ,*F**
A ERR 
  ENDIF 
  MX0 -6
  SA1 F 
  SX2 RSVS
  LX2 3 
  LX0 3 
  BX1 X0*X1 
  BX6 X1+X2 
  SA6 F 
  IFC  EQ,*LF** 
A ERR 
  ENDIF 
  =T   F,LF,,,,,PW,CT,AC,M,UC 
  SYSTEM  TFM,R,F 
  ENDM
 RELEASE  SPACE  4,15 
**        RELEASE(F,TF,VSN) 
* 
*                F = ADDRESS OF FET.
*                TF = ADDRESS OF 2-WORD FILE IDENTIFIER.
*                VSN = ADDRESS OF VOLUME SERIAL NUMBER. 
  
  
          PURGMAC RELEASE 
  
 RELEASE  MACRO  F,TF,VSN 
  LOCAL A 
  IFC EQ,*F** 
A ERR 
  ENDIF 
  IFC  EQ,*TF** 
  IFC  EQ,*VSN**
A ERR 
  ENDIF 
  MX0 -6
  SA1 F 
  SX2 RLSS
  LX2 3 
  LX0 3 
  BX1 X0*X1 
  BX6 X1+X2 
  SA6 F 
  =T   F,,VSN,TF
  SYSTEM  TFM,R,F 
  ENDM
 TMSMAC   SPACE  4
 TMSMAC   IFPP
          LIST   *
 TMSMAC   ENDIF 
          SPACE  4,10 
          BASE   *
          ENDX
