# 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