#	This is a shell archive.
#	Remove everything above and including the cut line.
#	Then run the rest of the file through sh.
#----cut here-----cut here-----cut here-----cut here----#
#!/bin/sh
# shar:	Shell Archiver
#	Run the following text with /bin/sh to create:
#	camacBuildRef.nr
#	camacCCC.nr
#	camacCCZ.nr
#	camacCLC.nr
#	camacDLAM.nr
#	camacDREG.nr
#	camacECD.nr
#	camacECI.nr
#	camacELM.nr
#	camacEsone.nr
#	camacEsoneInit.nr
#	camacFSA.nr
#	camacIn.nr
#	camacLNK.nr
#	camacLib.nr
#	camacLibInit.nr
#	camacOut.nr
#	camacProbe.nr
#	camacSSA.nr
#	camacTCD.nr
#	camacTCI.nr
#	camacTGL.nr
#	camacTLM.nr
#	camacTest.nr
# This archive created: Wed Dec  6 12:22:54 1989
sed 's/^X//' << \SHAR_EOF > camacBuildRef.nr
X.TH camacBuildRef 2 "" "VxWorks Reference Manual"
X.ad b
X.SH NAME
XcamacBuildRef - generate a camac reference
X.SH SYNOPSIS
X.CS
X.nf
XCAM_REF camacBuildRef (b, c, n, a, f, sz)
X    int b;   /* branch number */
X    int c;   /* crate number */
X    int n;   /* slot number */
X    int a;   /* sub-address */
X    int f;   /* function code */
X    int sz;  /* size code: ~0 -> short, 0 -> long */
X.fi
X.CE
X.SH DESCRIPTION
XGiven the geographical and local addressing parameters
Xfor a camac operation, this routine returns the local
Xcpu address for that operation.
X
XCrate #0 is permitted since the branch driver control and
Xstatus registers live in the space allocated to crate #0.
XSimilarly, slot numbers (n) 26 thru 31 are permitted because
Xcrate controller special functions respond to those addresses.
X
X.SH NOTES
XIn normal usage most references are built with both 'a' and 'f'
Xset to zero.  The user will 'or' in the desired codes when
Xmaking the actual function call.  The following example shows
Xthis usage.
X
X.CS
X.nf
X#define A2   (2 << CAM_A_SHIFT)
X#define A0   (0)
X#define F16   (16 << CAM_F_SHIFT)
X#define F2    (2 << CAM_F_SHIFT)
X
X     /* ioModule = branch 0, crate 2, slot 14 *
X     ioModule = camacBuildRef (0,2,14,0,0,CAM_LONG);
X
X     camacIn (ioModule|A2|F2, &newData, NULL);
X     camacOut (ioModule|A0|F16, newCommand, NULL);
X.fi
X.CE
X.SH SEE ALSO
XcamacLib(1)
SHAR_EOF
sed 's/^X//' << \SHAR_EOF > camacCCC.nr
X.TH camacCCC 2 "" "VxWorks Reference Manual"
X.ad b
X.SH NAME
XcamacCCC - generate a dataway clear cycle (CCCC)
X.SH SYNOPSIS
X.CS
X.nf
XSTATUS  camacCCC (camRef)
X    CAM_REF camRef;   /* any valid reference within crate */
X.fi
X.CE
X.SH DESCRIPTION
XCauses a dataway clear cycle to be generated by the crate controller.
XThe camRef argument may be any valid register reference within
Xthe crate.  Slot number and sub-address are masked off by the
Xroutine.
X
XType A-1 and A-2 parallel highway crate controllers respond
Xto N28A8F26 by generating a dataway clear cycle.
X
X.SH RETURNS
XReturns the status code from the underlying camacTest operation.
XSee camacTest.
X.SH SEE ALSO
XcamacEsone(1)
SHAR_EOF
sed 's/^X//' << \SHAR_EOF > camacCCZ.nr
X.TH camacCCZ 2 "" "VxWorks Reference Manual"
X.ad b
X.SH NAME
XcamacCCZ - generate a dataway initialize cycle (CCCZ)
X.SH SYNOPSIS
X.CS
X.nf
XSTATUS  camacCCZ (camRef)
X    CAM_REF camRef; /* any valid reference within crate */
X.fi
X.CE
X.SH DESCRIPTION
XCauses a dataway initialize (Z) cycle to be generated by the crate controller.
XThe camRef argument may be any valid register reference within
Xthe crate.  Slot number and sub-address are masked off by the
Xroutine.
X
XType A-1 and A-2 parallel highway crate controllers respond
Xto N28A9F26 by generating a dataway initialize cycle.
X
X.SH RETURNS
XReturns the status code from the underlying camacTest operation.
XSee camacTest.
X.SH SEE ALSO
XcamacEsone(1)
SHAR_EOF
sed 's/^X//' << \SHAR_EOF > camacCLC.nr
X.TH camacCLC 2 "" "VxWorks Reference Manual"
X.ad b
X.SH NAME
XcamacCLC - clear lam condition (CCLC)
X.SH SYNOPSIS
X.CS
X.nf
XSTATUS  camacCLC (pLam)
X    CAM_LAM     pLam;
X.fi
X.CE
X.SH DESCRIPTION
XClears a lam condition if possible.  Sub-address lams are cleared
Xusing F10.  Bit-address lams are cleared by selectively clearing
Xthe proper bit of register A12 (F23A12).
X
X.SH RETURNS
XThe status code of the underlying action cycle is returned as
Xthe result of this function.  See camacOut and camacTest.
X.SH SEE ALSO
XcamacEsone(1)
SHAR_EOF
sed 's/^X//' << \SHAR_EOF > camacDLAM.nr
X.TH camacDLAM 2 "" "VxWorks Reference Manual"
X.ad b
X.SH NAME
XcamacDLAM - define a camac lam (look-at-me)
X.SH SYNOPSIS
X.CS
X.nf
XCAM_LAM camacDLAM (b, c, n, m, inta)
X    int b;      /* branch number (0-7) */
X    int c;      /* crate number (1-7) */
X    int n;      /* slot number (1-23) */
X    int m;      /* module lam code */
X    int inta[]; /* graded lam number and optional sempahore */
X.fi
X.CE
X.SH DESCRIPTION
XCreates a camac lam data structure.  The user only receives a pointer
Xto the structure.  If the lam has been previously defined, the
Xnew definition overwrites the old definition.
X
XThe module lam code argument identifies the lam as either a sub-address lam
Xor as a bit-address lam.  Sub-address lam codes are in the range from
Xzero to 15.  Bit-address lam codes are in the range -1 to -24.
X
XA sub-address lam is manipulated using F codes F8, F10, F24 and F26
Xat the sub-address referenced.  A bit-address lam is controlled
Xby bit positions of the group 2 registers at sub addresses A12, A13
Xand A14. (A12 is the lam source, A13 the mask register, and A14 is
Xthe masked lam sources).
X
XLike the FORTRAN version, argument inta[] exists to pass implementation
Xspecific data to the module.  In this implementation, inta[0] represents
Xthe graded lam number.  A graded lam value of zero signifies that
Xthe graded lam number is identical to the module slot number 'n'.
XInta[1] is the address of an optional semaphore.  If non-NULL, the
Xsemaphore will be signalled with a semGive with each lam occurrence.
X
X.SH RETURNS
XReturns a CAM_LAM item (pointer) if successful, returns NULL upon error.
X.SH SEE ALSO
XcamacEsone(1)
SHAR_EOF
sed 's/^X//' << \SHAR_EOF > camacDREG.nr
X.TH camacDREG 2 "" "VxWorks Reference Manual"
X.ad b
X.SH NAME
XcamacDREG - define a camac register (CDREG)
X.SH SYNOPSIS
X.CS
X.nf
XCAM_REF camacDREG (b, c, n, a)
X    int b; /* branch */
X    int c; /* crate */
X    int n; /* slot */
X    int a; /* sub-address */
X.fi
X.CE
X.SH DESCRIPTION
XThis routine creates an ESONE standard register reference
Xand returns it to the caller.  The register reference
Xincludes branch number, crate number, slot number, and module
Xsub-address. It does not include function code or size
Xinformation.
X
X.SH RETURNS
XThe ESONE standard reference is returned in the form of a CAM_REF.
X(See camacBuildRef).  NULL is returned for invalid arguments.
X
X.SH SEE ALSO
XcamacEsone(1),
XcamacBuildRef
SHAR_EOF
sed 's/^X//' << \SHAR_EOF > camacECD.nr
X.TH camacECD 2 "" "VxWorks Reference Manual"
X.ad b
X.SH NAME
XcamacECD - enable/disable crate controller demands (CCCD)
X.SH SYNOPSIS
X.CS
X.nf
XSTATUS  camacECD (camRef, flag)
X    CAM_REF camRef; /* any reference within the crate */
X    BOOL    flag;   /* enable/disable flag */
X.fi
X.CE
X.SH DESCRIPTION
XEnable/disable the crate controller's ability to generate
Xa branch demand (graded lam).
XType-A controller access at N30A10F26 will enable demands.
XAccess at N30A10F24 will disable demand generation.
X
X.SH RETURNS
XReturns the camac cycle success/fail code.
XSee camacTest.
X.SH SEE ALSO
XcamacEsone(1)
SHAR_EOF
sed 's/^X//' << \SHAR_EOF > camacECI.nr
X.TH camacECI 2 "" "VxWorks Reference Manual"
X.ad b
X.SH NAME
XcamacECI - assert/release crate controller inhibit (CCCI)
X.SH SYNOPSIS
X.CS
X.nf
XSTATUS  camacECI (camRef, flag)
X    CAM_REF camRef; /* any valid crate address */
X    BOOL    flag;   /* enable/disable code */
X.fi
X.CE
X.SH DESCRIPTION
XControls the crate controller's output to the dataway inhibit line.
X
XThe dataway inhibit line is a wire-or'd open-collector line
Xcommon to all slot positions.  Any module can drive the line
Xactive by pulling down on it (low true).  At dataway
Xinitialize time, regular modules must release the line, but
Xthe crate controller will assert it.
X
XThe camacECI function controls only the crate controller's
Xassertion of the inhibit line.  All modules within the crate
Xmust release the inhibit line for the line to go inactive (high).
X
XType A-1 and A-2 crate controllers respond to N30A9F24 by
Xasserting the inhibit line.  An N30A9F26 command will cause
Xthem to release the inhibit line.
X
X.SH RETURNS
XThe return code indicates success/failure of the actual camac cycle.
XSee camacTest.
X.SH SEE ALSO
XcamacEsone(1)
SHAR_EOF
sed 's/^X//' << \SHAR_EOF > camacELM.nr
X.TH camacELM 2 "" "VxWorks Reference Manual"
X.ad b
X.SH NAME
XcamacELM - enable/disable a lam (CCLM)
X.SH SYNOPSIS
X.CS
X.nf
XSTATUS  camacELM (pLam, flag)
X    CAM_LAM pLam; /* lam pointer */
X    BOOL    flag; /* enable/disable flag */
X.fi
X.CE
X.SH DESCRIPTION
XEnable or disable lam.
XSub-address lams are enabled with F26 and disabled with F24.
X
XBit-address lams are enabled by setting the bit in the enable
Xregister A13 (F19A13).
XThey are disabled by selectively clearing the bit (F23A13).
X
X.SH RETURNS
XThe return code is that of the underlying camac cycle.
XSee camacTest and camacOut.
X.SH SEE ALSO
XcamacEsone(1)
SHAR_EOF
sed 's/^X//' << \SHAR_EOF > camacEsone.nr
X.TH camacEsone 1 "" "VxWorks Reference Manual"
X.ad b
X.SH NAME
XcamacEsone.c  - ESONE library of CAMAC functions 
X.SH SYNOPSIS
X.nf
XcamacEsoneInit - initialize all branch controllers
XcamacDREG - define a camac register (CDREG)
XcamacSSA - camac short single action (CSSA)
XcamacFSA - camac full (24 bit) single action (CFSA)
XcamacCCC - generate a dataway clear cycle (CCCC)
XcamacCCZ - generate a dataway initialize cycle (CCCZ)
XcamacECI - assert/release crate controller inhibit (CCCI)
XcamacTCI - test crate inhibit line (CTCI)
XcamacECD - enable/disable crate controller demands (CCCD)
XcamacTCD - test crate controller demand enable (CTCD)
XcamacTGL - test crate graded lam status (CTGL)
XcamacDLAM - define a camac lam (look-at-me)
XcamacLNK - link a function to a lam (CLNK)
XcamacTLM - test lam status (CTLM)
XcamacCLC - clear lam condition (CCLC)
XcamacELM - enable/disable a lam (CCLM)
X
XVOID camacEsoneInit ()
XCAM_REF camacDREG (b, c, n, a)
XSTATUS  camacSSA (f, reg, pShort, pStatus)
XSTATUS  camacFSA (f, reg, pLong, pStatus)
XSTATUS  camacCCC (camRef)
XSTATUS  camacCCZ (camRef)
XSTATUS  camacECI (camRef, flag)
XBOOL    camacTCI (camRef)
XSTATUS  camacECD (camRef, flag)
XBOOL    camacTCD (camRef)
XBOOL    camacTGL (camRef)
XCAM_LAM camacDLAM (b, c, n, m, inta)
XSTATUS  camacLNK (pLam, proc, arg)
XBOOL    camacTLM (pLam)
XSTATUS  camacCLC (pLam)
XSTATUS  camacELM (pLam, flag)
X.fi
X.SH DESCRIPTION
XThis module provides the functionality of the ESONE "Subroutines
XFor Camac" DOE/EV-0016.  Block transfer and scan functions are
Xnot yet implemented.  The calling sequences have been modified
Xas little as possible to be consistent with a C language
Xinterface.  The original specification is for a FORTRAN interface.
X
XThe ESONE standard function names have all been prepended with
Xthe module name camac, dropping the initial C character.
XIn the case of functions that take a boolean flag to enable or
Xdisable some function, the second character of C has been
Xchanged to E to more clearly define the function.
Xe.g. Function CCLM becomes camacELM (camac enable lam).
X
XThe initialization routine camacEsoneInit must be called prior
Xto using any other functions within this module.
X
X.SH PROBLEMS
X1) Taking a crate off-line for some work and then returning it to the system
Xcauses many problems.
XThe current solution is to do a branch initialize
Xwhich disables lams throughout the branch.
XPerhaps lam enabled status should be kept in the lam structure
Xso that we could scan through the list and re-activate lams that
Xwere previously enabled.
X
X2) Block transfer and scan functions are not yet implemented.
SHAR_EOF
sed 's/^X//' << \SHAR_EOF > camacEsoneInit.nr
X.TH camacEsoneInit 2 "" "VxWorks Reference Manual"
X.ad b
X.SH NAME
XcamacEsoneInit - initialize all branch controllers
X.SH SYNOPSIS
X.CS
X.nf
XVOID camacEsoneInit ()
X.fi
X.CE
X.SH DESCRIPTION
XThis function must be called prior to any use of the esone
Xstandard routines.  This will initialize the interrupt controllers
Xon the driver boards and will allow generation of lam interrupts.
X.SH SEE ALSO
XcamacEsone(1)
SHAR_EOF
sed 's/^X//' << \SHAR_EOF > camacFSA.nr
X.TH camacFSA 2 "" "VxWorks Reference Manual"
X.ad b
X.SH NAME
XcamacFSA - camac full (24 bit) single action (CFSA)
X.SH SYNOPSIS
X.CS
X.nf
XSTATUS  camacFSA (f, reg, pLong, pStatus)
X    int      f;         /* function code */
X    CAM_REF  reg;       /* register reference */
X    long     *pLong;    /* data pointer */
X    CAM_STAT *pStatus;  /* pointer to status result */
X.fi
X.CE
X.SH DESCRIPTION
XExecute a full (24-bit) single action to/from a camac register.
X
XThe transaction status is stored at the location given by
XpStatus. If pStatus is zero or NULL, then the
Xcamac status word is discarded.
X
X.SH RETURNS
XReturns ERROR if the camac cycle fails (no-X and no-Q).
X.SH SEE ALSO
XcamacEsone(1)
SHAR_EOF
sed 's/^X//' << \SHAR_EOF > camacIn.nr
X.TH camacIn 2 "" "VxWorks Reference Manual"
X.ad b
X.SH NAME
XcamacIn - perform a camac input function
X.SH SYNOPSIS
X.CS
X.nf
XSTATUS  camacIn (camRef, pData, pStatus)
X    CAM_REF  camRef;   /* camac operation reference */
X    char     *pData;   /* data pointer, camRef determines size */
X    CAM_STAT *pStatus; /* status result pointer */
X.fi
X.CE
X.SH DESCRIPTION
XPerform a read data operation on a camac register (function
Xcodes 0 through 7).
X
XIf the camac operation reference was defined as being 'long'
Xthen the data pointer must point to a long integer location.
XIf it was defined as short, then it must point to
Xa short integer location.
X
XThe transaction status is stored at the location given by
XpStatus. If pStatus is zero or NULL, then the
Xcamac status word is discarded.
X
X.SH WARNING
XThe camac driver microcode can be confused by attempting
Xa read cycle with a camac reference that does not represent
Xa valid read function code, 0 through 7.
X
X.SH RETURNS
XReturns ERROR if the camac cycle fails (no-X and no-Q).
X.SH SEE ALSO
XcamacLib(1)
SHAR_EOF
sed 's/^X//' << \SHAR_EOF > camacLNK.nr
X.TH camacLNK 2 "" "VxWorks Reference Manual"
X.ad b
X.SH NAME
XcamacLNK - link a function to a lam (CLNK)
X.SH SYNOPSIS
X.CS
X.nf
XSTATUS  camacLNK (pLam, proc, arg)
X    CAM_LAM pLam;       /* lam pointer */
X    BOOL    (*proc)();  /* procedure pointer*/
X    long    arg;        /* procedure argument */
X.fi
X.CE
X.SH DESCRIPTION
XThis routine associates a C-callable function with a lam signal
X(interrupt).
X
XWhen enabled and active a lam (as defined by camacDLAM) generates
Xan interrupt.  The camacLNK routine will connect the user
Xspecified function with the processing of that interrupt.
X
XThe function will be invoked, in interrupt context, with
Xtwo arguments.  The first argument is 'arg', the procedure
Xargument specified in the camacLNK function.  The CAM_LAM
Xdata structure pointer is the second argument.
X
XThe  user procedure must return a boolean result indicating that
Xthe lam has been properly serviced (TRUE).  A FALSE return
Xvalue indicates that the lam was not serviced and is still active.
XUnder that situation the system code will attempt to disable the
Xlam from generating further interrupts.
X
X.CS
X     BOOL function (arg, pLam)
X         int arg;
X         CAM_LAM pLam;
X
X     Returns TRUE if lam was properly serviced, FALSE otherwise.
X.CE
X
X.SH NOTES
XBe aware that the user procedure is executed in interrupt context.  All
Xof the warnings about restricted system calls apply.
X
X.SH RETURNS
XThe camacLNK function normally returns OK.
XERROR is returned for invalid arguments.
X.SH SEE ALSO
XcamacEsone(1)
SHAR_EOF
sed 's/^X//' << \SHAR_EOF > camacLib.nr
X.TH camacLib 1 "" "VxWorks Reference Manual"
X.ad b
X.SH NAME
XcamacLib.c - camac Library 
X.SH SYNOPSIS
X.nf
XcamacLibInit - initialize the camac library
XcamacBuildRef - generate a camac reference
XcamacIn - perform a camac input function
XcamacOut - perform a camac output function
XcamacTest - perform a camac test function
XcamacProbe - test for presence of module
X
XSTATUS  camacLibInit ()
XCAM_REF camacBuildRef (b, c, n, a, f, sz)
XSTATUS  camacIn (camRef, pData, pStatus)
XSTATUS  camacOut (camRef, data, pStatus)
XSTATUS  camacTest (camRef, pStatus)
XSTATUS  camacProbe (camRef)
X.fi
X.SH DESCRIPTION
XThis module represents the basic simple interface to the CES-CBD 8210
Xcamac driver.  Only primitive access methods are implemented here.
XSee module camacEsone for formalized access routines.
X
X.SH CAMACLIBINIT
XThe camacLibInit () function must be called prior to any attempted
Xcamac accesses.  It is necessary to intercept the bus error exception
Xvector so that accesses to non-existant branches/crates don't crash
Xthe system.
X
X.SH ROM IMAGES
XBecause of self-modifying code for the bus error exception
Xintercept code, the intercept handling routine must be in RAM
Xat execution time.  The remaining parts of the text segment may
Xreside in and be executed from ROM.
X
X.SH CONTROLLER CONFUSION
XThe camac branch driver is based upon a bit-slice controller.  It
Xhas been known to get confused by illegal access attempts such
Xas trying to read a register using a write function code (F16).
XThe controller will straighten itself out usually after the next
Xvalid transaction.  Be careful when using the primitive routines
XcamacIn, camacOut, and camacTest.  The esone standard interface
Xis much safer.
SHAR_EOF
sed 's/^X//' << \SHAR_EOF > camacLibInit.nr
X.TH camacLibInit 2 "" "VxWorks Reference Manual"
X.ad b
X.SH NAME
XcamacLibInit - initialize the camac library
X.SH SYNOPSIS
X.CS
X.nf
XSTATUS  camacLibInit ()
X.fi
X.CE
X.SH DESCRIPTION
XInserts the bus_error intercept code into the the bus_error
Xvector.  This routine also converts the VME address of the
Xbranch #0 controller to the local cpu address space.  All
Xcamac references are made relative to that address.
X
X.SH WARNING
XThe vector intercept code uses a self modifying code sequence
Xto patch the jump instruction back to the original bus error
Xhandler.  There is no other way to get back to the original
Xinterrupt handler without using up either a data or address register.
XThe 68020 could use memory indirect addressing mode, but the code
Xwould then be incompatible with 68000 and 68010 processors.
X
X.SH BUGS
XThe externel interrupt levels 2 and 4 are never enabled.  The
XHeurikon HK-V2F cpu needs some special interrupt handling
Xroutines to enable these levels.  When they are available the
Xexternal interrupts can be enabled.
X.SH SEE ALSO
XcamacLib(1)
SHAR_EOF
sed 's/^X//' << \SHAR_EOF > camacOut.nr
X.TH camacOut 2 "" "VxWorks Reference Manual"
X.ad b
X.SH NAME
XcamacOut - perform a camac output function
X.SH SYNOPSIS
X.CS
X.nf
XSTATUS  camacOut (camRef, data, pStatus)
X    CAM_REF  camRef;   /* camac operation reference */
X    ULONG    data;     /* data to be written */
X    CAM_STAT *pStatus; /* status result pointer */
X.fi
X.CE
X.SH DESCRIPTION
XOutput data to a camac register (function codes 16 thru 23).
X
XThe transaction status is stored at the location given by
XpStatus. If pStatus is zero or NULL, then the
Xcamac status word is discarded.
X
X.SH WARNING
XThe camac driver microcode can be confused by attempting
Xa write cycle with a camac reference that does not represent
Xa valid write function code, 16 through 23.
X
X.SH RETURNS
XReturns ERROR if the camac cycle fails (no-X and no-Q).
X.SH SEE ALSO
XcamacLib(1)
SHAR_EOF
sed 's/^X//' << \SHAR_EOF > camacProbe.nr
X.TH camacProbe 2 "" "VxWorks Reference Manual"
X.ad b
X.SH NAME
XcamacProbe - test for presence of module
X.SH SYNOPSIS
X.CS
X.nf
XSTATUS  camacProbe (camRef)
X    CAM_REF camRef; /* camac address/operation code */
X.fi
X.CE
X.SH DESCRIPTION
XTries to determine if there is a module present at a
Xgiven camac address.  For write operations and test operations
Xthis is determined by the presence of either X or Q status
Xfollowing an access cycle.  For a read operation, a non-zero
Xdata response will also yield a present indication.
X
X.SH RETURNS
XReturns OK if branch, crate, and module are all present.
XReturns ERROR if absent or off-line.
X
X.SH WARNING
XThere is a possibility of a false absent indication for home-built
Xwrite-only modules that give neither X nor Q.  It is just not possible
Xto detect the presence/absence of such a poorly designed module.
X(You guessed it, NOAO has some of these).
X.SH SEE ALSO
XcamacLib(1)
SHAR_EOF
sed 's/^X//' << \SHAR_EOF > camacSSA.nr
X.TH camacSSA 2 "" "VxWorks Reference Manual"
X.ad b
X.SH NAME
XcamacSSA - camac short single action (CSSA)
X.SH SYNOPSIS
X.CS
X.nf
XSTATUS  camacSSA (f, reg, pShort, pStatus)
X    int      f;        /* function code, 0-31 */
X    CAM_REF  reg;      /* register reference */
X    short    *pShort;  /* data pointer */
X    CAM_STAT *pStatus; /* result status pointer */
X.fi
X.CE
X.SH DESCRIPTION
XExecute a short (16 bit) single action to a camac register.
X
XThe transaction status is stored at the location given by
XpStatus. If pStatus is zero or NULL, then the
Xcamac status word is discarded.
X
X.SH RETURNS
XReturns ERROR if the camac cycle fails (no-X and no-Q).
X.SH SEE ALSO
XcamacEsone(1)
SHAR_EOF
sed 's/^X//' << \SHAR_EOF > camacTCD.nr
X.TH camacTCD 2 "" "VxWorks Reference Manual"
X.ad b
X.SH NAME
XcamacTCD - test crate controller demand enable (CTCD)
X.SH SYNOPSIS
X.CS
X.nf
XBOOL    camacTCD (camRef)
X    CAM_REF camRef; /* any reference within the crate */
X.fi
X.CE
X.SH DESCRIPTION
XReturns the crate controller's demand enable status.
XDemand enable status is determined by accessing N30A10F27 through
Xthe type-A crate controller.  The controller will respond with Q
Xequal to the demand enable state.
X
X.SH RETURNS
XReturns TRUE if crate demands are enabled.
X.SH SEE ALSO
XcamacEsone(1)
SHAR_EOF
sed 's/^X//' << \SHAR_EOF > camacTCI.nr
X.TH camacTCI 2 "" "VxWorks Reference Manual"
X.ad b
X.SH NAME
XcamacTCI - test crate inhibit line (CTCI)
X.SH SYNOPSIS
X.CS
X.nf
XBOOL    camacTCI (camRef)
X    CAM_REF camRef; /* any reference into crate */
X.fi
X.CE
X.SH DESCRIPTION
XReturns the current status of the dataway inhibit line.
XInhibit status is determined by accessing N30A9F27 through
Xthe type-A crate controller.  The controller will respond with Q
Xequal to the current state of the inhibit line.
X
X.SH RETURNS
XReturns the state of the dataway inhibit line.
XFALSE is returned upon any error conditions.
X.SH SEE ALSO
XcamacEsone(1)
SHAR_EOF
sed 's/^X//' << \SHAR_EOF > camacTGL.nr
X.TH camacTGL 2 "" "VxWorks Reference Manual"
X.ad b
X.SH NAME
XcamacTGL - test crate graded lam status (CTGL)
X.SH SYNOPSIS
X.CS
X.nf
XBOOL    camacTGL (camRef)
X    CAM_REF camRef; /* any reference into the crate */
X.fi
X.CE
X.SH DESCRIPTION
XReturns TRUE if the crate controller is receiving a graded lam
Xsignal from any module within the crate.
XThis is determined by accessing N30A11F27 through
Xthe type-A crate controller.  The controller will respond with Q
Xequal to the graded lam signal state.
X
XThe returned status does not depend upon crate demand enable.
X
X.SH RETURNS
XReturns TRUE if a graded lam is present within the crate.
X.SH SEE ALSO
XcamacEsone(1)
SHAR_EOF
sed 's/^X//' << \SHAR_EOF > camacTLM.nr
X.TH camacTLM 2 "" "VxWorks Reference Manual"
X.ad b
X.SH NAME
XcamacTLM - test lam status (CTLM)
X.SH SYNOPSIS
X.CS
X.nf
XBOOL    camacTLM (pLam)
X    CAM_LAM     pLam;
X.fi
X.CE
X.SH DESCRIPTION
XTest if a lam is active and enabled.
X
XSub address lams are tested using F8 at the correct sub-address.
XBit-address lams are tested by examining the proper bit
Xof register A14 (F1A14).
X
X.SH RETURNS
XReturns TRUE if the lam is active and enabled.
X.SH SEE ALSO
XcamacEsone(1)
SHAR_EOF
sed 's/^X//' << \SHAR_EOF > camacTest.nr
X.TH camacTest 2 "" "VxWorks Reference Manual"
X.ad b
X.SH NAME
XcamacTest - perform a camac test function
X.SH SYNOPSIS
X.CS
X.nf
XSTATUS  camacTest (camRef, pStatus)
X    CAM_REF  camRef;   /* camac operation reference */
X    CAM_STAT *pStatus; /* result status pointer */
X.fi
X.CE
X.SH DESCRIPTION
XPerform a non-data camac test function (function codes 8 thru 15
Xand 24 thru 31).
X
XThe transaction status is stored at the location given by pStatus.
XIf pStatus is zero or NULL, the status word is discarded.
X
X.SH NOTE
XThe return code is the success/error code for the
Xcamac cycle itself, not just the Q bit response.
XYou must use the status result pointer to obtain
Xthe status word if you want to examine just the Q bit.
X
X.SH WARNING
XThe camac driver microcode can be confused by attempting
Xa test cycle with a camac reference that does not represent
Xa valid test function code, 8 through 15 and 24 through 31.
X
X.SH RETURNS
XReturns ERROR if the camac cycle does not return X or Q status.
X.SH SEE ALSO
XcamacLib(1)
SHAR_EOF
#	End of shell archive
exit 0
