BOOTDRIVR       BOOTSTRAP I/O DRIVER FOR RP04/5/6/7/RK06/7/RM03  21-AUG-1978 22:25:51   VAX-11 MACRO X0.3-11               Page   0

TABLE OF CONTENTS   



   (1)   23100  DRIVER FIXED DATA AREA

   (1)   25400  BOO$QIO - BOOTSTRAP QIO ROUTINE

   (1)   36800  UBA DEVICE BOOT I/O DRIVER

   (1)   42900  ECC - PERFORM ECC ERROR CORRECTION

   (1)   47700  BOO$MAP - ROUTINE TO MAP DATA FOR BOO$QIO

BOOTDRIVR       BOOTSTRAP I/O DRIVER FOR RP04/5/6/7/RK06/7/RM03  21-AUG-1978 22:25:51   VAX-11 MACRO X0.3-11               Page   1

01                                                                                                                               (1)



                                     0000   100 	.TITLE	BOOTDRIVR BOOTSTRAP I/O DRIVER FOR RP04/5/6/7/RK06/7/RM03 

                                     0000   200 	.IDENT	/01/

                                     0000   300 ;

                                     0000   400 ; COPYRIGHT (C) 1978

                                     0000   500 ; DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.

                                     0000   600 ;

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

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

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

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

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

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

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

                                     0000  1400 ;

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

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

                                     0000  1700 ; EQUIPMENT CORPORATION.

                                     0000  1800 ;

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

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

                                     0000  2100 ;

                                     0000  2200 ;

                                     0000  2300 ; MACRO LIBRARY CALLS

                                     0000  2400 ;

                                     0000  2500  

                                     0000  2600 	$IODEF				; DEFINE I/O FUNCTION CODES

                                     0000  2700 	$MBADEF				; DEFINE MASSBUS ADAPTER REGISTERS

                                     0000  2800 	$PRDEF				; DEFINE PROCESSOR REGISTERS

                                     0000  2900 	$PTEDEF				; DEFINE PAGE TABLE ENTRY FIELDS

                                     0000  3000 	$RPBDEF				; DEFINE RESTART PARAMETER BLOCK

                                     0000  3100 	$SSDEF				; DEFINE STATUS CODES

                                     0000  3150 	$UBADEF				; UNIBUS ADAPTER REGISTER DEFINITIONS

                                     0000  3200 	$VADEF				; DEFINE VIRTUAL ADDRESS FIELDS

                                     0000  3300  

                                     0000  3400 ;

                                     0000  3500 ; MACROS

                                     0000  3600 ;

                                     0000  3700 	.MACRO	MBADEV,TYPE,SPC,SPT	; 

                                     0000  3800 	.BYTE	TYPE			; MASSBUS DEVICE CODE

                                     0000  3900 	.WORD	SPC			; SECTORS PER CYLINDER

                                     0000  4000 	.BYTE	SPT			; SECTORS PER TRACK

                                     0000  4100 	.ENDM	MBADEV			;

                                     0000  4200 

                                     0000  4300 ;

                                     0000  4400 ; LOCAL SYMBOLS

                                     0000  4500 ;

                                     0000  4600 ; RK611/RK06 CONTROLLER REGISTER OFFSETS

                                     0000  4700 ;

                                     0000  4800  

                                     0000  4900 	$DEFINI	RK

                                     0000  5000  

                                     0000  5100 $DEF	RK_CS1		.BLKW	1	;CONTROL STATUS REGISTER 1

                                     0002  5200 	_VIELD	RK_CS1,0,<-		; CONTROL STATUS REGISTER 1 FIELD DEFINITIONS

                                     0002  5300 		<GO,,M>,-		; GO BIT

                                     0002  5400 		<FCODE,4>,-		; FUNCTION CODE

                                     0002  5500 		<DPPE,,M>,-		; DATA PATH PURGE ERROR

                                     0002  5600 		<IE,,M>,-		; INTERRUPT ENABLE

BOOTDRIVR       BOOTSTRAP I/O DRIVER FOR RP04/5/6/7/RK06/7/RM03  21-AUG-1978 22:25:51   VAX-11 MACRO X0.3-11               Page   2

01                                                                                                                               (1)



                                     0002  5700 		<RDY,,M>,-		; CONTROLLER READY

                                     0002  5800 		<MEX,2>,-		; MEMORY EXTENSION BITS

                                     0002  5900 		<CDT,,M>,-		; CONTROLLER DRIVE TYPE

                                     0002  6000 		<CTO,,M>,-		; CONTROLLER TIME OUT

                                     0002  6100 		<CFMT,,M>,-		; CONTROLLER FORMAT ERROR

                                     0002  6200 		<SPAR,,M>,-		; SERIAL BUS PARITY ERROR

                                     0002  6300 		<DI,,M>,-		; DRIVE INTERRUPT

                                     0002  6400 		<CERR,,M>-		; CONTROLLER ERROR

                                     0002  6500 	>				;

                                     0002  6600 $DEF	RK_WC		.BLKW	1	;WORD COUNT REGISTER

                                     0004  6700 $DEF	RK_BA		.BLKW	1	;BUFFER ADDRESS REGISTER

                                     0006  6800 $DEF	RK_DA		.BLKW	1	;DESIRED SECTOR/TRACK ADDRESS REGISTER

                                     0008  6900 	_VIELD	RK_DA,0,<-		; DESIRED ADDRESS FIELD DEFINITIONS

                                     0008  7000 		<SA,5>,-		; DESIRED SECTOR ADDRESS

                                     0008  7100 		<,3>,-			; RESERVED BITS

                                     0008  7200 		<TA,3>-			; DESIRED TRACK ADDRESS

                                     0008  7300 	>				;

                                     0008  7400 $DEF	RK_CS2		.BLKW	1	;CONTROL STATUS REGISTER 2

                                     000A  7500 	_VIELD	RK_CS2,0,<-		; CONTROL STATUS REGISTER 2 FIELD DEFINITIONS

                                     000A  7600 		<DS,3>,-		; DRIVE SELECT

                                     000A  7700 		<RLS,,M>,-		; RELEASE DRIVE

                                     000A  7800 		<BAI,,M>,-		; BUFFER ADDRESS INCREMENT INHIBIT

                                     000A  7900 		<SCLR,,M>,-		; SUBSYSTEM CLEAR

                                     000A  8000 		<IR,,M>,-		; INPUT READY

                                     000A  8100 		<OR,,M>,-		; OUTPUT READY

                                     000A  8200 		<UFE,,M>,-		; UNIT FIELD ERROR

                                     000A  8300 		<MDS,,M>,-		; MULTIPLE DRIVE SELECT

                                     000A  8400 		<PGE,,M>,-		; PROGRAMMING ERROR

                                     000A  8500 		<NEM,,M>,-		; NONEXISTENT MEMORY

                                     000A  8600 		<NED,,M>,-		; NONEXISTENT DRIVE

                                     000A  8700 		<UPE,,M>,-		; UNIBUS PARITY ERROR

                                     000A  8800 		<WCE,,M>,-		; WRITE CHECK ERROR

                                     000A  8900 		<DLT,,M>-		; DATA LATE ERROR

                                     000A  9000 	>				;

                                     000A  9100 $DEF	RK_DS		.BLKW	1	;DRIVE STATUS REGISTER

                                     000C  9200 	_VIELD	RK_DS,0,<-		; DRIVE STATUS REGISTER BIT DEFINTIONS

                                     000C  9300 		<DRA,,M>,-		; DRIVE AVAILABLE

                                     000C  9400 		<,1>,-			; RESERVED BIT

                                     000C  9500 		<OFST,,M>,-		; DRIVE OFFSET

                                     000C  9600 		<ACLO,,M>,-		; DRIVE AC LOW

                                     000C  9700 		<DCLO,,M>,-		; DRIVE DC LOW

                                     000C  9800 		<DROT,,M>,-		; DRIVE OFF TRACK

                                     000C  9900 		<VV,,M>,-		; VOLUME VALID

                                     000C 10000 		<DRDY,,M>,-		; DRIVE READY

                                     000C 10100 		<DDT,,M>,-		; DRIVE DRIVE TYPE

                                     000C 10200 		<,2>,-			; RESERVED BITS

                                     000C 10300 		<WRL,,M>,-		; DRIVE WRITE LOCKED

                                     000C 10400 		<,1>,-			; RESERVED BIT

                                     000C 10500 		<PIP,,M>,-		; POSITIONING IN PROGRESS

                                     000C 10600 		<DSC,,M>,-		; DRIVE STATUS CHANGE

                                     000C 10700 		<SVAL,,M>-		; DRIVE STATUS VALID

                                     000C 10800 	>				;

                                     000C 10900 $DEF	RK_ER		.BLKW	1	;ERROR REGISTER

                                     000E 11000 	_VIELD	RK_ER,0,<-		; ERROR REGISTER BIT DEFINITIONS

                                     000E 11100 		<ILF,,M>,-		; ILLEGAL FUNCTION

                                     000E 11200 		<SKI,,M>,-		; SEEK INCOMPLETE

                                     000E 11300 		<NXF,,M>,-		; NONEXECUTABLE FUNCTION

BOOTDRIVR       BOOTSTRAP I/O DRIVER FOR RP04/5/6/7/RK06/7/RM03  21-AUG-1978 22:25:51   VAX-11 MACRO X0.3-11               Page   3

01                                                                                                                               (1)



                                     000E 11400 		<DRPAR,,M>,-		; DRIVE PARITY ERROR

                                     000E 11500 		<FMTE,,M>,-		; FORMAT ERROR

                                     000E 11600 		<DTYE,,M>,-		; DRIVE TYPE ERROR

                                     000E 11700 		<ECH,,M>,-		; ECC HARD ERROR

                                     000E 11800 		<BSE,,M>,-		; BAD SECTOR ERROR

                                     000E 11900 		<HVRC,,M>,-		; HEADER VRC ERROR

                                     000E 12000 		<COE,,M>,-		; CYLINDER OVERFLOW ERROR

                                     000E 12100 		<IDAE,,M>,-		; INVALID DISK ADDRESS ERROR

                                     000E 12200 		<WLE,,M>,-		; WRITE LOCK ERROR

                                     000E 12300 		<DTE,,M>,-		; DRIVE TIMING ERROR

                                     000E 12400 		<OPI,,M>,-		; OPERATION INCOMPLETE

                                     000E 12500 		<UNS,,M>,-		; DRIVE UNSAFE

                                     000E 12600 		<DCK,,M>-		; DATA CHECK ERROR

                                     000E 12700 	>				;

                                     000E 12800 $DEF	RK_AS		.BLKW	1	;ATTENTION SUMMARY/OFFSET REGISTER

                                     0010 12900 	_VIELD	RK_AS,0,<-		; ATTENSION SUMMARY/OFFSET REGISTER FIELDS

                                     0010 13000 		<OF,7>,-		; DRIVE OFFSET

                                     0010 13100 		<,1>,-			; RESERVED BIT

                                     0010 13200 		<ATTN,8,M>-		; DRIVE ATTENTION SUMARY

                                     0010 13300 	>				;

                                     0010 13400 $DEF	RK_DC		.BLKW	1	;DESIRED CYLINDER ADDRESS

                                     0012 13500 $DEF	RK_SPR		.BLKW	1	;UNUSED REGISTER

                                     0014 13600 $DEF	RK_DB		.BLKW	1	;DATA BUFFER REGISTER

                                     0016 13700 $DEF	RK_MR1		.BLKW	1	;MAINTENANCE REGISTER 1

                                     0018 13800 	_VIELD	RK_MR1,0,<<MS,3>>	; MAINTENANCE REGISTER 1 FIELD DEFINITION

                                     0018 13900 $DEF	RK_EC1		.BLKW	1	;ECC POSITION REGISTER

                                     001A 14000 	_VIELD	RK_EC1,0,<<EPS,13>>	; ECC POSITION FIELD

                                     001A 14100 $DEF	RK_EC2		.BLKW	1	;ECC PATTERN REGISTER

                                     001C 14200 	_VIELD	RK_EC2,0,<<EPT,11>>	; ECC PATTERN FIELD

                                     001C 14300 $DEF	RK_MR2		.BLKW	1	;MAINTENANCE REGISTER 2

                                     001E 14400 $DEF	RK_MR3		.BLKW	1	;MAINTENANCE REGISTER 3

                                     0020 14500  

                                     0020 14600 	$DEFEND	RK

                                     0000 14700  

                                     0000 14800 ;

                                     0000 14900 ; RP04/05/06 MASSBUS REGISTER OFFSETS

                                     0000 15000 ;

                                     0000 15100  

                                     0000 15200 	$DEFINI	RP

                                     0000 15300  

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

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

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

                                     0004 15700 		<FCODE,5>-		; FUNCTION CODE

                                     0004 15800 	>				;

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

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

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

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

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

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

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

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

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

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

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

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

BOOTDRIVR       BOOTSTRAP I/O DRIVER FOR RP04/5/6/7/RK06/7/RM03  21-AUG-1978 22:25:51   VAX-11 MACRO X0.3-11               Page   4

01                                                                                                                               (1)



                                     0008 17100 	>				;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

                                     000C 19000 	>				;

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

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

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

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

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

                                     0018 19600 		<,3>,-			; RESERVED BITS

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

                                     0018 19800 	>				;

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

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

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

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

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

                                     001C 20400 	>				;

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

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

                                     0024 20700 $DEF	RP_OF		.BLKL	1	;OFFSET REGISTER

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

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

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

                                     0028 21100 		<,1>,-			; RESERVED BIT

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

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

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

                                     0028 21500 	>				;

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

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

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

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

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

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

                                     0038 22200 	>				;

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

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

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

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

                                     0040 22700  

BOOTDRIVR       BOOTSTRAP I/O DRIVER FOR RP04/5/6/7/RK06/7/RM03  21-AUG-1978 22:25:51   VAX-11 MACRO X0.3-11               Page   5

01                                                                                                                               (1)



                                     0040 22800 	$DEFEND	RP

                                     0000 22900  

BOOTDRIVR       BOOTSTRAP I/O DRIVER FOR RP04/5/6/7/RK06/7/RM03  21-AUG-1978 22:25:51   VAX-11 MACRO X0.3-11               Page   6

01              DRIVER FIXED DATA AREA                                                                                           (1)



                                     0000 23100 	.SBTTL	DRIVER FIXED DATA AREA

                                     0000 23200 ;

                                     0000 23300 ;	FIXED DATA CELLS FOR BOOTSTRAP DRIVER

                                     0000 23400 ;

                                 00000000 23500 	.PSECT	BOOTDRIVR		;

                                     0000 23600 BOO$AL_VECTOR::				; VECTOR TO BOOT DRIVER ENTRY POINTS

                           00000021' 0000 23700 	.LONG	BOO$QIO-BOO$AL_VECTOR	; OFFSET TO BOOT STRAP I/O DRIVER

                           00000247' 0004 23800 	.LONG	BOO$MAP-BOO$AL_VECTOR	; OFFSET TO MAPPING ROUTINE

                                     0008 23900 

                                     0008 24000 

                                     0008 24100 ;

                                     0008 24200 ;	GEOMETRY TABLE FOR MASSBUS DISKS

                                     0008 24300 ;

                                     0008 24400 	.LIST	MEB			; SHOW MACRO EXPANSION

                                     0008 24500 MBAGEOM:				;

                                     0008 24600 	MBADEV	<^X10>,<22*19>,22	; RP04

                                 10  0008       	.BYTE	^X10			; MASSBUS DEVICE CODE

                               01A2  0009       	.WORD	22*19			; SECTORS PER CYLINDER

                                 16  000B       	.BYTE	22			; SECTORS PER TRACK

                                     000C 24700 	MBADEV	<^X11>,<22*19>,22	; RP05

                                 11  000C       	.BYTE	^X11			; MASSBUS DEVICE CODE

                               01A2  000D       	.WORD	22*19			; SECTORS PER CYLINDER

                                 16  000F       	.BYTE	22			; SECTORS PER TRACK

                                     0010 24800 	MBADEV	<^X12>,<22*19>,22	; RP06

                                 12  0010       	.BYTE	^X12			; MASSBUS DEVICE CODE

                               01A2  0011       	.WORD	22*19			; SECTORS PER CYLINDER

                                 16  0013       	.BYTE	22			; SECTORS PER TRACK

                                     0014 24900 	MBADEV	<^X14>,<5*32>,32	; RM03

                                 14  0014       	.BYTE	^X14			; MASSBUS DEVICE CODE

                               00A0  0015       	.WORD	5*32			; SECTORS PER CYLINDER

                                 20  0017       	.BYTE	32			; SECTORS PER TRACK

                                     0018 25000 	MBADEV	<^X20>,<34*30>,34	; RP07 (W/O HEAD PER TRACK)

                                 20  0018       	.BYTE	^X20			; MASSBUS DEVICE CODE

                               03FC  0019       	.WORD	34*30			; SECTORS PER CYLINDER

                                 22  001B       	.BYTE	34			; SECTORS PER TRACK

                                     001C 25100 	MBADEV	<^X21>,<34*30>,34	; RP07 (WITH HEAD PER TRACK OPTION)

                                 21  001C       	.BYTE	^X21			; MASSBUS DEVICE CODE

                               03FC  001D       	.WORD	34*30			; SECTORS PER CYLINDER

                                 22  001F       	.BYTE	34			; SECTORS PER TRACK

                                 00  0020 25200 	.BYTE	0			; TERMINATE LIST

BOOTDRIVR       BOOTSTRAP I/O DRIVER FOR RP04/5/6/7/RK06/7/RM03  21-AUG-1978 22:25:51   VAX-11 MACRO X0.3-11               Page   7

01              BOO$QIO - BOOTSTRAP QIO ROUTINE                                                                                  (1)



                                     0021 25400 	.SBTTL	BOO$QIO - BOOTSTRAP QIO ROUTINE

                                     0021 25500 ;++

                                     0021 25600 ; FUNCTIONAL DESCRIPTION:

                                     0021 25700 ;	BOO$QIO PROVIDES THE DEVICE INDEPENDENT I/O INTERFACE FOR BOTH

                                     0021 25800 ;	READING AND WRITING THE BOOTSTRAP DEVICE.

                                     0021 25900 ;

                                     0021 26000 ; CALLING SEQUENCE:

                                     0021 26100 ;	CALLG	ARGLIST,BOO$QIO

                                     0021 26200 ;

                                     0021 26300 ; INPUT PARAMETERS:

                                     0021 26400 ;	BUF(AP)  - BUFFER ADDRESS

                           00000004  0021 26500 	BUF	 = 4

                                     0021 26600 ;	SIZE(AP) - SIZE OF BUFFER IN BYTES

                           00000008  0021 26700 	SIZE	 = 8

                                     0021 26800 ;	LBN(AP)  - LOGICAL BLOCK NUMBER

                           0000000C  0021 26900 	LBN	 = 12

                                     0021 27000 ;	FUNC(AP) - FUNCTION CODE

                                     0021 27100 ;			ACCEPTS IO$_READLBLK AND IO$_WRITELBLK

                           00000010  0021 27200 	FUNC	 = 16

                                     0021 27300 ;	MODE(AP) - ADDRESS INTERPRETATION MODE

                                     0021 27400 ;			0 => PHYSICAL, 1 => VIRTUAL

                           00000014  0021 27500 	MODE	 = 20

                                     0021 27600 ;

                                     0021 27700 ;	RPB(AP)	- ADDRESS OF RESTART PARAMETER BLOCK

                           00000018  0021 27800 	RPB	 = 24

                                     0021 27900 ;

                                     0021 28000 ; OUTPUT PARAMETERS:

                                     0021 28100 ;	R0 - COMPLETION STATUS CODE

                                     0021 28200 ;	R1 - TOTAL BYTES TRANSFERRED

                                     0021 28300 ;

                                     0021 28400 ;--

                                     0021 28500 

                               0FFC  0021 28600 BOO$QIO::	.WORD	^M<R2,R3,R4,R5,R6,R7,R8,R9,R10,R11>	; PRESERVE REGISTERS

            59         18 AC     D0  0023 28700 	MOVL	RPB(AP),R9		; GET BASE ADDRESS OF RESTART PARAMETER BLK

            51            38     DB  0027 28800 	MFPR	#PR$_MAPEN,R1		; CHECK FOR MAPPING ENABLED

            53         5C A941   D0  002A 28900 	MOVL	RPB$L_ADPPHY(R9)[R1],R3	; GET CORRECT POINTER TO CONFIG REG

            58         08 AC     3C  002F 29000 	MOVZWL	SIZE(AP),R8		; GET TRANSFER SIZE IN BYTES

                          04     12  0033 29100 	BNEQ	10$			; CONTINUE IF LEGAL SIZE

            01            10     9C  0035 29200 	ROTL	#16,#1,R8		; ELSE FORCE TO 64K SIZE

                          58         0038       

            09            00     EF  0039 29300 10$:	EXTZV	#VA$V_BYTE,#VA$S_BYTE,BUF(AP),R7 ; GET BYTE OFFSET INTO PAGE

            57         04 AC         003C       

            57            58     C0  003F 29350 	ADDL	R8,R7			; PLUS BYTE COUNT TO GET MAP PAGE COUNT

            5B         0C AC     D0  0042 29400 	MOVL	LBN(AP),R11		; AND BLOCK NUMBER FOR RETRY

            51         50 A9     D0  0046 29500 	MOVL	RPB$L_SVASPT(R9),R1	; ASSUME SYSTEM SPACE

         04 AC            1F     E0  004A 29600 	BBS	#VA$V_SYSTEM,BUF(AP),20$; BR IF SYSTEM ADDRESS

                          03         004E       

            51            08     DB  004F 29700 	MFPR	#PR$_P0BR,R1		; OTHERWISE GET P0 PT BASE

            15            09     EF  0052 29800 20$:	EXTZV	#VA$V_VPN,#VA$S_VPN,BUF(AP),R2	; GET BASE VPN FOR TRANSFER

            52         04 AC         0055       

            54       0800 C3     DE  0058 29900 	MOVAL	MBA$L_MAP(R3),R4	; POINT TO BASE OF ADAPTER MAP

            55            82     9E  005D 30000 25$:	MOVAB	(R2)+,R5		; GET VIRTUAL PAGE NUMBER AND UPDATE

            04         14 AC     E9  0060 30100 	BLBC	MODE(AP),30$		; USER DIRECTLY IF PHYSICAL ADDRESS

            55            6145   D0  0064 30200 	MOVL	(R1)[R5],R5		; TRANSLATE VIRTUAL TO PHYSICAL

            19         04 AC     F0  0068 30250 30$:	INSV	BUF(AP),#UBA$V_MAP_BO,#1,R5	; SET UBA BYTE OFFSET IF NECESSARY

            55            01         006C       

   80200000 8F            55     C9  006E 30300 	BISL3	R5,#^X80200000,(R4)+	; SET INTO MAP

BOOTDRIVR       BOOTSTRAP I/O DRIVER FOR RP04/5/6/7/RK06/7/RM03  21-AUG-1978 22:25:51   VAX-11 MACRO X0.3-11               Page   8

01              BOO$QIO - BOOTSTRAP QIO ROUTINE                                                                                  (1)



                          84         0075       

            57       FE00 C7     9E  0076 30400 	MOVAB	-512(R7),R7		; DECREMENT BYTE COUNT

                          E0     18  007B 30500 	BGEQ	25$			; CONTINUE TO FILL MAP

            09            00     EF  007D 30600 	EXTZV	#0,#9,BUF(AP),R10	; GET BYTE OFFSET

            5A         04 AC         0080       

                          0A     DD  0083 30700 	PUSHL	#10			; SET RETRY COUNT

                                     0085 30800 ;

                                     0085 30900 ;	THE ADAPTER MAP HAS NOW BEEN CORRECTLY LOADED FOR THE TRANSFER

                                     0085 31000 ;	SUCH THAT THE ADAPTER VIRTUAL ADDRESS OF THE START OF THE BUFFER

                                     0085 31100 ;	IS EQUAL TO THE BYTE OFFSET INTO THE FIRST PAGE.

                                     0085 31200 ;

                                     0085 31300 DRIVIO:					;

            55            5B     D0  0085 31400 	MOVL	R11,R5			; GET WORKING COPY OF BLOCK NUMBER

                          56     D4  0088 31500 	CLRL	R6			; CLEAR HIGH ORDER BITS FOR EDIV

            50            63     D0  008A 31600 	MOVL	(R3),R0			; GET CONTENT OF CONFIG REG #0

            50            03     CA  008D 31650 	BICL	#3,R0			; CLEAR ADAPTER NUMBER

            50            28     91  0090 31700 	CMPB	#^X28,R0		; IS IT UBA?

                          03     12  0093 31800 	BNEQ	10$			; NO, MUST BE MBA

                          0098   31  0095 31900 	BRW	UBABOOTDEV		;

                                     0098 32000 10$:					;

                                     0098 32100 ;

                                     0098 32200 ; RM03/RP04/05/06/07 BOOT ROUTINE

                                     0098 32300 ;

                                     0098 32400 ;	R3 - BASE ADDRESS OF ADAPTER CONFIGURATION REGISTER

                                     0098 32500 ;	R5 - LBN FOR CURRENT PIECE OF TRANSFER

                                     0098 32600 ;	R8 - SIZE OF TRANSFER IN BYTES

                                     0098 32700 ;

                                     0098 32800  

            57         64 A9     3C  0098 32850 	MOVZWL	RPB$W_UNIT(R9),R7	; GET UNIT NUMBER OF BOOT DEVICE

            57            07     78  009C 32875 	ASHL	#7,R7,R7		; ALIGN TO UNIT NUMBER FIELD

                          57         009F       

            57       0400 C347   9E  00A0 32900 	MOVAB	^X400(R3)[R7],R7	; FORM ADDRESS OF DRIVE REGISTERS

            67            13     D0  00A6 33010 	MOVL	#<9*2>+1,RP_CS1(R7)	; SET VOLUME VALID

         08 A3   00040000 8F     D3  00A9 33015 	BITL	#MBA$M_SR_NED,MBA$L_SR(R3)  ; DOES DRIVE EXIST?

                          03     13  00B1 33020 	BEQL	15$			; YES, CONTINUE

                          0074   31  00B3 33025 	BRW	NOSUCHDEV		; NO, ERROR

            56         18 A7     D0  00B6 33100 15$:	MOVL	RP_DT(R7),R6		; GET DRIVE TYPE

            51       FF47 CF     9E  00BA 33200 	MOVAB	MBAGEOM-3,R1		; POINT TO START OF GEOMETRY TABLE

            51            03     C0  00BF 33300 20$:	ADDL	#3,R1			; ADVANCE TO NEXT TYPE CODE

            50            81     90  00C2 33400 	MOVB	(R1)+,R0		; GET TYPE CODE

                          63     13  00C5 33500 	BEQL	NOSUCHDEV		; NOT FOUND UNSUPPORTED DEVICE

            50            56     91  00C7 33600 	CMPB	R6,R0			; CHECK FOR MATCH

                          F3     12  00CA 33700 	BNEQ	20$			; NO, TRY ANOTHER

         24 A7       1000 8F     3C  00CC 33750 	MOVZWL	#RP_OF_M_FMT,RP_OF(R7)	; SELECT 16 BIT FORMAT

                          56     D4  00D2 33800 	CLRL	R6			; CLEAR HIGH ORDER BITS OF DISK ADDRESS

            50            81     3C  00D4 33900 	MOVZWL	(R1)+,R0		; GET SECTORS PER CYLINDER

            55            50     7B  00D7 34000 	EDIV	R0,R5,RP_DC(R7),R5	; CALCULATE AND SET CYLINDER ADDRESS

            55         28 A7         00DA       

            50            81     9A  00DD 34100 	MOVZBL	(R1)+,R0		; GET SECTORS PER TRACK

            55            50     7B  00E0 34200 	EDIV	R0,R5,R5,R6		; CALCULATE SECTOR AND TRACK ADDRESS

            56            55         00E3       

                                     00E5 34300 MBCOMMON:				;

            08            55     F0  00E5 34400 	INSV	R5,#8,#8,R6		; MERGE SECTOR AND TRACK ADDRESS

            56            08         00E8       

         14 A7            56     D0  00EA 34500 	MOVL	R6,RP_DA(R7)		; SET DESIRED SECTOR AND TRACK ADDRESS

         10 A3            58     CE  00EE 34600 	MNEGL	R8,MBA$L_BCR(R3)	; SET TRANSFER BYTE COUNT

         0C A3            5A     D0  00F2 34700 	MOVL	R10,MBA$L_VAR(R3)	; AND SET AS VIRTUAL STARTING ADDRESS

BOOTDRIVR       BOOTSTRAP I/O DRIVER FOR RP04/5/6/7/RK06/7/RM03  21-AUG-1978 22:25:51   VAX-11 MACRO X0.3-11               Page   9

01              BOO$QIO - BOOTSTRAP QIO ROUTINE                                                                                  (1)



            50            39     D0  00F6 34800 	MOVL	#<28*2>+1,R0		; ASSUME READ

            20         10 AC     D1  00F9 34900 	CMPL	FUNC(AP),#IO$_WRITELBLK	; IS FUNCTION WRITE?

                          03     12  00FD 35000 	BNEQ	10$			; NO, THEN READ

            50            31     D0  00FF 35100 	MOVL	#<24*2>+1,R0		; SET WRITE FUNCTION

            67            50     D0  0102 35200 10$:	MOVL	R0,RP_CS1(R7)		; START TRANSFER

                       08 A3     D5  0105 35300 20$:	TSTL	MBA$L_SR(R3)		; DATA TRANSFER BUSY?

                          FB     19  0108 35400 	BLSS	20$			; IF LSS YES

            50            01     D0  010A 35500 	MOVL	#SS$_NORMAL,R0		; ASSUME NORMAL

         08 A3   000E1FFF 8F     D3  010D 35600 	BITL	#MBA$M_ERROR,MBA$L_SR(R3) ;ANY CONTROLLER ERRORS?

                          18     13  0115 35700 	BEQL	RETURN			; IF EQL NO

            50         08 A7     D0  0117 35800 	MOVL	RP_ER1(R7),R0		; GET ERROR STATUS

            51         10 A3     D0  011B 35900 	MOVL	MBA$L_BCR(R3),R1	; AND BYTE COUNT REMAINING

            55         38 A7     D0  011F 36000 	MOVL	RP_EC1(R7),R5		; GET ECC POSITION

            56         3C A7     D0  0123 36100 	MOVL	RP_EC2(R7),R6		; AND PATTERN

                          00B4   31  0127 36200 	BRW	ECC			; ATTEMPT ECC CORRECTION

                                     012A 36400 NOSUCHDEV:				; UNSUPPORTED DEVICE

            50       0908 8F     3C  012A 36500 	MOVZWL	#SS$_NOSUCHDEV,R0	; SET ERROR CODE

                                 04  012F 36600 RETURN:	RET				; AND RETURN

BOOTDRIVR       BOOTSTRAP I/O DRIVER FOR RP04/5/6/7/RK06/7/RM03  21-AUG-1978 22:25:51   VAX-11 MACRO X0.3-11               Page  10

01              UBA DEVICE BOOT I/O DRIVER                                                                                       (1)



                                     0130 36800 	.SBTTL	UBA DEVICE BOOT I/O DRIVER

                                     0130 36900 ;

                                     0130 37000 ;	UBA DEVICE I/O

                                     0130 37100 ;

                                     0130 37200 UBABOOTDEV:				; UNIBUS ADAPTER DEVICE

            57         54 A9     D0  0130 37300 	MOVL	RPB$L_CSRPHY(R9),R7	; ASSUME PHYSICAL

            50            38     DB  0134 37400 	MFPR	#PR$_MAPEN,R0		; CHECK FOR MAPPED

                          04     13  0137 37500 	BEQL	10$			; BR IF UNMAPPED

            57         58 A9     D0  0139 37600 	MOVL	RPB$L_CSRVIR(R9),R7	; ELSE GET VIRTUAL FORM

            51            11     D0  013D 37700 10$:	MOVL	#17,R1			; ASSUME READ

            20         10 AC     D1  0140 37800 	CMPL	FUNC(AP),#IO$_WRITELBLK	; CHECK FOR WRITE FUNCTION

                          03     12  0144 37900 	BNEQ	20$			; NO, DO READ

            51            13     D0  0146 38000 	MOVL	#19,R1			; SET WRITE FUNCTION CODE

            50         64 A9     3C  0149 38100 20$:	MOVZWL	RPB$W_UNIT(R9),R0	; GET UNIT NUMBER

         08 A7            20     B0  014D 38200 	MOVW	#RK_CS2_M_SCLR,RK_CS2(R7) ; CLEAR CONTROLLER AND ALL DRIVES

                          0082   30  0151 38300 	BSBW	READY			; WAIT FOR CONTROLLER READY

         08 A7            50     B0  0154 38400 	MOVW	R0,RK_CS2(R7)		; SET DRIVE NUMBER

            67            01     B0  0158 38500 30$:	MOVW	#1,RK_CS1(R7)		; SELECT DRIVE AND REQUEST STATUS

                          79     10  015B 38600 	BSBB	READY			; WAIT FOR CONTROL READY

         08 A7       1000 8F     B3  015D 38650 	BITW	#RK_CS2_M_NED,RK_CS2(R7); CHECK FOR EXISTENCE OF DRIVE

                          C5     12  0163 38675 	BNEQ	NOSUCHDEV		; BR IF IT DOES NOT EXIST

         0A A7       0080 8F     B3  0165 38700 	BITW	#RK_DS_M_DRDY,RK_DS(R7)	; DRIVE READY?

                          EB     13  016B 38800 	BEQL	30$			; IF EQL NO

                          52     D4  016D 38900 	CLRL	R2			; ASSUME RK06 TYPE DRIVE

         0A A7       0100 8F     B3  016F 39000 	BITW	#RK_DS_M_DDT,RK_DS(R7)	; CHECK FOR RK07 TYPE DRIVE

                          05     13  0175 39100 	BEQL	40$			; NOT RK07

            52       0400 8F     3C  0177 39200 	MOVZWL	#RK_CS1_M_CDT,R2	; YES PREPARE BIT TO MERGE WITH FUNC CODE

         08 A7            20     B0  017C 39300 40$:	MOVW	#RK_CS2_M_SCLR,RK_CS2(R7) ; CLEAR CONTROLLER AND ALL DRIVES

                          54     10  0180 39400 	BSBB	READY			; WAIT FOR CONTROLLER READY

         08 A7            50     B0  0182 39500 	MOVW	R0,RK_CS2(R7)		; SET DRIVE NUMBER

            52            03     A9  0186 39600 	BISW3	#3,R2,RK_CS1(R7)	; ACKNOWLEDGE PACK AND SET VOLUME VALID

                          67         0189       

                          4A     10  018A 39700 	BSBB	READY			; WAIT FOR CONTROLLER READY

            55   00000042 8F     7B  018C 39800 	EDIV	#22*3,R5,R4,R5		; COMPUTE DESIRED CYLINDER

            55            54         0193       

         10 A7            54     B0  0195 39900 	MOVW	R4,RK_DC(R7)		; AND SET IN DEVICE

            55            16     7B  0199 40000 	EDIV	#22,R5,R5,R6		; CALCULATE DESIRED TRACK/SECTOR

            56            55         019C       

            08            55     F0  019E 40100 	INSV	R5,#8,#8,R6		; MERGE TRACK AND SECTOR

            56            08         01A1       

         06 A7            56     B0  01A3 40200 	MOVW	R6,RK_DA(R7)		; SET DESIRED TRACK SECTOR

         04 A7            5A     B0  01A7 40300 	MOVW	R10,RK_BA(R7)		; SET STARTING BUFFER ADDRESS

            58            02     C7  01AB 40400 	DIVL3	#2,R8,R6		; COMPUTE WORD COUNT

                          56         01AE       

         02 A7            56     AE  01AF 40500 	MNEGW	R6,RK_WC(R7)		; SET NUMBER OF WORDS TO TRANSFER

            52            51     A9  01B3 40600 	BISW3	R1,R2,RK_CS1(R7)	; START DISK READ FUNCTION

                          67         01B6       

                          1D     10  01B7 40700 	BSBB	READY			; WAIT FOR CONTROLLER READY

            50            01     3C  01B9 40800 	MOVZWL	#SS$_NORMAL,R0		; ASSUME NORMAL COMPLETION

                          67     B5  01BC 40900 	TSTW	RK_CS1(R7)		; CHECK COMPOSITE ERROR

                          01     19  01BE 41000 	BLSS	50$			; CONTINUE IF NO ERROR

                                 04  01C0 41100 	RET				; 

            50         0C A7     B0  01C1 41200 50$:	MOVW	RK_ER(R7),R0		; GET ERROR STATUS

            51         02 A7     32  01C5 41300 	CVTWL	RK_WC(R7),R1		; GET NEGATED COUNT REMAINING

            51            02     C4  01C9 41400 	MULL	#2,R1			; CONVERT TO BYTES

            55         18 A7     3C  01CC 41500 	MOVZWL	RK_EC1(R7),R5		; GET POSITION OF ERROR

            56         1A A7     B0  01D0 41600 	MOVW	RK_EC2(R7),R6		; GET PATTERN

BOOTDRIVR       BOOTSTRAP I/O DRIVER FOR RP04/5/6/7/RK06/7/RM03  21-AUG-1978 22:25:51   VAX-11 MACRO X0.3-11               Page  11

01              UBA DEVICE BOOT I/O DRIVER                                                                                       (1)



                          08     11  01D4 41700 	BRB	ECC			; AND ATTEMPT ECC CORRECTION

                                     01D6 41800 

                                     01D6 41900 ;

                                     01D6 42000 ; SUBROUTINE TO WAIT FOR CONTROLLER READY OR ERROR

                                     01D6 42100 ;

                                     01D6 42200  

                                     01D6 42300 READY:					;

            67       8080 8F     B3  01D6 42400 	BITW	#^X8080,(R7)		;CONTROLLER READY OR ERROR?

                          F9     13  01DB 42500 	BEQL	READY			;IF EQL NO

                                 05  01DD 42600 	RSB				;

                                     01DE 42700 

BOOTDRIVR       BOOTSTRAP I/O DRIVER FOR RP04/5/6/7/RK06/7/RM03  21-AUG-1978 22:25:51   VAX-11 MACRO X0.3-11               Page  12

01              ECC - PERFORM ECC ERROR CORRECTION                                                                               (1)



                                     01DE 42900 	.SBTTL	ECC - PERFORM ECC ERROR CORRECTION

                                     01DE 43000 ;

                                     01DE 43100 ;	ATTEMPT ECC ERROR CORRECTION

                                     01DE 43200 ;

                                     01DE 43300 ; INPUTS:

                                     01DE 43400 ;	R0 - RK_ER/RP_ER1	ERROR STATUS REGISTER

                                     01DE 43500 ;	R1 - NEGATIVE BYTE COUNT REMAINING

                                     01DE 43600 ;	R5 - ECC POSITION

                                     01DE 43700 ;	R6 - ECC PATTERN

                                     01DE 43800 ;	R8 - BYTE COUNT REMAINING AT START OF LAST TRANSFER

                                     01DE 43900 ;	R10 - BYTE ADDRESS

                                     01DE 44000 ;	R11 - BLOCK NUMBER AT START OF TRANSFER

                                     01DE 44100 ;

                                     01DE 44200 	ASSUME	RK_ER_V_DCK EQ RP_ER1_V_DCK

                                     01DE 44300 	ASSUME	RK_ER_V_ECH EQ RP_ER1_V_ECH

                                     01DE 44400 ECC:					; ATTEMPT ECC CORRECTION

            50            0F     E1  01DE 44500 	BBC	#RK_ER_V_DCK,R0,RETRY	; NOT DATA CHECK, RETRY

                          58         01E1       

            50            06     E0  01E2 44600 	BBS	#RK_ER_V_ECH,R0,RETRY	; HARD ECC ERROR, RETRY

                          54         01E5       

            50            38     DB  01E6 44605 	MFPR	#PR$_MAPEN,R0		; GET MAP ENABLE STATE

         14 AC            50     D1  01E9 44610 	CMPL	R0,MODE(AP)		; SAME AS I/O MODE

                          4B     12  01ED 44615 	BNEQ	RETRY			; NO, CANT DO SIMPLE ECC

            51            58     C0  01EF 44700 	ADDL	R8,R1			; COMPUTE BYTES TRANSFERRED

                          46     13  01F2 44800 	BEQL	RETRY			; NONE, RETRY

            51         F7 8F     78  01F4 45000 	ASHL	#-9,R1,R0		; CONVERT TO PAGE COUNT

                          50         01F8       

            5B            50     C0  01F9 45100 	ADDL	R0,R11			; UPDATE BLOCK NUMBER

            5A            51     C0  01FC 45200 	ADDL	R1,R10			; UPDATE BYTE ADDRESS

            58            51     C2  01FF 45300 	SUBL	R1,R8			; DECREASE BYTES REMAINING

                          55     D7  0202 45400 	DECL	R5			; MAKE POSITION 1 ORIGIN

            50       0200 C8     9E  0204 45500 	MOVAB	512(R8),R0		; REMAINING BYTES AT START OF BAD SECTOR

         08 AC            50     C3  0209 45600 	SUBL3	R0,SIZE(AP),R2		; BYTES TRANSFERED AT START OF ERROR SECTOR

                          52         020D       

            50            08     C4  020E 45700 	MULL	#8,R0			; CONVERT BYTE COUNT TO BIT COUNT

            50            55     C2  0211 45800 	SUBL	R5,R0			; COMPUTE CORRECTION FIELD WIDTH

                          19     15  0214 45900 	BLEQ	20$			; BR IF NO CORRECTION NEEDED

            0D            50     D1  0216 46000 	CMPL	R0,#RK_EC1_S_EPS	; MINIMUM OF 13 AND BUFFER REMAINING

                          03     15  0219 46100 	BLEQ	10$			; KEEP MINIMUM VALUE

            50            0D     D0  021B 46200 	MOVL	#RK_EC1_S_EPS,R0	; LIMIT FIELD TO RK_EC1_S_EPS BITS

            50            55     EF  021E 46300 10$:	EXTZV	R5,R0,@BUF(AP)[R2],R1	; GET FIELD TO BE CORRECTED

            51         04 BC42       0221       

            51            56     CC  0225 46400 	XORL	R6,R1			; APPLY CORRECTION CODE

            55            51     F0  0228 46500 	INSV	R1,R5,R0,@BUF(AP)[R2]	; AND STORE IN BUFFER

         04 BC42          50         022B       

                          58     D5  022F 46600 20$:	TSTL	R8			; CHECK FOR COUNT REMAINING

                          03     15  0231 46700 	BLEQ	30$			; NONE, EXIT

                          FE4F   31  0233 46800 	BRW	DRIVIO			; YES, GO DO IT

            50            01     3C  0236 46900 30$:	MOVZWL	#SS$_NORMAL,R0		; SET COMPLETION CODE

                                 04  0239 47000 	RET				; AND RETURN

                          6E     D7  023A 47100 RETRY:	DECL	(SP)			; DECREASE RETRY COUNT

                          03     15  023C 47200 	BLEQ	10$			; ERROR IF NONE REMAINING

                          FE44   31  023E 47300 	BRW	DRIVIO			; RETRY I/O OPERATION

            50       01F4 8F     3C  0241 47400 10$:	MOVZWL	#SS$_PARITY,R0		; RETURN ERROR STATUS

                                 04  0246 47500 	RET				;

BOOTDRIVR       BOOTSTRAP I/O DRIVER FOR RP04/5/6/7/RK06/7/RM03  21-AUG-1978 22:25:51   VAX-11 MACRO X0.3-11               Page  13

01              BOO$MAP - ROUTINE TO MAP DATA FOR BOO$QIO                                                                        (1)



                                     0247 47700 	.SBTTL	BOO$MAP - ROUTINE TO MAP DATA FOR BOO$QIO

                                     0247 47800 ;++

                                     0247 47900 ; FUNCTIONAL DESCRIPTION:

                                     0247 48000 ;	BOO$MAP IS CALLED TO INITIALIZE THE DATA BASE FOR BOO$QIO TO PERMIT

                                     0247 48100 ;	IT TO FUNCTION WITH MEMORY MANAGEMENT ENABLED.  AN AREA OF SYSTEM

                                     0247 48200 ;	PAGE TABLE MUST BE PROVIDED SO THAT THE CONFIGURATION REGISTERS AND

                                     0247 48300 ;	UNIBUS I/O PAGE CAN BE MAPPED.

                                     0247 48400 ;

                                     0247 48500 ; CALLING SEQUENCE:

                                     0247 48600 ;	CALLG	ARGLIST,BOO$MAP

                                     0247 48700 ;

                                     0247 48800 ; INPUT PARAMETERS:

                                     0247 48900 ;	SVASPT(AP) - SYSTEM VIRTUAL ADDRESS OF THE SYSTEM PAGE TABLE

                           00000004  0247 49000 	SVASPT	=    4

                                     0247 49100 ;	VABASE(AP) - BASE VIRTUAL ADDRESS OF A 24 PAGE WINDOW TO MAP

                                     0247 49200 ;		     THE ADAPTER CONFIGURATION REGISTERS AND UNIBUS 

                           00000008  0247 49300 	VABASE  =    8

                                     0247 49400 ;		     I/O PAGE.

                                     0247 49500 ;	RPB(AP)	-    ADDRESS OF RESTART PARAMETER BLOCK (RPB) CONTAINING

                                     0247 49600 ;		     BOOTSTRAP DEVICE DESCRIPTION.

                           0000000C  0247 49700 	RPB	=    12

                                     0247 49800 ;

                                     0247 49900 ; OUTPUT PARAMETERS:

                                     0247 50000 ;	NONE

                                     0247 50100 ;

                                     0247 50200 ;--

                                     0247 50300 

                               00FC  0247 50400 BOO$MAP::	.WORD	^M<R2,R3,R4,R5,R6,R7>	;

            57         0C AC     D0  0249 50500 	MOVL	RPB(AP),R7		; GET BASE ADDRESS FOR RPB

            52         04 AC     D0  024D 50600 	MOVL	SVASPT(AP),R2		; GET BASE OF SPT

         50 A7            52     D0  0251 50700 	MOVL	R2,RPB$L_SVASPT(R7)	; AND SAVE IN DATA BASE

            53         08 AC     D0  0255 50800 	MOVL	VABASE(AP),R3		; GET VIRTUAL ADDRESS OF WINDOW

         60 A7            53     D0  0259 50900 	MOVL	R3,RPB$L_ADPVIR(R7)	; SET AS ADAPTER VIRTUAL ADDRESS

            15            09     EF  025D 51000 	EXTZV	#VA$V_VPN,#VA$S_VPN,RPB$L_ADPPHY(R7),R4	; GET BASE PFN

            54         5C A7         0260       

            55            08     D0  0263 51100 	MOVL	#8,R5			; SET TO MAP 8 PAGES

            15            09     EF  0266 51200 	EXTZV	#VA$V_VPN,#VA$S_VPN,R3,R0	; GET BASE VIRTUAL PAGE

            50            53         0269       

            51            6240   DE  026B 51300 	MOVAL	(R2)[R0],R1		; COMPUTE WORKING SPT POINTER

                          20     10  026F 51400 	BSBB	FILLSPT			; FILL SPT TO MAP CONFIGURATION REGS

            55            10     D0  0271 51500 	MOVL	#16,R5			; SET FOR 16 PAGES

         54 A7   00001FFF 8F     CB  0274 51600 	BICL3	#^X1FFF,RPB$L_CSRPHY(R7),R4	; GET PHY ADDR OF I/O PAGE BASE

                          54         027C       

            54            17     9C  027D 51650 	ROTL	#<32-9>,R4,R4		; AND CONVERT TO PAGE NUMBER

                          54         0280       

                          0E     10  0281 51700 	BSBB	FILLSPT			; STORE PTES INTO SPT

            50         54 A7     3C  0283 51800 	MOVZWL	RPB$L_CSRPHY(R7),R0	; GET I/O PAGE OFFSET

         58 A7   FFFF3000 E043   9E  0287 51900 	MOVAB	<^X1000-^XE000>(R0)[R3],RPB$L_CSRVIR(R7) ; SET VIRTUAL CSR ADDR

                                 04  0290 52000 	RET				; 

                                     0291 52100 

                                     0291 52200 ;

                                     0291 52300 ; INPUTS:

                                     0291 52400 ;	R1 - POINTER TO CURRENT SPT ENTRY (UPDATED)

                                     0291 52500 ;	R4 - PFN (UPDATED)

                                     0291 52600 ;	R5 - COUNT OF PAGES TO FILL (UPDATED)

                                     0291 52700 ;

                                     0291 52800 FILLSPT:				;

BOOTDRIVR       BOOTSTRAP I/O DRIVER FOR RP04/5/6/7/RK06/7/RM03  21-AUG-1978 22:25:51   VAX-11 MACRO X0.3-11               Page  14

01              BOO$MAP - ROUTINE TO MAP DATA FOR BOO$QIO                                                                        (1)



            54   90000000 8F     C9  0291 52900 	BISL3	#<PTE$M_VALID!PTE$C_KW>,R4,(R1)+ ; STORE A PTE

                          81         0298       

                          54     D6  0299 53000 	INCL	R4			; ADVANCE TO NEXT PFN

            F3            55     F5  029B 53100 	SOBGTR	R5,FILLSPT		; STORE THEM ALL

                                 05  029E 53200 	RSB				;

                                     029F 53300 

                           0000029F  029F 53350 BOO$C_DRVRSIZ==	.-BOO$AL_VECTOR		; SIZE OF BOOTSTRAP DRIVER IN BYTES

                                     029F 53400 	.END

BOOTDRIVR       BOOTSTRAP I/O DRIVER FOR RP04/5/6/7/RK06/7/RM03  21-AUG-1978 22:25:51   VAX-11 MACRO X0.3-11               Page  15

SYMBOL TABLE                                                                                                                     (1)



BIT...         = 0000000B            IO$V_CREATE    = 00000007            IO$_RETCENTER  = 00000007            

BOO$AL_VECTOR    00000000 RG    03   IO$V_CTRLCAST  = 00000008            IO$_REWIND     = 00000024            

BOO$C_DRVRSIZ  = 0000029F  G         IO$V_CTRLYAST  = 00000007            IO$_REWINDOFF  = 00000022            

BOO$MAP          00000247 RG    03   IO$V_CVTLOW    = 00000008            IO$_SEARCH     = 00000009            

BOO$QIO          00000021 RG    03   IO$V_DATACHECK = 0000000E            IO$_SEEK       = 00000002            

BUF            = 00000004            IO$V_DELETE    = 00000008            IO$_SENSECHAR  = 0000001B            

DRIVIO           00000085 R     03   IO$V_DMOUNT    = 0000000A            IO$_SENSEMODE  = 00000027            

ECC              000001DE R     03   IO$V_DSABLMBX  = 0000000A            IO$_SETCHAR    = 0000001A            

FILLSPT          00000291 R     03   IO$V_ENABLMBX  = 00000007            IO$_SETMODE    = 00000023            

FUNC           = 00000010            IO$V_FCODE     = 00000000            IO$_SKIPFILE   = 00000025            

GBL...         = 00000000            IO$V_HANGUP    = 00000009            IO$_SKIPRECORD = 00000026            

IO$M_ABORT     = 00000100            IO$V_INHERLOG  = 0000000B            IO$_SPACEFILE  = 00000002            

IO$M_ACCESS    = 00000040            IO$V_INHEXTGAP = 0000000C            IO$_SPACERECORD= 00000009            

IO$M_ATTNAST   = 00000100            IO$V_INHRETRY  = 0000000F            IO$_STARTSPNDL = 00000019            

IO$M_BINARY    = 00000040            IO$V_INHSEEK   = 0000000C            IO$_UNLOAD     = 00000001            

IO$M_CANCTRLO  = 00000040            IO$V_INTERRUPT = 00000006            IO$_VIRTUAL    = 0000003F            

IO$M_COMMOD    = 00000040            IO$V_INTSKIP   = 00000008            IO$_WRITECHECK = 0000000A            

IO$M_CREATE    = 00000080            IO$V_MOUNT     = 00000009            IO$_WRITECHECKH= 00000018            

IO$M_CTRLCAST  = 00000100            IO$V_NOECHO    = 00000006            IO$_WRITEHEAD  = 0000000D            

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

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

IO$M_DATACHECK = 00004000            IO$V_NOW       = 00000006            IO$_WRITEOF    = 00000028            

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

IO$M_DMOUNT    = 00000400            IO$V_PACKED    = 00000007            IO$_WRITETRACKD= 0000000F            

IO$M_DSABLMBX  = 00000400            IO$V_PURGE     = 0000000B            IO$_WRITEVBLK  = 00000030            

IO$M_ENABLMBX  = 00000080            IO$V_READATTN  = 00000007            LBN            = 0000000C            

IO$M_FCODE     = 0000003F            IO$V_REVERSE   = 00000006            MBA$L_AS         00000410            

IO$M_HANGUP    = 00000200            IO$V_SHUTDOWN  = 00000007            MBA$L_BCR        00000010            

IO$M_INHERLOG  = 00000800            IO$V_STARTUP   = 00000006            MBA$L_CR         00000004            

IO$M_INHEXTGAP = 00001000            IO$V_SYNCH     = 00000009            MBA$L_CSR        00000000            

IO$M_INHRETRY  = 00008000            IO$V_TIMED     = 00000007            MBA$L_ERB        00000400            

IO$M_INHSEEK   = 00001000            IO$V_TRMNOECHO = 0000000C            MBA$L_MAP        00000800            

IO$M_INTERRUPT = 00000040            IO$V_WRTATTN   = 00000008            MBA$L_SR         00000008            

IO$M_INTSKIP   = 00000100            IO$_ACCESS     = 00000032            MBA$L_VAR        0000000C            

IO$M_MOUNT     = 00000200            IO$_ACPCONTROL = 00000038            MBA$M_CR_ABORT = 00000002            

IO$M_NOECHO    = 00000040            IO$_CREATE     = 00000033            MBA$M_CR_IE    = 00000004            

IO$M_NOFILTR   = 00000200            IO$_DEACCESS   = 00000034            MBA$M_CR_INIT  = 00000001            

IO$M_NOFORMAT  = 00000100            IO$_DELETE     = 00000035            MBA$M_CSR_MT   = 08000000            

IO$M_NOW       = 00000040            IO$_DIAGNOSE   = 0000001D            MBA$M_CSR_OT   = 00200000            

IO$M_NOWAIT    = 00000080            IO$_DRVCLR     = 00000004            MBA$M_CSR_PD   = 00800000            

IO$M_PACKED    = 00000080            IO$_ERASETAPE  = 00000006            MBA$M_CSR_PE   = 80000000            

IO$M_PURGE     = 00000800            IO$_LOGICAL    = 0000002F            MBA$M_CSR_PU   = 00400000            

IO$M_READATTN  = 00000080            IO$_MODIFY     = 00000036            MBA$M_CSR_URD  = 20000000            

IO$M_REVERSE   = 00000040            IO$_MOUNT      = 00000039            MBA$M_CSR_WS   = 40000000            

IO$M_SHUTDOWN  = 00000080            IO$_NOP        = 00000000            MBA$M_CSR_XMFLT= 04000000            

IO$M_STARTUP   = 00000040            IO$_OFFSET     = 00000006            MBA$M_ERROR    = 000E1FFF            

IO$M_SYNCH     = 00000200            IO$_PACKACK    = 00000008            MBA$M_SR_ATTN  = 00010000            

IO$M_TIMED     = 00000080            IO$_PHYSICAL   = 0000001F            MBA$M_SR_CRD   = 20000000            

IO$M_TRMNOECHO = 00001000            IO$_READHEAD   = 0000000E            MBA$M_SR_DLT   = 00000800            

IO$M_WRTATTN   = 00000100            IO$_READLBLK   = 00000021            MBA$M_SR_DTABT = 00001000            

IO$S_FCODE     = 00000006            IO$_READPBLK   = 0000000C            MBA$M_SR_DTBUSY= 80000000            

IO$V_ABORT     = 00000008            IO$_READPRESET = 00000019            MBA$M_SR_DTCOMP= 00002000            

IO$V_ACCESS    = 00000006            IO$_READPROMPT = 00000037            MBA$M_SR_ERCONF= 00000008            

IO$V_ATTNAST   = 00000008            IO$_READTRACKD = 00000010            MBA$M_SR_INVMAP= 00000010            

IO$V_BINARY    = 00000006            IO$_READVBLK   = 00000031            MBA$M_SR_ISTO  = 00000002            

IO$V_CANCTRLO  = 00000006            IO$_RECAL      = 00000003            MBA$M_SR_MAPPE = 00000020            

IO$V_COMMOD    = 00000006            IO$_RELEASE    = 00000005            MBA$M_SR_MBEXC = 00000080            

BOOTDRIVR       BOOTSTRAP I/O DRIVER FOR RP04/5/6/7/RK06/7/RM03  21-AUG-1978 22:25:51   VAX-11 MACRO X0.3-11               Page  16

SYMBOL TABLE                                                                                                                     (1)



MBA$M_SR_MCPE  = 00020000            PR$_ISP        = 00000004            PTE$M_OWN      = 01800000            

MBA$M_SR_MDPE  = 00000040            PR$_KSP        = 00000000            PTE$M_PFN      = 001FFFFF            

MBA$M_SR_MXF   = 00000100            PR$_MAPEN      = 00000038            PTE$M_PGFLVB   = 003FFFFF            

MBA$M_SR_NED   = 00040000            PR$_NICR       = 00000019            PTE$M_PROT     = 78000000            

MBA$M_SR_NRCONF= 40000000            PR$_P0BR       = 00000008            PTE$M_TYP0     = 00400000            

MBA$M_SR_PGE   = 00080000            PR$_P0LR       = 00000009            PTE$M_TYP1     = 04000000            

MBA$M_SR_RDS   = 00000004            PR$_P1BR       = 0000000A            PTE$M_VALID    = 80000000            

MBA$M_SR_RDTO  = 00000001            PR$_P1LR       = 0000000B            PTE$M_WRT      = 00040000            

MBA$M_SR_WCKLWR= 00000200            PR$_PCBB       = 00000010            PTE$S_GPTX     = 00000016            

MBA$M_SR_WCKUPR= 00000400            PR$_PME        = 0000003D            PTE$S_OWN      = 00000002            

MBA$S_CSR_ADCOD= 00000008            PR$_RXCS       = 00000020            PTE$S_PFN      = 00000015            

MBA$S_ERB_UNIT = 00000003            PR$_RXDB       = 00000021            PTE$S_PGFLVB   = 00000016            

MBA$V_CR_ABORT = 00000001            PR$_SBIER      = 00000034            PTE$S_PROT     = 00000004            

MBA$V_CR_IE    = 00000002            PR$_SBIFS      = 00000030            PTE$S_STX      = 00000010            

MBA$V_CR_INIT  = 00000000            PR$_SBIMT      = 00000033            PTE$V_CRF      = 00000010            

MBA$V_CSR_ADCOD= 00000000            PR$_SBIQC      = 00000036            PTE$V_DZRO     = 00000011            

MBA$V_CSR_MT   = 0000001B            PR$_SBIS       = 00000031            PTE$V_GPTX     = 00000000            

MBA$V_CSR_OT   = 00000015            PR$_SBISC      = 00000032            PTE$V_MODIFY   = 0000001A            

MBA$V_CSR_PD   = 00000017            PR$_SBITA      = 00000035            PTE$V_OWN      = 00000017            

MBA$V_CSR_PE   = 0000001F            PR$_SBR        = 0000000C            PTE$V_PFN      = 00000000            

MBA$V_CSR_PU   = 00000016            PR$_SCBB       = 00000011            PTE$V_PGFLVB   = 00000000            

MBA$V_CSR_URD  = 0000001D            PR$_SID        = 0000003E            PTE$V_PROT     = 0000001B            

MBA$V_CSR_WS   = 0000001E            PR$_SIRR       = 00000014            PTE$V_STX      = 00000000            

MBA$V_CSR_XMFLT= 0000001A            PR$_SISR       = 00000015            PTE$V_TYP0     = 00000016            

MBA$V_ERB_UNIT = 00000007            PR$_SLR        = 0000000D            PTE$V_TYP1     = 0000001A            

MBA$V_SR_ATTN  = 00000010            PR$_SSP        = 00000002            PTE$V_VALID    = 0000001F            

MBA$V_SR_CRD   = 0000001D            PR$_TBIA       = 00000039            PTE$V_WRT      = 00000012            

MBA$V_SR_DLT   = 0000000B            PR$_TBIS       = 0000003A            READY            000001D6 R     03   

MBA$V_SR_DTABT = 0000000C            PR$_TODR       = 0000001B            RETRY            0000023A R     03   

MBA$V_SR_DTBUSY= 0000001F            PR$_TXCS       = 00000022            RETURN           0000012F R     03   

MBA$V_SR_DTCOMP= 0000000D            PR$_TXDB       = 00000023            RK_AS            0000000E            

MBA$V_SR_ERCONF= 00000003            PR$_USP        = 00000003            RK_AS_M_ATTN   = 0000FF00            

MBA$V_SR_INVMAP= 00000004            PR$_WCSA       = 0000002C            RK_AS_S_ATTN   = 00000008            

MBA$V_SR_ISTO  = 00000001            PR$_WCSD       = 0000002D            RK_AS_S_OF     = 00000007            

MBA$V_SR_MAPPE = 00000005            PTE$C_EOWN     = 00800000            RK_AS_V_ATTN   = 00000008            

MBA$V_SR_MBEXC = 00000007            PTE$C_ER       = 38000000            RK_AS_V_OF     = 00000000            

MBA$V_SR_MCPE  = 00000011            PTE$C_ERKW     = 30000000            RK_BA            00000004            

MBA$V_SR_MDPE  = 00000006            PTE$C_EW       = 28000000            RK_CS1           00000000            

MBA$V_SR_MXF   = 00000008            PTE$C_KOWN     = 00000000            RK_CS1_M_CDT   = 00000400            

MBA$V_SR_NED   = 00000012            PTE$C_KR       = 18000000            RK_CS1_M_CERR  = 00008000            

MBA$V_SR_NRCONF= 0000001E            PTE$C_KW       = 10000000            RK_CS1_M_CFMT  = 00001000            

MBA$V_SR_PGE   = 00000013            PTE$C_NA       = 00000000            RK_CS1_M_CTO   = 00000800            

MBA$V_SR_RDS   = 00000002            PTE$C_SOWN     = 01000000            RK_CS1_M_DI    = 00004000            

MBA$V_SR_RDTO  = 00000000            PTE$C_SR       = 58000000            RK_CS1_M_DPPE  = 00000020            

MBA$V_SR_WCKLWR= 00000009            PTE$C_SREW     = 48000000            RK_CS1_M_GO    = 00000001            

MBA$V_SR_WCKUPR= 0000000A            PTE$C_SRKW     = 50000000            RK_CS1_M_IE    = 00000040            

MBAGEOM          00000008 R     03   PTE$C_SW       = 40000000            RK_CS1_M_RDY   = 00000080            

MBCOMMON         000000E5 R     03   PTE$C_UOWN     = 01800000            RK_CS1_M_SPAR  = 00002000            

MODE           = 00000014            PTE$C_UR       = 78000000            RK_CS1_S_FCODE = 00000004            

NOSUCHDEV        0000012A R     03   PTE$C_UREW     = 68000000            RK_CS1_S_MEX   = 00000002            

PR$_ACCR       = 00000029            PTE$C_URKW     = 70000000            RK_CS1_V_CDT   = 0000000A            

PR$_ACCS       = 00000028            PTE$C_URSW     = 60000000            RK_CS1_V_CERR  = 0000000F            

PR$_ASTLVL     = 00000013            PTE$C_UW       = 20000000            RK_CS1_V_CFMT  = 0000000C            

PR$_ESP        = 00000001            PTE$M_CRF      = 00010000            RK_CS1_V_CTO   = 0000000B            

PR$_ICCS       = 00000018            PTE$M_DZRO     = 00020000            RK_CS1_V_DI    = 0000000E            

PR$_ICR        = 0000001A            PTE$M_GPTX     = 003FFFFF            RK_CS1_V_DPPE  = 00000005            

PR$_IPL        = 00000012            PTE$M_MODIFY   = 04000000            RK_CS1_V_FCODE = 00000001            

BOOTDRIVR       BOOTSTRAP I/O DRIVER FOR RP04/5/6/7/RK06/7/RM03  21-AUG-1978 22:25:51   VAX-11 MACRO X0.3-11               Page  17

SYMBOL TABLE                                                                                                                     (1)



RK_CS1_V_GO    = 00000000            RK_DS_V_DRA    = 00000000            RPB$B_DEVTYP     00000066            

RK_CS1_V_IE    = 00000006            RK_DS_V_DRDY   = 00000007            RPB$B_HDRPGCNT   000000A0            

RK_CS1_V_MEX   = 00000008            RK_DS_V_DROT   = 00000005            RPB$B_SLAVE      00000067            

RK_CS1_V_RDY   = 00000007            RK_DS_V_DSC    = 0000000E            RPB$C_LENGTH     000000BC            

RK_CS1_V_SPAR  = 0000000D            RK_DS_V_OFST   = 00000002            RPB$K_LENGTH     000000BC            

RK_CS2           00000008            RK_DS_V_PIP    = 0000000D            RPB$L_ADPPHY     0000005C            

RK_CS2_M_BAI   = 00000010            RK_DS_V_SVAL   = 0000000F            RPB$L_ADPVIR     00000060            

RK_CS2_M_DLT   = 00008000            RK_DS_V_VV     = 00000006            RPB$L_BASE       00000000            

RK_CS2_M_IR    = 00000040            RK_DS_V_WRL    = 0000000B            RPB$L_BOOTR0     0000001C            

RK_CS2_M_MDS   = 00000200            RK_EC1           00000018            RPB$L_BOOTR1     00000020            

RK_CS2_M_NED   = 00001000            RK_EC1_S_EPS   = 0000000D            RPB$L_BOOTR2     00000024            

RK_CS2_M_NEM   = 00000800            RK_EC1_V_EPS   = 00000000            RPB$L_BOOTR3     00000028            

RK_CS2_M_OR    = 00000080            RK_EC2           0000001A            RPB$L_BOOTR4     0000002C            

RK_CS2_M_PGE   = 00000400            RK_EC2_S_EPT   = 0000000B            RPB$L_BOOTR5     00000030            

RK_CS2_M_RLS   = 00000008            RK_EC2_V_EPT   = 00000000            RPB$L_CHKSUM     00000008            

RK_CS2_M_SCLR  = 00000020            RK_ER            0000000C            RPB$L_CSRPHY     00000054            

RK_CS2_M_UFE   = 00000100            RK_ER_M_BSE    = 00000080            RPB$L_CSRVIR     00000058            

RK_CS2_M_UPE   = 00002000            RK_ER_M_COE    = 00000200            RPB$L_FILLBN     0000003C            

RK_CS2_M_WCE   = 00004000            RK_ER_M_DCK    = 00008000            RPB$L_FILSIZ     00000040            

RK_CS2_S_DS    = 00000003            RK_ER_M_DRPAR  = 00000008            RPB$L_HALTCODE   00000018            

RK_CS2_V_BAI   = 00000004            RK_ER_M_DTE    = 00001000            RPB$L_HALTPC     00000010            

RK_CS2_V_DLT   = 0000000F            RK_ER_M_DTYE   = 00000020            RPB$L_HALTPSL    00000014            

RK_CS2_V_DS    = 00000000            RK_ER_M_ECH    = 00000040            RPB$L_IOVEC      00000034            

RK_CS2_V_IR    = 00000006            RK_ER_M_FMTE   = 00000010            RPB$L_IOVECSZ    00000038            

RK_CS2_V_MDS   = 00000009            RK_ER_M_HVRC   = 00000100            RPB$L_ISP        000000A4            

RK_CS2_V_NED   = 0000000C            RK_ER_M_IDAE   = 00000400            RPB$L_PCBB       000000A8            

RK_CS2_V_NEM   = 0000000B            RK_ER_M_ILF    = 00000001            RPB$L_PFNCNT     0000004C            

RK_CS2_V_OR    = 00000007            RK_ER_M_NXF    = 00000004            RPB$L_RESTART    00000004            

RK_CS2_V_PGE   = 0000000A            RK_ER_M_OPI    = 00002000            RPB$L_RSTRTFLG   0000000C            

RK_CS2_V_RLS   = 00000003            RK_ER_M_SKI    = 00000002            RPB$L_SBR        000000AC            

RK_CS2_V_SCLR  = 00000005            RK_ER_M_UNS    = 00004000            RPB$L_SCBB       000000B0            

RK_CS2_V_UFE   = 00000008            RK_ER_M_WLE    = 00000800            RPB$L_SISR       000000B4            

RK_CS2_V_UPE   = 0000000D            RK_ER_V_BSE    = 00000007            RPB$L_SLR        000000B8            

RK_CS2_V_WCE   = 0000000E            RK_ER_V_COE    = 00000009            RPB$L_SVASPT     00000050            

RK_DA            00000006            RK_ER_V_DCK    = 0000000F            RPB$Q_PFNMAP     00000044            

RK_DA_S_SA     = 00000005            RK_ER_V_DRPAR  = 00000003            RPB$T_FILE       00000068            

RK_DA_S_TA     = 00000003            RK_ER_V_DTE    = 0000000C            RPB$V_BBLOCK   = 00000003            

RK_DA_V_SA     = 00000000            RK_ER_V_DTYE   = 00000005            RPB$V_BOOBPT   = 00000005            

RK_DA_V_TA     = 00000008            RK_ER_V_ECH    = 00000006            RPB$V_CONV     = 00000000            

RK_DB            00000014            RK_ER_V_FMTE   = 00000004            RPB$V_DEBUG    = 00000001            

RK_DC            00000010            RK_ER_V_HVRC   = 00000008            RPB$V_DIAG     = 00000004            

RK_DS            0000000A            RK_ER_V_IDAE   = 0000000A            RPB$V_HALT     = 00000009            

RK_DS_M_ACLO   = 00000008            RK_ER_V_ILF    = 00000000            RPB$V_HEADER   = 00000006            

RK_DS_M_DCLO   = 00000010            RK_ER_V_NXF    = 00000002            RPB$V_INIBPT   = 00000002            

RK_DS_M_DDT    = 00000100            RK_ER_V_OPI    = 0000000D            RPB$V_NOPFND   = 0000000A            

RK_DS_M_DRA    = 00000001            RK_ER_V_SKI    = 00000001            RPB$V_NOTEST   = 00000007            

RK_DS_M_DRDY   = 00000080            RK_ER_V_UNS    = 0000000E            RPB$V_SOLICT   = 00000008            

RK_DS_M_DROT   = 00000020            RK_ER_V_WLE    = 0000000B            RPB$W_UNIT       00000064            

RK_DS_M_DSC    = 00004000            RK_MR1           00000016            RP_AS            00000010            

RK_DS_M_OFST   = 00000004            RK_MR1_S_MS    = 00000003            RP_CC            0000002C            

RK_DS_M_PIP    = 00002000            RK_MR1_V_MS    = 00000000            RP_CS1           00000000            

RK_DS_M_SVAL   = 00008000            RK_MR2           0000001C            RP_CS1_M_GO    = 00000001            

RK_DS_M_VV     = 00000040            RK_MR3           0000001E            RP_CS1_S_FCODE = 00000005            

RK_DS_M_WRL    = 00000800            RK_SPR           00000012            RP_CS1_V_FCODE = 00000001            

RK_DS_V_ACLO   = 00000003            RK_WC            00000002            RP_CS1_V_GO    = 00000000            

RK_DS_V_DCLO   = 00000004            RPB            = 0000000C            RP_DA            00000014            

RK_DS_V_DDT    = 00000008            RPB$B_CONFREG    00000090            RP_DA_S_SA     = 00000005            

BOOTDRIVR       BOOTSTRAP I/O DRIVER FOR RP04/5/6/7/RK06/7/RM03  21-AUG-1978 22:25:51   VAX-11 MACRO X0.3-11               Page  18

SYMBOL TABLE                                                                                                                     (1)



RP_DA_S_TA     = 00000005            RP_ER1_V_FER   = 00000004            SS$_CMODUSER   = 00000424            

RP_DA_V_SA     = 00000000            RP_ER1_V_HCE   = 00000007            SS$_COMPAT     = 0000042C            

RP_DA_V_TA     = 00000008            RP_ER1_V_HCRC  = 00000008            SS$_CONTINUE   = 00000001            

RP_DC            00000028            RP_ER1_V_IAE   = 0000000A            SS$_CONTROLC   = 00000651            

RP_DS            00000004            RP_ER1_V_ILF   = 00000000            SS$_CONTROLO   = 00000609            

RP_DS_M_ATA    = 00008000            RP_ER1_V_ILR   = 00000001            SS$_CONTROLY   = 00000611            

RP_DS_M_DPR    = 00000100            RP_ER1_V_OPI   = 0000000D            SS$_CREATED    = 00000619            

RP_DS_M_DRY    = 00000080            RP_ER1_V_PAR   = 00000003            SS$_CTRLERR    = 00000054            

RP_DS_M_ERR    = 00004000            RP_ER1_V_RMR   = 00000002            SS$_DATACHECK  = 0000005C            

RP_DS_M_LST    = 00000400            RP_ER1_V_UNS   = 0000000E            SS$_DATAOVERUN = 00000838            

RP_DS_M_MOL    = 00001000            RP_ER1_V_WCF   = 00000005            SS$_DEBUG      = 0000046C            

RP_DS_M_PGM    = 00000200            RP_ER1_V_WLE   = 0000000B            SS$_DECOVF     = 000004A4            

RP_DS_M_PIP    = 00002000            RP_ER2           00000020            SS$_DEVACTIVE  = 000002C4            

RP_DS_M_VV     = 00000040            RP_ER3           00000034            SS$_DEVALLOC   = 00000840            

RP_DS_M_WRL    = 00000800            RP_ER3_M_SKI   = 00004000            SS$_DEVALRALLOC= 00000641            

RP_DS_V_ATA    = 0000000F            RP_ER3_V_SKI   = 0000000E            SS$_DEVASSIGN  = 00000848            

RP_DS_V_DPR    = 00000008            RP_LA            0000001C            SS$_DEVFOREIGN = 00000064            

RP_DS_V_DRY    = 00000007            RP_MR            0000000C            SS$_DEVICEFULL = 00000850            

RP_DS_V_ERR    = 0000000E            RP_OF            00000024            SS$_DEVMOUNT   = 0000006C            

RP_DS_V_LST    = 0000000A            RP_OF_M_DCK    = 00000100            SS$_DEVNOTALLOC= 00000858            

RP_DS_V_MOL    = 0000000C            RP_OF_M_ECI    = 00000800            SS$_DEVNOTMBX  = 00000074            

RP_DS_V_PGM    = 00000009            RP_OF_M_FMT    = 00001000            SS$_DEVNOTMOUNT= 0000007C            

RP_DS_V_PIP    = 0000000D            RP_OF_M_HCI    = 00000400            SS$_DEVOFFLINE = 00000084            

RP_DS_V_VV     = 00000006            RP_OF_S_OFF    = 00000008            SS$_DIRFULL    = 00000860            

RP_DS_V_WRL    = 0000000B            RP_OF_V_DCK    = 00000008            SS$_DRVERR     = 0000008C            

RP_DT            00000018            RP_OF_V_ECI    = 0000000B            SS$_DUPFILENAME= 00000868            

RP_DT_M_DRQ    = 00000800            RP_OF_V_FMT    = 0000000C            SS$_DUPLNAM    = 00000094            

RP_DT_S_DTN    = 00000009            RP_OF_V_HCI    = 0000000A            SS$_ENDOFFILE  = 00000870            

RP_DT_V_DRQ    = 0000000B            RP_OF_V_OFF    = 00000000            SS$_ENDOFTAPE  = 00000878            

RP_DT_V_DTN    = 00000000            RP_SN            00000030            SS$_ENDOFUSRLBL= 00000970            

RP_EC1           00000038            SIZE           = 00000008            SS$_EXQUOTA    = 0000001C            

RP_EC1_S_POS   = 0000000D            SS$_ABORT      = 0000002C            SS$_EXTIDXFILE = 00000880            

RP_EC1_V_POS   = 00000000            SS$_ACCONFLICT = 00000800            SS$_FCPREADERR = 00000888            

RP_EC2           0000003C            SS$_ACCVIO     = 0000000C            SS$_FCPREPSTN  = 00000988            

RP_EC2_S_PAT   = 0000000B            SS$_ACPVAFUL   = 000002FC            SS$_FCPREWNDERR= 00000890            

RP_EC2_V_PAT   = 00000000            SS$_ARTRES     = 00000474            SS$_FCPSPACERR = 00000898            

RP_ER1           00000008            SS$_ASTFLT     = 0000040C            SS$_FCPWRITERR = 000008A0            

RP_ER1_M_AOE   = 00000200            SS$_BADATTRIB  = 00000034            SS$_FILACCERR  = 0000009C            

RP_ER1_M_DCK   = 00008000            SS$_BADCHKSUM  = 00000808            SS$_FILALRACC  = 000000A4            

RP_ER1_M_DTE   = 00001000            SS$_BADESCAPE  = 0000003C            SS$_FILELOCKED = 000008A8            

RP_ER1_M_ECH   = 00000040            SS$_BADFILEHDR = 00000810            SS$_FILENUMCHK = 000008B0            

RP_ER1_M_FER   = 00000010            SS$_BADFILENAME= 00000818            SS$_FILESEQCHK = 000008B8            

RP_ER1_M_HCE   = 00000080            SS$_BADFILEVER = 00000820            SS$_FILESTRUCT = 000008C0            

RP_ER1_M_HCRC  = 00000100            SS$_BADIMGHDR  = 00000044            SS$_FILNOTACC  = 000000AC            

RP_ER1_M_IAE   = 00000400            SS$_BADIRECTORY= 00000828            SS$_FILNOTCNTG = 000002AC            

RP_ER1_M_ILF   = 00000001            SS$_BADPARAM   = 00000014            SS$_FILNOTEXP  = 000000B4            

RP_ER1_M_ILR   = 00000002            SS$_BADSTACK   = 000002B4            SS$_FLTDIV     = 00000494            

RP_ER1_M_OPI   = 00002000            SS$_BEGOFFILE  = 00000938            SS$_FLTOVF     = 0000048C            

RP_ER1_M_PAR   = 00000008            SS$_BLOCKCNTERR= 00000940            SS$_FLTUND     = 0000049C            

RP_ER1_M_RMR   = 00000004            SS$_BREAK      = 00000414            SS$_FORMAT     = 000000BC            

RP_ER1_M_UNS   = 00004000            SS$_BUFBYTALI  = 0000030C            SS$_GPTFULL    = 000000C4            

RP_ER1_M_WCF   = 00000020            SS$_BUFFEROVF  = 00000601            SS$_GSDFULL    = 000000CC            

RP_ER1_M_WLE   = 00000800            SS$_BUGCHECK   = 000002A4            SS$_HANGUP     = 000002CC            

RP_ER1_V_AOE   = 00000009            SS$_CANCEL     = 00000830            SS$_HEADERFULL = 000008C8            

RP_ER1_V_DCK   = 0000000F            SS$_CHANINTLK  = 0000004C            SS$_IDXFILEFULL= 000008D0            

RP_ER1_V_DTE   = 0000000C            SS$_CLIFRCEXT  = 00000980            SS$_ILLBLKNUM  = 000000DC            

RP_ER1_V_ECH   = 00000006            SS$_CMODSUPR   = 0000041C            SS$_ILLCNTRFUNC= 000000E4            

BOOTDRIVR       BOOTSTRAP I/O DRIVER FOR RP04/5/6/7/RK06/7/RM03  21-AUG-1978 22:25:51   VAX-11 MACRO X0.3-11               Page  19

SYMBOL TABLE                                                                                                                     (1)



SS$_ILLEFC     = 000000EC            SS$_NOSUCHNODE = 0000028C            UBA$L_MAP        00000800            

SS$_ILLIOFUNC  = 000000F4            SS$_NOSUCHSEC  = 00000978            UBA$L_SR         00000008            

SS$_ILLLBLAST  = 00000968            SS$_NOTAPEOP   = 00000264            UBA$M_BRRVR_AIR= 80000000            

SS$_ILLPAGCNT  = 000000FC            SS$_NOTFILEDEV = 000001CC            UBA$M_CR_ARLVL = 00000180            

SS$_ILLSEQOP   = 000002DC            SS$_NOTINTBLSZ = 000001D4            UBA$M_CR_BRIE  = 00000020            

SS$_ILLSER     = 00000104            SS$_NOTLABELMT = 000001DC            UBA$M_CR_CNFIE = 00000004            

SS$_ILLUSRLBLRD= 00000958            SS$_NOTMODIFIED= 00000659            UBA$M_CR_IFSIE = 00000040            

SS$_ILLUSRLBLWT= 00000960            SS$_NOTNETDEV  = 000002EC            UBA$M_CR_INIT  = 00000001            

SS$_INCVOLLABEL= 0000010C            SS$_NOTRAN     = 00000629            UBA$M_CR_SUEFIE= 00000008            

SS$_INSFARG    = 00000114            SS$_NOTSQDEV   = 000001E4            UBA$M_CR_UBPF  = 00000002            

SS$_INSFMEM    = 00000124            SS$_OPCCUS     = 00000434            UBA$M_CR_USEFIE= 00000010            

SS$_INSFRAME   = 0000012C            SS$_OPCDEC     = 0000043C            UBA$M_CSR_IS   = 10000000            

SS$_INSFWSL    = 0000011C            SS$_OPINCOMPL  = 000002D4            UBA$M_CSR_MT   = 08000000            

SS$_INTDIV     = 00000484            SS$_PAGOWNVIO  = 000001EC            UBA$M_CSR_OT   = 00200000            

SS$_INTOVF     = 0000047C            SS$_PAGRDERR   = 00000444            UBA$M_CSR_PD   = 00800000            

SS$_IVADDR     = 00000134            SS$_PARITY     = 000001F4            UBA$M_CSR_PE   = 80000000            

SS$_IVCHAN     = 0000013C            SS$_PARTESCAPE = 000001FC            UBA$M_CSR_PU   = 00400000            

SS$_IVCHNLSEC  = 0000026C            SS$_PFMBSY     = 00000204            UBA$M_CSR_UBIC = 00010000            

SS$_IVDEVNAM   = 00000144            SS$_PLHLDR     = 00000404            UBA$M_CSR_UBIIP= 00040000            

SS$_IVGSDNAM   = 0000014C            SS$_PSTFULL    = 0000020C            UBA$M_CSR_UBPDN= 00020000            

SS$_IVLOGNAM   = 00000154            SS$_RADRMOD    = 0000044C            UBA$M_CSR_URD  = 20000000            

SS$_IVLOGTAB   = 0000015C            SS$_REJECT     = 00000294            UBA$M_CSR_WS   = 40000000            

SS$_IVPROTECT  = 000002F4            SS$_REMOTE     = 00000649            UBA$M_CSR_XMFLT= 04000000            

SS$_IVQUOTAL   = 00000164            SS$_RESIGNAL   = 00000918            UBA$M_DPR_BNE  = 80000000            

SS$_IVSECFLG   = 0000016C            SS$_RESULTOVF  = 00000214            UBA$M_DPR_DPF  = 20000000            

SS$_IVSECIDCTL = 000002E4            SS$_ROPRAND    = 00000454            UBA$M_DPR_XMTER= 40000000            

SS$_IVSSRQ     = 00000174            SS$_SECTBLFUL  = 0000021C            UBA$M_MAP_BO   = 02000000            

SS$_IVSTSFLG   = 0000017C            SS$_SSFAIL     = 0000045C            UBA$M_MAP_VALID= 80000000            

SS$_IVTIME     = 00000184            SS$_SUBRNG     = 000004AC            UBA$M_SR_BRID  = 00000800            

SS$_LCKPAGFUL  = 000000D4            SS$_SUPERSEDE  = 00000631            UBA$M_SR_BRSVF = 10000000            

SS$_LENVIO     = 0000018C            SS$_TAPEPOSLOST= 00000224            UBA$M_SR_CRD   = 00000100            

SS$_LKWSETFUL  = 00000194            SS$_TBIT       = 00000464            UBA$M_SR_CXTER = 00000080            

SS$_MBFULL     = 000008D8            SS$_TIMEOUT    = 0000022C            UBA$M_SR_CXTMO = 00000040            

SS$_MBTOOSML   = 0000019C            SS$_TOOMANYVER = 00000990            UBA$M_SR_DPPE  = 00000020            

SS$_MCHECK     = 000002BC            SS$_TOOMUCHDATA= 0000029C            UBA$M_SR_IVMR  = 00000010            

SS$_MEDOFL     = 000001A4            SS$_UNASEFC    = 00000234            UBA$M_SR_LER   = 00000004            

SS$_MSGNOTFND  = 00000621            SS$_UNSAFE     = 0000023C            UBA$M_SR_MRPE  = 00000008            

SS$_MTLBLLONG  = 00000304            SS$_UNWIND     = 00000920            UBA$M_SR_RDS   = 00000200            

SS$_MUSTCLOSEFL= 00000948            SS$_UNWINDING  = 00000928            UBA$M_SR_RDTO  = 00000400            

SS$_NOAQB      = 00000314            SS$_VASFULL    = 00000244            UBA$M_SR_RIE   = 20000000            

SS$_NODATA     = 000001AC            SS$_VECINUSE   = 0000024C            UBA$M_SR_SSYNC = 00000001            

SS$_NOHANDLER  = 000008F8            SS$_VOLINV     = 00000254            UBA$M_SR_UBIFS = 40000000            

SS$_NOHOMEBLK  = 000008E0            SS$_WAITUSRLBL = 00000950            UBA$M_SR_UBSTO = 00000002            

SS$_NOIOCHAN   = 000001B4            SS$_WASCLR     = 00000001            UBA$S_BRRVR_IVA= 00000010            

SS$_NOLINKS    = 0000027C            SS$_WASECC     = 00000639            UBA$S_CR_ARLVL = 00000002            

SS$_NOLOGNAM   = 000001BC            SS$_WASSET     = 00000009            UBA$S_CR_MRDSB = 00000005            

SS$_NOMBX      = 00000274            SS$_WRITLCK    = 0000025C            UBA$S_CSR_ADCOD= 00000008            

SS$_NOMOREFILES= 00000930            SS$_WRONGACP   = 0000031C            UBA$S_DPR_ADDR = 00000010            

SS$_NONEXDRV   = 000001C4            SVASPT         = 00000004            UBA$S_DPR_STATE= 00000008            

SS$_NONEXPR    = 000008E8            UBA$L_BRRVR      00000030            UBA$S_FMER_MRN = 00000009            

SS$_NONLOCAL   = 000008F0            UBA$L_BRSVR      00000020            UBA$S_FUBAR_ADR= 00000012            

SS$_NOPRIV     = 00000024            UBA$L_CR         00000004            UBA$S_MAP_ADDR = 00000015            

SS$_NORMAL     = 00000001            UBA$L_CSR        00000000            UBA$S_MAP_DPD  = 00000004            

SS$_NOSIGNAL   = 00000900            UBA$L_DCR        0000000C            UBA$S_SR_BRRVF = 00000004            

SS$_NOSOLICIT  = 00000284            UBA$L_DPR        00000040            UBA$V_BRRVR_AIR= 0000001F            

SS$_NOSUCHDEV  = 00000908            UBA$L_FMER       00000010            UBA$V_BRRVR_IVA= 00000000            

SS$_NOSUCHFILE = 00000910            UBA$L_FUBAR      00000014            UBA$V_CR_ARLVL = 00000007            

BOOTDRIVR       BOOTSTRAP I/O DRIVER FOR RP04/5/6/7/RK06/7/RM03  21-AUG-1978 22:25:51   VAX-11 MACRO X0.3-11               Page  20

SYMBOL TABLE                                                                                                                     (1)



UBA$V_CR_BRIE  = 00000005            VA$V_BYTE      = 00000000            

UBA$V_CR_CNFIE = 00000002            VA$V_P1        = 0000001E            

UBA$V_CR_IFSIE = 00000006            VA$V_SYSTEM    = 0000001F            

UBA$V_CR_INIT  = 00000000            VA$V_VPG       = 00000009            

UBA$V_CR_MRDSB = 0000001A            VA$V_VPN       = 00000009            

UBA$V_CR_SUEFIE= 00000003            VABASE         = 00000008            

UBA$V_CR_UBPF  = 00000001            

UBA$V_CR_USEFIE= 00000004            

UBA$V_CSR_ADCOD= 00000000            

UBA$V_CSR_IS   = 0000001C            

UBA$V_CSR_MT   = 0000001B            

UBA$V_CSR_OT   = 00000015            

UBA$V_CSR_PD   = 00000017            

UBA$V_CSR_PE   = 0000001F            

UBA$V_CSR_PU   = 00000016            

UBA$V_CSR_UBIC = 00000010            

UBA$V_CSR_UBIIP= 00000012            

UBA$V_CSR_UBPDN= 00000011            

UBA$V_CSR_URD  = 0000001D            

UBA$V_CSR_WS   = 0000001E            

UBA$V_CSR_XMFLT= 0000001A            

UBA$V_DPR_ADDR = 00000000            

UBA$V_DPR_BNE  = 0000001F            

UBA$V_DPR_DPF  = 0000001D            

UBA$V_DPR_STATE= 00000010            

UBA$V_DPR_XMTER= 0000001E            

UBA$V_FMER_MRN = 00000000            

UBA$V_FUBAR_ADR= 00000000            

UBA$V_MAP_ADDR = 00000000            

UBA$V_MAP_BO   = 00000019            

UBA$V_MAP_DPD  = 00000015            

UBA$V_MAP_VALID= 0000001F            

UBA$V_SR_BRID  = 0000000B            

UBA$V_SR_BRRVF = 00000018            

UBA$V_SR_BRSVF = 0000001C            

UBA$V_SR_CRD   = 00000008            

UBA$V_SR_CXTER = 00000007            

UBA$V_SR_CXTMO = 00000006            

UBA$V_SR_DPPE  = 00000005            

UBA$V_SR_IVMR  = 00000004            

UBA$V_SR_LER   = 00000002            

UBA$V_SR_MRPE  = 00000003            

UBA$V_SR_RDS   = 00000009            

UBA$V_SR_RDTO  = 0000000A            

UBA$V_SR_RIE   = 0000001D            

UBA$V_SR_SSYNC = 00000000            

UBA$V_SR_UBIFS = 0000001E            

UBA$V_SR_UBSTO = 00000001            

UBABOOTDEV       00000130 R     03   

VA$M_BYTE      = 000001FF            

VA$M_P1        = 40000000            

VA$M_SYSTEM    = 80000000            

VA$M_VPG       = FFFFFE00            

VA$M_VPN       = 3FFFFE00            

VA$S_BYTE      = 00000009            

VA$S_VPG       = 00000017            

VA$S_VPN       = 00000015            

BOOTDRIVR       BOOTSTRAP I/O DRIVER FOR RP04/5/6/7/RK06/7/RM03  21-AUG-1978 22:25:51   VAX-11 MACRO X0.3-11               Page  21

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

BOOTDRIVR        0000029F      03     NOPIC   USR   CON   REL   LCL NOSHR   EXE   RD    WRT BYTE  





THERE WERE NO ERRORS OR WARNINGS.

5804. BYTES LEFT IN FREE MEMORY POOL.

16. BYTES OF RECLAIMED MEMORY.

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

9 MLB DIR RDS - 896 GETS TO DEFINE 19 MACROS. 120 INTER. FILE WRITES. 

