KSDRIVER                        VAX/VMS KS 2050 SERIES CAMAC DRIVER      28-JAN-1983 14:41:34  VAX-11 Macro V03-00         Page   0
Table of contents

    (1)      200        SERIAL DRIVER MACRO DEFINITIONS
    (1)      279        DATA STRUC AND SYMBOL DEFINITIONS
    (1)      326        DRIVER TABLE DEFINITIONS
    (1)      488        KS_CONTROL_INIT, CONTROLLER INITIALIZATI
    (1)      557        KS_UNIT_INIT, UNIT INITIALIZATION ROUTIN
    (1)      638        KS_FDT_CAMIO,  CAMAC I/O FDT ROUTINE
    (1)      922        KS_ALOIRP, ALLOCATE IRP STRUC
    (1)      957        KS_FDT_SETC
    (1)     1061        KS_FDT_LAMAST
    (1)     1116        KS_FDT_SENSM, SENSE CAMAC CRATE UNIT STA
    (1)     1155        KS_FDT_MOUNT, MOUNT CAMAC ACP
    (1)     1208        KS_FDT_ACP, ACP CONTROL FDT
    (1)     1257        KS_Q_TO_ACP, QUEUE IRP TO CAMAC ACP
    (1)     1292        KS_START, START I/O ROUTINE
    (1)     1920        KS_ISRS KS 2050 INTERRUPT SERVICE ROUTIN
    (1)     2010        KS_CANCEL, Cancel I/O routine
    (1)     2067        KS_QCANIRP, QUEUE CANCEL IRP TO CAMAC AC
    (1)     2149        KS_REG_DUMP, Device register dump routin
    (1)     2215        KS_END, End of driver
KSDRIVER                        VAX/VMS KS 2050 SERIES CAMAC DRIVER      28-JAN-1983 14:41:34  VAX-11 Macro V03-00         Page   1
V05-001                                                                  25-JAN-1983 10:19:55  SYS$SYSROOT:[CAMAC.SOURCE]KSDRIVER(1)

                                     0000     1 	.TITLE	KSDRIVER	VAX/VMS KS 2050 SERIES CAMAC DRIVER
                                     0000     2 	.IDENT	'V05-001'
                           00000001  0000    .1 KS_X_SH		= 1			; SERIAL DRIVER SWITCH
                                     0000     3 
                                     0000     4 	.NOSHOW	CONDITIONALS
                                     0000     5 	.LIBRARY	/SYS$LIBRARY:LIB/		; SYSTEM MACRO LIBRARY
                                     0000     6 	.LIBRARY	/CAMDEF/			; CAMAC MACRO LIBRARY
                                     0000     7 ;**********************************************************************
                                     0000     8 ;
                                     0000     9 ;
                                     0000    10 ;	VAX/VMS DEVICE DRIVER FOR THE KINETIC SYSTEMS 2050 CAMAC INTERFACE
                                     0000    11 ;	
                                     0000    12 ;
                                     0000    13 ;**********************************************************************
                                     0000    14 
                                     0000    15 ;++
                                     0000    16 ;
                                     0000    17 ; FACILITY:
                                     0000    18 ;
                                     0000    19 ;	OAK RIDGE NATIONAL LABORATORY
                                     0000    20 ;	FUSION ENERGY DIVISION
                                     0000    21 ;	TOKAMAK SECTION
                                     0000    22 ;
                                     0000    23 ; ABSTRACT:
                                     0000    24 ;	
                                     0000    25 ;	This device driver supports the KS 2050 series CAMAC interface.
                                     0000    26 ;	The KS 2050 is a serial CAMAC interface designed for Digital Equipment 
                                     0000    27 ;	Corporation UNIBUS machines. The KS 2051 is the parallel highway 
                                     0000    28 ;	counterpart of the 2050 unit. A detailed description of the hardware
                                     0000    29 ;	may be found in the KS 2050 Series Reference Manual. A brief synopsis
                                     0000    30 ;	of the 2050 series hardware characteristics follows.
                                     0000    31 ;
                                     0000    32 ;	DEVICE REGISTERS:
                                     0000    33 ;
                                     0000    34 ;	Control Register(CTR)-Offset 0
                                     0000    35 ;		Contains mode select bits, error control bits, clock select/
                                     0000    36 ;		clock rate bits, 'DONE'/'ERROR' bits, 'DONE'/'ERROR' interrupt
                                     0000    37 ;		enable bit and the 'GO' bit.
                                     0000    38 ;
                                     0000    39 ;
                                     0000    40 ;	Serial Error/Status Register(SES)-Offset 2
                                     0000    41 ;		Contains amplified error status information, error
                                     0000    42 ;		recovery control/status information and the serial 'Q'
                                     0000    43 ;		and 'X' responses.
                                     0000    44 ;
                                     0000    45 ;	Parallel Error/Status Register(PES)-Offset 4
                                     0000    46 ;		Contains amplified error and status information about
                                     0000    47 ;		parallel highway transactions including branch X and Q
                                     0000    48 ;		responses and branch timeout status. Also contains control
                                     0000    49 ;		bits for branch demand enable and auto-GL enable.
                                     0000    50 ;
                                     0000    51 ;	Command Register(CMR)-Offset 6
                                     0000    52 ;		Contains the CAMAC station number(N), subaddress(A),
                                     0000    53 ;		function code(F) and error control bits.
                                     0000    54 ;
                                     0000    55 ;	Crate Address/Data High Register(cdh)-Offset 10
                                     0000    56 ;		Contains memory format control bit('16'/'24'),
KSDRIVER                        VAX/VMS KS 2050 SERIES CAMAC DRIVER      28-JAN-1983 14:41:34  VAX-11 Macro V03-00         Page   2
V05-001                                                                  25-JAN-1983 10:19:55  SYS$SYSROOT:[CAMAC.SOURCE]KSDRIVER(1)

                                     0000    57 ;		CAMAC crate address(C) and the HSB for programmed I/O
                                     0000    58 ;		operations.
                                     0000    59 ;
                                     0000    60 ;	Data Low Register(DLR)-Offset 12
                                     0000    61 ;		Contains the low order 16 bits of data for programmed I/O
                                     0000    62 ;		operations.
                                     0000    63 ;
                                     0000    64 ;	Demand FIFO Register(DFR)-Offset 14
                                     0000    65 ;		Contains serial demand FIFO status and reads SGL
                                     0000    66 ;		patterns from the demand FIFO.
                                     0000    67 ;
                                     0000    68 ;	Demand/Compare Register(DCR)-Offset 16
                                     0000    69 ;		Contains demand FIFO status indicators, the serial demand interrupt
                                     0000    70 ;		enable, the demand compare SGL pattern and the GO-ON-COMPARE enable
                                     0000    71 ;		for deferred command execution.
                                     0000    72 ;
                                     0000    73 ;	Memory Address Extended Register(MAE)-Offset 30
                                     0000    74 ;		Contains the 2 high order bits of the UNIBUS addresses used
                                     0000    75 ;		to specify transmit and recieve buffers.
                                     0000    76 ;
                                     0000    77 ;	Transmit Mmeory Address Register(TMA)-Offset 32
                                     0000    78 ;		Contains the low order 16 bits of the UNIBUS address used to
                                     0000    79 ;		transmit data to the KS 2050(CAMAC DMA write operations/list mode).
                                     0000    80 ;
                                     0000    81 ;	Reply Memory Address Register(RMA)-Offset 34
                                     0000    82 ;		Contains the low order 16 bits of the UNIBUS address used to receive
                                     0000    83 ;		data from the KS 2050(CAMAC DMA read operations/list mode).
                                     0000    84 ;
                                     0000    85 ;	Word Count Register(WCR)-Offset 36
                                     0000    86 ;		Contains the 16-bit word count for all CAMAC DMA operations to
                                     0000    87 ;		be transferred to/from the computer memory.
                                     0000    88 ;
                                     0000    89 ;	MODES OF OPERATION:
                                     0000    90 ;
                                     0000    91 ;	Programmed I/O Mode(Mode 0)
                                     0000    92 ;
                                     0000    93 ;	Q Scan/Stop On Word Count Mode(Mode 1)
                                     0000    94 ;
                                     0000    95 ;	Q Stop/Stop On Word Count Mode(Mode 2)
                                     0000    96 ;
                                     0000    97 ;	Stop On Word Count Mode(Mode 3)
                                     0000    98 ;
                                     0000    99 ;	Execute List Mode(Mode 4)
                                     0000   100 ;
                                     0000   101 ;	Parallel GL Mode(Mode 6)
                                     0000   102 ;
                                     0000   103 ;	Parallel Branch Initialize Mode(Mode 7)
                                     0000   104 ;
                                     0000   105 ;	Q Repeat/Stop On Word Count Mode(Mode 8)
                                     0000   106 ;
                                     0000   107 ;		
                                     0000   108 ;
                                     0000   109 ; AUTHOR:
                                     0000   110 ;
                                     0000   111 ;	Edward T. Blair	18-MARCH-1982
                                     0000   112 ;
                                     0000   113 ; REVISION HISTORY:
KSDRIVER                        VAX/VMS KS 2050 SERIES CAMAC DRIVER      28-JAN-1983 14:41:34  VAX-11 Macro V03-00         Page   3
V05-001                                                                  25-JAN-1983 10:19:55  SYS$SYSROOT:[CAMAC.SOURCE]KSDRIVER(1)

                                     0000   114 ;	V02-000	E.T. Blair, 25-MAY-1982
                                     0000   115 ;	Addition of conditional assembly for single/multi unit
                                     0000   116 ;	driver generation.
                                     0000   117 ;	V02-001	E.T. Blair, 11-JUNE-1982
                                     0000   118 ;	Add code to support 16/24 bit Programmed I/O requests.
                                     0000   119 ;	Add code to reset TMA and RMA address extend bits in
                                     0000   120 ;	the MAE register before masking in new values.
                                     0000   121 ;
                                     0000   122 ;	V02-002	E.T. Blair, 12-JUNE-1982
                                     0000   123 ;	Add code to support error logging for UNIBUS errors
                                     0000   124 ;	posted by the KS 2050 device. This code may be 
                                     0000   125 ;	conditionally assembled by switch KS_X_ERLS.
                                     0000   126 ;
                                     0000   127 ;	V03-000 E.T. BLAIR, 25-JUNE-1982
                                     0000   128 ;	Add support for CAMAC ACP.
                                     0000   129 ;	Modify KS 2050 MODE 0 processing to utilize double
                                     0000   130 ;	page mapping to transfer CAMAC read data to user's
                                     0000   131 ;	buffer.
                                     0000   132 ;
                                     0000   133 ;	V03-001 E.T. Blair, 27-july-1982
                                     0000   134 ;	Make references to CAMAC specific data structures from
                                     0000   135 ;	CAMDEF.MLB to provide a common source of all structures
                                     0000   136 ;	and definitions for all CAMAC system software.
                                     0000   137 ;
                                     0000   138 ;	V03-002 E.T. Blair, 6-AUGUST-1982
                                     0000   139 ;	Add code to queue a deaccess IRP to the CAMAC ACP provided
                                     0000   140 ;	it is mounted, any time an I/O is cancelled for a particular
                                     0000   141 ;	VMS channel(eg. DEASSIGN, CANCEL, image/process rundown). This
                                     0000   142 ;	addition is necessary because VMS normal CANCEL flow will not
                                     0000   143 ;	queue the normal 'ACPCONTROL' IRP to the ACP if no "file" activity
                                     0000   144 ;	is in progress(i.e. no file window mapped for the channel) or
                                     0000   145 ;	the channel is assigned to a device mounted 'FOREIGN'. Also, 
                                     0000   146 ;	made changes necessary to allow LAMAST requests to be queued to
                                     0000   147 ;	the CAMAC ACP through the crate UCB's even though they are not
                                     0000   148 ;	explicitly mounted.
                                     0000   149 ;
                                     0000   150 ;	V03-003, E.T. Blair,18-AUG-1982
                                     0000   151 ;	Delete conditional assembly code for single/multi unit code
                                     0000   152 ;	generation in the device driver. With the addition of the
                                     0000   153 ;	CAMAC ACP, this whole issue needs to be reevaluated at a later
                                     0000   154 ;	date to come up with a clean solution and implementation
                                     0000   155 ;	in order to maintain full functionality independent of single
                                     0000   156 ;	or multiple unit driver assembly.
                                     0000   157 ;
                                     0000   158 ;	V03-004, E.T. Blair,24-AUG-1982
                                     0000   159 ;	Add routine to perform internal allocation of IRP's. This routine
                                     0000   160 ;	is utilized to allocate a DEACCESS IRP to signal the CAMAC ACP
                                     0000   161 ;	an I/O channel is being deassigned and by the MODE 4(List Mode)
                                     0000   162 ;	FDT routine(replaces call to EXE$ALLOCIRP) to allocate an IRP 
                                     0000   163 ;	extension when the execute list requires a reply list to support 
                                     0000   164 ;	it's execution. Routine name is KS_ALOIRP. 
                                     0000   165 ;
                                     0000   166 ;	V03-005, E.T. Blair,27-AUG-1982
                                     0000   167 ;	Correct documentation errors in the preambles for the KS_FDT_LAMAST
                                     0000   168 ;	and KS_FDT_SETC routines. These errors were found while converting
                                     0000   169 ;	the serial highway driver code to function as a parallel highway
                                     0000   170 ;	driver.
KSDRIVER                        VAX/VMS KS 2050 SERIES CAMAC DRIVER      28-JAN-1983 14:41:34  VAX-11 Macro V03-00         Page   4
V05-001                                                                  25-JAN-1983 10:19:55  SYS$SYSROOT:[CAMAC.SOURCE]KSDRIVER(1)

                                     0000   171 ;
                                     0000   172 ;	V04-000, E.T. Blair,31-AUG-1982
                                     0000   173 ;	Make changes necessary to support V02 of the CAMAC ACP. This version
                                     0000   174 ;	and ones subsequent will not work properly with V01 of the ACP.
                                     0000   175 ;	These changes are confined to KS_FDT_LAMAST and it's expected 
                                     0000   176 ;	parameters.
                                     0000   177 ;
                                     0000   178 ;	V04-001, E.T. Blair,7-SEP-1982
                                     0000   179 ;	Change KS 2050 register template prefix for the serial control 
                                     0000   180 ;	register to allow both serial and parallel register template macros 
                                     0000   181 ;	to be expanded in the CAMAC access procedure modules without 
                                     0000   182 ;	conflicting symbol names. Also, change the byte count for '24'
                                     0000   183 ;	bit Programmed I/O's from #4 to #3 so the crate number from
                                     0000   184 ;	the CDH register is not transferred back as CAMAC read data.
                                     0000   185 ;
                                     0000   186 ;	V05-000, E.T. Blair, 23-SEP-1982
                                     0000   187 ;	Add changes to support new KS 2050 firmware. The new firmware supports
                                     0000   188 ;	a Q-Repeat mode and a firmware reset bit in the control register. 
                                     0000   189 ;	Also, to support the addition of the parallel system, a SH/PH 
                                     0000   190 ;	bit(software indicator only) has been added to the CAMAC I/O status 
                                     0000   191 ;	block returned by the SH/PH device drivers.
                                     0000   192 ;
                                     0000   193 ;	V05-001, E.T. Blair, 25-JAN-1983
                                     0000   194 ;	Check HSU link for 0 in KS_CANCEL to prohibit system bugcheck 
                                     0000   195 ;	in the event that the UNIT_INIT is not called by SYSGEN due
                                     0000   196 ;	to an invalid CSR address or a malfunctioning highway driver
                                     0000   197 ;	that failed to respond when addressed. 
                                     0000   198 ;--
KSDRIVER                        VAX/VMS KS 2050 SERIES CAMAC DRIVER      28-JAN-1983 14:41:34  VAX-11 Macro V03-00         Page   5
V05-001                         SERIAL DRIVER MACRO DEFINITIONS          25-JAN-1983 10:19:55  SYS$SYSROOT:[CAMAC.SOURCE]KSDRIVER(1)

                                     0000   200 	.SBTTL	SERIAL DRIVER MACRO DEFINITIONS
                                     0000   201 	.MACRO	WAITMUSEC,DELAY,?L1,?L2,?L3
                                     0000   202 	MOVZWL	DELAY,R2		; GET DELAY
                                     0000   203 L1:
                                     0000   204 	DECL	R2			; DECREMENT COUNT
                                     0000   205 	BLSS	L3			; IF NEG, DONE
                                     0000   206 	MFPR	#PR$_ICR,R0		; GET MUSEC CLOCK
                                     0000   207 L2:
                                     0000   208 	MFPR	#PR$_ICR,R1		; SAMPLE AGAIN
                                     0000   209 	CMPL	R0,R1			; SAME?
                                     0000   210 	BEQL	L2			; IF SO, SAMPLE TILL DIFFERENT
                                     0000   211 	BRB	L1			; RECORD MUSEC TICK
                                     0000   212 L3:
                                     0000   213 	.ENDM	WAITMUSEC
                                     0000   214 	.MACRO	TIME TVAL
                                     0000   215 	MFPR	#PR$_ICR,TVAL		; GET REAL TIME CLOCK
                                     0000   216 	.ENDM	TIME
                                     0000   217 	.MACRO	GETUBA,BOFF,MAPREG,UBADR
                                     0000   218 	.IF	B,BOFF
                                     0000   219 	.ERROR	0	; MISSING BYTE OFFSET
                                     0000   220 	.ENDC
                                     0000   221 	.IF	B,MAPREG
                                     0000   222 	.ERROR	0	; MISSING MAP REGISTER
                                     0000   223 	.ENDC
                                     0000   224 	.IF	B,UBADR
                                     0000   225 	.ERROR	0	; MISSING UNIBUS ADDRESS OUTPUT
                                     0000   226 	.ENDC
                                     0000   227 	MOVZWL	BOFF,UBADR		; BYTE OFFSET(ZERO EXTEND)
                                     0000   228 	INSV	MAPREG,-		; INSERT UBA MAP REGISTER AT PAGE
                                     0000   229 		#9,#9,-			; BOUNDARY IN UNIBUS MEMORY
                                     0000   230 		UBADR			; ADDRESS
                                     0000   231 	.ENDM	GETUBA
                                     0000   232 	.MACRO	REQCAMAC,?L1,?L2
                                     0000   233 	CMPB	IRP$B_PRI(R3),#16	; CHECK PROCESS PRIORITY
                                     0000   234 	BLSS	L1			; IF REALTIME, HIGH PRI REQUEST
                                     0000   235 	REQPCHAN			; LOW PRI REQUEST
                                     0000   236 	BRB	L2			; COMMON FLOW
                                     0000   237 L1:
                                     0000   238 	REQPCHAN	PRI=HIGH	; HIGH PRI CONT REQUEST
                                     0000   239 L2:
                                     0000   240 	.ENDM	REQCAMAC
                                     0000   241 	.MACRO	SETTMA,UBADDR
                                     0000   242 	.IF	NB,UBADDR
                                     0000   243 	MOVL	UBADDR,R0		; GET UNIBUS TRANSMIT MEM ADDRESS
                                     0000   244 					; NOTE: R0 IS DESTROYED BY THIS MACRO
                                     0000   245 	.ENDC
                                     0000   246 	MOVW	R0,KS_W_TMA(R4)		; SET TMA REG
                                     0000   247 	CLRW	R0			; CLEAR LOW UBA BITS
                                     0000   248 	ASHL	#<MAE_V_TMA-16>,-	; POSITION MAE BITS
                                     0000   249 		R0,R0
                                     0000   250 	BISW	R0,KS_W_MAE(R4)		; MASK TMA BITS INTO MAE
                                     0000   251 	.ENDM	SETTMA
                                     0000   252 	.MACRO	SETRMA,UBADDR
                                     0000   253 	.IF	NB,UBADDR
                                     0000   254 	MOVL	UBADDR,R0		; GET UNIBUS TRANSMIT MEM ADDRESS
                                     0000   255 					; NOTE: R0 IS DESTROYED BY THIS MACRO
                                     0000   256 	.ENDC
KSDRIVER                        VAX/VMS KS 2050 SERIES CAMAC DRIVER      28-JAN-1983 14:41:34  VAX-11 Macro V03-00         Page   6
V05-001                         SERIAL DRIVER MACRO DEFINITIONS          25-JAN-1983 10:19:55  SYS$SYSROOT:[CAMAC.SOURCE]KSDRIVER(1)

                                     0000   257 	MOVW	R0,KS_W_RMA(R4)		; SET RMA REG
                                     0000   258 	CLRW	R0			; CLEAR LOW UBA BITS
                                     0000   259 	ASHL	#<MAE_V_RMA-16>,-	; POSITION MAE BITS
                                     0000   260 		R0,R0
                                     0000   261 	BISW	R0,KS_W_MAE(R4)		; MASK RMA BITS INTO MAE
                                     0000   262 	.ENDM	SETRMA
                                     0000   263 	.MACRO	NULLUBA,MAPREG,NUMREG,UBADDR
                                     0000   264 	.IF	B,MAPREG
                                     0000   265 	.ERROR	0	; MISSING MAP REG NUMBER
                                     0000   266 	.ENDC
                                     0000   267 	.IF	B,NUMREG
                                     0000   268 	.ERROR	0	; MISSING NUMBER OF MAP REGS
                                     0000   269 	.ENDC
                                     0000   270 	.IF	B,UBADDR
                                     0000   271 	.ERROR	0	; MISSING UNIBUSS ADDRESS
                                     0000   272 	.ENDC
                                     0000   273 	MOVZBL	NUMREG,UBADDR		; COMPUTE UNIBUSS ADDRESS
                                     0000   274 	DECL	UBADDR			; FOR HIGH UBA MAP REG
                                     0000   275 	ADDW	MAPREG,UBADDR
                                     0000   276 	ASHL	#9,UBADDR,UBADDR
                                     0000   277 	.ENDM	NULLUBA
KSDRIVER                        VAX/VMS KS 2050 SERIES CAMAC DRIVER      28-JAN-1983 14:41:34  VAX-11 Macro V03-00         Page   7
V05-001                         DATA STRUC AND SYMBOL DEFINITIONS        25-JAN-1983 10:19:55  SYS$SYSROOT:[CAMAC.SOURCE]KSDRIVER(1)

                                     0000   279 	.SBTTL	DATA STRUC AND SYMBOL DEFINITIONS
                                     0000   280 
                                     0000   281 ;
                                     0000   282 ; SYSTEM DATA STRUCTURE DEFINITIONS
                                     0000   283 ;
                                     0000   284 
                                     0000   285 	$CRBDEF				; Channel request block
                                     0000   286 	$DCDEF				; Device classes and types
                                     0000   287 	$DDBDEF				; Device data block
                                     0000   288 	$DEVDEF				; Device characteristics
                                     0000   289 	$DYNDEF				; Data structure type codes
                                     0000   290 	$IDBDEF				; Interrupt data block
                                     0000   291 	$IPLDEF				; Hardware IPL definitions
                                     0000   292 	$SSDEF				; System status codes
                                     0000   293 	$VADEF				; Virtual address defs
                                     0000   294 	$AQBDEF				; ACP CONTROL BLOCK
                                     0000   295 	$VCBDEF				; VOLUME CONTROL BLOCK
                                     0000   296 	$VECDEF				; Interrupt vector block
                                     0000   297 	$JIBDEF				; Job Information Block
                                     0000   298 	$PRDEF				; Processor registers
                                     0000   299 	$PCBDEF				; Process Control Block 
                                     0000   300 	$EMBDEF				; Error log buffer struc
                                     0000   301 ;
                                     0000   302 ;	CAMAC specific structures and definitions from CAMDEF.MLB
                                     0000   303 ;
                                     0000   304 
                                     0000   306 	$SHPARMS			; SERIAL DRIVER PARAMETERS/SWITCHES
                                     0000   311 	$KSIRPDEF			; KS DRIVER IRP DEFINITION
                                     0000   312 	$KSUCBDEF			; KS DRIVER UCB DEFINITION
                                     0000   313 	$KSREGS				; KS 2050 REGISTER AND MASK DEFINITIONS
                                     0000   314 	$KSIODEF			; CAMAC I/O FUNCTION CODES
                                     0000   315 	$RTBDEF				; REGISTER TEMPLATE BLOCK
                                     0000   316 ;
                                     0000   317 ; Argument list (AP) offsets for device-dependent QIO parameters
                                     0000   318 ;
                                     0000   319 
                           00000000  0000   320 P1	= 0				; First QIO parameter
                           00000004  0000   321 P2	= 4				; Second QIO parameter
                           00000008  0000   322 P3	= 8				; Third QIO parameter
                           0000000C  0000   323 P4	= 12				; Fourth QIO parameter
                           00000010  0000   324 P5	= 16				; Fifth QIO parameter
                           00000014  0000   325 P6	= 20				; Sixth QIO parameter
                                     0000   326 	.SBTTL	DRIVER TABLE DEFINITIONS
                                     0000   327 
                                     0000   328 ;
                                     0000   329 ; DRIVER PROLOGUE TABLE
                                     0000   330 ;
                                     0000   331 
                                     0000   333 	DPTAB	-				; DPT MUST BE FIRST
                                     0000   334 		END=KS_END,-			; End of driver label
                                     0000   335 		ADAPTER=UBA,-			; Adapter type
                                     0000   336 		UCBSIZE=<UCB$K_KS_LEN>,-	; Length of UCB
                                     0000   337 		FLAGS=DPT$M_SVP,-		; RESERVE SPTE FOR UNIT
                                     0000   338 		NAME=SHDRIVER			; Driver name
                                     0038   348 
                                     0038   349 	DPT_STORE INIT				; Start of load
                                     0038   350 						; initialization table
KSDRIVER                        VAX/VMS KS 2050 SERIES CAMAC DRIVER      28-JAN-1983 14:41:34  VAX-11 Macro V03-00         Page   8
V05-001                         DRIVER TABLE DEFINITIONS                 25-JAN-1983 10:19:55  SYS$SYSROOT:[CAMAC.SOURCE]KSDRIVER(1)

                                     0038   351 	DPT_STORE UCB,UCB$B_FIPL,B,8		; Device fork IPL
                                     003C   352 	DPT_STORE UCB,UCB$B_DIPL,B,20		; Device interrupt IPL
                                     0040   354 	DPT_STORE UCB,UCB$L_DEVCHAR,L,<-	; Device characteristics
                                     0040   355 		DEV$M_ELG!-			; ERROR LOG ENABLE
                                     0040   356 		DEV$M_SHR!-			; SHAREABLE DEVICE
                                     0040   357 		DEV$M_RTM!-			; REAL TIME DEVICE
                                     0040   358 		DEV$M_IDV!-			; INPUT DEVICE
                                     0040   359 		DEV$M_ODV>			; OUTPUT DEVICE
                                     0047   367 	DPT_STORE UCB,UCB$B_DEVCLASS,-		; DEVICE CLASS AS
                                     0047   368 		B,DC$_REALTIME			; REALTIME DEVICE
                                     004B   369 
                                     004B   370 	DPT_STORE REINIT			; START OF RELOAD
                                     004B   371 						; INITIALIZATION
                                     004B   373 	DPT_STORE DDB,DDB$L_DDT,D,SH$DDT	; Address of DDT
                                     0050   378 
                                     0050   379 	DPT_STORE CRB,CRB$L_INTD+4,-		;DONE ISR ADDRESS
                                     0050   380 			D,KS_ISR_DONE
                                     0055   381 	DPT_STORE	CRB,-			; ERROR ISR ADDRESS
                                     0055   382 		CRB$L_INTD+VEC$K_LENGTH+4,-
                                     0055   383 			D,KS_ISR_ERR
                                     005A   384 
                                     005A   386 	DPT_STORE	CRB,-			; SERIAL DEMAND ISR
                                     005A   387 		CRB$L_INTD+<2*VEC$K_LENGTH>+4,-
                                     005A   388 			D,KS_ISR_DEMAND
                                     005F   389 	DPT_STORE	CRB,-			; IGNORE PARALLEL DEMAND ISR
                                     005F   390 		CRB$L_INTD+<3*VEC$K_LENGTH>+4,-
                                     005F   391 			D,KS_ISR_DISMISS
                                     0064   401 
                                     0064   402 	DPT_STORE CRB,-				; Address of controller
                                     0064   403 		CRB$L_INTD+VEC$L_INITIAL,-	; initialization routine
                                     0064   404 		D,KS_CONTROL_INIT
                                     0069   405 
                                     0069   406 	DPT_STORE END				; End of initialization
                                     0000   407 						; tables
                                     0000   408 
                                     0000   409 ;
                                     0000   410 ; DRIVER DISPATCH TABLE
                                     0000   411 ;
                                     0000   412 
                           0000000D  0000   415 KS_DUMP_CNT	= 13				; ERR LOG DUMP COUNT
                           00000086  0000   416 KS_P_ERLENGTH	= <<KS_DUMP_CNT*4>+EMB$L_DV_REGSAV+4>
                                     0000   417 					; ERR LOG MSG BUFFER LEN
                                     0000   418 	DDTAB	-			; DDT CREATION MACRO
                                     0000   419 		DEVNAM=SH,-		; Name of device
                                     0000   420 		UNITINIT=KS_UNIT_INIT,-	; Unit initialization
                                     0000   421 		START=KS_START,-	; Start I/O routine
                                     0000   422 		FUNCTB=KS_FUNCTABLE,-	; FDT address
                                     0000   423 		CANCEL=KS_CANCEL,-	; Cancel I/O routine
                                     0000   424 		REGDMP=KS_REG_DUMP,-	; Register dump routine
                                     0000   425 		ERLGBF=KS_P_ERLENGTH	; ERROR LOG BFR
                                     0026   435 
                                     0026   458 
                                     0026   459 ;
                                     0026   460 ; FUNCTION DECISION TABLE
                                     0026   461 ;
                                     0026   462 
                                     0026   463 KS_FUNCTABLE:					; FDT for driver
KSDRIVER                        VAX/VMS KS 2050 SERIES CAMAC DRIVER      28-JAN-1983 14:41:34  VAX-11 Macro V03-00         Page   9
V05-001                         DRIVER TABLE DEFINITIONS                 25-JAN-1983 10:19:55  SYS$SYSROOT:[CAMAC.SOURCE]KSDRIVER(1)

                                     0026   464 	FUNCTAB	,-				; Valid I/O functions
                                     0026   465 		<CAMIO,-			; CAMAC I/O
                                     0026   466 		MOUNT,-				; MOUNT(CAMAC ACP)
                                     0026   467 		ACPCONTROL,-			; ACP CONTROL 
                                     0026   468 		LAMAST,-			; SET CAMAC LAM ASTFUNCTION
                                     0026   469 		SETCHAR,-			; SET CAMAC CHARACTERISTICS
                                     0026   470 		SENSEMODE>			; RETRIEVE CRATE DATA
                                     002E   471 	FUNCTAB					; BUFFERED FUNCTION CODES
                                     0036   472 	FUNCTAB	KS_FDT_CAMIO,-			; CAMAC I/O ROUTINE
                                     0036   473 		<CAMIO>
                                     0042   474 	FUNCTAB	KS_FDT_MOUNT,-			; MOUNT CAMAC ACP
                                     0042   475 		<MOUNT>
                                     004E   476 	FUNCTAB	KS_FDT_ACP,-			; ACP CONTROL FDT
                                     004E   477 		<ACPCONTROL>
                                     005A   478 	FUNCTAB	KS_FDT_LAMAST,-			; SET LAM AST FDT
                                     005A   479 		<LAMAST>
                                     0066   480 	FUNCTAB	KS_FDT_SETC,-			; SET HIGHWAY CHARS
                                     0066   481 		<SETCHAR>
                                     0072   482 	FUNCTAB	KS_FDT_SENSM,-			; SENSE CRATE FDT
                                     0072   483 		<SENSEMODE>
                                     007E   484 	.DSABL	LSB
KSDRIVER                        VAX/VMS KS 2050 SERIES CAMAC DRIVER      28-JAN-1983 14:41:34  VAX-11 Macro V03-00         Page  10
V05-001                         DRIVER TABLE DEFINITIONS                 25-JAN-1983 10:19:55  SYS$SYSROOT:[CAMAC.SOURCE]KSDRIVER(1)

                                     007E   486 	.SHOW	EXPANSIONS
                                     007E   487 	.ENABL	LSB
                                     007E   488 	.SBTTL	KS_CONTROL_INIT, CONTROLLER INITIALIZATION ROUTINE
                                     007E   489 
                                     007E   490 ;++
                                     007E   491 ; KS_CONTROL_INIT, Readies controller for I/O operations
                                     007E   492 ;
                                     007E   493 ; Functional description:
                                     007E   494 ;
                                     007E   495 ;	The operating system calls this routine in 3 places:
                                     007E   496 ;
                                     007E   497 ;		at system startup
                                     007E   498 ;		during driver loading and reloading
                                     007E   499 ;		during recovery from a power failure
                                     007E   500 ;
                                     007E   501 ; Inputs:
                                     007E   502 ;
                                     007E   503 ;	R4	- address of the CSR (controller status register)
                                     007E   504 ;	R5	- address of the IDB (interrupt data block)
                                     007E   505 ;	R6	- address of the DDB (device data block)
                                     007E   506 ;	R8	- address of the CRB (channel request block)
                                     007E   507 ;
                                     007E   508 ; Outputs:
                                     007E   509 ;
                                     007E   510 ;	The routine must preserve all registers except R0-R3.
                                     007E   511 ;
                                     007E   512 ;--
                                     007E   513 
                                     007E   514 KS_CONTROL_INIT:			; Initialize controller
                                     007E   515 ;
                                     007E   516 ;	DISABLE ALL KS 2050/2051 INTERRUPTS AND SET 'SUSPEND' BIT.
                                     007E   517 ;
                                     007E   518 	ASSUME	SCT_M_IE,EQ,PCT_M_IE	; ASSUME SERIAL AND PARALLEL SAME
                                     007E       	
                                     007E   519 	ASSUME	SCT_M_SSP,EQ,PCT_M_SSP
                                     007E       	
                                     007E   520 
                  64   0040 8F   AA  007E   521 	BICW	#SCT_M_IE,KS_W_CTR(R4)	; DISABLE COMPLETION INTERRUPTS
                       64   20   A8  0083   522 	BISW	#SCT_M_SSP,KS_W_CTR(R4)	; SET SUSPEND BIT IN CTR
                       0040 8F   AA  0086   524 	BICW	#DCR_M_SDIE,-		; DISABLE DEMAND INTERRUPTS
                         0E A4       008A   525 		KS_W_DCR(R4)
                                     008C   531 
                                     008C   532 ;
                                     008C   533 ;	TOGGLE FIRMWARE RESET AND WAIT FOR 'KS_P_RSWAIT' MICROSEC.
                                     008C   534 ;
                                     008C   535 	ASSUME	SCT_M_RESET,EQ,PCT_M_RESET	; ASSUME SERIAL AND PARALLEL SAME
                                     008C       	
                       0800 8F   A8  008C   536 	BISW	#SCT_M_RESET,-		; ASSERT FIRMWARE RESET
                            64       0090   537 		KS_W_CTR(R4)
                       0800 8F   AA  0091   538 	BICW	#SCT_M_RESET,-		; CLEAR FIRMWARE RESET
                            64       0095   539 		KS_W_CTR(R4)
                                     0096   540 	WAITMUSEC	-		; DELAY WHILE SETTLES
                                     0096   541 		DELAY=#KS_P_RSWAIT
                  52   0064 8F   3C  0096       	MOVZWL	#KS_P_RSWAIT,R2		; GET #KS_P_RSWAIT
                                     009B       30000$:
                            52   D7  009B       	DECL	R2			; DECREMENT COUNT
                            0D   19  009D       	BLSS	30002$			; IF NEG, DONE
KSDRIVER                        VAX/VMS KS 2050 SERIES CAMAC DRIVER      28-JAN-1983 14:41:34  VAX-11 Macro V03-00         Page  11
V05-001                         KS_CONTROL_INIT, CONTROLLER INITIALIZATI 25-JAN-1983 10:19:55  SYS$SYSROOT:[CAMAC.SOURCE]KSDRIVER(1)

                       50   1A   DB  009F       	MFPR	#PR$_ICR,R0		; GET MUSEC CLOCK
                                     00A2       30001$:
                       51   1A   DB  00A2       	MFPR	#PR$_ICR,R1		; SAMPLE AGAIN
                       51   50   D1  00A5       	CMPL	R0,R1			; SAME?
                            F8   13  00A8       	BEQL	30001$			; IF SO, SAMPLE TILL DIFFERENT
                            EF   11  00AA       	BRB	30000$			; RECORD MUSEC TICK
                                     00AC       30002$:
                                     00AC       	
                                     00AC   542 
                                     00AC   544 ;
                                     00AC   545 ;	CLEAN UP DEMAND FIFO. BIT-CAN ANY DEMANDS FOUND.
                                     00AC   546 ;
                                     00AC   547 30$:
                       0040 8F   B3  00AC   548 	BITW	#DFR_M_DFE,-
                         0C A4       00B0   549 		KS_W_DFR(R4)		; TEST DEMAND FIFO REGISTER
                            F8   13  00B2   550 	BEQL	30$			; IF NOT EMPTY, POP ANOTHER
                                     00B4   552 
                                 05  00B4   553 	RSB				; RETURN TO CALLER
                                     00B5   554 	.DSABL	LSB
KSDRIVER                        VAX/VMS KS 2050 SERIES CAMAC DRIVER      28-JAN-1983 14:41:34  VAX-11 Macro V03-00         Page  12
V05-001                         KS_CONTROL_INIT, CONTROLLER INITIALIZATI 25-JAN-1983 10:19:55  SYS$SYSROOT:[CAMAC.SOURCE]KSDRIVER(1)

                                     00B5   556 	.ENABL	LSB
                                     00B5   557 	.SBTTL	KS_UNIT_INIT, UNIT INITIALIZATION ROUTINE
                                     00B5   558 
                                     00B5   559 ;++
                                     00B5   560 ; KS_UNIT_INIT: READIES HIGHWAY SUPPORT UNIT AND CRATE SUPPORT
                                     00B5   561 ;               UNITS FOR OPERATION.
                                     00B5   562 ;
                                     00B5   563 ; Functional description:
                                     00B5   564 ;
                                     00B5   565 ;	The operating system calls this routine after calling the
                                     00B5   566 ;	controller initialization routine:
                                     00B5   567 ;
                                     00B5   568 ;		at system startup
                                     00B5   569 ;		during driver loading
                                     00B5   570 ;		during recovery from a power failure
                                     00B5   571 ;
                                     00B5   572 ;
                                     00B5   573 ;	The following operations are performed for unit initialization
                                     00B5   574 ;	for the Highway Support Unit(Unit 0):
                                     00B5   575 ;		Set the unit 'ON-LINE' in the UCB status field.
                                     00B5   576 ;		Clear the HSU support block pointer field.
                                     00B5   577 ;
                                     00B5   578 ;	No unit initialization is performed for Crate Support Units
                                     00B5   579 ;	(Units 1-N). These units must be explicitly set on-line
                                     00B5   580 ;	via a 'SETCHAR' I/O function request made through the
                                     00B5   581 ;	Highway Support Unit(Unit 0) for each such CSU.
                                     00B5   582 ;
                                     00B5   583 ;
                                     00B5   584 ; Inputs:
                                     00B5   585 ;
                                     00B5   586 ;	R4	- address of the CSR (controller status register)
                                     00B5   587 ;	R5	- address of the UCB (unit control block)
                                     00B5   588 ;
                                     00B5   589 ; Outputs:
                                     00B5   590 ;
                                     00B5   591 ;	The routine must preserve all registers except R0-R3.
                                     00B5   592 ;
                                     00B5   593 ;--
                                     00B5   594 
                                     00B5   595 KS_UNIT_INIT:				; UNIT INITIALIZATION ROUTINE
                         48 A5   B5  00B5   596 	TSTW	UCB$W_UNIT(R5)		; CHECK IF HIGHWAY SUPP UNIT
                            16   12  00B8   597 	BNEQ	10$			; NOT 0, CRATE SUPP UNIT
                                     00BA   598 
                                     00BA   599 ;
                                     00BA   600 ; HIGHWAY SUPPORT UNIT CALL
                                     00BA   601 ;
                                     00BA   602 
                            05   E0  00BA   603 	BBS	#UCB$V_POWER,-		; CHECK IF POWER FAIL
                      10 58 A5       00BC   604 		UCB$W_STS(R5),20$	; AND SKIP INIT CODE IF SET
                                     00BF   605 
                            10   A8  00BF   606 	BISW	#UCB$M_ONLINE,-
                         58 A5       00C1   607 		UCB$W_STS(R5)		; SET UNIT ON-LINE
                         5A A5   B4  00C3   608 	CLRW	UCB$W_DEVSTS(R5)	; CLEAR DEVICE STATUS
                  0094 C5   55   D0  00C6   609 	MOVL	R5,UCB$L_HSU(R5)	; STORE HSU LINK TO SELF
                       0098 C5   D4  00CB   611 	CLRL	UCB$L_DMDAST(R5)	; ZAP DEMAND AST LISTHEAD
                                     00CF   613 
                                     00CF   614 20$:
KSDRIVER                        VAX/VMS KS 2050 SERIES CAMAC DRIVER      28-JAN-1983 14:41:34  VAX-11 Macro V03-00         Page  13
V05-001                         KS_UNIT_INIT, UNIT INITIALIZATION ROUTIN 25-JAN-1983 10:19:55  SYS$SYSROOT:[CAMAC.SOURCE]KSDRIVER(1)

                                 05  00CF   615 	RSB				; RETURN TO CALLER
                                     00D0   616 
                                     00D0   617 ;
                                     00D0   618 ; CRATE SUPPORT UNIT CALL
                                     00D0   619 ;
                                     00D0   620 10$:
                         5A A5   B4  00D0   621 	CLRW	UCB$W_DEVSTS(R5)	; ZERO DEVICE STATUS
                            02   A8  00D3   622 	BISW	#DSTS_M_MULTI,-		; INDICATE MULTI UNIT SYSTEM
                         5A A5       00D5   623 		UCB$W_DEVSTS(R5)
                            10   A8  00D7   624 	BISW	#UCB$M_ONLINE,-		; SET UNIT ON-LINE
                         58 A5       00D9   625 		UCB$W_STS(R5)
                    51   20 A5   D0  00DB   626 	MOVL	UCB$L_CRB(R5),R1	; LOCATE CRB FROM UCB
                         2C A1   D0  00DF   627 	MOVL	CRB$L_INTD+VEC$L_IDB(R1),-
                            51       00E2   628 		R1			; LOCATE IDB FROM CRB
                         14 A1   D0  00E3   629 	MOVL	IDB$L_UCBLST(R1),-	; LINK CRATE UCB TO HSU
                       0094 C5       00E6   630 		UCB$L_HSU(R5)
                       0098 C5   D4  00E9   632 	CLRL	UCB$L_LSB(R5)		; ZAP LAM SUPP BLOCK ADDRESS
                                 05  00ED   634 	RSB				; RETURN TO CALLER
                                     00EE   635 	.DSABL	LSB
KSDRIVER                        VAX/VMS KS 2050 SERIES CAMAC DRIVER      28-JAN-1983 14:41:34  VAX-11 Macro V03-00         Page  14
V05-001                         KS_UNIT_INIT, UNIT INITIALIZATION ROUTIN 25-JAN-1983 10:19:55  SYS$SYSROOT:[CAMAC.SOURCE]KSDRIVER(1)

                                     00EE   637 	.ENABL	LSB
                                     00EE   638 	.SBTTL	KS_FDT_CAMIO,  CAMAC I/O FDT ROUTINE
                                     00EE   639 
                                     00EE   640 ;++
                                     00EE   641 ; KS_FDT_CAMIO: CAMAC I/O FDT ROUTINE
                                     00EE   642 ;
                                     00EE   643 ; Functional description:
                                     00EE   644 ;
                                     00EE   645 ;	This FDT routine provides device specific processing
                                     00EE   646 ;	for all CAMAC I/O requests to user modules. Functions
                                     00EE   647 ;	performed by this routine include:
                                     00EE   648 ;		Validation of the register template block data,
                                     00EE   649 ;		Verification of access rights to DMA buffer(s),
                                     00EE   650 ;		Verification of memory lock for DMA buffer(s),
                                     00EE   651 ;		Place KS 2050 register data into IRP,
                                     00EE   652 ;		Place user buffer address(es) into IRP,
                                     00EE   653 ;		Queue the IRP to the specified unit.
                                     00EE   654 ;
                                     00EE   655 ; Inputs:
                                     00EE   656 ;
                                     00EE   657 ;	R0-R2	- scratch registers
                                     00EE   658 ;	R3	- address of the IRP (I/O request packet)
                                     00EE   659 ;	R4	- address of the PCB (process control block)
                                     00EE   660 ;	R5	- address of the UCB (unit control block)
                                     00EE   661 ;	R6	- address of the CCB (channel control block)
                                     00EE   662 ;	R7	- bit number of the I/O function code
                                     00EE   663 ;	R8	- address of the FDT table entry for this routine
                                     00EE   664 ;	R9-R11	- scratch registers
                                     00EE   665 ;	AP	- address of the 1st function dependent QIO parameter
                                     00EE   666 ;
                                     00EE   667 ; Outputs:
                                     00EE   668 ;
                                     00EE   669 ;	The routine must preserve all registers except R0-R2, and
                                     00EE   670 ;	R9-R11.
                                     00EE   671 ;
                                     00EE   672 ;--
                                     00EE   673 
                                     00EE   674 KS_FDT_CAMIO:				;  CAMAC I/O FDT ROUTINE
                       50   6C   D0  00EE   675 	MOVL	P1(AP),R0		; GET ADDRESS OF REG BLOCK
                                     00F1   676 	IFRD	#RTB_K_LENGTH,-		; PROBE RTB FOR READ
                                     00F1   677 		(R0),10$		; ACCESS. IF SO, CONTINUE.
                  60   08   00   0C  00F1       		PROBER	#0,#RTB_K_LENGTH,(R0)
                            05   12  00F5       		BNEQ	10$
                                     00F7       	
                       50   0C   3C  00F7   678 	MOVZWL	#SS$_ACCVIO,R0		; DECLARE ACCESS VIOLATION
                            29   11  00FA   679 	BRB	90$			; ABORT THIS REQUEST
                                     00FC   680 10$:
                            60   7D  00FC   681 	MOVQ	RTB_W_CTR(R0),-		; TRANSFER REG TEMPLATE
                         38 A3       00FE   682 		IRP$W_CTR(R3)		; TO IRP
                                     0100   683 	ASSUME	SCT_M_IE,EQ,PCT_M_IE	; ASSUME SERIAL AND PARALLEL SAME
                                     0100       	
                                     0100   684 	ASSUME	SCT_M_SSP,EQ,PCT_M_SSP
                                     0100       	
                                     0100   685 	ASSUME	SCT_M_GO,EQ,PCT_M_GO
                                     0100       	
                                     0100   686 
                                 AA  0100   687 	BICW	#<SCT_M_IE!-		; CLEAR CONTROL REG INT ENAB,
KSDRIVER                        VAX/VMS KS 2050 SERIES CAMAC DRIVER      28-JAN-1983 14:41:34  VAX-11 Macro V03-00         Page  15
V05-001                         KS_FDT_CAMIO,  CAMAC I/O FDT ROUTINE     25-JAN-1983 10:19:55  SYS$SYSROOT:[CAMAC.SOURCE]KSDRIVER(1)

                                     0101   688 		SCT_M_SSP!-		; SUSPEND BIT,
                                     0101   689 		SCT_M_GO>,-		; AND GO BIT
                       0061 8F       0101   690 		IRP$W_CTR(R3)
                         38 A3       0104       
                                     0106   691 ;
                                     0106   692 ; EXTRACT MODE FIELD FROM CONTROL REG AND USE TO 
                                     0106   693 ; PROCESS THE I/O REQUEST BY CASES.
                                     0106   694 ;
                                     0106   695 	ASSUME	SCT_M_M,EQ,PCT_M_M	; ASSUME SERIAL AND PARALLEL MODES SAME
                                     0106       	
                       04   01   EF  0106   696 	EXTZV	#SCT_V_M,#SCT_S_M,-	; GET MODE FROM CTR IN IRP
                    50   38 A3       0109   697 		IRP$W_CTR(R3),R0	
                  08   00   50   8F  010C   698 	CASEB	R0,#0,#KS_P_MAXM	; VECTOR TO MODE PROCESS
                                     0110   699 20$:
                               001B' 0110   700 	.WORD	KS_CAMIO_M0-20$		; MODE 0(PROGRAMMED I/O)
                               007D' 0112   701 	.WORD	KS_CAMIO_M1-20$		; MODE 1(Q-SCAN/STOP ON WORD COUNT)
                               007D' 0114   702 	.WORD	KS_CAMIO_M2-20$		; MODE 2(Q-STOP/STOP ON WORD COUNT)
                               007D' 0116   703 	.WORD	KS_CAMIO_M3-20$		; MODE 3(STOP ON WORD COUNT)
                               00DB' 0118   704 	.WORD	KS_CAMIO_M4-20$		; MODE 4(EXECUTE LIST)
                               0012' 011A   705 	.WORD	KS_CAMIO_MERR-20$	; MODE 5 INVALID
                               0012' 011C   706 	.WORD	KS_CAMIO_MERR-20$	; MODE 6 NVALID
                               0012' 011E   707 	.WORD	KS_CAMIO_MERR-20$	; MODE 7 INVALID
                               007D' 0120   708 	.WORD	KS_CAMIO_M8-20$		; MODE 8(Q-REPEAT/STOP ON WORD COUNT)
                                     0122   709 ;
                                     0122   710 ; ERROR HANDLER FOR ILLEGAL MODE FIELD
                                     0122   711 ;
                                     0122   712 KS_CAMIO_MERR:
                       50   14   3C  0122   713 	MOVZWL	#SS$_BADPARAM,R0	; SET BAD PARAMETER STATUS
                                     0125   714 90$:
                   00000000'GF   17  0125   715 	JMP	G^EXE$ABORTIO		; ABORT I/O REQUEST
                                     012B   716 
                                     012B   717 	.DSABL	LSB
                                     012B   718 	.ENABL	LSB
                                     012B   719 KS_CAMIO_M0:
                                     012B   720 ;
                                     012B   721 ; MODE 0 PROCESSOR
                                     012B   722 ; PROGRAMMED I/O CAMAC REQUEST. 
                                     012B   723 ;
                                     012B   724 ; PROCESSOR ACTION:
                                     012B   725 ;	VERIFY CRATE/STATION ADDRESS WITH THE LEVEL OF I/O FUNCTION
                                     012B   726 ;	CODE SPECIFIED. IF CAMAC WRITE FUNCTION, INSERT DATA INTO THE
                                     012B   727 ;	FIELDS OF THE IRP REGISTER TEMPLATE. IF CAMAC READ FUNCTION,
                                     012B   728 ;	LOCK BUFFER INTO MEMORY AND SAVE PARAMETERS FOR START I/O
                                     012B   729 ;	TO DOUBLE MAP PROCESS BUFFER TO CROSS LOAD CAMAC READ DATA.
                                     012B   730 ;	THEN QUEUE THE I/O TO THE SPECIFIED UNIT.
                                     012B   731 ;
                                 AA  012B   732 	BICW	#<IRP$M_VIRTUAL!-	; CLEAR VIRTUAL STATUS+
                                     012C   733 		IRP$M_EXTEND>,-		; EXTENSION VALID
                       0810 8F       012C   734 		IRP$W_STS(R3)
                         2A A3       012F       
                         2C A3   D4  0131   735 	CLRL	IRP$L_SVAPTE(R3)	; CLEAR BUFFER SVAPTE
                         44 A3   D4  0134   736 	CLRL	IRP$L_DPRMAP(R3)	; CLEAR UBA PARAMETER FIELDS
                         40 A3   D4  0137   737 	CLRL	IRP$L_UBADDR(R3)
                    50   04 AC   D0  013A   738 	MOVL	P2(AP),R0		; GET BUFFER ADDRESS
                       51   02   9A  013E   739 	MOVZBL	#2,R1			; SET LENGTH AT 2 BYTES
                            0E   E0  0141   740 	BBS	#CDH_V_16,-		; IF '16' SET IN CDH, OK
                      03 3E A3       0143   741 		IRP$W_CDH(R3),10$	; TO CONTINUE
KSDRIVER                        VAX/VMS KS 2050 SERIES CAMAC DRIVER      28-JAN-1983 14:41:34  VAX-11 Macro V03-00         Page  16
V05-001                         KS_FDT_CAMIO,  CAMAC I/O FDT ROUTINE     25-JAN-1983 10:19:55  SYS$SYSROOT:[CAMAC.SOURCE]KSDRIVER(1)

                       51   04   9A  0146   742 	MOVZBL	#4,R1			; CHANGE LENGTH TO 4 BYTES
                                     0149   743 10$:
                       05   00   EF  0149   744 	EXTZV	#CMR_V_F,#CMR_S_F,-	; CHECK IF CAMAC READ OR WRITE
                    52   3A A3       014C   745 		IRP$W_CMR(R3),R2
                       07   52   91  014F   746 	CMPB	R2,#7			; CHECK FOR READ FUNC
                            08   14  0152   747 	BGTR	80$			; IF NOT, CHECK FOR WRITE
                                     0154   748 					; LENGTH IN R1 FROM ABOVE
                   00000000'GF   16  0154   749 	JSB	G^EXE$READLOCK		; CHECK/LOCK FOR READ FUNCTION
                                     015A   750 					; ONLY RETURNS SUCCESS
                            25   11  015A   751 	BRB	50$			; QUEUE IRP TO UNIT
                                     015C   752 80$:
                       10   52   91  015C   753 	CMPB	R2,#16			; CHECK FOR WRITE
                            20   19  015F   754 	BLSS	50$			; IF LESS, CONTROL FUNC
                       17   52   91  0161   755 	CMPB	R2,#23			; TEST UPPER RANGE FOR WRITE
                            1B   14  0164   756 	BGTR	50$			; IF GREATER, CONTROL FUNC
                                     0166   757 					; LENGTH IN R1 FROM ABOVE
                            50   D5  0166   758 	TSTL	R0			; DATA BUFFER SPECIFIED?
                            17   13  0168   759 	BEQL	50$			; IF 0, ASSUME WRITE DATA
                                     016A   760 					; IN RTB
                   00000000'GF   16  016A   761 	JSB	G^EXE$WRITECHK		; CHECK BUFFER ACCESSABILITY
                                     0170   762 					; CHECK ONLY RETURNS SUCCESS
                    3C A3   60   B0  0170   763 	MOVW	(R0),IRP$W_DLR(R3)	; INSERT DATA LOW INTO IRP
                         3E A3   94  0174   764 	CLRB	IRP$W_CDH(R3)		; CLEAR DATA HIGH BYTE
                            0E   E0  0177   765 	BBS	#CDH_V_16,-		; IF '16' MODE, ALL THRU
                      05 3E A3       0179   766 		IRP$W_CDH(R3),50$	; GO QUEUE I/O
                 3E A3   02 A0   90  017C   767 	MOVB	2(R0),IRP$W_CDH(R3)	; INSERT DATA HIGH INTO IRP
                                     0181   768 50$:
                   00000000'GF   17  0181   769 	JMP	G^EXE$QIODRVPKT		; EXIT FDT BY QUEUEING IRP
                                     0187   770 
                                     0187   771 90$:
                   00000000'GF   17  0187   772 	JMP	G^EXE$ABORTIO		; ABORT THIS REQUEST
                                     018D   773 	.DSABL	LSB
                                     018D   774 	.ENABL	LSB
                                     018D   775 KS_CAMIO_M1:
                                     018D   776 ;
                                     018D   777 ; MODE 1 PROCESSOR.
                                     018D   778 ; Q-SCAN/STOP ON WORD COUNT MODE.
                                     018D   779 ;
                                     018D   780 
                                     018D   781 KS_CAMIO_M2:
                                     018D   782 ;
                                     018D   783 ; MODE 2 PROCESSOR.
                                     018D   784 ; Q-STOP/STOP ON WORD COUNT MODE.
                                     018D   785 ;
                                     018D   786 
                                     018D   787 KS_CAMIO_M3:
                                     018D   788 ;
                                     018D   789 ; MODE 3 PROCESSOR.
                                     018D   790 ; STOP ON WORD COUNT MODE.
                                     018D   791 ;
                                     018D   792 
                                     018D   793 KS_CAMIO_M8:
                                     018D   794 ;
                                     018D   795 ; MODE 8 PROCESSOR.
                                     018D   796 ; Q-REPEAT/STOP ON WORD COUNT
                                     018D   797 ;
                                     018D   798 ; PROCESSOR ACTION:
KSDRIVER                        VAX/VMS KS 2050 SERIES CAMAC DRIVER      28-JAN-1983 14:41:34  VAX-11 Macro V03-00         Page  17
V05-001                         KS_FDT_CAMIO,  CAMAC I/O FDT ROUTINE     25-JAN-1983 10:19:55  SYS$SYSROOT:[CAMAC.SOURCE]KSDRIVER(1)

                                     018D   799 ;	THIS MODE PROCESSOR MUST INSURE THAT THE SPECIFIED USER
                                     018D   800 ;	BUFFER IS LOCKED INTO PHYSICAL MEMORY FOR THE ENSUEING
                                     018D   801 ;	DIRECT I/O OPERATION. THE CAMAC FUNCTION CODE IS EXAMINED
                                     018D   802 ;	FOR VALIDITY AND THE SPECIFIED BUFFER IS CHECKED FOR ACCESS
                                     018D   803 ;	CONSISTENCY WITH THE SPECIFIED CAMAC FUNCTION CODE. THE
                                     018D   804 ;	BUFFER PAGES ARE THEN MEMORY LOCKED FOR THE DURATION OF 
                                     018D   805 ;	I/O REQUEST.
                                     018D   806 ;
                                 AA  018D   807 	BICW	#<IRP$M_VIRTUAL!-	; CLEAR VIRTUAL FUNCTION +
                                     018E   808 		IRP$M_EXTEND>,-		; IRP EXTENSION
                       0810 8F       018E   809 		IRP$W_STS(R3)
                         2A A3       0191       
                         2C A3   D4  0193   810 	CLRL	IRP$L_SVAPTE(R3)	; CLEAR BUFFER POINTERS IN IRP
                         44 A3   D4  0196   811 	CLRL	IRP$L_DPRMAP(R3)	; CLEAR DPR+MAP FIELD
                    50   04 AC   D0  0199   812 	MOVL	P2(AP),R0		; GET USER BUFFER ADDRESS
                            09   13  019D   813 	BEQL	55$			; IF 0, BAD PARAMETER
                    51   08 AC   3C  019F   814 	MOVZWL	P3(AP),R1		; BUFFER LENGTH
                            03   13  01A3   815 	BEQL	55$			; IF 0, BAD PARAMETER
                         05 51   E9  01A5   816 	BLBC	R1,50$			; IF INTEGRAL WORD COUNT, CONTINUE
                                     01A8   817 55$:
                       50   14   3C  01A8   818 	MOVZWL	#SS$_BADPARAM,R0	; SET BAD PARAMETER
                            38   11  01AB   819 	BRB	90$			; ABORT REQUEST
                                     01AD   820 50$:
                    51   FF 8F   78  01AD   821 	ASHL	#-1,R1,R2		; CONVERT TO WORD COUNT
                            52       01B1       
                    3C A3   52   AE  01B2   822 	MNEGW	R2,IRP$W_WCR(R3)	; SAVE NEG BFR WORD COUNT
                       05   00   EF  01B6   823 	EXTZV	#CMR_V_F,#CMR_S_F,-	; GET CAMAC FUNCTION CODE
                    52   3A A3       01B9   824 		IRP$W_CMR(R3),R2
                       07   52   91  01BC   825 	CMPB	R2,#7			; CHECK IF CAMAC READ
                            08   14  01BF   826 	BGTR	10$			; IF NOT, CHECK FOR WRITE
                   00000000'GF   16  01C1   827 	JSB	G^EXE$READLOCK		; LOCK PAGES FOR CAMAC READ
                                     01C7   828 					; READLOCK ONLY RETURNS ON SUCCESS
                            16   11  01C7   829 	BRB	60$			; QUEUE IRP TO UNIT
                                     01C9   830 10$:
                       10   52   91  01C9   831 	CMPB	R2,#16			; CHECK IF CAMAC WRITE
                            05   19  01CC   832 	BLSS	20$			; IF LESS THAN 16, ABORT
                       17   52   91  01CE   833 	CMPB	R2,#23			; COMPLETE WRITE CHECK
                            06   15  01D1   834 	BLEQ	30$			; IF WRITE, CONTINUE
                                     01D3   835 20$:
                       50   14   3C  01D3   836 	MOVZWL	#SS$_BADPARAM,R0	; SET BAD PARAMETER STATUS
                          000C   31  01D6   837 	BRW	90$			; ABORT THE REQUEST
                                     01D9   838 30$:
                   00000000'GF   16  01D9   839 	JSB	G^EXE$WRITELOCK		; LOCK BUFFER PAGES FOR CAMAC WRITE
                                     01DF   840 					; WRITELOCK ONLY RETURNS ON SUCCESS
                                     01DF   841 60$:
                   00000000'GF   17  01DF   842 	JMP	G^EXE$QIODRVPKT		; QUEUE THE I/O REQUEST TO THE UNIT
                                     01E5   843 90$:
                   00000000'GF   17  01E5   844 	JMP	G^EXE$ABORTIO		; ABORT THE REQUEST
                                     01EB   845 
                                     01EB   846 
                                     01EB   847 	.DSABL	LSB
                                     01EB   848 	.ENABL	LSB
                                     01EB   849 KS_CAMIO_M4:
                                     01EB   850 ;
                                     01EB   851 ; MODE 4 PROCESSOR.
                                     01EB   852 ; EXECUTE LIST MODE.
                                     01EB   853 ;
KSDRIVER                        VAX/VMS KS 2050 SERIES CAMAC DRIVER      28-JAN-1983 14:41:34  VAX-11 Macro V03-00         Page  18
V05-001                         KS_FDT_CAMIO,  CAMAC I/O FDT ROUTINE     25-JAN-1983 10:19:55  SYS$SYSROOT:[CAMAC.SOURCE]KSDRIVER(1)

                                     01EB   854 ; PROCESSOR ACTION:
                                     01EB   855 ;	THIS MODE PROCESSOR MUST INSURE THAT TWO USER BUFFERS
                                     01EB   856 ;	ARE LOCKED INTO PHYSICAL MEMORY FOR THE ENSUEING LIST 
                                     01EB   857 ;	MODE CAMAC TRANSACTION. LIST MODE ON THE KS 2050 REQUIRES 
                                     01EB   858 ;	THAT TWO BUFFERS BE ATTACHED. THE EXECUTE LIST CONTAINS CAMAC
                                     01EB   859 ;	COMMAND PACKETS AND CAMAC WRITE DATA AND THE REPLY LIST RECEIVES
                                     01EB   860 ;	CAMAC READ DATA FROM THE EXECUTION OF READ FUNCTION CODES FROM
                                     01EB   861 ;	THE EXECUTE LIST. THE EXECUTE LIST IS CHECKED AND LOCKED FOR
                                     01EB   862 ;	READ ACCESS AND THE REPLY LIST IS CHECKED AND LOCKED FOR WRITE
                                     01EB   863 ;	ACCESS.
                                     01EB   864 ;
                                 AA  01EB   865 	BICW	#<IRP$M_VIRTUAL!-	; CLEAR VIRTUAL FUNCTION +
                                     01EC   866 		IRP$M_EXTEND>,-		; IRP EXTENSION
                       0810 8F       01EC   867 		IRP$W_STS(R3)		; IN STATUS WORD
                         2A A3       01EF       
                         2C A3   D4  01F1   868 	CLRL	IRP$L_SVAPTE(R3)	; CLEAR PTE PNTRS FOR EXECUTE LIST
                    50   04 AC   D0  01F4   869 	MOVL	P2(AP),R0		; GET EXECUTE LIST ADDRESS
                            09   13  01F8   870 	BEQL	10$			; IF 0, BAD PARAMETER
                    51   08 AC   3C  01FA   871 	MOVZWL	P3(AP),R1		; AND EXECUTE LIST LENGTH
                            03   13  01FE   872 	BEQL	10$			; IF 0 LENGTH, BAD PARAMETER
                         05 51   E9  0200   873 	BLBC	R1,20$			; IF INTEGRAL WORD COUNT, CONTINUE
                                     0203   874 10$:
                       50   14   3C  0203   875 	MOVZWL	#SS$_BADPARAM,R0	; SET BAD PARAMETER STATUS
                            66   11  0206   876 	BRB	90$			; ABORT CALL
                                     0208   877 20$:					; EXE LIST PARAMETERS OK
                                     0208   878 
                    50   0C AC   D0  0208   879 	MOVL	P4(AP),R0		; GET REPLY LIST ADDRESS
                            40   13  020C   880 	BEQL	40$			; IF 0, SKIP REPLY LIST
                    51   10 AC   3C  020E   881 	MOVZWL	P5(AP),R1		; GET REPLY LIST LENGTH
                            3A   13  0212   882 	BEQL	40$			; IF 0, SKIP REPLY LIST
                         05 51   E9  0214   883 	BLBC	R1,50$			; CHECK FOR INTEGRAL WORD COUNT
                       50   14   3C  0217   884 	MOVZWL	#SS$_BADPARAM,R0	; SET BAD PARAMETER STATUS
                            52   11  021A   885 	BRB	90$			; ABORT I/O
                                     021C   886 50$:
                   00000000'GF   16  021C   887 	JSB	G^EXE$READLOCK		; CHECK/LOCK BUFFER FOR WRITE ACCESS
                                     0222   888 					; ONLY RETURNS ON SUCCESS
                          004F   30  0222   889 	BSBW	KS_ALOIRP		; ALLOCATE IRP EXTENSION
                         46 50   E9  0225   890 	BLBC	R0,90$			; IF FAILURE, ABORT
                       0800 8F   A8  0228   891 	BISW	#IRP$M_EXTEND,-		; SET IRP EXTENSION BIT
                         2A A3       022C   892 		IRP$W_STS(R3)		; IN IRP STATUS WORD
                    54 A3   52   D0  022E   893 	MOVL	R2,IRP$L_EXTEND(R3)	; LINK EXTENSION INTO IRP
                         2A A2   B4  0232   894 	CLRW	IRPE$W_STS(R2)		; CLEAR EXTENSION STATUS
                            2C   90  0235   895 	MOVB	#DYN$C_IRPE,-		; SET TYPE TO IRPE
                         0A A2       0237   896 		IRPE$B_TYPE(R2)
                         2C A3   D0  0239   897 	MOVL	IRP$L_SVAPTE(R3),-	; CROSS LOAD REPLY LIST
                         2C A2       023C   898 		IRPE$L_SVAPTE1(R2)	; SVA FOR FIRST PTE
                         30 A3   B0  023E   899 	MOVW	IRP$W_BOFF(R3),-	; AND BYTE OFFSET
                         30 A2       0241   900 		IRPE$W_BOFF1(R2)
                         32 A3   3C  0243   901 	MOVZWL	IRP$W_BCNT(R3),-	; AND BYTE COUNT
                         34 A2       0246   902 		IRPE$L_BCNT1(R2)
                         10 A2   D4  0248   903 	CLRL	IRPE$L_DPRMAP(R2)	; CLEAR DPR+MAP REG SAVE AREA
                         38 A2   D4  024B   904 	CLRL	IRPE$L_SVAPTE2(R2)	; CLEAR UNUSED SVAPTE FIELD
                                     024E   905 	
                                     024E   906 40$:
                    50   04 AC   D0  024E   907 	MOVL	P2(AP),R0		; RESTORE EXE LIST ADDRESS
                    51   08 AC   3C  0252   908 	MOVZWL	P3(AP),R1		; AND EXE LIST LENGTH
                    51   FF 8F   78  0256   909 	ASHL	#-1,R1,R2		; CONVERT TO WORD COUNT
KSDRIVER                        VAX/VMS KS 2050 SERIES CAMAC DRIVER      28-JAN-1983 14:41:34  VAX-11 Macro V03-00         Page  19
V05-001                         KS_FDT_CAMIO,  CAMAC I/O FDT ROUTINE     25-JAN-1983 10:19:55  SYS$SYSROOT:[CAMAC.SOURCE]KSDRIVER(1)

                            52       025A       
                    3C A3   52   AE  025B   910 	MNEGW	R2,IRP$W_WCR(R3)	; SAVE NEG EXE LIST WORD COUNT
                   00000000'GF   16  025F   911 	JSB	G^EXE$WRITELOCK		; CHECK/LOCK LIST FOR READ ACCESS
                                     0265   912 					; ONLY RETURNS ON SUCCESS
                         44 A3   D4  0265   913 	CLRL	IRP$L_DPRMAP(R3)	; CLEAR DPR+MAP FIELD
                                     0268   914 
                   00000000'GF   17  0268   915 	JMP	G^EXE$QIODRVPKT		; QUEUE IRP TO UNIT
                                     026E   916 
                                     026E   917 90$:
                   00000000'GF   17  026E   918 	JMP	G^EXE$ABORTIO		; ABORT THE REQUEST
                                     0274   919 	.DSABL	LSB
KSDRIVER                        VAX/VMS KS 2050 SERIES CAMAC DRIVER      28-JAN-1983 14:41:34  VAX-11 Macro V03-00         Page  20
V05-001                         KS_FDT_CAMIO,  CAMAC I/O FDT ROUTINE     25-JAN-1983 10:19:55  SYS$SYSROOT:[CAMAC.SOURCE]KSDRIVER(1)

                                     0274   921 	.ENABL	LSB
                                     0274   922 	.SBTTL	KS_ALOIRP, ALLOCATE IRP STRUC
                                     0274   923 
                                     0274   924 ;++
                                     0274   925 ;
                                     0274   926 ; KS_ALOIRP: ALLOCATE IRP STRUCTURE, FIRST BY TRYING IRP
                                     0274   927 ;		LOOKASIDE LIST, THEN NONPAGED POOL ALLOCATION.
                                     0274   928 ;
                                     0274   929 ; Inputs:
                                     0274   930 ;
                                     0274   931 ; Outputs:
                                     0274   932 ;	R2	- address of IRP buffer,
                                     0274   933 ;	R0	- status of the request.
                                     0274   934 ;	R1 is destroyed by this call.
                                     0274   935 ;
                                     0274   936 ;--
                                     0274   937 
                                     0274   938 KS_ALOIRP:
                                     0274   939 
                   00000000'GF   DE  0274   940 	MOVAL	G^IOC$GL_IRPFL,R0	; GET ADDR OF IRP LOOKASIDE LISTHEAD
                            50       027A       
                    52   00 B0   0F  027B   941 	REMQUE	@(R0),R2		; GET NEXT IRP FROM LIST
                            13   1C  027F   942 	BVC	10$			; SKIP IF REALLY HAVE ONE
                  51   009C 8F   3C  0281   943 	MOVZWL	#IRP$C_LENGTH,R1	; ELSE, ALLOCATE ONE FROM NPP
                            53   DD  0286   944 	PUSHL	R3			; SAVE R3 BEFORE CALL
                   00000000'GF   16  0288   945 	JSB	G^EXE$ALONONPAGED	; ALLOCATE IRP SIZE BUFFER
                            53 8ED0  028E   946 	POPL	R3			; RESTORE R3 VALUE
                         09 50   E9  0291   947 	BLBC	R0,90$			; IF FAILURE, EXIT
                                     0294   948 10$:
                       009C 8F   B0  0294   949 	MOVW	#IRP$C_LENGTH,-		; SET LENGTH
                         08 A2       0298   950 		IRP$W_SIZE(R2)
                       50   01   9A  029A   951 	MOVZBL	#SS$_NORMAL,R0		; RETURN NORMAL STATUS
                                     029D   952 90$:
                                 05  029D   953 	RSB				; RETURN TO CALLER
                                     029E   954 	.DSABL	LSB
KSDRIVER                        VAX/VMS KS 2050 SERIES CAMAC DRIVER      28-JAN-1983 14:41:34  VAX-11 Macro V03-00         Page  21
V05-001                         KS_ALOIRP, ALLOCATE IRP STRUC            25-JAN-1983 10:19:55  SYS$SYSROOT:[CAMAC.SOURCE]KSDRIVER(1)

                                     029E   956 	.ENABL	LSB
                                     029E   957 	.SBTTL	KS_FDT_SETC
                                     029E   958 
                                     029E   959 ;++
                                     029E   960 ; KS_FDT_SETC: SET DEVICE CHARACTERISTICS FDT ROUTINE
                                     029E   961 ;
                                     029E   962 ; Functional description:
                                     029E   963 ;
                                     029E   964 ;	This FDT routine provides a user with PHYS_IO privliege
                                     029E   965 ;	a means of exercising control over the entire CAMAC system
                                     029E   966 ;	to perform the following functions:
                                     029E   967 ;		Allocate Highway Support Block data structure.
                                     029E   968 ;		Enable LAM service for a CAMAC crate.
                                     029E   969 ;		Set Crate Support Unit 'ON-LINE'.
                                     029E   970 ;		Set Crate Support Unit 'OFF-LINE'.
                                     029E   971 ;
                                     029E   972 ; Inputs:
                                     029E   973 ;
                                     029E   974 ;	R0-R2	- scratch registers
                                     029E   975 ;	R3	- address of the IRP (I/O request packet)
                                     029E   976 ;	R4	- address of the PCB (process control block)
                                     029E   977 ;	R5	- address of the UCB (unit control block)
                                     029E   978 ;	R6	- address of the CCB (channel control block)
                                     029E   979 ;	R7	- bit number of the I/O function code
                                     029E   980 ;	R8	- address of the FDT table entry for this routine
                                     029E   981 ;	R9-R11	- scratch registers
                                     029E   982 ;	AP	- address of the 1st function dependent QIO parameter
                                     029E   983 ;
                                     029E   984 ; Outputs:
                                     029E   985 ;
                                     029E   986 ;	The routine must preserve all registers except R0-R2, and
                                     029E   987 ;	R9-R11.
                                     029E   988 ;
                                     029E   989 ;--
                                     029E   990 
                                     029E   991 KS_FDT_SETC:				; SET DEVICE CHARACTERISTICS
                         48 A5   B5  029E   992 	TSTW	UCB$W_UNIT(R5)		; CHECK IF HIGHWAY SUPP UNIT
                            07   13  02A1   993 	BEQL	10$			; IF 0, CONTINUE
                  50   00F4 8F   3C  02A3   994 	MOVZWL	#SS$_ILLIOFUNC,R0	; DECLARE ILLEGAL FUNCT IF NOT
                            1F   11  02A8   995 	BRB	90$			; ABORT THIS REQUEST
                                     02AA   996 10$:
                                     02AA   997 
                                 B3  02AA   998 	BITW	#IO$M_ENLAMS!-
                                     02AB   999 		IO$M_DABLAMS,-
                       0180 8F       02AB  1000 		IRP$W_FUNC(R3)		; ENABLE/DISABLE LAMS?
                         20 A3       02AE       
                            05   13  02B0  1001 	BEQL	100$			; IF NOT, CHECK OTHERS
                          001A   30  02B2  1002 	BSBW	KS_SETC_LAMS		; HANDLE LAM SERVICE REQUEST
                            12   11  02B5  1003 	BRB	90$			; IF RETURNS, ABORT
                                     02B7  1004 100$:
                                 B3  02B7  1005 	BITW	#IO$M_CONLINE!-
                                     02B8  1006 		IO$M_COFFLINE,-
                       0600 8F       02B8  1007 		IRP$W_FUNC(R3)		; SET CRATE ON/OFF LINE REQUEST?
                         20 A3       02BB       
                            05   13  02BD  1008 	BEQL	900$			; IF NOT, SET ERROR STATUS
                          0019   30  02BF  1009 	BSBW	KS_SETC_CRATE		; HANDLE CRATE REQUEST
                            05   11  02C2  1010 	BRB	90$			; IF RETURNS, ABORT
KSDRIVER                        VAX/VMS KS 2050 SERIES CAMAC DRIVER      28-JAN-1983 14:41:34  VAX-11 Macro V03-00         Page  22
V05-001                         KS_FDT_SETC                              25-JAN-1983 10:19:55  SYS$SYSROOT:[CAMAC.SOURCE]KSDRIVER(1)

                                     02C4  1011 900$:
                  50   00F4 8F   3C  02C4  1012 	MOVZWL	#SS$_ILLIOFUNC,R0	; SET ILLEGAL FUNCTION
                                     02C9  1013 90$:
                   00000000'GF   17  02C9  1014 	JMP	G^EXE$ABORTIO		; EXIT TO ABORT I/O
                                     02CF  1015 	.DSABL	LSB
KSDRIVER                        VAX/VMS KS 2050 SERIES CAMAC DRIVER      28-JAN-1983 14:41:34  VAX-11 Macro V03-00         Page  23
V05-001                         KS_FDT_SETC                              25-JAN-1983 10:19:55  SYS$SYSROOT:[CAMAC.SOURCE]KSDRIVER(1)

                                     02CF  1017 	.ENABL	LSB
                                     02CF  1018 ;+++
                                     02CF  1019 ;
                                     02CF  1020 ; KS_SETC_LAMS: ENABLE/DISABLE LAM MANAGEMENT SUPPORT FOR CRATE.
                                     02CF  1021 ;
                                     02CF  1022 ; Inputs:
                                     02CF  1023 ;	R5	- Highway Support Unit UCB address(UCB 0),
                                     02CF  1024 ;	P1(AP)	-Crate number for which LAM support is requested.
                                     02CF  1025 ;	P2(AP)	-Station number to reference LAM grader/encoder(ENABLE ONLY).
                                     02CF  1026 ;
                                     02CF  1027 ; Outputs:
                                     02CF  1028 ;	R0	- Status of the allocate request,
                                     02CF  1029 ;
                                     02CF  1030 ;---
                                     02CF  1031 
                                     02CF  1032 KS_SETC_LAMS:				; ENABLE/DISABLE LAM MANAGEMENT
                            6C   90  02CF  1033 	MOVB	P1(AP),-		; SAVE CAMAC CRATE NUMBER
                         40 A3       02D1  1034 		IRP$B_C(R3)
                 41 A3   04 AC   90  02D3  1035 	MOVB	P2(AP),IRP$B_N(R3)	; SAVE LAM GRADER STATION
                          0087   31  02D8  1036 	BRW	KS_Q_TO_ACP		; QUEUE IRP TO CAMAC ACP
                                     02DB  1037 	.DSABL	LSB
KSDRIVER                        VAX/VMS KS 2050 SERIES CAMAC DRIVER      28-JAN-1983 14:41:34  VAX-11 Macro V03-00         Page  24
V05-001                         KS_FDT_SETC                              25-JAN-1983 10:19:55  SYS$SYSROOT:[CAMAC.SOURCE]KSDRIVER(1)

                                     02DB  1039 	.ENABL	LSB
                                     02DB  1040 ;+++
                                     02DB  1041 ;
                                     02DB  1042 ; KS_SETC_CRATE: SET CRATE UNIT ON/OFF LINE.
                                     02DB  1043 ;
                                     02DB  1044 ; Inputs:
                                     02DB  1045 ;	R5	- Highway Support Unit UCB address(UCB 0),
                                     02DB  1046 ;	P1(AP)	- Crate address to be set 'ON-LINE'.
                                     02DB  1047 ;
                                     02DB  1048 ; Outputs:
                                     02DB  1049 ;	R0	- Status of the request,
                                     02DB  1050 ;	R1-R2 are destroyed.
                                     02DB  1051 ;
                                     02DB  1052 ;---
                                     02DB  1053 
                                     02DB  1054 KS_SETC_CRATE:
                            6C   90  02DB  1055 	MOVB	P1(AP),-		; SAVE CAMAC CRATE NUMBER
                         40 A3       02DD  1056 		IRP$B_C(R3)
                          0080   31  02DF  1057 	BRW	KS_Q_TO_ACP		; QUEUE IRP TO CAMAC ACP
                                     02E2  1058 	.DSABL	LSB
KSDRIVER                        VAX/VMS KS 2050 SERIES CAMAC DRIVER      28-JAN-1983 14:41:34  VAX-11 Macro V03-00         Page  25
V05-001                         KS_FDT_SETC                              25-JAN-1983 10:19:55  SYS$SYSROOT:[CAMAC.SOURCE]KSDRIVER(1)

                                     02E2  1060 	.ENABL	LSB
                                     02E2  1061 	.SBTTL	KS_FDT_LAMAST
                                     02E2  1062 
                                     02E2  1063 ;++
                                     02E2  1064 ; KS_FDT_LAMAST: SET/CLEAR LAM ATTENTION AST FDT ROUTINE.
                                     02E2  1065 ;
                                     02E2  1066 ; Functional description:
                                     02E2  1067 ;
                                     02E2  1068 ;	This FDT routine provides a means for a user to
                                     02E2  1069 ;	queue or cancel a LAM AST to a specific CAMAC crate and station
                                     02E2  1070 ;	address. The IRP is queued to the CAMAC ACP to actually
                                     02E2  1071 ;	perform the operation.
                                     02E2  1072 ;
                                     02E2  1073 ; Inputs:
                                     02E2  1074 ;
                                     02E2  1075 ;	R0-R2	- scratch registers
                                     02E2  1076 ;	R3	- address of the IRP (I/O request packet)
                                     02E2  1077 ;	R4	- address of the PCB (process control block)
                                     02E2  1078 ;	R5	- address of the UCB (unit control block)
                                     02E2  1079 ;	R6	- address of the CCB (channel control block)
                                     02E2  1080 ;	R7	- bit number of the I/O function code
                                     02E2  1081 ;	R8	- address of the FDT table entry for this routine
                                     02E2  1082 ;	R9-R11	- scratch registers
                                     02E2  1083 ;	AP	- address of the 1st function dependent QIO parameter
                                     02E2  1084 ;	P1(AP)	- CAMAC station number,
                                     02E2  1085 ;	P2(AP)	- AST entry address(IO$V_SETLAM only),
                                     02E2  1086 ;	P3(AP)	- AST parameter value(IO$V_SETLAM only).
                                     02E2  1087 ;
                                     02E2  1088 ; Outputs:
                                     02E2  1089 ;
                                     02E2  1090 ;	The routine must preserve all registers except R0-R2, and
                                     02E2  1091 ;	R9-R11.
                                     02E2  1092 ;
                                     02E2  1093 ;--
                                     02E2  1094 
                                     02E2  1095 KS_FDT_LAMAST:				; CAMAC LAM MANAGEMENT FDT
                       50   0C   3C  02E2  1096 	MOVZWL	#SS$_ACCVIO,R0		; ASSUME ACCESS VIOLATION
                            08   E0  02E5  1097 	BBS	#IO$V_CANLAM,-		; CANCEL LAM AST REQUEST?
                      08 20 A3       02E7  1098 		IRP$W_FUNC(R3),30$	; IF SO, SKIP CHECK
                                     02EA  1099 	IFNORD	ADR=@P2(AP),-		; CHECK IF AST PROCEDURE
                                     02EA  1100 		SIZ=#2,-		; ENTRY MASK READABLE
                                     02EA  1101 		MODE=IRP$B_RMOD(R3),-	; AT REQUESTED ACCESS MODE
                                     02EA  1102 		DEST=90$
                    02   0B A3   0C  02EA       		PROBER	IRP$B_RMOD(R3),#2,@P2(AP)
                         04 BC       02EE       
                            11   13  02F0       		BEQL	90$
                                     02F2       	
                                     02F2  1103 30$:
                            6C   90  02F2  1104 	MOVB	P1(AP),-		; SAVE CAMAC STATION
                         41 A3       02F4  1105 		IRP$B_N(R3)
                         04 AC   D0  02F6  1106 	MOVL	P2(AP),-		; SAVE LAM AST ADDR
                         38 A3       02F9  1107 		IRP$L_LAMAST(R3)
                         08 AC   D0  02FB  1108 	MOVL	P3(AP),-		; AND AST PARAMETER
                         3C A3       02FE  1109 		IRP$L_LAMASTP(R3)
                          005F   31  0300  1110 	BRW	KS_Q_TO_ACP		; GO QUEUE IRP TO ACP
                                     0303  1111 90$:
                   00000000'GF   17  0303  1112 	JMP	G^EXE$ABORTIO		; ABORT LAM REQUEST
KSDRIVER                        VAX/VMS KS 2050 SERIES CAMAC DRIVER      28-JAN-1983 14:41:34  VAX-11 Macro V03-00         Page  26
V05-001                         KS_FDT_LAMAST                            25-JAN-1983 10:19:55  SYS$SYSROOT:[CAMAC.SOURCE]KSDRIVER(1)

                                     0309  1113 	.DSABL	LSB
KSDRIVER                        VAX/VMS KS 2050 SERIES CAMAC DRIVER      28-JAN-1983 14:41:34  VAX-11 Macro V03-00         Page  27
V05-001                         KS_FDT_LAMAST                            25-JAN-1983 10:19:55  SYS$SYSROOT:[CAMAC.SOURCE]KSDRIVER(1)

                                     0309  1115 	.ENABL	LSB
                                     0309  1116 	.SBTTL	KS_FDT_SENSM, SENSE CAMAC CRATE UNIT STATUS
                                     0309  1117 
                                     0309  1118 ;++
                                     0309  1119 ; KS_FDT_SENSM: SENSE DEVICE MODE FDT ROUTINE
                                     0309  1120 ;
                                     0309  1121 ; Functional description:
                                     0309  1122 ;
                                     0309  1123 ;	This routine provides a mechanism to allow a user with LOG_IO
                                     0309  1124 ;	privilege to retrieve the unit status and device status
                                     0309  1125 ;	fields from the associated UCB.
                                     0309  1126 ;
                                     0309  1127 ; Inputs:
                                     0309  1128 ;
                                     0309  1129 ;	R0-R2	- scratch registers
                                     0309  1130 ;	R3	- address of the IRP (I/O request packet)
                                     0309  1131 ;	R4	- address of the PCB (process control block)
                                     0309  1132 ;	R5	- address of the UCB (unit control block)
                                     0309  1133 ;	R6	- address of the CCB (channel control block)
                                     0309  1134 ;	R7	- bit number of the I/O function code
                                     0309  1135 ;	R8	- address of the FDT table entry for this routine
                                     0309  1136 ;	R9-R11	- scratch registers
                                     0309  1137 ;	AP	- address of the 1st function dependent QIO parameter
                                     0309  1138 ;
                                     0309  1139 ; Outputs:
                                     0309  1140 ;
                                     0309  1141 ;	The routine must preserve all registers except R0-R2, and
                                     0309  1142 ;	R9-R11.
                                     0309  1143 ;
                                     0309  1144 ;--
                                     0309  1145 
                                     0309  1146 KS_FDT_SENSM:				; SENSE DEVICE MODE FUNCTION
                       50   01   3C  0309  1147 	MOVZWL	#SS$_NORMAL,R0		; SET NORMAL I/O STATUS
                    51   58 A5   B0  030C  1148 	MOVW	UCB$W_STS(R5),R1	; GET UNIT STATUS FIELD
                       10   10   F0  0310  1149 	INSV	#16,#16,-		; GET DEVICE STATUS FIELD
                    51   5A A5       0313  1150 		UCB$W_DEVSTS(R5),R1	; TOO
                   00000000'GF   17  0316  1151 	JMP	G^EXE$FINISHIO		; I/O REQUEST COMPLETE
                                     031C  1152 	.DSABL	LSB
KSDRIVER                        VAX/VMS KS 2050 SERIES CAMAC DRIVER      28-JAN-1983 14:41:34  VAX-11 Macro V03-00         Page  28
V05-001                         KS_FDT_SENSM, SENSE CAMAC CRATE UNIT STA 25-JAN-1983 10:19:55  SYS$SYSROOT:[CAMAC.SOURCE]KSDRIVER(1)

                                     031C  1154 	.ENABL	LSB
                                     031C  1155 	.SBTTL	KS_FDT_MOUNT, MOUNT CAMAC ACP
                                     031C  1156 
                                     031C  1157 ;++
                                     031C  1158 ; KS_FDT_MOUNT: MOUNT CAMAC ACP REQUEST.
                                     031C  1159 ;
                                     031C  1160 ; Functional description:
                                     031C  1161 ;
                                     031C  1162 ;	This routine supports the 'IO$_MOUNT' function code to
                                     031C  1163 ;	queue a mount IRP to the CAMAC ACP for it's initial
                                     031C  1164 ;	processing in response to a request from the mount image.
                                     031C  1165 ;	The mount request is only supported for the Highway Support
                                     031C  1166 ;	Unit(UCB 0). If the unit is already mounted, the request
                                     031C  1167 ;	is aborted.
                                     031C  1168 ;
                                     031C  1169 ;
                                     031C  1170 ; Inputs:
                                     031C  1171 ;
                                     031C  1172 ;	R0-R2	- scratch registers
                                     031C  1173 ;	R3	- address of the IRP (I/O request packet)
                                     031C  1174 ;	R4	- address of the PCB (process control block)
                                     031C  1175 ;	R5	- address of the UCB (unit control block)
                                     031C  1176 ;	R6	- address of the CCB (channel control block)
                                     031C  1177 ;	R7	- bit number of the I/O function code
                                     031C  1178 ;	R8	- address of the FDT table entry for this routine
                                     031C  1179 ;	R9-R11	- scratch registers
                                     031C  1180 ;	AP	- address of the 1st function dependent QIO parameter
                                     031C  1181 ;
                                     031C  1182 ; Outputs:
                                     031C  1183 ;
                                     031C  1184 ;	The routine must preserve all registers except R0-R2, and
                                     031C  1185 ;	R9-R11.
                                     031C  1186 ;
                                     031C  1187 ;--
                                     031C  1188 
                                     031C  1189 KS_FDT_MOUNT:				; MOUNT CAMAC ACP
                                     031C  1190 
                  50   00F4 8F   3C  031C  1191 	MOVZWL	#SS$_ILLIOFUNC,R0	; SET ILLEGAL I/O FUNCTION
                         48 A5   B5  0321  1192 	TSTW	UCB$W_UNIT(R5)		; UNIT 0 REQUEST?
                            1E   12  0324  1193 	BNEQ	90$			; IF NOT, ABORT
                            13   E0  0326  1194 	BBS	#DEV$V_MNT,-		; ALREADY MOUNTED?
                      19 34 A5       0328  1195 		UCB$L_DEVCHAR(R5),90$	; IF SO, ABORT
                            09   E1  032B  1196 	BBC	#UCB$V_MOUNTING,-	; MOUNT IN PROGRESS?
                      14 58 A5       032D  1197 		UCB$W_STS(R5),90$	; IF NOT, ABORT
                       50   24   3C  0330  1198 	MOVZWL	#SS$_NOPRIV,R0		; ASSUME NO 'MOUNT' PRIV
                                     0333  1199 	IFNPRIV	MOUNT,90$		; IF NO 'MOUNT' PRIV, ABORT
                   00000000'8F   E1  0333       		BBC	#PRV$V_MOUNT,@PCB$L_PHD(R4),90$
                      08 64 B4       0339       
                                     033C       	
                  52   0094 C5   D0  033C  1200 	MOVL	UCB$L_HSU(R5),R2	; SET HSU ADDRESS FOR ALTERNATE
                                     0341  1201 					; ENTRY INTO Q_TO_ACP
                          0032   31  0341  1202 	BRW	KS_Q_TO_ACPA		; QUEUE IRP TO ACP
                                     0344  1203 90$:
                   00000000'GF   17  0344  1204 	JMP	G^EXE$ABORTIO		; ABORT IRP
                                     034A  1205 	.DSABL	LSB
KSDRIVER                        VAX/VMS KS 2050 SERIES CAMAC DRIVER      28-JAN-1983 14:41:34  VAX-11 Macro V03-00         Page  29
V05-001                         KS_FDT_MOUNT, MOUNT CAMAC ACP            25-JAN-1983 10:19:55  SYS$SYSROOT:[CAMAC.SOURCE]KSDRIVER(1)

                                     034A  1207 	.ENABL	LSB
                                     034A  1208 	.SBTTL	KS_FDT_ACP, ACP CONTROL FDT
                                     034A  1209 
                                     034A  1210 ;++
                                     034A  1211 ; KS_FDT_ACP: ACP CONTROL FDT ROUTINE
                                     034A  1212 ;
                                     034A  1213 ; Functional description:
                                     034A  1214 ;
                                     034A  1215 ;	This FDT routine supports the ACPCONTROL function code. It's
                                     034A  1216 ;	primary function is to provide a null action request to
                                     034A  1217 ;	awaken the ACP. The subsequent action taken by the ACP
                                     034A  1218 ;	once awakened is implementation dependent. Typically, the
                                     034A  1219 ;	ACP will check if the associated UCB is marked for dismount
                                     034A  1220 ;	and if so, will perform a dismount operation for that
                                     034A  1221 ;	unit. 
                                     034A  1222 ;
                                     034A  1223 ;
                                     034A  1224 ;
                                     034A  1225 ; Inputs:
                                     034A  1226 ;
                                     034A  1227 ;	R0-R2	- scratch registers
                                     034A  1228 ;	R3	- address of the IRP (I/O request packet)
                                     034A  1229 ;	R4	- address of the PCB (process control block)
                                     034A  1230 ;	R5	- address of the UCB (unit control block)
                                     034A  1231 ;	R6	- address of the CCB (channel control block)
                                     034A  1232 ;	R7	- bit number of the I/O function code
                                     034A  1233 ;	R8	- address of the FDT table entry for this routine
                                     034A  1234 ;	R9-R11	- scratch registers
                                     034A  1235 ;	AP	- address of the 1st function dependent QIO parameter
                                     034A  1236 ;
                                     034A  1237 ; Outputs:
                                     034A  1238 ;
                                     034A  1239 ;	The routine must preserve all registers except R0-R2, and
                                     034A  1240 ;	R9-R11.
                                     034A  1241 ;
                                     034A  1242 ;--
                                     034A  1243 
                                     034A  1244 KS_FDT_ACP:				; ACP CONTROL REQUEST
                                     034A  1245 
                  50   007C 8F   3C  034A  1246 	MOVZWL	#SS$_DEVNOTMOUNT,R0	; ASSUME FAILURE
                            13   E1  034F  1247 	BBC	#DEV$V_MNT,-		; DEVICE MOUNTED?
                      08 34 A5       0351  1248 		UCB$L_DEVCHAR(R5),90$	; IF NOT, ABORT
                  52   0094 C5   D0  0354  1249 	MOVL	UCB$L_HSU(R5),R2	; GET HSU ADDRESS
                          001A   31  0359  1250 	BRW	KS_Q_TO_ACPA		; USE ALTERNATE Q_TO_ACP
                                     035C  1251 					; ENTRY
                                     035C  1252 90$:
                   00000000'GF   17  035C  1253 	JMP	G^EXE$ABORTIO		; ABORT REQUEST
                                     0362  1254 	.DSABL	LSB
KSDRIVER                        VAX/VMS KS 2050 SERIES CAMAC DRIVER      28-JAN-1983 14:41:34  VAX-11 Macro V03-00         Page  30
V05-001                         KS_FDT_ACP, ACP CONTROL FDT              25-JAN-1983 10:19:55  SYS$SYSROOT:[CAMAC.SOURCE]KSDRIVER(1)

                                     0362  1256 	.ENABL	LSB
                                     0362  1257 	.SBTTL	KS_Q_TO_ACP, QUEUE IRP TO CAMAC ACP
                                     0362  1258 
                                     0362  1259 ;++
                                     0362  1260 ;
                                     0362  1261 ; KS_Q_TO_ACP: QUEUE IRP TO CAMAC ACP.
                                     0362  1262 ;
                                     0362  1263 ; Inputs:
                                     0362  1264 ;	R3	- address of IRP,
                                     0362  1265 ;	R4	- address of current PCB,
                                     0362  1266 ;	R5	- address of UCB.
                                     0362  1267 ;
                                     0362  1268 ; Outputs:
                                     0362  1269 ;	Increments the VCB transaction count then exits
                                     0362  1270 ;	to EXE$QIOACPPKT to queue the IRP to the ACP and
                                     0362  1271 ;	return control from the QIO request.
                                     0362  1272 ;
                                     0362  1273 ;--
                                     0362  1274 
                                     0362  1275 KS_Q_TO_ACP:				; QUEUE IRP TO ACP
                  52   0094 C5   D0  0362  1276 	MOVL	UCB$L_HSU(R5),R2	; GET HSU ADDRESS
                  50   007C 8F   3C  0367  1277 	MOVZWL	#SS$_DEVNOTMOUNT,R0	; ASSUME FAILURE
                            13   E1  036C  1278 	BBC	#DEV$V_MNT,-		; CAMAC ACP MOUNTED?
                      18 34 A2       036E  1279 		UCB$L_DEVCHAR(R2),90$	; IF NOT, ABORT
                            15   E0  0371  1280 	BBS	#DEV$V_DMT,-		; MARKED FOR DISMOUNT?
                      13 34 A2       0373  1281 		UCB$L_DEVCHAR(R2),90$	; IF SO, ABORT
                                     0376  1282 
                                     0376  1283 KS_Q_TO_ACPA:				; ALTERNATE ENTRY FOR MOUNT
                    50   30 A2   D0  0376  1284 	MOVL	UCB$L_VCB(R2),R0	; LOCATE VCB FROM UCB
                         0C A0   B6  037A  1285 	INCW	VCB$W_TRANS(R0)		; INC VOL TRANS COUNT
                   00000000'GF   16  037D  1286 	JSB	G^IOC$WAKACP		; QUEUE IRP TO ACP
                   00000000'GF   17  0383  1287 	JMP	G^EXE$QIORETURN		; RETURN TO PROCESS
                                     0389  1288 90$:
                   00000000'GF   17  0389  1289 	JMP	G^EXE$ABORTIO		; ABORT REQUEST
                                     038F  1290 	.DSABL	LSB
KSDRIVER                        VAX/VMS KS 2050 SERIES CAMAC DRIVER      28-JAN-1983 14:41:34  VAX-11 Macro V03-00         Page  31
V05-001                         KS_START, START I/O ROUTINE              25-JAN-1983 10:19:55  SYS$SYSROOT:[CAMAC.SOURCE]KSDRIVER(1)

                                     038F  1292 	.SBTTL	KS_START, START I/O ROUTINE
                                     038F  1293 
                                     038F  1294 ;++
                                     038F  1295 ; KS_START: START A SERIAL CAMAC TRANSACTION USING THE CURRENT IRP.
                                     038F  1296 ;
                                     038F  1297 ; Functional description:
                                     038F  1298 ;
                                     038F  1299 ;	This routine is called in driver fork context to
                                     038F  1300 ;	initiate a CAMAC I/O transaction on the KS 2050
                                     038F  1301 ;	interface. The requested transfer mode is determined
                                     038F  1302 ;	from the Register Data Block(RDB) in the IRP and
                                     038F  1303 ;	driver I/O processing proceeds from there by case.
                                     038F  1304 ;
                                     038F  1305 ;		Mode 0-Programmed I/O
                                     038F  1306 ;		Disable interrupts to device IPL.
                                     038F  1307 ;		Load KS 2050 CMR, CDH, DLR from the RDB.
                                     038F  1308 ;		Check for POWER in UCB. If so, retry. If not, 
                                     038F  1309 ;		    proceed.
                                     038F  1310 ;		Set IPL to block POWER.
                                     038F  1311 ;		Load KS 2050 CTR ! 'GO' ! 'INT ENABLE'.
                                     038F  1312 ;		Wait for interrupt.
                                     038F  1313 ;		Post interrupt analysis and terminate the IRP.
                                     038F  1314 ;
                                     038F  1315 ;
                                     038F  1316 ;		Mode 1-Q Scan/Stop On Word Count
                                     038F  1317 ;		Allocate UBA address window for DMA transfer to
                                     038F  1318 ;		     the KS 2050.
                                     038F  1319 ;		Load the UBA mapping registers with the PTE's for
                                     038F  1320 ;		     the user's buffer.
                                     038F  1321 ;		Disable interrupts to device IPL.
                                     038F  1322 ;		Load the KS 2050 CMR, CDH, MAE, TMA/RMA and WCR
                                     038F  1323 ;		     registers.
                                     038F  1324 ;		Check for POWER in UCB. If set, retry. If not,
                                     038F  1325 ;		     proceed.
                                     038F  1326 ;		Set IPL to block POWER.
                                     038F  1327 ;		Load KS 2050 CTR ! 'GO' ! 'INT ENABLE'.
                                     038F  1328 ;		Wait for interupt.
                                     038F  1329 ;		Post interrupt analysis and terminate IRP.
                                     038F  1330 ;
                                     038F  1331 
                                     038F  1332 ;		Mode 2-Q Repeat/Stop On Word Count
                                     038F  1333 ;		Allocate UBA address window for DMA transfer to
                                     038F  1334 ;		     the KS 2050.
                                     038F  1335 ;		Load the UBA mapping registers with the PTE's for
                                     038F  1336 ;		     the user's buffer.
                                     038F  1337 ;		Disable interrupts to device IPL.
                                     038F  1338 ;		Load the KS 2050 CMR, CDH, MAE, TMA/RMA and WCR
                                     038F  1339 ;		     registers.
                                     038F  1340 ;		Check for POWER in UCB. If set, retry. If not,
                                     038F  1341 ;		     proceed.
                                     038F  1342 ;		Set IPL to block POWER.
                                     038F  1343 ;		Load KS 2050 CTR ! 'GO' ! 'INT ENABLE'.
                                     038F  1344 ;		Wait for interupt.
                                     038F  1345 ;		Post interrupt analysis and terminate IRP.
                                     038F  1346 ;
                                     038F  1347 ;		Mode 3-Stop On Word Count/Burst Transaction
                                     038F  1348 ;		Allocate UBA address window for DMA transfer to
KSDRIVER                        VAX/VMS KS 2050 SERIES CAMAC DRIVER      28-JAN-1983 14:41:34  VAX-11 Macro V03-00         Page  32
V05-001                         KS_START, START I/O ROUTINE              25-JAN-1983 10:19:55  SYS$SYSROOT:[CAMAC.SOURCE]KSDRIVER(1)

                                     038F  1349 ;		     the KS 2050.
                                     038F  1350 ;		Load the UBA mapping registers with the PTE's for
                                     038F  1351 ;		     the user's buffer.
                                     038F  1352 ;		Disable interrupts to device IPL.
                                     038F  1353 ;		Load the KS 2050 CMR, CDH, MAE, TMA/RMA and WCR
                                     038F  1354 ;		     registers.
                                     038F  1355 ;		Check for POWER in UCB. If set, retry. If not,
                                     038F  1356 ;		     proceed.
                                     038F  1357 ;		Set IPL to block POWER.
                                     038F  1358 ;		Load KS 2050 CTR ! 'GO' ! 'INT ENABLE'.
                                     038F  1359 ;		Wait for interupt.
                                     038F  1360 ;		Post interrupt analysis and terminate IRP.
                                     038F  1361 ;
                                     038F  1362 ;	
                                     038F  1363 ;		Mode 4-Execute List Mode
                                     038F  1364 ;		Allocate UBA address window for DMA transfer to
                                     038F  1365 ;		     the KS 2050.
                                     038F  1366 ;		Load the UBA mapping registers with the PTE's for
                                     038F  1367 ;		     the user's buffer.
                                     038F  1368 ;		Disable interrupts to device IPL.
                                     038F  1369 ;		Load the KS 2050 CMR, CDH, MAE, TMA and RMA and WCR
                                     038F  1370 ;		     registers.
                                     038F  1371 ;		Check for POWER in UCB. If set, retry. If not,
                                     038F  1372 ;		     proceed.
                                     038F  1373 ;		Set IPL to block POWER.
                                     038F  1374 ;		Load KS 2050 CTR ! 'GO' ! 'INT ENABLE'.
                                     038F  1375 ;		Wait for interupt.
                                     038F  1376 ;		Post interrupt analysis and terminate IRP.
                                     038F  1377 ;
                                     038F  1378 ;		
                                     038F  1379 ; Inputs:
                                     038F  1380 ;
                                     038F  1381 ;	R3	- address of the IRP (I/O request packet)
                                     038F  1382 ;	R5	- address of the UCB (unit control block)
                                     038F  1383 ;
                                     038F  1384 ; Implicit inputs:
                                     038F  1385 ;	UCB$L_SVAPTE = IRP$L_SVAPTE
                                     038F  1386 ;	UBC$W_BCNT = IRP$W_BCNT
                                     038F  1387 ;	UCB$W_BOFF = IRP$W_BOFF
                                     038F  1388 ;
                                     038F  1389 ;
                                     038F  1390 ; Outputs:
                                     038F  1391 ;
                                     038F  1392 ;	R0	- 1st longword of I/O status: contains status code and
                                     038F  1393 ;		  number of bytes transferred
                                     038F  1394 ;	R1	- 2nd longword of I/O status: device-dependent
                                     038F  1395 ;
                                     038F  1396 ;	The routine must preserve all registers except R0-R2 and R4.
                                     038F  1397 ;
                                     038F  1398 ;--
                                     038F  1399 
                                     038F  1400 KS_START:				; Process an I/O packet
                                     038F  1401 
                            01   AA  038F  1402 	BICW	#<DSTS_M_DMA>,-		; CLEAR DMA OPERATION 
                         5A A5       0391  1403 		UCB$W_DEVSTS(R5)	; IN DEVICE STATUS
                    54   20 A5   D0  0393  1404 	MOVL	UCB$L_CRB(R5),R4	; GET CRB ADDRESS
                         2C B4   D0  0397  1405 	MOVL	@CRB$L_INTD+VEC$L_IDB(R4),-
KSDRIVER                        VAX/VMS KS 2050 SERIES CAMAC DRIVER      28-JAN-1983 14:41:34  VAX-11 Macro V03-00         Page  33
V05-001                         KS_START, START I/O ROUTINE              25-JAN-1983 10:19:55  SYS$SYSROOT:[CAMAC.SOURCE]KSDRIVER(1)

                            54       039A  1406 		R4			; GET CTR ADDRESS IN R4 FOR DRIVER
                                     039B  1407 ;
                                     039B  1408 ; PROCESS THE CURRENT IRP 
                                     039B  1409 ; DETERMINE KS 2050 MODE REQUESTED BY THE IRP REGISTER DATA
                                     039B  1410 ; BLOCK. PROCESS BY MODE 0 AS A CASE, MODES 1,2,3 AS A CASE AND
                                     039B  1411 ; MODE 4 AS A CASE. 
                                     039B  1412 ;
                                     039B  1413 
                                     039B  1414 	ASSUME	SCT_M_M,EQ,PCT_M_M	; ASSUME SERIAL AND PARALLEL MODES SAME
                                     039B       	
                       04   01   EF  039B  1415 	EXTZV	#SCT_V_M,#SCT_S_M,-	; GET KS 2050 MODE
                    50   38 A3       039E  1416 		IRP$W_CTR(R3),R0	; FROM CTR IN IRP
                  08   00   50   8F  03A1  1417 	CASEB	R0,#0,#KS_P_MAXM	; VECTOR TO MODE START PROCESSOR
                                     03A5  1418 10$:
                               001C' 03A5  1419 	.WORD	KS_START_PIO-10$	; MODE 0(PROGRAMMED I/O)
                               0049' 03A7  1420 	.WORD	KS_START_DIO-10$	; MODE 1(Q-SCAN; SINGLE DMA)
                               0049' 03A9  1421 	.WORD	KS_START_DIO-10$	; MODE 2(Q-STOP; SINGLE DMA)
                               0049' 03AB  1422 	.WORD	KS_START_DIO-10$	; MODE 3(STOP; SINGLE DMA)
                               010F' 03AD  1423 	.WORD	KS_START_LIO-10$	; MODE 4(LIST; MULTIPLE DMA)
                               0012' 03AF  1424 	.WORD	KS_START_BADM-10$	; MODE 5 INVALID
                               0012' 03B1  1425 	.WORD	KS_START_BADM-10$	; MODE 6 INVALID
                               0012' 03B3  1426 	.WORD	KS_START_BADM-10$	; MODE 7 INVALID
                               0049' 03B5  1427 	.WORD	KS_START_DIO-10$	; MODE 8(Q-REP; SINGLE DMA)
                                     03B7  1428 ;
                                     03B7  1429 ; SAFETY VALVE FOR ILLEGAL MODES
                                     03B7  1430 ;
                                     03B7  1431 KS_START_BADM:
                       50   14   3C  03B7  1432 	MOVZWL	#SS$_BADPARAM,R0	; SET BAD PARAMETER STATUS
                         38 A3   3C  03BA  1433 	MOVZWL	IRP$W_CTR(R3),-		; RETURN CTR TEMPLATE TOO
                            51       03BD  1434 		R1			; AS IOSB VALUE
                          03C4   31  03BE  1435 	BRW	KS_REQCOM		; POST I/O PROCESSING
                                     03C1  1436 
                                     03C1  1437 ;
                                     03C1  1438 ; CASE A: MODE 0-PROGRAMMED I/O OPERATION.
                                     03C1  1439 ;
                                     03C1  1440 
                                     03C1  1441 KS_START_PIO:
                                     03C1  1442 	REQCAMAC			; REQUEST CONTROLLER
                    10   23 A3   91  03C1       	CMPB	IRP$B_PRI(R3),#16	; CHECK PROCESS PRIORITY
                            08   19  03C5       	BLSS	30003$			; IF REALTIME, HIGH PRI REQUEST
                                     03C7       	REQPCHAN			; LOW PRI REQUEST
                   00000000'GF   16  03C7       		JSB	G^IOC$REQPCHANL
                                     03CD       	
                            06   11  03CD       	BRB	30004$			; COMMON FLOW
                                     03CF       30003$:
                                     03CF       	REQPCHAN	PRI=HIGH	; HIGH PRI CONT REQUEST
                   00000000'GF   16  03CF       		JSB	G^IOC$REQPCHANH
                                     03D5       	
                                     03D5       30004$:
                                     03D5       	
                                     03D5  1443 
                            20   AA  03D5  1444 	BICW	#UCB$M_POWER,-		; CLEAR PWR FAIL
                         58 A5       03D7  1445 		UCB$W_STS(R5)		; BEFORE CRITICAL SECTION
                                     03D9  1446 
                                     03D9  1447 KS_PWR_PIO:				; POWER FAIL RECOVERY POINT
                         3A A3   B0  03D9  1448 	MOVW	IRP$W_CMR(R3),-		; LOAD COMMAND REG(N,A,F)
                         06 A4       03DC  1449 		KS_W_CMR(R4)
KSDRIVER                        VAX/VMS KS 2050 SERIES CAMAC DRIVER      28-JAN-1983 14:41:34  VAX-11 Macro V03-00         Page  34
V05-001                         KS_START, START I/O ROUTINE              25-JAN-1983 10:19:55  SYS$SYSROOT:[CAMAC.SOURCE]KSDRIVER(1)

                         3E A3   B0  03DE  1450 	MOVW	IRP$W_CDH(R3),-		; LOAD CRATE/DATA HIGH
                         08 A4       03E1  1451 		KS_W_CDH(R4)
                         3C A3   B0  03E3  1452 	MOVW	IRP$W_DLR(R3),-		; LOAD DATA LOW REG
                         0A A4       03E6  1453 		KS_W_DLR(R4)
                         EE AF   9F  03E8  1454 	PUSHAB	KS_PWR_PIO		; PWR FAIL RECOVERY ADDR
                          01C3   31  03EB  1455 	BRW	KS_START_COM		; START DEVICE AND WAIT
                                     03EE  1456 
                                     03EE  1457 ;
                                     03EE  1458 ; CASE B: MODE 1-Q SCAN/STOP ON WORD COUNT OPERATION,
                                     03EE  1459 ;         MODE 2-Q REPEAT/STOP ON WORD COUNT OPERATION,
                                     03EE  1460 ;         MODE 3-STOP ON WORD COUNT/BURST MODE OPERATION.
                                     03EE  1461 ;
                                     03EE  1462 
                                     03EE  1463 KS_START_DIO:
                            01   A8  03EE  1464 	BISW	#DSTS_M_DMA,-		; SET DMA DEVICE STATUS
                         5A A5       03F0  1465 		UCB$W_DEVSTS(R5)	; IN DEVICE STATUS
                                     03F2  1466 	REQCAMAC			; REQUEST CONTROLLER
                    10   23 A3   91  03F2       	CMPB	IRP$B_PRI(R3),#16	; CHECK PROCESS PRIORITY
                            08   19  03F6       	BLSS	30005$			; IF REALTIME, HIGH PRI REQUEST
                                     03F8       	REQPCHAN			; LOW PRI REQUEST
                   00000000'GF   16  03F8       		JSB	G^IOC$REQPCHANL
                                     03FE       	
                            06   11  03FE       	BRB	30006$			; COMMON FLOW
                                     0400       30005$:
                                     0400       	REQPCHAN	PRI=HIGH	; HIGH PRI CONT REQUEST
                   00000000'GF   16  0400       		JSB	G^IOC$REQPCHANH
                                     0406       	
                                     0406       30006$:
                                     0406       	
                                     0406  1467 	REQDPR				; REQUEST BUFFERED DATA PATH
                   00000000'GF   16  0406       		JSB	G^IOC$REQDATAP
                                     040C       	
                                     040C  1468 	REQMPR				; REQUEST UBA ADDRESS SPACE
                   00000000'GF   16  040C       		JSB	G^IOC$REQMAPREG
                                     0412       	
                                     0412  1469 					; USING SVAPTE, BOFF, BCNT FROM
                                     0412  1470 					; UCB FIELDS
                    51   20 A5   D0  0412  1471 	MOVL	UCB$L_CRB(R5),R1	; GET CRB ADDRESS
                         34 A1   D0  0416  1472 	MOVL	CRB$L_INTD+VEC$W_MAPREG(R1),-
                         44 A3       0419  1473 		IRP$L_DPRMAP(R3)	; SAVE UBA PARAMETERS FOR ERR LOG
                                     041B  1474 	GETUBA	UCB$W_BOFF(R5),-	; COMPUTE UNIBUS MEM ADDRESS
                                     041B  1475 		CRB$L_INTD+VEC$W_MAPREG(R1),-
                                     041B  1476 		IRP$L_UBADDR(R3)	; AND SAVE FOR LATER
                 40 A3   6C A5   3C  041B       	MOVZWL	UCB$W_BOFF(R5),IRP$L_UBADDR(R3)		; BYTE OFFSET(ZERO EXTEND)
                         34 A1   F0  0420       	INSV	CRB$L_INTD+VEC$W_MAPREG(R1),-		; INSERT UBA MAP REGISTER AT PAGE
                       09   09       0423       		#9,#9,-			; BOUNDARY IN UNIBUS MEMORY
                         40 A3       0425       		IRP$L_UBADDR(R3)			; ADDRESS
                                     0427       	
                                     0427  1477 
                                     0427  1478 
                            20   AA  0427  1479 	BICW	#UCB$M_POWER,-		; CLEAR PWR FAIL BEFORE
                         58 A5       0429  1480 		UCB$W_STS(R5)		; CRITICAL SECTION
                                     042B  1481 
                                     042B  1482 KS_PWR_DIO:				; SINGLE DMA PFAIL RECOVERY POINT
                                     042B  1483 	LOADUBA				; LOAD PTE'S INTO UBA MAP REGS
                   00000000'GF   16  042B       		JSB	G^IOC$LOADUBAMAP
                                     0431       	
KSDRIVER                        VAX/VMS KS 2050 SERIES CAMAC DRIVER      28-JAN-1983 14:41:34  VAX-11 Macro V03-00         Page  35
V05-001                         KS_START, START I/O ROUTINE              25-JAN-1983 10:19:55  SYS$SYSROOT:[CAMAC.SOURCE]KSDRIVER(1)

                                     0431  1484 					; ADDRESS FOR UBA WINDOW
                                 AA  0431  1485 	BICW	#<MAE_M_TMA !-		; CLEAR MAE TMA + RMA ADDR
                                     0432  1486 		MAE_M_RMA>,-		; BITS FIRST
                       F000 8F       0432  1487 		KS_W_MAE(R4)
                         18 A4       0435       
                    50   40 A3   D0  0437  1488 	MOVL	IRP$L_UBADDR(R3),R0	; GET UNIBUS MEM ADDRESS
                    51   20 A5   D0  043B  1489 	MOVL	UCB$L_CRB(R5),R1	; GET CRB ADDRESS
                            01   E0  043F  1490 	BBS	#IRP$V_FUNC,-		; CHECK IF CAMAC READ/WRITE
                      2E 2A A3       0441  1491 		IRP$W_STS(R3),30$
                                     0444  1492 	SETTMA				; LOAD TMA/MAE WITH TM ADDRESS
                    1A A4   50   B0  0444       	MOVW	R0,KS_W_TMA(R4)		; SET TMA REG
                            50   B4  0448       	CLRW	R0			; CLEAR LOW UBA BITS
                         FE 8F   78  044A       	ASHL	#<MAE_V_TMA-16>,-	; POSITION MAE BITS
                       50   50       044D       		R0,R0
                    18 A4   50   A8  044F       	BISW	R0,KS_W_MAE(R4)		; MASK TMA BITS INTO MAE
                                     0453       	
                                     0453  1493 	NULLUBA	CRB$L_INTD+VEC$W_MAPREG(R1),-
                                     0453  1494 		CRB$L_INTD+VEC$B_NUMREG(R1),-
                                     0453  1495 		R0			; GET NULL UNIBUS ADDRESS
                    50   36 A1   9A  0453       	MOVZBL	CRB$L_INTD+VEC$B_NUMREG(R1),R0		; COMPUTE UNIBUSS ADDRESS
                            50   D7  0457       	DECL	R0			; FOR HIGH UBA MAP REG
                    50   34 A1   A0  0459       	ADDW	CRB$L_INTD+VEC$W_MAPREG(R1),R0
                  50   50   09   78  045D       	ASHL	#9,R0,R0
                                     0461       	
                                     0461  1496 	SETRMA				; LOAD IT INTO RMA/MAE TO
                    1C A4   50   B0  0461       	MOVW	R0,KS_W_RMA(R4)		; SET RMA REG
                            50   B4  0465       	CLRW	R0			; CLEAR LOW UBA BITS
                         FC 8F   78  0467       	ASHL	#<MAE_V_RMA-16>,-	; POSITION MAE BITS
                       50   50       046A       		R0,R0
                    18 A4   50   A8  046C       	BISW	R0,KS_W_MAE(R4)		; MASK RMA BITS INTO MAE
                                     0470       	
                                     0470  1497 					; STOP ERRONEOUS OPERATION
                            2C   11  0470  1498 	BRB	40$			; CONTINUE
                                     0472  1499 30$:
                                     0472  1500 	SETRMA				; LOAD KS 2050 RMA/MAE REGS
                    1C A4   50   B0  0472       	MOVW	R0,KS_W_RMA(R4)		; SET RMA REG
                            50   B4  0476       	CLRW	R0			; CLEAR LOW UBA BITS
                         FC 8F   78  0478       	ASHL	#<MAE_V_RMA-16>,-	; POSITION MAE BITS
                       50   50       047B       		R0,R0
                    18 A4   50   A8  047D       	BISW	R0,KS_W_MAE(R4)		; MASK RMA BITS INTO MAE
                                     0481       	
                                     0481  1501 	NULLUBA	CRB$L_INTD+VEC$W_MAPREG(R1),-
                                     0481  1502 		CRB$L_INTD+VEC$B_NUMREG(R1),-
                                     0481  1503 		R0			; GET INVALID UNIBUS MEM ADDRESS
                    50   36 A1   9A  0481       	MOVZBL	CRB$L_INTD+VEC$B_NUMREG(R1),R0		; COMPUTE UNIBUSS ADDRESS
                            50   D7  0485       	DECL	R0			; FOR HIGH UBA MAP REG
                    50   34 A1   A0  0487       	ADDW	CRB$L_INTD+VEC$W_MAPREG(R1),R0
                  50   50   09   78  048B       	ASHL	#9,R0,R0
                                     048F       	
                                     048F  1504 	SETTMA				; INVALIDATE TMA ADDRESS
                    1A A4   50   B0  048F       	MOVW	R0,KS_W_TMA(R4)		; SET TMA REG
                            50   B4  0493       	CLRW	R0			; CLEAR LOW UBA BITS
                         FE 8F   78  0495       	ASHL	#<MAE_V_TMA-16>,-	; POSITION MAE BITS
                       50   50       0498       		R0,R0
                    18 A4   50   A8  049A       	BISW	R0,KS_W_MAE(R4)		; MASK TMA BITS INTO MAE
                                     049E       	
                                     049E  1505 40$:
KSDRIVER                        VAX/VMS KS 2050 SERIES CAMAC DRIVER      28-JAN-1983 14:41:34  VAX-11 Macro V03-00         Page  36
V05-001                         KS_START, START I/O ROUTINE              25-JAN-1983 10:19:55  SYS$SYSROOT:[CAMAC.SOURCE]KSDRIVER(1)

                         3C A3   B0  049E  1506 	MOVW	IRP$W_WCR(R3),-		; LOAD DMA WORD COUNT
                         1E A4       04A1  1507 		KS_W_WCR(R4)
                         3A A3   B0  04A3  1508 	MOVW	IRP$W_CMR(R3),-		; LOAD COMMAND REG(N,A,F)
                         06 A4       04A6  1509 		KS_W_CMR(R4)
                         3E A3   B0  04A8  1510 	MOVW	IRP$W_CDH(R3),-		; CRATE AND MEM FORMAT
                         08 A4       04AB  1511 		KS_W_CDH(R4)
                       FF7A CF   9F  04AD  1512 	PUSHAB	KS_PWR_DIO		; PWR FAIL RECOVERY ENTRY
                          00FD   31  04B1  1513 	BRW	KS_START_COM		; START DEVICE AND WAIT
                                     04B4  1514 
                                     04B4  1515 ;
                                     04B4  1516 ; CASE C: MODE 4-EXECUTE LIST MODE.
                                     04B4  1517 ;
                                     04B4  1518 
                                     04B4  1519 KS_START_LIO:
                            01   A8  04B4  1520 	BISW	#DSTS_M_DMA,-		; SET DMA OPERATION STATUS
                         5A A5       04B6  1521 		UCB$W_DEVSTS(R5)	; IN DEVICE STATUS
                                     04B8  1522 	REQCAMAC			; REQUEST CONTROLLER
                    10   23 A3   91  04B8       	CMPB	IRP$B_PRI(R3),#16	; CHECK PROCESS PRIORITY
                            08   19  04BC       	BLSS	30007$			; IF REALTIME, HIGH PRI REQUEST
                                     04BE       	REQPCHAN			; LOW PRI REQUEST
                   00000000'GF   16  04BE       		JSB	G^IOC$REQPCHANL
                                     04C4       	
                            06   11  04C4       	BRB	30008$			; COMMON FLOW
                                     04C6       30007$:
                                     04C6       	REQPCHAN	PRI=HIGH	; HIGH PRI CONT REQUEST
                   00000000'GF   16  04C6       		JSB	G^IOC$REQPCHANH
                                     04CC       	
                                     04CC       30008$:
                                     04CC       	
                            20   AA  04CC  1523 	BICW	#UCB$M_POWER,-		; CLEAR PWR FAIL INDICATOR
                         58 A5       04CE  1524 		UCB$W_STS(R5)
                                     04D0  1525 
                                     04D0  1526 KS_PWR_LIO:				; LIST I/O PWR FAIL RECOVERY POINT
                                     04D0  1527 
                                 AA  04D0  1528 	BICW	#<MAE_M_TMA !-		; CLEAR TMA+RMA FIELDS OF MAE
                                     04D1  1529 		MAE_M_RMA>,-		; REGISTER
                       F000 8F       04D1  1530 		KS_W_MAE(R4)
                         18 A4       04D4       
                            0F   E0  04D6  1531 	BBS	#VEC$V_MAPLOCK,-	; TEST FOR UBA RESOURCES
                         44 A3       04D8  1532 		IRP$L_DPRMAP(R3),-	; ALLOCATED AND SKIP IF DONE.
                            27       04DA  1533 		200$
                                     04DB  1534 
                                     04DB  1535 	REQDPR				; DATA PATH FOR EXECUTE LIST
                   00000000'GF   16  04DB       		JSB	G^IOC$REQDATAP
                                     04E1       	
                                     04E1  1536 	REQMPR				; GET UBA WINDOW FOR EXECUTE LIST
                   00000000'GF   16  04E1       		JSB	G^IOC$REQMAPREG
                                     04E7       	
                                     04E7  1537 					; USING UCB SVAPTE, BOFF, BCNT.
                    51   20 A5   D0  04E7  1538 	MOVL	UCB$L_CRB(R5),R1	; GET CRB ADDRESS
                         34 A1   D0  04EB  1539 	MOVL	CRB$L_INTD+VEC$W_MAPREG(R1),-
                         44 A3       04EE  1540 		IRP$L_DPRMAP(R3)	; SAVE UBA PARAMETERS
                                     04F0  1541 	GETUBA	UCB$W_BOFF(R5),-	; COMPUTE UNIBUS MEM ADDRESS
                                     04F0  1542 		CRB$L_INTD+VEC$W_MAPREG(R1),-
                                     04F0  1543 		IRP$L_UBADDR(R3)	; AND SAVE FOR LATER
                 40 A3   6C A5   3C  04F0       	MOVZWL	UCB$W_BOFF(R5),IRP$L_UBADDR(R3)		; BYTE OFFSET(ZERO EXTEND)
                         34 A1   F0  04F5       	INSV	CRB$L_INTD+VEC$W_MAPREG(R1),-		; INSERT UBA MAP REGISTER AT PAGE
KSDRIVER                        VAX/VMS KS 2050 SERIES CAMAC DRIVER      28-JAN-1983 14:41:34  VAX-11 Macro V03-00         Page  37
V05-001                         KS_START, START I/O ROUTINE              25-JAN-1983 10:19:55  SYS$SYSROOT:[CAMAC.SOURCE]KSDRIVER(1)

                       09   09       04F8       		#9,#9,-			; BOUNDARY IN UNIBUS MEMORY
                         40 A3       04FA       		IRP$L_UBADDR(R3)			; ADDRESS
                                     04FC       	
                       8000 8F   A8  04FC  1544 	BISW	#VEC$M_MAPLOCK,-	; INDICATE EXECUTE LIST RESOURCES
                         44 A3       0500  1545 		IRP$L_DPRMAP(R3)	; ALLOCATED
                                     0502  1546 
                                     0502  1547 200$:
                                     0502  1548 	LOADUBA				; LOAD EXECUTE LIST PTE'S INTO MAP REGS
                   00000000'GF   16  0502       		JSB	G^IOC$LOADUBAMAP
                                     0508       	
                                     0508  1549 
                    50   40 A3   D0  0508  1550 	MOVL	IRP$L_UBADDR(R3),R0	; GET TMA UNIBUS ADDRESS
                                     050C  1551 	SETTMA				; SET TMA/MAE REGS TO ADDRESS
                    1A A4   50   B0  050C       	MOVW	R0,KS_W_TMA(R4)		; SET TMA REG
                            50   B4  0510       	CLRW	R0			; CLEAR LOW UBA BITS
                         FE 8F   78  0512       	ASHL	#<MAE_V_TMA-16>,-	; POSITION MAE BITS
                       50   50       0515       		R0,R0
                    18 A4   50   A8  0517       	BISW	R0,KS_W_MAE(R4)		; MASK TMA BITS INTO MAE
                                     051B       	
                            0B   E1  051B  1552 	BBC	#IRP$V_EXTEND,-		; CHECK IF IRP EXTENSION
                      62 2A A3       051D  1553 		IRP$W_STS(R3),210$	; CLEAR. IF SO, SKIP 
                                     0520  1554 					; REPLY LIST ALLOCATION
                    52   54 A3   D0  0520  1555 	MOVL	IRP$L_EXTEND(R3),R2	; GET EXTENSION ADDRESS
                         2C A2   D0  0524  1556 	MOVL	IRPE$L_SVAPTE1(R2),-	; COPY REPLY LIST SVAPTE
                         68 A5       0527  1557 		UCB$L_SVAPTE(R5)	; TO SAME UCB FIELD
                         30 A2   B0  0529  1558 	MOVW	IRPE$W_BOFF1(R2),-	; AND BYTE OFFSET
                         6C A5       052C  1559 		UCB$W_BOFF(R5)
                         34 A2   B0  052E  1560 	MOVW	IRPE$L_BCNT1(R2),-	; AND BYTE COUNT
                         6E A5       0531  1561 		UCB$W_BCNT(R5)
                                     0533  1562 
                            0F   E0  0533  1563 	BBS	#VEC$V_MAPLOCK,-	; CHECK IF REPLY LIST UBA
                         10 A2       0535  1564 		IRPE$L_DPRMAP(R2),-	; RESOURCES ALLOCATED. IF SO,
                            2B       0537  1565 		220$			; GO LOAD UP REGS.
                                     0538  1566 
                                     0538  1567 	REQDPR				; DATA PATH FOR REPLY LIST
                   00000000'GF   16  0538       		JSB	G^IOC$REQDATAP
                                     053E       	
                                     053E  1568 	REQMPR				; REQUEST UBA WINDOW FOR REPLY LIST
                   00000000'GF   16  053E       		JSB	G^IOC$REQMAPREG
                                     0544       	
                                     0544  1569 					; USING UCB SVAPTE, BOFF, BCNT.
                                     0544  1570 					; R2 GETS CLOBBERED ABOVE!!!
                    52   54 A3   D0  0544  1571 	MOVL	IRP$L_EXTEND(R3),R2	; GET IRP EXTENSION ADDRESS
                    51   20 A5   D0  0548  1572 	MOVL	UCB$L_CRB(R5),R1	; GET CRB ADDRESS
                         34 A1   D0  054C  1573 	MOVL	CRB$L_INTD+VEC$W_MAPREG(R1),-
                         10 A2       054F  1574 		IRPE$L_DPRMAP(R2)	; SAVE UBA PARAMETERS FOR REPLY LIST
                                     0551  1575 	GETUBA	UCB$W_BOFF(R5),-	; COMPUTE UNIBUS MEM ADDRESS
                                     0551  1576 		CRB$L_INTD+VEC$W_MAPREG(R1),-
                                     0551  1577 		IRPE$L_UBADDR(R2)	; AND SAVE FOR LATER
                 0C A2   6C A5   3C  0551       	MOVZWL	UCB$W_BOFF(R5),IRPE$L_UBADDR(R2)		; BYTE OFFSET(ZERO EXTEND)
                         34 A1   F0  0556       	INSV	CRB$L_INTD+VEC$W_MAPREG(R1),-		; INSERT UBA MAP REGISTER AT PAGE
                       09   09       0559       		#9,#9,-			; BOUNDARY IN UNIBUS MEMORY
                         0C A2       055B       		IRPE$L_UBADDR(R2)			; ADDRESS
                                     055D       	
                       8000 8F   A8  055D  1578 	BISW	#VEC$M_MAPLOCK,-	; INDICATE REPLY LIST RESOURCES
                         10 A2       0561  1579 		IRPE$L_DPRMAP(R2)	; ALLOCATED
                                     0563  1580 220$:
KSDRIVER                        VAX/VMS KS 2050 SERIES CAMAC DRIVER      28-JAN-1983 14:41:34  VAX-11 Macro V03-00         Page  38
V05-001                         KS_START, START I/O ROUTINE              25-JAN-1983 10:19:55  SYS$SYSROOT:[CAMAC.SOURCE]KSDRIVER(1)

                                     0563  1581 	LOADUBA				; LOAD REPLY LIST PTE'S INTO MAP REGS
                   00000000'GF   16  0563       		JSB	G^IOC$LOADUBAMAP
                                     0569       	
                                     0569  1582 
                    52   54 A3   D0  0569  1583 	MOVL	IRP$L_EXTEND(R3),R2	; RESTORE IRPE ADDRESS
                                     056D  1584 					; LOADUBA CLOBBERS IT!!!
                    50   0C A2   D0  056D  1585 	MOVL	IRPE$L_UBADDR(R2),R0	; GET RMA ADDRESS
                                     0571  1586 	SETRMA				; SET KS 2050 RMA/MAE ADDRESS
                    1C A4   50   B0  0571       	MOVW	R0,KS_W_RMA(R4)		; SET RMA REG
                            50   B4  0575       	CLRW	R0			; CLEAR LOW UBA BITS
                         FC 8F   78  0577       	ASHL	#<MAE_V_RMA-16>,-	; POSITION MAE BITS
                       50   50       057A       		R0,R0
                    18 A4   50   A8  057C       	BISW	R0,KS_W_MAE(R4)		; MASK RMA BITS INTO MAE
                                     0580       	
                            21   11  0580  1587 	BRB	230$			; CONTINUE WITH COMMON
                                     0582  1588 210$:
                    51   20 A5   D0  0582  1589 	MOVL	UCB$L_CRB(R5),R1	; GET CRB ADDRESS
                                     0586  1590 	NULLUBA	CRB$L_INTD+VEC$W_MAPREG(R1),-
                                     0586  1591 		CRB$L_INTD+VEC$B_NUMREG(R1),-
                                     0586  1592 		R0			; GET NULL UNIBUS MEM ADDRESS
                    50   36 A1   9A  0586       	MOVZBL	CRB$L_INTD+VEC$B_NUMREG(R1),R0		; COMPUTE UNIBUSS ADDRESS
                            50   D7  058A       	DECL	R0			; FOR HIGH UBA MAP REG
                    50   34 A1   A0  058C       	ADDW	CRB$L_INTD+VEC$W_MAPREG(R1),R0
                  50   50   09   78  0590       	ASHL	#9,R0,R0
                                     0594       	
                                     0594  1593 	SETRMA				; FILL RMA ADDRESS TO STOP
                    1C A4   50   B0  0594       	MOVW	R0,KS_W_RMA(R4)		; SET RMA REG
                            50   B4  0598       	CLRW	R0			; CLEAR LOW UBA BITS
                         FC 8F   78  059A       	ASHL	#<MAE_V_RMA-16>,-	; POSITION MAE BITS
                       50   50       059D       		R0,R0
                    18 A4   50   A8  059F       	BISW	R0,KS_W_MAE(R4)		; MASK RMA BITS INTO MAE
                                     05A3       	
                                     05A3  1594 					; INVALID READ TRANSFER
                                     05A3  1595 
                                     05A3  1596 230$:
                         3C A3   B0  05A3  1597 	MOVW	IRP$W_WCR(R3),-		; LOAD EXE LIST LENGTH TO WCR
                         1E A4       05A6  1598 		KS_W_WCR(R4)
                         3E A3   B0  05A8  1599 	MOVW	IRP$W_CDH(R3),-		; LOAD CDH FOR MEM FORMAT
                         08 A4       05AB  1600 		KS_W_CDH(R4)
                       FF1F CF   9F  05AD  1601 	PUSHAB	KS_PWR_LIO		; PWR FAIL ENTRY ADDRESS
                                     05B1  1602 
                                     05B1  1603 ; 
                                     05B1  1604 ; COMMON PROCESSING FOR ALL MODES FOLLOWING REGISTER
                                     05B1  1605 ; INITIALIZATION.
                                     05B1  1606 ; LOAD KS 2050 CTR FROM TEMPLATE AND PREPARE TO WAIT FOR
                                     05B1  1607 ; I/O COMPLETION.
                                     05B1  1608 ; 
                                     05B1  1609 
                                     05B1  1610 KS_START_COM:				; COMMON START I/O PROCESSING
                            50 8ED0  05B1  1611 	POPL	R0			; GET PWR FAIL RETURN ADDR
                                     05B4  1612 					; JUST IN CASE.
                                     05B4  1613 	ASSUME	SCT_M_IE,EQ,PCT_M_IE	; ASSUME SERIAL AND PARALLEL SAME
                                     05B4       	
                                     05B4  1614 	ASSUME	SCT_M_GO,EQ,PCT_M_GO
                                     05B4       	
                                 A8  05B4  1615 	BISW	#<SCT_M_IE!-		; SET INT ENABLE,
                                     05B5  1616 		SCT_M_GO>,-		; AND GO IN TEMPLATE CTR
KSDRIVER                        VAX/VMS KS 2050 SERIES CAMAC DRIVER      28-JAN-1983 14:41:34  VAX-11 Macro V03-00         Page  39
V05-001                         KS_START, START I/O ROUTINE              25-JAN-1983 10:19:55  SYS$SYSROOT:[CAMAC.SOURCE]KSDRIVER(1)

                       0041 8F       05B5  1617 		IRP$W_CTR(R3)
                         38 A3       05B8       
                                     05BA  1618 	DSBINT				; OLD IPL TO STACK, NEW=31
                       7E   12   DB  05BA       		MFPR	S^#PR$_IPL,-(SP)
                       12   1F   DA  05BD       		MTPR	#31,S^#PR$_IPL
                                     05C0       	
                         38 A3   B0  05C0  1619 	MOVW	IRP$W_CTR(R3),-		; LOAD CONTROL REG TO START
                            64       05C3  1620 		KS_W_CTR(R4)
                            05   E5  05C4  1621 	BBCC	#UCB$V_POWER,-		; CHECK IF PWR FAIL DURING
                      05 58 A5       05C6  1622 		UCB$W_STS(R5),50$	; CRITICAL PROCESSING
                                     05C9  1623 	ENBINT				; RESTORE OLD IPL
                       12   8E   DA  05C9       		MTPR	(SP)+,S^#PR$_IPL
                                     05CC       	
                            60   17  05CC  1624 	JMP	(R0)			; TRY AGAIN AT PWR FAIL ENTRY
                                     05CE  1625 50$:
                                     05CE  1626 	WFIKPCH	KS_TIMEOUT,#KS_P_TOMAX	; WAIT FOR INTERRUPT HERE
                            05   DD  05CE       		PUSHL	#KS_P_TOMAX
                   00000000'GF   16  05D0       		JSB	G^IOC$WFIKPCH
                               0035' 05D6       		.WORD	KS_TIMEOUT-.
                                     05D8       	
                                     05D8  1627 
                                     05D8  1628 ;
                                     05D8  1629 ; START_IO RESUMES HERE FOLOWING 'DONE'/'ERROR' INTERRUPT
                                     05D8  1630 ; AT DEVICE IPL. IMMEDIATELY FORK TO DEVICE FORK IPL TO
                                     05D8  1631 ; DISMISS THE INTERRUPT AND CONTINUE POST PROCESSING.
                                     05D8  1632 ;
                                     05D8  1633 
                                     05D8  1634 	IOFORK				; QUEUE DRIVER FORK PROCESS
                   00000000'GF   16  05D8       		JSB	G^EXE$IOFORK
                                     05DE       	
                                     05DE  1635 					; TO CONTINUE AND DISMISS THE INTERRUPT
                                     05DE  1636 70$:
                                     05DE  1637 	ASSUME	SCT_M_IE,EQ,PCT_M_IE	; ASSUME SERIAL AND PARALLEL SAME
                                     05DE       	
                       0040 8F   AA  05DE  1638 	BICW	#SCT_M_IE,-		; DISABLE DONE/ERR INTERRUPTS
                            64       05E2  1639 		KS_W_CTR(R4)
                                 B3  05E3  1641 	BITW	#<SCT_M_BGL!-		; TEST FOR UNIBUS ERRORS BGL+
                                     05E4  1642 		SCT_M_NXM>,-		; OR NON EXIST MEM
                  64   0300 8F       05E4  1643 		KS_W_CTR(R4)
                            10   13  05E8  1644 	BEQL	75$			; IF NEITHER, SKIP ERROR LOG
                            16   E1  05EA  1645 	BBC	#DEV$V_ELG,-		; ERR LOG ENABLED?
                      08 34 A5       05EC  1646 		UCB$L_DEVCHAR(R5),85$	; IF NOT, GO INC ERR CNT
                   00000000'GF   16  05EF  1647 	JSB	G^ERL$DEVICERR		; LOG ERROR FOR DEVICE
                            03   11  05F5  1648 	BRB	75$			; CONTINUE AFTER LOG
                                     05F7  1649 85$:
                         72 A5   B6  05F7  1650 	INCW	UCB$W_ERRCNT(R5)	; INCREMENT UNIT ERROR COUNT
                                     05FA  1651 75$:
                            03   E5  05FA  1653 	BBCC	#UCB$V_CANCEL,-		; CHECK IF CANCEL CLEAR
                      07 58 A5       05FC  1654 		UCB$W_STS(R5),80$	; AND SKIP IF SO FOUND
                  50   0830 8F   3C  05FF  1655 	MOVZWL	#SS$_CANCEL,R0		; SET CANCEL TERMINATION
                            3E   11  0604  1656 	BRB	KS_POSTIO		; COMMON POST PROCESSOR
                                     0606  1657 80$:
                       50   01   3C  0606  1658 	MOVZWL	#SS$_NORMAL,R0		; SET NORMAL TERMINATION
                            39   11  0609  1659 	BRB	KS_POSTIO		; COMMON POST PROCESSOR
                                     060B  1660 
                                     060B  1661 	.DSABL	LSB
                                     060B  1662 	.ENABL	LSB
KSDRIVER                        VAX/VMS KS 2050 SERIES CAMAC DRIVER      28-JAN-1983 14:41:34  VAX-11 Macro V03-00         Page  40
V05-001                         KS_START, START I/O ROUTINE              25-JAN-1983 10:19:55  SYS$SYSROOT:[CAMAC.SOURCE]KSDRIVER(1)

                                     060B  1663 ;+++
                                     060B  1664 ;
                                     060B  1665 ; KS_TIMEOUT: DEVICE TIMEOUT ROUTINE.
                                     060B  1666 ;
                                     060B  1667 ; KS_TIMEOUT is entered at device IPL with driver fork context.
                                     060B  1668 ;
                                     060B  1669 ; Inputs:
                                     060B  1670 ; 	R3	- UCB$L_FR3(IRP address)
                                     060B  1671 ;	R4	- UCB$L_FR4(KS 2050 CTR address)
                                     060B  1672 ;	R5	- UCB address.
                                     060B  1673 ;
                                     060B  1674 ;
                                     060B  1675 ;---
                                     060B  1676 
                                     060B  1677 KS_TIMEOUT:				; DEVICE TIMEOUT ROUTINE
                                     060B  1678 	ASSUME	SCT_M_IE,EQ,PCT_M_IE	; ASSUME SERIAL AND PARALLEL SAME
                                     060B       	
                                     060B  1679 	ASSUME	SCT_M_SSP,EQ,PCT_M_SSP
                                     060B       	
                  64   0040 8F   AA  060B  1680 	BICW	#SCT_M_IE,KS_W_CTR(R4)	; CLEAR KS 2050 INT ENABLE
                       64   20   A8  0610  1681 	BISW	#SCT_M_SSP,KS_W_CTR(R4)	; SET KS 2050 SUSPEND BIT
                                     0613  1682 	SETIPL	UCB$B_FIPL(R5)		; LOWER TO DRIVER FORK IPL
                    12   0B A5   DA  0613       		MTPR	UCB$B_FIPL(R5),S^#PR$_IPL
                                     0617       	
                            06   E5  0617  1683 	BBCC	#UCB$V_TIMOUT,-		; CHECK FOR DEVICE TIMEOUT
                      17 58 A5       0619  1684 		UCB$W_STS(R5),10$	; AND SKIP IF CLEAR
                            16   E1  061C  1686 	BBC	#DEV$V_ELG,-		; ERR LOG ENABLED?
                      08 34 A5       061E  1687 		UCB$L_DEVCHAR(R5),80$	; IF NOT, INC ERR COUNT
                   00000000'GF   16  0621  1688 	JSB	G^ERL$DEVICTMO		; LOG DEVICE TIMEOUT
                            03   11  0627  1689 	BRB	85$			; CONTINUE AFTER LOG
                                     0629  1690 80$:
                         72 A5   B6  0629  1691 	INCW	UCB$W_ERRCNT(R5)	; INC UNIT ERROR COUNT
                                     062C  1692 85$:
                  50   022C 8F   3C  062C  1694 	MOVZWL	#SS$_TIMEOUT,R0		; SET TIMEOUT STATUS
                            11   11  0631  1695 	BRB	KS_POSTIO		; COMMON POST PROCESSOR
                                     0633  1696 10$:
                            05   E5  0633  1697 	BBCC	#UCB$V_POWER,-		; CHECK PWR FAIL
                      07 58 A5       0635  1698 		UCB$W_STS(R5),20$	; AND SKIP IF CLEAR
                  50   0364 8F   3C  0638  1699 	MOVZWL	#SS$_POWERFAIL,R0	; IF SET, DECLARE PWR FAIL
                            05   11  063D  1700 	BRB	KS_POSTIO		; COMMON POST PROCESSOR
                                     063F  1701 20$:
                  50   0830 8F   3C  063F  1702 	MOVZWL	#SS$_CANCEL,R0		; SET CANCEL STATUS
                                     0644  1703 					; AS CATCH ALL
                                     0644  1704 	.DSABL	LSB
                                     0644  1705 	.ENABL	LSB
                                     0644  1706 ;+++
                                     0644  1707 ;
                                     0644  1708 ; KS_POSTIO: COMMON POST I/O PROCESSING
                                     0644  1709 ;
                                     0644  1710 ; KS_POSTIO is entered at device fork IPL in
                                     0644  1711 ; device driver context.
                                     0644  1712 ;
                                     0644  1713 ;---
                                     0644  1714 
                                     0644  1715 KS_POSTIO:				; COMMON I/O POST PROCESSOR
                                     0644  1716 	ASSUME	SCT_M_M,EQ,PCT_M_M	; ASSUME SERIAL AND PARALLEL SAME
                                     0644       	
KSDRIVER                        VAX/VMS KS 2050 SERIES CAMAC DRIVER      28-JAN-1983 14:41:34  VAX-11 Macro V03-00         Page  41
V05-001                         KS_START, START I/O ROUTINE              25-JAN-1983 10:19:55  SYS$SYSROOT:[CAMAC.SOURCE]KSDRIVER(1)

                       04   01   EF  0644  1717 	EXTZV	#SCT_V_M,#SCT_S_M,-	; GET MODE FROM IRP CTR
                    52   38 A3       0647  1718 		IRP$W_CTR(R3),R2	; TEMPLATE REGISTER
                    38 A3   50   D0  064A  1719 	MOVL	R0,IRP$L_IOST1(R3)	; SAVE TERMINATION STATUS
                  08   00   52   8F  064E  1720 	CASEB	R2,#0,#KS_P_MAXM	;  VECTOR TO MODE POST PROCESSOR
                                     0652  1721 10$:
                               0016' 0652  1722 	.WORD	KS_POST_PIO-10$		; MODE 0(PROGRAMMED I/O)
                               0050' 0654  1723 	.WORD	KS_POST_DIO-10$		; MODE 1(Q-SCAN; SINGLE DMA)
                               0050' 0656  1724 	.WORD	KS_POST_DIO-10$		; MODE 2(Q-STOP; SINGLE DMA)
                               0050' 0658  1725 	.WORD	KS_POST_DIO-10$		; MODE 3(STOP; SINGLE DMA)
                               0092' 065A  1726 	.WORD	KS_POST_LIO-10$		; MODE 4(LIST; MULTIPLE DMA)
                               0012' 065C  1727 	.WORD	KS_POST_BUG-10$		; MODE 5 INVALID
                               0012' 065E  1728 	.WORD	KS_POST_BUG-10$		; MODE 6 INVALID
                               0012' 0660  1729 	.WORD	KS_POST_BUG-10$		; MODE 7 INVALID
                               0050' 0662  1730 	.WORD	KS_POST_DIO-10$		; MODE 8(Q-REP; SINGLE DMA)
                                     0664  1731 
                                     0664  1732 ;
                                     0664  1733 ; SAFETY VALVE
                                     0664  1734 ;
                                     0664  1735 KS_POST_BUG:
                                     0664  1736 	BUG_CHECK	HALT,FATAL	; BUG CHECK HERE IF INVALID MODE
                               FEFF  0664       		.WORD	^XFEFF
                                     0668       	
                                     0668  1737 
                                     0668  1738 KS_POST_PIO:				; PROG I/O POST PROCESSOR
                                     0668  1739 
                         38 A3   E8  0668  1740 	BLBS	IRP$L_IOST1(R3),-	; IF SUCCESSFUL, CONTINUE
                            06       066B  1741 		20$
                         3C A3   D4  066C  1742 	CLRL	IRP$L_IOST2(R3)		; CLEAR DEVICE INFO
                          0113   31  066F  1743 	BRW	KS_REQCOM		; DECLARE REQUEST COMPLETE
                                     0672  1744 20$:
                            01   E1  0672  1745 	BBC	#IRP$V_FUNC,-		; CHECK IF PIO READ
                      14 2A A3       0674  1746 		IRP$W_STS(R3),30$	; AND SKIP IF NOT
                         0A A4   B0  0677  1747 	MOVW	KS_W_DLR(R4),-		; SAVE DATA LOW TO IRP
                         3C A3       067A  1748 		IRP$W_DLR(R3)
                         08 A4   B0  067C  1749 	MOVW	KS_W_CDH(R4),-		; AND DATA HIGH TOO
                         3E A3       067F  1750 		IRP$W_CDH(R3)
                         3F A3   94  0681  1751 	CLRB	IRP$W_CDH+1(R3)		; ZERO CRATE NUMBER
                    51   3C A3   9E  0684  1752 	MOVAB	IRP$W_DLR(R3),R1	; GET DATA BUFFER ADDRESS
                          010F   30  0688  1753 	BSBW	KS_MOVTOUSR		; MOVE DATA TO USER BUFFER
                                     068B  1754 30$:
                            64   3C  068B  1755 	MOVZWL	KS_W_CTR(R4),-		; GET CONTROL REG
                         38 A3       068D  1756 		IRP$L_IOST1(R3)		; FOR IOSB
                            01   A8  068F  1757 	BISW	#SS$_NORMAL,-		; SET SUCCESS BIT
                         38 A3       0691  1758 		IRP$L_IOST1(R3)
                         32 A3   F0  0693  1759 	INSV	IRP$W_BCNT(R3),-	; RETURN BYTE COUNT
                       10   10       0696  1760 		#16,#16,-		; FOR IOSB
                         38 A3       0698  1761 		IRP$L_IOST1(R3)
                         02 A4   3C  069A  1763 	MOVZWL	KS_W_SES(R4),-		; GET ERR/STATUS REG FOR
                         3C A3       069D  1764 		IRP$L_IOST2(R3)		; IOSB RETURN
                          00E3   31  069F  1770 	BRW	KS_REQCOM		; PIO REQUEST COMPLETE
                                     06A2  1771 
                                     06A2  1772 KS_POST_DIO:				; MODE1,2,3 POST PROCESSOR
                                     06A2  1773 
                                     06A2  1774 	PURDPR				; PURGE BUFFERED DATA PATH
                   00000000'GF   16  06A2       		JSB	G^IOC$PURGDATAP
                                     06A8       	
                                     06A8  1775 	RELMPR				; RELEASE UBA MAP REGS
KSDRIVER                        VAX/VMS KS 2050 SERIES CAMAC DRIVER      28-JAN-1983 14:41:34  VAX-11 Macro V03-00         Page  42
V05-001                         KS_START, START I/O ROUTINE              25-JAN-1983 10:19:55  SYS$SYSROOT:[CAMAC.SOURCE]KSDRIVER(1)

                   00000000'GF   16  06A8       		JSB	G^IOC$RELMAPREG
                                     06AE       	
                                     06AE  1776 	RELDPR				; RELEASE DATA PATH
                   00000000'GF   16  06AE       		JSB	G^IOC$RELDATAP
                                     06B4       	
                    53   4C A5   D0  06B4  1777 	MOVL	UCB$L_IRP(R5),R3	; GET ADDR OF IRP
                                     06B8  1778 					; PURDPR CLOBBERS IT!!!
                         38 A3   E8  06B8  1779 	BLBS	IRP$L_IOST1(R3),-	; IF SUCCESS, CONTINUE
                            06       06BB  1780 		110$
                         3C A3   D4  06BC  1781 	CLRL	IRP$L_IOST2(R3)		; CLEAR DEVICE INFO
                          00C3   31  06BF  1782 	BRW	KS_REQCOM		; COMPLETE CAMAC REQUEST
                                     06C2  1783 110$:
                            64   3C  06C2  1784 	MOVZWL	KS_W_CTR(R4),-		; GET CONTROL REG FOR
                         38 A3       06C4  1785 		IRP$L_IOST1(R3)		; IOSB RETURN
                            01   A8  06C6  1786 	BISW	#SS$_NORMAL,-		; SET SUCCESS BIT
                         38 A3       06C8  1787 		IRP$L_IOST1(R3)
                    50   1E A4   B0  06CA  1788 	MOVW	KS_W_WCR(R4),R0		; GET NEG OF WORD COUNT REG
                    50   3C A3   A2  06CE  1789 	SUBW	IRP$W_WCR(R3),R0	; CALC NET WORD XFER
                  50   50   01   78  06D2  1790 	ASHL	#1,R0,R0		; CONVERT TO BYTE LENGTH
                  10   10   50   F0  06D6  1791 	INSV	R0,#16,#16,-		; INSERT BYTE COUNT FOR
                         38 A3       06DA  1792 		IRP$L_IOST1(R3)		; IOSB RETURN
                         02 A4   3C  06DC  1794 	MOVZWL	KS_W_SES(R4),-		; GET ERR/STATUS REG FOR
                         3C A3       06DF  1795 		IRP$L_IOST2(R3)		; IOSB RETURN
                          00A1   31  06E1  1801 	BRW	KS_REQCOM		; COMPLETE DIO OPERATION
                                     06E4  1802 
                                     06E4  1803 KS_POST_LIO:				; MODE 4 POST PROCESSOR
                                     06E4  1804 
                    51   20 A5   D0  06E4  1805 	MOVL	UCB$L_CRB(R5),R1	; LOCATE CRB
                       8000 8F   AA  06E8  1806 	BICW	#VEC$M_MAPLOCK,-	; CLEAR ALLOCATION INDICATOR
                         44 A3       06EC  1807 		IRP$L_DPRMAP(R3)	; BEFORE LOADING TO CRB
                         44 A3   D0  06EE  1808 	MOVL	IRP$L_DPRMAP(R3),-	; RESTORE EXE LIST UBA PARMS
                         34 A1       06F1  1809 		CRB$L_INTD+VEC$W_MAPREG(R1)
                                     06F3  1810 	PURDPR				; PURGE EXE LIST DATA PATH
                   00000000'GF   16  06F3       		JSB	G^IOC$PURGDATAP
                                     06F9       	
                                     06F9  1811 	RELMPR				; RELEASE EXE LIST MAP REGS
                   00000000'GF   16  06F9       		JSB	G^IOC$RELMAPREG
                                     06FF       	
                                     06FF  1812 	RELDPR				; RELEASE EXE LIST DATA PATH
                   00000000'GF   16  06FF       		JSB	G^IOC$RELDATAP
                                     0705       	
                    53   4C A5   D0  0705  1813 	MOVL	UCB$L_IRP(R5),R3	; GET CURRENT IRP ADDRESS
                            0B   E1  0709  1814 	BBC	#IRP$V_EXTEND,-		; IF NO IRP EXTENSION,
                      29 2A A3       070B  1815 		IRP$W_STS(R3),210$	; SKIP REPLY LIST PROCESSING
                    51   20 A5   D0  070E  1816 	MOVL	UCB$L_CRB(R5),R1	; GET CRB ADDRESS
                    52   54 A3   D0  0712  1817 	MOVL	IRP$L_EXTEND(R3),R2	; GET EXTENSION ADDRESS
                       8000 8F   AA  0716  1818 	BICW	#VEC$M_MAPLOCK,-	; CLEAR ALLOCATION INDICATOR
                         10 A2       071A  1819 		IRPE$L_DPRMAP(R2)	; BEFORE LOADING TO CRB
                         10 A2   D0  071C  1820 	MOVL	IRPE$L_DPRMAP(R2),-	; RESTORE REPLY LIST UBA PARMS
                         34 A1       071F  1821 		CRB$L_INTD+VEC$W_MAPREG(R1)
                                     0721  1822 	PURDPR				; PURGE REPLY LIST DPR
                   00000000'GF   16  0721       		JSB	G^IOC$PURGDATAP
                                     0727       	
                                     0727  1823 	RELMPR				; RELEASE REPLY LIST MAP REGS
                   00000000'GF   16  0727       		JSB	G^IOC$RELMAPREG
                                     072D       	
                                     072D  1824 	RELDPR				; RELEASE REP LST DPR
KSDRIVER                        VAX/VMS KS 2050 SERIES CAMAC DRIVER      28-JAN-1983 14:41:34  VAX-11 Macro V03-00         Page  43
V05-001                         KS_START, START I/O ROUTINE              25-JAN-1983 10:19:55  SYS$SYSROOT:[CAMAC.SOURCE]KSDRIVER(1)

                   00000000'GF   16  072D       		JSB	G^IOC$RELDATAP
                                     0733       	
                    53   4C A5   D0  0733  1825 	MOVL	UCB$L_IRP(R5),R3	; RESTORE IRP ADDRESS
                                     0737  1826 210$:
                         38 A3   E8  0737  1827 	BLBS	IRP$L_IOST1(R3),-	; IF SUCCESS, CONTINUE
                            06       073A  1828 		230$
                         3C A3   D4  073B  1829 	CLRL	IRP$L_IOST2(R3)		; CLEAR DEVICE INFO
                          0044   31  073E  1830 	BRW	KS_REQCOM		; REQUEST COMPLETE
                                     0741  1831 230$:
                            64   3C  0741  1832 	MOVZWL	KS_W_CTR(R4),-		; GET CONTROL REG
                         38 A3       0743  1833 		IRP$L_IOST1(R3)		; FOR IOSB
                            01   A8  0745  1834 	BISW	#SS$_NORMAL,-		; SET SUCCESS BIT
                         38 A3       0747  1835 		IRP$L_IOST1(R3)
                    50   1E A4   3C  0749  1836 	MOVZWL	KS_W_WCR(R4),R0		; FINAL WORD COUNT REG
                    50   3C A3   A2  074D  1837 	SUBW	IRP$W_WCR(R3),R0	; CALC NET XFER WORD COUNT
                  50   50   01   78  0751  1838 	ASHL	#1,R0,R0		; CONVERT TO BYTE COUNT
                  10   10   52   F0  0755  1839 	INSV	R2,#16,#16,-		; INSERT EXE LIST BYTE COUNT
                         38 A3       0759  1840 		IRP$L_IOST1(R3)		; FOR IOSB
                         02 A4   3C  075B  1842 	MOVZWL	KS_W_SES(R4),-		; GET ERR/STATUS REG FOR
                         3C A3       075E  1843 		IRP$L_IOST2(R3)		; IOSB RETURN
                            0B   E1  0760  1849 	BBC	#IRP$V_EXTEND,-		; IF NO REPLY LIST, SKIP
                      20 2A A3       0762  1850 		IRP$W_STS(R3),220$	; LENGTH CALC
                    50   18 A4   B0  0765  1851 	MOVW	KS_W_MAE(R4),R0		; GET MAE REG FINAL STATE
                    51   1C A4   3C  0769  1852 	MOVZWL	KS_W_RMA(R4),R1		; AND RMA REG FINAL STATE
                       02   0C   EF  076D  1853 	EXTZV	#MAE_V_RMA,#MAE_S_RMA,-	; GET RMA BITS FROM MAE
                       50   50       0770  1854 		R0,R0
                  02   10   50   F0  0772  1855 	INSV	R0,#16,#MAE_S_RMA,R1	; FORM UNIBUS RMA
                            51       0776       
                    50   54 A3   D0  0777  1856 	MOVL	IRP$L_EXTEND(R3),R0	; GET EXTENSION ADDRESS
                    51   0C A0   C2  077B  1857 	SUBL	IRPE$L_UBADDR(R0),R1	; CALC REPLY LIST XFER
                  10   10   51   F0  077F  1858 	INSV	R1,#16,#16,-		; INSERT REP LIST BYTE COUNT
                         3C A3       0783  1859 		IRP$L_IOST2(R3)		; FOR IOSB
                                     0785  1860 220$:
                                     0785  1861 	.DSABL	LSB
                                     0785  1862 	.ENABL	LSB
                                     0785  1863 ;+++
                                     0785  1864 ;
                                     0785  1865 ; KS_REQCOM: CAMAC I/O REQUEST COMPLETE PROCESSING
                                     0785  1866 ;
                                     0785  1867 ;---
                                     0785  1868 
                                     0785  1869 KS_REQCOM:
                                     0785  1870 	RELCHAN				; RELEASE CONTROLLER
                   00000000'GF   16  0785       		JSB	G^IOC$RELCHAN
                                     078B       	
                                     078B  1871 
                    50   38 A3   7D  078B  1872 	MOVQ	IRP$L_IOST1(R3),R0	; GET IOSB IN R0,R1 FOR REQCOM
                  51   0100 8F   AA  078F  1873 	BICW	#KS_M_PH,R1		; INDICATE SERIAL IOSB
                                     0794  1874 	REQCOM				; I/O REQUEST COMPLETE
                   00000000'GF   17  0794       		JMP	G^IOC$REQCOM
                                     079A       	
                                     079A  1875 
                                     079A  1876 	.DSABL	LSB
                                     079A  1877 	.ENABL	LSB
                                     079A  1878 
                                     079A  1879 ;++
                                     079A  1880 ; KS_MOVTOUSR: MOVE DATA FROM SYSTEM ACCESSABLE BUFFER TO USER'S
KSDRIVER                        VAX/VMS KS 2050 SERIES CAMAC DRIVER      28-JAN-1983 14:41:34  VAX-11 Macro V03-00         Page  44
V05-001                         KS_START, START I/O ROUTINE              25-JAN-1983 10:19:55  SYS$SYSROOT:[CAMAC.SOURCE]KSDRIVER(1)

                                     079A  1881 ;		BUFFER.
                                     079A  1882 ;
                                     079A  1883 ; Inputs:
                                     079A  1884 ;	R1	- address of data buffer to move from,
                                     079A  1885 ;	R5	- address of UCB.
                                     079A  1886 ; Implicit inputs:
                                     079A  1887 ;	UCB$L_SVAPTE- SVA of PTE for first page of user buffer,
                                     079A  1888 ;	UCB$W_BOFF- byte offset in first page of buffer,
                                     079A  1889 ;	UCB$W_BCNT- byte count to transfer,
                                     079A  1890 ;	UCB$L_SVPN- system VPN to use to double map PTE's.
                                     079A  1891 ;
                                     079A  1892 ; Outputs:
                                     079A  1893 ;	R1 points 1 beyond the end of the input buffer,
                                     079A  1894 ;	R0 is destroyed.
                                     079A  1895 ;	UCB$L_SVAPTE points to last PTE referrenced,
                                     079A  1896 ;	UCB$W_BOFF consistent with last page referrenced.
                                     079A  1897 ;--
                                     079A  1898 
                                     079A  1899 KS_MOVTOUSR:
                            52   DD  079A  1900 	PUSHL	R2			; SAVE WORK REG
                    52   6E A5   3C  079C  1901 	MOVZWL	UCB$W_BCNT(R5),R2	; GET BYTE COUNT
                                     07A0  1902 10$:
                   00000000'GF   16  07A0  1903 	JSB	G^IOC$FILSPT		; LOAD USER PTE FOR ACCESS
                                     07A6  1904 					; FROM SVPN
                    50   6C A5   A8  07A6  1905 	BISW	UCB$W_BOFF(R5),R0	; MASK IN BYTE OFFSET
                                     07AA  1906 20$:
                         04 52   F4  07AA  1907 	SOBGEQ	R2,30$			; LOOP UNTIL ALL TRANSFERRED
                            52 8ED0  07AD  1908 	POPL	R2			; RESTORE WORK REG
                                 05  07B0  1909 	RSB
                                     07B1  1910 30$:
                       80   81   90  07B1  1911 	MOVB	(R1)+,(R0)+		; MOVE BYTE TO USER BUFFER
                  50   01FF 8F   B3  07B4  1912 	BITW	#^X1FF,R0		; PAGE BOUNDARY?
                            EF   12  07B9  1913 	BNEQ	20$			; IF NOT 0, NOT THE CASE
                    68 A5   04   C0  07BB  1914 	ADDL	#4,UCB$L_SVAPTE(R5)	; ADVANCE TO NEXT PAGE
                         6C A5   B4  07BF  1915 	CLRW	UCB$W_BOFF(R5)		; BYTE OFFSET=0
                            DC   11  07C2  1916 	BRB	10$			; RELOAD PTE FOR SVPN
                                     07C4  1917 	.DSABL	LSB
KSDRIVER                        VAX/VMS KS 2050 SERIES CAMAC DRIVER      28-JAN-1983 14:41:34  VAX-11 Macro V03-00         Page  45
V05-001                         KS_START, START I/O ROUTINE              25-JAN-1983 10:19:55  SYS$SYSROOT:[CAMAC.SOURCE]KSDRIVER(1)

                                     07C4  1919 	.ENABL	LSB
                                     07C4  1920 	.SBTTL	KS_ISRS KS 2050 INTERRUPT SERVICE ROUTINES
                                     07C4  1921 
                                     07C4  1922 ;++
                                     07C4  1923 ; KS_ISR_DONE: ISR FOR KS 2050 'DONE' INTERRUPT
                                     07C4  1924 ; KS_ISR_ERR: ISR FOR KS 2050 'ERROR' INTERRUPT
                                     07C4  1925 ; KS_ISR_DEMAND: ISR FOR KS 2050 'DEMAND' INTERRUPT
                                     07C4  1926 ;
                                     07C4  1927 ; Functional description:
                                     07C4  1928 ;
                                     07C4  1929 ;	T.B.S.
                                     07C4  1930 ;
                                     07C4  1931 ; Inputs:
                                     07C4  1932 ;
                                     07C4  1933 ;	 0(SP)	- pointer to the address of the IDB (interrupt data
                                     07C4  1934 ;		  block)
                                     07C4  1935 ;	 4(SP)	- saved R0
                                     07C4  1936 ;	 8(SP)	- saved R1
                                     07C4  1937 ;	12(SP)	- saved R2
                                     07C4  1938 ;	16(SP)	- saved R3
                                     07C4  1939 ;	20(SP)	- saved R4
                                     07C4  1940 ;	24(SP)	- saved R5
                                     07C4  1941 ;	28(SP)	- saved PSL (program status longword)
                                     07C4  1942 ;	32(SP)	- saved PC
                                     07C4  1943 ;
                                     07C4  1944 ;	The IDB contains the CSR address and the UCB address.
                                     07C4  1945 ;
                                     07C4  1946 ; Outputs:
                                     07C4  1947 ;
                                     07C4  1948 ;	The routine must preserve all registers except R0-R5.
                                     07C4  1949 ;
                                     07C4  1950 ;--
                                     07C4  1951 
                                     07C4  1952 KS_ISR_DONE:				; KS 2050 'DONE' ISR
                                     07C4  1953 KS_ISR_ERR:				; KS 2050 'ERROR' ISR
                       54   9E   D0  07C4  1954 	MOVL	@(SP)+,R4		; Get address of IDB and remove
                                     07C7  1955 					; pointer from stack.
                    55   04 A4   D0  07C7  1956 	MOVL	IDB$L_OWNER(R4),R5	; Get address of device owner's
                                     07CB  1957 					; UCB.
                       54   64   D0  07CB  1958 	MOVL	IDB$L_CSR(R4),R4	; Get address of device's CSR.
                            01   E5  07CE  1959 	BBCC	#UCB$V_INT,-		; If device does not expect
                         58 A5       07D0  1960 		UCB$W_STS(R5),-		; interrupt, dismiss it.
                            2E       07D2  1961 		DISMISS_INTERRUPT
                                     07D3  1962 
                                     07D3  1963 ;
                                     07D3  1964 ; 'DONE'/'ERROR' INTERRUPT WAS EXPECTED. RETURN CONTROL TO
                                     07D3  1965 ; DRIVER START_IO ROUTINE AT DEVICE IPL TO HANDLE DEVICE
                                     07D3  1966 ; COMPLETION STATUS ANALYSIS.
                                     07D3  1967 ;
                                     07D3  1968 ;
                    53   10 A5   D0  07D3  1969 	MOVL	UCB$L_FR3(R5),R3	; Restore driver's R3 (use a
                                     07D7  1970 					; MOVQ to restore R3-R4).
                         0C B5   16  07D7  1971 	JSB	@UCB$L_FPC(R5)		; Call driver at interrupt
                                     07DA  1972 					; wait address.
                                     07DA  1973 
                            25   11  07DA  1974 	BRB	DISMISS_INTERRUPT	; GO DISMISS THE INTERRUPT
                                     07DC  1975 
KSDRIVER                        VAX/VMS KS 2050 SERIES CAMAC DRIVER      28-JAN-1983 14:41:34  VAX-11 Macro V03-00         Page  46
V05-001                         KS_ISRS KS 2050 INTERRUPT SERVICE ROUTIN 25-JAN-1983 10:19:55  SYS$SYSROOT:[CAMAC.SOURCE]KSDRIVER(1)

                                     07DC  1976 KS_ISR_DEMAND:
                                     07DC  1977 
                       54   9E   D0  07DC  1978 	MOVL	@(SP)+,R4		; GET IDB ADDRESS AND REMOVE
                                     07DF  1979 					; POINTER FROM STACK
                       51   64   D0  07DF  1980 	MOVL	IDB$L_CSR(R4),R1	; GET CSR ADDRESS
                                     07E2  1981 
                       0040 8F   AA  07E2  1983 	BICW	#DCR_M_SDIE,-		; DISABLE FURTHER DEMAND INTERRUPTS
                         0E A1       07E6  1984 		KS_W_DCR(R1)
                                     07E8  1990 
                    55   14 A4   D0  07E8  1991 	MOVL	IDB$L_UCBLST(R4),R5	; GET HIGHWAY UCB ADDRESS
                       0098 C5   D5  07EC  1992 	TSTL	UCB$L_DMDAST(R5)	; DEMAND AST LIST VALID?
                            0F   13  07F0  1993 	BEQL	DISMISS_INTERRUPT	; IF 0, NO ACB PRESENT
                  54   0098 C5   DE  07F2  1994 	MOVAL	UCB$L_DMDAST(R5),R4	; GET AST LISTHEAD ADDRESS
                   00000000'GF   16  07F7  1995 	JSB	G^COM$DELATTNAST	; DELIVER DEMAND AST LIST
                            02   11  07FD  1996 	BRB	DISMISS_INTERRUPT	; GO DISMISS INTERRUPT
                                     07FF  1997 
                                     07FF  1998 KS_ISR_DISMISS:
                            8E   D5  07FF  1999 	TSTL	(SP)+			; POP IDB ADDRESS FROM STACK
                                     0801  2000 ;
                                     0801  2001 ; Dismiss the interrupt.
                                     0801  2002 ;
                                     0801  2003 
                                     0801  2004 DISMISS_INTERRUPT:			; Dismiss interrupt.
                            3F   BA  0801  2005 	POPR	#^M<R0,R1,R2,R3,R4,R5>	; Restore R0-R5
                                 02  0803  2006 	REI				; Return from interrupt.
                                     0804  2007 	.DSABL	LSB
KSDRIVER                        VAX/VMS KS 2050 SERIES CAMAC DRIVER      28-JAN-1983 14:41:34  VAX-11 Macro V03-00         Page  47
V05-001                         KS_ISRS KS 2050 INTERRUPT SERVICE ROUTIN 25-JAN-1983 10:19:55  SYS$SYSROOT:[CAMAC.SOURCE]KSDRIVER(1)

                                     0804  2009 	.ENABL	LSB
                                     0804  2010 	.SBTTL	KS_CANCEL, Cancel I/O routine
                                     0804  2011 
                                     0804  2012 ;++
                                     0804  2013 ; KS_CANCEL: Cancels an I/O operation in progress
                                     0804  2014 ;
                                     0804  2015 ; Functional description:
                                     0804  2016 ;
                                     0804  2017 ;	This routine calls IOC$CANCELIO to set the cancel bit in the
                                     0804  2018 ;	UCB status word if:
                                     0804  2019 ;
                                     0804  2020 ;		the device is busy,
                                     0804  2021 ;		the IRP's process ID matches the cancel process ID,
                                     0804  2022 ;		the IRP channel matches the cancel channel.
                                     0804  2023 ;
                                     0804  2024 ;	If IOC$CANCELIO sets the cancel bit, then this driver routine
                                     0804  2025 ;	does device-dependent cancel I/O fixups.
                                     0804  2026 ;
                                     0804  2027 ; Inputs:
                                     0804  2028 ;
                                     0804  2029 ;	R2	- negated value of the channel index number
                                     0804  2030 ;	R3	- address of the current IRP (I/O request packet)
                                     0804  2031 ;	R4	- address of the PCB (process control block) for the
                                     0804  2032 ;		  process canceling I/O
                                     0804  2033 ;	R5	- address of the UCB (unit control block)
                                     0804  2034 ;
                                     0804  2035 ; Outputs:
                                     0804  2036 ;
                                     0804  2037 ;	The routine must preserve all registers except R0-R3.
                                     0804  2038 ;
                                     0804  2039 ;	The routine may set the UCB$M_CANCEL bit in UCB$W_STS.
                                     0804  2040 ;
                                     0804  2041 ;--
                                     0804  2042 
                                     0804  2043 KS_CANCEL:				; Cancel an I/O operation
                   00000000'GF   16  0804  2044 	JSB	G^IOC$CANCELIO		; CHECK IF CURRENT IRP INCLUDED
                            03   E1  080A  2045 	BBC	#UCB$V_CANCEL,-		; IF NOT, RETURN
                      10 58 A5       080C  2046 		UCB$W_STS(R5),10$	; ELSE
                    51   20 A5   D0  080F  2047 	MOVL	UCB$L_CRB(R5),R1	; GET CRB ADDRESS
                         2C B1   D0  0813  2048 	MOVL	@CRB$L_INTD+VEC$L_IDB(R1),-
                            51       0816  2049 		R1			; GET CTR ADDRESS FOR KS 2050
                                     0817  2050 	ASSUME	SCT_M_IE,EQ,PCT_M_IE	; ASSUME SERIAL AND PARALLEL SAME
                                     0817       	
                                     0817  2051 	ASSUME	SCT_M_SSP,EQ,PCT_M_SSP
                                     0817       	
                  61   0040 8F   AA  0817  2052 	BICW	#SCT_M_IE,KS_W_CTR(R1)	; CLEAR INT ENABLE
                       61   20   A8  081C  2053 	BISW	#SCT_M_SSP,KS_W_CTR(R1)	; SET SUSPEND BIT
                                     081F  2054 					; AND LET START I/O SORT IT OUT!
                                     081F  2055 10$:
                  51   0094 C5   D0  081F  2056 	MOVL	UCB$L_HSU(R5),R1	; GET HSU ADDRESS
                            0D   13  0824  2057 	BEQL	20$			; LINKED?? INVALID I/O DATA BASE IF NOT
                            13   E1  0826  2058 	BBC	#DEV$V_MNT,-		; CAMAC ACP MOUNTED?
                      08 34 A1       0828  2059 		UCB$L_DEVCHAR(R1),20$	; IF NOT, EXIT CANCEL I/O
                            15   E0  082B  2060 	BBS	#DEV$V_DMT,-		; MARKED FOR DISMOUNT?
                      03 34 A1       082D  2061 		UCB$L_DEVCHAR(R1),20$	; IF SO, EXIT CANCEL I/O
                          0001   30  0830  2062 	BSBW	KS_QCANIRP		; IF SO, QUEUE CANCEL IRP TO CAMAC ACP
                                     0833  2063 20$:
KSDRIVER                        VAX/VMS KS 2050 SERIES CAMAC DRIVER      28-JAN-1983 14:41:34  VAX-11 Macro V03-00         Page  48
V05-001                         KS_CANCEL, Cancel I/O routine            25-JAN-1983 10:19:55  SYS$SYSROOT:[CAMAC.SOURCE]KSDRIVER(1)

                                 05  0833  2064 	RSB				; RETURN 
                                     0834  2065 	.DSABL	LSB
KSDRIVER                        VAX/VMS KS 2050 SERIES CAMAC DRIVER      28-JAN-1983 14:41:34  VAX-11 Macro V03-00         Page  49
V05-001                         KS_QCANIRP, QUEUE CANCEL IRP TO CAMAC AC 25-JAN-1983 10:19:55  SYS$SYSROOT:[CAMAC.SOURCE]KSDRIVER(1)

                                     0834  2067 	.SBTTL	KS_QCANIRP, QUEUE CANCEL IRP TO CAMAC ACP
                                     0834  2068 	.ENABL	LSB
                                     0834  2069 
                                     0834  2070 ;++
                                     0834  2071 ;
                                     0834  2072 ; KS_QCANIRP: QUEUE CANCEL IRP TO CAMAC ACP IF UNIT MOUNTED.
                                     0834  2073 ;
                                     0834  2074 ; Inputs:
                                     0834  2075 ;	R2	- channel index(negated),
                                     0834  2076 ;	R4	- current PCB address,
                                     0834  2077 ;	R5	- address of UCB.
                                     0834  2078 ;
                                     0834  2079 ;
                                     0834  2080 ; Outputs:
                                     0834  2081 ;
                                     0834  2082 ;--
                                     0834  2083 
                                     0834  2084 KS_QCANIRP:
                            2C   BB  0834  2085 	PUSHR	#^M<R2,R3,R5>		; SAVE WORK REGS
                          FA3B   30  0836  2086 	BSBW	KS_ALOIRP		; ALLOCATE CANCEL IRP
                         3D 50   E9  0839  2087 	BLBC	R0,90$			; IF FAILURE, RETURN
                       53   52   D0  083C  2088 	MOVL	R2,R3			; USE R3 TO REFERENCE IRP
                            0A   90  083F  2089 	MOVB	#DYN$C_IRP,-		; SET STRUC TYPE
                         0A A3       0841  2090 		IRP$B_TYPE(R3)
                            06   90  0843  2091 	MOVB	#IPL$_QUEUEAST,-	; SET FORK IPL
                         0B A3       0845  2092 		IRP$B_RMOD(R3)
                            50   DC  0847  2093 	MOVPSL	R0			; GET PSL VALUE
                   00000000'8F   EF  0849  2094 	EXTZV	#PSL$V_PRVMOD,#PSL$S_PRVMOD,-
                         00'8F       084F       
                    38 A3   50       0851  2095 		R0,IRP$L_MEDIA(R3)	; SAVE FOR AFTER FORK
                         60 A4   D0  0854  2096 	MOVL	PCB$L_PID(R4),-		; SAVE PCB PID FOR AFTER FORK
                         3C A3       0857  2097 		IRP$L_MEDIA+4(R3)
                            34   B0  0859  2098 	MOVW	#IO$_DEACCESS,-
                         20 A3       085B  2099 		IRP$W_FUNC(R3)		; SET FUNCTION CODE
                    22 A3   1F   90  085D  2100 	MOVB	#31,IRP$B_EFN(R3)	; USE SYSTEM EVENT FLAG NUMBER
                         2F A4   90  0861  2101 	MOVB	PCB$B_PRIB(R4),-	; PROCESS BASE PRI
                         23 A3       0864  2102 		IRP$B_PRI(R3)
                         24 A3   D4  0866  2103 	CLRL	IRP$L_IOSB(R3)		; NO IOSB
                    28 A3   52   B0  0869  2104 	MOVW	R2,IRP$W_CHAN(R3)	; SAVE CHANNEL INDEX
                         2A A3   B4  086D  2105 	CLRW	IRP$W_STS(R3)		; CLEAR IRP STATUS
                    1C A3   55   D0  0870  2106 	MOVL	R5,IRP$L_UCB(R3)	; SAVE UCB ADDRESS
                       55   53   D0  0874  2107 	MOVL	R3,R5			; SET FORK BLOCK=IRP
                            03   10  0877  2108 	BSBB	KS_FORKACP		; QUEUE FORK AT IPL$_QUEAST
                                     0879  2109 90$:
                            2C   BA  0879  2110 	POPR	#^M<R2,R3,R5>		; RESTORE WORK REGS
                                 05  087B  2111 	RSB				; RETURN TO CANCEL I/O
                                     087C  2112 	.DSABL	LSB
                                     087C  2113 	.ENABL	LSB
                                     087C  2114 
                                     087C  2115 ;++
                                     087C  2116 ;
                                     087C  2117 ; KS_FORKACP: FORK PROCESS TO QUEUE IRP TO ACP.
                                     087C  2118 ;
                                     087C  2119 ; Inputs:
                                     087C  2120 ;	R3	- address of IRP,
                                     087C  2121 ;	R5	- address of IRP(to be used as fork block first).
                                     087C  2122 ;
KSDRIVER                        VAX/VMS KS 2050 SERIES CAMAC DRIVER      28-JAN-1983 14:41:34  VAX-11 Macro V03-00         Page  50
V05-001                         KS_QCANIRP, QUEUE CANCEL IRP TO CAMAC AC 25-JAN-1983 10:19:55  SYS$SYSROOT:[CAMAC.SOURCE]KSDRIVER(1)

                                     087C  2123 ; Outputs:
                                     087C  2124 ;
                                     087C  2125 ;--
                                     087C  2126 
                                     087C  2127 KS_FORKACP:
                                     087C  2128 	FORK				; CREATE FORK PROCESS	
                   00000000'GF   16  087C       		JSB	G^EXE$FORK
                                     0882       	
                                     0882  2129 ;
                                     0882  2130 ;	FORK PROCESS DISPATCHED HERE
                                     0882  2131 ;
                   00000038'EF   90  0882  2132 	MOVB	IRP$L_MEDIA,-		; SET UP IRP ACCESS MODE
                         0B A3       0888  2133 		IRP$B_RMOD(R3)
                         3C A3   D0  088A  2134 	MOVL	IRP$L_MEDIA+4(R3),-	; SET UP IRP PID
                         0C A3       088D  2135 		IRP$L_PID(R3)
                         10 A3   7C  088F  2136 	CLRQ	IRP$L_AST(R3)		; ZAP AST+AST PARM FIELDS
                    52   1C A3   D0  0892  2137 	MOVL	IRP$L_UCB(R3),R2	; GET UCB ADDRESS
                  52   0094 C2   D0  0896  2138 	MOVL	UCB$L_HSU(R2),R2	; LOCATE HSU FROM UCB
                    50   30 A2   D0  089B  2139 	MOVL	UCB$L_VCB(R2),R0	; LOCATE VCB FROM UCB
                         0C A0   B6  089F  2140 	INCW	VCB$W_TRANS(R0)		; INCREMENT TRANSACTION COUNT
                   00000000'GF   16  08A2  2141 	JSB	G^IOC$WAKACP		; QUEUE IRP TO CAMAC ACP
                                     08A8  2142 					; R2=UCB ADDRESS,
                                     08A8  2143 					; R3=IRP ADDRESS
                                 05  08A8  2144 	RSB				; AND RETURN TO FORK DISPATCH
                                     08A9  2145 	.DSABL	LSB
KSDRIVER                        VAX/VMS KS 2050 SERIES CAMAC DRIVER      28-JAN-1983 14:41:34  VAX-11 Macro V03-00         Page  51
V05-001                         KS_QCANIRP, QUEUE CANCEL IRP TO CAMAC AC 25-JAN-1983 10:19:55  SYS$SYSROOT:[CAMAC.SOURCE]KSDRIVER(1)

                                     08A9  2148 	.ENABL	LSB
                                     08A9  2149 	.SBTTL	KS_REG_DUMP, Device register dump routine
                                     08A9  2150 
                                     08A9  2151 ;++
                                     08A9  2152 ; KS_REG_DUMP: Dumps the contents of device registers to a buffer
                                     08A9  2153 ;
                                     08A9  2154 ; Functional description:
                                     08A9  2155 ;
                                     08A9  2156 ;	Writes the number of device registers, and their current
                                     08A9  2157 ;	contents into a diagnostic or error buffer.
                                     08A9  2158 ;
                                     08A9  2159 ; Inputs:
                                     08A9  2160 ;
                                     08A9  2161 ;	R0	- address of the output buffer
                                     08A9  2162 ;	R4	- address of the CSR (controller status register)
                                     08A9  2163 ;	R5	- address of the UCB (unit control block)
                                     08A9  2164 ;
                                     08A9  2165 ; Outputs:
                                     08A9  2166 ;
                                     08A9  2167 ;	The routine must preserve all registers except R1-R3.
                                     08A9  2168 ;
                                     08A9  2169 ;	The output buffer contains the current contents of the device
                                     08A9  2170 ;	registers. R0 contains the address of the next empty longword in
                                     08A9  2171 ;	the output buffer.
                                     08A9  2172 ;
                                     08A9  2173 ;--
                                     08A9  2174 
                                     08A9  2175 KS_REG_DUMP:				; Dump device registers
                       80   0D   9A  08A9  2176 	MOVZBL	#KS_DUMP_CNT,(R0)+	; Store device register count.
                       80   64   3C  08AC  2177 	MOVZWL	KS_W_CTR(R4),(R0)+	; DUMP CURRENT CTR STATE
                                     08AF  2178 
                    80   02 A4   3C  08AF  2180 	MOVZWL	KS_W_SES(R4),(R0)+	; DUMP CURRENT SES STATE
                                     08B3  2185 
                    80   06 A4   3C  08B3  2186 	MOVZWL	KS_W_CMR(R4),(R0)+	; DUMP CURRENT CMR STATE
                    80   08 A4   3C  08B7  2187 	MOVZWL	KS_W_CDH(R4),(R0)+	; DUMP CURRENT CDH STATE
                    80   0A A4   3C  08BB  2188 	MOVZWL	KS_W_DLR(R4),(R0)+	; DUMP CURRENT DLR STATE
                    80   18 A4   3C  08BF  2189 	MOVZWL	KS_W_MAE(R4),(R0)+	; DUMP CURRENT MAE STATE
                    80   1A A4   3C  08C3  2190 	MOVZWL	KS_W_TMA(R4),(R0)+	; DUMP CURRENT TMA STATE
                    80   1C A4   3C  08C7  2191 	MOVZWL	KS_W_RMA(R4),(R0)+	; DUMP CURRENT RMA STATE
                    80   1E A4   3C  08CB  2192 	MOVZWL	KS_W_WCR(R4),(R0)+	; DUMP CURRENT WCR STATE
                    53   4C A5   D0  08CF  2193 	MOVL	UCB$L_IRP(R5),R3	; GET CURRENT IRP
                            1E   13  08D3  2194 	BEQL	10$			; IF NO CURRENT, BUG CHECK
                    80   40 A3   D0  08D5  2195 	MOVL	IRP$L_UBADDR(R3),(R0)+	; COPY UBA ADDRESS FIELD
                    80   44 A3   D0  08D9  2196 	MOVL	IRP$L_DPRMAP(R3),(R0)+	; AND UBA PARAMETERS
                            0B   E1  08DD  2197 	BBC	#IRP$V_EXTEND,-		; IF NO IRP EXTENSION, SKIP
                      0E 2A A3       08DF  2198 		IRP$W_STS(R3),20$
                    52   54 A3   D0  08E2  2199 	MOVL	IRP$L_EXTEND(R3),R2	; LOCATE EXTENSION
                    80   0C A2   D0  08E6  2200 	MOVL	IRPE$L_UBADDR(R2),(R0)+	; GET REPLY LIST UBA ADDRESS FIELD
                    80   10 A2   D0  08EA  2201 	MOVL	IRPE$L_DPRMAP(R2),(R0)+	; AND REP LIST UBA PARAMETERS
                            02   11  08EE  2202 	BRB	30$			; GO TO RETURN
                                     08F0  2203 20$:
                            80   7C  08F0  2204 	CLRQ	(R0)+			; ZERO EXTENSION PARAMETERS
                                     08F2  2205 30$:
                                 05  08F2  2206 	RSB				; RETURN TO VMS
                                     08F3  2207 ;
                                     08F3  2208 ; INVALID IRP IN UCB THAT LOGGED ERROR
                                     08F3  2209 ;
KSDRIVER                        VAX/VMS KS 2050 SERIES CAMAC DRIVER      28-JAN-1983 14:41:34  VAX-11 Macro V03-00         Page  52
V05-001                         KS_REG_DUMP, Device register dump routin 25-JAN-1983 10:19:55  SYS$SYSROOT:[CAMAC.SOURCE]KSDRIVER(1)

                                     08F3  2210 10$:
                                     08F3  2211 	BUG_CHECK	HALT,FATAL	; ISSUE FATAL BUG CHECK
                               FEFF  08F3       		.WORD	^XFEFF
                                     08F7       	
                                     08F7  2212 	.DSABL	LSB
KSDRIVER                        VAX/VMS KS 2050 SERIES CAMAC DRIVER      28-JAN-1983 14:41:34  VAX-11 Macro V03-00         Page  53
V05-001                         KS_END, End of driver                    25-JAN-1983 10:19:55  SYS$SYSROOT:[CAMAC.SOURCE]KSDRIVER(1)

                                     08F7  2215 	.SBTTL	KS_END, End of driver
                                     08F7  2216 
                                     08F7  2217 ;++
                                     08F7  2218 ; Label that marks the end of the driver
                                     08F7  2219 ;--
                                     08F7  2220 
                                     08F7  2221 KS_END:					; Last location in driver
                                     08F7  2222 	.END
KSDRIVER                        VAX/VMS KS 2050 SERIES CAMAC DRIVER      28-JAN-1983 14:41:34  VAX-11 Macro V03-00         Page  54
Symbol table                                                             25-JAN-1983 10:19:55  SYS$SYSROOT:[CAMAC.SOURCE]KSDRIVER(1)

$$$                            = 00000020 R     03        CMR_S_A                        = 00000004                 
$$OP                           = 00000002                 CMR_S_F                        = 00000005                 
AQB$B_ACPTYPE                    00000015                 CMR_S_N                        = 00000005                 
AQB$B_CLASS                      00000016                 CMR_S_QNE                      = 00000001                 
AQB$B_MNTCNT                     0000000B                 CMR_S_XI                       = 00000001                 
AQB$B_STATUS                     00000014                 CMR_V_A                        = 00000005                 
AQB$B_TYPE                       0000000A                 CMR_V_F                        = 00000000                 
AQB$C_LENGTH                     00000018                 CMR_V_N                        = 00000009                 
AQB$K_F11V1                    = 00000001                 CMR_V_QNE                      = 0000000F                 
AQB$K_F11V2                    = 00000002                 CMR_V_XI                       = 0000000E                 
AQB$K_JNL                      = 00000006                 COM$DELATTNAST                   ********   X   04        
AQB$K_LENGTH                     00000018                 CRB$B_MASK                       0000000E                 
AQB$K_MTA                      = 00000003                 CRB$B_TYPE                       0000000A                 
AQB$K_NET                      = 00000004                 CRB$C_LENGTH                     00000048                 
AQB$K_REM                      = 00000005                 CRB$K_LENGTH                     00000048                 
AQB$K_UNDEFINED                = 00000000                 CRB$L_AUXSTRUC                   00000010                 
AQB$L_ACPPID                     0000000C                 CRB$L_DUETIME                    00000018                 
AQB$L_ACPQBL                     00000004                 CRB$L_INTD                       00000024                 
AQB$L_ACPQFL                     00000000                 CRB$L_INTD2                      00000048                 
AQB$L_LINK                       00000010                 CRB$L_LINK                       00000020                 
AQB$M_CREATING                 = 00000008                 CRB$L_TIMELINK                   00000014                 
AQB$M_DEFCLASS                 = 00000002                 CRB$L_TOUTROUT                   0000001C                 
AQB$M_DEFSYS                   = 00000004                 CRB$L_WQBL                       00000004                 
AQB$M_UNIQUE                   = 00000001                 CRB$L_WQFL                       00000000                 
AQB$V_CREATING                 = 00000003                 CRB$M_BSY                      = 00000001                 
AQB$V_DEFCLASS                 = 00000001                 CRB$S_INTD                     = 00000024                 
AQB$V_DEFSYS                   = 00000002                 CRB$S_INTD2                    = 00000024                 
AQB$V_UNIQUE                   = 00000000                 CRB$V_BSY                      = 00000000                 
AQB$W_SIZE                       00000008                 CRB$W_REFC                       0000000C                 
AT$_CI                         = 00000004                 CRB$W_SIZE                       00000008                 
AT$_DR                         = 00000002                 DC$_BUS                        = 00000080                 
AT$_MBA                        = 00000000                 DC$_CARD                       = 00000041                 
AT$_MPM                        = 00000003                 DC$_DISK                       = 00000001                 
AT$_NULL                       = 00000005                 DC$_JOURNAL                    = 000000A1                 
AT$_UBA                        = 00000001                 DC$_LP                         = 00000043                 
BIT...                         = 00000010                 DC$_MAILBOX                    = 000000A0                 
BUG$_HALT                        ********   X   04        DC$_MISC                       = 000000C8                 
CDH_M_16                       = 00004000                 DC$_REALTIME                   = 00000060                 
CDH_M_BCF                      = 00003800                 DC$_SCOM                       = 00000020                 
CDH_M_BCI                      = 00000700                 DC$_TAPE                       = 00000002                 
CDH_M_C                        = 00003F00                 DC$_TERM                       = 00000042                 
CDH_M_HSB                      = 000000FF                 DCR_M_DFO                      = 00004000                 
CDH_S_16                       = 00000001                 DCR_M_DR                       = 00000080                 
CDH_S_BCF                      = 00000003                 DCR_M_GOCO                     = 00002000                 
CDH_S_BCI                      = 00000003                 DCR_M_HDR                      = 00008000                 
CDH_S_C                        = 00000006                 DCR_M_SCA                      = 0000003F                 
CDH_S_HSB                      = 00000008                 DCR_M_SDIE                     = 00000040                 
CDH_V_16                       = 0000000E                 DCR_M_SGL                      = 00001F00                 
CDH_V_BCF                      = 0000000B                 DCR_S_DFO                      = 00000001                 
CDH_V_BCI                      = 00000008                 DCR_S_DR                       = 00000001                 
CDH_V_C                        = 00000008                 DCR_S_GOCO                     = 00000001                 
CDH_V_HSB                      = 00000000                 DCR_S_HDR                      = 00000001                 
CMR_M_A                        = 000001E0                 DCR_S_SCA                      = 00000006                 
CMR_M_F                        = 0000001F                 DCR_S_SDIE                     = 00000001                 
CMR_M_N                        = 00003E00                 DCR_S_SGL                      = 00000005                 
CMR_M_QNE                      = 00008000                 DCR_V_DFO                      = 0000000E                 
CMR_M_XI                       = 00004000                 DCR_V_DR                       = 00000007                 
KSDRIVER                        VAX/VMS KS 2050 SERIES CAMAC DRIVER      28-JAN-1983 14:41:34  VAX-11 Macro V03-00         Page  55
Symbol table                                                             25-JAN-1983 10:19:55  SYS$SYSROOT:[CAMAC.SOURCE]KSDRIVER(1)

DCR_V_GOCO                     = 0000000D                 DEV$V_GEN                      = 00000011                 
DCR_V_HDR                      = 0000000F                 DEV$V_IDV                      = 0000001A                 
DCR_V_SCA                      = 00000000                 DEV$V_MBX                      = 00000014                 
DCR_V_SDIE                     = 00000006                 DEV$V_MNT                      = 00000013                 
DCR_V_SGL                      = 00000008                 DEV$V_NET                      = 0000000D                 
DDB$B_ACPCLASS                   00000013                 DEV$V_ODV                      = 0000001B                 
DDB$B_TYPE                       0000000A                 DEV$V_OPR                      = 00000007                 
DDB$C_LENGTH                     00000034                 DEV$V_RCK                      = 0000001E                 
DDB$K_CART                     = 00000002                 DEV$V_RCT                      = 00000008                 
DDB$K_LENGTH                     00000034                 DEV$V_REC                      = 00000000                 
DDB$K_PACK                     = 00000001                 DEV$V_RND                      = 0000001C                 
DDB$K_SLOW                     = 00000003                 DEV$V_RTM                      = 0000001D                 
DDB$K_TAPE                     = 00000004                 DEV$V_SDI                      = 00000004                 
DDB$L_ACPD                       00000010                 DEV$V_SHR                      = 00000010                 
DDB$L_DDT                        0000000C                 DEV$V_SPL                      = 00000006                 
DDB$L_LINK                       00000000                 DEV$V_SQD                      = 00000005                 
DDB$L_UCB                        00000004                 DEV$V_SWL                      = 00000019                 
DDB$T_DRVNAME                    00000024                 DEV$V_TRM                      = 00000002                 
DDB$T_NAME                       00000014                 DEV$V_WCK                      = 0000001F                 
DDB$W_SIZE                       00000008                 DFR_M_DFE                      = 00000040                 
DEV$M_ALL                      = 00800000                 DFR_M_DFOR                     = 00000080                 
DEV$M_AVL                      = 00040000                 DFR_M_HD                       = 00008000                 
DEV$M_CCL                      = 00000002                 DFR_M_SCA                      = 0000003F                 
DEV$M_DIR                      = 00000008                 DFR_M_SGL                      = 00001F00                 
DEV$M_DMT                      = 00200000                 DFR_S_DFE                      = 00000001                 
DEV$M_DUA                      = 00008000                 DFR_S_DFOR                     = 00000001                 
DEV$M_ELG                      = 00400000                 DFR_S_HD                       = 00000001                 
DEV$M_FOD                      = 00004000                 DFR_S_SCA                      = 00000006                 
DEV$M_FOR                      = 01000000                 DFR_S_SGL                      = 00000005                 
DEV$M_GEN                      = 00020000                 DFR_V_DFE                      = 00000006                 
DEV$M_IDV                      = 04000000                 DFR_V_DFOR                     = 00000007                 
DEV$M_MBX                      = 00100000                 DFR_V_HD                       = 0000000F                 
DEV$M_MNT                      = 00080000                 DFR_V_SCA                      = 00000000                 
DEV$M_NET                      = 00002000                 DFR_V_SGL                      = 00000008                 
DEV$M_ODV                      = 08000000                 DISMISS_INTERRUPT                00000801 R     04        
DEV$M_OPR                      = 00000080                 DPT$B_ADPTYPE                    0000000C                 
DEV$M_RCK                      = 40000000                 DPT$B_FLAGS                      0000000D                 
DEV$M_RCT                      = 00000100                 DPT$B_REFC                       0000000B                 
DEV$M_REC                      = 00000001                 DPT$B_TYPE                       0000000A                 
DEV$M_RND                      = 10000000                 DPT$C_LENGTH                     00000038                 
DEV$M_RTM                      = 20000000                 DPT$C_VERSION                  = 00000003                 
DEV$M_SDI                      = 00000010                 DPT$INITAB                       00000038 R     03        
DEV$M_SHR                      = 00010000                 DPT$K_LENGTH                     00000038                 
DEV$M_SPL                      = 00000040                 DPT$L_BLINK                      00000004                 
DEV$M_SQD                      = 00000020                 DPT$L_ECOLEVEL                   00000034                 
DEV$M_SWL                      = 02000000                 DPT$L_FLINK                      00000000                 
DEV$M_TRM                      = 00000004                 DPT$M_NOUNLOAD                 = 00000004                 
DEV$M_WCK                      = 80000000                 DPT$M_SCS                      = 00000008                 
DEV$V_ALL                      = 00000017                 DPT$M_SUBCNTRL                 = 00000001                 
DEV$V_AVL                      = 00000012                 DPT$M_SVP                      = 00000002                 
DEV$V_CCL                      = 00000001                 DPT$Q_LINKTIME                   0000002C                 
DEV$V_DIR                      = 00000003                 DPT$REINITAB                     0000004B R     03        
DEV$V_DMT                      = 00000015                 DPT$S_LINKTIME                 = 00000008                 
DEV$V_DUA                      = 0000000F                 DPT$S_NAME                     = 0000000C                 
DEV$V_ELG                      = 00000016                 DPT$TAB                          00000000 R     03        
DEV$V_FOD                      = 0000000E                 DPT$T_NAME                       00000020                 
DEV$V_FOR                      = 00000018                 DPT$V_NOUNLOAD                 = 00000002                 
KSDRIVER                        VAX/VMS KS 2050 SERIES CAMAC DRIVER      28-JAN-1983 14:41:34  VAX-11 Macro V03-00         Page  56
Symbol table                                                             25-JAN-1983 10:19:55  SYS$SYSROOT:[CAMAC.SOURCE]KSDRIVER(1)

DPT$V_SCS                      = 00000003                 DT$_LA38                       = 00000023                 
DPT$V_SUBCNTRL                 = 00000000                 DT$_LAX                        = 00000020                 
DPT$V_SVP                      = 00000001                 DT$_LP11                       = 00000001                 
DPT$W_DEFUNITS                   0000001A                 DT$_LPA11                      = 00000001                 
DPT$W_DELIVER                    0000001C                 DT$_LQP02                      = 00000026                 
DPT$W_INITTAB                    00000010                 DT$_MBX                        = 00000001                 
DPT$W_MAXUNITS                   00000016                 DT$_ML11                       = 00000011                 
DPT$W_REINITTAB                  00000012                 DT$_MX_MUX200                  = 00000008                 
DPT$W_SIZE                       00000008                 DT$_NI                         = 0000000D                 
DPT$W_UCBSIZE                    0000000E                 DT$_NV_X29                     = 00000006                 
DPT$W_UNLOAD                     00000014                 DT$_NW_X25                     = 00000005                 
DPT$W_VECTOR                     0000001E                 DT$_PCL11R                     = 00000005                 
DPT$W_VERSION                    00000018                 DT$_PCL11T                     = 00000006                 
DSTS_M_DMA                     = 00000001                 DT$_RA60                       = 00000016                 
DSTS_M_LSBV                    = 00000004                 DT$_RA80                       = 00000014                 
DSTS_M_MULTI                   = 00000002                 DT$_RA81                       = 00000015                 
DSTS_S_DMA                     = 00000001                 DT$_RB02                       = 00000012                 
DSTS_S_LSBV                    = 00000001                 DT$_RB80                       = 00000013                 
DSTS_S_MULTI                   = 00000001                 DT$_RK06                       = 00000001                 
DSTS_V_DMA                     = 00000000                 DT$_RK07                       = 00000002                 
DSTS_V_LSBV                    = 00000002                 DT$_RL01                       = 00000009                 
DSTS_V_MULTI                   = 00000001                 DT$_RL02                       = 0000000A                 
DT$_AIJNL                      = 00000003                 DT$_RM03                       = 00000006                 
DT$_ATJNL                      = 00000004                 DT$_RM05                       = 0000000F                 
DT$_BIJNL                      = 00000002                 DT$_RM80                       = 0000000D                 
DT$_CI                         = 0000000C                 DT$_RP04                       = 00000003                 
DT$_CI750                      = 00000002                 DT$_RP05                       = 00000004                 
DT$_CI780                      = 00000001                 DT$_RP06                       = 00000005                 
DT$_CR11                       = 00000001                 DT$_RP07                       = 00000007                 
DT$_DMC11                      = 00000001                 DT$_RP07HT                     = 00000008                 
DT$_DMF32                      = 0000000A                 DT$_RUJNL                      = 00000001                 
DT$_DMP11                      = 00000009                 DT$_RX01                       = 00000010                 
DT$_DMR11                      = 00000002                 DT$_RX02                       = 0000000B                 
DT$_DN11                       = 00000001                 DT$_RX04                       = 0000000C                 
DT$_DR11C                      = 00000007                 DT$_RZ01                       = 00000017                 
DT$_DR11W                      = 00000004                 DT$_RZF01                      = 00000018                 
DT$_DR750                      = 00000003                 DT$_SB_ISB11                   = 00000007                 
DT$_DR780                      = 00000002                 DT$_TE16                       = 00000001                 
DT$_DZ11                       = 00000042                 DT$_TS11                       = 00000004                 
DT$_DZ32                       = 00000043                 DT$_TTYUNKN                    = 00000000                 
DT$_DZ730                      = 00000044                 DT$_TU45                       = 00000002                 
DT$_FT1                        = 00000010                 DT$_TU58                       = 0000000E                 
DT$_FT2                        = 00000011                 DT$_TU77                       = 00000003                 
DT$_FT3                        = 00000012                 DT$_TU78                       = 00000005                 
DT$_FT4                        = 00000013                 DT$_UDA50                      = 00000003                 
DT$_FT5                        = 00000014                 DT$_UNA11                      = 0000000E                 
DT$_FT6                        = 00000015                 DT$_UNKNJNL                    = 00000000                 
DT$_FT7                        = 00000016                 DT$_VK100                      = 00000002                 
DT$_FT8                        = 00000017                 DT$_VT05                       = 00000001                 
DT$_LA100                      = 00000025                 DT$_VT100                      = 00000060                 
DT$_LA11                       = 00000002                 DT$_VT101                      = 00000061                 
DT$_LA12                       = 00000024                 DT$_VT102                      = 00000062                 
DT$_LA120                      = 00000021                 DT$_VT105                      = 00000063                 
DT$_LA180                      = 00000003                 DT$_VT125                      = 00000064                 
DT$_LA24                       = 00000025                 DT$_VT131                      = 00000065                 
DT$_LA34                       = 00000022                 DT$_VT132                      = 00000066                 
DT$_LA36                       = 00000020                 DT$_VT173                      = 00000003                 
KSDRIVER                        VAX/VMS KS 2050 SERIES CAMAC DRIVER      28-JAN-1983 14:41:34  VAX-11 Macro V03-00         Page  57
Symbol table                                                             25-JAN-1983 10:19:55  SYS$SYSROOT:[CAMAC.SOURCE]KSDRIVER(1)

DT$_VT52                       = 00000040                 DYN$C_MBX                      = 0000002B                 
DT$_VT55                       = 00000041                 DYN$C_MPWMAP                   = 00000004                 
DT$_VT5X                       = 00000040                 DYN$C_MTL                      = 00000019                 
DT$_XI_DR11C                   = 00000008                 DYN$C_MVL                      = 00000016                 
DT$_XJ_2780                    = 00000004                 DYN$C_NDB                      = 0000001C                 
DT$_XK_3271                    = 00000003                 DYN$C_NET                      = 00000017                 
DT$_XV_3271                    = 0000000B                 DYN$C_PBH                      = 00000020                 
DT$_YN_X25                     = 0000000F                 DYN$C_PCB                      = 0000000C                 
DT$_YO_X25                     = 00000010                 DYN$C_PCBVEC                   = 00000001                 
DT$_YP_ADCCP                   = 00000011                 DYN$C_PDB                      = 00000021                 
DT$_YQ_3271                    = 00000012                 DYN$C_PFL                      = 00000023                 
DT$_YR_DDCMP                   = 00000013                 DYN$C_PHVEC                    = 00000002                 
DT$_YS_SDLC                    = 00000014                 DYN$C_PIB                      = 00000022                 
DYN$C_ACB                      = 00000002                 DYN$C_PQB                      = 0000000D                 
DYN$C_ADP                      = 00000001                 DYN$C_PRCMAP                   = 00000005                 
DYN$C_AQB                      = 00000003                 DYN$C_PTR                      = 00000025                 
DYN$C_BCB                      = 00000033                 DYN$C_RBM                      = 00000031                 
DYN$C_BOOTCB                   = 00000006                 DYN$C_RSB                      = 00000038                 
DYN$C_BRDCST                   = 0000001A                 DYN$C_RSHT                     = 0000003A                 
DYN$C_BUFIO                    = 00000013                 DYN$C_RUL                      = 0000003C                 
DYN$C_CDB                      = 00000034                 DYN$C_RVT                      = 0000000E                 
DYN$C_CDRP                     = 0000003B                 DYN$C_RVX                      = 00000027                 
DYN$C_CD_BBRPG                 = 00000002                 DYN$C_SCS                      = 00000060                 
DYN$C_CD_CDDB                  = 00000001                 DYN$C_SCS_CDL                  = 00000001                 
DYN$C_CEB                      = 00000004                 DYN$C_SCS_CDT                  = 00000002                 
DYN$C_CI                       = 00000061                 DYN$C_SCS_DIR                  = 00000003                 
DYN$C_CIDG                     = 0000003E                 DYN$C_SCS_PB                   = 00000004                 
DYN$C_CIMSG                    = 0000003F                 DYN$C_SCS_PDT                  = 00000005                 
DYN$C_CI_BDT                   = 00000001                 DYN$C_SCS_RDT                  = 00000006                 
DYN$C_CI_FQDT                  = 00000002                 DYN$C_SCS_SB                   = 00000007                 
DYN$C_CLASSDRV                 = 00000064                 DYN$C_SHB                      = 0000002A                 
DYN$C_CONF                     = 00000007                 DYN$C_SHMCEB                   = 0000002E                 
DYN$C_CRB                      = 00000005                 DYN$C_SHMGSD                   = 00000029                 
DYN$C_CXB                      = 0000001B                 DYN$C_SHRBUFIO                 = 00000080                 
DYN$C_DDB                      = 00000006                 DYN$C_SLAVCEB                  = 0000002D                 
DYN$C_DPT                      = 0000001E                 DYN$C_SPECIAL                  = 00000080                 
DYN$C_ERP                      = 0000003D                 DYN$C_SSB                      = 0000001D                 
DYN$C_EXTGSD                   = 00000028                 DYN$C_SUBTYPE                  = 00000060                 
DYN$C_FCB                      = 00000007                 DYN$C_SWPMAP                   = 00000003                 
DYN$C_FRK                      = 00000008                 DYN$C_TQE                      = 0000000F                 
DYN$C_GSD                      = 00000015                 DYN$C_TWP                      = 00000030                 
DYN$C_IDB                      = 00000009                 DYN$C_TYPAHD                   = 00000014                 
DYN$C_INIT                     = 00000063                 DYN$C_UCB                      = 00000010                 
DYN$C_IRP                      = 0000000A                 DYN$C_UNUSED                   = 00000024                 
DYN$C_IRPE                     = 0000002C                 DYN$C_VCA                      = 00000032                 
DYN$C_JIB                      = 0000002F                 DYN$C_VCB                      = 00000011                 
DYN$C_JMT                      = 00000036                 DYN$C_WCB                      = 00000012                 
DYN$C_JPB                      = 0000001F                 EMB$B_BUFIND                     FFFFFFFE                 
DYN$C_KFH                      = 00000026                 EMB$B_DEVCLS                     00000005                 
DYN$C_KFI                      = 00000018                 EMB$B_DEVTYP                     00000004                 
DYN$C_LC_MP                    = 00000001                 EMB$B_DV_CLASS                   0000001C                 
DYN$C_LC_SCS                   = 00000002                 EMB$B_DV_ERTCNT                  00000010                 
DYN$C_LKB                      = 00000037                 EMB$B_DV_ERTMAX                  00000011                 
DYN$C_LKID                     = 00000039                 EMB$B_DV_SLAVE                   0000003A                 
DYN$C_LOADCODE                 = 00000062                 EMB$B_DV_TYPE                    0000001D                 
DYN$C_LOG                      = 0000000B                 EMB$B_VALID                      FFFFFFFF                 
DYN$C_LPD                      = 00000035                 EMB$C_AW                       = 00000007                 
KSDRIVER                        VAX/VMS KS 2050 SERIES CAMAC DRIVER      28-JAN-1983 14:41:34  VAX-11 Macro V03-00         Page  58
Symbol table                                                             25-JAN-1983 10:19:55  SYS$SYSROOT:[CAMAC.SOURCE]KSDRIVER(1)

EMB$C_BE                       = 00000004                 EMB$K_VD                       = 00000041                 
EMB$C_CR                       = 00000025                 EMB$K_VM                       = 00000040                 
EMB$C_CS                       = 00000020                 EMB$K_WS                       = 00000024                 
EMB$C_DA                       = 00000062                 EMB$L_DV_CHAR                    00000036                 
EMB$C_DE                       = 00000001                 EMB$L_DV_MEDIA                   00000026                 
EMB$C_DT                       = 00000060                 EMB$L_DV_OPCNT                   0000002E                 
EMB$C_HD_LENGTH                  00000010                 EMB$L_DV_OWNUIC                  00000032                 
EMB$C_HE                       = 00000008                 EMB$L_DV_REGSAV                  0000004E                 
EMB$C_LM                       = 00000064                 EMB$L_DV_RQPID                   0000001E                 
EMB$C_MBA                      = 0000000C                 EMB$L_DV_SID                     00000000                 
EMB$C_MC                       = 00000002                 EMB$L_HD_SID                     00000000                 
EMB$C_NF                       = 00000023                 EMB$L_TS_SID                     00000000                 
EMB$C_NM                       = 0000002A                 EMB$Q_DV_IOSB                    00000012                 
EMB$C_OM                       = 00000029                 EMB$Q_DV_TIME                    00000006                 
EMB$C_SA                       = 00000005                 EMB$Q_HD_TIME                    00000006                 
EMB$C_SBC                      = 00000028                 EMB$Q_TS_TIME                    00000006                 
EMB$C_SE                       = 00000006                 EMB$S_DV_IOSB                  = 00000008                 
EMB$C_SI                       = 0000000A                 EMB$S_DV_NAME                  = 00000010                 
EMB$C_SP                       = 00000063                 EMB$S_DV_TIME                  = 00000008                 
EMB$C_SS                       = 00000027                 EMB$S_HD_TIME                  = 00000008                 
EMB$C_TS                       = 00000026                 EMB$S_TS_TIME                  = 00000008                 
EMB$C_TS_LENGTH                  00000010                 EMB$T_DV_NAME                    0000003E                 
EMB$C_UBA                      = 00000009                 EMB$W_DV_BCNT                    00000024                 
EMB$C_UBC                      = 00000070                 EMB$W_DV_BOFF                    00000022                 
EMB$C_UE                       = 0000000B                 EMB$W_DV_ENTRY                   00000004                 
EMB$C_UI                       = 00000061                 EMB$W_DV_ERRCNT                  0000002C                 
EMB$C_VD                       = 00000041                 EMB$W_DV_ERRSEQ                  0000000E                 
EMB$C_VM                       = 00000040                 EMB$W_DV_FUNC                    0000003C                 
EMB$C_WS                       = 00000024                 EMB$W_DV_STS                     0000001A                 
EMB$K_AW                       = 00000007                 EMB$W_DV_UNIT                    0000002A                 
EMB$K_BE                       = 00000004                 EMB$W_HD_ENTRY                   00000004                 
EMB$K_CR                       = 00000025                 EMB$W_HD_ERRSEQ                  0000000E                 
EMB$K_CS                       = 00000020                 EMB$W_SIZE                       FFFFFFFC                 
EMB$K_DA                       = 00000062                 EMB$W_TS_ENTRY                   00000004                 
EMB$K_DE                       = 00000001                 EMB$W_TS_ERRSEQ                  0000000E                 
EMB$K_DT                       = 00000060                 ERL$DEVICERR                     ********   X   04        
EMB$K_HD_LENGTH                  00000010                 ERL$DEVICTMO                     ********   X   04        
EMB$K_HE                       = 00000008                 EXE$ABORTIO                      ********   X   04        
EMB$K_LENGTH                   = 00000004                 EXE$ALONONPAGED                  ********   X   04        
EMB$K_LM                       = 00000064                 EXE$FINISHIO                     ********   X   04        
EMB$K_MBA                      = 0000000C                 EXE$FORK                         ********   X   04        
EMB$K_MC                       = 00000002                 EXE$IOFORK                       ********   X   04        
EMB$K_NF                       = 00000023                 EXE$QIODRVPKT                    ********   X   04        
EMB$K_NM                       = 0000002A                 EXE$QIORETURN                    ********   X   04        
EMB$K_OM                       = 00000029                 EXE$READLOCK                     ********   X   04        
EMB$K_SA                       = 00000005                 EXE$WRITECHK                     ********   X   04        
EMB$K_SBC                      = 00000028                 EXE$WRITELOCK                    ********   X   04        
EMB$K_SE                       = 00000006                 FUNCTAB_LEN                    = 00000058                 
EMB$K_SI                       = 0000000A                 IDB$B_TYPE                       0000000A                 
EMB$K_SP                       = 00000063                 IDB$B_VECTOR                     0000000B                 
EMB$K_SS                       = 00000027                 IDB$C_LENGTH                     00000034                 
EMB$K_TS                       = 00000026                 IDB$K_LENGTH                     00000034                 
EMB$K_TS_LENGTH                  00000010                 IDB$L_ADP                        00000010                 
EMB$K_UBA                      = 00000009                 IDB$L_CSR                        00000000                 
EMB$K_UBC                      = 00000070                 IDB$L_OWNER                      00000004                 
EMB$K_UE                       = 0000000B                 IDB$L_UCBLST                     00000014                 
EMB$K_UI                       = 00000061                 IDB$S_UCBLST                   = 00000020                 
KSDRIVER                        VAX/VMS KS 2050 SERIES CAMAC DRIVER      28-JAN-1983 14:41:34  VAX-11 Macro V03-00         Page  59
Symbol table                                                             25-JAN-1983 10:19:55  SYS$SYSROOT:[CAMAC.SOURCE]KSDRIVER(1)

IDB$W_SIZE                       00000008                 IO$M_MAINT                     = 00000040                 
IDB$W_UNITS                      0000000C                 IO$M_MAINTLOOP                 = 00000200                 
IO$K_LOOPTEST                  = 0000E000                 IO$M_MORE                      = 00000040                 
IO$K_PTPBSC                    = 00002000                 IO$M_MOUNT                     = 00000200                 
IO$K_SRRUNOUT                  = 00000000                 IO$M_MOVETRACKD                = 00000080                 
IO$M_ABORT                     = 00000100                 IO$M_MULTIPLE                  = 00000100                 
IO$M_ACCEPT                    = 00000080                 IO$M_NOCTSWAIT                 = 00000040                 
IO$M_ACCESS                    = 00000040                 IO$M_NODSRWAIT                 = 00000100                 
IO$M_ATTNAST                   = 00000100                 IO$M_NOECHO                    = 00000040                 
IO$M_BINARY                    = 00000040                 IO$M_NOFILTR                   = 00000200                 
IO$M_CANCTRLO                  = 00000040                 IO$M_NOFORMAT                  = 00000100                 
IO$M_CANLAM                    = 00000100                 IO$M_NOMRSP                    = 00000040                 
IO$M_CECYL                     = 00000400                 IO$M_NOW                       = 00000040                 
IO$M_CLEAR                     = 00001000                 IO$M_NOWAIT                    = 00000080                 
IO$M_CLR_COUNT                 = 00000400                 IO$M_OPPOSITE                  = 00000200                 
IO$M_CNTRLENTRY                = 00000080                 IO$M_OUTBAND                   = 00000400                 
IO$M_COFFLINE                  = 00000400                 IO$M_PACKED                    = 00000080                 
IO$M_COMMOD                    = 00000040                 IO$M_PURGE                     = 00000800                 
IO$M_CONLINE                   = 00000200                 IO$M_QUALIFIED                 = 00000080                 
IO$M_CREATE                    = 00000080                 IO$M_RD_COUNT                  = 00000100                 
IO$M_CTRL                      = 00000200                 IO$M_RD_MEM                    = 00000040                 
IO$M_CTRLCAST                  = 00000100                 IO$M_RD_MODEM                  = 00000080                 
IO$M_CTRLYAST                  = 00000080                 IO$M_READATTN                  = 00000080                 
IO$M_CVTLOW                    = 00000100                 IO$M_READCSR                   = 00008000                 
IO$M_CYCLE                     = 00001000                 IO$M_REDIRECT                  = 00000040                 
IO$M_DABLAMS                   = 00000100                 IO$M_REFRESH                   = 00002000                 
IO$M_DATACHECK                 = 00004000                 IO$M_RESET                     = 00000800                 
IO$M_DATAPATH                  = 00000400                 IO$M_REVERSE                   = 00000040                 
IO$M_DELDATA                   = 00000040                 IO$M_SETBSIZE                  = 00000200                 
IO$M_DELETE                    = 00000100                 IO$M_SETCUADR                  = 00000100                 
IO$M_DIAGNOSTIC                = 00000100                 IO$M_SETENQCNT                 = 00000800                 
IO$M_DMOUNT                    = 00000400                 IO$M_SETEVF                    = 00000040                 
IO$M_DSABLMBX                  = 00000400                 IO$M_SETFNCT                   = 00000200                 
IO$M_DSABL_ALT                 = 00001000                 IO$M_SETPOOLSZ                 = 00000400                 
IO$M_ENABLMBX                  = 00000080                 IO$M_SETPROT                   = 00000200                 
IO$M_ENABL_ALT                 = 00000800                 IO$M_SET_MODEM                 = 00000400                 
IO$M_ENLAMS                    = 00000080                 IO$M_SHUTDOWN                  = 00000080                 
IO$M_ESCAPE                    = 00004000                 IO$M_SKPSECINH                 = 00000200                 
IO$M_EXTEND                    = 00008000                 IO$M_SLAVLOOP                  = 00000080                 
IO$M_FCODE                     = 0000003F                 IO$M_STARTUP                   = 00000040                 
IO$M_FORCE                     = 00000040                 IO$M_SWAP                      = 00000400                 
IO$M_HANGUP                    = 00000200                 IO$M_SYNCH                     = 00000200                 
IO$M_INCLUDE                   = 00000800                 IO$M_TIMED                     = 00000080                 
IO$M_INHERLOG                  = 00000800                 IO$M_TRMNOECHO                 = 00001000                 
IO$M_INHEXTGAP                 = 00001000                 IO$M_TYPEAHDCNT                = 00000040                 
IO$M_INHRETRY                  = 00008000                 IO$M_UNLOOP                    = 00000100                 
IO$M_INHSEEK                   = 00001000                 IO$M_WORD                      = 00000040                 
IO$M_INTCLOCK                  = 00001000                 IO$M_WRTATTN                   = 00000100                 
IO$M_INTERRUPT                 = 00000040                 IO$S_FCODE                     = 00000006                 
IO$M_INTSKIP                   = 00000100                 IO$V_ABORT                     = 00000008                 
IO$M_LASTBLOCK                 = 00000400                 IO$V_ACCEPT                    = 00000007                 
IO$M_LINE_OFF                  = 00000200                 IO$V_ACCESS                    = 00000006                 
IO$M_LINE_ON                   = 00000800                 IO$V_ATTNAST                   = 00000008                 
IO$M_LOOP                      = 00000080                 IO$V_BINARY                    = 00000006                 
IO$M_LOOP_EXT                  = 00001000                 IO$V_CANCTRLO                  = 00000006                 
IO$M_LPBEXT                    = 00002000                 IO$V_CANLAM                    = 00000008                 
IO$M_LPBINT                    = 00004000                 IO$V_CECYL                     = 0000000A                 
KSDRIVER                        VAX/VMS KS 2050 SERIES CAMAC DRIVER      28-JAN-1983 14:41:34  VAX-11 Macro V03-00         Page  60
Symbol table                                                             25-JAN-1983 10:19:55  SYS$SYSROOT:[CAMAC.SOURCE]KSDRIVER(1)

IO$V_CLEAR                     = 0000000C                 IO$V_NOWAIT                    = 00000007                 
IO$V_CLR_COUNT                 = 0000000A                 IO$V_OPPOSITE                  = 00000009                 
IO$V_CNTRLENTRY                = 00000007                 IO$V_OUTBAND                   = 0000000A                 
IO$V_COFFLINE                  = 0000000A                 IO$V_PACKED                    = 00000007                 
IO$V_COMMOD                    = 00000006                 IO$V_PURGE                     = 0000000B                 
IO$V_CONLINE                   = 00000009                 IO$V_QUALIFIED                 = 00000007                 
IO$V_CREATE                    = 00000007                 IO$V_RD_COUNT                  = 00000008                 
IO$V_CTRL                      = 00000009                 IO$V_RD_MEM                    = 00000006                 
IO$V_CTRLCAST                  = 00000008                 IO$V_RD_MODEM                  = 00000007                 
IO$V_CTRLYAST                  = 00000007                 IO$V_READATTN                  = 00000007                 
IO$V_CVTLOW                    = 00000008                 IO$V_READCSR                   = 0000000F                 
IO$V_CYCLE                     = 0000000C                 IO$V_REDIRECT                  = 00000006                 
IO$V_DABLAMS                   = 00000008                 IO$V_REFRESH                   = 0000000D                 
IO$V_DATACHECK                 = 0000000E                 IO$V_RESET                     = 0000000B                 
IO$V_DATAPATH                  = 0000000A                 IO$V_REVERSE                   = 00000006                 
IO$V_DELDATA                   = 00000006                 IO$V_SETBSIZE                  = 00000009                 
IO$V_DELETE                    = 00000008                 IO$V_SETCUADR                  = 00000008                 
IO$V_DIAGNOSTIC                = 00000008                 IO$V_SETENQCNT                 = 0000000B                 
IO$V_DMOUNT                    = 0000000A                 IO$V_SETEVF                    = 00000006                 
IO$V_DSABLMBX                  = 0000000A                 IO$V_SETFNCT                   = 00000009                 
IO$V_DSABL_ALT                 = 0000000C                 IO$V_SETPOOLSZ                 = 0000000A                 
IO$V_ENABLMBX                  = 00000007                 IO$V_SETPROT                   = 00000009                 
IO$V_ENABL_ALT                 = 0000000B                 IO$V_SET_MODEM                 = 0000000A                 
IO$V_ENLAMS                    = 00000007                 IO$V_SHUTDOWN                  = 00000007                 
IO$V_ESCAPE                    = 0000000E                 IO$V_SKPSECINH                 = 00000009                 
IO$V_EXTEND                    = 0000000F                 IO$V_SLAVLOOP                  = 00000007                 
IO$V_FCODE                     = 00000000                 IO$V_STARTUP                   = 00000006                 
IO$V_FORCE                     = 00000006                 IO$V_SWAP                      = 0000000A                 
IO$V_HANGUP                    = 00000009                 IO$V_SYNCH                     = 00000009                 
IO$V_INCLUDE                   = 0000000B                 IO$V_TIMED                     = 00000007                 
IO$V_INHERLOG                  = 0000000B                 IO$V_TRMNOECHO                 = 0000000C                 
IO$V_INHEXTGAP                 = 0000000C                 IO$V_TYPEAHDCNT                = 00000006                 
IO$V_INHRETRY                  = 0000000F                 IO$V_UNLOOP                    = 00000008                 
IO$V_INHSEEK                   = 0000000C                 IO$V_WORD                      = 00000006                 
IO$V_INTCLOCK                  = 0000000C                 IO$V_WRTATTN                   = 00000008                 
IO$V_INTERRUPT                 = 00000006                 IO$_ACCESS                     = 00000032                 
IO$V_INTSKIP                   = 00000008                 IO$_ACPCONTROL                 = 00000038                 
IO$V_LASTBLOCK                 = 0000000A                 IO$_AVAILABLE                  = 00000011                 
IO$V_LINE_OFF                  = 00000009                 IO$_CAMIO                      = 00000032                 
IO$V_LINE_ON                   = 0000000B                 IO$_CLEAN                      = 0000001E                 
IO$V_LOOP                      = 00000007                 IO$_CONINTREAD                 = 0000003C                 
IO$V_LOOP_EXT                  = 0000000C                 IO$_CONINTWRITE                = 0000003D                 
IO$V_LPBEXT                    = 0000000D                 IO$_CREATE                     = 00000033                 
IO$V_LPBINT                    = 0000000E                 IO$_DEACCESS                   = 00000034                 
IO$V_MAINT                     = 00000006                 IO$_DELETE                     = 00000035                 
IO$V_MAINTLOOP                 = 00000009                 IO$_DIAGNOSE                   = 0000001D                 
IO$V_MORE                      = 00000006                 IO$_DRVCLR                     = 00000004                 
IO$V_MOUNT                     = 00000009                 IO$_DSE                        = 00000015                 
IO$V_MOVETRACKD                = 00000007                 IO$_ENDRU1                     = 0000003A                 
IO$V_MULTIPLE                  = 00000008                 IO$_ENDRU2                     = 0000003B                 
IO$V_NOCTSWAIT                 = 00000006                 IO$_ERASETAPE                  = 00000006                 
IO$V_NODSRWAIT                 = 00000008                 IO$_FORCE                      = 00000037                 
IO$V_NOECHO                    = 00000006                 IO$_FORMAT                     = 0000001E                 
IO$V_NOFILTR                   = 00000009                 IO$_INITIALIZE                 = 00000004                 
IO$V_NOFORMAT                  = 00000008                 IO$_LAMAST                     = 00000033                 
IO$V_NOMRSP                    = 00000006                 IO$_LOADMCODE                  = 00000001                 
IO$V_NOW                       = 00000006                 IO$_LOGICAL                    = 0000002F                 
KSDRIVER                        VAX/VMS KS 2050 SERIES CAMAC DRIVER      28-JAN-1983 14:41:34  VAX-11 Macro V03-00         Page  61
Symbol table                                                             25-JAN-1983 10:19:55  SYS$SYSROOT:[CAMAC.SOURCE]KSDRIVER(1)

IO$_MODIFY                     = 00000036                 IOC$FILSPT                       ********   X   04        
IO$_MOUNT                      = 00000039                 IOC$GL_IRPFL                     ********   X   04        
IO$_NETCONTROL                 = 00000036                 IOC$LOADUBAMAP                   ********   X   04        
IO$_NOP                        = 00000000                 IOC$MNTVER                       ********   X   04        
IO$_OFFSET                     = 00000006                 IOC$PURGDATAP                    ********   X   04        
IO$_PACKACK                    = 00000008                 IOC$RELCHAN                      ********   X   04        
IO$_PHYSICAL                   = 0000001F                 IOC$RELDATAP                     ********   X   04        
IO$_QSTOP                      = 00000007                 IOC$RELMAPREG                    ********   X   04        
IO$_RDSTATS                    = 0000000D                 IOC$REQCOM                       ********   X   04        
IO$_READHEAD                   = 0000000E                 IOC$REQDATAP                     ********   X   04        
IO$_READINIT                   = 0000003C                 IOC$REQMAPREG                    ********   X   04        
IO$_READLBLK                   = 00000021                 IOC$REQPCHANH                    ********   X   04        
IO$_READPBLK                   = 0000000C                 IOC$REQPCHANL                    ********   X   04        
IO$_READPRESET                 = 00000019                 IOC$RETURN                       ********   X   04        
IO$_READPROMPT                 = 00000037                 IOC$WAKACP                       ********   X   04        
IO$_READTRACKD                 = 00000010                 IOC$WFIKPCH                      ********   X   04        
IO$_READVBLK                   = 00000031                 IPL$_ASTDEL                    = 00000002                 
IO$_RECAL                      = 00000003                 IPL$_HWCLK                     = 00000018                 
IO$_RELEASE                    = 00000005                 IPL$_IOPOST                    = 00000004                 
IO$_REREADN                    = 00000016                 IPL$_MAILBOX                   = 0000000B                 
IO$_REREADP                    = 00000017                 IPL$_POWER                     = 0000001F                 
IO$_RETCENTER                  = 00000007                 IPL$_QUEUEAST                  = 00000006                 
IO$_REWIND                     = 00000024                 IPL$_SCHED                     = 00000003                 
IO$_REWINDOFF                  = 00000022                 IPL$_SCS                       = 00000008                 
IO$_SEARCH                     = 00000009                 IPL$_SYNCH                     = 00000007                 
IO$_SEEK                       = 00000002                 IPL$_TIMER                     = 00000007                 
IO$_SENSECHAR                  = 0000001B                 IRP$B_C                          00000040                 
IO$_SENSEMODE                  = 00000027                 IRP$B_CARCON                     0000003C                 
IO$_SETCHAR                    = 0000001A                 IRP$B_CD_TYPE                    00000066                 
IO$_SETCLOCK                   = 00000037                 IRP$B_EFN                        00000022                 
IO$_SETCLOCKP                  = 00000005                 IRP$B_FIPL                       00000067                 
IO$_SETMODE                    = 00000023                 IRP$B_N                          00000041                 
IO$_SKIPFILE                   = 00000025                 IRP$B_PRI                        00000023                 
IO$_SKIPRECORD                 = 00000026                 IRP$B_RMOD                       0000000B                 
IO$_SPACEFILE                  = 00000002                 IRP$B_TYPE                       0000000A                 
IO$_SPACERECORD                = 00000009                 IRP$C_BT_LEN                     0000009C                 
IO$_STARTDATA                  = 00000038                 IRP$C_CDRP                       0000005C                 
IO$_STARTDATAP                 = 00000006                 IRP$C_CD_LEN                     0000009C                 
IO$_STARTMPROC                 = 00000002                 IRP$C_LENGTH                     0000009C                 
IO$_STARTSPNDL                 = 00000019                 IRP$K_BT_LEN                     0000009C                 
IO$_STOP                       = 00000003                 IRP$K_CDRP                       0000005C                 
IO$_TTYREADALL                 = 0000003A                 IRP$K_CD_LEN                     0000009C                 
IO$_TTYREADPALL                = 0000003B                 IRP$K_LENGTH                     0000009C                 
IO$_UNLOAD                     = 00000001                 IRP$L_ABCNT                      00000040                 
IO$_VIRTUAL                    = 0000003F                 IRP$L_ARB                        00000058                 
IO$_WRITECHECK                 = 0000000A                 IRP$L_AST                        00000010                 
IO$_WRITECHECKH                = 00000018                 IRP$L_ASTPRM                     00000014                 
IO$_WRITEHEAD                  = 0000000D                 IRP$L_BCNT                       00000032                 
IO$_WRITELBLK                  = 00000020                 IRP$L_CDT                        00000080                 
IO$_WRITEMARK                  = 0000001C                 IRP$L_DIAGBUF                    0000004C                 
IO$_WRITEOF                    = 00000028                 IRP$L_DPRMAP                     00000044                 
IO$_WRITEPBLK                  = 0000000B                 IRP$L_EXTEND                     00000054                 
IO$_WRITERET                   = 00000018                 IRP$L_FPC                        00000068                 
IO$_WRITETRACKD                = 0000000F                 IRP$L_FQBL                       00000060                 
IO$_WRITEVBLK                  = 00000030                 IRP$L_FQFL                       0000005C                 
IO$_WRTTMKR                    = 0000001D                 IRP$L_FR3                        0000006C                 
IOC$CANCELIO                     ********   X   04        IRP$L_FR4                        00000070                 
KSDRIVER                        VAX/VMS KS 2050 SERIES CAMAC DRIVER      28-JAN-1983 14:41:34  VAX-11 Macro V03-00         Page  62
Symbol table                                                             25-JAN-1983 10:19:55  SYS$SYSROOT:[CAMAC.SOURCE]KSDRIVER(1)

IRP$L_IOQBL                      00000004                 IRP$V_FCODE                    = 00000000                 
IRP$L_IOQFL                      00000000                 IRP$V_FILACP                   = 0000000C                 
IRP$L_IOSB                       00000024                 IRP$V_FMOD                     = 00000006                 
IRP$L_IOST1                      00000038                 IRP$V_FUNC                     = 00000001                 
IRP$L_IOST2                      0000003C                 IRP$V_MBXIO                    = 0000000A                 
IRP$L_JNL_SEQNO                  00000048                 IRP$V_MODE                     = 00000000                 
IRP$L_LAMAST                     00000038                 IRP$V_MVIRP                    = 0000000D                 
IRP$L_LAMASTP                    0000003C                 IRP$V_PAGIO                    = 00000002                 
IRP$L_LBOFF                      0000008C                 IRP$V_PHYSIO                   = 00000008                 
IRP$L_LBUFH_AD                   00000088                 IRP$V_SWAPIO                   = 00000006                 
IRP$L_MEDIA                      00000038                 IRP$V_TERMIO                   = 00000009                 
IRP$L_MSG_BUF                    00000078                 IRP$V_VIRTUAL                  = 00000004                 
IRP$L_OBCNT                      00000044                 IRP$W_ABCNT                      00000040                 
IRP$L_PID                        0000000C                 IRP$W_BCNT                       00000032                 
IRP$L_RBOFF                      00000094                 IRP$W_BOFF                       00000030                 
IRP$L_RBUFH_AD                   00000090                 IRP$W_CDH                        0000003E                 
IRP$L_RSPID                      0000007C                 IRP$W_CDRPSIZE                   00000064                 
IRP$L_RWCPTR                     00000084                 IRP$W_CHAN                       00000028                 
IRP$L_SAVD_RTN                   00000074                 IRP$W_CMR                        0000003A                 
IRP$L_SEGVBN                     00000048                 IRP$W_CTR                        00000038                 
IRP$L_SEQNUM                     00000050                 IRP$W_DLR                        0000003C                 
IRP$L_SVAPTE                     0000002C                 IRP$W_FUNC                       00000020                 
IRP$L_TT_TERM                    0000003C                 IRP$W_OBCNT                      00000044                 
IRP$L_UBADDR                     00000040                 IRP$W_SIZE                       00000008                 
IRP$L_UBARSRCE                   00000098                 IRP$W_STS                        0000002A                 
IRP$L_UCB                        0000001C                 IRP$W_TT_PRMPT                   0000004C                 
IRP$L_WIND                       00000018                 IRP$W_WCR                        0000003C                 
IRP$L_XCT_LEN                    00000098                 IRPE$B_TYPE                      0000000A                 
IRP$M_BUFIO                    = 00000001                 IRPE$C_LENGTH                    00000058                 
IRP$M_CHAINED                  = 00000020                 IRPE$K_LENGTH                    00000058                 
IRP$M_COMPLX                   = 00000008                 IRPE$L_BCNT1                     00000034                 
IRP$M_DIAGBUF                  = 00000080                 IRPE$L_BCNT2                     00000040                 
IRP$M_EXTEND                   = 00000800                 IRPE$L_DPRMAP                    00000010                 
IRP$M_FCODE                    = 0000003F                 IRPE$L_EXTEND                    00000054                 
IRP$M_FILACP                   = 00001000                 IRPE$L_SVAPTE1                   0000002C                 
IRP$M_FUNC                     = 00000002                 IRPE$L_SVAPTE2                   00000038                 
IRP$M_MBXIO                    = 00000400                 IRPE$L_UBADDR                    0000000C                 
IRP$M_MVIRP                    = 00002000                 IRPE$M_EXTEND                  = 00000800                 
IRP$M_PAGIO                    = 00000004                 IRPE$V_EXTEND                  = 0000000B                 
IRP$M_PHYSIO                   = 00000100                 IRPE$W_BOFF1                     00000030                 
IRP$M_SWAPIO                   = 00000040                 IRPE$W_BOFF2                     0000003C                 
IRP$M_TERMIO                   = 00000200                 IRPE$W_SIZE                      00000008                 
IRP$M_VIRTUAL                  = 00000010                 IRPE$W_STS                       0000002A                 
IRP$Q_NT_PRVMSK                  00000040                 JIB$B_DAYTYPES                   0000000B                 
IRP$Q_TT_STATE                   00000040                 JIB$B_ODAYFLAGS                  00000067                 
IRP$S_FCODE                    = 00000006                 JIB$B_PDAYFLAGS                  00000063                 
IRP$S_FMOD                     = 0000000A                 JIB$B_TYPE                       0000000A                 
IRP$S_LBUFHNDL                 = 0000000C                 JIB$C_LENGTH                     00000068                 
IRP$S_MODE                     = 00000002                 JIB$K_LENGTH                     00000068                 
IRP$S_NT_PRVMSK                = 00000008                 JIB$L_ARB                        00000000                 
IRP$S_TT_STATE                 = 00000008                 JIB$L_BYTCNT                     00000010                 
IRP$T_LBUFHNDL                   0000008C                 JIB$L_BYTLM                      00000014                 
IRP$V_BUFIO                    = 00000000                 JIB$L_CPULIM                     00000030                 
IRP$V_CHAINED                  = 00000005                 JIB$L_JLNAMBL                    00000048                 
IRP$V_COMPLX                   = 00000003                 JIB$L_JLNAMFL                    00000044                 
IRP$V_DIAGBUF                  = 00000007                 JIB$L_MPID                       00000040                 
IRP$V_EXTEND                   = 0000000B                 JIB$L_ODAYHOURS                  00000064                 
KSDRIVER                        VAX/VMS KS 2050 SERIES CAMAC DRIVER      28-JAN-1983 14:41:34  VAX-11 Macro V03-00         Page  63
Symbol table                                                             25-JAN-1983 10:19:55  SYS$SYSROOT:[CAMAC.SOURCE]KSDRIVER(1)

JIB$L_PBYTCNT                    00000018                 KS_POST_LIO                      000006E4 R     04        
JIB$L_PBYTLIM                    0000001C                 KS_POST_PIO                      00000668 R     04        
JIB$L_PDAYHOURS                  00000060                 KS_PWR_DIO                       0000042B R     04        
JIB$L_PGFLCNT                    0000002C                 KS_PWR_LIO                       000004D0 R     04        
JIB$L_PGFLQUOTA                  00000028                 KS_PWR_PIO                       000003D9 R     04        
JIB$L_UIC                        0000000C                 KS_P_CMAX                      = 00000040                 
JIB$L_UICLIST                    0000000C                 KS_P_ERLENGTH                  = 00000086                 
JIB$Q_PRIV                       00000000                 KS_P_MAXM                      = 00000008                 
JIB$S_ACCOUNT                  = 00000008                 KS_P_NMAX                      = 0000001E                 
JIB$S_PRIV                     = 00000008                 KS_P_RSWAIT                    = 00000064                 
JIB$S_USERNAME                 = 0000000C                 KS_P_TOMAX                     = 00000005                 
JIB$T_ACCOUNT                    00000058                 KS_QCANIRP                       00000834 R     04        
JIB$T_USERNAME                   0000004C                 KS_Q_TO_ACP                      00000362 R     04        
JIB$V_DISDIALUP                = 00000000                 KS_Q_TO_ACPA                     00000376 R     04        
JIB$V_DISNETWORK               = 00000001                 KS_REG_DUMP                      000008A9 R     04        
JIB$V_TERMDIAL                 = 00000007                 KS_REQCOM                        00000785 R     04        
JIB$V_TERMRTA                  = 00000006                 KS_SETC_CRATE                    000002DB R     04        
JIB$W_ENQCNT                     0000003C                 KS_SETC_LAMS                     000002CF R     04        
JIB$W_ENQLM                      0000003E                 KS_START                         0000038F R     04        
JIB$W_FILCNT                     00000020                 KS_START_BADM                    000003B7 R     04        
JIB$W_FILLM                      00000022                 KS_START_COM                     000005B1 R     04        
JIB$W_PRCCNT                     00000034                 KS_START_DIO                     000003EE R     04        
JIB$W_PRCLIM                     00000036                 KS_START_LIO                     000004B4 R     04        
JIB$W_SHRFCNT                    00000038                 KS_START_PIO                     000003C1 R     04        
JIB$W_SHRFLIM                    0000003A                 KS_TIMEOUT                       0000060B R     04        
JIB$W_SIZE                       00000008                 KS_UNIT_INIT                     000000B5 R     04        
JIB$W_TQCNT                      00000024                 KS_V_PH                        = 00000008                 
JIB$W_TQLM                       00000026                 KS_W_CDH                         00000008                 
KS_ALOIRP                        00000274 R     04        KS_W_CMR                         00000006                 
KS_CAMIO_M0                      0000012B R     04        KS_W_CTR                         00000000                 
KS_CAMIO_M1                      0000018D R     04        KS_W_DCR                         0000000E                 
KS_CAMIO_M2                      0000018D R     04        KS_W_DFR                         0000000C                 
KS_CAMIO_M3                      0000018D R     04        KS_W_DLR                         0000000A                 
KS_CAMIO_M4                      000001EB R     04        KS_W_MAE                         00000018                 
KS_CAMIO_M8                      0000018D R     04        KS_W_PES                         00000004                 
KS_CAMIO_MERR                    00000122 R     04        KS_W_RMA                         0000001C                 
KS_CANCEL                        00000804 R     04        KS_W_SES                         00000002                 
KS_CONTROL_INIT                  0000007E R     04        KS_W_TMA                         0000001A                 
KS_DUMP_CNT                    = 0000000D                 KS_W_WCR                         0000001E                 
KS_END                           000008F7 R     04        KS_X_ERLS                      = 00000001                 
KS_FDT_ACP                       0000034A R     04        KS_X_LAMS                      = 00000001                 
KS_FDT_CAMIO                     000000EE R     04        KS_X_MULTI                     = 00000001                 
KS_FDT_LAMAST                    000002E2 R     04        KS_X_PFORM                     = 00000000                 
KS_FDT_MOUNT                     0000031C R     04        KS_X_SH                        = 00000001                 
KS_FDT_SENSM                     00000309 R     04        MAE_M_RMA                      = 00003000                 
KS_FDT_SETC                      0000029E R     04        MAE_M_TMA                      = 0000C000                 
KS_FORKACP                       0000087C R     04        MAE_S_RMA                      = 00000002                 
KS_FUNCTABLE                     00000026 R     04        MAE_S_TMA                      = 00000002                 
KS_ISR_DEMAND                    000007DC R     04        MAE_V_RMA                      = 0000000C                 
KS_ISR_DISMISS                   000007FF R     04        MAE_V_TMA                      = 0000000E                 
KS_ISR_DONE                      000007C4 R     04        MASKH                          = 00000080                 
KS_ISR_ERR                       000007C4 R     04        MASKL                          = 00000000                 
KS_MOVTOUSR                      0000079A R     04        P1                             = 00000000                 
KS_M_PH                        = 00000100                 P2                             = 00000004                 
KS_POSTIO                        00000644 R     04        P3                             = 00000008                 
KS_POST_BUG                      00000664 R     04        P4                             = 0000000C                 
KS_POST_DIO                      000006A2 R     04        P5                             = 00000010                 
KSDRIVER                        VAX/VMS KS 2050 SERIES CAMAC DRIVER      28-JAN-1983 14:41:34  VAX-11 Macro V03-00         Page  64
Symbol table                                                             25-JAN-1983 10:19:55  SYS$SYSROOT:[CAMAC.SOURCE]KSDRIVER(1)

P6                             = 00000014                 PCB$V_SSFEXC                   = 00000006                 
PCB$B_ASTACT                     0000000C                 PCB$V_SSFEXCE                  = 00000007                 
PCB$B_ASTEN                      0000000D                 PCB$V_SSFEXCS                  = 00000008                 
PCB$B_PRI                        0000000B                 PCB$V_SSFEXCU                  = 00000009                 
PCB$B_PRIB                       0000002F                 PCB$V_SSRWAIT                  = 0000000A                 
PCB$B_PRIBSAV                    00000029                 PCB$V_SUSPEN                   = 0000000B                 
PCB$B_PRISAV                     00000028                 PCB$V_SWPVBN                   = 00000010                 
PCB$B_TYPE                       0000000A                 PCB$V_WAKEPEN                  = 0000000C                 
PCB$B_WEFC                       0000002E                 PCB$V_WALL                     = 0000000D                 
PCB$C_LENGTH                     0000009C                 PCB$W_APTCNT                     00000030                 
PCB$K_LENGTH                     0000009C                 PCB$W_ASTCNT                     00000038                 
PCB$L_ARB                        00000084                 PCB$W_BIOCNT                     0000003A                 
PCB$L_ASTQBL                     00000014                 PCB$W_BIOLM                      0000003C                 
PCB$L_ASTQFL                     00000010                 PCB$W_DIOCNT                     0000003E                 
PCB$L_DLCKPRI                    00000094                 PCB$W_DIOLM                      00000040                 
PCB$L_EFC2P                      00000058                 PCB$W_GPGCNT                     00000034                 
PCB$L_EFC3P                      0000005C                 PCB$W_GRP                        0000008A                 
PCB$L_EFCS                       00000050                 PCB$W_MEM                        00000088                 
PCB$L_EFCU                       00000054                 PCB$W_MTXCNT                     0000000E                 
PCB$L_EFWM                       0000004C                 PCB$W_PPGCNT                     00000036                 
PCB$L_IPAST                      00000098                 PCB$W_PRCCNT                     00000042                 
PCB$L_JIB                        00000078                 PCB$W_SIZE                       00000008                 
PCB$L_LOCKQBL                    00000090                 PCB$W_STATE                      0000002C                 
PCB$L_LOCKQFL                    0000008C                 PCB$W_TMBU                       00000032                 
PCB$L_OWNER                      0000001C                 PCT_M_BGL                      = 00000100                 
PCB$L_PHD                        00000064                 PCT_M_DONE                     = 00000080                 
PCB$L_PHYPCB                     00000018                 PCT_M_ERR                      = 00008000                 
PCB$L_PID                        00000060                 PCT_M_GO                       = 00000001                 
PCB$L_PQB                        0000004C                 PCT_M_IE                       = 00000040                 
PCB$L_SQBL                       00000004                 PCT_M_M                        = 0000001E                 
PCB$L_SQFL                       00000000                 PCT_M_NXM                      = 00000200                 
PCB$L_STS                        00000024                 PCT_M_QDC                      = 00000400                 
PCB$L_UIC                        00000088                 PCT_M_RESET                    = 00000800                 
PCB$L_WSSWP                      00000020                 PCT_M_SSP                      = 00000020                 
PCB$L_WTIME                      00000028                 PCT_S_DONE                     = 00000001                 
PCB$Q_PRIV                       0000007C                 PCT_S_ERR                      = 00000001                 
PCB$S_LNAME                    = 00000010                 PCT_S_GO                       = 00000001                 
PCB$S_PRIV                     = 00000008                 PCT_S_IE                       = 00000001                 
PCB$S_TERMINAL                 = 00000008                 PCT_S_M                        = 00000004                 
PCB$T_LNAME                      00000068                 PCT_S_QDC                      = 00000001                 
PCB$T_TERMINAL                   00000044                 PCT_S_RESET                    = 00000001                 
PCB$V_ASTPEN                   = 00000011                 PCT_S_SSP                      = 00000001                 
PCB$V_BATCH                    = 0000000E                 PCT_V_BGL                      = 00000008                 
PCB$V_DELPEN                   = 00000001                 PCT_V_DONE                     = 00000007                 
PCB$V_DISAWS                   = 00000018                 PCT_V_ERR                      = 0000000F                 
PCB$V_FORCPEN                  = 00000002                 PCT_V_GO                       = 00000000                 
PCB$V_HIBER                    = 00000013                 PCT_V_IE                       = 00000006                 
PCB$V_INQUAN                   = 00000003                 PCT_V_M                        = 00000001                 
PCB$V_LOGIN                    = 00000014                 PCT_V_NXM                      = 00000009                 
PCB$V_NETWRK                   = 00000015                 PCT_V_QDC                      = 0000000A                 
PCB$V_NOACNT                   = 0000000F                 PCT_V_RESET                    = 0000000B                 
PCB$V_NODELET                  = 00000017                 PCT_V_SSP                      = 00000005                 
PCB$V_PHDRES                   = 00000012                 PES_M_BC                       = 0000007F                 
PCB$V_PSWAPM                   = 00000004                 PES_M_BD                       = 00000080                 
PCB$V_PWRAST                   = 00000016                 PES_M_BDIE                     = 00000400                 
PCB$V_RES                      = 00000000                 PES_M_BQ                       = 00004000                 
PCB$V_RESPEN                   = 00000005                 PES_M_BTO                      = 00008000                 
KSDRIVER                        VAX/VMS KS 2050 SERIES CAMAC DRIVER      28-JAN-1983 14:41:34  VAX-11 Macro V03-00         Page  65
Symbol table                                                             25-JAN-1983 10:19:55  SYS$SYSROOT:[CAMAC.SOURCE]KSDRIVER(1)

PES_M_BX                       = 00002000                 PR$_P0LR                       = 00000009                 
PES_M_ENAGL                    = 00000200                 PR$_P1BR                       = 0000000A                 
PES_M_NEXTBD                   = 00000100                 PR$_P1LR                       = 0000000B                 
PES_S_BC                       = 00000007                 PR$_PAMACC                     = 00000040                 
PES_S_BD                       = 00000001                 PR$_PAMLOC                     = 00000041                 
PES_S_BDIE                     = 00000001                 PR$_PCBB                       = 00000010                 
PES_S_BQ                       = 00000001                 PR$_PME                        = 0000003D                 
PES_S_BTO                      = 00000001                 PR$_RXCS                       = 00000020                 
PES_S_BX                       = 00000001                 PR$_RXDB                       = 00000021                 
PES_S_ENAGL                    = 00000001                 PR$_SBIER                      = 00000034                 
PES_S_NEXTBD                   = 00000001                 PR$_SBIFS                      = 00000030                 
PES_V_BC                       = 00000000                 PR$_SBIMT                      = 00000033                 
PES_V_BD                       = 00000007                 PR$_SBIQC                      = 00000036                 
PES_V_BDIE                     = 0000000A                 PR$_SBIS                       = 00000031                 
PES_V_BQ                       = 0000000E                 PR$_SBISC                      = 00000032                 
PES_V_BTO                      = 0000000F                 PR$_SBITA                      = 00000035                 
PES_V_BX                       = 0000000D                 PR$_SBR                        = 0000000C                 
PES_V_ENAGL                    = 00000009                 PR$_SCBB                       = 00000011                 
PES_V_NEXTBD                   = 00000008                 PR$_SID                        = 0000003E                 
PR$S_SID_ECO                   = 00000009                 PR$_SID_TYP730                 = 00000003                 
PR$S_SID_PL                    = 00000003                 PR$_SID_TYP750                 = 00000002                 
PR$S_SID_SN                    = 0000000C                 PR$_SID_TYP780                 = 00000001                 
PR$S_SID_TYPE                  = 00000008                 PR$_SID_TYP7VV                 = 00000004                 
PR$V_SID_ECO                   = 0000000F                 PR$_SID_TYPMAX                 = 00000004                 
PR$V_SID_PL                    = 0000000C                 PR$_SIRR                       = 00000014                 
PR$V_SID_SN                    = 00000000                 PR$_SISR                       = 00000015                 
PR$V_SID_TYPE                  = 00000018                 PR$_SLR                        = 0000000D                 
PR$_ACCR                       = 00000029                 PR$_SSP                        = 00000002                 
PR$_ACCS                       = 00000028                 PR$_TBCHK                      = 0000003F                 
PR$_ASTLVL                     = 00000013                 PR$_TBDR                       = 00000024                 
PR$_CADR                       = 00000025                 PR$_TBIA                       = 00000039                 
PR$_CAER                       = 00000027                 PR$_TBIS                       = 0000003A                 
PR$_CMIERR                     = 00000017                 PR$_TODR                       = 0000001B                 
PR$_CRBT                       = 00000043                 PR$_TXCS                       = 00000022                 
PR$_CSRD                       = 0000001D                 PR$_TXDB                       = 00000023                 
PR$_CSRS                       = 0000001C                 PR$_UBRESET                    = 00000037                 
PR$_CSTD                       = 0000001F                 PR$_USP                        = 00000003                 
PR$_CSTS                       = 0000001E                 PR$_WCSA                       = 0000002C                 
PR$_CSWP                       = 00000042                 PR$_WCSD                       = 0000002D                 
PR$_ESP                        = 00000001                 PRV$V_MOUNT                      ********   X   04        
PR$_ICCS                       = 00000018                 PSL$S_PRVMOD                     ********   X   04        
PR$_ICR                        = 0000001A                 PSL$V_PRVMOD                     ********   X   04        
PR$_IPL                        = 00000012                 RTB_K_LENGTH                     00000008                 
PR$_ISP                        = 00000004                 RTB_W_CDH                        00000006                 
PR$_KSP                        = 00000000                 RTB_W_CMR                        00000002                 
PR$_MAPEN                      = 00000038                 RTB_W_CTR                        00000000                 
PR$_MCESR                      = 00000026                 RTB_W_DLR                        00000004                 
PR$_MCTL1                      = 00000044                 SCT_M_BGL                      = 00000100                 
PR$_MCTL2                      = 00000045                 SCT_M_DONE                     = 00000080                 
PR$_MDCR1                      = 00000049                 SCT_M_ERR                      = 00008000                 
PR$_MEAR                       = 00000048                 SCT_M_GO                       = 00000001                 
PR$_MECCR                      = 0000004B                 SCT_M_IE                       = 00000040                 
PR$_MEDR                       = 0000004A                 SCT_M_M                        = 0000001E                 
PR$_MGEN                       = 00000046                 SCT_M_NXM                      = 00000200                 
PR$_MTBER                      = 00000047                 SCT_M_QDC                      = 00000400                 
PR$_NICR                       = 00000019                 SCT_M_RESET                    = 00000800                 
PR$_P0BR                       = 00000008                 SCT_M_SDR                      = 00007000                 
KSDRIVER                        VAX/VMS KS 2050 SERIES CAMAC DRIVER      28-JAN-1983 14:41:34  VAX-11 Macro V03-00         Page  66
Symbol table                                                             25-JAN-1983 10:19:55  SYS$SYSROOT:[CAMAC.SOURCE]KSDRIVER(1)

SCT_M_SSP                      = 00000020                 SES_V_SYNC                     = 00000005                 
SCT_S_DONE                     = 00000001                 SES_V_TMO                      = 00000006                 
SCT_S_ERR                      = 00000001                 SES_V_TPE                      = 00000009                 
SCT_S_GO                       = 00000001                 SH$DDT                           00000000 RG    04        
SCT_S_IE                       = 00000001                 SIZ...                         = 00000002                 
SCT_S_M                        = 00000004                 SS$_ABORT                      = 0000002C                 
SCT_S_QDC                      = 00000001                 SS$_ACCONFLICT                 = 00000800                 
SCT_S_RESET                    = 00000001                 SS$_ACCVIO                     = 0000000C                 
SCT_S_SDR                      = 00000003                 SS$_ACPVAFUL                   = 000002FC                 
SCT_S_SSP                      = 00000001                 SS$_ALRDYCLOSED                = 000006A9                 
SCT_V_BGL                      = 00000008                 SS$_ARTRES                     = 00000474                 
SCT_V_DONE                     = 00000007                 SS$_ASTFLT                     = 0000040C                 
SCT_V_ERR                      = 0000000F                 SS$_BADATTRIB                  = 00000034                 
SCT_V_GO                       = 00000000                 SS$_BADCHKSUM                  = 00000808                 
SCT_V_IE                       = 00000006                 SS$_BADESCAPE                  = 0000003C                 
SCT_V_M                        = 00000001                 SS$_BADFILEHDR                 = 00000810                 
SCT_V_NXM                      = 00000009                 SS$_BADFILENAME                = 00000818                 
SCT_V_QDC                      = 0000000A                 SS$_BADFILEVER                 = 00000820                 
SCT_V_RESET                    = 0000000B                 SS$_BADIMGHDR                  = 00000044                 
SCT_V_SDR                      = 0000000C                 SS$_BADIRECTORY                = 00000828                 
SCT_V_SSP                      = 00000005                 SS$_BADISD                     = 00002004                 
SES_M_DERR                     = 00000800                 SS$_BADPARAM                   = 00000014                 
SES_M_ERC                      = 00000007                 SS$_BADQFILE                   = 000003BC                 
SES_M_ERR                      = 00001000                 SS$_BADQUEUEHDR                = 00000394                 
SES_M_LPE                      = 00000400                 SS$_BADRCT                     = 0000216C                 
SES_M_LSYN                     = 00000010                 SS$_BADSTACK                   = 000002B4                 
SES_M_PH                       = 00000100                 SS$_BADVEC                     = 00002064                 
SES_M_REN                      = 00000008                 SS$_BEGOFFILE                  = 00000938                 
SES_M_SQ                       = 00004000                 SS$_BLOCKCNTERR                = 00000940                 
SES_M_STE                      = 00008000                 SS$_BREAK                      = 00000414                 
SES_M_SX                       = 00002000                 SS$_BUFBYTALI                  = 0000030C                 
SES_M_SYNC                     = 00000020                 SS$_BUFFEROVF                  = 00000601                 
SES_M_TMO                      = 00000040                 SS$_BUFNOTALIGN                = 00000324                 
SES_M_TPE                      = 00000200                 SS$_BUGCHECK                   = 000002A4                 
SES_S_DERR                     = 00000001                 SS$_CANCEL                     = 00000830                 
SES_S_ERC                      = 00000003                 SS$_CHAINW                     = 00000C0B                 
SES_S_ERR                      = 00000001                 SS$_CHANINTLK                  = 0000004C                 
SES_S_LPE                      = 00000001                 SS$_CLEARED                    = 00002104                 
SES_S_LSYN                     = 00000001                 SS$_CLIFRCEXT                  = 00000980                 
SES_S_PH                       = 00000001                 SS$_CMODSUPR                   = 0000041C                 
SES_S_REN                      = 00000001                 SS$_CMODUSER                   = 00000424                 
SES_S_SQ                       = 00000001                 SS$_COMMHARD                   = 000020C4                 
SES_S_STE                      = 00000001                 SS$_COMPAT                     = 0000042C                 
SES_S_SX                       = 00000001                 SS$_CONCEALED                  = 00000691                 
SES_S_SYNC                     = 00000001                 SS$_CONNECFAIL                 = 000020DC                 
SES_S_TMO                      = 00000001                 SS$_CONTINUE                   = 00000001                 
SES_S_TPE                      = 00000001                 SS$_CONTROLC                   = 00000651                 
SES_V_DERR                     = 0000000B                 SS$_CONTROLO                   = 00000609                 
SES_V_ERC                      = 00000000                 SS$_CONTROLY                   = 00000611                 
SES_V_ERR                      = 0000000C                 SS$_CREATED                    = 00000619                 
SES_V_LPE                      = 0000000A                 SS$_CTRLERR                    = 00000054                 
SES_V_LSYN                     = 00000004                 SS$_CVTUNGRANT                 = 0000213C                 
SES_V_PH                       = 00000008                 SS$_DATACHECK                  = 0000005C                 
SES_V_REN                      = 00000003                 SS$_DATAOVERUN                 = 00000838                 
SES_V_SQ                       = 0000000E                 SS$_DBGOPCREQ                  = 000006A1                 
SES_V_STE                      = 0000000F                 SS$_DEADLOCK                   = 00000E0A                 
SES_V_SX                       = 0000000D                 SS$_DEBUG                      = 0000046C                 
KSDRIVER                        VAX/VMS KS 2050 SERIES CAMAC DRIVER      28-JAN-1983 14:41:34  VAX-11 Macro V03-00         Page  67
Symbol table                                                             25-JAN-1983 10:19:55  SYS$SYSROOT:[CAMAC.SOURCE]KSDRIVER(1)

SS$_DECOVF                     = 000004A4                 SS$_FILELOCKED                 = 000008A8                 
SS$_DEVACTIVE                  = 000002C4                 SS$_FILENUMCHK                 = 000008B0                 
SS$_DEVALLOC                   = 00000840                 SS$_FILEPURGED                 = 00000679                 
SS$_DEVALRALLOC                = 00000641                 SS$_FILESEQCHK                 = 000008B8                 
SS$_DEVASSIGN                  = 00000848                 SS$_FILESTRUCT                 = 000008C0                 
SS$_DEVCMDERR                  = 0000032C                 SS$_FILNOTACC                  = 000000AC                 
SS$_DEVFOREIGN                 = 00000064                 SS$_FILNOTCNTG                 = 000002AC                 
SS$_DEVICEFULL                 = 00000850                 SS$_FILNOTEXP                  = 000000B4                 
SS$_DEVINACT                   = 000020D4                 SS$_FLTDIV                     = 00000494                 
SS$_DEVMOUNT                   = 0000006C                 SS$_FLTDIV_F                   = 000004BC                 
SS$_DEVNOTALLOC                = 00000858                 SS$_FLTOVF                     = 0000048C                 
SS$_DEVNOTDISM                 = 000021B4                 SS$_FLTOVF_F                   = 000004B4                 
SS$_DEVNOTMBX                  = 00000074                 SS$_FLTUND                     = 0000049C                 
SS$_DEVNOTMOUNT                = 0000007C                 SS$_FLTUND_F                   = 000004C4                 
SS$_DEVOFFLINE                 = 00000084                 SS$_FORCEDERROR                = 00002144                 
SS$_DEVREQERR                  = 00000334                 SS$_FORCEDEXIT                 = 0000217C                 
SS$_DGQINCOMP                  = 000009C0                 SS$_FORMAT                     = 000000BC                 
SS$_DIRALLOC                   = 000009C8                 SS$_GPTFULL                    = 000000C4                 
SS$_DIRFULL                    = 00000860                 SS$_GSDFULL                    = 000000CC                 
SS$_DIRNOTEMPTY                = 00002174                 SS$_HANGUP                     = 000002CC                 
SS$_DISCONNECT                 = 0000204C                 SS$_HEADERFULL                 = 000008C8                 
SS$_DRVERR                     = 0000008C                 SS$_IDMISMATCH                 = 000003F4                 
SS$_DUPDSKQUOTA                = 000003DC                 SS$_IDXFILEFULL                = 000008D0                 
SS$_DUPFILENAME                = 00000868                 SS$_ILLBLKNUM                  = 000000DC                 
SS$_DUPLNAM                    = 00000094                 SS$_ILLCDTST                   = 00002154                 
SS$_DUPUNIT                    = 000021C4                 SS$_ILLCNTRFUNC                = 000000E4                 
SS$_ENDOFFILE                  = 00000870                 SS$_ILLEFC                     = 000000EC                 
SS$_ENDOFTAPE                  = 00000878                 SS$_ILLIOFUNC                  = 000000F4                 
SS$_ENDOFUSRLBL                = 00000970                 SS$_ILLLBLAST                  = 00000968                 
SS$_ENDOFVOLUME                = 000009A0                 SS$_ILLPAGCNT                  = 000000FC                 
SS$_EOTIN                      = 00000C03                 SS$_ILLSELF                    = 0000214C                 
SS$_EXASTLM                    = 00002A04                 SS$_ILLSEQOP                   = 000002DC                 
SS$_EXBIOLM                    = 00002A0C                 SS$_ILLSER                     = 00000104                 
SS$_EXBYTLM                    = 00002A14                 SS$_ILLUSRLBLRD                = 00000958                 
SS$_EXCPUTIM                   = 000020AC                 SS$_ILLUSRLBLWT                = 00000960                 
SS$_EXDEPTH                    = 00000E1A                 SS$_INCOMPAT                   = 00000699                 
SS$_EXDIOLM                    = 00002A1C                 SS$_INCVOLLABEL                = 0000010C                 
SS$_EXDISKQUOTA                = 000003EC                 SS$_INHCHME                    = 000004D4                 
SS$_EXENQLM                    = 00002A44                 SS$_INHCHMK                    = 000004CC                 
SS$_EXFILLM                    = 00002A24                 SS$_INSFARG                    = 00000114                 
SS$_EXGBLPAGFIL                = 00002164                 SS$_INSFBUFDP                  = 0000033C                 
SS$_EXPGFLQUOTA                = 00002A2C                 SS$_INSFCDT                    = 000021AC                 
SS$_EXPORTQUOTA                = 000003AC                 SS$_INSFMAPREG                 = 00000344                 
SS$_EXPRCLM                    = 00002A34                 SS$_INSFMEM                    = 00000124                 
SS$_EXQUOTA                    = 0000001C                 SS$_INSFRAME                   = 0000012C                 
SS$_EXQUOTAEND                 = 00002AFF                 SS$_INSFSPTS                   = 00002044                 
SS$_EXQUOTASTRT                = 00002A00                 SS$_INSFWSL                    = 0000011C                 
SS$_EXTIDXFILE                 = 00000880                 SS$_INTDIV                     = 00000484                 
SS$_EXTQELM                    = 00002A3C                 SS$_INTERLOCK                  = 0000038C                 
SS$_FACILITY                   = 00000000                 SS$_INTOVF                     = 0000047C                 
SS$_FCPREADERR                 = 00000888                 SS$_INVLOGIN                   = 0000209C                 
SS$_FCPREPSTN                  = 00000988                 SS$_IVADDR                     = 00000134                 
SS$_FCPREWNDERR                = 00000890                 SS$_IVBUFLEN                   = 0000034C                 
SS$_FCPSPACERR                 = 00000898                 SS$_IVCHAN                     = 0000013C                 
SS$_FCPWRITERR                 = 000008A0                 SS$_IVCHAR                     = 000020CC                 
SS$_FILACCERR                  = 0000009C                 SS$_IVCHNLSEC                  = 0000026C                 
SS$_FILALRACC                  = 000000A4                 SS$_IVDEVNAM                   = 00000144                 
KSDRIVER                        VAX/VMS KS 2050 SERIES CAMAC DRIVER      28-JAN-1983 14:41:34  VAX-11 Macro V03-00         Page  68
Symbol table                                                             25-JAN-1983 10:19:55  SYS$SYSROOT:[CAMAC.SOURCE]KSDRIVER(1)

SS$_IVGSDNAM                   = 0000014C                 SS$_NOMOREPROC                 = 000009A8                 
SS$_IVLOCKID                   = 00002124                 SS$_NOMOUNT                    = 0000288C                 
SS$_IVLOGNAM                   = 00000154                 SS$_NONETMBX                   = 000028A4                 
SS$_IVLOGTAB                   = 0000015C                 SS$_NONEXDRV                   = 000001C4                 
SS$_IVLVEC                     = 0000203C                 SS$_NONEXPR                    = 000008E8                 
SS$_IVMODE                     = 00000354                 SS$_NONLOCAL                   = 000008F0                 
SS$_IVPROTECT                  = 000002F4                 SS$_NOOPER                     = 00002894                 
SS$_IVQUOTAL                   = 00000164                 SS$_NOP1VA                     = 00002024                 
SS$_IVSECFLG                   = 0000016C                 SS$_NOPFNMAP                   = 000028D4                 
SS$_IVSECIDCTL                 = 000002E4                 SS$_NOPHY_IO                   = 000028B4                 
SS$_IVSSRQ                     = 00000174                 SS$_NOPRIV                     = 00000024                 
SS$_IVSTSFLG                   = 0000017C                 SS$_NOPRIVEND                  = 000029FF                 
SS$_IVTIME                     = 00000184                 SS$_NOPRIVSTRT                 = 00002800                 
SS$_JBCERROR                   = 0000218C                 SS$_NOPRMCEB                   = 00002854                 
SS$_LCKPAGFUL                  = 000000D4                 SS$_NOPRMGBL                   = 000028C4                 
SS$_LENVIO                     = 0000018C                 SS$_NOPRMMBX                   = 0000285C                 
SS$_LINEABRT                   = 00000E02                 SS$_NOPSWAPM                   = 00002864                 
SS$_LINKABORT                  = 000020E4                 SS$_NOQFILE                    = 000003C4                 
SS$_LINKDISCON                 = 000020EC                 SS$_NORMAL                     = 00000001                 
SS$_LINKEXIT                   = 000020F4                 SS$_NOSETPRV                   = 00002874                 
SS$_LKWSETFUL                  = 00000194                 SS$_NOSHMBLOCK                 = 000003B4                 
SS$_MBFULL                     = 000008D8                 SS$_NOSHMEM                    = 000028DC                 
SS$_MBTOOSML                   = 0000019C                 SS$_NOSHRIMG                   = 000021BC                 
SS$_MCHECK                     = 000002BC                 SS$_NOSIGNAL                   = 00000900                 
SS$_MCNOTVALID                 = 0000035C                 SS$_NOSLOT                     = 0000039C                 
SS$_MEDOFL                     = 000001A4                 SS$_NOSOLICIT                  = 00000284                 
SS$_MSGNOTFND                  = 00000621                 SS$_NOSUCHDEV                  = 00000908                 
SS$_MTLBLLONG                  = 00000304                 SS$_NOSUCHFILE                 = 00000910                 
SS$_MULTRMS                    = 0000202C                 SS$_NOSUCHNODE                 = 0000028C                 
SS$_MUSTCLOSEFL                = 00000948                 SS$_NOSUCHOBJ                  = 000020A4                 
SS$_NOACNT                     = 0000284C                 SS$_NOSUCHSEC                  = 00000978                 
SS$_NOALLSPOOL                 = 00002824                 SS$_NOSUCHUSER                 = 00002084                 
SS$_NOALTPRI                   = 0000286C                 SS$_NOSYSGBL                   = 000028CC                 
SS$_NOAQB                      = 00000314                 SS$_NOSYSLCK                   = 000028F4                 
SS$_NOBUGCHK                   = 000028BC                 SS$_NOSYSNAM                   = 00002814                 
SS$_NOBYPASS                   = 000028EC                 SS$_NOSYSPRV                   = 000028E4                 
SS$_NOCMEXEC                   = 0000280C                 SS$_NOTALLPRIV                 = 00000681                 
SS$_NOCMKRNL                   = 00002804                 SS$_NOTAPEOP                   = 00000264                 
SS$_NODATA                     = 000001AC                 SS$_NOTCREATOR                 = 00000384                 
SS$_NODETACH                   = 0000282C                 SS$_NOTFILEDEV                 = 000001CC                 
SS$_NODEVAVL                   = 000009B0                 SS$_NOTINSTALL                 = 00002014                 
SS$_NODIAGNOSE                 = 00002834                 SS$_NOTINTBLSZ                 = 000001D4                 
SS$_NODISKQUOTA                = 000003E4                 SS$_NOTLABELMT                 = 000001DC                 
SS$_NOEXQUOTA                  = 0000289C                 SS$_NOTMODIFIED                = 00000659                 
SS$_NOGROUP                    = 00002844                 SS$_NOTMPMBX                   = 0000287C                 
SS$_NOGRPNAM                   = 0000281C                 SS$_NOTNETDEV                  = 000002EC                 
SS$_NOHANDLER                  = 000008F8                 SS$_NOTPRINTED                 = 00002184                 
SS$_NOHOMEBLK                  = 000008E0                 SS$_NOTQUEUED                  = 000009B8                 
SS$_NOIOCHAN                   = 000001B4                 SS$_NOTRAN                     = 00000629                 
SS$_NOLICENSE                  = 00002194                 SS$_NOTSQDEV                   = 000001E4                 
SS$_NOLINKS                    = 0000027C                 SS$_NOTVOLSET                  = 00000998                 
SS$_NOLISTENER                 = 0000215C                 SS$_NOVOLPRO                   = 000028AC                 
SS$_NOLOCKID                   = 00000E12                 SS$_NOWORLD                    = 00002884                 
SS$_NOLOGNAM                   = 000001BC                 SS$_NOWRT                      = 000003FC                 
SS$_NOLOG_IO                   = 0000283C                 SS$_OPCCUS                     = 00000434                 
SS$_NOMBX                      = 00000274                 SS$_OPCDEC                     = 0000043C                 
SS$_NOMOREFILES                = 00000930                 SS$_OPINCOMPL                  = 000002D4                 
KSDRIVER                        VAX/VMS KS 2050 SERIES CAMAC DRIVER      28-JAN-1983 14:41:34  VAX-11 Macro V03-00         Page  69
Symbol table                                                             25-JAN-1983 10:19:55  SYS$SYSROOT:[CAMAC.SOURCE]KSDRIVER(1)

SS$_OPRABORT                   = 000020B4                 SS$_VCCLOSED                   = 000021A4                 
SS$_OVRDSKQUOTA                = 00000669                 SS$_VECFULL                    = 00002034                 
SS$_PAGOWNVIO                  = 000001EC                 SS$_VECINUSE                   = 0000024C                 
SS$_PAGRDERR                   = 00000444                 SS$_VOLINV                     = 00000254                 
SS$_PARITY                     = 000001F4                 SS$_WAITUSRLBL                 = 00000950                 
SS$_PARNOTGRANT                = 00002134                 SS$_WASCLR                     = 00000001                 
SS$_PARTESCAPE                 = 000001FC                 SS$_WASECC                     = 00000639                 
SS$_PARTMAPPED                 = 00000E22                 SS$_WASSET                     = 00000009                 
SS$_PATHLOST                   = 000020FC                 SS$_WRITLCK                    = 0000025C                 
SS$_PFMBSY                     = 00000204                 SS$_WRONGACP                   = 0000031C                 
SS$_PLHLDR                     = 00000404                 UCB$B_AMOD                       00000053                 
SS$_POWERFAIL                  = 00000364                 UCB$B_CEX                        00000087                 
SS$_PRIVINSTALL                = 00002054                 UCB$B_CM1                        0000004A                 
SS$_PROTINSTALL                = 0000205C                 UCB$B_CM2                        0000004B                 
SS$_PROTOCOL                   = 00002074                 UCB$B_DEVCLASS                   00000038                 
SS$_PSTFULL                    = 0000020C                 UCB$B_DEVTYPE                    00000039                 
SS$_QFACTIVE                   = 000003CC                 UCB$B_DIPL                       00000052                 
SS$_QFNOTACT                   = 000003D4                 UCB$B_DX_SCTCNT                  000000B6                 
SS$_RADRMOD                    = 0000044C                 UCB$B_ERTCNT                     00000070                 
SS$_RDDELDATA                  = 00000661                 UCB$B_ERTMAX                     00000071                 
SS$_REJECT                     = 00000294                 UCB$B_FEX                        00000086                 
SS$_RELINK                     = 0000200C                 UCB$B_FIPL                       0000000B                 
SS$_REMOTE                     = 00000649                 UCB$B_JNL_NAM                    0000009C                 
SS$_REMRSRC                    = 0000206C                 UCB$B_LOCSRV                     0000003C                 
SS$_RESET                      = 0000210C                 UCB$B_OFFNDX                     000000A4                 
SS$_RESIGNAL                   = 00000918                 UCB$B_OFFRTC                     000000A5                 
SS$_RESULTOVF                  = 00000214                 UCB$B_REMSRV                     0000003D                 
SS$_ROPRAND                    = 00000454                 UCB$B_SECTORS                    0000003C                 
SS$_SECTBLFUL                  = 0000021C                 UCB$B_SLAVE                      00000084                 
SS$_SHARTOOBIG                 = 0000201C                 UCB$B_SPR                        00000085                 
SS$_SHMGSNOTMAP                = 0000036C                 UCB$B_STATE                      00000052                 
SS$_SHMNOTCNCT                 = 0000037C                 UCB$B_TRACKS                     0000003D                 
SS$_SHRIDMISMAT                = 000020BC                 UCB$B_TYPE                       0000000A                 
SS$_SHUT                       = 0000208C                 UCB$B_VERTSZ                     0000003F                 
SS$_SSFAIL                     = 0000045C                 UCB$C_JNL_LEN                    000000AE                 
SS$_SUBLOCKS                   = 0000212C                 UCB$C_LENGTH                     00000084                 
SS$_SUBRNG                     = 000004AC                 UCB$C_LOGLNK                   = 00000001                 
SS$_SUPERSEDE                  = 00000631                 UCB$C_MB_LENGTH                  000000A0                 
SS$_SUSPENDED                  = 000003A4                 UCB$K_JNL_LEN                    000000AE                 
SS$_SYNCH                      = 00000689                 UCB$K_KS_LEN                     0000009C                 
SS$_SYSVERDIF                  = 00000671                 UCB$K_LENGTH                     00000084                 
SS$_TAPEPOSLOST                = 00000224                 UCB$K_MB_LENGTH                  000000A0                 
SS$_TBIT                       = 00000464                 UCB$L_AMB                        00000054                 
SS$_THIRDPARTY                 = 0000207C                 UCB$L_ASTQBL                     00000010                 
SS$_TIMEOUT                    = 0000022C                 UCB$L_ASTQFL                     0000000C                 
SS$_TOOMANYLNAM                = 00000374                 UCB$L_CPID                       0000005C                 
SS$_TOOMANYREDS                = 0000211C                 UCB$L_CRB                        00000020                 
SS$_TOOMANYVER                 = 00000990                 UCB$L_DDB                        00000024                 
SS$_TOOMUCHDATA                = 0000029C                 UCB$L_DDT                        00000078                 
SS$_UNASEFC                    = 00000234                 UCB$L_DEVCHAR                    00000034                 
SS$_UNREACHABLE                = 00002094                 UCB$L_DEVDEPEND                  0000003C                 
SS$_UNSAFE                     = 0000023C                 UCB$L_DEVDEPND2                  00000080                 
SS$_UNSOLICIT                  = 00002114                 UCB$L_DMDAST                     00000098                 
SS$_UNWIND                     = 00000920                 UCB$L_DPC                        00000090                 
SS$_UNWINDING                  = 00000928                 UCB$L_DUETIM                     0000005C                 
SS$_VASFULL                    = 00000244                 UCB$L_DX_BFPNT                   000000AC                 
SS$_VCBROKEN                   = 0000219C                 UCB$L_DX_BUF                     000000A8                 
KSDRIVER                        VAX/VMS KS 2050 SERIES CAMAC DRIVER      28-JAN-1983 14:41:34  VAX-11 Macro V03-00         Page  70
Symbol table                                                             25-JAN-1983 10:19:55  SYS$SYSROOT:[CAMAC.SOURCE]KSDRIVER(1)

UCB$L_DX_RXDB                    000000B0                 UCB$M_MOUNTING                 = 00000200                 
UCB$L_EMB                        00000088                 UCB$M_NOCNVRT                  = 00000004                 
UCB$L_FIRST                      00000014                 UCB$M_NT_BFROVF                = 00000004                 
UCB$L_FPC                        0000000C                 UCB$M_NT_BREAK                 = 00000020                 
UCB$L_FQBL                       00000004                 UCB$M_NT_NAME                  = 00000010                 
UCB$L_FQFL                       00000000                 UCB$M_ONLINE                   = 00000010                 
UCB$L_FR3                        00000010                 UCB$M_PERM_JNL                 = 00000010                 
UCB$L_FR4                        00000014                 UCB$M_POWER                    = 00000020                 
UCB$L_HSU                        00000094                 UCB$M_PRMMBX                   = 00000001                 
UCB$L_IOQBL                      00000044                 UCB$M_SHMMBX                   = 00000008                 
UCB$L_IOQFL                      00000040                 UCB$M_TEMPLATE                 = 00002000                 
UCB$L_IRP                        0000004C                 UCB$M_TIM                      = 00000001                 
UCB$L_JNL_BCB                    00000084                 UCB$M_TIMOUT                   = 00000040                 
UCB$L_JNL_FQBL                   00000098                 UCB$M_TT_HANGUP                = 00000008                 
UCB$L_JNL_FQFL                   00000094                 UCB$M_TT_NOTIF                 = 00000004                 
UCB$L_JNL_QUOT                   000000A8                 UCB$M_TT_TIMO                  = 00000002                 
UCB$L_JNL_RUL                    00000088                 UCB$M_UNLOAD                   = 00001000                 
UCB$L_JNL_SEQNO                  0000003C                 UCB$M_VALID                    = 00000800                 
UCB$L_JNL_WQBL                   00000090                 UCB$M_WRONGVOL                 = 00008000                 
UCB$L_JNL_WQFL                   0000008C                 UCB$S_JNL_NAM                  = 0000000C                 
UCB$L_LINK                       0000002C                 UCB$S_LNKPRI                   = 00000002                 
UCB$L_LOGADR                     00000064                 UCB$S_LTYPE                    = 00000002                 
UCB$L_LSB                        00000098                 UCB$T_PARTNER                    0000000C                 
UCB$L_MAXBLOCK                   00000094                 UCB$V_BACKP                    = 00000005                 
UCB$L_MB_MBX                     0000008C                 UCB$V_BSY                      = 00000008                 
UCB$L_MB_PORT                    0000009C                 UCB$V_CANCEL                   = 00000003                 
UCB$L_MB_RAST                    00000088                 UCB$V_DEADMO                   = 0000000A                 
UCB$L_MB_SHB                     00000090                 UCB$V_DELMBX                   = 00000001                 
UCB$L_MB_WAST                    00000084                 UCB$V_DIAGBUF                  = 00000001                 
UCB$L_MB_WIOQBL                  00000098                 UCB$V_DX_WRITE                 = 00000003                 
UCB$L_MB_WIOQFL                  00000094                 UCB$V_ECC                      = 00000000                 
UCB$L_MEDIA                      0000009C                 UCB$V_ERLOGIP                  = 00000002                 
UCB$L_NT_DATSSB                  00000084                 UCB$V_INT                      = 00000001                 
UCB$L_NT_INTSSB                  00000088                 UCB$V_INTTYPE                  = 00000007                 
UCB$L_OPCNT                      00000060                 UCB$V_JOB                      = 00000000                 
UCB$L_OWNUIC                     0000001C                 UCB$V_LNKPRI                   = 00000006                 
UCB$L_PDT                        00000074                 UCB$V_LTYPE                    = 00000000                 
UCB$L_PID                        00000028                 UCB$V_MNTVERIP                 = 0000000E                 
UCB$L_RQBL                       00000004                 UCB$V_MOUNTING                 = 00000009                 
UCB$L_RQFL                       00000000                 UCB$V_MSGACK                   = 00000004                 
UCB$L_SVAPTE                     00000068                 UCB$V_MSGFLO                   = 00000003                 
UCB$L_SVPN                       00000064                 UCB$V_NOCNVRT                  = 00000002                 
UCB$L_TT_DEVDP1                  00000080                 UCB$V_NT_BFROVF                = 00000002                 
UCB$L_VCB                        00000030                 UCB$V_NT_BREAK                 = 00000005                 
UCB$M_BACKP                    = 00000020                 UCB$V_NT_NAME                  = 00000004                 
UCB$M_BSY                      = 00000100                 UCB$V_ONLINE                   = 00000004                 
UCB$M_CANCEL                   = 00000008                 UCB$V_PERM_JNL                 = 00000004                 
UCB$M_DEADMO                   = 00000400                 UCB$V_POWER                    = 00000005                 
UCB$M_DELMBX                   = 00000002                 UCB$V_PRMMBX                   = 00000000                 
UCB$M_DIAGBUF                  = 00000002                 UCB$V_SEGFLO                   = 00000002                 
UCB$M_DX_WRITE                 = 00000008                 UCB$V_SHMMBX                   = 00000003                 
UCB$M_ECC                      = 00000001                 UCB$V_TEMPLATE                 = 0000000D                 
UCB$M_ERLOGIP                  = 00000004                 UCB$V_TEMPL_BSY                = 00000005                 
UCB$M_INT                      = 00000002                 UCB$V_TIM                      = 00000000                 
UCB$M_INTTYPE                  = 00000080                 UCB$V_TIMOUT                   = 00000006                 
UCB$M_JOB                      = 00000001                 UCB$V_TT_HANGUP                = 00000003                 
UCB$M_MNTVERIP                 = 00004000                 UCB$V_TT_NOTIF                 = 00000002                 
KSDRIVER                        VAX/VMS KS 2050 SERIES CAMAC DRIVER      28-JAN-1983 14:41:34  VAX-11 Macro V03-00         Page  71
Symbol table                                                             25-JAN-1983 10:19:55  SYS$SYSROOT:[CAMAC.SOURCE]KSDRIVER(1)

UCB$V_TT_TIMO                  = 00000001                 VCB$B_SBMAPSIZE                  00000039                 
UCB$V_UNLOAD                   = 0000000C                 VCB$B_SBMAPVBN                   0000003B                 
UCB$V_VALID                    = 0000000B                 VCB$B_STATUS                     0000000B                 
UCB$V_WRONGVOL                 = 0000000F                 VCB$B_STATUS2                    00000053                 
UCB$W_BCNT                       0000006E                 VCB$B_TM                         0000002E                 
UCB$W_BCR                        000000A6                 VCB$B_TYPE                       0000000A                 
UCB$W_BOFF                       0000006C                 VCB$B_WINDOW                     00000048                 
UCB$W_BUFQUO                     00000018                 VCB$C_COMLEN                     00000024                 
UCB$W_BYTESTOGO                  0000003E                 VCB$C_JNL_LEN                    00000041                 
UCB$W_CHARGE                     0000004A                 VCB$C_LENGTH                     00000078                 
UCB$W_CYLINDERS                  0000003E                 VCB$C_MRKLEN                     0000000B                 
UCB$W_DA                         0000009C                 VCB$K_COMLEN                     00000024                 
UCB$W_DC                         0000009E                 VCB$K_JNL_LEN                    00000041                 
UCB$W_DEVBUFSIZ                  0000003A                 VCB$K_LENGTH                     00000078                 
UCB$W_DEVSTS                     0000005A                 VCB$K_MRKLEN                     0000000B                 
UCB$W_DIRSEQ                     00000098                 VCB$L_AQB                        00000010                 
UCB$W_DSTADDR                    00000018                 VCB$L_BLOCKBL                    00000004                 
UCB$W_DX_BCR                     000000B4                 VCB$L_BLOCKFL                    00000000                 
UCB$W_EC1                        000000A0                 VCB$L_CACHE                      00000058                 
UCB$W_EC2                        000000A2                 VCB$L_CUR_FID                    00000024                 
UCB$W_ERRCNT                     00000072                 VCB$L_FCBBL                      00000004                 
UCB$W_FUNC                       0000008E                 VCB$L_FCBFL                      00000000                 
UCB$W_JNL_ID                     000000AC                 VCB$L_FREE                       00000040                 
UCB$W_MB_SEED                    00000000                 VCB$L_HOME2LBN                   00000028                 
UCB$W_MSGCNT                     00000016                 VCB$L_HOMELBN                    00000024                 
UCB$W_MSGMAX                     00000014                 VCB$L_IBMAPLBN                   00000030                 
UCB$W_NT_CHAN                    0000008C                 VCB$L_IXHDR2LBN                  0000002C                 
UCB$W_OFFSET                     0000009A                 VCB$L_JNL_CHAR                   00000024                 
UCB$W_REFC                       00000050                 VCB$L_JNL_IRPS                   0000002C                 
UCB$W_RWAITCNT                   0000004A                 VCB$L_JNL_JFTA                   00000028                 
UCB$W_SIZE                       00000008                 VCB$L_JNL_JMT                    00000034                 
UCB$W_SRCADDR                    0000001A                 VCB$L_JNL_WCBBL                  0000003C                 
UCB$W_STS                        00000058                 VCB$L_JNL_WCBFL                  00000038                 
UCB$W_UNIT                       00000048                 VCB$L_MAXFILES                   00000044                 
UCB$W_VPROT                      0000001A                 VCB$L_MVL                        00000034                 
VA$M_BYTE                      = 000001FF                 VCB$L_QUOCACHE                   0000005C                 
VA$M_P1                        = 40000000                 VCB$L_QUOTAFCB                   00000054                 
VA$M_SYSTEM                    = 80000000                 VCB$L_RVT                        00000020                 
VA$M_VPG                       = FFFFFE00                 VCB$L_SBMAPLBN                   00000034                 
VA$M_VPN                       = 3FFFFE00                 VCB$L_SERIALNUM                  00000064                 
VA$S_BYTE                      = 00000009                 VCB$L_START_FID                  00000028                 
VA$S_VPG                       = 00000017                 VCB$L_ST_RECORD                  00000030                 
VA$S_VPN                       = 00000015                 VCB$L_USRLBLAST                  00000044                 
VA$V_BYTE                      = 00000000                 VCB$L_VPBL                       00000040                 
VA$V_P1                        = 0000001E                 VCB$L_VPFL                       0000003C                 
VA$V_SYSTEM                    = 0000001F                 VCB$L_WCB                        00000038                 
VA$V_VPG                       = 00000009                 VCB$M_CANCELIO                 = 00000020                 
VA$V_VPN                       = 00000009                 VCB$M_JNL_DISK                 = 00000001                 
VCB$B_BLOCKFACT                  00000052                 VCB$M_JNL_TAPE                 = 00000002                 
VCB$B_CUR_RVN                    0000002F                 VCB$M_MUSTCLOSE                = 00000040                 
VCB$B_EOFDELTA                   0000004E                 VCB$M_NOWRITE                  = 00000080                 
VCB$B_IBMAPSIZE                  00000038                 VCB$M_WAIMOUVOL                = 00000004                 
VCB$B_IBMAPVBN                   0000003A                 VCB$M_WAIREWIND                = 00000008                 
VCB$B_JNL_MODE                   00000040                 VCB$M_WAIUSRLBL                = 00000010                 
VCB$B_LRU_LIM                    00000049                 VCB$Q_RETAINMAX                  00000070                 
VCB$B_QNAMECNT                   0000000B                 VCB$Q_RETAINMIN                  00000068                 
VCB$B_RESFILES                   0000004F                 VCB$S_JNL_IRPS                 = 00000008                 
KSDRIVER                        VAX/VMS KS 2050 SERIES CAMAC DRIVER      28-JAN-1983 14:41:34  VAX-11 Macro V03-00         Page  72
Symbol table                                                             25-JAN-1983 10:19:55  SYS$SYSROOT:[CAMAC.SOURCE]KSDRIVER(1)

VCB$S_QNAME                    = 00000014                 VEC$L_START                      0000001C                 
VCB$S_RETAINMAX                = 00000008                 VEC$L_UNITDISC                   00000020                 
VCB$S_RETAINMIN                = 00000008                 VEC$L_UNITINIT                   00000018                 
VCB$S_VOLNAME                  = 0000000C                 VEC$M_LWAE                     = 00000020                 
VCB$T_QNAME                      0000000C                 VEC$M_MAPLOCK                  = 00008000                 
VCB$T_VOLNAME                    00000014                 VEC$M_PATHLOCK                 = 00000080                 
VCB$V_CANCELIO                 = 00000005                 VEC$Q_DISPATCH                   00000000                 
VCB$V_EBCDIC                   = 00000005                 VEC$S_DATAPATH                 = 00000005                 
VCB$V_EXTFID                   = 00000005                 VEC$S_DISPATCH                 = 00000008                 
VCB$V_GROUP                    = 00000006                 VEC$S_MAPREG                   = 0000000F                 
VCB$V_HOMBLKBAD                = 00000002                 VEC$V_DATAPATH                 = 00000000                 
VCB$V_IDXHDRBAD                = 00000003                 VEC$V_LWAE                     = 00000005                 
VCB$V_INTCHG                   = 00000004                 VEC$V_MAPLOCK                  = 0000000F                 
VCB$V_JNL_DISK                 = 00000000                 VEC$V_MAPREG                   = 00000000                 
VCB$V_JNL_TAPE                 = 00000001                 VEC$V_PATHLOCK                 = 00000007                 
VCB$V_LOGICEOVS                = 00000001                 VEC$W_MAPREG                     00000010                 
VCB$V_MOUNTVER                 = 00000002                 
VCB$V_MUSTCLOSE                = 00000006                 
VCB$V_NOALLOC                  = 00000004                 
VCB$V_NOCACHE                  = 00000001                 
VCB$V_NOHDR3                   = 00000007                 
VCB$V_NOWRITE                  = 00000007                 
VCB$V_OVRACC                   = 00000001                 
VCB$V_OVREXP                   = 00000000                 
VCB$V_OVRLBL                   = 00000002                 
VCB$V_OVRSETID                 = 00000003                 
VCB$V_PARTFILE                 = 00000000                 
VCB$V_STARFILE                 = 00000008                 
VCB$V_SYSTEM                   = 00000007                 
VCB$V_WAIMOUVOL                = 00000002                 
VCB$V_WAIREWIND                = 00000003                 
VCB$V_WAIUSRLBL                = 00000004                 
VCB$V_WRITETHRU                = 00000000                 
VCB$V_WRITE_IF                 = 00000000                 
VCB$V_WRITE_SM                 = 00000001                 
VCB$W_CLUSTER                    0000003C                 
VCB$W_CUR_NUM                    00000024                 
VCB$W_CUR_SEQ                    00000026                 
VCB$W_EXTEND                     0000003E                 
VCB$W_FILEPROT                   0000004A                 
VCB$W_MCOUNT                     0000004C                 
VCB$W_MODE                       0000002C                 
VCB$W_PENDERR                    00000062                 
VCB$W_QUOSIZE                    00000060                 
VCB$W_RECORDSZ                   00000050                 
VCB$W_RVN                        0000000E                 
VCB$W_SIZE                       00000008                 
VCB$W_START_NUM                  00000028                 
VCB$W_START_SEQ                  0000002A                 
VCB$W_TRANS                      0000000C                 
VEC$B_DATAPATH                   00000013                 
VEC$B_NUMREG                     00000012                 
VEC$C_LENGTH                     00000024                 
VEC$K_LENGTH                     00000024                 
VEC$L_ADP                        00000014                 
VEC$L_IDB                        00000008                 
VEC$L_INITIAL                    0000000C                 
KSDRIVER                        VAX/VMS KS 2050 SERIES CAMAC DRIVER      28-JAN-1983 14:41:34  VAX-11 Macro V03-00         Page  73
Psect synopsis                                                           25-JAN-1983 10:19:55  SYS$SYSROOT:[CAMAC.SOURCE]KSDRIVER(1)


                                                +----------------+
                                                ! 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$                           FFFFFFFF  (    0.)  02 (  2.)  NOPIC   USR   CON   ABS   LCL NOSHR   EXE   RD    WRT NOVEC BYTE  
$$$105_PROLOGUE                 0000006A  (  106.)  03 (  3.)  NOPIC   USR   CON   REL   LCL NOSHR   EXE   RD    WRT NOVEC BYTE  
$$$115_DRIVER                   000008F7  ( 2295.)  04 (  4.)  NOPIC   USR   CON   REL   LCL NOSHR   EXE   RD    WRT NOVEC LONG  

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

Phase                    Page faults    CPU Time       Elapsed Time   
-----                    -----------    --------       ------------   
Initialization                   24     00:00:00.06    00:00:00.20
Command processing               34     00:00:00.25    00:00:00.54
Pass 1                          890     00:00:29.49    00:00:31.05
Symbol table sort                 1     00:00:03.17    00:00:03.17
Pass 2                          464     00:00:06.83    00:00:07.24
Symbol table output               5     00:00:01.27    00:00:01.35
Psect synopsis output             3     00:00:00.02    00:00:00.02
Cross-reference output            0     00:00:00.00    00:00:00.00
Assembler run totals           1425     00:00:41.13    00:00:43.59

The working set limit was 1024 pages.
192431 bytes (376 pages) of virtual memory were used to buffer the intermediate code.
There were 110 pages of symbol table space allocated to hold 2125 non-local and 74 local symbols.
2223 source lines were read in Pass 1, producing 24 object records in Pass 2.
78 pages of virtual memory were used to define 70 macros.

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

Macro library name                           Macros defined      
------------------                           --------------      
SYS$SYSROOT:[CAMAC.SOURCE]CAMDEF.MLB;1                  6        
SYS$SYSROOT:[SYSLIB]LIB.MLB;1                          44        
SYS$SYSROOT:[SYSLIB]STARLET.MLB;1                      10        
TOTALS (all libraries)                                 60        

2641 GETS were required to define 60 macros.

There were no errors, warnings or information messages.

/OBJ=SHDRIVER/LIST=SHDRIVER KSDRIVER.MAR/UPDATE=SHDRIVER.SLP
