Google
 

Trailing-Edge - PDP-10 Archives - BB-F493Z-DD_1986 - 10,7/catprm.mac
There are 2 other files named catprm.mac in the archive. Click here to see a list.
UNIVERSAL CATPRM - Parameter file for the DECsystem-10 Catalog Daemon
SUBTTL	D. Mastrovito /DPM	9-Jan-86


;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
;  OR COPIED IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE.
;
;COPYRIGHT (c) DIGITAL EQUIPMENT CORPORATION 1986.
;ALL RIGHTS RESERVED.
;
	SEARCH	GLXMAC
	PROLOG	(CATTAB)

	CATVER==1			;MAJOR VERSION
	CATMIN==0			;MINOR VERSION
	CATWHO==0			;WHO LAST PATCHED
	CATEDT==0021			;EDIT LEVEL

	%%CAT==:<VRSN.(CAT)>		;ASSEMBLE VERSION NUMBER

	SALL				;FOR CLEAN LISTINGS
	.DIREC	FLBLST			;FOR CLEANER LISTINGS
SUBTTL	Table of Contents


SUBTTL	Revision history


COMMENT	\

Edit	Module	Explanation
----	------	-----------

0001		1-Aug-84 /DPM
	CATPRM	Parameter file.
	CATLOG	Catalog driver module.
	CATDEV	Device specific routines.
	CATTAB	OPR command application tables.

0002		7-Aug-84 /DPM
	CATLOG	Take advantage of new OPRPAR features to allow
	CATDEV	the parsing of 8-bit data.
	CATTAB

0003		14-Aug-84 /DPM
	CATTAB	Avoid operator confusion by using the new $SUBCM
		which allows prompting in sub-command mode.

0004		27-Aug-84 /DPM
	CATLOG	Make sure all requests for catalog info coming from MDA
		gets replies sent to MDA.

0005		26-Oct-84 /DPM
	CATLOG	Request a 'til reset PID instead of a job wide PID.


0006		 8-Mar-85 /DPM
	CATPRM	Reduce device code field from 9 to 3 bits.  Store device
	CATTAB	code in entry at insert time.  Set device code when
	CATLOG	convering file formats (CATSTR).  Return a one-word reelid
	CATDEV	block for DECtape volume-sets.  Implement /LABEL-TYPE switch
		on the INSERT/MODIFY command for magtapes.  All this done
		for MDA's benefit so QUASAR's catalog cache has a chance of
		working for devices other than structures.

0007		21-Mar-85 /DPM
	CATLOG	Fix spurious ill mem refs prior to receiving the queue
		structure from QUASAR.  Re-work QUASAR/CATLOG initialization
		code so CATLOG doesn't have to wait for [SYSTEM]MDA to start.

0010		22-Mar-85 /DPM
	CATLOG	Don't allow abbreviated matches on requests for catalog info
		coming from [SYSTEM]MDA.

0011		23-Apr-85 /DPM
	CATLOG	Process messages from [SYSTEM]GOPHER.  The implementation is
		simple; it allows a job to request catalog information on a
		given volume-set using the .QBVSN and .QBMFG blocks.  Only
		retrieving VSN data is allowed.  To handle insertions, etc.
		requires a much more elaborate interface.

0012		25-Apr-85 /DPM
	CATTAB	Fix QUIACT action routine to correctly type the command name.

0013		 8-May-85 /DPM
	CATLOG	Add new message type .CFMOD which allows QUASAR to modify
		(extend) a volume-set.

0014	CATDEV	13-May-85 /DPM
	CATDEV	Enhance DECtape listing to include volume-set name.

0015	CATTAB	21-May-85 /DPM
		Use new action routine P$XSBC to signal OPRPAR that
		we are about to exit sub-command mode.

0017	CATPRM	Avoid unnecessary wakeups.  Change ZZTIME to be zero
		seconds.

0020	CATPRM	Fix miscellaneous problems with QUEUE. UUO processing
	CATLOG	and IPCF/OPR/QUEUE. UUO priviledge checking.

0021	CATLOG	Fix ?Ill mem ref at PC 777777 when receiving unknown
		IPCF messages.

\ ;END REVISION HISTORY
SUBTTL	Module initialization macro


DEFINE	CATDEF	(MODULE),<

	SEARCH	GLXMAC		;;GENERAL GALACTIC DEFINITIONS
	SEARCH	ORNMAC		;;ORION DEFINITIONS

	%%CAT==:%%CAT		;;PUT VERSION IN SYMBOL TABLE

	PROLOG	(MODULE)	;;SETUP

	SALL			;;FOR CLEAN LISTINGS
	.DIREC	FLBLST		;;FOR CLEANER LISTINGS
>
SUBTTL	Parameters


; ACCUMULATOR DEFINITIONS
	C==13			;CATALOG DATA BASE
	E==14			;PRIMARY CATALOG ENTRY
	A==15			;ALTERNATE CATALOG ENTRY BLOCK
	M==16			;IPCF MESSAGE


; ASSEMBLY PARAMETERS
	ND	PDLSIZ,100	;PUSH DOWN LIST SIZE
	ND	ZZTIME,0	;MAIN LOOP SLEEP TIME
	ND	ERRLEN,^D30	;ERROR BUFFER LENGTH IN WORDS
	ND	LINPPG,^D55	;LISTING LINES PER PAGE
	ND	TBLLEN,100	;INITIAL ENTRY TABLE LENGTH
	ND	VSNSIZ,10	;VOLUME-SET STORAGE (7-BIT ASCIZ)
	ND	NAMSIZ,12	;NAME STORAGE (8-BIT ASCIZ)
	ND	LOCSIZ,5	;LOCATION STORAGE (8-BIT ASCIZ)
	ND	ATRSIZ,<^D60/5>+1 ;ATTRIBUTE BUFFER SIZE (FOR LISTINGS)


; MISCELLANEOUS
	DEVLNK==1		;LINK CODE FOR DISPATCH VECTOR CHAINING
SUBTTL	[SYSTEM]CATALOG IPCF message definitions


; FUNCTION CODES
	.CFOFF==100000		;OFFSET TO FIRST CATALOG MESSAGE
	.CFRCT==100001		;REQUEST FOR CATALOG INFORMATION
	.CFACT==100002		;ANSWER TO REQUEST FOR CATALOG INFO
	.CFRQS==100003		;REQUEST FOR QUEUE STRUCTURE
	.CFAQS==100004		;ANSWER TO REQUEST FOR QUEUE STRUCTURE
	.CFDEL==100005		;DELETE VOLUME-SET
	.CFDIS==100006		;DISABLE CATALOG UPDATES BY MDA
	.CFENA==100007		;ENABLE CATALOG UPDATES BY MDA
	.CFINS==100010		;INSERT VOLUME-SET
	.CFMOD==100011		;MODIFY VOLUME-SET


; CATALOG DEVICE TYPES
	.CTUNK==0		;UNKNOWN
	.CTDTA==1		;DECTAPE
	.CTMTA==2		;MAGTAPE
	.CTSTR==3		;STRUCTURE


; CATALOG MESSAGE FUNCTIONS
	.CTDEL==1		;DELETE
	.CTDIS==2		;DISABLE
	.CTENA==3		;ENABLE
	.CTHLP==4		;HELP
	.CTINS==5		;INSERT
	.CTLIS==6		;LIST
	.CTMOD==7		;MODIFY ENTRY
	.CTSHO==10		;SHOW STATUS


; CATALOG MESSAGE SUB-FUNCTIONS
	.CTADD==1		;ADD
	.CTDON==2		;DONE
	.CTQUI==3		;QUIT
	.CTREM==4		;REMOVE


; CATALOG MESSAGE FUNCTION MODIFIERS
	.CTDEN==1		;DENSITY
	.CTEXP==2		;EXPIRATION DATE
	.CTLAB==3		;LABEL TYPE
	.CTLOC==4		;LOCATION
	.CTNAM==5		;NAME
	.CTTRK==6		;TRACKS
	.CTRID==7		;REELID
	.CTUSR==10		;USER


; DENSITY CODES
	.CT200==1		;200 BPI
	.CT556==2		;556 BPI
	.CT800==3		;800 BPI
	.CT160==4		;1600 BPI
	.CT625==5		;6250 BPI
	.CTDMX==.CT625		;HIGHEST LEGAL DENSITY


; TRACK CODES
	.CT7TK==1		;7 TRACK
	.CT9TK==2		;9 TRACK
SUBTTL	Catalog data storage formats


; The following describes the formats in which data is stored in the
; catalog files.  These definitions are also used in the request for
; catalog info message (function .CFRCT) and the answer to catalog
; request message (function .CFACT).  A request for VSN information
; message need only contain a volume set name.  If .CTVST contains
; zero, a search of all device tables will be made.  A search for a
; specific device type requires filling in .CTVST with the proper code.
;
; The reply to the request will return with .CTVST containing appropriate
; device type.  If no volume set was found, the type field of .CTVST will
; be zero.  Volume specific information will be returned in the sub-blocks
; of type  .CTVLS, in a format meaningful to that device type.
;
; Note: The sub-block type .CTVLS does not contain data in a generic form.
;	This is  to accomodate the different characteristics of the devices
;	processed by [SYSTEM]CATALOG.


	.CTVSB==1		;VOLUME SET DATA BLOCK

	...LOC==.
	 PHASE	0

.CTVFL:! BLOCK	1		;FLAGS
   CT.XXX==77777B14		   ;RESERVED FOR DEC
   CT.TYP==7B17			   ;VOLUME-SET TYPE
				   ;(SEE CATALOG DEVICE TYPES)
   CT.NVL==777B26		   ;NUMBER OF VOLUMES IN VOLUME-SET
   CT.FEL==777B35		   ;FILE ENTRY LENGTH
.CTVSN:! BLOCK	VSNSIZ		;VOLUME-SET NAME
.CTVED:! BLOCK	1		;VOLUME-SET EXPIRATION DATE
.CTVUS:! BLOCK	1		;OWNER PPN (USER)
.CTVNM:! BLOCK	NAMSIZ		;8-BIT 39 CHARACTER ASCIZ NAME
.CTVLO:! BLOCK	LOCSIZ		;8-BIT 19 CHARACTER ASCIZ LOCATION TEXT
.CTVSC:! BLOCK	1		;VOLUME-SET CHARACTERISTICS
				;(TIMESHARED BY EACH DEVICE)
   CT.LTS==1B26			   ;MAGTAPE LABEL TYPE SET
   CT.LAB==17B30		   ;MAGTAPE LABEL TYPE
   CT.DEN==7B33			   ;MAGTAPE DENSITY
   CT.TRK==3B35			   ;MAGTAPE TRACKS
.CTCST:! BLOCK	1		;CUSTOMER WORD
.CTVSL:!			;VSN BLOCK LENGTH
	 DEPHASE
	 LOC	...LOC
VSNWDS==.OHDRS+ARG.SZ+.CTVSL	;TOTAL WORDS FOR VOLUME-SET DATA


	.CTVLB==2		;VOLUME BLOCK

; DECtape volume block
	 ...LOC==.
	 PHASE	0
.DTRID:! BLOCK	1		;SIXBIT REELID
.DTLEN:!			;LENGTH OF BLOCK
	 DEPHASE
	 LOC	...LOC
DTAWDS==ARG.SZ+.DTLEN		;TOTAL WORDS FOR REEL STORAGE
DTAMNV==<PAGSIZ-VSNWDS>/DTAWDS	;MAXIUMUM NUMBER OF REELS


; Magtape volume block
	 ...LOC==.
	 PHASE	0
.MTRID:! BLOCK	2		;6 CHARACTER 8-BIT ASCII REELID
.MTLEN:!			;LENGTH OF BLOCK
	 DEPHASE
	 LOC	...LOC
MTAWDS==ARG.SZ+.MTLEN		;TOTAL WORDS FOR REEL STORAGE
MTAMNV==<PAGSIZ-VSNWDS>/MTAWDS	;MAXIUMUM NUMBER OF REELS


; Structure volume block
	 ...LOC==.
	 PHASE	0
.STUID:! BLOCK	1		;UNIT-ID
.STUCH:! BLOCK	1		;UNIT CHARACTERISTICS WORD
  ST.UKT==077000		   ;KONTROLLER TYPE
  ST.UTY==000770		   ;UNIT TYPE
  ST.UCL==000007		   ;CLASS
.STLEN:!			;LENGTH OF BLOCK
	 DEPHASE
	 LOC	...LOC
STRWDS==ARG.SZ+.STLEN		;TOTAL WORDS FOR UNIT STORAGE
STRMNV==<PAGSIZ-VSNWDS>/STRWDS	;MAXIUMUM NUMBER OF UNITS


; DEFINE .CTVLM AS THE MAXIMUM VOLUME BLOCK LENGTH
	MAX	(<.DTLEN,.MTLEN,.STLEN>,.CTVLM)
SUBTTL	Disk unit definitions


DEFINE	DSKUNI,<

	XLIST
X	(RA60,.DCCRA ,.DCU60)
X	(RA80,.DCCRA ,.DCU80)
X	(RA81,.DCCRA ,.DCU81)
X	(RD10,.DCCFH ,.DCUFD)
X	(RM03,.DCCRP ,.DCUR3)
X	(RM10B,.DCCFH ,.DCUFM)
X	(RP02,.DCCDP ,.DCUD2)
X	(RP03,.DCCDP ,.DCUD3)
X	(RP04,.DCCRP ,.DCUR4)
X	(RP06,.DCCRP ,.DCUR6)
X	(RP07,.DCCRP ,.DCUR7)
X	(RP20,.DCCRN ,.DCUN0)
X	(RS04,.DCCFS ,.DCUS4)
	LIST

>

	ZZ==0
DEFINE	X	(NAME,KONT,TYPE),<ZZ==ZZ+1>
	DSKUNI
	.CTUMX==ZZ
SUBTTL	Device dispatch vector offsets


	...LOC==.
	 PHASE	0

.CVLNK:! BLOCK	1		;LINK TO NEXT DISPATCH
.CVTYP:! BLOCK	1		;CATALOG DEVICE TYPE
.CVDAT:! BLOCK	1		;DATA BASE ADDRESS
.CVTXT:! BLOCK	1		;ADDRESS OF NAME FOR THIS DATA BLOCK
.CVFIL:! BLOCK	1		;SIXBIT DATA FILE NAME
.CVFMT:! BLOCK	1		;CURRENT FILE FORMAT NUMBER
.CVWVS:! BLOCK	1		;WORDS PER VOLUME STORAGE
.CVMNV:! BLOCK	1		;MAXIMUM NUMBER OF VOLUMES ALLOWED
.CVINI:! BLOCK	1		;INITIALIZATION ROUTINE
.CVCVT:! BLOCK	1		;CONVERT FILE FORMATS
.CVLHD:! BLOCK	1		;LIST HEADER
.CVCHK:! BLOCK	1		;CHECK FOR LEGAL ENTRY
.CVINS:! BLOCK	1		;INSERT ENTRY
.CVLST:! BLOCK	1		;LIST ENTRY
.CVSHW:! BLOCK	1		;SHOW ENTRY
.CVRSW:! BLOCK	1		;PROCESS /REELID
.CVLEN:!			;LENGTH OF VECTOR

	 DEPHASE
	 LOC	...LOC
SUBTTL	Device data base offsets


	 ...LOC==.
	 PHASE	0

.CDVEC:! BLOCK	.CVLEN		;DISPATCH VECTOR
.CDWSC:! BLOCK	1		;WAIT STATE CODE
   .CWRUN==0			   ;RUNNABLE
   .CWDNI==1			   ;DATA BASE NOT INITIALIZED
   .CWOPR==2			   ;OPERATOR RESPONSE WAIT
.CDUPD:! BLOCK	1		;NON-ZERO IF UPDATES ALLOWED
.CDPMC:! BLOCK	1		;PENDING MESSAGE COUNT
.CDPML:! BLOCK	1		;LINKED LIST HANDLE FOR PENDING MESSAGES
.CDFIN:! BLOCK	1		;NON-ZERO IF INSERT FINISHED
.CDMOD:! BLOCK	1		;NON-ZERO IF MODIFYING ENTRY
.CDFMT:! BLOCK	1		;CURRENT FILE FORMAT NUMBER
.CDNVA:! BLOCK	1		;NEW VSN ADDRESS FOR INSERT FOO=BAR
.CDACK:! BLOCK	1		;ACK CODE
.CDACF:! BLOCK	1		;NON-ZERO IF ACK CODE REQUESTED
.CDMSG:! BLOCK	1		;MESSAGE BLOCK ADDRESS
.CDMST:! BLOCK	1		;MESSAGE PROCESSING STORAGE (TEMP)

.CDPFB:! BLOCK	FOB.SZ		;PRIMARY DATA FILE FOB
.CDPFA:! BLOCK	2		;PRIMARY DATA FILE FAB
.CDPFD:! BLOCK	FDXSIZ		;PRIMARY DATA FILE FD
.CDPIF:! BLOCK	1		;PRIMARY DATA FILE IFN
.CDPFP:! BLOCK	1		;PRIMARY DATA FILE POSITION
.CDPFM:! BLOCK	1		;PRIMARY DATA FILE FORMAT NUMBER

.CDAFB:! BLOCK	FOB.SZ		;ALTERNATE DATA FILE FOB
.CDAFA:! BLOCK	2		;ALTERNATE DATA FILE FAB
.CDAFD:! BLOCK	FDXSIZ		;ALTERNATE DATA FILE FD
.CDAIF:! BLOCK	1		;ALTERNATE DATA FILE IFN
.CDAFP:! BLOCK	1		;ALTERNATE DATA FILE POSITION
.CDAFM:! BLOCK	1		;ALTERNATE DATA FILE FORMAT NUMBER

.CDLFB:! BLOCK	FOB.SZ		;LISTING FILE FOB
.CDLFA:! BLOCK	2		;LISTING FILE FAB
.CDLFD:! BLOCK	FDXSIZ		;LISTING FILE FD
.CDLIF:! BLOCK	1		;LISTING FILE IFN
.CDLPN:! BLOCK	1		;LISTING PAGE NUMBER
.CDLLN:! BLOCK	1		;LISTING LINE NUMBER
.CDLDN:! BLOCK	1		;LISTING DATA NUMBER

.CDTXA:! BLOCK	ATRSIZ		;TEXT ATTRIBUTE BUFFER
.CDTXF:! BLOCK	1		;TEXT FLAG FOR LISTING GENERATION
.CDTXB:! BLOCK	1		;TEXT BLOCK ADDRESS
.CDTXP:! BLOCK	1		;TEXT BYTE POINTER
.CDTXC:! BLOCK	1		;TEXT BYTE COUNT

.CDCOR:! BLOCK	1		;LINKED LIST HANDLE FOR CORE ALLOCATION
.CDTLN:! BLOCK	1		;TABLE LENGTH
.CDTAB:! BLOCK	1		;TABLE ADDRESS
.CDLEN:!			;LENGTH OF DATA BASE

	 DEPHASE
	 LOC	...LOC
SUBTTL	Data file definitions


	 ...LOC==.
	 PHASE	0

.C0CNT:! BLOCK	1		;WORD COUNT WORD
.C0NAM:! BLOCK	1		;SIXBIT NAME
.C0PPN:! BLOCK	1		;OWNER PPN
.C0NM1:! BLOCK	1		;OWNER NAME (WORD 1)
.C0NM2:! BLOCK	1		;OWNER NAME (WORD 2)
.C0UNI:!			;OFFSET TO UNIT STORAGE
	 DEPHASE
	 LOC	...LOC


	.SXFMT==1		;CURRENT FILE FORMAT

; STRUCTURE FILE FORMAT 0
	.S0UID==0		;SIXBIT UNIT NAME
	.S0UST==1		;STATUS WORD
	  S0.KON==77000		   ;KONTROLLER TYPE
	  S0.TYP==770		   ;UNIT TYPE
	  S0.CLS==7		   ;CLASS
	.S0ULN==2		;LENGTH OF EACH UNIT DESCRIPTOR

SUBTTL	Text table macro


DEFINE	TXTGEN	(WID,SUB,TXT,INS),<
	EXP	WID
	PUSHJ	P,SUB
	[ASCIZ	|TXT|]
	<INS>
>
SUBTTL	ACK message definitions


; FLAGS
	AM.ACK==400000		;NORMAL ACK
	AM.LOG==200000		;LOG TEXT
	AM.WTO==100000		;WTO TEXT
	AM.FLG==777000		;MASK OF ALL FLAGS


DEFINE	ACKCLS,<

	XLIST

X	(TXT,<>)
X	(CAT,<^I/@G$APLT/>)
X	(STR,<^I/@G$APLV/ starting>)
X	(RMD,<^I/@G$GLXN/MDA restart detected by ^I/@G$APLT/>)
X	(ROP,<^I/@G$GLXN/OPERATOR restart detected by ^I/@G$APLT/>)
X	(CTE,<^I/@G$APLT/ error>)
X	(MDA,<^I/@G$GLXN/MDA error detected by ^I/@G$APLT/>)
X	(OPR,<^I/@G$GLXN/OPERATOR error detected by ^I/@G$APLT/>)
X	(MON,<Monitor error detected by ^I/@G$APLT/>)
X	(USR,<User error detected by ^I/@G$APLT/>)
X	(CAT,<^T/@.CVTXT(C)/ catalog>)

	LIST
>

DEFINE	X	(NAM,TXT),<.AM'NAM==<ZZ==ZZ+1>>
	ZZ==0
	ACKCLS


DEFINE	ACKTXT,<

;; [SYSTEM]CATALOG
;;	 ABV FLG CLS TXT
;;	 --- --- --- ---
X	(STR,LOG,STR,<Application code = ^O/APLCOD/>)
X	(RST,LOG,CAT,<New application code = ^O/APLCOD/>)
X	(POP,WTO,CTE,<Open error on ^F/.CDPFD(C)/; ^E/[-1]/>)
X	(AOP,WTO,CTE,<Open error on ^F/.CDAFD(C)/; ^E/[-1]/>)
X	(LOP,WTO,TXT,<Open error on ^F/.CDLFD(C)/; ^E/[-1]/>)
X	(PPS,WTO,CTE,<Positioning error on ^F/.CDPFD(C)/; ^E/[-1]/>)
X	(APS,WTO,CTE,<Positioning error on ^F/.CDAFD(C)/; ^E/[-1]/>)
X	(PIE,WTO,CTE,<Input error reading ^F/.CDPFD(C)/; ^E/[-1]/>)
X	(AIE,WTO,CTE,<Input error reading ^F/.CDAFD(C)/; ^E/[-1]/>)
X	(POE,WTO,CTE,<Output error writing ^F/.CDPFD(C)/; ^E/[-1]/>)
X	(AOE,WTO,CTE,<Output error writing ^F/.CDAFD(C)/; ^E/[-1]/>)
X	(LOE,WTO,CTE,<Output error writing ^F/.CDLFD(C)/; ^E/[-1]/>)
X	(PEF,WTO,CTE,<Premature EOF reading ^F/.CDPFD(C)/>)
X	(AEF,WTO,CTE,<Premature EOF reading ^F/.CDAFD(C)/>)
X	(COR,WTO,CTE,<^T/@.CVTXT(C)/ core allocation failed; ^E/[-1]/>)
X	(TSE,WTO,CTE,<^T/@.CVTXT(C)/ table search error; ^E/[-1]/>)
X	(UIM,WTO,CTE,<^I/UNKTXT/>)
X	(UPA,WTO,CTE,<Unexpected process ACK, ACK code = ^O12R0/.MSCOD(M)/>)
X	(UTA,WTO,CTE,<Unexpected text ACK: ^T/.OHDRS+ARG.DA(M)/>)
X	(CVT,WTO,CAT,<File ^F/.CDPFD(C)/ converted to format ^O/.CVFMT(C)/>)
X	(CNA,ACK,TXT,<^T/@.CVTXT(C)/ catalog is not available>)
X	(DEL,ACK,TXT,<^T/@.CVTXT(C)/ ^T/(T3)/ deleted>)
X	(DIS,ACK,TXT,<^T/@.CVTXT(C)/ catalog updates disabled>)
X	(ENA,ACK,TXT,<^T/@.CVTXT(C)/ catalog updates enabled>)
X	(INS,ACK,TXT,<^T/@.CVTXT(C)/ ^T/.CTVSN(A)/ inserted>)
X	(MOD,ACK,TXT,<^T/@.CVTXT(C)/ ^T/.CTVSN(A)/ modified>)
X	(LIS,ACK,TXT,<^T/@.CVTXT(C)/s listed to file ^F/.CDLFD(C)/>)

;; [SYSTEM]MDA
;;	 ABV FLG CLS TXT
;;	 --- --- --- ---
X	(CUD,WTO,TXT,<Catalog updates by MDA are disabled>)
X	(MDA,WTO,MDA,<Illegally formatted MDA message>)
X	(VNF,ACK,TXT,<Volume set ^T/(T3)/ is not in any catalog>)
X	(RMI,WTO,RMD,<Re-initializing catalogs>)
X	(RMN,WTO,RMD,<Catalogs do not need re-initializing>)

;; [SYSTEM]OPERATOR
;;	 ABV FLG CLS TXT
;;	 --- --- --- ---
X	(ROP,WTO,ROP,<>)
X	(APL,WTO,OPR,<Illegal application message>)
X	(OPR,WTO,OPR,<Operator command message error>)
X	(AEV,ACK,TXT,<Already existing volume ^T/(T3)/>)
X	(ANL,ACK,TXT,<Abbreviations are illegal on DELETE and MODIFY commands>)
X	(NEV,ACK,TXT,<Non-existant volume ^T/(T3)/>)
X	(NVN,ACK,TXT,<No ^T/@.CVTXT(C)/ name given>)
X	(UNK,ACK,TXT,<^T/@.CVTXT(C)/ ^T/(T3)/ is not in the catalog>)
X	(AMB,ACK,TXT,<^T/(T3)/ is not a unique ^T/@.CVTXT(C)/ name>)
X	(AIC,ACK,TXT,<^T/@.CVTXT(C)/ ^T/(P1)/ already exists in catalog>)
X	(PWI,ACK,TXT,<Partial PPN wildcarding is illegal>)
X	(NRV,ACK,TXT,<No reels inserted in magtape volume set>)
X	(DNS,ACK,TXT,<INSERT MAGTAPE command requires /DENSITY>)
X	(TNS,ACK,TXT,<INSERT MAGTAPE command requires /TRACKS>)
X	(DNT,ACK,TXT,<Density doesn't match track type>)
X	(ARV,ACK,TXT,<Attempt to remove last reel in magtape volume set>)
X	(NUS,ACK,TXT,<No units inserted in structure>)
X	(ARU,ACK,TXT,<Attempt to remove last unit in structure>)
X	(NPV,ACK,TXT,<No privileges to use the catalog facilities>)

;; MONITOR
;;	 ABV FLG CLS TXT
;;	 --- --- --- ---
X	(GFR,WTO,MON,<Illegally formatted GOPHER message>)

;; USER
;;	 ABV FLG CLS TXT
;;	 --- --- --- ---
X	(IVV,ACK,TXT,<Invalid volume ^T/(T3)/>)
X	(NVO,ACK,TXT,<No volumes owned>)
X	(QFE,ACK,TXT,<QUEUE. UUO format error>)

>

	END