/* rms.h */

/* pashunfingaz 7-mar-84  RMS 2.0 block definitions */
/* NOT complete (yawn) */

/* please keep these sorted in octal order */
#define	SU$SUC	(1)	/* 000001 OPERATION SUCCEEDED */
#define	SU$DUP	(2)	/* 000002 INSERTED RECORD HAS DUPLICATE KEY */
#define	SU$IDX	(3)	/* 000003 ERROR UPDATING INDEX */
#define	SU$RRV	(4)	/* 000004  */
#define	SU$BOF	(5)	/* 000005  */
#define	SU$RLK	(20)	/* 000024  */
#define	ER$XTR	(-1824)	/* 174340 EXTRANEOUS FIELD DETECTED DURING PARSE */
#define	ER$XAB	(-1808)	/* 174360 NOT A VALID XAB(@XAB=ODD,STV=@XAB) */
#define	ER$WPL	(-1792)	/* 174400 ERROR WHILE WRITING PROLOGUE(STV=SYS ERR CODE) */
#define	ER$WLK	(-1784)	/* 174410 DEVICE IS WRITE-LOCKED */
#define	ER$WER	(-1776)	/* 174420 FILE WRITE ERROR(STV=SYS ERR CODE) */
#define	ER$WCD	(-1768)	/* 174430 WILD CARD ENCOUNTERED DURING FNA/DNA STRING PARSE */
#define	ER$VOL	(-1760)	/* 174440 INVALID VOLUME NUMBER(STV=@XAB) */
#define	ER$VER	(-1744)	/* 174460 ERROR IN VERSION NUMBER */
#define	ER$USZ	(-1728)	/* 174500 INVALID USER BUFFER SIZE(USZ=0) */
#define	ER$UIN	(-1720)	/* 174510 FAL REJECTED SOME FIELD (STV TELLS WHICH) */
#define	ER$UBF	(-1712)	/* 174520 INVALID USER BUFFER ADDR(0,OR BLK-IO NOT WORD ALIGNED) */
#define	ER$TYP	(-1696)	/* 174540 ERROR IN FILE TYPE EXTENSION */
#define	ER$TRE	(-1680)	/* 174560 INDEX TREE ERROR */
#define	ER$SYS	(-1664)	/* 174600 SYSTEM DIRECTIVE ERROR(STV=SYS ERR CODE) */
#define	ER$SUP	(-1656)	/* 174610 OPERATION UNSUPPORTED OVER NETWORK */
#define	ER$STK	(-1648)	/* 174620 THIS ERROR CODE NO LONGER USED */
#define	ER$SIZ	(-1632)	/* 174640 "SIZ" FIELD INVALID(STV=@XAB) */
#define	ER$SHR	(-1616)	/* 174660 UNRECOGNIZABLEIN FAB SHR FIELD */
#define	ER$SEQ	(-1600)	/* 174700 PRIMARY KEY OUT OF SEQUENCE(RAC=RB$SEQ FOR $PUT) */
#define	ER$RVU	(-1592)	/* 174710 RRV UPDATE ERROR ON INSERT */
#define	ER$RTB	(-1584)	/* 174720 RECORD TOO BIG FOR USER'S BUFFER(STV=ACTUAL REC SIZE) */
#define	ER$RSZ	(-1568)	/* 174740 BAD RECORD SIZE(RSZ>MRS, OR NOT=MRS IF FIXED LENGTH RECS */
#define	ER$RST	(-1564)	/* 174744 INVALID RESULTANT STRING ADDRESS */
#define	ER$RSS	(-1560)	/* 174750 INVALID RESULTANT STRING SIZE */
#define	ER$RSL	(-1556)	/* 174754 NO RESULTANT STRING IN RESULTANT STRING AREA */
#define	ER$RSA	(-1552)	/* 174760 THIS ERROR CODE NO LONGER USED */
#define	ER$RRV	(-1536)	/* 175000 INVALID RRV RECORD ENCOUNTERED */
#define	ER$RPL	(-1520)	/* 175020 ERROR WHILE READING PROLOGUE(STV=SYS ERR CODE) */
#define	ER$ROP	(-1504)	/* 175040 INVALID RECORD OPTIONS */
#define	ER$RNL	(-1488)	/* 175060 RECORD NOT LOCKED */
#define	ER$RNF	(-1472)	/* 175100 RECORD NOT FOUND(STV=0/ER$IDX) */
#define	ER$RMV	(-1456)	/* 175120 RSX-F11ACP REMOVE FUNCTION FAILED(STV=SYS ERR CODE) */
#define	ER$RLK	(-1440)	/* 175140 TARGET BUCKET LOCKED BY ANOTHER ACCESSOR */
#define	ER$RFM	(-1424)	/* 175160 INVALID RECORD FORMAT */
#define	ER$RFA	(-1408)	/* 175200 BAD RFA VALUE */
#define	ER$REX	(-1392)	/* 175220 RECORD ALREADY EXISTS */
#define	ER$RER	(-1376)	/* 175240 FILE READ ERROR(STV=SYS ERR CODE) */
#define	ER$RBF	(-1360)	/* 175260 INVALID RECORD BUFFER ADDR(NOT WORD-ALIGNED IF BLK-IO) */
#define	ER$RAT	(-1344)	/* 175300 ILLEGAL RECORD ATTRIBUTES */
#define	ER$RAC	(-1328)	/* 175320 ILLEGAL RAC VALUE */
#define	ER$RAB	(-1312)	/* 175340 NOT A VALID RAB */
#define	ER$PRV	(-1296)	/* 175360 PRIVILEGE VIOLATION(OS DENIES ACCESS) */
#define	ER$PRM	(-1280)	/* 175400 BAD FILE DATE FIELD RETRIEVED(STV=@XAB) */
#define	ER$POS	(-1264)	/* 175420 "POS" FIELD INVALID(POS GT MRS,STV=@XAB) */
#define	ER$PLV	(-1256)	/* 175430 FILE PROLOGUE VERSION LEVEL UNSUPPORTED */
#define	ER$PLG	(-1248)	/* 175440 ERROR IN FILE'S PROLOGUE(RECONSTRUCT FILE) */
#define	ER$ORG	(-1232)	/* 175460 INVALID FILE ORGANIZATION VALUE */
#define	ER$ORD	(-1216)	/* 175500 XAB'S NOT IN CORRECT ORDER */
#define	ER$OPN	(-1200)	/* 175520 RSTS/E OPEN FUNCTION FAILED(STV=SYS ERR CODE) */
#define	ER$NPK	(-1184)	/* 175540 INDEXED FILE-NO PRIMARY KEY DEFINED */
#define	ER$NOD	(-1176)	/* 175550 ERROR IN NODE NAME (OR IMBALANCED NODES FOR $RENAME) */
#define	ER$NMF	(-1172)	/* 175554 NO MORE FILES MATCHING WILD-CARD SPECIFICATION */
#define	ER$NID	(-1168)	/* 175560 THIS ERROR CODE NO LONGER IN USE */
#define	ER$NET	(-1160)	/* 175570 LINK OR NETWORK ABORTED */
#define	ER$NEF	(-1152)	/* 175600 NOT POSITIONED TO EOF(SEQ. FILES ONLY) */
#define	ER$NAM	(-1136)	/* 175620 "NAM" BLOCK ADDRESS ZERO OR ODD */
#define	ER$NAE	(-1128)	/* 175630 UNMAPPABLE NETWORK ACCESS ERROR */
#define	ER$MRS	(-1120)	/* 175640 ILLEGAL FAB MRS VALUE */
#define	ER$MRN	(-1104)	/* 175660 MRN VALUE=NEG/REL.KEY>MRN */
#define	ER$MKD	(-1088)	/* 175700 F11ACP COULD NOT MARK FILE FOR DELETION(STV=SYS ERR CODE) */
#define	ER$MEM	(-1080)	/* 175710 FNA, DNA, ESA, OR RSA STRING WRAPPED TO ZERO */
#define	ER$MAP	(-1072)	/* 175720 BUFFER MAPPING ERROR */
#define	ER$LOC	(-1056)	/* 175740 "LOC" FIELD INVALID(STV=@XAB) */
#define	ER$LIB	(-1052)	/* 175744 OLD/INCONSISTENT LIBRARY CONFIGURATION(CRASH) */
#define	ER$LEX	(-1048)	/* 175750 LOGICAL EXTEND ERROR,PRIOR EXTEND STILL VALID(STV=@XAB) */
#define	ER$LCH	(-1040)	/* 175760 LOGICAL CHANNEL NUMBER TOO LARGE */
#define	ER$LBY	(-1024)	/* 176000 LOGICAL CHANNEL BUSY */
#define	ER$LBL	(-1008)	/* 176020 NOT ANSI LABELED TAPE */
#define	ER$LAN	(-992)	/* 176040 LOWEST-LEVEL-INDEX AREA NUMBER INVALID(STV=@XAB) */
#define	ER$KSZ	(-976)	/* 176060 KEY SIZE=0,OR TOO LARGE(IDX)/NOT=4(REL) */
#define	ER$KRF	(-960)	/* 176100 INVALID KEY-OF-REFERENCE($GET/$FIND) */
#define	ER$KEY	(-944)	/* 176120 INVALID KEY FIELD(KEY=0/NEG) */
#define	ER$KBF	(-928)	/* 176140 BAD KEY BUFFER ADDRESS(KBF=0) */
#define	ER$ISI	(-912)	/* 176160 INVALID ISI VALUE, OR UNCONNECTED RAB */
#define	ER$IRC	(-896)	/* 176200 ILLEGAL RECORD ENCOUNTERED(SEQ. FILES ONLY) */
#define	ER$IOP	(-880)	/* 176220 OPERATION ILLEGAL,OR INVALID FOR FILE ORG. */
#define	ER$INI	(-864)	/* 176240 THIS ERROR CODE NO LONGER USED */
#define	ER$IMX	(-848)	/* 176260 TOO MANY XABS OF A GIVEN TYPE(STV=@XAB) */
#define	ER$IFI	(-832)	/* 176300 INVALID IFI VALUE,OR UNOPENED FILE */
#define	ER$IDX	(-816)	/* 176320 INDEX NOT INITIALIZED(STV ONLY,STS=ER$RNF) */
#define	ER$IAN	(-800)	/* 176340 INDEX AREA NUMBER INVALID(STV=@XAB) */
#define	ER$FUL	(-784)	/* 176360 DEVICE/FILE FULL */
#define	ER$FSS	(-776)	/* 176370 SYSTEM ERROR DURING FNA/DNA STRING PARSE (STV=SYS ERR CODE) */
#define	ER$FOP	(-768)	/* 176400 INVALID FILE OPTIONS */
#define	ER$FNM	(-752)	/* 176420 ERROR IN FILE NAME */
#define	ER$FNF	(-736)	/* 176440 FILE NOT FOUND */
#define	ER$FND	(-720)	/* 176460 RSX-F11ACP "FIND" FUNCTION FAILED(STV=SYS ERR CODE) */
#define	ER$FNA	(-712)	/* 176470 ZERO FNA WITH NON-ZERO FNS */
#define	ER$FLK	(-704)	/* 176500 FILE IS LOCKED BY OTHER USER */
#define	ER$FLG	(-688)	/* 176520 INVALID FLAG-BITS COMBINATION(STV=@XAB) */
#define	ER$FEX	(-672)	/* 176540 FILE ALREADY  EXISTS  */
#define	ER$FAL	(-664)	/* 176550 REMOTE NODE DOES NOT SUPPORT OPERATION */
#define	ER$FAC	(-656)	/* 176560 RECORD OPERATION NOT SUPPORTED IN FAB FAC */
#define	ER$FAB	(-640)	/* 176600 NOT A VALID FAB */
#define	ER$EXT	(-624)	/* 176620 FILE EXTEND FAILURE(STV=SYS ERR CODE) */
#define	ER$EXP	(-616)	/* 176630 FILE EXPIRATION DATE NOT YET REACHED */
#define	ER$ESS	(-608)	/* 176640 EXPANDED STRING AREA TOO SHORT */
#define	ER$ESL	(-604)	/* 176644 NO EXPANDED STRING IN EXPANDED STRING AREA */
#define	ER$ESA	(-600)	/* 176650 EXPANDED STRING ADDRESS IS ZERO */
#define	ER$EOF	(-592)	/* 176660 END-OF-FILE */
#define	ER$ENV	(-576)	/* 176700 OPERATION NOT SELECTED IN "ORG$" MACRO OR TASK-BUILD (E.G., DAP SUPPORT */
#define	ER$ENT	(-560)	/* 176720 RSX-F11ACP ENTER FUNCTION FAILED(STV=SYS ERR CODE) */
#define	ER$DUP	(-544)	/* 176740 DUPLICATE KEY DETECTED, XB$DUP ATTRIBUTE NOT SET */
#define	ER$DTP	(-528)	/* 176760 "DTP" FIELD INVALID(STV=@XAB) */
#define	ER$DPE	(-520)	/* 176770 DEVICE POSITIONING ERROR(STV=SYS ERR CODE) */
#define	ER$DNR	(-512)	/* 177000 DEVICE NOT READY */
#define	ER$DNF	(-496)	/* 177020 DIRECTORY NOT FOUND */
#define	ER$DNA	(-488)	/* 177030 ZERO DNA WITH NON-ZERO DNS */
#define	ER$DME	(-480)	/* 177040 DYNAMIC MEMORY EXHAUSTED */
#define	ER$DIR	(-464)	/* 177060 ERROR IN DIRECTORY NAME */
#define	ER$DFW	(-456)	/* 177070 ERROR OCCURRED ON DEFERRED WRITE (STV=SYS ERR CODE) */
#define	ER$DEV	(-448)	/* 177100 BAD DEVICE, OR INAPPROPRIATE DEVICE TYPE */
#define	ER$DEL	(-432)	/* 177120 RFA-ACCESSED RECORD WAS DELETED */
#define	ER$DAN	(-416)	/* 177140 DATA AREA NUMBER INVALID(STV=@XAB) */
#define	ER$DAC	(-400)	/* 177160 F11ACP DEACCESS ERROR DURING "CLOSE"(STV=SYS ERR CODE) */
#define	ER$CUR	(-384)	/* 177200 NO CURRENT RECORD(OPERATION NOT PRECEDED BY GET/FIND) */
#define	ER$CRE	(-368)	/* 177220 COULD NOT CREATE FILE(STV=SYS ERR CODE) */
#define	ER$CPB	(-360)	/* 177230 CALL PARAMETER BLOCK HAS INVALID ARGUMENT COUNT OR ZERO OR ODD ADDRESS */
#define	ER$COD	(-352)	/* 177240 INVALID OR UNSUPPORTED "COD" FIELD(STV=@XAB) */
#define	ER$CLS	(-336)	/* 177260 RSTS/E CLOSE FUNCTION FAILED(STV=SYS ERR CODE) */
#define	ER$CHK	(-320)	/* 177300 BUCKET HEADER CORRUPTED */
#define	ER$CHG	(-304)	/* 177320 $UPDATE-KEY CHANGE WITHOUT HAVING ATTRIBUTE OF XB$CHG SET */
#define	ER$CCR	(-288)	/* 177340 CAN'T CONNECT RAB */
#define	ER$BUG	(-272)	/* 177360 INTERNAL RMS ERROR CONDITION DETECTED */
#define	ER$BPS	(-256)	/* 177400 PRIVATE POOL SIZE NOT MULTIPLE OF "4" */
#define	ER$BPA	(-240)	/* 177420 PRIVATE POOL ADDRESS ZERO OR NOT WORD-ALIGNED */
#define	ER$BOF	(-232)	/* 177430 BEGINNING OF FILE DETECTED($SPACE) */
#define	ER$BLN	(-224)	/* 177440 THIS ERROR CODE NO LONGER IN USE */
#define	ER$BKZ	(-208)	/* 177460 BUCKET SIZE TOO LARGE(STV=@XAB) */
#define	ER$BKS	(-192)	/* 177500 BUCKET SIZE TOO LARGE(FAB) */
#define	ER$ATW	(-176)	/* 177520 ATTRIBUTE WRITE ERROR(STV=SYS ERR CODE) */
#define	ER$FID	(-168)	/* 177530 INVALID FILE-ID */
#define	ER$ATR	(-160)	/* 177540 ATTRIBUTE READ ERROR(STV=SYS ERR CODE) */
#define	ER$AST	(-144)	/* 177560 INVALID OPERATION AT AST LEVEL */
#define	ER$AOP	(-128)	/* 177600 ALLOCATION OPTIONS ERROR(STV=@XAB) */
#define	ER$ANI	(-112)	/* 177620 NOT ANSI "D" FORMAT */
#define	ER$ALQ	(-96)	/* 177640 IMPROPER ALLOCATION QUANTITY */
#define	ER$ALN	(-80)	/* 177660 ALIGNMENT OPTIONS ERROR(STV=@XAB) */
#define	ER$AID	(-64)	/* 177700 BAD AREA ID(STV=@XAB) */
#define	ER$ACT	(-48)	/* 177720 CURRENT RMS ACTIVITY PRECLUDES OPERATION */
#define	ER$ACC	(-32)	/* 177740 F11ACP ACCESS ERROR (STV) OR FILE IMPROPERLY CLOSED OR CREATED */
#define	ER$ABO	(-16)	/* 177760 THIS ERROR CODE NO LONGER IN USE */

/* all the simple defines i could find : these don't look pretty in the
   middle of structure declarations - so I park them here */
#define	BC$LBK	01
#define	BC$ROT	02
#define	BD$DRT	02
#define	BD$DYM	020
#define	BD$ELK	0200
#define	BD$IOP	04
#define	BD$LCK	010
#define	BD$PRM	040
#define	BD$VAL	01
#define	BD$WFO	0100
#define	BK$ACC	0100
#define	BK$ANI	0200
#define	BK$ASY	0200
#define	BK$BLK	040
#define	BK$BUS	01
#define	BK$BUS	01
#define	BK$DFW	040
#define	BK$DUP	04
#define	BK$EOF	010
#define	BK$EOF	010
#define	BK$FND	0100
#define	BK$IDX	0100
#define	BK$IOP	02
#define	BK$IOP	02
#define	BK$PAR	040
#define	BK$PRV	04
#define	BK$RWC	020
#define	BK$SEQ	020
#define	BK$SSK	010
#define	DC$DEL	04
#define	DC$KDL	040
#define	DC$NCP	0100
#define	DC$NPS	020
#define	DC$REC	010
#define	DC$RRV	010
#define	FB$ACK	0100
#define	FB$BID	03
#define	FB$BIO	040
#define	FB$BLK	010
#define	FB$BLN	00120	/* this may move ! */
#define	FB$CCL	02
#define	FB$CR	02
#define	FB$CTG	0200
#define	FB$DBM	0100
#define	FB$DEL	04
#define	FB$DFW	020000
#define	FB$DLK	020
#define	FB$FID	010000
#define	FB$FIX	01
#define	FB$FMX	0100
#define	FB$FTN	01
#define	FB$GET	02
#define	FB$HSH	060
#define	FB$IDX	040
#define	FB$JNL	040
#define	FB$MDI	010
#define	FB$MKD	04000
#define	FB$NEF	01000
#define	FB$NIL	0100
#define	FB$NIL	0100
#define	FB$POS	010
#define	FB$PRN	04
#define	FB$PUT	01
#define	FB$REA	FB$BIO|FB$GET
#define	FB$REC	01
#define	FB$REL	020
#define	FB$RWC	02
#define	FB$RWO	01
#define	FB$SDI	020
#define	FB$SEQ	00
#define	FB$SHR	0200
#define	FB$SQD	040
#define	FB$STM	04
#define	FB$SUP	0400
#define	FB$TMD	FB$TMP|FB$MKD
#define	FB$TMP	02000
#define	FB$TRM	04
#define	FB$TRN	020
#define	FB$UDF	00
#define	FB$UPD	010
#define	FB$UPI	040
#define	FB$VAR	02
#define	FB$VFC	03
#define	FB$WAT	04
#define	FB$WRI	FB$PUT|FB$UPD|FB$DEL
#define	FB$WRT	FB$BIO|FB$PUT
#define	FS$DEV	0200
#define	FS$DEV	0200
#define	FS$DIR	0100
#define	FS$DIR	0100
#define	FS$NAM	04
#define	FS$NAM	04
#define	FS$NOD	0400
#define	FS$NOD	0400
#define	FS$NOD	0400
#define	FS$NOD	0400
#define	FS$NUL	0200
#define	FS$NUL	0200
#define	FS$QUO	02000
#define	FS$QUO	02000
#define	FS$TYP	02
#define	FS$TYP	02
#define	FS$VER	01
#define	FS$VER	01
#define	FS$WCH	04000
#define	FS$WCH	04000
#define	FS$WDI	01000
#define	FS$WDI	01000
#define	FS$WNA	040
#define	FS$WNA	040
#define	FS$WTY	020
#define	FS$WTY	020
#define	FS$WVE	010
#define	FS$WVE	010
#define	IC$EMP	010
#define	IC$KCP	04
#define	IC$NUL	020
#define	IF$BID	013
#define	IR$BID	011
#define	NB$DEV	0200
#define	NB$DEV	0200
#define	NB$DIR	0100
#define	NB$DIR	0100
#define	NB$NAM	04
#define	NB$NAM	04
#define	NB$QUO	02000
#define	NB$QUO	02000
#define	NB$TYP	02
#define	NB$TYP	02
#define	NB$VER	01
#define	NB$VER	01
#define	NB$WCH	04000
#define	NB$WCH	04000
#define	NB$WDI	01000
#define	NB$WDI	01000
#define	NB$WNA	040
#define	NB$WNA	040
#define	NB$WTY	020
#define	NB$WTY	020
#define	NB$WVE	010
#define	NB$WVE	010
#define	P$CNT	00
#define	P$CNT	02
#define	P$ERR	02
#define	P$ERR	04
#define	P$STR2	02
#define	P$STR2	8
#define	P$STRU	02
#define	P$STRU	02
#define	P$SUC	02
#define	P$SUC	06
#define	PR$NEX	01
#define	RB$ASY	0200
#define	RB$BID	01
#define	RB$BK1	010
#define	RB$BK3	020
#define	RB$BLL	00240	/* this may move ! */
#define	RB$BLN	00120	/* this may move ! */
#define	RB$EOF	01
#define	RB$FDL	010000
#define	RB$HSH	010
#define	RB$KEY	01
#define	RB$KGE	02000
#define	RB$KGT	04000
#define	RB$LOA	020
#define	RB$LOC	0100
#define	RB$LOK	RB$ULK
#define	RB$MAS	02
#define	RB$NK3	02
#define	RB$NKC	01
#define	RB$NW1	040
#define	RB$ORG	04
#define	RB$RAH	0400
#define	RB$RCN	040000
#define	RB$RFA	02
#define	RB$RLK	RB$WAT
#define	RB$SEQ	00
#define	RB$UIF	020000
#define	RB$ULK	040
#define	RB$WAT	04
#define	RB$WBH	01000
#define	RB$X1A	0100
#define	RB$X2A	0200
#define	SY$AST	0200
#define	SY$RMS	01
#define	SY$SYN	02
#define	X$BDB	-06
#define	X$BDB	02
#define	X$BDB0	-012
#define	X$BDB0	02
#define	X$BDB1	-010
#define	X$BDB1	02
#define	X$IOS	00
#define	X$IOS	02
#define	X$IOS2	02
#define	X$IOS2	02
#define	X$OVLY	-04
#define	X$OVLY	02
#define	X$PARM	-02
#define	X$PARM	02
#define	X$STKS	02
#define	X$STKS	04
#define	XB$ACC	013
#define	XB$ALL	04
#define	XB$BN2	02
#define	XB$BN4	04
#define	XB$CHG	02
#define	XB$CTG	02
#define	XB$CYL	01
#define	XB$DAT	02
#define	XB$DUP	01
#define	XB$FCB	07
#define	XB$HDR	010
#define	XB$HRD	01
#define	XB$IN2	01
#define	XB$IN4	03
#define	XB$INI	020
#define	XB$KEY	01
#define	XB$KYL	0070	/* this may move ! */
#define	XB$LBN	02
#define	XB$NAM	012
#define	XB$NUL	04
#define	XB$PAC	05
#define	XB$PRO	03
#define	XB$RFI	010
#define	XB$SML	012	/* this may move ! */
#define	XB$STG	00
#define	XB$SUM	05
#define	XB$ULB	06
#define	XB$USR	011
#define	XB$VBN	04
/*	#define	FB$EFC	01	*/
/*	#define	FB$SQC	02	*/

struct	rmsfab
{
	char		o$bid;
	char		o$bln;
	unsigned	o$ctx;
	unsigned	o$ifi;
	unsigned	o$sts;
	unsigned	o$stv;
	long		o$alq;
	unsigned	o$deq;
	char		o$fac;
	char		o$shr;
	unsigned	o$fop;
	char		o$rtv;
	char		o$org;
	char		o$rat;
	char		o$rfm;
	char	*	o$xab;
	char	*	o$bpa;
	unsigned	o$bps;
	unsigned	o$mrs;
	long		o$mrn;
	unsigned	o$lrl;
	char	*	o$nam;
	char	*	o$fna;
	char	*	o$dna;
	char		o$fns;
	char		o$dns;
	unsigned	o$bls;
	char		o$fsz;
	char		o$bks;
	char		o$dev;
	char		o$lch;
	char		fabfil[28];	/* the bytes they don't talk about */
};

struct	rmskey
{
	char		o$cod;
	char		o$bln;
	char	*	o$nxt;
	char		o$ref;
	char		o$lvl;
	unsigned	o$ifl;
	unsigned	o$dfl;
	char		o$nul;
	char		o$ian;
	char		o$lan;
	char		o$dan;
	char		o$flg;
	char		o$dtp;
	char	*	o$knm;
	unsigned	o$pos[8];
	char		o$siz[8];
	long		o$rvb;
	long		o$dvb;
	char		o$ibs;
	char		o$dbs;
	char		o$nsg;
	char		o$tks;
	unsigned	o$mrl;
};

struct	rabsyn		/* synchronous RAB */
{
	char		o$bid;
	char		o$bln;
	unsigned	o$ctx;
	unsigned	o$isi;
	unsigned	o$sts;
	unsigned	o$stv;
	unsigned	o$rfa[3];
	char		o$rac;
	char		o$ksz;
	unsigned	o$rop;
	unsigned	o$usz;
	char	*	o$ubf;
	unsigned	o$rsz;
	char	*	o$rbf;
	char	*	o$kbf;
	char		o$krf;
	char		o$mbf;
	char		o$mbc;
	char		o$rt1;
	char	*	o$rhb;
	char	*	o$fab;
	long		o$bkt;
	char		rabfil[38];	/* the bytes they don't talk about */
};

struct	rmssum
{
	char		o$cod;
	char		o$bln;
	char	*	o$nxt;
	char		o$nok;
	char		o$noa;
	char		o$nor;	/* reserved */
	char		o$___;	/* reserved */
	unsigned	o$pvn;
};

/* end: rms.h */
