SYSACPFDT       - ACP FUNCTION DECISION TABLE ACTION ROUTINES    21-AUG-1978 20:16:58   VAX-11 MACRO X0.3-11               Page   0

TABLE OF CONTENTS   



   (1)      62  ACCESS AND CREATE ACP FUNCTION PROCESSING

   (1)     107  DEACCESS ACP FUNCTION PROCESSING

   (1)     160  DELETE AND MODIFY ACP FUNCTION PROCESSING

   (1)     192  MOUNT ACP FUNCTION PROCESSING

   (1)     230  READ AND WRITE BLOCK ACP FUNCTION PROCESSING

   (1)     378  BUILD ACP BUFFER

   (1)     490  CHECK DESCRIPTOR AND UPDATE BYTE ACCUMULATION

   (1)     511  CHECK VOLUME AND UPDATE TRANSACTION COUNT

   (1)     562  BUILD INFORMATION DESCRIPTOR AND COPY DATA

SYSACPFDT       - ACP FUNCTION DECISION TABLE ACTION ROUTINES    21-AUG-1978 20:16:58   VAX-11 MACRO X0.3-11               Page   1

01                                                                                                                               (1)



                                     0000     1 	.TITLE	SYSACPFDT - ACP FUNCTION DECISION TABLE ACTION ROUTINES

                                     0000     2 	.IDENT	/01/

                                     0000     3  

                                     0000     4 ;

                                     0000     5 ; COPYRIGHT (C) 1977

                                     0000     6 ; DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.

                                     0000     7 ;

                                     0000     8 ; THIS SOFTWARE IS FURNISHED UNDER  A LICENSE FOR USE ONLY  ON  A

                                     0000     9 ; SINGLE COMPUTER SYSTEM AND MAY BE  COPIED ONLY WITH  THE INCLU-

                                     0000    10 ; SION OF  THE  ABOVE  COPYRIGHT NOTICE.  THIS SOFTWARE,  OR  ANY

                                     0000    11 ; OTHER COPIES THEREOF, MAY NOT BE  PROVIDED  OR  OTHERWISE  MADE

                                     0000    12 ; AVAILABLE TO ANY OTHER PERSON EXCEPT  FOR  USE  ON  SUCH SYSTEM

                                     0000    13 ; AND TO  ONE WHO AGREES  TO  THESE LICENSE  TERMS.  TITLE TO AND

                                     0000    14 ; OWNERSHIP OF THE SOFTWARE SHALL AT ALL TIMES REMAIN IN DEC.

                                     0000    15 ;

                                     0000    16 ; THE INFORMATION IN THIS SOFTWARE  IS  SUBJECT TO CHANGE WITHOUT

                                     0000    17 ; NOTICE AND SHOULD NOT BE CONSTRUED  AS  A COMMITMENT BY DIGITAL

                                     0000    18 ; EQUIPMENT CORPORATION.

                                     0000    19 ;

                                     0000    20 ; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS

                                     0000    21 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.

                                     0000    22 ;

                                     0000    23 ; D. N. CUTLER 22-NOV-76

                                     0000    24 ;

                                     0000    25 ; ACP FUNCTION DECISION TABLE ACTION ROUTINES

                                     0000    26 ;

                                     0000    27 ; MACRO LIBRARY CALLS

                                     0000    28 ;

                                     0000    29  

                                     0000    30 	$CCBDEF				;DEFINE CCB OFFSETS

                                     0000    31 	$DYNDEF				;DEFINE STRUCTURE TYPE CODES

                                     0000    32 	$IPLDEF				;DEFINE INTERRUPT PRIORITY LEVELS

                                     0000    33 	$IODEF				;DEFINE I/O FUNCTION CODES

                                     0000    34 	$IRPDEF				;DEFINE IRP OFFSETS

                                     0000    35 	$PCBDEF				;DEFINE PCB OFFSETS

                                     0000    36 	$PRDEF				;DEFINE PROCESSOR REGISTERS

                                     0000    37 	$PRVDEF				;DEFINE PRIVILEGE BITS

                                     0000    38 	$UCBDEF				;DEFINE UCB OFFSETS

                                     0000    39 	$VADEF				;DEFINE VIRTUAL ADDRESS FIELDS

                                     0000    40 	$VCBDEF				;DEFINE VCB OFFSETS

                                     0000    41 	$WCBDEF				;DEFINE WCB OFFSETS

                                     0000    42  

                                     0000    43 ;

                                     0000    44 ; LOCAL SYMBOLS

                                     0000    45 ;

                                     0000    46 ; ARGUMENT LIST OFFSET DEFINITIONS

                                     0000    47 ;

                                     0000    48  

                           00000000  0000    49 P1=0					;FIRST FUNCTION DEPENDENT PARAMETER

                           00000004  0000    50 P2=4					;SECOND FUNCTION DEPENDENT PARAMETER

                           00000008  0000    51 P3=8					;THIRD FUNCTION DEPENDENT PARAMETER

                           0000000C  0000    52 P4=12					;FOURTH FUNCTION DEPENDENT PARAMETER

                           00000010  0000    53 P5=16					;FIFTH FUNCTION DEPENDENT PARAMETER

                           00000014  0000    54 P6=20					;SIXTH FUNCTION DEPENDENT PARAMETER

                                     0000    55  

                                     0000    56 ;

                                     0000    57 ; MAXIMUM NUMBER OF ACP DESCRIPTORS

SYSACPFDT       - ACP FUNCTION DECISION TABLE ACTION ROUTINES    21-AUG-1978 20:16:58   VAX-11 MACRO X0.3-11               Page   2

01                                                                                                                               (1)



                                     0000    58 ;

                                     0000    59  

                           00000016  0000    60 MXDESCR=5+17				;MAXIMUM NUMBER OF ACP DESCRIPTORS

SYSACPFDT       - ACP FUNCTION DECISION TABLE ACTION ROUTINES    21-AUG-1978 20:16:58   VAX-11 MACRO X0.3-11               Page   3

01              ACCESS AND CREATE ACP FUNCTION PROCESSING                                                                        (1)



                                     0000    62 	.SBTTL	ACCESS AND CREATE ACP FUNCTION PROCESSING

                                     0000    63 ;+

                                     0000    64 ; ACP$ACCESS - ACCESS AND CREATE ACP FUNCTION PROCESSING

                                     0000    65 ; ACP$ACCESSNET - ACCESS (CONNECT) TO NETWORK FUNCTION PROCESSING

                                     0000    66 ;

                                     0000    67 ; ***TBS***

                                     0000    68 ;

                                     0000    69 ; INPUTS:

                                     0000    70 ;

                                     0000    71 ;	R0 = SCRATCH.

                                     0000    72 ;	R1 = SCRATCH.

                                     0000    73 ;	R2 = SCRATCH.

                                     0000    74 ;	R3 = ADDRESS OF I/O REQUEST PACKET.

                                     0000    75 ;	R4 = CURRENT PROCESS PCB ADDRESS.

                                     0000    76 ;	R5 = ASSIGNED DEVICE UCB ADDRESS.

                                     0000    77 ;	R6 = ADDRESS OF CCB.

                                     0000    78 ;	R7 = I/O FUNCTION CODE BIT NUMBER.

                                     0000    79 ;	R8 = FUNCTION DECISION TABLE DISPATCH ADDRESS.

                                     0000    80 ;	R9 = SCRATCH.

                                     0000    81 ;	R10 = SCRATCH.

                                     0000    82 ;	R11 = SCRATCH.

                                     0000    83 ;	AP = ADDRESS OF FIRST FUNCTION DEPENDENT PARAMETER.

                                     0000    84 ;

                                     0000    85 ; OUTPUTS:

                                     0000    86 ;

                                     0000    87 ; ***TBS***

                                     0000    88 ;-

                                     0000    89  

                                     0000    90 	.ENABL	LSB

                                     0000    91 ACP$ACCESS::				;ACCESS AND CREATE ACP FUNCTION PROCESSING

         20 A3            06     E1  0000    92 	BBC	#IO$V_ACCESS,IRP$W_FUNC(R3),ACP$MODIFY ;IF CLR, NOT ACCESS FUNCTION

                          75         0004       

                                     0005    93 ACP$ACCESSNET::				;ACCESS (CONNECT) TO NETWORK FUNCTION PROCESSING

            50       0000'8F     3C  0005    94 	MOVZWL	#SS$_FILALRACC,R0	;ASSUME FILE ALREADY ACCESSED

                       04 A6     D5  000A    95 	TSTL	CCB$L_WIND(R6)		;FILE ALREADY ACCESSED ON CHANNEL?

                          46     14  000D    96 	BGTR	20$			;IF GTR PROCESS SECTION OPEN ON CHANNEL

                          49     12  000F    97 	BNEQ	30$			;IF NEQ FILE OPEN ON CHANNEL

            50       0000'8F     3C  0011    98 	MOVZWL	#SS$_EXQUOTA,R0		;ASSUME FILE QUOTA EXCEEDED

                       48 A4     B5  0016    99 	TSTW	PCB$W_FILCNT(R4)	;FILE QUOTA EXCEEDED?

                          3F     15  0019   100 	BLEQ	30$			;IF LEQ YES

                          01BE   30  001B   101 	BSBW	BUILDACPBUF		;BUILD ACP BUFFER

                          02E7   30  001E   102 	BSBW	CHKDISMOUNT		;CHECK VOLUME AND UPDATE TRANSACTION COUNT

                       48 A4     B7  0021   103 	DECW	PCB$W_FILCNT(R4)	;UPDATE FILE ACCESS COUNT

                       04 A6     D6  0024   104 	INCL	CCB$L_WIND(R6)		;SET CHANNEL INTERLOCK

                          6E     11  0027   105 	BRB	70$			;

SYSACPFDT       - ACP FUNCTION DECISION TABLE ACTION ROUTINES    21-AUG-1978 20:16:58   VAX-11 MACRO X0.3-11               Page   4

01              DEACCESS ACP FUNCTION PROCESSING                                                                                 (1)



                                     0029   107 	.SBTTL	DEACCESS ACP FUNCTION PROCESSING

                                     0029   108 ;+

                                     0029   109 ; ACP$DEACCESS - DEACCESS ACP FUNCTION PROCESSING

                                     0029   110 ;

                                     0029   111 ; ***TBS***

                                     0029   112 ;

                                     0029   113 ; INPUTS:

                                     0029   114 ;

                                     0029   115 ;	R0 = SCRATCH.

                                     0029   116 ;	R1 = SCRATCH.

                                     0029   117 ;	R2 = SCRATCH.

                                     0029   118 ;	R3 = ADDRESS OF I/O REQUEST PACKET.

                                     0029   119 ;	R4 = CURRENT PROCESS PCB ADDRESS.

                                     0029   120 ;	R5 = ASSIGNED DEVICE UCB ADDRESS.

                                     0029   121 ;	R6 = ADDRESS OF CCB.

                                     0029   122 ;	R7 = I/O FUNCTION CODE BIT NUMBER.

                                     0029   123 ;	R8 = FUNCTION DECISION TABLE DISPATCH ADDRESS.

                                     0029   124 ;	R9 = SCRATCH.

                                     0029   125 ;	R10 = SCRATCH.

                                     0029   126 ;	R11 = SCRATCH.

                                     0029   127 ;	AP = ADDRESS OF FIRST FUNCTION DEPENDENT PARAMETER.

                                     0029   128 ;

                                     0029   129 ; OUTPUTS:

                                     0029   130 ;

                                     0029   131 ; ***TBS***

                                     0029   132 ;-

                                     0029   133  

                                     0029   134 ACP$DEACCESS::				;DEACCESS ACP FUNCTION PROCESSING

            50       0000'8F     3C  0029   135 	MOVZWL	#SS$_FILNOTACC,R0	;ASSUME FILE NOT ACCESSED

            51         04 A6     D0  002E   136 	MOVL	CCB$L_WIND(R6),R1	;FILE ACCESSED ON CHANNEL?

                          21     14  0032   137 	BGTR	20$			;IF GTR PROCESS SECTION OPEN ON CHANNEL

                          24     13  0034   138 	BEQL	30$			;IF EQL NO FILE OPEN ON CHANNEL

         0B A1            0C     93  0036   139 	BITB	#WCB$M_NOTFCP!WCB$M_SHRWCB,WCB$B_ACCESS(R1) ;NORMAL WINDOW?

                          21     12  003A   140 	BNEQ	40$			;IF NEQ NO

                          019D   30  003C   141 10$:	BSBW	BUILDACPBUF		;BUILD ACP BUFFER

                       04 A6     D6  003F   142 	INCL	CCB$L_WIND(R6)		;SET CHANNEL INTERLOCK

                          02D2   30  0042   143 	BSBW	UPTRANSCNT		;UPDATE TRANSACTION COUNT

         0A A6            01     B1  0045   144 	CMPW	#1,CCB$W_IOC(R6)	;ANY OTHER I/O ON CHANNEL?

                          4C     13  0049   145 	BEQL	70$			;IF EQL NO

                       0A A6     B7  004B   146 	DECW	CCB$W_IOC(R6)		;ADJUST COUNT FOR DEACCESS

         0C A6            53     D0  004E   147 	MOVL	R3,CCB$L_DIRP(R6)	;SAVE ADDRESS OF DEACCESS PACKET

                          FFAB'  31  0052   148 	BRW	EXE$QIORETURN		;

            50       0000'8F     3C  0055   149 20$:	MOVZWL	#SS$_IVCHNLSEC,R0	;SET INVALID SECTION CHANNEL STATUS

                          FFA3'  31  005A   150 30$:	BRW	EXE$ABORTIO		;

         0B A1            03     E1  005D   151 40$:	BBC	#WCB$V_SHRWCB,WCB$B_ACCESS(R1),50$ ;IF CLR, NOT SHARED WINDOW

                          0A         0061       

                       0E A1     B7  0062   152 	DECW	WCB$W_REFCNT(R1)	;ANY SHARERS REMAINING?

                          05     12  0065   153 	BNEQ	50$			;IF NEQ YES

         0B A1            02     E1  0067   154 	BBC	#WCB$V_NOTFCP,WCB$B_ACCESS(R1),10$ ;IF CLR, NOT FCP WINDOW

                          D0         006B       

                       48 A4     B6  006C   155 50$:	INCW	PCB$W_FILCNT(R4)	;INCREMENT FILE COUNT

                       04 A6     D4  006F   156 	CLRL	CCB$L_WIND(R6)		;CLEAR WINDOW ADDRESS

            50       0000'8F     3C  0072   157 	MOVZWL	#SS$_NORMAL,R0		;SET NORMAL COMPLETION STATUS

                          FF86'  31  0077   158 	BRW	EXE$FINISHIOC		;

SYSACPFDT       - ACP FUNCTION DECISION TABLE ACTION ROUTINES    21-AUG-1978 20:16:58   VAX-11 MACRO X0.3-11               Page   5

01              DELETE AND MODIFY ACP FUNCTION PROCESSING                                                                        (1)



                                     007A   160 	.SBTTL	DELETE AND MODIFY ACP FUNCTION PROCESSING

                                     007A   161 ;+

                                     007A   162 ; ACP$MODIFY - DELETE AND MODIFY ACP FUNCTION PROCESSING

                                     007A   163 ;

                                     007A   164 ; ***TBS***

                                     007A   165 ;

                                     007A   166 ; INPUTS:

                                     007A   167 ;

                                     007A   168 ;	R0 = SCRATCH.

                                     007A   169 ;	R1 = SCRATCH.

                                     007A   170 ;	R2 = SCRATCH.

                                     007A   171 ;	R3 = ADDRESS OF I/O REQUEST PACKET.

                                     007A   172 ;	R4 = CURRENT PROCESS PCB ADDRESS.

                                     007A   173 ;	R5 = ASSIGNED DEVICE UCB ADDRESS.

                                     007A   174 ;	R6 = ADDRESS OF CCB.

                                     007A   175 ;	R7 = I/O FUNCTION CODE BIT NUMBER.

                                     007A   176 ;	R8 = FUNCTION DECISION TABLE DISPATCH ADDRESS.

                                     007A   177 ;	R9 = SCRATCH.

                                     007A   178 ;	R10 = SCRATCH.

                                     007A   179 ;	R11 = SCRATCH.

                                     007A   180 ;	AP = ADDRESS OF FIRST FUNCTION DEPENDENT PARAMETER.

                                     007A   181 ;

                                     007A   182 ; OUTPUTS:

                                     007A   183 ;

                                     007A   184 ; ***TBS***

                                     007A   185 ;-

                                     007A   186  

                                     007A   187 ACP$MODIFY::				;DELETE AND MODIFY ACP FUNCTION PROCESSING

                          015F   30  007A   188 	BSBW	BUILDACPBUF		;BUILD ACP BUFFER

                          028D   30  007D   189 	BSBW	CHKMOUNT		;CHECK VOLUME AND UPDATE TRANSACTION COUNT

                          15     11  0080   190 	BRB	70$

SYSACPFDT       - ACP FUNCTION DECISION TABLE ACTION ROUTINES    21-AUG-1978 20:16:58   VAX-11 MACRO X0.3-11               Page   6

01              MOUNT ACP FUNCTION PROCESSING                                                                                    (1)



                                     0082   192 	.SBTTL	MOUNT ACP FUNCTION PROCESSING

                                     0082   193 ;+

                                     0082   194 ; ACP$MOUNT - MOUNT ACP FUNCTION PROCESSING

                                     0082   195 ;

                                     0082   196 ; ***TBS***

                                     0082   197 ;

                                     0082   198 ; INPUTS:

                                     0082   199 ;

                                     0082   200 ;	R0 = SCRATCH.

                                     0082   201 ;	R1 = SCRATCH.

                                     0082   202 ;	R2 = SCRATCH.

                                     0082   203 ;	R3 = ADDRESS OF I/O REQUEST PACKET.

                                     0082   204 ;	R4 = CURRENT PROCESS PCB ADDRESS.

                                     0082   205 ;	R5 = ASSIGNED DEVICE UCB ADDRESS.

                                     0082   206 ;	R6 = ADDRESS OF CCB.

                                     0082   207 ;	R7 = I/O FUNCTION CODE BIT NUMBER.

                                     0082   208 ;	R8 = FUNCTION DECISION TABLE DISPATCH ADDRESS.

                                     0082   209 ;	R9 = SCRATCH.

                                     0082   210 ;	R10 = SCRATCH.

                                     0082   211 ;	R11 = SCRATCH.

                                     0082   212 ;	AP = ADDRESS OF FIRST FUNCTION DEPENDENT PARAMETER.

                                     0082   213 ;

                                     0082   214 ; OUTPUTS:

                                     0082   215 ;

                                     0082   216 ; ***TBS***

                                     0082   217 ;-

                                     0082   218  

                                     0082   219 ACP$MOUNT::				;MOUNT ACP FUNCTION PROCESSING

                          0157   30  0082   220 	BSBW	BUILDACPBUF		;BUILD ACP BUFFER

            50       0000'8F     3C  0085   221 	MOVZWL	#SS$_NOPRIV,R0		;ASSUME INSUFFICIENT PROCESS PRIVILEGE

                                     008A   222 	IFNPRIV	MOUNT,90$		;PROCESS HAVE PRIVILEGE TO MOUNT VOLUME?

         58 A5            09     E5  008F   223 	BBCC	#UCB$V_MOUNTING,UCB$W_STS(R5),80$ ;IF CLR, NOT MOUNTING DEVICE

                          06         0093       

                          0280   30  0094   224 	BSBW	UPTRANSCNT		;UPDATE VOLUME TRANSACTION COUNT

                          FF66'  31  0097   225 70$:	BRW	EXE$QIOACPPKT		;QUEUE ACP PACKET

            50       0000'8F     3C  009A   226 80$:	MOVZWL	#SS$_DEVNOTMOUNT,R0	;SET DEVICE NOT MOUNTED STATUS

                          FF5E'  31  009F   227 90$:	BRW	EXE$ABORTIO		;ABORT I/O OPERATION

                                     00A2   228 	.DSABL	LSB

SYSACPFDT       - ACP FUNCTION DECISION TABLE ACTION ROUTINES    21-AUG-1978 20:16:58   VAX-11 MACRO X0.3-11               Page   7

01              READ AND WRITE BLOCK ACP FUNCTION PROCESSING                                                                     (1)



                                     00A2   230 	.SBTTL	READ AND WRITE BLOCK ACP FUNCTION PROCESSING

                                     00A2   231 ;+

                                     00A2   232 ; ACP$READBLK - READ BLOCK ACP FUNCTION PROCESSING

                                     00A2   233 ; ACP$WRITEBLK - WRITE BLOCK ACP FUNCTION PROCESSING

                                     00A2   234 ;

                                     00A2   235 ; ***TBS***

                                     00A2   236 ;

                                     00A2   237 ; INPUTS:

                                     00A2   238 ;

                                     00A2   239 ;	R0 = SCRATCH.

                                     00A2   240 ;	R1 = SCRATCH.

                                     00A2   241 ;	R2 = SCRATCH.

                                     00A2   242 ;	R3 = ADDRESS OF I/O REQUEST PACKET.

                                     00A2   243 ;	R4 = CURRENT PROCESS PCB ADDRESS.

                                     00A2   244 ;	R5 = ASSIGNED DEVICE UCB ADDRESS.

                                     00A2   245 ;	R6 = ADDRESS OF CCB.

                                     00A2   246 ;	R7 = I/O FUNCTION CODE BIT NUMBER.

                                     00A2   247 ;	R8 = FUNCTION DECISION TABLE DISPATCH ADDRESS.

                                     00A2   248 ;	R9 = SCRATCH.

                                     00A2   249 ;	R10 = SCRATCH.

                                     00A2   250 ;	R11 = SCRATCH.

                                     00A2   251 ;	AP = ADDRESS OF FIRST FUNCTION DEPENDENT PARAMETER.

                                     00A2   252 ;

                                     00A2   253 ; OUTPUTS:

                                     00A2   254 ;

                                     00A2   255 ; ***TBS***

                                     00A2   256 ;-

                                     00A2   257  

                                     00A2   258 	.ENABL	LSB

                                     00A2   259 ACP$READBLK::				;READ BLOCK ACP FUNCTION PROCESSING

            5A       0000'CF     9E  00A2   260 	MOVAB	W^EXE$READLOCK,R10	;SET ADDRESS OF READ CHECK AND LOCK ROUTINE

            5B   00000000'EF     9E  00A7   261 	MOVAB	EXE$CHKRDACCES,R11	;SET ADDRESS OF ACCESS CHECK ROUTINE

         34 A5            00'    E1  00AE   262 	BBC	S^#DEV$V_RCK,UCB$L_DEVCHAR(R5),20$ ;IF CLR, NO DEVICE READ CHECK

                          1E         00B2       

         20 A3       4000 8F     A8  00B3   263 10$:	BISW	#IO$M_DATACHECK,IRP$W_FUNC(R3) ;SET DATA CHECK ENABLE

                          16     11  00B9   264 	BRB	20$			;

                                     00BB   265 ACP$WRITEBLK::				;WRITE BLOCK ACP FUNCTION PROCESSING

         34 A5            00'    E0  00BB   266 	BBS	S^#DEV$V_SWL,UCB$L_DEVCHAR(R5),60$ ;IF SET, SOFTWARE WRITE LOCKED

                          73         00BF       

            5A       0000'CF     9E  00C0   267 	MOVAB	W^EXE$WRITELOCK,R10	;SET ADDRESS OF WRITE CHECK AND LOCK ROUTINE

            5B   00000000'EF     9E  00C5   268 	MOVAB	EXE$CHKWRTACCES,R11	;SET ADDRESS OF ACCESS CHECK ROUTINE

         34 A5            00'    E0  00CC   269 	BBS	S^#DEV$V_WCK,UCB$L_DEVCHAR(R5),10$ ;IF SET, DEVICE LEVEL WRITE CHECK

                          E2         00D0       

            50            6C     D0  00D1   270 20$:	MOVL	P1(AP),R0		;GET STARTING ADDRESS OF TRANSFER

            51         04 AC     3C  00D4   271 	MOVZWL	P2(AP),R1		;GET NUMBER OF BYTES TO TRANSFER

                          43     13  00D8   272 	BEQL	40$			;IF EQL ZERO LENGTH TRANSFER

         34 A5            00'    E1  00DA   273 	BBC	S^#DEV$V_SQD,UCB$L_DEVCHAR(R5),30$ ;IF CLR, NOT SEQUENTIAL DEVICE

                          05         00DE       

            51            0E     D1  00DF   274 	CMPL	#14,R1			;RECORD TOO SHORT?

                          41     14  00E2   275 	BGTR	45$			;IF GTR YES

                          6A     16  00E4   276 30$:	JSB	(R10)			;CHECK BUFFER AND LOCK IN MEMORY

            50         08 AC     D0  00E6   277 	MOVL	P3(AP),R0		;GET STARTING MEDIA ADDRESS

            51         32 A3     3C  00EA   278 	MOVZWL	IRP$W_BCNT(R3),R1	;RETRIEVE TRANSFER BYTE COUNT

         3E A3            51     B0  00EE   279 	MOVW	R1,IRP$W_OBCNT(R3)	;SET ORIGNINAL BYTE COUNT

                       3C A3     B4  00F2   280 	CLRW	IRP$W_ABCNT(R3)		;CLEAR ACCUMULATED BYTE COUNT

                          00     ED  00F5   281 	CMPZV	#IRP$V_FCODE,#IRP$S_FCODE,- ;LOGICAL OR PHYSICAL I/O FUNCTION?

         20 A3            06         00F7   282 		IRP$W_FUNC(R3),#IO$_LOGICAL ;

SYSACPFDT       - ACP FUNCTION DECISION TABLE ACTION ROUTINES    21-AUG-1978 20:16:58   VAX-11 MACRO X0.3-11               Page   8

01              READ AND WRITE BLOCK ACP FUNCTION PROCESSING                                                                     (1)



                          2F         00FA       

                          78     15  00FB   283 	BLEQ	120$			;IF LEQ YES

            52         18 A3     D0  00FD   284 	MOVL	IRP$L_WIND(R3),R2	;FILE ACCESSED ON CHANNEL?

                          29     13  0101   285 	BEQL	50$			;IF EQL NO

         2A A3            01     E0  0103   286 	BBS	#IRP$V_FUNC,IRP$W_STS(R3),80$ ;IF SET, READ FUNCTION

                          33         0107       

                                     0108   287  

                                     0108   288 ;

                                     0108   289 ; CHECK WRITE ACCESS

                                     0108   290 ;

                                     0108   291  

         0B A2            01     E1  0108   292 	BBC	#WCB$V_WRITE,WCB$B_ACCESS(R2),60$ ;IF CLR, NO WRITE ACCESS ALLOWED

                          26         010C       

         34 A5            00'    E1  010D   293 	BBC	S^#DEV$V_SQD,UCB$L_DEVCHAR(R5),35$ ;IF CLR, NOT SEQUENTIAL DEVICE

                          04         0111       

         0B A2            01     8A  0112   294 	BICB	#WCB$M_READ,WCB$B_ACCESS(R2) ;DON'T ALLOW FURTHER READS

         14 A2            05     E0  0116   295 35$:	BBS	#WCB$V_WRITECK,WCB$W_ACON(R2),90$ ;IF SET, WRITE DATA CHECK ENABLED

                          2A         011A       

                          2E     11  011B   296 	BRB	100$			;

                                     011D   297  

                                     011D   298 ;

                                     011D   299 ; ZERO LENGTH TRANSFER

                                     011D   300 ;

                                     011D   301  

            50       0000'8F     3C  011D   302 40$:	MOVZWL	#SS$_NORMAL,R0		;SET NORMAL COMPLETION

                          FEDB'  31  0122   303 	BRW	EXE$FINISHIOC		;FINISH I/O OPERATION

                                     0125   304  

                                     0125   305 ;

                                     0125   306 ; RECORD LENGTH TOO SHORT FOR MAGTAPE TRANSFER

                                     0125   307 ;

                                     0125   308  

            50       0000'8F     3C  0125   309 45$:	MOVZWL	#SS$_BADPARAM,R0	;SET BAD PARAMETER STATUS

                          0C     11  012A   310 	BRB	70$			;

                                     012C   311  

                                     012C   312 ;

                                     012C   313 ; FILE NOT ACCESSED ON CHANNEL

                                     012C   314 ;

                                     012C   315  

            50       0000'8F     3C  012C   316 50$:	MOVZWL	#SS$_FILNOTACC,R0	;SET FILE NOT ACCESSED

                          05     11  0131   317 	BRB	70$			;

                                     0133   318  

                                     0133   319 ;

                                     0133   320 ; PRIVILEGE VIOLATION

                                     0133   321 ;

                                     0133   322  

            50       0000'8F     3C  0133   323 60$:	MOVZWL	#SS$_NOPRIV,R0		;SET NO PRIVILEGE

                          FEC5'  31  0138   324 70$:	BRW	EXE$ABORTIO		;

                                     013B   325  

                                     013B   326 ;

                                     013B   327 ; CHECK READ ACCESS

                                     013B   328 ;

                                     013B   329  

         0B A2            00     E1  013B   330 80$:	BBC	#WCB$V_READ,WCB$B_ACCESS(R2),60$ ;IF CLR, READ ACCESS NOT ALLOWED

                          F3         013F       

         14 A2            09     E1  0140   331 	BBC	#WCB$V_READCK,WCB$W_ACON(R2),100$ ;IF CLR, NO READ CHECK

                          06         0144       

         20 A3       4000 8F     A8  0145   332 90$:	BISW	#IO$M_DATACHECK,IRP$W_FUNC(R3) ;SET DATA CHECK ENABLE

SYSACPFDT       - ACP FUNCTION DECISION TABLE ACTION ROUTINES    21-AUG-1978 20:16:58   VAX-11 MACRO X0.3-11               Page   9

01              READ AND WRITE BLOCK ACP FUNCTION PROCESSING                                                                     (1)



         2A A3            10     A8  014B   333 100$:	BISW	#IRP$M_VIRTUAL,IRP$W_STS(R3) ;SET VIRTUAL I/O FUNCTION

         40 A3            50     D0  014F   334 	MOVL	R0,IRP$L_SEGVBN(R3)	;SAVE STARTING VIRTUAL BLOCK NUMBER

         44 A3         2C A3     D0  0153   335 	MOVL	IRP$L_SVAPTE(R3),IRP$L_DIAGBUF(R3) ;COPY STARTING PTE ADDRESS

                                 A2  0158   336 	SUBW	#IO$_WRITEVBLK-IO$_WRITEPBLK,- ;CONVERT TO PHYSICAL I/O FUNCTION

         20 A3            25         0159   337 		IRP$W_FUNC(R3)		;

                                     015C   338 	SETIPL	UCB$B_FIPL(R5)		;RAISE TO DRIVER FORK LEVEL

                          FE9D'  30  0160   339 	BSBW	IOC$MAPVBLK		;MAP VIRTUAL BLOCK TO LOGICAL BLOCK

         3E A3            52     A3  0163   340 	SUBW3	R2,IRP$W_OBCNT(R3),IRP$W_BCNT(R3) ;CALCULATE LENGTH OF SEGMENT

                       32 A3         0167       

                          51     13  0169   341 	BEQL	160$			;IF EQL COMPLETE MAP FAILURE

            50            51     D0  016B   342 	MOVL	R1,R0			;COPY STARTING LOGICAL BLOCK NUMBER

         34 A5            00'    E1  016E   343 	BBC	S^#DEV$V_SQD,UCB$L_DEVCHAR(R5),130$ ;IF CLR, NOT SEQUENTIAL DEVICE

                          3D         0172       

                          3E     11  0173   344 	BRB	140$			;

         34 A3            50     D0  0175   345 120$:	MOVL	R0,IRP$L_MEDIA(R3)	;SAVE MEDIA ADDRESS

            59            50     7D  0179   346 	MOVQ	R0,R9			;SAVE TRANSFER PARAMETERS

            51         1A A5     3C  017C   347 	MOVZWL	UCB$W_VPROT(R5),R1	;GET VOLUME PROTECTION MASK

            52         1C A5     D0  0180   348 	MOVL	UCB$L_OWNUIC(R5),R2	;GET VOLUME OWNER UIC

                          6B     16  0184   349 	JSB	(R11)			;CHECK FOR PROPER ACCESS RIGHTS

            AA            50     E9  0186   350 	BLBC	R0,60$			;IF LBC PRIVILEGE VIOLATION

                          00     ED  0189   351 	CMPZV	#IRP$V_FCODE,#IRP$S_FCODE,- ;PHYSICAL I/O FUNCTION?

         20 A3            06         018B   352 		IRP$W_FUNC(R3),#IO$_PHYSICAL ;

                          1F         018E       

                          28     15  018F   353 	BLEQ	150$			;IF LEQ YES

                                 A2  0191   354 	SUBW	#IO$_WRITELBLK-IO$_WRITEPBLK,- ;CONVERT TO PHYSICAL I/O FUNCTION

         20 A3            15         0192   355 		IRP$W_FUNC(R3)		;

         34 A5            00'    E0  0195   356 	BBS	S^#DEV$V_SQD,UCB$L_DEVCHAR(R5),140$ ;IF SET, SEQUENTIAL DEVICE

                          19         0199       

                          5A     D7  019A   357 	DECL	R10			;ROUND BYTE COUNT DOWN

            5A         F7 8F     78  019C   358 	ASHL	#-VA$S_BYTE,R10,R10	;CONVERT TO BLOCK COUNT

                          5A         01A0       

            5A            59     C0  01A1   359 	ADDL	R9,R10			;CALCULATE ENDING BLOCK NUMBER

                          26     1F  01A4   360 	BCS	170$			;IF CS ILLEGAL BLOCK NUMBER

       0084 C5            5A     D1  01A6   361 	CMPL	R10,UCB$L_MAXBLOCK(R5)	;LEGAL BLOCK NUMBER?

                          1F     1E  01AB   362 	BGEQU	170$			;IF GEQU NO

            50            59     D0  01AD   363 	MOVL	R9,R0			;RETRIEVE STARTING MEDIA ADDRESS

                          FE4D'  30  01B0   364 130$:	BSBW	IOC$CVTLOGPHY		;CONVERT LOGICAL BLOCK TO PHYSICAL ADDRESS

                                 AA  01B3   365 140$:	BICW	#IO$M_INHERLOG!IO$M_INHSEEK,- ;CLEAR INHIBIT ERROR LOGGING

         20 A3       1800 8F         01B4   366 		IRP$W_FUNC(R3)		;AND EXPLICIT SEEK

                          FE44'  31  01B9   367 150$:	BRW	EXE$QIODRVPKT		;QUEUE I/O PACKET TO DRIVER

         32 A3            52     B0  01BC   368 160$:	MOVW	R2,IRP$W_BCNT(R3)	;SET REQUESTED BYTE COUNT

            52         18 A3     D0  01C0   369 	MOVL	IRP$L_WIND(R3),R2	;GET WINDOW ADDRESS

         0B A2            02     E0  01C4   370 	BBS	#WCB$V_NOTFCP,WCB$B_ACCESS(R2),180$ ;IF SET, NOT FCP WINDOW

                          0B         01C8       

                          FE34'  31  01C9   371 	BRW	EXE$QIOACPPKT		;QUEUE ACP PACKET

            50       0000'8F     3C  01CC   372 170$:	MOVZWL	#SS$_ILLBLKNUM,R0	;SET ILLEGAL BLOCK NUMBER STATUS

                          FE2C'  31  01D1   373 	BRW	EXE$ABORTIO		;ABORT I/O OPERATION

            50       0000'8F     3C  01D4   374 180$:	MOVZWL	#SS$_ENDOFFILE,R0	;SET END OF FILE STATUS

                          FE24'  31  01D9   375 	BRW	EXE$FINISHIOC		;

                                     01DC   376 	.DSABL	LSB

SYSACPFDT       - ACP FUNCTION DECISION TABLE ACTION ROUTINES    21-AUG-1978 20:16:58   VAX-11 MACRO X0.3-11               Page  10

01              BUILD ACP BUFFER                                                                                                 (1)



                                     01DC   378 	.SBTTL	BUILD ACP BUFFER

                                     01DC   379 ;

                                     01DC   380 ; SUBROUTINE TO BUILD ACP BUFFER

                                     01DC   381 ;

                                     01DC   382  

                                     01DC   383 	.ENABL	LSB

                                     01DC   384 BUILDACPBUF:				;BUILD ACP BUFFER

            5E       FF50 CE     9E  01DC   385 	MOVAB	-MXDESCR*8(SP),SP	;ALLOCATE SPACE FOR MAXIMUM DESCRIPTORS

            5B            5E     D0  01E1   386 	MOVL	SP,R11			;SET ADDRESS TO STORE DESCRIPTORS

            5A            10     D0  01E4   387 	MOVL	#16,R10			;SET INITIAL BYTE COUNT

            8B            04     D0  01E7   388 	MOVL	#4,(R11)+		;INSERT WINDOW ADDRESS LENGTH AND ACCESS MODE

            8B         04 A6     DE  01EA   389 	MOVAL	CCB$L_WIND(R6),(R11)+	;INSERT WINDOW ADDRESS

                          00ED   30  01EE   390 	BSBW	CHKDESCR		;INSERT FIB DESCRIPTOR

            57            34     91  01F1   391 	CMPB	#IO$_DEACCESS,R7	;IS OPERATION A DEACCESS

                          17     12  01F4   392 	BNEQ	3$			;IF NEQ, NO

         1C A3            66     D1  01F6   393 	CMPL	CCB$L_UCB(R6),IRP$L_UCB(R3) ;IS OPERATION FOR IMPLICIT SPOOLING

                          11     13  01FA   394 	BEQL	3$			;IF EQL, NO

            50            14     D0  01FC   395 	MOVL	#12+8,R0		;SIZE OF USER NAME PLUS ACCOUNT

            51   00000000'EF     9E  01FF   396 	MOVAB	CTL$T_USERNAME,R1	;ADDRESS OF THOSE IN P1 SPACE

                          00EF   30  0206   397 	BSBW	UPBYTCNT		;INSERT DESCRIPTOR FOR NAME AND ACCOUNT

                          8C     D5  0209   398 	TSTL	(AP)+			;IGNORE FILE NAME ARGUMENT

                          03     11  020B   399 	BRB	7$			;

                          00CE   30  020D   400 3$:	BSBW	CHKDESCR		;INSERT NAME STRING DESCRIPTOR

            50            8C     D0  0210   401 7$:	MOVL	(AP)+,R0		;GET ADDRESS TO STORE RESULT STRING LENGTH

                          0C     13  0213   402 	BEQL	10$			;IF EQL NONE SPECIFIED

            51            50     D0  0215   403 	MOVL	R0,R1			;SET ADDRESS OF RESULT LENGTH

            50            02     D0  0218   404 	MOVL	#2,R0			;GET LENGTH OF RESULT LENGTH

                                     021B   405 	IFNOWRT	R0,(R1),ACCVIO		;CAN RESULT LENGTH BE WRITTEN?

                          00D4   30  0221   406 10$:	BSBW	UPBYTCNT		;INSERT DESCRIPTOR AND UPDATE BYTE ACCUMULATION

                          00B7   30  0224   407 	BSBW	CHKDESCR		;INSERT RESULT STRING DESCRIPTOR

            59            11     D0  0227   408 	MOVL	#MXDESCR-5,R9		;SET MAXIMUM NUMBER OF ATTRIBUTE DESCRIPTORS

            5C            6C     D0  022A   409 	MOVL	(AP),AP			;GET ADDRESS OF ATTRIBUTE LIST

                          28     13  022D   410 	BEQL	30$			;IF EQL NONE SPECIFIED

                                     022F   411 20$:	IFNORD	#2,(AP),ACCVIO		;CAN ATTRIBUTE LENGTH BE READ?

            8B            8C     B0  0235   412 	MOVW	(AP)+,(R11)+		;INSERT ATTRIBUTE LENGTH

                          1D     13  0238   413 	BEQL	30$			;IF EQL END OF ATTRIBUTE LIST

                                     023A   414 	IFNORD	#6,(AP),ACCVIO		;CAN REST OF ATTRIBUTE DESCRIPTOR BE READ?

            8B            8C     B0  0240   415 	MOVW	(AP)+,(R11)+		;INSERT ATTRIBUTE NUMBER

            8B            8C     D0  0243   416 	MOVL	(AP)+,(R11)+		;INSERT ATTRIBUTE ADDRESS

                                     0246   417 	IFNOWRT	-8(R11),@-4(R11),ACCVIO	;CAN ATTRIBUTE BE WRITTEN?

            5A         F8 AB     A0  024E   418 	ADDW	-8(R11),R10		;UPDATE BYTE ACCUMULATION

                          0E     1F  0252   419 	BCS	35$			;IF CS ACCUMULATION OVERFLOW

            D8            59     F5  0254   420 	SOBGTR	R9,20$			;ANY MORE ATTRIBUTES TO PROCESS?

            16            59     C3  0257   421 30$:	SUBL3	R9,#MXDESCR,R9		;CALCULATE TOTAL NUMBER OF DESCRIPTORS

                          59         025A       

            59            09     C5  025B   422 	MULL3	#9,R9,AP		;CALCULATE BYTES REQUIRED BY DESCRIPTORS

                          5C         025E       

            5A            5C     A0  025F   423 	ADDW	AP,R10			;UPDATE BYTE ACCUMULATION

                          73     1F  0262   424 35$:	BCS	XQUOTA			;IF CS ACCUMULATION OVERFLOW

                          53     DD  0264   425 	PUSHL	R3			;SAVE I/O PACKET ADDRESS

            51            5A     D0  0266   426 	MOVL	R10,R1			;SET NUMBER OF BYTES REQUIRED

                          FD94'  30  0269   427 	BSBW	EXE$BUFFRQUOTA		;CHECK BUFFER BYTE COUNT QUOTA

            09            50     E9  026C   428 	BLBC	R0,40$			;IF LBC QUOTA EXCEEDED

            51            5A     D0  026F   429 	MOVL	R10,R1			;SET NUMBER OF BYTES REQUIRED

                          FD8B'  30  0272   430 	BSBW	EXE$ALLOCBUF		;ALLOCATE BUFFERED I/O BUFFER

            0B            50     E8  0275   431 	BLBS	R0,50$			;IF LBS SUCCESSFUL ALLOCATION

                                     0278   432  

SYSACPFDT       - ACP FUNCTION DECISION TABLE ACTION ROUTINES    21-AUG-1978 20:16:58   VAX-11 MACRO X0.3-11               Page  11

01              BUILD ACP BUFFER                                                                                                 (1)



                                     0278   433 ;

                                     0278   434 ; QUOTA CHECK OR BUFFER ALLOCATION FAILURE

                                     0278   435 ;

                                     0278   436  

                          08     BA  0278   437 40$:	POPR	#^M<R3>			;RETRIEVE I/O PACKET ADDRESS

                          60     11  027A   438 	BRB	80$			;

                                     027C   439  

                                     027C   440 ;

                                     027C   441 ; ACCESS VIOLATION ON DESCRIPTOR OR INFORMATION STRING

                                     027C   442 ;

                                     027C   443  

            50       0000'8F     3C  027C   444 ACCVIO:	MOVZWL	#SS$_ACCVIO,R0		;SET ACCESS VIOLATION

                          59     11  0281   445 	BRB	80$			;

                                     0283   446  

                                     0283   447 ;

                                     0283   448 ; ACP BUFFER ALLOCATED AND ALL DESCRIPTORS CHECKED

                                     0283   449 ;

                                     0283   450  

                          08     BA  0283   451 50$:	POPR	#^M<R3>			;RETRIEVE I/O PACKET ADDRESS

         2C A3            52     D0  0285   452 	MOVL	R2,IRP$L_SVAPTE(R3)	;INSERT ADDRESS OF ACP BUFFER

         32 A3            59     B0  0289   453 	MOVW	R9,IRP$W_BCNT(R3)	;INSERT NUMBER OF DESCRIPTORS

         30 A3            5A     B0  028D   454 	MOVW	R10,IRP$W_BOFF(R3)	;SET NUMBER OF BYTES CHARGED TO QUOTA

         2A A3            18     A8  0291   455 	BISW	#IRP$M_COMPLX!-		;SET COMPLEX BUFFERED I/O AND

                                     0295   456 		IRP$M_VIRTUAL,IRP$W_STS(R3) ;VIRTUAL I/O

            82         0C A2     DE  0295   457 	MOVAL	12(R2),(R2)+		;SET POINTER TO FIRST DESCRIPTOR

                          82     D4  0299   458 	CLRL	(R2)+			;CLEAR SPARE LONGWORD

            82            5A     B0  029B   459 	MOVW	R10,(R2)+		;SET SIZE OF BUFFER

            82            13     9B  029E   460 	MOVZBW	#DYN$C_BUFIO,(R2)+	;SET DATA STRUCTURE TYPE

         42 A4            5A     A2  02A1   461 	SUBW	R10,PCB$W_BYTCNT(R4)	;UPDATE CURRENT BUFFERED I/O USAGE

            59            08     C5  02A5   462 	MULL3	#8,R9,AP		;CALCULATE OFFSET TO START OF DATA AREA

                          5C         02A8       

            5C            52     C0  02A9   463 	ADDL	R2,AP			;CALCULATE ADDRESS OF DATA AREA

            5A            52     D0  02AC   464 	MOVL	R2,R10			;SET ADDRESS OF FIRST OUTPUT DESCRIPTOR

            5B            5E     D0  02AF   465 	MOVL	SP,R11			;SET ADDRESS OF FIRST INPUT DESCRIPTOR

                          38     BB  02B2   466 	PUSHR	#^M<R3,R4,R5>		;SAVE REGISTERS R3, R4, AND R5

                          7C     10  02B4   467 	BSBB	WRDESCR			;PROCESS WINDOW ADDRESS DESCRIPTOR

                          76     10  02B6   468 	BSBB	RDDESCR			;PROCESS FIB DESCRIPTOR

                          74     10  02B8   469 	BSBB	RDDESCR			;PROCESS NAME STRING DESCRIPTOR

                          72     10  02BA   470 	BSBB	RDDESCR			;PROCESS RESULT STRING LENGTH DESCRIPTOR

                          70     10  02BC   471 	BSBB	RDDESCR			;PROCESS RESULT STRING DESCRIPTOR

            59            05     C2  02BE   472 	SUBL	#5,R9			;CALCULATE NUMBER OF REMAINING DESCRIPTORS

                          05     13  02C1   473 	BEQL	70$			;IF EQL NONE

                          69     10  02C3   474 60$:	BSBB	RDDESCR			;PROCESS ATTRIBUTE DESCRIPTOR

            FB            59     F5  02C5   475 	SOBGTR	R9,60$			;ANY MORE ATTRIBUTES TO PROCESS?

                          38     BA  02C8   476 70$:	POPR	#^M<R3,R4,R5>		;RESTORE REGISTERS R3, R4, AND R5

            5E       00B0 CE     9E  02CA   477 	MOVAB	MXDESCR*8(SP),SP	;REMOVE DESCRIPTOR STORAGE FROM STACK

         34 A3            66     D0  02CF   478 	MOVL	CCB$L_UCB(R6),IRP$L_MEDIA(R3) ;INSERT ORIGINAL UCB ADDRESS

                                     02D3   479 	SETIPL	#IPL$_SYNCH		;SYNCHRONIZE ACCESS TO SYSTEM DATA BASE

                                 05  02D6   480 	RSB				;

                                     02D7   481  

                                     02D7   482 ;

                                     02D7   483 ; BYTE ACCUMULATION OVERFLOW

                                     02D7   484 ;

                                     02D7   485  

            50       0000'8F     3C  02D7   486 XQUOTA:	MOVZWL	#SS$_EXQUOTA,R0		;SET QUOTA EXCEEDED

                          4D     11  02DC   487 80$:	BRB	ABORTIO			;

                                     02DE   488 	.DSABL	LSB

SYSACPFDT       - ACP FUNCTION DECISION TABLE ACTION ROUTINES    21-AUG-1978 20:16:58   VAX-11 MACRO X0.3-11               Page  12

01              CHECK DESCRIPTOR AND UPDATE BYTE ACCUMULATION                                                                    (1)



                                     02DE   490 	.SBTTL	CHECK DESCRIPTOR AND UPDATE BYTE ACCUMULATION

                                     02DE   491 ;

                                     02DE   492 ; SUBROUTINE TO CHECK PARAMETER DESCRIPTOR AND UPDATE BYTE ACCUMULATION

                                     02DE   493 ;

                                     02DE   494  

                                     02DE   495 CHKDESCR:				;CHECK PARARMETER DESCRIPTOR

            50            8C     D0  02DE   496 	MOVL	(AP)+,R0		;GET ADDRESS OF DESCRIPTOR

                          15     13  02E1   497 	BEQL	UPBYTCNT		;IF EQL NONE SPECIFIED

                                     02E3   498 	IFNORD	#8,(R0),ACCVIO		;CAN DESCRIPTOR BE READ?

            51         04 A0     D0  02E9   499 	MOVL	4(R0),R1		;GET ADDRESS OF INFORMATION STRING

            50            60     3C  02ED   500 	MOVZWL	(R0),R0			;GET LENGTH OF INFORMATION STRING

                          06     13  02F0   501 	BEQL	UPBYTCNT		;IF EQL ZERO LENGTH

                                     02F2   502 	IFNOWRT	R0,(R1),ACCVIO		;CAN INFORMATION STRING BE WRITTEN?

                                     02F8   503 UPBYTCNT:				;INSERT DESCRIPTOR AND UPDATE BYTE ACCUMULATION

            5A            50     A0  02F8   504 	ADDW	R0,R10			;UPDATE BYTE ACCUMULATION

                          DA     1F  02FB   505 	BCS	XQUOTA			;IF CS ACCUMULATION OVERFLOW

            8B            50     B0  02FD   506 	MOVW	R0,(R11)+		;INSERT LENGTH OF INFORMATION STRING

            8B         0B A3     9B  0300   507 	MOVZBW	IRP$B_RMOD(R3),(R11)+	;INSERT ACCESS MODE

            8B            51     D0  0304   508 	MOVL	R1,(R11)+		;INSERT INFORMATION STRING ADDRESS

                                 05  0307   509 	RSB				;

SYSACPFDT       - ACP FUNCTION DECISION TABLE ACTION ROUTINES    21-AUG-1978 20:16:58   VAX-11 MACRO X0.3-11               Page  13

01              CHECK VOLUME AND UPDATE TRANSACTION COUNT                                                                        (1)



                                     0308   511 	.SBTTL	CHECK VOLUME AND UPDATE TRANSACTION COUNT

                                     0308   512 ;

                                     0308   513 ; SUBROUTINE TO CHECK IF VOLUME MARKED FOR DISMOUNT, VOLUME NOT MOUNTED,

                                     0308   514 ; OR VOLUME MOUNTED FOREIGN. IF ALL CHECKS SUCCEED, THEN UPDATE VOLUME

                                     0308   515 ; TRANSACTION COUNT. ELSE RETURN APPROPRIATE ERROR.

                                     0308   516 ;

                                     0308   517  

                                     0308   518 	.ENABL	LSB

                                     0308   519 CHKDISMOUNT:				;CHECK IF VOLUME MARKED FOR DISMOUNT

         34 A5            00'    E0  0308   520 	BBS	S^#DEV$V_DMT,UCB$L_DEVCHAR(R5),10$ ;IF SET, VOLUME MARKED FOR DISMOUNT

                          12         030C       

                                     030D   521  

                                     030D   522 ;

                                     030D   523 ; SUBROUTINE TO CHECK IF VOLUME NOT MOUNTED OR MOUNTED FOREIGN. IF BOTH

                                     030D   524 ; CHECKS SUCCEED, THEN UPDATE TRANSACTION COUNT. ELSE RETURN APPROPRIATE

                                     030D   525 ; ERROR.

                                     030D   526 ;

                                     030D   527  

                                     030D   528 CHKMOUNT:				;CHECK IF VOLUME MOUNTED AND NOT FOREIGN

         34 A5            00'    E1  030D   529 	BBC	S^#DEV$V_MNT,UCB$L_DEVCHAR(R5),10$ ;IF CLR, VOLUME NOT MOUNTED

                          0D         0311       

         34 A5            00'    E0  0312   530 	BBS	S^#DEV$V_FOR,UCB$L_DEVCHAR(R5),20$ ;IF SET, VOLUME FOREIGN

                          0F         0316       

                                     0317   531  

                                     0317   532 ;

                                     0317   533 ; SUBROUTINE TO UPDATE VOLUME TRANSACTION COUNT.

                                     0317   534 ;

                                     0317   535  

                                     0317   536 UPTRANSCNT:				;UPDATE VOLUME TRANSACTION COUNT

            50         30 A5     D0  0317   537 	MOVL	UCB$L_VCB(R5),R0	;GET ADDRESS OF VCB

                       0C A0     B6  031B   538 	INCW	VCB$W_TRANS(R0)		;UPDATE VOLUME TRANSACTION COUNT

                                 05  031E   539 	RSB				;

                                     031F   540  

                                     031F   541 ;

                                     031F   542 ; VOLUME MARKED FOR DISMOUNT OR NOT MOUNTED

                                     031F   543 ;

                                     031F   544  

            50       0000'8F     3C  031F   545 10$:	MOVZWL	#SS$_DEVNOTMOUNT,R0	;SET DEVICE NOT MOUNTED

                          05     11  0324   546 	BRB	ABORTIO			;

                                     0326   547  

                                     0326   548 ;

                                     0326   549 ; DEVICE MOUNTED FOREIGN

                                     0326   550 ;

                                     0326   551  

            50       0000'8F     3C  0326   552 20$:	MOVZWL	#SS$_DEVFOREIGN,R0	;SET DEVICE FOREIGN

                                     032B   553  

                                     032B   554 ;

                                     032B   555 ; FINISH I/O OPERATION WITHOUT QUEUEING PACKET TO ACP

                                     032B   556 ;

                                     032B   557  

                                     032B   558 ABORTIO:				;ABORT I/O OPERATION

                          FCD2'  31  032B   559 	BRW	EXE$ABORTIO		;

                                     032E   560 	.DSABL	LSB

SYSACPFDT       - ACP FUNCTION DECISION TABLE ACTION ROUTINES    21-AUG-1978 20:16:58   VAX-11 MACRO X0.3-11               Page  14

01              BUILD INFORMATION DESCRIPTOR AND COPY DATA                                                                       (1)



                                     032E   562 	.SBTTL	BUILD INFORMATION DESCRIPTOR AND COPY DATA

                                     032E   563 ;

                                     032E   564 ; SUBROUTINE TO BUILD DESCRIPTOR FOR INFORMATION THAT IS BEING READ FROM THE

                                     032E   565 ; CALLING PROCESS' ADDRESS SPACE.

                                     032E   566 ;

                                     032E   567  

                                     032E   568 	.ENABL	LSB

                                     032E   569 RDDESCR:				;BUILD READ DESCRIPTOR

                          01     DD  032E   570 	PUSHL	#1			;SET READ INDICATOR

                          02     11  0330   571 	BRB	10$			;

                                     0332   572  

                                     0332   573 ;

                                     0332   574 ; SUBROUTINE TO BUILD DESCRIPTOR FOR INFORMATION THAT WILL BE WRITTEN TO THE

                                     0332   575 ; CALLING PROCESS' ADDRESS SPACE.

                                     0332   576 ;

                                     0332   577  

                                     0332   578 WRDESCR:				;BUILD WRITE DESCRIPTOR

                          00     DD  0332   579 	PUSHL	#0			;SET WRITE INDICATOR

            5C            5A     C3  0334   580 10$:	SUBL3	R10,AP,(R10)+		;CALCULATE OFFSET TO DATA AREA

                          8A         0337       

                                     0338   581 	

         FE AA            8B     B0  0338   582 	MOVW	(R11)+,-2(R10)		;INSERT LENGTH OF DATA AREA

            8C            8B     90  033C   583 	MOVB	(R11)+,(AP)+		;INSERT ACCESS MODE OR ATTRIBUTE NUMBER

                          5B     D6  033F   584 	INCL	R11			;ADVANCE TO INFORMATION ADDRESS

            8A            8B     D0  0341   585 	MOVL	(R11)+,(R10)+		;INSERT ADDRESS OF INFORMATION

            06            8E     E9  0344   586 	BLBC	(SP)+,20$		;IF LBC INFORMATION BEING WRITTEN

                                     0347   587 	

         FC BA         FA AA     28  0347   588 	MOVC	-6(R10),@-4(R10),(AP)	;MOVE INFORMATION TO BUFFER

                          6C         034C       

            50         FA AA     3C  034D   589 20$:	MOVZWL	-6(R10),R0		;GET LENGTH OF DATA AREA

            5C            50     C0  0351   590 	ADDL	R0,AP			;POINT TO NEXT DATA AREA

                                 05  0354   591 	RSB				;

                                     0355   592 	.DSABL	LSB

                                     0355   593  

                                     0355   594 	.END

SYSACPFDT       - ACP FUNCTION DECISION TABLE ACTION ROUTINES    21-AUG-1978 20:16:58   VAX-11 MACRO X0.3-11               Page  15

SYMBOL TABLE                                                                                                                     (1)



ABORTIO          0000032B R     01   DYN$C_PIB      = 00000022            IO$M_STARTUP   = 00000040            

ACCVIO           0000027C R     01   DYN$C_PQB      = 0000000D            IO$M_SYNCH     = 00000200            

ACP$ACCESS       00000000 RG    01   DYN$C_PTR      = 00000025            IO$M_TIMED     = 00000080            

ACP$ACCESSNET    00000005 RG    01   DYN$C_RVT      = 0000000E            IO$M_TRMNOECHO = 00001000            

ACP$DEACCESS     00000029 RG    01   DYN$C_SFT      = 00000024            IO$M_WRTATTN   = 00000100            

ACP$MODIFY       0000007A RG    01   DYN$C_SSB      = 0000001D            IO$S_FCODE     = 00000006            

ACP$MOUNT        00000082 RG    01   DYN$C_TQE      = 0000000F            IO$V_ABORT     = 00000008            

ACP$READBLK      000000A2 RG    01   DYN$C_TYPAHD   = 00000014            IO$V_ACCESS    = 00000006            

ACP$WRITEBLK     000000BB RG    01   DYN$C_UCB      = 00000010            IO$V_ATTNAST   = 00000008            

BIT...         = 0000000C            DYN$C_VCB      = 00000011            IO$V_BINARY    = 00000006            

BUILDACPBUF      000001DC R     01   DYN$C_WCB      = 00000012            IO$V_CANCTRLO  = 00000006            

CCB$B_AMOD       00000009            EXE$ABORTIO      ********   X   01   IO$V_COMMOD    = 00000006            

CCB$B_STS        00000008            EXE$ALLOCBUF     ********   X   01   IO$V_CREATE    = 00000007            

CCB$C_LENGTH     00000010            EXE$BUFFRQUOTA   ********   X   01   IO$V_CTRLCAST  = 00000008            

CCB$K_LENGTH     00000010            EXE$CHKRDACCES   ********   X   01   IO$V_CTRLYAST  = 00000007            

CCB$L_DIRP       0000000C            EXE$CHKWRTACCES  ********   X   01   IO$V_CVTLOW    = 00000008            

CCB$L_UCB        00000000            EXE$FINISHIOC    ********   X   01   IO$V_DATACHECK = 0000000E            

CCB$L_WIND       00000004            EXE$QIOACPPKT    ********   X   01   IO$V_DELETE    = 00000008            

CCB$W_IOC        0000000A            EXE$QIODRVPKT    ********   X   01   IO$V_DMOUNT    = 0000000A            

CHKDESCR         000002DE R     01   EXE$QIORETURN    ********   X   01   IO$V_DSABLMBX  = 0000000A            

CHKDISMOUNT      00000308 R     01   EXE$READLOCK     ********   X   01   IO$V_ENABLMBX  = 00000007            

CHKMOUNT         0000030D R     01   EXE$WRITELOCK    ********   X   01   IO$V_FCODE     = 00000000            

CTL$T_USERNAME   ********   X   01   GBL...         = 00000000            IO$V_HANGUP    = 00000009            

DEV$V_DMT        ********   X   01   IO$M_ABORT     = 00000100            IO$V_INHERLOG  = 0000000B            

DEV$V_FOR        ********   X   01   IO$M_ACCESS    = 00000040            IO$V_INHEXTGAP = 0000000C            

DEV$V_MNT        ********   X   01   IO$M_ATTNAST   = 00000100            IO$V_INHRETRY  = 0000000F            

DEV$V_RCK        ********   X   01   IO$M_BINARY    = 00000040            IO$V_INHSEEK   = 0000000C            

DEV$V_SQD        ********   X   01   IO$M_CANCTRLO  = 00000040            IO$V_INTERRUPT = 00000006            

DEV$V_SWL        ********   X   01   IO$M_COMMOD    = 00000040            IO$V_INTSKIP   = 00000008            

DEV$V_WCK        ********   X   01   IO$M_CREATE    = 00000080            IO$V_MOUNT     = 00000009            

DYN$C_ACB      = 00000002            IO$M_CTRLCAST  = 00000100            IO$V_NOECHO    = 00000006            

DYN$C_ADP      = 00000001            IO$M_CTRLYAST  = 00000080            IO$V_NOFILTR   = 00000009            

DYN$C_AQB      = 00000003            IO$M_CVTLOW    = 00000100            IO$V_NOFORMAT  = 00000008            

DYN$C_BRDCST   = 0000001A            IO$M_DATACHECK = 00004000            IO$V_NOW       = 00000006            

DYN$C_BUFIO    = 00000013            IO$M_DELETE    = 00000100            IO$V_NOWAIT    = 00000007            

DYN$C_CEB      = 00000004            IO$M_DMOUNT    = 00000400            IO$V_PACKED    = 00000007            

DYN$C_CRB      = 00000005            IO$M_DSABLMBX  = 00000400            IO$V_PURGE     = 0000000B            

DYN$C_CXB      = 0000001B            IO$M_ENABLMBX  = 00000080            IO$V_READATTN  = 00000007            

DYN$C_DDB      = 00000006            IO$M_FCODE     = 0000003F            IO$V_REVERSE   = 00000006            

DYN$C_DPT      = 0000001E            IO$M_HANGUP    = 00000200            IO$V_SHUTDOWN  = 00000007            

DYN$C_FCB      = 00000007            IO$M_INHERLOG  = 00000800            IO$V_STARTUP   = 00000006            

DYN$C_FRK      = 00000008            IO$M_INHEXTGAP = 00001000            IO$V_SYNCH     = 00000009            

DYN$C_GSD      = 00000015            IO$M_INHRETRY  = 00008000            IO$V_TIMED     = 00000007            

DYN$C_IDB      = 00000009            IO$M_INHSEEK   = 00001000            IO$V_TRMNOECHO = 0000000C            

DYN$C_IRP      = 0000000A            IO$M_INTERRUPT = 00000040            IO$V_WRTATTN   = 00000008            

DYN$C_JPB      = 0000001F            IO$M_INTSKIP   = 00000100            IO$_ACCESS     = 00000032            

DYN$C_KFH      = 00000026            IO$M_MOUNT     = 00000200            IO$_ACPCONTROL = 00000038            

DYN$C_KFI      = 00000018            IO$M_NOECHO    = 00000040            IO$_CREATE     = 00000033            

DYN$C_LOG      = 0000000B            IO$M_NOFILTR   = 00000200            IO$_DEACCESS   = 00000034            

DYN$C_MTL      = 00000019            IO$M_NOFORMAT  = 00000100            IO$_DELETE     = 00000035            

DYN$C_MVL      = 00000016            IO$M_NOW       = 00000040            IO$_DIAGNOSE   = 0000001D            

DYN$C_NDB      = 0000001C            IO$M_NOWAIT    = 00000080            IO$_DRVCLR     = 00000004            

DYN$C_NET      = 00000017            IO$M_PACKED    = 00000080            IO$_ERASETAPE  = 00000006            

DYN$C_PBH      = 00000020            IO$M_PURGE     = 00000800            IO$_LOGICAL    = 0000002F            

DYN$C_PCB      = 0000000C            IO$M_READATTN  = 00000080            IO$_MODIFY     = 00000036            

DYN$C_PDB      = 00000021            IO$M_REVERSE   = 00000040            IO$_MOUNT      = 00000039            

DYN$C_PFL      = 00000023            IO$M_SHUTDOWN  = 00000080            IO$_NOP        = 00000000            

SYSACPFDT       - ACP FUNCTION DECISION TABLE ACTION ROUTINES    21-AUG-1978 20:16:58   VAX-11 MACRO X0.3-11               Page  16

SYMBOL TABLE                                                                                                                     (1)



IO$_OFFSET     = 00000006            IRP$L_DIAGBUF    00000044            P5             = 00000010            

IO$_PACKACK    = 00000008            IRP$L_IOQBL      00000004            P6             = 00000014            

IO$_PHYSICAL   = 0000001F            IRP$L_IOQFL      00000000            PCB$B_ASTACT     0000000C            

IO$_READHEAD   = 0000000E            IRP$L_IOSB       00000024            PCB$B_ASTEN      0000000D            

IO$_READLBLK   = 00000021            IRP$L_IOST1      00000034            PCB$B_PRI        0000000B            

IO$_READPBLK   = 0000000C            IRP$L_IOST2      00000038            PCB$B_PRIB       00000033            

IO$_READPRESET = 00000019            IRP$L_MEDIA      00000034            PCB$B_TYPE       0000000A            

IO$_READPROMPT = 00000037            IRP$L_PID        0000000C            PCB$B_WEFC       00000032            

IO$_READTRACKD = 00000010            IRP$L_SEGVBN     00000040            PCB$C_LENGTH     0000007C            

IO$_READVBLK   = 00000031            IRP$L_SEQNUM     00000048            PCB$K_LENGTH     0000007C            

IO$_RECAL      = 00000003            IRP$L_SVAPTE     0000002C            PCB$L_ASTQBL     00000014            

IO$_RELEASE    = 00000005            IRP$L_TT_TERM    00000038            PCB$L_ASTQFL     00000010            

IO$_RETCENTER  = 00000007            IRP$L_UCB        0000001C            PCB$L_EFC2P      00000058            

IO$_REWIND     = 00000024            IRP$L_WIND       00000018            PCB$L_EFC3P      0000005C            

IO$_REWINDOFF  = 00000022            IRP$M_BUFIO    = 00000001            PCB$L_EFCS       00000050            

IO$_SEARCH     = 00000009            IRP$M_CHAINED  = 00000020            PCB$L_EFCU       00000054            

IO$_SEEK       = 00000002            IRP$M_COMPLX   = 00000008            PCB$L_EFWM       0000004C            

IO$_SENSECHAR  = 0000001B            IRP$M_DIAGBUF  = 00000080            PCB$L_OWNER      0000001C            

IO$_SENSEMODE  = 00000027            IRP$M_FUNC     = 00000002            PCB$L_PHD        00000064            

IO$_SETCHAR    = 0000001A            IRP$M_MBXIO    = 00000400            PCB$L_PHYPCB     00000018            

IO$_SETMODE    = 00000023            IRP$M_PAGIO    = 00000004            PCB$L_PID        00000060            

IO$_SKIPFILE   = 00000025            IRP$M_PHYSIO   = 00000100            PCB$L_PQB        0000004C            

IO$_SKIPRECORD = 00000026            IRP$M_PRIVIO   = 00000200            PCB$L_SQBL       00000004            

IO$_SPACEFILE  = 00000002            IRP$M_SWAPIO   = 00000040            PCB$L_SQFL       00000000            

IO$_SPACERECORD= 00000009            IRP$M_VIRTUAL  = 00000010            PCB$L_STS        00000028            

IO$_STARTSPNDL = 00000019            IRP$Q_NT_PRVMSK  0000003C            PCB$L_UIC        00000020            

IO$_UNLOAD     = 00000001            IRP$S_FCODE    = 00000006            PCB$L_WSSWP      00000024            

IO$_VIRTUAL    = 0000003F            IRP$S_FMOD     = 0000000A            PCB$L_WTIME      0000002C            

IO$_WRITECHECK = 0000000A            IRP$S_MODE     = 00000002            PCB$T_LNAME      0000006C            

IO$_WRITECHECKH= 00000018            IRP$V_BUFIO    = 00000000            PCB$V_ASTPEN   = 00000011            

IO$_WRITEHEAD  = 0000000D            IRP$V_CHAINED  = 00000005            PCB$V_BATCH    = 0000000E            

IO$_WRITELBLK  = 00000020            IRP$V_COMPLX   = 00000003            PCB$V_DELPEN   = 00000001            

IO$_WRITEMARK  = 0000001C            IRP$V_DIAGBUF  = 00000007            PCB$V_FORCPEN  = 00000002            

IO$_WRITEOF    = 00000028            IRP$V_FCODE    = 00000000            PCB$V_HIBER    = 00000013            

IO$_WRITEPBLK  = 0000000B            IRP$V_FMOD     = 00000006            PCB$V_INQUAN   = 00000003            

IO$_WRITETRACKD= 0000000F            IRP$V_FUNC     = 00000001            PCB$V_LOGIN    = 00000014            

IO$_WRITEVBLK  = 00000030            IRP$V_MBXIO    = 0000000A            PCB$V_NETWRK   = 00000015            

IOC$CVTLOGPHY    ********   X   01   IRP$V_MODE     = 00000000            PCB$V_NOACNT   = 0000000F            

IOC$MAPVBLK      ********   X   01   IRP$V_PAGIO    = 00000002            PCB$V_NODELET  = 00000017            

IPL$_ASTDEL    = 00000002            IRP$V_PHYSIO   = 00000008            PCB$V_PHDRES   = 00000012            

IPL$_HWCLK     = 00000018            IRP$V_PRIVIO   = 00000009            PCB$V_PSWAPM   = 00000004            

IPL$_IOPOST    = 00000004            IRP$V_SWAPIO   = 00000006            PCB$V_PWRAST   = 00000016            

IPL$_MAILBOX   = 0000000B            IRP$V_VIRTUAL  = 00000004            PCB$V_RES      = 00000000            

IPL$_POWER     = 0000001F            IRP$W_ABCNT      0000003C            PCB$V_RESPEN   = 00000005            

IPL$_QUEUEAST  = 00000006            IRP$W_BCNT       00000032            PCB$V_SSFEXC   = 00000006            

IPL$_SCHED     = 00000003            IRP$W_BOFF       00000030            PCB$V_SSFEXCE  = 00000007            

IPL$_SYNCH     = 00000007            IRP$W_CHAN       00000028            PCB$V_SSFEXCS  = 00000008            

IPL$_TIMER     = 00000007            IRP$W_FUNC       00000020            PCB$V_SSFEXCU  = 00000009            

IRP$B_CARCON     00000038            IRP$W_OBCNT      0000003E            PCB$V_SSRWAIT  = 0000000A            

IRP$B_EFN        00000022            IRP$W_SIZE       00000008            PCB$V_SUSPEN   = 0000000B            

IRP$B_PRI        00000023            IRP$W_STS        0000002A            PCB$V_SWPVBN   = 00000010            

IRP$B_RMOD       0000000B            IRP$W_TT_PRMPT   0000003C            PCB$V_WAKEPEN  = 0000000C            

IRP$B_TYPE       0000000A            MXDESCR        = 00000016            PCB$V_WALL     = 0000000D            

IRP$C_LENGTH     0000004C            P1             = 00000000            PCB$W_APTCNT     00000034            

IRP$K_LENGTH     0000004C            P2             = 00000004            PCB$W_ASTCNT     0000003C            

IRP$L_AST        00000010            P3             = 00000008            PCB$W_BIOCNT     0000003E            

IRP$L_ASTPRM     00000014            P4             = 0000000C            PCB$W_BIOLM      00000040            

SYSACPFDT       - ACP FUNCTION DECISION TABLE ACTION ROUTINES    21-AUG-1978 20:16:58   VAX-11 MACRO X0.3-11               Page  17

SYMBOL TABLE                                                                                                                     (1)



PCB$W_BYTCNT     00000042            PRV$V_BUGCHK   = 00000017            UCB$B_SPR        00000075            

PCB$W_BYTLM      00000068            PRV$V_CMEXEC   = 00000001            UCB$B_STATE      00000052            

PCB$W_DIOCNT     00000044            PRV$V_CMKRNL   = 00000000            UCB$B_TRACKS     0000003D            

PCB$W_DIOLM      00000046            PRV$V_DETACH   = 00000005            UCB$B_TYPE       0000000A            

PCB$W_FILCNT     00000048            PRV$V_DIAGNOSE = 00000006            UCB$B_VERTSZ     0000003F            

PCB$W_GPGCNT     00000038            PRV$V_EXQUOTA  = 00000013            UCB$C_LENGTH     00000074            

PCB$W_GRP        00000022            PRV$V_GROUP    = 00000008            UCB$C_LOGLNK   = 00000001            

PCB$W_MEM        00000020            PRV$V_GRPNAM   = 00000003            UCB$K_LENGTH     00000074            

PCB$W_MTXCNT     0000000E            PRV$V_LOG_IO   = 00000007            UCB$L_AMB        00000054            

PCB$W_PPGCNT     0000003A            PRV$V_MOUNT    = 00000011            UCB$L_ASTQBL     00000010            

PCB$W_PRCCNT     0000006A            PRV$V_NETMBX   = 00000014            UCB$L_ASTQFL     0000000C            

PCB$W_SIZE       00000008            PRV$V_NOACNT   = 00000009            UCB$L_CPID       0000005C            

PCB$W_STATE      00000030            PRV$V_OPER     = 00000012            UCB$L_CRB        00000020            

PCB$W_TMBU       00000036            PRV$V_PHY_IO   = 00000016            UCB$L_DDB        00000024            

PCB$W_TQCNT      0000004A            PRV$V_PRMCEB   = 0000000A            UCB$L_DEVCHAR    00000034            

PR$_ACCR       = 00000029            PRV$V_PRMGBL   = 00000018            UCB$L_DEVDEPEND  0000003C            

PR$_ACCS       = 00000028            PRV$V_PRMMBX   = 0000000B            UCB$L_DPC        00000080            

PR$_ASTLVL     = 00000013            PRV$V_PSWAPM   = 0000000C            UCB$L_DUETIM     0000005C            

PR$_ESP        = 00000001            PRV$V_SETPRI   = 0000000D            UCB$L_DX_BFPNT   0000009C            

PR$_ICCS       = 00000018            PRV$V_SETPRV   = 0000000E            UCB$L_DX_BUF     00000098            

PR$_ICR        = 0000001A            PRV$V_SYSGBL   = 00000019            UCB$L_DX_RXDB    000000A0            

PR$_IPL        = 00000012            PRV$V_SYSNAM   = 00000002            UCB$L_EMB        00000078            

PR$_ISP        = 00000004            PRV$V_TMPMBX   = 0000000F            UCB$L_FIRST      00000014            

PR$_KSP        = 00000000            PRV$V_VOLPRO   = 00000015            UCB$L_FPC        0000000C            

PR$_MAPEN      = 00000038            PRV$V_WORLD    = 00000010            UCB$L_FQBL       00000004            

PR$_NICR       = 00000019            RDDESCR          0000032E R     01   UCB$L_FQFL       00000000            

PR$_P0BR       = 00000008            SS$_ACCVIO       ********   X   01   UCB$L_FR3        00000010            

PR$_P0LR       = 00000009            SS$_BADPARAM     ********   X   01   UCB$L_FR4        00000014            

PR$_P1BR       = 0000000A            SS$_DEVFOREIGN   ********   X   01   UCB$L_IOQBL      00000044            

PR$_P1LR       = 0000000B            SS$_DEVNOTMOUNT  ********   X   01   UCB$L_IOQFL      00000040            

PR$_PCBB       = 00000010            SS$_ENDOFFILE    ********   X   01   UCB$L_IRP        0000004C            

PR$_PME        = 0000003D            SS$_EXQUOTA      ********   X   01   UCB$L_LINK       0000002C            

PR$_RXCS       = 00000020            SS$_FILALRACC    ********   X   01   UCB$L_LOGADR     00000064            

PR$_RXDB       = 00000021            SS$_FILNOTACC    ********   X   01   UCB$L_MAXBLOCK   00000084            

PR$_SBIER      = 00000034            SS$_ILLBLKNUM    ********   X   01   UCB$L_MEDIA      0000008C            

PR$_SBIFS      = 00000030            SS$_IVCHNLSEC    ********   X   01   UCB$L_NT_DATSSB  00000074            

PR$_SBIMT      = 00000033            SS$_NOPRIV       ********   X   01   UCB$L_NT_INTSSB  00000078            

PR$_SBIQC      = 00000036            SS$_NORMAL       ********   X   01   UCB$L_OPCNT      00000060            

PR$_SBIS       = 00000031            UCB$B_AMOD       00000053            UCB$L_OWNUIC     0000001C            

PR$_SBISC      = 00000032            UCB$B_CEX        00000077            UCB$L_PID        00000028            

PR$_SBITA      = 00000035            UCB$B_CM1        0000004A            UCB$L_RQBL       00000004            

PR$_SBR        = 0000000C            UCB$B_CM2        0000004B            UCB$L_RQFL       00000000            

PR$_SCBB       = 00000011            UCB$B_DEVCLASS   00000038            UCB$L_SVAPTE     00000068            

PR$_SID        = 0000003E            UCB$B_DEVTYPE    00000039            UCB$L_SVPN       00000064            

PR$_SIRR       = 00000014            UCB$B_DIPL       00000052            UCB$L_TTCHAR     0000003C            

PR$_SISR       = 00000015            UCB$B_DX_SCTCNT  000000A6            UCB$L_VCB        00000030            

PR$_SLR        = 0000000D            UCB$B_ERTCNT     00000070            UCB$M_BACKP    = 00000020            

PR$_SSP        = 00000002            UCB$B_ERTMAX     00000071            UCB$M_BSY      = 00000100            

PR$_TBIA       = 00000039            UCB$B_ESCAPE     0000004B            UCB$M_CANCEL   = 00000008            

PR$_TBIS       = 0000003A            UCB$B_FEX        00000076            UCB$M_DEADMO   = 00000400            

PR$_TODR       = 0000001B            UCB$B_FIPL       0000000B            UCB$M_DELMBX   = 00000002            

PR$_TXCS       = 00000022            UCB$B_LOCSRV     0000003C            UCB$M_DIAGBUF  = 00000002            

PR$_TXDB       = 00000023            UCB$B_OFFNDX     00000094            UCB$M_DX_WRITE = 00000008            

PR$_USP        = 00000003            UCB$B_OFFRTC     00000095            UCB$M_ECC      = 00000001            

PR$_WCSA       = 0000002C            UCB$B_REMSRV     0000003D            UCB$M_ERLOGIP  = 00000004            

PR$_WCSD       = 0000002D            UCB$B_SECTORS    0000003C            UCB$M_INT      = 00000002            

PRV$V_ALLSPOOL = 00000004            UCB$B_SLAVE      00000074            UCB$M_INTTYPE  = 00000080            

SYSACPFDT       - ACP FUNCTION DECISION TABLE ACTION ROUTINES    21-AUG-1978 20:16:58   VAX-11 MACRO X0.3-11               Page  18

SYMBOL TABLE                                                                                                                     (1)



UCB$M_JOB      = 00000001            UCB$W_DC         0000008E            VCB$L_BLOCKFL    00000000            

UCB$M_MOUNTING = 00000200            UCB$W_DEVBUFSIZ  0000003A            VCB$L_CUR_FID    00000024            

UCB$M_NOCNVRT  = 00000004            UCB$W_DEVSTS     0000005A            VCB$L_FCBBL      00000004            

UCB$M_NT_BFROVF= 00000004            UCB$W_DIRSEQ     00000088            VCB$L_FCBFL      00000000            

UCB$M_NT_BREAK = 00000020            UCB$W_DSTADDR    00000018            VCB$L_FREE       00000040            

UCB$M_NT_NAME  = 00000010            UCB$W_DX_BCR     000000A4            VCB$L_HOME2LBN   00000028            

UCB$M_ONLINE   = 00000010            UCB$W_EC1        00000090            VCB$L_HOMELBN    00000024            

UCB$M_POWER    = 00000020            UCB$W_EC2        00000092            VCB$L_IBMAPLBN   00000030            

UCB$M_PRMMBX   = 00000001            UCB$W_ERRCNT     00000072            VCB$L_IXHDR2LBN  0000002C            

UCB$M_TIM      = 00000001            UCB$W_FUNC       0000007E            VCB$L_MAXFILES   00000044            

UCB$M_TIMOUT   = 00000040            UCB$W_MB_SEED    FFFFFFFC            VCB$L_MVL        00000034            

UCB$M_TT_NOTIF = 00000004            UCB$W_MSGCNT     00000016            VCB$L_RVT        00000020            

UCB$M_TT_TIMO  = 00000002            UCB$W_MSGMAX     00000014            VCB$L_SBMAPLBN   00000034            

UCB$M_UNLOAD   = 00001000            UCB$W_NT_CHAN    0000007C            VCB$L_START_FID  00000028            

UCB$M_VALID    = 00000800            UCB$W_OFFSET     0000008A            VCB$L_ST_RECORD  00000030            

UCB$S_LNKPRI   = 00000002            UCB$W_REFC       00000050            VCB$L_USRLBLAST  00000044            

UCB$S_LTYPE    = 00000002            UCB$W_SIZE       00000008            VCB$L_VPBL       00000040            

UCB$T_PARTNER    0000000C            UCB$W_SRCADDR    0000001A            VCB$L_VPFL       0000003C            

UCB$V_BACKP    = 00000005            UCB$W_STS        00000058            VCB$L_WCB        00000038            

UCB$V_BSY      = 00000008            UCB$W_UNIT       00000048            VCB$M_CANCELIO = 00000020            

UCB$V_CANCEL   = 00000003            UCB$W_VPROT      0000001A            VCB$M_MUSTCLOSE= 00000040            

UCB$V_DEADMO   = 0000000A            UPBYTCNT         000002F8 R     01   VCB$M_NOWRITE  = 00000080            

UCB$V_DELMBX   = 00000001            UPTRANSCNT       00000317 R     01   VCB$M_WAIMOUVOL= 00000004            

UCB$V_DIAGBUF  = 00000001            VA$M_BYTE      = 000001FF            VCB$M_WAIREWIND= 00000008            

UCB$V_DX_WRITE = 00000003            VA$M_P1        = 40000000            VCB$M_WAIUSRLBL= 00000010            

UCB$V_ECC      = 00000000            VA$M_SYSTEM    = 80000000            VCB$T_QNAME      0000000C            

UCB$V_ERLOGIP  = 00000002            VA$M_VPG       = FFFFFE00            VCB$T_VOLNAME    00000014            

UCB$V_INT      = 00000001            VA$M_VPN       = 3FFFFE00            VCB$V_CANCELIO = 00000005            

UCB$V_INTTYPE  = 00000007            VA$S_BYTE      = 00000009            VCB$V_EBCDIC   = 00000005            

UCB$V_JOB      = 00000000            VA$S_VPG       = 00000017            VCB$V_EXTFID   = 00000005            

UCB$V_LNKPRI   = 00000006            VA$S_VPN       = 00000015            VCB$V_GROUP    = 00000006            

UCB$V_LTYPE    = 00000000            VA$V_BYTE      = 00000000            VCB$V_HOMBLKBAD= 00000002            

UCB$V_MOUNTING = 00000009            VA$V_P1        = 0000001E            VCB$V_IDXHDRBAD= 00000003            

UCB$V_MSGACK   = 00000004            VA$V_SYSTEM    = 0000001F            VCB$V_INTCHG   = 00000004            

UCB$V_MSGFLO   = 00000003            VA$V_VPG       = 00000009            VCB$V_LOGICEOVS= 00000001            

UCB$V_NOCNVRT  = 00000002            VA$V_VPN       = 00000009            VCB$V_MUSTCLOSE= 00000006            

UCB$V_NT_BFROVF= 00000002            VCB$B_CUR_RVN    0000002F            VCB$V_NOALLOC  = 00000004            

UCB$V_NT_BREAK = 00000005            VCB$B_EOFDELTA   0000004E            VCB$V_NOWRITE  = 00000007            

UCB$V_NT_NAME  = 00000004            VCB$B_IBMAPSIZE  00000038            VCB$V_OVRACC   = 00000001            

UCB$V_ONLINE   = 00000004            VCB$B_IBMAPVBN   0000003A            VCB$V_OVREXP   = 00000000            

UCB$V_POWER    = 00000005            VCB$B_LRU_LIM    00000049            VCB$V_OVRLBL   = 00000002            

UCB$V_PRMMBX   = 00000000            VCB$B_QNAMECNT   0000000B            VCB$V_OVRSETID = 00000003            

UCB$V_SEGFLO   = 00000002            VCB$B_RESFILES   0000004F            VCB$V_PARTFILE = 00000000            

UCB$V_TIM      = 00000000            VCB$B_SBMAPSIZE  00000039            VCB$V_STARFILE = 00000008            

UCB$V_TIMOUT   = 00000006            VCB$B_SBMAPVBN   0000003B            VCB$V_SYSTEM   = 00000007            

UCB$V_TT_NOTIF = 00000002            VCB$B_STATUS     0000000B            VCB$V_WAIMOUVOL= 00000002            

UCB$V_TT_TIMO  = 00000001            VCB$B_TM         0000002E            VCB$V_WAIREWIND= 00000003            

UCB$V_UNLOAD   = 0000000C            VCB$B_TYPE       0000000A            VCB$V_WAIUSRLBL= 00000004            

UCB$V_VALID    = 0000000B            VCB$B_WINDOW     00000048            VCB$V_WRITE_IF = 00000000            

UCB$W_BCNT       0000006E            VCB$C_COMLEN     00000024            VCB$V_WRITE_SM = 00000001            

UCB$W_BCR        00000096            VCB$C_LENGTH     00000054            VCB$W_CLUSTER    0000003C            

UCB$W_BOFF       0000006C            VCB$C_MRKLEN     0000000B            VCB$W_CUR_NUM    00000024            

UCB$W_BUFQUO     00000018            VCB$K_COMLEN     00000024            VCB$W_CUR_SEQ    00000026            

UCB$W_BYTESTOGO  0000003E            VCB$K_LENGTH     00000054            VCB$W_EXTEND     0000003E            

UCB$W_CHARGE     0000004A            VCB$K_MRKLEN     0000000B            VCB$W_FILEPROT   0000004A            

UCB$W_CYLINDERS  0000003E            VCB$L_AQB        00000010            VCB$W_MCOUNT     0000004C            

UCB$W_DA         0000008C            VCB$L_BLOCKBL    00000004            VCB$W_MODE       0000002C            

SYSACPFDT       - ACP FUNCTION DECISION TABLE ACTION ROUTINES    21-AUG-1978 20:16:58   VAX-11 MACRO X0.3-11               Page  19

SYMBOL TABLE                                                                                                                     (1)



VCB$W_RECORDSZ   00000050            

VCB$W_RVN        0000000E            

VCB$W_SIZE       00000008            

VCB$W_START_NUM  00000028            

VCB$W_START_SEQ  0000002A            

VCB$W_TRANS      0000000C            

WCB$B_ACCESS     0000000B            

WCB$B_TYPE       0000000A            

WCB$C_LENGTH     00000024            

WCB$C_MAP        00000024            

WCB$K_LENGTH     00000024            

WCB$K_MAP        00000024            

WCB$L_FCB        00000018            

WCB$L_LBN        00000002            

WCB$L_ORGUCB     00000010            

WCB$L_P1_LBN     00000026            

WCB$L_P2_LBN     0000002C            

WCB$L_PID        0000000C            

WCB$L_PREVLBN    FFFFFFFC            

WCB$L_RVT        0000001C            

WCB$L_STVBN      00000020            

WCB$L_WLBL       00000004            

WCB$L_WLFL       00000000            

WCB$M_NOTFCP   = 00000004            

WCB$M_READ     = 00000001            

WCB$M_SHRWCB   = 00000008            

WCB$M_WRITE    = 00000002            

WCB$V_DLOCK    = 00000001            

WCB$V_NOREAD   = 0000000A            

WCB$V_NOTFCP   = 00000002            

WCB$V_NOTRUNC  = 0000000B            

WCB$V_NOWRITE  = 00000000            

WCB$V_READ     = 00000000            

WCB$V_READCK   = 00000009            

WCB$V_SEQONLY  = 00000006            

WCB$V_SHRWCB   = 00000003            

WCB$V_SPOOL    = 00000004            

WCB$V_WRITE    = 00000001            

WCB$V_WRITEAC  = 00000008            

WCB$V_WRITECK  = 00000005            

WCB$W_ACON       00000014            

WCB$W_COUNT      00000000            

WCB$W_NMAP       00000016            

WCB$W_P1_COUNT   00000024            

WCB$W_P2_COUNT   0000002A            

WCB$W_PREVCOUNT  FFFFFFFA            

WCB$W_REFCNT     0000000E            

WCB$W_SIZE       00000008            

WRDESCR          00000332 R     01   

XQUOTA           000002D7 R     01   





PROGRAM SECTION SYNOPSIS



.  ABS  .        00000000      00     NOPIC   USR   CON   ABS   LCL NOSHR NOEXE NORD  NOWRT BYTE  

. BLANK .        00000355      01     NOPIC   USR   CON   REL   LCL NOSHR   EXE   RD    WRT BYTE  

$ABS$            FFFFFFFE      02     NOPIC   USR   CON   ABS   LCL NOSHR   EXE   RD    WRT BYTE  

SYSACPFDT       - ACP FUNCTION DECISION TABLE ACTION ROUTINES    21-AUG-1978 20:16:58   VAX-11 MACRO X0.3-11               Page  20

PROGRAM SECTION SYNOPSIS                                                                                                         (1)







THERE WERE NO ERRORS OR WARNINGS.

6648. BYTES LEFT IN FREE MEMORY POOL.

2792. BYTES OF RECLAIMED MEMORY.

OBJ$:SYSACPFDT,LIS$:SYSACPFDT/-SP=EXECML$/ML,SRC$:SYSACPFDT

13 MLB DIR RDS - 1086 GETS TO DEFINE 25 MACROS. 89 INTER. FILE WRITES. 

