RSXFILEIO       - RSX RSX11M FILES-ACP I/O MODULE                22-AUG-1978 05:07:46   VAX-11 MACRO X0.3-11               Page   0

TABLE OF CONTENTS   



   (2)      46  COMMON FILES I/O INITIATION

   (3)     171  IO.FNA AND IO.RNA - FIND AND REMOVE FILE

   (4)     261  IO.ENA - ENTER FILE NAME

   (5)     307  GTDID - GET DIRECTORY ID

   (6)     355  FINDDONE - I/O DONE ROUTINE FOR IO.FNA AND IO.R

   (7)     389  RETURNFILENAME - RETURN FILE NAME FOR IO.ENA,IO

   (8)     423  CONSTFILENAME - CONSTRUCT FILE NAME FORM FNB

   (9)     464  IO.ARC - IO.ACW - IO.ACE PROCESSORS

   (10)    513  IO.CRE  FUNCTION PROCESSOR

   (11)    565  CREDONE - I/O DONE FOR CREATE

   (12)    609  IO.EXT - EXTEND FILE

   (13)    650  IO.APC - ACP CONTROL

   (14)    686  IO.RAT - IO.WAT - IO.DAC - FUNCTION PROCESSORS

   (15)    739  IO.DEL - FUNCTION PROCESSOR

   (16)    790  GTFID - GET FILE ID

   (17)    838  CONSTATTRIBUTE	- CONSTRUCT ATTRIBUTE LIST

RSXFILEIO       - RSX RSX11M FILES-ACP I/O MODULE                22-AUG-1978 05:07:46   VAX-11 MACRO X0.3-11               Page   1

V06.0                                                                                                                            (1)



                                     0000     1 	.TITLE	RSXFILEIO - RSX RSX11M FILES-ACP I/O MODULE

                                     0000     2 	.IDENT	/V06.0/

                                     0000     3 ;

                                     0000     4 ; COPYRIGHT (C) 1978

                                     0000     5 ; DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.

                                     0000     6 ;

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

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

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

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

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

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

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

                                     0000    14 ;

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

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

                                     0000    17 ; EQUIPMENT CORPORATION.

                                     0000    18 ;

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

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

                                     0000    21 ;

                                     0000    22 ;++

                                     0000    23 ;

                                     0000    24 ; FACILITY:

                                     0000    25 ;

                                     0000    26 ;	VAX/VMS RSX-11M AME

                                     0000    27 ;

                                     0000    28 ; ABSTRACT:

                                     0000    29 ;

                                     0000    30 ; 	RSX11M FILES-ACP FILES I/O ROUTINES

                                     0000    31 ;

                                     0000    32 ; AUTHOR: R.HEINEN  1-FEB-77

                                     0000    33 ;--

                                     0000    34  

                                     0000    35 ;

                                     0000    36 ; EXTERNAL SYMBOLS

                                     0000    37 ;

                                     0000    38 	$RSXDEF			; DEFINE RSX SYMBOLS

                                     0000    39 	FCSBT$			; DEFINE FCS BITS

                                     0000    40 	NBOFF$	DEF$L		; DEFINE RSX FILE NAME BLOCK

                                     0000    41 	$FIBDEF			; DEFINE FIB BLOCK 

                                     0000    42 	

                                     0000    43  

RSXFILEIO       - RSX RSX11M FILES-ACP I/O MODULE                22-AUG-1978 05:07:46   VAX-11 MACRO X0.3-11               Page   2

V06.0                                                                                                                            (2)



                                 00000000    45 	.PSECT	RSXCODE,NOWRT,SHR,PIC

                                     0000    46 	.SBTTL	COMMON FILES I/O INITIATION

                                     0000    47  

                                     0000    48 	.ENABL	LSB

                                     0000    49 ;++

                                     0000    50 ; RSX$FILEIO - RSX RSX11M FILES I/O ROUTINE

                                     0000    51 ;

                                     0000    52 ; FUNCTIONAL DESCRIPTION:

                                     0000    53 ;

                                     0000    54 ; THIS ROUTINE IS THE ENTRY POINT FROM RSX$QIO FOR FILES I/O FUNCTIONS.

                                     0000    55 ; THE OBJECT IS TO SET UP THE REQUIRED QIO ARGUMENT LIST IN THE SCRATCH

                                     0000    56 ; MEMORY, SET UP THE RSX'S FILE I/O CONTROL BLOCK (FCB) AND SEPARATE THE

                                     0000    57 ; FLOW IN TO THE SPECIFIC FUNCTION HANDLERS.

                                     0000    58 ;

                                     0000    59 ; INPUTS:

                                     0000    60 ;

                                     0000    61 ;	R2 = ADDRESS OF THE QIO AST CONTEXT BLOCK

                                     0000    62 ;	R3 = MAJOR FUNCTION CODE

                                     0000    63 ;	R5 = ADDRESS OF THE OPERATION DPB

                                     0000    64 ;	R6 = IMAGE STACK

                                     0000    65 ;	R10 = ADDRESS OF THE IMAGE DATA BASE

                                     0000    66 ;	R11 = ADDRESS OF THE IMAGE

                                     0000    67 ;

                                     0000    68 ; OUTPUTS:

                                     0000    69 ;

                                     0000    70 ;	THIS ROUTINE PASSES CONTROL TO "RSX$ISSUQIO" OR

                                     0000    71 ;	"RSX$DLVRQIOAST" IN THE CASE OF AN ERROR.

                                     0000    72 ;

                                     0000    73 ;	R0 = STATUS OF THE OPERATION

                                     0000    74 ;

                                     0000    75 ;	R2,R10,R11 ARE PRESERVED.

                                     0000    76 ;--

                                     0000    77 RSX$FILEIO::				; COMMON ENTRY FOR FILES I/O

                                     0000    78 ;

                                     0000    79 ; SET UP THE FCB FOR THIS OPERATION

                                     0000    80 ;

                          58     DD  0000    81 	PUSHL	R8			; SAVE LUT ADDRESS

            57            52     D0  0002    82 	MOVL	R2,R7			; COPY QIO CONTEXT

            50       00D8 DA     0F  0005    83 	REMQUE	@I_FCBPOOL(R10),R0	; ADDRESS BLOCK IF ANY

                          07     1C  000A    84 	BVC	2$			; IF V-CLEAR THEN FOUND

            51         B4 8F     9A  000C    85 	MOVZBL	#FCB_SIZE,R1		; GET THE FCB SIZE

                          FFED'  30  0010    86 	BSBW	RSX$ALLOCATE		; ALLOCATE THE BLOCK

            58            50     D0  0013    87 2$:	MOVL	R0,R8			; COPY THE ADDRESS OF THE BLOCK

                                     0016    88 ;

                                     0016    89 ; SET UP FCB

                                     0016    90 ;

            80            65     B0  0016    91 	MOVW	(R5),(R0)+		; SAVE FID POINTER

            80         0A A5     B0  0019    92 	MOVW	10(R5),(R0)+		; SAVE FNB POINTER

                          2C     BB  001D    93 	PUSHR	#^M<R2,R3,R5>

            60            00     2C  001F    94 	MOVC5	#0,(R0),#0,#FCB_SIZE-4,(R0); CLEAR BLOCK

       00B0 8F            00         0022       

                          60         0026       

                          2C     BA  0027    95 	POPR	#^M<R2,R3,R5>

                                     0029    96 ;

                                     0029    97 ; SET UP QIO ARGS 

                                     0029    98 ;

       008C CA         4C A8     9E  0029    99 	MOVAB	FCB_FIB(R8),I_SCRATCH+100(R10); INSERT ADDRESS OF FIB

RSXFILEIO       - RSX RSX11M FILES-ACP I/O MODULE                22-AUG-1978 05:07:46   VAX-11 MACRO X0.3-11               Page   3

V06.0           COMMON FILES I/O INITIATION                                                                                      (2)



       0088 CA            2C     9A  002F   100 	MOVZBL	#FIB$C_LENGTH,I_SCRATCH+96(R10);

         44 AA       0088 CA     9E  0034   101 	MOVAB	I_SCRATCH+96(R10),I_SCRATCH+28(R10); 

         48 AA         0C A8     9E  003A   102 	MOVAB	FCB_FNAMEDESC(R8),I_SCRATCH+32(R10); INSERT ADDRESS OF NAME DESC.

         4C AA         06 A8     9E  003F   103 	MOVAB	FCB_RESULTDESC+2(R8),I_SCRATCH+36(R10); INSERT ADDRESS OF RESULT SIZE

         08 A8         30 A8     9E  0044   104 	MOVAB	FCB_RESULT(R8),FCB_RESULTDESC+4(R8); SET UP TARGET AREA

         04 A8            1C     9A  0049   105 	MOVZBL	#FCB_FIB-FCB_RESULT,FCB_RESULTDESC(R8);

         4C AA            02     C3  004D   106 	SUBL3	#2,I_SCRATCH+36(R10),I_SCRATCH+40(R10); COPY AS STRING DESC

                       50 AA         0051       

                                     0053   107 ;

                                     0053   108 ; COPY ACCESS CONTROL INFO

                                     0053   109 ;

         09 A5         80 8F     8B  0053   110 	BICB3	#^X080,9(R5),FIB$L_ACCTL+FCB_FIB(R8);

                       4C A8         0058       

                                     005A   111 ;

                                     005A   112 ; SET UP THE QIO CONTEXT BLOCK FOR A FILE OPERATION

                                     005A   113 ;

         1C A7            58     D0  005A   114 	MOVL	R8,QIO_SECONDBLK(R7)	; INSERT ADDRESS

         1A A7            00     E2  005E   115 	BBSS	#QIOV_FILES,QIO_FLAGS(R7),10$; SET TYPE

                          00         0062       

                                     0063   116 10$:

                                     0063   117 ;

                                     0063   118 ; CASE TO THE FUNCTION PROCESSOR

                                     0063   119 ;

                       90'AF     9F  0063   120 	PUSHAB	B^50$			; SET UP FOR COMMON RETURN

                                     0066   121 	CASE	R3,LIMIT=#9,<-

                                     0066   122 		FNAINI,-		; FIND FILE

                                     0066   123 		IFC,-			; ILLEGAL FUNCTION

                                     0066   124 		RNAINI,-		; REMOVE FILE

                                     0066   125 		ENAINI,-		; ENTER FILE

                                     0066   126 		ACRINI,-		; ACCESS FILE FOR READ

                                     0066   127 		ACWINI,-		; ACCESS FILE FOR WRITE

                                     0066   128 		ACEINI,-		; ACCESS FILE FOR EXTEND

                                     0066   129 		DACINI,-		; DEACCESS FILE

                                     0066   130 		IFC,-			; READ VIRTUAL

                                     0066   131 		IFC,-			; WRITE VIRTUAL

                                     0066   132 		EXTINI,-		; EXTEND FILE

                                     0066   133 		CREINI,-		; CREATE FILE AND ACCESS

                                     0066   134 		DELINI,-		; DELETE FILE

                                     0066   135 		RATINI,-		; READ ATTRIBUTES

                                     0066   136 		WATINI,-		; WRITE ATTRIBUTES

                                     0066   137 		APCINI,-		; ACP CONTROL

                                     0066   138 		>

                                     008A   139 ;

                                     008A   140 ; ILLEGAL FUNCTION

                                     008A   141 ;

                                     008A   142 IFC:					; THIS IS A RSX BUG

            50       0000'8F     3C  008A   143 	MOVZWL	#SS$_ILLIOFUNC,R0	; SET UP ERROR CONDITION

                                 05  008F   144 	RSB				; RETURN

                                     0090   145 ;

                                     0090   146 ; RETURN FROM FUNCTION PROCESSORS COMES HERE

                                     0090   147 ;

                                     0090   148 ;	R0 = STATUS OF FUNCTION

                                     0090   149 ;

                                     0090   150 ; IF R0 = SS$_NORMAL THEN THE I/O IS ISSUED. IF NOT THEN THE I/O IS

                                     0090   151 ; COMPLETED VIA "RSX$DLVRQIOAST".

                                     0090   152 ;

            52            57     D0  0090   153 50$:	MOVL	R7,R2			; RESTORE ADDRESS OF THE CONTEXT BLOCK

RSXFILEIO       - RSX RSX11M FILES-ACP I/O MODULE                22-AUG-1978 05:07:46   VAX-11 MACRO X0.3-11               Page   4

V06.0           COMMON FILES I/O INITIATION                                                                                      (2)



                          58   8ED0  0093   154 	POPL	R8			; RESTORE LUT ADDRESS

            07            50     E9  0096   155 	BLBC	R0,60$			; BR IF ERROR IN FUNCTION PROCESSOR

                                     0099   156 ;

                                     0099   157 ; ISSUE QIO

                                     0099   158 ;

                          FF64'  31  0099   159 	BRW	RSX$ISSUQIO		;

                                     009C   160 ;

                                     009C   161 ; NOOP FUNCTION

                                     009C   162 ;

            50         00'8F     9A  009C   163 55$:	MOVZBL	#SS$_NORMAL,R0		; SET TO NOOP FUNCTION

                                     00A0   164 ;

                                     00A0   165 ; ERROR - DELIVER STATUS VIA AST

                                     00A0   166 ;

                          FF5D'  31  00A0   167 60$:	BRW	RSX$DLVRQIOAST		;

                                     00A3   168  

                                     00A3   169 	.DSABL	LSB

RSXFILEIO       - RSX RSX11M FILES-ACP I/O MODULE                22-AUG-1978 05:07:46   VAX-11 MACRO X0.3-11               Page   5

V06.0           IO.FNA AND IO.RNA - FIND AND REMOVE FILE                                                                         (3)



                                     00A3   171 	.SBTTL IO.FNA AND IO.RNA - FIND AND REMOVE FILE

                                     00A3   172  

                                     00A3   173 	.ENABL	LSB

                                     00A3   174 ;++

                                     00A3   175 ; FNAINI - IO.FNA - FIND FILE NAME INITIAL ROUTINE

                                     00A3   176 ; RNAINI - IO.RNA - REMOVE FILE NAME INITIAL ROUTINE

                                     00A3   177 ;

                                     00A3   178 ; FUNCTIONAL DESCRIPTION:

                                     00A3   179 ;

                                     00A3   180 ; IO.FNA - FIND FILE NAME CAUSES AN IO$_ACCESS.

                                     00A3   181 ; IO.RNA - REMOVE FILE NAME CAUSES AN IO$_DELETE.

                                     00A3   182 ;

                                     00A3   183 ; THE RSX DPB CONTAINS ONLY THE ADDRESS OF THE FILE NAME BLOCK.

                                     00A3   184 ; THE DIRECTORY ID AND FILE NAME ARE EXTRACTED AND PASSED IN THE FIB.

                                     00A3   185 ; 

                                     00A3   186 ;	FIB$V_ALLNAME <-- NB.SNM

                                     00A3   187 ;	FIB$V_ALLTYP  <-- NB.STP

                                     00A3   188 ;	FIB$V_ALLVER  <-- NB.SVR

                                     00A3   189 ;	FIB$V_WILD    <-- NB.SVR!NB.SNM!NB.STP

                                     00A3   190 ;

                                     00A3   191 ; THE FILE ID AND RESULTANT FILE NAME ARE RETURNED TO THE RSX FNB.

                                     00A3   192 ;

                                     00A3   193 ; INPUTS:

                                     00A3   194 ;

                                     00A3   195 ;	R5 = ADDRESS OF THE OPERATION DPB

                                     00A3   196 ;	R6 = ADDRESS OF IMAGE STACK

                                     00A3   197 ;	R7 = ADDRESS OF THE QIO CONTEXT BLOCK

                                     00A3   198 ;	R8 = ADDRESS OF THE FILE I/O OPERATION BLOCK (FCB)

                                     00A3   199 ;	R10 = ADDRESS OF THE IMAGE IMPURE DATA BASE

                                     00A3   200 ;	R11 = ADDRESS OF THE IMAGE

                                     00A3   201 ;

                                     00A3   202 ; OUTPUTS:

                                     00A3   203 ;

                                     00A3   204 ;	R0 = STATUS OF THE FUNCTION DE-CODE

                                     00A3   205 ;

                                     00A3   206 ;	R6,R8,R10,R11 ARE PRESERVED.

                                     00A3   207 ;--

                                     00A3   208 FNAINI:					; FIND FILE NAME

         34 AA       0000'8F     3C  00A3   209 	MOVZWL	#IO$_ACCESS,I_SCRATCH+12(R10); INSERT PROPER FUNCTION

                          06     11  00A9   210 	BRB	5$			; CONTINUE IN COMMON

                                     00AB   211 RNAINI:					; REMOVE FILE NAME

         34 AA       0000'8F     3C  00AB   212 	MOVZWL	#IO$_DELETE,I_SCRATCH+12(R10); INSERT PROPER FUNCTION

                                     00B1   213 ;

                                     00B1   214 ; COMMON ROUTINE FOR IO.FNA AND IO.RNA

                                     00B1   215 ;

                          0088   30  00B1   216 5$:	BSBW	GTDID			; GET DIRECTORY ID

         5C A8         12 A4     3C  00B4   217 	MOVZWL	N.NEXT(R4),FIB$L_WCC+FCB_FIB(R8); INSERT WILD CARD CONTEXT

                                     00B9   218 ;

                                     00B9   219 ; SET UP I/O DONE POST PROCESSING ROUTINE

                                     00B9   220 ;

         78 A8       0164'CF     9E  00B9   221 	MOVAB	W^FINDDONE,FCB_PC(R8)	;

                                     00BF   222 ;

                                     00BF   223 ; SET UP PROPER ACCESS CONTROL BITS IN FIB$_NMCTL

                                     00BF   224 ;

                                 8B  00BF   225 	BICB3	#^C<NB.STP!NB.SNM!NB.SVR>,-

         10 A4         C7 8F         00C0   226 		N.STAT(R4),FIB$W_NMCTL+FCB_FIB(R8); SET CONTROL BITS

                       60 A8         00C4       

RSXFILEIO       - RSX RSX11M FILES-ACP I/O MODULE                22-AUG-1978 05:07:46   VAX-11 MACRO X0.3-11               Page   6

V06.0           IO.FNA AND IO.RNA - FIND AND REMOVE FILE                                                                         (3)



                          05     13  00C6   227 	BEQL	25$			; BR IF NONE

         60 A8            08     E2  00C8   228 	BBSS	#FIB$V_WILD,FIB$W_NMCTL+FCB_FIB(R8),25$

                          00         00CC       

                                     00CD   229 25$:

         10 A4       1000 8F     B3  00CD   230 	BITW	#^X01000,N.STAT(R4)	; LVR SET?

                          49     13  00D3   231 	BEQL	50$			; IF EQL THEN NO WILDCARD

                     00F0 8F     BB  00D5   232 	PUSHR	#^M<R4,R5,R6,R7>	;

            56         30 A8     9E  00D9   233 	MOVAB	FCB_RESULT(R8),R6	; ADDRESS PLACE TO PUT FILENAME

            57            56     D0  00DD   234 	MOVL	R6,R7			; COPY ADDRESS

            54         06 A4     9E  00E0   235 	MOVAB	N.FNAM(R4),R4		; ADDRESS FNB NAME

                          FF19'  30  00E4   236 	BSBW	RSX$R50CVT3		; CONVERT FILE NAME

            87            2E     90  00E7   237 	MOVB	#^A/./,(R7)+		; INSERT .

                          FF13'  30  00EA   238 	BSBW	RSX$R50CVT1		; CONVERT TYPE

            87            3B     90  00ED   239 	MOVB	#^A/;/,(R7)+		; INSERT SEMI COLON

                          30     BA  00F0   240 	POPR	#^M<R4,R5>		; RESTORE SOME REGISTERS

            51         04 A4     32  00F2   241 	CVTWL	N.FID+4(R4),R1		; GET VERSION NUMBER

                          06     18  00F6   242 	BGEQ	30$			; IF GEQ THEN PLUS

            87            2D     90  00F8   243 	MOVB	#^A/-/,(R7)+		; INSERT MUNIS SIGN

            51            51     CE  00FB   244 	MNEGL	R1,R1			; CONVERT TO POSITIVE

                          52     D4  00FE   245 30$:	CLRL	R2			; RESET ACCUM

            53         05 A7     9E  0100   246 	MOVAB	5(R7),R3		; ADDRESS STRING END

            53            56     C3  0104   247 	SUBL3	R6,R3,R0

                          50         0107       

         4C BA            50     B0  0108   248 	MOVW	R0,@I_SCRATCH+36(R10)	; SAVE STRING SIZE

            51            0A     7B  010C   249 35$:	EDIV	#10,R1,R1,R0		;

            50            51         010F       

            50            30     81  0111   250 	ADDB3	#^A/0/,R0,-(R3)		; INSERT CHARACTER

                          73         0114       

            57            53     D1  0115   251 	CMPL	R3,R7			; CONVERTED ENOUGH?

                          F2     12  0118   252 	BNEQ	35$			; IF NEQ THEN NO

                     00C0 8F     BA  011A   253 	POPR	#^M<R6,R7>		;

                                     011E   254 ;

                                     011E   255 ; CONVERT FNB FILE NAME TO ASCII IN FIB

                                     011E   256 ;

                          0078   31  011E   257 50$:	BRW	CONSTFILENAME		; CONSTRUCT FILE NAME AND ISSUE QIO

                                     0121   258  

                                     0121   259 	.DSABL 	LSB

RSXFILEIO       - RSX RSX11M FILES-ACP I/O MODULE                22-AUG-1978 05:07:46   VAX-11 MACRO X0.3-11               Page   7

V06.0           IO.ENA - ENTER FILE NAME                                                                                         (4)



                                     0121   261 	.SBTTL	IO.ENA - ENTER FILE NAME

                                     0121   262 ;++

                                     0121   263 ; ENAINI - IO.ENA - ENTER FILE NAME INITIAL ROUTINE

                                     0121   264 ;

                                     0121   265 ; FUNCTIONAL DESCRIPTION:

                                     0121   266 ;

                                     0121   267 ; IO.ENA CAUSES A IO$_CREATE.

                                     0121   268 ;

                                     0121   269 ; THE RSX DPB PROVIDES AN FNB ONLY AND THE FILE ID AND DIRECTORY ID

                                     0121   270 ; ARE COPIED TO THE FIB. THEN THE FILE NAME IS CONSTRUCTED.

                                     0121   271 ;

                                     0121   272 ; NO CONTROL BITS ARE SET.

                                     0121   273 ;

                                     0121   274 ; THE RESULTANT STRING IS GIVE BACK TO THE FNB ON I/O DONE.

                                     0121   275 ;

                                     0121   276 ; INPUTS:

                                     0121   277 ;

                                     0121   278 ;	R6 = ADDRESS OF THE IMAGE STACK

                                     0121   279 ;	R7 = ADDRESS OF THE QIO AST CONTEXT

                                     0121   280 ;	R8 = ADDRESS OF THE FILE OPERATION CONTROL BLOCK (FCB)

                                     0121   281 ;	R10 = ADDRESS OF THE IMAGE IMPURE DATA BASE 

                                     0121   282 ;	R11 = ADDRESS OF THE IMAGE

                                     0121   283 ;

                                     0121   284 ; OUTPUTS:

                                     0121   285 ;

                                     0121   286 ;	R0 = STATUS OF THE OPERATION

                                     0121   287 ;

                                     0121   288 ;	R6,R7,R8,R10,R11 ARE PRESERVED.

                                     0121   289 ;--

                                     0121   290 ENAINI:					; ENTER FILE NAME

         34 AA       0000'8F     3C  0121   291 	MOVZWL	#IO$_CREATE,I_SCRATCH+12(R10); SET PROPER FUNCTION

                                     0127   292 ;

                                     0127   293 ; GET THE DIRECTORY ID

                                     0127   294 ;

                          0012   30  0127   295 	BSBW	GTDID			;

                                     012A   296 ;

                                     012A   297 ; SET UP I/O DONE POST PROCESSING

                                     012A   298 ;

         78 A8       017C'CF     9E  012A   299 	MOVAB	W^RETURNFILENAME,FCB_PC(R8);

                                     0130   300 ;

                                     0130   301 ; COPY FILE ID

                                     0130   302 ;

         50 A8            64     B0  0130   303 	MOVW	N.FID(R4),FIB$W_FID+FCB_FIB(R8);

         52 A8         02 A4     D0  0134   304 	MOVL	N.FID+2(R4),FIB$W_FID+FCB_FIB+2(R8)

                          005D   31  0139   305 	BRW	CONSTFILENAME		; CONSTRUCT THE FILE NAME AND GO

RSXFILEIO       - RSX RSX11M FILES-ACP I/O MODULE                22-AUG-1978 05:07:46   VAX-11 MACRO X0.3-11               Page   8

V06.0           GTDID - GET DIRECTORY ID                                                                                         (5)



                                     013C   307 	.SBTTL	GTDID - GET DIRECTORY ID

                                     013C   308 ;++

                                     013C   309 ; GTDID - GET THE DIRECTORY ID FROM THE FILE NAME BLOCK

                                     013C   310 ;

                                     013C   311 ; FUNCTIONAL DESCRIPTION:

                                     013C   312 ;

                                     013C   313 ; THE ROUTINE VALIDATES THE FNB AND COPIES THE DIRECTORY ID TO THE FCB.

                                     013C   314 ; IF THE FNB IS NOT PRESENT OR NOT ACCESSIBLE THEN AN ERROR IS RETURNED

                                     013C   315 ; TO THE CALLER'S CALLER.

                                     013C   316 ;

                                     013C   317 ; INPUTS:

                                     013C   318 ;

                                     013C   319 ;	R5 = ADDRESS OF THE DPB

                                     013C   320 ;	R6 = ADDRESS OF THE IMAGE STACK

                                     013C   321 ;	R7 = ADDRESS OF THE QIO CONTEXT BLOCK

                                     013C   322 ;	R8 = ADDRESS OF THE FCB

                                     013C   323 ;	R10 = ADDRESS OF THE IMAGE IMPURE DATA BASE

                                     013C   324 ;	R11 = ADDRESS OF THE IMAGE

                                     013C   325 ;

                                     013C   326 ; OUTPUTS:

                                     013C   327 ;

                                     013C   328 ;	R0 = STATUS OF THE OPERATION - IF FAILURE THEN RETURN

                                     013C   329 ;				       IS TO THE CALLER'S CALLER.

                                     013C   330 ;

                                     013C   331 ;	R5,R6,R7,R8,R10,R11 ARE PRESERVED.

                                     013C   332 ;--

                                     013C   333 GTDID:					; COPY THE DIRECTORY ID

            50       0000'8F     3C  013C   334 	MOVZWL	#SS$_BADPARAM,R0	; ASSUME NO FNB

            54         0A A5     3C  0141   335 	MOVZWL	10(R5),R4		; GET THE ADDRESS OF THE FNB

                          1A     13  0145   336 	BEQL	20$			; IF EQL THEN NONE AND ERROR

                                     0147   337 ;

                                     0147   338 ; CHECK ACCESS TO THE FNB

                                     0147   339 ;

            50       0000'8F     3C  0147   340 	MOVZWL	#SS$_ACCVIO,R0		; ASSUME ACCESS VIOLATION

                                     014C   341 	IFNORD	#N.UNIT+2,(R4),20$	; READABLE?

                                     0152   342 ;

                                     0152   343 ; COPY DIRECTORY ID

                                     0152   344 ;

         56 A8         14 A4     B0  0152   345 	MOVW	N.DID(R4),FIB$W_DID+FCB_FIB(R8);

         58 A8         16 A4     D0  0157   346 	MOVL	N.DID+2(R4),FIB$W_DID+2+FCB_FIB(R8);

            50         00'8F     9A  015C   347 	MOVZBL	#SS$_NORMAL,R0		; SET SUCCESS

                                 05  0160   348 	RSB

                                     0161   349 ;

                                     0161   350 ; ERROR RETURN

                                     0161   351 ;

                          8E     D5  0161   352 20$:	TSTL	(SP)+			; POP CALLER'S RETURN

                                 05  0163   353 	RSB				; RETURN

RSXFILEIO       - RSX RSX11M FILES-ACP I/O MODULE                22-AUG-1978 05:07:46   VAX-11 MACRO X0.3-11               Page   9

V06.0           FINDDONE - I/O DONE ROUTINE FOR IO.FNA AND IO.R                                                                  (6)



                                     0164   355 	.SBTTL	FINDDONE - I/O DONE ROUTINE FOR IO.FNA AND IO.RNA

                                     0164   356 ;++

                                     0164   357 ; FINDDONE - I/O DONE ROUTINE FOR IO.FNA AND IO.RNA

                                     0164   358 ;

                                     0164   359 ; FUNCTIONAL DESCRIPTION:

                                     0164   360 ;

                                     0164   361 ; THIS ROUTINE IS ENTERED ON SUCCESSFUL COMPLETION OF A IO.FNA OR IO.RNA.

                                     0164   362 ; IT IS ENTERED FROM THE I/O DONE AST SERVICE ROUTINE.

                                     0164   363 ; THE ACTION IS TO RETURN THE FILE ID AND THE RESULTANT FILE NAME.

                                     0164   364 ;

                                     0164   365 ; INPUTS:

                                     0164   366 ;

                                     0164   367 ;	R2 = ADDRESS OF THE QIO AST CONTEXT BLOCK

                                     0164   368 ;	R3 = ADDRESS OF THE FCB FOR THIS OPERATION

                                     0164   369 ;	R10 = ADDRESS OF THE IMAGE IMPURE DATA BASE

                                     0164   370 ;	R11 = ADDRESS OF THE IMAGE

                                     0164   371 ;

                                     0164   372 ; OUTPUTS:

                                     0164   373 ;

                                     0164   374 ;	R2,R3,R10,R11 ARE PRESERVED.

                                     0164   375 ;--

                                     0164   376 FINDDONE:				;

                                     0164   377 ;

                                     0164   378 ; RETURN THE FILE ID IN THE FILE NAME BLOCK

                                     0164   379 ;

            54         02 A3     3C  0164   380 	MOVZWL	FCB_FNB(R3),R4		; GET THE ADDRESS OF THE FILE NAME BLOCK

                                     0168   381 	IFNOWRT	#6,(R4),RETURNFILENAME	; SKIP IF NO ACCESS

            64         50 A3     D0  016E   382 	MOVL	FCB_FIB+FIB$W_FID(R3),(R4); RETURN FILE ID

         04 A4         54 A3     B0  0172   383 	MOVW	FCB_FIB+FIB$W_FID+4(R3),4(R4);

         12 A4         5C A3     B0  0177   384 	MOVW	FIB$L_WCC+FCB_FIB(R3),N.NEXT(R4); RETURN WILD CARD CONTEXT

                                     017C   385 ;

                                     017C   386 ; RETURN THE FILE NAME

                                     017C   387 ;

RSXFILEIO       - RSX RSX11M FILES-ACP I/O MODULE                22-AUG-1978 05:07:46   VAX-11 MACRO X0.3-11               Page  10

V06.0           RETURNFILENAME - RETURN FILE NAME FOR IO.ENA,IO                                                                  (7)



                                     017C   389 	.SBTTL	RETURNFILENAME - RETURN FILE NAME FOR IO.ENA,IO.FNA,IO.RNA

                                     017C   390 ;++

                                     017C   391 ; RETURNFILENAME - RETURN FILE NAME

                                     017C   392 ;

                                     017C   393 ; FUNCTIONAL DESCRIPTION:

                                     017C   394 ;

                                     017C   395 ; THIS ROUTINE IS ENTERED ON I/O DONE FOR IO.FNA,IO.RNA AND IO.ENA

                                     017C   396 ; IF THE OPERATION WAS SUCCESSFUL. THE ACTION IS TO BUILD THE RAD50

                                     017C   397 ; FILE NAME FROM THE RESULTANT FILE NAME.

                                     017C   398 ;

                                     017C   399 ; INPUTS:

                                     017C   400 ;

                                     017C   401 ;	R2 = ADDRESS OF THE QIO AST CONTEXT BLOCK

                                     017C   402 ;	R3 = ADDRESS OF THE OPERATION FCB

                                     017C   403 ;	R10 = ADDRESS OF THE IMAGE IMPURE DATA BASE

                                     017C   404 ;	R11 = ADDRESS OF THE IMAGE

                                     017C   405 ;

                                     017C   406 ; OUTPUTS:

                                     017C   407 ;

                                     017C   408 ;	NONE

                                     017C   409 ;

                                     017C   410 ;	R2,R3,R10,R11 ARE PRESERVED.

                                     017C   411 ;--

                                     017C   412 RETURNFILENAME:				; RETURN FILE NAME

            54         02 A3     3C  017C   413 	MOVZWL	FCB_FNB(R3),R4		; GET ADDRESS OF FNB

                          16     13  0180   414 	BEQL	50$			; IF NONE THEN DONE

                                     0182   415 	IFNOWRT	#N.UNIT+2,(R4),50$	; IF ACCESS VIOLATION THEN DONE

            50         06 A3     3C  0188   416 	MOVZWL	FCB_RESULTDESC+2(R3),R0	; GET SIZE

                          0A     13  018C   417 	BEQL	50$			; IF EQL THEN DONE

            57         08 A3     D0  018E   418 	MOVL	FCB_RESULTDESC+4(R3),R7	; GET ADDRESS

                          6740   94  0192   419 	CLRB	(R7)[R0]		; SET END BYTE

                          FE68'  30  0195   420 	BSBW	RSX$RETFNAME		; RETURN FILENAME TO FNB

                                 05  0198   421 50$:	RSB				; RETURN

RSXFILEIO       - RSX RSX11M FILES-ACP I/O MODULE                22-AUG-1978 05:07:46   VAX-11 MACRO X0.3-11               Page  11

V06.0           CONSTFILENAME - CONSTRUCT FILE NAME FORM FNB                                                                     (8)



                                     0199   423 	.SBTTL	CONSTFILENAME - CONSTRUCT FILE NAME FORM FNB

                                     0199   424 ;++

                                     0199   425 ; CONSTFILENAME - BUILD AN ASCII FILE NAME FROM THE RSX FNB

                                     0199   426 ;

                                     0199   427 ; FUNCTIONAL DESCRIPTION:

                                     0199   428 ;

                                     0199   429 ; THIS ROUTINE IS THE FINAL PROCESSING FOR IO.FNA,IO.RNA AND IO.ENA.

                                     0199   430 ; IT CONVERTS AN RSX FNB FILE NAME STORED IN RAD50 TO

                                     0199   431 ; AN ASCII FILE NAME STRING. THE STRING IS STORED IN THE CURRENT

                                     0199   432 ; FCB.

                                     0199   433 ;

                                     0199   434 ; INPUTS:

                                     0199   435 ;

                                     0199   436 ;	R4 = ADDRESS OF THE FNB

                                     0199   437 ;	R5 = ADDRESS OF THE CURRENT QIO DPB

                                     0199   438 ;	R7 = ADDRESS OF THE QIO AST CONTEXT BLOCK

                                     0199   439 ;	R8 = ADDRESS OF THE FCB

                                     0199   440 ;	R10 = ADDRESS OF THE IMAGE IMPURE DATA AREA

                                     0199   441 ;	R11 = ADDRESS OF THE IMAGE

                                     0199   442 ;

                                     0199   443 ; OUTPUTS:

                                     0199   444 ;

                                     0199   445 ;	R0 = STATUS OF THE OPERATION

                                     0199   446 ;

                                     0199   447 ;	SS$_NORMAL

                                     0199   448 ;

                                     0199   449 ;	R6,R7,R8,R10,R11 ARE PRESERVED.

                                     0199   450 ;--

                                     0199   451 CONSTFILENAME:				; CONSTRUCT FILE NAME FROM FNB

                          57     DD  0199   452 	PUSHL	R7 			; SAVE QIO CONTEXT ADDRESS

            57         14 A8     9E  019B   453 	MOVAB	FCB_FNAME(R8),R7	; ADDRESS THE TARGET AREA

         10 A8            57     D0  019F   454 	MOVL	R7,FCB_FNAMEDESC+4(R8)	;

                          FE5A'  30  01A3   455 	BSBW	RSX$BLDFNAME		; BUILD FILE NAME

         0C A8            50     D0  01A6   456 	MOVL	R0,FCB_FNAMEDESC(R8)	; INSERT NAME

                                     01AA   457 ;

                                     01AA   458 ; ENTER COMMON FILES I/O CODE FOR QIO

                                     01AA   459 ;

            50       0000'8F     3C  01AA   460 	MOVZWL	#SS$_NORMAL,R0		; SET SUCCESS STATUS

                     0080 8F     BA  01AF   461 	POPR	#^M<R7>			; RESTORE QIO CONTEXT ADDRESS

                                 05  01B3   462 	RSB				; AND RETURN

RSXFILEIO       - RSX RSX11M FILES-ACP I/O MODULE                22-AUG-1978 05:07:46   VAX-11 MACRO X0.3-11               Page  12

V06.0           IO.ARC - IO.ACW - IO.ACE PROCESSORS                                                                              (9)



                                     01B4   464 	.SBTTL IO.ARC - IO.ACW - IO.ACE PROCESSORS

                                     01B4   465 ;++

                                     01B4   466 ; ACRINI - ACCESS FOR READ

                                     01B4   467 ; ACWINI - ACCESS FOR WRITE

                                     01B4   468 ; ACEINI - ACCESS FOR EXTEND

                                     01B4   469 ;

                                     01B4   470 ; FUNCTIONAL DESCRIPTION:

                                     01B4   471 ;

                                     01B4   472 ; IO.ACR CAUSES AN IO$_ACCESS!IO$M_ACCESS.

                                     01B4   473 ;

                                     01B4   474 ; IO.ACE AND IO.ACW CAUSE AN IO$_ACCESS!IO$M_ACCESS WITH FIB$V_WRITE=1.

                                     01B4   475 ;

                                     01B4   476 ; FIB$W_FID <-- RSX DPB PARAM #1

                                     01B4   477 ; FIB$B_WSIZE <-- RSX DPB PARAM #5

                                     01B4   478 ; ATTRIBUTE LIST CONSTRUCTED FROM RSX PARAM #2.

                                     01B4   479 ;

                                     01B4   480 ; INPUTS:

                                     01B4   481 ;

                                     01B4   482 ;	R5 = ADDRESS OF THE OPERATION DPB

                                     01B4   483 ;	R6 = ADDRESS OF THE IMAGE STACK

                                     01B4   484 ;	R7 = ADDRESS OF THE QIO AST CONTEXT

                                     01B4   485 ;	R8 = ADDRESS OF THE FILE OPERATION CONTROL BLOCK (FCB)

                                     01B4   486 ;	R10 = ADDRESS OF THE IMAGE IMPURE DATA BASE

                                     01B4   487 ;	R11 = ADDRESS OF THE IMAGE

                                     01B4   488 ;

                                     01B4   489 ; OUTPUTS:

                                     01B4   490 ;

                                     01B4   491 ;	R0 = STATUS OF THE OPERATION

                                     01B4   492 ;

                                     01B4   493 ;	R5,R6,R7,R8,R10,R11 ARE PRESERVED.

                                     01B4   494 ;--

                                     01B4   495 ACWINI:					; ACCESS FOR WRITE

                                     01B4   496 ACEINI:					; ACCESS FOR EXTEND

         4C A8            08     E2  01B4   497 	BBSS	#FIB$V_WRITE,FIB$L_ACCTL+FCB_FIB(R8),ACRINI; SET CONTROL BIT

                          00         01B8       

                                     01B9   498 ACRINI:					; ACCESS FOR READ

         34 AA       0000'8F     3C  01B9   499 	MOVZWL	#IO$_ACCESS!IO$M_ACCESS,I_SCRATCH+12(R10); SET FUNCTION

                                     01BF   500 ;

                                     01BF   501 ; COPY FILE ID FROM RSX FID

                                     01BF   502 ;

                          0102   30  01BF   503 	BSBW	GTFID			; GET THE FILE ID

                                     01C2   504 ;

                                     01C2   505 ; SET UP WINDOW SIZE

                                     01C2   506 ;

         4F A8         08 A5     90  01C2   507 	MOVB	8(R5),FIB$B_WSIZE+FCB_FIB(R8)	; 

                                     01C7   508 ;

                                     01C7   509 ; BUILD ATTRIBUTE LIST

                                     01C7   510 ;

                          0120   31  01C7   511 	BRW	CONSTATTRIBUTE		; BUILD LIST

RSXFILEIO       - RSX RSX11M FILES-ACP I/O MODULE                22-AUG-1978 05:07:46   VAX-11 MACRO X0.3-11               Page  13

V06.0           IO.CRE  FUNCTION PROCESSOR                                                                                      (10)



                                     01CA   513 	.SBTTL	IO.CRE  FUNCTION PROCESSOR

                                     01CA   514 ;++

                                     01CA   515 ; CREINI - IO.CRE - CREATE FILE

                                     01CA   516 ;

                                     01CA   517 ; FUNCTIONAL DESCRIPTION:

                                     01CA   518 ;

                                     01CA   519 ; IO.CRE CAUSES AN IO$_CREATE!IO$M_CREATE.

                                     01CA   520 ;

                                     01CA   521 ; FIB$W__FID <-- RSX DPB #1

                                     01CA   522 ; FIB$L_EXSZ <-- RSX DPB #3,4

                                     01CA   523 ; 

                                     01CA   524 ; ATTRIBUTE LIST CONSTRUCTED FROM RSX DPB #2.

                                     01CA   525 ;

                                     01CA   526 ; INPUTS:

                                     01CA   527 ;

                                     01CA   528 ;	R5 = ADDRESS OF THE OPERATION DPB

                                     01CA   529 ;	R6 = ADDRESS OF THE IMAGE STACK

                                     01CA   530 ;	R7 = ADDRESS OF TH QIO AST CONTEXT 

                                     01CA   531 ;	R8 = ADDRESS OF THE FILE I/O CONTROL BLOCK (FCB)

                                     01CA   532 ;	R10 = ADDRESS OF THE IMAGE IMPURE DATA BASE

                                     01CA   533 ;	R11 = ADDRESS OF THE IMAGE

                                     01CA   534 ;

                                     01CA   535 ; OUTPUTS:

                                     01CA   536 ;

                                     01CA   537 ;	R0 = STATUS OF THE OPERATION

                                     01CA   538 ;

                                     01CA   539 ;	SS$_NORMAL

                                     01CA   540 ;	SS$_ACCVIO - ACCESS VIOLATION ON FID OR ATTRIBUTE LIST

                                     01CA   541 ;

                                     01CA   542 ;	R5,R6,R7,R8,R10,R11 ARE PRESERVED.

                                     01CA   543 ;--

                                     01CA   544 CREINI:					; CREATE FILE

         34 AA       0000'8F     3C  01CA   545 	MOVZWL	#IO$_CREATE!IO$M_CREATE,I_SCRATCH+12(R10); SET FUNCTION CODE

                                     01D0   546 ;

                                     01D0   547 ; SET UP I/O DONE COMPLETION ROUTINE

                                     01D0   548 ;

         78 A8         01'AF     9E  01D0   549 	MOVAB	B^CREDONE,FCB_PC(R8)	; I/O DONE GOES THERE

                                     01D5   550 ;

                                     01D5   551 ; COPY EXTEND INFORMATION

                                     01D5   552 ;

         05 A5       FF00 8F     AB  01D5   553 	BICW3	#^X0FF00,5(R5),FIB$W_EXCTL+FCB_FIB(R8); SET CONTROL BITS

                       62 A8         01DB       

         64 A8         06 A5     B0  01DD   554 	MOVW	6(R5),FIB$L_EXSZ+FCB_FIB(R8); INSERT EXTEND SIZE

         66 A8         04 A5     9B  01E2   555 	MOVZBW	4(R5),FIB$L_EXSZ+2+FCB_FIB(R8);

                                     01E7   556 ;

                                     01E7   557 ; SET UP ATTRIBUTES CONTROL LIST

                                     01E7   558 ;

            53         7C A8     9E  01E7   559 	MOVAB	FCB_ATTRIBS(R8),R3	; ADDRESS ATTRIBUTE LIST

            83   00020002 8F     D0  01EB   560 	MOVL	#<2@16>+2,(R3)+		; INSERT ATTRIBUTE AND SIZE

            63       0084 CA     DE  01F2   561 	MOVAL	I_SCRATCH+92(R10),(R3)	; ADDRESS PLACE FOR FILE PROTECTION

            93   00000000'9F     3C  01F7   562 	MOVZWL	@#PIO$GW_DFPROT,@(R3)+	; INSERT IT THERE

                          00ED   31  01FE   563 	BRW	CONSTATTR2		; CONTINUE LIST

RSXFILEIO       - RSX RSX11M FILES-ACP I/O MODULE                22-AUG-1978 05:07:46   VAX-11 MACRO X0.3-11               Page  14

V06.0           CREDONE - I/O DONE FOR CREATE                                                                                   (11)



                                     0201   565 	.SBTTL	CREDONE - I/O DONE FOR CREATE

                                     0201   566 ;++

                                     0201   567 ; CREDONE - I/O DONE PROCESSING FOR IO.CRE

                                     0201   568 ;

                                     0201   569 ; FUNCTIONAL DESCRIPTION:

                                     0201   570 ;

                                     0201   571 ; THIS ROUTINE IS ENTERED ON I/O DONE FOR IO.CRE IF THE STATUS

                                     0201   572 ; OF THE OPERATION WAS SUCCESSFUL. THE ACTION IS TO COPY THE FILE

                                     0201   573 ; ID INTO THE QIO SPECIFIED PLACE.

                                     0201   574 ;

                                     0201   575 ; INPUTS:

                                     0201   576 ;

                                     0201   577 ;	R2 = ADDRESS OF THE AIO AST CONTEXT BLOCK +4

                                     0201   578 ;	R3 = ADDRESS OF THE OPERATION FCB

                                     0201   579 ;	R10 = ADDRESS OF THE IMAGE IMPURE DATA BASE

                                     0201   580 ;	R11 = ADDRESS OF THE IMAGE

                                     0201   581 ;

                                     0201   582 ; OUTPUTS:

                                     0201   583 ;

                                     0201   584 ;	R2,R3,R10,R11 ARE PRESERVED.

                                     0201   585 ;--

                                     0201   586 CREDONE:				; IO.CRE I/O DOEN PROCESSING

            54            63     3C  0201   587 	MOVZWL	(R3),R4			; ADDRESS TARGET FOR FID

                          0E     13  0204   588 	BEQL	MOVEIOSB		; IF EQL THEN NONE

                                     0206   589 ;

                                     0206   590 ; CHECK FID ACCESS

                                     0206   591 ;

                                     0206   592 	IFNOWRT	#6,(R4),MOVEIOSB	; SKIP PROCEEDURE IF FAILURE

                                     020C   593 ;

                                     020C   594 ; COPY FID

                                     020C   595 ;

            84         50 A3     B0  020C   596 	MOVW	FIB$W_FID+FCB_FIB(R3),(R4)+;

            64         52 A3     D0  0210   597 	MOVL	FIB$W_FID+FCB_FIB+2(R3),(R4);

                                     0214   598 ;

                                     0214   599 ; MOVE EXTEND SIZE TO HIS IOSB

                                     0214   600 ;

                                     0214   601 MOVEIOSB:				; COPY SECOND WORD OF IOSB TO HIS IOSB

         10 A2         12 A2     B0  0214   602 	MOVW	QIO_IOSB+4(R2),QIO_IOSB+2(R2); I/O DONE WILL MOVE THIS AS TRANSFER SIZE

            50         08 A2     3C  0219   603 	MOVZWL	ACB_UPRM(R2),R0		; GET ADDRESS OF HIS IOSB

                          0B     13  021D   604 	BEQL	10$			; IF EQL THEN NONE

                                     021F   605 	IFNOWRT	#4,(R0),10$		; ACCESSIBLE?

         01 A0         14 A2     90  0225   606 	MOVB	QIO_IOSB+6(R2),1(R0)	; INSERT THE REST

                                 05  022A   607 10$:	RSB

RSXFILEIO       - RSX RSX11M FILES-ACP I/O MODULE                22-AUG-1978 05:07:46   VAX-11 MACRO X0.3-11               Page  15

V06.0           IO.EXT - EXTEND FILE                                                                                            (12)



                                     022B   609 	.SBTTL IO.EXT - EXTEND FILE

                                     022B   610 ;++

                                     022B   611 ; EXTINI - IO.EXT - FUNCTION PROCESSOR

                                     022B   612 ;

                                     022B   613 ; FUNCTIONAL DESCRIPTION:

                                     022B   614 ;

                                     022B   615 ; IO.EXT CAUSES AN IO$_MODIFY.

                                     022B   616 ;

                                     022B   617 ; FIB$W_FID <-- RSX DPB PARAM #1

                                     022B   618 ; EXTEND CONTROL FROM RSX DPB PARAM #3,4

                                     022B   619 ;

                                     022B   620 ; INPUTS:

                                     022B   621 ;

                                     022B   622 ;	R5 = ADDRESS OF THE OPERATION DPB

                                     022B   623 ;	R6 = ADDRESS OF THE IMAGE STACK

                                     022B   624 ;	R7 = ADDRESS OF THE QIO AST CONTEXT

                                     022B   625 ;	R8 = ADDRESS OF THE FILE CONTROL BLOCK (FCB)

                                     022B   626 ;	R10 = ADDRESS OF THE IMAGE IMPURE DATA BASE

                                     022B   627 ;	R11 = ADDRESS OF THE IMAGE

                                     022B   628 ;

                                     022B   629 ; OUTPUTS:

                                     022B   630 ;

                                     022B   631 ;	R0 = STATUS OF THE OPERATION

                                     022B   632 ;

                                     022B   633 ;	R5,R6,R7,R8,R10,R11 ARE PRESERVED.

                                     022B   634 ;--

                                     022B   635 EXTINI:

            50         00'8F     9A  022B   636 	MOVZBL	#SS$_NORMAL,R0		; ASSUME NO ERROR

         34 AA       0000'8F     3C  022F   637 	MOVZWL	#IO$_MODIFY,I_SCRATCH+12(R10); SET FUNCTION

                          65     B5  0235   638 	TSTW	(R5)			; ANY FID?

                          03     13  0237   639 	BEQL	10$			; IF EQL THEN NO

                          0088   30  0239   640 	BSBW	GTFID			; COPY THE FILE ID

                                     023C   641 ;

                                     023C   642 ; SET UP EXTEND DATA

                                     023C   643 ;

         05 A5       FF00 8F     AB  023C   644 10$:	BICW3	#^X0FF00,5(R5),FIB$W_EXCTL+FCB_FIB(R8); INSERT CONTROL

                       62 A8         0242       

         78 A8       FFCC CF     9E  0244   645 	MOVAB	W^MOVEIOSB,FCB_PC(R8)	; SET UP POST PROCESSING

         64 A8         06 A5     B0  024A   646 	MOVW	6(R5),FIB$L_EXSZ+FCB_FIB(R8); INSERT EXTEND SIZE

         66 A8         04 A5     9B  024F   647 	MOVZBW	4(R5),FIB$L_EXSZ+2+FCB_FIB(R8);

                                 05  0254   648 	RSB				; RETURN

RSXFILEIO       - RSX RSX11M FILES-ACP I/O MODULE                22-AUG-1978 05:07:46   VAX-11 MACRO X0.3-11               Page  16

V06.0           IO.APC - ACP CONTROL                                                                                            (13)



                                     0255   650 	.SBTTL IO.APC - ACP CONTROL

                                     0255   651 ;++

                                     0255   652 ; APCINI - IO.APC - FUNCTION PROCESSOR

                                     0255   653 ;

                                     0255   654 ; FUNCTIONAL DESCRIPTION:

                                     0255   655 ;

                                     0255   656 ; IO.APC CAUSES AN IO$_ACPCONTROL.

                                     0255   657 ;

                                     0255   658 ; FIB$W_CNTRLFUNC <-- HIGH BYTE OF EXTEND SIZE

                                     0255   659 ; FIB$L_CNTRLVAL <-- LOW WORD OF ENTEND SIZE

                                     0255   660 ;

                                     0255   661 ; INPUTS:

                                     0255   662 ;

                                     0255   663 ;	R5 = ADDRESS OF THE OPERATION DPB

                                     0255   664 ;	R6 = ADDRESS OF THE IMAGE STACK

                                     0255   665 ;	R7 = ADDRESS OF THE QIO AST CONTEXT

                                     0255   666 ;	R8 = ADDRESS OF THE FILE CONTROL BLOCK (FCB)

                                     0255   667 ;	R10 = ADDRESS OF THE IMAGE IMPURE DATA BASE

                                     0255   668 ;	R11 = ADDRESS OF THE IMAGE

                                     0255   669 ;

                                     0255   670 ; OUTPUTS:

                                     0255   671 ;

                                     0255   672 ;	R0 = STATUS OF THE OPERATION

                                     0255   673 ;

                                     0255   674 ;	R5,R6,R7,R8,R10,R11 ARE PRESERVED.

                                     0255   675 ;--

                                     0255   676 APCINI:					; ACP CONTROL

            50         00'8F     9A  0255   677 	MOVZBL	#SS$_NORMAL,R0		; ASSUME NO ERROR

         34 AA       0000'8F     3C  0259   678 	MOVZWL	#IO$_ACPCONTROL,I_SCRATCH+12(R10); SET FUNCTION

                          65     B5  025F   679 	TSTW	(R5)			; ANY FID?

                          03     13  0261   680 	BEQL	10$			; IF EQL THEN NO

                          005E   30  0263   681 	BSBW	GTFID			; COPY THE FILE ID

         64 A8         06 A5     32  0266   682 10$:	CVTWL	6(R5),FIB$L_CNTRLVAL+FCB_FIB(R8); INSERT VALUE

         62 A8         04 A5     9B  026B   683 	MOVZBW	4(R5),FIB$W_CNTRLFUNC+FCB_FIB(R8); INSERT FUNCTION

                                 05  0270   684 	RSB				; RETURN

RSXFILEIO       - RSX RSX11M FILES-ACP I/O MODULE                22-AUG-1978 05:07:46   VAX-11 MACRO X0.3-11               Page  17

V06.0           IO.RAT - IO.WAT - IO.DAC - FUNCTION PROCESSORS                                                                  (14)



                                     0271   686 	.SBTTL	IO.RAT - IO.WAT - IO.DAC - FUNCTION PROCESSORS

                                     0271   687  

                                     0271   688 	.ENABL	LSB

                                     0271   689 ;++

                                     0271   690 ; RATINI - READ ATTRIBUTES

                                     0271   691 ; WATINI - WRITE ATTRIBUTES

                                     0271   692 ; DACINI - DEACCESS FILE

                                     0271   693 ;

                                     0271   694 ; FUNCTIONAL DESCRIPTION:

                                     0271   695 ;

                                     0271   696 ; IO.RAC CAUSES AN IO$_ACCES.

                                     0271   697 ; IO.WAC CAUSES AN IO$_MODIFY

                                     0271   698 ; IO.DAC CAUSES AN IO$_DEACCESS

                                     0271   699 ;

                                     0271   700 ; FIB$W_FID <-- FROM RSX DPB PARAM #1

                                     0271   701 ; ATTRIBUTE CONTROL LIST CONSTRUCTED FROM RSX DPB PARAM #2

                                     0271   702 ;

                                     0271   703 ; INPUTS:

                                     0271   704 ;

                                     0271   705 ;	R5 = ADDRESS OF THE OPERATION DPB

                                     0271   706 ;	R6 = ADDRESS OF THE IMAGE STACK

                                     0271   707 ;	R7 = ADDRESS OF THE QIO CONTEXT BLOCK

                                     0271   708 ;	R8 = ADDRESS OF THE FILE OPERATION CONTROL BLOCK (FCB)

                                     0271   709 ;	R10 = ADDRESS OF THE IMAGE IMPURE DATA BASE

                                     0271   710 ;	R11 = ADDRESS OF THE IMAGE

                                     0271   711 ;

                                     0271   712 ; OUTPUTS:

                                     0271   713 ;	

                                     0271   714 ;	R0 = STATUS OF THE OPERATION

                                     0271   715 ;

                                     0271   716 ;	R5,R6,R7,R8,R10,R11 ARE PRESERVED.

                                     0271   717 ;--

                                     0271   718 RATINI:					; READ ATTRIBUTES

         34 AA       0000'8F     3C  0271   719 	MOVZWL	#IO$_ACCESS,I_SCRATCH+12(R10); SET FUNCTION

                          0E     11  0277   720 	BRB	15$			; CONTINUE IN COMMON

                                     0279   721 WATINI:					; WRITE ATTRIBUTES

         34 AA       0000'8F     3C  0279   722 	MOVZWL	#IO$_MODIFY,I_SCRATCH+12(R10); SET FUNCTION

                          06     11  027F   723 	BRB	15$			;

                                     0281   724 DACINI:					; DEACCESS FILE

         34 AA       0000'8F     3C  0281   725 	MOVZWL	#IO$_DEACCESS,I_SCRATCH+12(R10); SET FUNCTION

                                     0287   726 ;

                                     0287   727 ; COPY FILE ID

                                     0287   728 ;

                          65     B5  0287   729 15$:	TSTW	(R5)			; ANY FID PRESENT?

                          03     13  0289   730 	BEQL	20$			; IF EQL THEN NO

                          0036   30  028B   731 	BSBW	GTFID			; 

                                     028E   732 ;

                                     028E   733 ; GET ATTRIBUTES LIST

                                     028E   734 ;

                          0059   31  028E   735 20$:	BRW	CONSTATTRIBUTE		; CONSTRUCT LIST

                                     0291   736  

                                     0291   737 	.DSABL	LSB

RSXFILEIO       - RSX RSX11M FILES-ACP I/O MODULE                22-AUG-1978 05:07:46   VAX-11 MACRO X0.3-11               Page  18

V06.0           IO.DEL - FUNCTION PROCESSOR                                                                                     (15)



                                     0291   739 	.SBTTL	IO.DEL - FUNCTION PROCESSOR

                                     0291   740 ;++

                                     0291   741 ; DELINI - IO.DEL - DELETE FILE 

                                     0291   742 ;

                                     0291   743 ; FUNCTIONAL DESCRIPTION:

                                     0291   744 ;

                                     0291   745 ; IO.DEL CAUSES--

                                     0291   746 ;

                                     0291   747 ; IF EX.ENA = 0 THEN IO$_DELETE!IO$M_CREATE.

                                     0291   748 ; IF EX.ENA=1 THEN IO$_MODIFY WITH FIB$V_TRUNC = 1.

                                     0291   749 ;

                                     0291   750 ; FIB$W_FID <-- RSX DPB PARAM #1

                                     0291   751 ;

                                     0291   752 ; INPUTS:

                                     0291   753 ;

                                     0291   754 ;	R5 = ADDRESS OF THE OPERATION DPB

                                     0291   755 ;	R6 = ADDRESS OF THE IMAGE STACK

                                     0291   756 ;	R7 = ADDRESS OF THE QIO AST CONTEXT BLOCK

                                     0291   757 ;	R8 = ADDRESS OF THE FILE OPERATION CONTROL BLOCK (FCB)

                                     0291   758 ;	R10 = ADDRESS OF THE IMAGE IMPURE DATA BASE

                                     0291   759 ;	R11 = ADDRESS OF THE IMAGE

                                     0291   760 ;

                                     0291   761 ; OUTPUTS:

                                     0291   762 ;

                                     0291   763 ;	R0 = STATUS OF THE OPERATION

                                     0291   764 ;

                                     0291   765 ;	R5,R6,R7,R8,R10,R11 ARE PRESERVED.

                                     0291   766 ;--

                                     0291   767 DELINI:					; DELETE FILE

                                     0291   768 ;

                                     0291   769 ; GET THE FID COPIED

                                     0291   770 ;

                          0030   30  0291   771 	BSBW	GTFID			;

         78 A8       FF7C CF     9E  0294   772 	MOVAB	W^MOVEIOSB,FCB_PC(R8)	; SET UP PSOT PROCESSING

                                     029A   773 ;

                                     029A   774 ; TEST FOR EXTEND ENABLE

                                     029A   775 ;

         04 A5            0F     E0  029A   776 10$:	BBS	#15,4(R5),20$		; BR IF ENABLED

                          08         029E       

         34 AA       0000'8F     3C  029F   777 	MOVZWL	#IO$_DELETE!IO$M_DELETE,I_SCRATCH+12(R10); SET FUNCTION

                          0B     11  02A5   778 	BRB	30$			; AND CONTINUE

                                     02A7   779 ;

                                     02A7   780 ; TRUNCATE FILE

                                     02A7   781 ;

         34 AA       0000'8F     3C  02A7   782 20$:	MOVZWL	#IO$_MODIFY,I_SCRATCH+12(R10); SET FUNCTION

         62 A8            08     E2  02AD   783 	BBSS	#FIB$V_TRUNC,FIB$W_EXCTL+FCB_FIB(R8),25$; SET TRUNCATE BIT

                          04         02B1       

            50         00'8F     9A  02B2   784 30$:	MOVZBL	#SS$_NORMAL,R0		; RETURN STATUS

         68 A8         06 A5     B0  02B6   785 25$:	MOVW	6(R5),FIB$L_EXVBN+FCB_FIB(R8); INSERT EXTEND SIZE

         6A A8         04 A5     9B  02BB   786 	MOVZBW	4(R5),FIB$L_EXVBN+2+FCB_FIB(R8);

                       68 A8     D6  02C0   787 	INCL	FIB$L_EXVBN+FCB_FIB(R8)	;

                                 05  02C3   788 	RSB	

RSXFILEIO       - RSX RSX11M FILES-ACP I/O MODULE                22-AUG-1978 05:07:46   VAX-11 MACRO X0.3-11               Page  19

V06.0           GTFID - GET FILE ID                                                                                             (16)



                                     02C4   790 	.SBTTL	GTFID - GET FILE ID

                                     02C4   791 ;++

                                     02C4   792 ; GTFID - GET THE FILE ID FROM THE FILE NAME BLOCK

                                     02C4   793 ;

                                     02C4   794 ; FUNCTIONAL DESCRIPTION:

                                     02C4   795 ;

                                     02C4   796 ; THE ROUTINE VALIDATES THE FNB AND COPIES THE FILE ID TO THE FCB.

                                     02C4   797 ; IF THE FNB IS NOT PRESENT OR NOT ACCESSIBLE THEN AN ERROR IS RETURNED

                                     02C4   798 ; TO THE CALLER'S CALLER.

                                     02C4   799 ;

                                     02C4   800 ; INPUTS:

                                     02C4   801 ;

                                     02C4   802 ;	R5 = ADDRESS OF THE DPB

                                     02C4   803 ;	R6 = ADDRESS OF THE IMAGE STACK

                                     02C4   804 ;	R7 = ADDRESS OF THE QIO CONTEXT BLOCK

                                     02C4   805 ;	R8 = ADDRESS OF THE FCB

                                     02C4   806 ;	R10 = ADDRESS OF THE IMAGE IMPURE DATA BASE

                                     02C4   807 ;	R11 = ADDRESS OF THE IMAGE

                                     02C4   808 ;

                                     02C4   809 ; OUTPUTS:

                                     02C4   810 ;

                                     02C4   811 ;	R0 = STATUS OF THE OPERATION - IF FAILURE THEN RETURN

                                     02C4   812 ;				       IS TO THE CALLER'S CALLER.

                                     02C4   813 ;

                                     02C4   814 ;	R5,R6,R7,R8,R10,R11 ARE PRESERVED.

                                     02C4   815 ;--

                                     02C4   816 GTFID:					; COPY THE FILE ID

            50       0000'8F     3C  02C4   817 	MOVZWL	#SS$_BADPARAM,R0	; ASSUME NO FNB

            54            65     3C  02C9   818 	MOVZWL	(R5),R4			; GET THE ADDRESS OF THE FNB

                          19     13  02CC   819 	BEQL	20$			; IF EQL THEN NONE AND ERROR

                                     02CE   820 ;

                                     02CE   821 ; CHECK ACCESS TO THE FNB

                                     02CE   822 ;

            50       0000'8F     3C  02CE   823 	MOVZWL	#SS$_ACCVIO,R0		; ASSUME ACCESS VIOLATION

                                     02D3   824 	IFNORD	#N.UNIT+2,(R4),20$	; READABLE?

                                     02D9   825 ;

                                     02D9   826 ; COPY FILE ID

                                     02D9   827 ;

         50 A8            64     B0  02D9   828 	MOVW	N.FID(R4),FIB$W_FID+FCB_FIB(R8);

         52 A8         02 A4     D0  02DD   829 	MOVL	N.FID+2(R4),FIB$W_FID+2+FCB_FIB(R8);

            50         00'8F     9A  02E2   830 	MOVZBL	#SS$_NORMAL,R0		; SET SUCCESS

                                 05  02E6   831 	RSB				;

                                     02E7   832 ;

                                     02E7   833 ; ERROR RETURN

                                     02E7   834 ;

                          8E     D5  02E7   835 20$:	TSTL	(SP)+			; POP CALLER'S RETURN

                                 05  02E9   836 	RSB				; RETURN

RSXFILEIO       - RSX RSX11M FILES-ACP I/O MODULE                22-AUG-1978 05:07:46   VAX-11 MACRO X0.3-11               Page  20

V06.0           CONSTATTRIBUTE - CONSTRUCT ATTRIBUTE LIST                                                                       (17)



                                     02EA   838 	.SBTTL	CONSTATTRIBUTE	- CONSTRUCT ATTRIBUTE LIST

                                     02EA   839 ;++

                                     02EA   840 ; CONSTATTRIBUTE - CONSTRUCT ATTRIBUTE LIST FROM RSX LIST

                                     02EA   841 ;

                                     02EA   842 ; FUNCTIONAL DESCRIPTION:

                                     02EA   843 ;

                                     02EA   844 ; THIS ROUTINE CONSTRUCTS A VAX/VMS FILES I/O ATTRIBUTE LIST FROM

                                     02EA   845 ; AN RSX FILES I/O ATTRIBUTE LIST. THE ATTRIBUTE LIST IS CONTAINED

                                     02EA   846 ; IN THE FCB.

                                     02EA   847 ;

                                     02EA   848 ; INPUTS:

                                     02EA   849 ;

                                     02EA   850 ;	R5 = ADDRESS OF THE OPERATION DPB

                                     02EA   851 ;	R6 = ADDRESS OF THE IMAGE STACK

                                     02EA   852 ;	R7 = ADDRESS OF THE QIO AST CONTEXT BLOCK

                                     02EA   853 ;	R8 = ADDRESS OF THE FILE I/O CONTROL BLOCK

                                     02EA   854 ;	R10 = ADDRESS OF THE IMAGE IMPURE DATA BASE

                                     02EA   855 ;	R11 = ADDRESS OF THE IMAGE

                                     02EA   856 ;

                                     02EA   857 ; OUTPUTS:

                                     02EA   858 ;

                                     02EA   859 ;	R0 = STATUS ODF THE OPERATION

                                     02EA   860 ;

                                     02EA   861 ;	SS$_ACCVIO - ACCESS VIOLATION ON THE ATTRIBUTE LIST

                                     02EA   862 ;

                                     02EA   863 ;	R5,R6,R7,R8,R10,R11 ARE PRESERVED.

                                     02EA   864 ;--

                                     02EA   865 CONSTATTRIBUTE:				; CONSTRUCT ATTRIBUTE LIST

            53         7C A8     9E  02EA   866 	MOVAB	FCB_ATTRIBS(R8),R3	; COPY ADDRESS

                                     02EE   867 CONSTATTR2:

                                     02EE   868 ;

                                     02EE   869 ; GET THE ATTRIBUTE LIST

                                     02EE   870 ;

            54         02 A5     3C  02EE   871 	MOVZWL	2(R5),R4		; GET ADDRESS OF LIST

                          30     13  02F2   872 	BEQL	30$			; IF EQL THEN DONE

                                     02F4   873 	

                                     02F4   874 ;

                                     02F4   875 ; CHECK ACCESS TO RSX ATTRIBUTE LIST

                                     02F4   876 ;

                                     02F4   877 10$:	IFNORD	#1,(R4),100$		; ATTRIBUTE DESC THERE?

            50            84     98  02FA   878 	CVTBL	(R4)+,R0		; GET THE REQUEST TYPE

                          1E     13  02FD   879 	BEQL	25$			; IF EQL THEN DONE

                          03     14  02FF   880 	BGTR	15$			; IF GTR THEN NO CONVERT NEEDED

            50            50     CE  0301   881 	MNEGL	R0,R0			; CONVERT TO ABS VALUE

                                     0304   882 15$:	IFNORD	#3,(R4),100$		; PROBE REMAINDER 

            83            84     9B  030A   883 	MOVZBW	(R4)+,(R3)+		; INSERT SIZE

                          06     12  030D   884 	BNEQ	20$			; IF NEQ THEN SPECIFIED

         FE A3       0200 8F     B0  030F   885 	MOVW	#512,-2(R3)		; INSERT 512

            83            50     9B  0315   886 20$:	MOVZBW	R0,(R3)+		; INSERT TYPE IN LIST

            83            84     3C  0318   887 	MOVZWL	(R4)+,(R3)+		; INSERT ADDRESS TO STORE

                          D7     11  031B   888 	BRB	10$			; AND CONTINUE

                          83     D4  031D   889 25$:	CLRL	(R3)+			; END LIST

         54 AA         7C A8     9E  031F   890 	MOVAB	FCB_ATTRIBS(R8),I_SCRATCH+44(R10); INSERT ADDRESS IN QIO ARGS

            50       0000'8F     3C  0324   891 30$:	MOVZWL	#SS$_NORMAL,R0		; SET STATUS

                                 05  0329   892 	RSB				; RETURN

                                     032A   893 ;

                                     032A   894 ; ACCESS VIOLATION ON ATTRIBUTE LIST

RSXFILEIO       - RSX RSX11M FILES-ACP I/O MODULE                22-AUG-1978 05:07:46   VAX-11 MACRO X0.3-11               Page  21

V06.0           CONSTATTRIBUTE - CONSTRUCT ATTRIBUTE LIST                                                                       (17)



                                     032A   895 ;

            50       0000'8F     3C  032A   896 100$:	MOVZWL	#SS$_ACCVIO,R0		; SET STATUS

                                 05  032F   897 	RSB				; RETURN

                                     0330   898 ;

                                     0330   899 	.END

RSXFILEIO       - RSX RSX11M FILES-ACP I/O MODULE                22-AUG-1978 05:07:46   VAX-11 MACRO X0.3-11               Page  22

SYMBOL TABLE                                                                                                                    (17)



$$MSG          = 00000000            FCB_FID          00000000            FIB$C_REWINDVOL= 00000001            

...GBL         = 00000000            FCB_FNAME        00000014            FIB$C_RFI      = 00000004            

...TPC         = 0000001E            FCB_FNAMEDESC    0000000C            FIB$C_SPACE    = 00000004            

ACBC_CTLRCAST  = 00000002            FCB_FNB          00000002            FIB$C_VBN      = 00000003            

ACBC_FLOATAST  = 00000003            FCB_PC           00000078            FIB$K_ACCDATA    0000000A            

ACBC_PWRAST    = 00000000            FCB_RESULT       00000030            FIB$K_ALCDATA    0000002C            

ACBC_RCVAST    = 00000001            FCB_RESULTDESC   00000004            FIB$K_DIRDATA    00000016            

ACBV_INPROG    = 00000001            FCB_SIZE         000000B4            FIB$K_EXTDATA    00000020            

ACBV_PERM      = 00000000            FD.BLK         = 00000008            FIB$K_LENGTH     0000002C            

ACBV_TYPE      = 00000008            FD.CCL         = 00000002            FIB$K_MTALEN     0000001C            

ACB_FLAGS        0000000C            FD.COM         = 00002000            FIB$L_ACCTL      00000000            

ACB_LINK         00000000            FD.CR          = 00000002            FIB$L_CNTRLVAL   00000018            

ACB_UPC          0000000A            FD.DIR         = 00000008            FIB$L_EXSZ       00000018            

ACB_UPRM         00000008            FD.F11         = 00004000            FIB$L_EXVBN      0000001C            

ACEINI           000001B4 R     05   FD.FTN         = 00000001            FIB$L_LOC_ADDR   00000028            

ACRINI           000001B9 R     05   FD.INS         = 00000008            FIB$L_WCC        00000010            

ACWINI           000001B4 R     05   FD.ISP         = 00000400            FIB$M_ALCON    = 00000001            

ADR_HIGHLIM      00000004            FD.MNT         = FFFF8000            FIB$M_ALCONB   = 00000002            

ADR_LOWLIM       00000000            FD.OSP         = 00000800            FIB$M_ALDEF    = 00000008            

ADR_SIZE         00000008            FD.PLC         = 00000004            FIB$M_ALLNAM   = 00000020            

APCINI           00000255 R     05   FD.PRN         = 00000004            FIB$M_ALLTYP   = 00000010            

AP_NAME          00000004            FD.PSE         = 00001000            FIB$M_ALLVER   = 00000008            

AST_PARAM        00000004            FD.RAH         = 00000001            FIB$M_CURPOS   = 00000010            

AST_PC           00000010            FD.RAN         = 00000002            FIB$M_DLOCK    = 00000002            

AST_PSL          00000014            FD.REC         = 00000001            FIB$M_EXACT    = 00000001            

AST_R0           00000008            FD.RWM         = 00000001            FIB$M_EXECUTE  = 00010000            

AST_R1           0000000C            FD.SDI         = 00000010            FIB$M_EXTEND   = 00000080            

BIT...         = 00000007            FD.SQD         = 00000020            FIB$M_FILCON   = 00000004            

CH.AND         = 00000001            FD.TTY         = 00000004            FIB$M_FINDFID  = 00000800            

CONSTATTR2       000002EE R     05   FD.WBH         = 00000002            FIB$M_HIGHVER  = 00008000            

CONSTATTRIBUTE   000002EA R     05   FF.CHR         = 00000005            FIB$M_LOWVER   = 00004000            

CONSTFILENAME    00000199 R     05   FF.NV          = 00000003            FIB$M_MARKBAD  = 00000400            

CREDONE          00000201 R     05   FF.POE         = 00000002            FIB$M_NEWVER   = 00000200            

CREINI           000001CA R     05   FF.RWD         = 00000001            FIB$M_NOHDREXT = 00000200            

C_CANONPS      = 83C00000            FF.RWF         = 00000006            FIB$M_NOREAD   = 00000400            

C_RCVDSTR      = 44564352            FF.SPC         = 00000004            FIB$M_NOTRUNC  = 00000800            

DACINI           00000281 R     05   FIB$B_ALALIGN    00000021            FIB$M_NOWRITE  = 00000001            

DELINI           00000291 R     05   FIB$B_ALOPTS     00000020            FIB$M_ONCYL    = 00000002            

ENAINI           00000121 R     05   FIB$B_DID_NMX    0000000F            FIB$M_PRSRV_ATR= 00020000            

EXTINI           0000022B R     05   FIB$B_DID_RVN    0000000E            FIB$M_READCK   = 00000200            

FA.APD         = 00000040            FIB$B_FID_NMX    00000009            FIB$M_REWIND   = 00000008            

FA.CRE         = 00000008            FIB$B_FID_RVN    00000008            FIB$M_SEQONLY  = 00000040            

FA.DLK         = 00000200            FIB$B_LOC_NMX    00000027            FIB$M_SPOOL    = 00000010            

FA.ENB         = FFFF8000            FIB$B_LOC_RVN    00000026            FIB$M_SUPERSEDE= 00000400            

FA.EXC         = 00000400            FIB$B_WSIZE      00000003            FIB$M_TRUNC    = 00000100            

FA.EXT         = 00000004            FIB$C_ACCDATA    0000000A            FIB$M_UPDATE   = 00000040            

FA.NSP         = 00000040            FIB$C_ALCDATA    0000002C            FIB$M_WILD     = 00000100            

FA.POS         = 00001000            FIB$C_CYL      = 00000001            FIB$M_WRITE    = 00000100            

FA.RD          = 00000001            FIB$C_DIRDATA    00000016            FIB$M_WRITECK  = 00000020            

FA.RWD         = 00000800            FIB$C_EXTDATA    00000020            FIB$V_ALCON    = 00000000            

FA.SEQ         = 00004000            FIB$C_ILLEGAL  = 00000005            FIB$V_ALCONB   = 00000001            

FA.SHR         = 00000020            FIB$C_LBN      = 00000002            FIB$V_ALDEF    = 00000003            

FA.TMP         = 00000010            FIB$C_LENGTH     0000002C            FIB$V_ALLNAM   = 00000005            

FA.WCK         = 00002000            FIB$C_MTALEN     0000001C            FIB$V_ALLTYP   = 00000004            

FA.WRT         = 00000002            FIB$C_NEXTVOL  = 00000003            FIB$V_ALLVER   = 00000003            

FCB_ATTRIBS      0000007C            FIB$C_POSEND   = 00000002            FIB$V_CURPOS   = 00000004            

FCB_FIB          0000004C            FIB$C_REWINDFIL= 00000006            FIB$V_DLOCK    = 00000001            

RSXFILEIO       - RSX RSX11M FILES-ACP I/O MODULE                22-AUG-1978 05:07:46   VAX-11 MACRO X0.3-11               Page  23

SYMBOL TABLE                                                                                                                    (17)



FIB$V_EXACT    = 00000000            H.CUIC           00000008            IE.DUP         = FFFFFFC7            

FIB$V_EXECUTE  = 00000010            H.DSW            00000026            IE.EOF         = FFFFFFF6            

FIB$V_EXTEND   = 00000007            H.DUIC           0000000A            IE.EOT         = FFFFFFC2            

FIB$V_FILCON   = 00000002            H.EFLM           00000004            IE.EOV         = FFFFFFF5            

FIB$V_FINDFID  = 0000000B            H.EFSV           00000020            IE.EXP         = FFFFFFB5            

FIB$V_HIGHVER  = 0000000F            H.FCS            00000028            IE.FEX         = FFFFFFCF            

FIB$V_LOWVER   = 0000000E            H.FORT           0000002A            IE.FHE         = FFFFFFC5            

FIB$V_MARKBAD  = 0000000A            H.FPSA           00000022            IE.FLN         = FFFFFFAF            

FIB$V_NEWVER   = 00000009            H.FPVA           0000001C            IE.FOP         = FFFFFFCB            

FIB$V_NOHDREXT = 00000009            H.GARD           0000003A            IE.HFU         = FFFFFFE4            

FIB$V_NOREAD   = 0000000A            H.HDLN           00000002            IE.IES         = FFFFFFAE            

FIB$V_NOTRUNC  = 0000000B            H.IPC            0000000E            IE.IFC         = FFFFFFFE            

FIB$V_NOWRITE  = 00000000            H.IPS            0000000C            IE.IFU         = FFFFFFE7            

FIB$V_ONCYL    = 00000001            H.ISP            00000010            IE.ILL         = FFFFFFD6            

FIB$V_PRSRV_ATR= 00000011            H.LUN            0000003E            IE.ISQ         = FFFFFFC3            

FIB$V_READCK   = 00000009            H.NLUN           0000003C            IE.LCK         = FFFFFFE5            

FIB$V_REWIND   = 00000003            H.NML            00000031            IE.MOD         = FFFFFFEB            

FIB$V_SEQONLY  = 00000006            H.ODVA           00000012            IE.NBF         = FFFFFFD9            

FIB$V_SPOOL    = 00000004            H.ODVL           00000014            IE.NBK         = FFFFFFD7            

FIB$V_SUPERSEDE= 0000000A            H.OVLY           0000002C            IE.NDR         = FFFFFFB8            

FIB$V_TRUNC    = 00000008            H.PFVA           0000001A            IE.NFI         = FFFFFFC4            

FIB$V_UPDATE   = 00000006            H.RCVA           0000001E            IE.NFW         = FFFFFFBB            

FIB$V_WILD     = 00000008            H.RRVA           00000032            IE.NLK         = FFFFFFB1            

FIB$V_WRITE    = 00000008            H.SPRI           00000030            IE.NLN         = FFFFFFDB            

FIB$V_WRITECK  = 00000005            H.TKVA           00000016            IE.NNC         = FFFFFFB3            

FIB$W_ALLOC      00000022            H.TKVL           00000018            IE.NNL         = FFFFFFB2            

FIB$W_CNTRLFUNC  00000016            H.VEXT           0000002E            IE.NNN         = FFFFFFBC            

FIB$W_DID        0000000A            H.WND            00000024            IE.NOD         = FFFFFFE9            

FIB$W_DID_NUM    0000000A            IE.2DV         = FFFFFFD0            IE.NSF         = FFFFFFE6            

FIB$W_DID_RVN    0000000E            IE.ABO         = FFFFFFF1            IE.NST         = FFFFFFB0            

FIB$W_DID_SEQ    0000000C            IE.ALC         = FFFFFFAC            IE.OFL         = FFFFFFBF            

FIB$W_EXCTL      00000016            IE.ALN         = FFFFFFDE            IE.ONP         = FFFFFFFB            

FIB$W_FID        00000004            IE.AST         = FFFFFFB0            IE.OVR         = FFFFFFEE            

FIB$W_FID_NUM    00000004            IE.BAD         = FFFFFFFF            IE.PES         = FFFFFFAD            

FIB$W_FID_RVN    00000008            IE.BBE         = FFFFFFC8            IE.PRI         = FFFFFFF0            

FIB$W_FID_SEQ    00000006            IE.BCC         = FFFFFFBE            IE.RAC         = FFFFFFD4            

FIB$W_LOC_FID    00000022            IE.BDI         = FFFFFFCC            IE.RAT         = FFFFFFD3            

FIB$W_LOC_NUM    00000022            IE.BDR         = FFFFFFCE            IE.RBG         = FFFFFFD8            

FIB$W_LOC_RVN    00000026            IE.BDV         = FFFFFFC9            IE.RCN         = FFFFFFD2            

FIB$W_LOC_SEQ    00000024            IE.BHD         = FFFFFFC0            IE.RER         = FFFFFFE0            

FIB$W_NMCTL      00000014            IE.BLB         = FFFFFFBA            IE.RNM         = FFFFFFCD            

FINDDONE         00000164 R     05   IE.BLK         = FFFFFFEC            IE.RSU         = FFFFFFEF            

FNAINI           000000A3 R     05   IE.BNM         = FFFFFFCA            IE.SNC         = FFFFFFDD            

FO.APD         = 00000046            IE.BTF         = FFFFFFB4            IE.SPC         = FFFFFFFA            

FO.MFY         = 00000002            IE.BTP         = FFFFFFD5            IE.SQC         = FFFFFFDC            

FO.RD          = 00000001            IE.BVR         = FFFFFFC1            IE.SRE         = FFFFFFF2            

FO.UPD         = 00000006            IE.BYT         = FFFFFFED            IE.STK         = FFFFFFC6            

FO.WRT         = 0000000E            IE.CKS         = FFFFFFE2            IE.TMM         = FFFFFFB9            

FP_AP            00000008            IE.CLO         = FFFFFFDA            IE.TMO         = FFFFFFB6            

FP_FP            0000000C            IE.CNR         = FFFFFFB7            IE.ULK         = FFFFFFAB            

FP_PC            00000010            IE.CON         = FFFFFFEA            IE.VER         = FFFFFFFC            

FP_PSL           00000004            IE.DAA         = FFFFFFF8            IE.WAC         = FFFFFFE3            

FP_REGISTERS     00000014            IE.DAO         = FFFFFFF3            IE.WAT         = FFFFFFE1            

GBL...         = 00000000            IE.DFU         = FFFFFFE8            IE.WCK         = FFFFFFAA            

GTDID            0000013C R     05   IE.DNA         = FFFFFFF9            IE.WER         = FFFFFFDF            

GTFID            000002C4 R     05   IE.DNR         = FFFFFFFD            IE.WLK         = FFFFFFF4            

H.CSP            00000000            IE.DUN         = FFFFFFF7            IFC              0000008A R     05   

RSXFILEIO       - RSX RSX11M FILES-ACP I/O MODULE                22-AUG-1978 05:07:46   VAX-11 MACRO X0.3-11               Page  24

SYMBOL TABLE                                                                                                                    (17)



IO$M_ACCESS      ********   X   05   I_R0             00000000            NB.SVR         = 00000008            

IO$M_CREATE      ********   X   05   I_R1             00000004            NB.TYP         = 00000002            

IO$M_DELETE      ********   X   05   I_R2             00000008            NB.VER         = 00000001            

IO$_ACCESS       ********   X   05   I_R3             0000000C            PIO$GW_DFPROT    ********   X   05   

IO$_ACPCONTROL   ********   X   05   I_R4             00000010            PSL_CC         = 00000000            

IO$_CREATE       ********   X   05   I_R5             00000014            PSL_CM         = 0000001F            

IO$_DEACCESS     ********   X   05   I_R6             00000018            PSL_FPD        = 0000001B            

IO$_DELETE       ********   X   05   I_RAD50NAME      00000148            PSL_FU         = 00000006            

IO$_MODIFY       ********   X   05   I_RCVAST         0000019C            PSL_TBIT       = 00000004            

IS.BV          = 00000005            I_RCVMAIL        00000160            QIOV_FILES     = 00000000            

IS.CC          = 00000301            I_RUNFLAGS       0000018C            QIO_FLAGS        0000001A            

IS.CR          = 00000D01            I_SCRATCH        00000028            QIO_IOSB         0000000E            

IS.EOT         = 00000401            I_SSTVEC         00000194            QIO_LUT          00000016            

IS.ESC         = 00001B01            I_SSTVECL        00000196            QIO_SECONDBLK    0000001C            

IS.ESQ         = 00009B01            I_STATE          00000170            QIO_SIZE         00000020            

IS.PES         = 00008001            I_TYPE           0000001C            R.FIX          = 00000001            

IS.PND         = 00000000            I_UIC            0000013C            R.SEQ          = 00000003            

IS.RDD         = 00000002            I_WAIT           00000178            R.VAR          = 00000002            

IS.SUC         = 00000001            I_WAITSAVE       00000180            RATINI           00000271 R     05   

IS.TAB         = 00000901            LUTC_CR        = 00000005            RETURNFILENAME   0000017C R     05   

IS.TMO         = 00000002            LUTC_DISK      = 00000002            RNAINI           000000AB R     05   

I_ADR0           000000FC            LUTC_LP        = 00000004            RSX$ALLOCATE     ********   X   05   

I_ASCIINAME      00000140            LUTC_RMS       = 00000000            RSX$BLDFNAME     ********   X   05   

I_ASTPOOL        000000D0            LUTC_TAPE      = 00000003            RSX$C_SUBSYSTEM= 00000006            

I_ASTQUEUE       000000C8            LUTC_TRM       = 00000001            RSX$DLVRQIOAST   ********   X   05   

I_BAILOUTFP      00000188            LUTV_CTRLC     = 00000002            RSX$FILEIO       00000000 RG    05   

I_CMDROUT        000000E8            LUTV_CTRLO     = 00000000            RSX$ISSUQIO      ********   X   05   

I_CURAST         00000198            LUTV_PRM       = 00000003            RSX$R50CVT1      ********   X   05   

I_DEBVEC         00000190            LUT_CHAN         0000000C            RSX$R50CVT3      ********   X   05   

I_DEBVECL        00000192            LUT_CHAR         00000012            RSX$RETFNAME     ********   X   05   

I_FCBPOOL        000000D8            LUT_CTRLC        00000032            RSX$_ACCVIO    = 00068044            

I_FCC            000001B4            LUT_FLAGS        0000000A            RSX$_BADLIBREF = 0006806C            

I_FLOATA0        000001C0            LUT_INFONAME     0000002E            RSX$_BADSTACK  = 0006804C            

I_FLOATA1        000001C8            LUT_INFOUNIT     00000030            RSX$_BREAK     = 0006800C            

I_FLOATA2        000001D0            LUT_LINK         00000000            RSX$_EXITSTATUS= 00068640            

I_FLOATA3        000001D8            LUT_REALNAME     0000001E            RSX$_EXTERNABRT= 0006805C            

I_FLOATA4        000001E0            LUT_REF          00000008            RSX$_ILLINST   = 0006802C            

I_FLOATA5        000001E8            LUT_RSXNAME      00000010            RSX$_IMAGETERM = 00068084            

I_FLOATADR       000001B0            LUT_SIZE         00000036            RSX$_INSFDYNMEM= 00068054            

I_FLOATAST       000001A4            LUT_TYPE         00000016            RSX$_IOT       = 00068014            

I_FLOATCSR       000001A8            MOVEIOSB         00000214 R     05   RSX$_LIBNOTFND = 00068074            

I_FLOATERR       000001AC            N.DID          = 00000014            RSX$_LOADERROR = 0006807C            

I_FLOATTMP       000001B8            N.DVNM         = 0000001A            RSX$_NOCOMM    = 00068094            

I_GARD           000000EC            N.FID          = 00000000            RSX$_NONRSXEMT = 0006801C            

I_HIGHEFN        0000016C            N.FNAM         = 00000006            RSX$_NOPMD     = 00068332            

I_HIGHSIZE       000000F4            N.FTYP         = 0000000C            RSX$_NOSUCHDEV = 00068322            

I_IMAGEVBN       000000F8            N.FVER         = 0000000E            RSX$_NOTSKIMG  = 00068064            

I_INISIZE        000000F0            N.NEXT         = 00000012            RSX$_ODDADDR   = 00068034            

I_LENGTH         000001F0            N.STAT         = 00000010            RSX$_PMD       = 0006832A            

I_LOGNAME        000000E0            N.UNIT         = 0000001C            RSX$_RCVMBXSIZ = 0000012C            

I_LUT            00000168            NB.DEV         = 00000080            RSX$_REGMSG    = 0006808C            

I_NLUN           00000164            NB.DIR         = 00000040            RSX$_RESERVED  = 00068004            

I_PC             00000020            NB.NAM         = 00000004            RSX$_TBIT      = 0006803C            

I_PPFINDEX       00000162            NB.SD1         = 00000100            RSX$_TRAP      = 00068024            

I_PROCNAME       0000014C            NB.SD2         = 00000200            RSX$_VERIFYCMD = 00068648            

I_PS             00000024            NB.SNM         = 00000020            S.FNAM         = 00000006            

I_PWRAST         000001A0            NB.STP         = 00000010            S.FNB          = 0000001E            

RSXFILEIO       - RSX RSX11M FILES-ACP I/O MODULE                22-AUG-1978 05:07:46   VAX-11 MACRO X0.3-11               Page  25

SYMBOL TABLE                                                                                                                    (17)



S.FNBW         = 0000000F            

S.FNTY         = 00000004            

S.FTYP         = 00000002            

S.NFEN         = 00000010            

SS$_ACCVIO       ********   X   05   

SS$_BADPARAM     ********   X   05   

SS$_ILLIOFUNC    ********   X   05   

SS$_NORMAL       ********   X   05   

SV_ASTLVL        00000004            

SV_DCL           00000002            

SV_FLOATAST      00000009            

SV_NOAST         00000003            

SV_PENDWAIT      00000005            

SV_PWRAST        00000008            

SV_RCVAST        00000007            

SV_RESTORE       00000000            

SV_TRANSLATE     00000001            

SV_WAIT          00000006            

W.BATT           00000006            

W.BFPD           0000000C            

W.BHVR           00000004            

W.BLGH           00000010            

W.BLPD           0000000E            

W.BLVR           00000002            

W.BNPD           0000000D            

W.BOFF           0000000A            

W.BPCB           00000000            

W.BSIZ           00000008            

WATINI           00000279 R     05   





PROGRAM SECTION SYNOPSIS



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

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

..ABS.           00000042      02     NOPIC   USR   CON   ABS   LCL NOSHR   EXE   RD    WRT BYTE  

$ABS$            0000002C      03     NOPIC   USR   CON   ABS   LCL NOSHR   EXE   RD    WRT BYTE  

RSXDEF           000001F4      04     NOPIC   USR   CON   ABS   LCL NOSHR   EXE   RD    WRT BYTE  

RSXCODE          00000330      05       PIC   USR   CON   REL   LCL   SHR   EXE   RD  NOWRT BYTE  





THERE WERE NO ERRORS OR WARNINGS.

11236. BYTES LEFT IN FREE MEMORY POOL.

1082. BYTES OF RECLAIMED MEMORY.

OBJ$:RSXFILEIO,LIS$:RSXFILEIO/-SP=EXECML$/ML,LIB$:R/ML,SRC$:RSXFILEIO

34 MLB DIR RDS - 714 GETS TO DEFINE 24 MACROS. 35 INTER. FILE WRITES. 

