 FCS-11 is a collection of record management macros and subroutines
 used to maintain and manipulate data files. FCS, in contrast to
 RMS supports only sequential and fixed record length file organizations.
 This HELP file contains only brief summaries of the MACRO-11 assembly
 language interface to FCS-11. For more detailed information see the
 RSX-11M/M-PLUS I/O Operations Manual.

 The following HELP commands will display additonal information:

	HELP FCS ERRORS		will display FCS I/O error information
	HELP FCS MACROS		will display the MACRO-11 interface macro
				call formats.
	HELP FCS BIGBUFFER	will display information on how to use the
				FCS bigbuffering feature
2	ERRORS
	@FCSERROR.HLP
2 MACROS

	BDOFF$	ARG
	CBYTE$	VAR,OFFSET
	CLOSE$	FDB,ERR
	CMOV$2	VAR,OFFSET
	CMOV$B	VAR,OFFSET
	CMOV$W	VAR,OFFSET
	CWORD$	VAR,OFFSET
	DEF$G	VAR,SIZ	;DEFINE GLOBAL OFFSET
	DEF$I	IVAL	;INITIALIZE DEFINITION
	DEF$L	SYM,SIZ
	DEF$N	VAR,SIZ	;DEFINE NO OFFSET-CALCULATE THE SIZE
	DEFIN$	SYM,VAL
	DELET$	FDB,ERR
	FCSBT$	GLOBL
	FCSBT$	ARG
	FCSMC$
	FDAT$A	RTYP,RATT,RSIZ,CNTG,ALOC
	FDAT$R	FDB,RTYP,RATT,RSIZ,CNTG,ALOC
	FDBDF$
	FDBF$A	EFN,OVBS,MBCT,MBFG
	FDBF$R	FDB,EFN,OVBS,MBCT,MBFG
	FDBK$A	BKDA,BKDS,BKVB,BKEF,BKST,BKDN
	FDBK$R	FDB,BKDA,BKDS,BKVB,BKEF,BKST,BKDN
	FDBSZ$		;DEFINE S.FDB AS SIZE OF FDB
	FDOF$L
	FDOFF$	ARG
	FDOP$A	LUN,DSPT,DFNB,FACC,ACTL
	FDOP$R	FDB,LUN,DSPT,DFNB,FACC,ACTL
	FDRC$A	RACC,URBA,URBS
	FDRC$R	FDB,RACC,URBA,URBS
	FDSOF$	ARG
	FHDOF$	ARG
	FINIT$
	FSROF$	ARG
	FSRSZ$	FBUFS,BUFSIZ,PSECT
	GET$	FDB,URBA,URBS,ERR
	GET$R	FDB,URBA,URBS,LRCNM,HRCNM,ERR
	GET$S	FDB,URBA,URBS,ERR
	HMBOF$	ARG
	LDFDB$	FDB
	NBOF$L
	NBOFF$	ARG
	NMBLK$	FNAM,FTYP,FVER,DVNM,UNIT
	OFID$	FDB,FACC,LUN,DSPT,DFNB,RACC,URBA,URBS,ERR
	OFID$A	FDB,LUN,DSPT,RACC,URBA,URBS,ERR
	OFID$M	FDB,LUN,DSPT,RACC,URBA,URBS,ERR
	OFID$R	FDB,LUN,DSPT,RACC,URBA,URBS,ERR
	OFID$U	FDB,LUN,DSPT,RACC,URBA,URBS,ERR
	OFID$W	FDB,LUN,DSPT,RACC,URBA,URBS,ERR
	OFNB$	FDB,FACC,LUN,DSPT,DFNB,RACC,URBA,URBS,ERR
	OFNB$A	FDB,LUN,DSPT,RACC,URBA,URBS,ERR
	OFNB$M	FDB,LUN,DSPT,RACC,URBA,URBS,ERR
	OFNB$R	FDB,LUN,DSPT,RACC,URBA,URBS,ERR
	OFNB$U	FDB,LUN,DSPT,RACC,URBA,URBS,ERR
	OFNB$W	FDB,LUN,DSPT,RACC,URBA,URBS,ERR
	OPEN$	FDB,FACC,LUN,DSPT,DFNB,RACC,URBA,URBS,ERR
	OPEN$A	FDB,LUN,DSPT,RACC,URBA,URBS,ERR
	OPEN$M	FDB,LUN,DSPT,RACC,URBA,URBS,ERR
	OPEN$R	FDB,LUN,DSPT,RACC,URBA,URBS,ERR
	OPEN$U	FDB,LUN,DSPT,RACC,URBA,URBS,ERR
	OPEN$W	FDB,LUN,DSPT,RACC,URBA,URBS,ERR
	OPNS$A	FDB,LUN,DSPT,RACC,URBA,URBS,ERR
	OPNS$M	FDB,LUN,DSPT,RACC,URBA,URBS,ERR
	OPNS$R	FDB,LUN,DSPT,RACC,URBA,URBS,ERR
	OPNS$U	FDB,LUN,DSPT,RACC,URBA,URBS,ERR
	OPNS$W	FDB,LUN,DSPT,RACC,URBA,URBS,ERR
	OPNT$D	FDB,LUN,DSPT,RACC,URBA,URBS,ERR
	OPNT$W	FDB,LUN,DSPT,RACC,URBA,URBS,ERR
	PRINT$	FDB,ERR,,DEV,UNIT,PRI,FORMS,COPIES,PRESRV
	PUT$	FDB,NRBA,NRBS,ERR
	PUT$R	FDB,NRBA,NRBS,LRCNM,HRCNM,ERR
	PUT$S	FDB,NRBA,NRBS,ERR
	RAD50$	STRING,MAXWRD
	READ$	FDB,BKDA,BKDS,BKVB,BKEF,BKST,BKDN,ERR
	TRUNC$	FDB,ERR
	WAIT$	FDB,BKEF,BKST,ERR
	WRITE$	FDB,BKDA,BKDS,BKVB,BKEF,BKST,BKDN,ERR
2 BIGBUFFERS
Big buffering is a new  FCS  functionality  for  record  I/O
which reduces the number of disk accesses by allowing multi-
block input and output.  Normally, GET$s or PUT$s cause disk
operations  one sector at a time.  Use of big buffers allows
a specified number of sectors to be read  or  written  in  a
single  operation,  reducing the number of head seeks, which
is often a bottleneck on RSX-11 systems.

Using big buffers is simple.  You need to pick a  reasonable
buffer  size, alter the parameters for each occurance of two
macros in your program, and link to the proper library.


     1.  The buffer size you choose should be a multiple  of
         512.   bytes, the size of one disk block.  5 blocks
         is a good choice, because it is the default  amount
         allocated  by a file extend.  Disks tend to contain
         many 5 block chunks.  Larger amounts  may  increase
         performance,  but  note  that you are trading large
         amounts of memory for speed.

     2.  In your program, you must reserve  adequite  buffer
         space and make the buffer size known to the FDB.

         The FSRSZ$ macro allows you to  specify  the  total
         buffer  space  needed  by  entering a number as its
         second parameter.  This should be 512.   bytes  for
         each  normal disk file, plus the chosen buffer size
         for each big buffered file.  For example, assume  a
         program  with  3  files:   one  normal  (512.  byte
         buffer), one with 3 blocks as a big buffer, and one
         with  5 blocks as a big buffer.  This would reserve
         the space properly:
          
         	FSRSZ$	3,<<1+3+5>*512.>
          
         In the FDB of each file with a big buffer, you must
         specify  an override buffer size with the FDBF$A or
         FDBF$R macro.  For a file with 5 blocks  as  a  big
         buffer, this would be the assembly time macro call:
          
         	FDBF$A	<5*512.>
          

     3.  For RSX-11M the default SYSLIB does not contain support
	for big-buffering, but SYSGEN will, on request, build a
	version of ANSLIB which does.
