Google
 

Trailing-Edge - PDP-10 Archives - BB-H138F-BM_1988 - 7-sources/rmssym.mtb
There are 6 other files named rmssym.mtb in the archive. Click here to see a list.
;!
;!	COPYRIGHT (C) DIGITAL EQUIPMENT CORPORATION 1977, 1986.
;!	ALL RIGHTS RESERVED.
;!
;!	THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY  BE  USED  AND
;!	COPIED ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH
;!	THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE.   THIS  SOFTWARE  OR
;!	ANY  OTHER  COPIES  THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE
;!	AVAILABLE TO ANY OTHER PERSON.  NO TITLE TO AND OWNERSHIP OF  THE
;!	SOFTWARE IS HEREBY TRANSFERRED.
;!
;!	THE INFORMATION IN THIS SOFTWARE IS  SUBJECT  TO  CHANGE  WITHOUT
;!	NOTICE  AND  SHOULD  NOT  BE CONSTRUED AS A COMMITMENT BY DIGITAL
;!	EQUIPMENT CORPORATION.
;!
;!	DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR  RELIABILITY  OF
;!	ITS SOFTWARE ON EQUIPMENT THAT IS NOT SUPPLIED BY DIGITAL.
;!

;!	*********************************************************
;!	*							*
;!	*		START OF RMSSYM.MTB			*
;!	*							*
;!	*	RMS SYMBOL AND MACRO DEFINITIONS		*
;!	*							*
;!	*	THIS FILE IS PROCESSED BY BOTH MACRO AND BLISS	*
;!	*							*
;!	*********************************************************

;!	AUTHOR: S. BLOUNT
;!	EDIT DATE: MAY 1, 1976

;!	REVISION HISTORY:
;!	
;!	PRODUCT	MODULE	 SPR
;!	 EDIT	 EDIT	 QAR		DESCRIPTION
;!	======	======	=====		===========
;!	
;!	402	1	XXXXX		(RL, 9-May-83) Add ER$EXT error, for
;!					file extend error ("Quota exceeded").
;!	403	2	XXXXX		(AWN, May-83) Add some symbols.
;!
;!	404	3	XXXXX		(RL, 10-May-83) Add FB$SMU bit to
;!					FAC field for COBOTS SMU.
;!	411	4	XXXXX		(AWN, 3-Jun-83) Add new key data types
;!	
;!	501	5	XXXXX		(AWN, 30-May-84) Add new device bits
;!
;!	613	6	XXXXX		(SC, 27-Mar-86) Add DIL8 type class
;!
;!      656                             (GAS, 13-Oct-86) Add all protection XAB
;!                                      macros and field definitions
;!	
;!		***** END OF REVISION HISTORY *****

;!	*********************************************************
;!	*							*
;!	*	==>	READ FILE RMS20T.SNO BEFORE	<==	*
;!	*	==>	MAKING ANY EDITS TO THIS FILE	<==	*
;!	*							*
;!	*********************************************************


;!		IN MACRO THIS FILE MUST BE ASSEMBLED AFTER FILE RMSSYM.MPR:

;!			@MACRO
;!			*,=RMSSYM.MPR,RMSSYM.MTB


;!		IN BLISS THIS FILE MUST BE REQUIRED AS SHOWN BELOW:

;!			MODULE ...
;!				.
;!				.
;!				.
;!				REQUIRE RMSSYM.BPR;
;!				REQUIRE RMSSYM.MTB;
;!				REQUIRE RMSSYM.BPS;


;!	***********NOTE:  MACROS THAT ARE CALLED IN THIS FILE ARE DEFINED
;!			  IN RMSSYM.MPR (MACRO) AND RMSSYM.BPR (BLISS).
;!			  SEE THESE FILES FOR ADDITIONAL INFORMATION.



;!		CONTENTS:

;!		1.  DEFINE OFFSET CONSTANTS
;!		2.  DEFINE SIZE, POSITION, COUNT, AND MISC. CONSTANTS
;!		3.  SYMBOL DEFINITIONS FOR FILE ACCESS BLOCK (FAB)
;!		4.  FAB DEFINITIONS
;!		5.  SYMBOL DEFINITIONS FOR RECORD ACCESS BLOCK (RAB)
;!		6.  RAB DEFINITIONS
;!		7.  SYMBOL DEFINITIONS FOR EXTENDED ATTRIBUTES BLOCK (XAB)
;!		8.  XAB DEFINITIONS
;!		9.  SYMBOL DEFINITIONS FOR DEBUG MACRO
;!		10. DEFINE RUN TIME OPERATION CODES
;!	*********************************************************
;!	*		1.  DEFINE OFFSET CONSTANTS		*
;!	*********************************************************


S$$DC  (XX,OID,0)		;! BID FIELD OFFSET IN A FAB, RAB, OR XAB
    ;!		MACRO-10 EXPANDS THE ABOVE TO GIVE:	XX$OID==^D0
    ;!		BLISS EXPANDS THE ABOVE TO GIVE:	BIND XXOID  = 0;

S$$DC  (XX,OLN,0)		;! BLN FIELD OFFSET IN A FAB, RAB, OR XAB
    ;!		NOTE THAT RMS ASSUMES THE BID (BLOCK TYPE) AND BLN (BLOCK LENGTH)
    ;!		FIELDS ARE THE SAME SIZE AND ARE IN THE SAME RELATIVE POSITION
    ;!		IN A FAB (FILE ACCESS BLOCK), RAB (RECORD ACCESS BLOCK), OR
    ;!		XAB (EXTENDED ATTRIBUTES BLOCK).


S$$DC  (XX,OST,1)		;! STS FIELD OFFSET IN A FAB OR RAB
S$$DC  (XX,OSV,1)		;! STV FIELD OFFSET IN A FAB OR RAB
S$$DC  (XX,OCT,2)		;! CTX FIELD OFFSET IN A FAB OR RAB
    ;!		NOTE THAT RMS ASSUMES THE STS (STATUS), STV (STATUS VALUE), AND
    ;!		CTX (USER CONTEXT WORD) FIELDS ARE THE SAME SIZE AND ARE IN THE
    ;!		SAME RELATIVE POSITION IN A FAB OR RAB.

S$$DC  (XX,OCO,1)		;! COD FIELD OFFSET IN AN XAB
S$$DC  (XX,OF0,0)		;! OFFSET 0 (0TH WORD OF THE BLOCK)
S$$DC  (XX,OF1,1)		;! OFFSET 1
S$$DC  (XX,OF2,2)		;! OFFSET 2
S$$DC  (XX,OF3,3)		;! OFFSET 3
S$$DC  (XX,OF4,4)		;! OFFSET 4
S$$DC  (XX,OF5,5)		;! OFFSET 5
S$$DC  (XX,OF6,6)		;! OFFSET 6
S$$DC  (XX,OF7,7)		;! OFFSET 7
S$$DC  (XX,OF8,8)		;! OFFSET 8
S$$DC  (XX,OF9,9)		;! OFFSET 9
S$$DC  (XX,O10,10)		;! OFFSET 10
S$$DC  (XX,O11,11)		;! OFFSET 11
S$$DC  (XX,O12,12)		;! OFFSET 12
S$$DC  (XX,O13,13)		;! OFFSET 13
S$$DC  (XX,O14,14)		;! OFFSET 14
S$$DC  (XX,O15,15)		;! OFFSET 15
S$$DC  (XX,O16,16)		;! OFFSET 16
S$$DC  (XX,O17,17)		;! OFFSET 17
S$$DC  (XX,O18,18)		;! OFFSET 18
S$$DC  (XX,O19,19)		;! OFFSET 19
S$$DC  (XX,O20,20)		;! OFFSET 20
S$$DC  (XX,O21,21)		;! OFFSET 21
S$$DC  (XX,O22,22)		;! OFFSET 22
;!	*********************************************************
;!	*	2.  DEFINE SIZE, POSITION, COUNT, AND		*
;!	*	    MISC. CONSTANTS				*
;!	*********************************************************


    ;!			DEFINE SIZE CONSTANTS (NUMBER OF BITS)
						;! Add missing values     ;AAAA

S$$DC  (XX,SW,36)		;! WORD SIZE
S$$DC  (XX,SH,18)		;! HALF WORD SIZE
S$$DC  (XX,S36,36)		;! 36 BIT FIELD
S$$DC  (XX,S35,35)		;! 35 BIT FIELD
S$$DC  (XX,S34,34)		;! 34 BIT FIELD
S$$DC  (XX,S33,33)		;! 33 BIT FIELD
S$$DC  (XX,S32,32)		;! 32 BIT FIELD
S$$DC  (XX,S31,31)		;! 31 BIT FIELD
S$$DC  (XX,S30,30)		;! 30 BIT FIELD
S$$DC  (XX,S29,29)		;! 29 BIT FIELD
S$$DC  (XX,S28,28)		;! 28 BIT FIELD
S$$DC  (XX,S27,27)		;! 27 BIT FIELD
S$$DC  (XX,S26,26)		;! 26 BIT FIELD
S$$DC  (XX,S25,25)		;! 25 BIT FIELD
S$$DC  (XX,S24,24)		;! 24 BIT FIELD
S$$DC  (XX,S23,23)		;! 23 BIT FIELD
S$$DC  (XX,S22,22)		;! 22 BIT FIELD
S$$DC  (XX,S21,21)		;! 21 BIT FIELD
S$$DC  (XX,S20,20)		;! 20 BIT FIELD
S$$DC  (XX,S19,19)		;! 19 BIT FIELD
S$$DC  (XX,S18,18)		;! 18 BIT FIELD
S$$DC  (XX,S17,17)		;! 17 BIT FIELD
S$$DC  (XX,S16,16)		;! 16 BIT FIELD
S$$DC  (XX,S15,15)		;! 15 BIT FIELD
S$$DC  (XX,S14,14)		;! 14 BIT FIELD
S$$DC  (XX,S13,13)		;! 13 BIT FIELD
S$$DC  (XX,S12,12)		;! 12 BIT FIELD
S$$DC  (XX,S11,11)		;! 11 BIT FIELD
S$$DC  (XX,S10,10)		;! 10 BIT FIELD
S$$DC  (XX,S9,9)		;! 9 BIT FIELD
S$$DC  (XX,S8,8)		;! 8 BIT FIELD
S$$DC  (XX,S7,7)		;! 7 BIT FIELD
S$$DC  (XX,S6,6)		;! 6 BIT FIELD
S$$DC  (XX,S5,5)		;! 5 BIT FIELD
S$$DC  (XX,S4,4)		;! 4 BIT FIELD
S$$DC  (XX,S3,3)		;! 3 BIT FIELD
S$$DC  (XX,S2,2)		;! 2 BIT FIELD
S$$DC  (XX,S1,1)		;! 1 BIT FIELD
S$$DC  (XX,S0,0)		;! PLACE-HOLDER, ZERO-LENGTH FIELD
S$$SC  (XX,SID,XX,SH)		;! BID FIELD SIZE IN A FAB, RAB, OR XAB
    ;!		MACRO EXPANDS THE ABOVE TO GIVE:	XX$SID==XX$SH
    ;!		BLISS EXPANDS THE ABOVE TO GIVE:	BIND XXSID==XXSH;

S$$SC  (XX,SLN,XX,SH)		;! BLN FIELD SIZE IN A FAB, RAB, OR XAB
S$$SC  (XX,SST,XX,SH)		;! STS FIELD SIZE IN A FAB OR RAB
S$$SC  (XX,SSV,XX,SH)		;! STV FIELD SIZE IN A FAB OR RAB
S$$SC  (XX,SCT,XX,SW)		;! CTX FIELD SIZE IN A FAB OR RAB
S$$DC  (XX,SCO,5)		;! COD FIELD SIZE IN XAB HEADER

    ;!			DEFINE POSITION CONSTANTS (NUMBER OF BITS TO
    ;!			THE RIGHT OF THE FIELD)
S$$DC  (XX,PW,0)		;! WORD POSITION
S$$DC  (XX,PR,0)		;! RIGHT HALF WORD POSITION
S$$DC  (XX,P0,0)		;! RIGHT HALF WORD POSITION
S$$DC  (XX,P1,1)		;! 1 BIT REMAINING AT RIGHT
S$$DC  (XX,P2,2)		;! 2 BITS REMAINING AT RIGHT
S$$DC  (XX,P3,3)		;! 3 BITS REMAINING AT RIGHT
S$$DC  (XX,P4,4)		;! 4 BITS REMAINING AT RIGHT
S$$DC  (XX,P5,5)		;! 5 BITS REMAINING AT RIGHT
S$$DC  (XX,P6,6)		;! 6 BITS REMAINING AT RIGHT
S$$DC  (XX,P7,7)		;! 7 BITS REMAINING AT RIGHT
S$$DC  (XX,P8,8)		;! 8 BITS REMAINING AT RIGHT
S$$DC  (XX,P9,9)		;! 9 BITS REMAINING AT RIGHT
S$$DC  (XX,P10,10)		;! 10 BITS REMAINING AT RIGHT
S$$DC  (XX,P11,11)		;! 11 BITS REMAINING AT RIGHT
S$$DC  (XX,P12,12)		;! 12 BITS REMAINING AT RIGHT
S$$DC  (XX,P13,13)		;! 13 BITS REMAINING AT RIGHT
S$$DC  (XX,P14,14)		;! 14 BITS REMAINING AT RIGHT
S$$DC  (XX,P15,15)		;! 15 BITS REMAINING AT RIGHT
S$$DC  (XX,P16,16)		;! 16 BITS REMAINING AT RIGHT
S$$DC  (XX,P17,17)		;! 17 BITS REMAINING AT RIGHT
S$$DC  (XX,P18,18)		;! LEFT HALF WORD POSITION
S$$DC  (XX,PL,18)		;! LEFT HALF WORD POSITION
S$$DC  (XX,P19,19)		;! 19 BITS REMAINING AT RIGHT
S$$DC  (XX,P20,20)		;! 20 BITS REMAINING AT RIGHT
S$$DC  (XX,P21,21)		;! 21 BITS REMAINING AT RIGHT
S$$DC  (XX,P22,22)		;! 22 BITS REMAINING AT RIGHT
S$$DC  (XX,P23,23)		;! 23 BITS REMAINING AT RIGHT
S$$DC  (XX,P24,24)		;! 24 BITS REMAINING AT RIGHT
S$$DC  (XX,P25,25)		;! 25 BITS REMAINING AT RIGHT
S$$DC  (XX,P26,26)		;! 26 BITS REMAINING AT RIGHT
S$$DC  (XX,P27,27)		;! 27 BITS REMAINING AT RIGHT
S$$DC  (XX,P29,29)		;! 29 BITS REMAINING AT RIGHT
S$$DC  (XX,P30,30)		;! 30 BITS REMAINING AT RIGHT
S$$DC  (XX,P31,31)		;! 31 BITS REMAINING AT RIGHT
S$$DC  (XX,P32,32)		;! 32 BITS REMAINING AT RIGHT
S$$DC  (XX,P33,33)		;! 33 BITS REMAINING AT RIGHT
S$$DC  (XX,P34,34)		;! 34 BITS REMAINING AT RIGHT
S$$DC  (XX,P35,35)		;! 35 BITS REMAINING AT RIGHT
S$$SC  (XX,PID,XX,PL)		;! BID FIELD POSITION IN A FAB, RAB, OR XAB
S$$SC  (XX,PLN,XX,PR)		;! BLN FIELD POSITION IN A FAB, RAB, OR XAB
S$$SC  (XX,PST,XX,PL)		;! STS FIELD POSITION IN A FAB OR RAB
S$$SC  (XX,PSV,XX,PR)		;! STV FIELD POSITION IN A FAB OR RAB
S$$SC  (XX,PCT,XX,PW)		;! CTX FIELD POSITION IN A FAB OR RAB
S$$SC  (XX,PCO,XX,PL)		;! COD FIELD POSITION IN XAB HEADER

    ;!			COUNT DEFINITIONS
S$$DC  (XX,C0,0)		;! COUNT = 0 (FIELD IS NOT AN ARRAY)
S$$DC  (XX,C8,8)		;! COUNT = 8 (FIELD IS AN ARRAY CONTAINING
    ;!				   8 ELEMENTS - USED FOR POS AND SIZ
    ;!				   FIELDS IN A XAB)

    ;!			DEFINE MISC. CONSTANTS
S$$DC  (XX,YES,1)		;! USED TO INDICATE THAT AN INITIALIZATION
    ;!				   MACRO IS DEFINED FOR A FIELD
S$$DC  (XX,NO,0)		;! USED TO INDICATE THAT FIELD CANNOT BE
    ;!				   SET BY A USER AT COMPILE TIME
S$$DC  (X,ZERO,0)		;! DEFAULT VALUE OF 0 (ZERO)


S$$DC  (FB,NIL,0)		;! FLAGS OFF FOR FAB
S$$DC  (RB,NIL,0)		;! FLAGS OFF FOR RAB
S$$DC  (XB,NIL,0)		;! FLAGS OFF FOR XAB
;!*********************************************************
;!*   3.  SYMBOL DEFINITIONS FOR FILE ACCESS BLOCK (FAB)  *
;!*********************************************************


;!			FAC (FILE ACCESS) FIELD

S$$DC  (FB,GET,1)		;! GET ACCESS
S$$DC  (FB,UPD,2)		;! UPDATE
S$$DC  (FB,PUT,4)		;! PUT ACCESS
S$$DC  (FB,DEL,8)		;! DELETE
S$$DC  (FB,TRN,16)		;! TRUNCATE
S$$DC  (FB,BIO,32)		;! [403] BLOCK I/O
S$$DC  (FB,BRO,64)		;! [403] BLOCK OR RECORD I/O
S$$DC  (FB,APP,128)		;! [403] APPEND
S$$DC  (FB,SMU,131072)		;! [404] COBOTS-CONTROLLED SMU
S$$SC  (FB,IN,FB,GET)		;! INPUT ACCESS
S$$SC  (FB,OUT,FB,PUT)		;! OUTPUT ACCESS


    ;!			FOP (FILE OPTIONS) FIELD
S$$BC  (FB,WAT,35)		;! WAIT FOR FILE
S$$BC  (FB,CIF,34)		;! CREATE FILE ONLY IF NON-EXISTENT
S$$BC  (FB,DRJ,33)		;! DON'T RELEASE THE JFN
S$$BC  (FB,DFW,32)		;! DEFERRED WRITE TO FILE
S$$BC  (FB,SUP,31)		;! SUPERSEDE FILE IF IT EXISTS
S$$BC  (FB,SPL,30)		;! [403] SPOOL (TO PRINTER) ON CLOSE
S$$BC  (FB,SCF,29)		;! [403] SUBMIT TO BATCH ON CLOSE
S$$BC  (FB,DLT,28)		;! [403] DELETE ON CLOSE
S$$BC  (FB,NAM,27)		;! [403] OPEN BY NAME BLOCK
S$$BC  (FB,CTG,26)		;! [403] CONTIGUOUS
S$$BC  (FB,LKO,25)		;! [403] OVERRIDE FILE LOCK
S$$BC  (FB,TMP,24)		;! [403] TEMP FILE
S$$BC  (FB,MKD,23)		;! [403] MARK FOR DELETE
S$$BC  (FB,OFP,22)		;! [403] OUTPUT FILE PARSE

    ;!		MACRO-10 EXPANDS THE ABOVE TO GIVE:	FB$CIF==1B34
    ;!		BLISS EXPANDS THE ABOVE TO GIVE:	BIND FBCIF = 1^(35-34);

    ;!			ORG (FILE ORGANIZATION) FIELD
    ;!			(***NOTE:  DO NOT USE 0 AS VALUE FOR FILE ORGANIZATION

S$$DC  (FB,SEQ,1)		;! SEQUENTIAL FILE
S$$DC  (FB,REL,2)		;! RELATIVE FILE
S$$DC  (FB,IDX,3)		;! INDEXED FILE

    ;!			RFM (RECORD FORMAT) FIELD
S$$DC  (FB,VAR,0)		;! VARIABLE LENGTH RECORDS
S$$DC  (FB,STM,1)		;! STREAM RECORDS
S$$DC  (FB,LSA,2)		;! LINE SEQUENCED ASCII RECORDS
S$$DC  (FB,FIX,3)		;! FIXED LENGTH RECORDS
S$$DC  (FB,VFC,4)		;! [403] VFC FORMAT
S$$DC  (FB,UDF,5)		;! [403] UNDEFINED/UNKNOWN FORMAT
S$$DC  (FB,SCR,6)		;! [570] STREAM_CR
S$$DC  (FB,SLF,7)		;! [570] STREAM_LF
    ;!			RAT (RECORD ATTRIBUTES) FIELD
S$$BC  (FB,BLK,35)		;! BLOCKED
				;! [403] RESERVED
S$$BC  (FB,FTN,33)		;! [403] FORTRAN CARRIAGE CTL
S$$BC  (FB,CR,32)		;! [403] IMPLIED CRLF
S$$BC  (FB,PRN,31)		;! [403] PRINT FILE
S$$BC  (FB,EMB,30)		;! [403] EMBEDDED FORMAT CTL
S$$BC  (FB,CBL,29)		;! [403] COBOL CARRIAGE CTL
    ;!			DEV (DEVICE CHARACTERISTICS) FIELD
S$$BC  (FB,REC,35)		;! RECORD ORIENTED DEVICE
S$$BC  (FB,CCL,34)		;! CARRIAGE CONTROL DEVICE
S$$BC  (FB,TRM,33)		;! TERMINAL
S$$BC  (FB,MDI,32)		;! MULTIPLE DIRECTORY DEVICE
S$$BC  (FB,SQD,31)		;! SEQUENTIAL DEVICE
S$$BC  (FB,IDV,30)		;! Device does input    	      ;!A501 VV
S$$BC  (FB,ODV,29)		;! Device does output
S$$BC  (FB,NET,28)		;! Network device
S$$BC  (FB,MNT,27)		;! Device is mounted
S$$BC  (FB,AVL,26)		;! Device is available
S$$BC  (FB,SPO,25)		;! Device is spooled
S$$BC  (FB,RMT,24)		;! Device is remote
;!	*********************************************************
;!	*		4.  FAB DEFINITIONS			*
;!	*********************************************************

;!			STRUCTURE OF FILE ACCESS BLOCK:

;!		!=====================================!
;!		!       BID        !       BLN        !
;!		!-------------------------------------!
;!		!       STS        !       STV        !
;!		!-------------------------------------!
;!		!                 CTX                 !
;!		!-------------------------------------!
;!		!       IFI        !       JFN        !
;!		!-------------------------------------!
;!		!       FAC        !       SHR        !
;!		!-------------------------------------!
;!		!       FOP        !ORG! BSZ !  BLS   !
;!		!-------------------------------------!
;!		!                 FNA                 !
;!		!-------------------------------------!
;!		!       RAT        !       MRS        !
;!		!-------------------------------------!
;!		!                 MRN                 !
;!		!-------------------------------------!
;!		!       <UNUSED>   !FSZ !  BKS  ! RFM !
;!		!-------------------------------------!
;!		!       JNL        !       XAB        !
;!		!-------------------------------------!
;!		!       DEV        !       SDC        !
;!		!-------------------------------------!
;!		!              <UNUSED>               !
;!		!-------------------------------------!
;!		!              <UNUSED>               !
;!		!-------------------------------------!
;!		!              <UNUSED>               !
;!		!-------------------------------------!
;!		!              <UNUSED>               !
;!		!=====================================!


    ;!				DEFINE NON-ZERO DEFAULTS THAT HAVE NOT BEEN DEFINED YET 
;!	==>BEGINIMMEDIATE
S$$DC  (FA,TYP,1)				;! BLOCK TYPE
S$$DC  (FA,LNG,16)				;! BLOCK LENGTH
S$$DC  (FA,BSZ,36)				;! DEFAULT BYTE SIZE
;!	==>ENDIMMEDIATE



;!						FILE:  RMSSYM.MTB  (CONTINUED)
    ;!				DEFINE FAB FIELDS
;!	==>BEGINSTRUCTURE(FAB,FALNG)
$$FIELD (F,BID,FA,TYP,OID,SID,PID,NO ,C0)	;! BLOCK TYPE
$$FIELD (F,BLN,FA,LNG,OLN,SLN,PLN,NO ,C0)	;! BLOCK LENGTH
$$FIELD (F,STS,X,ZERO,OST,SST,PST,NO ,C0)	;! STATUS
$$FIELD (F,STV,X,ZERO,OSV,SSV,PSV,NO ,C0)	;! STATUS VALUE
$$FIELD (F,CTX,X,ZERO,OCT,SCT,PCT,YES,C0)	;! USER CONTEXT WORD
$$FIELD (F,IFI,X,ZERO,OF3,SH ,PL ,NO ,C0)	;! INTERNAL FILE ID
$$FIELD (F,JFN,X,ZERO,OF3,SH ,PR ,YES,C0)	;! JFN
$$FIELD (F,FAC,FB,GET,OF4,SH ,PL ,YES,C0)	;! FILE ACCESS
$$FIELD (F,SHR,FB,GET,OF4,SH ,PR ,YES,C0)	;! FILE SHARABILITY
$$FIELD (F,FOP,X,ZERO,OF5,SH ,PL ,YES,C0)	;! FILE OPTIONS
$$FIELD (F,ORG,FB,SEQ,OF5,S4 ,P14,YES,C0)	;! FILE ORGANIZATION
$$FIELD (F,BSZ,FA,BSZ,OF5,S6 ,P8 ,YES,C0)	;! BYTE SIZE
$$FIELD (F,BLS,X,ZERO,OF5,S8 ,PR ,YES,C0)	;! BLOCK SIZE FOR TAPE FILES
$$FIELD (F,FNA,X,ZERO,OF6,SW ,PW ,YES,C0)	;! FILE-NAME ADDRESS
$$FIELD (F,RAT,X,ZERO,OF7,SH ,PL ,YES,C0)	;! RECORD ATTRIBUTES
$$FIELD (F,MRS,X,ZERO,OF7,SH ,PR ,YES,C0)	;! MAXIMUM RECORD SIZE
$$FIELD (F,MRN,X,ZERO,OF8,SW ,PW ,YES,C0)	;! MAXIMUM RECORD NUMBER
$$FIELD (F,RF0,X,ZERO,OF9,SH ,PL ,NO ,C0)	;! [403] ***RESERVED***
$$FIELD (F,FSZ,X,ZERO,OF9,S5 ,P13,YES,C0)	;! [403] FIXED HDR SIZE FOR VFC
$$FIELD (F,BKS,X,ZERO,OF9,S8 ,P5 ,YES,C0)	;! BUCKET SIZE
$$FIELD (F,RFM,FB,VAR,OF9,S5 ,PR ,YES,C0)	;! RECORD FORMAT
$$FIELD (F,JNL,X,ZERO,O10,SH ,PL ,YES,C0)	;! LOG BLOCK
$$FIELD (F,XAB,X,ZERO,O10,SH ,PR ,YES,C0)	;! XAB POINTER
$$FIELD (F,DEV,X,ZERO,O11,SH ,PL ,NO ,C0)	;! DEVICE CHARACTERISTICS
$$FIELD (F,SDC,X,ZERO,O11,SH ,PR ,NO ,C0)	;! SECONDARY DEVICE CHARACTERISTICS
$$FIELD (F,NAM,X,ZERO,O12,SH ,PR ,YES,C0)	;! [403] NAM BLOCK ADDRESS
$$FIELD (F,TYP,X,ZERO,O12,SH ,PL ,YES,C0)	;! [403] TYP BLOCK ADDRESS
$$FIELD (F,ALQ,X,ZERO,O13,SW ,PW ,NO ,C0)	;! [403] ALLOCATION QUANTITY
$$FIELD (F,RF3,X,ZERO,O14,SW ,PW ,NO ,C0)	;! ***RESERVED***
$$FIELD (F,RF4,X,ZERO,O15,SW ,PW ,NO ,C0)	;! ***RESERVED***
;!	==>ENDSTRUCTURE

;!	^  ^  ^   ^   ^   ^   ^   ^   ^
;	!  !  !   !   !   !   !   !   !_____COUNT (IF C0, THEN NOT ARRAY FIELD)
;	!  !  !   !   !   !   !   !_____ASNFLG (IF NO THEN USER CAN'T
;	!  !  !   !   !   !   !         INITIALIZE AT COMPILE TIME)
;	!  !  !   !   !   !   !_____POSITION (NO. BITS AT RIGHT OF FIELD)
;	!  !  !   !   !   !_____SIZE OF FIELD IN BITS
;	!  !  !   !   !_____OFFSET INTO THE BLOCK
;	!  !  !   !_____2ND HALF OF DEFAULT VALUE SYMBOL
;	!  !  !_____1ST HALF OF DEFAULT VALUE SYMBOL
;	!  !  	    IF 1ST HALF IS X AND 2ND HALF IS ZERO, THEN MACRO DEFAULT 
;	!  !	    VALUE IS X$ZERO, AND BLISS DEFAULT VALUE IS XZERO.
;	!  !_____FIELD NAME
;	!_____BLOCK TYPE PREFIX
;!*********************************************************
;!*  5.  SYMBOL DEFINITIONS FOR RECORD ACCESS BLOCK (RAB) *
;!*********************************************************


    ;!			RAC (RECORD ACCESS) FIELD

;!	==>BEGINCOLLECT(RABRAC,K)
S$$DC  (RB,SEQ,0)		;! SEQUENTIAL ACCESS
S$$DC  (RB,KEY,1)		;! KEYED ACCESS
S$$DC  (RB,RFA,2)		;! RFA
S$$DC  (RB,BLK,3)		;! BLOCK MODE
S$$DC  (RB,TRA,4)		;! FILE TRANSFER MODE
S$$DC  (RB,BFT,5)		;! BLOCK MODE FILE TRANSFER
;!	==>ENDCOLLECT

    ;!			ROP (RECORD OPTIONS) FIELD

;!	==>BEGINCOLLECT(RABROP,V)
S$$BC  (RB,EOF,35)		;! POSITION FILE TO EOF
S$$BC  (RB,FDL,34)		;! FAST DELETE
S$$BC  (RB,LOC,33)		;! USE LOCATE MODE ON GET'S
S$$BC  (RB,RAH,32)		;! READ AHEAD
S$$BC  (RB,LOA,31)		;! FOLLOW LOAD PERCENTAGES
S$$BC  (RB,WBH,30)		;! WRITE BEHIND
S$$BC  (RB,KGT,29)		;! KEY GREATER THAN
S$$BC  (RB,KGE,28)		;! KEY GREATER THAN OR EQUAL TO
S$$BC  (RB,PAD,27)		;! USE PAD CHARACTER TO FILL BUFFER
S$$BC  (RB,NRP,26)		;! SET NEXT RECORD PTR ON FIND
S$$BC  (RB,WAA,25)		;! WRITE AFTER ADVANCING
S$$BC  (RB,WBA,24)		;! WRITE BEFORE ADVANCING
;!	==>ENDCOLLECT
;!	*********************************************************
;!	*		6.  RAB DEFINITIONS			*
;!	*********************************************************

;!			STRUCTURE OF RECORD ACCESS BLOCK

;!		!-------------------------------------!
;!		!       BID        !       BLN        !
;!		!-------------------------------------!
;!		!       STS        !       STV        !
;!		!-------------------------------------!
;!		!                 CTX                 !
;!		!-------------------------------------!
;!		!       ISI        !       FAB        !
;!		!-------------------------------------!
;!		!  RAC   !   MBF   !       ROP        !
;!		!-------------------------------------!
;!		!                 UBF                 !
;!		!-------------------------------------!
;!		!                 RBF                 !
;!		!-------------------------------------!
;!		!       RSZ        !       USZ        !
;!		!-------------------------------------!
;!		!                 RFA                 !
;!		!-------------------------------------!
;!		!  KRF   !   KSZ   !       LSN        !
;!		!-------------------------------------!
;!		!                 KBF                 !
;!		!-------------------------------------!
;!		!             BKT (or ELS)            !
;!		!-------------------------------------!
;!		!  PAD   !          <UNUSED>          !
;!		!-------------------------------------!
;!		!              <UNUSED>               !
;!		!-------------------------------------!
;!		!              <UNUSED>               !
;!		!-------------------------------------!
;!		!              <UNUSED>               !
;!		!-------------------------------------!


    ;!	DEFINE NON-ZERO DEFAULTS THAT HAVE NOT BEEN DEFINED YET
;!	==>BEGINIMMEDIATE
S$$DC  (RA,TYP,2)					;! BLOCK TYPE
S$$DC  (RA,LNG,16)					;! BLOCK LENGTH
;!	==>ENDIMMEDIATE



;!						FILE:  RMSSYM.MTB  (CONTINUED)

    ;!				DEFINE RAB FIELDS
;!	==>BEGINSTRUCTURE(RAB,RALNG)
$$FIELD (R,BID,RA,TYP,OID,SID,PID,NO ,C0)	;! BLOCK TYPE
$$FIELD (R,BLN,RA,LNG,OLN,SLN,PLN,NO ,C0)	;! BLOCK LENGTH
$$FIELD (R,STS,X,ZERO,OST,SST,PST,NO ,C0)	;! STATUS
$$FIELD (R,STV,X,ZERO,OSV,SSV,PSV,NO ,C0)	;! STATUS VALUE
$$FIELD (R,CTX,X,ZERO,OCT,SCT,PCT,YES,C0)	;! USER CONTEXT WORD
$$FIELD (R,ISI,X,ZERO,OF3,SH ,PL ,NO ,C0)	;! INTERNAL STREAM IDENTIFIER
$$FIELD (R,FAB,X,ZERO,OF3,SH ,PR ,YES,C0)	;! ADDRESS OF USER FAB
$$FIELD (R,RAC,RB,SEQ,OF4,S9 ,P27,YES,C0)	;! RECORD ACCESS
$$FIELD (R,MBF,X,ZERO,OF4,S9 ,PL ,YES,C0)	;! MULTI-BUFFER COUNT
$$FIELD (R,ROP,RB,WBH,OF4,SH ,PR ,YES,C0)	;! RECORD OPTIONS
$$FIELD (R,UBF,X,ZERO,OF5,SW ,PW ,YES,C0)	;! USER BUFFER
$$FIELD (R,RBF,X,ZERO,OF6,SW ,PW ,YES,C0)	;! RECORD BUFFER
$$FIELD (R,RSZ,X,ZERO,OF7,SH ,PL ,YES,C0)	;! RECORD SIZE
$$FIELD (R,USZ,X,ZERO,OF7,SH ,PR ,YES,C0)	;! USER BUFFER SIZE
$$FIELD (R,RFA,X,ZERO,OF8,SW ,PW ,YES,C0)	;! RECORD-FILE ADDRESS
$$FIELD (R,KRF,X,ZERO,OF9,S9 ,P27,YES,C0)	;! KEY OF REFERENCE
$$FIELD (R,KSZ,X,ZERO,OF9,S9 ,PL ,YES,C0)	;! KEY SIZE
$$FIELD (R,LSN,X,ZERO,OF9,SH ,PR ,YES,C0)	;! LINE-SEQUENCE NUMBER
$$FIELD (R,KBF,X,ZERO,O10,SW ,PW ,YES,C0)	;! KEY BUFFER
$$FIELD (R,BKT,X,ZERO,O11,SW ,PW ,NO ,C0)	;! BUCKET HASH CODE
$$FIELD (R,ELS,X,ZERO,O11,SW ,PW ,YES,C0)	;!A403 END-OF-LINE SEQUENCE
$$FIELD (R,PAD,X,ZERO,O12,S9 ,P27,YES,C0)	;! PAD CHARACTER
$$FIELD (R,RR1,X,ZERO,O12,S27,PR ,NO ,C0)	;! ***RESERVED***
$$FIELD (R,RR2,X,ZERO,O13,SW ,PW ,NO ,C0)	;! ***RESERVED***
$$FIELD (R,RR3,X,ZERO,O14,SW ,PW ,NO ,C0)	;! ***RESERVED***
$$FIELD (R,RR4,X,ZERO,O15,SW ,PW ,NO ,C0)	;! ***RESERVED***
;!	==>ENDSTRUCTURE

;!	^  ^  ^   ^   ^   ^   ^   ^   ^
;	!  !  !   !   !   !   !   !   !_____COUNT (IF C0, THEN NOT ARRAY FIELD)
;	!  !  !   !   !   !   !   !_____ASNFLG (IF NO THEN USER CAN'T
;	!  !  !   !   !   !   !         INITIALIZE AT COMPILE TIME)
;	!  !  !   !   !   !   !_____POSITION (NO. BITS AT RIGHT OF FIELD)
;	!  !  !   !   !   !_____SIZE OF FIELD IN BITS
;	!  !  !   !   !_____OFFSET INTO THE BLOCK
;	!  !  !   !_____2ND HALF OF DEFAULT VALUE SYMBOL
;	!  !  !_____1ST HALF OF DEFAULT VALUE SYMBOL
;	!  !  	    IF 1ST HALF IS X AND 2ND HALF IS ZERO, THEN MACRO DEFAULT 
;	!  !	    VALUE IS X$ZERO, AND BLISS DEFAULT VALUE IS XZERO.
;	!  !_____FIELD NAME
;	!_____BLOCK TYPE PREFIX
;!*********************************************************
;!*		7.  SYMBOL DEFINITIONS FOR		*
;!*		EXTENDED ATTRIBUTES BLOCK (XAB)		*
;!*********************************************************


    ;!			COD (XAB TYPE CODE) FIELD
;!	==>BEGINIMMEDIATE
S$$DC  (XB,KEY,0)		;! KEY DEFINITION XAB
S$$DC  (XB,ALL,1)		;! ALLOCATION DEFINITION XAB
S$$DC  (XB,DAT,2)		;! DATE DEFINTION XAB
S$$DC  (XB,SUM,3)		;! FILE SUMMARY XAB
S$$DC  (XB,CFG,4)		;! CONFIGURATION XAB
S$$DC  (XB,PRO,5)		;! Protection XAB
S$$SC  (XB,MAX,XB,PRO)		;! MAX VALUE FOR XAB TYPE CODE
;!	==>ENDIMMEDIATE


    ;!			DTP (DATE TYPE) FIELD
;!	==>BEGINCOLLECT(XABDTP,K)
S$$DC  (XB,STG,0)		;! STRING DATA-TYPE
S$$DC  (XB,EBC,1)		;! EBCDIC DATA-TYPE
S$$DC  (XB,SIX,2)		;! SIXBIT DATA-TYPE
S$$DC  (XB,PAC,3)		;! PACKED DECIMAL DATA-TYPE		;!A411
S$$DC  (XB,IN4,4)		;! INTEGER (1 word, 4 byte) DATA-TYPE	;!A411
S$$DC  (XB,FL1,5)		;! FLOAT (1 word) DATA-TYPE		;!A411
S$$DC  (XB,FL2,6)		;! DOUBLE FLOAT (2 word) DATA-TYPE	;!A411
S$$DC  (XB,GFL,7)		;! GFLOAT DATA-TYPE			;!A411
S$$DC  (XB,IN8,8)		;! INTEGER (2 word, 8 byte) DATA-TYPE   ;!A411
S$$DC  (XB,AS8,9)		;! 8-bit ASCII (in 9-bit bytes)		;!A411
S$$DC  (XB,UN4,10)		;! Unsigned Integer (1 word)		;!A411
;!	==>ENDCOLLECTION

    ;!			FLG (FLAG BITS) FIELD
;!	==>BEGINCOLLECT(XABFLG,V)
S$$BC  (XB,DUP,35)		;! DUPLICATES ALLOWED
S$$BC  (XB,CHG,34)		;! KEYS CAN CHANGE
S$$BC  (XB,HSH,33)		;! HASH METHOD OF INDEX ORGANIZATION
;!	==>ENDCOLLECTION
;!	*********************************************************
;!	*		8.  XAB DEFINITIONS			*
;!	*********************************************************


    ;!				DEFINE NON-ZERO DEFAULTS
;!	==>BEGINIMMEDIATE
S$$DC  (XA,TYP,3)				;! BLOCK TYPE CODE FOR XAB
S$$DC  (XA,SXKEY,19)				;! SIZE OF KEY XAB
S$$DC  (XA,SXK,19)				;! SIZE OF KEY XAB
S$$DC  (XA,SXALL,6)				;! SIZE OF ALLOCATION XAB
S$$DC  (XA,SXA,6)				;! SIZE OF ALLOCATION XAB
S$$DC  (XA,SXDAT,5)				;! SIZE OF DATE XAB
S$$DC  (XA,SXD,5)				;! SIZE OF DATE XAB
S$$DC  (XA,SXSUM,6)				;! SIZE OF FILE SUMMARY XAB
S$$DC  (XA,SXS,6)				;! SIZE OF FILE SUMMARY XAB
S$$DC  (XA,SXX,2)				;! SIZE OF COMMON XAB HEADER
S$$DC  (XA,SXCFG,8)				;! SIZE OF CONFIG XAB  ;m553
S$$DC  (XA,SXC,8)				;! SIZE OF CONFIG XAB  ;m553
S$$SC  (XA,LNG,XA,SXKEY)			;! MAXIMUM SIZE FOR AN XAB
;!	==>ENDIMMEDIATE


    ;!	***************** NOTE *******************
    ;!		WHEN NEW XAB TYPES ARE ADDED,
    ;!		IT IS NECESSARY TO CHANGE THE
    ;!		..BEG MACRO IN RMSSYM.MPR
    ;!		(MACRO PREFILE).
    ;!	******************************************


    ;!				DEFINE COMMON HEADER FOR ALL XAB TYPES
;!	==>COMMENT;!
;!	==>COMMENT;!	DEFINE COMMON HEADER FOR ALL XAB'S
;!	==>COMMENT;!
;!	==>BEGINTEMPLATE(XAB,2,4)
$$FIELD (X,BID,XA,TYP,OID,SID,PID,NO ,C0)	;! BLOCK TYPE
$$FIELD (X,BLN,X,ZERO,OLN,SLN,PLN,NO ,C0)	;! BLOCK LENGTH
$$FIELD (X,RS1,X,ZERO,OF1,S13,P23,NO ,C0)	;! **RESERVED**
$$FIELD (X,COD,X,ZERO,OCO,SCO,PCO,NO ,C0)	;! CODE OF THIS XAB
$$FIELD (X,NXT,X,ZERO,OF1,SH ,PR ,YES,C0)	;! ADDRESS OF NEXT XAB
;!	==>ENDTEMPLATE

    ;!				DEFINITIONS FOR THE REST OF EACH TYPE OF XAB



;!						FILE:  RMSSYM.MTB  (CONTINUED)
    ;!			STRUCTURE OF DATE XAB

;!			!=====================================!
;!			!       BID        !       BLN        !
;!			!-------------------------------------!
;!			!  <UNUSED>  ! COD !       NXT        !
;!			!-------------------------------------!
;!			!                CDT                  !
;!			!-------------------------------------!
;!			!                RDT                  !
;!			!-------------------------------------!
;!			!                EDT                  !
;!			!=====================================!

;!		FIELD DEFINITIONS FOR DATE/TIME XAB

;!	==>COMMENT;!
;!	==>COMMENT;!	DATE XAB
;!	==>COMMENT;!
;!	==>BEGINTEMPLSTR(XABDAT,XAB,XASXD,XBDAT)
$$FIELD (X,CDT,X,ZERO,OF2,SW ,PW ,NO ,C0)	;! CREATION DATE AND TIME (READ ONLY)
$$FIELD (X,RDT,X,ZERO,OF3,SW ,PW ,NO ,C0)	;! DATE AND TIME OF LAST UPDATE (READ ONLY)
$$FIELD (X,EDT,X,ZERO,OF4,SW ,PW ,YES,C0)	;! DELETION DATE AND TIME
;!	==>ENDTEMPLSTR

;!	^  ^  ^   ^   ^   ^   ^   ^   ^
;	!  !  !   !   !   !   !   !   !_____COUNT (IF C0, THEN NOT ARRAY FIELD)
;	!  !  !   !   !   !   !   !_____ASNFLG (IF NO THEN USER CAN'T
;	!  !  !   !   !   !   !         INITIALIZE AT COMPILE TIME)
;	!  !  !   !   !   !   !_____POSITION (NO. BITS AT RIGHT OF FIELD)
;	!  !  !   !   !   !_____SIZE OF FIELD IN BITS
;	!  !  !   !   !_____OFFSET INTO THE BLOCK
;	!  !  !   !_____2ND HALF OF DEFAULT VALUE SYMBOL
;	!  !  !_____1ST HALF OF DEFAULT VALUE SYMBOL
;	!  !  	    IF 1ST HALF IS X AND 2ND HALF IS ZERO, THEN MACRO DEFAULT 
;	!  !	    VALUE IS X$ZERO, AND BLISS DEFAULT VALUE IS XZERO.
;	!  !_____FIELD NAME
;	!_____BLOCK TYPE PREFIX



;!						FILE:  RMSSYM.MTB  (CONTINUED)
    ;!			Structure of protection XAB

;!			!=====================================!
;!			!       BID        !       BLN        !
;!			!-------------------------------------!
;!			!  <UNUSED>  ! COD !       NXT        !
;!			!-------------------------------------!
;!			!       PSY        !       POW        !
;!			!-------------------------------------!
;!			!       PGR        !       PWL        !
;!			!=====================================!

;!		Field definitions for protection XAB

;!	==>COMMENT;!
;!	==>COMMENT;!	Protection XAB
;!	==>COMMENT;!
;!	==>BEGINTEMPLSTR(XABPRO,XAB,XASXP,XBPRO)
$$FIELD (X,PSY,X,ZERO,OF2,SH ,PL ,YES,C0)	;! System protection access
$$FIELD (X,POW,X,ZERO,OF2,SH ,PR ,YES,C0)	;! Owner  protection access
$$FIELD (X,PGR,X,ZERO,OF3,SH ,PL ,YES,C0)	;! Group  protection access
$$FIELD (X,PWL,X,ZERO,OF3,SH ,PR ,YES,C0)	;! World  protection access
;!	==>ENDTEMPLSTR

;!	^  ^  ^   ^   ^   ^   ^   ^   ^
;	!  !  !   !   !   !   !   !   !_____COUNT (IF C0, THEN NOT ARRAY FIELD)
;	!  !  !   !   !   !   !   !_____ASNFLG (IF NO THEN USER CAN'T
;	!  !  !   !   !   !   !         INITIALIZE AT COMPILE TIME)
;	!  !  !   !   !   !   !_____POSITION (NO. BITS AT RIGHT OF FIELD)
;	!  !  !   !   !   !_____SIZE OF FIELD IN BITS
;	!  !  !   !   !_____OFFSET INTO THE BLOCK
;	!  !  !   !_____2ND HALF OF DEFAULT VALUE SYMBOL
;	!  !  !_____1ST HALF OF DEFAULT VALUE SYMBOL
;	!  !  	    IF 1ST HALF IS X AND 2ND HALF IS ZERO, THEN MACRO DEFAULT 
;	!  !	    VALUE IS X$ZERO, AND BLISS DEFAULT VALUE IS XZERO.
;	!  !_____FIELD NAME
;	!_____BLOCK TYPE PREFIX

;! Protection bit definitions
;! Note: These bits are set to 1 to deny access.  Set to 0 to allow access.
;!        Not all bits are implemented on all systems (e.g. extend on TOPS-20)

S$$DC(XP,PRR,0)			;! Deny read
S$$DC(XP,PRW,1)			;! Deny write
S$$DC(XP,PRE,2)			;! Deny execute
S$$DC(XP,PRD,3)			;! Deny delete
S$$DC(XP,PRA,4)			;! Deny append
S$$DC(XP,PRL,5)			;! Deny list (directory)
S$$DC(XP,PRU,6)			;! Deny update
S$$DC(XP,PRC,7)			;! Deny change
S$$DC(XP,PRX,8)			;! Deny extend

;!						FILE:  RMSSYM.MTB  (CONTINUED)

;!		STRUCTURE OF AREA-DEFINITION XAB

;!			!=====================================!
;!			!       BID        !       BLN        !
;!			!-------------------------------------!
;!			!  <UNUSED>  ! COD !       NXT        !
;!			!-------------------------------------!
;!			!     <UNUSED>     !   AID  !   BKZ   !
;!			!-------------------------------------!
;!			!              <UNUSED>               !
;!			!-------------------------------------!
;!			!              <UNUSED>               !
;!			!-------------------------------------!
;!			!              <UNUSED>               !
;!			!=====================================!

    ;!			FIELD DEFINITIONS FOR AREA-DEFINITION XAB

;!	==>COMMENT;!
;!	==>COMMENT;!	AREA ALLOCATION XAB
;!	==>COMMENT;!
;!	==>BEGINTEMPLSTR(XABALL,XAB,XASXA,XBALL)
$$FIELD (X,RS2,X,ZERO,OF2,SH ,PL ,NO ,C0)	;! **RESERVED**
$$FIELD (X,AID,X,ZERO,OF2,S9 ,P9 ,YES,C0)	;! AREA-ID
$$FIELD (X,BKZ,X,ZERO,OF2,S9 ,PR ,YES,C0)	;! BUCKET SIZE OF THIS AREA
$$FIELD (X,RS3,X,ZERO,OF3,SW ,PW ,NO,C0)		;! **RESERVED**
$$FIELD (X,RS4,X,ZERO,OF4,SW ,PW ,NO,C0)		;! **RESERVED**
$$FIELD (X,RS5,X,ZERO,OF5,SW ,PW ,NO,C0)		;! **RESERVED**
;!	==>ENDTEMPLSTR

;!	^  ^  ^   ^   ^   ^   ^   ^   ^
;	!  !  !   !   !   !   !   !   !_____COUNT (IF C0, THEN NOT ARRAY FIELD)
;	!  !  !   !   !   !   !   !_____ASNFLG (IF NO THEN USER CAN'T
;	!  !  !   !   !   !   !         INITIALIZE AT COMPILE TIME)
;	!  !  !   !   !   !   !_____POSITION (NO. BITS AT RIGHT OF FIELD)
;	!  !  !   !   !   !_____SIZE OF FIELD IN BITS
;	!  !  !   !   !_____OFFSET INTO THE BLOCK
;	!  !  !   !_____2ND HALF OF DEFAULT VALUE SYMBOL
;	!  !  !_____1ST HALF OF DEFAULT VALUE SYMBOL
;	!  !  	    IF 1ST HALF IS X AND 2ND HALF IS ZERO, THEN MACRO DEFAULT 
;	!  !	    VALUE IS X$ZERO, AND BLISS DEFAULT VALUE IS XZERO.
;	!  !_____FIELD NAME
;	!_____BLOCK TYPE PREFIX


;!						FILE:  RMSSYM.MTB  (CONTINUED)
    ;!			STRUCTURE OF KEY DEFINITION XAB

;!		!=====================================!
;!		!       BID        !       BLN        !
;!		!-------------------------------------!
;!		!  <UNUSED>  ! COD !       NXT        !
;!		!-------------------------------------!
;!		! <UNUSED>  ! DTP  !       FLG        !
;!		!-------------------------------------!
;!		!  IAN   !   DAN   !  LAN   !   REF   !
;!		!-------------------------------------!
;!		!       IFL        !       DFL        !
;!		!-------------------------------------!
;!		!                 KNM                 !
;!		!-------------------------------------!
;!		!             <RESERVED>              !
;!		!-------------------------------------!
;!		!             <RESERVED>              !
;!		!-------------------------------------!
;!		!              <UNUSED>               !
;!		!-------------------------------------!
;!		!              <UNUSED>               !
;!		!-------------------------------------!
;!		!              <UNUSED>               !
;!		!-------------------------------------!
;!		!       POS0       !       SIZ0       !
;!		!-------------------------------------!
;!		!       POS1       !       SIZ1       !
;!		!-------------------------------------!
;!		!       POS2       !       SIZ2       !
;!		!-------------------------------------!
;!		!       POS3       !       SIZ3       !
;!		!-------------------------------------!
;!		!       POS4       !       SIZ4       !
;!		!-------------------------------------!
;!		!       POS5       !       SIZ5       !
;!		!-------------------------------------!
;!		!       POS6       !       SIZ6       !
;!		!-------------------------------------!
;!		!       POS7       !       SIZ7       !
;!		!=====================================!



;!						FILE:  RMSSYM.MTB  (CONTINUED)
;!		FIELD DEFINITIONS OF KEY DEFINITION XAB

;!	==>COMMENT;!
;!	==>COMMENT;!	KEY DEFINITION XAB
;!	==>COMMENT;!
;!	==>BEGINTEMPLSTR(XABKEY,XAB,XASXK,XBKEY)
$$FIELD (X,RX0,X,ZERO,OF2,S12,P24,NO ,C0)	;! ***RESERVED***
$$FIELD (X,DTP,X,ZERO,OF2,S6 ,PL ,YES,C0)	;! DATA TYPE
$$FIELD (X,FLG,X,ZERO,OF2,SH ,PR ,YES,C0)	;! FLAG BITS
$$FIELD (X,IAN,X,ZERO,OF3,S9 ,P27,YES,C0)	;! INDEX-AREA NUMBER
$$FIELD (X,DAN,X,ZERO,OF3,S9 ,PL ,YES,C0)	;! DATA-AREA NUMBER
$$FIELD (X,LAN,X,ZERO,OF3,S9 ,P9 ,YES,C0)	;! LOWEST-INDEX AREA NUMBER
$$FIELD (X,REF,X,ZERO,OF3,S9 ,PR ,YES,C0)	;! KEY OF REFERENCE
$$FIELD (X,IFL,X,ZERO,OF4,SH ,PL ,YES,C0)	;! INDEX FILL OFFSET
$$FIELD (X,DFL,X,ZERO,OF4,SH ,PR ,YES,C0)	;! DATA FILL OFFSET
$$FIELD (X,KNM,X,ZERO,OF5,SW ,PW ,YES,C0)	;! KEY NAME ADDRESS
$$FIELD (X,RX1,X,ZERO,OF6,SW ,PW ,NO ,C0)	;! ***RESERVED***
$$FIELD (X,RX2,X,ZERO,OF7,SW ,PW ,NO ,C0)	;! ***RESERVED***
$$FIELD (X,RX3,X,ZERO,OF8,SW ,PW ,NO ,C0)	;! ***RESERVED***
$$FIELD (X,RX4,X,ZERO,OF9,SW ,PW ,NO ,C0)	;! ***RESERVED***
$$FIELD (X,RX5,X,ZERO,O10,SW ,PW ,NO ,C0)	;! ***RESERVED***
$$FIELD (X,POS,X,ZERO,O11,SH ,PL ,YES,C0)	;! KEY POSITION (ARRAY)
$$FIELD (X,PS0,X,ZERO,O11,SH ,PL ,YES,C0)
$$FIELD (X,PS1,X,ZERO,O12,SH ,PL ,YES,C0)
$$FIELD (X,PS2,X,ZERO,O13,SH ,PL ,YES,C0)
$$FIELD (X,PS3,X,ZERO,O14,SH ,PL ,YES,C0)
$$FIELD (X,PS4,X,ZERO,O15,SH ,PL ,YES,C0)
$$FIELD (X,PS5,X,ZERO,O16,SH ,PL ,YES,C0)
$$FIELD (X,PS6,X,ZERO,O17,SH ,PL ,YES,C0)
$$FIELD (X,PS7,X,ZERO,O18,SH ,PL ,YES,C0)
$$FIELD (X,SIZ,X,ZERO,O11,SH ,PR ,YES,C0)	;! KEY SIZE (ARRAY)
$$FIELD (X,SZ0,X,ZERO,O11,SH ,PR ,YES,C0)
$$FIELD (X,SZ1,X,ZERO,O12,SH ,PR ,YES,C0)
$$FIELD (X,SZ2,X,ZERO,O13,SH ,PR ,YES,C0)
$$FIELD (X,SZ3,X,ZERO,O14,SH ,PR ,YES,C0)
$$FIELD (X,SZ4,X,ZERO,O15,SH ,PR ,YES,C0)
$$FIELD (X,SZ5,X,ZERO,O16,SH ,PR ,YES,C0)
$$FIELD (X,SZ6,X,ZERO,O17,SH ,PR ,YES,C0)
$$FIELD (X,SZ7,X,ZERO,O18,SH ,PR ,YES,C0)
;!	==>ENDTEMPLSTR

;!	^  ^  ^   ^   ^   ^   ^   ^   ^
;	!  !  !   !   !   !   !   !   !_____COUNT (IF C0, THEN NOT ARRAY FIELD)
;	!  !  !   !   !   !   !   !_____ASNFLG (IF NO THEN USER CAN'T
;	!  !  !   !   !   !   !         INITIALIZE AT COMPILE TIME)
;	!  !  !   !   !   !   !_____POSITION (NO. BITS AT RIGHT OF FIELD)
;	!  !  !   !   !   !_____SIZE OF FIELD IN BITS
;	!  !  !   !   !_____OFFSET INTO THE BLOCK
;	!  !  !   !_____2ND HALF OF DEFAULT VALUE SYMBOL
;	!  !  !_____1ST HALF OF DEFAULT VALUE SYMBOL
;	!  !  	    IF 1ST HALF IS X AND 2ND HALF IS ZERO, THEN MACRO DEFAULT 
;	!  !	    VALUE IS X$ZERO, AND BLISS DEFAULT VALUE IS XZERO.
;	!  !_____FIELD NAME
;	!_____BLOCK TYPE PREFIX




;!						FILE:  RMSSYM.MTB  (CONTINUED)
    ;!			STRUCTURE OF FILE SUMMARY XAB

;!		!=====================================!
;!		!       BID        !       BLN        !
;!		!-------------------------------------!
;!		!  <UNUSED>  ! COD !       NXT        !
;!		!-------------------------------------!
;!		!     <UNUSED>     !  NOK   !   NOA   !
;!		!-------------------------------------!
;!		!              <UNUSED>               !
;!		!-------------------------------------!
;!		!              <UNUSED>               !
;!		!-------------------------------------!
;!		!              <UNUSED>               !
;!		!=====================================!

;!		FIELD DEFINITIONS FOR FILE SUMMARY XAB

;!	==>COMMENT;!
;!	==>COMMENT;!	FILE SUMMARY XAB
;!	==>COMMENT;!
;!	==>BEGINTEMPLSTR(XABSUM,XAB,XASXS,XBSUM)
$$FIELD (X,RS6,X,ZERO,OF2,SH ,PL ,NO ,C0)	;! **RESERVED**
$$FIELD (X,NOK,X,ZERO,OF2,S9 ,P9 ,NO ,C0)	;! NUMBER OF KEYS
$$FIELD (X,NOA,X,ZERO,OF2,S9 ,PR ,NO ,C0)	;! NUMBER OF AREAS
$$FIELD (X,RS7,X,ZERO,OF3,SW ,PW ,NO ,C0)	;! **RESERVED**
$$FIELD (X,RS8,X,ZERO,OF4,SW ,PW ,NO ,C0)	;! **RESERVED**
$$FIELD (X,RS9,X,ZERO,OF5,SW ,PW ,NO ,C0)	;! **RESERVED**
;!	==>ENDTEMPLSTR

;!	^  ^  ^   ^   ^   ^   ^   ^   ^
;	!  !  !   !   !   !   !   !   !_____COUNT (IF C0, THEN NOT ARRAY FIELD)
;	!  !  !   !   !   !   !   !_____ASNFLG (IF NO THEN USER CAN'T
;	!  !  !   !   !   !   !         INITIALIZE AT COMPILE TIME)
;	!  !  !   !   !   !   !_____POSITION (NO. BITS AT RIGHT OF FIELD)
;	!  !  !   !   !   !_____SIZE OF FIELD IN BITS
;	!  !  !   !   !_____OFFSET INTO THE BLOCK
;	!  !  !   !_____2ND HALF OF DEFAULT VALUE SYMBOL
;	!  !  !_____1ST HALF OF DEFAULT VALUE SYMBOL
;	!  !  	    IF 1ST HALF IS X AND 2ND HALF IS ZERO, THEN MACRO DEFAULT 
;	!  !	    VALUE IS X$ZERO, AND BLISS DEFAULT VALUE IS XZERO.
;	!  !_____FIELD NAME
;	!_____BLOCK TYPE PREFIX

$$FIELD (X,BFS,X,ZERO,OF2,SH ,PR ,NO ,C0)	;! BUFFER SIZE
$$FIELD (X,OST,X,ZERO,OF2,S9 ,PL ,NO ,C0)	;! OPERATING SYSTEM TYPE
$$FIELD (X,FIL,X,ZERO,OF2,S9 ,P27,NO ,C0)	;! FILE SYSTEM TYPE
$$FIELD (X,VER,X,ZERO,OF3,S9 ,PR ,NO ,C0)	;! DAP VERSION NUMBER
$$FIELD (X,ECO,X,ZERO,OF3,S9 ,P9 ,NO ,C0)	;! DAP ECO NUMBER
$$FIELD (X,USN,X,ZERO,OF3,S9 ,PL ,NO ,C0)	;! USER VERSION NUMBER
$$FIELD (X,DSV,X,ZERO,OF3,S9 ,P27,NO ,C0)	;! DEC SOFTWARE VERSION NUMBER 
$$FIELD (X,USV,X,ZERO,OF4,S9 ,PR ,NO ,C0)	;! USER SOFTWARE VERSION NUMBER
$$FIELD (X,CAP,X,ZERO,OF5,SW ,PW ,NO ,C0)	;! SYSCAP BITS
$$FIELD (X,CA1,X,ZERO,OF6,SW ,PW ,NO ,C0)	;!  CONTINUATION OF SYSCAP BITS
$$FIELD (X,CA2,X,ZERO,OF7,SW ,PW ,NO ,C0)	;!  CONTINUATION OF SYSCAP BITS

;!	==>ENDTEMPLSTR

;!	^  ^  ^   ^   ^   ^   ^   ^   ^
;	!  !  !   !   !   !   !   !   !_____COUNT (IF C0, THEN NOT ARRAY FIELD)
;	!  !  !   !   !   !   !   !_____ASNFLG (IF NO THEN USER CAN'T
;	!  !  !   !   !   !   !         INITIALIZE AT COMPILE TIME)
;	!  !  !   !   !   !   !_____POSITION (NO. BITS AT RIGHT OF FIELD)
;	!  !  !   !   !   !_____SIZE OF FIELD IN BITS
;	!  !  !   !   !_____OFFSET INTO THE BLOCK
;	!  !  !   !_____2ND HALF OF DEFAULT VALUE SYMBOL
;	!  !  !_____1ST HALF OF DEFAULT VALUE SYMBOL
;	!  !  	    IF 1ST HALF IS X AND 2ND HALF IS ZERO, THEN MACRO DEFAULT 
;	!  !	    VALUE IS X$ZERO, AND BLISS DEFAULT VALUE IS XZERO.
;	!  !_____FIELD NAME
;	!_____BLOCK TYPE PREFIX

;! Operating System Types
S$$DC(XA,RT,1)   ;!RT11
S$$DC(XA,RST,2)  ;!RSTS
S$$DC(XA,RXS,3)  ;!RSX11s
S$$DC(XA,RXM,4)  ;!RSX11M
S$$DC(XA,RXD,5)  ;!RSX11D
S$$DC(XA,IAS,6)  ;!IAS
S$$DC(XA,VMS,7)  ;!VMS
S$$DC(XA,T20,8)  ;!TOPS-20
S$$DC(XA,T10,9)  ;!TOPS-10
S$$DC(XA,RT8,10) ;!RTS-8
S$$DC(XA,OS8,11) ;!OS-8
S$$DC(XA,RXP,12) ;!RSX-11M+
S$$DC(XA,C11,13) ;!Copos-11
S$$DC(XA,POS,14) ;!POS (350)
S$$DC(XA,SEA,15) ;!Seaboard

;! File System Types
S$$DC(XA,R11,1) ;!RMS11
S$$DC(XA,R20,2) ;!RMS20
S$$DC(XA,R32,3) ;!RMS32
S$$DC(XA,F11,4) ;!FCS11
S$$DC(XA,FRT,5) ;!RT11
S$$DC(XA,NOF,6) ;!NONE
S$$DC(XA,F20,7) ;!TOPS20
S$$DC(XA,F10,8) ;!TOPS10
S$$DC(XA,FO8,9) ;!OS8

;! Syscap Bits
S$$DC(XB,PRE,0)			;! Preallocation supported
				;! File Organizations Supported:
S$$DC(XB,SQO,1)			;!  Sequential 
S$$DC(XB,RLO,2)			;!  Relative 
S$$DC(XB,DRO,3)			;!  DIRECT (reserved)

S$$DC(XB,EXT,4)			;! Control message $EXTEND

				;! File Access Modes Supported:
S$$DC(XB,SQT,5)			;!   Sequential File Transfer
				;!      Random access by
S$$DC(XB,RRE,6)			;!     Record Number
S$$DC(XB,RVB,7)			;!     Virtual Block number
S$$DC(XB,RKE,8)			;!     Key
S$$DC(XB,RHA,9)			;!     hash code (reserved)
S$$DC(XB,RRF,10)		;!     RFA
S$$DC(XB,IMK,11)		;!     Multi-key ISAM

S$$DC(XB,SWA,12)		;! Switching access mode 
S$$DC(XB,APA,13)		;! APPEND supported
S$$DC(XB,SBA,14)		;! Control message $SUBMIT
S$$DC(XB,CMP,15)		;! Reserved
S$$DC(XB,MDS,16)		;! Multiple record streams
S$$DC(XB,DIS,17)		;! Control message $DISPLAY

				;! Message blocking:
S$$DC(XB,BLR,18)		;!   Until response needed
S$$DC(XB,BLU,19)		;!   Unrestricted

S$$DC(XB,XLN,20)		;! Extended length field
S$$DC(XB,CHK,21)		;! DAP checksumming

				;! XAB messages supported
S$$DC(XB,KEM,22)		;! KEY DEFINITION message
S$$DC(XB,ALM,23)		;! ALLOCATION message
S$$DC(XB,SMM,24)		;! SUMMARY message
S$$DC(XB,DIR,25)		;! DIRECTORY access
S$$DC(XB,DTM,26)		;! DATE/TIME message
S$$DC(XB,PRM,27)		;! PROTECTION message
S$$DC(XB,ACM,28)		;! ACL message (reserved)
                                ;! FOP Close bits supported:
S$$DC(XB,FPR,29)		;! FOP SPL bit
S$$DC(XB,FSB,30)		;! FOP SCF bit
S$$DC(XB,FDE,31)		;! FOP DLT bit

S$$DC(XB,DFS,32)		;! Default Filespec (Reserved)
S$$DC(XB,SQA,33)		;! Sequential RECORD access
S$$DC(XB,REC,34)		;! Reserved for Checkpointing
S$$DC(XB,BIT,35)		;! BITCNT field
S$$DC(XB,WAR,36)		;! WARNING STATUS message
S$$DC(XB,REN,37)		;! $RENAME
S$$DC(XB,WLD,38)		;! Wildcarding
S$$DC(XB,GO,39)			;! GO/NOGO option
S$$DC(XB,NAM,40)		;! NAME message
S$$DC(XB,SEG,41)		;! DAP message segmentation 
S$$DC(XB,CAT,42)		;! Change Attributes on CLOSE
S$$DC(XB,CDT,43)		;! Change Date/Time on CLOSE
S$$DC(XB,CPR,44)		;! Change Protection on CLOSE
S$$DC(XB,CNA,45)		;! Change Name on $CLOSE
S$$DC(XB,MAT,46)		;! Changed Attributes on CREATE
S$$DC(XB,D3N,47)		;! 3-part name in $DISPLAY
S$$DC(XB,RAT,48)		;! Change Attributes
S$$DC(XB,RDT,49)		;! Change Date/Time
S$$DC(XB,RPR,50)		;! Change Protection
S$$DC(XB,BCS,51)		;! BLKCNT supported
S$$DC(XB,OVN,52)		;! Octal Version numbers
;!*********************************************************
;!*		8.  SYMBOL DEFINITIONS FOR		  *
;!*		       NAM BLOCK (NAM)			  *
;!*********************************************************

S$$DC(NA,NIL,0)								;!a600

    ;!	DEFINE FNB BITS
S$$BC(NA,INV,35)	               ;! Ignoring invisible files
S$$BC(NA,NOD,31)		       ;! Node name given		;!m575
S$$BC(NA,GND,30)	               ;! Ignoring deleted files
S$$BC(NA,TFS,29)	               ;! Temporary file
S$$BC(NA,ACT,28)	               ;! Account given
S$$BC(NA,PRO,27)	               ;! Protection given
S$$BC(NA,ULV,26)	               ;! Lowest generation (-2)
S$$BC(NA,NHV,25)	               ;! Next higher generation (0,-1)
S$$BC(NA,UHV,24) 	               ;! Highest generation (0)
S$$BC(NA,VER,23)  	               ;! Wildcard generation number
S$$BC(NA,EXT,22)	               ;! Extension wildcarded
S$$BC(NA,NAM,21)	               ;! Name wildcarded
S$$BC(NA,DIR,20)	               ;! Directory wildcarded
S$$BC(NA,UNT,19)	               ;! Unit number wildcard (never)
S$$BC(NA,DEV,18)	               ;! Device wildcarded
S$$BC(NA,QUO,16)		       ;! Filespec has quoted string     ;!d575
S$$BC(NA,EDE,15)	               ;! Explicit device
S$$BC(NA,EDI,14)	               ;! Explicit directory
S$$BC(NA,ENA,13)	               ;! Explicit name
S$$BC(NA,ETY,12)	               ;! Explicit extension
S$$BC(NA,EVE,11)	               ;! Explicit version
S$$BC(NA,MUL,1)		               ;! Multiple filespecs seen
S$$BC(NA,WLD,0)		               ;! Somewhere there is a wildcard

    ;!	DEFINE CHA BITS
S$$BC(NA,CEX,34)		                ;! Extension changed
S$$BC(NA,CNA,33)		                ;! Name changed
S$$BC(NA,CDI,32)				;! Directory changed
S$$BC(NA,CDE,31)		                ;! Devicre changed

    ;!  DEFINE NOP BITS
;!	==>BEGINCOLLECT(NAMFLG,V)
S$$BC  (NA,PWD,35)					;! Leave password in
S$$BC  (NA,SYN,34)					;! Parse-only
;!	==>ENDCOLLECTION

    ;!	DEFINE NON-ZERO DEFAULTS THAT HAVE NOT BEEN DEFINED YET
;!	==>BEGINIMMEDIATE
S$$DC  (NA,TYP,16)					;! BLOCK TYPE
S$$DC  (NA,LNG,16)					;! BLOCK LENGTH
;!	==>ENDIMMEDIATE
    ;!  MAXIMUMS for NAM block
;!	==>BEGINIMMEDIATE
S$$DC  (NA,MXE,383)			;! MAX Expanded Filespec size     ;a573
S$$DC  (NA,MXR,383)			;! MAX Resultant Filespec size    ;a573
;!	==>ENDIMMEDIATE
;!	*********************************************************
;!	*		8.  NAM DEFINITIONS			*
;!	*********************************************************



$$FIELD (N,BID,NA,TYP,OID,SID,PID,NO ,C0)	;! BLOCK TYPE
$$FIELD (N,BLN,NA,LNG,OLN,SLN,PLN,NO ,C0)	;! BLOCK LENGTH
$$FIELD (N,ESA,X,ZERO,OF1,SW ,PR ,YES,C0)	;! ADDRESS FOR EXPANDED STRING
$$FIELD (N,ESS,X,ZERO,OF2,SH ,PR ,YES,C0)	;! BUFFSIZE FOR EXPANDED STRING
$$FIELD (N,ESL,X,ZERO,OF2,SH ,PL ,NO ,C0)	;! LENGTH OF EXPANDED STRING
$$FIELD (N,RLF,X,ZERO,OF3,SH ,PR ,YES,C0)	;! ADDRESS OF RELATED NAM BLOCK
$$FIELD (N,NOP,X,ZERO,OF3,SH ,PL ,YES,C0)	;! NAME OPTION BITS
$$FIELD (N,RSA,X,ZERO,OF4,SW ,PR ,YES,C0)	;! ADDRESS FOR RESULTANT STRING
$$FIELD (N,RSS,X,ZERO,OF5,SH ,PR ,YES,C0)	;! BUFSIZE FOR RESULTANT STRING
$$FIELD (N,RSL,X,ZERO,OF5,SH ,PL ,NO ,C0)	;! LENGTH OF RESULTANT STRING
$$FIELD (N,FNB,X,ZERO,OF6,SW ,PR ,YES,C0)	;! NAME OPTION BITS
$$FIELD (N,WCC,X,ZERO,OF7,SW ,PR ,NO ,C0)	;! WILDCARD CONTEXT
$$FIELD (N,WCT,X,ZERO,OF7,SH ,PR ,NO ,C0)	;! NUMBER OF FILES FOUND
$$FIELD (N,WNX,X,ZERO,OF7,SH ,PL ,NO ,C0)	;! NUMBER OF CHARS OF FNA READ
$$FIELD (N,CHA,X,ZERO,OF8,SH ,PR ,NO ,C0)	;! WHAT FIELDS $SEARCH CHANGED
$$FIELD (N,NDL,X,ZERO,OF8,S9 ,PL ,NO ,C0)	;! LENGTH OF NODEID
$$FIELD (N,DVL,X,ZERO,OF8,S9 ,P27,NO ,C0)	;! LENGTH OF DEVICE
$$FIELD (N,DRL,X,ZERO,OF9,S9 ,PR ,NO ,C0)	;! LENGTH OF DIRECTORY
$$FIELD (N,NML,X,ZERO,OF9,S9 ,P9 ,NO ,C0)	;! LENGTH OF FILENAME
$$FIELD (N,TPL,X,ZERO,OF9,S9 ,PL ,NO ,C0)	;! LENGTH OF EXTENSION
$$FIELD (N,VRL,X,ZERO,OF9,S9 ,P27,NO ,C0)	;! LENGTH OF DEVICE
$$FIELD (N,NDA,X,ZERO,O10,SW ,PR ,NO ,C0)	;! POINTER TO NODEID
$$FIELD (N,DVA,X,ZERO,O11,SW ,PR ,NO ,C0)	;! POINTER TO DEVICE
$$FIELD (N,DRA,X,ZERO,O12,SW ,PR ,NO ,C0)	;! POINTER TO DIRECTORY
$$FIELD (N,NMA,X,ZERO,O13,SW ,PR ,NO ,C0)	;! POINTER TO FILENAME
$$FIELD (N,TPA,X,ZERO,O14,SW ,PR ,NO ,C0)	;! POINTER TO EXTENSION
$$FIELD (N,VRA,X,ZERO,O15,SW ,PR ,NO ,C0)	;! POINTER TO DEVICE
;!	==>ENDSTRUCTURE

;!	^  ^  ^   ^   ^   ^   ^   ^   ^
;	!  !  !   !   !   !   !   !   !_____COUNT (IF C0, THEN NOT ARRAY FIELD)
;	!  !  !   !   !   !   !   !_____ASNFLG (IF NO THEN USER CAN'T
;	!  !  !   !   !   !   !         INITIALIZE AT COMPILE TIME)
;	!  !  !   !   !   !   !_____POSITION (NO. BITS AT RIGHT OF FIELD)
;	!  !  !   !   !   !_____SIZE OF FIELD IN BITS
;	!  !  !   !   !_____OFFSET INTO THE BLOCK
;	!  !  !   !_____2ND HALF OF DEFAULT VALUE SYMBOL
;	!  !  !_____1ST HALF OF DEFAULT VALUE SYMBOL
;	!  !  	    IF 1ST HALF IS X AND 2ND HALF IS ZERO, THEN MACRO DEFAULT 
;	!  !	    VALUE IS X$ZERO, AND BLISS DEFAULT VALUE IS XZERO.
;	!  !_____FIELD NAME
;	!_____BLOCK TYPE PREFIX
;!*********************************************************
;!*		8.1  SYMBOL DEFINITIONS FOR		  * 
;!*		     TYP BLOCK (TYP)			  *
;!*********************************************************


S$$DC  (TY,ASC,1)					;! ASCII
S$$DC  (TY,IMA,2)					;! IMAGE
S$$DC  (TY,M11,3)					;! MACY11 (PACKED)
S$$DC  (TY,BYT,4)					;! BYTE DATA
S$$DC  (TY,DL8,5)					;! DIL8 -- DIL 8-BIT

    ;!	DEFINE NON-ZERO DEFAULTS THAT HAVE NOT BEEN DEFINED YET
;!	==>BEGINIMMEDIATE
S$$DC  (TY,TYP,17)					;! BLOCK TYPE
S$$DC  (TY,LNG,4)					;! BLOCK LENGTH
;!	==>ENDIMMEDIATE
;!	*********************************************************
;!	*		8.1  TYP DEFINITIONS			*
;!	*********************************************************

$$FIELD (T,BID,TY,TYP,OID,SID,PID,NO ,C0)	;! BLOCK TYPE
$$FIELD (T,BLN,TY,LNG,OLN,SLN,PLN,NO ,C0)	;! BLOCK LENGTH
$$FIELD (T,CLA,X,ZERO,OF1,SH ,PR ,YES,C0)	;! FILE CLASS
$$FIELD (T,FDT,X,ZERO,OF1,SH ,PL ,YES,C0)	;! FIELD DATATYPE CODE
$$FIELD (T,FLN,X,ZERO,OF2,SH ,PR ,YES,C0)	;! FIELD LENGTH
$$FIELD (T,FSC,X,ZERO,OF2,SH ,PL ,YES,C0)	;! FIELD SCALE FACTOR
$$FIELD (T,NEX,X,ZERO,OF3,SH ,PR ,YES,C0)	;! NEXT FIELD TYPE BLOCK
$$FIELD (T,MOR,X,ZERO,OF3,SH ,PL ,YES,C0)	;! VARIANT FOR THIS FIELD
;!	==>ENDSTRUCTURE

;!	^  ^  ^   ^   ^   ^   ^   ^   ^
;	!  !  !   !   !   !   !   !   !_____COUNT (IF C0, THEN NOT ARRAY FIELD)
;	!  !  !   !   !   !   !   !_____ASNFLG (IF NO THEN USER CAN'T
;	!  !  !   !   !   !   !         INITIALIZE AT COMPILE TIME)
;	!  !  !   !   !   !   !_____POSITION (NO. BITS AT RIGHT OF FIELD)
;	!  !  !   !   !   !_____SIZE OF FIELD IN BITS
;	!  !  !   !   !_____OFFSET INTO THE BLOCK
;	!  !  !   !_____2ND HALF OF DEFAULT VALUE SYMBOL
;	!  !  !_____1ST HALF OF DEFAULT VALUE SYMBOL
;	!  !  	    IF 1ST HALF IS X AND 2ND HALF IS ZERO, THEN MACRO DEFAULT 
;	!  !	    VALUE IS X$ZERO, AND BLISS DEFAULT VALUE IS XZERO.
;	!  !_____FIELD NAME
;	!_____BLOCK TYPE PREFIX
;!	*********************************************************
;!	*	9.  SYMBOL DEFINITIONS FOR DEBUG MACRO		*
;!	*********************************************************



S$$BC  (DB,TRC,35)		;! TRACE ROUTINE ENTRY
S$$BC  (DB,ERR,34)		;! TRACE USER ERRORS
S$$BC  (DB,RTR,33)		;! TRACE ROUTINE EXECUTION
S$$BC  (DB,LOC,32)		;! TRACE LOCAL VARIABLES
S$$BC  (DB,BLK,31)		;! DUMP RMS-20 CONTROL BLOCKS
S$$BC  (DB,LCK,30)		;! PRINT TRACE OF RECORD LOCKS
S$$BC  (DB,IOT,29)		;! TRACE I/O PAGE ACTIVITY
S$$BC  (DB,ENT,28)		;! TRACE RMS-20 ENTRY (USER CALLS)


;!	ALL PRIMARY SYMBOLS HAVE BEEN DEFINED NOW, SO DEF DEPENDENT SYMS
;!
$$SYNM
;!	*********************************************************
;!	*	10.	DEFINE RUN TIME OPERATION VERBS	        *
;!	*********************************************************

;!	THE CALLING CONVENTION IS:
;!		PTR TO FAB/RAB IN AC1
;!		AC1-AC4 NOT PRESERVED, ALL OTHER AC'S PRESERVED
;!		JSYS OR DYNLIB CALL IS DONE ON 20.
;!		PUSHJ TO ABSOLUTE LOC DONE ON 10.
;!		RMS EXAMINES FOR ERCAL/ERJMP FOLLOWING CALLING LOC.
;!	
;!	THIS GROUP OF MACROS IS USED IN THE FOLLOWING WAYS:
;!	
;!		1.  HERE, TO GENERATE THE APPROPRIATE RUN-TIME MACROS
;!		2.  IN THE RMS-20 DISPATCHER, TO GENERATE A DISPATCH TABLE
;!			AND ENTRY ADDRESSES FOR PUSHJ INTERFACE
;!	
;!	FOR THE BELOW TO WORK, $$VINI, $$VERB, AND $$VEND MUST BE
;!		DEFINED IN RMSSYM.BPR AND RMSSYM.MPR

;!	CREATE THE $XXXX MACROS
	$$VINI

	$$VERB (OPEN)
	$$VERB (CLOSE)
	$$VERB (GET)
	$$VERB (PUT)
	$$VERB (UPDATE)
	$$VERB (DELETE)
	$$VERB (FIND)
	$$VERB (TRUNCATE)
	$$VERB (CONNECT)
	$$VERB (DISCONNECT)
	$$VERB (CREATE)
	$$VERB (DEBUG)
	$$VERB (RELEASE)
	$$VERB (FLUSH)
	$$VERB (MESSAGE)
	$$VERB (NOMESSAGE)
	$$VERB (DISPLAY)
	$$VERB (ERASE)
	$$VERB (FREE)
	$$VERB	(UTLINT)
	$$VERB	(NXTVOL)
	$$VERB	(REWIND)
	$$VERB	(WAIT)
	$$VERB	(READ)
	$$VERB	(SPACE)
	$$VERB	(WRITE)
	$$VERB	(PARSE)
	$$VERB	(SEARCH)
	$$VERB	(ENTER)
	$$VERB	(EXTEND)
	$$VERB	(REMOVE)
	$$VERB	(RENAME)

	$$VEND
;!	*********************************************************
;!	*	11.	DEFINE RMS STATUS CODES			*
;!	*********************************************************

;!	SUCCESS CODES FOR RMS-20

$$SUC (SU$SUC,<%(,OPERATION WAS SUCCESFUL,)%>)
$$SUC (SU$DUP,<%(,DUPLICATE KEY WAS FOUND,)%>)
$$SUC (SU$IDX,<%(,AN INDEX UPDATE ERROR OCCURRED,)%>)
$$SUC (SU$RRV,<%(,ONE OR MORE RRVs COULD NOT BE UPDATED,)%>)
$$SUC (SU$REO,<%(,FILE SHOULD BE RE-ORGANIZED,)%>)
$$MAXC(SU)


;!	RMS-20 ERROR CODES

$$UERR (ER$AID,<%(,BAD AID VALUE,)%>)
$$UERR (ER$ALQ,<%(,ALLOCATION QUANTITY INCORRECT,)%>)
$$UERR (ER$ANI,<%(,NOT ANSI 'D' FORMAT,)%>)
$$UERR (ER$BKS,<%(,BAD BUCKET SIZE,)%>)
$$UERR (ER$BKZ,<%(,'BKZ' FIELD INVALID IN XAB,)%>)
$$UERR (ER$BLN,<%(,BAD BLOCK LENGTH,)%>)
$$UERR (ER$BSZ,<%(,BAD BYTE SIZE,)%>)
$$UERR (ER$BUG,<%(,INTERNAL BUG FOUND IN RMS-20,)%>)
$$UERR (ER$CCF,<%(,CANNOT CLOSE FILE,)%>)
$$UERR (ER$CCR,<%(,CANNOT CONNECT RAB,)%>)
$$UERR (ER$CDR,<%(,CANNOT DISCONNECT RAB,)%>)
$$UERR (ER$CEF,<%(,CANNOT $ERASE FILE,)%>)
$$UERR (ER$CGJ,<%(,CANNOT GET JFN FOR FILE,)%>)
$$UERR (ER$CHG,<%(,KEY VALUE CANNOT CHANGE,)%>)
$$UERR (ER$COD,<%(,BAD COD VALUE IN AN XAB,)%>)
$$UERR (ER$COF,<%(,CANNOT OPEN FILE,)%>)
$$UERR (ER$CUR,<%(,NO CURRENT RECORD,)%>)
$$UERR (ER$DAN,<%(,BAD DATA-AREA NUMBER,)%>)
$$UERR (ER$DEL,<%(,RECORD HAS BEEN DELETED,)%>)
$$UERR (ER$DEV,<%(,ILLEGAL DEVICE,)%>)
$$UERR (ER$DFL,<%(,BAD DATA-FILL PERCENTAGE VALUE,)%>)
$$UERR (ER$DLK,<%(,DEADLOCK CONDITION DETECTED,)%>)
$$UERR (ER$DME,<%(,DYNAMIC MEMORY EXHAUSTED,)%>)
$$UERR (ER$DTP,<%(,BAD DATA-TYPE IN XAB,)%>)
$$UERR (ER$DUP,<%(,DUPLICATE KEY EXISTS,)%>)
$$UERR (ER$EDQ,<%(,UNEXPECTED ENQUE/DEQUE ERROR,)%>)
$$UERR (ER$EOF,<%(,END OF FILE,)%>)
$$UERR (ER$FAB,<%(,BLOCK IS NOT A VALID FAB,)%>)
$$UERR (ER$FAC,<%(,BAD FILE ACCESS VALUE,)%>)
$$UERR (ER$FEX,<%(,FILE ALREADY EXISTS,)%>)
$$UERR (ER$FLG,<%(,BAD XAB FLAG COMBINATION,)%>)
$$UERR (ER$FLK,<%(,FILE ALREADY LOCKED BY SOMEONE ELSE,)%>)
$$UERR (ER$FNA,<%(,BAD FNA VALUE,)%>)
$$UERR (ER$FNC,<%(,FILE NOT CLOSED,)%>)
$$UERR (ER$FNF,<%(,FILE NOT FOUND,)%>)
$$UERR (ER$FOP,<%(,BAD FILE OPTIONS,)%>)
$$UERR (ER$FSZ,<%(,INVALID HEADER SIZE FOR VFC-FILE,)%>)
$$UERR (ER$FUL,<%(,FILE FULL,)%>)
$$UERR (ER$IAL,<%(,INVALID ARGUMENT LIST,)%>)
$$UERR (ER$IAN,<%(,BAD INDEX-AREA NUMBER,)%>)
$$UERR (ER$IBC,<%(,ILLEGAL BLOCK MODE CONNECTION,)%>)
$$UERR (ER$IBO,<%(,ILLEGAL BLOCK MODE OPERATION,)%>)
$$UERR (ER$IBS,<%(,ILLEGAL BLOCK MODE SHARING,)%>)
$$UERR (ER$IFI,<%(,BAD IFI VALUE,)%>)
$$UERR (ER$IFL,<%(,BAD INDEX FILL PERCENTAGE,)%>)
$$UERR (ER$IMX,<%(,ILLEGAL MULTIPLE XABs,)%>)
$$UERR (ER$IOP,<%(,INVALID OPERATION ATTEMPTED,)%>)
$$UERR (ER$IRC,<%(,ILLEGAL RECORD ENCOUNTERED,)%>)
$$UERR (ER$ISI,<%(,BAD ISI VALUE,)%>)
$$UERR (ER$JFN,<%(,BAD JFN VALUE,)%>)
$$UERR (ER$KBF,<%(,BAD KBF VALUE,)%>)
$$UERR (ER$KEY,<%(,BAD RECORD KEY,)%>)
$$UERR (ER$KRF,<%(,BAD KEY OF REFERENCE VALUE,)%>)
$$UERR (ER$KSZ,<%(,BAD KEY SIZE,)%>)
$$UERR (ER$LSN,<%(,BAD LINE-SEQUENCE NUMBER,)%>)
$$UERR (ER$MRN,<%(,BAD MRN VALUE,)%>)
$$UERR (ER$MRS,<%(,BAD MRS VALUE,)%>)
$$UERR (ER$NEF,<%(,NOT POSITIONED AT EOF,)%>)
$$UERR (ER$NLG,<%(,LOG FILE NOT ACTIVE,)%>)
$$UERR (ER$NPK,<%(,INDEXED FILE - NO PRIMARY KEY DEFINED,)%>)
$$UERR (ER$NXT,<%(,INVALID 'NXT' FIELD IN AN XAB,)%>)
$$UERR (ER$ORD,<%(,XABs ARE NOT IN CORRECT ORDER,)%>)
$$UERR (ER$ORG,<%(,BAD FILE ORGANIZATION VALUE,)%>)
$$UERR (ER$PEF,<%(,CANNOT POSITION TO END-OF-FILE,)%>)
$$UERR (ER$PLG,<%(,ERROR DETECTED IN FILEs PROLOGUE,)%>)
$$UERR (ER$POS,<%(,BAD KEY POSITION VALUE,)%>)
$$UERR (ER$PRV,<%(,PRIVELEGE VIOLATION,)%>)
$$UERR (ER$QPE,<%(,QUIET POINT ENABLED,)%>)
$$UERR (ER$RAB,<%(,BLOCK IS NOT A VALID RAB,)%>)
$$UERR (ER$RAC,<%(,BAD RECORD ACCESS VALUE,)%>)
$$UERR (ER$RAT,<%(,BAD RECORD ATTRIBUTES,)%>)
$$UERR (ER$RBF,<%(,INVALID RECORD BUFFER ADDRESS,)%>)
$$UERR (ER$REF,<%(,BAD KEY REFERENCE (REF) VALUE,)%>)
$$UERR (ER$RER,<%(,FILE PROCESSOR READ ERROR,)%>)
$$UERR (ER$REX,<%(,RECORD ALREADY EXISTS,)%>)
$$UERR (ER$RFA,<%(,BAD RFA VALUE,)%>)
$$UERR (ER$RFM,<%(,BAD RECORD FORMAT,)%>)
$$UERR (ER$RLK,<%(,RECORD ALREADY LOCKED BY SOMEONE ELSE,)%>)
$$UERR (ER$RNF,<%(,RECORD NOT FOUND,)%>)
$$UERR (ER$RNL,<%(,RECORD NOT LOCKED,)%>)
$$UERR (ER$ROP,<%(,BAD RECORD OPTIONS,)%>)
$$UERR (ER$RRV,<%(,INVALID RRV RECORD FOUND,)%>)
$$UERR (ER$RSA,<%(,RECORD STREAM ACTIVE,)%>)
$$UERR (ER$RSD,<%(,RECORD SIZE DISCREPANCY,)%>)
$$UERR (ER$RSZ,<%(,BAD RECORD SIZE VALUE,)%>)
$$UERR (ER$RTB,<%(,RECORD TOO BIG,)%>)
$$UERR (ER$SEQ,<%(,KEY VALUE NOT IN SEQUENTIAL ORDER,)%>)
$$UERR (ER$SIZ,<%(,'SIZ' FIELD IN XAB INVALID,)%>)
$$UERR (ER$TRE,<%(,INDEX TREE ERROR DETECTED,)%>)
$$UERR (ER$TRU,<%(,CANNOT TRUNCATE TO THIS FILE,)%>)
$$UERR (ER$UBF,<%(,BAD BUFFER ADDRESS,)%>)
$$UERR (ER$UDF,<%(,FILE IS IN UNDEFINED STATE,)%>)
$$UERR (ER$VER,<%(,ERROR IN VERSION NUMBER,)%>)
$$UERR (ER$WER,<%(,FILE PROCESSOR WRITE ERROR,)%>)
$$UERR (ER$XAB,<%(,NOT A VALID XAB,)%>)
$$UERR (ER$XCL,<%(,FILE MUST BE OPEN IN EXCLUSIVE ACCESS,)%>)
$$UERR (ER$FSI,<%(,FILE SPEC HAS INVALID FORMAT,)%>)
$$UERR (ER$DPE,<%(,DAP PROTOCOL ERROR,)%>)
$$UERR (ER$SUP,<%(,UNSUPPORTED OPERATION,)%>)
$$UERR (ER$DCF,<%(,DAP CONNECTION FAILURE,)%>)
$$UERR (ER$EXT,<%(,FILE EXTEND ERROR,)%>)
$$UERR (ER$NAM,<%(,INVALID NAM BLOCK,)%>)
$$UERR (ER$NMF,<%(,NO MORE FILES,)%>)
$$UERR (ER$RTD,<%(,RENAME -- TWO DIFFERENT DEVICES,)%>)
$$UERR (ER$RTN,<%(,RENAME -- TWO DIFFERENT NODES,)%>)
$$UERR (ER$DCB,<%(,DECNET CONNECTION BROKEN,)%>)
$$UERR (ER$IAC,<%(,INVALID ACCESS INFORMATION,)%>)
$$UERR (ER$TYP,<%(,INVALID TYP BLOCK,)%>)
$$UERR (ER$CLA,<%(,INVALID FILE DATA CLASS,)%>)
$$MAXC(ER)



;!	RMS-20 FILE CONSISTENCY ERROR CODES

$$FERR (FE$BEM,<%(,EMPTY INDEX BUCKET DETECTED,)%>)
$$FERR (FE$BFC,<%(,BAD FILE CLASS FOUND IN FILE FDB,)%>)
$$FERR (FE$BHE,<%(,BUCKET HEADER HAS BAD FORMAT,)%>)
$$FERR (FE$BIR,<%(,BAD INDEX RECORD DETECTED,)%>)
$$FERR (FE$ENF,<%(,END BLOCK NOT FOUND IN FILE PROLOGUE,)%>)
$$FERR (FE$EOP,<%(,END-OF-PAGE MARKER DETECTED WITHOUT FB$BLK ATTRIBUTE,)%>)
$$FERR (FE$HDR,<%(,INVALID RECORD HEADER FOUND,)%>)
$$FERR (FE$HNF,<%(,FILE PROLOGUE HEADER NOT FOUND,)%>)
$$FERR (FE$NOA,<%(,NO AREA DESCRIPTORS FOUND IN FILE,)%>)
$$FERR (FE$NOI,<%(,NO INDEX DESCRIPTORS FOUND IN FILE,)%>)
$$FERR (FE$NOR,<%(,NO RRV RECORD FOUND FOR RECORD,)%>)
$$FERR (FE$NOS,<%(,NO RECORD POINTER FOUND IN SECONDARY INDEX,)%>)
$$FERR (FE$NOU,<%(,NO DATA RECORD FOUND FOR RFA IN SECONDARY INDEX,)%>)
$$FERR (FE$PGO,<%(,A FILE PAGE SHOULD DOES NOT EXIST,)%>)
$$FERR (FE$RSZ,<%(,BAD RECORD-SIZE VALUE DETECTED,)%>)
$$FERR (FE$UNL,<%(,RECORD SHOULD BE LOCKED, BUT HAS BEEN UNLOCKED,)%>)
$$MAXC(EX)


$$END				;! IN MACRO, GENERATES AN END STATEMENT