KSCAMACP KS 2050 SERIES CAMAC ACP 27-APR-1983 10:15:30 VAX-11 Macro V03-00 Page 0 Table of contents (1) 6 MODULE HEADER (1) 138 LOCAL MACRO DEFINITIONS (1) 209 SYSTEM AND CAMAC STRUC DEFINITIONS (1) 247 IMAGE DATA SECTION (1) 284 KSP_MAIN, MAIN PROCEDURE (1) 334 KSP_UMINIT, USER MODE INITIALIZATION (1) 374 KSP_KMCALL, KERNEL MODE ENTRY PROCEDURE (1) 407 KSP_KMEXHAND, KERNEL MODE EXCEPTION HAND (1) 456 KSP_LOGERR, LOG EXCEPTION TO SYSTEM ERRO (1) 523 KSP_KMINIT KERNEL MODE INITIALIZATION (1) 618 KSP_KMCAMIRP, CAMAC IRP SERVICE PROCEDUR (1) 699 KSP_MOUNT, MOUNT IRP REQUEST (1) 737 KSP_ACPCTL, ACP CONTROL IRP REQUEST (1) 783 KSP_TERMALL, TERMINATE LAM SUPPORT FOR A (1) 821 KSP_DEACCESS, DEACCESS IRP PROCEDURE (1) 882 KSP_LAMAST LAM AST IRP REQUEST (1) 941 KSP_SETLAM, SET LAM AST REQUEST FOR C+N (1) 1008 KSP_CANLAM, CANCEL LAM FOR SPECIFIED C+N (1) 1073 KSP_SETCHAR SETCHAR IRP REQUEST ACTION P (1) 1138 KSP_SETC_CONL, SET CAMAC CRATE ON-LINE (1) 1243 KSP_SETC_COFL, SET CAMAC CRATE OFF-LINE (1) 1313 KSP_SETC_EABL, ENABLE LAM SERVICE FOR CR (1) 1366 KSP_SETC_DABL, DISABLE LAM SERVICE FOR C (1) 1409 KSP_ENLAMS, ENABLE LAM DEMAND GENERATION (1) 1494 KSP_TERMLAMS, TERMINATE LAM SUPPORT FOR (1) 1551 KSP_FLUSHCSU, FLUSH ALL PENDING LAM AST' (1) 1700 KSP_DMDAST, DEMAND SERVICE AST PROCEDURE (1) 1860 KSP_DMDXHAND, DEMAND AST EXCEPTION HANDL (1) 1926 KSP_PIO, INTERNAL CAMAC PROGRAMMED I/O P (1) 2023 KSP_WAITQ, WAIT FOR ACP WORK (1) 2090 KSP_POSTIRP POST IRP FOR I/O COMPLETION (1) 2145 KSP_ENDMANDS ENABLE DEMAND INTERRUPTS (1) 2216 KSP_DBDMANDS, DISABLE CAMAC DEMANDS (1) 2264 LOCATE CRATE SUPPORT UNIT UCB (1) 2306 KSP_ALOLSB, ALLOCATE LAM SUPPORT BLOCK (1) 2350 KSP_DEALSB, DEALLOCATE LAM SUPPORT BLOCK (1) 2381 KSP_SETLAMAST, SET LAM ATTENTION AST (1) 2442 KSP_CANLAMAST CANCEL LAM AST (1) 2498 KSP_FLUSHAST, FLUSH AST LIST (1) 2548 KSP_DELAMAST DELIVER LAM AST LIST KSCAMACP KS 2050 SERIES CAMAC ACP 27-APR-1983 10:15:30 VAX-11 Macro V03-00 Page 1 V02-003 27-APR-1983 10:12:55 SYS$SYSDEVICE:[CAMAC.SOURCE]KSCAMA(1) 0000 1 .TITLE KSCAMACP KS 2050 SERIES CAMAC ACP 0000 2 .IDENT 'V02-003' 00000001 0000 .1 KS_X_PH = 1 ; PARALLEL ACP SWITCH 0000 3 .NOSHOW CONDITIONALS 0000 4 .LIBRARY /SYS$LIBRARY:LIB/ ; SYSTEM MACRO LIBRARY 0000 5 .LIBRARY /CAMDEF/ ; CAMAC MACRO LIBRARY 0000 6 .SBTTL MODULE HEADER 0000 7 ;++ 0000 8 ; 0000 9 ; FACILITY 0000 10 ; OAK RIDGE NATIONAL LABORATORY 0000 11 ; FUSION ENERGY DIVISION 0000 12 ; TOKAMAK SECTION 0000 13 ; 0000 14 ; ABSTRACT 0000 15 ; 0000 16 ; This program provides ACP level support for the ORNL 0000 17 ; Fusion Energy Division VAX 11/780 CAMAC system. It 0000 18 ; interfaces to the CAMAC device driver as foreign ACP. 0000 19 ; 0000 20 ; The CAMAC ACP IRP queue provides a means of queueing 0000 21 ; I/O requests from the device driver FDT level processing 0000 22 ; to the CAMAC ACP process. The following I/O function codes 0000 23 ; are recognized and processed accordingly by the CAMAC ACP. 0000 24 ; I/O functions(+modifiers) and associated processing: 0000 25 ; 0000 26 ; IO$_SETCHAR+IO$M_CONLINE(PHYS_IO) 0000 27 ; This function code signals that a crate unit has been 0000 28 ; brought to an operational state ready to accept CAMAC 0000 29 ; transactions. If LAM support is enabled for this particular 0000 30 ; crate, the LAM encoder module is initialized(reset) and 0000 31 ; demands are enabled in the crate controller. 0000 32 ; 0000 33 ; IO$_SETCHAR+IO$M_COFFLINE(PHYS_IO) 0000 34 ; This function code signals that a crate unit has been declared 0000 35 ; inoperational and should not accept further CAMAC transactions. 0000 36 ; If LAM management support is enabled for the specified 0000 37 ; CAMAC crate, all pending LAM attention AST's are flushed 0000 38 ; and an attempt is made to disable demands from the 0000 39 ; specified CAMAC crate. 0000 40 ; 0000 41 ; IO$_SETCHAR+IO$M_ENLAMS(PHYS_IO) 0000 42 ; This function code signals that LAM management support 0000 43 ; is to be enabled for the CAMAC crate specified in the 0000 44 ; IRP. The action taken by the CAMAC ACP consists of 0000 45 ; allocating the LAM Support Block(LSB) from nonpaged 0000 46 ; pool, initializing the LAM AST listheads, linking the 0000 47 ; LSB into the Crate Support Unit UCB for the specified 0000 48 ; CAMAC crate and enabling serial demand generation from 0000 49 ; that crate controller. 0000 50 ; 0000 51 ; IO$_SETCHAR+IO$M_DABLAMS(PHYS_IO) 0000 52 ; This function code signals that LAM management support is 0000 53 ; to be disabled for the CAMAC crate specified in the IRP. 0000 54 ; Further demands from the specified CAMAC crate are 0000 55 ; disabled. Then, all pending LAM AST control blocks are 0000 56 ; flushed back to nonpaged pool, with the associated process KSCAMACP KS 2050 SERIES CAMAC ACP 27-APR-1983 10:15:30 VAX-11 Macro V03-00 Page 2 V02-003 MODULE HEADER 27-APR-1983 10:12:55 SYS$SYSDEVICE:[CAMAC.SOURCE]KSCAMA(1) 0000 57 ; AST count adjusted accordingly. Finally, the LAM support 0000 58 ; block is released back to nonpaged pool. 0000 59 ; 0000 60 ; IO$_LAMAST(VIRTUAL I/O) 0000 61 ; This function code signals that the requesting process desires 0000 62 ; to set a LAM AST for the CAMAC crate and station specified in the 0000 63 ; IRP. If LAM support is enabled for the specified crate and the 0000 64 ; requesting process has sufficient AST quota remaining, an AST 0000 65 ; control block is allocated from nonpaged pool and linked to 0000 66 ; the appropriate LAM listhead in the LAM support block for the 0000 67 ; specified crate. Then demand generation is enabled for the specified 0000 68 ; crate and station in the LAM encoder module. 0000 69 ; 0000 70 ; IO$_LAMAST+IO$M_CANLAM(VIRTUAL I/O) 0000 71 ; This function code signals that the requesting process desires 0000 72 ; to cancel all pending LAM AST's for the CAMAC crate and station 0000 73 ; specified in the IRP. The AST control blocks owned by the 0000 74 ; requesting process are released back to nonpaged pool, with the 0000 75 ; process AST count adjusted accordingly. Then, if no further LAM 0000 76 ; AST's are pending for the specified station, demand generation 0000 77 ; is disabled for that station in the LAM encoder module. 0000 78 ; 0000 79 ; IO$_ACPCONTROL(VIRTUAL I/O) 0000 80 ; This function code represents a "null" signal to the ACP. It 0000 81 ; serves as a vehicle to awaken the ACP only. The ACP only responds 0000 82 ; with positive action for this code if the associated unit is 0000 83 ; marked for dismount by the dismount image(DMOUNTCAM.EXE). 0000 84 ; 0000 85 ; IO$_DEACCESS(VIRTUAL I/O) 0000 86 ; This function code is used as an internal signal from the CAMAC 0000 87 ; device driver to the CAMAC ACP to signal that a VMS I/O channel 0000 88 ; is being deassigned from the specified unit. The ACP responds 0000 89 ; by flushing any AST control blocks associated with the crate unit 0000 90 ; that are owned by the specified process. The process AST count is 0000 91 ; adjusted accordingly. Note that this I/O function code is not 0000 92 ; a legal KS I/O driver function code. Attempts to perform a QIO to 0000 93 ; the ACP(through KSDRIVER) using this function code will result in 0000 94 ; illegal I/O function code status. 0000 95 ; 0000 96 ; 0000 97 ; AUTHOR 0000 98 ; E.T. Blair 0000 99 ; 0000 100 ; REVISION HISTORY 0000 101 ; V01-001,17-AUG-1982, E.T. Blair 0000 102 ; Enhance program documentation. No code changes of any sort are 0000 103 ; included in this minor revision. 0000 104 ; 0000 105 ; V02-000,E.T. Blair,31-AUG-1982 0000 106 ; Corrected inconsistencies to enable the use of the Crate Support Unit 0000 107 ; unit number field as the crate number for all internal references to 0000 108 ; the CAMAC crate number vs. the previous method of relying on the 0000 109 ; crate number from the IRP. Now only the SETCHAR requests require a 0000 110 ; crate number in the IRP and it is only used to locate the CSU for 0000 111 ; the specified crate. Other minor changes have been made to failure 0000 112 ; status returned form the ACP in some situations in an attempt to 0000 113 ; more appropriately identify the nature of the failure. KSCAMACP KS 2050 SERIES CAMAC ACP 27-APR-1983 10:15:30 VAX-11 Macro V03-00 Page 3 V02-003 MODULE HEADER 27-APR-1983 10:12:55 SYS$SYSDEVICE:[CAMAC.SOURCE]KSCAMA(1) 0000 114 ; 0000 115 ; V02-001,E.T. Blair,1-SEP-1982 0000 116 ; Modify the KSP_SETC_CONL procedure to ignore the status from 0000 117 ; the CAMAC request to perform the UNBYPASS+DWAY Z operations. 0000 118 ; If the crate has a U-Port adapter in it and the crate is 0000 119 ; in BYPASS state, the U-Port passes the command header at the 0000 120 ; same time the L2 is processing it, resulting in the KS 2050 0000 121 ; receiving the command header vs. the truncated command header 0000 122 ; and thus generating an error. Also, modify KSP_SETC_COFL to 0000 123 ; interlock aganist performing the operation if the CSU is 'OFFLINE'. 0000 124 ; 0000 125 ; V02-002, E.T. Blair, 8-Dec-1982 0000 126 ; Modified register save mask for KSP_DELAMAST procedure to include 0000 127 ; R3. Under certain conditions, SCH$QUEAST may modify the value of R3. 0000 128 ; 0000 129 ; V02-003, E.T. Blair, 27-APR-1983 0000 130 ; Modified demand AST service routine KSP_DMDAST(serial and parallel) 0000 131 ; to check for dismount status before attempting to service demands. 0000 132 ; A malfunctioning CAMAC crate controller can prevent the ACP from 0000 133 ; dismounting by generating a continuous stream of demands so that 0000 134 ; it never gets a chance to return to the KSP_WAIT routine where normal 0000 135 ; dismount processing takes place. 0000 136 ;-- KSCAMACP KS 2050 SERIES CAMAC ACP 27-APR-1983 10:15:30 VAX-11 Macro V03-00 Page 4 V02-003 LOCAL MACRO DEFINITIONS 27-APR-1983 10:12:55 SYS$SYSDEVICE:[CAMAC.SOURCE]KSCAMA(1) 0000 138 .SBTTL LOCAL MACRO DEFINITIONS 0000 139 .MACRO $CAMPIO_S,EFN,CHAN,CRATE,STATION,SUBAD,FUNC,DATA 0000 140 .IF NB,DATA 0000 141 .IF DF,KS_X_SH 0000 142 PUSHL DATA ; DATA VALUE 0000 143 .ENDC 0000 144 .IF DF,KS_X_PH 0000 145 PUSHAB DATA 0000 146 .ENDC 0000 147 .IFF 0000 148 CLRL -(SP) ; ZERO DATA VALUE 0000 149 .ENDC 0000 150 .IF NB,FUNC 0000 151 MOVZBL FUNC,-(SP) ; CAMAC F 0000 152 .IFF 0000 153 .ERROR 0 ; MISSING CAMAC FUNCTION CODE 0000 154 .MEXIT 0000 155 .ENDC 0000 156 .IF NB,SUBAD 0000 157 MOVZBL SUBAD,-(SP) ; CAMAC A 0000 158 .IFF 0000 159 .ERROR 0 ; MISSING CAMAC SUBADDRESS 0000 160 .MEXIT 0000 161 .ENDC 0000 162 .IF NB,STATION 0000 163 MOVZBL STATION,-(SP) ; CAMAC N 0000 164 .IFF 0000 165 .ERROR 0 ; MISSING CAMAC STATION 0000 166 .MEXIT 0000 167 .ENDC 0000 168 .IF NB,CRATE 0000 169 MOVZBL CRATE,-(SP) ; CAMAC C 0000 170 .IFF 0000 171 .ERROR 0 ; MISSING CAMAC CRATE 0000 172 .MEXIT 0000 173 .ENDC 0000 174 .IF NB,CHAN 0000 175 MOVZWL CHAN,-(SP) ; VMS CHANNEL 0000 176 .IFF 0000 177 .ERROR 0 ; MISSING VMS CHANNEL 0000 178 .MEXIT 0000 179 .ENDC 0000 180 .IF NB,EFN 0000 181 MOVZBL EFN,-(SP) ; EVENT FLAG 0000 182 .IFF 0000 183 CLRL -(SP) ; USE EFN #0 0000 184 .ENDC 0000 185 CALLS #7,KSP_PIO ; CALL INTERNAL PIO 0000 186 .ENDM $CAMPIO_S 0000 187 .MACRO $LOCPCB,PID 0000 188 .IF B,PID 0000 189 .ERROR 0 ; MISSING PID 0000 190 .MEXIT 0000 191 .ENDC 0000 192 MOVL G^SCH$GL_PCBVEC,-(SP) ; ADDRESS OF PCB VEC 0000 193 MOVZWL PID,R4 ; GET PCB INDEX 0000 194 MOVL @(SP)+[R4],R4 ; GET PCB ADDRESS KSCAMACP KS 2050 SERIES CAMAC ACP 27-APR-1983 10:15:30 VAX-11 Macro V03-00 Page 5 V02-003 LOCAL MACRO DEFINITIONS 27-APR-1983 10:12:55 SYS$SYSDEVICE:[CAMAC.SOURCE]KSCAMA(1) 0000 195 .ENDM $LOCPCB 0000 196 .MACRO $CAMSTAT,CODE 0000 197 .IF B,CODE 0000 198 .ERROR 0 ; MISSING STATUS CODE 0000 199 .MEXIT 0000 200 .ENDC 0000 201 .IF DF,KS_X_SH 0000 202 MOVL #SH$_'CODE',R0 ; GET SERIAL CODE 0000 203 .ENDC 0000 204 .IF DF,KS_X_PH 0000 205 MOVL #PH$_'CODE',R0 ; GET PARALLEL CODE 0000 206 .ENDC 0000 207 .ENDM $CAMSTAT KSCAMACP KS 2050 SERIES CAMAC ACP 27-APR-1983 10:15:30 VAX-11 Macro V03-00 Page 6 V02-003 SYSTEM AND CAMAC STRUC DEFINITIONS 27-APR-1983 10:12:55 SYS$SYSDEVICE:[CAMAC.SOURCE]KSCAMA(1) 0000 209 .SBTTL SYSTEM AND CAMAC STRUC DEFINITIONS 0000 210 $AQBDEF ; ACP CONTROL BLOCK 0000 211 $ACBDEF ; AST CONTROL LOCK 0000 212 $CCBDEF ; CHANNEL CONTROL BLOCK 0000 213 $CHFDEF ; CONDITION HANDLER STRUCS 0000 214 $CRBDEF ; CONTROLLER REQUEST BLOCK 0000 215 $IDBDEF ; INTERRUPT DATA BLOCK 0000 216 $JPIDEF ; JPI CODES 0000 217 $PCBDEF ; PROCESS CONTROL BLOCK 0000 218 $SSDEF ; SYSTEM STATUS 0000 219 $VCBDEF ; VOL CONTROL BLOCK 0000 220 $VECDEF ; VECTOR TRANSFER BLOCK 0000 221 $PRDEF ; PROCESSOR REGISTER DEFS 0000 222 $PRIDEF ; PROCESS PRIORITY DEFINITIONS 0000 223 $PSLDEF ; PROC STATUS LONGWORD 0000 224 $IPLDEF ; PROCESSOR IPL DEFINITIONS 0000 225 ; 0000 226 ; HIGHWAY DEPENDENT CAMAC STRUCTURE DEFINITIONS 0000 227 ; 0000 234 $PHPARMS ; PARALLEL HIGHWAY PARAMETERS/SWITCHES 0000 235 $PHMSG ; PARALLEL MESSAGE CODES 0000 237 ; 0000 238 ; HIGHWAY INDEPENDENT CAMAC STRUCTURE DEFINITIONS 0000 239 ; 0000 240 $KSIRPDEF ; CAMAC IRP STRUC 0000 241 $KSUCBDEF ; CAMAC UCB STRUC 0000 242 $KSREGS ; CAMAC REGISTER TEMPLATES 0000 243 $KSIODEF ; CAMAC I/O FUNCTIONS 0000 244 $RTBDEF ; CAMAC REG TEMPLATE BLOCK 0000 245 $LSBDEF ; LAM SUPPORT BLOCK STRUC KSCAMACP KS 2050 SERIES CAMAC ACP 27-APR-1983 10:15:30 VAX-11 Macro V03-00 Page 7 V02-003 IMAGE DATA SECTION 27-APR-1983 10:12:55 SYS$SYSDEVICE:[CAMAC.SOURCE]KSCAMA(1) 0000 247 .SBTTL IMAGE DATA SECTION 00000000 248 .PSECT $DATA,NOSHR,NOEXE 000000C8 0000 249 KSP_ACPTYPE = 200 ; CAMAC ACP TYPE CODE 0000 250 0000 251 KSP_ARG_KMINIT: 00000001 0000 252 .LONG 1 ; ARG COUNT 0000014C' 0004 253 .ADDRESS KSP_KMINIT ; PROCEDURE ENTRY ADDRESS 0008 254 KSP_ARG_KMLAMS: 00000001 0008 255 .LONG 1 ; ARG COUNT 0000022E' 000C 256 .ADDRESS KSP_KMCAMIRP ; PROCEDURE ENTRY ADDRESS 0010 257 KSP_JPILST: 0010 258 JPI_ITEM - ; PROCESS ID ITEM 0010 259 4,JPI$_PID,KSP_PID 001C 260 JPI_ITEM - ; PROCESS NAME 001C 261 16,JPI$_PRCNAM,KSP_PRCNAM,KSP_PRCNID 0028 262 JPI_ITEM ; END OF ITEM LIST 002C 263 KSP_PID: 00000000 002C 264 .LONG 0 ; CAMAC ACP PID 0030 265 KSP_PRCNID: 00000000 0030 266 .LONG 0 ; LENGTH 00000038' 0034 267 .ADDRESS KSP_PRCNAM ; BUFFER ADDRESS 0038 268 KSP_PRCNAM: 00000048 0038 269 .BLKB 16 ; PROCESS NAME BUFFER 0048 270 KSP_LWSRANGE: 00000913' 0048 271 .ADDRESS KSP_LWSBEG ; START OF LOCK RANGE 00000C5D' 004C 272 .ADDRESS KSP_LWSEND ; END OF LOCK RANGE 0050 273 KSP_AQB: 00000000 0050 274 .LONG 0 ; ACP CONTROL BLOCK 0054 275 KSP_HSUUCB: 00000000 0054 276 .LONG 0 ; HSU UCB ADDRESS 0058 277 KSP_HSUCHAN: 0000 0058 278 .WORD 0 ; LAM SUPPORT UNIT CHANNEL 005A 279 KSP_HSU: 00000062'010E0000' 005A 280 .ASCID /SYS$INPUT/ ; LAM SUPP UNIT 4E 49 24 53 59 53 0062 54 55 50 0068 006B 281 .DSABL LSB KSCAMACP KS 2050 SERIES CAMAC ACP 27-APR-1983 10:15:30 VAX-11 Macro V03-00 Page 8 V02-003 IMAGE DATA SECTION 27-APR-1983 10:12:55 SYS$SYSDEVICE:[CAMAC.SOURCE]KSCAMA(1) 00000000 283 .PSECT $CODE,SHR,NOWRT 0000 284 .SBTTL KSP_MAIN, MAIN PROCEDURE 0000 285 .ENABL LSB 0000 286 ;++ 0000 287 ; 0000 288 ; Procedure: 0000 289 ; KSP_MAIN 0000 290 ; 0000 291 ; Description: 0000 292 ; This is the MAIN procedure for the CAMAC ACP. It receives 0000 293 ; entry upon the first QIO call from the CAMAC device driver 0000 294 ; in response to a 'MOUNT' I/O function from the ACP mount 0000 295 ; image. A user mode initialization procedure is called first, 0000 296 ; followed by necessary kernel mode initialization. The IRP 0000 297 ; service procedure is then called(to execute in kernel mode) 0000 298 ; place the ACP into it's normal mode of operation. 0000 299 ; 0000 300 ; Inputs: 0000 301 ; 0000 302 ; Outputs: 0000 303 ; 0000 304 ;-- 0000 305 0000 306 KSP_MAIN: 0000 0000 307 .WORD ^M<> ; KSP_MAIN ENTRY MASK 0002 308 ; 0002 309 ; CALL USER MODE INITIALIZATION PROCEDURE. IF FAILURE, ABORT. 0002 310 ; CALL KERNEL MODE INITIALIZATION PROCEDURE. IF FAILURE, 0002 311 ; ABORT. UPON SUCCESSFUL COMPLETION OF ALL INITIALIZATION, 0002 312 ; HIBERNATE IN ACP SERVICE PROCEDURE IN KERNEL MODE UNTIL 0002 313 ; AWAKENED FOR LAM SERVICE OR A DEMAND AST OCCURS. 0002 314 ; 00 FB 0002 315 CALLS #0,KSP_UMINIT ; PERFORM USER MODE INIT 0000003F'EF 0004 29 50 E9 0009 316 BLBC R0,20$ ; IF FAILURE, TERMINATE 000C 317 $CMKRNL_S - 000C 318 KSP_KMCALL,- ; PERFORM KERNEL MODE INIT 000C 319 KSP_ARG_KMINIT 13 50 E9 001F 320 BLBC R0,20$ ; IF FAILURE, ABORT 0022 321 $CMKRNL_S - 0022 322 KSP_KMCALL,- ; ENTER LAM IRP SERVICE ROUTINE 0022 323 KSP_ARG_KMLAMS 0035 324 ; 0035 325 ; ONLY RETURNS HERE TO SIGNAL CAMAC ACP INTERNAL ERROR CONDITION. 0035 326 ; TERMINATE EXECUTION IN THAT EVENT VIA LIB$STOP CALL. 0035 327 ; 0035 328 20$: 50 DD 0035 329 PUSHL R0 ; SAVE RETURN STATUS 01 FB 0037 330 CALLS #1,G^LIB$SIGNAL ; SIGNAL RETURN STATUS 00000000'GF 0039 04 003E 331 RET ; THEN BACK TO IMAGE ACTIVATOR 003F 332 .DSABL LSB KSCAMACP KS 2050 SERIES CAMAC ACP 27-APR-1983 10:15:30 VAX-11 Macro V03-00 Page 9 V02-003 KSP_UMINIT, USER MODE INITIALIZATION 27-APR-1983 10:12:55 SYS$SYSDEVICE:[CAMAC.SOURCE]KSCAMA(1) 003F 334 .SBTTL KSP_UMINIT, USER MODE INITIALIZATION 003F 335 .ENABL LSB 003F 336 003F 337 ;++ 003F 338 ; 003F 339 ; Procedure: 003F 340 ; KSP_UMINIT 003F 341 ; 003F 342 ; Description: 003F 343 ; This procedure performs the following functions in user 003F 344 ; mode following image activation: 003F 345 ; Assign VMS I/O channel to LAM support unit, 003F 346 ; Get CAMAC ACP process ID, 003F 347 ; Inputs: 003F 348 ; SYS$INPUT logical name(assigned to Highway Support Unit), 003F 349 ; ACP JPI item list. 003F 350 ; 003F 351 ; Outputs: 003F 352 ; Process information from GETJPI call, 003F 353 ; VMS channel assigned to ACP Highway Support Unit. 003F 354 ; 003F 355 ; Return Status: 003F 356 ; SS$_NORMAL- normal termination, 003F 357 ; See ASSIGN,GETJPI system services for additional 003F 358 ; status codes. 003F 359 ; 003F 360 ;-- 003F 361 003F 362 KSP_UMINIT: 0000 003F 363 .WORD ^M<> ; ENTRY MASK 0041 364 $ASSIGN_S - ; ASSIGN VMS CHANNEL TO CAMAC UNIT 0041 365 DEVNAM=KSP_HSU,- ; CAMAC UNIT LOG NAME 0041 366 CHAN=KSP_HSUCHAN ; VMS I/O CHANNEL 17 50 E9 0056 367 BLBC R0,90$ ; IF FAILURE, ABORT 0059 368 $GETJPI_S - ; GET PROCESS INFO 0059 369 ITMLST=KSP_JPILST ; ITEM LIST TO RETRIEVE 0070 370 90$: 51 D4 0070 371 CLRL R1 ; NO SIG ARG LIST 04 0072 372 RET ; RETURN TO CALLER 0073 373 .DSABL LSB 0073 374 .SBTTL KSP_KMCALL, KERNEL MODE ENTRY PROCEDURE 0073 375 .ENABL LSB 0073 376 0073 377 ;++ 0073 378 ; 0073 379 ; Procedure: 0073 380 ; KSP_KMCALL 0073 381 ; 0073 382 ; Description: 0073 383 ; This procedure establishes a root frame on the kernel 0073 384 ; stack for the process executing the CAMAC ACP image. The 0073 385 ; purpose for establishing this root frame is to provide 0073 386 ; a return point following any nonrecoverable exception 0073 387 ; resulting in a complete unwind of the kernel mode stack. 0073 388 ; 0073 389 ; 0073 390 ; Parameters: KSCAMACP KS 2050 SERIES CAMAC ACP 27-APR-1983 10:15:30 VAX-11 Macro V03-00 Page 10 V02-003 KSP_KMCALL, KERNEL MODE ENTRY PROCEDURE 27-APR-1983 10:12:55 SYS$SYSDEVICE:[CAMAC.SOURCE]KSCAMA(1) 0073 391 ; 0(AP) - argument count, 0073 392 ; 4(AP) - address of entry mask of procedure to call. 0073 393 ; 0073 394 ;-- 0073 395 0073 396 KSP_KMCALL: 0000 0073 397 .WORD ^M<> 50 0C 3C 0075 398 MOVZWL #SS$_ACCVIO,R0 ; ASSUME INVALID PROCEDURE ADDRESS 51 D4 0078 399 CLRL R1 ; ZERO SIGNAL LIST ADDR 04 AC D5 007A 400 TSTL 4(AP) ; CHECK IT 04 13 007D 401 BEQL 90$ ; IF 0, ABORT 04 BC 00 FB 007F 402 CALLS #0,@4(AP) ; CALL INDICATED PROCEDURE 0083 403 90$: 04 0083 404 RET ; RETURN TO CALLER 0084 405 .DSABL LSB KSCAMACP KS 2050 SERIES CAMAC ACP 27-APR-1983 10:15:30 VAX-11 Macro V03-00 Page 11 V02-003 KSP_KMEXHAND, KERNEL MODE EXCEPTION HAND 27-APR-1983 10:12:55 SYS$SYSDEVICE:[CAMAC.SOURCE]KSCAMA(1) 0084 407 .SBTTL KSP_KMEXHAND, KERNEL MODE EXCEPTION HANDLER 0084 408 .ENABL LSB 0084 409 0084 410 ;++ 0084 411 ; 0084 412 ; Procedure: 0084 413 ; KSP_KMEXHAND 0084 414 ; 0084 415 ; Description: 0084 416 ; This procedure serves as a kernel mode exception handler for the 0084 417 ; CAMAC ACP. The signal list from the exception is saved in the 0084 418 ; buffer KSP_SIGARGL and the kernel mode stack is unwound back 0084 419 ; to the root frame established by the KSP_KMCALL procedure where 0084 420 ; control is reinstated. 0084 421 ; 0084 422 ; Parameters: 0084 423 ; CHF$L_SIGARGLST(AP) 0084 424 ; CHF$L_MCHARGLIST(AP) 0084 425 ; 0084 426 ;-- 0084 427 ; 0084 428 ; 0084 429 ; HANDLER FAO DATA 0084 430 ; 0084 431 KSP_KMXHNID: 0000008C'010E0000' 0084 432 .ASCID /_KSP_KMEXHAND/ ; HANDLER PROCEDURE NAME 4B 5F 50 53 4B 5F 008C 4E 41 48 58 45 4D 0092 44 0098 0099 433 0099 434 KSP_KMEXHAND: 001C 0099 435 .WORD ^M 52 04 AC D0 009B 436 MOVL CHF$L_SIGARGLST(AP),R2 ; LOCATE SIG ARG LIST 04 A2 D1 009F 437 CMPL CHF$L_SIG_NAME(R2),- ; UNWIND CALL? 00000920 8F 00A2 438 #SS$_UNWIND 01 12 00A7 439 BNEQ 10$ ; IF NOT, CONTINUE 04 00A9 440 RET ; IF SO, RETURN 00AA 441 10$: 52 DD 00AA 442 PUSHL R2 ; SIG LIST ADDR D5 AF DF 00AC 443 PUSHAL KSP_KMXHNID ; HANDLER NAME ID 00000030'EF DF 00AF 444 PUSHAL KSP_PRCNID ; PROCESS NAME ID 04 FB 00B5 445 CALLS #4,KSP_LOGERR ; LOG ACP ERROR 000000ED'EF 00B7 12 50 E9 00BC 446 BLBC R0,30$ ; IF FAILURE, RESIGNAL 00BF 447 $UNWIND_S ; UNWIND TO ROOT PROCEDURE 04 50 E9 00CA 448 BLBC R0,30$ ; IF FAILURE, RESIGNAL 50 01 3C 00CD 449 MOVZWL #SS$_CONTINUE,R0 ; CONTINUE 04 00D0 450 RET ; RETURN TO EXCEPTION DISPATCHER 00D1 451 30$: 50 0918 8F 3C 00D1 452 MOVZWL #SS$_RESIGNAL,R0 ; RESIGNAL EXCEPTION 04 00D6 453 RET ; RETURN TO EXCEPTION DISPATCHER 00D7 454 .DSABL LSB KSCAMACP KS 2050 SERIES CAMAC ACP 27-APR-1983 10:15:30 VAX-11 Macro V03-00 Page 12 V02-003 KSP_LOGERR, LOG EXCEPTION TO SYSTEM ERRO 27-APR-1983 10:12:55 SYS$SYSDEVICE:[CAMAC.SOURCE]KSCAMA(1) 00D7 456 .SBTTL KSP_LOGERR, LOG EXCEPTION TO SYSTEM ERROR LOG 00D7 457 .ENABL LSB 00D7 458 00D7 459 ;++ 00D7 460 ; 00D7 461 ; Procedure: 00D7 462 ; KSP_LOGERR(FAOCTSID,PRCNID,HANDID,SIGLST) 00D7 463 ; 00D7 464 ; Description: 00D7 465 ; This procedure performs general error message formatting 00D7 466 ; and logs the formatted message to the current system error 00D7 467 ; log file ERRLOG.SYS. 00D7 468 ; 00D7 469 ; Inputs: 00D7 470 ; 0(AP)-number of arguments, 00D7 471 ; 4(AP)- address of process name string descr, 00D7 472 ; 8(AP)- address of message identifier/handler name string 00D7 473 ; descriptor, 00D7 474 ; 12(AP)- address of parameter list to be formatted by 00D7 475 ; the specified FAO string. 00D7 476 ; 00D7 477 ; Outputs: 00D7 478 ; R0 - status of the request, 00D7 479 ; Message generated to system error log file ERRLOG.SYS. 00D7 480 ; 00D7 481 ;-- 00D7 482 00000004 00D7 483 PRCNID = 4 ; PROCESS NAME ID 00000008 00D7 484 HANDID = 8 ; CALLING HANDLER ID 0000000C 00D7 485 SIGLST = 12 ; SIGNAL LIST 00D7 486 00D7 487 KSP_LOGCTS: 000000DF'010E0000' 00D7 488 .ASCID /!AS!AS!#(10XL)/ 53 41 21 53 41 21 00DF 58 30 31 28 23 21 00E5 29 4C 00EB 00ED 489 00ED 490 KSP_LOGERR: 001C 00ED 491 .WORD ^M 00EF 492 52 0C AC D0 00EF 493 MOVL SIGLST(AP),R2 ; GET SIGNAL LIST ADDR 50 62 D0 00F3 494 MOVL CHF$L_SIG_ARGS(R2),R0 ; GET SIG LIST ARG COUNT 51 04 A240 DE 00F6 495 MOVAL 4(R2)[R0],R1 ; GET END ADDRESS+4 00FB 496 20$: 7E 71 D0 00FB 497 MOVL -(R1),-(SP) ; COPY TO FAO PARAMETER LIST FA 50 F4 00FE 498 SOBGEQ R0,20$ ; COPY ALL INCLUDING COUNT 08 AC DD 0101 499 PUSHL HANDID(AP) ; HANDLER NAME ID TO FAO LIST 04 AC DD 0104 500 PUSHL PRCNID(AP) ; AND PROCESS NAME ID TOO 54 5E D0 0107 501 MOVL SP,R4 ; SAVE FAO LIST ADDRESS 51 62 0A C5 010A 502 MULL3 #10,CHF$L_SIG_ARGS(R2),R1 ; SPACE FOR ARG ENTRIES 51 08 BC A0 010E 503 ADDW @HANDID(AP),R1 ; SPACE FOR PROCEDURE NAME 51 04 BC A0 0112 504 ADDW @PRCNID(AP),R1 ; SPACE FOR PROCESS NAME 51 0C A0 0116 505 ADDW #12,R1 ; DESCRIPTOR+STRING CHARS 5E 51 C2 0119 506 SUBL R1,SP ; ALLOCATE FROM STACK 53 5E D0 011C 507 MOVL SP,R3 ; USE R4 FOR BASE 51 0C C3 011F 508 SUBL3 #12,R1,4(R3) ; INITIALIZE DESCRIPTOR SIZE 04 A3 0122 KSCAMACP KS 2050 SERIES CAMAC ACP 27-APR-1983 10:15:30 VAX-11 Macro V03-00 Page 13 V02-003 KSP_LOGERR, LOG EXCEPTION TO SYSTEM ERRO 27-APR-1983 10:12:55 SYS$SYSDEVICE:[CAMAC.SOURCE]KSCAMA(1) 08 A3 0C A3 9E 0124 509 MOVAB 12(R3),8(R3) ; AND ADDRESS POINTER 0129 510 $FAOL_S - ; FORMAT SIG ARG LIST 0129 511 CTRSTR=KSP_LOGCTS,- ; CONTROL STRING, 0129 512 OUTLEN=(R3),- ; SAVE REAL LENGTH 0129 513 OUTBUF=4(R3),- ; OUTPUT BFR DESCRIPTOR 0129 514 PRMLST=(R4) ; PARAMETER LIST ADDRESS 0E 50 E9 013A 515 BLBC R0,30$ ; IF FAILURE, RESIGNAL 04 A3 63 3C 013D 516 MOVZWL (R3),4(R3) ; INSERT ACTUAL FAO LENGTH 0141 517 $SNDERR_S - ; SEND BUFFER TO ERROR LOG 0141 518 MSGBUF=4(R3) 014B 519 30$: 04 014B 520 RET ; RETURN TO CALLER 014C 521 .DSABL LSB KSCAMACP KS 2050 SERIES CAMAC ACP 27-APR-1983 10:15:30 VAX-11 Macro V03-00 Page 14 V02-003 KSP_KMINIT KERNEL MODE INITIALIZATION 27-APR-1983 10:12:55 SYS$SYSDEVICE:[CAMAC.SOURCE]KSCAMA(1) 014C 523 .SBTTL KSP_KMINIT KERNEL MODE INITIALIZATION 014C 524 .ENABL LSB 014C 525 014C 526 ;++ 014C 527 ; 014C 528 ; Procedure: 014C 529 ; KSP_KMINIT 014C 530 ; 014C 531 ; Description: 014C 532 ; This procedure performs CAMAC ACP initialization involving 014C 533 ; system access only available from kernel mode. It references 014C 534 ; internal VMS routines and I/O data base structures associated 014C 535 ; with the CAMAC controller(KS 2050/2051 unit). The procedure 014C 536 ; performs the following functions: 014C 537 ; 014C 538 ; Locks range of the image into the process working set, 014C 539 ; Locates the UCB associated with the Highway Support 014C 540 ; Unit from the VMS channel, 014C 541 ; Locates the ACP Control Block(AQB) for itself and 014C 542 ; satisfies the protocol with the mount image, 014C 543 ; Enables demand generation from the CAMAC device 014C 544 ; driver. 014C 545 ; 014C 546 ; Parameters: 014C 547 ; None. 014C 548 ; 014C 549 ; Return Status: 014C 550 ; SS$_NORMAL- indicates successful execution of the initialization 014C 551 ; procedure, 014C 552 ; Any other status value indicates failure identified by system 014C 553 ; message file text. 014C 554 ; 014C 555 ;-- 014C 556 014C 557 KSP_KMINIT: 003C 014C 558 .WORD ^M 6D FF47 CF 9E 014E 559 MOVAB KSP_KMEXHAND,0(FP) ; SET KERNEL MODE EXCEPTION HANDLER 0153 560 $LKWSET_S - ; LOCK ELEVATED IPL CODE 0153 561 INADR=KSP_LWSRANGE,- 0153 562 ACMODE=#PSL$C_KERNEL 03 50 E8 0164 563 BLBS R0,80$ ; IF SUCCESS, CONTINUE 51 D4 0167 564 CLRL R1 ; NO SIG ARG LIST 04 0169 565 RET ; ELSE, ABORT 016A 566 80$: 00000058'EF 3C 016A 567 MOVZWL KSP_HSUCHAN,R0 ; GET LAM UNIT CHANNEL 50 0170 00000000'GF 16 0171 568 JSB G^IOC$VERIFYCHAN ; LOCATE CCB FOR CHENNEL 03 50 E8 0177 569 BLBS R0,90$ ; IF SUCCESS, CONTINUE 51 D4 017A 570 CLRL R1 ; NO SIG ARG LIST 04 017C 571 RET ; RETURN TO MAIN 017D 572 90$: 61 D0 017D 573 MOVL CCB$L_UCB(R1),- ; SAVE HSU UCB ADDRESS 00000054'EF 017F 574 KSP_HSUUCB 0184 575 LOCKIOR ; LOCK I/O DATA BASE(READ) 00000000'GF 9E 0198 576 MOVAB G^IOC$GL_AQBLIST,R1 ; LOCATE AQB LIST ADDRESS 51 019E 50 61 D0 019F 577 MOVL (R1),R0 ; GET FIRST AQB ADDRESS KSCAMACP KS 2050 SERIES CAMAC ACP 27-APR-1983 10:15:30 VAX-11 Macro V03-00 Page 15 V02-003 KSP_KMINIT KERNEL MODE INITIALIZATION 27-APR-1983 10:12:55 SYS$SYSDEVICE:[CAMAC.SOURCE]KSCAMA(1) 01A2 578 10$: 15 A0 91 01A2 579 CMPB AQB$B_ACPTYPE(R0),- ; ACP TYPE MATCH? C8 8F 01A5 580 #KSP_ACPTYPE 0A 12 01A7 581 BNEQ 60$ ; IF NOT, ADVANCE TO NEXT ONE 0000002C'EF D1 01A9 582 CMPL KSP_PID,- ; OWN PID MATCH AQB PID? 0C A0 01AF 583 AQB$L_ACPPID(R0) 25 13 01B1 584 BEQL 20$ ; IF SO, FOUND RIGHT AQB 01B3 585 60$: 50 10 A0 D0 01B3 586 MOVL AQB$L_LINK(R0),R0 ; ADVANCE TO NEXT AQB E9 12 01B7 587 BNEQ 10$ ; IF NOT END, CONTINUE 01B9 588 UNLOCKIO ; RELEASE I/O DATA BASE LOCK 50 0314 8F 3C 01D0 589 MOVZWL #SS$_NOAQB,R0 ; SET ERROR STATUS 51 D4 01D5 590 CLRL R1 ; NO SIG ARG LIST 04 01D7 591 RET ; RETURN TO MAIN 01D8 592 20$: 50 D0 01D8 593 MOVL R0,KSP_AQB ; SAVE AQB ADDRESS 00000050'EF 01DA 01DF 594 UNLOCKIO ; RELEASE I/O DATA BASE LOCK 00000050'EF D0 01F6 595 MOVL KSP_AQB,R2 ; GET AQB ADDRESS 52 01FC 03 E4 01FD 596 BBSC #AQB$V_CREATING,- ; AQB IN 'CREATING' STATE? 08 14 A2 01FF 597 AQB$B_STATUS(R2),30$ ; IF SO, CONTINUE 50 031C 8F 3C 0202 598 MOVZWL #SS$_WRONGACP,R0 ; ELSE, SOMETHING WRONG 51 D4 0207 599 CLRL R1 ; NO SIGNAL ARG LIST 04 0209 600 RET ; RETURN TO MAIN 020A 601 30$: 00000054'EF D0 020A 602 MOVL KSP_HSUUCB,R5 ; GET SUPPORT UCB ADDRESS 55 0210 51 20 A5 D0 0211 603 MOVL UCB$L_CRB(R5),R1 ; LOCATE CRB 57 2C A1 D0 0215 604 MOVL CRB$L_INTD+VEC$L_IDB(R1),R7 ; LOCATE IDB FROM CRB 51 67 D0 0219 605 MOVL IDB$L_CSR(R7),R1 ; GET CSR ADDRESS FROM IDB 0000071D'EF 9E 021C 612 MOVAB KSP_DMDAST,R6 ; DEMAND AST ADDRESS 56 0222 00 FB 0223 613 CALLS #0,KSP_ENDMANDS ; ENABLE DEMANDS 000009F4'EF 0225 50 01 3C 022A 614 MOVZWL #SS$_NORMAL,R0 ; SET NORMAL STATUS 04 022D 615 RET ; RETURN TO MAIN 022E 616 .DSABL LSB KSCAMACP KS 2050 SERIES CAMAC ACP 27-APR-1983 10:15:30 VAX-11 Macro V03-00 Page 16 V02-003 KSP_KMCAMIRP, CAMAC IRP SERVICE PROCEDUR 27-APR-1983 10:12:55 SYS$SYSDEVICE:[CAMAC.SOURCE]KSCAMA(1) 022E 618 .SBTTL KSP_KMCAMIRP, CAMAC IRP SERVICE PROCEDURE 022E 619 .ENABL LSB 022E 620 022E 621 ;++ 022E 622 ; 022E 623 ; Procedure: 022E 624 ; KSP_KMCAMIRP 022E 625 ; 022E 626 ; Description: 022E 627 ; This procedure implements the IRP service loop for the CAMAC 022E 628 ; ACP. Basically, IRP's are dispatched from the ACP queue until 022E 629 ; it is empty at which time the ACP hibernates until awakened 022E 630 ; by the CAMAC device driver queueing an IRP. Specifically, the 022E 631 ; procedure performs the following steps: 022E 632 ; 1. Dequeues an IRP from the ACP queue. If empty, 022E 633 ; then the ACP hibernates until awakened by another 022E 634 ; IRP. 022E 635 ; 2. Establishes a standard environmemt for the function 022E 636 ; code action routine as follows 022E 637 ; R3- address of the IRP, 022E 638 ; R5- address of associated UCB, 022E 639 ; R7- function code value. 022E 640 ; 3. Dispatches the function action procedure. 022E 641 ; 4. Posts the IRP for I/O completion processing. 022E 642 ; 022E 643 ; Inputs: 022E 644 ; ACP IRP queue located from AQB listhead, 022E 645 ; 022E 646 ; Outputs: 022E 647 ; None. 022E 648 ; 022E 649 ;-- 022E 650 022E 651 022E 652 KSP_KMCAMIRP: 007C 022E 653 .WORD ^M 6D FE65 CF 9E 0230 654 MOVAB KSP_KMEXHAND,0(FP) ; SET CONDITION HANDLER 0235 655 0235 656 KSP_CAMIRP: ; LAM IRP SERVICE LOOP 00000050'EF DD 0235 657 PUSHL KSP_AQB ; PASS AQB ADDRESS AS PARAMETER 01 FB 023B 658 CALLS #1,KSP_WAITQ ; WAIT FOR ACP WORK 00000913'EF 023D 00 EF 0242 659 EXTZV #IO$V_FCODE,- ; GET IRP FUNCTION CODE 06 0244 660 #IO$S_FCODE,- 57 20 A3 0245 661 IRP$W_FUNC(R3),R7 ; FOR LEGALITY/ACTION TESTING 55 1C A3 D0 0248 662 MOVL IRP$L_UCB(R3),R5 ; AND OWNING UCB ADDRESS 33 57 91 024C 663 CMPB R7,#IO$_LAMAST ; LAM SERVICE REQUEST 09 12 024F 664 BNEQ 100$ ; NO, CHECK ANOTHER 00 FB 0251 665 CALLS #0,KSP_LAMAST 00000373'EF 0253 41 11 0258 666 BRB 50$ 025A 667 100$: 1A 57 91 025A 668 CMPB R7,#IO$_SETCHAR ; SET CHARACTERISTICS 09 12 025D 669 BNEQ 110$ ; NO, CHECK ANOTHER 00 FB 025F 670 CALLS #0,KSP_SETCHAR 0000046E'EF 0261 33 11 0266 671 BRB 50$ KSCAMACP KS 2050 SERIES CAMAC ACP 27-APR-1983 10:15:30 VAX-11 Macro V03-00 Page 17 V02-003 KSP_KMCAMIRP, CAMAC IRP SERVICE PROCEDUR 27-APR-1983 10:12:55 SYS$SYSDEVICE:[CAMAC.SOURCE]KSCAMA(1) 0268 672 110$: 39 57 91 0268 673 CMPB R7,#IO$_MOUNT ; MOUNT? 09 12 026B 674 BNEQ 120$ ; NO, CHECK ANOTHER 00 FB 026D 675 CALLS #0,KSP_MOUNT 000002A8'EF 026F 25 11 0274 676 BRB 50$ 0276 677 120$: 38 57 91 0276 678 CMPB R7,#IO$_ACPCONTROL ; ACP CONTROL? 09 12 0279 679 BNEQ 130$ ; NO, CHECK ANOTHER 00 FB 027B 680 CALLS #0,KSP_ACPCTL 000002C6'EF 027D 17 11 0282 681 BRB 50$ 0284 682 130$: 34 57 91 0284 683 CMPB R7,#IO$_DEACCESS ; DEACCESS IRP? 09 12 0287 684 BNEQ 200$ ; IF NOT, CHECK ANOTHER 00 FB 0289 685 CALLS #0,KSP_DEACCESS ; PERFORM DEACCESS FUNCTION 00000322'EF 028B 09 11 0290 686 BRB 50$ 0292 687 200$: 00F4 8F 3C 0292 688 MOVZWL #SS$_ILLIOFUNC,- ; SET ILLEGAL FUNCTION 38 A3 0296 689 IRP$L_IOST1(R3) ; IN IRP 3C A3 D4 0298 690 CLRL IRP$L_IOST2(R3) ; CLEAR DEVICE STATUS 029B 691 50$: 53 D5 029B 692 TSTL R3 ; IRP ALREADY DISPOSED? 96 13 029D 693 BEQL KSP_CAMIRP ; IF 0, ASSUME SO 00 FB 029F 694 CALLS #0,KSP_POSTIRP ; POST IRP W/TERMINATION STATUS 00000995'EF 02A1 8D 11 02A6 695 BRB KSP_CAMIRP ; GET NEXT IRP 02A8 696 02A8 697 .DSABL LSB KSCAMACP KS 2050 SERIES CAMAC ACP 27-APR-1983 10:15:30 VAX-11 Macro V03-00 Page 18 V02-003 KSP_MOUNT, MOUNT IRP REQUEST 27-APR-1983 10:12:55 SYS$SYSDEVICE:[CAMAC.SOURCE]KSCAMA(1) 02A8 699 .SBTTL KSP_MOUNT, MOUNT IRP REQUEST 02A8 700 .ENABL LSB 02A8 701 02A8 702 ;++ 02A8 703 ; 02A8 704 ; Procedure: 02A8 705 ; KSP_MOUNT 02A8 706 ; 02A8 707 ; Description: 02A8 708 ; This is the action procedure for the 'IO$_MOUNT' function code. 02A8 709 ; The procedure resets the MOUNTING bit in the UCB device characteristics 02A8 710 ; field and sets the MOUNTED bit in the same field. 02A8 711 ; 02A8 712 ; Inputs: 02A8 713 ; R3 - address of IRP, 02A8 714 ; R5 - address of UCB. 02A8 715 ; 02A8 716 ; Outputs: 02A8 717 ; IRP$L_IOST1,IRP$L_IOST2 contain IOSB status. 02A8 718 ; R0 - ACP status value(success/failure). 02A8 719 ; 02A8 720 ; 02A8 721 ;-- 02A8 722 02A8 723 KSP_MOUNT: 0000 02A8 724 .WORD ^M<> ; KSP_MOUNT ENTRY MASK 50 031C 8F 3C 02AA 725 MOVZWL #SS$_WRONGACP,R0 ; ASSUME FAILURE 09 E5 02AF 726 BBCC #UCB$V_MOUNTING,- ; UNIT MOUNT IN PROGRESS? 0B 58 A5 02B1 727 UCB$W_STS(R5),90$ ; IF NOT, SOMETHING WRONG 00000000'8F C8 02B4 728 BISL #DEV$M_MNT!DEV$M_FOR,- ; SET DEVICE MOUNTED FOREIGN 34 A5 02BA 729 UCB$L_DEVCHAR(R5) 50 01 9A 02BC 730 MOVZBL #SS$_NORMAL,R0 ; NORMAL STATUS 02BF 731 90$: 51 D4 02BF 732 CLRL R1 ; ZERO DEV DEP STATUS 38 A3 50 7D 02C1 733 MOVQ R0,IRP$L_IOST1(R3) ; SAVE IOSB STATUS 04 02C5 734 RET ; RETURN TO CALLER 02C6 735 .DSABL LSB KSCAMACP KS 2050 SERIES CAMAC ACP 27-APR-1983 10:15:30 VAX-11 Macro V03-00 Page 19 V02-003 KSP_ACPCTL, ACP CONTROL IRP REQUEST 27-APR-1983 10:12:55 SYS$SYSDEVICE:[CAMAC.SOURCE]KSCAMA(1) 02C6 737 .SBTTL KSP_ACPCTL, ACP CONTROL IRP REQUEST 02C6 738 .ENABL LSB 02C6 739 02C6 740 ;++ 02C6 741 ; 02C6 742 ; Procedure: 02C6 743 ; KSP_ACPCTL 02C6 744 ; 02C6 745 ; Description: 02C6 746 ; This is the action procedure for the 'IO$_ACPCONTROL' function code. 02C6 747 ; The procedure action is determined as follows: 02C6 748 ; Specified UCB marked for dismount? 02C6 749 ; 1. Disable demand generation from the CAMAC device 02C6 750 ; driver. 02C6 751 ; 2. Terminate LAM support for ALL crate units associated 02C6 752 ; with the CAMAC Highway Support Unit marked for dismount. 02C6 753 ; 02C6 754 ; No other conditions invoke action in response to this function code. 02C6 755 ; 02C6 756 ; Inputs: 02C6 757 ; R3 - address of IRP, 02C6 758 ; R5 - address of UCB. 02C6 759 ; 02C6 760 ; Outputs: 02C6 761 ; IRP$L_IOST1,IRP$L_IOST2 contain IOSB status. 02C6 762 ; R0 - contains ACP internal status(success/failure). 02C6 763 ; 02C6 764 ;-- 02C6 765 02C6 766 KSP_ACPCTL: 00E4 02C6 767 .WORD ^M 02C8 768 000000F4 8F D0 02C8 769 MOVL #SS$_ILLIOFUNC,R0 ; ASSUME NOT VALID 50 02CE 48 A5 B5 02CF 770 TSTW UCB$W_UNIT(R5) ; ACP CONTROL FOR HSU? 17 12 02D2 771 BNEQ 90$ ; IF NOT, ABORT 00000000'8F E1 02D4 772 BBC #DEV$V_DMT,UCB$L_DEVCHAR(R5),- ; UNIT MARKED FOR DISMOUNT? 34 A5 02DA 0E 02DC 773 90$ ; IF NOT, GO DISMISS IRP 00 FB 02DD 774 CALLS #0,KSP_DBDMANDS ; DISABLE DEMANDS FROM 2050 00000A69'EF 02DF 00 FB 02E4 775 CALLS #0,KSP_TERMALL ; TERMINATE ALL CSU LAM SUPPORT 000002F5'EF 02E6 02EB 776 90$: 50 01 9A 02EB 777 MOVZBL #SS$_NORMAL,R0 ; SET NORMAL STATUS 51 D4 02EE 778 CLRL R1 ; ZERO DEV STATUS 38 A3 50 7D 02F0 779 MOVQ R0,IRP$L_IOST1(R3) ; SAVE IOSB STATUS 04 02F4 780 RET ; RETURN TO CALLER 02F5 781 .DSABL LSB KSCAMACP KS 2050 SERIES CAMAC ACP 27-APR-1983 10:15:30 VAX-11 Macro V03-00 Page 20 V02-003 KSP_TERMALL, TERMINATE LAM SUPPORT FOR A 27-APR-1983 10:12:55 SYS$SYSDEVICE:[CAMAC.SOURCE]KSCAMA(1) 02F5 783 .SBTTL KSP_TERMALL, TERMINATE LAM SUPPORT FOR ALL CSU'S 02F5 784 .ENABL LSB 02F5 785 ;++ 02F5 786 ; 02F5 787 ; Procedure: 02F5 788 ; KSP_TERMALL 02F5 789 ; 02F5 790 ; Description: 02F5 791 ; 02F5 792 ; Inputs: 02F5 793 ; R5 - UCB address of the Highway Support Unit. 02F5 794 ; 02F5 795 ; Outputs: 02F5 796 ; R0,R1 IOSB status 02F5 797 ; 02F5 798 ;-- 02F5 799 02F5 800 KSP_TERMALL: 00E4 02F5 801 .WORD ^M 02F7 802 56 20 A5 D0 02F7 803 MOVL UCB$L_CRB(R5),R6 ; LOCATE CRB FROM UCB 56 2C A6 D0 02FB 804 MOVL CRB$L_INTD+VEC$L_IDB(R6),R6 ; AND IDB FROM CRB 57 0C A6 3C 02FF 805 MOVZWL IDB$W_UNITS(R6),R7 ; GET UCB LIST LENGTH 56 14 A6 DE 0303 806 MOVAL IDB$L_UCBLST(R6),R6 ; ADDRESS OF HEAD OF UCB LIST 0307 807 10$: 57 D7 0307 808 DECL R7 ; DECREMENT UNITS REMAINING 13 19 0309 809 BLSS 90$ ; IF DONE, EXIT LOOP 55 86 D0 030B 810 MOVL (R6)+,R5 ; GET UCB ENTRY F7 13 030E 811 BEQL 10$ ; IF NULL, CONTINUE 5A A5 02 E1 0310 812 BBC #DSTS_V_LSBV,UCB$W_DEVSTS(R5),- ; IF NO LAM SUPPORT, GET NEXT F2 0314 813 10$ 00 FB 0315 814 CALLS #0,KSP_TERMLAMS ; TERMINATE LAM SUPPORT 0000069B'EF 0317 E9 11 031C 815 BRB 10$ ; BACK FOR MORE 031E 816 90$: 50 01 3C 031E 817 MOVZWL #SS$_NORMAL,R0 ; RETURN NORMAL STATUS 04 0321 818 RET ; BACK TO CALLER 0322 819 .DSABL LSB KSCAMACP KS 2050 SERIES CAMAC ACP 27-APR-1983 10:15:30 VAX-11 Macro V03-00 Page 21 V02-003 KSP_DEACCESS, DEACCESS IRP PROCEDURE 27-APR-1983 10:12:55 SYS$SYSDEVICE:[CAMAC.SOURCE]KSCAMA(1) 0322 821 .SBTTL KSP_DEACCESS, DEACCESS IRP PROCEDURE 0322 822 .ENABL LSB 0322 823 0322 824 ;++ 0322 825 ; 0322 826 ; Procedure: 0322 827 ; KSP_DEACCESS 0322 828 ; 0322 829 ; Description: 0322 830 ; This is the action procedure for the 'IO$_DEACCESS' function code. 0322 831 ; This function code is generated by the CANCEL_IO routine in the 0322 832 ; CAMAC device driver in response to a deassign channel system service. 0322 833 ; It should never be used as the function code for a QIO request from 0322 834 ; a process, since the IRP is NOT posted to the I/O post processing 0322 835 ; queue. Instead, the associated IRP is dismissed directly by deallocating 0322 836 ; it back to the appropriate resource pool through EXE$DEANONPAGED. 0322 837 ; This function results in the following action: 0322 838 ; 1. All LAM AST's connected to the specified CAMAC crate UCB 0322 839 ; for the process associated with the IRP are flushed back 0322 840 ; to nonpaged pool, with the process AST count adjusted 0322 841 ; acccordingly. 0322 842 ; 2. Demand generation is disabled for station numbers in the 0322 843 ; specified crate that no longer have LAM AST's pending. 0322 844 ; 0322 845 ; 0322 846 ; Inputs: 0322 847 ; R3 - address of IRP, 0322 848 ; R5 - address of UCB. 0322 849 ; 0322 850 ; Outputs: 0322 851 ; IRP$L_IOST1,IRP$L_IOST2 contain IOSB status. 0322 852 ; R0 - contains ACP internal status(success/failure). 0322 853 ; 0322 854 ;-- 0322 855 0322 856 KSP_DEACCESS: 0074 0322 857 .WORD ^M 0324 858 $LOCPCB PID=IRP$L_PID(R3) ; LOCATE PCB FROM PID 0333 859 ; R4 CONTAINS PCB ADDRESS 5A A5 02 E1 0333 860 BBC #DSTS_V_LSBV,UCB$W_DEVSTS(R5),- ; IF NO LAM SUPPORT, EXIT 23 0337 861 90$ 56 0098 C5 D0 0338 862 MOVL UCB$L_LSB(R5),R6 ; GET LAM SUPP BLOCK ADDR 52 01 CE 033D 863 MNEGL #1,R2 ; INITIALIZE FOR STATION SCAN 0340 864 120$: 52 D6 0340 865 INCL R2 ; ADVANCE STATION 50 18 52 C3 0342 866 SUBL3 R2,#LSB_K_NLMAX,R0 ; SIZE REMAINING IN R0 50 52 EA 0346 867 FFS R2,R0,LSB_L_LPEND(R6),R2 ; FIND LAM PENDING 52 04 A6 0349 0D 13 034C 868 BEQL 90$ ; IF DONE, EXIT LOOP 41 A3 52 90 034E 869 MOVB R2,IRP$B_N(R3) ; SET STATION IN IRP 00 FB 0352 870 CALLS #0,KSP_CANLAM ; CANCEL LAM AST 00000431'EF 0354 E5 11 0359 871 BRB 120$ ; BACK FOR MORE IN THIS CRATE 035B 872 90$: 52 0094 C5 D0 035B 873 MOVL UCB$L_HSU(R5),R2 ; LOCATE HSU FROM UCB 50 30 A2 D0 0360 874 MOVL UCB$L_VCB(R2),R0 ; LOCATE VCB FROM HSU 0C A0 B7 0364 875 DECW VCB$W_TRANS(R0) ; DECREMENT TRANSCATIONS PEND KSCAMACP KS 2050 SERIES CAMAC ACP 27-APR-1983 10:15:30 VAX-11 Macro V03-00 Page 22 V02-003 KSP_DEACCESS, DEACCESS IRP PROCEDURE 27-APR-1983 10:12:55 SYS$SYSDEVICE:[CAMAC.SOURCE]KSCAMA(1) 50 53 D0 0367 876 MOVL R3,R0 ; SET TO DEALLOCATE IRP 00000000'GF 16 036A 877 JSB G^EXE$DEANONPAGED ; RELEASE IRP BACK TO NPP 53 D4 0370 878 CLRL R3 ; ZERO IRP ADDRESS 04 0372 879 RET ; RETURN TO CALLER 0373 880 .DSABL LSB KSCAMACP KS 2050 SERIES CAMAC ACP 27-APR-1983 10:15:30 VAX-11 Macro V03-00 Page 23 V02-003 KSP_LAMAST LAM AST IRP REQUEST 27-APR-1983 10:12:55 SYS$SYSDEVICE:[CAMAC.SOURCE]KSCAMA(1) 0373 882 .SBTTL KSP_LAMAST LAM AST IRP REQUEST 0373 883 .ENABL LSB 0373 884 0373 885 ;++ 0373 886 ; 0373 887 ; Procedure: 0373 888 ; KSP_LAMAST 0373 889 ; 0373 890 ; Description: 0373 891 ; This procedure services LAM AST function code requests. 0373 892 ; If the IO$V_CANLAM modifier is specified, all LAM AST's 0373 893 ; for the specified CAMAC crate and station for the requesting 0373 894 ; process are cancelled. If not, a LAM AST is queued for the 0373 895 ; specified CAMAC crate and station, provided the crate has 0373 896 ; LAM management enabled and the requesting process has sufficient 0373 897 ; AST quota. 0373 898 ; 0373 899 ; Inputs: 0373 900 ; R3 - address of IRP, 0373 901 ; R5 - address of UCB. 0373 902 ; 0373 903 ; Outputs: 0373 904 ; R0 - status of the request. 0373 905 ; IPP$L_IOST1,IRP$L_IOST2- IOSB status to return from the 0373 906 ; LAM IRP request. 0373 907 ;-- 0373 908 0373 909 KSP_LAMAST: ; ACTION PROCEDURE FOR LAMAST 007C 0373 910 .WORD ^M ; KSP_LAMAST ENTRY MASK 51 D4 0375 911 CLRL R1 ; ZAP R1 FOR IOSB 0377 912 41 A3 97 0377 914 DECB IRP$B_N(R3) ; TRANSFORM STATION TO INDEX 037A 916 17 41 A3 91 037A 917 CMPB IRP$B_N(R3),#LSB_K_NLMAX-1 ; VAILD? 06 1B 037E 918 BLEQU 150$ ; IF SO, CONTINUE 50 14 3C 0380 919 MOVZWL #SS$_BADPARAM,R0 ; INDICATE BAD LAM STATION 0038 31 0383 920 BRW 90$ ; ELSE, ABORT HERE 0386 921 150$: 0386 922 $CAMSTAT NOLAMSUP ; RETURN NO LAM SUPPORT 02 E0 038D 923 BBS #DSTS_V_LSBV,- ; LAM SUPPORT VALID? 03 5A A5 038F 924 UCB$W_DEVSTS(R5),20$ ; IF SO, CONTINUE 0029 31 0392 925 BRW 90$ ; ELSE, ABORT 0395 926 20$: 56 0098 C5 D0 0395 927 MOVL UCB$L_LSB(R5),R6 ; GET LAM SUPP BLOCK ADDR 039A 928 $LOCPCB - ; GET PCB ADDRESS 039A 929 PID=IRP$L_PID(R3) ; PID, R4 GETS PCB ADDRESS 08 E0 03A9 930 BBS #IO$V_CANLAM,- ; CANCEL LAM AST REQUEST? 09 20 A3 03AB 931 IRP$W_FUNC(R3),30$ 00 FB 03AE 932 CALLS #0,KSP_SETLAM ; SET LAM AST REQUEST FOR C+N 000003C3'EF 03B0 07 11 03B5 933 BRB 90$ 03B7 934 30$: 00 FB 03B7 935 CALLS #0,KSP_CANLAM ; CANCEL LAM FOR SPECIFIED C+N 00000431'EF 03B9 03BE 936 90$: 38 A3 50 7D 03BE 937 MOVQ R0,IRP$L_IOST1(R3) ; SAVE IOSB STATUS 04 03C2 938 RET ; RETURN TO CALLER KSCAMACP KS 2050 SERIES CAMAC ACP 27-APR-1983 10:15:30 VAX-11 Macro V03-00 Page 24 V02-003 KSP_LAMAST LAM AST IRP REQUEST 27-APR-1983 10:12:55 SYS$SYSDEVICE:[CAMAC.SOURCE]KSCAMA(1) 03C3 939 .DSABL LSB KSCAMACP KS 2050 SERIES CAMAC ACP 27-APR-1983 10:15:30 VAX-11 Macro V03-00 Page 25 V02-003 KSP_SETLAM, SET LAM AST REQUEST FOR C+N 27-APR-1983 10:12:55 SYS$SYSDEVICE:[CAMAC.SOURCE]KSCAMA(1) 03C3 941 .SBTTL KSP_SETLAM, SET LAM AST REQUEST FOR C+N 03C3 942 .ENABL LSB 03C3 943 ;++ 03C3 944 ; 03C3 945 ; Procedure: 03C3 946 ; KSP_SETLAM 03C3 947 ; 03C3 948 ; Description: 03C3 949 ; 03C3 950 ; Inputs: 03C3 951 ; R3 - IRP address, 03C3 952 ; R4 - PCB address for requesting process, 03C3 953 ; R5 - CSU UCB address, 03C3 954 ; R6 - LSB address. 03C3 955 ; 03C3 956 ;-- 03C3 957 03C3 958 KSP_SETLAM: 007C 03C3 959 .WORD ^M 03C5 960 18 E0 03C5 961 BBS #LAMS_V_DMDENB,- ; LAM GRADER ENABLED 0C 66 03C7 962 LSB_L_STS(R6),25$ ; IF SO, CONTINUE 03C9 963 $CAMSTAT NOLAMSUP ; RETURN NO LAM SUPPORT 51 D4 03D0 964 CLRL R1 ; ZAP R1 FOR IOSB RETURN 005B 31 03D2 965 BRW 90$ ; AND ABORT HERE 03D5 966 25$: 00 FB 03D5 967 CALLS #0,KSP_SETLAMAST ; ASSUME SET LAM ATN AST 00000B28'EF 03D7 51 50 E9 03DC 968 BLBC R0,90$ ; IF FAILURE, ABORT 52 41 A3 9A 03DF 969 MOVZBL IRP$B_N(R3),R2 ; GET STATION TO ENABLE 03 66 52 E3 03E3 970 BBCS R2,LSB_L_STS(R6),50$ ; LAM BIT SET? 0046 31 03E7 971 BRW 90$ ; IF SO, EXIT HERE 03EA 972 50$: 03EA 986 $CAMPIO_S - ; ENABLE DEMANDS FROM STATION 03EA 987 EFN=#0,- ; EVENT FLAG, 03EA 988 CHAN=KSP_HSUCHAN,- ; VMS I/O CHANNEL, 03EA 989 CRATE=UCB$W_UNIT(R5),- ; CAMAC CRATE, 03EA 990 STATION=#28,- ; LAM GRADER STATION 03EA 991 SUBAD=#13,- ; WRITE LAM MASK 03EA 992 FUNC=#17,- 03EA 993 DATA=LSB_L_LPEND(R6) ; LAM GRADER MASK 040B 994 040B 995 PCAMERR BX=1,BQ=1,NOERR=90$ ; IF NO CAMAC ERROR, CONTINUE 041C 997 00 66 52 E5 041C 998 BBCC R2,LSB_L_STS(R6),60$ ; RESET LAM ENABLED BIT 0420 999 60$: 00 FB 0420 1000 CALLS #0,KSP_CANLAMAST ; CANCEL LAM AST FOR THIS C+N 00000B95'EF 0422 0427 1001 0427 1002 $CAMSTAT LAMFAIL ; RETURN LAM GRADER FAILURE 51 D4 042E 1003 CLRL R1 ; ZAP R1 FOR IOSB RETURN 0430 1004 90$: 04 0430 1005 RET ; RETURN TO CALLER 0431 1006 .DSABL LSB KSCAMACP KS 2050 SERIES CAMAC ACP 27-APR-1983 10:15:30 VAX-11 Macro V03-00 Page 26 V02-003 KSP_CANLAM, CANCEL LAM FOR SPECIFIED C+N 27-APR-1983 10:12:55 SYS$SYSDEVICE:[CAMAC.SOURCE]KSCAMA(1) 0431 1008 .SBTTL KSP_CANLAM, CANCEL LAM FOR SPECIFIED C+N 0431 1009 .ENABL LSB 0431 1010 0431 1011 ;++ 0431 1012 ; 0431 1013 ; Procedure: 0431 1014 ; KSP_CANLAM 0431 1015 ; 0431 1016 ; Description: 0431 1017 ; This procedure cancels ALL LAM AST's associated with the specified 0431 1018 ; process for the specified CAMAC crate and station. The procedure 0431 1019 ; performs the following steps: 0431 1020 ; 1. Flushes each AST control block from the listhead 0431 1021 ; associated with the specified CAMAC crate and station, 0431 1022 ; adjusting the process AST count accordingly. 0431 1023 ; 2. If the AST list for the specified crate and station is 0431 1024 ; empty after the flush operation, demand generation from 0431 1025 ; the crate+station is disabled. 0431 1026 ; 0431 1027 ; Inputs: 0431 1028 ; R3 - address of IRP, 0431 1029 ; R4 - address of associated PCB, 0431 1030 ; R6 - address of LSB. 0431 1031 ; 0431 1032 ; Outputs: 0431 1033 ; R0,R1 contain IOSB status. 0431 1034 ; 0431 1035 ;-- 0431 1036 0431 1037 KSP_CANLAM: 0004 0431 1038 .WORD ^M 0433 1039 00 FB 0433 1040 CALLS #0,KSP_CANLAMAST ; CANCEL LAM AST'S FOR PID 00000B95'EF 0435 30 50 E9 043A 1041 BLBC R0,90$ ; IF FAILURE, RETURN AS IS 043D 1042 ; ELSE, 51 D4 043D 1043 CLRL R1 ; ZAP R1 FOR IOSB RETURN 52 41 A3 9A 043F 1044 MOVZBL IRP$B_N(R3),R2 ; GET STATION FOR DISABLE 25 04 A6 52 E0 0443 1045 BBS R2,LSB_L_LPEND(R6),90$ ; IF LAMS STILL PENDING, EXIT 0448 1046 0448 1058 $CAMPIO_S - ; DISABLE DEMANDS FROM STATION 0448 1059 EFN=#0,- ; EVENT FLAG, 0448 1060 CHAN=KSP_HSUCHAN,- ; VMS I/O CHANNEL, 0448 1061 CRATE=UCB$W_UNIT(R5),- ; CAMAC CRATE, 0448 1062 STATION=#28,- ; LAM GRADER STATION 0448 1063 SUBAD=#13,- ; WRITE LAM MASK 0448 1064 FUNC=#17,- 0448 1065 DATA=LSB_L_LPEND(R6) ; LAM GRADER MASK 0469 1067 00 66 52 E5 0469 1068 BBCC R2,LSB_L_STS(R6),90$ ; CLEAR LAM ENABLED FLAG FOR STATION 046D 1069 90$: 04 046D 1070 RET ; RETURN TO CALLER 046E 1071 .DSABL LSB KSCAMACP KS 2050 SERIES CAMAC ACP 27-APR-1983 10:15:30 VAX-11 Macro V03-00 Page 27 V02-003 KSP_SETCHAR SETCHAR IRP REQUEST ACTION P 27-APR-1983 10:12:55 SYS$SYSDEVICE:[CAMAC.SOURCE]KSCAMA(1) 046E 1073 .SBTTL KSP_SETCHAR SETCHAR IRP REQUEST ACTION PROCEDURE 046E 1074 .ENABL LSB 046E 1075 046E 1076 ;++ 046E 1077 ; 046E 1078 ; Procedure: 046E 1079 ; KSP_SETCHAR 046E 1080 ; 046E 1081 ; Description: 046E 1082 ; This procedure services IRP requests to alter the state of 046E 1083 ; LAM management for a specified crate. The directed state 046E 1084 ; transition if specified by a function code modifier supplied 046E 1085 ; with the SETCHAR function code. Supported modifiers are 046E 1086 ; described below. 046E 1087 ; Modifier Meaning 046E 1088 ; IO$M_ENLAMS Enable LAM management for specified crate, 046E 1089 ; IO$M_DABLAMS Disable LAM management for specified 046E 1090 ; crate, 046E 1091 ; IO$M_CONLINE Specified crate is being declared 046E 1092 ; 'ON_LINE', 046E 1093 ; IO$M_COFFLINE Specified crate is being declared 046E 1094 ; 'OFF-LINE'. 046E 1095 ; 046E 1096 ; Inputs: 046E 1097 ; R3 - address of IRP, 046E 1098 ; R5 - address of associated UCB. 046E 1099 ; 046E 1100 ; Outputs: 046E 1101 ; R0 - status of the request, 046E 1102 ; IRP$L_IOST1,IRP$L_IOST2 contain IOSB status to return to 046E 1103 ; the requesting process. 046E 1104 ; 046E 1105 ;-- 046E 1106 046E 1107 KSP_SETCHAR: 007C 046E 1108 .WORD ^M ; KSP_SETCHAR ENTRY MASK 0470 1109 52 40 A3 9A 0470 1110 MOVZBL IRP$B_C(R3),R2 ; GET CAMAC CRATE NUMBER 00 FB 0474 1111 CALLS #0,KSP_LOCCSU ; GET CRATE UCB ADDRESS 00000AAB'EF 0476 3C 50 E9 047B 1112 BLBC R0,90$ ; IF FAILURE, ABORT 55 51 D0 047E 1113 MOVL R1,R5 ; USE R5 TO REF CRATE UCB 08 E1 0481 1114 BBC #IO$V_DABLAMS,- ; DISABLE LAM SERVICE? 0A 20 A3 0483 1115 IRP$W_FUNC(R3),10$ ; IF NOT, CHECK ANOTHER 00 FB 0486 1116 CALLS #0,KSP_SETC_DABL ; DISABLE LAM SERVICE FOR CRATE 000005F7'EF 0488 2A 50 E9 048D 1117 BLBC R0,90$ ; IF FAILURE, EXIT FLOW 0490 1118 10$: 0A E1 0490 1119 BBC #IO$V_COFFLINE,- ; SET CRATE OFF-LINE? 0A 20 A3 0492 1120 IRP$W_FUNC(R3),20$ ; IF NOT, CHECK ANOTHER 00 FB 0495 1121 CALLS #0,KSP_SETC_COFL ; SET CRATE OFF-LINE 0000054F'EF 0497 1B 50 E9 049C 1122 BLBC R0,90$ ; IF FAILURE, EXIT FLOW 049F 1123 20$: 09 E1 049F 1124 BBC #IO$V_CONLINE,- ; SET CRATE ON-LINE? 0A 20 A3 04A1 1125 IRP$W_FUNC(R3),30$ ; IF NOT, CHECK ANOTHER 00 FB 04A4 1126 CALLS #0,KSP_SETC_CONL ; SET CRATE ON-LINE KSCAMACP KS 2050 SERIES CAMAC ACP 27-APR-1983 10:15:30 VAX-11 Macro V03-00 Page 28 V02-003 KSP_SETCHAR SETCHAR IRP REQUEST ACTION P 27-APR-1983 10:12:55 SYS$SYSDEVICE:[CAMAC.SOURCE]KSCAMA(1) 000004BF'EF 04A6 0C 50 E9 04AB 1127 BLBC R0,90$ ; IF FAILURE, EXIT FLOW 04AE 1128 30$: 07 E1 04AE 1129 BBC #IO$V_ENLAMS,- ; ENABLE LAM SERVICE 07 20 A3 04B0 1130 IRP$W_FUNC(R3),90$ ; IF NOT, CHECK ANOTHER 00 FB 04B3 1131 CALLS #0,KSP_SETC_EABL ; ENABLE LAM SERVICE FOR CRATE 000005A5'EF 04B5 04BA 1132 90$: 38 A3 50 7D 04BA 1133 MOVQ R0,IRP$L_IOST1(R3) ; SAVE IOSB STATUS 04 04BE 1134 RET ; RETURN TO CALLER 04BF 1135 .DSABL LSB KSCAMACP KS 2050 SERIES CAMAC ACP 27-APR-1983 10:15:30 VAX-11 Macro V03-00 Page 29 V02-003 KSP_SETCHAR SETCHAR IRP REQUEST ACTION P 27-APR-1983 10:12:55 SYS$SYSDEVICE:[CAMAC.SOURCE]KSCAMA(1) 04BF 1137 04BF 1138 .SBTTL KSP_SETC_CONL, SET CAMAC CRATE ON-LINE 04BF 1139 .ENABL LSB 04BF 1140 04BF 1141 ;++ 04BF 1142 ; 04BF 1143 ; Procedure: 04BF 1144 ; KSP_SETC_CONL 04BF 1145 ; 04BF 1146 ; Description: 04BF 1147 ; This procedure performs the necessary processing to bring a 04BF 1148 ; CAMAC crate to an operational state capable of performing CAMAC 04BF 1149 ; operations. 04BF 1150 ; 04BF 1151 ; Inputs: 04BF 1152 ; R3 - address of IRP, 04BF 1153 ; R5 - address of crate UCB. 04BF 1154 ; 04BF 1155 ; Outputs: 04BF 1156 ; R0 - status of procedure execution, 04BF 1157 ; IRP$L_IOST1,IRP$L_IOST2 contain IOSB status to return to the 04BF 1158 ; requesting process. 04BF 1159 ; 04BF 1160 ;++ 04BF 1161 04BF 1162 KSP_SETC_CONL: ; SET CAMAC CRATE ON-LINE 007C 04BF 1163 .WORD ^M 04C1 1164 5A A5 02 E1 04C1 1165 BBC #DSTS_V_LSBV,UCB$W_DEVSTS(R5),- ; LAM SUPPORT ENABLED?? 07 04C5 1166 10$ ; IF NOT, EXIT 00 FB 04C6 1167 CALLS #0,KSP_FLUSHCSU ; IF SO, FLUSH ALL PENDING LAMS 000006E9'EF 04C8 04CD 1168 ; IGNORE TERMINATION STATUS 04CD 1169 10$: 04CD 1203 $CAMPIO_S - ; PERFORM DATAWAY Z 04CD 1204 EFN=#0,- ; EVENT FLAG 04CD 1205 CHAN=KSP_HSUCHAN,- ; VMS CHANNEL 04CD 1206 CRATE=UCB$W_UNIT(R5),- ; CAMAC CRATE 04CD 1207 STATION=#28,- ; CAMAC N 04CD 1208 SUBAD=#8,- ; GENERATE DATAWAY Z 04CD 1209 FUNC=#26 04ED 1210 04ED 1211 PCAMERR BX=1,NOERR=60$ ; IF NO CAMAC ERROR, CONTINUE 2D 11 04FA 1212 BRB 50$ ; ABORT IF ERROR 04FC 1213 60$: 04FC 1214 $CAMPIO_S - ; CLEAR DATAWAY INHIBIT 04FC 1215 EFN=#0,- ; EVENT FLAG 04FC 1216 CHAN=KSP_HSUCHAN,- ; VMS CHANNEL 04FC 1217 CRATE=UCB$W_UNIT(R5),- ; CAMAC CRATE 04FC 1218 STATION=#30,- ; CAMAC N 04FC 1219 SUBAD=#9,- ; CLEAR DATAWAY INHIB 04FC 1220 FUNC=#24 051C 1221 051C 1222 PCAMERR BX=1,NOERR=20$ ; IF NO CAMAC ERROR, CONTINUE 0529 1223 50$: 0802980A 8F D0 0529 1224 MOVL #PH$_PCCFAIL,R0 ; INDICATE BRANCH CC FAILURE 50 052F KSCAMACP KS 2050 SERIES CAMAC ACP 27-APR-1983 10:15:30 VAX-11 Macro V03-00 Page 30 V02-003 KSP_SETC_CONL, SET CAMAC CRATE ON-LINE 27-APR-1983 10:12:55 SYS$SYSDEVICE:[CAMAC.SOURCE]KSCAMA(1) 51 D4 0530 1225 CLRL R1 ; ZAP R1 FOR IOSB RETURN 1A 11 0532 1226 BRB 90$ ; ELSE, EXIT HERE 0534 1228 20$: 5A A5 02 E1 0534 1229 BBC #DSTS_V_LSBV,UCB$W_DEVSTS(R5),- ; LAM SUPPORT VALID??? 11 0538 1230 40$ ; IF NOT, SKIP 0539 1231 00 FB 0539 1232 CALLS #0,KSP_ENLAMS ; ENABLE LAM DEMAND GENERATION 0000061F'EF 053B 07 50 E8 0540 1233 BLBS R0,40$ ; IF SUCCESS, SET ON-LINE 0543 1234 00 FB 0543 1235 CALLS #0,KSP_TERMLAMS ; TERMINATE LAM SUPPORT FOR CSU 0000069B'EF 0545 054A 1236 40$: 10 A8 054A 1237 BISW #UCB$M_ONLINE,- ; SET UNIT ON-LINE 58 A5 054C 1238 UCB$W_STS(R5) ; IF ALL SUCCESSFUL 054E 1239 90$: 04 054E 1240 RET ; RETURN TO CALLER 054F 1241 .DSABL LSB KSCAMACP KS 2050 SERIES CAMAC ACP 27-APR-1983 10:15:30 VAX-11 Macro V03-00 Page 31 V02-003 KSP_SETC_COFL, SET CAMAC CRATE OFF-LINE 27-APR-1983 10:12:55 SYS$SYSDEVICE:[CAMAC.SOURCE]KSCAMA(1) 054F 1243 .SBTTL KSP_SETC_COFL, SET CAMAC CRATE OFF-LINE 054F 1244 .ENABL LSB 054F 1245 054F 1246 ;++ 054F 1247 ; 054F 1248 ; Procedure: 054F 1249 ; KSP_SETC_COFL 054F 1250 ; 054F 1251 ; Description: 054F 1252 ; This procedure performs the necessary processing to take a 054F 1253 ; CAMAC crate to an inoperational state. 054F 1254 ; 054F 1255 ; Inputs: 054F 1256 ; R3 - address of IRP, 054F 1257 ; R5 - address of UCB associated with IRP. 054F 1258 ; 054F 1259 ; Outputs: 054F 1260 ; R0 - status of procedure execution, 054F 1261 ; IRP$L_IOST1,IRP$L_IOST2 contain IOSB status to return to the 054F 1262 ; requesting process. 054F 1263 ; 054F 1264 ;++ 054F 1265 054F 1266 KSP_SETC_COFL: ; SET CAMAC CRATE OFF-LINE 007C 054F 1267 .WORD ^M 0551 1268 58 A5 04 E0 0551 1269 BBS #UCB$V_ONLINE,UCB$W_STS(R5),- ; UNIT ON-LINE? 0A 0555 1270 20$ ; IF SO, CONTINUE 50 0084 8F 3C 0556 1271 MOVZWL #SS$_DEVOFFLINE,R0 ; INDICATE OFF-LINE 51 D4 055B 1272 CLRL R1 ; ZAP R1 FOR IOSB 0044 31 055D 1273 BRW 90$ ; ABORT HERE 0560 1274 20$: 5A A5 02 E1 0560 1275 BBC #DSTS_V_LSBV,UCB$W_DEVSTS(R5),- ; IF NOT, CONTINUE 07 0564 1276 10$ 00 FB 0565 1277 CALLS #0,KSP_TERMLAMS ; IF SO, TERMINATE LAM SUPPORT 0000069B'EF 0567 056C 1278 ; IGNORE TERMINATION STATUS 056C 1279 10$: 056C 1293 $CAMPIO_S - ; SET DATAWAY INHIBIT 056C 1294 EFN=#0,- ; EVENT FLAG 056C 1295 CHAN=KSP_HSUCHAN,- ; HSU CHANNEL 056C 1296 CRATE=UCB$W_UNIT(R5),- ; CAMAC CRATE NUMBER 056C 1297 STATION=#30,- ; CC STATION NUMBER 056C 1298 SUBAD=#9,- ; SET DATAWAY INHIBIT 056C 1299 FUNC=#26 058C 1300 PCAMERR BX=1,NOERR=30$ ; IF NO ERROR, CONTINUE 0802980A 8F D0 0599 1301 MOVL #PH$_PCCFAIL,R0 ; SET BRANCH CC FAILURE 50 059F 05A0 1303 ; 05A0 1304 ; PROCEED WITH OFF-LINE REQUEST REGARDLESS OF 05A0 1305 ; CAMAC STATUS. 05A0 1306 ; 05A0 1307 30$: 58 A5 10 AA 05A0 1308 BICW #UCB$M_ONLINE,UCB$W_STS(R5) ; RESET UNIT ON-LINE STATUS 05A4 1309 90$: 04 05A4 1310 RET ; RETURN TO CALLER 05A5 1311 .DSABL LSB KSCAMACP KS 2050 SERIES CAMAC ACP 27-APR-1983 10:15:30 VAX-11 Macro V03-00 Page 32 V02-003 KSP_SETC_EABL, ENABLE LAM SERVICE FOR CR 27-APR-1983 10:12:55 SYS$SYSDEVICE:[CAMAC.SOURCE]KSCAMA(1) 05A5 1313 .SBTTL KSP_SETC_EABL, ENABLE LAM SERVICE FOR CRATE 05A5 1314 .ENABL LSB 05A5 1315 05A5 1316 ;++ 05A5 1317 ; 05A5 1318 ; Procedure: 05A5 1319 ; KSP_SETC_EABL 05A5 1320 ; 05A5 1321 ; Description: 05A5 1322 ; This procedure performs the necessary processing to enable LAM service 05A5 1323 ; for a specified CAMAC crate. 05A5 1324 ; 05A5 1325 ; Inputs: 05A5 1326 ; R3 - address of IRP, 05A5 1327 ; R5 - address of UCB associated with IRP. 05A5 1328 ; 05A5 1329 ; Outputs: 05A5 1330 ; R0 - status of procedure execution, 05A5 1331 ; IRP$L_IOST1,IRP$L_IOST2 contain IOSB status to return to the 05A5 1332 ; requesting process. 05A5 1333 ; 05A5 1334 ;++ 05A5 1335 05A5 1336 KSP_SETC_EABL: ; ENABLE LAM SERVICE FOR CRATE 007C 05A5 1337 .WORD ^M 05A7 1338 51 D4 05A7 1339 CLRL R1 ; ZAP R1 FOR IOSB RETURN 58 A5 04 E0 05A9 1340 BBS #UCB$V_ONLINE,UCB$W_STS(R5),- ; UNIT ONLINE? 08 05AD 1341 30$ ; IF SO, CONTINUE 50 0084 8F 3C 05AE 1342 MOVZWL #SS$_DEVOFFLINE,R0 ; SET STATUS IF NOT 0040 31 05B3 1343 BRW 90$ ; ABORT HERE 05B6 1344 30$: 02 E0 05B6 1345 BBS #DSTS_V_LSBV,- ; LAM SUPPORT VALID? 14 5A A5 05B8 1346 UCB$W_DEVSTS(R5),10$ ; IF NOT, SKIP 00 FB 05BB 1347 CALLS #0,KSP_ALOLSB ; ALLOCATE LAM SUPP BLOCK 00000ACF'EF 05BD 0A 50 E8 05C2 1348 BLBS R0,10$ ; IF SUCCESS, CONTINUE 05C5 1349 $CAMSTAT NOLAMSUP ; RETURN NO LAM SUPPORT STATUS 0027 31 05CC 1350 BRW 90$ ; ELSE, ABORT HERE 05CF 1351 10$: 56 0098 C5 D0 05CF 1352 MOVL UCB$L_LSB(R5),R6 ; GET LSB ADDRESS 41 A3 90 05D4 1353 MOVB IRP$B_N(R3),- ; SAVE LAM GRADER STATION 0B A6 05D7 1354 LSB_B_LGN(R6) 66 D4 05D9 1355 CLRL LSB_L_STS(R6) ; RESET LAM STATUS 04 A6 D4 05DB 1356 CLRL LSB_L_LPEND(R6) ; RESET ALL LAM PENDING BITS 00 FB 05DE 1357 CALLS #0,KSP_ENLAMS ; ENABLE LAM DEMAND GENERATION 0000061F'EF 05E0 0E 50 E8 05E5 1358 BLBS R0,90$ ; IF SUCCESS, CONTINUE 05E8 1359 ; ELSE, ... 00 FB 05E8 1360 CALLS #0,KSP_TERMLAMS ; TERMINATE LAM SUPPORT FOR CSU 0000069B'EF 05EA 05EF 1361 $CAMSTAT LAMFAIL ; INDICATE LAM GRADER FAILURE 05F6 1362 90$: 04 05F6 1363 RET ; RETURN TO CALLER 05F7 1364 .DSABL LSB KSCAMACP KS 2050 SERIES CAMAC ACP 27-APR-1983 10:15:30 VAX-11 Macro V03-00 Page 33 V02-003 KSP_SETC_DABL, DISABLE LAM SERVICE FOR C 27-APR-1983 10:12:55 SYS$SYSDEVICE:[CAMAC.SOURCE]KSCAMA(1) 05F7 1366 .SBTTL KSP_SETC_DABL, DISABLE LAM SERVICE FOR CRATE 05F7 1367 .ENABL LSB 05F7 1368 05F7 1369 ;++ 05F7 1370 ; 05F7 1371 ; Procedure: 05F7 1372 ; KSP_SETC_DABL 05F7 1373 ; 05F7 1374 ; Description: 05F7 1375 ; This procedure performs the necessary processing to enable LAM service 05F7 1376 ; for a specified CAMAC crate. 05F7 1377 ; 05F7 1378 ; Inputs: 05F7 1379 ; R3 - address of IRP, 05F7 1380 ; R5 - address of UCB associated with IRP. 05F7 1381 ; 05F7 1382 ; Outputs: 05F7 1383 ; R0 - status of procedure execution, 05F7 1384 ; IRP$L_IOST1,IRP$L_IOST2 contain IOSB status to return to the 05F7 1385 ; requesting process. 05F7 1386 ; 05F7 1387 ;++ 05F7 1388 05F7 1389 KSP_SETC_DABL: ; DISABLE LAM SERVICE 007C 05F7 1390 .WORD ^M 05F9 1391 51 D4 05F9 1392 CLRL R1 ; ZAP R1 FOR IOSB 58 A5 04 E0 05FB 1393 BBS #UCB$V_ONLINE,UCB$W_STS(R5),- ; UNIT ON-LINE? 08 05FF 1394 20$ ; IF SO, CONTINUE 50 0084 8F 3C 0600 1395 MOVZWL #SS$_DEVOFFLINE,R0 ; SET DEVICE OFFLINE 0016 31 0605 1396 BRW 90$ ; ABORT HERE 0608 1397 20$: 5A A5 02 E0 0608 1398 BBS #DSTS_V_LSBV,UCB$W_DEVSTS(R5),- ; IF ENABLED, CONTINUE 0A 060C 1399 10$ 060D 1400 $CAMSTAT NOLAMSUP ; INDICATE NO LAM SUPPORT STATUS 0007 31 0614 1401 BRW 90$ ; ABORT HERE 0617 1402 10$: 00 FB 0617 1403 CALLS #0,KSP_TERMLAMS ; TERM CRATE LAM SUPPORT 0000069B'EF 0619 061E 1404 90$: 04 061E 1405 RET ; RETURN TO CALLER 061F 1406 .DSABL LSB KSCAMACP KS 2050 SERIES CAMAC ACP 27-APR-1983 10:15:30 VAX-11 Macro V03-00 Page 34 V02-003 KSP_SETC_DABL, DISABLE LAM SERVICE FOR C 27-APR-1983 10:12:55 SYS$SYSDEVICE:[CAMAC.SOURCE]KSCAMA(1) 061F 1408 061F 1409 .SBTTL KSP_ENLAMS, ENABLE LAM DEMAND GENERATION 061F 1410 .ENABL LSB 061F 1411 ;++ 061F 1412 ; 061F 1413 ; Procedure: 061F 1414 ; KSP_ENLAMS 061F 1415 ; 061F 1416 ; Description: 061F 1417 ; 061F 1418 ; Inputs: 061F 1419 ; R5 - address of CSU UCB. 061F 1420 ; 061F 1421 ; Outputs: 061F 1422 ; R0,R1 IOSB status return. 061F 1423 ; 061F 1424 ;-- 061F 1425 061F 1426 KSP_ENLAMS: 0040 061F 1427 .WORD ^M 0621 1428 56 0098 C5 D0 0621 1429 MOVL UCB$L_LSB(R5),R6 ; GET LSB ADDRESS 0626 1430 0626 1461 $CAMPIO_S - ; ENABLE BRANCH DEMANDS 0626 1462 EFN=#0,- ; EVENT FLAG 0626 1463 CHAN=KSP_HSUCHAN,- ; VMS CHANNEL 0626 1464 CRATE=UCB$W_UNIT(R5),- ; CAMAC CRATE 0626 1465 STATION=#30,- ; CAMAC N 0626 1466 SUBAD=#10,- ; ENABLE BRANCH DEMANDS 0626 1467 FUNC=#26 0646 1468 0646 1469 PCAMERR BX=1,NOERR=40$ ; IF NO CAMAC ERROR, CONTINUE 2E 11 0653 1470 BRB 70$ ; ELSE EXIT HERE 0655 1471 40$: 0655 1472 $CAMPIO_S - ; ENABLE KS 3294 DEMANDS 0655 1473 EFN=#0,- ; EVENT FLAG 0655 1474 CHAN=KSP_HSUCHAN,- ; VMS CHANNEL 0655 1475 CRATE=UCB$W_UNIT(R5),- ; CAMAC CRATE 0655 1476 STATION=#28,- ; LAM GRADER STATION 0655 1477 SUBAD=#13,- ; WRITE LAM MASK REGISTER 0655 1478 FUNC=#17,- 0655 1479 DATA=LSB_L_LPEND(R6) ; LAM GRADER MASK 0676 1480 0676 1481 PCAMERR BX=1,NOERR=20$ ; IF NO CAMAC ERROR, CONTINUE 0683 1483 70$: 0683 1484 $CAMSTAT LAMFAIL ; INDICATE LAM GRADER FAILURE 068A 1485 01000000 8F CA 068A 1486 BICL #LAMS_M_DMDENB,LSB_L_STS(R6) ; CLEAR DEMAND ENABLED FOR CSU 66 0690 07 11 0691 1487 BRB 90$ ; ABORT HERE 0693 1488 20$: 01000000 8F C8 0693 1489 BISL #LAMS_M_DMDENB,LSB_L_STS(R6) ; INDICATE CSU DEMANDS ENABLED 66 0699 069A 1490 90$: 04 069A 1491 RET ; RETURN TO CALLER 069B 1492 .DSABL LSB KSCAMACP KS 2050 SERIES CAMAC ACP 27-APR-1983 10:15:30 VAX-11 Macro V03-00 Page 35 V02-003 KSP_TERMLAMS, TERMINATE LAM SUPPORT FOR 27-APR-1983 10:12:55 SYS$SYSDEVICE:[CAMAC.SOURCE]KSCAMA(1) 069B 1494 .SBTTL KSP_TERMLAMS, TERMINATE LAM SUPPORT FOR CRATE 069B 1495 .ENABL LSB 069B 1496 069B 1497 ;++ 069B 1498 ; 069B 1499 ; Procedure: 069B 1500 ; KSP_TERMLAMS 069B 1501 ; 069B 1502 ; Description: 069B 1503 ; This procedure performs the rocessing necessary to terminate LAM 069B 1504 ; support for the specified CAMAC crate UCB. 069B 1505 ; 069B 1506 ; Inputs: 069B 1507 ; R5 - address of corresponding crate UCB. 069B 1508 ; 069B 1509 ; Outputs: 069B 1510 ; 069B 1511 ;-- 069B 1512 069B 1513 KSP_TERMLAMS: 005C 069B 1514 .WORD ^M 069D 1515 56 0098 C5 D0 069D 1516 MOVL UCB$L_LSB(R5),R6 ; LOCATE LAM SUPP BLOCK 06A2 1517 06A2 1530 $CAMPIO_S - ; DISABLE DEMAND GENERATION 06A2 1531 EFN=#0,- ; EVENT FLAG 06A2 1532 CHAN=KSP_HSUCHAN,- ; HSU CHANNEL 06A2 1533 CRATE=UCB$W_UNIT(R5),- ; CAMAC CRATE NUMBER 06A2 1534 STATION=#30,- ; CC STATION NUMBER 06A2 1535 SUBAD=#10,- ; DISABLE DEMANDS 06A2 1536 FUNC=#24 06C2 1537 PCAMERR BX=1,NOERR=10$ ; IF NO ERROR CONTINUE 08029802 8F D0 06CF 1538 MOVL #PH$_LAMFAIL,R0 ; INDICATE LAM GRADER FAILURE 50 06D5 06D6 1540 10$: 03 BB 06D6 1541 PUSHR #^M ; SAVE CAMAC IOSB 06D8 1542 ; 06D8 1543 ; PROCEED WITH TERMINATION REGARDLESS OF CAMAC STATUS 06D8 1544 ; 00 FB 06D8 1545 CALLS #0,KSP_FLUSHCSU ; FLUSH ALL CSU PENDING LAMS 000006E9'EF 06DA 00 FB 06DF 1546 CALLS #0,KSP_DEALSB ; DEALLOCATE LAM SUPP BLOCK 00000B03'EF 06E1 03 BA 06E6 1547 POPR #^M ; RESTORE CAMAC IOSB 04 06E8 1548 RET ; RETURN TO CALLER 06E9 1549 .DSABL LSB KSCAMACP KS 2050 SERIES CAMAC ACP 27-APR-1983 10:15:30 VAX-11 Macro V03-00 Page 36 V02-003 KSP_FLUSHCSU, FLUSH ALL PENDING LAM AST' 27-APR-1983 10:12:55 SYS$SYSDEVICE:[CAMAC.SOURCE]KSCAMA(1) 06E9 1551 .SBTTL KSP_FLUSHCSU, FLUSH ALL PENDING LAM AST'S FOR A CSU 06E9 1552 .ENABL LSB 06E9 1553 ;++ 06E9 1554 ; 06E9 1555 ; Procedure: 06E9 1556 ; KSP_FLUSHCSU 06E9 1557 ; 06E9 1558 ; Description: 06E9 1559 ; All pending LAM AST Control Blocks(ACB's) are flushed from the 06E9 1560 ; LAM AST listheads and corresponding process AST quotas updated. 06E9 1561 ; 06E9 1562 ; Inputs: 06E9 1563 ; R5 - CSU UCB address. 06E9 1564 ; 06E9 1565 ; Outputs: 06E9 1566 ; R0, R1 IOSB status for request. 06E9 1567 ; 06E9 1568 ;-- 06E9 1569 06E9 1570 KSP_FLUSHCSU: 0044 06E9 1571 .WORD ^M 06EB 1572 5A A5 02 E0 06EB 1573 BBS #DSTS_V_LSBV,UCB$W_DEVSTS(R5),- ; LAM SUPPORT VALID FOR UCB?? 08 06EF 1574 10$ 06F0 1575 $CAMSTAT NOLAMSUP ; INDICATE NO LAM SUPPORT 06F7 1576 04 06F7 1577 RET ; ABORT CALL 06F8 1578 10$: 56 0098 C5 D0 06F8 1579 MOVL UCB$L_LSB(R5),R6 ; GET LSB ADDRESS FROM UCB 66 D4 06FD 1580 CLRL LSB_L_STS(R6) ; RESET ALL LAM ENABLED STATUS 52 01 CE 06FF 1581 MNEGL #1,R2 ; INITIALIZE FOR STATION SCAN 0702 1582 20$: 52 D6 0702 1583 INCL R2 ; ADVANCE STATION INDEX 50 18 52 C3 0704 1584 SUBL3 R2,#LSB_K_NLMAX,R0 ; SIZE REMAINING 50 52 EA 0708 1585 FFS R2,R0,LSB_L_LPEND(R6),R2 ; FIND LAM PENDING 52 04 A6 070B 09 13 070E 1586 BEQL 90$ ; IF DONE, EXIT 00 FB 0710 1587 CALLS #0,KSP_FLUSHAST ; IF FOUND, FLUSH THEM ALL 00000BE5'EF 0712 E9 11 0717 1588 BRB 20$ ; THEN CONTINUE SCAN 0719 1589 90$: 50 01 3C 0719 1590 MOVZWL #SS$_NORMAL,R0 ; RETURN NORMAL STATUS 04 071C 1591 RET ; RETURN TO CALLER 071D 1592 .DSABL LSB KSCAMACP KS 2050 SERIES CAMAC ACP 27-APR-1983 10:15:30 VAX-11 Macro V03-00 Page 37 V02-003 KSP_FLUSHCSU, FLUSH ALL PENDING LAM AST' 27-APR-1983 10:12:55 SYS$SYSDEVICE:[CAMAC.SOURCE]KSCAMA(1) 071D 1594 071D 1700 .SBTTL KSP_DMDAST, DEMAND SERVICE AST PROCEDURE 071D 1701 .ENABL LSB 071D 1702 071D 1703 ;++ 071D 1704 ; 071D 1705 ; Procedure: 071D 1706 ; KSP_DMDAST 071D 1707 ; 071D 1708 ; Description: 071D 1709 ; This procedure services the PARALLEL demand AST delivered to the 071D 1710 ; ACP from the PARALLEL demand ISR in the CAMAC device driver in 071D 1711 ; response to a PARALLEL demand interrupt. The AST parameter is the 071D 1712 ; Interrupt Data Block(IDB) address associated with the CAMAC 071D 1713 ; controller to which the ACP is associated. 071D 1714 ; 071D 1715 ; Inputs: 071D 1716 ; 0(AP) - argument count, 071D 1717 ; 4(AP) - AST parameter from AST control block. 071D 1718 ; 071D 1719 ; Outputs: 071D 1720 ; None. 071D 1721 ; 071D 1722 ;-- 071D 1723 00000004 071D 1724 ASTPRM = 4 ; AST PARAMETER OFFSET 071D 1725 ; 071D 1726 ; BRANCH DEMAND SERVICE LOCAL DATA 071D 1727 ; 071D 1728 $DEFINI BDM 0000 1729 $DEF BDM_L_CMASK ; SEARCH 1 CRATE MASK 00000004 0000 1730 .BLKL 1 0004 1731 $DEF BDM_L_CRATE ; CURRENT CRATE IN SCAN 00000008 0004 1732 .BLKL 1 0008 1733 $DEF BDM_L_LMASK ; SEARCH 2 LAM MASK 0000000C 0008 1734 .BLKL 1 000C 1735 $DEF BDM_K_LENGTH ; STACK FRAME LENGTH 000C 1736 $DEFEND BDM 071D 1737 071D 1738 KSP_DMDAST: 00FC 071D 1739 .WORD ^M 071F 1740 0000086C'EF 9E 071F 1741 MOVAB KSP_DMDXHAND,0(FP) ; ESTABLISH EXPECTION HANDLER 6D 0725 00000054'EF D0 0726 1742 MOVL KSP_HSUUCB,R5 ; GET HSU UCB ADDR 55 072C 00000000'8F E1 072D 1743 BBC #DEV$V_DMT,UCB$L_DEVCHAR(R5),- ; MARKED FOR DISMOUNT?? 34 A5 0733 03 0735 1744 200$ 011D 31 0736 1745 BRW KSP_DISMISS ; DISMISS AST W/O FURTHER DEMANDS 0739 1746 200$: 5E 0C C2 0739 1747 SUBL #BDM_K_LENGTH,SP ; FRAME FOR DEMAND SERVICE LOCAL 073C 1748 ; DATA 53 5E D0 073C 1749 MOVL SP,R3 ; USE R3 TO REFERENCE 073F 1750 ; 073F 1751 ; PERFORM SEARCH 1 FOR ALL ON-LINE PARALLEL CRATES 073F 1752 ; KSCAMACP KS 2050 SERIES CAMAC ACP 27-APR-1983 10:15:30 VAX-11 Macro V03-00 Page 38 V02-003 KSP_DMDAST, DEMAND SERVICE AST PROCEDURE 27-APR-1983 10:12:55 SYS$SYSDEVICE:[CAMAC.SOURCE]KSCAMA(1) 63 D4 073F 1753 CLRL BDM_L_CMASK(R3) ; ZERO SEARCH 1 CRATE MASK 0741 1754 $CAMPIO_S - ; PERFORM SEARCH 1 OPERATION 0741 1755 EFN=#1,- ; FOR CRATES WITH LAMS PENDING 0741 1756 CHAN=KSP_HSUCHAN,- ; HSU CHANNEL 0741 1757 CRATE=#0,- ; CAMAC CRATE 0741 1758 STATION=#30,- ; CC STATION NUMBER 0741 1759 SUBAD=#1,- ; LAM SEARCH 1 0741 1760 FUNC=#0,- 0741 1761 DATA=BDM_L_CMASK(R3) ; SEARCH 1 CRATE MASK 0760 1762 0760 1763 PCAMERR NOERR=10$ ; IF NO CAMAC ERROR, CONTINUE 00EA 31 0769 1764 BRW KSP_DISMISS ; DISMISS DEMAND IF ERROR 076C 1765 ; 076C 1766 ; DISPATCH TO SEARCH 2 FOR ANY CRATES WITH LAMS PENDING AS DETERMINED 076C 1767 ; FROM SEARCH 1 OPERATION. 076C 1768 ; 076C 1769 10$: 04 A3 D4 076C 1770 CLRL BDM_L_CRATE(R3) ; SET TO SCAN CRATE MASK FROM SEARCH1 076F 1771 20$: 52 04 A3 D0 076F 1772 MOVL BDM_L_CRATE(R3),R2 ; GET CUR CRATE(BIT POS) IN SCAN 50 07 52 C3 0773 1773 SUBL3 R2,#KS_P_CMAX,R0 ; COMPUTE CRATES REMAINING 63 50 52 EA 0777 1774 FFS R2,R0,BDM_L_CMASK(R3),R2 ; FIND NEXT CRATE PENDING 52 077B 03 12 077C 1775 BNEQ 60$ ; IF FOUND, GO LOCATE CSU 00BD 31 077E 1776 BRW 90$ ; ELSE, DISMISS BD 0781 1777 60$: 52 D6 0781 1778 INCL R2 ; CRATE#=BIT POS+1 04 A3 52 D0 0783 1779 MOVL R2,BDM_L_CRATE(R3) ; SAVE CURRENT CRATE IN SCAN 00 FB 0787 1780 CALLS #0,KSP_LOCCSU ; FIND CRATE UCB 00000AAB'EF 0789 08 50 E9 078E 1781 BLBC R0,30$ ; IF FAILURE, FALSE DEMAND 55 51 D0 0791 1782 MOVL R1,R5 ; USE R5 TO REF CRATE UCB 02 E0 0794 1783 BBS #DSTS_V_LSBV,- ; LAM SUPPORT VALID FOR CRATE? 23 5A A5 0796 1784 UCB$W_DEVSTS(R5),40$ ; IF SO, CONTINUE 0799 1785 30$: 0799 1786 $CAMPIO_S - ; FALSE DEMAND PROCESSING 0799 1787 EFN=#1,- ; DISABLE CC DEMANDS 0799 1788 CHAN=KSP_HSUCHAN,- ; HSU CHANNEL 0799 1789 CRATE=BDM_L_CRATE(R3),- ; CAMAC CRATE 0799 1790 STATION=#30,- ; CC STATION NUMBER 0799 1791 SUBAD=#10,- ; DISABLE BRANCH DEMAND 0799 1792 FUNC=#24 FFB3 31 07B9 1793 BRW 20$ ; TRY ANOTHER CRATE 07BC 1794 ; 07BC 1795 ; PERFORM SEARCH 2 TO GET LAM PATTERN FOR SPECIFIED CRATE. 07BC 1796 ; 07BC 1797 40$: 56 0098 C5 D0 07BC 1798 MOVL UCB$L_LSB(R5),R6 ; GET LAM SUPP BLOCK PNTR 07C1 1799 $CAMPIO_S - ; PERFORM SEARCH 2 OPERATION 07C1 1800 EFN=#1,- ; FOR CURRENT CRATE 07C1 1801 CHAN=KSP_HSUCHAN,- ; HSU CHANNEL 07C1 1802 CRATE=BDM_L_CRATE(R3),- ; CAMAC CRATE 07C1 1803 STATION=#30,- ; CC STATION NUMBER 07C1 1804 SUBAD=#2,- ; LAM SEARCH2 07C1 1805 FUNC=#0,- 07C1 1806 DATA=BDM_L_LMASK(R3) ; SEARCH 2 LAM MASK 07E2 1807 KSCAMACP KS 2050 SERIES CAMAC ACP 27-APR-1983 10:15:30 VAX-11 Macro V03-00 Page 39 V02-003 KSP_DMDAST, DEMAND SERVICE AST PROCEDURE 27-APR-1983 10:12:55 SYS$SYSDEVICE:[CAMAC.SOURCE]KSCAMA(1) 07E2 1808 PCAMERR NOERR=50$ ; IF NO CAMAC ERROR, CONTINUE FFAB 31 07EB 1809 BRW 30$ ; DISMISS DEMAND IF ERROR 07EE 1810 ; 07EE 1811 ; COMPUTE LAM SERVICE BIT PATTERN BY AND'ING THE SEARCH 2 PATTERN WITH 07EE 1812 ; THE LAM PENDING PATTERN. RESET LAM SERVICE BITS IN LAM PENDING PATTERN 07EE 1813 ; AND UPDATE THE LAM GRADER MASK. THEN SCAN THE LAM SERVICE PATTERN 07EE 1814 ; DISPATCHING PENDING LAM AST'S FOR THESE STATIONS. 07EE 1815 ; 07EE 1816 50$: 50 04 A6 D2 07EE 1817 MCOML LSB_L_LPEND(R6),R0 ; 'AND' LAM PENDING MASK FOR 08 A3 50 CA 07F2 1818 BICL R0,BDM_L_LMASK(R3) ; CRATE WITH SEARCH2 LAM 07F6 1819 ; PATTERN TO GET LAMS TO BE 07F6 1820 ; SERVICED 04 A6 08 A3 CA 07F6 1821 BICL BDM_L_LMASK(R3),LSB_L_LPEND(R6) ; RESET LAM PENDING FOR STATIONS 07FB 1822 ; SERVICED FROM THIS DEMAND 66 08 A3 CA 07FB 1823 BICL BDM_L_LMASK(R3),LSB_L_STS(R6) ; AND FOR LAM ENABLED MASK TOO 07FF 1824 07FF 1825 $CAMPIO_S - ; DISABLE BIT IN LAM GRADER 07FF 1826 EFN=#1,- ; EVENT FLAG 07FF 1827 CHAN=KSP_HSUCHAN,- ; CHANNEL 07FF 1828 CRATE=BDM_L_CRATE(R3),- ; CAMAC CRATE 07FF 1829 STATION=#28,- ; LAM GRADER N 07FF 1830 SUBAD=#13,- ; WRITE LAM MASK(A) 07FF 1831 FUNC=#17,- ; WRITE LAM MASK(F) 07FF 1832 DATA=LSB_L_LPEND(R6) ; LAM MASK 0820 1833 52 01 CE 0820 1834 MNEGL #1,R2 ; SET TO SCAN LAM PATTERN 0823 1835 80$: 52 D6 0823 1836 INCL R2 ; ADVANCE PAST LAST STATION FOUND 50 18 52 C3 0825 1837 SUBL3 R2,#LSB_K_NLMAX,R0 ; COMPUTE BITS REMAINING 50 52 EA 0829 1838 FFS R2,R0,BDM_L_LMASK(R3),R2 ; SCAN FOR BIT SET IN PATTERN 52 08 A3 082C 03 12 082F 1839 BNEQ 70$ ; IF FOUND, DELIVER LAM AST'S FF3B 31 0831 1840 BRW 20$ ; ELSE, TRY ANOTHER CRATE 0834 1841 70$: 00 FB 0834 1842 CALLS #0,KSP_DELAMAST ; DELIVER LAM'S 00000C35'EF 0836 FFE5 31 083B 1843 BRW 80$ ; LOOK FOR NEXT STATION 083E 1844 ; 083E 1845 ; DISMISS DEMAND AND EXIT AST 083E 1846 ; 083E 1847 90$: 54 04 AC D0 083E 1848 MOVL ASTPRM(AP),R4 ; ASTPRM=IDB ADDRESS 55 14 A4 D0 0842 1849 MOVL IDB$L_UCBLST(R4),R5 ; GET HSU UCB ADDRESS 56 FED3 CF 9E 0846 1850 MOVAB KSP_DMDAST,R6 ; SET AST ADDRESS 57 04 AC D0 084B 1851 MOVL ASTPRM(AP),R7 ; AND AST PARAMETER 00 FB 084F 1852 CALLS #0,KSP_ENDMANDS ; REENABLE DEMANDS 000009F4'EF 0851 0856 1853 0856 1854 KSP_DISMISS: 04 0856 1855 RET ; DISMISS AST 0857 1856 .DSABL LSB KSCAMACP KS 2050 SERIES CAMAC ACP 27-APR-1983 10:15:30 VAX-11 Macro V03-00 Page 40 V02-003 KSP_DMDAST, DEMAND SERVICE AST PROCEDURE 27-APR-1983 10:12:55 SYS$SYSDEVICE:[CAMAC.SOURCE]KSCAMA(1) 0857 1859 0857 1860 .SBTTL KSP_DMDXHAND, DEMAND AST EXCEPTION HANDLER 0857 1861 .ENABL LSB 0857 1862 0857 1863 ;++ 0857 1864 ; 0857 1865 ; Procedure: 0857 1866 ; KSP_DMDXHAND 0857 1867 ; 0857 1868 ; Description: 0857 1869 ; This procedure serves as a condition handler for the CAMAC 0857 1870 ; demand service AST procedure. It performs the following functions 0857 1871 ; for any signaled exception conditions. 0857 1872 ; If the signaled condition is 'SS$_UNWIND', the handler 0857 1873 ; ignores it and returns to the condition disaptcher. 0857 1874 ; For all other conditions, the signal list is logged to 0857 1875 ; ERRLOG.SYS then, 0857 1876 ; The stack is unwound back to the demand AST procedure 0857 1877 ; frame, then 0857 1878 ; The AST procedure is continued at the top of the demand service 0857 1879 ; loop. 0857 1880 ; 0857 1881 ; 0857 1882 ; Parameters: 0857 1883 ; CHF$L_SIGARGLST(AP) 0857 1884 ; CHF$L_MCHARGLIST(AP) 0857 1885 ; 0857 1886 ;-- 0857 1887 ; 0857 1888 ; 0857 1889 ; HANDLER FAO DATA 0857 1890 ; 0857 1891 KSP_DMDXHNID: 0000085F'010E0000' 0857 1892 .ASCID /_KSP_DMDXHAND/ ; HANDLER PROCEDURE NAME 44 5F 50 53 4B 5F 085F 4E 41 48 58 44 4D 0865 44 086B 086C 1893 086C 1894 KSP_DMDXHAND: 001C 086C 1895 .WORD ^M 52 04 AC D0 086E 1896 MOVL CHF$L_SIGARGLST(AP),R2 ; LOCATE SIG ARG LIST 04 A2 D1 0872 1897 CMPL CHF$L_SIG_NAME(R2),- ; UNWIND CALL? 00000920 8F 0875 1898 #SS$_UNWIND 01 12 087A 1899 BNEQ 10$ ; IF NOT, CONTINUE 04 087C 1900 RET ; IF SO, RETURN 087D 1901 10$: 52 DD 087D 1902 PUSHL R2 ; SIG LIST ADDR D5 AF DF 087F 1903 PUSHAL KSP_DMDXHNID ; HANDLER NAME ID 00000030'EF DF 0882 1904 PUSHAL KSP_PRCNID ; PROCESS NAME ID F860 CF 04 FB 0888 1905 CALLS #4,KSP_LOGERR ; LOG ACP ERROR 18 50 E9 088D 1906 BLBC R0,30$ ; IF FAILURE, RESIGNAL 52 08 AC D0 0890 1907 MOVL CHF$L_MCHARGLST(AP),R2 ; GET MECH ARG LIST ADDR 0894 1914 $UNWIND_S - 0894 1915 DEPADR=CHF$L_MCH_DEPTH(R2),- ; UNWIND TO AST PROCEDURE 0894 1916 NEWPC=KSP_DISMISS ; DISMISS DEMAND 04 50 E9 08A1 1918 BLBC R0,30$ ; IF FAILURE, RESIGNAL 50 01 3C 08A4 1919 MOVZWL #SS$_CONTINUE,R0 ; CONTINUE KSCAMACP KS 2050 SERIES CAMAC ACP 27-APR-1983 10:15:30 VAX-11 Macro V03-00 Page 41 V02-003 KSP_DMDXHAND, DEMAND AST EXCEPTION HANDL 27-APR-1983 10:12:55 SYS$SYSDEVICE:[CAMAC.SOURCE]KSCAMA(1) 04 08A7 1920 RET ; RETURN TO EXCEPTION DISPATCHER 08A8 1921 30$: 50 0918 8F 3C 08A8 1922 MOVZWL #SS$_RESIGNAL,R0 ; RESIGNAL EXCEPTION 04 08AD 1923 RET ; RETURN TO EXCEPTION DISPATCHER 08AE 1924 .DSABL LSB KSCAMACP KS 2050 SERIES CAMAC ACP 27-APR-1983 10:15:30 VAX-11 Macro V03-00 Page 42 V02-003 KSP_PIO, INTERNAL CAMAC PROGRAMMED I/O P 27-APR-1983 10:12:55 SYS$SYSDEVICE:[CAMAC.SOURCE]KSCAMA(1) 08AE 1926 .SBTTL KSP_PIO, INTERNAL CAMAC PROGRAMMED I/O PROCEDURE 08AE 1927 .ENABL LSB 08AE 1928 08AE 1929 ;++ 08AE 1930 ; 08AE 1931 ; Procedure: 08AE 1932 ; KSP_PIO 08AE 1933 ; Description: 08AE 1934 ; This procedure performs a CAMAC Programmed I/O call to the 08AE 1935 ; CAMAC device driver through the HSU channel. 08AE 1936 ; 08AE 1937 ; Inputs: 08AE 1938 ; 0(AP) - Arg count, 08AE 1939 ; 4(AP) - VMS I/O channel, 08AE 1940 ; 8(AP) - CAMAC crate number, 08AE 1941 ; 12(AP) - CAMAC station number, 08AE 1942 ; 16(AP) - CAMAC subaddress, 08AE 1943 ; 20(AP) - CAMAC function code, 08AE 1944 ; 24(AP) - CAMAC data. 08AE 1945 ; 08AE 1946 ; Outputs: 08AE 1947 ; R0,R1 - IOSB returned from SYS$QIO completion. 08AE 1948 ; 08AE 1949 ;-- 08AE 1950 00000004 08AE 1951 EFN = 4 ; EVENT FLAG 00000008 08AE 1952 IOCHAN = 8 ; VMS I/O CHANNEL 0000000C 08AE 1953 CRATE = 12 ; CAMAC CRATE 00000010 08AE 1954 STATION = 16 ; CAMAC STATION 00000014 08AE 1955 SUBAD = 20 ; CAMAC SUBADDRESS 00000018 08AE 1956 FUNC = 24 ; CAMAC FUNCTION 0000001C 08AE 1957 DATA = 28 ; CAMAC DATA 08AE 1958 08AE 1959 08AE 1960 KSP_PIO: ; PERFORM CAMAC PIO CALL 0004 08AE 1961 .WORD ^M 08B0 1962 08B0 1963 ALOSTAK #,R2 ; ALLOCATE RTB AND IOSB 62 7C 08B6 1964 CLRQ (R2) ; ZERO RTB 08B8 1965 08B8 1991 PHCTR - ; BUILD CTR TEMPLATE 08B8 1992 QDCV=#1,- ; Q DON'T CARE 08B8 1993 MODE=#0,- ; MODE 0=PIO 08B8 1994 CTRV=RTB_W_CTR(R2) 08C4 1995 PHCMR - ; BUILD CMR TEMPLATE 08C4 1996 XIV=#1,- ; X IGNORE 08C4 1997 NV=STATION(AP),- ; CAMAC N 08C4 1998 AV=SUBAD(AP),- ; CAMAC A 08C4 1999 FV=FUNC(AP),- ; CAMAC F 08C4 2000 CMRV=RTB_W_CMR(R2) 08E2 2001 PHCDH - ; BUILD CDH TEMPLATE 08E2 2002 CIV=CRATE(AP),- ; CAMAC C 08E2 2003 CDHV=RTB_W_CDH(R2) 08EC 2004 08EC 2005 $QIOW_S - ; PERFORM QIO TO CAMAC WITH 08EC 2006 EFN=EFN(AP),- ; EVENT FLAG # 08EC 2007 CHAN=IOCHAN(AP),- ; VMS I/O CHANNEL KSCAMACP KS 2050 SERIES CAMAC ACP 27-APR-1983 10:15:30 VAX-11 Macro V03-00 Page 43 V02-003 KSP_PIO, INTERNAL CAMAC PROGRAMMED I/O P 27-APR-1983 10:12:55 SYS$SYSDEVICE:[CAMAC.SOURCE]KSCAMA(1) 08EC 2008 FUNC=#IO$_CAMIO,- ; CAMAC I/O FUNCTION 08EC 2009 IOSB=RTB_K_LENGTH(R2),- ; I/O STATUS BLOCK 08EC 2010 P1=(R2),- ; RTB ADDRESS 08EC 2011 P2=DATA(AP) ; DATA ADDRESS 04 50 E9 090B 2013 BLBC R0,90$ ; IF FAILURE, RETURN AS IS 50 08 A2 7D 090E 2014 MOVQ RTB_K_LENGTH(R2),R0 ; GET IOSB STATUS 0912 2015 90$: 04 0912 2016 RET ; RETURN TO CALLER 0913 2017 .DSABL LSB KSCAMACP KS 2050 SERIES CAMAC ACP 27-APR-1983 10:15:30 VAX-11 Macro V03-00 Page 44 V02-003 KSP_PIO, INTERNAL CAMAC PROGRAMMED I/O P 27-APR-1983 10:12:55 SYS$SYSDEVICE:[CAMAC.SOURCE]KSCAMA(1) 0913 2019 ; 0913 2020 ; START WORKING SET LOCK RANGE 0913 2021 ; 0913 2022 KSP_LWSBEG: 0913 2023 .SBTTL KSP_WAITQ, WAIT FOR ACP WORK 0913 2024 .ENABL LSB 0913 2025 0913 2026 ;++ 0913 2027 ; 0913 2028 ; Procedure: 0913 2029 ; KSP_WAITQ 0913 2030 ; 0913 2031 ; Description: 0913 2032 ; This procedure dequeues IRP's from the ACP queue located from the 0913 2033 ; AQB for the ACP. If the queue is emptied, the CAMAC Highway Support 0913 2034 ; Unit associated with the ACP is checked for 'DISMOUNT' status. If not 0913 2035 ; set, the ACP hibernates. If 'DISMOUNT' is posted, the ACP begins 0913 2036 ; run down processing to prepare to delete itself. 0913 2037 ; 0913 2038 ; 0913 2039 ; Inputs: 0913 2040 ; 0(AP) - argument count, 0913 2041 ; 4(AP) - AQB address. 0913 2042 ; 0913 2043 ; Outputs: 0913 2044 ; R3 - IRP address to be serviced. 0913 2045 ; 0913 2046 ;-- 0913 2047 0913 2048 KSP_WAITQ: 0004 0913 2049 .WORD ^M 0915 2050 52 04 AC D0 0915 2051 MOVL 4(AP),R2 ; GET AQB ADDRESS IN R2 0919 2052 20$: 53 00 B2 0F 0919 2053 REMQUE @(R2),R3 ; DEQUEUE IRP 0E 1C 091D 2054 BVC 10$ ; IF NOT EMPTY, GO EXAMINE IRP 0B A2 95 091F 2055 TSTB AQB$B_MNTCNT(R2) ; ACP STILL MOUNTED? 0A 15 0922 2056 BLEQ 30$ ; IF NOT, GO PREPARE TO RUNDOWN 0924 2057 $HIBER_S ; ELSE, GO TO SLEEP 092B 2058 ; AWAKE HERE... EC 11 092B 2059 BRB 20$ ; GO DEQUEUE NEXT IRP 092D 2060 10$: 04 092D 2061 RET ; RETURN TO PROCESS IRP 092E 2062 30$: 092E 2063 ; 092E 2064 ; ACP RUNDOWN BEGINS HERE 092E 2065 ; 092E 2066 092E 2067 LOCKIOW ; LOCK I/O DATA BASE(WRITE) 00000000'GF 9E 0942 2068 MOVAB G^IOC$GL_AQBLIST,R1 ; GET AQB LIST ADDRESS 51 0948 50 61 D0 0949 2069 MOVL (R1),R0 ; GET FIRST AQB ADDRESS 50 52 D1 094C 2070 CMPL R2,R0 ; FOUND OUR AQB? 06 12 094F 2071 BNEQ 100$ ; IF NOT, CONTINUE SCAN 61 10 A2 D0 0951 2072 MOVL AQB$L_LINK(R2),(R1) ; CLOSE AQB LIST 11 11 0955 2073 BRB 120$ ; AND GO UNLOCK DATA BASE 0957 2074 100$: KSCAMACP KS 2050 SERIES CAMAC ACP 27-APR-1983 10:15:30 VAX-11 Macro V03-00 Page 45 V02-003 KSP_WAITQ, WAIT FOR ACP WORK 27-APR-1983 10:12:55 SYS$SYSDEVICE:[CAMAC.SOURCE]KSCAMA(1) 52 10 A0 D1 0957 2075 CMPL AQB$L_LINK(R0),R2 ; CUR AQB LINK TO OUR AQB? 06 13 095B 2076 BEQL 110$ ; IF SO, GO CLOSE LIST 50 10 A0 D0 095D 2077 MOVL AQB$L_LINK(R0),R0 ; ADVANCE TO NEXT AQB F4 11 0961 2078 BRB 100$ ; AND CONTINUE SEARCH 0963 2079 110$: 10 A2 D0 0963 2080 MOVL AQB$L_LINK(R2),- ; CLOSE AQB LIST 10 A0 0966 2081 AQB$L_LINK(R0) 0968 2082 120$: 52 DD 0968 2083 PUSHL R2 ; SAVE AQB ADDRESS 096A 2084 UNLOCKIO ; RELEASE I/O DATA BASE 50 8ED0 0981 2085 POPL R0 ; RESTORE AQB ADDRESS TO R0 00000000'GF 16 0984 2086 JSB G^EXE$DEANONPAGED ; RELEASE AQB BACK TO NPP 098A 2087 $DELPRC_S ; INITIATE IMAGE/PROCESS RUNDOWN 0995 2088 .DSABL LSB KSCAMACP KS 2050 SERIES CAMAC ACP 27-APR-1983 10:15:30 VAX-11 Macro V03-00 Page 46 V02-003 KSP_POSTIRP POST IRP FOR I/O COMPLETION 27-APR-1983 10:12:55 SYS$SYSDEVICE:[CAMAC.SOURCE]KSCAMA(1) 0995 2090 .SBTTL KSP_POSTIRP POST IRP FOR I/O COMPLETION 0995 2091 .ENABL LSB 0995 2092 0995 2093 ;++ 0995 2094 ; 0995 2095 ; Procedure: 0995 2096 ; KSP_POSTIRP 0995 2097 ; 0995 2098 ; Description: 0995 2099 ; This procedure posts an IRP to the I/O post processing 0995 2100 ; queue and performs necessary dismount checks and associated 0995 2101 ; processing when the VCB transaction count is exhausted. 0995 2102 ; 0995 2103 ; Inputs: 0995 2104 ; R3 - address of IRP to post for completion. 0995 2105 ; R5 - address of UCB connected to IRP. 0995 2106 ; 0995 2107 ; Outputs: 0995 2108 ; R0 - status of the request. 0995 2109 ; R0-R1 are destroyed. 0995 2110 ; 0995 2111 ;-- 0995 2112 0995 2113 KSP_POSTIRP: ; POST IRP COMPLETE 0995 2114 001C 0995 2115 .WORD ^M ; KSP_POSTIRP ENTRY MASK 60 A5 D6 0997 2116 INCL UCB$L_OPCNT(R5) ; UPDATE UNIT OPERATION COUNT 52 0094 C5 D0 099A 2117 MOVL UCB$L_HSU(R5),R2 ; LOCATE HSU FROM UCB 50 30 A2 D0 099F 2118 MOVL UCB$L_VCB(R2),R0 ; LOCATE VOL CONTL BLOCK 0C A0 B7 09A3 2119 DECW VCB$W_TRANS(R0) ; UPDATE VOL TRANS REMAINING 00000000'GF DE 09A6 2120 MOVAL G^IOC$GL_PSBL,R0 ; GET IRP POST QUEUE 50 09AC 00 B0 63 0E 09AD 2121 INSQUE (R3),@(R0) ; INSERT AT TAIL 03 12 09B1 2122 BNEQ 10$ ; IF NOT 0, NOT FIRST ENTRY 09B3 2123 SOFTINT #IPL$_IOPOST ; ELSE TRIGGER POST PROCESSOR 09B6 2124 10$: 00000000'8F E1 09B6 2125 BBC #DEV$V_DMT,- ; UNIT MARKED FOR DISMOUNT 34 34 A5 09BC 2126 UCB$L_DEVCHAR(R5),90$ ; IF NOT, EXIT 00000000'8F E1 09BF 2127 BBC #DEV$V_MNT,- ; MAKE SURE UNIT IS MOUNTED 2B 34 A5 09C5 2128 UCB$L_DEVCHAR(R5),90$ ; IF NOT ,IGNORE DISMOUNT 50 30 A5 D0 09C8 2129 MOVL UCB$L_VCB(R5),R0 ; GET VCB ADDRESS 54 10 A0 D0 09CC 2130 MOVL VCB$L_AQB(R0),R4 ; LOCATE ACCOCIATED AQB 09D0 2131 DSBINT #IPL$_SYNCH ; BLOCK IRP QUEUEING TO ACP 01 0C A0 B1 09D6 2132 CMPW VCB$W_TRANS(R0),#1 ; ANY MORE VCB ENTRIES? 14 14 09DA 2133 BGTR 20$ ; IF SO, WAIT ON DISMOUNT CA 09DC 2134 BICL #DEV$M_MNT!DEV$M_FOR!- 09DD 2135 DEV$M_DMT,- ; RESET BOTH MOUNT AND DISMOUNT 00000000'8F 09DD 2136 UCB$L_DEVCHAR(R5) ; IN UCB 34 A5 09E2 30 A5 D4 09E4 2137 CLRL UCB$L_VCB(R5) ; ZAP VCB POINTER 00000000'GF 16 09E7 2138 JSB G^EXE$DEANONPAGED ; RELEASE VCB BACK TO NPP 0B A4 97 09ED 2139 DECB AQB$B_MNTCNT(R4) ; DECREMENT MOUNT COUNT FOR ACP 09F0 2140 20$: 09F0 2141 ENBINT ; RESTORE PREVIOUS IPL 09F3 2142 90$: 04 09F3 2143 RET ; RETURN TO CALLER 09F4 2144 .DSABL LSB KSCAMACP KS 2050 SERIES CAMAC ACP 27-APR-1983 10:15:30 VAX-11 Macro V03-00 Page 47 V02-003 KSP_ENDMANDS ENABLE DEMAND INTERRUPTS 27-APR-1983 10:12:55 SYS$SYSDEVICE:[CAMAC.SOURCE]KSCAMA(1) 09F4 2145 .SBTTL KSP_ENDMANDS ENABLE DEMAND INTERRUPTS 09F4 2146 .ENABL LSB 09F4 2147 09F4 2148 ;++ 09F4 2149 ; 09F4 2150 ; Procedure: 09F4 2151 ; KSP_ENDMANDS 09F4 2152 ; 09F4 2153 ; Description: 09F4 2154 ; This procedure enables demand generation from the CAMAC device 09F4 2155 ; driver by allocating an AST control block, charging it aganist the 09F4 2156 ; ACP quota, connecting the AST control block to the demand AST listhead 09F4 2157 ; in the Highway Support Unit UCB and enabling demands in the 09F4 2158 ; CAMAC highway driver. 09F4 2159 ; 09F4 2160 ; Inputs: 09F4 2161 ; R5 - address of HSU UCB, 09F4 2162 ; R6 - AST entry address, 09F4 2163 ; R7 - AST parameter value. 09F4 2164 ; 09F4 2165 ; Outputs: 09F4 2166 ; 09F4 2167 ;-- 09F4 2168 09F4 2169 KSP_ENDMANDS: 001C 09F4 2170 .WORD ^M ; KSP_ENDMANDS ENTRY MASK 09F6 2171 50 1C 3C 09F6 2172 MOVZWL #SS$_EXQUOTA,R0 ; ASSUME EXCEEDED AST QUOTA 00000000'GF D0 09F9 2173 MOVL G^SCH$GL_CURPCB,R4 ; GET OWN PCB ADDRESS 54 09FF 38 A4 B5 0A00 2174 TSTW PCB$W_ASTCNT(R4) ; ALLOW ONE MORE? 63 13 0A03 2175 BEQL 90$ ; IF 0, NO WAY 51 28 9A 0A05 2176 MOVZBL #ACB$L_KAST+16,R1 ; SET DESIRED ACB LENGTH 00000000'GF 16 0A08 2177 JSB G^EXE$ALONONPAGED ; ALLOCATE DEMAND ACB 57 50 E9 0A0E 2178 BLBC R0,90$ ; IF FAILURE, ABORT 38 A4 B7 0A11 2179 DECW PCB$W_ASTCNT(R4) ; DECREMENT AST QUOTA 08 A2 51 B0 0A14 2180 MOVW R1,ACB$W_SIZE(R2) ; SAVE REAL ACB SIZE 00'8F 90 0A18 2181 MOVB #DYN$C_ACB,- ; INDICATE TYPE=ACB 0A A2 0A1B 2182 ACB$B_TYPE(R2) 06 90 0A1D 2183 MOVB #IPL$_QUEUEAST,- ; ACB USED AS FORK BLOCK 0B A2 0A1F 2184 ACB$B_RMOD(R2) ; FIRST. SET FORK IPL. 18 A2 56 D0 0A21 2185 MOVL R6,- ; SAVE AST ADDRESS 0A25 2186 ACB$L_KAST(R2) 1C A2 57 D0 0A25 2187 MOVL R7,- ; AND AST PARAMETER 0A29 2188 ACB$L_KAST+4(R2) 50 DC 0A29 2189 MOVPSL R0 ; GET PSL 50 02 18 EF 0A2B 2190 EXTZV #24,#2,R0,R0 ; EXTRACT CURRENT MODE 50 0A2F 50 40 8F 88 0A30 2191 BISB #ACB$M_QUOTA,R0 ; SET FOR NORMAL AST 20 A2 50 9A 0A34 2192 MOVZBL R0,ACB$L_KAST+8(R2) ; SAVE IN ACB 60 A4 D0 0A38 2193 MOVL PCB$L_PID(R4),- ; SAVE PID 24 A2 0A3B 2194 ACB$L_KAST+12(R2) 0A3D 2195 DSBINT UCB$B_DIPL(R5) ; DISABLE DEVICE INTERRUPTS 62 0098 C5 D0 0A44 2196 MOVL UCB$L_DMDAST(R5),(R2) ; INSERT ACB AT HEAD 0098 C5 52 D0 0A49 2197 MOVL R2,UCB$L_DMDAST(R5) ; AND LINK TO UCB LISTHEAD 0A4E 2198 ENBINT ; RESTORE PREVIOUS IPL 0A51 2199 $SETAST_S #1 ; ENABLE AST DELIVERY KSCAMACP KS 2050 SERIES CAMAC ACP 27-APR-1983 10:15:30 VAX-11 Macro V03-00 Page 48 V02-003 KSP_ENDMANDS ENABLE DEMAND INTERRUPTS 27-APR-1983 10:12:55 SYS$SYSDEVICE:[CAMAC.SOURCE]KSCAMA(1) 54 20 A5 D0 0A5A 2200 MOVL UCB$L_CRB(R5),R4 ; LOCATE CRB FROM UCB 2C B4 D0 0A5E 2201 MOVL @CRB$L_INTD+VEC$L_IDB(R4),- 54 0A61 2202 R4 ; LOCATE CSR FROM IDB 0A62 2203 0400 8F A8 0A62 2209 BISW #PES_M_BDIE,- ; ENABLE PARALLEL DEMAND 04 A4 0A66 2210 KS_W_PES(R4) ; INTERRUPTS 0A68 2212 90$: 04 0A68 2213 RET ; RETURN TO CALLER 0A69 2214 .DSABL LSB KSCAMACP KS 2050 SERIES CAMAC ACP 27-APR-1983 10:15:30 VAX-11 Macro V03-00 Page 49 V02-003 KSP_DBDMANDS, DISABLE CAMAC DEMANDS 27-APR-1983 10:12:55 SYS$SYSDEVICE:[CAMAC.SOURCE]KSCAMA(1) 0A69 2216 .SBTTL KSP_DBDMANDS, DISABLE CAMAC DEMANDS 0A69 2217 .ENABL LSB 0A69 2218 0A69 2219 ;++ 0A69 2220 ; 0A69 2221 ; Procedure: 0A69 2222 ; 0A69 2223 ; Description: 0A69 2224 ; This procedure disables demand generation from the CAMAC device 0A69 2225 ; driver by reversing the procedure performed by KSP_ENDMANDS. 0A69 2226 ; 0A69 2227 ; Inputs: 0A69 2228 ; R5 - address of HSU UCB. 0A69 2229 ; 0A69 2230 ; Outputs: 0A69 2231 ; R0 - status of request. 0A69 2232 ; 0A69 2233 ;-- 0A69 2234 0A69 2235 KSP_DBDMANDS: 000C 0A69 2236 .WORD ^M 0A6B 2237 0A6B 2238 $SETAST_S #0 ; DISABLE PROCESS AST DELIVERY 0A74 2239 DSBINT UCB$B_DIPL(R5) ; BLOCK DEVICE INTERRUPTS 51 20 A5 D0 0A7B 2240 MOVL UCB$L_CRB(R5),R1 ; LOCATE CRB FROM UCB 51 2C B1 D0 0A7F 2241 MOVL @CRB$L_INTD+VEC$L_IDB(R1),R1 ; GET CSR ADDRESS FROM IDB 0A83 2242 0400 8F AA 0A83 2247 BICW #PES_M_BDIE,- ; DISABLE PARALLEL DEMAND 04 A4 0A87 2248 KS_W_PES(R4) ; INTERRUPTS 0A89 2250 0A89 2251 ENBINT ; RESTORE PREVIOUS IPL 0A8C 2252 10$: 50 0098 C5 D0 0A8C 2253 MOVL UCB$L_DMDAST(R5),R0 ; GET DEMAND ACB ADDRESS 17 13 0A91 2254 BEQL 90$ ; IF END OF LIST, EXIT 0098 C5 60 D0 0A93 2255 MOVL (R0),UCB$L_DMDAST(R5) ; CLOSE LIST AFTER REMOVAL 00000000'GF D0 0A98 2256 MOVL G^SCH$GL_CURPCB,R1 ; GET OWN PCB ADDRESS 51 0A9E 38 A1 B6 0A9F 2257 INCW PCB$W_ASTCNT(R1) ; UPDATE PROCESS AST LIMIT 00000000'GF 16 0AA2 2258 JSB G^EXE$DEANONPAGED ; RELEASE ACB BACK TO NPP E2 11 0AA8 2259 BRB 10$ ; SEE IF ANOTHER 0AAA 2260 90$: 04 0AAA 2261 RET ; RETURN TO CALLER 0AAB 2262 .DSABL LSB KSCAMACP KS 2050 SERIES CAMAC ACP 27-APR-1983 10:15:30 VAX-11 Macro V03-00 Page 50 V02-003 LOCATE CRATE SUPPORT UNIT UCB 27-APR-1983 10:12:55 SYS$SYSDEVICE:[CAMAC.SOURCE]KSCAMA(1) 0AAB 2264 .SBTTL LOCATE CRATE SUPPORT UNIT UCB 0AAB 2265 .ENABL LSB 0AAB 2266 0AAB 2267 ;++ 0AAB 2268 ; 0AAB 2269 ; Procedure: 0AAB 2270 ; KSP_LOCCSU 0AAB 2271 ; 0AAB 2272 ; Description: 0AAB 2273 ; This procedure locates the UCB for a specified CAMAC crate 0AAB 2274 ; given the address of the Highway Support Unit UCB and the 0AAB 2275 ; CAMAC crate number. 0AAB 2276 ; 0AAB 2277 ; Inputs: 0AAB 2278 ; R2 - CAMAC crate number, 0AAB 2279 ; R5 - address of Highway support Unit UCB. 0AAB 2280 ; 0AAB 2281 ; Outputs: 0AAB 2282 ; R1 - address of CSU UCB, 0AAB 2283 ; R0 - status of the request. 0AAB 2284 ; 0AAB 2285 ;-- 0AAB 2286 0AAB 2287 KSP_LOCCSU: ; LOCATE CRATE SUPPORT UNIT UCB 0000 0AAB 2288 .WORD ^M<> ; KSP_LOCCSU ENTRY MASK 0AAD 2289 50 0908 8F 3C 0AAD 2290 MOVZWL #SS$_NOSUCHDEV,R0 ; ASSUME INVALID CRATE NUMBER 52 D5 0AB2 2291 TSTL R2 ; UNIT 0 SPECIFIED? 18 15 0AB4 2292 BLEQ 90$ ; IF NEG OR 0, ABORT 51 20 A5 D0 0AB6 2293 MOVL UCB$L_CRB(R5),R1 ; LOCATE CRB 2C A1 D0 0ABA 2294 MOVL CRB$L_INTD+VEC$L_IDB(R1),- 51 0ABD 2295 R1 ; LOCATE IDB FROM CRB 0C A1 52 B1 0ABE 2296 CMPW R2,IDB$W_UNITS(R1) ; LEGAL CRATE UNIT? 0A 14 0AC2 2297 BGTR 90$ ; IF NOT, ABORT 51 14 A142 D0 0AC4 2298 MOVL IDB$L_UCBLST(R1)[R2],- ; GET UCB ADDRESS FROM LIST 0AC9 2299 R1 03 13 0AC9 2300 BEQL 90$ ; IF 0, ABORT 50 01 3C 0ACB 2301 MOVZWL #SS$_NORMAL,R0 ; SET NORMAL STATUS OTHERWISE 0ACE 2302 90$: 04 0ACE 2303 RET ; RETURN TO CALLER 0ACF 2304 .DSABL LSB KSCAMACP KS 2050 SERIES CAMAC ACP 27-APR-1983 10:15:30 VAX-11 Macro V03-00 Page 51 V02-003 KSP_ALOLSB, ALLOCATE LAM SUPPORT BLOCK 27-APR-1983 10:12:55 SYS$SYSDEVICE:[CAMAC.SOURCE]KSCAMA(1) 0ACF 2306 .SBTTL KSP_ALOLSB, ALLOCATE LAM SUPPORT BLOCK 0ACF 2307 .ENABL LSB 0ACF 2308 0ACF 2309 ;++ 0ACF 2310 ; 0ACF 2311 ; Procedure: 0ACF 2312 ; KSP_ALOLSB 0ACF 2313 ; 0ACF 2314 ; Description: 0ACF 2315 ; This procedure allocates the LAM Support Block(LSB) data 0ACF 2316 ; structure from nonpaged pool, initializes it and links 0ACF 2317 ; it into the appropriate crate UCB. 0ACF 2318 ; 0ACF 2319 ; Inputs: 0ACF 2320 ; R5 - address of parent Crate Support Unit(UCB), 0ACF 2321 ; 0ACF 2322 ; Outputs: 0ACF 2323 ; R0 - Status of the request, 0ACF 2324 ; 0ACF 2325 ;-- 0ACF 2326 0ACF 2327 KSP_ALOLSB: ; ALLOCATE LAM SUPPORT BLOCK 000C 0ACF 2328 .WORD ^M ; KSP_ALOLSB ENTRY MASK 0AD1 2329 51 0070 8F 3C 0AD1 2330 MOVZWL #LSB_K_LENGTH,R1 ; GET LAM SUPP BLOCK LENGTH 00000000'GF 16 0AD6 2331 JSB G^EXE$ALONONPAGED ; CALL TO ALLOC NON-PAGED POOL 23 50 E9 0ADC 2332 BLBC R0,90$ ; IF FAILURE, ABORT 08 A2 51 B0 0ADF 2333 MOVW R1,LSB_W_SIZE(R2) ; SAVE REAL LSB SIZE 0098 C5 52 D0 0AE3 2334 MOVL R2,- ; SAVE LSB POINTER IN CRATE UCB 0AE8 2335 UCB$L_LSB(R5) 04 A8 0AE8 2336 BISW #DSTS_M_LSBV,- ; SET LSB VALID STATUS 5A A5 0AEA 2337 UCB$W_DEVSTS(R5) 0C A2 55 D0 0AEC 2338 MOVL R5,LSB_L_UCB(R2) ; LINK UCB TO LSB 50 D4 0AF0 2339 CLRL R0 ; INITIALIZE LOOP INDEX 0AF2 2340 40$: 10 A240 D4 0AF2 2341 CLRL LSB_L_LAMLST(R2)[R0] ; ZERO LAM LISTHEADS F8 50 18 F2 0AF6 2342 AOBLSS #LSB_K_NLMAX,R0,40$ ; LOOP THROUGH ALL LAM LISTHEADS 62 D4 0AFA 2343 CLRL LSB_L_STS(R2) ; CLEAR LAM STATUS FIELD 04 A2 D4 0AFC 2344 CLRL LSB_L_LPEND(R2) ; CLEAR LAM PENDING MASK 50 01 9A 0AFF 2345 MOVZBL #SS$_NORMAL,R0 ; SET NORMAL STATUS 0B02 2346 90$: 04 0B02 2347 RET ; RETURN TO CALLER 0B03 2348 .DSABL LSB KSCAMACP KS 2050 SERIES CAMAC ACP 27-APR-1983 10:15:30 VAX-11 Macro V03-00 Page 52 V02-003 KSP_DEALSB, DEALLOCATE LAM SUPPORT BLOCK 27-APR-1983 10:12:55 SYS$SYSDEVICE:[CAMAC.SOURCE]KSCAMA(1) 0B03 2350 .SBTTL KSP_DEALSB, DEALLOCATE LAM SUPPORT BLOCK 0B03 2351 .ENABL LSB 0B03 2352 ;++ 0B03 2353 ; 0B03 2354 ; Procedure: 0B03 2355 ; KSP_DEALSB 0B03 2356 ; 0B03 2357 ; Description: 0B03 2358 ; This procedure deallocates the LAM Support Block(LSB) data 0B03 2359 ; structure and resets the crate UCB link and status fields 0B03 2360 ; associated with LAM support. 0B03 2361 ; 0B03 2362 ; Inputs: 0B03 2363 ; 0B03 2364 ;-- 0B03 2365 0B03 2366 KSP_DEALSB: 000C 0B03 2367 .WORD ^M 0B05 2368 0B05 2369 DSBINT #IPL$_ASTDEL ; BLOCK LAM BLOCK REFERENCE 50 0098 C5 D0 0B0B 2370 MOVL UCB$L_LSB(R5),R0 ; GET LAM SUPP BLOCK ADDR 00000000'GF 16 0B10 2371 JSB G^EXE$DEANONPAGED ; RELEASE BACK TO NPP 0B 50 E9 0B16 2372 BLBC R0,90$ ; IF FAILURE, EXIT HERE 0098 C5 D4 0B19 2373 CLRL UCB$L_LSB(R5) ; ZAP LSB POINTER 5A A5 04 AA 0B1D 2374 BICW #DSTS_M_LSBV,UCB$W_DEVSTS(R5) ; RESET LAM BLOCK VALID 50 01 D0 0B21 2375 MOVL #SS$_NORMAL,R0 ; SET NORMAL STATUS 0B24 2376 90$: 0B24 2377 ENBINT ; RESTORE PREVIOUS IPL 04 0B27 2378 RET ; RETURN TO CALLER 0B28 2379 .DSABL LSB KSCAMACP KS 2050 SERIES CAMAC ACP 27-APR-1983 10:15:30 VAX-11 Macro V03-00 Page 53 V02-003 KSP_SETLAMAST, SET LAM ATTENTION AST 27-APR-1983 10:12:55 SYS$SYSDEVICE:[CAMAC.SOURCE]KSCAMA(1) 0B28 2381 .SBTTL KSP_SETLAMAST, SET LAM ATTENTION AST 0B28 2382 .ENABL LSB 0B28 2383 0B28 2384 ;++ 0B28 2385 ; 0B28 2386 ; Procedure: 0B28 2387 ; KSP_SETLAMAST 0B28 2388 ; 0B28 2389 ; Description: 0B28 2390 ; This procedure connects a LAM AST for the specified process 0B28 2391 ; to the specified CAMAC crate and station. 0B28 2392 ; 0B28 2393 ; Inputs: 0B28 2394 ; R3 - IRP address, 0B28 2395 ; R4 - PCB address, 0B28 2396 ; R6 - address of LSB. 0B28 2397 ; 0B28 2398 ; Outputs: 0B28 2399 ; R0 - status of the request. 0B28 2400 ; 0B28 2401 ;-- 0B28 2402 0B28 2403 KSP_SETLAMAST: ; SET LAM ATTENTION AST 0004 0B28 2404 .WORD ^M ; KSP_SETLAMAST ENTRY MASK 50 1C 3C 0B2A 2405 MOVZWL #SS$_EXQUOTA,R0 ; ASSUME EXCEEDS QUOTA 38 A4 B5 0B2D 2406 TSTW PCB$W_ASTCNT(R4) ; ANY REMAINING? 62 13 0B30 2407 BEQL 90$ ; IF 0, ABORT 0B32 2408 $SETAST_S #0 ; DISABLE PROCESS AST'S 51 1C 9A 0B3B 2409 MOVZBL #ACB$L_KAST+4,R1 ; LENGTH OF ACB 53 DD 0B3E 2410 PUSHL R3 ; SAVE IRP ADDRESS 00000000'GF 16 0B40 2411 JSB G^EXE$ALONONPAGED ; ALLOCATE AST CONTROL BLOCK 53 8ED0 0B46 2412 POPL R3 ; RESTORE IRP ADDRESS 3C 50 E9 0B49 2413 BLBC R0,20$ ; IF FAILURE, ABORT 38 A4 B7 0B4C 2414 DECW PCB$W_ASTCNT(R4) ; DECREMENT QUOTA 08 A2 51 B0 0B4F 2415 MOVW R1,ACB$W_SIZE(R2) ; SAVE ACB SIZE 00'8F 90 0B53 2416 MOVB #DYN$C_ACB,- ; SET TYPE AS ACB 0A A2 0B56 2417 ACB$B_TYPE(R2) 60 A4 D0 0B58 2418 MOVL PCB$L_PID(R4),- ; INSERT PID FROM PCB 0C A2 0B5B 2419 ACB$L_PID(R2) 18 A2 D4 0B5D 2420 CLRL ACB$L_KAST(R2) ; ZERO SPEC KERNEL AST 38 A3 D0 0B60 2421 MOVL IRP$L_LAMAST(R3),- ; SAVE AST ADDRESS 10 A2 0B63 2422 ACB$L_AST(R2) 3C A3 D0 0B65 2423 MOVL IRP$L_LAMASTP(R3),- ; AND AST PARAMETER 14 A2 0B68 2424 ACB$L_ASTPRM(R2) 0B A3 90 0B6A 2425 MOVB IRP$B_RMOD(R3),- ; AND IRP ACCESS MODE 0B A2 0B6D 2426 ACB$B_RMOD(R2) 40 8F 88 0B6F 2427 BISB #ACB$M_QUOTA,- ; SET FOR NORMAL AST 0B A2 0B72 2428 ACB$B_RMOD(R2) 50 41 A3 9A 0B74 2429 MOVZBL IRP$B_N(R3),R0 ; GET CAMAC STATION NUMBER 51 10 A640 DE 0B78 2430 MOVAL LSB_L_LAMLST(R6)[R0],- 0B7D 2431 R1 ; LOCATE LAM AST LISTHEAD 62 61 D0 0B7D 2432 MOVL (R1),(R2) ; INSERT AT LIST HEAD 61 52 D0 0B80 2433 MOVL R2,(R1) ; UPDATE LISTHEAD 00 04 A6 50 E2 0B83 2434 BBSS R0,LSB_L_LPEND(R6),20$ ; SET LAM PEND FOR STATION 0B88 2435 20$: 0B88 2436 $SETAST_S #1 ; REENABLE PROCESS AST'S 50 01 D0 0B91 2437 MOVL #SS$_NORMAL,R0 ; SET NORMAL STATUS KSCAMACP KS 2050 SERIES CAMAC ACP 27-APR-1983 10:15:30 VAX-11 Macro V03-00 Page 54 V02-003 KSP_SETLAMAST, SET LAM ATTENTION AST 27-APR-1983 10:12:55 SYS$SYSDEVICE:[CAMAC.SOURCE]KSCAMA(1) 0B94 2438 90$: 04 0B94 2439 RET ; RETURN TO CALLER 0B95 2440 .DSABL LSB KSCAMACP KS 2050 SERIES CAMAC ACP 27-APR-1983 10:15:30 VAX-11 Macro V03-00 Page 55 V02-003 KSP_CANLAMAST CANCEL LAM AST 27-APR-1983 10:12:55 SYS$SYSDEVICE:[CAMAC.SOURCE]KSCAMA(1) 0B95 2442 .SBTTL KSP_CANLAMAST CANCEL LAM AST 0B95 2443 .ENABL LSB 0B95 2444 0B95 2445 ;++ 0B95 2446 ; 0B95 2447 ; Procedure: 0B95 2448 ; KSP_CANLAMAST 0B95 2449 ; 0B95 2450 ; Description: 0B95 2451 ; This procedure cancels pending LAM AST's for the 0B95 2452 ; specified process associated with the specified 0B95 2453 ; CAMAC crate and station. 0B95 2454 ; 0B95 2455 ; Inputs: 0B95 2456 ; R3 - IRP address, 0B95 2457 ; R4 - address of PCB, 0B95 2458 ; R6 - address of LSB. 0B95 2459 ; 0B95 2460 ; Outputs: 0B95 2461 ; R0 - status of request. 0B95 2462 ; 0B95 2463 ;-- 0B95 2464 0B95 2465 KSP_CANLAMAST: ; CANCEL LAM ATTENTION AST'S 008C 0B95 2466 .WORD ^M 0B97 2467 0B97 2468 $SETAST_S #0 ; DISABLE AST PROCESS AST 50 41 A3 9A 0BA0 2469 MOVZBL IRP$B_N(R3),R0 ; GET CAMAC STATION 50 DD 0BA4 2470 PUSHL R0 ; SAVE CAMAC STATION 57 10 A640 DE 0BA6 2471 MOVAL LSB_L_LAMLST(R6)[R0],- 0BAB 2472 R7 ; LOCATE LAM AST LISTHEAD 57 DD 0BAB 2473 PUSHL R7 ; SAVE LISTHEAD ADDRESS 0BAD 2474 20$: 50 67 D0 0BAD 2475 MOVL (R7),R0 ; GET NEXT ACB ADDRESS 1A 13 0BB0 2476 BEQL 90$ ; IF 0, END OF LIST 60 A4 D1 0BB2 2477 CMPL PCB$L_PID(R4),- ; PID MATCH ACB? 0C A0 0BB5 2478 ACB$L_PID(R0) 0E 12 0BB7 2479 BNEQ 10$ ; IF NOT MATCH, SET FOR NEXT 67 60 D0 0BB9 2480 MOVL (R0),(R7) ; CLOSE LIST AFTER REMOVAL 38 A4 B6 0BBC 2481 INCW PCB$W_ASTCNT(R4) ; INCREMENT AST QUOTA 00000000'GF 16 0BBF 2482 JSB G^EXE$DEANONPAGED ; DEALLOCATE ACB E6 11 0BC5 2483 BRB 20$ ; CONTINUE UNTIL LIST DONE 0BC7 2484 10$: 57 50 D0 0BC7 2485 MOVL R0,R7 ; UPDATE PREVIOUS ENTRY PNTR E1 11 0BCA 2486 BRB 20$ ; CONTINUE UNTIL LIST DONE 0BCC 2487 90$: 9E D5 0BCC 2488 TSTL @(SP)+ ; LISTHEAD 0? 08 12 0BCE 2489 BNEQ 80$ ; IF NOT, GO RETURN 50 8ED0 0BD0 2490 POPL R0 ; RESTORE CAMAC STATION 00 04 A6 50 E5 0BD3 2491 BBCC R0,LSB_L_LPEND(R6),80$ ; RESET BIT FOR LAMS PENDING 0BD8 2492 80$: 0BD8 2493 $SETAST_S #1 ; REENABLE PROCESS AST'S 50 01 9A 0BE1 2494 MOVZBL #SS$_NORMAL,R0 ; SET NORMAL STATUS 04 0BE4 2495 RET ; RETURN TO CALLER 0BE5 2496 .DSABL LSB KSCAMACP KS 2050 SERIES CAMAC ACP 27-APR-1983 10:15:30 VAX-11 Macro V03-00 Page 56 V02-003 KSP_FLUSHAST, FLUSH AST LIST 27-APR-1983 10:12:55 SYS$SYSDEVICE:[CAMAC.SOURCE]KSCAMA(1) 0BE5 2498 .SBTTL KSP_FLUSHAST, FLUSH AST LIST 0BE5 2499 .ENABL LSB 0BE5 2500 0BE5 2501 ;++ 0BE5 2502 ; 0BE5 2503 ; Procedure: 0BE5 2504 ; KSP_FLUSHAST 0BE5 2505 ; 0BE5 2506 ; Description: 0BE5 2507 ; This procedure flushes ALL LAM AST's for the specified 0BE5 2508 ; CAMAC crate and station. 0BE5 2509 ; 0BE5 2510 ; Inputs: 0BE5 2511 ; R2 - CAMAC station number, 0BE5 2512 ; R6 - address of LAM support block. 0BE5 2513 ; 0BE5 2514 ; Outputs: 0BE5 2515 ; R0 - status of request. 0BE5 2516 ; 0BE5 2517 ;-- 0BE5 2518 0BE5 2519 KSP_FLUSHAST: ; FLUSH AST LIST 00BC 0BE5 2520 .WORD ^M 0BE7 2521 0BE7 2522 $SETAST_S #0 ; DISABLE PROCESS AST'S 52 DD 0BF0 2523 PUSHL R2 ; SAVE STATION NUMBER 57 10 A642 DE 0BF2 2524 MOVAL LSB_L_LAMLST(R6)[R2],- ; LOCATE LAM AST LISTHEAD 0BF7 2525 R7 0BF7 2526 10$: 50 67 D0 0BF7 2527 MOVL (R7),R0 ; GET NEXT ACB ADDRESS 24 13 0BFA 2528 BEQL 90$ ; IF 0, END OF LIST 67 60 D0 0BFC 2529 MOVL (R0),(R7) ; CLOSE LIST AFTER REMOVAL 0BFF 2530 $LOCPCB - ; GET PCB ADDR FOR AST BLOCK 0BFF 2531 PID=ACB$L_PID(R0) ; R4 GETS PCB ADDR 60 A4 D1 0C0E 2532 CMPL PCB$L_PID(R4),- ; PID MATCH ACB? 0C A0 0C11 2533 ACB$L_PID(R0) 03 12 0C13 2534 BNEQ 30$ ; IF NOT MATCH, SKIP 38 A4 B6 0C15 2535 INCW PCB$W_ASTCNT(R4) ; INCREMENT AST QUOTA 0C18 2536 30$: 00000000'GF 16 0C18 2537 JSB G^EXE$DEANONPAGED ; DEALLOCATE ACB D7 11 0C1E 2538 BRB 10$ ; CONTINUE UNTIL LIST DONE 0C20 2539 90$: 52 8ED0 0C20 2540 POPL R2 ; RESTORE STATION NUMBER 00 04 A6 52 E5 0C23 2541 BBCC R2,LSB_L_LPEND(R6),100$ ; RESET LAM PEND FOR STATION 0C28 2542 100$: 0C28 2543 $SETAST_S #1 ; REENABLE AST'S 50 01 3C 0C31 2544 MOVZWL #SS$_NORMAL,R0 ; SET NORMAL STATUS 04 0C34 2545 RET ; RETURN TO CALLER 0C35 2546 .DSABL LSB KSCAMACP KS 2050 SERIES CAMAC ACP 27-APR-1983 10:15:30 VAX-11 Macro V03-00 Page 57 V02-003 KSP_DELAMAST DELIVER LAM AST LIST 27-APR-1983 10:12:55 SYS$SYSDEVICE:[CAMAC.SOURCE]KSCAMA(1) 0C35 2548 .SBTTL KSP_DELAMAST DELIVER LAM AST LIST 0C35 2549 .ENABL LSB 0C35 2550 0C35 2551 ;++ 0C35 2552 ; 0C35 2553 ; Procedure: 0C35 2554 ; KSP_DELAMAST 0C35 2555 ; 0C35 2556 ; Description: 0C35 2557 ; This procedure delivers the LAM AST list for the specified 0C35 2558 ; CAMAC crate and station to the requesting process(es). 0C35 2559 ; 0C35 2560 ; Inputs: 0C35 2561 ; R2 - CAMAC station number, 0C35 2562 ; R6 - address of LAM support block. 0C35 2563 ; 0C35 2564 ; Outputs: 0C35 2565 ; R0 -status of the request. 0C35 2566 ; 0C35 2567 ;-- 0C35 2568 0C35 2569 KSP_DELAMAST: ; DELIVER LAM AST LIST 00BC 0C35 2570 .WORD ^M 0C37 2571 52 DD 0C37 2572 PUSHL R2 ; SAVE FOR LATER 57 10 A642 DE 0C39 2573 MOVAL LSB_L_LAMLST(R6)[R2],- ; LOCATE LAM LIST FOR STATION 0C3E 2574 R7 0C3E 2575 10$: 55 67 D0 0C3E 2576 MOVL (R7),R5 ; GET NEXT ACB ADDRESS 0E 13 0C41 2577 BEQL 90$ ; IF 0, END OF LIST 67 65 D0 0C43 2578 MOVL (R5),(R7) ; CLOSE LIST 52 01 9A 0C46 2579 MOVZBL #PRI$_IOCOM,R2 ; SET PRI INCREMENT I/O COMPLETE 00000000'GF 16 0C49 2580 JSB G^SCH$QAST ; QUEUE LAM AST TO PROCESS ED 11 0C4F 2581 BRB 10$ ; CONTINUE AST DELIVERY 0C51 2582 90$: 52 8ED0 0C51 2583 POPL R2 ; RESTORE STATION 00 04 A6 52 E5 0C54 2584 BBCC R2,LSB_L_LPEND(R6),100$ ; RESET LAM PEND FOR STATION 0C59 2585 100$: 50 01 9A 0C59 2586 MOVZBL #SS$_NORMAL,R0 ; RETURN NORMAL STATUS 04 0C5C 2587 RET ; RETURN TO CALLER 0C5D 2588 .DSABL LSB KSCAMACP KS 2050 SERIES CAMAC ACP 27-APR-1983 10:15:30 VAX-11 Macro V03-00 Page 58 V02-003 KSP_DELAMAST DELIVER LAM AST LIST 27-APR-1983 10:12:55 SYS$SYSDEVICE:[CAMAC.SOURCE]KSCAMA(1) 0C5D 2590 ; 0C5D 2591 ; END OF WORKING SET LOCK RANGE 0C5D 2592 ; 0C5D 2593 KSP_LWSEND: 0C5D 2594 .END KSP_MAIN KSCAMACP KS 2050 SERIES CAMAC ACP 27-APR-1983 10:15:30 VAX-11 Macro V03-00 Page 59 Symbol table 27-APR-1983 10:12:55 SYS$SYSDEVICE:[CAMAC.SOURCE]KSCAMA(1) $$T1 = 00000001 CCB$C_LENGTH 00000010 CRB$L_LINK 00000020 ACB$B_RMOD 0000000B CCB$K_LENGTH 00000010 CRB$L_TIMELINK 00000014 ACB$B_TYPE 0000000A CCB$L_DIRP 0000000C CRB$L_TOUTROUT 0000001C ACB$C_LENGTH 0000001C CCB$L_UCB 00000000 CRB$L_WQBL 00000004 ACB$K_LENGTH 0000001C CCB$L_WIND 00000004 CRB$L_WQFL 00000000 ACB$L_AST 00000010 CCB$M_AMB = 00000001 CRB$M_BSY = 00000001 ACB$L_ASTPRM 00000014 CCB$V_AMB = 00000000 CRB$S_INTD = 00000024 ACB$L_ASTQBL 00000004 CCB$W_IOC 0000000A CRB$S_INTD2 = 00000024 ACB$L_ASTQFL 00000000 CDH_M_16 = 00004000 CRB$V_BSY = 00000000 ACB$L_KAST 00000018 CDH_M_BCF = 00003800 CRB$W_REFC 0000000C ACB$L_PID 0000000C CDH_M_BCI = 00000700 CRB$W_SIZE 00000008 ACB$M_KAST = 00000080 CDH_M_C = 00003F00 DATA = 0000001C ACB$M_NODELETE = 00000020 CDH_M_HSB = 000000FF DCR_M_DFO = 00004000 ACB$M_PKAST = 00000010 CDH_S_16 = 00000001 DCR_M_DR = 00000080 ACB$M_QUOTA = 00000040 CDH_S_BCF = 00000003 DCR_M_GOCO = 00002000 ACB$S_MODE = 00000002 CDH_S_BCI = 00000003 DCR_M_HDR = 00008000 ACB$V_KAST = 00000007 CDH_S_C = 00000006 DCR_M_SCA = 0000003F ACB$V_MODE = 00000000 CDH_S_HSB = 00000008 DCR_M_SDIE = 00000040 ACB$V_NODELETE = 00000005 CDH_V_16 = 0000000E DCR_M_SGL = 00001F00 ACB$V_PKAST = 00000004 CDH_V_BCF = 0000000B DCR_S_DFO = 00000001 ACB$V_QUOTA = 00000006 CDH_V_BCI = 00000008 DCR_S_DR = 00000001 ACB$W_SIZE 00000008 CDH_V_C = 00000008 DCR_S_GOCO = 00000001 AQB$B_ACPTYPE 00000015 CDH_V_HSB = 00000000 DCR_S_HDR = 00000001 AQB$B_CLASS 00000016 CHF$L_MCHARGLST 00000008 DCR_S_SCA = 00000006 AQB$B_MNTCNT 0000000B CHF$L_MCH_ARGS 00000000 DCR_S_SDIE = 00000001 AQB$B_STATUS 00000014 CHF$L_MCH_DEPTH 00000008 DCR_S_SGL = 00000005 AQB$B_TYPE 0000000A CHF$L_MCH_FRAME 00000004 DCR_V_DFO = 0000000E AQB$C_LENGTH 00000018 CHF$L_MCH_SAVR0 0000000C DCR_V_DR = 00000007 AQB$K_F11V1 = 00000001 CHF$L_MCH_SAVR1 00000010 DCR_V_GOCO = 0000000D AQB$K_F11V2 = 00000002 CHF$L_SIGARGLST 00000004 DCR_V_HDR = 0000000F AQB$K_JNL = 00000006 CHF$L_SIG_ARG1 00000008 DCR_V_SCA = 00000000 AQB$K_LENGTH 00000018 CHF$L_SIG_ARGS 00000000 DCR_V_SDIE = 00000006 AQB$K_MTA = 00000003 CHF$L_SIG_NAME 00000004 DCR_V_SGL = 00000008 AQB$K_NET = 00000004 CMR_M_A = 000001E0 DEV$M_DMT ******** X 04 AQB$K_REM = 00000005 CMR_M_F = 0000001F DEV$M_FOR ******** X 04 AQB$K_UNDEFINED= 00000000 CMR_M_N = 00003E00 DEV$M_MNT ******** X 04 AQB$L_ACPPID 0000000C CMR_M_QNE = 00008000 DEV$V_DMT ******** X 04 AQB$L_ACPQBL 00000004 CMR_M_XI = 00004000 DEV$V_MNT ******** X 04 AQB$L_ACPQFL 00000000 CMR_S_A = 00000004 DFR_M_DFE = 00000040 AQB$L_LINK 00000010 CMR_S_F = 00000005 DFR_M_DFOR = 00000080 AQB$M_CREATING = 00000008 CMR_S_N = 00000005 DFR_M_HD = 00008000 AQB$M_DEFCLASS = 00000002 CMR_S_QNE = 00000001 DFR_M_SCA = 0000003F AQB$M_DEFSYS = 00000004 CMR_S_XI = 00000001 DFR_M_SGL = 00001F00 AQB$M_UNIQUE = 00000001 CMR_V_A = 00000005 DFR_S_DFE = 00000001 AQB$V_CREATING = 00000003 CMR_V_F = 00000000 DFR_S_DFOR = 00000001 AQB$V_DEFCLASS = 00000001 CMR_V_N = 00000009 DFR_S_HD = 00000001 AQB$V_DEFSYS = 00000002 CMR_V_QNE = 0000000F DFR_S_SCA = 00000006 AQB$V_UNIQUE = 00000000 CMR_V_XI = 0000000E DFR_S_SGL = 00000005 AQB$W_SIZE 00000008 CRATE = 0000000C DFR_V_DFE = 00000006 ASTPRM = 00000004 CRB$B_MASK 0000000E DFR_V_DFOR = 00000007 BDM_K_LENGTH 0000000C CRB$B_TYPE 0000000A DFR_V_HD = 0000000F BDM_L_CMASK 00000000 CRB$C_LENGTH 00000048 DFR_V_SCA = 00000000 BDM_L_CRATE 00000004 CRB$K_LENGTH 00000048 DFR_V_SGL = 00000008 BDM_L_LMASK 00000008 CRB$L_AUXSTRUC 00000010 DSTS_M_DMA = 00000001 BIT... = 0000001A CRB$L_DUETIME 00000018 DSTS_M_LSBV = 00000004 CCB$B_AMOD 00000009 CRB$L_INTD 00000024 DSTS_M_MULTI = 00000002 CCB$B_STS 00000008 CRB$L_INTD2 00000048 DSTS_S_DMA = 00000001 KSCAMACP KS 2050 SERIES CAMAC ACP 27-APR-1983 10:15:30 VAX-11 Macro V03-00 Page 60 Symbol table 27-APR-1983 10:12:55 SYS$SYSDEVICE:[CAMAC.SOURCE]KSCAMA(1) DSTS_S_LSBV = 00000001 IO$M_ESCAPE = 00004000 IO$M_SKPSECINH = 00000200 DSTS_S_MULTI = 00000001 IO$M_EXTEND = 00008000 IO$M_SLAVLOOP = 00000080 DSTS_V_DMA = 00000000 IO$M_FCODE = 0000003F IO$M_STARTUP = 00000040 DSTS_V_LSBV = 00000002 IO$M_FORCE = 00000040 IO$M_SWAP = 00000400 DSTS_V_MULTI = 00000001 IO$M_HANGUP = 00000200 IO$M_SYNCH = 00000200 DYN$C_ACB ******** X 04 IO$M_INCLUDE = 00000800 IO$M_TIMED = 00000080 EFN = 00000004 IO$M_INHERLOG = 00000800 IO$M_TRMNOECHO = 00001000 EXE$ALONONPAGED ******** X 04 IO$M_INHEXTGAP = 00001000 IO$M_TYPEAHDCNT= 00000040 EXE$DEANONPAGED ******** X 04 IO$M_INHRETRY = 00008000 IO$M_UNLOOP = 00000100 FUNC = 00000018 IO$M_INHSEEK = 00001000 IO$M_WORD = 00000040 HANDID = 00000008 IO$M_INTCLOCK = 00001000 IO$M_WRTATTN = 00000100 IDB$B_TYPE 0000000A IO$M_INTERRUPT = 00000040 IO$S_FCODE = 00000006 IDB$B_VECTOR 0000000B IO$M_INTSKIP = 00000100 IO$V_ABORT = 00000008 IDB$C_LENGTH 00000034 IO$M_LASTBLOCK = 00000400 IO$V_ACCEPT = 00000007 IDB$K_LENGTH 00000034 IO$M_LINE_OFF = 00000200 IO$V_ACCESS = 00000006 IDB$L_ADP 00000010 IO$M_LINE_ON = 00000800 IO$V_ATTNAST = 00000008 IDB$L_CSR 00000000 IO$M_LOOP = 00000080 IO$V_BINARY = 00000006 IDB$L_OWNER 00000004 IO$M_LOOP_EXT = 00001000 IO$V_CANCTRLO = 00000006 IDB$L_UCBLST 00000014 IO$M_LPBEXT = 00002000 IO$V_CANLAM = 00000008 IDB$S_UCBLST = 00000020 IO$M_LPBINT = 00004000 IO$V_CECYL = 0000000A IDB$W_SIZE 00000008 IO$M_MAINT = 00000040 IO$V_CLEAR = 0000000C IDB$W_UNITS 0000000C IO$M_MAINTLOOP = 00000200 IO$V_CLR_COUNT = 0000000A IO$K_LOOPTEST = 0000E000 IO$M_MORE = 00000040 IO$V_CNTRLENTRY= 00000007 IO$K_PTPBSC = 00002000 IO$M_MOUNT = 00000200 IO$V_COFFLINE = 0000000A IO$K_SRRUNOUT = 00000000 IO$M_MOVETRACKD= 00000080 IO$V_COMMOD = 00000006 IO$M_ABORT = 00000100 IO$M_MULTIPLE = 00000100 IO$V_CONLINE = 00000009 IO$M_ACCEPT = 00000080 IO$M_NOCTSWAIT = 00000040 IO$V_CREATE = 00000007 IO$M_ACCESS = 00000040 IO$M_NODSRWAIT = 00000100 IO$V_CTRL = 00000009 IO$M_ATTNAST = 00000100 IO$M_NOECHO = 00000040 IO$V_CTRLCAST = 00000008 IO$M_BINARY = 00000040 IO$M_NOFILTR = 00000200 IO$V_CTRLYAST = 00000007 IO$M_CANCTRLO = 00000040 IO$M_NOFORMAT = 00000100 IO$V_CVTLOW = 00000008 IO$M_CANLAM = 00000100 IO$M_NOMRSP = 00000040 IO$V_CYCLE = 0000000C IO$M_CECYL = 00000400 IO$M_NOW = 00000040 IO$V_DABLAMS = 00000008 IO$M_CLEAR = 00001000 IO$M_NOWAIT = 00000080 IO$V_DATACHECK = 0000000E IO$M_CLR_COUNT = 00000400 IO$M_OPPOSITE = 00000200 IO$V_DATAPATH = 0000000A IO$M_CNTRLENTRY= 00000080 IO$M_OUTBAND = 00000400 IO$V_DELDATA = 00000006 IO$M_COFFLINE = 00000400 IO$M_PACKED = 00000080 IO$V_DELETE = 00000008 IO$M_COMMOD = 00000040 IO$M_PURGE = 00000800 IO$V_DIAGNOSTIC= 00000008 IO$M_CONLINE = 00000200 IO$M_QUALIFIED = 00000080 IO$V_DMOUNT = 0000000A IO$M_CREATE = 00000080 IO$M_RD_COUNT = 00000100 IO$V_DSABLMBX = 0000000A IO$M_CTRL = 00000200 IO$M_RD_MEM = 00000040 IO$V_DSABL_ALT = 0000000C IO$M_CTRLCAST = 00000100 IO$M_RD_MODEM = 00000080 IO$V_ENABLMBX = 00000007 IO$M_CTRLYAST = 00000080 IO$M_READATTN = 00000080 IO$V_ENABL_ALT = 0000000B IO$M_CVTLOW = 00000100 IO$M_READCSR = 00008000 IO$V_ENLAMS = 00000007 IO$M_CYCLE = 00001000 IO$M_REDIRECT = 00000040 IO$V_ESCAPE = 0000000E IO$M_DABLAMS = 00000100 IO$M_REFRESH = 00002000 IO$V_EXTEND = 0000000F IO$M_DATACHECK = 00004000 IO$M_RESET = 00000800 IO$V_FCODE = 00000000 IO$M_DATAPATH = 00000400 IO$M_REVERSE = 00000040 IO$V_FORCE = 00000006 IO$M_DELDATA = 00000040 IO$M_SETBSIZE = 00000200 IO$V_HANGUP = 00000009 IO$M_DELETE = 00000100 IO$M_SETCUADR = 00000100 IO$V_INCLUDE = 0000000B IO$M_DIAGNOSTIC= 00000100 IO$M_SETENQCNT = 00000800 IO$V_INHERLOG = 0000000B IO$M_DMOUNT = 00000400 IO$M_SETEVF = 00000040 IO$V_INHEXTGAP = 0000000C IO$M_DSABLMBX = 00000400 IO$M_SETFNCT = 00000200 IO$V_INHRETRY = 0000000F IO$M_DSABL_ALT = 00001000 IO$M_SETPOOLSZ = 00000400 IO$V_INHSEEK = 0000000C IO$M_ENABLMBX = 00000080 IO$M_SETPROT = 00000200 IO$V_INTCLOCK = 0000000C IO$M_ENABL_ALT = 00000800 IO$M_SET_MODEM = 00000400 IO$V_INTERRUPT = 00000006 IO$M_ENLAMS = 00000080 IO$M_SHUTDOWN = 00000080 IO$V_INTSKIP = 00000008 KSCAMACP KS 2050 SERIES CAMAC ACP 27-APR-1983 10:15:30 VAX-11 Macro V03-00 Page 61 Symbol table 27-APR-1983 10:12:55 SYS$SYSDEVICE:[CAMAC.SOURCE]KSCAMA(1) IO$V_LASTBLOCK = 0000000A IO$_AVAILABLE = 00000011 IO$_STARTDATAP = 00000006 IO$V_LINE_OFF = 00000009 IO$_CAMIO = 00000032 IO$_STARTMPROC = 00000002 IO$V_LINE_ON = 0000000B IO$_CLEAN = 0000001E IO$_STARTSPNDL = 00000019 IO$V_LOOP = 00000007 IO$_CONINTREAD = 0000003C IO$_STOP = 00000003 IO$V_LOOP_EXT = 0000000C IO$_CONINTWRITE= 0000003D IO$_TTYREADALL = 0000003A IO$V_LPBEXT = 0000000D IO$_CREATE = 00000033 IO$_TTYREADPALL= 0000003B IO$V_LPBINT = 0000000E IO$_DEACCESS = 00000034 IO$_UNLOAD = 00000001 IO$V_MAINT = 00000006 IO$_DELETE = 00000035 IO$_VIRTUAL = 0000003F IO$V_MAINTLOOP = 00000009 IO$_DIAGNOSE = 0000001D IO$_WRITECHECK = 0000000A IO$V_MORE = 00000006 IO$_DRVCLR = 00000004 IO$_WRITECHECKH= 00000018 IO$V_MOUNT = 00000009 IO$_DSE = 00000015 IO$_WRITEHEAD = 0000000D IO$V_MOVETRACKD= 00000007 IO$_ENDRU1 = 0000003A IO$_WRITELBLK = 00000020 IO$V_MULTIPLE = 00000008 IO$_ENDRU2 = 0000003B IO$_WRITEMARK = 0000001C IO$V_NOCTSWAIT = 00000006 IO$_ERASETAPE = 00000006 IO$_WRITEOF = 00000028 IO$V_NODSRWAIT = 00000008 IO$_FORCE = 00000037 IO$_WRITEPBLK = 0000000B IO$V_NOECHO = 00000006 IO$_FORMAT = 0000001E IO$_WRITERET = 00000018 IO$V_NOFILTR = 00000009 IO$_INITIALIZE = 00000004 IO$_WRITETRACKD= 0000000F IO$V_NOFORMAT = 00000008 IO$_LAMAST = 00000033 IO$_WRITEVBLK = 00000030 IO$V_NOMRSP = 00000006 IO$_LOADMCODE = 00000001 IO$_WRTTMKR = 0000001D IO$V_NOW = 00000006 IO$_LOGICAL = 0000002F IOC$GL_AQBLIST ******** X 04 IO$V_NOWAIT = 00000007 IO$_MODIFY = 00000036 IOC$GL_MUTEX ******** X 04 IO$V_OPPOSITE = 00000009 IO$_MOUNT = 00000039 IOC$GL_PSBL ******** X 04 IO$V_OUTBAND = 0000000A IO$_NETCONTROL = 00000036 IOC$VERIFYCHAN ******** X 04 IO$V_PACKED = 00000007 IO$_NOP = 00000000 IOCHAN = 00000008 IO$V_PURGE = 0000000B IO$_OFFSET = 00000006 IPL$_ASTDEL = 00000002 IO$V_QUALIFIED = 00000007 IO$_PACKACK = 00000008 IPL$_HWCLK = 00000018 IO$V_RD_COUNT = 00000008 IO$_PHYSICAL = 0000001F IPL$_IOPOST = 00000004 IO$V_RD_MEM = 00000006 IO$_QSTOP = 00000007 IPL$_MAILBOX = 0000000B IO$V_RD_MODEM = 00000007 IO$_RDSTATS = 0000000D IPL$_POWER = 0000001F IO$V_READATTN = 00000007 IO$_READHEAD = 0000000E IPL$_QUEUEAST = 00000006 IO$V_READCSR = 0000000F IO$_READINIT = 0000003C IPL$_SCHED = 00000003 IO$V_REDIRECT = 00000006 IO$_READLBLK = 00000021 IPL$_SCS = 00000008 IO$V_REFRESH = 0000000D IO$_READPBLK = 0000000C IPL$_SYNCH = 00000007 IO$V_RESET = 0000000B IO$_READPRESET = 00000019 IPL$_TIMER = 00000007 IO$V_REVERSE = 00000006 IO$_READPROMPT = 00000037 IRP$B_C 00000040 IO$V_SETBSIZE = 00000009 IO$_READTRACKD = 00000010 IRP$B_CARCON 0000003C IO$V_SETCUADR = 00000008 IO$_READVBLK = 00000031 IRP$B_CD_TYPE 00000066 IO$V_SETENQCNT = 0000000B IO$_RECAL = 00000003 IRP$B_EFN 00000022 IO$V_SETEVF = 00000006 IO$_RELEASE = 00000005 IRP$B_FIPL 00000067 IO$V_SETFNCT = 00000009 IO$_REREADN = 00000016 IRP$B_N 00000041 IO$V_SETPOOLSZ = 0000000A IO$_REREADP = 00000017 IRP$B_PRI 00000023 IO$V_SETPROT = 00000009 IO$_RETCENTER = 00000007 IRP$B_RMOD 0000000B IO$V_SET_MODEM = 0000000A IO$_REWIND = 00000024 IRP$B_TYPE 0000000A IO$V_SHUTDOWN = 00000007 IO$_REWINDOFF = 00000022 IRP$C_BT_LEN 0000009C IO$V_SKPSECINH = 00000009 IO$_SEARCH = 00000009 IRP$C_CDRP 0000005C IO$V_SLAVLOOP = 00000007 IO$_SEEK = 00000002 IRP$C_CD_LEN 0000009C IO$V_STARTUP = 00000006 IO$_SENSECHAR = 0000001B IRP$C_LENGTH 0000009C IO$V_SWAP = 0000000A IO$_SENSEMODE = 00000027 IRP$K_BT_LEN 0000009C IO$V_SYNCH = 00000009 IO$_SETCHAR = 0000001A IRP$K_CDRP 0000005C IO$V_TIMED = 00000007 IO$_SETCLOCK = 00000037 IRP$K_CD_LEN 0000009C IO$V_TRMNOECHO = 0000000C IO$_SETCLOCKP = 00000005 IRP$K_LENGTH 0000009C IO$V_TYPEAHDCNT= 00000006 IO$_SETMODE = 00000023 IRP$L_ABCNT 00000040 IO$V_UNLOOP = 00000008 IO$_SKIPFILE = 00000025 IRP$L_ARB 00000058 IO$V_WORD = 00000006 IO$_SKIPRECORD = 00000026 IRP$L_AST 00000010 IO$V_WRTATTN = 00000008 IO$_SPACEFILE = 00000002 IRP$L_ASTPRM 00000014 IO$_ACCESS = 00000032 IO$_SPACERECORD= 00000009 IRP$L_BCNT 00000032 IO$_ACPCONTROL = 00000038 IO$_STARTDATA = 00000038 IRP$L_CDT 00000080 KSCAMACP KS 2050 SERIES CAMAC ACP 27-APR-1983 10:15:30 VAX-11 Macro V03-00 Page 62 Symbol table 27-APR-1983 10:12:55 SYS$SYSDEVICE:[CAMAC.SOURCE]KSCAMA(1) IRP$L_DIAGBUF 0000004C IRP$S_NT_PRVMSK= 00000008 JPI$_APTCNT = 0000030A IRP$L_DPRMAP 00000044 IRP$S_TT_STATE = 00000008 JPI$_ASTACT = 00000300 IRP$L_EXTEND 00000054 IRP$T_LBUFHNDL 0000008C JPI$_ASTCNT = 0000030E IRP$L_FPC 00000068 IRP$V_BUFIO = 00000000 JPI$_ASTEN = 00000301 IRP$L_FQBL 00000060 IRP$V_CHAINED = 00000005 JPI$_ASTLM = 00000409 IRP$L_FQFL 0000005C IRP$V_COMPLX = 00000003 JPI$_AUTHPRI = 00000418 IRP$L_FR3 0000006C IRP$V_DIAGBUF = 00000007 JPI$_AUTHPRIV = 00000412 IRP$L_FR4 00000070 IRP$V_EXTEND = 0000000B JPI$_BIOCNT = 0000030F IRP$L_IOQBL 00000004 IRP$V_FCODE = 00000000 JPI$_BIOLM = 00000310 IRP$L_IOQFL 00000000 IRP$V_FILACP = 0000000C JPI$_BUFIO = 0000040C IRP$L_IOSB 00000024 IRP$V_FMOD = 00000006 JPI$_BYTCNT = 00000311 IRP$L_IOST1 00000038 IRP$V_FUNC = 00000001 JPI$_BYTLM = 0000031A IRP$L_IOST2 0000003C IRP$V_MBXIO = 0000000A JPI$_CPULIM = 0000040D IRP$L_JNL_SEQNO 00000048 IRP$V_MODE = 00000000 JPI$_CPUTIM = 00000407 IRP$L_LAMAST 00000038 IRP$V_MVIRP = 0000000D JPI$_CURPRIV = 00000400 IRP$L_LAMASTP 0000003C IRP$V_PAGIO = 00000002 JPI$_DFPFC = 00000406 IRP$L_LBOFF 0000008C IRP$V_PHYSIO = 00000008 JPI$_DFWSCNT = 00000403 IRP$L_LBUFH_AD 00000088 IRP$V_SWAPIO = 00000006 JPI$_DIOCNT = 00000312 IRP$L_MEDIA 00000038 IRP$V_TERMIO = 00000009 JPI$_DIOLM = 00000313 IRP$L_MSG_BUF 00000078 IRP$V_VIRTUAL = 00000004 JPI$_DIRIO = 0000040B IRP$L_OBCNT 00000044 IRP$W_ABCNT 00000040 JPI$_EFCS = 00000317 IRP$L_PID 0000000C IRP$W_BCNT 00000032 JPI$_EFCU = 00000318 IRP$L_RBOFF 00000094 IRP$W_BOFF 00000030 JPI$_EFWM = 00000316 IRP$L_RBUFH_AD 00000090 IRP$W_CDH 0000003E JPI$_ENQCNT = 0000031F IRP$L_RSPID 0000007C IRP$W_CDRPSIZE 00000064 JPI$_ENQLM = 00000320 IRP$L_RWCPTR 00000084 IRP$W_CHAN 00000028 JPI$_EXCVEC = 00000100 IRP$L_SAVD_RTN 00000074 IRP$W_CMR 0000003A JPI$_FILCNT = 00000314 IRP$L_SEGVBN 00000048 IRP$W_CTR 00000038 JPI$_FILLM = 0000040F IRP$L_SEQNUM 00000050 IRP$W_DLR 0000003C JPI$_FINALEXC = 00000101 IRP$L_SVAPTE 0000002C IRP$W_FUNC 00000020 JPI$_FREP0VA = 00000404 IRP$L_TT_TERM 0000003C IRP$W_OBCNT 00000044 JPI$_FREP1VA = 00000405 IRP$L_UBADDR 00000040 IRP$W_SIZE 00000008 JPI$_FREPTECNT = 00000415 IRP$L_UBARSRCE 00000098 IRP$W_STS 0000002A JPI$_GPGCNT = 0000030C IRP$L_UCB 0000001C IRP$W_TT_PRMPT 0000004C JPI$_GRP = 00000308 IRP$L_WIND 00000018 IRP$W_WCR 0000003C JPI$_IMAGECOUNT= 0000041A IRP$L_XCT_LEN 00000098 IRPE$B_TYPE 0000000A JPI$_IMAGNAME = 00000207 IRP$M_BUFIO = 00000001 IRPE$C_LENGTH 00000058 JPI$_IMAGPRIV = 00000413 IRP$M_CHAINED = 00000020 IRPE$K_LENGTH 00000058 JPI$_JOBPRCCNT = 0000031E IRP$M_COMPLX = 00000008 IRPE$L_BCNT1 00000034 JPI$_LASTADR = 00000102 IRP$M_DIAGBUF = 00000080 IRPE$L_BCNT2 00000040 JPI$_LASTCTL = 00000209 IRP$M_EXTEND = 00000800 IRPE$L_DPRMAP 00000010 JPI$_LASTPCB = 00000322 IRP$M_FCODE = 0000003F IRPE$L_EXTEND 00000054 JPI$_LASTPHD = 0000041B IRP$M_FILACP = 00001000 IRPE$L_SVAPTE1 0000002C JPI$_LOGINTIM = 00000206 IRP$M_FUNC = 00000002 IRPE$L_SVAPTE2 00000038 JPI$_MEM = 00000307 IRP$M_MBXIO = 00000400 IRPE$L_UBADDR 0000000C JPI$_OWNER = 00000303 IRP$M_MVIRP = 00002000 IRPE$M_EXTEND = 00000800 JPI$_PAGEFLTS = 0000040A IRP$M_PAGIO = 00000004 IRPE$V_EXTEND = 0000000B JPI$_PAGFILCNT = 00000414 IRP$M_PHYSIO = 00000100 IRPE$W_BOFF1 00000030 JPI$_PAGFILLOC = 00000419 IRP$M_SWAPIO = 00000040 IRPE$W_BOFF2 0000003C JPI$_PGFLQUOTA = 0000040E IRP$M_TERMIO = 00000200 IRPE$W_SIZE 00000008 JPI$_PID = 00000319 IRP$M_VIRTUAL = 00000010 IRPE$W_STS 0000002A JPI$_PPGCNT = 0000030D IRP$Q_NT_PRVMSK 00000040 JPI$C_ADRTYPE = 00000001 JPI$_PRCCNT = 0000031B IRP$Q_TT_STATE 00000040 JPI$C_CTLTYPE = 00000002 JPI$_PRCLM = 00000408 IRP$S_FCODE = 00000006 JPI$C_LISTEND = 00000000 JPI$_PRCNAM = 0000031C IRP$S_FMOD = 0000000A JPI$C_PCBTYPE = 00000003 JPI$_PRI = 00000302 IRP$S_LBUFHNDL = 0000000C JPI$C_PHDTYPE = 00000004 JPI$_PRIB = 00000309 IRP$S_MODE = 00000002 JPI$_ACCOUNT = 00000203 JPI$_PROCPRIV = 00000204 KSCAMACP KS 2050 SERIES CAMAC ACP 27-APR-1983 10:15:30 VAX-11 Macro V03-00 Page 63 Symbol table 27-APR-1983 10:12:55 SYS$SYSDEVICE:[CAMAC.SOURCE]KSCAMA(1) JPI$_SITESPEC = 00000208 KSP_PID 0000002C R 03 LSB_L_UCB 0000000C JPI$_STATE = 00000306 KSP_PIO 000008AE R 04 LSB_W_SIZE 00000008 JPI$_STS = 00000305 KSP_POSTIRP 00000995 R 04 MAE_M_RMA = 00003000 JPI$_SWPFILLOC = 00000321 KSP_PRCNAM 00000038 R 03 MAE_M_TMA = 0000C000 JPI$_TERMINAL = 0000031D KSP_PRCNID 00000030 R 03 MAE_S_RMA = 00000002 JPI$_TMBU = 0000030B KSP_SETCHAR 0000046E R 04 MAE_S_TMA = 00000002 JPI$_TQCNT = 00000315 KSP_SETC_COFL 0000054F R 04 MAE_V_RMA = 0000000C JPI$_TQLM = 00000410 KSP_SETC_CONL 000004BF R 04 MAE_V_TMA = 0000000E JPI$_UIC = 00000304 KSP_SETC_DABL 000005F7 R 04 PCB$B_ASTACT 0000000C JPI$_USERNAME = 00000202 KSP_SETC_EABL 000005A5 R 04 PCB$B_ASTEN 0000000D JPI$_VIRTPEAK = 00000200 KSP_SETLAM 000003C3 R 04 PCB$B_PRI 0000000B JPI$_VOLUMES = 00000205 KSP_SETLAMAST 00000B28 R 04 PCB$B_PRIB 0000002F JPI$_WSAUTH = 00000401 KSP_TERMALL 000002F5 R 04 PCB$B_PRIBSAV 00000029 JPI$_WSAUTHEXT = 00000417 KSP_TERMLAMS 0000069B R 04 PCB$B_PRISAV 00000028 JPI$_WSEXTENT = 00000416 KSP_UMINIT 0000003F R 04 PCB$B_TYPE 0000000A JPI$_WSPEAK = 00000201 KSP_WAITQ 00000913 R 04 PCB$B_WEFC 0000002E JPI$_WSQUOTA = 00000402 KS_M_PH = 00000100 PCB$C_LENGTH 0000009C JPI$_WSSIZE = 00000411 KS_P_CMAX = 00000007 PCB$K_LENGTH 0000009C KSP_ACPCTL 000002C6 R 04 KS_P_MAXM = 00000008 PCB$L_ARB 00000084 KSP_ACPTYPE = 000000C8 KS_P_NMAX = 0000001E PCB$L_ASTQBL 00000014 KSP_ALOLSB 00000ACF R 04 KS_P_RSWAIT = 00000064 PCB$L_ASTQFL 00000010 KSP_AQB 00000050 R 03 KS_P_TOMAX = 00000005 PCB$L_DLCKPRI 00000094 KSP_ARG_KMINIT 00000000 R 03 KS_V_PH = 00000008 PCB$L_EFC2P 00000058 KSP_ARG_KMLAMS 00000008 R 03 KS_W_CDH 00000008 PCB$L_EFC3P 0000005C KSP_CAMIRP 00000235 R 04 KS_W_CMR 00000006 PCB$L_EFCS 00000050 KSP_CANLAM 00000431 R 04 KS_W_CTR 00000000 PCB$L_EFCU 00000054 KSP_CANLAMAST 00000B95 R 04 KS_W_DCR 0000000E PCB$L_EFWM 0000004C KSP_DBDMANDS 00000A69 R 04 KS_W_DFR 0000000C PCB$L_IPAST 00000098 KSP_DEACCESS 00000322 R 04 KS_W_DLR 0000000A PCB$L_JIB 00000078 KSP_DEALSB 00000B03 R 04 KS_W_MAE 00000018 PCB$L_LOCKQBL 00000090 KSP_DELAMAST 00000C35 R 04 KS_W_PES 00000004 PCB$L_LOCKQFL 0000008C KSP_DISMISS 00000856 R 04 KS_W_RMA 0000001C PCB$L_OWNER 0000001C KSP_DMDAST 0000071D R 04 KS_W_SES 00000002 PCB$L_PHD 00000064 KSP_DMDXHAND 0000086C R 04 KS_W_TMA 0000001A PCB$L_PHYPCB 00000018 KSP_DMDXHNID 00000857 R 04 KS_W_WCR 0000001E PCB$L_PID 00000060 KSP_ENDMANDS 000009F4 R 04 KS_X_ERLS = 00000001 PCB$L_PQB 0000004C KSP_ENLAMS 0000061F R 04 KS_X_LAMS = 00000001 PCB$L_SQBL 00000004 KSP_FLUSHAST 00000BE5 R 04 KS_X_MULTI = 00000001 PCB$L_SQFL 00000000 KSP_FLUSHCSU 000006E9 R 04 KS_X_PFORM = 00000000 PCB$L_STS 00000024 KSP_HSU 0000005A R 03 KS_X_PH = 00000001 PCB$L_UIC 00000088 KSP_HSUCHAN 00000058 R 03 LAMS_M_DMDENB = 01000000 PCB$L_WSSWP 00000020 KSP_HSUUCB 00000054 R 03 LAMS_M_HDI = 02000000 PCB$L_WTIME 00000028 KSP_JPILST 00000010 R 03 LAMS_M_NMASK = 00FFFFFF PCB$Q_PRIV 0000007C KSP_KMCALL 00000073 R 04 LAMS_S_DMDENB = 00000001 PCB$S_LNAME = 00000010 KSP_KMCAMIRP 0000022E R 04 LAMS_S_HDI = 00000001 PCB$S_PRIV = 00000008 KSP_KMEXHAND 00000099 R 04 LAMS_S_NMASK = 00000018 PCB$S_TERMINAL = 00000008 KSP_KMINIT 0000014C R 04 LAMS_V_DMDENB = 00000018 PCB$T_LNAME 00000068 KSP_KMXHNID 00000084 R 04 LAMS_V_HDI = 00000019 PCB$T_TERMINAL 00000044 KSP_LAMAST 00000373 R 04 LAMS_V_NMASK = 00000000 PCB$V_ASTPEN = 00000011 KSP_LOCCSU 00000AAB R 04 LIB$SIGNAL ******** X 04 PCB$V_BATCH = 0000000E KSP_LOGCTS 000000D7 R 04 LSB_B_LGN 0000000B PCB$V_DELPEN = 00000001 KSP_LOGERR 000000ED R 04 LSB_B_TYPE 0000000A PCB$V_DISAWS = 00000018 KSP_LWSBEG 00000913 R 04 LSB_K_LENGTH 00000070 PCB$V_FORCPEN = 00000002 KSP_LWSEND 00000C5D R 04 LSB_K_NLMAX = 00000018 PCB$V_HIBER = 00000013 KSP_LWSRANGE 00000048 R 03 LSB_L_LAMLST 00000010 PCB$V_INQUAN = 00000003 KSP_MAIN 00000000 R 04 LSB_L_LPEND 00000004 PCB$V_LOGIN = 00000014 KSP_MOUNT 000002A8 R 04 LSB_L_STS 00000000 PCB$V_NETWRK = 00000015 KSCAMACP KS 2050 SERIES CAMAC ACP 27-APR-1983 10:15:30 VAX-11 Macro V03-00 Page 64 Symbol table 27-APR-1983 10:12:55 SYS$SYSDEVICE:[CAMAC.SOURCE]KSCAMA(1) PCB$V_NOACNT = 0000000F PCT_V_RESET = 0000000B PR$_CADR = 00000025 PCB$V_NODELET = 00000017 PCT_V_SSP = 00000005 PR$_CAER = 00000027 PCB$V_PHDRES = 00000012 PES_M_BC = 0000007F PR$_CMIERR = 00000017 PCB$V_PSWAPM = 00000004 PES_M_BD = 00000080 PR$_CRBT = 00000043 PCB$V_PWRAST = 00000016 PES_M_BDIE = 00000400 PR$_CSRD = 0000001D PCB$V_RES = 00000000 PES_M_BQ = 00004000 PR$_CSRS = 0000001C PCB$V_RESPEN = 00000005 PES_M_BTO = 00008000 PR$_CSTD = 0000001F PCB$V_SSFEXC = 00000006 PES_M_BX = 00002000 PR$_CSTS = 0000001E PCB$V_SSFEXCE = 00000007 PES_M_ENAGL = 00000200 PR$_CSWP = 00000042 PCB$V_SSFEXCS = 00000008 PES_M_NEXTBD = 00000100 PR$_ESP = 00000001 PCB$V_SSFEXCU = 00000009 PES_S_BC = 00000007 PR$_ICCS = 00000018 PCB$V_SSRWAIT = 0000000A PES_S_BD = 00000001 PR$_ICR = 0000001A PCB$V_SUSPEN = 0000000B PES_S_BDIE = 00000001 PR$_IPL = 00000012 PCB$V_SWPVBN = 00000010 PES_S_BQ = 00000001 PR$_ISP = 00000004 PCB$V_WAKEPEN = 0000000C PES_S_BTO = 00000001 PR$_KSP = 00000000 PCB$V_WALL = 0000000D PES_S_BX = 00000001 PR$_MAPEN = 00000038 PCB$W_APTCNT 00000030 PES_S_ENAGL = 00000001 PR$_MCESR = 00000026 PCB$W_ASTCNT 00000038 PES_S_NEXTBD = 00000001 PR$_MCTL1 = 00000044 PCB$W_BIOCNT 0000003A PES_V_BC = 00000000 PR$_MCTL2 = 00000045 PCB$W_BIOLM 0000003C PES_V_BD = 00000007 PR$_MDCR1 = 00000049 PCB$W_DIOCNT 0000003E PES_V_BDIE = 0000000A PR$_MEAR = 00000048 PCB$W_DIOLM 00000040 PES_V_BQ = 0000000E PR$_MECCR = 0000004B PCB$W_GPGCNT 00000034 PES_V_BTO = 0000000F PR$_MEDR = 0000004A PCB$W_GRP 0000008A PES_V_BX = 0000000D PR$_MGEN = 00000046 PCB$W_MEM 00000088 PES_V_ENAGL = 00000009 PR$_MTBER = 00000047 PCB$W_MTXCNT 0000000E PES_V_NEXTBD = 00000008 PR$_NICR = 00000019 PCB$W_PPGCNT 00000036 PH$_BCNT = 08028813 PR$_P0BR = 00000008 PCB$W_PRCCNT 00000042 PH$_LAMFAIL = 08029802 PR$_P0LR = 00000009 PCB$W_SIZE 00000008 PH$_NOLAMSUP = 08029000 PR$_P1BR = 0000000A PCB$W_STATE 0000002C PH$_PCCFAIL = 0802980A PR$_P1LR = 0000000B PCB$W_TMBU 00000032 PH$_PCTBGL = 0802884B PR$_PAMACC = 00000040 PCT_M_BGL = 00000100 PH$_PCTERR = 0802885B PR$_PAMLOC = 00000041 PCT_M_DONE = 00000080 PH$_PCTLIST = 08028843 PR$_PCBB = 00000010 PCT_M_ERR = 00008000 PH$_PCTNXM = 08028853 PR$_PME = 0000003D PCT_M_GO = 00000001 PH$_PCTPIO = 08028823 PR$_RXCS = 00000020 PCT_M_IE = 00000040 PH$_PCTQSCAN = 0802882B PR$_RXDB = 00000021 PCT_M_M = 0000001E PH$_PCTQSTOP = 08028833 PR$_SBIER = 00000034 PCT_M_NXM = 00000200 PH$_PCTSTOP = 0802883B PR$_SBIFS = 00000030 PCT_M_QDC = 00000400 PH$_PESBQ = 08028873 PR$_SBIMT = 00000033 PCT_M_RESET = 00000800 PH$_PESBTO = 08028883 PR$_SBIQC = 00000036 PCT_M_SSP = 00000020 PH$_PESBX = 08028863 PR$_SBIS = 00000031 PCT_S_DONE = 00000001 PH$_PESNOBQ = 0802887B PR$_SBISC = 00000032 PCT_S_ERR = 00000001 PH$_PESNOBX = 0802886B PR$_SBITA = 00000035 PCT_S_GO = 00000001 PH$_RAWPCT = 08028803 PR$_SBR = 0000000C PCT_S_IE = 00000001 PH$_RAWPES = 0802880B PR$_SCBB = 00000011 PCT_S_M = 00000004 PH$_RBCNT = 0802881B PR$_SID = 0000003E PCT_S_QDC = 00000001 PR$S_SID_ECO = 00000009 PR$_SID_TYP730 = 00000003 PCT_S_RESET = 00000001 PR$S_SID_PL = 00000003 PR$_SID_TYP750 = 00000002 PCT_S_SSP = 00000001 PR$S_SID_SN = 0000000C PR$_SID_TYP780 = 00000001 PCT_V_BGL = 00000008 PR$S_SID_TYPE = 00000008 PR$_SID_TYP7VV = 00000004 PCT_V_DONE = 00000007 PR$V_SID_ECO = 0000000F PR$_SID_TYPMAX = 00000004 PCT_V_ERR = 0000000F PR$V_SID_PL = 0000000C PR$_SIRR = 00000014 PCT_V_GO = 00000000 PR$V_SID_SN = 00000000 PR$_SISR = 00000015 PCT_V_IE = 00000006 PR$V_SID_TYPE = 00000018 PR$_SLR = 0000000D PCT_V_M = 00000001 PR$_ACCR = 00000029 PR$_SSP = 00000002 PCT_V_NXM = 00000009 PR$_ACCS = 00000028 PR$_TBCHK = 0000003F PCT_V_QDC = 0000000A PR$_ASTLVL = 00000013 PR$_TBDR = 00000024 KSCAMACP KS 2050 SERIES CAMAC ACP 27-APR-1983 10:15:30 VAX-11 Macro V03-00 Page 65 Symbol table 27-APR-1983 10:12:55 SYS$SYSDEVICE:[CAMAC.SOURCE]KSCAMA(1) PR$_TBIA = 00000039 RTB_W_CTR 00000000 SES_S_PH = 00000001 PR$_TBIS = 0000003A RTB_W_DLR 00000004 SES_S_REN = 00000001 PR$_TODR = 0000001B SCH$GL_CURPCB ******** X 04 SES_S_SQ = 00000001 PR$_TXCS = 00000022 SCH$GL_PCBVEC ******** X 04 SES_S_STE = 00000001 PR$_TXDB = 00000023 SCH$LOCKR ******** X 04 SES_S_SX = 00000001 PR$_UBRESET = 00000037 SCH$LOCKW ******** X 04 SES_S_SYNC = 00000001 PR$_USP = 00000003 SCH$QAST ******** X 04 SES_S_TMO = 00000001 PR$_WCSA = 0000002C SCH$UNLOCK ******** X 04 SES_S_TPE = 00000001 PR$_WCSD = 0000002D SCT_M_BGL = 00000100 SES_V_DERR = 0000000B PRCNID = 00000004 SCT_M_DONE = 00000080 SES_V_ERC = 00000000 PRI$_IOCOM = 00000001 SCT_M_ERR = 00008000 SES_V_ERR = 0000000C PRI$_NULL = 00000000 SCT_M_GO = 00000001 SES_V_LPE = 0000000A PRI$_RESAVL = 00000002 SCT_M_IE = 00000040 SES_V_LSYN = 00000004 PRI$_TICOM = 00000004 SCT_M_M = 0000001E SES_V_PH = 00000008 PRI$_TIMER = 00000002 SCT_M_NXM = 00000200 SES_V_REN = 00000003 PRI$_TOCOM = 00000003 SCT_M_QDC = 00000400 SES_V_SQ = 0000000E PSL$C_EXEC = 00000001 SCT_M_RESET = 00000800 SES_V_STE = 0000000F PSL$C_KERNEL = 00000000 SCT_M_SDR = 00007000 SES_V_SX = 0000000D PSL$C_SUPER = 00000002 SCT_M_SSP = 00000020 SES_V_SYNC = 00000005 PSL$C_USER = 00000003 SCT_S_DONE = 00000001 SES_V_TMO = 00000006 PSL$M_C = 00000001 SCT_S_ERR = 00000001 SES_V_TPE = 00000009 PSL$M_CM = 80000000 SCT_S_GO = 00000001 SIGLST = 0000000C PSL$M_CURMOD = 03000000 SCT_S_IE = 00000001 SIZ... = 00000001 PSL$M_DV = 00000080 SCT_S_M = 00000004 SS$_ABORT = 0000002C PSL$M_FPD = 08000000 SCT_S_QDC = 00000001 SS$_ACCONFLICT = 00000800 PSL$M_FU = 00000040 SCT_S_RESET = 00000001 SS$_ACCVIO = 0000000C PSL$M_IPL = 001F0000 SCT_S_SDR = 00000003 SS$_ACPVAFUL = 000002FC PSL$M_IS = 04000000 SCT_S_SSP = 00000001 SS$_ALRDYCLOSED= 000006A9 PSL$M_IV = 00000020 SCT_V_BGL = 00000008 SS$_ARTRES = 00000474 PSL$M_N = 00000008 SCT_V_DONE = 00000007 SS$_ASTFLT = 0000040C PSL$M_PRVMOD = 00C00000 SCT_V_ERR = 0000000F SS$_BADATTRIB = 00000034 PSL$M_SAFBITS = 000037FF SCT_V_GO = 00000000 SS$_BADCHKSUM = 00000808 PSL$M_TBIT = 00000010 SCT_V_IE = 00000006 SS$_BADESCAPE = 0000003C PSL$M_TP = 40000000 SCT_V_M = 00000001 SS$_BADFILEHDR = 00000810 PSL$M_V = 00000002 SCT_V_NXM = 00000009 SS$_BADFILENAME= 00000818 PSL$M_Z = 00000004 SCT_V_QDC = 0000000A SS$_BADFILEVER = 00000820 PSL$S_CURMOD = 00000002 SCT_V_RESET = 0000000B SS$_BADIMGHDR = 00000044 PSL$S_IPL = 00000005 SCT_V_SDR = 0000000C SS$_BADIRECTORY= 00000828 PSL$S_PRVMOD = 00000002 SCT_V_SSP = 00000005 SS$_BADISD = 00002004 PSL$V_C = 00000000 SES_M_DERR = 00000800 SS$_BADPARAM = 00000014 PSL$V_CM = 0000001F SES_M_ERC = 00000007 SS$_BADQFILE = 000003BC PSL$V_CURMOD = 00000018 SES_M_ERR = 00001000 SS$_BADQUEUEHDR= 00000394 PSL$V_DV = 00000007 SES_M_LPE = 00000400 SS$_BADRCT = 0000216C PSL$V_FPD = 0000001B SES_M_LSYN = 00000010 SS$_BADSTACK = 000002B4 PSL$V_FU = 00000006 SES_M_PH = 00000100 SS$_BADVEC = 00002064 PSL$V_IPL = 00000010 SES_M_REN = 00000008 SS$_BEGOFFILE = 00000938 PSL$V_IS = 0000001A SES_M_SQ = 00004000 SS$_BLOCKCNTERR= 00000940 PSL$V_IV = 00000005 SES_M_STE = 00008000 SS$_BREAK = 00000414 PSL$V_N = 00000003 SES_M_SX = 00002000 SS$_BUFBYTALI = 0000030C PSL$V_PRVMOD = 00000016 SES_M_SYNC = 00000020 SS$_BUFFEROVF = 00000601 PSL$V_TBIT = 00000004 SES_M_TMO = 00000040 SS$_BUFNOTALIGN= 00000324 PSL$V_TP = 0000001E SES_M_TPE = 00000200 SS$_BUGCHECK = 000002A4 PSL$V_V = 00000001 SES_S_DERR = 00000001 SS$_CANCEL = 00000830 PSL$V_Z = 00000002 SES_S_ERC = 00000003 SS$_CHAINW = 00000C0B RTB_K_LENGTH 00000008 SES_S_ERR = 00000001 SS$_CHANINTLK = 0000004C RTB_W_CDH 00000006 SES_S_LPE = 00000001 SS$_CLEARED = 00002104 RTB_W_CMR 00000002 SES_S_LSYN = 00000001 SS$_CLIFRCEXT = 00000980 KSCAMACP KS 2050 SERIES CAMAC ACP 27-APR-1983 10:15:30 VAX-11 Macro V03-00 Page 66 Symbol table 27-APR-1983 10:12:55 SYS$SYSDEVICE:[CAMAC.SOURCE]KSCAMA(1) SS$_CMODSUPR = 0000041C SS$_EXFILLM = 00002A24 SS$_INSFARG = 00000114 SS$_CMODUSER = 00000424 SS$_EXGBLPAGFIL= 00002164 SS$_INSFBUFDP = 0000033C SS$_COMMHARD = 000020C4 SS$_EXPGFLQUOTA= 00002A2C SS$_INSFCDT = 000021AC SS$_COMPAT = 0000042C SS$_EXPORTQUOTA= 000003AC SS$_INSFMAPREG = 00000344 SS$_CONCEALED = 00000691 SS$_EXPRCLM = 00002A34 SS$_INSFMEM = 00000124 SS$_CONNECFAIL = 000020DC SS$_EXQUOTA = 0000001C SS$_INSFRAME = 0000012C SS$_CONTINUE = 00000001 SS$_EXQUOTAEND = 00002AFF SS$_INSFSPTS = 00002044 SS$_CONTROLC = 00000651 SS$_EXQUOTASTRT= 00002A00 SS$_INSFWSL = 0000011C SS$_CONTROLO = 00000609 SS$_EXTIDXFILE = 00000880 SS$_INTDIV = 00000484 SS$_CONTROLY = 00000611 SS$_EXTQELM = 00002A3C SS$_INTERLOCK = 0000038C SS$_CREATED = 00000619 SS$_FACILITY = 00000000 SS$_INTOVF = 0000047C SS$_CTRLERR = 00000054 SS$_FCPREADERR = 00000888 SS$_INVLOGIN = 0000209C SS$_CVTUNGRANT = 0000213C SS$_FCPREPSTN = 00000988 SS$_IVADDR = 00000134 SS$_DATACHECK = 0000005C SS$_FCPREWNDERR= 00000890 SS$_IVBUFLEN = 0000034C SS$_DATAOVERUN = 00000838 SS$_FCPSPACERR = 00000898 SS$_IVCHAN = 0000013C SS$_DBGOPCREQ = 000006A1 SS$_FCPWRITERR = 000008A0 SS$_IVCHAR = 000020CC SS$_DEADLOCK = 00000E0A SS$_FILACCERR = 0000009C SS$_IVCHNLSEC = 0000026C SS$_DEBUG = 0000046C SS$_FILALRACC = 000000A4 SS$_IVDEVNAM = 00000144 SS$_DECOVF = 000004A4 SS$_FILELOCKED = 000008A8 SS$_IVGSDNAM = 0000014C SS$_DEVACTIVE = 000002C4 SS$_FILENUMCHK = 000008B0 SS$_IVLOCKID = 00002124 SS$_DEVALLOC = 00000840 SS$_FILEPURGED = 00000679 SS$_IVLOGNAM = 00000154 SS$_DEVALRALLOC= 00000641 SS$_FILESEQCHK = 000008B8 SS$_IVLOGTAB = 0000015C SS$_DEVASSIGN = 00000848 SS$_FILESTRUCT = 000008C0 SS$_IVLVEC = 0000203C SS$_DEVCMDERR = 0000032C SS$_FILNOTACC = 000000AC SS$_IVMODE = 00000354 SS$_DEVFOREIGN = 00000064 SS$_FILNOTCNTG = 000002AC SS$_IVPROTECT = 000002F4 SS$_DEVICEFULL = 00000850 SS$_FILNOTEXP = 000000B4 SS$_IVQUOTAL = 00000164 SS$_DEVINACT = 000020D4 SS$_FLTDIV = 00000494 SS$_IVSECFLG = 0000016C SS$_DEVMOUNT = 0000006C SS$_FLTDIV_F = 000004BC SS$_IVSECIDCTL = 000002E4 SS$_DEVNOTALLOC= 00000858 SS$_FLTOVF = 0000048C SS$_IVSSRQ = 00000174 SS$_DEVNOTDISM = 000021B4 SS$_FLTOVF_F = 000004B4 SS$_IVSTSFLG = 0000017C SS$_DEVNOTMBX = 00000074 SS$_FLTUND = 0000049C SS$_IVTIME = 00000184 SS$_DEVNOTMOUNT= 0000007C SS$_FLTUND_F = 000004C4 SS$_JBCERROR = 0000218C SS$_DEVOFFLINE = 00000084 SS$_FORCEDERROR= 00002144 SS$_LCKPAGFUL = 000000D4 SS$_DEVREQERR = 00000334 SS$_FORCEDEXIT = 0000217C SS$_LENVIO = 0000018C SS$_DGQINCOMP = 000009C0 SS$_FORMAT = 000000BC SS$_LINEABRT = 00000E02 SS$_DIRALLOC = 000009C8 SS$_GPTFULL = 000000C4 SS$_LINKABORT = 000020E4 SS$_DIRFULL = 00000860 SS$_GSDFULL = 000000CC SS$_LINKDISCON = 000020EC SS$_DIRNOTEMPTY= 00002174 SS$_HANGUP = 000002CC SS$_LINKEXIT = 000020F4 SS$_DISCONNECT = 0000204C SS$_HEADERFULL = 000008C8 SS$_LKWSETFUL = 00000194 SS$_DRVERR = 0000008C SS$_IDMISMATCH = 000003F4 SS$_MBFULL = 000008D8 SS$_DUPDSKQUOTA= 000003DC SS$_IDXFILEFULL= 000008D0 SS$_MBTOOSML = 0000019C SS$_DUPFILENAME= 00000868 SS$_ILLBLKNUM = 000000DC SS$_MCHECK = 000002BC SS$_DUPLNAM = 00000094 SS$_ILLCDTST = 00002154 SS$_MCNOTVALID = 0000035C SS$_DUPUNIT = 000021C4 SS$_ILLCNTRFUNC= 000000E4 SS$_MEDOFL = 000001A4 SS$_ENDOFFILE = 00000870 SS$_ILLEFC = 000000EC SS$_MSGNOTFND = 00000621 SS$_ENDOFTAPE = 00000878 SS$_ILLIOFUNC = 000000F4 SS$_MTLBLLONG = 00000304 SS$_ENDOFUSRLBL= 00000970 SS$_ILLLBLAST = 00000968 SS$_MULTRMS = 0000202C SS$_ENDOFVOLUME= 000009A0 SS$_ILLPAGCNT = 000000FC SS$_MUSTCLOSEFL= 00000948 SS$_EOTIN = 00000C03 SS$_ILLSELF = 0000214C SS$_NOACNT = 0000284C SS$_EXASTLM = 00002A04 SS$_ILLSEQOP = 000002DC SS$_NOALLSPOOL = 00002824 SS$_EXBIOLM = 00002A0C SS$_ILLSER = 00000104 SS$_NOALTPRI = 0000286C SS$_EXBYTLM = 00002A14 SS$_ILLUSRLBLRD= 00000958 SS$_NOAQB = 00000314 SS$_EXCPUTIM = 000020AC SS$_ILLUSRLBLWT= 00000960 SS$_NOBUGCHK = 000028BC SS$_EXDEPTH = 00000E1A SS$_INCOMPAT = 00000699 SS$_NOBYPASS = 000028EC SS$_EXDIOLM = 00002A1C SS$_INCVOLLABEL= 0000010C SS$_NOCMEXEC = 0000280C SS$_EXDISKQUOTA= 000003EC SS$_INHCHME = 000004D4 SS$_NOCMKRNL = 00002804 SS$_EXENQLM = 00002A44 SS$_INHCHMK = 000004CC SS$_NODATA = 000001AC KSCAMACP KS 2050 SERIES CAMAC ACP 27-APR-1983 10:15:30 VAX-11 Macro V03-00 Page 67 Symbol table 27-APR-1983 10:12:55 SYS$SYSDEVICE:[CAMAC.SOURCE]KSCAMA(1) SS$_NODETACH = 0000282C SS$_NOTFILEDEV = 000001CC SS$_SYNCH = 00000689 SS$_NODEVAVL = 000009B0 SS$_NOTINSTALL = 00002014 SS$_SYSVERDIF = 00000671 SS$_NODIAGNOSE = 00002834 SS$_NOTINTBLSZ = 000001D4 SS$_TAPEPOSLOST= 00000224 SS$_NODISKQUOTA= 000003E4 SS$_NOTLABELMT = 000001DC SS$_TBIT = 00000464 SS$_NOEXQUOTA = 0000289C SS$_NOTMODIFIED= 00000659 SS$_THIRDPARTY = 0000207C SS$_NOGROUP = 00002844 SS$_NOTMPMBX = 0000287C SS$_TIMEOUT = 0000022C SS$_NOGRPNAM = 0000281C SS$_NOTNETDEV = 000002EC SS$_TOOMANYLNAM= 00000374 SS$_NOHANDLER = 000008F8 SS$_NOTPRINTED = 00002184 SS$_TOOMANYREDS= 0000211C SS$_NOHOMEBLK = 000008E0 SS$_NOTQUEUED = 000009B8 SS$_TOOMANYVER = 00000990 SS$_NOIOCHAN = 000001B4 SS$_NOTRAN = 00000629 SS$_TOOMUCHDATA= 0000029C SS$_NOLICENSE = 00002194 SS$_NOTSQDEV = 000001E4 SS$_UNASEFC = 00000234 SS$_NOLINKS = 0000027C SS$_NOTVOLSET = 00000998 SS$_UNREACHABLE= 00002094 SS$_NOLISTENER = 0000215C SS$_NOVOLPRO = 000028AC SS$_UNSAFE = 0000023C SS$_NOLOCKID = 00000E12 SS$_NOWORLD = 00002884 SS$_UNSOLICIT = 00002114 SS$_NOLOGNAM = 000001BC SS$_NOWRT = 000003FC SS$_UNWIND = 00000920 SS$_NOLOG_IO = 0000283C SS$_OPCCUS = 00000434 SS$_UNWINDING = 00000928 SS$_NOMBX = 00000274 SS$_OPCDEC = 0000043C SS$_VASFULL = 00000244 SS$_NOMOREFILES= 00000930 SS$_OPINCOMPL = 000002D4 SS$_VCBROKEN = 0000219C SS$_NOMOREPROC = 000009A8 SS$_OPRABORT = 000020B4 SS$_VCCLOSED = 000021A4 SS$_NOMOUNT = 0000288C SS$_OVRDSKQUOTA= 00000669 SS$_VECFULL = 00002034 SS$_NONETMBX = 000028A4 SS$_PAGOWNVIO = 000001EC SS$_VECINUSE = 0000024C SS$_NONEXDRV = 000001C4 SS$_PAGRDERR = 00000444 SS$_VOLINV = 00000254 SS$_NONEXPR = 000008E8 SS$_PARITY = 000001F4 SS$_WAITUSRLBL = 00000950 SS$_NONLOCAL = 000008F0 SS$_PARNOTGRANT= 00002134 SS$_WASCLR = 00000001 SS$_NOOPER = 00002894 SS$_PARTESCAPE = 000001FC SS$_WASECC = 00000639 SS$_NOP1VA = 00002024 SS$_PARTMAPPED = 00000E22 SS$_WASSET = 00000009 SS$_NOPFNMAP = 000028D4 SS$_PATHLOST = 000020FC SS$_WRITLCK = 0000025C SS$_NOPHY_IO = 000028B4 SS$_PFMBSY = 00000204 SS$_WRONGACP = 0000031C SS$_NOPRIV = 00000024 SS$_PLHLDR = 00000404 STATION = 00000010 SS$_NOPRIVEND = 000029FF SS$_POWERFAIL = 00000364 SUBAD = 00000014 SS$_NOPRIVSTRT = 00002800 SS$_PRIVINSTALL= 00002054 SYS$ASSIGN ******** GX 04 SS$_NOPRMCEB = 00002854 SS$_PROTINSTALL= 0000205C SYS$CMKRNL ******** GX 04 SS$_NOPRMGBL = 000028C4 SS$_PROTOCOL = 00002074 SYS$DELPRC ******** GX 04 SS$_NOPRMMBX = 0000285C SS$_PSTFULL = 0000020C SYS$FAOL ******** GX 04 SS$_NOPSWAPM = 00002864 SS$_QFACTIVE = 000003CC SYS$GETJPI ******** GX 04 SS$_NOQFILE = 000003C4 SS$_QFNOTACT = 000003D4 SYS$HIBER ******** GX 04 SS$_NORMAL = 00000001 SS$_RADRMOD = 0000044C SYS$LKWSET ******** GX 04 SS$_NOSETPRV = 00002874 SS$_RDDELDATA = 00000661 SYS$QIOW ******** GX 04 SS$_NOSHMBLOCK = 000003B4 SS$_REJECT = 00000294 SYS$SETAST ******** GX 04 SS$_NOSHMEM = 000028DC SS$_RELINK = 0000200C SYS$SNDERR ******** GX 04 SS$_NOSHRIMG = 000021BC SS$_REMOTE = 00000649 SYS$UNWIND ******** GX 04 SS$_NOSIGNAL = 00000900 SS$_REMRSRC = 0000206C UCB$B_AMOD 00000053 SS$_NOSLOT = 0000039C SS$_RESET = 0000210C UCB$B_CEX 00000087 SS$_NOSOLICIT = 00000284 SS$_RESIGNAL = 00000918 UCB$B_CM1 0000004A SS$_NOSUCHDEV = 00000908 SS$_RESULTOVF = 00000214 UCB$B_CM2 0000004B SS$_NOSUCHFILE = 00000910 SS$_ROPRAND = 00000454 UCB$B_DEVCLASS 00000038 SS$_NOSUCHNODE = 0000028C SS$_SECTBLFUL = 0000021C UCB$B_DEVTYPE 00000039 SS$_NOSUCHOBJ = 000020A4 SS$_SHARTOOBIG = 0000201C UCB$B_DIPL 00000052 SS$_NOSUCHSEC = 00000978 SS$_SHMGSNOTMAP= 0000036C UCB$B_DX_SCTCNT 000000B6 SS$_NOSUCHUSER = 00002084 SS$_SHMNOTCNCT = 0000037C UCB$B_ERTCNT 00000070 SS$_NOSYSGBL = 000028CC SS$_SHRIDMISMAT= 000020BC UCB$B_ERTMAX 00000071 SS$_NOSYSLCK = 000028F4 SS$_SHUT = 0000208C UCB$B_FEX 00000086 SS$_NOSYSNAM = 00002814 SS$_SSFAIL = 0000045C UCB$B_FIPL 0000000B SS$_NOSYSPRV = 000028E4 SS$_SUBLOCKS = 0000212C UCB$B_JNL_NAM 0000009C SS$_NOTALLPRIV = 00000681 SS$_SUBRNG = 000004AC UCB$B_LOCSRV 0000003C SS$_NOTAPEOP = 00000264 SS$_SUPERSEDE = 00000631 UCB$B_OFFNDX 000000A4 SS$_NOTCREATOR = 00000384 SS$_SUSPENDED = 000003A4 UCB$B_OFFRTC 000000A5 KSCAMACP KS 2050 SERIES CAMAC ACP 27-APR-1983 10:15:30 VAX-11 Macro V03-00 Page 68 Symbol table 27-APR-1983 10:12:55 SYS$SYSDEVICE:[CAMAC.SOURCE]KSCAMA(1) UCB$B_REMSRV 0000003D UCB$L_MB_RAST 00000088 UCB$V_DEADMO = 0000000A UCB$B_SECTORS 0000003C UCB$L_MB_SHB 00000090 UCB$V_DELMBX = 00000001 UCB$B_SLAVE 00000084 UCB$L_MB_WAST 00000084 UCB$V_DIAGBUF = 00000001 UCB$B_SPR 00000085 UCB$L_MB_WIOQBL 00000098 UCB$V_DX_WRITE = 00000003 UCB$B_STATE 00000052 UCB$L_MB_WIOQFL 00000094 UCB$V_ECC = 00000000 UCB$B_TRACKS 0000003D UCB$L_MEDIA 0000009C UCB$V_ERLOGIP = 00000002 UCB$B_TYPE 0000000A UCB$L_NT_DATSSB 00000084 UCB$V_INT = 00000001 UCB$B_VERTSZ 0000003F UCB$L_NT_INTSSB 00000088 UCB$V_INTTYPE = 00000007 UCB$C_JNL_LEN 000000AE UCB$L_OPCNT 00000060 UCB$V_JOB = 00000000 UCB$C_LENGTH 00000084 UCB$L_OWNUIC 0000001C UCB$V_LNKPRI = 00000006 UCB$C_LOGLNK = 00000001 UCB$L_PDT 00000074 UCB$V_LTYPE = 00000000 UCB$C_MB_LENGTH 000000A0 UCB$L_PID 00000028 UCB$V_MNTVERIP = 0000000E UCB$K_JNL_LEN 000000AE UCB$L_RQBL 00000004 UCB$V_MOUNTING = 00000009 UCB$K_KS_LEN 0000009C UCB$L_RQFL 00000000 UCB$V_MSGACK = 00000004 UCB$K_LENGTH 00000084 UCB$L_SVAPTE 00000068 UCB$V_MSGFLO = 00000003 UCB$K_MB_LENGTH 000000A0 UCB$L_SVPN 00000064 UCB$V_NOCNVRT = 00000002 UCB$L_AMB 00000054 UCB$L_TT_DEVDP1 00000080 UCB$V_NT_BFROVF= 00000002 UCB$L_ASTQBL 00000010 UCB$L_VCB 00000030 UCB$V_NT_BREAK = 00000005 UCB$L_ASTQFL 0000000C UCB$M_BACKP = 00000020 UCB$V_NT_NAME = 00000004 UCB$L_CPID 0000005C UCB$M_BSY = 00000100 UCB$V_ONLINE = 00000004 UCB$L_CRB 00000020 UCB$M_CANCEL = 00000008 UCB$V_PERM_JNL = 00000004 UCB$L_DDB 00000024 UCB$M_DEADMO = 00000400 UCB$V_POWER = 00000005 UCB$L_DDT 00000078 UCB$M_DELMBX = 00000002 UCB$V_PRMMBX = 00000000 UCB$L_DEVCHAR 00000034 UCB$M_DIAGBUF = 00000002 UCB$V_SEGFLO = 00000002 UCB$L_DEVDEPEND 0000003C UCB$M_DX_WRITE = 00000008 UCB$V_SHMMBX = 00000003 UCB$L_DEVDEPND2 00000080 UCB$M_ECC = 00000001 UCB$V_TEMPLATE = 0000000D UCB$L_DMDAST 00000098 UCB$M_ERLOGIP = 00000004 UCB$V_TEMPL_BSY= 00000005 UCB$L_DPC 00000090 UCB$M_INT = 00000002 UCB$V_TIM = 00000000 UCB$L_DUETIM 0000005C UCB$M_INTTYPE = 00000080 UCB$V_TIMOUT = 00000006 UCB$L_DX_BFPNT 000000AC UCB$M_JOB = 00000001 UCB$V_TT_HANGUP= 00000003 UCB$L_DX_BUF 000000A8 UCB$M_MNTVERIP = 00004000 UCB$V_TT_NOTIF = 00000002 UCB$L_DX_RXDB 000000B0 UCB$M_MOUNTING = 00000200 UCB$V_TT_TIMO = 00000001 UCB$L_EMB 00000088 UCB$M_NOCNVRT = 00000004 UCB$V_UNLOAD = 0000000C UCB$L_FIRST 00000014 UCB$M_NT_BFROVF= 00000004 UCB$V_VALID = 0000000B UCB$L_FPC 0000000C UCB$M_NT_BREAK = 00000020 UCB$V_WRONGVOL = 0000000F UCB$L_FQBL 00000004 UCB$M_NT_NAME = 00000010 UCB$W_BCNT 0000006E UCB$L_FQFL 00000000 UCB$M_ONLINE = 00000010 UCB$W_BCR 000000A6 UCB$L_FR3 00000010 UCB$M_PERM_JNL = 00000010 UCB$W_BOFF 0000006C UCB$L_FR4 00000014 UCB$M_POWER = 00000020 UCB$W_BUFQUO 00000018 UCB$L_HSU 00000094 UCB$M_PRMMBX = 00000001 UCB$W_BYTESTOGO 0000003E UCB$L_IOQBL 00000044 UCB$M_SHMMBX = 00000008 UCB$W_CHARGE 0000004A UCB$L_IOQFL 00000040 UCB$M_TEMPLATE = 00002000 UCB$W_CYLINDERS 0000003E UCB$L_IRP 0000004C UCB$M_TIM = 00000001 UCB$W_DA 0000009C UCB$L_JNL_BCB 00000084 UCB$M_TIMOUT = 00000040 UCB$W_DC 0000009E UCB$L_JNL_FQBL 00000098 UCB$M_TT_HANGUP= 00000008 UCB$W_DEVBUFSIZ 0000003A UCB$L_JNL_FQFL 00000094 UCB$M_TT_NOTIF = 00000004 UCB$W_DEVSTS 0000005A UCB$L_JNL_QUOT 000000A8 UCB$M_TT_TIMO = 00000002 UCB$W_DIRSEQ 00000098 UCB$L_JNL_RUL 00000088 UCB$M_UNLOAD = 00001000 UCB$W_DSTADDR 00000018 UCB$L_JNL_SEQNO 0000003C UCB$M_VALID = 00000800 UCB$W_DX_BCR 000000B4 UCB$L_JNL_WQBL 00000090 UCB$M_WRONGVOL = 00008000 UCB$W_EC1 000000A0 UCB$L_JNL_WQFL 0000008C UCB$S_JNL_NAM = 0000000C UCB$W_EC2 000000A2 UCB$L_LINK 0000002C UCB$S_LNKPRI = 00000002 UCB$W_ERRCNT 00000072 UCB$L_LOGADR 00000064 UCB$S_LTYPE = 00000002 UCB$W_FUNC 0000008E UCB$L_LSB 00000098 UCB$T_PARTNER 0000000C UCB$W_JNL_ID 000000AC UCB$L_MAXBLOCK 00000094 UCB$V_BACKP = 00000005 UCB$W_MB_SEED 00000000 UCB$L_MB_MBX 0000008C UCB$V_BSY = 00000008 UCB$W_MSGCNT 00000016 UCB$L_MB_PORT 0000009C UCB$V_CANCEL = 00000003 UCB$W_MSGMAX 00000014 KSCAMACP KS 2050 SERIES CAMAC ACP 27-APR-1983 10:15:30 VAX-11 Macro V03-00 Page 69 Symbol table 27-APR-1983 10:12:55 SYS$SYSDEVICE:[CAMAC.SOURCE]KSCAMA(1) UCB$W_NT_CHAN 0000008C VCB$L_SERIALNUM 00000064 VCB$W_FILEPROT 0000004A UCB$W_OFFSET 0000009A VCB$L_START_FID 00000028 VCB$W_MCOUNT 0000004C UCB$W_REFC 00000050 VCB$L_ST_RECORD 00000030 VCB$W_MODE 0000002C UCB$W_RWAITCNT 0000004A VCB$L_USRLBLAST 00000044 VCB$W_PENDERR 00000062 UCB$W_SIZE 00000008 VCB$L_VPBL 00000040 VCB$W_QUOSIZE 00000060 UCB$W_SRCADDR 0000001A VCB$L_VPFL 0000003C VCB$W_RECORDSZ 00000050 UCB$W_STS 00000058 VCB$L_WCB 00000038 VCB$W_RVN 0000000E UCB$W_UNIT 00000048 VCB$M_CANCELIO = 00000020 VCB$W_SIZE 00000008 UCB$W_VPROT 0000001A VCB$M_JNL_DISK = 00000001 VCB$W_START_NUM 00000028 VCB$B_BLOCKFACT 00000052 VCB$M_JNL_TAPE = 00000002 VCB$W_START_SEQ 0000002A VCB$B_CUR_RVN 0000002F VCB$M_MUSTCLOSE= 00000040 VCB$W_TRANS 0000000C VCB$B_EOFDELTA 0000004E VCB$M_NOWRITE = 00000080 VEC$B_DATAPATH 00000013 VCB$B_IBMAPSIZE 00000038 VCB$M_WAIMOUVOL= 00000004 VEC$B_NUMREG 00000012 VCB$B_IBMAPVBN 0000003A VCB$M_WAIREWIND= 00000008 VEC$C_LENGTH 00000024 VCB$B_JNL_MODE 00000040 VCB$M_WAIUSRLBL= 00000010 VEC$K_LENGTH 00000024 VCB$B_LRU_LIM 00000049 VCB$Q_RETAINMAX 00000070 VEC$L_ADP 00000014 VCB$B_QNAMECNT 0000000B VCB$Q_RETAINMIN 00000068 VEC$L_IDB 00000008 VCB$B_RESFILES 0000004F VCB$S_JNL_IRPS = 00000008 VEC$L_INITIAL 0000000C VCB$B_SBMAPSIZE 00000039 VCB$S_QNAME = 00000014 VEC$L_START 0000001C VCB$B_SBMAPVBN 0000003B VCB$S_RETAINMAX= 00000008 VEC$L_UNITDISC 00000020 VCB$B_STATUS 0000000B VCB$S_RETAINMIN= 00000008 VEC$L_UNITINIT 00000018 VCB$B_STATUS2 00000053 VCB$S_VOLNAME = 0000000C VEC$M_LWAE = 00000020 VCB$B_TM 0000002E VCB$T_QNAME 0000000C VEC$M_MAPLOCK = 00008000 VCB$B_TYPE 0000000A VCB$T_VOLNAME 00000014 VEC$M_PATHLOCK = 00000080 VCB$B_WINDOW 00000048 VCB$V_CANCELIO = 00000005 VEC$Q_DISPATCH 00000000 VCB$C_COMLEN 00000024 VCB$V_EBCDIC = 00000005 VEC$S_DATAPATH = 00000005 VCB$C_JNL_LEN 00000041 VCB$V_EXTFID = 00000005 VEC$S_DISPATCH = 00000008 VCB$C_LENGTH 00000078 VCB$V_GROUP = 00000006 VEC$S_MAPREG = 0000000F VCB$C_MRKLEN 0000000B VCB$V_HOMBLKBAD= 00000002 VEC$V_DATAPATH = 00000000 VCB$K_COMLEN 00000024 VCB$V_IDXHDRBAD= 00000003 VEC$V_LWAE = 00000005 VCB$K_JNL_LEN 00000041 VCB$V_INTCHG = 00000004 VEC$V_MAPLOCK = 0000000F VCB$K_LENGTH 00000078 VCB$V_JNL_DISK = 00000000 VEC$V_MAPREG = 00000000 VCB$K_MRKLEN 0000000B VCB$V_JNL_TAPE = 00000001 VEC$V_PATHLOCK = 00000007 VCB$L_AQB 00000010 VCB$V_LOGICEOVS= 00000001 VEC$W_MAPREG 00000010 VCB$L_BLOCKBL 00000004 VCB$V_MOUNTVER = 00000002 VCB$L_BLOCKFL 00000000 VCB$V_MUSTCLOSE= 00000006 VCB$L_CACHE 00000058 VCB$V_NOALLOC = 00000004 VCB$L_CUR_FID 00000024 VCB$V_NOCACHE = 00000001 VCB$L_FCBBL 00000004 VCB$V_NOHDR3 = 00000007 VCB$L_FCBFL 00000000 VCB$V_NOWRITE = 00000007 VCB$L_FREE 00000040 VCB$V_OVRACC = 00000001 VCB$L_HOME2LBN 00000028 VCB$V_OVREXP = 00000000 VCB$L_HOMELBN 00000024 VCB$V_OVRLBL = 00000002 VCB$L_IBMAPLBN 00000030 VCB$V_OVRSETID = 00000003 VCB$L_IXHDR2LBN 0000002C VCB$V_PARTFILE = 00000000 VCB$L_JNL_CHAR 00000024 VCB$V_STARFILE = 00000008 VCB$L_JNL_IRPS 0000002C VCB$V_SYSTEM = 00000007 VCB$L_JNL_JFTA 00000028 VCB$V_WAIMOUVOL= 00000002 VCB$L_JNL_JMT 00000034 VCB$V_WAIREWIND= 00000003 VCB$L_JNL_WCBBL 0000003C VCB$V_WAIUSRLBL= 00000004 VCB$L_JNL_WCBFL 00000038 VCB$V_WRITETHRU= 00000000 VCB$L_MAXFILES 00000044 VCB$V_WRITE_IF = 00000000 VCB$L_MVL 00000034 VCB$V_WRITE_SM = 00000001 VCB$L_QUOCACHE 0000005C VCB$W_CLUSTER 0000003C VCB$L_QUOTAFCB 00000054 VCB$W_CUR_NUM 00000024 VCB$L_RVT 00000020 VCB$W_CUR_SEQ 00000026 VCB$L_SBMAPLBN 00000034 VCB$W_EXTEND 0000003E KSCAMACP KS 2050 SERIES CAMAC ACP 27-APR-1983 10:15:30 VAX-11 Macro V03-00 Page 70 Psect synopsis 27-APR-1983 10:12:55 SYS$SYSDEVICE:[CAMAC.SOURCE]KSCAMA(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$ 000000B8 ( 184.) 02 ( 2.) NOPIC USR CON ABS LCL NOSHR EXE RD WRT NOVEC BYTE $DATA 0000006B ( 107.) 03 ( 3.) NOPIC USR CON REL LCL NOSHR NOEXE RD WRT NOVEC BYTE $CODE 00000C5D ( 3165.) 04 ( 4.) NOPIC USR CON REL LCL SHR EXE RD NOWRT NOVEC BYTE +------------------------+ ! Performance indicators ! +------------------------+ Phase Page faults CPU Time Elapsed Time ----- ----------- -------- ------------ Initialization 26 00:00:00.05 00:00:00.14 Command processing 44 00:00:00.26 00:00:00.55 Pass 1 1193 00:00:28.90 00:00:31.06 Symbol table sort 1 00:00:02.93 00:00:02.93 Pass 2 830 00:00:07.18 00:00:07.87 Symbol table output 2 00:00:00.91 00:00:00.94 Psect synopsis output 3 00:00:00.03 00:00:00.03 Cross-reference output 0 00:00:00.00 00:00:00.00 Assembler run totals 2106 00:00:40.26 00:00:43.52 The working set limit was 1024 pages. 188653 bytes (369 pages) of virtual memory were used to buffer the intermediate code. There were 100 pages of symbol table space allocated to hold 1858 non-local and 113 local symbols. 2595 source lines were read in Pass 1, producing 25 object records in Pass 2. 77 pages of virtual memory were used to define 69 macros. +--------------------------+ ! Macro library statistics ! +--------------------------+ Macro library name Macros defined ------------------ -------------- SYS$SYSDEVICE:[CAMAC.SOURCE]CAMDEF.MLB;1 17 SYS$SYSROOT:[SYSLIB]LIB.MLB;1 17 SYS$SYSROOT:[SYSLIB]STARLET.MLB;1 26 TOTALS (all libraries) 60 2392 GETS were required to define 60 macros. There were no errors, warnings or information messages. /OBJ=PHCAMACP/LIST=PHCAMACP KSCAMACP.MAR/UPDATE=PHCAMACP.SLP