Google
 

Trailing-Edge - PDP-10 Archives - tops20-v7-ft-dist1-clock - 7-sources/rmssym.bsy
There are 6 other files named rmssym.bsy in the archive. Click here to see a list.
!
!	COPYRIGHT (C) DIGITAL EQUIPMENT CORPORATION 1979, 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.BSY			*
!*								*
!*			RMSSYM SYSTEM DEFINITIONS		*
!*								*
!*								*
!****************************************************************

!AUTHOR: S. BLOUNT
!EDIT DATE: 27-FEB-78

%([*************************************************
*						*
*		NEW REVISION HISTORY		*
*						*
*************************************************

PRODUCT	 SPR
 EDIT	 QAR		DESCRIPTION
=======	=====		===========

411                     Implement new key datatypes


	***** END OF REVISION HISTORY *****])%

! THIS MODULE CONTAINS ALL THE RMS SYMBOLS NEEDED BY RMS,
! BUT NOT NEEDED BY RMS USERS. THE USER SYMBOLS APPEAR IN RMSSYM.BUS.
!
! PRIMARILY RMSSYM.BSY CONTAINS RMS CTL FIELDS USED BY RMS.

MACRO $$VERB = $$V_SYS %;			!JUST DET OFFSETS
! ***	RMS CTL SYMBOLS USED BY RMS	***

! DEFINES SYMBOLS THAT ARE DEFINED IN TERMS OF THE SYMBOLS CREATED
! IN RMSSYM.MTB
!
MACRO	$$SYNM =				!REFFED AT END OF RMSSYM.MTB

!	FAB

	LITERAL	FABCODE		=	FA$TYP,		! CODE (BID FIELD) FOR A FAB
		FABSIZE		=	FA$LNG;		! CURRENT LENGTH OF A FAB


!	RAB

	LITERAL	RABCODE		=	RA$TYP,		! CODE (BID FIELD) FOR A RAB
		RABSIZE		=	RA$LNG;		! CURRENT LENGTH OF A RAB


!	XAB

	LITERAL	XABCODE		=	XA$TYP,		! CODE (BID FIELD) FOR AN XAB

							! TYPE OF XAB (COD FIELD)
		CODKEY		=	XB$KEY,			! KEY DEFINITIONS XAB
		CODAREA		=	XB$ALL,			! AREAL ALLOCATION XAB
		CODDATE		=	XB$DAT,			! DATE XAB
		CODSUM		=	XB$SUM,			! FILE SUMMARY XAB
		MAXCOD		=	XB$MAX,			! HIGHEST COD

		XABHDRSIZE	=	XA$SXX,		! SIZE OF XAB HEADER
		DATEXABSIZE	=	XA$SXD,		! SIZE OF DATE XAB
		AREAXABSIZE	=	XA$SXA,		! SIZE OF AREA ALLOCATION XAB
		KEYXABSIZE	=	XA$SXK,		! SIZE OF KEY XAB
		SUMXABSIZE	=	XA$SXS;		! SIZE OF FILE SUMMARY XAB

%(FILE ATTRITBUTES FIELD (RAT))%
	LITERAL	RATBLK = FB$BLK,		! NO-SPAN ONLY
		RATUNUSED = NOT ( RATBLK );

%(FILE ORGANIZATION (ORG))%
	%([ **NOTE** IF THE RECORD FORMAT OF THE FILE IS EITHER
	STREAM OR LINE-SEQUENCED ASCII RECORDS, THEN THE FILE
	ORGANIZATION FIELD IN THE FST WILL BE SET TO "ORGASC".
	THIS ALLOWS SIMPLER "CASE" STATEMENTS TO BE CODED. NOTE
	THAT THIS IS AN ILLEGAL FILE-ORGANIZATION VALUE IN THE
	FAB, THOUGH
	])%

	LITERAL	ORGASC = 0,			! ASCII
		ORGSEQ = FB$SEQ,			! SEQUENTIAL
		ORGREL = FB$REL,			! RELATIVE
		ORGIDX = FB$IDX,			! INDEXED
		ORGMAX = ORGIDX;		! RE-DEFINE FOR IDX FILES
	
	
		%([ USER ACCESS/SHARABILITY VALUES ])%
	LITERAL	AXGET = FB$GET,			! GET
		AXUPD = FB$UPD,			! UPDATE
		AXPUT = FB$PUT,			! PUT
		AXDEL = FB$DEL,			! DELETE
		AXTRN = FB$TRN,			! TRUNCATE
		AXALL = AXGET+AXUPD+AXPUT+AXDEL+AXTRN,
		AXNIL = 0,
		AXWRT = AXALL - AXGET,		! WRITE ACCESS
		MAXACCESS = AXTRN;		! MAXIMUM ACCESS CODE 

		%([**NOTE** IF ANOTHER ACCESS BIT IS ADDED
		  LATER, THEN "MAXACCESS" MUST BE CHANGED.
		  ALSO, "NUMFLOCKS" IS A VARIABLE IN
		  BLOCKS.REQ WHICH MUST ALSO BE MODIFIED ])%


	%([ FILE OPTIONS (FOP) ])%

	LITERAL	FOPWAT	=	FB$WAT,		! WAIT FOR FILE
		FOPCIF	=	FB$CIF,		! CREATE ONLY IF NON-EXISTENT
		FOPSUP	=	FB$SUP,		! SUPERSEDE IF EXISTS
		FOPDRJ	=	FB$DRJ,		! DON'T RELEASE JFN
		FOPDFW	=	FB$DFW;		! DEFERRED WRITE TO FILE

	%([ RECORD FORMAT (RFM) ])%

	LITERAL	RFMVAR	=	FB$VAR,		! VARIABLE LENGTH
		RFMSTM 	=	FB$STM,		! STREAM RECORDS
		RFMLSA	=	FB$LSA,		! LINE-SEQUENCED ASCII
		RFMFIX =	FB$FIX,		! FIXED-LENGTH RECORDS
		RFMMAX	=	RFMFIX;		! MAXIMUM VALUE ALLOWED


	%([ DEVICE CHARACTERISTICS BIT DEFINITIONS ])%

	LITERAL	DEVREC	=	FB$REC,		! DEVICE IS RECORD-ORIENTED
		DEVCCL	=	FB$CCL,		! CARRIAGE-CONTROL DEVICE
		DEVTRM	=	FB$TRM,		! TERMINAL
		DEVMDI	=	FB$MDI,		! DIRECTORY DEVICE
		DEVSQD	=	FB$SQD;		! SEQUENTIAL DEVICE

%(FIELD DEFINITIONS FOR RECORD-ACCESS BLOCK (RAB))%

	%([ OPTIONS FIELD (ROP) ])%

	LITERAL	ROPEOF 	= RB$EOF,		! CONNECT TO END-OF-FILE
		ROPFDL  = RB$FDL,		! FAST DELETE
		ROPLOC	= RB$LOC,		! LOCATE MODE
		ROPRAH  = RB$RAH,		! READ AHEAD
		ROPLOA  = RB$LOA,		! FOLLOW LOAD PERCENTAGES
		ROPWBH	= RB$WBH,		! WRITE BEHIND
		ROPKGT	= RB$KGT,		! KEY GREATER THAN
		ROPKGE	= RB$KGE,		! KEY GREATER THAN OR EUQAL TO
		ROPNRP	= RB$NRP,		! RAND FIND SETS NRP = FOUND REC
		ROPPAD	= RB$PAD;		! PAD USER'S BUFFER

	LITERAL	ROPUNUSED = NOT ( ROPEOF+ROPLOC+ROPRAH+ROPLOA+ROPWBH+ROPKGT+ROPKGE+ROPPAD );


	%([ RECORD ACCESS (RAC) ])%

	LITERAL	RACSEQ	= RB$SEQ,			! SEQUENTIAL ACCESS
		RACKEY	= RB$KEY,			! KEY ACCESS
		RACRFA  = RB$RFA;			! RECORD-FILE ADDRESS

	%([ FIELD VALUE RESTRICTIONS FOR THE RAB ])%

	%( <NONE> )%

	%([ DATA-TYPE VALUES ])%

	LITERAL	DTPSTG		=	XB$STG,		! STRING DATA-TYPE
		DTPEBC		=	XB$EBC,		! EBCDIC DATA-TYPE
		DTPSIX		=	XB$SIX,		! SIXBIT DATA-TYPE
		DTPPAC		=	XB$PAC,		! PACKED DATA     !A411
		DTPIN4		=	XB$IN4,		! IN4 DATA (1wd)  !A411
		DTPFL1		=	XB$FL1,		! FLOATING DATA   !A411
		DTPFL2		=	XB$FL2,		! DBL FLOATING    !A411
		DTPGFL		=	XB$GFL,		! GFLOATING DATA  !A411
		DTPIN8		=	XB$IN8,		! IN8 DATA (2wd)  !A411
		DTPAS8		=	XB$AS8,		! 8-bit ASCII	  !A411
		DTPUN4		=	XB$UN4;		! Unsigned int	  !A411

	LITERAL	MAXDTP		=	DTPUN4;	    ! MAXIMUM DTP VALUE ALLOWED

	%([ KEY FLAG DEFINITIONS ])%

	LITERAL	FLGDUP		=	XB$DUP,		! DUPLICATES ALLOWED
		FLGCHANGE	=	XB$CHG,		! KEY CAN CHANGE
		ALLXABFLAGS	=	FLGDUP + FLGCHANGE;

	%([ OFFSET INTO KEY XAB TO KEY SEGMENT DESCRIPTORS ])%

	LITERAL	XABKSDOFFSET	=	O$$POS;

%;							!END $$SYNM
! ***	STRUCTURE ARGUMENTS FOR RMS CTL FIELDS	***

	MACRO	FABBID	=	$$OPS(BID) %,			![10] BLOCK-TYPE CODE
		FABBLN	=	$$OPS(BLN) %,			![10] LENGTH OF BLOCK
		FABSTS	=	$$OPS(STS) %,			![10] STATUS CODE
		FABSTV	=	$$OPS(STV) %,			![10] ADDITIONAL STATUS INFO
		FABCTX	=	$$OPS(CTX) %,			![10] USER CONTEXT WORD
		FABIFI	=	$$OPS(IFI) %,			![10] INTERNAL FILE-ID
		FABJFN	=	$$OPS(JFN) %,			![10] JFN OF FILE
		FABFAC	=	$$OPS(FAC) %,			![10] FILE ACCESS
		FABSHR	=	$$OPS(SHR) %,			![10] FILE SHARABILITY
		FABFOP	=	$$OPS(FOP) %,			![10] FILE OPTIONS
		FABORG	=	$$OPS(ORG) %,			![10] FILE ORGANIZATION
		FABFNA	=	$$OPS(FNA) %,			![10] FILE NAME STRING ADDRESS
		FABRAT	=	$$OPS(RAT) %,			![10] RECORD ATTRIBUTES
		FABMRS	=	$$OPS(MRS) %,			![10] MAX RECORD SIZE
		FABMRN	=	$$OPS(MRN) %,			![10] MAXIMUM RECORD NUMBER
		FABBSZ	=	$$OPS(BSZ) %,			![10] BYTE SIZE
		FABRFM	=	$$OPS(RFM) %,			![10] RECORD FORMAT
		FABXAB	=	$$OPS(XAB) %,			![10] EXTANDED ATTRIBUTES POINTER
		FABJNL	=	$$OPS(JNL) %,			![10] LOG BLOCK
		FABBLS	=	$$OPS(BLS) %,			![10] BLOCK SIZE FOR TAPE FILES
		FABBKS	=	$$OPS(BKS) %,			![10] BUCKET SIZE
		FABDEV	=	$$OPS(DEV) %,			![10] DEVICE FLAGS
		FABSDC	=	$$OPS(SDC) %;			![10] SECONDARY DEVICE FLAGS

	MACRO	RABBID	=	$$OPS(BID) %,			![10] BLOCK-TYPE CODE
		RABBLN	=	$$OPS(BLN) %,			![10] LENGTH OF RAB
		RABSTS	=	$$OPS(STS) %,			![10] STATUS FIELD
		RABSTV	=	$$OPS(STV) %,			![10] STATUS VALUE
		RABISI	=	$$OPS(ISI) %,			![10] INTERNAL STREAM-ID
		RABFAB	=	$$OPS(FAB) %,			![10] ADDRESS OF FAB
		RABRAC	=	$$OPS(RAC) %,			![10] RECORD-ACCESS FIELD
		RABROP	=	$$OPS(ROP) %,			![10] RECORD OPTIONS
		RABUBF	=	$$OPS(UBF) %,			![10] USER RECORD BUFFER
		RABRBF	=	$$OPS(RBF) %,			![10] RECORD BUFFER ADDRESS
		RABRSZ	=	$$OPS(RSZ) %,			![10] RECORD SIZE
		RABUSZ	=	$$OPS(USZ) %,			![10] USER BUFFER SIZE
		RABRFA	=	$$OPS(RFA) %,			![10] RECORD-FILE ADDRESS
		RABKRF	=	$$OPS(KRF) %,			![10] KEY OF REFERENCE
		RABKSZ	=	$$OPS(KSZ) %,			![10] SIZE OF KEY
		RABKBF	=	$$OPS(KBF) %,			![10] RECORD-KEY ADDRESS
		RABMBF	=	$$OPS(MBF) %,			![10] MULTI-BUFFER COUNT
		RABLSN	=	$$OPS(LSN) %,			![10] LINE-SEQUENCE NUMBER
		RABBKT	=	$$OPS(BKT) %,			![10] BUCKET HASH CODE
		RABELS	=	$$OPS(ELS) %,			![10] END OF LINE SEQUENCE
		RABPAD	=	$$OPS(PAD) %,			![10] BUFFER PAD CHARACTER
		RABCTX	=	$$OPS(CTX) %;			![10] USER CONTEXT WORD

	MACRO	XABBID		=	$$OPS(BID) %,		![10] BLOCK-TYPE CODE
		XABBLN		=	$$OPS(BLN) %,		![10] SIZE OF BLOCK
		XABRESERV1	=	$$OPS(RS1) %,		![10] **RESERVED**
		XABCOD		=	$$OPS(COD) %,		![10] COD FIELD
		XABNXT		=	$$OPS(NXT) %;		![10] NEXT XAB IN CHAIN

	MACRO	XABCDT	=	$$OPS(CDT) %;			![10] CREATION DATE
	MACRO	XABRDT	=	$$OPS(RDT) %;			![10] UPDATE TIME
	MACRO	XABEDT	=	$$OPS(EDT) %;			![10] DELETE TIME (NOT SUPPORTED)

	MACRO	XABRESERV2 =	$$OPS(RS2) %,			![10] **RESERVED FIELD**
		XABAID	=	$$OPS(AID) %,			![10] AREA ID
		XABBKZ	=	$$OPS(BKZ) %;			![10] BUCKET SIZE OF THIS AREA

	MACRO	XABDTP		=	$$OPS(DTP) %,		![10] DATA-TYPE
		XABFLG		=	$$OPS(FLG) %,		![10] FLAGS
		XABIAN		=	$$OPS(IAN) %,		![10] INDEX AREA NUMBER
		XABDAN		=	$$OPS(DAN) %,		![10] DATA AREA NUMBER
		XABLAN		=	$$OPS(LAN) %,		![10] LOWEST LEVEL AREA NUMBER
		XABREF		=	$$OPS(REF) %,		![10] KEY OF REFERENCE
		XABIFL		=	$$OPS(IFL) %,		![10] INDEX FILL
		XABDFL		=	$$OPS(DFL) %,		![10] DATA FILL
		XABKNM		=	$$OPS(KNM) %,		![10] KEY NAME POINTER
								! KEY POSITIONS

		XABPOS		=	$$OPS(POS) %,
		XABPOS0		=	0+$$OPS(POS) %,
		XABPOS1		=	1+$$OPS(POS) %,
		XABPOS2		=	2+$$OPS(POS) %,
		XABPOS3		=	3+$$OPS(POS) %,
		XABPOS4		=	4+$$OPS(POS),
		XABPOS5		=	5+$$OPS(POS) %,
		XABPOS6		=	6+$$OPS(POS) %,
		XABPOS7		=	7+$$OPS(POS) %,

								! KEY SIZES

		XABSIZ		=	$$OPS(SIZ) %,
		XABSIZ0		=	0+$$OPS(SIZ) %,
		XABSIZ1		=	1+$$OPS(SIZ) %,
		XABSIZ2		=	2+$$OPS(SIZ) %,
		XABSIZ3		=	3+$$OPS(SIZ) %,
		XABSIZ4		=	4+$$OPS(SIZ) %,
		XABSIZ5		=	5+$$OPS(SIZ) %,
		XABSIZ6		=	6+$$OPS(SIZ) %,
		XABSIZ7		=	7+$$OPS(SIZ) %;

	MACRO	XABRS6	=	$$OPS(RS6) %,		![10] **RESERVED
		XABNOR	=	$$OPS(NOR) %,			![10] NUMBER OF RECORD DESCRIPTORS
		XABNOK	=	$$OPS(NOK) %,			![10] NUMBER OF KEYS
		XABNOA	=	$$OPS(NOA) %,			![10] NUMBER OF AREAS
		XABRS7	=	$$OPS(RS7) %,			![10] **RESERVED
		XABRS8	=	$$OPS(RS8) %,			![10] **RESERVED
		XABRS9	=	$$OPS(RS9) %;			![10] **RESERVED