DBDRIVER        - RP04/05/06 DISK DRIVER                         21-AUG-1978 23:49:59   VAX-11 MACRO X0.3-11               Page   0

TABLE OF CONTENTS   



   (1)     247  RP04/05/06 FUNCTION DECISION TABLE

   (1)     320  START I/O OPERATION

   (1)     705  RP04/05/06 HARDWARE FUNCTION EXECUTION

   (1)     998  RP04/05/06 REGISTER DUMP ROUTINE

DBDRIVER        - RP04/05/06 DISK DRIVER                         21-AUG-1978 23:49:59   VAX-11 MACRO X0.3-11               Page   1

01                                                                                                                               (1)



                                     0000     1 	.TITLE	DBDRIVER - RP04/05/06 DISK DRIVER

                                     0000     2 	.IDENT	/01/

                                     0000     3  

                                     0000     4 ;

                                     0000     5 ; COPYRIGHT (C) 1977

                                     0000     6 ; DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.

                                     0000     7 ;

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

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

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

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

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

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

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

                                     0000    15 ;

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

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

                                     0000    18 ; EQUIPMENT CORPORATION.

                                     0000    19 ;

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

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

                                     0000    22 ;

                                     0000    23 ; D. N. CUTLER 30-JAN-77

                                     0000    24 ;

                                     0000    25 ; RP04/04/06 DISK DRIVER

                                     0000    26 ;

                                     0000    27 ; MACRO LIBRARY CALLS

                                     0000    28 ;

                                     0000    29  

                                     0000    30 	$CRBDEF				;DEFINE CRB OFFSETS

                                     0000    31 	$EMBDEF				;DEFINE EMB OFFSETS

                                     0000    32 	$IODEF				;DEFINE I/O FUNCTION CODES

                                     0000    33 	$IRPDEF				;DEFINE IRP OFFSETS

                                     0000    34 	$MBADEF				;DEFINE MBA REGISTER OFFSETS

                                     0000    35 	$PRDEF				;DEFINE PROCESSOR REGISTERS

                                     0000    36 	$UCBDEF				;DEFINE UCB OFFSETS

                                     0000    37 	$VECDEF				;DEFINE INTERRUPT DISPATCH VECTOR OFFSETS

                                     0000    38  

                                     0000    39 ;

                                     0000    40 ; LOCAL MACROS

                                     0000    41 ;

                                     0000    42 ; EXECUTE FUNCTION AND BRANCH ON RETRIABLE ERROR CONDITION

                                     0000    43 ;

                                     0000    44  

                                     0000    45 	.MACRO	EXFUNC BDST,FCODE

                                     0000    46 		.IF NB	FCODE

                                     0000    47 		MOVZBL	#CD'FCODE,R0

                                     0000    48 		.ENDC

                                     0000    49 		BSBW	FEX

                                     0000    50 		.BYTE	BDST-.-1

                                     0000    51 	.ENDM

                                     0000    52  

                                     0000    53 ;

                                     0000    54 ; GENERATE FUNCTION TABLE ENTRY AND CASE TABLE INDEX SYMBOL

                                     0000    55 ;

                                     0000    56  

                                     0000    57 	.MACRO	GENF FCODE

DBDRIVER        - RP04/05/06 DISK DRIVER                         21-AUG-1978 23:49:59   VAX-11 MACRO X0.3-11               Page   2

01                                                                                                                               (1)



                                     0000    58 		CD'FCODE=.-FTAB

                                     0000    59 		.BYTE	FCODE!RP_CS1_M_GO

                                     0000    60 	.ENDM

                                     0000    61  

                                     0000    62 ;

                                     0000    63 ; LOCAL SYMBOLS

                                     0000    64 ;

                                     0000    65 ; RP04/05/06 MASSBUS REGISTER OFFSETS

                                     0000    66 ;

                                     0000    67  

                                     0000    68 	$DEFINI	RP

                                     0000    69  

                                     0000    70 $DEF	RP_CS1		.BLKL	1	;DRIVE CONTROL REGISTER

                                     0004    71 	_VIELD	RP_CS1,0,<-		; DRIVE CONTROL REGISTER BIT DEFINITIONS

                                     0004    72 		<GO,,M>,-		; GO BIT

                                     0004    73 		<FCODE,5>-		; FUNCTION CODE

                                     0004    74 	>				;

                                     0004    75 $DEF	RP_DS		.BLKL	1	;DRIVE STATUS REGISTER

                                     0008    76 	_VIELD	RP_DS,6,<-		; DRIVE STATUS REGISTER BIT DEFINITIONS

                                     0008    77 		<VV,,M>,-		; VOLUME VALID

                                     0008    78 		<DRY,,M>,-		; DRIVE READY

                                     0008    79 		<DPR,,M>,-		; DRIVE PRESENT

                                     0008    80 		<PGM,,M>,-		; PROGRAMMABLE

                                     0008    81 		<LST,,M>,-		; LAST SECTOR TRANSFERED

                                     0008    82 		<WRL,,M>,-		; DRIVE WRITE LOCKED

                                     0008    83 		<MOL,,M>,-		; MEDIUM ONLINE

                                     0008    84 		<PIP,,M>,-		; POSITIONING IN PROGRESS

                                     0008    85 		<ERR,,M>,-		; COMPOSITE ERROR

                                     0008    86 		<ATA,,M>-		; ATTENTION ACTIVE

                                     0008    87 	>				;

                                     0008    88 $DEF	RP_ER1		.BLKL	1	;ERROR REGISTER 1

                                     000C    89 	_VIELD	RP_ER1,0,<-		; ERROR REGISTER 1 BIT DEFINITIONS

                                     000C    90 		<ILF,,M>,-		; ILLEGAL FUNCTION

                                     000C    91 		<ILR,,M>,-		; ILLEGAL REGISTER

                                     000C    92 		<RMR,,M>,-		; REGISTER MODIFY REFUSED

                                     000C    93 		<PAR,,M>,-		; PARITY ERROR

                                     000C    94 		<FER,,M>,-		; FORMAT ERROR

                                     000C    95 		<WCF,,M>,-		; WRITE CLOCK FAIL

                                     000C    96 		<ECH,,M>,-		; ECC HARD ERROR

                                     000C    97 		<HCE,,M>,-		; HEADER COMPARE ERROR

                                     000C    98 		<HCRC,,M>,-		; HEADER CRC ERROR

                                     000C    99 		<AOE,,M>,-		; ADDRESS OVERFLOW ERROR

                                     000C   100 		<IAE,,M>,-		; ILLEGAL ADDRESS ERROR

                                     000C   101 		<WLE,,M>,-		; WRITE LOCK ERROR

                                     000C   102 		<DTE,,M>,-		; DRIVE TIMING ERROR

                                     000C   103 		<OPI,,M>,-		; OPERATION INCOMPLETE

                                     000C   104 		<UNS,,M>,-		; DRIVE UNSAFE

                                     000C   105 		<DCK,,M>-		; DATA CHECK ERROR

                                     000C   106 	>				;

                                     000C   107 $DEF	RP_MR		.BLKL	1	;MAINTENANCE REGISTER

                                     0010   108 $DEF	RP_AS		.BLKL	1	;ATTENTION SUMMARY REGISTER

                                     0014   109 $DEF	RP_DA		.BLKL	1	;DESIRED SECTOR/TRACK ADDRESS REGISTER

                                     0018   110 	_VIELD	RP_DA,0,<-		; DESIRED ADDRESS FIELD DEFINITIONS

                                     0018   111 		<SA,5>,-		; DESIRED SECTOR ADDRESS

                                     0018   112 		<,3>,-			; RESERVED BITS

                                     0018   113 		<TA,5>-			; DESIRED TRACK ADDRESS

                                     0018   114 	>				;

DBDRIVER        - RP04/05/06 DISK DRIVER                         21-AUG-1978 23:49:59   VAX-11 MACRO X0.3-11               Page   3

01                                                                                                                               (1)



                                     0018   115 $DEF	RP_DT		.BLKL	1	;DRIVE TYPE REGISTER

                                     001C   116 	_VIELD	RP_DT,0,<-		; DRIVE TYPE REGISTER FIELD DEFINITIONS

                                     001C   117 		<DTN,9>,-		; DRIVE TYPE NUMBER

                                     001C   118 		<,2>,-			; RESERVED BITS

                                     001C   119 		<DRQ,,M>-		; DRIVE REQUEST REQUIRED

                                     001C   120 	>				;

                                     001C   121 $DEF	RP_LA		.BLKL	1	;LOOKAHEAD REGISTER

                                     0020   122 $DEF	RP_ER2		.BLKL	1	;ERROR REGISTER 2

                                     0024   123 $DEF	RP_OF		.BLKL	1	;OFFSET REGISTER

                                     0028   124 	_VIELD	RP_OF,0,<-		; OFFSET REGISTER BIT DEFINITIONS

                                     0028   125 		<OFF,8>,-		; OFFSET VALUE

                                     0028   126 		<DCK,,M>,-		; DATA CHECK IN PROGRESS (SOFTWARE)

                                     0028   127 		<,1>,-			; RESERVED BIT

                                     0028   128 		<HCI,,M>,-		; HEADER COMPARE INHIBIT

                                     0028   129 		<ECI,,M>,-		; ECC INHIBIT

                                     0028   130 		<FMT,,M>-		; 16-BIT FORMAT

                                     0028   131 	>				;

                                     0028   132 $DEF	RP_DC		.BLKL	1	;DESIRED CYLINDER ADDRESS

                                     002C   133 $DEF	RP_CC		.BLKL	1	;CURRENT CYLINDER ADDRESS

                                     0030   134 $DEF	RP_SN		.BLKL	1	;DRIVE SERIAL NUMBER

                                     0034   135 $DEF	RP_ER3		.BLKL	1	;ERROR REGISTER 3

                                     0038   136 	_VIELD	RP_ER3,14,<-		; ERROR REGISTER 3 BIT DEFINITIONS

                                     0038   137 		<SKI,,M>-		; SEEK INCOMPLETE

                                     0038   138 	>				;

                                     0038   139 $DEF	RP_EC1		.BLKL	1	;ECC POSITION REGISTER

                                     003C   140 	_VIELD	RP_EC1,0,<<POS,13>>	; ECC POSITION FIELD

                                     003C   141 $DEF	RP_EC2		.BLKL	1	;ECC PATTERN REGISTER

                                     0040   142 	_VIELD	RP_EC2,0,<<PAT,11>>	; ECC PATTERN FIELD

                                     0040   143  

                                     0040   144 	$DEFEND	RP

                                     0000   145  

                                     0000   146 ;

                                     0000   147 ; DEFINE DEVICE DEPENDENT UNIT CONTROL BLOCK OFFSETS

                                     0000   148 ;

                                     0000   149  

                                     0000   150 	$DEFINI	UCB

                                     0000   151  

                           00000094  0000   152 .=UCB$W_BCR+2				;

                                     0094   153  

                                     0094   154 $DEF	UCB$L_DB_SR	.BLKL	1	;SAVE MBA STATUS REGISTER

                                     0098   155  

                                     0098   156 	$DEFEND

                                     0000   157  

                                     0000   158 ;

                                     0000   159 ; HARDWARE FUNCTION CODES

                                     0000   160 ;

                                     0000   161  

                           00000000  0000   162 F_NOP=0*2				;NO OPERATION

                           00000002  0000   163 F_UNLOAD=1*2				;UNLOAD DRIVE

                           00000004  0000   164 F_SEEK=2*2				;SEEK CYLINDER

                           00000006  0000   165 F_RECAL=3*2				;RECALIBRATE

                           00000008  0000   166 F_DRVCLR=4*2				;DRIVE CLEAR

                           0000000A  0000   167 F_RELEASE=5*2				;RELEASE DRIVE

                           0000000C  0000   168 F_OFFSET=6*2				;OFFSET HEADS

                           0000000E  0000   169 F_RETCENTER=7*2				;RETURN TO CENTERLINE

                           00000010  0000   170 F_READPRESET=8*2			;READ IN PRESET

                           00000012  0000   171 F_PACKACK=9*2				;PACK ACKNOWLEDGE

DBDRIVER        - RP04/05/06 DISK DRIVER                         21-AUG-1978 23:49:59   VAX-11 MACRO X0.3-11               Page   4

01                                                                                                                               (1)



                           00000018  0000   172 F_SEARCH=12*2				;SEARCH FOR SECTOR

                           00000018  0000   173 F_SEARCHA=12*2				;SEARCH AHEAD FOR SECTOR

                           00000028  0000   174 F_WRITECHECK=20*2			;WRITE CHECK DATA

                           0000002A  0000   175 F_WRITECHECKH=21*2			;WRITE CHECK HEADER AND DATA

                           00000030  0000   176 F_WRITEDATA=24*2			;WRITE DATA

                           00000032  0000   177 F_WRITEHEAD=25*2			;WRITE HEADER AND DATA

                           00000038  0000   178 F_READDATA=28*2				;READ DATA

                           0000003A  0000   179 F_READHEAD=29*2				;READ HEADER AND DATA

                                     0000   180  

                                     0000   181 ;

                                     0000   182 ; LOCAL DATA

                                     0000   183 ;

                                     0000   184 ; DRIVER DISPATCH TABLE

                                     0000   185 ;

                                     0000   186  

                                 00000000   187 	.PSECT	WIONONPAGED

                                     0000   188 DB$DDT::				;ADDRESS OF DRIVER DISPATCH TABLE

                           0000009E' 0000   189 	.LONG	STARTIO			;START I/O OPERATION

                           000004AD' 0004   190 	.LONG	UNSOLNT			;UNSOLICITED INTERRUPT

                           0000003A' 0008   191 	.LONG	FUNCTABLE		;FUNCTION DECISION TABLE

                           00000000  000C   192 	.LONG	0			;CANCEL I/O ENTRY POINT

                           00000469' 0010   193 	.LONG	REGDUMP			;REGISTER DUMP ROUTINE

                               0080' 0014   194 	.WORD	<RP_EC2+4+MBA$L_BCR+4+8>+<<3+5+1>*4> ;SIZE OF DIAGNOSTIC BUFFER

                               00B0' 0016   195 	.WORD	<RP_EC2+4+MBA$L_BCR+4+8>+<1*4>+<EMB$L_DV_REGSAV> ;SIZE OF ERROR BUFFER

                           00000000  0018   196 	.LONG	0			; NO UNIT INTIALIZATION

                                     001C   197  

                                     001C   198 ;

                                     001C   199 ; DATA CHECK FUNCTION TRANSLATION TABLE

                                     001C   200 ;

                                     001C   201  

                                     001C   202 CHECKTAB:				;

                                 0A' 001C   203 	.BYTE	CDF_WRITECHECK		;WRITE DATA

                                 0A' 001D   204 	.BYTE	CDF_WRITECHECK		;READ DATA

                                 0F' 001E   205 	.BYTE	CDF_WRITECHECKH		;WRITE HEADER AND DATA

                                 0F' 001F   206 	.BYTE	CDF_WRITECHECKH		;READ HEADER AND DATA

                                     0020   207  

                                     0020   208 ;

                                     0020   209 ; HARDWARE I/O FUNCTION CODE TABLE

                                     0020   210 ;

                                     0020   211  

                                     0020   212 FTAB:					;

                                     0020   213 	GENF	F_NOP			;NO OPERATION

                                     0021   214 	GENF	F_UNLOAD		;UNLOAD VOLUME

                                     0022   215 	GENF	F_SEEK			;SEEK CYLINDER

                                     0023   216 	GENF	F_RECAL			;RECALIBRATE

                                     0024   217 	GENF	F_DRVCLR		;DRIVE CLEAR

                                     0025   218 	GENF	F_RELEASE		;RELEASE PORT

                                     0026   219 	GENF	F_OFFSET		;OFFSET HEADS

                                     0027   220 	GENF	F_RETCENTER		;RETURN HEADS TO CENTERLINE

                                     0028   221 	GENF	F_PACKACK		;PACK ACKNOWLEDGE

                                     0029   222 	GENF	F_SEARCH		;SEARCH FOR SECTOR

                                     002A   223 	GENF	F_WRITECHECK		;WRITE CHECK

                                     002B   224 	GENF	F_WRITEDATA		;WRITE DATA

                                     002C   225 	GENF	F_READDATA		;READ DATA

                                     002D   226 	GENF	F_WRITEHEAD		;WRITE HEADER AND DATA

                                     002E   227 	GENF	F_READHEAD		;READ HEADER AND DATA

                                     002F   228 	GENF	F_WRITECHECKH		;WRITE CHECK HEADER AND DATA

DBDRIVER        - RP04/05/06 DISK DRIVER                         21-AUG-1978 23:49:59   VAX-11 MACRO X0.3-11               Page   5

01                                                                                                                               (1)



                                     0030   229 	GENF	F_READPRESET		;READ IN PRESET

                                     0031   230 	GENF	F_SEARCHA		;SEARCH AHEAD FOR SECTOR

                                     0032   231  

                                     0032   232 ;

                                     0032   233 ; OFFSET TABLE FOR RP06 - RP04 VALUES = RP06 VALUES * 2 & ^XFF

                                     0032   234 ;

                                     0032   235  

                                     0032   236 OFFTAB:					;

                                 00  0032   237 	.BYTE	0			;RETURN TO CENTERLINE

                                 08  0033   238 	.BYTE	^X8			;+200 (+400)

                                 C8  0034   239 	.BYTE	^XC8			;-200 (-400)

                                 10  0035   240 	.BYTE	^X10			;+400 (+800)

                                 D0  0036   241 	.BYTE	^XD0			;-400 (-800)

                                 18  0037   242 	.BYTE	^X18			;+600 (+1200)

                                 D8  0038   243 	.BYTE	^XD8			;-600 (-1200)

                                 00  0039   244 	.BYTE	0			;RETURN TO CENTERLINE

                           00000008  003A   245 OFFSIZ=.-OFFTAB				;SIZE OF OFFSET TABLE

DBDRIVER        - RP04/05/06 DISK DRIVER                         21-AUG-1978 23:49:59   VAX-11 MACRO X0.3-11               Page   6

01              RP04/05/06 FUNCTION DECISION TABLE                                                                               (1)



                                     003A   247 	.SBTTL	RP04/05/06 FUNCTION DECISION TABLE

                                     003A   248 ;+

                                     003A   249 ; RP04/05/06 FUNCTION DECISION TABLE

                                     003A   250 ;-

                                     003A   251  

                                     003A   252 FUNCTABLE:				;FUNCTION DECISION TABLE

                                     003A   253 	FUNCTAB	,-			;LEGAL FUNCTIONS

                                     003A   254 		<NOP,-			;NO OPERATION

                                     003A   255 		 UNLOAD,-		;UNLOAD VOLUME

                                     003A   256 		 SEEK,-			;SEEK CYLINDER

                                     003A   257 		 RECAL,-		;RECALIBRATE

                                     003A   258 		 DRVCLR,-		;DRIVE CLEAR

                                     003A   259 		 RELEASE,-		;RELEASE PORT

                                     003A   260 		 OFFSET,-		;OFFSET HEADS

                                     003A   261 		 RETCENTER,-		;RETURN HEADS TO CENTERLINE

                                     003A   262 		 PACKACK,-		;PACK ACKNOWLEDGE

                                     003A   263 		 SEARCH,-		;SEARCH FOR SECTOR

                                     003A   264 		 READPRESET,-		;READ IN PRESET

                                     003A   265 		 WRITECHECK,-		;WRITE CHECK

                                     003A   266 		 WRITEHEAD,-		;WRITE HEADER AND DATA

                                     003A   267 		 READHEAD,-		;READ HEADER AND DATA

                                     003A   268 		 WRITECHECKH,-		;WRITE CHECK HEADER AND DATA

                                     003A   269 		 READLBLK,-		;READ LOGICAL BLOCK

                                     003A   270 		 WRITELBLK,-		;WRITE LOGICAL BLOCK

                                     003A   271 		 READPBLK,-		;READ PHYSICAL BLOCK

                                     003A   272 		 WRITEPBLK,-		;WRITE PHYSICAL BLOCK

                                     003A   273 		 READVBLK,-		;READ VIRTUAL BLOCK

                                     003A   274 		 WRITEVBLK,-		;WRITE VIRTUAL BLOCK

                                     003A   275 		 ACCESS,-		;ACCESS FILE AND/OR FIND DIRECTORY ENTRY

                                     003A   276 		 ACPCONTROL,-		;ACP CONTROL FUNCTION

                                     003A   277 		 CREATE,-		;CREATE FILE AND/OR CREATE DIRECTORY ENTRY

                                     003A   278 		 DEACCESS,-		;DEACCESS FILE

                                     003A   279 		 DELETE,-		;DELETE FILE AND/OR DIRECTORY ENTRY

                                     003A   280 		 MODIFY>		;MODIFY FILE ATTRIBUTES

                                     0042   281 	FUNCTAB	,-			;BUFFERED I/O FUNCTIONS

                                     0042   282 		<ACCESS,-		;ACCESS FILE AND/OR FIND DIRECTORY ENTRY

                                     0042   283 		 ACPCONTROL,-		;ACP CONTROL FUNCTION

                                     0042   284 		 CREATE,-		;CREATE FILE AND/OR CREATE DIRECTORY ENTRY

                                     0042   285 		 DEACCESS,-		;DEACCESS FILE

                                     0042   286 		 DELETE,-		;DELETE FILE AND/OR DIRECTORY ENTRY

                                     0042   287 		 MODIFY>		;MODIFY FILE ATTRIBUTES

                                     004A   288 	FUNCTAB	ACP$READBLK,-		;READ FUNCTIONS

                                     004A   289 		<READHEAD,-		;READ HEADER

                                     004A   290 		 READLBLK,-		;READ LOGICAL BLOCK

                                     004A   291 		 READPBLK,-		;READ PHYSICAL BLOCK

                                     004A   292 		 READVBLK>		;READ VIRTUAL BLOCK

                                     0056   293 	FUNCTAB	ACP$WRITEBLK,-		;WRITE FUNCTIONS

                                     0056   294 		<WRITECHECK,-		;WRITE CHECK

                                     0056   295 		 WRITECHECKH,-		;WRITE CHECK HEADER AND DATA

                                     0056   296 		 WRITEHEAD,-		;WRITE HEADER

                                     0056   297 		 WRITELBLK,-		;WRITE LOGICAL BLOCK

                                     0056   298 		 WRITEPBLK,-		;WRITE PHYSICAL BLOCK

                                     0056   299 		 WRITEVBLK>		;WRITE VIRTUAL BLOCK

                                     0062   300 	FUNCTAB	ACP$ACCESS,<ACCESS,CREATE> ;ACCESS AND CREATE FILE OR DIRECTORY

                                     006E   301 	FUNCTAB	ACP$DEACCESS,<DEACCESS>	;DEACCESS FILE

                                     007A   302 	FUNCTAB	ACP$MODIFY,-		;

                                     007A   303 		<ACPCONTROL,-		;ACP CONTROL FUNCTION

DBDRIVER        - RP04/05/06 DISK DRIVER                         21-AUG-1978 23:49:59   VAX-11 MACRO X0.3-11               Page   7

01              RP04/05/06 FUNCTION DECISION TABLE                                                                               (1)



                                     007A   304 		 DELETE,-		;DELETE FILE OR DIRECTORY ENTRY

                                     007A   305 		 MODIFY>		;MODIFY FILE ATTRIBUTES

                                     0086   306 	FUNCTAB	EXE$ZEROPARM,-		;ZERO PARAMETER FUNCTIONS

                                     0086   307 		<NOP,-			;NO OPERATION

                                     0086   308 		 UNLOAD,-		;UNLOAD VOLUME

                                     0086   309 		 RECAL,-		;RECALIBRATE

                                     0086   310 		 DRVCLR,-		;DRIVE CLEAR

                                     0086   311 		 RELEASE,-		;RELEASE PORT

                                     0086   312 		 RETCENTER,-		;RETURN HEADS TO CENTERLINE

                                     0086   313 		 READPRESET,-		;READ IN PRESET

                                     0086   314 		 PACKACK>		;PACK ACKNOWLEDGE

                                     0092   315 	FUNCTAB	EXE$ONEPARM,-		;ONE PARAMETER FUNCTIONS

                                     0092   316 		<SEEK,-			;SEEK CYLINDER

                                     0092   317 		 OFFSET,-		;OFFSET HEADS

                                     0092   318 		 SEARCH>		;SEARCH FOR SECTOR

DBDRIVER        - RP04/05/06 DISK DRIVER                         21-AUG-1978 23:49:59   VAX-11 MACRO X0.3-11               Page   8

01              START I/O OPERATION                                                                                              (1)



                                     009E   320 	.SBTTL	START I/O OPERATION

                                     009E   321 ;+

                                     009E   322 ; STARTIO - START I/O OPERATION ON DEVICE UNIT

                                     009E   323 ;

                                     009E   324 ; THIS ENTRY POINT IS ENTERED TO START AN I/O OPERATION ON A DEVICE UNIT.

                                     009E   325 ;

                                     009E   326 ; INPUTS:

                                     009E   327 ;

                                     009E   328 ;	R3 = ADDRESS OF I/O PACKET.

                                     009E   329 ;	R5 = UCB ADDRESS OF DEVICE UNIT.

                                     009E   330 ;

                                     009E   331 ; OUTPUTS:

                                     009E   332 ;

                                     009E   333 ;	******OUTPUTS*******

                                     009E   334 ;-

                                     009E   335  

                                     009E   336 STARTIO:				;START I/O OPERATION

         70 A5         71 A5     90  009E   337 	MOVB	UCB$B_ERTMAX(R5),UCB$B_ERTCNT(R5) ;INITIALIZE ERROR RETRY COUNT

       0084 C5         20 A3     B0  00A3   338 	MOVW	IRP$W_FUNC(R3),UCB$W_FUNC(R5) ;SAVE FUNCTION CODE AND MODIFIERS

            50         34 A3     D0  00A9   339 	MOVL	IRP$L_MEDIA(R3),R0	;GET PARAMETER LONGWORD

                                     00AD   340  

                                     00AD   341 ;

                                     00AD   342 ; MOVE FUNCTION DEPENDENT PARAMETERS TO UCB

                                     00AD   343 ;

                                     00AD   344  

                          00     EF  00AD   345 10$:	EXTZV	#IRP$V_FCODE,#IRP$S_FCODE,- ;EXTRACT I/O FUNCTION CODE

         20 A3            06         00AF   346 		IRP$W_FUNC(R3),R1	;

                          51         00B2       

            51            02     91  00B3   347 	CMPB	#IO$_SEEK,R1 		;SEEK FUNCTION?

                          19     13  00B6   348 	BEQL	20$			;IF EQL YES

            51            06     91  00B8   349 	CMPB	#IO$_OFFSET,R1 		;OFFSET FUNCTION?

                          1B     13  00BB   350 	BEQL	30$			;IF EQL YES

            51            09     91  00BD   351 	CMPB	#IO$_SEARCH,R1		;SEARCH FUNCTION?

                          1D     13  00C0   352 	BEQL	40$			;IF EQL YES

       0088 C5            50     D0  00C2   353 	MOVL	R0,UCB$W_DA(R5)		;STORE PARAMETER LONGWORD

            51            18     91  00C7   354 	CMPB	#IO$_WRITECHECKH,R1	;DISJOINT FUNCTION CODE?

                          18     1A  00CA   355 	BGTRU	50$			;IF GTRU NO

            51            09     A2  00CC   356 	SUBW	#IO$_WRITECHECKH-IO$_READHEAD-1,R1 ;CONVERT TO DENSE FUNCTION CODE

                          13     11  00CF   357 	BRB	50$			;

                                     00D1   358  

                                     00D1   359 ;

                                     00D1   360 ; SEEK FUNCTION - SET CYLINDER ADDRESS

                                     00D1   361 ;

                                     00D1   362  

       008A C5            50     B0  00D1   363 20$:	MOVW	R0,UCB$W_DC(R5)		;SET CYLINDER ADDRESS

                          0C     11  00D6   364 	BRB	50$			;

                                     00D8   365  

                                     00D8   366 ;

                                     00D8   367 ; OFFSET FUNCTION - SET CURRENT OFFSET VALUE

                                     00D8   368 ;

                                     00D8   369  

       0086 C5            50     90  00D8   370 30$:	MOVB	R0,UCB$W_OFFSET(R5)	;SET OFFSET VALUE

                          05     11  00DD   371 	BRB	50$			;

                                     00DF   372  

                                     00DF   373 ;

                                     00DF   374 ; SEARCH FUNCTION - SET SECTOR ADDRESS

                                     00DF   375 ;

DBDRIVER        - RP04/05/06 DISK DRIVER                         21-AUG-1978 23:49:59   VAX-11 MACRO X0.3-11               Page   9

01              START I/O OPERATION                                                                                              (1)



                                     00DF   376  

       0088 C5            50     90  00DF   377 40$:	MOVB	R0,UCB$W_DA(R5)		;SET SECTOR ADDRESS

                                     00E4   378  

                                     00E4   379 ;

                                     00E4   380 ; FINISH PREPROCESSING

                                     00E4   381 ;

                                     00E4   382  

         76 A5            51     90  00E4   383 50$:	MOVB	R1,UCB$B_FEX(R5)	;SAVE FUNCTION DISPATCH INDEX

            54         20 A5     D0  00E8   384 	MOVL	UCB$L_CRB(R5),R4	;GET ADDRESS OF CRB

            54         1C B4     D0  00EC   385 	MOVL	@CRB$L_INTD+VEC$L_IDB(R4),R4 ;GET FIRST CONTROLLER CSR ADDRESS

         5A A5            00     E4  00F0   386 	BBSC	#UCB$V_ECC,UCB$W_DEVSTS(R5),FDISPATCH ;CLEAR ECC CORRECTION MADE

                          00         00F4       

                                     00F5   387  

                                     00F5   388 ;

                                     00F5   389 ; CENTRAL FUNCTION DISPATCH

                                     00F5   390 ;

                                     00F5   391  

                                     00F5   392 FDISPATCH:				;FUNCTION DISPATCH

            50         76 A5     9A  00F5   393 	MOVZBL	UCB$B_FEX(R5),R0	;GET DISPATCH FUNCTION CODE

         58 A5       0068 8F     AA  00F9   394 	BICW	#UCB$M_CANCEL!-		;CLEAR CANCEL I/O,

                                     00FF   395 		UCB$M_POWER!-		;POWERFAIL, AND

                                     00FF   396 		UCB$M_TIMOUT,UCB$W_STS(R5) ;TIMEOUT STATUS BITS

       0087 C5            10     90  00FF   397 	MOVB	#RP_OF_M_FMT/256,UCB$W_OFFSET+1(R5) ;CLEAR ECI, HCI, AND SET FORMAT

       0091 C5            01     90  0104   398 	MOVB	#1,UCB$B_OFFRTC(R5)	;SET INITIAL OFFSET RETRY COUNT

                     0090 C5     94  0109   399 	CLRB	UCB$B_OFFNDX(R5)	;CLEAR INITIAL OFFSET TABLE INDEX

                                     010D   400 	CASE	R0,<-			;DISPATCH TO FUNCTION HANDLING ROUTINE

                                     010D   401 		WRITECHECK,-		;WRITE CHECK DATA

                                     010D   402 		WRITEDATA,-		;WRITE DATA

                                     010D   403 		READDATA,-		;READ DATA

                                     010D   404 		WRITEHEAD,-		;WRITE HEADER AND DATA

                                     010D   405 		READHEAD,-		;READ HEADER AND DATA

                                     010D   406 		WRITECHECKH,-		;WRITE CHECK HEADER AND DATA

                                     010D   407 		>,LIMIT=#CDF_WRITECHECK	;

                                     011D   408  

                                     011D   409 ;

                                     011D   410 ; NO OPERATION, UNLOAD, SEEK, RECALIBRATE, DRIVE CLEAR, RELEASE, OFFSET,

                                     011D   411 ; RETURN TO CENTER LINE, PACK ACKNOWLEDGE, SEARCH, AND READ IN PRESET

                                     011D   412 ;

                                     011D   413  

                                     011D   414 NOP:					;NO OPERATION

                                     011D   415 UNLOAD:					;UNLOAD DRIVE

                                     011D   416 SEEK:					;SEEK CYLINDER

                                     011D   417 RECAL:					;RECALIBRATE

                                     011D   418 DRVCLR:					;DRIVE CLEAR

                                     011D   419 RELEASE:				;RELEASE PORT

                                     011D   420 OFFSET:					;OFFSET READ HEADS

                                     011D   421 RETCENTER:				;RETURN TO CENTERLINE

                                     011D   422 PACKACK:				;PACK ACKNOWLEDGE

                                     011D   423 SEARCH:					;SEARCH FOR SECTOR

                                     011D   424 READPRESET:				;READIN PRESET

                                     011D   425 	EXFUNC	RETRY			;EXECUTE HOUSEKEEPING FUNCTION

                          64     11  0121   426 	BRB	NORMAL			;

                                     0123   427  

                                     0123   428 ;

                                     0123   429 ; WRITE CHECK DATA AND WRITE CHECK HEADER AND DATA

                                     0123   430 ;

                                     0123   431  

DBDRIVER        - RP04/05/06 DISK DRIVER                         21-AUG-1978 23:49:59   VAX-11 MACRO X0.3-11               Page  10

01              START I/O OPERATION                                                                                              (1)



                                     0123   432 WRITECHECK:				;WRITE CHECK DATA

                                     0123   433 WRITECHECKH:				;WRITE CHECK HEADER AND DATA

       0084 C5            0E     E4  0123   434 	BBSC	#IO$V_DATACHECK,UCB$W_FUNC(R5),WRITEDATA ;CLEAR DATA CHECK REQUEST

                          00         0128       

                                     0129   435  

                                     0129   436 ;

                                     0129   437 ; WRITE DATA, WRITE HEADER AND DATA, WRITE CHECK DATA, AND WRITE CHECK HEADER

                                     0129   438 ; AND DATA

                                     0129   439 ;

                                     0129   440  

                                     0129   441 WRITEDATA:				;WRITE DATA

                                     0129   442 WRITEHEAD:				;WRITE HEADER AND DATA

       0087 C5            08     88  0129   443 	BISB	#RP_OF_M_ECI/256,UCB$W_OFFSET+1(R5) ;INHIBIT ECC CORRECTION 

                                     012E   444  

                                     012E   445 ;

                                     012E   446 ; READ DATA, READ HEADER AND DATA, WRITE DATA, WRITE HEADER AND DATA, WRITE

                                     012E   447 ; CHECK DATA, AND WRITE CHECK HEADER AND DATA

                                     012E   448 ;

                                     012E   449  

                                     012E   450 READDATA:				;READ DATA

                                     012E   451 READHEAD:				;READ HEADER AND DATA

       0084 C5            0C     E0  012E   452 	BBS	#IO$V_INHSEEK,UCB$W_FUNC(R5),TRANRQCH ;IF SET, NO EXPLICIT SEEK

                          07         0133       

                                     0134   453 	EXFUNC	RETRY,F_SEARCHA		;SEARCH AHEAD OF STARTING SECTOR

                                     013B   454  

                                     013B   455 ;

                                     013B   456 ; DATA TRANSFER - REQUEST CHANNEL

                                     013B   457 ;

                                     013B   458  

                                     013B   459 TRANRQCH:				;DATA TRANSFER REQUEST CHANNEL

                                     013B   460 	REQPCHAN LOW			;REQUEST PRIMARY CHANNEL FOR TRANSFER

                                     013E   461  

                                     013E   462 ;

                                     013E   463 ; DATA TRANSFER - CHANNEL ALREADY OWNED

                                     013E   464 ;

                                     013E   465  

                                     013E   466 TRANNOCH:				;DATA TRANSFER CHANNEL OWNED

            50         76 A5     9A  013E   467 	MOVZBL	UCB$B_FEX(R5),R0	;GET FUNCTION DISPATCH INDEX

                                     0142   468 	EXFUNC	TRANXT			;EXECUTE TRANSFER FUNCTION

                                     0146   469  

                                     0146   470 ;

                                     0146   471 ; DATA CHECK

                                     0146   472 ;

                                     0146   473  

                                     0146   474 DATACHECK:				;DATA CHECK

       0084 C5            0E     E1  0146   475 	BBC	#IO$V_DATACHECK,UCB$W_FUNC(R5),NORMAL ;IF CLR, NO DATA CHECK

                          3B         014B       

            50       0000'8F     3C  014C   476 	MOVZWL	#SS$_WASECC,R0		;ASSUME ECC CORRECTION WAS MADE

         5A A5            00     E0  0151   477 	BBS	#UCB$V_ECC,UCB$W_DEVSTS(R5),CHECKXT ;IF SET, ECC CORRECTION MADE

                          34         0155       

                                     0156   478 	RELCHAN				;RELEASE CHANNEL

       0087 C5            19     90  0159   479 	MOVB	#<RP_OF_M_DCK!-		;SET DATA CHECK IN PROGRESS,

                                     015E   480 		RP_OF_M_ECI!-		;INHIBIT ECC CORRECTION, AND

                                     015E   481 		RP_OF_M_FMT>/256,UCB$W_OFFSET+1(R5) ;SET FORMAT

       0091 C5            01     90  015E   482 	MOVB	#1,UCB$B_OFFRTC(R5)	;SET INITIAL OFFSET RETRY COUNT

                     0090 C5     94  0163   483 	CLRB	UCB$B_OFFNDX(R5)	;CLEAR INITIAL OFFSET TABLE INDEX

            52         4C A5     D0  0167   484 	MOVL	UCB$L_IRP(R5),R2	;GET ADDRESS OF IRP

DBDRIVER        - RP04/05/06 DISK DRIVER                         21-AUG-1978 23:49:59   VAX-11 MACRO X0.3-11               Page  11

01              START I/O OPERATION                                                                                              (1)



         68 A5         2C A2     7D  016B   485 	MOVQ	IRP$L_SVAPTE(R2),UCB$L_SVAPTE(R5) ;RESET TRANSFER PARAMETERS

       0088 C5         34 A2     D0  0170   486 	MOVL	IRP$L_MEDIA(R2),UCB$W_DA(R5) ;

                                     0176   487  

                                     0176   488 ;

                                     0176   489 ; DATA CHECK RETRY

                                     0176   490 ;

                                     0176   491  

                                     0176   492 CHECKRETRY:				;DATA CHECK RETRY

                                     0176   493 	REQPCHAN LOW			;REQUEST PRIMARY CHANNEL FOR DATA CHECK

            50         76 A5     9A  0179   494 	MOVZBL	UCB$B_FEX(R5),R0	;GET FUNCTION DISPATCH INDEX

            50       FE8F CF40   9A  017D   495 	MOVZBL	CHECKTAB-CDF_WRITEDATA[R0],R0 ;GET CASE TABLE INDEX

                                     0183   496 	EXFUNC	TRANXT			;EXECUTE DATA CHECK FUNCTION

                                     0187   497  

                                     0187   498 ;

                                     0187   499 ; SUCCESSFUL OPERATION COMPLETION

                                     0187   500 ;

                                     0187   501  

                                     0187   502 NORMAL:					;

            50            00'    3C  0187   503 	MOVZWL	S^#SS$_NORMAL,R0		;SET NORMAL COMPLETION STATUS

                                     018A   504 CHECKXT:				;

                          0167   31  018A   505 	BRW	FUNCXT			;

                                     018D   506  

                                     018D   507 ;

                                     018D   508 ; TRANSFER ENDED WITH A RETRIABLE ERROR

                                     018D   509 ;

                                     018D   510  

                                     018D   511 TRANXT:					;TRANSFER EXIT

         77 A5            0B     91  018D   512 	CMPB	#CDF_WRITEDATA,UCB$B_CEX(R5) ;WRITE DATA FUNCTION?

                          16     13  0191   513 	BEQL	RETRY			;IF EQL YES

         77 A5            0D     91  0193   514 	CMPB	#CDF_WRITEHEAD,UCB$B_CEX(R5) ;WRITE HEADER FUNCTION?

                          10     13  0197   515 	BEQL	RETRY			;IF EQL YES

            51   00060F74 8F     D3  0199   516 	BITL	#MBA$M_SR_DLT!-		;DATA LATE OR,

                                     01A0   517 		MBA$M_SR_INVMAP!-	;INVALID MAP REGISTER OR,

                                     01A0   518 		MBA$M_SR_MAPPE!-	;MAP REGISTER PARITY ERROR OR,

                                     01A0   519 		MBA$M_SR_MCPE!-		;MASSBUS CONTROL PARITY ERROR OR,

                                     01A0   520 		MBA$M_SR_MDPE!-		;MASSBUS DATA PARITY ERROR OR,

                                     01A0   521 		MBA$M_SR_MXF!-		;MISSED TRANSFER OR,

                                     01A0   522 		MBA$M_SR_NED!-		;NONEXISTENT DISK OR,

                                     01A0   523 		MBA$M_SR_RDS!-		;READ DATA SUBSTITUTE OR,

                                     01A0   524 		MBA$M_SR_WCKLWR!-	;WRITE CHECK LOWER BYTE OR,

                                     01A0   525 		MBA$M_SR_WCKUPR,R1	;WRITE CHECK UPPER BYTE?

                          07     12  01A0   526 	BNEQ	RETRY			;IF NEQ YES - RETRY FUNCTION

            52       2038 8F     B3  01A2   527 	BITW	#RP_ER1_M_FER!-		;FORMAT ERROR OR,

                                     01A7   528 		RP_ER1_M_OPI!-		;OPERATION INCOMPLETE OR,

                                     01A7   529 		RP_ER1_M_PAR!-		;PARITY ERROR OR,

                                     01A7   530 		RP_ER1_M_WCF,R2		;WRITE CLOCK FAIL?

                          03     13  01A7   531 	BEQL	ECC			;IF EQL NO

                                     01A9   532 RETRY:					;

                          00B3   31  01A9   533 	BRW	RETRYERR		;RETRIABLE ERROR

                                     01AC   534  

                                     01AC   535 ;

                                     01AC   536 ; ECC, DRIVE TIMING, OR HEADER ERROR - APPLY ECC OR PERFORM OFFSET RECOVERY

                                     01AC   537 ;

                                     01AC   538  

                                     01AC   539 ECC:					;ECC CORRECTION

            50       0092 C5     3C  01AC   540 	MOVZWL	UCB$W_BCR(R5),R0	;GET NEGATIVE NUMBER OF BYTES REMAINING

            50         6E A5     A0  01B1   541 	ADDW	UCB$W_BCNT(R5),R0	;CALCULATE NUMBER OF BYTES TRANSFERED

DBDRIVER        - RP04/05/06 DISK DRIVER                         21-AUG-1978 23:49:59   VAX-11 MACRO X0.3-11               Page  12

01              START I/O OPERATION                                                                                              (1)



            51            50     D0  01B5   542 	MOVL	R0,R1			;COPY NUMBER OF BYTES TRANSFERED

                          31     13  01B8   543 	BEQL	OFF			;IF EQL NONE - PERFORM OFFSET RECOVERY

            52       0180 8F     B3  01BA   544 	BITW	#RP_ER1_M_HCE!-		;HEADER COMPARE ERROR OR,

                                     01BF   545 		RP_ER1_M_HCRC,R2	;HEADER CRC ERROR?

                          02     12  01BF   546 	BNEQ	10$			;IF NEQ YES

                          50     D7  01C1   547 	DECL	R0			;SET TO TRUNCATE LAST BLOCK TRANSFERED

            50       01FF 8F     AA  01C3   548 10$:	BICW	#^X1FF,R0		;TRUNCATE RESIDUAL BYTES TRANSFERED

            52       11C0 8F     B3  01C8   549 	BITW	#RP_ER1_M_DTE!-		;DRIVE TIMING ERROR OR,

                                     01CD   550 		RP_ER1_M_ECH!-		;ECC HARD ERROR OR,

                                     01CD   551 		RP_ER1_M_HCE!-		;HEADER COMPARE ERROR OR,

                                     01CD   552 		RP_ER1_M_HCRC,R2	;HEADER CRC ERROR?

                          1C     12  01CD   553 	BNEQ	OFF			;IF NEQ YES - PERFORM OFFSET RECOVERY

       0086 C5            0B     E0  01CF   554 	BBS	#RP_OF_V_ECI,UCB$W_OFFSET(R5),OFF ;IF SET, ECC INHIBITED

                          16         01D4       

                          51     DD  01D5   555 	PUSHL	R1			;SAVE TOTAL NUMBER OF BYTES TRANSFERED

                          FE26'  30  01D7   556 	BSBW	IOC$APPLYECC		;APPLY ECC CORRECTION

                          50   8ED0  01DA   557 	POPL	R0			;RETRIEVE TRANSFERED BYTE COUNT

                          FE20'  30  01DD   558 	BSBW	IOC$UPDATRANSP		;UPDATE TRANSFER PARAMETERS

                       6E A5     B5  01E0   559 	TSTW	UCB$W_BCNT(R5)		;ANY MORE TO TRANSFER?

                          03     13  01E3   560 	BEQL	20$			;IF EQL NO

                          FF56   31  01E5   561 	BRW	TRANNOCH		;TRANSFER NEXT SEGMENT

                          FF5B   31  01E8   562 20$:	BRW	DATACHECK		;CHECK FOR WRITE CHECK

                                     01EB   563  

                                     01EB   564 ;

                                     01EB   565 ; OFF - OFFSET RECOVERY

                                     01EB   566 ;

                                     01EB   567 ; THIS CODE IS EXECUTED WHEN A DRIVE TIMING ERROR, HEADER COMPARE, OR ECC

                                     01EB   568 ; HARD ERROR IS DETECTED ON A READ FUNCTION.

                                     01EB   569 ;

                                     01EB   570  

                                     01EB   571 OFF:					;OFFSET RECOVERY

                          50     D5  01EB   572 	TSTL	R0			;ANY GOOD DATA TRANSFERED?

                          1F     13  01ED   573 	BEQL	20$			;IF EQL NO

                                     01EF   574  

                                     01EF   575 ;

                                     01EF   576 ; THE TRANSFER ENDED IN AN ERROR BUT THERE WERE SECTORS TRANSFERED THAT

                                     01EF   577 ; CONTAINED GOOD DATA. SINCE THE ERROR COULD HAVE BEEN CAUSED BY A CYLIN-

                                     01EF   578 ; DER CROSSING, THE GOOD DATA IS SAVED AND THE TRANSFER IS RETRIED FROM THE

                                     01EF   579 ; POINT OF ERROR.

                                     01EF   580 ;

                                     01EF   581  

                          FE0E'  30  01EF   582 	BSBW	IOC$UPDATRANSP		;UPDATE TRANSFER PARAMETERS

                     0090 C5     94  01F2   583 	CLRB	UCB$B_OFFNDX(R5)	;RESET OFFSET TABLE INDEX

       0091 C5            10     90  01F6   584 10$:	MOVB	#16,UCB$B_OFFRTC(R5)	;SET OFFSET RETRY COUNT

       0090 C5            08     91  01FB   585 	CMPB	#OFFSIZ,UCB$B_OFFNDX(R5) ;ALL OFFSETS TRIED?

                          68     13  0200   586 	BEQL	OFFSETERR		;IF EQL YES

                                     0202   587 	RELCHAN				;RELEASE CHANNEL

                                     0205   588 	EXFUNC	FATALERR,F_RETCENTER	;RETURN TO CENTERLINE

                          40     11  020C   589 	BRB	50$			;

                                     020E   590  

                                     020E   591 ;

                                     020E   592 ; NO GOOD DATA TRANSFERED - CHECK IF CHANGE IN OFFSET NEEDED

                                     020E   593 ;

                                     020E   594  

            52       90C0 8F     B3  020E   595 20$:	BITW	#RP_ER1_M_DCK!-		;DATA CHECK OR,

                                     0213   596 		RP_ER1_M_DTE!-		;DRIVE TIMING OR,

                                     0213   597 		RP_ER1_M_ECH!-		;ECC HARD ERROR OR,

DBDRIVER        - RP04/05/06 DISK DRIVER                         21-AUG-1978 23:49:59   VAX-11 MACRO X0.3-11               Page  13

01              START I/O OPERATION                                                                                              (1)



                                     0213   598 		RP_ER1_M_HCE,R2		;HEADER COMPARE ERROR?

                          05     12  0213   599 	BNEQ	30$			;IF NEQ YES

       0087 C5            04     88  0215   600 	BISB	#RP_OF_M_HCI/256,UCB$W_OFFSET+1(R5) ;SET HEADER COMPARE INHIBIT

                     0091 C5     97  021A   601 30$:	DECB	UCB$B_OFFRTC(R5)	;CHANGE CURRENT OFFSET?

                          33     12  021E   602 	BNEQ	60$			;IF NEQ NO

                     0090 C5     96  0220   603 	INCB	UCB$B_OFFNDX(R5)	;UPDATE OFFSET TABLE INDEX

            50       0090 C5     9A  0224   604 	MOVZBL	UCB$B_OFFNDX(R5),R0	;GET NEXT OFFSET TABLE INDEX

            50       FE03 CF40   9A  0229   605 	MOVZBL	OFFTAB-1[R0],R0		;GET NEXT OFFSET VALUE?

                          C5     13  022F   606 	BEQL	10$			;IF EQL RETURN TO CENTERLINE

         18 A3            02     D3  0231   607 	BITL	#2,RP_DT(R3)		;RP06 DRIVE?

                          03     12  0235   608 	BNEQ	40$			;IF NEQ YES

            50            02     C4  0237   609 	MULL	#2,R0			;CONVERT TO RP04 OFFSET VALUE

       0086 C5            50     90  023A   610 40$:	MOVB	R0,UCB$W_OFFSET(R5)	;SET NEW OFFSET VALUE

       0091 C5            02     90  023F   611 	MOVB	#2,UCB$B_OFFRTC(R5)	;SET OFFSET RETRY COUNT

                                     0244   612 	RELCHAN				;RELEASE CHANNEL

                                     0247   613 	EXFUNC	FATALERR,F_OFFSET	;OFFSET TO NEXT POSITION

       0087 C5            04     8A  024E   614 50$:	BICB	#RP_OF_M_HCI/256,UCB$W_OFFSET+1(R5) ;CLEAR HEADER COMPARE INHIBIT

       0086 C5            08     E0  0253   615 60$:	BBS	#RP_OF_V_DCK,UCB$W_OFFSET(R5),70$ ;IF SET, DATA CHECK FUNCTION

                          03         0258       

                          FEDF   31  0259   616 	BRW	TRANRQCH		;TRY FUNCTION AGAIN

                          FF17   31  025C   617 70$:	BRW	CHECKRETRY		;TRY DATA CHECK AGAIN

                                     025F   618  

                                     025F   619 ;

                                     025F   620 ; RETRIABLE ERROR

                                     025F   621 ;

                                     025F   622  

                                     025F   623 RETRYERR:				;RETRIABLE ERROR

                       70 A5     97  025F   624 	DECB	UCB$B_ERTCNT(R5)	;ANY RETRIES LEFT?

                          0F     13  0262   625 	BEQL	FATALERR		;IF EQL NO

                                     0264   626 	RELCHAN				;RELEASE CHANNEL IF OWNED

                          FE8B   31  0267   627 	BRW	FDISPATCH		;

                                     026A   628  

                                     026A   629 ;

                                     026A   630 ; ALL OFFSETS TRIED - RETRIEVE FINAL TRANSFER STATUS

                                     026A   631 ;

                                     026A   632  

                                     026A   633 OFFSETERR:				;OFFSET RECOVERY ERROR

            50         04 A3     D0  026A   634 	MOVL	RP_DS(R3),R0		;RETRIEVE FINAL DRIVE STATUS

            51       0094 C5     D0  026E   635 	MOVL	UCB$L_DB_SR(R5),R1	;RETRIEVE FINAL ERROR STATUS

                                     0273   636  

                                     0273   637 ;

                                     0273   638 ; FATAL CONTROLLER/DRIVE ERROR, ERROR RETRY COUNT EXHAUSTED, ERROR RETRY

                                     0273   639 ; INHIBITED, OR FINAL OFFSET TRIED

                                     0273   640 ;

                                     0273   641  

                                     0273   642 FATALERR:				;FATAL ERROR - SET STATUS

            50            0C     E1  0273   643 	BBC	#RP_DS_V_MOL,R0,10$	;IF CLR, MEDIUM OFFLINE

                          71         0276       

            50            06     E1  0277   644 	BBC	#RP_DS_V_VV,R0,20$	;IF CLR, VOLUME INVALID

                          74         027A       

            50       0000'8F     3C  027B   645 	MOVZWL	#SS$_UNSAFE,R0		;SET DRIVE UNSAFE STATUS

            52            0E     E0  0280   646 	BBS	#RP_ER1_V_UNS,R2,FUNCXT	;IF SET, DRIVE UNSAFE

                          70         0283       

            50       0000'8F     3C  0284   647 	MOVZWL	#SS$_OPINCOMPL,R0	;SET OPERATION INCOMPLETE STATUS

            52            0D     E0  0289   648 	BBS	#RP_ER1_V_OPI,R2,FUNCXT	;IF SET, OPERATION INCOMPLETE

                          67         028C       

            50       0000'8F     3C  028D   649 	MOVZWL	#SS$_FORMAT,R0		;SET FORMAT ERROR STATUS

DBDRIVER        - RP04/05/06 DISK DRIVER                         21-AUG-1978 23:49:59   VAX-11 MACRO X0.3-11               Page  14

01              START I/O OPERATION                                                                                              (1)



            52            04     E0  0292   650 	BBS	#RP_ER1_V_FER,R2,FUNCXT	;IF SET, FORMAT ERROR

                          5E         0295       

            50       0000'8F     3C  0296   651 	MOVZWL	#SS$_WRITLCK,R0		;SET WRITE LOCK ERROR STATUS

            52            0B     E0  029B   652 	BBS	#RP_ER1_V_WLE,R2,FUNCXT	;IF SET, WRITE LOCK ERROR

                          55         029E       

            50       0000'8F     3C  029F   653 	MOVZWL	#SS$_IVADDR,R0		;SET INVALID DISK ADDRESS STATUS

            52       0600 8F     B3  02A4   654 	BITW	#RP_ER1_M_AOE!-		;DISK ADDRESS OVERFLOW OR,

                                     02A9   655 		RP_ER1_M_IAE,R2		;INVALID DISK ADDRESS ERROR?

                          49     12  02A9   656 	BNEQ	FUNCXT			;IF NEQ YES

            50       0000'8F     3C  02AB   657 	MOVZWL	#SS$_DRVERR,R0		;SET DRIVE ERROR STATUS

            52       1027 8F     B3  02B0   658 	BITW	#RP_ER1_M_DTE!-		;DRIVE TIMING ERROR OR,

                                     02B5   659 		RP_ER1_M_ILF!-		;ILLEGAL FUNCTION OR,

                                     02B5   660 		RP_ER1_M_ILR!-		;ILLEGAL REGISTER OR,

                                     02B5   661 		RP_ER1_M_RMR!-		;REGISTER MODIFY REFUSE OR,

                                     02B5   662 		RP_ER1_M_WCF,R2		;WRITE CLOCK FAIL ERROR?

                          3D     12  02B5   663 	BNEQ	FUNCXT			;IF NEQ YES

            50       0000'8F     3C  02B7   664 	MOVZWL	#SS$_PARITY,R0		;SET PARITY ERROR STATUS

            52       81C8 8F     B3  02BC   665 	BITW	#RP_ER1_M_DCK!-		;DATA CHECK ERROR OR,

                                     02C1   666 		RP_ER1_M_ECH!-		;ECC HARD ERROR OR,

                                     02C1   667 		RP_ER1_M_HCE!-		;HEADER COMPARE ERROR OR,

                                     02C1   668 		RP_ER1_M_HCRC!-		;HEADER CRC ERROR OR,

                                     02C1   669 		RP_ER1_M_PAR,R2		;PARITY ERROR?

                          31     12  02C1   670 	BNEQ	FUNCXT			;IF NEQ YES

            51   00020064 8F     D3  02C3   671 	BITL	#MBA$M_SR_MAPPE!-	;MAP PARITY ERROR OR,

                                     02CA   672 		MBA$M_SR_MCPE!-		;MASSBUS CONTROL PARITY ERROR OR,

                                     02CA   673 		MBA$M_SR_MDPE!-		;MASSBUS DATA PARITY ERROR OR,

                                     02CA   674 		MBA$M_SR_RDS,R1		;READ DATA SUBSTITUTE?

                          28     12  02CA   675 	BNEQ	FUNCXT			;IF NEQ YES

            50       0000'8F     3C  02CC   676 	MOVZWL	#SS$_DATACHECK,R0	;SET DATA CHECK ERROR STATUS

            51       0600 8F     B3  02D1   677 	BITW	#MBA$M_SR_WCKLWR!-	;WRITE CHECK ERROR LOWER BYTE OR,

                                     02D6   678 		MBA$M_SR_WCKUPR,R1	;WRITE CHECK ERROR UPPER BYTE?

                          1C     12  02D6   679 	BNEQ	FUNCXT			;IF NEQ YES

            50       0000'8F     3C  02D8   680 	MOVZWL	#SS$_NONEXDRV,R0	;SET NONEXISTENT DRIVE STATUS

            51            12     E0  02DD   681 	BBS	#MBA$V_SR_NED,R1,FUNCXT	;IF SET, NONEXISTENT DRIVE

                          13         02E0       

            50       0000'8F     3C  02E1   682 	MOVZWL	#SS$_CTRLERR,R0		;SET CONTROLLER ERROR STATUS

                          0C     11  02E6   683 	BRB	FUNCXT			;

            50       0000'8F     3C  02E8   684 10$:	MOVZWL	#SS$_MEDOFL,R0		;SET MEDIUM OFFLINE STATUS

                          05     11  02ED   685 	BRB	FUNCXT			;

            50       0000'8F     3C  02EF   686 20$:	MOVZWL	#SS$_VOLINV,R0		;SET VOLUME INVALID STATUS

                                     02F4   687  

                                     02F4   688 ;

                                     02F4   689 ; FUNCTION COMPLETION COMMON EXIT

                                     02F4   690 ;

                                     02F4   691  

                                     02F4   692 FUNCXT:					;FUNCTION EXIT

                          03     BB  02F4   693 	PUSHR	#^M<R0,R1>		;SAVE REGISTERS

                          FD07'  30  02F6   694 	BSBW	IOC$DIAGBUFILL		;FILL DIAGNOSTIC BUFFER IF PRESENT

                                     02F9   695 	RELCHAN				;RELEASE CHANNEL IF OWNED

         76 A5            0A     91  02FC   696 	CMPB	#CDF_WRITECHECK,UCB$B_FEX(R5) ;DRIVE RELATED FUNCTION?

                          12     1A  0300   697 	BGTRU	10$			;IF GTRU YES

         76 A5            10     91  0302   698 	CMPB	#CDF_READPRESET,UCB$B_FEX(R5) ;READIN PRESET FUNCTION?

                          0C     13  0306   699 	BEQL	10$			;IF EQL YES

            52         4C A5     D0  0308   700 	MOVL	UCB$L_IRP(R5),R2	;RETRIEVE ADDRESS OF IRP

         32 A2       0092 C5     A1  030C   701 	ADDW3	UCB$W_BCR(R5),IRP$W_BCNT(R2),2(SP) ;CALCULATE BYTES TRANSFERED

                       02 AE         0312       

                          03     BA  0314   702 10$:	POPR	#^M<R0,R1>		;RESTORE REGISTERS

DBDRIVER        - RP04/05/06 DISK DRIVER                         21-AUG-1978 23:49:59   VAX-11 MACRO X0.3-11               Page  15

01              START I/O OPERATION                                                                                              (1)



                                     0316   703 	REQCOM				;COMPLETE REQUEST

DBDRIVER        - RP04/05/06 DISK DRIVER                         21-AUG-1978 23:49:59   VAX-11 MACRO X0.3-11               Page  16

01              RP04/05/06 HARDWARE FUNCTION EXECUTION                                                                           (1)



                                     0319   705 	.SBTTL	RP04/05/06 HARDWARE FUNCTION EXECUTION

                                     0319   706 ;

                                     0319   707 ; FEX - RP04/05/06 HARDWARE FUNCTION EXECUTION

                                     0319   708 ;

                                     0319   709 ; THIS ROUTINE IS CALLED VIA A BSB WITH A BYTE IMMEDIATELY FOLLOWING THAT

                                     0319   710 ; SPECIFIES THE ADDRESS OF AN ERROR ROUTINE. ALL DATA IS ASSUMED TO HAVE BEEN

                                     0319   711 ; SET UP IN THE UCB BEFORE THE CALL. THE APPROPRIATE PARAMETERS ARE LOADED

                                     0319   712 ; INTO DEVICE REGISTERS AND THE FUNCTION IS INITIATED. IF THE FUNCTION IS AN

                                     0319   713 ; IMMEDIATE FUNCTION CONTROL RETURNS IMMEDIATELY. ELSE THE RETURN ADDRESS

                                     0319   714 ; IS STORED IN THE UCB AND A WAITFOR INTERRUPT IS EXECUTED. WHEN THE INTER-

                                     0319   715 ; RUPT OCCURS, CONTROL IS RETURNED TO THE CALLER.

                                     0319   716 ;

                                     0319   717 ; INPUTS:

                                     0319   718 ;

                                     0319   719 ;	R0 = FUNCTION TABLE DISPATCH INDEX.

                                     0319   720 ;	R3 = ADDRESS OF DRIVE CONTROL STATUS REGISTER 1.

                                     0319   721 ;	R4 = ADDRESS OF MBA CONFIGURATION STATUS REGISTER.

                                     0319   722 ;	R5 = DEVICE UNIT UCB ADDRESS.

                                     0319   723 ;

                                     0319   724 ;	00(SP) = RETURN ADDRESS OF CALLER.

                                     0319   725 ;	04(SP) = RETURN ADDRESS OF CALLER'S CALLER.

                                     0319   726 ;

                                     0319   727 ;	IMMEDIATELY FOLLOWING INLINE AT THE CALL SITE IS A BYTE WHICH CONTAINS

                                     0319   728 ;	A BRANCH DESTINATION TO AN ERROR RETRY ROUTINE.

                                     0319   729 ;

                                     0319   730 ; OUTPUTS:

                                     0319   731 ;

                                     0319   732 ;	THERE ARE FOUR EXITS FROM THIS ROUTINE:

                                     0319   733 ;

                                     0319   734 ;	1. SPECIAL CONDITION - THIS EXIT IS TAKEN IF A POWER FAILURE OCCURS

                                     0319   735 ;		OR THE OPERATION TIMES OUT. IT IS A JUMP TO THE APPROPRIATE

                                     0319   736 ;		ERROR ROUTINE.

                                     0319   737 ;

                                     0319   738 ;	2. FATAL ERROR - THIS EXIT IS TAKEN IF A FATAL CONTROLLER OR DRIVE

                                     0319   739 ;		ERROR OCCURS OR IF ANY ERROR OCCURS AND ERROR RETRY IS

                                     0319   740 ;		INHIBITED. IT IS A JUMP TO THE FATAL ERROR EXIT ROUTINE.

                                     0319   741 ;

                                     0319   742 ;	3. RETRIABLE ERROR - THIS EXIT IS TAKEN IF A RETRIABLE CONTROLLER

                                     0319   743 ;		OR DRIVE ERROR OCCURS AND ERROR RETRY IS NOT INHIBITED.

                                     0319   744 ;		IT CONSISTS OF TAKING THE ERROR BRANCH EXIT.

                                     0319   745 ;

                                     0319   746 ;	4. SUCCESSFUL OPERATION - THIS EXIT IS TAKEN IF NO ERROR OCCURS

                                     0319   747 ;		DURING THE OPERATION. IT CONSISTS OF A RETURN INLINE.

                                     0319   748 ;

                                     0319   749 ;	IN ALL CASES IF AN ERROR OCCURS, AN ATTEMPT IS MADE TO LOG THE ERROR.

                                     0319   750 ;

                                     0319   751 ;	IN ALL CASES FINAL DRIVE AND CONTROLLER REGISTERS ARE RETURNED VIA

                                     0319   752 ;	THE GENERAL REGISTERS R0, R1, AND R2, AND THE UCB.

                                     0319   753 ;

                                     0319   754 ;	R0 = DRIVE STATUS REGISTER.

                                     0319   755 ;	R1 = MBA STATUS REGISTER.

                                     0319   756 ;	R2 = DRIVE ERROR REGISTER 1.

                                     0319   757 ;

                                     0319   758 ;	UCB$W_EC1(R5) = ECC POSITION REGISTER.

                                     0319   759 ;	UCB$W_EC2(R5) = ECC PATTERN REGISTER.

                                     0319   760 ;	UCB$W_BCR(R5) = BYTE COUNT REGISTER.

                                     0319   761 ;

DBDRIVER        - RP04/05/06 DISK DRIVER                         21-AUG-1978 23:49:59   VAX-11 MACRO X0.3-11               Page  17

01              RP04/05/06 HARDWARE FUNCTION EXECUTION                                                                           (1)



                                     0319   762  

                                     0319   763 FEX:					;FUNCTION EXECUTOR

                       7C A5   8ED0  0319   764 	POPL	UCB$L_DPC(R5)		;SAVE DRIVER PC VALUE

         77 A5            50     90  031D   765 	MOVB	R0,UCB$B_CEX(R5)	;SAVE CASE INDEX

            53         75 A5     9A  0321   766 	MOVZBL	UCB$B_SLAVE+1(R5),R3	;GET DRIVE OFFSET CONSTANT

            53       0400 C443   DE  0325   767 	MOVAL	MBA$L_ERB(R4)[R3],R3	;GET ADDRESS OF DRIVE REGISTERS

                                     032B   768 	CASE	R0,<-			;DISPATCH TO PROPER FUNCTION ROUTINE

                                     032B   769 		POSIT,-			;SEEK CYLINDER

                                     032B   770 		EXFNC,-			;RECALIBRATE

                                     032B   771 		IMMED,-			;DRIVE CLEAR

                                     032B   772 		IMMED,-			;RELEASE DRIVE

                                     032B   773 		EXFNC,-			;OFFSET HEADS

                                     032B   774 		EXFNC,-			;RETURN TO CENTERLINE

                                     032B   775 		IMMED,-			;PACK ACKNOWLEDGE

                                     032B   776 		POSIT,-			;SEARCH FOR SECTOR

                                     032B   777 		XFER,-			;WRITE CHECK

                                     032B   778 		XFER,-			;WRITE DATA

                                     032B   779 		XFER,-			;READ DATA

                                     032B   780 		XFER,-			;WRITE HEADER AND DATA

                                     032B   781 		XFER,-			;READ HEADER AND DATA

                                     032B   782 		XFER,-			;WRITE CHECK HEADER AND DATA

                                     032B   783 		IMMED,-			;READIN PRESET

                                     032B   784 		SEARCHA,-		;SEARCH AHEAD FOR SECTOR

                                     032B   785 		>,LIMIT=#CDF_SEEK	;

                                     034F   786  

                                     034F   787 ;

                                     034F   788 ; IMMEDIATE FUNCTION EXECUTION

                                     034F   789 ;

                                     034F   790 ;	FUNCTIONS INCLUDE:

                                     034F   791 ;

                                     034F   792 ;		NO OPERATION,

                                     034F   793 ;		UNLOAD VOLUME,

                                     034F   794 ;		DRIVE CLEAR,

                                     034F   795 ;		RELEASE PORT,

                                     034F   796 ;		READ IN PRESET, AND

                                     034F   797 ;		PACK ACKNOWLEDGE.

                                     034F   798 ;

                                     034F   799 ; THESE FUNCTIONS ARE EXECUTED IMMEDIATELY AND THE FINAL DEVICE REGISTERS

                                     034F   800 ; ARE RETURNED TO THE CALLER.

                                     034F   801 ;

                                     034F   802  

                                     034F   803 IMMED:					;IMMEDIATE FUNCTION EXECUTION

                                     034F   804 	DSBINT				;DISABLE INTERRUPTS

         58 A5            05     E0  0355   805 	BBS	#UCB$V_POWER,UCB$W_STS(R5),ENBXIT ;IF SET, POWER HAS FAILED

                          62         0359       

            63            09     9A  035A   806 	MOVZBL	#F_DRVCLR!1,RP_CS1(R3)	;CLEAR DRIVE ERRORS

            63       FCBE CF40   9A  035D   807 	MOVZBL	FTAB[R0],RP_CS1(R3)	;EXECUTE FUNCTION

                          57     11  0363   808 	BRB	ENBXIT			;

                                     0365   809  

                                     0365   810 ;

                                     0365   811 ; SEARCH AHEAD FUNCTION EXECUTION

                                     0365   812 ;

                                     0365   813 ; THIS FUNCTION MINIMIZES ROTATIONAL LATENCY BY SEARCHING FOR THE SECTOR THAT IS

                                     0365   814 ; FOUR SECTORS AHEAD OF THE STARTING SECTOR OF A TRANSFER.

                                     0365   815 ;

                                     0365   816 ; THE DESIRED CYLINDER, TRACK, AND SECTOR ADDRESS REGISTERS ARE LOADED, THE

                                     0365   817 ; FUNCTION IS INITIATED, AND A WAITFOR INTERRUPT IS EXECUTED. WHEN THE INTER-

DBDRIVER        - RP04/05/06 DISK DRIVER                         21-AUG-1978 23:49:59   VAX-11 MACRO X0.3-11               Page  18

01              RP04/05/06 HARDWARE FUNCTION EXECUTION                                                                           (1)



                                     0365   818 ; RUPT OCCURS, THE FINAL DEVICE REGISTERS ARE RETURNED TO THE CALLER.

                                     0365   819 ;

                                     0365   820  

                                     0365   821 SEARCHA:				;

            51       0088 C5     3C  0365   822 	MOVZWL	UCB$W_DA(R5),R1		;GET DESIRED TRACK AND SECTOR ADDRESS

            51            04     82  036A   823 	SUBB	#4,R1			;COMPUTE FOUR SECTORS BEFORE SPECIFIED SECTOR

                          04     18  036D   824 	BGEQ	10$			;IF GEQ BEFORE SECTOR ZERO

            51         3C A5     80  036F   825 	ADDB	UCB$B_SECTORS(R5),R1	;CONVERT TO AFTER SECTOR ZERO

         14 A3            51     D0  0373   826 10$:	MOVL	R1,RP_DA(R3)		;SET TRACK AND SECTOR ADDRESS

                          11     11  0377   827 	BRB	LDCYL			;

                                     0379   828  

                                     0379   829 ;

                                     0379   830 ; TRANSFER FUNCTION EXECUTION

                                     0379   831 ;

                                     0379   832 ;	FUNCTIONS INCLUDE:

                                     0379   833 ;

                                     0379   834 ;		WRITE CHECK,

                                     0379   835 ;		WRITE CHECK HEADER AND DATA,

                                     0379   836 ;		WRITE DATA,

                                     0379   837 ;		WRITE HEADER AND DATA,

                                     0379   838 ;		READ DATA, AND

                                     0379   839 ;		READ HEADER AND DATA.

                                     0379   840 ;

                                     0379   841 ; THE MAP REGISTERS, BYTE COUNT REGISTER, AND VIRTUAL ADDRESS REGISTER ARE

                                     0379   842 ; LOADED FOLLOWED BY THE DESIRED CYLINDER, TRACK, AND SECTOR ADDRESS REGISTERS.

                                     0379   843 ; THE FUNCTION IS INITIATED AND A WAITFOR INTERRUPT IS EXECUTED. WHEN THE

                                     0379   844 ; INTERRUPT OCCURS, THE FINAL DEVICE REGISTERS ARE RETURNED TO THE CALLER.

                                     0379   845 ;

                                     0379   846 ; IT ASSUMED THAT THE CALLER OWNS THE CHANNEL ON WHICH THE I/O IS TO OCCUR.

                                     0379   847 ;

                                     0379   848  

                                     0379   849 XFER:					;TRANSFER FUNCTION EXECUTION

         08 A4            00     D2  0379   850 	MCOML	#0,MBA$L_SR(R4)		;CLEAR MASSBUS ADAPTER ERRORS

                                     037D   851 	LOADMBA				;LOAD MAP, BYTE COUNT, AND VIRTUAL ADDRESS

            50         77 A5     9A  0380   852 	MOVZBL	UCB$B_CEX(R5),R0	;RETRIEVE FUNCTION TABLE INDEX

                                     0384   853  

                                     0384   854 ;

                                     0384   855 ; POSITIONING FUNCTION EXECUTION

                                     0384   856 ;

                                     0384   857 ;	FUNCTIONS INCLUDE:

                                     0384   858 ;

                                     0384   859 ;		SEEK CYLINDER, AND

                                     0384   860 ;		SEARCH FOR SECTOR.

                                     0384   861 ;

                                     0384   862 ; THE DESIRED CYLINDER, TRACK, AND SECTOR ADDRESS REGISTERS ARE LOADED, THE

                                     0384   863 ; FUNCTION IS INITIATED, AND A WAITFOR INTERRUPT IS EXECUTED. WHEN THE INTER-

                                     0384   864 ; RUPT OCCURS, THE FINAL DEVICE REGISTERS ARE RETURNED TO THE CALLER.

                                     0384   865 ;

                                     0384   866  

                                     0384   867 POSIT:					;POSITION FUNCTION EXECUTION

         14 A3       0088 C5     3C  0384   868 	MOVZWL	UCB$W_DA(R5),RP_DA(R3)	;SET DESIRED TRACK AND SECTOR ADDRESS

                                     038A   869 LDCYL:					;

         28 A3       008A C5     3C  038A   870 	MOVZWL	UCB$W_DC(R5),RP_DC(R3)	;SET DESIRED CYLINDER ADDRESS

                                     0390   871  

                                     0390   872 ;

                                     0390   873 ; INTERRUPT WAIT FUNCTION EXECUTION

                                     0390   874 ;

DBDRIVER        - RP04/05/06 DISK DRIVER                         21-AUG-1978 23:49:59   VAX-11 MACRO X0.3-11               Page  19

01              RP04/05/06 HARDWARE FUNCTION EXECUTION                                                                           (1)



                                     0390   875 ;	FUNCTIONS INCLUDE:

                                     0390   876 ;

                                     0390   877 ;		OFFSET HEADS,

                                     0390   878 ;		RECALIBRATE, AND

                                     0390   879 ;		RETURN TO CENTERLINE.

                                     0390   880 ;

                                     0390   881 ; THE OFFSET REGISTER IS LOADED, THE FUNCTION IS INITIATED, AND A WAITFOR

                                     0390   882 ; INTERRUPT IS EXECUTED. WHEN THE INTERRUPT OCCURS, THE FINAL DEVICE REGISTERS

                                     0390   883 ; ARE RETURNED TO THE CALLER.

                                     0390   884 ;

                                     0390   885  

                                     0390   886 EXFNC:					;EXECUTE FUNCTION

                                     0390   887 	DSBINT				;DISABLE INTERRUPTS

         58 A5            05     E0  0396   888 	BBS	#UCB$V_POWER,UCB$W_STS(R5),ENBXIT ;IF SET, POWER FAILED

                          21         039A       

            63            09     9A  039B   889 	MOVZBL	#F_DRVCLR!1,RP_CS1(R3)	;CLEAR DRIVE ERRORS

         24 A3       0086 C5     3C  039E   890 	MOVZWL	UCB$W_OFFSET(R5),RP_OF(R3) ;SET FORMAT, INHIBIT BITS, AND OFFSET

            63       FC77 CF40   9A  03A4   891 	MOVZBL	FTAB[R0],RP_CS1(R3)	;INITIATE FUNCTION

                                     03AA   892 	WFIKPCH	RETREG,#15		;WAITFOR INTERRUPT AND KEEP CHANNEL

       0094 C5         08 A4     D0  03B1   893 	MOVL	MBA$L_SR(R4),UCB$L_DB_SR(R5) ;SAVE FINAL CONTROLLER STATUS

                                     03B7   894 	IOFORK				;CREATE FORK PROCESS

                          03     11  03BA   895 	BRB	RETREG			;

                                     03BC   896  

                                     03BC   897 ;

                                     03BC   898 ; ENABLE INTERRUPTS

                                     03BC   899 ;

                                     03BC   900  

                                     03BC   901 ENBXIT:					;

                                     03BC   902 	ENBINT				;ENABLE INTERRUPTS

                                     03BF   903  

                                     03BF   904 ;

                                     03BF   905 ; RETURN REGISTERS

                                     03BF   906 ;

                                     03BF   907  

                                     03BF   908 RETREG:					;RETURN FINAL DEVICE REGISTERS

       008C C5         38 A3     F7  03BF   909 	CVTLW	RP_EC1(R3),UCB$W_EC1(R5) ;SAVE ECC POSITION REGISTER

       008E C5         3C A3     F7  03C5   910 	CVTLW	RP_EC2(R3),UCB$W_EC2(R5) ;SAVE ECC PATTERN REGISTER

       0092 C5         10 A4     F7  03CB   911 	CVTLW	MBA$L_BCR(R4),UCB$W_BCR(R5) ;SAVE BYTE COUNT REGISTER

            50         04 A3     D0  03D1   912 	MOVL	RP_DS(R3),R0		;GET CONTENTS OF DRIVE STATUS REGISTER

            51       0094 C5     D0  03D5   913 	MOVL	UCB$L_DB_SR(R5),R1	;RETRIEVE FINAL CONTROLLER STATUS

            52         08 A3     D0  03DA   914 	MOVL	RP_ER1(R3),R2		;GET CONTENTS OF DRIVE ERROR REGISTER 1

         58 A5       0060 8F     B3  03DE   915 	BITW	#UCB$M_POWER!-		;POWER FAIL OR DEVICE TIMEOUT?

                                     03E4   916 		UCB$M_TIMOUT,UCB$W_STS(R5) ;

                          5D     12  03E4   917 	BNEQ	SPECON			;IF NEQ YES - SPECIAL CONDITION

         77 A5            0A     91  03E6   918 	CMPB	#CDF_WRITECHECK,UCB$B_CEX(R5) ;DRIVE RELATED FUNCTION?

                          2A     1A  03EA   919 	BGTRU	10$			;IF GTRU YES

         77 A5            10     91  03EC   920 	CMPB	#CDF_READPRESET,UCB$B_CEX(R5) ;READIN PRESET FUNCTION?

                          24     13  03F0   921 	BEQL	10$			;IF EQL YES

                                     03F2   922  

                                     03F2   923 ;

                                     03F2   924 ; CONTROLLER RELATED FUNCTION

                                     03F2   925 ;

                                     03F2   926  

            51   000E1FFF 8F     D3  03F2   927 	BITL	#MBA$M_ERROR,R1		;ANY CONTROLLER ERRORS?

                          3F     13  03F9   928 	BEQL	30$			;IF EQL NO

                          FC02'  30  03FB   929 	BSBW	ERL$DEVICERR		;ALLOCATE AND FILL ERROR MESSAGE BUFFER

       0084 C5            0F     E0  03FE   930 	BBS	#IO$V_INHRETRY,UCB$W_FUNC(R5),40$ ;IF SET, RETRY INHIBITED

DBDRIVER        - RP04/05/06 DISK DRIVER                         21-AUG-1978 23:49:59   VAX-11 MACRO X0.3-11               Page  20

01              RP04/05/06 HARDWARE FUNCTION EXECUTION                                                                           (1)



                          3C         0403       

            51   0008000B 8F     D3  0404   931 	BITL	#MBA$M_SR_ERCONF!-	;ERROR CONFIRMATION OR,

                                     040B   932 		MBA$M_SR_ISTO!-		;INTERFACE SEQUENCE TIMEOUT OR,

                                     040B   933 		MBA$M_SR_PGE!-		;PROGRAMMING ERROR OR,

                                     040B   934 		MBA$M_SR_RDTO,R1	;READ TIMEOUT?

                          33     12  040B   935 	BNEQ	40$			;IF NEQ YES - FATAL CONTROLLER ERROR

            51   00060FF4 8F     D3  040D   936 	BITL	#MBA$M_SR_DLT!-		;DATA LATE OR,

                                     0414   937 		MBA$M_SR_INVMAP!-	;INVALID MAP REGISTER OR,

                                     0414   938 		MBA$M_SR_MAPPE!-	;MAP REGISTER PARITY ERROR OR,

                                     0414   939 		MBA$M_SR_MBEXC!-	;MASSBUS EXCEPTION OR,

                                     0414   940 		MBA$M_SR_MCPE!-		;MASSBUS CONTROL PARITY ERROR OR,

                                     0414   941 		MBA$M_SR_MDPE!-		;MASSBUS DATA PARITY ERROR OR,

                                     0414   942 		MBA$M_SR_MXF!-		;MISSED TRANSFER OR,

                                     0414   943 		MBA$M_SR_NED!-		;NONEXISTENT DRIVE OR,

                                     0414   944 		MBA$M_SR_RDS!-		;READ DATA SUBSTITUTE OR,

                                     0414   945 		MBA$M_SR_WCKLWR!-	;WRITE CHECK LOWER BYTE OR,

                                     0414   946 		MBA$M_SR_WCKUPR,R1	;WRITE CHECK UPPER BYTE?

                          0D     12  0414   947 	BNEQ	20$			;IF NEQ YES - RETRIABLE CONTROLLER ERROR

                                     0416   948  

                                     0416   949 ;

                                     0416   950 ; DRIVE RELATED FUNCTION

                                     0416   951 ;

                                     0416   952  

            50            0E     E1  0416   953 10$:	BBC	#RP_DS_V_ERR,R0,30$	;IF CLR, NO DRIVE ERRORS

                          20         0419       

                          FBE3'  30  041A   954 	BSBW	ERL$DEVICERR		;ALLOCATE AND FILL ERROR MESSAGE BUFFER

       0084 C5            0F     E0  041D   955 	BBS	#IO$V_INHRETRY,UCB$W_FUNC(R5),40$ ;IF SET, RETRY INHIBITED

                          1D         0422       

            50            0C     E1  0423   956 20$:	BBC	#RP_DS_V_MOL,R0,40$	;IF CLR, MEDIUM OFFLINE

                          19         0426       

            50            06     E1  0427   957 	BBC	#RP_DS_V_VV,R0,40$	;IF CLR, INVALID VOLUME

                          15         042A       

            52       4E07 8F     B3  042B   958 	BITW	#RP_ER1_M_AOE!-		;ADDRESS OVERFLOW OR,

                                     0430   959 		RP_ER1_M_IAE!-		;INVALID ADDRESS OR,

                                     0430   960 		RP_ER1_M_ILF!-		;ILLEGAL FUNCTION OR,

                                     0430   961 		RP_ER1_M_ILR!-		;ILLEGAL REGISTER OR,

                                     0430   962 		RP_ER1_M_RMR!-		;REGISTER MODIFY REFUSE OR,

                                     0430   963 		RP_ER1_M_UNS!-		;DRIVE UNSAFE OR,

                                     0430   964 		RP_ER1_M_WLE,R2		;WRITE LOCK ERROR?

                          0E     12  0430   965 	BNEQ	40$			;IF NEQ YES - FATAL DRIVE ERROR

                                     0432   966  

                                     0432   967 ;

                                     0432   968 ; RETRIABLE ERROR EXIT

                                     0432   969 ;

                                     0432   970  

            7E         7C B5     98  0432   971 	CVTBL	@UCB$L_DPC(R5),-(SP)	;GET BRANCH DISPLACEMENT

         7C A5            8E     C0  0436   972 	ADDL	(SP)+,UCB$L_DPC(R5)	;CALCULATE RETURN ADDRESS - 1

                       7C A5     D6  043A   973 30$:	INCL	UCB$L_DPC(R5)		;ADJUST TO CORRECT RETURN ADDRESS

                       7C B5     17  043D   974 	JMP	@UCB$L_DPC(R5)		;RETURN TO DRIVER

                                     0440   975  

                                     0440   976 ;

                                     0440   977 ; FATAL CONTROLLER OR DRIVE ERROR

                                     0440   978 ;

                                     0440   979  

                          FE30   31  0440   980 40$:	BRW	FATALERR		;

                                     0443   981  

                                     0443   982 ;

DBDRIVER        - RP04/05/06 DISK DRIVER                         21-AUG-1978 23:49:59   VAX-11 MACRO X0.3-11               Page  21

01              RP04/05/06 HARDWARE FUNCTION EXECUTION                                                                           (1)



                                     0443   983 ; SPECIAL CONDITION EXIT

                                     0443   984 ;

                                     0443   985  

            63            09     9A  0443   986 SPECON:	MOVZBL	#F_DRVCLR!1,RP_CS1(R3)	;CLEAR DRIVE

         77 A5            0A     91  0446   987 	CMPB	#CDF_WRITECHECK,UCB$B_CEX(R5) ;DRIVE RELATED FUNCTION?

                          0E     1A  044A   988 	BGTRU	10$			;IF GTRU YES

         77 A5            10     91  044C   989 	CMPB	#CDF_READPRESET,UCB$B_CEX(R5) ;DRIVE RELATED FUNCTION?

                          08     1B  0450   990 	BLEQU	10$			;IF LEQU YES

         04 A4            01     D0  0452   991 	MOVL	#MBA$M_CR_INIT,MBA$L_CR(R4) ;INIT ADAPTER

         04 A4            04     D0  0456   992 	MOVL	#MBA$M_CR_IE,MBA$L_CR(R4) ;ENABLE MBA INTERRUPTS

                                     045A   993 10$:	SETIPL	UCB$B_FIPL(R5)		;LOWER IPL TO DEVICE FORK LEVEL

                          FB9F'  30  045E   994 	BSBW	ERL$DEVICTMO		;LOG DEVICE TIMEOUT

            50       0000'8F     3C  0461   995 	MOVZWL	#SS$_TIMEOUT,R0		;SET FINAL COMPLETION STATUS

                                     0466   996 	REQCOM				;COMPLETE REQUEST

DBDRIVER        - RP04/05/06 DISK DRIVER                         21-AUG-1978 23:49:59   VAX-11 MACRO X0.3-11               Page  22

01              RP04/05/06 REGISTER DUMP ROUTINE                                                                                 (1)



                                     0469   998 	.SBTTL	RP04/05/06 REGISTER DUMP ROUTINE

                                     0469   999 ;

                                     0469  1000 ; REGDUMP - RP04/05/06 REGISTER DUMP ROUTINE

                                     0469  1001 ;

                                     0469  1002 ; THIS ROUTINE IS CALLED TO SAVE THE CONTROLLER AND DRIVE REGISTERS IN A

                                     0469  1003 ; SPECIFIED BUFFER. IT IS CALLED FROM THE DEVICE ERROR LOGGING ROUTINE AND

                                     0469  1004 ; FROM THE DIAGNOSTIC BUFFER FILL ROUTINE.

                                     0469  1005 ;

                                     0469  1006 ; INPUTS:

                                     0469  1007 ;

                                     0469  1008 ;	R0 = ADDRESS OF REGISTER SAVE BUFFER.

                                     0469  1009 ;	R4 = ADDRESS OF ADAPTER CONFIGURATION REGISTER.

                                     0469  1010 ;	R5 = DEVICE UNIT UCB ADDRESS.

                                     0469  1011 ;

                                     0469  1012 ; OUTPUTS:

                                     0469  1013 ;

                                     0469  1014 ;	THE CONTROLLER AND DRIVE REGISTERS ARE SAVED IN THE SPECIFIED BUFFER.

                                     0469  1015 ;

                                     0469  1016  

                                     0469  1017 REGDUMP:				;RP04/05/06 REGISTER DUMP ROUTINE

            80            17     D0  0469  1018 	MOVL	#<RP_EC2+4+MBA$L_BCR+4+8>/4,(R0)+ ;INSERT NUMBER OF DEVICE REGISTERS

            80            64     D0  046C  1019 	MOVL	MBA$L_CSR(R4),(R0)+	;SAVE CONFIGURATION REGISTER

            80         04 A4     D0  046F  1020 	MOVL	MBA$L_CR(R4),(R0)+	;SAVE CONTROL REGISTER

            80       0094 C5     D0  0473  1021 	MOVL	UCB$L_DB_SR(R5),(R0)+	;SAVE STATUS REGISTER

            80         0C A4     D0  0478  1022 	MOVL	MBA$L_VAR(R4),(R0)+	;SAVE VIRTUAL ADDRESS REGISTER

            80         10 A4     D0  047C  1023 	MOVL	MBA$L_BCR(R4),(R0)+	;SAVE BYTE COUNT REGISTER

            08            09     EF  0480  1024 	EXTZV	#9,#8,-8(R0),R1		;GET FINAL MAP REGISTER NUMBER

            51         F8 A0         0483       

            80       0800 C441   D0  0486  1025 	MOVL	MBA$L_MAP(R4)[R1],(R0)+	;SAVE FINAL MAP REGISTER CONTENTS

                          80     D4  048C  1026 	CLRL	(R0)+			;ASSUME NO PREVIOUS MAP REGISTER

                          51     D7  048E  1027 	DECL	R1			;CALCULATE PREVIOUS MAP REGISTER NUMBER

                          07     19  0490  1028 	BLSS	10$			;IF LSS NONE

         FC A0       0800 C441   D0  0492  1029 	MOVL	MBA$L_MAP(R4)[R1],-4(R0) ;SAVE PREVIOUS MAP REGISTER CONTENTS

            51            10     9A  0499  1030 10$:	MOVZBL	#<RP_EC2+4>/4,R1	;SET NUMBER OF DRIVE REGISTERS TO SAVE

            52         75 A5     9A  049C  1031 	MOVZBL	UCB$B_SLAVE+1(R5),R2	;GET DRIVE OFFSET CONSTANT

            52       0400 C442   DE  04A0  1032 	MOVAL	MBA$L_ERB(R4)[R2],R2	;GET ADDRESS OF DRIVE REGISTERS

            80            82     D0  04A6  1033 20$:	MOVL	(R2)+,(R0)+		;SAVE DRIVE REGISTER

            FA            51     F5  04A9  1034 	SOBGTR	R1,20$			;ANY MORE TO SAVE?

                                 05  04AC  1035 	RSB				;

                                     04AD  1036  

                                 05  04AD  1037 UNSOLNT:	RSB			;******TEMP*******

                                     04AE  1038  

                                     04AE  1039 	.END

DBDRIVER        - RP04/05/06 DISK DRIVER                         21-AUG-1978 23:49:59   VAX-11 MACRO X0.3-11               Page  23

SYMBOL TABLE                                                                                                                     (1)



ACP$ACCESS       ********   X   03   EMB$C_CR_LENGTH  000000FA            EMB$L_CR_P0LR    0000006C            

ACP$DEACCESS     ********   X   03   EMB$C_CS       = 00000020            EMB$L_CR_P1BR    00000070            

ACP$MODIFY       ********   X   03   EMB$C_DE       = 00000001            EMB$L_CR_P1LR    00000074            

ACP$READBLK      ********   X   03   EMB$C_DT       = 00000096            EMB$L_CR_PC      00000060            

ACP$WRITEBLK     ********   X   03   EMB$C_LENGTH     00000004            EMB$L_CR_PCBB    00000080            

BIT...         = 0000000B            EMB$C_OM       = 00000028            EMB$L_CR_PSL     00000064            

CDF_DRVCLR     = 00000004            EMB$C_SS       = 00000027            EMB$L_CR_R0      00000024            

CDF_NOP        = 00000000            EMB$C_SS_LENGTH  00000012            EMB$L_CR_R1      00000028            

CDF_OFFSET     = 00000006            EMB$C_TS       = 00000026            EMB$L_CR_R10     0000004C            

CDF_PACKACK    = 00000008            EMB$C_TS_LENGTH  00000010            EMB$L_CR_R11     00000050            

CDF_READDATA   = 0000000C            EMB$C_UI       = 00000061            EMB$L_CR_R2      0000002C            

CDF_READHEAD   = 0000000E            EMB$C_VD       = 00000041            EMB$L_CR_R3      00000030            

CDF_READPRESET = 00000010            EMB$C_VM       = 00000040            EMB$L_CR_R4      00000034            

CDF_RECAL      = 00000003            EMB$C_WS       = 00000024            EMB$L_CR_R5      00000038            

CDF_RELEASE    = 00000005            EMB$K_BC_LENGTH  0000006E            EMB$L_CR_R6      0000003C            

CDF_RETCENTER  = 00000007            EMB$K_CR       = 00000025            EMB$L_CR_R7      00000040            

CDF_SEARCH     = 00000009            EMB$K_CR_LENGTH  000000FA            EMB$L_CR_R8      00000044            

CDF_SEARCHA    = 00000011            EMB$K_LENGTH     00000004            EMB$L_CR_R9      00000048            

CDF_SEEK       = 00000002            EMB$K_MC       = 00000002            EMB$L_CR_SBIER   000000AC            

CDF_UNLOAD     = 00000001            EMB$K_SBC      = 00000028            EMB$L_CR_SBIFS   000000A0            

CDF_WRITECHECK = 0000000A            EMB$K_SS_LENGTH  00000012            EMB$L_CR_SBIMT   000000A8            

CDF_WRITECHECKH= 0000000F            EMB$K_TS_LENGTH  00000010            EMB$L_CR_SBIS    000000B4            

CDF_WRITEDATA  = 0000000B            EMB$K_UBC      = 00000080            EMB$L_CR_SBISC   000000A4            

CDF_WRITEHEAD  = 0000000D            EMB$L_BC_AP      00000054            EMB$L_CR_SBITA   000000B0            

CHECKRETRY       00000176 R     03   EMB$L_BC_CODE    00000068            EMB$L_CR_SBR     00000078            

CHECKTAB         0000001C R     03   EMB$L_BC_ESP     00000014            EMB$L_CR_SCBB    00000084            

CHECKXT          0000018A R     03   EMB$L_BC_FP      00000058            EMB$L_CR_SISR    0000008C            

CRB$B_MASK       0000000E            EMB$L_BC_ISP     00000020            EMB$L_CR_SLR     0000007C            

CRB$B_TT_ATTN    00000004            EMB$L_BC_KSP     00000010            EMB$L_CR_SP      0000005C            

CRB$B_TT_EXPEC   00000005            EMB$L_BC_PC      00000060            EMB$L_CR_SSP     00000018            

CRB$B_TYPE       0000000A            EMB$L_BC_PSL     00000064            EMB$L_CR_TODR    00000098            

CRB$C_LENGTH     00000028            EMB$L_BC_R0      00000024            EMB$L_CR_USP     0000001C            

CRB$K_LENGTH     00000028            EMB$L_BC_R1      00000028            EMB$L_DV_CHAR    00000038            

CRB$L_INTD       00000014            EMB$L_BC_R10     0000004C            EMB$L_DV_ERRSEQ  0000001C            

CRB$L_LINK       00000010            EMB$L_BC_R11     00000050            EMB$L_DV_MEDIA   00000028            

CRB$L_TT_DIAL    00000000            EMB$L_BC_R2      0000002C            EMB$L_DV_OPCNT   00000030            

CRB$L_WQBL       00000004            EMB$L_BC_R3      00000030            EMB$L_DV_OWNUIC  00000034            

CRB$L_WQFL       00000000            EMB$L_BC_R4      00000034            EMB$L_DV_REGSAV  00000050            

CRB$M_BSY      = 00000001            EMB$L_BC_R5      00000038            EMB$L_DV_RQPID   00000020            

CRB$V_BSY      = 00000000            EMB$L_BC_R6      0000003C            EMB$Q_BC_TIME    00000006            

CRB$W_REFC       0000000C            EMB$L_BC_R7      00000040            EMB$Q_CR_TIME    00000006            

CRB$W_SIZE       00000008            EMB$L_BC_R8      00000044            EMB$Q_DV_ERTIME  00000014            

DATACHECK        00000146 R     03   EMB$L_BC_R9      00000048            EMB$Q_DV_IOSB    00000008            

DB$DDT           00000000 RG    03   EMB$L_BC_SP      0000005C            EMB$Q_SS_TIME    00000006            

DRVCLR           0000011D R     03   EMB$L_BC_SSP     00000018            EMB$Q_TS_TIME    00000006            

ECC              000001AC R     03   EMB$L_BC_USP     0000001C            EMB$T_DV_NAME    00000040            

EMB$B_BC_PCB     0000006E            EMB$L_CR_ACCS    0000009C            EMB$W_BC_ENTRY   00000004            

EMB$B_BUFIND     00000002            EMB$L_CR_AP      00000054            EMB$W_BC_ERRSEQ  0000000E            

EMB$B_DV_CLASS   00000012            EMB$L_CR_ASTLVL  00000088            EMB$W_BC_PCBSZ   0000006C            

EMB$B_DV_ERTCNT  00000006            EMB$L_CR_CODE    000000F4            EMB$W_CR_ENTRY   00000004            

EMB$B_DV_ERTMAX  00000007            EMB$L_CR_ESP     00000014            EMB$W_CR_ERRSEQ  0000000E            

EMB$B_DV_SLAVE   0000003C            EMB$L_CR_FP      00000058            EMB$W_CR_PCBSZ   000000F8            

EMB$B_DV_TYPE    00000013            EMB$L_CR_ICCS    00000090            EMB$W_DV_BCNT    00000026            

EMB$B_SS_MSGTXT  00000012            EMB$L_CR_ICR     00000094            EMB$W_DV_BOFF    00000024            

EMB$B_VALID      00000003            EMB$L_CR_ISP     00000020            EMB$W_DV_DEVSTS  00000010            

EMB$C_BC_LENGTH  0000006E            EMB$L_CR_KSP     00000010            EMB$W_DV_ENTRY   00000004            

EMB$C_BE       = 00000004            EMB$L_CR_P0BR    00000068            EMB$W_DV_ERRCNT  0000002E            

DBDRIVER        - RP04/05/06 DISK DRIVER                         21-AUG-1978 23:49:59   VAX-11 MACRO X0.3-11               Page  24

SYMBOL TABLE                                                                                                                     (1)



EMB$W_DV_FUNC    0000003E            IO$M_HANGUP    = 00000200            IO$V_SYNCH     = 00000009            

EMB$W_DV_UNIT    0000002C            IO$M_INHERLOG  = 00000800            IO$V_TIMED     = 00000007            

EMB$W_SIZE       00000000            IO$M_INHEXTGAP = 00001000            IO$V_TRMNOECHO = 0000000C            

EMB$W_SS_ENTRY   00000004            IO$M_INHRETRY  = 00008000            IO$V_WRTATTN   = 00000008            

EMB$W_SS_ERRSEQ  0000000E            IO$M_INHSEEK   = 00001000            IO$_ACCESS     = 00000032            

EMB$W_SS_MSGSZ   00000010            IO$M_INTERRUPT = 00000040            IO$_ACPCONTROL = 00000038            

EMB$W_TS_ENTRY   00000004            IO$M_MOUNT     = 00000200            IO$_CREATE     = 00000033            

EMB$W_TS_ERRSEQ  0000000E            IO$M_NOECHO    = 00000040            IO$_DEACCESS   = 00000034            

ENBXIT           000003BC R     03   IO$M_NOFILTR   = 00000200            IO$_DELETE     = 00000035            

ERL$DEVICERR     ********   X   03   IO$M_NOFORMAT  = 00000100            IO$_DIAGNOSE   = 0000001D            

ERL$DEVICTMO     ********   X   03   IO$M_NOW       = 00000040            IO$_DRVCLR     = 00000004            

EXE$IOFORK       ********   X   03   IO$M_NOWAIT    = 00000080            IO$_ERASETAPE  = 00000006            

EXE$ONEPARM      ********   X   03   IO$M_PACKED    = 00000080            IO$_LOGICAL    = 0000002F            

EXE$ZEROPARM     ********   X   03   IO$M_PURGE     = 00000800            IO$_MODIFY     = 00000036            

EXFNC            00000390 R     03   IO$M_READATTN  = 00000080            IO$_MOUNT      = 00000039            

FATALERR         00000273 R     03   IO$M_REVERSE   = 00000040            IO$_NOP        = 00000000            

FDISPATCH        000000F5 R     03   IO$M_SHUTDOWN  = 00000080            IO$_OFFSET     = 00000006            

FEX              00000319 R     03   IO$M_STARTUP   = 00000040            IO$_PACKACK    = 00000008            

FTAB             00000020 R     03   IO$M_SYNCH     = 00000200            IO$_PHYSICAL   = 0000001F            

FUNCTABLE        0000003A R     03   IO$M_TIMED     = 00000080            IO$_READHEAD   = 0000000E            

FUNCXT           000002F4 R     03   IO$M_TRMNOECHO = 00001000            IO$_READLBLK   = 00000021            

F_DRVCLR       = 00000008            IO$M_WRTATTN   = 00000100            IO$_READPBLK   = 0000000C            

F_NOP          = 00000000            IO$S_FCODE     = 00000006            IO$_READPRESET = 00000019            

F_OFFSET       = 0000000C            IO$V_ABORT     = 00000008            IO$_READPROMPT = 00000037            

F_PACKACK      = 00000012            IO$V_ACCESS    = 00000006            IO$_READTRACKD = 00000010            

F_READDATA     = 00000038            IO$V_ATTNAST   = 00000008            IO$_READVBLK   = 00000031            

F_READHEAD     = 0000003A            IO$V_BINARY    = 00000006            IO$_RECAL      = 00000003            

F_READPRESET   = 00000010            IO$V_CANCTRLO  = 00000006            IO$_RELEASE    = 00000005            

F_RECAL        = 00000006            IO$V_COMMOD    = 00000006            IO$_RETCENTER  = 00000007            

F_RELEASE      = 0000000A            IO$V_CREATE    = 00000007            IO$_REWIND     = 00000024            

F_RETCENTER    = 0000000E            IO$V_CTRLCAST  = 00000008            IO$_REWINDOFF  = 00000022            

F_SEARCH       = 00000018            IO$V_CTRLYAST  = 00000007            IO$_SEARCH     = 00000009            

F_SEARCHA      = 00000018            IO$V_CVTLOW    = 00000008            IO$_SEEK       = 00000002            

F_SEEK         = 00000004            IO$V_DATACHECK = 0000000E            IO$_SENSECHAR  = 0000001B            

F_UNLOAD       = 00000002            IO$V_DELETE    = 00000008            IO$_SENSEMODE  = 00000027            

F_WRITECHECK   = 00000028            IO$V_DMOUNT    = 0000000A            IO$_SETCHAR    = 0000001A            

F_WRITECHECKH  = 0000002A            IO$V_DSABLMBX  = 0000000A            IO$_SETMODE    = 00000023            

F_WRITEDATA    = 00000030            IO$V_ENABLMBX  = 00000007            IO$_SKIPFILE   = 00000025            

F_WRITEHEAD    = 00000032            IO$V_FCODE     = 00000000            IO$_SKIPRECORD = 00000026            

GBL...         = 00000000            IO$V_HANGUP    = 00000009            IO$_SPACEFILE  = 00000002            

IMMED            0000034F R     03   IO$V_INHERLOG  = 0000000B            IO$_SPACERECORD= 00000009            

IO$M_ABORT     = 00000100            IO$V_INHEXTGAP = 0000000C            IO$_STARTSPNDL = 00000019            

IO$M_ACCESS    = 00000040            IO$V_INHRETRY  = 0000000F            IO$_UNLOAD     = 00000001            

IO$M_ATTNAST   = 00000100            IO$V_INHSEEK   = 0000000C            IO$_VIRTUAL    = 0000003F            

IO$M_BINARY    = 00000040            IO$V_INTERRUPT = 00000006            IO$_WRITECHECK = 0000000A            

IO$M_CANCTRLO  = 00000040            IO$V_MOUNT     = 00000009            IO$_WRITECHECKH= 00000018            

IO$M_COMMOD    = 00000040            IO$V_NOECHO    = 00000006            IO$_WRITEHEAD  = 0000000D            

IO$M_CREATE    = 00000080            IO$V_NOFILTR   = 00000009            IO$_WRITELBLK  = 00000020            

IO$M_CTRLCAST  = 00000100            IO$V_NOFORMAT  = 00000008            IO$_WRITEMARK  = 0000001C            

IO$M_CTRLYAST  = 00000080            IO$V_NOW       = 00000006            IO$_WRITEOF    = 00000028            

IO$M_CVTLOW    = 00000100            IO$V_NOWAIT    = 00000007            IO$_WRITEPBLK  = 0000000B            

IO$M_DATACHECK = 00004000            IO$V_PACKED    = 00000007            IO$_WRITETRACKD= 0000000F            

IO$M_DELETE    = 00000100            IO$V_PURGE     = 0000000B            IO$_WRITEVBLK  = 00000030            

IO$M_DMOUNT    = 00000400            IO$V_READATTN  = 00000007            IOC$APPLYECC     ********   X   03   

IO$M_DSABLMBX  = 00000400            IO$V_REVERSE   = 00000006            IOC$DIAGBUFILL   ********   X   03   

IO$M_ENABLMBX  = 00000080            IO$V_SHUTDOWN  = 00000007            IOC$LOADMBAMAP   ********   X   03   

IO$M_FCODE     = 0000003F            IO$V_STARTUP   = 00000006            IOC$RELCHAN      ********   X   03   

DBDRIVER        - RP04/05/06 DISK DRIVER                         21-AUG-1978 23:49:59   VAX-11 MACRO X0.3-11               Page  25

SYMBOL TABLE                                                                                                                     (1)



IOC$REQCOM       ********   X   03   IRP$W_FUNC       00000020            MBA$V_CSR_PD   = 00000017            

IOC$REQPCHANL    ********   X   03   IRP$W_OBCNT      0000003E            MBA$V_CSR_PE   = 0000001F            

IOC$UPDATRANSP   ********   X   03   IRP$W_SIZE       00000008            MBA$V_CSR_PU   = 00000016            

IOC$WFIKPCH      ********   X   03   IRP$W_STS        0000002A            MBA$V_CSR_URD  = 0000001D            

IRP$B_CARCON     00000038            IRP$W_TT_PRMPT   0000003C            MBA$V_CSR_WS   = 0000001E            

IRP$B_EFN        00000022            LDCYL            0000038A R     03   MBA$V_CSR_XMFLT= 0000001A            

IRP$B_PRI        00000023            MASKH          = 00000000            MBA$V_ERB_UNIT = 00000007            

IRP$B_RMOD       0000000B            MASKL          = 00000244            MBA$V_SR_ATTN  = 00000010            

IRP$B_TYPE       0000000A            MBA$L_AS         00000410            MBA$V_SR_CRD   = 0000001D            

IRP$C_LENGTH     0000004C            MBA$L_BCR        00000010            MBA$V_SR_DLT   = 0000000B            

IRP$K_LENGTH     0000004C            MBA$L_CR         00000004            MBA$V_SR_DTABT = 0000000C            

IRP$L_AST        00000010            MBA$L_CSR        00000000            MBA$V_SR_DTBUSY= 0000001F            

IRP$L_ASTPRM     00000014            MBA$L_ERB        00000400            MBA$V_SR_DTCOMP= 0000000D            

IRP$L_DIAGBUF    00000044            MBA$L_MAP        00000800            MBA$V_SR_ERCONF= 00000003            

IRP$L_IOQBL      00000004            MBA$L_SR         00000008            MBA$V_SR_INVMAP= 00000004            

IRP$L_IOQFL      00000000            MBA$L_VAR        0000000C            MBA$V_SR_ISTO  = 00000001            

IRP$L_IOSB       00000024            MBA$M_CR_ABORT = 00000002            MBA$V_SR_MAPPE = 00000005            

IRP$L_IOST1      00000034            MBA$M_CR_IE    = 00000004            MBA$V_SR_MBEXC = 00000007            

IRP$L_IOST2      00000038            MBA$M_CR_INIT  = 00000001            MBA$V_SR_MCPE  = 00000011            

IRP$L_MEDIA      00000034            MBA$M_CSR_MT   = 08000000            MBA$V_SR_MDPE  = 00000006            

IRP$L_PID        0000000C            MBA$M_CSR_OT   = 00200000            MBA$V_SR_MXF   = 00000008            

IRP$L_SEGVBN     00000040            MBA$M_CSR_PD   = 00800000            MBA$V_SR_NED   = 00000012            

IRP$L_SEQNUM     00000048            MBA$M_CSR_PE   = 80000000            MBA$V_SR_NRCONF= 0000001E            

IRP$L_SVAPTE     0000002C            MBA$M_CSR_PU   = 00400000            MBA$V_SR_PGE   = 00000013            

IRP$L_TT_TERM    00000038            MBA$M_CSR_URD  = 20000000            MBA$V_SR_RDS   = 00000002            

IRP$L_UCB        0000001C            MBA$M_CSR_WS   = 40000000            MBA$V_SR_RDTO  = 00000000            

IRP$L_WIND       00000018            MBA$M_CSR_XMFLT= 04000000            MBA$V_SR_WCKLWR= 00000009            

IRP$M_BUFIO    = 00000001            MBA$M_ERROR    = 000E1FFF            MBA$V_SR_WCKUPR= 0000000A            

IRP$M_CHAINED  = 00000020            MBA$M_SR_ATTN  = 00010000            NOP              0000011D R     03   

IRP$M_COMPLX   = 00000008            MBA$M_SR_CRD   = 20000000            NORMAL           00000187 R     03   

IRP$M_DIAGBUF  = 00000080            MBA$M_SR_DLT   = 00000800            OFF              000001EB R     03   

IRP$M_FUNC     = 00000002            MBA$M_SR_DTABT = 00001000            OFFSET           0000011D R     03   

IRP$M_PAGIO    = 00000004            MBA$M_SR_DTBUSY= 80000000            OFFSETERR        0000026A R     03   

IRP$M_PHYSIO   = 00000100            MBA$M_SR_DTCOMP= 00002000            OFFSIZ         = 00000008            

IRP$M_PRIVIO   = 00000200            MBA$M_SR_ERCONF= 00000008            OFFTAB           00000032 R     03   

IRP$M_SWAPIO   = 00000040            MBA$M_SR_INVMAP= 00000010            PACKACK          0000011D R     03   

IRP$M_VIRTUAL  = 00000010            MBA$M_SR_ISTO  = 00000002            POSIT            00000384 R     03   

IRP$S_FCODE    = 00000006            MBA$M_SR_MAPPE = 00000020            PR$_ACCR       = 00000029            

IRP$S_FMOD     = 0000000A            MBA$M_SR_MBEXC = 00000080            PR$_ACCS       = 00000028            

IRP$S_MODE     = 00000002            MBA$M_SR_MCPE  = 00020000            PR$_ASTLVL     = 00000013            

IRP$V_BUFIO    = 00000000            MBA$M_SR_MDPE  = 00000040            PR$_ESP        = 00000001            

IRP$V_CHAINED  = 00000005            MBA$M_SR_MXF   = 00000100            PR$_ICCS       = 00000018            

IRP$V_COMPLX   = 00000003            MBA$M_SR_NED   = 00040000            PR$_ICR        = 0000001A            

IRP$V_DIAGBUF  = 00000007            MBA$M_SR_NRCONF= 40000000            PR$_IPL        = 00000012            

IRP$V_FCODE    = 00000000            MBA$M_SR_PGE   = 00080000            PR$_ISP        = 00000004            

IRP$V_FMOD     = 00000006            MBA$M_SR_RDS   = 00000004            PR$_KSP        = 00000000            

IRP$V_FUNC     = 00000001            MBA$M_SR_RDTO  = 00000001            PR$_MAPEN      = 00000038            

IRP$V_MODE     = 00000000            MBA$M_SR_WCKLWR= 00000200            PR$_NICR       = 00000019            

IRP$V_PAGIO    = 00000002            MBA$M_SR_WCKUPR= 00000400            PR$_P0BR       = 00000008            

IRP$V_PHYSIO   = 00000008            MBA$S_CSR_ADCOD= 00000008            PR$_P0LR       = 00000009            

IRP$V_PRIVIO   = 00000009            MBA$S_ERB_UNIT = 00000003            PR$_P1BR       = 0000000A            

IRP$V_SWAPIO   = 00000006            MBA$V_CR_ABORT = 00000001            PR$_P1LR       = 0000000B            

IRP$V_VIRTUAL  = 00000004            MBA$V_CR_IE    = 00000002            PR$_PCBB       = 00000010            

IRP$W_ABCNT      0000003C            MBA$V_CR_INIT  = 00000000            PR$_RXCS       = 00000020            

IRP$W_BCNT       00000032            MBA$V_CSR_ADCOD= 00000000            PR$_RXDB       = 00000021            

IRP$W_BOFF       00000030            MBA$V_CSR_MT   = 0000001B            PR$_SBIER      = 00000034            

IRP$W_CHAN       00000028            MBA$V_CSR_OT   = 00000015            PR$_SBIFS      = 00000030            

DBDRIVER        - RP04/05/06 DISK DRIVER                         21-AUG-1978 23:49:59   VAX-11 MACRO X0.3-11               Page  26

SYMBOL TABLE                                                                                                                     (1)



PR$_SBIMT      = 00000033            RP_DS_V_ERR    = 0000000E            RP_OF            00000024            

PR$_SBIQC      = 00000036            RP_DS_V_LST    = 0000000A            RP_OF_M_DCK    = 00000100            

PR$_SBIS       = 00000031            RP_DS_V_MOL    = 0000000C            RP_OF_M_ECI    = 00000800            

PR$_SBISC      = 00000032            RP_DS_V_PGM    = 00000009            RP_OF_M_FMT    = 00001000            

PR$_SBITA      = 00000035            RP_DS_V_PIP    = 0000000D            RP_OF_M_HCI    = 00000400            

PR$_SBR        = 0000000C            RP_DS_V_VV     = 00000006            RP_OF_S_OFF    = 00000008            

PR$_SCBB       = 00000011            RP_DS_V_WRL    = 0000000B            RP_OF_V_DCK    = 00000008            

PR$_SID        = 0000003E            RP_DT            00000018            RP_OF_V_ECI    = 0000000B            

PR$_SIRR       = 00000014            RP_DT_M_DRQ    = 00000800            RP_OF_V_FMT    = 0000000C            

PR$_SISR       = 00000015            RP_DT_S_DTN    = 00000009            RP_OF_V_HCI    = 0000000A            

PR$_SLR        = 0000000D            RP_DT_V_DRQ    = 0000000B            RP_OF_V_OFF    = 00000000            

PR$_SSP        = 00000002            RP_DT_V_DTN    = 00000000            RP_SN            00000030            

PR$_TBIA       = 00000039            RP_EC1           00000038            SEARCH           0000011D R     03   

PR$_TBIS       = 0000003A            RP_EC1_S_POS   = 0000000D            SEARCHA          00000365 R     03   

PR$_TODR       = 0000001B            RP_EC1_V_POS   = 00000000            SEEK             0000011D R     03   

PR$_TXCS       = 00000022            RP_EC2           0000003C            SPECON           00000443 R     03   

PR$_TXDB       = 00000023            RP_EC2_S_PAT   = 0000000B            SS$_CTRLERR      ********   X   03   

PR$_USP        = 00000003            RP_EC2_V_PAT   = 00000000            SS$_DATACHECK    ********   X   03   

PR$_WCSA       = 0000002C            RP_ER1           00000008            SS$_DRVERR       ********   X   03   

PR$_WCSD       = 0000002D            RP_ER1_M_AOE   = 00000200            SS$_FORMAT       ********   X   03   

READDATA         0000012E R     03   RP_ER1_M_DCK   = 00008000            SS$_IVADDR       ********   X   03   

READHEAD         0000012E R     03   RP_ER1_M_DTE   = 00001000            SS$_MEDOFL       ********   X   03   

READPRESET       0000011D R     03   RP_ER1_M_ECH   = 00000040            SS$_NONEXDRV     ********   X   03   

RECAL            0000011D R     03   RP_ER1_M_FER   = 00000010            SS$_NORMAL       ********   X   03   

REGDUMP          00000469 R     03   RP_ER1_M_HCE   = 00000080            SS$_OPINCOMPL    ********   X   03   

RELEASE          0000011D R     03   RP_ER1_M_HCRC  = 00000100            SS$_PARITY       ********   X   03   

RETCENTER        0000011D R     03   RP_ER1_M_IAE   = 00000400            SS$_TIMEOUT      ********   X   03   

RETREG           000003BF R     03   RP_ER1_M_ILF   = 00000001            SS$_UNSAFE       ********   X   03   

RETRY            000001A9 R     03   RP_ER1_M_ILR   = 00000002            SS$_VOLINV       ********   X   03   

RETRYERR         0000025F R     03   RP_ER1_M_OPI   = 00002000            SS$_WASECC       ********   X   03   

RP_AS            00000010            RP_ER1_M_PAR   = 00000008            SS$_WRITLCK      ********   X   03   

RP_CC            0000002C            RP_ER1_M_RMR   = 00000004            STARTIO          0000009E R     03   

RP_CS1           00000000            RP_ER1_M_UNS   = 00004000            TRANNOCH         0000013E R     03   

RP_CS1_M_GO    = 00000001            RP_ER1_M_WCF   = 00000020            TRANRQCH         0000013B R     03   

RP_CS1_S_FCODE = 00000005            RP_ER1_M_WLE   = 00000800            TRANXT           0000018D R     03   

RP_CS1_V_FCODE = 00000001            RP_ER1_V_AOE   = 00000009            UCB$B_AMOD       00000053            

RP_CS1_V_GO    = 00000000            RP_ER1_V_DCK   = 0000000F            UCB$B_CEX        00000077            

RP_DA            00000014            RP_ER1_V_DTE   = 0000000C            UCB$B_CM1        0000004A            

RP_DA_S_SA     = 00000005            RP_ER1_V_ECH   = 00000006            UCB$B_CM2        0000004B            

RP_DA_S_TA     = 00000005            RP_ER1_V_FER   = 00000004            UCB$B_DEVCLASS   00000038            

RP_DA_V_SA     = 00000000            RP_ER1_V_HCE   = 00000007            UCB$B_DEVTYPE    00000039            

RP_DA_V_TA     = 00000008            RP_ER1_V_HCRC  = 00000008            UCB$B_DIPL       00000052            

RP_DC            00000028            RP_ER1_V_IAE   = 0000000A            UCB$B_DX_SCTCNT  FFFFFFFE            

RP_DS            00000004            RP_ER1_V_ILF   = 00000000            UCB$B_DX_SPARE   FFFFFFFF            

RP_DS_M_ATA    = 00008000            RP_ER1_V_ILR   = 00000001            UCB$B_ERTCNT     00000070            

RP_DS_M_DPR    = 00000100            RP_ER1_V_OPI   = 0000000D            UCB$B_ERTMAX     00000071            

RP_DS_M_DRY    = 00000080            RP_ER1_V_PAR   = 00000003            UCB$B_ESCAPE     0000004B            

RP_DS_M_ERR    = 00004000            RP_ER1_V_RMR   = 00000002            UCB$B_FEX        00000076            

RP_DS_M_LST    = 00000400            RP_ER1_V_UNS   = 0000000E            UCB$B_FIPL       0000000B            

RP_DS_M_MOL    = 00001000            RP_ER1_V_WCF   = 00000005            UCB$B_LOCSRV     0000003C            

RP_DS_M_PGM    = 00000200            RP_ER1_V_WLE   = 0000000B            UCB$B_OFFNDX     00000090            

RP_DS_M_PIP    = 00002000            RP_ER2           00000020            UCB$B_OFFRTC     00000091            

RP_DS_M_VV     = 00000040            RP_ER3           00000034            UCB$B_REMSRV     0000003D            

RP_DS_M_WRL    = 00000800            RP_ER3_M_SKI   = 00004000            UCB$B_SECTORS    0000003C            

RP_DS_V_ATA    = 0000000F            RP_ER3_V_SKI   = 0000000E            UCB$B_SLAVE      00000074            

RP_DS_V_DPR    = 00000008            RP_LA            0000001C            UCB$B_SPR        00000075            

RP_DS_V_DRY    = 00000007            RP_MR            0000000C            UCB$B_STATE      00000052            

DBDRIVER        - RP04/05/06 DISK DRIVER                         21-AUG-1978 23:49:59   VAX-11 MACRO X0.3-11               Page  27

SYMBOL TABLE                                                                                                                     (1)



UCB$B_TRACKS     0000003D            UCB$M_NOCNVRT  = 00000004            UCB$W_DC         0000008A            

UCB$B_TYPE       0000000A            UCB$M_NT_BFROVF= 00000004            UCB$W_DEVBUFSIZ  0000003A            

UCB$B_VERTSZ     0000003F            UCB$M_NT_BREAK = 00000020            UCB$W_DEVSTS     0000005A            

UCB$C_LENGTH     00000074            UCB$M_NT_NAME  = 00000010            UCB$W_DSTADDR    00000018            

UCB$C_LOGLNK   = 00000001            UCB$M_NT_NONTR = 00000040            UCB$W_DX_BCR     FFFFFFFC            

UCB$K_LENGTH     00000074            UCB$M_NT_SDP   = 00000008            UCB$W_EC1        0000008C            

UCB$L_AMB        00000054            UCB$M_ONLINE   = 00000010            UCB$W_EC2        0000008E            

UCB$L_ASTQBL     00000010            UCB$M_POWER    = 00000020            UCB$W_ERRCNT     00000072            

UCB$L_ASTQFL     0000000C            UCB$M_PRMMBX   = 00000001            UCB$W_FUNC       00000084            

UCB$L_CPID       0000005C            UCB$M_TIM      = 00000001            UCB$W_MB_SEED    FFFFFFFC            

UCB$L_CRB        00000020            UCB$M_TIMOUT   = 00000040            UCB$W_MSGCNT     00000016            

UCB$L_DB_SR      00000094            UCB$M_TT_NOTIF = 00000004            UCB$W_MSGMAX     00000014            

UCB$L_DDB        00000024            UCB$M_TT_TIMO  = 00000002            UCB$W_NT_CHAN    0000007C            

UCB$L_DEVCHAR    00000034            UCB$M_VALID    = 00000800            UCB$W_OFFSET     00000086            

UCB$L_DEVDEPEND  0000003C            UCB$S_LNKPRI   = 00000002            UCB$W_REFC       00000050            

UCB$L_DPC        0000007C            UCB$S_LTYPE    = 00000002            UCB$W_SIZE       00000008            

UCB$L_DUETIM     0000005C            UCB$T_PARTNER    0000000C            UCB$W_SRCADDR    0000001A            

UCB$L_DX_BFPNT   FFFFFFF4            UCB$V_BACKP    = 00000005            UCB$W_STS        00000058            

UCB$L_DX_BUF     FFFFFFF0            UCB$V_BSY      = 00000008            UCB$W_UNIT       00000048            

UCB$L_DX_RXDB    FFFFFFF8            UCB$V_CANCEL   = 00000003            UCB$W_VPROT      0000001A            

UCB$L_EMB        00000078            UCB$V_DEADMO   = 0000000A            UNLOAD           0000011D R     03   

UCB$L_FIRST      00000014            UCB$V_DELMBX   = 00000001            UNSOLNT          000004AD R     03   

UCB$L_FPC        0000000C            UCB$V_DIAGBUF  = 00000001            VEC$B_DATAPATH   00000013            

UCB$L_FQBL       00000004            UCB$V_DX_WRITE = 00000003            VEC$B_NUMREG     00000012            

UCB$L_FQFL       00000000            UCB$V_ECC      = 00000000            VEC$L_ADP        00000014            

UCB$L_FR3        00000010            UCB$V_ERLOGIP  = 00000002            VEC$L_IDB        00000008            

UCB$L_FR4        00000014            UCB$V_INT      = 00000001            VEC$L_INITIAL    0000000C            

UCB$L_IOQBL      00000044            UCB$V_INTTYPE  = 00000007            VEC$L_TT_DISC    00000020            

UCB$L_IOQFL      00000040            UCB$V_JOB      = 00000000            VEC$L_TT_ILINE   00000018            

UCB$L_IRP        0000004C            UCB$V_LNKPRI   = 00000006            VEC$L_TT_STRTIO  0000001C            

UCB$L_LINK       0000002C            UCB$V_LTYPE    = 00000000            VEC$M_MAPLOCK  = 00008000            

UCB$L_LOGADR     00000064            UCB$V_MOUNTING = 00000009            VEC$M_PATHLOCK = 00000080            

UCB$L_MAXBLOCK   00000080            UCB$V_MSGACK   = 00000004            VEC$Q_DISPATCH   00000000            

UCB$L_MEDIA      00000088            UCB$V_MSGFLO   = 00000003            VEC$S_DATAPATH = 00000007            

UCB$L_NT_DATSSB  00000074            UCB$V_NOCNVRT  = 00000002            VEC$S_MAPREG   = 0000000F            

UCB$L_NT_INTSSB  00000078            UCB$V_NT_BFROVF= 00000002            VEC$V_DATAPATH = 00000000            

UCB$L_OPCNT      00000060            UCB$V_NT_BREAK = 00000005            VEC$V_MAPLOCK  = 0000000F            

UCB$L_OWNUIC     0000001C            UCB$V_NT_NAME  = 00000004            VEC$V_MAPREG   = 00000000            

UCB$L_PID        00000028            UCB$V_NT_NONTR = 00000006            VEC$V_PATHLOCK = 00000007            

UCB$L_RQBL       00000004            UCB$V_NT_SDP   = 00000003            VEC$W_MAPREG     00000010            

UCB$L_RQFL       00000000            UCB$V_ONLINE   = 00000004            WRITECHECK       00000123 R     03   

UCB$L_SVAPTE     00000068            UCB$V_POWER    = 00000005            WRITECHECKH      00000123 R     03   

UCB$L_SVPN       00000064            UCB$V_PRMMBX   = 00000000            WRITEDATA        00000129 R     03   

UCB$L_TTCHAR     0000003C            UCB$V_SEGFLO   = 00000002            WRITEHEAD        00000129 R     03   

UCB$L_VCB        00000030            UCB$V_TIM      = 00000000            XFER             00000379 R     03   

UCB$M_BSY      = 00000100            UCB$V_TIMOUT   = 00000006            

UCB$M_CANCEL   = 00000008            UCB$V_TT_NOTIF = 00000002            

UCB$M_DEADMO   = 00000400            UCB$V_TT_TIMO  = 00000001            

UCB$M_DELMBX   = 00000002            UCB$V_VALID    = 0000000B            

UCB$M_DIAGBUF  = 00000002            UCB$W_BCNT       0000006E            

UCB$M_DX_WRITE = 00000008            UCB$W_BCR        00000092            

UCB$M_ECC      = 00000001            UCB$W_BOFF       0000006C            

UCB$M_ERLOGIP  = 00000004            UCB$W_BUFQUO     00000018            

UCB$M_INT      = 00000002            UCB$W_BYTESTOGO  0000003E            

UCB$M_INTTYPE  = 00000080            UCB$W_CHARGE     0000004A            

UCB$M_JOB      = 00000001            UCB$W_CYLINDERS  0000003E            

UCB$M_MOUNTING = 00000200            UCB$W_DA         00000088            

DBDRIVER        - RP04/05/06 DISK DRIVER                         21-AUG-1978 23:49:59   VAX-11 MACRO X0.3-11               Page  28

PROGRAM SECTION SYNOPSIS                                                                                                         (1)







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$            FFFFFFFF      02     NOPIC   USR   CON   ABS   LCL NOSHR   EXE   RD    WRT BYTE  

WIONONPAGED      000004AE      03     NOPIC   USR   CON   REL   LCL NOSHR   EXE   RD    WRT BYTE  





THERE WERE NO ERRORS OR WARNINGS.

6240. BYTES LEFT IN FREE MEMORY POOL.

46. BYTES OF RECLAIMED MEMORY.

OBJ$:DBDRIVER,LIS$:DBDRIVER/-SP=LIB$:LIB/ML,SRC$:DBDRIVER

20 MLB DIR RDS - 1084 GETS TO DEFINE 29 MACROS. 95 INTER. FILE WRITES. 

