CAM$BLIB                        BASIC CAMAC ACCESS PROCEDURE MODULE       6-JAN-1983 11:05:41  VAX-11 Macro V03-00         Page   0
Table of contents

    (1)        6        CAMAC ACCESS LIBRARY HEADER
    (1)       96        SYSTEM AND CAMAC DEFS
    (1)      113        CAMAC PROCEDURE VECTOR SECTION
    (1)      148        CAM$CSTATE, SET CAMAC IMAGE BLOCK DATA
    (1)      302        CAM$ASSIGN, CAMAC KEY ASSIGNMENT PROCEDU
    (1)      386        CAM$DASSGN, CAMAC KEY DEASSIGNMENT PROCE
    (1)      454        CAM$PIO(W), CAMAC PROGRAMMED I/O(SINGLE-
    (1)      663        CAM$QSCAN(W), CAMAC Q-SCAN/STOP ON WORD 
    (1)      881        CAM$QSTOP(W), CAMAC Q-STOP/STOP ON WORD 
    (1)     1096        CAM$STOP(W), CAMAC STOP ON WORD COUNT PR
    (1)     1310        CAM$QREP(W), CAMAC Q-REPEAT PROCEDURE
    (1)     1532        CAM_BLDRTB, BUILD CAMAC REGISTER TEMPLAT
CAM$BLIB                        BASIC CAMAC ACCESS PROCEDURE MODULE       6-JAN-1983 11:05:41  VAX-11 Macro V03-00         Page   1
V03-001                                                                   5-JAN-1983 17:16:44  SYS$SYSROOT:[CAMAC.SOURCE.KS30202](1)

                                     0000     1 	.TITLE	CAM$BLIB BASIC CAMAC ACCESS PROCEDURE MODULE
                                     0000     2 	.IDENT	'V03-001'
                                     0000     3 
                                     0000     4 	.LIBRARY	/SYS$LIBRARY:LIB/		; SYSTEM MACRO LIBRARY
                                     0000     5 	.LIBRARY	/CAMDEF/			; CAMAC MACRO LIBRARY
                                     0000     6 	.SBTTL	CAMAC ACCESS LIBRARY HEADER
                                     0000     7 
                                     0000     8 ;************************************************************************
                                     0000     9 ;
                                     0000    10 ;	CAMAC ACCESS PROCEDURE LIBRARY FOR THE VAX-11/780
                                     0000    11 ;	CAMAC SYSTEM
                                     0000    12 ;
                                     0000    13 ;***************************************************************
                                     0000    14 
                                     0000    15 ;+++
                                     0000    16 ;
                                     0000    17 ; FACILITY
                                     0000    18 ;	OAK RIDGE NATIONAL LABORATORY
                                     0000    19 ;	FUSION ENERGY DIVISION
                                     0000    20 ;	TOKAMAK SECTION
                                     0000    21 ;
                                     0000    22 ; ABSTRACT
                                     0000    23 ;
                                     0000    24 ;	This library contains a collection of procedures
                                     0000    25 ;	designed to support access to the VAX CAMAC system
                                     0000    26 ;	developed for the ORNL Fusion Energy Division VAX-11/780
                                     0000    27 ;	computer system(s). These procedures are designed to 
                                     0000    28 ;	conform to VAX linkage conventions and as such should
                                     0000    29 ;	be callable from any VAX supported high-level language.
                                     0000    30 ;	Specifically, this library contains the following procedures:
                                     0000    31 ;
                                     0000    32 ;	CAM$CSTATE
                                     0000    33 ;	-Alter default CAMAC system states for the
                                     0000    34 ;	 on an image by image basis,
                                     0000    35 ;	CAM$ASSIGN
                                     0000    36 ;	-Assign a key value to a specific CAMAC module,
                                     0000    37 ;	CAM$DASSGN
                                     0000    38 ;	-Release a CAMAC module key assignment,
                                     0000    39 ;	CAM$PIO(W)
                                     0000    40 ;	-Perform a single-action CAMAC request(programmed I/O),
                                     0000    41 ;	CAM$QSCAN(W)
                                     0000    42 ;	-Perform a CAMAC Q-Scan mode transaction,
                                     0000    43 ;	CAM$QSTOP(W)
                                     0000    44 ;	-Perform a CAMAC Q-Stop mode transaction,
                                     0000    45 ;	CAM$STOP(W)
                                     0000    46 ;	-Perform a CAMAC Stop mode transaction,
                                     0000    47 ;	CAM$QREP(W)
                                     0000    48 ;	-Perform a CAMAC Q-Repeat mode transaction.
                                     0000    49 ;
                                     0000    50 ;
                                     0000    51 ;	A brief synopsis of each access procedure is included
                                     0000    52 ;	in the preamble for that procedure.
                                     0000    53 ;
                                     0000    54 ; AUTHOR
                                     0000    55 ;	E. T. Blair
                                     0000    56 ;
                                     0000    57 ; REVISION HISTORY
CAM$BLIB                        BASIC CAMAC ACCESS PROCEDURE MODULE       6-JAN-1983 11:05:41  VAX-11 Macro V03-00         Page   2
V03-001                         CAMAC ACCESS LIBRARY HEADER               5-JAN-1983 17:16:44  SYS$SYSROOT:[CAMAC.SOURCE.KS30202](1)

                                     0000    58 ;	V02-000, E.T. Blair,12-AUG-1982
                                     0000    59 ;	Modified CAMAC access procedures performing QIO(W) system services
                                     0000    60 ;	to provide analogous entry points,i.e. CAM$XXX and CAM$XXXW calls
                                     0000    61 ;	with consistent argument lists for both calls. In V01 the determination
                                     0000    62 ;	as to whether a call was wait/proceed mode was based on the argument
                                     0000    63 ;	list parameters specified, however, this approach posed some problems
                                     0000    64 ;	when attempting to perform CAMAC calls from PASCAL.
                                     0000    65 ;
                                     0000    66 ;	V02-001,E.T. Blair,12-AUG-1982
                                     0000    67 ;	Made changes to documentation in several procedure preambles
                                     0000    68 ;	to correct errors and clarify intent. Also, changed argument
                                     0000    69 ;	format for CAM$CSTATE(arguments XSTATE and QSTATE) from
                                     0000    70 ;	bytes to words to accomodate use of existing mask definitions
                                     0000    71 ;	in the CAMAC macro library.
                                     0000    72 ;
                                     0000    73 ;
                                     0000    74 ;	V02-002,E.T. Blair,25-AUG-1982
                                     0000    75 ;	Made change to CAM$CSTATE to force update of the process information
                                     0000    76 ;	maintained in the CIB for each call to CAM$CSTATE. This provides a
                                     0000    77 ;	simple means of updating this information if the process happens to
                                     0000    78 ;	change some privilege, etc. without creating a separate access call
                                     0000    79 ;	to perform the update.
                                     0000    80 ;
                                     0000    81 ;	V02-003, E.T. Blair,8-SEP-1982
                                     0000    82 ;	Incorporated changes to optimize the access procedures. An internal
                                     0000    83 ;	routine was added to generate the CAMAC RTB. Also, modifications to
                                     0000    84 ;	support the parallel highway were added.
                                     0000    85 ;
                                     0000    86 ;	V03-000, E.T. Blair,10-NOV-1982
                                     0000    87 ;	Incorporated CAMAC procedure to support Q-Repeat mode for the KS 2053
                                     0000    88 ;	CAMAC interface.
                                     0000    89 ;
                                     0000    90 ;	V03-001, E.T. Blair,5-JAN-1983
                                     0000    91 ;	Added .LIBRARY directives for MACRO libraries required to assemble
                                     0000    92 ;	this module. Also, changed CAMAC data structure MACROs for
                                     0000    93 ;	$CAMIODEF, $SHREGS and $PHREGS. New equivalent structures are
                                     0000    94 ;	$KSIODEF and $KSREGS.
                                     0000    95 ;---
                                     0000    96 	.SBTTL	SYSTEM AND CAMAC DEFS
                                     0000    97 
                                     0000    98 	$DSCDEF					; DESCRIPTOR STRUC/CODES
                                     0000    99 	$JPIDEF					; JOB/PROCESS INFORMATION CODES
                                     0000   100 	$PRVDEF					; PROCESS PRIVILEGES
                                     0000   101 	$SSDEF					; SYSTEM STATUS DEFINITIONS
                                     0000   102 	$KSIODEF				; CAMAC I/O FUNCTION CODES
                                     0000   103 	$KSREGS					; KS 2051 REGISTER DEFS
                                     0000   104 	$RTBDEF					; REGISTER TEMPLATE BLOCK STRUC
                                     0000   105 	$IOSBDEF				; CAMAC I/O STATUS BLOCK STRUC
                                     0000   106 	$LSTDEF					; KS 2050 LIST MODE DEFS
                                     0000   107 	$CIBDEF					; CAMAC IMAGE BLOCK STRUC
                                     0000   108 	$CRPDEF					; CAMAC REQUEST PACKET STRUC
                                     0000   109 	$LISDEF					; EXECUTE LIST HEADER STRUC
                                     0000   110 	$CMAPDEF				; CRATE/CHANNEL MAP DEF
                                     0000   111 	$KEYDEF					; CAMAC MODULE KEY STRUC
CAM$BLIB                        BASIC CAMAC ACCESS PROCEDURE MODULE       6-JAN-1983 11:05:41  VAX-11 Macro V03-00         Page   3
V03-001                         CAMAC PROCEDURE VECTOR SECTION            5-JAN-1983 17:16:44  SYS$SYSROOT:[CAMAC.SOURCE.KS30202](1)

                                     0000   113 	.SBTTL	CAMAC PROCEDURE VECTOR SECTION
                                     0000   114 
                                 00000000   115 	.PSECT	CAM$VEC,PIC,SHR,NOWRT,EXE
                                     0000   116 
                                     0000   117 ;++
                                     0000   118 ; CAMAC PROCEDURE TRANSFER VECTOR PROGRAM SECTION
                                     0000   119 ;
                                     0000   120 ;--
                                     0000   121 
                                     0000   122 	PROCVEC	CAM$CSTATE				; CAMAC IMAGE CONTROL PROCEDURE
                                     0008   123 
                                     0008   124 	PROCVEC	CAM$ASSIGN			; MODULE KEY ASSIGNMENT
                                     0010   125 
                                     0010   126 	PROCVEC	CAM$DASSGN			; RELEASE MODULE KEY ASSIGNMENT
                                     0018   127 
                                     0018   128 	PROCVEC	CAM$PIOW			; PROGRAMMED I/O(WAIT)
                                     0020   129 
                                     0020   130 	PROCVEC	CAM$PIO				; PROGRAMMED I/O REQUEST
                                     0028   131 
                                     0028   132 	PROCVEC	CAM$QSCANW			; Q-SCAN/STOP ON WORD COUNT(WAIT)
                                     0030   133 
                                     0030   134 	PROCVEC	CAM$QSCAN			; Q-SCAN/STOP ON WORD COUNT
                                     0038   135 
                                     0038   136 	PROCVEC	CAM$QSTOPW			; Q-STOP/STOP ON WORD COUNT(WAIT)
                                     0040   137 
                                     0040   138 	PROCVEC	CAM$QSTOP			; Q-STOP/STOP ON WORD COUNT
                                     0048   139 
                                     0048   140 	PROCVEC	CAM$STOPW			; STOP ON WORD COUNT(WAIT)
                                     0050   141 
                                     0050   142 	PROCVEC	CAM$STOP			; STOP ON WORD COUNT
                                     0058   143 
                                     0058   144 	PROCVEC	CAM$QREPW			; Q-REPEAT/STOP ON WORD COUNT(WAIT)
                                     0060   145 
                                     0060   146 	PROCVEC	CAM$QREP			; Q-REPEAT/STOP ON WORD COUNT
CAM$BLIB                        BASIC CAMAC ACCESS PROCEDURE MODULE       6-JAN-1983 11:05:41  VAX-11 Macro V03-00         Page   4
V03-001                         CAM$CSTATE, SET CAMAC IMAGE BLOCK DATA    5-JAN-1983 17:16:44  SYS$SYSROOT:[CAMAC.SOURCE.KS30202](1)

                                     0068   148 	.SBTTL	CAM$CSTATE, SET CAMAC IMAGE BLOCK DATA
                                     0068   149 	.ENABL	LSB
                                 00000000   150 	.PSECT	CAM$CODE,PIC,SHR,NOWRT
                                     0000   151 
                                     0000   152 ;+++
                                     0000   153 ;
                                     0000   154 ;	Procedure:
                                     0000   155 ;	CAM$CSTATE(EFN[,XSTATE][,QSTATE][,MEM])
                                     0000   156 ;
                                     0000   157 ;	Description:
                                     0000   158 ;	This procedure provides a means to define the default
                                     0000   159 ;	values for the parameters specified in the procedure
                                     0000   160 ;	argument list. A description of each parameter, it's
                                     0000   161 ;	function and permissible values is given below:
                                     0000   162 ;
                                     0000   163 ;	Parameter: EFN
                                     0000   164 ;
                                     0000   165 ;	Function:
                                     0000   166 ;	Allows the user to define the default process local event flag to be
                                     0000   167 ;	utilized by the CAMAC access procedures for synchronizing I/O 
                                     0000   168 ;	completion on all non-proceed I/O calls(i.e. any call to a CAMAC access
                                     0000   169 ;	procedure that does not include the optional 'proceed I/O' parameters).
                                     0000   170 ;	This value initially defaults to local event flag 0.
                                     0000   171 ;
                                     0000   172 ;	Value:
                                     0000   173 ;	Any legal process local event flag number.
                                     0000   174 ;
                                     0000   175 ;	Parameter: XSTATE
                                     0000   176 ;
                                     0000   177 ;	Function:
                                     0000   178 ;	Allows the user to influence the logic equation used by the
                                     0000   179 ;	CAMAC branch driver in the determination of 'ERROR'/'NORMAL'
                                     0000   180 ;	termination of a programmed I/O(PIO) or a list PIO operation.
                                     0000   181 ;	This value initially defaults to 'CAM$_XI'.
                                     0000   182 ;
                                     0000   183 ;	Values:
                                     0000   184 ;	CAM$XI-Ignores CAMAC X response in the determination of
                                     0000   185 ;		ERROR status from the CAMAC branch driver.
                                     0000   186 ;	CAM$_XE-Opposite of CAM$_XI.
                                     0000   187 ;
                                     0000   188 ;	Parameter: QSTATE
                                     0000   189 ;
                                     0000   190 ;	Function:
                                     0000   191 ;	Allows the user to influence the logic equation used by the
                                     0000   192 ;	CAMAC branch driver in the determination of 'ERROR'/
                                     0000   193 ;	'NORMAL' termination of a programmed I/O(PIO) or a list
                                     0000   194 ;	PIO operation. This value initially defaults to 'CAM$_QDC'.
                                     0000   195 ;
                                     0000   196 ;	Values:
                                     0000   197 ;	CAM$_QDC-Ignores CAMAC Q response in the determination of
                                     0000   198 ;		ERROR status from the CAMAC interface.
                                     0000   199 ;	CAM$_QNE-CAMAC Q response not expected. If received, the CAMAC
                                     0000   200 ;		interface terminates with ERROR status on PIO and list PIO
                                     0000   201 ;		operations.
                                     0000   202 ;	CAM$_QE-CAMAC Q response expected. If not received, the CAMAC
                                     0000   203 ;		interface terminates with ERROR status on PIO and list PIO
                                     0000   204 ;		operations.
CAM$BLIB                        BASIC CAMAC ACCESS PROCEDURE MODULE       6-JAN-1983 11:05:41  VAX-11 Macro V03-00         Page   5
V03-001                         CAM$CSTATE, SET CAMAC IMAGE BLOCK DATA    5-JAN-1983 17:16:44  SYS$SYSROOT:[CAMAC.SOURCE.KS30202](1)

                                     0000   205 ;
                                     0000   206 ;	Parameter: MEM
                                     0000   207 ;
                                     0000   208 ;	Function:
                                     0000   209 ;	Allows the user to change the default memory format state for
                                     0000   210 ;	a given image. The memory format used determines whether 16 or
                                     0000   211 ;	24 bit CAMAC data transfer operations are performed. This value 
                                     0000   212 ;	initially defaults to '16' bit mode.
                                     0000   213 ;
                                     0000   214 ;	Values:
                                     0000   215 ;	16-Sets default memory format to '16' bit format(1 CAMAC transfer =
                                     0000   216 ;		1 word).
                                     0000   217 ;	24-Sets default memory format to '24' bit format(1 CAMAC transfer =
                                     0000   218 ;		2 words).
                                     0000   219 ;
                                     0000   220 ;	Parameters:
                                     0000   221 ;	EFN- value of the process local event flag to be used by CAMAC
                                     0000   222 ;		access procedures as default,
                                     0000   223 ;	XSTATE- address of a word containing one of the symbolic values
                                     0000   224 ;		CAM$_XI,CAM$_XE,
                                     0000   225 ;	QSTATE- address of a word containing one of the symbolic values
                                     0000   226 ;		CAM$_QDC, CAM$_QE, CAM$_QNE,
                                     0000   227 ;	MEM- address of a byte containing one of the values 16 or 24.
                                     0000   228 ;
                                     0000   229 ;	Return Status:
                                     0000   230 ;	SS$_NORMAL
                                     0000   231 ;		Successful completion of item request.
                                     0000   232 ;	SS$_INSFARG
                                     0000   233 ;		Not enough arguments supplied.
                                     0000   234 ;	SS$_BADPARAM
                                     0000   235 ;		Invalid parameter specified.
                                     0000   236 ;
                                     0000   237 ;---
                                     0000   238 
                                     0000   239 ;
                                     0000   240 ; PROCEDURE LOCAL DATA
                                     0000   241 ;
                           00000000  0000   242 CST_NARGS	= 0				; ARGUMENT COUNT
                           00000004  0000   243 CST_EFN		= 4				; EVENT FLAG VALUE
                           00000008  0000   244 CST_XSTATE	= 8				; XSTATE ARGUMENT
                           0000000C  0000   245 CST_QSTATE	= 12				; QSTATE ARGUMENT
                           00000010  0000   246 CST_MEM		= 16				; MEM FORMAT
                           00000001  0000   247 CST_MINARGS	= 1				; MIN ARG COUNT
                           00000004  0000   248 CST_MAXARGS	= 4				; MAX ARG COUNT
                                     0000   249 
                                     0000   250 
                               0800  0000   251 	.ENTRY	CAM$CSTATE,^M<R11>
                                     0002   252 
              5B   00000000'GF   9E  0002   253 	MOVAB	G^CAM_CIB,R11			; GET CIB ADDRESS
                       01   6C   91  0009   254 	CMPB	CST_NARGS(AP),#CST_MINARGS	; LESS THAN MIN ARGS SPECIFIED?
                            06   18  000C   255 	BGEQ	10$				; IF GREATER OR EQUAL, CONTINUE
                  50   0114 8F   3C  000E   256 	MOVZWL	#SS$_INSFARG,R0			; NOT ENOUGH ARGS STATUS
                                 04  0013   257 	RET					; RETURN TO CALLER
                                     0014   258 10$:
                       01   6C   8F  0014   259 	CASEB	CST_NARGS(AP),#CST_MINARGS,-	; HANDLE ARGUMENTS BY CASE
                            04       0017   260 		#CST_MAXARGS
                                     0018   261 20$:
CAM$BLIB                        BASIC CAMAC ACCESS PROCEDURE MODULE       6-JAN-1983 11:05:41  VAX-11 Macro V03-00         Page   6
V03-001                         CAM$CSTATE, SET CAMAC IMAGE BLOCK DATA    5-JAN-1983 17:16:44  SYS$SYSROOT:[CAMAC.SOURCE.KS30202](1)

                               0047' 0018   262 	.WORD	CST_THRU_EFN-20$		; PARAMETERS THRU EVENT FLAG
                               003A' 001A   263 	.WORD	CST_THRU_XSTATE-20$		; PARAMETERS THRU XSTATE
                               0030' 001C   264 	.WORD	CST_THRU_QSTATE-20$		; PARAMETERS THRU QSTATE
                               000E' 001E   265 	.WORD	CST_THRU_MEM-20$		; PARAMETERS THRU MEM FORMAT
                                     0020   266 
                  50   029C 8F   3C  0020   267 	MOVZWL	#SS$_TOOMUCHDATA,R0		; SET ERROR STATUS
                                 04  0025   268 	RET					; RETURN TO CALLER
                                     0026   269 
                                     0026   270 CST_THRU_MEM:
                         10 AC   D5  0026   271 	TSTL	CST_MEM(AP)			; NULL PARAMETER SPECIFIED?
                            1D   13  0029   272 	BEQL	CST_THRU_QSTATE			; IF SO, GO CHECK NEXT
                    10   10 BC   91  002B   273 	CMPB	@CST_MEM(AP),#16		; '16' FORMAT SPECIFIED?
                            06   12  002F   274 	BNEQ	30$				; IF NOT, GO CHECK '24'
                    0E AB   08   A8  0031   275 	BISW	#CSTS_M_M16,CIB_W_CSTS(R11)	; SET CAMAC STATE FOR '16'
                            11   11  0035   276 	BRB	CST_THRU_QSTATE			; CONTINUE
                                     0037   277 30$:
                    18   10 BC   91  0037   278 	CMPB	@CST_MEM(AP),#24		; '24' FORMAT SPECIFIED?
                            06   12  003B   279 	BNEQ	40$				; IF NOT, DECLARE ERROR
                    0E AB   08   AA  003D   280 	BICW	#CSTS_M_M16,CIB_W_CSTS(R11)	; SET CAMAC STATE FOR '24'
                            05   11  0041   281 	BRB	CST_THRU_QSTATE
                                     0043   282 40$:
                       50   14   3C  0043   283 	MOVZWL	#SS$_BADPARAM,R0		; INDICATE ERROR
                            22   11  0046   284 	BRB	90$				; ABORT CALL
                                     0048   285 CST_THRU_QSTATE:
                         0C AC   D5  0048   286 	TSTL	CST_QSTATE(AP)			; NULL PARAMETER SPECIFIED?
                            05   13  004B   287 	BEQL	CST_THRU_XSTATE			; IF 0, ASSUME SO
                         0C BC   A8  004D   288 	BISW	@CST_QSTATE(AP),-		; MASK Q STATE INTO
                         0E AB       0050   289 		CIB_W_CSTS(R11)			; CIB CAMAC STATE WORD
                                     0052   290 CST_THRU_XSTATE:
                         08 AC   D5  0052   291 	TSTL	CST_XSTATE(AP)			; NULL PARAMETER SPECIFIED?
                            08   13  0055   292 	BEQL	CST_THRU_EFN			; IF 0, ASSUME SO
                   00000008'FF   A8  0057   293 	BISW	@CST_XSTATE,-			; MASK X STATE INTO CIB
                         0E AB       005D   294 		CIB_W_CSTS(R11)			; CAMAC STATE WORD
                                     005F   295 CST_THRU_EFN:
                 24 AB   04 AC   90  005F   296 	MOVB	CST_EFN(AP),CIB_B_EFN(R11)	; COPY USER EFN TO CIB
                   00000000'GF   16  0064   297 	JSB	G^CAM_GETJIB			; UPDATE JPI ITEMS IN CIB
                                     006A   298 90$:
                                 04  006A   299 	RET					; RETURN TO CALLER
                                     006B   300 	.DSABL	LSB
CAM$BLIB                        BASIC CAMAC ACCESS PROCEDURE MODULE       6-JAN-1983 11:05:41  VAX-11 Macro V03-00         Page   7
V03-001                         CAM$ASSIGN, CAMAC KEY ASSIGNMENT PROCEDU  5-JAN-1983 17:16:44  SYS$SYSROOT:[CAMAC.SOURCE.KS30202](1)

                                     006B   302 	.SBTTL	CAM$ASSIGN, CAMAC KEY ASSIGNMENT PROCEDURE
                                     006B   303 	.ENABL	LSB
                                     006B   304 
                                     006B   305 ;+++
                                     006B   306 ;
                                     006B   307 ;	Procedure:
                                     006B   308 ;	CAM$ASSIGN(%DESCR(MODULE_NAME),KEY)
                                     006B   309 ;
                                     006B   310 ;	Description:
                                     006B   311 ;	This procedure performs a CAMAC key(I/O channel)
                                     006B   312 ;	assignment to the specified CAMAC logical module.
                                     006B   313 ;	The logical module name is translated recursively
                                     006B   314 ;	and must eventually translate to a physical module
                                     006B   315 ;	name from the SYSTEM logical name table unless the
                                     006B   316 ;	calling process has SYSNAM privilege. Upon verification
                                     006B   317 ;	of physical module name syntax and UIC access to the
                                     006B   318 ;	module, a VAX I/O channel is assigned to the CAMAC 
                                     006B   319 ;	unit specified in the physical module name and the
                                     006B   320 ;	key is encoded for return to the caller.
                                     006B   321 ;
                                     006B   322 ;	Parameters:
                                     006B   323 ;	MODULE_NAME- address of a CHARACTER variable containing an ASCII 
                                     006B   324 ;		character string identifying the CAMAC module to be referenced,
                                     006B   325 ;	KEY- address of a longword to receive the encoded key value
                                     006B   326 ;		to be used for subsequent CAMAC I/O calls,
                                     006B   327 ;
                                     006B   328 ;	Return Status:
                                     006B   329 ;	SS$_NORMAL
                                     006B   330 ;		Service normally completed. Key value is valid.
                                     006B   331 ;	SS$_BADPARAM
                                     006B   332 ;		Invalid/illegal parameter was passed on the call.
                                     006B   333 ;	(See SYS$ASSIGN system service for additional status return).
                                     006B   334 ;
                                     006B   335 ;---
                                     006B   336 
                                     006B   337 ;
                                     006B   338 ; PROCEDURE LOCAL DATA
                                     006B   339 ;
                           00000000  006B   340 ASG_NARGS	= 0				; ARGUMENT COUNT
                           00000004  006B   341 ASG_MOD		= 4				; MODULE NAME
                           00000008  006B   342 ASG_KEY		= 8				; KEY VALUE(OUTPUT)
                           00000002  006B   343 ASG_MINARGS	= 2				; MIN ARG COUNT
                           00000002  006B   344 ASG_MAXARGS	= 2				; MAX ARG COUNT
                           00000000  006B   345 ASG_K_DSBMSK	= 0				; DEFAULT DSBMASK VALUE
                                     006B   346 
                               0C3C  006B   347 	.ENTRY	CAM$ASSIGN,^M<R2,R3,R4,R5,R10,R11>
                                     006D   348 
              5B   00000000'GF   9E  006D   349 	MOVAB	G^CAM_CIB,R11			; GET CIB ADDRESS
                            00   E0  0074   350 	BBS	#PSTS_V_JIBV,-			; TEST IF JIB VALID
                      06 08 AB       0076   351 		CIB_L_PSTS(R11),40$		; IF SET, CONTINUE
                   00000000'GF   16  0079   352 	JSB	G^CAM_GETJIB			; ELSE, GET JIB INFO
                                     007F   353 40$:
                            6C   91  007F   354 	CMPB	ASG_NARGS(AP),-			; TEST MIN ALLOWABLE ARGS
                            02       0081   355 		#ASG_MINARGS
                            06   18  0082   356 	BGEQ	10$				; IF SUFFICIENT, CONTINUE
                  50   0114 8F   3C  0084   357 	MOVZWL	#SS$_INSFARG,R0			; RETURN INSUFFICIENT ARGS
                                 04  0089   358 	RET					; RETURN TO CALLER
CAM$BLIB                        BASIC CAMAC ACCESS PROCEDURE MODULE       6-JAN-1983 11:05:41  VAX-11 Macro V03-00         Page   8
V03-001                         CAM$ASSIGN, CAMAC KEY ASSIGNMENT PROCEDU  5-JAN-1983 17:16:44  SYS$SYSROOT:[CAMAC.SOURCE.KS30202](1)

                                     008A   359 10$:
                            6C   91  008A   360 	CMPB	ASG_NARGS(AP),-			; CHECK MAX ARG COUNT
                            02       008C   361 		#ASG_MAXARGS
                            06   15  008D   362 	BLEQ	20$				; CONTINUE IF NOT TOO MANY
                  50   029C 8F   3C  008F   363 	MOVZWL	#SS$_TOOMUCHDATA,R0		; SET ERROR STATUS
                                 04  0094   364 	RET					; ABORT CALL
                                     0095   365 20$:
                                     0095   366 	ALOSTAK	#CRP_K_LENGTH,R10		; GET STACK SPACE FOR CRP
                   00000000'GF   16  009F   367 	JSB	G^CAM_INITCRP			; INITIALIZE CRP
                    02 AA   01   A8  00A5   368 	BISW	#CRPS_M_KEYED,CRP_W_STS(R10)	; SET KEYED ACCESS FLAG
                    51   04 AC   D0  00A9   369 	MOVL	ASG_MOD(AP),R1			; GET ADDRESS OF MODULE DESCRIPTOR
                   00000000'GF   16  00AD   370 	JSB	G^CAM_GETMDB			; GET CAMAC MODULE DATA
                         1D 50   E9  00B3   371 	BLBC	R0,90$				; IF FAILURE, EXIT HERE
                            02   E0  00B6   372 	BBS	#PRV$V_SYSNAM,-			; PROCESS HAVE SYSNAM PRIV?
                      0B 18 AB       00B8   373 		CIB_Q_CPRIV(R11),70$		; IF SO, SKIP TEST
                    00   53 AA   91  00BB   374 	CMPB	CRP_B_RTAB(R10),#0		; TRANSLATE FROM SYS TABLE?
                            05   13  00BF   375 	BEQL	70$				; IF SO, CONTINUE
                       50   24   3C  00C1   376 	MOVZWL	#SS$_NOPRIV,R0			; NO PRIV FOR OPERATION
                            0D   11  00C4   377 	BRB	90$				; ABORT HERE
                                     00C6   378 70$:
                   00000000'GF   16  00C6   379 	JSB	G^CAM_ECODKEY			; ENCODE MODULE KEY VALUE
                    08 BC   50   D0  00CC   380 	MOVL	R0,@ASG_KEY(AP)			; RETURN KEY VALUE TO CALLER
                       50   01   3C  00D0   381 	MOVZWL	#SS$_NORMAL,R0			; SET NORMAL STATUS
                                     00D3   382 90$:
                                 04  00D3   383 	RET					; RETURN TO CALLER
                                     00D4   384 	.DSABL	LSB
CAM$BLIB                        BASIC CAMAC ACCESS PROCEDURE MODULE       6-JAN-1983 11:05:41  VAX-11 Macro V03-00         Page   9
V03-001                         CAM$DASSGN, CAMAC KEY DEASSIGNMENT PROCE  5-JAN-1983 17:16:44  SYS$SYSROOT:[CAMAC.SOURCE.KS30202](1)

                                     00D4   386 	.SBTTL	CAM$DASSGN, CAMAC KEY DEASSIGNMENT PROCEDURE
                                     00D4   387 	.ENABL	LSB
                                     00D4   388 
                                     00D4   389 ;+++
                                     00D4   390 ;
                                     00D4   391 ;	Procedure:
                                     00D4   392 ;	CAM$DASSGN(KEY)
                                     00D4   393 ;
                                     00D4   394 ;	Description:
                                     00D4   395 ;	This procedure releases a CAMAC key assignment previously
                                     00D4   396 ;	assigned via the CAM$ASSIGN function call. The VAX I/O
                                     00D4   397 ;	channel associated with the specified key value is
                                     00D4   398 ;	deassigned when the reference count associated with the
                                     00D4   399 ;	CAMAC Support Unit becomes 0.
                                     00D4   400 ;
                                     00D4   401 ;	Parameters:
                                     00D4   402 ;	KEY- address of a longword integer containing the encoded
                                     00D4   403 ;		key value.
                                     00D4   404 ;
                                     00D4   405 ;	Return Status:
                                     00D4   406 ;	SS$_NORMAL
                                     00D4   407 ;		Request successfully completed.
                                     00D4   408 ;	SS$_BADPARAM
                                     00D4   409 ;		Illegal/invalid parameter passed on call.
                                     00D4   410 ;	See SYS$DEASSGN system service for additional status).
                                     00D4   411 ;
                                     00D4   412 ;---
                                     00D4   413 
                                     00D4   414 ;
                                     00D4   415 ; PROCEDURE LOCAL DATA
                                     00D4   416 ;
                           00000000  00D4   417 DAG_NARGS	= 0				; ARGUMENT COUNT
                           00000004  00D4   418 DAG_KEY		= 4				; KEY VALUE(OUTPUT)
                           00000001  00D4   419 DAG_MINARGS	= 1				; MIN ARG COUNT
                           00000001  00D4   420 DAG_MAXARGS	= 1				; MAX ARG COUNT
                                     00D4   421 
                               0C3C  00D4   422 	.ENTRY	CAM$DASSGN,^M<R2,R3,R4,R5,R10,R11>
                                     00D6   423 
              5B   00000000'GF   9E  00D6   424 	MOVAB	G^CAM_CIB,R11			; GET CIB ADDRESS
                            00   E0  00DD   425 	BBS	#PSTS_V_JIBV,-			; TEST IF JIB VALID
                      06 08 AB       00DF   426 		CIB_L_PSTS(R11),40$		; IF SET, CONTINUE
                   00000000'GF   16  00E2   427 	JSB	G^CAM_GETJIB			; ELSE, GET JIB INFO
                                     00E8   428 40$:
                            6C   91  00E8   429 	CMPB	DAG_NARGS(AP),-			; TEST MIN ALLOWABLE ARGS
                            01       00EA   430 		#DAG_MINARGS
                            06   18  00EB   431 	BGEQ	10$				; IF SUFFICIENT, CONTINUE
                  50   0114 8F   3C  00ED   432 	MOVZWL	#SS$_INSFARG,R0			; RETURN INSUFFICIENT ARGS
                                 04  00F2   433 	RET					; RETURN TO CALLER
                                     00F3   434 10$:
                            6C   91  00F3   435 	CMPB	DAG_NARGS(AP),-			; CHECK MAX ARG LIMIT
                            01       00F5   436 		#DAG_MAXARGS
                            06   15  00F6   437 	BLEQ	20$				; IF LESS OR EQUAL, CONTINUE
                  50   029C 8F   3C  00F8   438 	MOVZWL	#SS$_TOOMUCHDATA,R0		; SET ERROR STATUS
                                 04  00FD   439 	RET					; RETURN TO CALER
                                     00FE   440 20$:
                                     00FE   441 	ALOSTAK	#CRP_K_LENGTH,R10		; GET STACK SPACE FOR CRP
                   00000000'GF   16  0108   442 	JSB	G^CAM_INITCRP			; INITIALIZE CRP
CAM$BLIB                        BASIC CAMAC ACCESS PROCEDURE MODULE       6-JAN-1983 11:05:41  VAX-11 Macro V03-00         Page  10
V03-001                         CAM$DASSGN, CAMAC KEY DEASSIGNMENT PROCE  5-JAN-1983 17:16:44  SYS$SYSROOT:[CAMAC.SOURCE.KS30202](1)

                    02 AA   01   A8  010E   443 	BISW	#CRPS_M_KEYED,CRP_W_STS(R10)	; SET KEYED ACCESS FLAG
                    51   04 BC   D0  0112   444 	MOVL	@DAG_KEY(AP),R1			; GET VALUE OF MODULE KEY
                   00000000'GF   16  0116   445 	JSB	G^CAM_DCODKEY			; DECODE KEY VALUE
                                     011C   446 						; FIELDS OF CRP RECEIVE DATA
                         09 50   E9  011C   447 	BLBC	R0,90$				; IF FAILURE, ABORT HERE
                   00000000'GF   16  011F   448 	JSB	G^CAM_RELCHAN			; RELEASE CAMAC CHANNEL
                       50   01   3C  0125   449 	MOVZWL	#SS$_NORMAL,R0			; SET NORMAL STATUS
                                     0128   450 90$:
                                 04  0128   451 	RET					; RETURN TO CALLER
                                     0129   452 	.DSABL	LSB
CAM$BLIB                        BASIC CAMAC ACCESS PROCEDURE MODULE       6-JAN-1983 11:05:41  VAX-11 Macro V03-00         Page  11
V03-001                         CAM$PIO(W), CAMAC PROGRAMMED I/O(SINGLE-  5-JAN-1983 17:16:44  SYS$SYSROOT:[CAMAC.SOURCE.KS30202](1)

                                     0129   454 	.SBTTL	CAM$PIO(W), CAMAC PROGRAMMED I/O(SINGLE-ACTION)
                                     0129   455 	.ENABL	LSB
                                     0129   456 
                                     0129   457 ;+++
                                     0129   458 ;
                                     0129   459 ;	Procedure:
                                     0129   460 ;
                                     0129   461 ;	CAM$PIO(W)(%DESCR(MODULE_NAME),A,F[,DATA][,MEM]][,IOSB]
                                     0129   462 ;			[,EFN][,AST][,ASTPRM])
                                     0129   463 ;		Or
                                     0129   464 ;
                                     0129   465 ;	CAM$PIO(W)(%DESCR(KEY),A,F,[,DATA][,MEM][,IOSB]
                                     0129   466 ;			[,EFN][,AST][,ASTPRM])
                                     0129   467 ;
                                     0129   468 ;	Description:
                                     0129   469 ;	This procedure performs a single-action CAMAC I/O request.
                                     0129   470 ;	The specified CAMAC module name is translated into the
                                     0129   471 ;	appropriate controller, crate and station addresses.
                                     0129   472 ;	If the keyed access format is used, the key must correspond
                                     0129   473 ;	to a CAMAC module previously connected via the CAM$ASSIGN
                                     0129   474 ;	function call. The CAMAC data buffer is not required for
                                     0129   475 ;	calls performing CAMAC control functions(8 <= F <= 15 or
                                     0129   476 ;	24 <= F <= 31. If the I/O status block parameter is specified,
                                     0129   477 ;	it is used to receive the status from the CAMAC I/O request.
                                     0129   478 ;	If the memory format control parameter is specified,
                                     0129   479 ;	the value determines whether 16 bits of data is transferred
                                     0129   480 ;	(MEM=16) or 24 bits of data is transferred(MEM=24). If
                                     0129   481 ;	not specified, the CIB memory format specifier is used.
                                     0129   482 ;
                                     0129   483 ;	If the proceed mode call(CAM$PIO) is used, control returns
                                     0129   484 ;	 to the caller as soon as the CAMAC request is queued to 
                                     0129   485 ;	the system. If the wait mode call(CAM$PIOW) is used, control 
                                     0129   486 ;	is returned to the calling program only when the CAMAC I/O 
                                     0129   487 ;	is complete. 
                                     0129   488 ;
                                     0129   489 ;	The I/O synchronization parameters(EFN, AST and ASTP) are used
                                     0129   490 ;	in the same manner as their counterparts in the QIO and QIOW
                                     0129   491 ;	system services. See the VAX System Services Reference Manual
                                     0129   492 ;	for further discussion if needed.
                                     0129   493 ;
                                     0129   494 ;
                                     0129   495 ;	Parameters:
                                     0129   496 ;	MODULE_NAME- address of a CHARACTER variable containing an ASCII 
                                     0129   497 ;		character string identifying the CAMAC module to be referenced,
                                     0129   498 ;	KEY- address of a longword descriptor for the key value
                                     0129   499 ;		previously computed for the CAMAC module via
                                     0129   500 ;		calling the procedure CAM$ASSIGN,
                                     0129   501 ;	A- address of a byte containing CAMAC subaddress,
                                     0129   502 ;	F- address of a byte containing CAMAC function code,
                                     0129   503 ;	DATA- address of a long word containing CAMAC write
                                     0129   504 ;		data or that will receive CAMAC read data. Not 
                                     0129   505 ;		required for CAMAC control functions,
                                     0129   506 ;	MEM- address of a byte containing the memory format for
                                     0129   507 ;		the CAMAC transaction(MEM=16; MEM=24). If not
                                     0129   508 ;		specified, the current CIB memory format specifier
                                     0129   509 ;		is used.
                                     0129   510 ;	IOSB- address of a quadword buffer to receive I/O completion
CAM$BLIB                        BASIC CAMAC ACCESS PROCEDURE MODULE       6-JAN-1983 11:05:41  VAX-11 Macro V03-00         Page  12
V03-001                         CAM$PIO(W), CAMAC PROGRAMMED I/O(SINGLE-  5-JAN-1983 17:16:44  SYS$SYSROOT:[CAMAC.SOURCE.KS30202](1)

                                     0129   511 ;		status from the CAMAC request.
                                     0129   512 ;
                                     0129   513 ;	Optional I/O Synchronization Parameters:
                                     0129   514 ;	EFN- value specifying the number of a local event flag
                                     0129   515 ;		to be set upon I/O completion. If not specified, the
                                     0129   516 ;		default process event flag from the CAMAC image block
                                     0129   517 ;		is used,
                                     0129   518 ;	AST- address of an AST procedure to receive an I/O completion
                                     0129   519 ;		AST,
                                     0129   520 ;	ASTPRM- address of a longword containing a parameter to
                                     0129   521 ;		be passed to the specified AST procedure.
                                     0129   522 ;
                                     0129   523 ;	Return Status:
                                     0129   524 ;
                                     0129   525 ;---
                                     0129   526 
                                     0129   527 ;
                                     0129   528 ; PROCEDURE LOCAL DATA
                                     0129   529 ;
                           00000000  0129   530 PIO_NARGS	= 0				; ARGUMENT COUNT
                           00000004  0129   531 PIO_MOD		= 4				; MODULE DESCRIPTOR
                           00000008  0129   532 PIO_A		= 8				; SUBADDRESS OFFSET
                           0000000C  0129   533 PIO_F		= 12				; FUNCTION CODE
                           00000010  0129   534 PIO_DATA	= 16				; DATA BUFFER(OPTIONAL)
                           00000014  0129   535 PIO_MEM		= 20				; MEMORY FORMAT
                           00000018  0129   536 PIO_IOSB	= 24				; IOSB BUFFER
                           0000001C  0129   537 PIO_EFN		= 28				; EVENT FLAG VALUE
                           00000020  0129   538 PIO_AST		= 32				; AST PROCEDURE
                           00000024  0129   539 PIO_ASTP	= 36				; AST PARM VALUE
                           00000003  0129   540 PIO_MINARGS	= 3				; MINIMUM NUMBER OF ARGS
                           00000009  0129   541 PIO_MAXARGS	= 9				; MAX NUMBER OF ARGS
                                     0129   542 
                                     0129   543 
                                     0129   544 ;
                                     0129   545 ;	WAIT MODE ENTRY POINT
                                     0129   546 ;
                               0E3C  0129   547 	.ENTRY	CAM$PIOW,^M<R2,R3,R4,R5,R9,R10,R11>
                                     012B   548 
                       59   01   CE  012B   549 	MNEGL	#1,R9				; SET WAIT MODE INDICATOR
                            04   11  012E   550 	BRB	CAM_PIO				; JOIN COMMON FLOW
                                     0130   551 
                                     0130   552 ;
                                     0130   553 ;	PROCEED MODE ENTRY POINT
                                     0130   554 ;
                               0E3C  0130   555 	.ENTRY	CAM$PIO,^M<R2,R3,R4,R5,R9,R10,R11>
                                     0132   556 
                            59   D4  0132   557 	CLRL	R9				; RESET WAIT MODE INDICATOR
                                     0134   558 
                                     0134   559 CAM_PIO:					; COMMON PIO FLOW
              5B   00000000'GF   9E  0134   560 	MOVAB	G^CAM_CIB,R11			; GET ADDRESS OFCAMAC IMAGE BLOCK
                            00   E0  013B   561 	BBS	#PSTS_V_JIBV,-			; IS JIB INFO VALID?
                      06 08 AB       013D   562 		CIB_L_PSTS(R11),10$		; IF SO, CONTINUE WITH IT
                   00000000'GF   16  0140   563 	JSB	G^CAM_GETJIB			; ELSE, GET NEW JIB/PCB INFO
                                     0146   564 10$:
                            6C   91  0146   565 	CMPB	PIO_NARGS(AP),-			; CHECK AGANIST MIN ARG COUNT
                            03       0148   566 		#PIO_MINARGS
                            0A   18  0149   567 	BGEQ	20$				; IF SUFFICIENT, CONTINUE
CAM$BLIB                        BASIC CAMAC ACCESS PROCEDURE MODULE       6-JAN-1983 11:05:41  VAX-11 Macro V03-00         Page  13
V03-001                         CAM$PIO(W), CAMAC PROGRAMMED I/O(SINGLE-  5-JAN-1983 17:16:44  SYS$SYSROOT:[CAMAC.SOURCE.KS30202](1)

              50   00000114 8F   D0  014B   568 	MOVL	#SS$_INSFARG,R0			; SET INSUFF ARGS STATUS
                          00DB   31  0152   569 	BRW	90$				; EXIT ROUTINE
                                     0155   570 20$:
                                     0155   571 	ALOSTAK	#CRP_K_LENGTH,R10		; ALLOCATE CRP ON STACK
                   00000000'GF   16  015F   572 	JSB	G^CAM_INITCRP			; INITIALIZE CRP
                  01   01   59   F0  0165   573 	INSV	R9,#CRPS_V_WAIT,#CRPS_S_WAIT,-	; INSERT WAIT/PROCEED FLAG
                         02 AA       0169   574 		CRP_W_STS(R10)			; INTO CRP STATUS
                         0E AB   B0  016B   575 	MOVW	CIB_W_CSTS(R11),-		; COPY CIB CAMAC STATE TO
                            6A       016E   576 		CRP_W_CSTS(R10)			; CRP CAMAC STATUS WORD
                    51   04 AC   D0  016F   577 	MOVL	PIO_MOD(AP),R1			; ADDRESS OF MODULE DESCRIPTOR
                   00000000'GF   16  0173   578 	JSB	G^CAM_MODULE			; GET MODULE PARAMETERS
                         03 50   E8  0179   579 	BLBS	R0,120$				; SUCCESS? CONTINUE IF SO.
                          00B1   31  017C   580 	BRW	90$				; EXIT ROUTINE IF NOT
                                     017F   581 120$:
                    4A AA   00   90  017F   582 	MOVB	#0,CRP_B_MODE(R10)		; SET CAMAC MODE
                 4D AA   08 BC   90  0183   583 	MOVB	@PIO_A(AP),CRP_B_A(R10)		; COPY CAMAC SUBADDRESS
                 4E AA   0C BC   90  0188   584 	MOVB	@PIO_F(AP),CRP_B_F(R10)		; AND FUNCTION CODE
                    59   04 AA   9E  018D   585 	MOVAB	CRP_L_QIOL(R10),R9		; USE R9 FOR QIO LIST POINTER
                       69   0C   9A  0191   586 	MOVZBL	#QIO$_NARGS,(R9)		; SET QIO ARG COUNT
                         24 AB   9A  0194   587 	MOVZBL	CIB_B_EFN(R11),-		; USE DEFAULT EFN
                         04 A9       0197   588 		QIO$_EFN(R9)
                            6B   9E  0199   589 	MOVAB	CIB_Q_IOSB(R11),-		; DEFAULT TO CIB IOSB
                         10 A9       019B   590 		QIO$_IOSB(R9)
                         48 AA   3C  019D   591 	MOVZWL	CRP_W_CHAN(R10),-		; SAVE VMS CHANNEL NUMBER
                         08 A9       01A0   592 		QIO$_CHAN(R9)
                            32   3C  01A2   593 	MOVZWL	#IO$_CAMIO,-			; QIO FUNCTION CODE
                         0C A9       01A4   594 		QIO$_FUNC(R9)
                            6C   8F  01A6   595 	CASEB	PIO_NARGS(AP),-			; HANDLE PARAMETERS BY CASE
                            03       01A8   596 		#PIO_MINARGS,-
                            09       01A9   597 		#PIO_MAXARGS
                                     01AA   598 30$:
                               0056' 01AA   599 	.WORD	PIO_THRU_F-30$			; PARAMETERS THRU F
                               004C' 01AC   600 	.WORD	PIO_THRU_DATA-30$		; PARAMETERS THRU DATA
                               002F' 01AE   601 	.WORD	PIO_THRU_MEM-30$		; PARAMETERS THRU MEM
                               0025' 01B0   602 	.WORD	PIO_THRU_IOSB-30$		; PARAMETERS THRU IOSB
                               0020' 01B2   603 	.WORD	PIO_THRU_EFN-30$		; PARAMETERS THRU EFN
                               001B' 01B4   604 	.WORD	PIO_THRU_AST-30$		; PARAMETERS THRU AST ADR
                               0016' 01B6   605 	.WORD	PIO_THRU_ASTP-30$		; PARAMETERS THRU AST PARM
                                     01B8   606 
                  50   029C 8F   3C  01B8   607 	MOVZWL	#SS$_TOOMUCHDATA,R0		; TOO MANY PARAMETERS
                          0070   31  01BD   608 	BRW	90$				; EXIT ROUTINE
                                     01C0   609 
                                     01C0   610 PIO_THRU_ASTP:
                         24 AC   D0  01C0   611 	MOVL	PIO_ASTP(AP),-			; COPY AST PARM TO QIO
                         18 A9       01C3   612 		QIO$_ASTPRM(R9)			; PARM LIST
                                     01C5   613 PIO_THRU_AST:
                         20 AC   D0  01C5   614 	MOVL	PIO_AST(AP),-			; COPY AST PROC ADDRESS
                         14 A9       01C8   615 		QIO$_ASTADR(R9)			; TO QIO PARM LIST
                                     01CA   616 PIO_THRU_EFN:
                         1C AC   9A  01CA   617 	MOVZBL	PIO_EFN(AP),-			; COPY EVENT FLAG NUMB TO
                         04 A9       01CD   618 		QIO$_EFN(R9)			; QIO PARM LIST
                                     01CF   619 PIO_THRU_IOSB:
                         18 AC   D5  01CF   620 	TSTL	PIO_IOSB(AP)			; CHECK FOR VALID IOSB
                            05   13  01D2   621 	BEQL	PIO_THRU_MEM			; IF 0, NULL PARAMETER
                         18 AC   D0  01D4   622 	MOVL	PIO_IOSB(AP),-			; ELSE, ASSUME VALID IOSB
                         10 A9       01D7   623 		QIO$_IOSB(R9)			; ADDRESS FOR QIO
                                     01D9   624 PIO_THRU_MEM:
CAM$BLIB                        BASIC CAMAC ACCESS PROCEDURE MODULE       6-JAN-1983 11:05:41  VAX-11 Macro V03-00         Page  14
V03-001                         CAM$PIO(W), CAMAC PROGRAMMED I/O(SINGLE-  5-JAN-1983 17:16:44  SYS$SYSROOT:[CAMAC.SOURCE.KS30202](1)

                         14 AC   D5  01D9   625 	TSTL	PIO_MEM(AP)			; CHECK IF MEM SPECIFIED
                            18   13  01DC   626 	BEQL	PIO_THRU_DATA			; IF 0, NULL PARAMETER
                            08   AA  01DE   627 	BICW	#CSTS_M_M16,-			; CLEAR M16 BIT
                            6A       01E0   628 		CRP_W_CSTS(R10)			; IN CRP CAMAC STATUS WORD
                    18   14 BC   91  01E1   629 	CMPB	@PIO_MEM(AP),#24		; CHECK FOR '24' FORMAT
                            0F   13  01E5   630 	BEQL	PIO_THRU_DATA			; IF MATCH, DONE
                            08   A8  01E7   631 	BISW	#CSTS_M_M16,-			; SET M16 BIT 
                            6A       01E9   632 		CRP_W_CSTS(R10)			; IN CRP CAMAC STATUS WORD
                    10   14 BC   91  01EA   633 	CMPB	@PIO_MEM(AP),#16		; CHECK FOR '16' FORMAT
                            06   13  01EE   634 	BEQL	PIO_THRU_DATA			; IF MATCH, DONE
                       50   14   3C  01F0   635 	MOVZWL	#SS$_BADPARAM,R0		; SET BAD PARAMETER
                          003A   31  01F3   636 	BRW	90$				; EXIT ROUTINE
                                     01F6   637 PIO_THRU_DATA:
                         10 AC   D5  01F6   638 	TSTL	PIO_DATA(AP)			; CHECK IF DATA SPECIFIED
                            05   13  01F9   639 	BEQL	PIO_THRU_F			; IF 0, NULL PARAMETER
                         10 AC   D0  01FB   640 	MOVL	PIO_DATA(AP),-			; IF NOT 0, ASSUME BUFFER ADDR
                         20 A9       01FE   641 		QIO$_P2(R9)			; FOR QIO
                                     0200   642 PIO_THRU_F:
                                     0200   643 	IFCAMCT	CRP_B_F(R10),40$		; IF CAMAC CONTROL, SKIP
                         20 A9   D5  0205   644 	TSTL	QIO$_P2(R9)			; CHECK FOR VALID BUFFER
                            08   12  0208   645 	BNEQ	40$				; IF NOT 0, ASSUME VALID
                  50   0114 8F   3C  020A   646 	MOVZWL	#SS$_INSFARG,R0			; INSUFFICIENT ARGS
                          001E   31  020F   647 	BRW	90$				; EXIT ROUTINE
                                     0212   648 40$:
                          0471   30  0212   649 	BSBW	CAM_BLDRTB			; BUILD CAMAC RTB
                         38 AA   9E  0215   650 	MOVAB	CRP_Q_RTB(R10),-		; ADDRESS OF RTB AS QIO P1
                         1C A9       0218   651 		QIO$_P1(R9)
                            01   E1  021A   652 	BBC	#CRPS_V_WAIT,-			; CHECK IF WAIT/PROCEED
                      0A 02 AA       021C   653 		CRP_W_STS(R10),80$		; IF 'WAIT' CLEAR, RETURN
                                     021F   654 	$QIOW_G	(R9)				; ISSUE QIO+WAIT CALL
                          0007   31  0226   655 	BRW	90$				; RETURN ON COMPLETION
                                     0229   656 80$:
                                     0229   657 	$QIO_G	(R9)				; ISSUE QIO CALL
                                     0230   658 	
                                     0230   659 90$:
                                 04  0230   660 	RET					; RETURN FROM PROCEDURE CALL
                                     0231   661 	.DSABL	LSB
CAM$BLIB                        BASIC CAMAC ACCESS PROCEDURE MODULE       6-JAN-1983 11:05:41  VAX-11 Macro V03-00         Page  15
V03-001                         CAM$QSCAN(W), CAMAC Q-SCAN/STOP ON WORD   5-JAN-1983 17:16:44  SYS$SYSROOT:[CAMAC.SOURCE.KS30202](1)

                                     0231   663 	.SBTTL	CAM$QSCAN(W), CAMAC Q-SCAN/STOP ON WORD COUNT PROCEDURE
                                     0231   664 	.ENABL	LSB
                                     0231   665 
                                     0231   666 ;+++
                                     0231   667 ;
                                     0231   668 ;	Procedure:
                                     0231   669 ;	CAM$QSCAN(W)(%DESCR(MODULE_NAME),A,F,COUNT,DATA[,MEM][,IOSB]
                                     0231   670 ;		[,EFN],[,AST][,ASTPRM])
                                     0231   671 ;		Or
                                     0231   672 ;	CAM$QSCAN(W)(%DESCR(KEY),A,F,COUNT,DATA[,MEM][,IOSB]
                                     0231   673 ;		[,EFN],[,AST][,ASTPRM])
                                     0231   674 ;
                                     0231   675 ;	Description:
                                     0231   676 ;	This procedure performs a CAMAC subaddress/address
                                     0231   677 ;	scan utilizing the Q-scan technique to control the
                                     0231   678 ;	incrementing of the CAMAC subaddress and address
                                     0231   679 ;	utilized on successive repetitions of the specified
                                     0231   680 ;	CAMAC function code. The scan starts initially at the
                                     0231   681 ;	specified subaddress(A). The initial station number
                                     0231   682 ;	is determined from the specified module name(for direct
                                     0231   683 ;	module reference calls) or from the key value(for keyed
                                     0231   684 ;	access calls). To utilize the keyed access mode, the
                                     0231   685 ;	key value must first be generated by a call to the
                                     0231   686 ;	CAM$ASSIGN function. In all cases, the transaction
                                     0231   687 ;	terminates when the transfer count(COUNT) is exhausted
                                     0231   688 ;	or when an anomolous condition is detected. If the I/O
                                     0231   689 ;	status block parameter is specified, the status of the
                                     0231   690 ;	CAMAC I/O request is returned in specified quadword buffer.
                                     0231   691 ;	If not, a quadword buffer in the CAMAC image block is used.
                                     0231   692 ;
                                     0231   693 ;	If the proceed mode call(CAM$QSCAN) is used, control returns
                                     0231   694 ;	 to the caller as soon as the CAMAC request is queued to 
                                     0231   695 ;	the system. If the wait mode call(CAM$QSCANW) is used, control 
                                     0231   696 ;	is returned to the calling program only when the CAMAC I/O 
                                     0231   697 ;	is complete. 
                                     0231   698 ;
                                     0231   699 ;	The I/O synchronization parameters(EFN, AST and ASTP) are used
                                     0231   700 ;	in the same manner as their counterparts in the QIO and QIOW
                                     0231   701 ;	system services. See the VAX System Services Reference Manual
                                     0231   702 ;	for further discussion if needed.
                                     0231   703 ;
                                     0231   704 ;	Parameters:
                                     0231   705 ;	MODULE_NAME- address of a CHARACTER variable containing an ASCII 
                                     0231   706 ;		character string identifying the CAMAC module to be referenced,
                                     0231   707 ;	KEY- address of a longword descriptor for the key value
                                     0231   708 ;		previously computed for the CAMAC module via
                                     0231   709 ;		calling the procedure CAM$ASSIGN,
                                     0231   710 ;	A- address of a byte containing CAMAC subaddress,
                                     0231   711 ;	F- address of a byte containing CAMAC function code,
                                     0231   712 ;	DATA- address of data buffer that contains CAMAC write data
                                     0231   713 ;		or that will receive CAMAC read data.
                                     0231   714 ;	COUNT- address of a word containing the CAMAC transfer
                                     0231   715 ;		count(in units of the memory format).
                                     0231   716 ;	MEM- address of a byte containing memory format for the
                                     0231   717 ;		CAMAC transaction(MEM=16; MEM=24). If not specified,
                                     0231   718 ;		the current CIB memory format specifier is used,
                                     0231   719 ;	IOSB- address of a quadword buffer to receive I/O completion
CAM$BLIB                        BASIC CAMAC ACCESS PROCEDURE MODULE       6-JAN-1983 11:05:41  VAX-11 Macro V03-00         Page  16
V03-001                         CAM$QSCAN(W), CAMAC Q-SCAN/STOP ON WORD   5-JAN-1983 17:16:44  SYS$SYSROOT:[CAMAC.SOURCE.KS30202](1)

                                     0231   720 ;		status from the CAMAC request.
                                     0231   721 ;
                                     0231   722 ;	Optional I/O Synchronization Parameters:
                                     0231   723 ;	EFN- value specifying the number of a local event flag
                                     0231   724 ;		to be set upon I/O completion. If not specified, the
                                     0231   725 ;		default process event flag from the CAMAC image block
                                     0231   726 ;		is used,
                                     0231   727 ;	AST- address of an AST procedure to receive an I/O completion
                                     0231   728 ;		AST,
                                     0231   729 ;	ASTPRM- address of a longword containing a parameter to
                                     0231   730 ;		be passed to the specified AST procedure.
                                     0231   731 ;
                                     0231   732 ;
                                     0231   733 ;	Return Status:
                                     0231   734 ;
                                     0231   735 ;---
                                     0231   736 
                                     0231   737 ;
                                     0231   738 ; PROCEDURE LOCAL DATA
                                     0231   739 ;
                           00000000  0231   740 QSC_NARGS	= 0				; ARGUMENT COUNT
                           00000004  0231   741 QSC_MOD		= 4				; MODULE NAME/KEY VALUE
                           00000008  0231   742 QSC_A		= 8				; SUBADDRESS
                           0000000C  0231   743 QSC_F		= 12				; FUNCTION CODE
                           00000010  0231   744 QSC_COUNT	=16				; TRANSFER COUNT
                           00000014  0231   745 QSC_DATA	= 20				; DATA BUFFER
                           00000018  0231   746 QSC_MEM		=24				; MEMORY FORMAT(OPTIONAL)
                           0000001C  0231   747 QSC_IOSB	= 28				; IOSB OFFSET
                           00000020  0231   748 QSC_EFN		= 32				; EVENT FLAG VALUE
                           00000024  0231   749 QSC_AST		= 36				; AST ADDRESS
                           00000028  0231   750 QSC_ASTP	= 40				; AST PARAMETER
                           00000005  0231   751 QSC_MINARGS	= 5				; MINIMUM ARG COUNT
                           0000000A  0231   752 QSC_MAXARGS	= 10				; MAX ARG COUNT
                                     0231   753 
                                     0231   754 
                                     0231   755 ;
                                     0231   756 ;	WAIT MODE ENTRY POINT
                                     0231   757 ;
                               0E3C  0231   758 	.ENTRY	CAM$QSCANW,^M<R2,R3,R4,R5,R9,R10,R11>
                                     0233   759 
                       59   01   CE  0233   760 	MNEGL	#1,R9				; SET WAIT MODE INDICATOR
                            04   11  0236   761 	BRB	CAM_QSCAN			; JOIN COMMON FLOW
                                     0238   762 
                                     0238   763 ;
                                     0238   764 ;	PROCEED MODE ENTRY POINT
                                     0238   765 ;
                                     0238   766 
                               0E3C  0238   767 	.ENTRY	CAM$QSCAN,^M<R2,R3,R4,R5,R9,R10,R11>
                                     023A   768 
                            59   D4  023A   769 	CLRL	R9				; RESET WAIT MODE FLAG
                                     023C   770 
                                     023C   771 CAM_QSCAN:					; COMMON QSCAN FLOW
              5B   00000000'GF   9E  023C   772 	MOVAB	G^CAM_CIB,R11			; GET ADDRESS OF CAMAC IMAGE BLOCK
                            00   E0  0243   773 	BBS	#PSTS_V_JIBV,-			; IS JIB INFO VALID?
                      06 08 AB       0245   774 		CIB_L_PSTS(R11),10$		; IF SO, CONTINUE WITH IT
                   00000000'GF   16  0248   775 	JSB	G^CAM_GETJIB			; ELSE, GET NEW JIB/PCB INFO
                                     024E   776 10$:
CAM$BLIB                        BASIC CAMAC ACCESS PROCEDURE MODULE       6-JAN-1983 11:05:41  VAX-11 Macro V03-00         Page  17
V03-001                         CAM$QSCAN(W), CAMAC Q-SCAN/STOP ON WORD   5-JAN-1983 17:16:44  SYS$SYSROOT:[CAMAC.SOURCE.KS30202](1)

                            6C   91  024E   777 	CMPB	QSC_NARGS(AP),-			; CHECK AGANIST MIN ARG COUNT
                            05       0250   778 		#QSC_MINARGS
                            0A   18  0251   779 	BGEQ	20$				; IF SUFFICIENT, CONTINUE
              50   00000114 8F   D0  0253   780 	MOVL	#SS$_INSFARG,R0			; SET INSUFF ARGS STATUS
                          00E8   31  025A   781 	BRW	90$				; EXIT ROUTINE
                                     025D   782 20$:
                                     025D   783 	ALOSTAK	#CRP_K_LENGTH,R10		; ALLOCATE CRP ON STACK
                   00000000'GF   16  0267   784 	JSB	G^CAM_INITCRP			; INITIALIZE CRP
                  01   01   59   F0  026D   785 	INSV	R9,#CRPS_V_WAIT,#CRPS_S_WAIT,-	; INSERT WAIT/PROCEED FLAG
                         02 AA       0271   786 		CRP_W_STS(R10)			; INTO CRP STATUS
                         0E AB   B0  0273   787 	MOVW	CIB_W_CSTS(R11),-		; COPY CIB CAMAC STATE TO
                            6A       0276   788 		CRP_W_CSTS(R10)			; CRP CAMAC STATUS WORD
                    51   04 AC   D0  0277   789 	MOVL	QSC_MOD(AP),R1			; ADDRESS OF MODULE DESCRIPTOR
                   00000000'GF   16  027B   790 	JSB	G^CAM_MODULE			; GET MODULE PARAMETERS
                         03 50   E8  0281   791 	BLBS	R0,120$				; SUCCESS? CONTINUE IF SO.
                          00BE   31  0284   792 	BRW	90$				; EXIT ROUTINE IF NOT
                                     0287   793 120$:
                    4A AA   01   90  0287   794 	MOVB	#1,CRP_B_MODE(R10)		; SET CAMAC MODE
                 4D AA   08 BC   90  028B   795 	MOVB	@QSC_A(AP),CRP_B_A(R10)		; COPY CAMAC SUBADDRESS
                 4E AA   0C BC   90  0290   796 	MOVB	@QSC_F(AP),CRP_B_F(R10)		; COPY CAMAC FUNCTION CODE
                    59   04 AA   9E  0295   797 	MOVAB	CRP_L_QIOL(R10),R9		; USE R9 FOR QIO LIST POINTER
                       69   0C   9A  0299   798 	MOVZBL	#QIO$_NARGS,(R9)		; SET QIO ARG COUNT
                         24 AB   9A  029C   799 	MOVZBL	CIB_B_EFN(R11),-		; USE DEFAULT EFN
                         04 A9       029F   800 		QIO$_EFN(R9)
                            6B   9E  02A1   801 	MOVAB	CIB_Q_IOSB(R11),-		; DEFAULT TO CIB IOSB
                         10 A9       02A3   802 		QIO$_IOSB(R9)
                         48 AA   3C  02A5   803 	MOVZWL	CRP_W_CHAN(R10),-		; SAVE VMS CHANNEL NUMBER
                         08 A9       02A8   804 		QIO$_CHAN(R9)
                            32   3C  02AA   805 	MOVZWL	#IO$_CAMIO,-			; QIO FUNCTION CODE
                         0C A9       02AC   806 		QIO$_FUNC(R9)
                         14 AC   D0  02AE   807 	MOVL	QSC_DATA(AP),-			; SAVE DATA BUFFER ADDR
                         20 A9       02B1   808 		QIO$_P2(R9)			; IN QIO LIST
                    50   10 BC   3C  02B3   809 	MOVZWL	@QSC_COUNT(AP),R0		; GET TRANSFER COUNT
                  50   50   02   78  02B7   810 	ASHL	#2,R0,R0			; CONVERT TO BYTE COUNT
                                     02BB   811 						; FOR '24' BIT FORMAT
                            03   E1  02BB   812 	BBC	#CSTS_V_M16,-			; CHECK CRP MEM STATE
                         05 6A       02BD   813 		CRP_W_CSTS(R10),50$		; IF '16', SKIP
               50   50   FF 8F   78  02BF   814 	ASHL	#-1,R0,R0			; CHANGE TO BYTE COUNT FOR
                                     02C4   815 						; '16' BIT FORMAT
                                     02C4   816 50$:
                    24 A9   50   3C  02C4   817 	MOVZWL	R0,QIO$_P3(R9)			; SAVE BCNT IN QIO LIST
                            6C   8F  02C8   818 	CASEB	QSC_NARGS(AP),-			; HANDLE PARAMETERS BY CASE
                            05       02CA   819 		#QSC_MINARGS,-
                            0A       02CB   820 		#QSC_MAXARGS
                                     02CC   821 30$:
                               005B' 02CC   822 	.WORD	QSC_THRU_DATA-30$		; PARAMETERS THRU DATA
                               002D' 02CE   823 	.WORD	QSC_THRU_MEM-30$		; PARAMETERS THRU MEM
                               0023' 02D0   824 	.WORD	QSC_THRU_IOSB-30$		; PARAMETERS THRU IOSB
                               001E' 02D2   825 	.WORD	QSC_THRU_EFN-30$		; PARAMETERS THRU EFN
                               0019' 02D4   826 	.WORD	QSC_THRU_AST-30$		; PARAMETERS THRU AST ADR
                               0014' 02D6   827 	.WORD	QSC_THRU_ASTP-30$		; PARAMETERS THRU AST PARM
                                     02D8   828 
                  50   029C 8F   3C  02D8   829 	MOVZWL	#SS$_TOOMUCHDATA,R0		; TOO MANY PARAMETERS
                          0065   31  02DD   830 	BRW	90$				; EXIT ROUTINE
                                     02E0   831 
                                     02E0   832 QSC_THRU_ASTP:
                         28 AC   D0  02E0   833 	MOVL	QSC_ASTP(AP),-			; COPY AST PARM TO QIO
CAM$BLIB                        BASIC CAMAC ACCESS PROCEDURE MODULE       6-JAN-1983 11:05:41  VAX-11 Macro V03-00         Page  18
V03-001                         CAM$QSCAN(W), CAMAC Q-SCAN/STOP ON WORD   5-JAN-1983 17:16:44  SYS$SYSROOT:[CAMAC.SOURCE.KS30202](1)

                         18 A9       02E3   834 		QIO$_ASTPRM(R9)			; PARM LIST
                                     02E5   835 QSC_THRU_AST:
                         24 AC   D0  02E5   836 	MOVL	QSC_AST(AP),-			; COPY AST PROC ADDRESS
                         14 A9       02E8   837 		QIO$_ASTADR(R9)			; TO QIO PARM LIST
                                     02EA   838 QSC_THRU_EFN:
                         20 AC   9A  02EA   839 	MOVZBL	QSC_EFN(AP),-			; COPY EVENT FLAG NUMB TO
                         04 A9       02ED   840 		QIO$_EFN(R9)			; QIO PARM LIST
                                     02EF   841 QSC_THRU_IOSB:
                         1C AC   D5  02EF   842 	TSTL	QSC_IOSB(AP)			; CHECK FOR VALID IOSB
                            05   13  02F2   843 	BEQL	QSC_THRU_MEM			; IF 0, NULL PARAMETER
                         1C AC   D0  02F4   844 	MOVL	QSC_IOSB(AP),-			; ELSE, ASSUME VALID IOSB
                         10 A9       02F7   845 		QIO$_IOSB(R9)			; ADDRESS FOR QIO
                                     02F9   846 QSC_THRU_MEM:
                         18 AC   D5  02F9   847 	TSTL	QSC_MEM(AP)			; CHECK IF MEM SPECIFIED
                            29   13  02FC   848 	BEQL	QSC_THRU_DATA			; IF 0, NULL PARAMETER
                    50   10 BC   3C  02FE   849 	MOVZWL	@QSC_COUNT(AP),R0		; GET TRANSFER COUNT
                  50   50   02   78  0302   850 	ASHL	#2,R0,R0			; CONVERT TO BYTE COUNT FOR
                                     0306   851 						; '24' BIT FORMAT
                            08   AA  0306   852 	BICW	#CSTS_M_M16,-			; CLEAR '16' MEM FORMAT
                            6A       0308   853 		CRP_W_CSTS(R10)
                    18   18 BC   91  0309   854 	CMPB	@QSC_MEM(AP),#24		; CHECK FOR '24' FORMAT
                            14   13  030D   855 	BEQL	60$				; IF MATCH, DONE
               50   50   FF 8F   78  030F   856 	ASHL	#-1,R0,R0			; CHANGE TO BYTE COUNT FOR
                                     0314   857 						; '16' BIT FORMAT
                            08   A8  0314   858 	BISW	#CSTS_M_M16,-			; SET CRP M16 FLAG
                            6A       0316   859 		CRP_W_CSTS(R10)
                    10   18 BC   91  0317   860 	CMPB	@QSC_MEM(AP),#16		; CHECK FOR '16' FORMAT
                            06   13  031B   861 	BEQL	60$				; IF MATCH, DONE
                       50   14   3C  031D   862 	MOVZWL	#SS$_BADPARAM,R0		; SET BAD PARAMETER
                          0022   31  0320   863 	BRW	90$				; EXIT ROUTINE
                                     0323   864 60$:
                    24 A9   50   3C  0323   865 	MOVZWL	R0,QIO$_P3(R9)			; SAVE BCNT IN QIO LIST
                                     0327   866 QSC_THRU_DATA:
                          035C   30  0327   867 	BSBW	CAM_BLDRTB			; BUILD CAMAC RTB
                         38 AA   9E  032A   868 	MOVAB	CRP_Q_RTB(R10),-		; ADDRESS OF RTB AS QIO P1
                         1C A9       032D   869 		QIO$_P1(R9)
                            01   E1  032F   870 	BBC	#CRPS_V_WAIT,-			; CHECK IF WAIT/PROCEED
                      0A 02 AA       0331   871 		CRP_W_STS(R10),80$		; IF 'WAIT' CLEAR, RETURN
                                     0334   872 	$QIOW_G	(R9)				; ISSUE QIO+WAIT CALL
                          0007   31  033B   873 	BRW	90$				; RETURN ON COMPLETION
                                     033E   874 80$:
                                     033E   875 	$QIO_G	(R9)				; ISSUE QIO CALL
                                     0345   876 	
                                     0345   877 90$:
                                 04  0345   878 	RET					; RETURN FROM PROCEDURE CALL
                                     0346   879 	.DSABL	LSB
CAM$BLIB                        BASIC CAMAC ACCESS PROCEDURE MODULE       6-JAN-1983 11:05:41  VAX-11 Macro V03-00         Page  19
V03-001                         CAM$QSTOP(W), CAMAC Q-STOP/STOP ON WORD   5-JAN-1983 17:16:44  SYS$SYSROOT:[CAMAC.SOURCE.KS30202](1)

                                     0346   881 	.SBTTL	CAM$QSTOP(W), CAMAC Q-STOP/STOP ON WORD COUNT PROCEDURE
                                     0346   882 	.ENABL	LSB
                                     0346   883 
                                     0346   884 ;+++
                                     0346   885 ;
                                     0346   886 ;	Procedure:
                                     0346   887 ;	CAM$QSTOP(W)(%DESCR(MODULE_NAME),A,F,COUNT,DATA[,MEM][,IOSB]
                                     0346   888 ;		[,EFN][,AST][,ASTPRM])
                                     0346   889 ;		Or
                                     0346   890 ;	CAM$QSTOP(W)(%DESCR(KEY),A,F,COUNT,DATA[,MEM][,IOSB]
                                     0346   891 ;		[,EFN][,AST][,ASTPRM])
                                     0346   892 ;
                                     0346   893 ;	Description:
                                     0346   894 ;	This procedure performs a CAMAC block transfer utilizing
                                     0346   895 ;	the Q-stop technique for controlling successive references
                                     0346   896 ;	to a given CAMAC module using a fixed subaddress and
                                     0346   897 ;	function code. A Q-stop transaction terminates when
                                     0346   898 ;	the referenced module returns a Q=0 response or the
                                     0346   899 ;	specified transfer count(COUNT) is exhausted or an
                                     0346   900 ;	anomolous condition is detected. If the I/O status block parameter
                                     0346   901 ;	is specified, the status of the CAMAC I/O operation is
                                     0346   902 ;	returned in that quadword buffer. If not, a quadword 
                                     0346   903 ;	in the CAMAC image block is used to receive the status.
                                     0346   904 ;
                                     0346   905 ;	If the proceed mode call(CAM$QSTOP) is used, control returns
                                     0346   906 ;	 to the caller as soon as the CAMAC request is queued to 
                                     0346   907 ;	the system. If the wait mode call(CAM$QSTOPW) is used, control 
                                     0346   908 ;	is returned to the calling program only when the CAMAC I/O 
                                     0346   909 ;	is complete. 
                                     0346   910 ;
                                     0346   911 ;	The I/O synchronization parameters(EFN, AST and ASTP) are used
                                     0346   912 ;	in the same manner as their counterparts in the QIO and QIOW
                                     0346   913 ;	system services. See the VAX System Services Reference Manual
                                     0346   914 ;	for further discussion if needed.
                                     0346   915 ;
                                     0346   916 ;	Parameters:
                                     0346   917 ;	MODULE_NAME- address of a CHARACTER variable containing an ASCII 
                                     0346   918 ;	character string identifying the CAMAC module to be referenced,
                                     0346   919 ;	KEY- address of a longword descriptor for the key value
                                     0346   920 ;		previously computed for the CAMAC module via
                                     0346   921 ;		calling the procedure CAM$ASSIGN,
                                     0346   922 ;	A- address of a byte containing CAMAC subaddress,
                                     0346   923 ;	F- address of a byte containing CAMAC function code,
                                     0346   924 ;	DATA- address of data buffer that contains CAMAC write data
                                     0346   925 ;		or that will receive CAMAC read data.
                                     0346   926 ;	COUNT- address of a word containing the CAMAC transfer
                                     0346   927 ;		count(in units of the memory format).
                                     0346   928 ;	MEM- address of a byte containing memory format for the
                                     0346   929 ;		CAMAC transaction(MEM=16; MEM=24). If not specified,
                                     0346   930 ;		the current CIB memory format specifier is used.
                                     0346   931 ;	IOSB- address of a quadword buffer to receive I/O completion
                                     0346   932 ;		status from the CAMAC request.
                                     0346   933 ;
                                     0346   934 ;	Optional I/O Synchronization Parameters:
                                     0346   935 ;	EFN- value specifying the number of a local event flag
                                     0346   936 ;		to be set upon I/O completion. If not specified, the
                                     0346   937 ;		default process event flag from the CAMAC image block
CAM$BLIB                        BASIC CAMAC ACCESS PROCEDURE MODULE       6-JAN-1983 11:05:41  VAX-11 Macro V03-00         Page  20
V03-001                         CAM$QSTOP(W), CAMAC Q-STOP/STOP ON WORD   5-JAN-1983 17:16:44  SYS$SYSROOT:[CAMAC.SOURCE.KS30202](1)

                                     0346   938 ;		is used,
                                     0346   939 ;	AST- address of an AST procedure to receive an I/O completion
                                     0346   940 ;		AST,
                                     0346   941 ;	ASTPRM- address of a longword containing a parameter to
                                     0346   942 ;		be passed to the specified AST procedure.
                                     0346   943 ;
                                     0346   944 ;
                                     0346   945 ;	Return Status:
                                     0346   946 ;
                                     0346   947 ;---
                                     0346   948 
                                     0346   949 
                                     0346   950 ;
                                     0346   951 ; PROCEDURE LOCAL DATA
                                     0346   952 ;
                           00000000  0346   953 QST_NARGS	= 0				; ARGUMENT COUNT
                           00000004  0346   954 QST_MOD		= 4				; MODULE NAME/KEY VALUE
                           00000008  0346   955 QST_A		= 8				; SUBADDRESS
                           0000000C  0346   956 QST_F		= 12				; FUNCTION CODE
                           00000010  0346   957 QST_COUNT	= 16				; TRANSFER COUNT
                           00000014  0346   958 QST_DATA	= 20				; DATA BUFFER
                           00000018  0346   959 QST_MEM		= 24				; MEMORY FORMAT(OPTIONAL)
                           0000001C  0346   960 QST_IOSB	= 28				; IOSB OFFSET
                           00000020  0346   961 QST_EFN		= 32				; EVENT FLAG VALUE
                           00000024  0346   962 QST_AST		= 36				; AST PROCEDURE ADDRESS
                           00000028  0346   963 QST_ASTP	= 40				; AST PARAMETER VALUE
                           00000005  0346   964 QST_MINARGS	= 5				; MINIMUM ARG COUNT
                           0000000A  0346   965 QST_MAXARGS	= 10				; MAXIMUM ARG COUNT
                                     0346   966 
                                     0346   967 
                                     0346   968 ;
                                     0346   969 ;	WAIT MODE ENTRY POINT
                                     0346   970 ;
                               0E3C  0346   971 	.ENTRY	CAM$QSTOPW,^M<R2,R3,R4,R5,R9,R10,R11>
                                     0348   972 
                       59   01   CE  0348   973 	MNEGL	#1,R9				; SET WAIT MODE INDICATOR
                            04   11  034B   974 	BRB	CAM_QSTOP			; JOIN COMMON FLOW
                                     034D   975 
                                     034D   976 ;
                                     034D   977 ;	PROCEED MODE ENTRY POINT
                                     034D   978 ;
                                     034D   979 
                               0E3C  034D   980 	.ENTRY	CAM$QSTOP,^M<R2,R3,R4,R5,R9,R10,R11>
                                     034F   981 
                            59   D4  034F   982 	CLRL	R9				; RESET WAIT MODE INDICATOR
                                     0351   983 
                                     0351   984 CAM_QSTOP:					; COMMON QSTOP FLOW
              5B   00000000'GF   9E  0351   985 	MOVAB	G^CAM_CIB,R11			; GET CAMAC IMAGE BLOCK ADDRESS
                            00   E0  0358   986 	BBS	#PSTS_V_JIBV,-			; IS JIB INFO VALID?
                      06 08 AB       035A   987 		CIB_L_PSTS(R11),10$		; IF SO, CONTINUE WITH IT
                   00000000'GF   16  035D   988 	JSB	G^CAM_GETJIB			; ELSE, GET NEW JIB/PCB INFO
                                     0363   989 10$:
                            6C   91  0363   990 	CMPB	QST_NARGS(AP),-			; CHECK AGANIST MIN ARG COUNT
                            05       0365   991 		#QST_MINARGS
                            0A   18  0366   992 	BGEQ	20$				; IF SUFFICIENT, CONTINUE
              50   00000114 8F   D0  0368   993 	MOVL	#SS$_INSFARG,R0			; SET INSUFF ARGS STATUS
                          00E8   31  036F   994 	BRW	90$				; EXIT ROUTINE
CAM$BLIB                        BASIC CAMAC ACCESS PROCEDURE MODULE       6-JAN-1983 11:05:41  VAX-11 Macro V03-00         Page  21
V03-001                         CAM$QSTOP(W), CAMAC Q-STOP/STOP ON WORD   5-JAN-1983 17:16:44  SYS$SYSROOT:[CAMAC.SOURCE.KS30202](1)

                                     0372   995 20$:
                                     0372   996 	ALOSTAK	#CRP_K_LENGTH,R10		; ALLOCATE CRP ON STACK
                   00000000'GF   16  037C   997 	JSB	G^CAM_INITCRP			; INITIALIZE CRP
                  01   01   59   F0  0382   998 	INSV	R9,#CRPS_V_WAIT,#CRPS_S_WAIT,-	; INSERT WAIT/PROCEED FLAG
                         02 AA       0386   999 		CRP_W_STS(R10)			; INTO CRP STATUS
                         0E AB   B0  0388  1000 	MOVW	CIB_W_CSTS(R11),-		; COPY CIB CAMAC STATE TO
                            6A       038B  1001 		CRP_W_CSTS(R10)			; CRP CAMAC STATUS WORD
                    51   04 AC   D0  038C  1002 	MOVL	QST_MOD(AP),R1			; ADDRESS OF MODULE DESCRIPTOR
                   00000000'GF   16  0390  1003 	JSB	G^CAM_MODULE			; GET MODULE PARAMETERS
                         03 50   E8  0396  1004 	BLBS	R0,120$				; SUCCESS? CONTINUE IF SO.
                          00BE   31  0399  1005 	BRW	90$				; EXIT ROUTINE IF NOT
                                     039C  1006 120$:
                    4A AA   02   90  039C  1007 	MOVB	#2,CRP_B_MODE(R10)		; SET CAMAC MODE
                 4D AA   08 BC   90  03A0  1008 	MOVB	@QST_A(AP),CRP_B_A(R10)		; COPY CAMAC SUBADDRESS
                 4E AA   0C BC   90  03A5  1009 	MOVB	@QST_F(AP),CRP_B_F(R10)		; COPY CAMAC FUNCTION
                    59   04 AA   9E  03AA  1010 	MOVAB	CRP_L_QIOL(R10),R9		; USE R9 FOR QIO LIST POINTER
                       69   0C   9A  03AE  1011 	MOVZBL	#QIO$_NARGS,(R9)		; SET QIO ARG COUNT
                         24 AB   9A  03B1  1012 	MOVZBL	CIB_B_EFN(R11),-		; USE DEFAULT EFN
                         04 A9       03B4  1013 		QIO$_EFN(R9)
                            6B   9E  03B6  1014 	MOVAB	CIB_Q_IOSB(R11),-		; DEFAULT TO CIB IOSB
                         10 A9       03B8  1015 		QIO$_IOSB(R9)
                         48 AA   3C  03BA  1016 	MOVZWL	CRP_W_CHAN(R10),-		; SAVE VMS CHANNEL NUMBER
                         08 A9       03BD  1017 		QIO$_CHAN(R9)
                            32   3C  03BF  1018 	MOVZWL	#IO$_CAMIO,-			; QIO FUNCTION CODE
                         0C A9       03C1  1019 		QIO$_FUNC(R9)
                         14 AC   D0  03C3  1020 	MOVL	QST_DATA(AP),-			; SAVE DATA BUFFER ADDR
                         20 A9       03C6  1021 		QIO$_P2(R9)			; IN QIO LIST
                    50   10 BC   3C  03C8  1022 	MOVZWL	@QST_COUNT(AP),R0		; GET TRANSFER COUNT
                  50   50   02   78  03CC  1023 	ASHL	#2,R0,R0			; CONVERT TO BYTE COUNT
                                     03D0  1024 						; FOR '24' BIT FORMAT
                            03   E1  03D0  1025 	BBC	#CSTS_V_M16,-			; CHECK CRP MEM STATE
                         05 6A       03D2  1026 		CRP_W_CSTS(R10),50$		; IF '16', SKIP
               50   50   FF 8F   78  03D4  1027 	ASHL	#-1,R0,R0			; CHANGE TO BYTE COUNT FOR
                                     03D9  1028 						; '16' BIT FORMAT
                                     03D9  1029 50$:
                    24 A9   50   3C  03D9  1030 	MOVZWL	R0,QIO$_P3(R9)			; SAVE BCNT IN QIO LIST
                            6C   8F  03DD  1031 	CASEB	QST_NARGS(AP),-			; HANDLE PARAMETERS BY CASE
                            05       03DF  1032 		#QST_MINARGS,-
                            0A       03E0  1033 		#QST_MAXARGS
                                     03E1  1034 30$:
                               005B' 03E1  1035 	.WORD	QST_THRU_DATA-30$		; PARAMETERS THRU DATA
                               002D' 03E3  1036 	.WORD	QST_THRU_MEM-30$		; PARAMETERS THRU MEM
                               0023' 03E5  1037 	.WORD	QST_THRU_IOSB-30$		; PARAMETERS THRU IOSB
                               001E' 03E7  1038 	.WORD	QST_THRU_EFN-30$		; PARAMETERS THRU EFN
                               0019' 03E9  1039 	.WORD	QST_THRU_AST-30$		; PARAMETERS THRU AST ADR
                               0014' 03EB  1040 	.WORD	QST_THRU_ASTP-30$		; PARAMETERS THRU AST PARM
                                     03ED  1041 
                  50   029C 8F   3C  03ED  1042 	MOVZWL	#SS$_TOOMUCHDATA,R0		; TOO MANY PARAMETERS
                          0065   31  03F2  1043 	BRW	90$				; EXIT ROUTINE
                                     03F5  1044 
                                     03F5  1045 QST_THRU_ASTP:
                         28 AC   D0  03F5  1046 	MOVL	QST_ASTP(AP),-			; COPY AST PARM TO QIO
                         18 A9       03F8  1047 		QIO$_ASTPRM(R9)			; PARM LIST
                                     03FA  1048 QST_THRU_AST:
                         24 AC   D0  03FA  1049 	MOVL	QST_AST(AP),-			; COPY AST PROC ADDRESS
                         14 A9       03FD  1050 		QIO$_ASTADR(R9)			; TO QIO PARM LIST
                                     03FF  1051 QST_THRU_EFN:
CAM$BLIB                        BASIC CAMAC ACCESS PROCEDURE MODULE       6-JAN-1983 11:05:41  VAX-11 Macro V03-00         Page  22
V03-001                         CAM$QSTOP(W), CAMAC Q-STOP/STOP ON WORD   5-JAN-1983 17:16:44  SYS$SYSROOT:[CAMAC.SOURCE.KS30202](1)

                         20 AC   9A  03FF  1052 	MOVZBL	QST_EFN(AP),-			; COPY EVENT FLAG NUMB TO
                         04 A9       0402  1053 		QIO$_EFN(R9)			; QIO PARM LIST
                                     0404  1054 QST_THRU_IOSB:
                         1C AC   D5  0404  1055 	TSTL	QST_IOSB(AP)			; CHECK FOR VALID IOSB
                            05   13  0407  1056 	BEQL	QST_THRU_MEM			; IF 0, NULL PARAMETER
                         1C AC   D0  0409  1057 	MOVL	QST_IOSB(AP),-			; ELSE, ASSUME VALID IOSB
                         10 A9       040C  1058 		QIO$_IOSB(R9)			; ADDRESS FOR QIO
                                     040E  1059 QST_THRU_MEM:
                         18 AC   D5  040E  1060 	TSTL	QST_MEM(AP)			; CHECK IF MEM SPECIFIED
                            29   13  0411  1061 	BEQL	QST_THRU_DATA			; IF 0, NULL PARAMETER
                    50   10 BC   3C  0413  1062 	MOVZWL	@QST_COUNT(AP),R0		; GET TRANSFER COUNT
                  50   50   02   78  0417  1063 	ASHL	#2,R0,R0			; CONVERT TO BYTE COUNT FOR
                                     041B  1064 						; '24' BIT FORMAT
                            08   AA  041B  1065 	BICW	#CSTS_M_M16,-			; CLEAR '16' MEM FORMAT
                            6A       041D  1066 		CRP_W_CSTS(R10)
                    18   18 BC   91  041E  1067 	CMPB	@QST_MEM(AP),#24		; CHECK FOR '24' FORMAT
                            14   13  0422  1068 	BEQL	60$				; IF MATCH, DONE
               50   50   FF 8F   78  0424  1069 	ASHL	#-1,R0,R0			; CHANGE TO BYTE COUNT FOR
                                     0429  1070 						; '16' BIT FORMAT
                            08   A8  0429  1071 	BISW	#CSTS_M_M16,-			; SET CRP M16 FLAG
                            6A       042B  1072 		CRP_W_CSTS(R10)
                    10   18 BC   91  042C  1073 	CMPB	@QST_MEM(AP),#16		; CHECK FOR '16' FORMAT
                            06   13  0430  1074 	BEQL	60$				; IF MATCH, DONE
                       50   14   3C  0432  1075 	MOVZWL	#SS$_BADPARAM,R0		; SET BAD PARAMETER
                          0022   31  0435  1076 	BRW	90$				; EXIT ROUTINE
                                     0438  1077 60$:
                    24 A9   50   3C  0438  1078 	MOVZWL	R0,QIO$_P3(R9)			; SAVE BCNT IN QIO LIST
                                     043C  1079 QST_THRU_DATA:
                          0247   30  043C  1080 	BSBW	CAM_BLDRTB			; BUILD CAMAC RTB
                         38 AA   9E  043F  1081 	MOVAB	CRP_Q_RTB(R10),-		; ADDRESS OF RTB AS QIO P1
                         1C A9       0442  1082 		QIO$_P1(R9)
                            01   E1  0444  1083 	BBC	#CRPS_V_WAIT,-			; CHECK IF WAIT/PROCEED
                      0A 02 AA       0446  1084 		CRP_W_STS(R10),80$		; IF 'WAIT' CLEAR, RETURN
                                     0449  1085 	$QIOW_G	(R9)				; ISSUE QIO+WAIT CALL
                          0007   31  0450  1086 	BRW	90$				; RETURN ON COMPLETION
                                     0453  1087 80$:
                                     0453  1088 	$QIO_G	(R9)				; ISSUE QIO CALL
                                     045A  1089 	
                                     045A  1090 90$:
                                 04  045A  1091 	RET					; RETURN FROM PROCEDURE CALL
                                     045B  1092 	.DSABL	LSB
                                 04  045B  1093 	RET					; RETURN TO CALLER
                                     045C  1094 	.DSABL	LSB
CAM$BLIB                        BASIC CAMAC ACCESS PROCEDURE MODULE       6-JAN-1983 11:05:41  VAX-11 Macro V03-00         Page  23
V03-001                         CAM$STOP(W), CAMAC STOP ON WORD COUNT PR  5-JAN-1983 17:16:44  SYS$SYSROOT:[CAMAC.SOURCE.KS30202](1)

                                     045C  1096 	.SBTTL	CAM$STOP(W), CAMAC STOP ON WORD COUNT PROCEDURE
                                     045C  1097 	.ENABL	LSB
                                     045C  1098 
                                     045C  1099 ;+++
                                     045C  1100 ;
                                     045C  1101 ;	Procedure:
                                     045C  1102 ;	CAM$STOP(W)(%DESCR(MODULE_NAME),A,F,COUNT,DATA[,MEM][,IOSB]
                                     045C  1103 ;		[,EFN][,AST][,ASTPRM])
                                     045C  1104 ;
                                     045C  1105 ;		Or
                                     045C  1106 ;	CAM$STOP(W)(%DESCR(KEY),A,F,COUNT,DATA,[,MEM][,IOSB]
                                     045C  1107 ;		[,EFN][,AST][,ASTPRM])
                                     045C  1108 ;
                                     045C  1109 ;	Description:
                                     045C  1110 ;	This procedure performs a CAMAC block transfer utilizing
                                     045C  1111 ;	only the specified transfer count(COUNT) to control the
                                     045C  1112 ;	number of times the specified CAMAC module is referenced
                                     045C  1113 ;	using a fixed subaddress(A) and function code(F). The
                                     045C  1114 ;	transaction terminates when either the transfer count is
                                     045C  1115 ;	exhausted or an anomolous condition is detected.
                                     045C  1116 ;	If the I/O status block parameter is specified, the
                                     045C  1117 ;	status of the CAMAC I/O operation is returned to that
                                     045C  1118 ;	quadword buffer. If not, the status is returned to a
                                     045C  1119 ;	quadword buffer in the CAMAC image block.
                                     045C  1120 ;
                                     045C  1121 ;	If the proceed mode call(CAM$STOP) is used, control returns
                                     045C  1122 ;	 to the caller as soon as the CAMAC request is queued to 
                                     045C  1123 ;	the system. If the wait mode call(CAM$STOPW) is used, control 
                                     045C  1124 ;	is returned to the calling program only when the CAMAC I/O 
                                     045C  1125 ;	is complete. 
                                     045C  1126 ;
                                     045C  1127 ;	The I/O synchronization parameters(EFN, AST and ASTP) are used
                                     045C  1128 ;	in the same manner as their counterparts in the QIO and QIOW
                                     045C  1129 ;	system services. See the VAX System Services Reference Manual
                                     045C  1130 ;	for further discussion if needed.
                                     045C  1131 ;
                                     045C  1132 ;
                                     045C  1133 ;	Parameters:
                                     045C  1134 ;	MODULE_NAME- address of a CHARACTER variable containing an ASCII 
                                     045C  1135 ;		character string identifying the CAMAC module to be referenced,
                                     045C  1136 ;	KEY- address of a longword descriptor for the key value
                                     045C  1137 ;		previously computed for the CAMAC module via
                                     045C  1138 ;		calling the procedure CAM$ASSIGN,
                                     045C  1139 ;	A- address of a byte containing CAMAC subaddress,
                                     045C  1140 ;	F- address of a byte containing CAMAC function code,
                                     045C  1141 ;	DATA- address of data buffer that contains CAMAC write data
                                     045C  1142 ;		or that will receive CAMAC read data.
                                     045C  1143 ;	COUNT- address of a word containing the CAMAC transfer
                                     045C  1144 ;		count(in units of the memory format).
                                     045C  1145 ;	MEM- address of a byte containing memory format for the
                                     045C  1146 ;		CAMAC transaction(MEM=16; MEM=24). If not specified,
                                     045C  1147 ;		the current CIB memory format specifier is used,
                                     045C  1148 ;	IOSB- address of a quadword buffer to receive I/O completion
                                     045C  1149 ;		status from the CAMAC request.
                                     045C  1150 ;
                                     045C  1151 ;	Optional I/O Synchronization Parameters:
                                     045C  1152 ;	EFN- value specifying the number of a local event flag
CAM$BLIB                        BASIC CAMAC ACCESS PROCEDURE MODULE       6-JAN-1983 11:05:41  VAX-11 Macro V03-00         Page  24
V03-001                         CAM$STOP(W), CAMAC STOP ON WORD COUNT PR  5-JAN-1983 17:16:44  SYS$SYSROOT:[CAMAC.SOURCE.KS30202](1)

                                     045C  1153 ;		to be set upon I/O completion. If not specified, the
                                     045C  1154 ;		default process event flag from the CAMAC image block
                                     045C  1155 ;		is used,
                                     045C  1156 ;	AST- address of an AST procedure to receive an I/O completion
                                     045C  1157 ;		AST,
                                     045C  1158 ;	ASTPRM- address of a longword containing a parameter to
                                     045C  1159 ;		be passed to the specified AST procedure.
                                     045C  1160 ;
                                     045C  1161 ;
                                     045C  1162 ;	Return Status:
                                     045C  1163 ;
                                     045C  1164 ;---
                                     045C  1165 
                                     045C  1166 
                                     045C  1167 ;
                                     045C  1168 ; PROCEDURE LOCAL DATA
                                     045C  1169 ;
                           00000000  045C  1170 STP_NARGS	= 0				; ARGUMENT COUNT
                           00000004  045C  1171 STP_MOD		= 4				; MODULE NAME/KEY VALUE
                           00000008  045C  1172 STP_A		= 8				; SUBADDRESS
                           0000000C  045C  1173 STP_F		= 12				; FUNCTION CODE
                           00000010  045C  1174 STP_COUNT	= 16				; TRANSFER COUNT
                           00000014  045C  1175 STP_DATA	= 20				; DATA BUFFER
                           00000018  045C  1176 STP_MEM		= 24				; MEMORY FORMAT(OPTIONAL)
                           0000001C  045C  1177 STP_IOSB	= 28				; IOSB OFFSET
                           00000020  045C  1178 STP_EFN		= 32				; EVENT FLAG VALUE
                           00000024  045C  1179 STP_AST		= 36				; AST PROCEDURE ADDRESS
                           00000028  045C  1180 STP_ASTP	= 40				; AST PARAMETER VALUE
                                     045C  1181 
                           00000005  045C  1182 STP_MINARGS	= 5				; MIN ARG COUNT
                           0000000A  045C  1183 STP_MAXARGS	= 10				; MAX ARG COUNT
                                     045C  1184 
                                     045C  1185 ;
                                     045C  1186 ;	WAIT MODE ENTRY POINT
                                     045C  1187 ;
                               0E3C  045C  1188 	.ENTRY	CAM$STOPW,^M<R2,R3,R4,R5,R9,R10,R11>
                                     045E  1189 
                       59   01   CE  045E  1190 	MNEGL	#1,R9				; SET WAIT MODE INDICATOR
                            04   11  0461  1191 	BRB	CAM_STOP			; JOIN COMMON FLOW
                                     0463  1192 
                                     0463  1193 ;
                                     0463  1194 ;	PROCEED MODE ENTRY POINT
                                     0463  1195 ;
                               0E3C  0463  1196 	.ENTRY	CAM$STOP,^M<R2,R3,R4,R5,R9,R10,R11>
                                     0465  1197 
                            59   D4  0465  1198 	CLRL	R9				; RESET WAIT MODE INDICATOR
                                     0467  1199 
                                     0467  1200 CAM_STOP:					; COMMON STOP FLOW
              5B   00000000'GF   9E  0467  1201 	MOVAB	G^CAM_CIB,R11			; GET CAMAC IMAGE BLOCK ADDRESS
                            00   E0  046E  1202 	BBS	#PSTS_V_JIBV,-			; IS JIB INFO VALID?
                      06 08 AB       0470  1203 		CIB_L_PSTS(R11),10$		; IF SO, CONTINUE WITH IT
                   00000000'GF   16  0473  1204 	JSB	G^CAM_GETJIB			; ELSE, GET NEW JIB/PCB INFO
                                     0479  1205 10$:
                            6C   91  0479  1206 	CMPB	STP_NARGS(AP),-			; CHECK AGANIST MIN ARG COUNT
                            05       047B  1207 		#STP_MINARGS
                            0A   18  047C  1208 	BGEQ	20$				; IF SUFFICIENT, CONTINUE
              50   00000114 8F   D0  047E  1209 	MOVL	#SS$_INSFARG,R0			; SET INSUFF ARGS STATUS
CAM$BLIB                        BASIC CAMAC ACCESS PROCEDURE MODULE       6-JAN-1983 11:05:41  VAX-11 Macro V03-00         Page  25
V03-001                         CAM$STOP(W), CAMAC STOP ON WORD COUNT PR  5-JAN-1983 17:16:44  SYS$SYSROOT:[CAMAC.SOURCE.KS30202](1)

                          00E8   31  0485  1210 	BRW	90$				; EXIT ROUTINE
                                     0488  1211 20$:
                                     0488  1212 	ALOSTAK	#CRP_K_LENGTH,R10		; ALLOCATE CRP ON STACK
                   00000000'GF   16  0492  1213 	JSB	G^CAM_INITCRP			; INITIALIZE CRP
                  01   01   59   F0  0498  1214 	INSV	R9,#CRPS_V_WAIT,#CRPS_S_WAIT,-	; INSERT WAIT/PROCEED FLAG
                         02 AA       049C  1215 		CRP_W_STS(R10)			; INTO CRP STATUS
                         0E AB   B0  049E  1216 	MOVW	CIB_W_CSTS(R11),-		; COPY CIB CAMAC STATE TO
                            6A       04A1  1217 		CRP_W_CSTS(R10)			; CRP CAMAC STATUS WORD
                    51   04 AC   D0  04A2  1218 	MOVL	STP_MOD(AP),R1			; ADDRESS OF MODULE DESCRIPTOR
                   00000000'GF   16  04A6  1219 	JSB	G^CAM_MODULE			; GET MODULE PARAMETERS
                         03 50   E8  04AC  1220 	BLBS	R0,120$				; SUCCESS? CONTINUE IF SO.
                          00BE   31  04AF  1221 	BRW	90$				; EXIT ROUTINE IF NOT
                                     04B2  1222 120$:
                    4A AA   03   90  04B2  1223 	MOVB	#3,CRP_B_MODE(R10)		; SET CAMAC MODE
                 4D AA   08 BC   90  04B6  1224 	MOVB	@STP_A(AP),CRP_B_A(R10)		; COPY CAMAC SUBADDRESS
                 4E AA   0C BC   90  04BB  1225 	MOVB	@STP_F(AP),CRP_B_F(R10)		; COPY CAMAC FUNCTION CODE
                    59   04 AA   9E  04C0  1226 	MOVAB	CRP_L_QIOL(R10),R9		; USE R9 FOR QIO LIST POINTER
                       69   0C   9A  04C4  1227 	MOVZBL	#QIO$_NARGS,(R9)		; SET QIO ARG COUNT
                         24 AB   9A  04C7  1228 	MOVZBL	CIB_B_EFN(R11),-		; USE DEFAULT EFN
                         04 A9       04CA  1229 		QIO$_EFN(R9)
                            6B   9E  04CC  1230 	MOVAB	CIB_Q_IOSB(R11),-		; DEFAULT TO CIB IOSB
                         10 A9       04CE  1231 		QIO$_IOSB(R9)
                         48 AA   3C  04D0  1232 	MOVZWL	CRP_W_CHAN(R10),-		; SAVE VMS CHANNEL NUMBER
                         08 A9       04D3  1233 		QIO$_CHAN(R9)
                            32   3C  04D5  1234 	MOVZWL	#IO$_CAMIO,-			; QIO FUNCTION CODE
                         0C A9       04D7  1235 		QIO$_FUNC(R9)
                         14 AC   D0  04D9  1236 	MOVL	STP_DATA(AP),-			; SAVE DATA BUFFER ADDR
                         20 A9       04DC  1237 		QIO$_P2(R9)			; IN QIO LIST
                    50   10 BC   3C  04DE  1238 	MOVZWL	@STP_COUNT(AP),R0		; GET TRANSFER COUNT
                  50   50   02   78  04E2  1239 	ASHL	#2,R0,R0			; CONVERT TO BYTE COUNT
                                     04E6  1240 						; FOR '24' BIT FORMAT
                            03   E1  04E6  1241 	BBC	#CSTS_V_M16,-			; CHECK CRP MEM STATE
                         05 6A       04E8  1242 		CRP_W_CSTS(R10),50$		; IF '16', SKIP
               50   50   FF 8F   78  04EA  1243 	ASHL	#-1,R0,R0			; CHANGE TO BYTE COUNT FOR
                                     04EF  1244 						; '16' BIT FORMAT
                                     04EF  1245 50$:
                    24 A9   50   3C  04EF  1246 	MOVZWL	R0,QIO$_P3(R9)			; SAVE BCNT IN QIO LIST
                            6C   8F  04F3  1247 	CASEB	STP_NARGS(AP),-			; HANDLE PARAMETERS BY CASE
                            05       04F5  1248 		#STP_MINARGS,-
                            0A       04F6  1249 		#STP_MAXARGS
                                     04F7  1250 30$:
                               005B' 04F7  1251 	.WORD	STP_THRU_DATA-30$		; PARAMETERS THRU DATA
                               002D' 04F9  1252 	.WORD	STP_THRU_MEM-30$		; PARAMETERS THRU MEM
                               0023' 04FB  1253 	.WORD	STP_THRU_IOSB-30$		; PARAMETERS THRU IOSB
                               001E' 04FD  1254 	.WORD	STP_THRU_EFN-30$		; PARAMETERS THRU EFN
                               0019' 04FF  1255 	.WORD	STP_THRU_AST-30$		; PARAMETERS THRU AST ADR
                               0014' 0501  1256 	.WORD	STP_THRU_ASTP-30$		; PARAMETERS THRU AST PARM
                                     0503  1257 
                  50   029C 8F   3C  0503  1258 	MOVZWL	#SS$_TOOMUCHDATA,R0		; TOO MANY PARAMETERS
                          0065   31  0508  1259 	BRW	90$				; EXIT ROUTINE
                                     050B  1260 
                                     050B  1261 STP_THRU_ASTP:
                         28 AC   D0  050B  1262 	MOVL	STP_ASTP(AP),-			; COPY AST PARM TO QIO
                         18 A9       050E  1263 		QIO$_ASTPRM(R9)			; PARM LIST
                                     0510  1264 STP_THRU_AST:
                         24 AC   D0  0510  1265 	MOVL	STP_AST(AP),-			; COPY AST PROC ADDRESS
                         14 A9       0513  1266 		QIO$_ASTADR(R9)			; TO QIO PARM LIST
CAM$BLIB                        BASIC CAMAC ACCESS PROCEDURE MODULE       6-JAN-1983 11:05:41  VAX-11 Macro V03-00         Page  26
V03-001                         CAM$STOP(W), CAMAC STOP ON WORD COUNT PR  5-JAN-1983 17:16:44  SYS$SYSROOT:[CAMAC.SOURCE.KS30202](1)

                                     0515  1267 STP_THRU_EFN:
                         20 AC   9A  0515  1268 	MOVZBL	STP_EFN(AP),-			; COPY EVENT FLAG NUMB TO
                         04 A9       0518  1269 		QIO$_EFN(R9)			; QIO PARM LIST
                                     051A  1270 STP_THRU_IOSB:
                         1C AC   D5  051A  1271 	TSTL	STP_IOSB(AP)			; CHECK FOR VALID IOSB
                            05   13  051D  1272 	BEQL	STP_THRU_MEM			; IF 0, NULL PARAMETER
                         1C AC   D0  051F  1273 	MOVL	STP_IOSB(AP),-			; ELSE, ASSUME VALID IOSB
                         10 A9       0522  1274 		QIO$_IOSB(R9)			; ADDRESS FOR QIO
                                     0524  1275 STP_THRU_MEM:
                         18 AC   D5  0524  1276 	TSTL	STP_MEM(AP)			; CHECK IF MEM SPECIFIED
                            29   13  0527  1277 	BEQL	STP_THRU_DATA			; IF 0, NULL PARAMETER
                    50   10 BC   3C  0529  1278 	MOVZWL	@STP_COUNT(AP),R0		; GET TRANSFER COUNT
                  50   50   02   78  052D  1279 	ASHL	#2,R0,R0			; CONVERT TO BYTE COUNT FOR
                                     0531  1280 						; '24' BIT FORMAT
                            08   AA  0531  1281 	BICW	#CSTS_M_M16,-			; CLEAR '16' MEM FORMAT
                            6A       0533  1282 		CRP_W_CSTS(R10)
                    18   18 BC   91  0534  1283 	CMPB	@STP_MEM(AP),#24		; CHECK FOR '24' FORMAT
                            14   13  0538  1284 	BEQL	60$				; IF MATCH, DONE
               50   50   FF 8F   78  053A  1285 	ASHL	#-1,R0,R0			; CHANGE TO BYTE COUNT FOR
                                     053F  1286 						; '16' BIT FORMAT
                            08   A8  053F  1287 	BISW	#CSTS_M_M16,-			; SET CRP M16 FLAG
                            6A       0541  1288 		CRP_W_CSTS(R10)
                    10   18 BC   91  0542  1289 	CMPB	@STP_MEM(AP),#16		; CHECK FOR '16' FORMAT
                            06   13  0546  1290 	BEQL	60$				; IF MATCH, DONE
                       50   14   3C  0548  1291 	MOVZWL	#SS$_BADPARAM,R0		; SET BAD PARAMETER
                          0022   31  054B  1292 	BRW	90$				; EXIT ROUTINE
                                     054E  1293 60$:
                    24 A9   50   3C  054E  1294 	MOVZWL	R0,QIO$_P3(R9)			; SAVE BCNT IN QIO LIST
                                     0552  1295 STP_THRU_DATA:
                          0131   30  0552  1296 	BSBW	CAM_BLDRTB			; BUILD CAMAC RTB
                         38 AA   9E  0555  1297 	MOVAB	CRP_Q_RTB(R10),-		; ADDRESS OF RTB AS QIO P1
                         1C A9       0558  1298 		QIO$_P1(R9)
                            01   E1  055A  1299 	BBC	#CRPS_V_WAIT,-			; CHECK IF WAIT/PROCEED
                      0A 02 AA       055C  1300 		CRP_W_STS(R10),80$		; IF 'WAIT' CLEAR, RETURN
                                     055F  1301 	$QIOW_G	(R9)				; ISSUE QIO+WAIT CALL
                          0007   31  0566  1302 	BRW	90$				; RETURN ON COMPLETION
                                     0569  1303 80$:
                                     0569  1304 	$QIO_G	(R9)				; ISSUE QIO CALL
                                     0570  1305 	
                                     0570  1306 90$:
                                 04  0570  1307 	RET					; RETURN FROM PROCEDURE CALL
                                     0571  1308 	.DSABL	LSB
CAM$BLIB                        BASIC CAMAC ACCESS PROCEDURE MODULE       6-JAN-1983 11:05:41  VAX-11 Macro V03-00         Page  27
V03-001                         CAM$QREP(W), CAMAC Q-REPEAT PROCEDURE     5-JAN-1983 17:16:44  SYS$SYSROOT:[CAMAC.SOURCE.KS30202](1)

                                     0571  1310 	.SBTTL	CAM$QREP(W), CAMAC Q-REPEAT PROCEDURE
                                     0571  1311 	.ENABL	LSB
                                     0571  1312 
                                     0571  1313 ;+++
                                     0571  1314 ;
                                     0571  1315 ;	Procedure:
                                     0571  1316 ;	CAM$QREP(W)(%DESCR(MODULE_NAME),A,F,COUNT,DATA[,MEM][,IOSB]
                                     0571  1317 ;		[,EFN][,AST][,ASTPRM])
                                     0571  1318 ;
                                     0571  1319 ;		Or
                                     0571  1320 ;	CAM$QREP(W)(%DESCR(KEY),A,F,COUNT,DATA,[,MEM][,IOSB]
                                     0571  1321 ;		[,EFN][,AST][,ASTPRM])
                                     0571  1322 ;
                                     0571  1323 ;	Description:
                                     0571  1324 ;	This procedure performs a CAMAC block transfer utilizing
                                     0571  1325 ;	the module Q response to determine when the module has
                                     0571  1326 ;	responded with valid data or is ready to accept data. 
                                     0571  1327 ;	A Q response of 0 indicates valid data was not transmitted or
                                     0571  1328 ;	data was not accepted by the module. No DMA store/fetch 
                                     0571  1329 ;	operation is initiated and the A and F(and possibly data) are
                                     0571  1330 ;	repeated to the module. A Q response of 1 indicates
                                     0571  1331 ;	valid data was transmitted or data was accepted by the module.
                                     0571  1332 ;	Data is	stored/fetched and the A and F are repeated again.
                                     0571  1333 ;	The transaction terminates when (1) the specified transfer 
                                     0571  1334 ;	count(COUNT) is exhausted, (2) when the device driver software
                                     0571  1335 ;	timeout is exhausted or (3) an anomolous condition is
                                     0571  1336 ;	detected during the CAMAC transaction.
                                     0571  1337 
                                     0571  1338 ;	If the I/O status block parameter is specified, the
                                     0571  1339 ;	status of the CAMAC I/O operation is returned to that
                                     0571  1340 ;	quadword buffer. If not, the status is returned to a
                                     0571  1341 ;	quadword buffer in the CAMAC image block.
                                     0571  1342 ;
                                     0571  1343 ;	If the proceed mode call(CAM$QREP) is used, control returns
                                     0571  1344 ;	 to the caller as soon as the CAMAC request is queued to 
                                     0571  1345 ;	the system. If the wait mode call(CAM$QREPW) is used, control 
                                     0571  1346 ;	is returned to the calling program only when the CAMAC I/O 
                                     0571  1347 ;	is complete. 
                                     0571  1348 ;
                                     0571  1349 ;	The I/O synchronization parameters(EFN, AST and ASTP) are used
                                     0571  1350 ;	in the same manner as their counterparts in the QIO and QIOW
                                     0571  1351 ;	system services. See the VAX System Services Reference Manual
                                     0571  1352 ;	for further discussion if needed.
                                     0571  1353 ;
                                     0571  1354 ;
                                     0571  1355 ;	Parameters:
                                     0571  1356 ;	MODULE_NAME- address of a CHARACTER variable containing an ASCII 
                                     0571  1357 ;		character string identifying the CAMAC module to be referenced,
                                     0571  1358 ;	KEY- address of a longword descriptor for the key value
                                     0571  1359 ;		previously computed for the CAMAC module via
                                     0571  1360 ;		calling the procedure CAM$ASSIGN,
                                     0571  1361 ;	A- address of a byte containing CAMAC subaddress,
                                     0571  1362 ;	F- address of a byte containing CAMAC function code,
                                     0571  1363 ;	DATA- address of data buffer that contains CAMAC write data
                                     0571  1364 ;		or that will receive CAMAC read data.
                                     0571  1365 ;	COUNT- address of a word containing the CAMAC transfer
                                     0571  1366 ;		count(in units of the memory format).
CAM$BLIB                        BASIC CAMAC ACCESS PROCEDURE MODULE       6-JAN-1983 11:05:41  VAX-11 Macro V03-00         Page  28
V03-001                         CAM$QREP(W), CAMAC Q-REPEAT PROCEDURE     5-JAN-1983 17:16:44  SYS$SYSROOT:[CAMAC.SOURCE.KS30202](1)

                                     0571  1367 ;	MEM- address of a byte containing memory format for the
                                     0571  1368 ;		CAMAC transaction(MEM=16; MEM=24). If not specified,
                                     0571  1369 ;		the current CIB memory format specifier is used,
                                     0571  1370 ;	IOSB- address of a quadword buffer to receive I/O completion
                                     0571  1371 ;		status from the CAMAC request.
                                     0571  1372 ;
                                     0571  1373 ;	Optional I/O Synchronization Parameters:
                                     0571  1374 ;	EFN- value specifying the number of a local event flag
                                     0571  1375 ;		to be set upon I/O completion. If not specified, the
                                     0571  1376 ;		default process event flag from the CAMAC image block
                                     0571  1377 ;		is used,
                                     0571  1378 ;	AST- address of an AST procedure to receive an I/O completion
                                     0571  1379 ;		AST,
                                     0571  1380 ;	ASTPRM- address of a longword containing a parameter to
                                     0571  1381 ;		be passed to the specified AST procedure.
                                     0571  1382 ;
                                     0571  1383 ;
                                     0571  1384 ;	Return Status:
                                     0571  1385 ;
                                     0571  1386 ;---
                                     0571  1387 
                                     0571  1388 
                                     0571  1389 ;
                                     0571  1390 ; PROCEDURE LOCAL DATA
                                     0571  1391 ;
                           00000000  0571  1392 QRP_NARGS	= 0				; ARGUMENT COUNT
                           00000004  0571  1393 QRP_MOD		= 4				; MODULE NAME/KEY VALUE
                           00000008  0571  1394 QRP_A		= 8				; SUBADDRESS
                           0000000C  0571  1395 QRP_F		= 12				; FUNCTION CODE
                           00000010  0571  1396 QRP_COUNT	= 16				; TRANSFER COUNT
                           00000014  0571  1397 QRP_DATA	= 20				; DATA BUFFER
                           00000018  0571  1398 QRP_MEM		= 24				; MEMORY FORMAT(OPTIONAL)
                           0000001C  0571  1399 QRP_IOSB	= 28				; IOSB OFFSET
                           00000020  0571  1400 QRP_EFN		= 32				; EVENT FLAG VALUE
                           00000024  0571  1401 QRP_AST		= 36				; AST PROCEDURE ADDRESS
                           00000028  0571  1402 QRP_ASTP	= 40				; AST PARAMETER VALUE
                                     0571  1403 
                           00000005  0571  1404 QRP_MINARGS	= 5				; MIN ARG COUNT
                           0000000A  0571  1405 QRP_MAXARGS	= 10				; MAX ARG COUNT
                                     0571  1406 
                                     0571  1407 ;
                                     0571  1408 ;	WAIT MODE ENTRY POINT
                                     0571  1409 ;
                               0E3C  0571  1410 	.ENTRY	CAM$QREPW,^M<R2,R3,R4,R5,R9,R10,R11>
                                     0573  1411 
                       59   01   CE  0573  1412 	MNEGL	#1,R9				; SET WAIT MODE INDICATOR
                            04   11  0576  1413 	BRB	CAM_QREP			; JOIN COMMON FLOW
                                     0578  1414 
                                     0578  1415 ;
                                     0578  1416 ;	PROCEED MODE ENTRY POINT
                                     0578  1417 ;
                               0E3C  0578  1418 	.ENTRY	CAM$QREP,^M<R2,R3,R4,R5,R9,R10,R11>
                                     057A  1419 
                            59   D4  057A  1420 	CLRL	R9				; RESET WAIT MODE INDICATOR
                                     057C  1421 
                                     057C  1422 CAM_QREP:					; COMMON STOP FLOW
              5B   00000000'GF   9E  057C  1423 	MOVAB	G^CAM_CIB,R11			; GET CAMAC IMAGE BLOCK ADDRESS
CAM$BLIB                        BASIC CAMAC ACCESS PROCEDURE MODULE       6-JAN-1983 11:05:41  VAX-11 Macro V03-00         Page  29
V03-001                         CAM$QREP(W), CAMAC Q-REPEAT PROCEDURE     5-JAN-1983 17:16:44  SYS$SYSROOT:[CAMAC.SOURCE.KS30202](1)

                            00   E0  0583  1424 	BBS	#PSTS_V_JIBV,-			; IS JIB INFO VALID?
                      06 08 AB       0585  1425 		CIB_L_PSTS(R11),10$		; IF SO, CONTINUE WITH IT
                   00000000'GF   16  0588  1426 	JSB	G^CAM_GETJIB			; ELSE, GET NEW JIB/PCB INFO
                                     058E  1427 10$:
                            6C   91  058E  1428 	CMPB	QRP_NARGS(AP),-			; CHECK AGANIST MIN ARG COUNT
                            05       0590  1429 		#QRP_MINARGS
                            0A   18  0591  1430 	BGEQ	20$				; IF SUFFICIENT, CONTINUE
              50   00000114 8F   D0  0593  1431 	MOVL	#SS$_INSFARG,R0			; SET INSUFF ARGS STATUS
                          00E8   31  059A  1432 	BRW	90$				; EXIT ROUTINE
                                     059D  1433 20$:
                                     059D  1434 	ALOSTAK	#CRP_K_LENGTH,R10		; ALLOCATE CRP ON STACK
                   00000000'GF   16  05A7  1435 	JSB	G^CAM_INITCRP			; INITIALIZE CRP
                  01   01   59   F0  05AD  1436 	INSV	R9,#CRPS_V_WAIT,#CRPS_S_WAIT,-	; INSERT WAIT/PROCEED FLAG
                         02 AA       05B1  1437 		CRP_W_STS(R10)			; INTO CRP STATUS
                         0E AB   B0  05B3  1438 	MOVW	CIB_W_CSTS(R11),-		; COPY CIB CAMAC STATE TO
                            6A       05B6  1439 		CRP_W_CSTS(R10)			; CRP CAMAC STATUS WORD
                    51   04 AC   D0  05B7  1440 	MOVL	QRP_MOD(AP),R1			; ADDRESS OF MODULE DESCRIPTOR
                   00000000'GF   16  05BB  1441 	JSB	G^CAM_MODULE			; GET MODULE PARAMETERS
                         03 50   E8  05C1  1442 	BLBS	R0,120$				; SUCCESS? CONTINUE IF SO.
                          00BE   31  05C4  1443 	BRW	90$				; EXIT ROUTINE IF NOT
                                     05C7  1444 120$:
                    4A AA   08   90  05C7  1445 	MOVB	#8,CRP_B_MODE(R10)		; SET CAMAC MODE
                 4D AA   08 BC   90  05CB  1446 	MOVB	@QRP_A(AP),CRP_B_A(R10)		; COPY CAMAC SUBADDRESS
                 4E AA   0C BC   90  05D0  1447 	MOVB	@QRP_F(AP),CRP_B_F(R10)		; COPY CAMAC FUNCTION CODE
                    59   04 AA   9E  05D5  1448 	MOVAB	CRP_L_QIOL(R10),R9		; USE R9 FOR QIO LIST POINTER
                       69   0C   9A  05D9  1449 	MOVZBL	#QIO$_NARGS,(R9)		; SET QIO ARG COUNT
                         24 AB   9A  05DC  1450 	MOVZBL	CIB_B_EFN(R11),-		; USE DEFAULT EFN
                         04 A9       05DF  1451 		QIO$_EFN(R9)
                            6B   9E  05E1  1452 	MOVAB	CIB_Q_IOSB(R11),-		; DEFAULT TO CIB IOSB
                         10 A9       05E3  1453 		QIO$_IOSB(R9)
                         48 AA   3C  05E5  1454 	MOVZWL	CRP_W_CHAN(R10),-		; SAVE VMS CHANNEL NUMBER
                         08 A9       05E8  1455 		QIO$_CHAN(R9)
                            32   3C  05EA  1456 	MOVZWL	#IO$_CAMIO,-			; QIO FUNCTION CODE
                         0C A9       05EC  1457 		QIO$_FUNC(R9)
                         14 AC   D0  05EE  1458 	MOVL	QRP_DATA(AP),-			; SAVE DATA BUFFER ADDR
                         20 A9       05F1  1459 		QIO$_P2(R9)			; IN QIO LIST
                    50   10 BC   3C  05F3  1460 	MOVZWL	@QRP_COUNT(AP),R0		; GET TRANSFER COUNT
                  50   50   02   78  05F7  1461 	ASHL	#2,R0,R0			; CONVERT TO BYTE COUNT
                                     05FB  1462 						; FOR '24' BIT FORMAT
                            03   E1  05FB  1463 	BBC	#CSTS_V_M16,-			; CHECK CRP MEM STATE
                         05 6A       05FD  1464 		CRP_W_CSTS(R10),50$		; IF '16', SKIP
               50   50   FF 8F   78  05FF  1465 	ASHL	#-1,R0,R0			; CHANGE TO BYTE COUNT FOR
                                     0604  1466 						; '16' BIT FORMAT
                                     0604  1467 50$:
                    24 A9   50   3C  0604  1468 	MOVZWL	R0,QIO$_P3(R9)			; SAVE BCNT IN QIO LIST
                            6C   8F  0608  1469 	CASEB	QRP_NARGS(AP),-			; HANDLE PARAMETERS BY CASE
                            05       060A  1470 		#QRP_MINARGS,-
                            0A       060B  1471 		#QRP_MAXARGS
                                     060C  1472 30$:
                               005B' 060C  1473 	.WORD	QRP_THRU_DATA-30$		; PARAMETERS THRU DATA
                               002D' 060E  1474 	.WORD	QRP_THRU_MEM-30$		; PARAMETERS THRU MEM
                               0023' 0610  1475 	.WORD	QRP_THRU_IOSB-30$		; PARAMETERS THRU IOSB
                               001E' 0612  1476 	.WORD	QRP_THRU_EFN-30$		; PARAMETERS THRU EFN
                               0019' 0614  1477 	.WORD	QRP_THRU_AST-30$		; PARAMETERS THRU AST ADR
                               0014' 0616  1478 	.WORD	QRP_THRU_ASTP-30$		; PARAMETERS THRU AST PARM
                                     0618  1479 
                  50   029C 8F   3C  0618  1480 	MOVZWL	#SS$_TOOMUCHDATA,R0		; TOO MANY PARAMETERS
CAM$BLIB                        BASIC CAMAC ACCESS PROCEDURE MODULE       6-JAN-1983 11:05:41  VAX-11 Macro V03-00         Page  30
V03-001                         CAM$QREP(W), CAMAC Q-REPEAT PROCEDURE     5-JAN-1983 17:16:44  SYS$SYSROOT:[CAMAC.SOURCE.KS30202](1)

                          0065   31  061D  1481 	BRW	90$				; EXIT ROUTINE
                                     0620  1482 
                                     0620  1483 QRP_THRU_ASTP:
                         28 AC   D0  0620  1484 	MOVL	QRP_ASTP(AP),-			; COPY AST PARM TO QIO
                         18 A9       0623  1485 		QIO$_ASTPRM(R9)			; PARM LIST
                                     0625  1486 QRP_THRU_AST:
                         24 AC   D0  0625  1487 	MOVL	QRP_AST(AP),-			; COPY AST PROC ADDRESS
                         14 A9       0628  1488 		QIO$_ASTADR(R9)			; TO QIO PARM LIST
                                     062A  1489 QRP_THRU_EFN:
                         20 AC   9A  062A  1490 	MOVZBL	QRP_EFN(AP),-			; COPY EVENT FLAG NUMB TO
                         04 A9       062D  1491 		QIO$_EFN(R9)			; QIO PARM LIST
                                     062F  1492 QRP_THRU_IOSB:
                         1C AC   D5  062F  1493 	TSTL	QRP_IOSB(AP)			; CHECK FOR VALID IOSB
                            05   13  0632  1494 	BEQL	QRP_THRU_MEM			; IF 0, NULL PARAMETER
                         1C AC   D0  0634  1495 	MOVL	QRP_IOSB(AP),-			; ELSE, ASSUME VALID IOSB
                         10 A9       0637  1496 		QIO$_IOSB(R9)			; ADDRESS FOR QIO
                                     0639  1497 QRP_THRU_MEM:
                         18 AC   D5  0639  1498 	TSTL	QRP_MEM(AP)			; CHECK IF MEM SPECIFIED
                            29   13  063C  1499 	BEQL	QRP_THRU_DATA			; IF 0, NULL PARAMETER
                    50   10 BC   3C  063E  1500 	MOVZWL	@QRP_COUNT(AP),R0		; GET TRANSFER COUNT
                  50   50   02   78  0642  1501 	ASHL	#2,R0,R0			; CONVERT TO BYTE COUNT FOR
                                     0646  1502 						; '24' BIT FORMAT
                            08   AA  0646  1503 	BICW	#CSTS_M_M16,-			; CLEAR '16' MEM FORMAT
                            6A       0648  1504 		CRP_W_CSTS(R10)
                    18   18 BC   91  0649  1505 	CMPB	@QRP_MEM(AP),#24		; CHECK FOR '24' FORMAT
                            14   13  064D  1506 	BEQL	60$				; IF MATCH, DONE
               50   50   FF 8F   78  064F  1507 	ASHL	#-1,R0,R0			; CHANGE TO BYTE COUNT FOR
                                     0654  1508 						; '16' BIT FORMAT
                            08   A8  0654  1509 	BISW	#CSTS_M_M16,-			; SET CRP M16 FLAG
                            6A       0656  1510 		CRP_W_CSTS(R10)
                    10   18 BC   91  0657  1511 	CMPB	@QRP_MEM(AP),#16		; CHECK FOR '16' FORMAT
                            06   13  065B  1512 	BEQL	60$				; IF MATCH, DONE
                       50   14   3C  065D  1513 	MOVZWL	#SS$_BADPARAM,R0		; SET BAD PARAMETER
                          0022   31  0660  1514 	BRW	90$				; EXIT ROUTINE
                                     0663  1515 60$:
                    24 A9   50   3C  0663  1516 	MOVZWL	R0,QIO$_P3(R9)			; SAVE BCNT IN QIO LIST
                                     0667  1517 QRP_THRU_DATA:
                          001C   30  0667  1518 	BSBW	CAM_BLDRTB			; BUILD CAMAC RTB
                         38 AA   9E  066A  1519 	MOVAB	CRP_Q_RTB(R10),-		; ADDRESS OF RTB AS QIO P1
                         1C A9       066D  1520 		QIO$_P1(R9)
                            01   E1  066F  1521 	BBC	#CRPS_V_WAIT,-			; CHECK IF WAIT/PROCEED
                      0A 02 AA       0671  1522 		CRP_W_STS(R10),80$		; IF 'WAIT' CLEAR, RETURN
                                     0674  1523 	$QIOW_G	(R9)				; ISSUE QIO+WAIT CALL
                          0007   31  067B  1524 	BRW	90$				; RETURN ON COMPLETION
                                     067E  1525 80$:
                                     067E  1526 	$QIO_G	(R9)				; ISSUE QIO CALL
                                     0685  1527 	
                                     0685  1528 90$:
                                 04  0685  1529 	RET					; RETURN FROM PROCEDURE CALL
                                     0686  1530 	.DSABL	LSB
CAM$BLIB                        BASIC CAMAC ACCESS PROCEDURE MODULE       6-JAN-1983 11:05:41  VAX-11 Macro V03-00         Page  31
V03-001                         CAM_BLDRTB, BUILD CAMAC REGISTER TEMPLAT  5-JAN-1983 17:16:44  SYS$SYSROOT:[CAMAC.SOURCE.KS30202](1)

                                     0686  1532 	.SBTTL	CAM_BLDRTB, BUILD CAMAC REGISTER TEMPLATE BLOCK
                                     0686  1533 	.ENABL	LSB
                                     0686  1534 ;++
                                     0686  1535 ;
                                     0686  1536 ; CAM_BLDRTB: BUILD CAMAC RTB FROM CAMAC MODULE DATA FOUND IN THE
                                     0686  1537 ;	CAMAC REQUEST PACKET(CRP).
                                     0686  1538 ;
                                     0686  1539 ; Inputs:
                                     0686  1540 ;	R10	- address of the CRP.
                                     0686  1541 ;
                                     0686  1542 ; Outputs:
                                     0686  1543 ;	RTB fields of CRP,
                                     0686  1544 ;--
                                     0686  1545 
                                     0686  1546 CAM_BLDRTB:
                                     0686  1547 
                                     0686  1548 	ASSUME	RTB_K_LENGTH,EQ,8
                         38 AA   7C  0686  1549 	CLRQ	CRP_Q_RTB(R10)			; ZERO CRP RTB
                    51   38 AA   9E  0689  1550 	MOVAB	CRP_Q_RTB(R10),R1		; GET RTB BASE ADDR
                                     068D  1551 ;
                                     068D  1552 ;	BUILD CTR TEMPLATE
                                     068D  1553 ;
                                     068D  1554 	ASSUME	SCT_V_QDC,EQ,PCT_V_QDC
                                     068D  1555 	ASSUME	SCT_S_QDC,EQ,PCT_S_QDC
                                     068D  1556 	ASSUME	SCT_V_M,EQ,PCT_V_M
                                     068D  1557 	ASSUME	SCT_S_M,EQ,PCT_S_M
                       01   00   EF  068D  1558 	EXTZV	#CSTS_V_QDC,#CSTS_S_QDC,-
                       50   6A       0690  1559 		CRP_W_CSTS(R10),R0		; GET QDC STATE FROM CRP
                  01   0A   50   F0  0692  1560 	INSV	R0,#SCT_V_QDC,#SCT_S_QDC,-	; INSERT INTO CTR
                            61       0696  1561 		RTB_W_CTR(R1)
                    01   4A AA   F0  0697  1562 	INSV	CRP_B_MODE(R10),#SCT_V_M,-	; INSERT MODE FIELD
                       61   04       069B  1563 		#SCT_S_M,RTB_W_CTR(R1)
                                     069D  1564 ;
                                     069D  1565 ;	BUILD CMR TEMPLATE
                                     069D  1566 ;
                       01   01   EF  069D  1567 	EXTZV	#CSTS_V_QNE,#CSTS_S_QNE,-
                       50   6A       06A0  1568 		CRP_W_CSTS(R10),R0		; GET QNE STATE
                  01   0F   50   F0  06A2  1569 	INSV	R0,#CMR_V_QNE,#CMR_S_QNE,-	; INSERT IN CMD REG
                         02 A1       06A6  1570 		RTB_W_CMR(R1)
                       01   02   EF  06A8  1571 	EXTZV	#CSTS_V_XI,#CSTS_S_XI,-
                       50   6A       06AB  1572 		CRP_W_CSTS(R10),R0		; GET XI STATE
                  01   0E   50   F0  06AD  1573 	INSV	R0,#CMR_V_XI,#CMR_S_XI,-	; INSERT INTO CMD REG
                         02 A1       06B1  1574 		RTB_W_CMR(R1)
                    09   4C AA   F0  06B3  1575 	INSV	CRP_B_N(R10),#CMR_V_N,-		; INSERT STATION NUMBER
                    02 A1   05       06B7  1576 		#CMR_S_N,RTB_W_CMR(R1)
                    05   4D AA   F0  06BA  1577 	INSV	CRP_B_A(R10),#CMR_V_A,-		; INSERT SUBADDRESS
                    02 A1   04       06BE  1578 		#CMR_S_A,RTB_W_CMR(R1)
                    00   4E AA   F0  06C1  1579 	INSV	CRP_B_F(R10),#CMR_V_F,-		; INSERT FUNCTION CODE
                    02 A1   05       06C5  1580 		#CMR_S_F,RTB_W_CMR(R1)
                                     06C8  1581 ;
                                     06C8  1582 ;	BUILD CRATE/DATA HIGH TEMPLATE
                                     06C8  1583 ;
                       01   03   EF  06C8  1584 	EXTZV	#CSTS_V_M16,#CSTS_S_M16,-
                       50   6A       06CB  1585 		CRP_W_CSTS(R10),R0		; GET MEM FORMAT BIT(16/24)
                  01   0E   50   F0  06CD  1586 	INSV	R0,#CDH_V_16,#CDH_S_16,-	; INSERT MEM FORMAT BIT
                         06 A1       06D1  1587 		RTB_W_CDH(R1)			; INTO CDH TEMPLATE
                    08   4B AA   F0  06D3  1588 	INSV	CRP_B_C(R10),#CDH_V_C,-		; INSERT CRATE NUMBER
CAM$BLIB                        BASIC CAMAC ACCESS PROCEDURE MODULE       6-JAN-1983 11:05:41  VAX-11 Macro V03-00         Page  32
V03-001                         CAM_BLDRTB, BUILD CAMAC REGISTER TEMPLAT  5-JAN-1983 17:16:44  SYS$SYSROOT:[CAMAC.SOURCE.KS30202](1)

                    06 A1   06       06D7  1589 		#CDH_S_C,RTB_W_CDH(R1)
                                 05  06DA  1590 	RSB					; RETURN TO CALLER
                                     06DB  1591 	.DSABL	LSB
CAM$BLIB                        BASIC CAMAC ACCESS PROCEDURE MODULE       6-JAN-1983 11:05:41  VAX-11 Macro V03-00         Page  33
V03-001                         CAM_BLDRTB, BUILD CAMAC REGISTER TEMPLAT  5-JAN-1983 17:16:44  SYS$SYSROOT:[CAMAC.SOURCE.KS30202](1)

                                     06DB  1593 	.END
CAM$BLIB                        BASIC CAMAC ACCESS PROCEDURE MODULE       6-JAN-1983 11:05:41  VAX-11 Macro V03-00         Page  34
Symbol table                                                              5-JAN-1983 17:16:44  SYS$SYSROOT:[CAMAC.SOURCE.KS30202](1)

$$ARGS         = 0000000C               CIB_Q_CPRIV      00000018               CRP_A_UICID      000000A4               
$$T1           = 00000034               CIB_Q_IOSB       00000000               CRP_B_A          0000004D               
ASG_KEY        = 00000008               CIB_W_CSTS       0000000E               CRP_B_C          0000004B               
ASG_K_DSBMSK   = 00000000               CIB_W_ISTS       0000000C               CRP_B_CHANX      00000051               
ASG_MAXARGS    = 00000002               CMAP_W_CHAN      00000000               CRP_B_CONT       0000004F               
ASG_MINARGS    = 00000002               CMAP_W_MAPID     00000002               CRP_B_DSBMSK     00000052               
ASG_MOD        = 00000004               CMR_M_A        = 000001E0               CRP_B_F          0000004E               
ASG_NARGS      = 00000000               CMR_M_F        = 0000001F               CRP_B_MODE       0000004A               
BIT...         = 00000020               CMR_M_N        = 00003E00               CRP_B_N          0000004C               
CAM$ASSIGN       0000006B RG    04      CMR_M_QNE      = 00008000               CRP_B_RTAB       00000053               
CAM$CSTATE       00000000 RG    04      CMR_M_XI       = 00004000               CRP_B_UNIT       00000050               
CAM$DASSGN       000000D4 RG    04      CMR_S_A        = 00000004               CRP_K_CSU      = 00000008               
CAM$PIO          00000130 RG    04      CMR_S_F        = 00000005               CRP_K_EFN      = 00000000               
CAM$PIOW         00000129 RG    04      CMR_S_N        = 00000005               CRP_K_LENGTH     000000C4               
CAM$QREP         00000578 RG    04      CMR_S_QNE      = 00000001               CRP_K_LMOD     = 00000020               
CAM$QREPW        00000571 RG    04      CMR_S_XI       = 00000001               CRP_K_PMOD     = 00000020               
CAM$QSCAN        00000238 RG    04      CMR_V_A        = 00000005               CRP_K_UIC      = 00000008               
CAM$QSCANW       00000231 RG    04      CMR_V_F        = 00000000               CRP_L_GRP        00000040               
CAM$QSTOP        0000034D RG    04      CMR_V_N        = 00000009               CRP_L_MEM        00000044               
CAM$QSTOPW       00000346 RG    04      CMR_V_QNE      = 0000000F               CRP_L_QIOL       00000004               
CAM$STOP         00000463 RG    04      CMR_V_XI       = 0000000E               CRP_Q_FIB        00000004               
CAM$STOPW        0000045C RG    04      CONT_M_CID     = 00000007               CRP_Q_RTB        00000038               
CAM_BLDRTB       00000686 R     04      CONT_M_SER     = 00000008               CRP_W_CDH        0000003E               
CAM_CIB          ********   X   04      CONT_S_CID     = 00000003               CRP_W_CHAN       00000048               
CAM_DCODKEY      ********   X   04      CONT_S_SER     = 00000001               CRP_W_CMR        0000003A               
CAM_ECODKEY      ********   X   04      CONT_V_CID     = 00000000               CRP_W_CSTS       00000000               
CAM_GETJIB       ********   X   04      CONT_V_SER     = 00000003               CRP_W_CTR        00000038               
CAM_GETMDB       ********   X   04      CRPS_M_CSUV    = 00000020               CRP_W_DLR        0000003C               
CAM_INITCRP      ********   X   04      CRPS_M_CV      = 00000080               CRP_W_STS        00000002               
CAM_MODULE       ********   X   04      CRPS_M_KEYED   = 00000001               CSTS_M_M16     = 00000008               
CAM_PIO          00000134 R     04      CRPS_M_LISM    = 00000008               CSTS_M_QDC     = 00000001               
CAM_QREP         0000057C R     04      CRPS_M_LRANUPD = 00000010               CSTS_M_QNE     = 00000002               
CAM_QSCAN        0000023C R     04      CRPS_M_NOCHAN  = 00000004               CSTS_M_XI      = 00000004               
CAM_QSTOP        00000351 R     04      CRPS_M_NV      = 00000100               CSTS_S_M16     = 00000001               
CAM_RELCHAN      ********   X   04      CRPS_M_UICV    = 00000040               CSTS_S_QDC     = 00000001               
CAM_STOP         00000467 R     04      CRPS_M_WAIT    = 00000002               CSTS_S_QNE     = 00000001               
CDH_M_16       = 00004000               CRPS_S_CSUV    = 00000001               CSTS_S_XI      = 00000001               
CDH_M_BCF      = 00003800               CRPS_S_CV      = 00000001               CSTS_V_M16     = 00000003               
CDH_M_BCI      = 00000700               CRPS_S_KEYED   = 00000001               CSTS_V_QDC     = 00000000               
CDH_M_C        = 00003F00               CRPS_S_LISM    = 00000001               CSTS_V_QNE     = 00000001               
CDH_M_HSB      = 000000FF               CRPS_S_LRANUPD = 00000001               CSTS_V_XI      = 00000002               
CDH_S_16       = 00000001               CRPS_S_NOCHAN  = 00000001               CST_EFN        = 00000004               
CDH_S_BCF      = 00000003               CRPS_S_NV      = 00000001               CST_MAXARGS    = 00000004               
CDH_S_BCI      = 00000003               CRPS_S_UICV    = 00000001               CST_MEM        = 00000010               
CDH_S_C        = 00000006               CRPS_S_WAIT    = 00000001               CST_MINARGS    = 00000001               
CDH_S_HSB      = 00000008               CRPS_V_CSUV    = 00000005               CST_NARGS      = 00000000               
CDH_V_16       = 0000000E               CRPS_V_CV      = 00000007               CST_QSTATE     = 0000000C               
CDH_V_BCF      = 0000000B               CRPS_V_KEYED   = 00000000               CST_THRU_EFN     0000005F R     04      
CDH_V_BCI      = 00000008               CRPS_V_LISM    = 00000003               CST_THRU_MEM     00000026 R     04      
CDH_V_C        = 00000008               CRPS_V_LRANUPD = 00000004               CST_THRU_QSTATE  00000048 R     04      
CDH_V_HSB      = 00000000               CRPS_V_NOCHAN  = 00000002               CST_THRU_XSTATE  00000052 R     04      
CIB_B_EFN        00000024               CRPS_V_NV      = 00000008               CST_XSTATE     = 00000008               
CIB_K_LENGTH     00000025               CRPS_V_UICV    = 00000006               DAG_KEY        = 00000004               
CIB_L_GRP        00000010               CRPS_V_WAIT    = 00000001               DAG_MAXARGS    = 00000001               
CIB_L_MEM        00000014               CRP_A_CSUID      000000B4               DAG_MINARGS    = 00000001               
CIB_L_PSTS       00000008               CRP_A_LMODID     00000054               DAG_NARGS      = 00000000               
CIB_L_WSQUOTA    00000020               CRP_A_PMODID     0000007C               DCR_M_DFO      = 00004000               
CAM$BLIB                        BASIC CAMAC ACCESS PROCEDURE MODULE       6-JAN-1983 11:05:41  VAX-11 Macro V03-00         Page  35
Symbol table                                                              5-JAN-1983 17:16:44  SYS$SYSROOT:[CAMAC.SOURCE.KS30202](1)

DCR_M_DR       = 00000080               DSC$K_CLASS_BFA= 000000BF               DSC$K_DTYPE_T  = 0000000E               
DCR_M_GOCO     = 00002000               DSC$K_CLASS_D  = 00000002               DSC$K_DTYPE_V  = 00000001               
DCR_M_HDR      = 00008000               DSC$K_CLASS_J  = 00000007               DSC$K_DTYPE_VT = 00000025               
DCR_M_SCA      = 0000003F               DSC$K_CLASS_JI = 00000008               DSC$K_DTYPE_VU = 00000022               
DCR_M_SDIE     = 00000040               DSC$K_CLASS_NCA= 0000000A               DSC$K_DTYPE_W  = 00000007               
DCR_M_SGL      = 00001F00               DSC$K_CLASS_P  = 00000005               DSC$K_DTYPE_WU = 00000003               
DCR_S_DFO      = 00000001               DSC$K_CLASS_PI = 00000006               DSC$K_DTYPE_Z  = 00000000               
DCR_S_DR       = 00000001               DSC$K_CLASS_S  = 00000001               DSC$K_DTYPE_ZEM= 00000017               
DCR_S_GOCO     = 00000001               DSC$K_CLASS_SD = 00000009               DSC$K_DTYPE_ZI = 00000016               
DCR_S_HDR      = 00000001               DSC$K_CLASS_UBA= 0000000E               DSC$K_D_BLN      00000008               
DCR_S_SCA      = 00000006               DSC$K_CLASS_UBS= 0000000D               DSC$K_JI_BLN     0000000C               
DCR_S_SDIE     = 00000001               DSC$K_CLASS_V  = 00000003               DSC$K_J_BLN      00000008               
DCR_S_SGL      = 00000005               DSC$K_CLASS_VS = 0000000B               DSC$K_PI_BLN     0000000C               
DCR_V_DFO      = 0000000E               DSC$K_CLASS_VSA= 0000000C               DSC$K_P_BLN      00000008               
DCR_V_DR       = 00000007               DSC$K_CLASS_Z  = 00000000               DSC$K_SD_BLN     0000000C               
DCR_V_GOCO     = 0000000D               DSC$K_DTYPE_ADT= 00000023               DSC$K_S_BLN      00000008               
DCR_V_HDR      = 0000000F               DSC$K_DTYPE_B  = 00000006               DSC$K_UBS_BLN    0000000C               
DCR_V_SCA      = 00000000               DSC$K_DTYPE_BLV= 00000021               DSC$K_VS_BLN     00000008               
DCR_V_SDIE     = 00000006               DSC$K_DTYPE_BPV= 00000020               DSC$K_Z_BLN      00000008               
DCR_V_SGL      = 00000008               DSC$K_DTYPE_BU = 00000002               DSC$L_ARSIZE     0000000C               
DFR_M_DFE      = 00000040               DSC$K_DTYPE_CAD= 000000B2               DSC$L_BYTEOFF    FFFFFFF8               
DFR_M_DFOR     = 00000080               DSC$K_DTYPE_CIT= 0000001F               DSC$L_LOGUNIT    FFFFFFFC               
DFR_M_HD       = 00008000               DSC$K_DTYPE_D  = 0000000B               DSC$L_M1         00000014               
DFR_M_SCA      = 0000003F               DSC$K_DTYPE_DC = 0000000D               DSC$L_M2         00000018               
DFR_M_SGL      = 00001F00               DSC$K_DTYPE_DPC= 000000B9               DSC$L_POS        00000008               
DFR_S_DFE      = 00000001               DSC$K_DTYPE_DSC= 00000018               DSC$L_S1         00000014               
DFR_S_DFOR     = 00000001               DSC$K_DTYPE_ENT= 000000B3               DSC$L_S2         00000018               
DFR_S_HD       = 00000001               DSC$K_DTYPE_EOM= 000000BD               DSC$L_V0         00000010               
DFR_S_SCA      = 00000006               DSC$K_DTYPE_EOR= 000000BF               DSC$V_FL_BOUNDS= 00000007               
DFR_S_SGL      = 00000005               DSC$K_DTYPE_EPT= 000000B5               DSC$V_FL_COEFF = 00000006               
DFR_V_DFE      = 00000006               DSC$K_DTYPE_F  = 0000000A               DSC$V_FL_COLUMN= 00000005               
DFR_V_DFOR     = 00000007               DSC$K_DTYPE_FC = 0000000C               DSC$V_FL_REDIM = 00000004               
DFR_V_HD       = 0000000F               DSC$K_DTYPE_FLD= 000000B7               DSC$W_LENGTH     00000000               
DFR_V_SCA      = 00000000               DSC$K_DTYPE_G  = 0000001B               DSC$W_MAXLEN     00000008               
DFR_V_SGL      = 00000008               DSC$K_DTYPE_GBL= 000000B4               DSC$W_MAXSTRLEN  00000000               
DSC$A_A0         00000010               DSC$K_DTYPE_GC = 0000001D               FIB_B_CSIZE      00000003               
DSC$A_BASE       00000004               DSC$K_DTYPE_H  = 0000001C               FIB_B_F          00000002               
DSC$A_FRAME      00000008               DSC$K_DTYPE_HC = 0000001E               FIB_B_TYPE       0000000E               
DSC$A_HANDLE     FFFFFFF4               DSC$K_DTYPE_L  = 00000008               FIB_K_LENGTH     0000000F               
DSC$A_POINTER    00000004               DSC$K_DTYPE_LBL= 000000BA               FIB_L_DATA       00000008               
DSC$B_AFLAGS     0000000A               DSC$K_DTYPE_LU = 00000004               FIB_W_CNDX       00000000               
DSC$B_CLASS      00000003               DSC$K_DTYPE_MOD= 000000BC               FIB_W_DNDX       00000004               
DSC$B_DIGITS     00000009               DSC$K_DTYPE_NL = 00000010               FIB_W_DSIZE      00000006               
DSC$B_DIMCT      0000000B               DSC$K_DTYPE_NLO= 00000011               FIB_W_EOF        0000000C               
DSC$B_DTYPE      00000002               DSC$K_DTYPE_NR = 00000012               GRP_M_WILDGRP  = 80000000               
DSC$B_SCALE      00000008               DSC$K_DTYPE_NRO= 00000013               GRP_S_WILDGRP  = 00000001               
DSC$C_D_BLN      00000008               DSC$K_DTYPE_NU = 0000000F               GRP_V_WILDGRP  = 0000001F               
DSC$C_JI_BLN     0000000C               DSC$K_DTYPE_NZ = 00000014               IO$K_LOOPTEST  = 0000E000               
DSC$C_J_BLN      00000008               DSC$K_DTYPE_O  = 0000001A               IO$K_PTPBSC    = 00002000               
DSC$C_PI_BLN     0000000C               DSC$K_DTYPE_OU = 00000019               IO$K_SRRUNOUT  = 00000000               
DSC$C_P_BLN      00000008               DSC$K_DTYPE_P  = 00000015               IO$M_ABORT     = 00000100               
DSC$C_SD_BLN     0000000C               DSC$K_DTYPE_PCT= 000000B8               IO$M_ACCEPT    = 00000080               
DSC$C_S_BLN      00000008               DSC$K_DTYPE_Q  = 00000009               IO$M_ACCESS    = 00000040               
DSC$C_UBS_BLN    0000000C               DSC$K_DTYPE_QU = 00000005               IO$M_ATTNAST   = 00000100               
DSC$C_VS_BLN     00000008               DSC$K_DTYPE_R11= 000000B6               IO$M_BINARY    = 00000040               
DSC$C_Z_BLN      00000008               DSC$K_DTYPE_RTN= 000000BE               IO$M_CANCTRLO  = 00000040               
DSC$K_CLASS_A  = 00000004               DSC$K_DTYPE_SLB= 000000BB               IO$M_CANLAM    = 00000100               
CAM$BLIB                        BASIC CAMAC ACCESS PROCEDURE MODULE       6-JAN-1983 11:05:41  VAX-11 Macro V03-00         Page  36
Symbol table                                                              5-JAN-1983 17:16:44  SYS$SYSROOT:[CAMAC.SOURCE.KS30202](1)

IO$M_CECYL     = 00000400               IO$M_NOW       = 00000040               IO$V_DABLAMS   = 00000008               
IO$M_CLEAR     = 00001000               IO$M_NOWAIT    = 00000080               IO$V_DATACHECK = 0000000E               
IO$M_CLR_COUNT = 00000400               IO$M_OPPOSITE  = 00000200               IO$V_DATAPATH  = 0000000A               
IO$M_CNTRLENTRY= 00000080               IO$M_OUTBAND   = 00000400               IO$V_DELDATA   = 00000006               
IO$M_COFFLINE  = 00000400               IO$M_PACKED    = 00000080               IO$V_DELETE    = 00000008               
IO$M_COMMOD    = 00000040               IO$M_PURGE     = 00000800               IO$V_DIAGNOSTIC= 00000008               
IO$M_CONLINE   = 00000200               IO$M_QUALIFIED = 00000080               IO$V_DMOUNT    = 0000000A               
IO$M_CREATE    = 00000080               IO$M_RD_COUNT  = 00000100               IO$V_DSABLMBX  = 0000000A               
IO$M_CTRL      = 00000200               IO$M_RD_MEM    = 00000040               IO$V_DSABL_ALT = 0000000C               
IO$M_CTRLCAST  = 00000100               IO$M_RD_MODEM  = 00000080               IO$V_ENABLMBX  = 00000007               
IO$M_CTRLYAST  = 00000080               IO$M_READATTN  = 00000080               IO$V_ENABL_ALT = 0000000B               
IO$M_CVTLOW    = 00000100               IO$M_READCSR   = 00008000               IO$V_ENLAMS    = 00000007               
IO$M_CYCLE     = 00001000               IO$M_REDIRECT  = 00000040               IO$V_ESCAPE    = 0000000E               
IO$M_DABLAMS   = 00000100               IO$M_REFRESH   = 00002000               IO$V_EXTEND    = 0000000F               
IO$M_DATACHECK = 00004000               IO$M_RESET     = 00000800               IO$V_FCODE     = 00000000               
IO$M_DATAPATH  = 00000400               IO$M_REVERSE   = 00000040               IO$V_FORCE     = 00000006               
IO$M_DELDATA   = 00000040               IO$M_SETBSIZE  = 00000200               IO$V_HANGUP    = 00000009               
IO$M_DELETE    = 00000100               IO$M_SETCUADR  = 00000100               IO$V_INCLUDE   = 0000000B               
IO$M_DIAGNOSTIC= 00000100               IO$M_SETENQCNT = 00000800               IO$V_INHERLOG  = 0000000B               
IO$M_DMOUNT    = 00000400               IO$M_SETEVF    = 00000040               IO$V_INHEXTGAP = 0000000C               
IO$M_DSABLMBX  = 00000400               IO$M_SETFNCT   = 00000200               IO$V_INHRETRY  = 0000000F               
IO$M_DSABL_ALT = 00001000               IO$M_SETPOOLSZ = 00000400               IO$V_INHSEEK   = 0000000C               
IO$M_ENABLMBX  = 00000080               IO$M_SETPROT   = 00000200               IO$V_INTCLOCK  = 0000000C               
IO$M_ENABL_ALT = 00000800               IO$M_SET_MODEM = 00000400               IO$V_INTERRUPT = 00000006               
IO$M_ENLAMS    = 00000080               IO$M_SHUTDOWN  = 00000080               IO$V_INTSKIP   = 00000008               
IO$M_ESCAPE    = 00004000               IO$M_SKPSECINH = 00000200               IO$V_LASTBLOCK = 0000000A               
IO$M_EXTEND    = 00008000               IO$M_SLAVLOOP  = 00000080               IO$V_LINE_OFF  = 00000009               
IO$M_FCODE     = 0000003F               IO$M_STARTUP   = 00000040               IO$V_LINE_ON   = 0000000B               
IO$M_FORCE     = 00000040               IO$M_SWAP      = 00000400               IO$V_LOOP      = 00000007               
IO$M_HANGUP    = 00000200               IO$M_SYNCH     = 00000200               IO$V_LOOP_EXT  = 0000000C               
IO$M_INCLUDE   = 00000800               IO$M_TIMED     = 00000080               IO$V_LPBEXT    = 0000000D               
IO$M_INHERLOG  = 00000800               IO$M_TRMNOECHO = 00001000               IO$V_LPBINT    = 0000000E               
IO$M_INHEXTGAP = 00001000               IO$M_TYPEAHDCNT= 00000040               IO$V_MAINT     = 00000006               
IO$M_INHRETRY  = 00008000               IO$M_UNLOOP    = 00000100               IO$V_MAINTLOOP = 00000009               
IO$M_INHSEEK   = 00001000               IO$M_WORD      = 00000040               IO$V_MORE      = 00000006               
IO$M_INTCLOCK  = 00001000               IO$M_WRTATTN   = 00000100               IO$V_MOUNT     = 00000009               
IO$M_INTERRUPT = 00000040               IO$S_FCODE     = 00000006               IO$V_MOVETRACKD= 00000007               
IO$M_INTSKIP   = 00000100               IO$V_ABORT     = 00000008               IO$V_MULTIPLE  = 00000008               
IO$M_LASTBLOCK = 00000400               IO$V_ACCEPT    = 00000007               IO$V_NOCTSWAIT = 00000006               
IO$M_LINE_OFF  = 00000200               IO$V_ACCESS    = 00000006               IO$V_NODSRWAIT = 00000008               
IO$M_LINE_ON   = 00000800               IO$V_ATTNAST   = 00000008               IO$V_NOECHO    = 00000006               
IO$M_LOOP      = 00000080               IO$V_BINARY    = 00000006               IO$V_NOFILTR   = 00000009               
IO$M_LOOP_EXT  = 00001000               IO$V_CANCTRLO  = 00000006               IO$V_NOFORMAT  = 00000008               
IO$M_LPBEXT    = 00002000               IO$V_CANLAM    = 00000008               IO$V_NOMRSP    = 00000006               
IO$M_LPBINT    = 00004000               IO$V_CECYL     = 0000000A               IO$V_NOW       = 00000006               
IO$M_MAINT     = 00000040               IO$V_CLEAR     = 0000000C               IO$V_NOWAIT    = 00000007               
IO$M_MAINTLOOP = 00000200               IO$V_CLR_COUNT = 0000000A               IO$V_OPPOSITE  = 00000009               
IO$M_MORE      = 00000040               IO$V_CNTRLENTRY= 00000007               IO$V_OUTBAND   = 0000000A               
IO$M_MOUNT     = 00000200               IO$V_COFFLINE  = 0000000A               IO$V_PACKED    = 00000007               
IO$M_MOVETRACKD= 00000080               IO$V_COMMOD    = 00000006               IO$V_PURGE     = 0000000B               
IO$M_MULTIPLE  = 00000100               IO$V_CONLINE   = 00000009               IO$V_QUALIFIED = 00000007               
IO$M_NOCTSWAIT = 00000040               IO$V_CREATE    = 00000007               IO$V_RD_COUNT  = 00000008               
IO$M_NODSRWAIT = 00000100               IO$V_CTRL      = 00000009               IO$V_RD_MEM    = 00000006               
IO$M_NOECHO    = 00000040               IO$V_CTRLCAST  = 00000008               IO$V_RD_MODEM  = 00000007               
IO$M_NOFILTR   = 00000200               IO$V_CTRLYAST  = 00000007               IO$V_READATTN  = 00000007               
IO$M_NOFORMAT  = 00000100               IO$V_CVTLOW    = 00000008               IO$V_READCSR   = 0000000F               
IO$M_NOMRSP    = 00000040               IO$V_CYCLE     = 0000000C               IO$V_REDIRECT  = 00000006               
CAM$BLIB                        BASIC CAMAC ACCESS PROCEDURE MODULE       6-JAN-1983 11:05:41  VAX-11 Macro V03-00         Page  37
Symbol table                                                              5-JAN-1983 17:16:44  SYS$SYSROOT:[CAMAC.SOURCE.KS30202](1)

IO$V_REFRESH   = 0000000D               IO$_READPBLK   = 0000000C               JPI$_ASTCNT    = 0000030E               
IO$V_RESET     = 0000000B               IO$_READPRESET = 00000019               JPI$_ASTEN     = 00000301               
IO$V_REVERSE   = 00000006               IO$_READPROMPT = 00000037               JPI$_ASTLM     = 00000409               
IO$V_SETBSIZE  = 00000009               IO$_READTRACKD = 00000010               JPI$_AUTHPRI   = 00000418               
IO$V_SETCUADR  = 00000008               IO$_READVBLK   = 00000031               JPI$_AUTHPRIV  = 00000412               
IO$V_SETENQCNT = 0000000B               IO$_RECAL      = 00000003               JPI$_BIOCNT    = 0000030F               
IO$V_SETEVF    = 00000006               IO$_RELEASE    = 00000005               JPI$_BIOLM     = 00000310               
IO$V_SETFNCT   = 00000009               IO$_REREADN    = 00000016               JPI$_BUFIO     = 0000040C               
IO$V_SETPOOLSZ = 0000000A               IO$_REREADP    = 00000017               JPI$_BYTCNT    = 00000311               
IO$V_SETPROT   = 00000009               IO$_RETCENTER  = 00000007               JPI$_BYTLM     = 0000031A               
IO$V_SET_MODEM = 0000000A               IO$_REWIND     = 00000024               JPI$_CPULIM    = 0000040D               
IO$V_SHUTDOWN  = 00000007               IO$_REWINDOFF  = 00000022               JPI$_CPUTIM    = 00000407               
IO$V_SKPSECINH = 00000009               IO$_SEARCH     = 00000009               JPI$_CURPRIV   = 00000400               
IO$V_SLAVLOOP  = 00000007               IO$_SEEK       = 00000002               JPI$_DFPFC     = 00000406               
IO$V_STARTUP   = 00000006               IO$_SENSECHAR  = 0000001B               JPI$_DFWSCNT   = 00000403               
IO$V_SWAP      = 0000000A               IO$_SENSEMODE  = 00000027               JPI$_DIOCNT    = 00000312               
IO$V_SYNCH     = 00000009               IO$_SETCHAR    = 0000001A               JPI$_DIOLM     = 00000313               
IO$V_TIMED     = 00000007               IO$_SETCLOCK   = 00000037               JPI$_DIRIO     = 0000040B               
IO$V_TRMNOECHO = 0000000C               IO$_SETCLOCKP  = 00000005               JPI$_EFCS      = 00000317               
IO$V_TYPEAHDCNT= 00000006               IO$_SETMODE    = 00000023               JPI$_EFCU      = 00000318               
IO$V_UNLOOP    = 00000008               IO$_SKIPFILE   = 00000025               JPI$_EFWM      = 00000316               
IO$V_WORD      = 00000006               IO$_SKIPRECORD = 00000026               JPI$_ENQCNT    = 0000031F               
IO$V_WRTATTN   = 00000008               IO$_SPACEFILE  = 00000002               JPI$_ENQLM     = 00000320               
IO$_ACCESS     = 00000032               IO$_SPACERECORD= 00000009               JPI$_EXCVEC    = 00000100               
IO$_ACPCONTROL = 00000038               IO$_STARTDATA  = 00000038               JPI$_FILCNT    = 00000314               
IO$_AVAILABLE  = 00000011               IO$_STARTDATAP = 00000006               JPI$_FILLM     = 0000040F               
IO$_CAMIO      = 00000032               IO$_STARTMPROC = 00000002               JPI$_FINALEXC  = 00000101               
IO$_CLEAN      = 0000001E               IO$_STARTSPNDL = 00000019               JPI$_FREP0VA   = 00000404               
IO$_CONINTREAD = 0000003C               IO$_STOP       = 00000003               JPI$_FREP1VA   = 00000405               
IO$_CONINTWRITE= 0000003D               IO$_TTYREADALL = 0000003A               JPI$_FREPTECNT = 00000415               
IO$_CREATE     = 00000033               IO$_TTYREADPALL= 0000003B               JPI$_GPGCNT    = 0000030C               
IO$_DEACCESS   = 00000034               IO$_UNLOAD     = 00000001               JPI$_GRP       = 00000308               
IO$_DELETE     = 00000035               IO$_VIRTUAL    = 0000003F               JPI$_IMAGECOUNT= 0000041A               
IO$_DIAGNOSE   = 0000001D               IO$_WRITECHECK = 0000000A               JPI$_IMAGNAME  = 00000207               
IO$_DRVCLR     = 00000004               IO$_WRITECHECKH= 00000018               JPI$_IMAGPRIV  = 00000413               
IO$_DSE        = 00000015               IO$_WRITEHEAD  = 0000000D               JPI$_JOBPRCCNT = 0000031E               
IO$_ENDRU1     = 0000003A               IO$_WRITELBLK  = 00000020               JPI$_LASTADR   = 00000102               
IO$_ENDRU2     = 0000003B               IO$_WRITEMARK  = 0000001C               JPI$_LASTCTL   = 00000209               
IO$_ERASETAPE  = 00000006               IO$_WRITEOF    = 00000028               JPI$_LASTPCB   = 00000322               
IO$_FORCE      = 00000037               IO$_WRITEPBLK  = 0000000B               JPI$_LASTPHD   = 0000041B               
IO$_FORMAT     = 0000001E               IO$_WRITERET   = 00000018               JPI$_LOGINTIM  = 00000206               
IO$_INITIALIZE = 00000004               IO$_WRITETRACKD= 0000000F               JPI$_MEM       = 00000307               
IO$_LAMAST     = 00000033               IO$_WRITEVBLK  = 00000030               JPI$_OWNER     = 00000303               
IO$_LOADMCODE  = 00000001               IO$_WRTTMKR    = 0000001D               JPI$_PAGEFLTS  = 0000040A               
IO$_LOGICAL    = 0000002F               IOSB_K_LENGTH    00000008               JPI$_PAGFILCNT = 00000414               
IO$_MODIFY     = 00000036               IOSB_W_BCNT      00000002               JPI$_PAGFILLOC = 00000419               
IO$_MOUNT      = 00000039               IOSB_W_CTR       00000000               JPI$_PGFLQUOTA = 0000040E               
IO$_NETCONTROL = 00000036               IOSB_W_ESR       00000004               JPI$_PID       = 00000319               
IO$_NOP        = 00000000               IOSB_W_RCNT      00000006               JPI$_PPGCNT    = 0000030D               
IO$_OFFSET     = 00000006               JPI$C_ADRTYPE  = 00000001               JPI$_PRCCNT    = 0000031B               
IO$_PACKACK    = 00000008               JPI$C_CTLTYPE  = 00000002               JPI$_PRCLM     = 00000408               
IO$_PHYSICAL   = 0000001F               JPI$C_LISTEND  = 00000000               JPI$_PRCNAM    = 0000031C               
IO$_QSTOP      = 00000007               JPI$C_PCBTYPE  = 00000003               JPI$_PRI       = 00000302               
IO$_RDSTATS    = 0000000D               JPI$C_PHDTYPE  = 00000004               JPI$_PRIB      = 00000309               
IO$_READHEAD   = 0000000E               JPI$_ACCOUNT   = 00000203               JPI$_PROCPRIV  = 00000204               
IO$_READINIT   = 0000003C               JPI$_APTCNT    = 0000030A               JPI$_SITESPEC  = 00000208               
IO$_READLBLK   = 00000021               JPI$_ASTACT    = 00000300               JPI$_STATE     = 00000306               
CAM$BLIB                        BASIC CAMAC ACCESS PROCEDURE MODULE       6-JAN-1983 11:05:41  VAX-11 Macro V03-00         Page  38
Symbol table                                                              5-JAN-1983 17:16:44  SYS$SYSROOT:[CAMAC.SOURCE.KS30202](1)

JPI$_STS       = 00000305               LCMD_S_QNE     = 00000001               PCT_S_DONE     = 00000001               
JPI$_SWPFILLOC = 00000321               LCMD_S_XI      = 00000001               PCT_S_ERR      = 00000001               
JPI$_TERMINAL  = 0000031D               LCMD_V_A       = 00000005               PCT_S_GO       = 00000001               
JPI$_TMBU      = 0000030B               LCMD_V_F       = 00000000               PCT_S_IE       = 00000001               
JPI$_TQCNT     = 00000315               LCMD_V_N       = 00000009               PCT_S_M        = 00000004               
JPI$_TQLM      = 00000410               LCMD_V_QNE     = 0000000F               PCT_S_QDC      = 00000001               
JPI$_UIC       = 00000304               LCMD_V_XI      = 0000000E               PCT_S_RESET    = 00000001               
JPI$_USERNAME  = 00000202               LCTY_M_C       = 00003F00               PCT_S_SSP      = 00000001               
JPI$_VIRTPEAK  = 00000200               LCTY_M_TYP     = 0000C000               PCT_V_BGL      = 00000008               
JPI$_VOLUMES   = 00000205               LCTY_S_C       = 00000006               PCT_V_DONE     = 00000007               
JPI$_WSAUTH    = 00000401               LCTY_S_TYP     = 00000002               PCT_V_ERR      = 0000000F               
JPI$_WSAUTHEXT = 00000417               LCTY_V_C       = 00000008               PCT_V_GO       = 00000000               
JPI$_WSEXTENT  = 00000416               LCTY_V_TYP     = 0000000E               PCT_V_IE       = 00000006               
JPI$_WSPEAK    = 00000201               LIS_B_CONT       00000012               PCT_V_M        = 00000001               
JPI$_WSQUOTA   = 00000402               LIS_B_CRATE      00000013               PCT_V_NXM      = 00000009               
JPI$_WSSIZE    = 00000411               LIS_K_LENGTH     00000014               PCT_V_QDC      = 0000000A               
KEY_K_LRCSEED  = 0000005A               LIS_L_FIBL       00000008               PCT_V_RESET    = 0000000B               
KEY_M_C        = 0000003F               LIS_W_CHAN       0000000E               PCT_V_SSP      = 00000005               
KEY_M_CHANX    = 00FF0000               LIS_W_CSTS       00000006               PES_M_BC       = 0000007F               
KEY_M_CID      = 000001C0               LIS_W_EXENDX     00000000               PES_M_BD       = 00000080               
KEY_M_LRC      = FF000000               LIS_W_FRAME      0000000C               PES_M_BDIE     = 00000400               
KEY_M_N        = 0000FC00               LIS_W_REPNDX     00000002               PES_M_BQ       = 00004000               
KEY_M_SER      = 00000200               LIS_W_SIZE       00000004               PES_M_BTO      = 00008000               
KEY_S_C        = 00000006               LIS_W_STS        00000010               PES_M_BX       = 00002000               
KEY_S_CHANX    = 00000008               LST_W_CMD        00000000               PES_M_ENAGL    = 00000200               
KEY_S_CID      = 00000003               LST_W_COUNT      00000004               PES_M_NEXTBD   = 00000100               
KEY_S_LRC      = 00000008               LST_W_CTY        00000002               PES_S_BC       = 00000007               
KEY_S_N        = 00000006               LST_W_DHI        00000006               PES_S_BD       = 00000001               
KEY_S_SER      = 00000001               LST_W_DLOW       00000004               PES_S_BDIE     = 00000001               
KEY_V_C        = 00000000               MAE_M_RMA      = 00003000               PES_S_BQ       = 00000001               
KEY_V_CHANX    = 00000010               MAE_M_TMA      = 0000C000               PES_S_BTO      = 00000001               
KEY_V_CID      = 00000006               MAE_S_RMA      = 00000002               PES_S_BX       = 00000001               
KEY_V_LRC      = 00000018               MAE_S_TMA      = 00000002               PES_S_ENAGL    = 00000001               
KEY_V_N        = 0000000A               MAE_V_RMA      = 0000000C               PES_S_NEXTBD   = 00000001               
KEY_V_SER      = 00000009               MAE_V_TMA      = 0000000E               PES_V_BC       = 00000000               
KS_M_PH        = 00000100               MEM_M_WILDMEM  = 80000000               PES_V_BD       = 00000007               
KS_V_PH        = 00000008               MEM_S_WILDMEM  = 00000001               PES_V_BDIE     = 0000000A               
KS_W_CDH         00000008               MEM_V_WILDMEM  = 0000001F               PES_V_BQ       = 0000000E               
KS_W_CMR         00000006               MID_M_CID      = 0000000F               PES_V_BTO      = 0000000F               
KS_W_CTR         00000000               MID_M_REFC     = 0000FC00               PES_V_BX       = 0000000D               
KS_W_DCR         0000000E               MID_M_UNIT     = 000003F0               PES_V_ENAGL    = 00000009               
KS_W_DFR         0000000C               MID_S_CID      = 00000004               PES_V_NEXTBD   = 00000008               
KS_W_DLR         0000000A               MID_S_REFC     = 00000006               PIO_A          = 00000008               
KS_W_MAE         00000018               MID_S_UNIT     = 00000006               PIO_AST        = 00000020               
KS_W_PES         00000004               MID_V_CID      = 00000000               PIO_ASTP       = 00000024               
KS_W_RMA         0000001C               MID_V_REFC     = 0000000A               PIO_DATA       = 00000010               
KS_W_SES         00000002               MID_V_UNIT     = 00000004               PIO_EFN        = 0000001C               
KS_W_TMA         0000001A               PCT_M_BGL      = 00000100               PIO_F          = 0000000C               
KS_W_WCR         0000001E               PCT_M_DONE     = 00000080               PIO_IOSB       = 00000018               
LCMD_M_A       = 000001E0               PCT_M_ERR      = 00008000               PIO_MAXARGS    = 00000009               
LCMD_M_F       = 0000001F               PCT_M_GO       = 00000001               PIO_MEM        = 00000014               
LCMD_M_N       = 00003E00               PCT_M_IE       = 00000040               PIO_MINARGS    = 00000003               
LCMD_M_QNE     = 00008000               PCT_M_M        = 0000001E               PIO_MOD        = 00000004               
LCMD_M_XI      = 00004000               PCT_M_NXM      = 00000200               PIO_NARGS      = 00000000               
LCMD_S_A       = 00000004               PCT_M_QDC      = 00000400               PIO_THRU_AST     000001C5 R     04      
LCMD_S_F       = 00000005               PCT_M_RESET    = 00000800               PIO_THRU_ASTP    000001C0 R     04      
LCMD_S_N       = 00000005               PCT_M_SSP      = 00000020               PIO_THRU_DATA    000001F6 R     04      
CAM$BLIB                        BASIC CAMAC ACCESS PROCEDURE MODULE       6-JAN-1983 11:05:41  VAX-11 Macro V03-00         Page  39
Symbol table                                                              5-JAN-1983 17:16:44  SYS$SYSROOT:[CAMAC.SOURCE.KS30202](1)

PIO_THRU_EFN     000001CA R     04      QRP_DATA       = 00000014               RTB_W_DLR        00000004               
PIO_THRU_F       00000200 R     04      QRP_EFN        = 00000020               SCT_M_BGL      = 00000100               
PIO_THRU_IOSB    000001CF R     04      QRP_F          = 0000000C               SCT_M_DONE     = 00000080               
PIO_THRU_MEM     000001D9 R     04      QRP_IOSB       = 0000001C               SCT_M_ERR      = 00008000               
PRV$V_ACNT     = 00000009               QRP_MAXARGS    = 0000000A               SCT_M_GO       = 00000001               
PRV$V_ALLSPOOL = 00000004               QRP_MEM        = 00000018               SCT_M_IE       = 00000040               
PRV$V_ALTPRI   = 0000000D               QRP_MINARGS    = 00000005               SCT_M_M        = 0000001E               
PRV$V_BUGCHK   = 00000017               QRP_MOD        = 00000004               SCT_M_NXM      = 00000200               
PRV$V_BYPASS   = 0000001D               QRP_NARGS      = 00000000               SCT_M_QDC      = 00000400               
PRV$V_CMEXEC   = 00000001               QRP_THRU_AST     00000625 R     04      SCT_M_RESET    = 00000800               
PRV$V_CMKRNL   = 00000000               QRP_THRU_ASTP    00000620 R     04      SCT_M_SDR      = 00007000               
PRV$V_DETACH   = 00000005               QRP_THRU_DATA    00000667 R     04      SCT_M_SSP      = 00000020               
PRV$V_DIAGNOSE = 00000006               QRP_THRU_EFN     0000062A R     04      SCT_S_DONE     = 00000001               
PRV$V_EXQUOTA  = 00000013               QRP_THRU_IOSB    0000062F R     04      SCT_S_ERR      = 00000001               
PRV$V_GROUP    = 00000008               QRP_THRU_MEM     00000639 R     04      SCT_S_GO       = 00000001               
PRV$V_GRPNAM   = 00000003               QSC_A          = 00000008               SCT_S_IE       = 00000001               
PRV$V_LOG_IO   = 00000007               QSC_AST        = 00000024               SCT_S_M        = 00000004               
PRV$V_MOUNT    = 00000011               QSC_ASTP       = 00000028               SCT_S_QDC      = 00000001               
PRV$V_NETMBX   = 00000014               QSC_COUNT      = 00000010               SCT_S_RESET    = 00000001               
PRV$V_NOACNT   = 00000009               QSC_DATA       = 00000014               SCT_S_SDR      = 00000003               
PRV$V_OPER     = 00000012               QSC_EFN        = 00000020               SCT_S_SSP      = 00000001               
PRV$V_PFNMAP   = 0000001A               QSC_F          = 0000000C               SCT_V_BGL      = 00000008               
PRV$V_PHY_IO   = 00000016               QSC_IOSB       = 0000001C               SCT_V_DONE     = 00000007               
PRV$V_PRMCEB   = 0000000A               QSC_MAXARGS    = 0000000A               SCT_V_ERR      = 0000000F               
PRV$V_PRMGBL   = 00000018               QSC_MEM        = 00000018               SCT_V_GO       = 00000000               
PRV$V_PRMMBX   = 0000000B               QSC_MINARGS    = 00000005               SCT_V_IE       = 00000006               
PRV$V_PSWAPM   = 0000000C               QSC_MOD        = 00000004               SCT_V_M        = 00000001               
PRV$V_SETPRI   = 0000000D               QSC_NARGS      = 00000000               SCT_V_NXM      = 00000009               
PRV$V_SETPRV   = 0000000E               QSC_THRU_AST     000002E5 R     04      SCT_V_QDC      = 0000000A               
PRV$V_SHMEM    = 0000001B               QSC_THRU_ASTP    000002E0 R     04      SCT_V_RESET    = 0000000B               
PRV$V_SYSGBL   = 00000019               QSC_THRU_DATA    00000327 R     04      SCT_V_SDR      = 0000000C               
PRV$V_SYSLCK   = 0000001E               QSC_THRU_EFN     000002EA R     04      SCT_V_SSP      = 00000005               
PRV$V_SYSNAM   = 00000002               QSC_THRU_IOSB    000002EF R     04      SES_M_DERR     = 00000800               
PRV$V_SYSPRV   = 0000001C               QSC_THRU_MEM     000002F9 R     04      SES_M_ERC      = 00000007               
PRV$V_TMPMBX   = 0000000F               QST_A          = 00000008               SES_M_ERR      = 00001000               
PRV$V_VOLPRO   = 00000015               QST_AST        = 00000024               SES_M_LPE      = 00000400               
PRV$V_WORLD    = 00000010               QST_ASTP       = 00000028               SES_M_LSYN     = 00000010               
PSTS_M_JIBV    = 00000001               QST_COUNT      = 00000010               SES_M_PH       = 00000100               
PSTS_S_JIBV    = 00000001               QST_DATA       = 00000014               SES_M_REN      = 00000008               
PSTS_V_JIBV    = 00000000               QST_EFN        = 00000020               SES_M_SQ       = 00004000               
QIO$_ASTADR    = 00000014               QST_F          = 0000000C               SES_M_STE      = 00008000               
QIO$_ASTPRM    = 00000018               QST_IOSB       = 0000001C               SES_M_SX       = 00002000               
QIO$_CHAN      = 00000008               QST_MAXARGS    = 0000000A               SES_M_SYNC     = 00000020               
QIO$_EFN       = 00000004               QST_MEM        = 00000018               SES_M_TMO      = 00000040               
QIO$_FUNC      = 0000000C               QST_MINARGS    = 00000005               SES_M_TPE      = 00000200               
QIO$_IOSB      = 00000010               QST_MOD        = 00000004               SES_S_DERR     = 00000001               
QIO$_NARGS     = 0000000C               QST_NARGS      = 00000000               SES_S_ERC      = 00000003               
QIO$_P1        = 0000001C               QST_THRU_AST     000003FA R     04      SES_S_ERR      = 00000001               
QIO$_P2        = 00000020               QST_THRU_ASTP    000003F5 R     04      SES_S_LPE      = 00000001               
QIO$_P3        = 00000024               QST_THRU_DATA    0000043C R     04      SES_S_LSYN     = 00000001               
QIO$_P4        = 00000028               QST_THRU_EFN     000003FF R     04      SES_S_PH       = 00000001               
QIO$_P5        = 0000002C               QST_THRU_IOSB    00000404 R     04      SES_S_REN      = 00000001               
QIO$_P6        = 00000030               QST_THRU_MEM     0000040E R     04      SES_S_SQ       = 00000001               
QRP_A          = 00000008               RTB_K_LENGTH     00000008               SES_S_STE      = 00000001               
QRP_AST        = 00000024               RTB_W_CDH        00000006               SES_S_SX       = 00000001               
QRP_ASTP       = 00000028               RTB_W_CMR        00000002               SES_S_SYNC     = 00000001               
QRP_COUNT      = 00000010               RTB_W_CTR        00000000               SES_S_TMO      = 00000001               
CAM$BLIB                        BASIC CAMAC ACCESS PROCEDURE MODULE       6-JAN-1983 11:05:41  VAX-11 Macro V03-00         Page  40
Symbol table                                                              5-JAN-1983 17:16:44  SYS$SYSROOT:[CAMAC.SOURCE.KS30202](1)

SES_S_TPE      = 00000001               SS$_CONTROLO   = 00000609               SS$_EXTIDXFILE = 00000880               
SES_V_DERR     = 0000000B               SS$_CONTROLY   = 00000611               SS$_EXTQELM    = 00002A3C               
SES_V_ERC      = 00000000               SS$_CREATED    = 00000619               SS$_FACILITY   = 00000000               
SES_V_ERR      = 0000000C               SS$_CTRLERR    = 00000054               SS$_FCPREADERR = 00000888               
SES_V_LPE      = 0000000A               SS$_CVTUNGRANT = 0000213C               SS$_FCPREPSTN  = 00000988               
SES_V_LSYN     = 00000004               SS$_DATACHECK  = 0000005C               SS$_FCPREWNDERR= 00000890               
SES_V_PH       = 00000008               SS$_DATAOVERUN = 00000838               SS$_FCPSPACERR = 00000898               
SES_V_REN      = 00000003               SS$_DBGOPCREQ  = 000006A1               SS$_FCPWRITERR = 000008A0               
SES_V_SQ       = 0000000E               SS$_DEADLOCK   = 00000E0A               SS$_FILACCERR  = 0000009C               
SES_V_STE      = 0000000F               SS$_DEBUG      = 0000046C               SS$_FILALRACC  = 000000A4               
SES_V_SX       = 0000000D               SS$_DECOVF     = 000004A4               SS$_FILELOCKED = 000008A8               
SES_V_SYNC     = 00000005               SS$_DEVACTIVE  = 000002C4               SS$_FILENUMCHK = 000008B0               
SES_V_TMO      = 00000006               SS$_DEVALLOC   = 00000840               SS$_FILEPURGED = 00000679               
SES_V_TPE      = 00000009               SS$_DEVALRALLOC= 00000641               SS$_FILESEQCHK = 000008B8               
SIZ...         = 00000008               SS$_DEVASSIGN  = 00000848               SS$_FILESTRUCT = 000008C0               
SS$_ABORT      = 0000002C               SS$_DEVCMDERR  = 0000032C               SS$_FILNOTACC  = 000000AC               
SS$_ACCONFLICT = 00000800               SS$_DEVFOREIGN = 00000064               SS$_FILNOTCNTG = 000002AC               
SS$_ACCVIO     = 0000000C               SS$_DEVICEFULL = 00000850               SS$_FILNOTEXP  = 000000B4               
SS$_ACPVAFUL   = 000002FC               SS$_DEVINACT   = 000020D4               SS$_FLTDIV     = 00000494               
SS$_ALRDYCLOSED= 000006A9               SS$_DEVMOUNT   = 0000006C               SS$_FLTDIV_F   = 000004BC               
SS$_ARTRES     = 00000474               SS$_DEVNOTALLOC= 00000858               SS$_FLTOVF     = 0000048C               
SS$_ASTFLT     = 0000040C               SS$_DEVNOTDISM = 000021B4               SS$_FLTOVF_F   = 000004B4               
SS$_BADATTRIB  = 00000034               SS$_DEVNOTMBX  = 00000074               SS$_FLTUND     = 0000049C               
SS$_BADCHKSUM  = 00000808               SS$_DEVNOTMOUNT= 0000007C               SS$_FLTUND_F   = 000004C4               
SS$_BADESCAPE  = 0000003C               SS$_DEVOFFLINE = 00000084               SS$_FORCEDERROR= 00002144               
SS$_BADFILEHDR = 00000810               SS$_DEVREQERR  = 00000334               SS$_FORCEDEXIT = 0000217C               
SS$_BADFILENAME= 00000818               SS$_DGQINCOMP  = 000009C0               SS$_FORMAT     = 000000BC               
SS$_BADFILEVER = 00000820               SS$_DIRALLOC   = 000009C8               SS$_GPTFULL    = 000000C4               
SS$_BADIMGHDR  = 00000044               SS$_DIRFULL    = 00000860               SS$_GSDFULL    = 000000CC               
SS$_BADIRECTORY= 00000828               SS$_DIRNOTEMPTY= 00002174               SS$_HANGUP     = 000002CC               
SS$_BADISD     = 00002004               SS$_DISCONNECT = 0000204C               SS$_HEADERFULL = 000008C8               
SS$_BADPARAM   = 00000014               SS$_DRVERR     = 0000008C               SS$_IDMISMATCH = 000003F4               
SS$_BADQFILE   = 000003BC               SS$_DUPDSKQUOTA= 000003DC               SS$_IDXFILEFULL= 000008D0               
SS$_BADQUEUEHDR= 00000394               SS$_DUPFILENAME= 00000868               SS$_ILLBLKNUM  = 000000DC               
SS$_BADRCT     = 0000216C               SS$_DUPLNAM    = 00000094               SS$_ILLCDTST   = 00002154               
SS$_BADSTACK   = 000002B4               SS$_DUPUNIT    = 000021C4               SS$_ILLCNTRFUNC= 000000E4               
SS$_BADVEC     = 00002064               SS$_ENDOFFILE  = 00000870               SS$_ILLEFC     = 000000EC               
SS$_BEGOFFILE  = 00000938               SS$_ENDOFTAPE  = 00000878               SS$_ILLIOFUNC  = 000000F4               
SS$_BLOCKCNTERR= 00000940               SS$_ENDOFUSRLBL= 00000970               SS$_ILLLBLAST  = 00000968               
SS$_BREAK      = 00000414               SS$_ENDOFVOLUME= 000009A0               SS$_ILLPAGCNT  = 000000FC               
SS$_BUFBYTALI  = 0000030C               SS$_EOTIN      = 00000C03               SS$_ILLSELF    = 0000214C               
SS$_BUFFEROVF  = 00000601               SS$_EXASTLM    = 00002A04               SS$_ILLSEQOP   = 000002DC               
SS$_BUFNOTALIGN= 00000324               SS$_EXBIOLM    = 00002A0C               SS$_ILLSER     = 00000104               
SS$_BUGCHECK   = 000002A4               SS$_EXBYTLM    = 00002A14               SS$_ILLUSRLBLRD= 00000958               
SS$_CANCEL     = 00000830               SS$_EXCPUTIM   = 000020AC               SS$_ILLUSRLBLWT= 00000960               
SS$_CHAINW     = 00000C0B               SS$_EXDEPTH    = 00000E1A               SS$_INCOMPAT   = 00000699               
SS$_CHANINTLK  = 0000004C               SS$_EXDIOLM    = 00002A1C               SS$_INCVOLLABEL= 0000010C               
SS$_CLEARED    = 00002104               SS$_EXDISKQUOTA= 000003EC               SS$_INHCHME    = 000004D4               
SS$_CLIFRCEXT  = 00000980               SS$_EXENQLM    = 00002A44               SS$_INHCHMK    = 000004CC               
SS$_CMODSUPR   = 0000041C               SS$_EXFILLM    = 00002A24               SS$_INSFARG    = 00000114               
SS$_CMODUSER   = 00000424               SS$_EXGBLPAGFIL= 00002164               SS$_INSFBUFDP  = 0000033C               
SS$_COMMHARD   = 000020C4               SS$_EXPGFLQUOTA= 00002A2C               SS$_INSFCDT    = 000021AC               
SS$_COMPAT     = 0000042C               SS$_EXPORTQUOTA= 000003AC               SS$_INSFMAPREG = 00000344               
SS$_CONCEALED  = 00000691               SS$_EXPRCLM    = 00002A34               SS$_INSFMEM    = 00000124               
SS$_CONNECFAIL = 000020DC               SS$_EXQUOTA    = 0000001C               SS$_INSFRAME   = 0000012C               
SS$_CONTINUE   = 00000001               SS$_EXQUOTAEND = 00002AFF               SS$_INSFSPTS   = 00002044               
SS$_CONTROLC   = 00000651               SS$_EXQUOTASTRT= 00002A00               SS$_INSFWSL    = 0000011C               
CAM$BLIB                        BASIC CAMAC ACCESS PROCEDURE MODULE       6-JAN-1983 11:05:41  VAX-11 Macro V03-00         Page  41
Symbol table                                                              5-JAN-1983 17:16:44  SYS$SYSROOT:[CAMAC.SOURCE.KS30202](1)

SS$_INTDIV     = 00000484               SS$_NOHOMEBLK  = 000008E0               SS$_NOTQUEUED  = 000009B8               
SS$_INTERLOCK  = 0000038C               SS$_NOIOCHAN   = 000001B4               SS$_NOTRAN     = 00000629               
SS$_INTOVF     = 0000047C               SS$_NOLICENSE  = 00002194               SS$_NOTSQDEV   = 000001E4               
SS$_INVLOGIN   = 0000209C               SS$_NOLINKS    = 0000027C               SS$_NOTVOLSET  = 00000998               
SS$_IVADDR     = 00000134               SS$_NOLISTENER = 0000215C               SS$_NOVOLPRO   = 000028AC               
SS$_IVBUFLEN   = 0000034C               SS$_NOLOCKID   = 00000E12               SS$_NOWORLD    = 00002884               
SS$_IVCHAN     = 0000013C               SS$_NOLOGNAM   = 000001BC               SS$_NOWRT      = 000003FC               
SS$_IVCHAR     = 000020CC               SS$_NOLOG_IO   = 0000283C               SS$_OPCCUS     = 00000434               
SS$_IVCHNLSEC  = 0000026C               SS$_NOMBX      = 00000274               SS$_OPCDEC     = 0000043C               
SS$_IVDEVNAM   = 00000144               SS$_NOMOREFILES= 00000930               SS$_OPINCOMPL  = 000002D4               
SS$_IVGSDNAM   = 0000014C               SS$_NOMOREPROC = 000009A8               SS$_OPRABORT   = 000020B4               
SS$_IVLOCKID   = 00002124               SS$_NOMOUNT    = 0000288C               SS$_OVRDSKQUOTA= 00000669               
SS$_IVLOGNAM   = 00000154               SS$_NONETMBX   = 000028A4               SS$_PAGOWNVIO  = 000001EC               
SS$_IVLOGTAB   = 0000015C               SS$_NONEXDRV   = 000001C4               SS$_PAGRDERR   = 00000444               
SS$_IVLVEC     = 0000203C               SS$_NONEXPR    = 000008E8               SS$_PARITY     = 000001F4               
SS$_IVMODE     = 00000354               SS$_NONLOCAL   = 000008F0               SS$_PARNOTGRANT= 00002134               
SS$_IVPROTECT  = 000002F4               SS$_NOOPER     = 00002894               SS$_PARTESCAPE = 000001FC               
SS$_IVQUOTAL   = 00000164               SS$_NOP1VA     = 00002024               SS$_PARTMAPPED = 00000E22               
SS$_IVSECFLG   = 0000016C               SS$_NOPFNMAP   = 000028D4               SS$_PATHLOST   = 000020FC               
SS$_IVSECIDCTL = 000002E4               SS$_NOPHY_IO   = 000028B4               SS$_PFMBSY     = 00000204               
SS$_IVSSRQ     = 00000174               SS$_NOPRIV     = 00000024               SS$_PLHLDR     = 00000404               
SS$_IVSTSFLG   = 0000017C               SS$_NOPRIVEND  = 000029FF               SS$_POWERFAIL  = 00000364               
SS$_IVTIME     = 00000184               SS$_NOPRIVSTRT = 00002800               SS$_PRIVINSTALL= 00002054               
SS$_JBCERROR   = 0000218C               SS$_NOPRMCEB   = 00002854               SS$_PROTINSTALL= 0000205C               
SS$_LCKPAGFUL  = 000000D4               SS$_NOPRMGBL   = 000028C4               SS$_PROTOCOL   = 00002074               
SS$_LENVIO     = 0000018C               SS$_NOPRMMBX   = 0000285C               SS$_PSTFULL    = 0000020C               
SS$_LINEABRT   = 00000E02               SS$_NOPSWAPM   = 00002864               SS$_QFACTIVE   = 000003CC               
SS$_LINKABORT  = 000020E4               SS$_NOQFILE    = 000003C4               SS$_QFNOTACT   = 000003D4               
SS$_LINKDISCON = 000020EC               SS$_NORMAL     = 00000001               SS$_RADRMOD    = 0000044C               
SS$_LINKEXIT   = 000020F4               SS$_NOSETPRV   = 00002874               SS$_RDDELDATA  = 00000661               
SS$_LKWSETFUL  = 00000194               SS$_NOSHMBLOCK = 000003B4               SS$_REJECT     = 00000294               
SS$_MBFULL     = 000008D8               SS$_NOSHMEM    = 000028DC               SS$_RELINK     = 0000200C               
SS$_MBTOOSML   = 0000019C               SS$_NOSHRIMG   = 000021BC               SS$_REMOTE     = 00000649               
SS$_MCHECK     = 000002BC               SS$_NOSIGNAL   = 00000900               SS$_REMRSRC    = 0000206C               
SS$_MCNOTVALID = 0000035C               SS$_NOSLOT     = 0000039C               SS$_RESET      = 0000210C               
SS$_MEDOFL     = 000001A4               SS$_NOSOLICIT  = 00000284               SS$_RESIGNAL   = 00000918               
SS$_MSGNOTFND  = 00000621               SS$_NOSUCHDEV  = 00000908               SS$_RESULTOVF  = 00000214               
SS$_MTLBLLONG  = 00000304               SS$_NOSUCHFILE = 00000910               SS$_ROPRAND    = 00000454               
SS$_MULTRMS    = 0000202C               SS$_NOSUCHNODE = 0000028C               SS$_SECTBLFUL  = 0000021C               
SS$_MUSTCLOSEFL= 00000948               SS$_NOSUCHOBJ  = 000020A4               SS$_SHARTOOBIG = 0000201C               
SS$_NOACNT     = 0000284C               SS$_NOSUCHSEC  = 00000978               SS$_SHMGSNOTMAP= 0000036C               
SS$_NOALLSPOOL = 00002824               SS$_NOSUCHUSER = 00002084               SS$_SHMNOTCNCT = 0000037C               
SS$_NOALTPRI   = 0000286C               SS$_NOSYSGBL   = 000028CC               SS$_SHRIDMISMAT= 000020BC               
SS$_NOAQB      = 00000314               SS$_NOSYSLCK   = 000028F4               SS$_SHUT       = 0000208C               
SS$_NOBUGCHK   = 000028BC               SS$_NOSYSNAM   = 00002814               SS$_SSFAIL     = 0000045C               
SS$_NOBYPASS   = 000028EC               SS$_NOSYSPRV   = 000028E4               SS$_SUBLOCKS   = 0000212C               
SS$_NOCMEXEC   = 0000280C               SS$_NOTALLPRIV = 00000681               SS$_SUBRNG     = 000004AC               
SS$_NOCMKRNL   = 00002804               SS$_NOTAPEOP   = 00000264               SS$_SUPERSEDE  = 00000631               
SS$_NODATA     = 000001AC               SS$_NOTCREATOR = 00000384               SS$_SUSPENDED  = 000003A4               
SS$_NODETACH   = 0000282C               SS$_NOTFILEDEV = 000001CC               SS$_SYNCH      = 00000689               
SS$_NODEVAVL   = 000009B0               SS$_NOTINSTALL = 00002014               SS$_SYSVERDIF  = 00000671               
SS$_NODIAGNOSE = 00002834               SS$_NOTINTBLSZ = 000001D4               SS$_TAPEPOSLOST= 00000224               
SS$_NODISKQUOTA= 000003E4               SS$_NOTLABELMT = 000001DC               SS$_TBIT       = 00000464               
SS$_NOEXQUOTA  = 0000289C               SS$_NOTMODIFIED= 00000659               SS$_THIRDPARTY = 0000207C               
SS$_NOGROUP    = 00002844               SS$_NOTMPMBX   = 0000287C               SS$_TIMEOUT    = 0000022C               
SS$_NOGRPNAM   = 0000281C               SS$_NOTNETDEV  = 000002EC               SS$_TOOMANYLNAM= 00000374               
SS$_NOHANDLER  = 000008F8               SS$_NOTPRINTED = 00002184               SS$_TOOMANYREDS= 0000211C               
CAM$BLIB                        BASIC CAMAC ACCESS PROCEDURE MODULE       6-JAN-1983 11:05:41  VAX-11 Macro V03-00         Page  42
Symbol table                                                              5-JAN-1983 17:16:44  SYS$SYSROOT:[CAMAC.SOURCE.KS30202](1)

SS$_TOOMANYVER = 00000990               
SS$_TOOMUCHDATA= 0000029C               
SS$_UNASEFC    = 00000234               
SS$_UNREACHABLE= 00002094               
SS$_UNSAFE     = 0000023C               
SS$_UNSOLICIT  = 00002114               
SS$_UNWIND     = 00000920               
SS$_UNWINDING  = 00000928               
SS$_VASFULL    = 00000244               
SS$_VCBROKEN   = 0000219C               
SS$_VCCLOSED   = 000021A4               
SS$_VECFULL    = 00002034               
SS$_VECINUSE   = 0000024C               
SS$_VOLINV     = 00000254               
SS$_WAITUSRLBL = 00000950               
SS$_WASCLR     = 00000001               
SS$_WASECC     = 00000639               
SS$_WASSET     = 00000009               
SS$_WRITLCK    = 0000025C               
SS$_WRONGACP   = 0000031C               
STP_A          = 00000008               
STP_AST        = 00000024               
STP_ASTP       = 00000028               
STP_COUNT      = 00000010               
STP_DATA       = 00000014               
STP_EFN        = 00000020               
STP_F          = 0000000C               
STP_IOSB       = 0000001C               
STP_MAXARGS    = 0000000A               
STP_MEM        = 00000018               
STP_MINARGS    = 00000005               
STP_MOD        = 00000004               
STP_NARGS      = 00000000               
STP_THRU_AST     00000510 R     04      
STP_THRU_ASTP    0000050B R     04      
STP_THRU_DATA    00000552 R     04      
STP_THRU_EFN     00000515 R     04      
STP_THRU_IOSB    0000051A R     04      
STP_THRU_MEM     00000524 R     04      
SYS$QIO          ********  GX   04      
SYS$QIOW         ********  GX   04      

                                                +----------------+
                                                ! Psect synopsis !
                                                +----------------+

PSECT name                      Allocation          PSECT No.  Attributes     
----------                      ----------          ---------  ----------     
.  ABS  .                       00000000  (    0.)  00 (  0.)  NOPIC   USR   CON   ABS   LCL NOSHR NOEXE NORD  NOWRT NOVEC BYTE  
. BLANK .                       00000000  (    0.)  01 (  1.)  NOPIC   USR   CON   REL   LCL NOSHR   EXE   RD    WRT NOVEC BYTE  
$ABS$                           FFFFFFFC  (    0.)  02 (  2.)  NOPIC   USR   CON   ABS   LCL NOSHR   EXE   RD    WRT NOVEC BYTE  
CAM$VEC                         00000068  (  104.)  03 (  3.)    PIC   USR   CON   REL   LCL   SHR   EXE   RD  NOWRT NOVEC BYTE  
CAM$CODE                        000006DB  ( 1755.)  04 (  4.)    PIC   USR   CON   REL   LCL   SHR   EXE   RD  NOWRT NOVEC BYTE  
CAM$BLIB                        BASIC CAMAC ACCESS PROCEDURE MODULE       6-JAN-1983 11:05:41  VAX-11 Macro V03-00         Page  43
VAX-11 Macro Run Statistics                                               5-JAN-1983 17:16:44  SYS$SYSROOT:[CAMAC.SOURCE.KS30202](1)


                                             +------------------------+
                                             ! Performance indicators !
                                             +------------------------+

Phase                    Page faults    CPU Time       Elapsed Time   
-----                    -----------    --------       ------------   
Initialization                   25     00:00:00.06    00:00:00.15
Command processing               30     00:00:00.20    00:00:00.43
Pass 1                          546     00:00:18.69    00:00:19.72
Symbol table sort                 0     00:00:02.17    00:00:02.17
Pass 2                          325     00:00:04.57    00:00:04.80
Symbol table output              67     00:00:00.75    00:00:00.77
Psect synopsis output             4     00:00:00.03    00:00:00.02
Cross-reference output            0     00:00:00.00    00:00:00.00
Assembler run totals           1000     00:00:26.49    00:00:28.09

The working set limit was 1024 pages.
104032 bytes (204 pages) of virtual memory were used to buffer the intermediate code.
There were 80 pages of symbol table space allocated to hold 1409 non-local and 53 local symbols.
1593 source lines were read in Pass 1, producing 55 object records in Pass 2.
39 pages of virtual memory were used to define 34 macros.

                                            +--------------------------+
                                            ! Macro library statistics !
                                            +--------------------------+

Macro library name                           Macros defined      
------------------                           --------------      
SYS$SYSROOT:[CAMAC.SOURCE.KS30202]CAMDEF.MLB;          14        
SYS$SYSROOT:[SYSLIB]LIB.MLB;1                           0        
SYS$SYSROOT:[SYSLIB]STARLET.MLB;1                      15        
TOTALS (all libraries)                                 29        

1612 GETS were required to define 29 macros.

There were no errors, warnings or information messages.

/LIS CAMBLIB
