xref: /csrg-svn/sys/vax/mdec/rdboot.c (revision 33386)
1*33386Sbostic /*
2*33386Sbostic **	@(#)rdboot.c	7.1 (Berkeley) 01/22/88
3*33386Sbostic */
4*33386Sbostic 
5*33386Sbostic /*
6*33386Sbostic ** This is a VMB boot block for microvax.  For more info, see
7*33386Sbostic ** the KA-630 User's manual.
8*33386Sbostic */
9*33386Sbostic 
10*33386Sbostic /*
11*33386Sbostic **          ---------------------------------------------------
12*33386Sbostic ** BB + 0: |      1     |      N     |      any value          |
13*33386Sbostic **          ---------------------------------------------------
14*33386Sbostic */
15*33386Sbostic xxx:	.long	0x001040000
16*33386Sbostic /*
17*33386Sbostic **          ---------------------------------------------------
18*33386Sbostic **      4: |        low  lbn         |      high lbn           |
19*33386Sbostic **          ---------------------------------------------------
20*33386Sbostic */
21*33386Sbostic 	.long	0x000010000
22*33386Sbostic /*
23*33386Sbostic ** BB + 2*N
24*33386Sbostic **          ---------------------------------------------------
25*33386Sbostic **    + 0: | check byte |      K     |     0     |   18 (HEX)  |
26*33386Sbostic **          ---------------------------------------------------
27*33386Sbostic */
28*33386Sbostic 	.long	0x0e7000018
29*33386Sbostic /*
30*33386Sbostic **          ---------------------------------------------------
31*33386Sbostic **    + 4: |     any  value          |  1 or 81  |      0      |
32*33386Sbostic **          ---------------------------------------------------
33*33386Sbostic */
34*33386Sbostic 	.long	0x000008100
35*33386Sbostic /*
36*33386Sbostic **          ---------------------------------------------------
37*33386Sbostic **    + 8: |     size in blocks of the image                   |
38*33386Sbostic **          ---------------------------------------------------
39*33386Sbostic */
40*33386Sbostic 	.long	0x00000000f
41*33386Sbostic /*
42*33386Sbostic **          ---------------------------------------------------
43*33386Sbostic **    +12: |     load offset from default load address         |
44*33386Sbostic **          ---------------------------------------------------
45*33386Sbostic */
46*33386Sbostic 	.long	0x000000000
47*33386Sbostic /*
48*33386Sbostic **          ---------------------------------------------------
49*33386Sbostic **    +16: |     offset into image to start execution          |
50*33386Sbostic **          ---------------------------------------------------
51*33386Sbostic */
52*33386Sbostic 	.long	0x000000002
53*33386Sbostic /*
54*33386Sbostic **          ---------------------------------------------------
55*33386Sbostic **    +20: |     sum of previous three longwords               |
56*33386Sbostic **          ---------------------------------------------------
57*33386Sbostic */
58*33386Sbostic 	.long	0x000000011
59*33386Sbostic /*
60*33386Sbostic **
61*33386Sbostic ** BB +0:	These two bytes can have any value
62*33386Sbostic **
63*33386Sbostic ** BB+2:	This value is the word offset from the start of the
64*33386Sbostic **		bootblock to the identification area described below.
65*33386Sbostic **
66*33386Sbostic ** BB+3:	This byte must be one.
67*33386Sbostic **
68*33386Sbostic ** BB+4:	This longword contains the logical block number
69*33386Sbostic **		(word swapped) of the secondary image.
70*33386Sbostic **
71*33386Sbostic ** BB+(2*n)+0:	This byte defines the expected instruction set.
72*33386Sbostic **		18(hex) means VAX.
73*33386Sbostic **
74*33386Sbostic ** BB+(2*n)+1:	This byte defines the expected controller type, 0
75*33386Sbostic **		means unknown.
76*33386Sbostic **
77*33386Sbostic ** BB+(2*n)+2:	This byte defines the file structure on the volume,
78*33386Sbostic **		it may be any value.
79*33386Sbostic **
80*33386Sbostic ** BB+(2*n)+3:	This byte must be the ones complement of the sum of
81*33386Sbostic **		the previous three bytes.
82*33386Sbostic **
83*33386Sbostic ** BB+(2*n)+4:	This byte must be zero.
84*33386Sbostic **
85*33386Sbostic ** BB+(2*n)+5:	This byte must be 1 or 81 (hex).  This byte defines
86*33386Sbostic **		the version number of the format standard and the
87*33386Sbostic **		type of disk.  The version is one, the high bit is 0
88*33386Sbostic **		for single sided, 1 for double sided.
89*33386Sbostic **
90*33386Sbostic ** BB+(2*n)+6:	These two bytes may be any value, but generally they
91*33386Sbostic **		are zero.
92*33386Sbostic **
93*33386Sbostic ** BB+(2*n)+8:	This entry is a longword containing the size in
94*33386Sbostic **		blocks of the secondary bootstrap image.
95*33386Sbostic **
96*33386Sbostic ** BB+(2*n)+12:	This entry is a longword containing a load offset
97*33386Sbostic **		(usually zero) from the default load address of the
98*33386Sbostic **		secondary bootstrap.
99*33386Sbostic **
100*33386Sbostic ** BB+(2*n)+16:	This entry is a longword containing the byte offset
101*33386Sbostic **		into the secondary bootstrap where execution is to
102*33386Sbostic **		begin.
103*33386Sbostic **
104*33386Sbostic ** BB+(2*n)+20:	This entry is a longword containing the sum of the
105*33386Sbostic **		previous three longwords.
106*33386Sbostic */
107