~kris/9p

9hist

70acb15175c485529d82cd962c9481fbb959d168 — David du Colombier 35 years ago d23bd1d
Plan 9 from Bell Labs 1991-03-04
3 files changed, 1097 insertions(+), 865 deletions(-)

M power/boot.c
M power/boot.h
M power/devhotrod.c
M power/boot.c => power/boot.c +97 -37
@@ 44,6 44,7 @@ void	boot(int);
int	dkdial(char *);
int	nonetdial(char *);
int	bitdial(char *);
int	preamble(int);

/*
 *  usage: 9b [-a] [server] [file]


@@ 237,37 238,57 @@ dkdial(char *arg)
	return fd;
}

void
boot(int ask)
int
hotdial(char *arg)
{
	int n, f, tries;
	char *srvname;
	Dir dir;
	char dirbuf[DIRLEN];

	if(ask){
		outin("server", sys, sizeof(sys));
	}
	int fd;
	char srvdir[100];
	Waitmsg m;

	for(tries = 0; tries < 5; tries++){
		fd = -1;
		if(strncmp(sys, "bit!", 4) == 0)
			fd = bitdial(srvname = &sys[4]);
		else if(strncmp(sys, "dk!", 3) == 0)
			fd = dkdial(srvname = &sys[3]);
		else if(strncmp(sys, "nonet!", 6) == 0)
			fd = nonetdial(srvname = &sys[6]);
		else
			fd = nonetdial(srvname = sys);
		if(fd >= 0)
			break;
		print("can't connect, retrying...\n");
		sleep(1000);
	/*
	 * The killer: gotta get a hotrodboot running, so dial up
	 * on datakit and load it.
	 */
	fd = dkdial(arg);
	if(fd < 0)
		return -1;
	if(!preamble(fd)){
		close(fd);
		return -1;
	}
	if(fd < 0){
		print("can't connect\n");
		return;
	/*
	 * use /dev; it's local
	 */
	if(mount(fd, "/dev", MREPL, "", "") < 0)
		error("mount");
	switch(fork()){
	case 0:
		/*
		 * child: get hotrodboot running
		 */
		execl("/dev/mips/bin/hotrodboot", "hotrodboot", "/dev/hobbit/hot", 0);
		error("execl hotrodboot");
	case -1:
		error("fork");
	}
	/*
	 * parent: wait, then sleep a while
	 */
	wait(&m);
	if(m.msg[0])
		error(m.msg);
	fprint(2, "sleep 3 seconds\n");
	sleep(3*1000);
	fprint(2, "go for it....\n");
	return open("#H/hotrod", ORDWR);
}



int
preamble(int fd)
{
	int n;

	print("nop...");
	hdr.type = Tnop;


@@ 276,13 297,13 @@ boot(int ask)
	if(write(fd, buf, n) != n){
		print("n = %d\n", n);
		prerror("write nop");
		return;
		return 0;
	}
  reread:
	n = read(fd, buf, sizeof buf);
	if(n <= 0){
		prerror("read nop");
		return;
		return 0;
	}
	if(n == 2)
		goto reread;


@@ 290,15 311,15 @@ boot(int ask)
		print("n = %d; buf = %.2x %.2x %.2x %.2x\n",
			n, buf[0], buf[1], buf[2], buf[3]);
		prerror("format nop");
		return;
		return 0;
	}
	if(hdr.type != Rnop){
		prerror("not Rnop");
		return;
		return 0;
	}
	if(hdr.tag != ~0){
		prerror("tag not ~0");
		return;
		return 0;
	}

	print("session...");


@@ 307,30 328,69 @@ boot(int ask)
	n = convS2M(&hdr, buf);
	if(write(fd, buf, n) != n){
		prerror("write session");
		return;
		return 0;
	}
	n = read(fd, buf, sizeof buf);
	if(n <= 0){
		prerror("read session");
		return;
		return 0;
	}
	if(convM2S(buf, &hdr, n) == 0){
		prerror("format session");
		return;
		return 0;
	}
	if(hdr.tag != ~0){
		prerror("tag not ~0");
		return;
		return 0;
	}
	if(hdr.type == Rerror){
		fprint(2, "boot: error %s\n", hdr.ename);
		return;
		return 0;
	}
	if(hdr.type != Rsession){
		prerror("not Rsession");
		return 0;
	}
	return 1;
}

void
boot(int ask)
{
	int n, f, tries;
	char *srvname;
	Dir dir;
	char dirbuf[DIRLEN];

	if(ask){
		outin("server", sys, sizeof(sys));
	}

	for(tries = 0; tries < 5; tries++){
		fd = -1;
		if(strncmp(sys, "bit!", 4) == 0)
			fd = bitdial(srvname = &sys[4]);
		if(strncmp(sys, "hot!", 4) == 0)
			fd = hotdial(srvname = &sys[4]);
		else if(strncmp(sys, "dk!", 3) == 0)
			fd = dkdial(srvname = &sys[3]);
		else if(strncmp(sys, "nonet!", 6) == 0)
			fd = nonetdial(srvname = &sys[6]);
		else
			fd = nonetdial(srvname = sys);
		if(fd >= 0)
			break;
		print("can't connect, retrying...\n");
		sleep(1000);
	}
	if(fd < 0){
		print("can't connect\n");
		return;
	}

	if(!preamble(fd))
		return;

	print("post...");
	sprint(buf, "#s/%s", srvname);
	f = create(buf, 1, 0666);

M power/boot.h => power/boot.h +985 -821
@@ 1,7 1,7 @@
ulong bootcode[]={
	0x000000407,
	0x000004fb0,
	0x0000006c0,
	0x0000051b8,
	0x000000748,
	0x000001190,
	0x000000000,
	0x000001020,


@@ 10,55 10,55 @@ ulong bootcode[]={
	0x023bdffec,
	0x0afbf0000,
	0x03c1e0000,
	0x037dedffe,
	0x037deeffe,
	0x08fa10014,
	0x023a20018,
	0x0afa10004,
	0x00c000415,
	0x0afa20008,
	0x00c0008a5,
	0x00c00091d,
	0x0afa10004,
	0x008000411,
	0x000000027,
	0x023bdffe0,
	0x0afbf0000,
	0x0afa00018,
	0x023c2820d,
	0x023c2828d,
	0x0afa20004,
	0x00c0009e7,
	0x00c000a64,
	0x0afa00008,
	0x023c38215,
	0x023c38295,
	0x0afa30004,
	0x020020001,
	0x00c0009e7,
	0x00c000a64,
	0x0afa20008,
	0x023c3821d,
	0x023c3829d,
	0x0afa30004,
	0x020020001,
	0x00c0009e7,
	0x00c000a64,
	0x0afa20008,
	0x023c28225,
	0x023c282a5,
	0x0afa20004,
	0x020040001,
	0x0afa40008,
	0x0200201b6,
	0x00c0009d3,
	0x00c000a4b,
	0x0afa2000c,
	0x004210004,
	0x0afa1001c,
	0x023c38230,
	0x00c000839,
	0x023c382b0,
	0x00c0008b1,
	0x0afa30004,
	0x08fa20028,
	0x000000027,
	0x08c420000,
	0x00c0009ac,
	0x00c000a24,
	0x0afa20004,
	0x0afa10014,
	0x08fa40028,
	0x000000027,
	0x08c840000,
	0x00c0009ac,
	0x00c000a24,
	0x0afa40004,
	0x0afa10010,
	0x08fa4001c,


@@ 70,17 70,17 @@ ulong bootcode[]={
	0x000000027,
	0x0afa30008,
	0x08fa40010,
	0x00c0009fb,
	0x00c000a7d,
	0x0afa4000c,
	0x08fa30014,
	0x000000027,
	0x010230004,
	0x000000027,
	0x023c28238,
	0x00c000839,
	0x023c282b8,
	0x00c0008b1,
	0x0afa20004,
	0x08fa3001c,
	0x00c0009ce,
	0x00c000a46,
	0x0afa30004,
	0x08fa20028,
	0x000000027,


@@ 111,72 111,71 @@ ulong bootcode[]={
	0x024c6ffff,
	0x023c28002,
	0x0afa20004,
	0x023c38240,
	0x00c00096c,
	0x023c382c0,
	0x00c0009e4,
	0x0afa30008,
	0x023c28746,
	0x023c287ce,
	0x0afa20004,
	0x023c3824b,
	0x00c00096c,
	0x023c382cb,
	0x00c0009e4,
	0x0afa30008,
	0x08fa60028,
	0x08fa20024,
	0x000000027,
	0x038430001,
	0x010600029,
	0x023c58746,
	0x038430002,
	0x010600019,
	0x020030001,
	0x010430029,
	0x023c587ce,
	0x020030002,
	0x010430019,
	0x000000027,
	0x08fa20018,
	0x00c0005f7,
	0x00c000733,
	0x0afa20004,
	0x08fc580be,
	0x000000027,
	0x018a00003,
	0x000000027,
	0x00c0009ce,
	0x00c000a46,
	0x0afa50004,
	0x08fc38092,
	0x000000027,
	0x018600004,
	0x000000027,
	0x08fc28092,
	0x00c0009ce,
	0x00c000a46,
	0x0afa20004,
	0x0afc08092,
	0x0afc080be,
	0x020020001,
	0x00c0005f7,
	0x00c000733,
	0x0afa20004,
	0x08fc580be,
	0x008000486,
	0x008000485,
	0x000000027,
	0x0afa50004,
	0x08cc30000,
	0x00c00096c,
	0x00c0009e4,
	0x0afa30008,
	0x023c28002,
	0x0afa20004,
	0x08fa30028,
	0x000000027,
	0x08c630004,
	0x00c00096c,
	0x00c0009e4,
	0x0afa30008,
	0x008000481,
	0x008000480,
	0x000000027,
	0x0afa50004,
	0x08cc30000,
	0x00c00096c,
	0x00c0009e4,
	0x0afa30008,
	0x008000481,
	0x008000480,
	0x000000027,
	0x023bdfff4,
	0x0afbf0000,
	0x023c38253,
	0x023c382d3,
	0x0afa30004,
	0x020020002,
	0x00c0009e7,
	0x00c000a64,
	0x0afa20008,
	0x08fa20000,
	0x000000027,


@@ 194,7 193,7 @@ ulong bootcode[]={
	0x000000027,
	0x0afa30004,
	0x08fa40028,
	0x00c000956,
	0x00c0009ce,
	0x0afa40008,
	0x08fa50014,
	0x0142000a5,


@@ 204,8 203,8 @@ ulong bootcode[]={
	0x000000027,
	0x014400008,
	0x000000027,
	0x023c3825b,
	0x00c0008d0,
	0x023c382db,
	0x00c000948,
	0x0afa30004,
	0x08fa20000,
	0x023bd0024,


@@ 215,15 214,15 @@ ulong bootcode[]={
	0x000000027,
	0x014400048,
	0x000000027,
	0x023c28289,
	0x023c28309,
	0x0afa20004,
	0x020040002,
	0x00c0009e7,
	0x00c000a64,
	0x0afa40008,
	0x004210008,
	0x000000027,
	0x023c38292,
	0x00c000827,
	0x023c38312,
	0x00c00089f,
	0x0afa30004,
	0x08fa20000,
	0x023bd0024,


@@ 231,54 230,54 @@ ulong bootcode[]={
	0x02001ffff,
	0x0afa10020,
	0x0afa10004,
	0x023c482a3,
	0x023c48323,
	0x0afa40008,
	0x02003000d,
	0x00c0009fb,
	0x00c000a7d,
	0x0afa3000c,
	0x08fa50020,
	0x00421000a,
	0x000000027,
	0x00c0009ce,
	0x00c000a46,
	0x0afa50004,
	0x023c382b1,
	0x00c000827,
	0x023c38331,
	0x00c00089f,
	0x0afa30004,
	0x08fa20000,
	0x023bd0024,
	0x000400008,
	0x02001ffff,
	0x0afa50004,
	0x023c482bf,
	0x023c4833f,
	0x0afa40008,
	0x02003000c,
	0x00c0009fb,
	0x00c000a7d,
	0x0afa3000c,
	0x08fa50020,
	0x00421000a,
	0x000000027,
	0x00c0009ce,
	0x00c000a46,
	0x0afa50004,
	0x023c382cc,
	0x00c000827,
	0x023c3834c,
	0x00c00089f,
	0x0afa30004,
	0x08fa20000,
	0x023bd0024,
	0x000400008,
	0x02001ffff,
	0x0afa50004,
	0x023c482d9,
	0x023c48359,
	0x0afa40008,
	0x02003000c,
	0x00c0009fb,
	0x00c000a7d,
	0x0afa3000c,
	0x00421000b,
	0x000000027,
	0x08fa20020,
	0x00c0009ce,
	0x00c000a46,
	0x0afa20004,
	0x023c382e6,
	0x00c000827,
	0x023c38366,
	0x00c00089f,
	0x0afa30004,
	0x08fa20000,
	0x023bd0024,


@@ 286,33 285,33 @@ ulong bootcode[]={
	0x02001ffff,
	0x020020001,
	0x0afc2809a,
	0x023c282f3,
	0x023c28373,
	0x0afa20004,
	0x020040002,
	0x00c0009e7,
	0x00c000a64,
	0x0afa40008,
	0x004210008,
	0x0afa10018,
	0x023c38302,
	0x00c000827,
	0x023c38382,
	0x00c00089f,
	0x0afa30004,
	0x08fa20000,
	0x023bd0024,
	0x000400008,
	0x02001ffff,
	0x023c38319,
	0x023c38399,
	0x0afa30004,
	0x020040002,
	0x00c0009e7,
	0x00c000a64,
	0x0afa40008,
	0x00421000c,
	0x0afa1001c,
	0x08fa20018,
	0x00c0009ce,
	0x00c000a46,
	0x0afa20004,
	0x023c28327,
	0x023c283a7,
	0x0afa20004,
	0x00c000827,
	0x00c00089f,
	0x02003ffff,
	0x08fa20000,
	0x023bd0024,


@@ 321,7 320,7 @@ ulong bootcode[]={
	0x08fa40014,
	0x000000027,
	0x08c840004,
	0x00c0009ac,
	0x00c000a24,
	0x0afa40004,
	0x0afa10010,
	0x08fa4001c,


@@ 333,37 332,37 @@ ulong bootcode[]={
	0x000000027,
	0x0afa20008,
	0x08fa40010,
	0x00c0009fb,
	0x00c000a7d,
	0x0afa4000c,
	0x004210012,
	0x000000027,
	0x08fa2001c,
	0x00c0009ce,
	0x00c000a46,
	0x0afa20004,
	0x08fa30018,
	0x00c0009ce,
	0x00c000a46,
	0x0afa30004,
	0x08fa30014,
	0x000000027,
	0x08c630004,
	0x000000027,
	0x0afa30004,
	0x00c000827,
	0x00c00089f,
	0x02002ffff,
	0x08fa20000,
	0x023bd0024,
	0x000400008,
	0x02001ffff,
	0x023c2833d,
	0x023c283bd,
	0x0afc280a2,
	0x023c38343,
	0x0afc3804e,
	0x023c383c3,
	0x0afc38042,
	0x08fa10018,
	0x08fa20000,
	0x000000027,
	0x000400008,
	0x023bd0024,
	0x0080004ba,
	0x0080004b9,
	0x024a50008,
	0x023bdffa8,
	0x0afbf0000,


@@ 371,51 370,51 @@ ulong bootcode[]={
	0x000000027,
	0x014400038,
	0x000000027,
	0x023c2834b,
	0x023c283cb,
	0x0afa20004,
	0x020040002,
	0x00c0009e7,
	0x00c000a64,
	0x0afa40008,
	0x004210008,
	0x0afc18096,
	0x023c38352,
	0x00c000827,
	0x023c383d2,
	0x00c00089f,
	0x0afa30004,
	0x08fa20000,
	0x023bd0058,
	0x000400008,
	0x02001ffff,
	0x0afa10004,
	0x023c48361,
	0x023c483e1,
	0x0afa40008,
	0x02003000a,
	0x00c0009fb,
	0x00c000a7d,
	0x0afa3000c,
	0x08fc58096,
	0x00421000a,
	0x000000027,
	0x00c0009ce,
	0x00c000a46,
	0x0afa50004,
	0x023c3836c,
	0x00c000827,
	0x023c383ec,
	0x00c00089f,
	0x0afa30004,
	0x08fa20000,
	0x023bd0058,
	0x000400008,
	0x02001ffff,
	0x0afa50004,
	0x023c48377,
	0x023c483f7,
	0x0afa40008,
	0x020030017,
	0x00c0009fb,
	0x00c000a7d,
	0x0afa3000c,
	0x00421000b,
	0x000000027,
	0x08fc28096,
	0x00c0009ce,
	0x00c000a46,
	0x0afa20004,
	0x023c3838f,
	0x00c000827,
	0x023c3840f,
	0x00c00089f,
	0x0afa30004,
	0x08fa20000,
	0x023bd0058,


@@ 424,35 423,35 @@ ulong bootcode[]={
	0x020020001,
	0x0afc28102,
	0x0200307d0,
	0x00c0009f1,
	0x00c000a6e,
	0x0afa30004,
	0x023c383a7,
	0x023c38427,
	0x0afa30004,
	0x020040002,
	0x00c0009e7,
	0x00c000a64,
	0x0afa40008,
	0x004210008,
	0x0afa10054,
	0x023c283b3,
	0x00c000827,
	0x023c28433,
	0x00c00089f,
	0x0afa20004,
	0x08fa20000,
	0x023bd0058,
	0x000400008,
	0x02001ffff,
	0x023c283c7,
	0x023c28447,
	0x0afa20004,
	0x020040002,
	0x00c0009e7,
	0x00c000a64,
	0x0afa40008,
	0x00421000c,
	0x0afc18092,
	0x08fa30054,
	0x00c0009ce,
	0x00c000a46,
	0x0afa30004,
	0x023c383d2,
	0x023c38452,
	0x0afa30004,
	0x00c000827,
	0x00c00089f,
	0x02002ffff,
	0x08fa20000,
	0x023bd0058,


@@ 460,13 459,13 @@ ulong bootcode[]={
	0x02001ffff,
	0x023a20014,
	0x0afa20004,
	0x023c383e5,
	0x023c38465,
	0x0afa30008,
	0x08fa2005c,
	0x00c00091a,
	0x00c000992,
	0x0afa2000c,
	0x023a40014,
	0x00c0009ac,
	0x00c000a24,
	0x0afa40004,
	0x0afa10010,
	0x08fc48092,


@@ 474,607 473,728 @@ ulong bootcode[]={
	0x0afa40004,
	0x0afa20008,
	0x08fa40010,
	0x00c0009fb,
	0x00c000a7d,
	0x0afa4000c,
	0x004210010,
	0x000000027,
	0x08fc28092,
	0x00c0009ce,
	0x00c000a46,
	0x0afa20004,
	0x08fa30054,
	0x00c0009ce,
	0x00c000a46,
	0x0afa30004,
	0x02002ffff,
	0x0afc28092,
	0x023a30014,
	0x00c000827,
	0x00c00089f,
	0x0afa30004,
	0x08fa20000,
	0x023bd0058,
	0x000400008,
	0x02001ffff,
	0x023c283f0,
	0x023c28470,
	0x0afc280a2,
	0x023c383f3,
	0x0afc3804e,
	0x023c38473,
	0x0afc38042,
	0x08fa10054,
	0x08fa20000,
	0x000000027,
	0x000400008,
	0x023bd0058,
	0x023bdfeac,
	0x023bdff2c,
	0x0afbf0000,
	0x08fc680be,
	0x08fa20158,
	0x08fa300d8,
	0x00c00056d,
	0x0afa30004,
	0x004210005,
	0x000000027,
	0x01040000a,
	0x08fa20000,
	0x023bd00d4,
	0x000400008,
	0x02001ffff,
	0x0afa100d0,
	0x00c000653,
	0x0afa10004,
	0x08fa500d0,
	0x014200007,
	0x000000027,
	0x023c383f8,
	0x0afa30004,
	0x023c28002,
	0x0afa20008,
	0x02003001c,
	0x00c00084d,
	0x0afa3000c,
	0x08fc680be,
	0x00c000a46,
	0x0afa50004,
	0x08fa20000,
	0x023bd00d4,
	0x000400008,
	0x02001ffff,
	0x0afa50004,
	0x023c48478,
	0x0afa40008,
	0x0afa0000c,
	0x023c2847d,
	0x0afa20010,
	0x023c4847e,
	0x00c000a5f,
	0x0afa40014,
	0x004210004,
	0x000000027,
	0x000002825,
	0x028a20005,
	0x010400013,
	0x0afa50148,
	0x02002ffff,
	0x0afc280be,
	0x023c28002,
	0x023c2847f,
	0x00c0008b1,
	0x0afa20004,
	0x023c483ff,
	0x0afa40008,
	0x020020004,
	0x00c000932,
	0x0afa2000c,
	0x0142001f1,
	0x023c58002,
	0x024a20004,
	0x0afa20144,
	0x00c0004ac,
	0x00c000a5a,
	0x000000027,
	0x02003ffff,
	0x01023002f,
	0x000000027,
	0x010200022,
	0x000000027,
	0x023a20018,
	0x00c000a78,
	0x0afa20004,
	0x000013025,
	0x004c001e0,
	0x0afc680be,
	0x004c10008,
	0x083a3002c,
	0x000000027,
	0x010600005,
	0x000000027,
	0x023c3842b,
	0x00c0008d0,
	0x023a20018,
	0x024420014,
	0x00c0008b1,
	0x0afa20004,
	0x020030002,
	0x0afa30004,
	0x023c284cf,
	0x00c00096d,
	0x0afa20008,
	0x020030bb8,
	0x00c000a6e,
	0x0afa30004,
	0x020020002,
	0x0afa20004,
	0x023c384e0,
	0x00c00096d,
	0x0afa30008,
	0x023c284ef,
	0x0afa20004,
	0x020030002,
	0x00c000a64,
	0x0afa30008,
	0x08fa20000,
	0x000000027,
	0x000400008,
	0x023bd0154,
	0x023c2843a,
	0x00c0008d0,
	0x023bd00d4,
	0x023c38485,
	0x0afa30004,
	0x023c2849e,
	0x0afa20008,
	0x023c384a9,
	0x0afa3000c,
	0x00c000a30,
	0x0afa00010,
	0x023c284b9,
	0x00c0008b1,
	0x0afa20004,
	0x023c384ca,
	0x00c0008b1,
	0x0afa30004,
	0x008000622,
	0x000000027,
	0x023bdffe0,
	0x0afbf0000,
	0x023c284f9,
	0x00c000948,
	0x0afa20004,
	0x020030032,
	0x0a3c397d2,
	0x0a3c3985a,
	0x02002ffff,
	0x0a7c297d6,
	0x023c297d2,
	0x0a7c2985e,
	0x023c2985a,
	0x0afa20004,
	0x023c487d2,
	0x00c000a00,
	0x023c4885a,
	0x00c000a82,
	0x0afa40008,
	0x08fc380be,
	0x023c487d2,
	0x08fa30024,
	0x023c4885a,
	0x0afa30004,
	0x0afa40008,
	0x0afa10150,
	0x00c0009fb,
	0x0afa1001c,
	0x00c000a7d,
	0x0afa1000c,
	0x08fa50150,
	0x08fa5001c,
	0x000000027,
	0x01025000c,
	0x000000027,
	0x023c28441,
	0x023c28500,
	0x0afa20004,
	0x00c0008d0,
	0x00c000948,
	0x0afa50008,
	0x023c28449,
	0x00c000827,
	0x023c28508,
	0x00c00089f,
	0x0afa20004,
	0x08fa20000,
	0x000000027,
	0x023bd0020,
	0x000400008,
	0x023bd0154,
	0x08fc280be,
	0x023c487d2,
	0x000000825,
	0x08fa20024,
	0x023c4885a,
	0x0afa20004,
	0x0afa40008,
	0x020021000,
	0x00c0009ec,
	0x00c000a69,
	0x0afa2000c,
	0x01c200008,
	0x000000027,
	0x023c38453,
	0x00c000827,
	0x023c38512,
	0x00c00089f,
	0x0afa30004,
	0x08fa20000,
	0x000000027,
	0x023bd0020,
	0x000400008,
	0x023bd0154,
	0x000000825,
	0x020030002,
	0x014230003,
	0x000000027,
	0x008000648,
	0x008000677,
	0x000000027,
	0x023c387d2,
	0x023c3885a,
	0x0afa30004,
	0x023c497d2,
	0x023c4985a,
	0x0afa40008,
	0x0afa10150,
	0x00c000e1b,
	0x0afa1001c,
	0x00c000e9d,
	0x0afa1000c,
	0x014200022,
	0x000000027,
	0x023c2845c,
	0x023c2851b,
	0x0afa20004,
	0x08fa30150,
	0x08fa3001c,
	0x000000027,
	0x0afa30008,
	0x083c287d2,
	0x083c2885a,
	0x000000027,
	0x000021600,
	0x000021603,
	0x0afa2000c,
	0x083c387d3,
	0x083c3885b,
	0x000000027,
	0x000031e00,
	0x000031e03,
	0x0afa30010,
	0x083c287d4,
	0x083c2885c,
	0x000000027,
	0x000021600,
	0x000021603,
	0x0afa20014,
	0x083c387d5,
	0x083c3885d,
	0x000000027,
	0x000031e00,
	0x000031e03,
	0x00c0008d0,
	0x00c000948,
	0x0afa30018,
	0x023c2847f,
	0x00c000827,
	0x023c2853e,
	0x00c00089f,
	0x0afa20004,
	0x08fa20000,
	0x000000027,
	0x023bd0020,
	0x000400008,
	0x023bd0154,
	0x083c397d2,
	0x000000825,
	0x083c3985a,
	0x020020033,
	0x010620008,
	0x000000027,
	0x023c3848a,
	0x00c000827,
	0x023c38549,
	0x00c00089f,
	0x0afa30004,
	0x08fa20000,
	0x000000027,
	0x023bd0020,
	0x000400008,
	0x023bd0154,
	0x087c297d6,
	0x000000825,
	0x087c2985e,
	0x02003ffff,
	0x010430008,
	0x000000027,
	0x023c28493,
	0x00c000827,
	0x023c28552,
	0x00c00089f,
	0x0afa20004,
	0x08fa20000,
	0x000000027,
	0x023bd0020,
	0x000400008,
	0x023bd0154,
	0x023c3849e,
	0x00c0008d0,
	0x000000825,
	0x023c3855d,
	0x00c000948,
	0x0afa30004,
	0x020020034,
	0x0a3c297d2,
	0x0a3c2985a,
	0x02003ffff,
	0x0a7c397d6,
	0x023c397d2,
	0x0a7c3985e,
	0x023c3985a,
	0x0afa30004,
	0x023c487d2,
	0x00c000a00,
	0x023c4885a,
	0x00c000a82,
	0x0afa40008,
	0x08fc280be,
	0x023c487d2,
	0x08fa20024,
	0x023c4885a,
	0x0afa20004,
	0x0afa40008,
	0x0afa10150,
	0x00c0009fb,
	0x0afa1001c,
	0x00c000a7d,
	0x0afa1000c,
	0x08fa40150,
	0x08fa4001c,
	0x000000027,
	0x010240008,
	0x000000027,
	0x023c284a9,
	0x00c000827,
	0x023c28568,
	0x00c00089f,
	0x0afa20004,
	0x08fa20000,
	0x000000027,
	0x023bd0020,
	0x000400008,
	0x023bd0154,
	0x08fc280be,
	0x023c487d2,
	0x000000825,
	0x08fa20024,
	0x023c4885a,
	0x0afa20004,
	0x0afa40008,
	0x020021000,
	0x00c0009ec,
	0x00c000a69,
	0x0afa2000c,
	0x01c200008,
	0x000000027,
	0x023c384b7,
	0x00c000827,
	0x023c38576,
	0x00c00089f,
	0x0afa30004,
	0x08fa20000,
	0x000000027,
	0x023bd0020,
	0x000400008,
	0x023bd0154,
	0x023c387d2,
	0x000000825,
	0x023c3885a,
	0x0afa30004,
	0x023c497d2,
	0x023c4985a,
	0x0afa40008,
	0x00c000e1b,
	0x00c000e9d,
	0x0afa1000c,
	0x014200008,
	0x000000027,
	0x023c284c4,
	0x00c000827,
	0x023c28583,
	0x00c00089f,
	0x0afa20004,
	0x08fa20000,
	0x000000027,
	0x023bd0020,
	0x000400008,
	0x023bd0154,
	0x087c397d6,
	0x000000825,
	0x087c3985e,
	0x02002ffff,
	0x010620008,
	0x000000027,
	0x023c384d3,
	0x00c000827,
	0x023c38592,
	0x00c00089f,
	0x0afa30004,
	0x08fa20000,
	0x000000027,
	0x023bd0020,
	0x000400008,
	0x023bd0154,
	0x083c297d2,
	0x000000825,
	0x083c2985a,
	0x020030037,
	0x01443000d,
	0x000000027,
	0x020020002,
	0x0afa20004,
	0x023c384de,
	0x023c3859d,
	0x0afa30008,
	0x023c297d2,
	0x023c2985a,
	0x024420008,
	0x00c0008f5,
	0x00c00096d,
	0x0afa2000c,
	0x08fa20000,
	0x000000027,
	0x023bd0020,
	0x000400008,
	0x023bd0154,
	0x083c397d2,
	0x000000825,
	0x083c3985a,
	0x020020035,
	0x010620008,
	0x000000027,
	0x023c384ee,
	0x00c000827,
	0x023c385ad,
	0x00c00089f,
	0x0afa30004,
	0x08fa20000,
	0x000000027,
	0x023bd0020,
	0x000400008,
	0x023bd0154,
	0x023c284fb,
	0x00c0008d0,
	0x0afa20004,
	0x023c387d2,
	0x000000825,
	0x08fa20000,
	0x023bd0020,
	0x000400008,
	0x020010001,
	0x023bdfeb0,
	0x0afbf0000,
	0x08fc680be,
	0x08fa20154,
	0x000000027,
	0x01040000a,
	0x000000027,
	0x023c385ba,
	0x0afa30004,
	0x023c28503,
	0x023c28002,
	0x0afa20008,
	0x08fa30144,
	0x00c00091a,
	0x02003001c,
	0x00c0008c5,
	0x0afa3000c,
	0x023c387d2,
	0x08fc680be,
	0x000000027,
	0x000002825,
	0x028a20005,
	0x010400021,
	0x0afa50144,
	0x02002ffff,
	0x0afc280be,
	0x023c28002,
	0x0afa20004,
	0x023c485c1,
	0x0afa40008,
	0x020020004,
	0x00c0009aa,
	0x0afa2000c,
	0x014200006,
	0x000000027,
	0x023c28002,
	0x024420004,
	0x00c0004ab,
	0x0afa20004,
	0x0afc180be,
	0x023c38002,
	0x0afa30004,
	0x020040001,
	0x023c485c6,
	0x0afa40008,
	0x0200301b6,
	0x00c0009d3,
	0x020030004,
	0x00c0009aa,
	0x0afa3000c,
	0x004210004,
	0x0afa1014c,
	0x023c28509,
	0x00c000839,
	0x01420011f,
	0x023c58002,
	0x024a30004,
	0x0afa30140,
	0x00c0005f6,
	0x0afa30004,
	0x000013025,
	0x004c0010e,
	0x0afc680be,
	0x004c10008,
	0x000000027,
	0x023c285f2,
	0x00c000948,
	0x0afa20004,
	0x023c387d2,
	0x08fa20000,
	0x000000027,
	0x000400008,
	0x023bd0150,
	0x00c000653,
	0x0afa60004,
	0x014200005,
	0x000000027,
	0x08fa20000,
	0x000000027,
	0x000400008,
	0x023bd0150,
	0x023c38601,
	0x00c000948,
	0x0afa30004,
	0x023c28510,
	0x0afa20008,
	0x08fc380be,
	0x00c00091a,
	0x0afa3000c,
	0x023c287d2,
	0x00c0009ac,
	0x023c2885a,
	0x0afa20004,
	0x0afa10018,
	0x023c487d2,
	0x00c0009ac,
	0x0afa40004,
	0x023c38609,
	0x0afa30008,
	0x08fa20140,
	0x00c000992,
	0x0afa2000c,
	0x023c2885a,
	0x0afa20004,
	0x020040001,
	0x0afa40008,
	0x0200201b6,
	0x00c000a4b,
	0x0afa2000c,
	0x004210004,
	0x0afa10148,
	0x023c3860f,
	0x00c0008b1,
	0x0afa30004,
	0x023c2885a,
	0x0afa20004,
	0x023c38616,
	0x0afa30008,
	0x08fc280be,
	0x00c000992,
	0x0afa2000c,
	0x023c3885a,
	0x00c000a24,
	0x0afa30004,
	0x0afa10014,
	0x08fa4014c,
	0x023c387d2,
	0x023c4885a,
	0x00c000a24,
	0x0afa40004,
	0x0afa10010,
	0x08fa40148,
	0x023c3885a,
	0x0afa40004,
	0x0afa30008,
	0x08fa40014,
	0x00c0009fb,
	0x08fa40010,
	0x00c000a7d,
	0x0afa4000c,
	0x08fa30018,
	0x08fa30014,
	0x000000027,
	0x010230004,
	0x000000027,
	0x023c28513,
	0x00c000839,
	0x023c28619,
	0x00c0008b1,
	0x0afa20004,
	0x08fa3014c,
	0x00c0009ce,
	0x08fa30148,
	0x00c000a46,
	0x0afa30004,
	0x023c38519,
	0x023c3861f,
	0x0afa30004,
	0x020040001,
	0x0afa40008,
	0x0200301b6,
	0x00c0009d3,
	0x00c000a4b,
	0x0afa3000c,
	0x004210004,
	0x0afa1014c,
	0x023c28521,
	0x00c000839,
	0x0afa10148,
	0x023c28627,
	0x00c0008b1,
	0x0afa20004,
	0x023c387d2,
	0x023c3885a,
	0x0afa30004,
	0x023c28528,
	0x023c2862e,
	0x0afa20008,
	0x08fc380be,
	0x00c00091a,
	0x00c000992,
	0x0afa3000c,
	0x023c287d2,
	0x00c0009ac,
	0x023c2885a,
	0x00c000a24,
	0x0afa20004,
	0x0afa10018,
	0x023c487d2,
	0x00c0009ac,
	0x0afa40004,
	0x0afa10014,
	0x08fa4014c,
	0x023c387d2,
	0x023c4885a,
	0x00c000a24,
	0x0afa40004,
	0x0afa10010,
	0x08fa40148,
	0x023c3885a,
	0x0afa40004,
	0x0afa30008,
	0x08fa40014,
	0x00c0009fb,
	0x08fa40010,
	0x00c000a7d,
	0x0afa4000c,
	0x08fa30018,
	0x08fa30014,
	0x000000027,
	0x010230004,
	0x000000027,
	0x023c2852b,
	0x00c000839,
	0x023c28631,
	0x00c0008b1,
	0x0afa20004,
	0x08fa3014c,
	0x00c0009ce,
	0x08fa30148,
	0x00c000a46,
	0x0afa30004,
	0x023c28531,
	0x00c0008d0,
	0x023c28637,
	0x00c000948,
	0x0afa20004,
	0x023c2853a,
	0x023c28640,
	0x0afa20004,
	0x023c4853c,
	0x023c48642,
	0x0afa40008,
	0x00c0009c9,
	0x00c000a41,
	0x0afa0000c,
	0x004210004,
	0x000000027,
	0x023c2853e,
	0x00c000839,
	0x023c28644,
	0x00c0008b1,
	0x0afa20004,
	0x08fc280be,
	0x023c48543,
	0x023c48649,
	0x0afa20004,
	0x0afa40008,
	0x020020006,
	0x0afa2000c,
	0x023c48545,
	0x023c4864b,
	0x0afa40010,
	0x023c28546,
	0x00c0009e2,
	0x023c2864c,
	0x00c000a5f,
	0x0afa20014,
	0x004210004,
	0x000000027,
	0x023c38547,
	0x00c000839,
	0x023c3864d,
	0x00c0008b1,
	0x0afa30004,
	0x023c2854d,
	0x00c0008d0,
	0x023c28653,
	0x00c000948,
	0x0afa20004,
	0x023c28555,
	0x023c2865b,
	0x0afa20004,
	0x023a4005c,
	0x00c0009f6,
	0x023a40058,
	0x00c000a73,
	0x0afa40008,
	0x004210004,
	0x000000027,
	0x023c28559,
	0x00c000839,
	0x023c2865f,
	0x00c0008b1,
	0x0afa20004,
	0x023a3005c,
	0x023a30058,
	0x0afa30004,
	0x023a200d0,
	0x00c0010df,
	0x023a200cc,
	0x00c001161,
	0x0afa20008,
	0x023c2855e,
	0x023c28664,
	0x0afa20004,
	0x020040001,
	0x00c0009e7,
	0x00c000a64,
	0x0afa40008,
	0x0afa1014c,
	0x023a2005c,
	0x0afa10148,
	0x023a20058,
	0x0afa20004,
	0x023c38566,
	0x023c3866c,
	0x0afa30008,
	0x08fa20130,
	0x00c00091a,
	0x08fa2012c,
	0x00c000992,
	0x0afa2000c,
	0x023a2005c,
	0x00c0009ac,
	0x023a20058,
	0x00c000a24,
	0x0afa20004,
	0x0afa10018,
	0x08fa2014c,
	0x023a3005c,
	0x0afa10014,
	0x08fa20148,
	0x023a30058,
	0x0afa20004,
	0x0afa30008,
	0x08fa20018,
	0x00c0009fb,
	0x08fa20014,
	0x00c000a7d,
	0x0afa2000c,
	0x08fa3014c,
	0x00c0009ce,
	0x08fa30148,
	0x00c000a46,
	0x0afa30004,
	0x023c2856a,
	0x00c0008d0,
	0x023c28670,
	0x00c000948,
	0x0afa20004,
	0x08fc580a2,
	0x08fc3804e,
	0x08fc38042,
	0x000000027,
	0x010600015,
	0x000000027,
	0x023a2001c,
	0x023a20018,
	0x0afa20004,
	0x023c38573,
	0x023c38679,
	0x0afa30008,
	0x00c00091a,
	0x00c000992,
	0x0afa5000c,
	0x08fc3804e,
	0x023a2001c,
	0x08fc38042,
	0x023a20018,
	0x0afa30004,
	0x0afa20008,
	0x00c0009c9,
	0x00c000a41,
	0x0afa0000c,
	0x08fc3804e,
	0x023c2857b,
	0x08fc38042,
	0x023c28681,
	0x0afa30004,
	0x0afa20008,
	0x00c0009c9,
	0x00c000a41,
	0x0afa0000c,
	0x08fc580a2,
	0x000000027,
	0x010a00012,
	0x000000027,
	0x023a2001c,
	0x023a20018,
	0x0afa20004,
	0x023c38584,
	0x023c3868a,
	0x0afa30008,
	0x00c00091a,
	0x00c000992,
	0x0afa5000c,
	0x023c38594,
	0x023c3869a,
	0x0afa30004,
	0x023a2001c,
	0x00c0008d0,
	0x023a20018,
	0x00c000948,
	0x0afa20008,
	0x023a3001c,
	0x023a30018,
	0x0afa30004,
	0x023c285b6,
	0x023c286bc,
	0x0afa20008,
	0x00c0009c9,
	0x00c000a41,
	0x0afa0000c,
	0x08fa30158,
	0x08fa30154,
	0x000000027,
	0x010600010,
	0x000000027,
	0x023c285c7,
	0x023c286cd,
	0x0afa20004,
	0x023c385d2,
	0x023c386d8,
	0x0afa30008,
	0x023c285d7,
	0x023c286dd,
	0x0afa2000c,
	0x00c0009b8,
	0x00c000a30,
	0x0afa00010,
	0x023c385ea,
	0x00c000839,
	0x023c386f0,
	0x00c0008b1,
	0x0afa30004,
	0x08fa20000,
	0x000000027,
	0x000400008,
	0x023bd0154,
	0x023c385da,
	0x023bd0150,
	0x023c386e0,
	0x0afa30004,
	0x023c285e5,
	0x023c286eb,
	0x0afa20008,
	0x00c0009b8,
	0x00c000a30,
	0x0afa0000c,
	0x023c385ea,
	0x00c000839,
	0x023c386f0,
	0x00c0008b1,
	0x0afa30004,
	0x08fa20000,
	0x000000027,
	0x000400008,
	0x023bd0154,
	0x023c2840f,
	0x00c0008d0,
	0x0afa20004,
	0x0200303e8,
	0x00c0009f1,
	0x023bd0150,
	0x023c385d6,
	0x00c000948,
	0x0afa30004,
	0x0200203e8,
	0x00c000a6e,
	0x0afa20004,
	0x08fc680be,
	0x08fa20148,
	0x008000608,
	0x08fa20144,
	0x008000744,
	0x024450001,
	0x0afa50004,
	0x023c48404,
	0x023c485cb,
	0x0afa40008,
	0x020030003,
	0x00c000932,
	0x0afa3000c,
	0x020020003,
	0x00c0009aa,
	0x0afa2000c,
	0x014200007,
	0x023c58002,
	0x024a30003,
	0x0afa30144,
	0x00c00056e,
	0x0afa30004,
	0x00800061b,
	0x024a20003,
	0x0afa20140,
	0x00c00056d,
	0x0afa20004,
	0x008000765,
	0x000013025,
	0x0afa50004,
	0x023c48408,
	0x023c485cf,
	0x0afa40008,
	0x020020006,
	0x00c000932,
	0x0afa2000c,
	0x020030006,
	0x00c0009aa,
	0x0afa3000c,
	0x014200007,
	0x023c58002,
	0x024a20006,
	0x0afa20144,
	0x00c0004b7,
	0x0afa20004,
	0x00800061b,
	0x024a30006,
	0x0afa30140,
	0x00c0004b6,
	0x0afa30004,
	0x008000765,
	0x000013025,
	0x0afa50144,
	0x00c0004b7,
	0x0afa50140,
	0x00c0004b6,
	0x0afa50004,
	0x00800061b,
	0x008000765,
	0x000013025,
	0x023bdffac,
	0x0afbf0000,
	0x023a20014,
	0x00c0009d8,
	0x00c000a50,
	0x0afa20004,
	0x020030002,
	0x0afa30004,
	0x023c285f5,
	0x023c286fb,
	0x0afa20008,
	0x08fa30058,
	0x023a20014,
	0x0afa3000c,
	0x00c0008f5,
	0x00c00096d,
	0x0afa20010,
	0x08fa20000,
	0x000000027,


@@ 1083,18 1203,18 @@ ulong bootcode[]={
	0x023bdffac,
	0x0afbf0000,
	0x023a30014,
	0x00c0009d8,
	0x00c000a50,
	0x0afa30004,
	0x020020002,
	0x0afa20004,
	0x023c38603,
	0x023c38709,
	0x0afa30008,
	0x08fa20058,
	0x023a30014,
	0x0afa2000c,
	0x00c0008f5,
	0x00c00096d,
	0x0afa30010,
	0x00c0008b4,
	0x00c00092c,
	0x0afa00004,
	0x08fa20000,
	0x000000027,


@@ 1102,28 1222,28 @@ ulong bootcode[]={
	0x023bd0054,
	0x023bdfeec,
	0x0afbf0000,
	0x023c38611,
	0x023c38717,
	0x0afa30004,
	0x08fa20118,
	0x000000027,
	0x0afa20008,
	0x08fa3011c,
	0x00c0008d0,
	0x00c000948,
	0x0afa3000c,
	0x0afa00004,
	0x023a30010,
	0x0afa30008,
	0x08fa40120,
	0x00c0009ec,
	0x00c000a69,
	0x0afa4000c,
	0x014200003,
	0x000012825,
	0x00800084f,
	0x0080008c7,
	0x000000027,
	0x004210006,
	0x0afa10110,
	0x023c2861a,
	0x00c000839,
	0x023c28720,
	0x00c0008b1,
	0x0afa20004,
	0x08fa50110,
	0x000000027,


@@ 1136,7 1256,7 @@ ulong bootcode[]={
	0x08fa3011c,
	0x023a20010,
	0x0afa30004,
	0x00c00096c,
	0x00c0009e4,
	0x0afa20008,
	0x08fa50110,
	0x000000027,


@@ 1148,7 1268,7 @@ ulong bootcode[]={
	0x000002825,
	0x028a20021,
	0x010400011,
	0x023c686c2,
	0x023c6874a,
	0x000051080,
	0x000461021,
	0x08c420000,


@@ 1173,7 1293,7 @@ ulong bootcode[]={
	0x000002025,
	0x028820021,
	0x01040000d,
	0x023c586c2,
	0x023c5874a,
	0x000041080,
	0x000451021,
	0x08c420000,


@@ 1194,10 1314,10 @@ ulong bootcode[]={
	0x000000027,
	0x014400003,
	0x000000027,
	0x00c0008b4,
	0x00c00092c,
	0x0afa00004,
	0x023c380a6,
	0x00c0008b4,
	0x00c00092c,
	0x0afa30004,
	0x08fa20000,
	0x000000027,


@@ 1205,7 1325,7 @@ ulong bootcode[]={
	0x023bd0008,
	0x023bdfff0,
	0x0afbf0000,
	0x023c686c2,
	0x023c6874a,
	0x020040020,
	0x004800010,
	0x000000027,


@@ 1221,11 1341,11 @@ ulong bootcode[]={
	0x000a0f809,
	0x0ac400000,
	0x08fa4000c,
	0x023c686c2,
	0x0080008b8,
	0x023c6874a,
	0x008000930,
	0x02484ffff,
	0x08fa30014,
	0x00c0009c4,
	0x00c000a3c,
	0x0afa30004,
	0x08fa20000,
	0x000000027,


@@ 1241,26 1361,26 @@ ulong bootcode[]={
	0x023a41020,
	0x0afa3000c,
	0x024840004,
	0x00c00119e,
	0x00c001220,
	0x0afa40010,
	0x023a6001c,
	0x020020001,
	0x0afa20004,
	0x0afa60008,
	0x000261023,
	0x00c0009fb,
	0x00c000a7d,
	0x0afa2000c,
	0x0afa10014,
	0x00421000c,
	0x000012825,
	0x08fc3808a,
	0x08fc38086,
	0x000000027,
	0x024630001,
	0x02862000a,
	0x014400006,
	0x0afc3808a,
	0x0afc38086,
	0x023c280f2,
	0x00c0008b4,
	0x00c00092c,
	0x0afa20004,
	0x08fa50014,
	0x000000027,


@@ 1278,26 1398,26 @@ ulong bootcode[]={
	0x023a41024,
	0x0afa3000c,
	0x024840004,
	0x00c00119e,
	0x00c001220,
	0x0afa40010,
	0x08fa21020,
	0x023a6001c,
	0x0afa20004,
	0x0afa60008,
	0x000261023,
	0x00c0009fb,
	0x00c000a7d,
	0x0afa2000c,
	0x0afa10014,
	0x00421000c,
	0x000012825,
	0x08fc3808a,
	0x08fc38086,
	0x000000027,
	0x024630001,
	0x02862000a,
	0x014400006,
	0x0afc3808a,
	0x0afc38086,
	0x023c280f2,
	0x00c0008b4,
	0x00c00092c,
	0x0afa20004,
	0x08fa50014,
	0x000000027,


@@ 1308,7 1428,7 @@ ulong bootcode[]={
	0x023bdffe4,
	0x0afbf0000,
	0x08fa50020,
	0x08fc2808e,
	0x08fc2808a,
	0x024a41000,
	0x0afa20014,
	0x0afa50004,


@@ 1317,11 1437,11 @@ ulong bootcode[]={
	0x023a40024,
	0x0afa2000c,
	0x024840004,
	0x00c00119e,
	0x00c001220,
	0x0afa40010,
	0x08fa20014,
	0x000000027,
	0x0afc2808e,
	0x0afc2808a,
	0x08fa20020,
	0x000000027,
	0x000220823,


@@ 1456,7 1576,7 @@ ulong bootcode[]={
	0x08fa20010,
	0x000000027,
	0x0afa20004,
	0x00c0016cc,
	0x00c00174e,
	0x0afa00008,
	0x08fa30010,
	0x08fa20000,


@@ 1469,7 1589,7 @@ ulong bootcode[]={
	0x023a30010,
	0x0afa20004,
	0x024630004,
	0x00c0009dd,
	0x00c000a55,
	0x0afa30008,
	0x08fa20000,
	0x000000027,


@@ 1506,6 1626,11 @@ ulong bootcode[]={
	0x003e00008,
	0x023bd0004,
	0x023bdfffc,
	0x020010009,
	0x00000000c,
	0x003e00008,
	0x023bd0004,
	0x023bdfffc,
	0x02001000d,
	0x00000000c,
	0x003e00008,


@@ 1531,6 1656,11 @@ ulong bootcode[]={
	0x003e00008,
	0x023bd0004,
	0x023bdfffc,
	0x020010013,
	0x00000000c,
	0x003e00008,
	0x023bd0004,
	0x023bdfffc,
	0x020010014,
	0x00000000c,
	0x003e00008,


@@ 1579,13 1709,13 @@ ulong bootcode[]={
	0x038620034,
	0x01040000d,
	0x000000027,
	0x023c3805a,
	0x023c3801e,
	0x0afa30004,
	0x080a20000,
	0x000000027,
	0x000021600,
	0x000021603,
	0x00c0008d0,
	0x00c000948,
	0x0afa20008,
	0x08fa20000,
	0x023bd0014,


@@ 1607,7 1737,7 @@ ulong bootcode[]={
	0x038620039,
	0x01040fff1,
	0x000000027,
	0x008000a2c,
	0x008000aae,
	0x000000027,
	0x084a20008,
	0x000000027,


@@ 1630,7 1760,7 @@ ulong bootcode[]={
	0x024a20008,
	0x0afa20008,
	0x020030040,
	0x00c001785,
	0x00c001807,
	0x0afa3000c,
	0x08fa20010,
	0x000000027,


@@ 1656,7 1786,7 @@ ulong bootcode[]={
	0x024a20008,
	0x0afa20008,
	0x02003001c,
	0x00c001785,
	0x00c001807,
	0x0afa3000c,
	0x08fa20010,
	0x02003001c,


@@ 1667,7 1797,7 @@ ulong bootcode[]={
	0x000000027,
	0x024420024,
	0x0afa20008,
	0x00c001785,
	0x00c001807,
	0x0afa3000c,
	0x08fa20010,
	0x02003001c,


@@ 1678,7 1808,7 @@ ulong bootcode[]={
	0x000000027,
	0x024420040,
	0x0afa20008,
	0x00c001785,
	0x00c001807,
	0x0afa3000c,
	0x08fa20010,
	0x000000027,


@@ 1704,7 1834,7 @@ ulong bootcode[]={
	0x03862003d,
	0x010400003,
	0x000000027,
	0x008000a2c,
	0x008000aae,
	0x000000027,
	0x084a30002,
	0x000000027,


@@ 1807,7 1937,7 @@ ulong bootcode[]={
	0x024a3000e,
	0x0afa30008,
	0x02002001c,
	0x00c001785,
	0x00c001807,
	0x0afa2000c,
	0x08fa30010,
	0x08fa2001c,


@@ 1826,7 1956,7 @@ ulong bootcode[]={
	0x038620041,
	0x010400003,
	0x000000027,
	0x008000a2c,
	0x008000aae,
	0x000000027,
	0x084a30002,
	0x000000027,


@@ 1954,7 2084,7 @@ ulong bootcode[]={
	0x024a2000e,
	0x0afa20008,
	0x02003001c,
	0x00c001785,
	0x00c001807,
	0x0afa3000c,
	0x08fa70018,
	0x08fa20010,


@@ 2005,7 2135,7 @@ ulong bootcode[]={
	0x038620045,
	0x010400003,
	0x000000027,
	0x008000a2c,
	0x008000aae,
	0x000000027,
	0x084a30002,
	0x000000027,


@@ 2030,7 2160,7 @@ ulong bootcode[]={
	0x000000027,
	0x0afa20008,
	0x08ca3000c,
	0x00c001785,
	0x00c001807,
	0x0afa3000c,
	0x08fa20018,
	0x08fa30010,


@@ 2174,7 2304,7 @@ ulong bootcode[]={
	0x000000027,
	0x0afa20008,
	0x08ca3000c,
	0x00c001785,
	0x00c001807,
	0x0afa3000c,
	0x08fa20018,
	0x08fa30010,


@@ 2197,7 2327,7 @@ ulong bootcode[]={
	0x038620049,
	0x010400003,
	0x000000027,
	0x008000a2c,
	0x008000aae,
	0x000000027,
	0x084a20002,
	0x000000027,


@@ 2284,7 2414,7 @@ ulong bootcode[]={
	0x03862004d,
	0x010400003,
	0x000000027,
	0x008000a2c,
	0x008000aae,
	0x000000027,
	0x084a20002,
	0x024c30002,


@@ 2300,7 2430,7 @@ ulong bootcode[]={
	0x024a30008,
	0x0afa30008,
	0x020020074,
	0x00c001785,
	0x00c001807,
	0x0afa2000c,
	0x08fa30010,
	0x08fa2001c,


@@ 2356,7 2486,7 @@ ulong bootcode[]={
	0x024a20008,
	0x0afa20008,
	0x020030074,
	0x00c001785,
	0x00c001807,
	0x0afa3000c,
	0x08fa20010,
	0x000000027,


@@ 2377,7 2507,7 @@ ulong bootcode[]={
	0x038620051,
	0x01040fe1e,
	0x000000027,
	0x008000a2c,
	0x008000aae,
	0x000000027,
	0x084a20002,
	0x000000027,


@@ 2402,7 2532,7 @@ ulong bootcode[]={
	0x024a2000e,
	0x0afa20008,
	0x02003001c,
	0x00c001785,
	0x00c001807,
	0x0afa3000c,
	0x08fa20010,
	0x000000027,


@@ 2439,7 2569,7 @@ ulong bootcode[]={
	0x08fa30018,
	0x000000027,
	0x0afa30008,
	0x00c001785,
	0x00c001807,
	0x0afa2000c,
	0x08fa30010,
	0x02002001c,


@@ 2450,7 2580,7 @@ ulong bootcode[]={
	0x000000027,
	0x02463001c,
	0x0afa30008,
	0x00c001785,
	0x00c001807,
	0x0afa2000c,
	0x08fa30010,
	0x02002001c,


@@ 2461,7 2591,7 @@ ulong bootcode[]={
	0x000000027,
	0x024630038,
	0x0afa30008,
	0x00c001785,
	0x00c001807,
	0x0afa2000c,
	0x08fa40018,
	0x08fa30010,


@@ 2630,13 2760,13 @@ ulong bootcode[]={
	0x038430034,
	0x01060000d,
	0x000000027,
	0x023c28068,
	0x023c2802c,
	0x0afa20004,
	0x080c30000,
	0x000000027,
	0x000031e00,
	0x000031e03,
	0x00c0008d0,
	0x00c000948,
	0x0afa30008,
	0x08fa20000,
	0x023bd0014,


@@ 2666,7 2796,7 @@ ulong bootcode[]={
	0x038430039,
	0x01060ffe9,
	0x000000027,
	0x008000e47,
	0x008000ec9,
	0x000000027,
	0x090a20000,
	0x090a30001,


@@ 2675,17 2805,17 @@ ulong bootcode[]={
	0x000031a00,
	0x000431025,
	0x024a50002,
	0x008000e53,
	0x008000ed5,
	0x0a4c20008,
	0x024c20008,
	0x0afa20004,
	0x0afa50010,
	0x0afa50008,
	0x020020040,
	0x00c001785,
	0x00c001807,
	0x0afa2000c,
	0x08fa30010,
	0x008000e53,
	0x008000ed5,
	0x024650040,
	0x090a20000,
	0x090a30001,


@@ 2700,7 2830,7 @@ ulong bootcode[]={
	0x0afa50010,
	0x0afa50008,
	0x02002001c,
	0x00c001785,
	0x00c001807,
	0x0afa2000c,
	0x08fa30010,
	0x08fa2001c,


@@ 2710,7 2840,7 @@ ulong bootcode[]={
	0x0afa50010,
	0x0afa50008,
	0x02002001c,
	0x00c001785,
	0x00c001807,
	0x0afa2000c,
	0x08fa30010,
	0x08fa2001c,


@@ 2720,10 2850,10 @@ ulong bootcode[]={
	0x0afa50010,
	0x0afa50008,
	0x02002001c,
	0x00c001785,
	0x00c001807,
	0x0afa2000c,
	0x08fa30010,
	0x008000e53,
	0x008000ed5,
	0x02465001c,
	0x02443ffc2,
	0x01c600063,


@@ 2739,7 2869,7 @@ ulong bootcode[]={
	0x03843003d,
	0x010600003,
	0x000000027,
	0x008000e47,
	0x008000ec9,
	0x000000027,
	0x090a20000,
	0x090a30001,


@@ 2748,7 2878,7 @@ ulong bootcode[]={
	0x000031a00,
	0x000431025,
	0x024a50002,
	0x008000e53,
	0x008000ed5,
	0x0a4c20002,
	0x090a20000,
	0x090a30001,


@@ 2765,7 2895,7 @@ ulong bootcode[]={
	0x000031a00,
	0x000431025,
	0x024a50002,
	0x008000e53,
	0x008000ed5,
	0x0a4c2000c,
	0x090a20000,
	0x090a30001,


@@ 2806,7 2936,7 @@ ulong bootcode[]={
	0x000031e00,
	0x000431025,
	0x024a50004,
	0x008000e53,
	0x008000ed5,
	0x0acc20010,
	0x090a20000,
	0x090a30001,


@@ 2821,10 2951,10 @@ ulong bootcode[]={
	0x0afa50010,
	0x0afa50008,
	0x02002001c,
	0x00c001785,
	0x00c001807,
	0x0afa2000c,
	0x08fa30010,
	0x008000e53,
	0x008000ed5,
	0x02465001c,
	0x03843003f,
	0x01060003e,


@@ 2835,7 2965,7 @@ ulong bootcode[]={
	0x038430041,
	0x010600003,
	0x000000027,
	0x008000e47,
	0x008000ec9,
	0x000000027,
	0x090a20000,
	0x090a30001,


@@ 2876,7 3006,7 @@ ulong bootcode[]={
	0x000031e00,
	0x000431025,
	0x024a50004,
	0x008000e53,
	0x008000ed5,
	0x0acc20010,
	0x090a20000,
	0x090a30001,


@@ 2888,7 3018,7 @@ ulong bootcode[]={
	0x024a30002,
	0x024650001,
	0x080630000,
	0x008000e53,
	0x008000ed5,
	0x0a0c3002a,
	0x090a20000,
	0x090a30001,


@@ 2929,7 3059,7 @@ ulong bootcode[]={
	0x000031e00,
	0x000431025,
	0x024a50004,
	0x008000e53,
	0x008000ed5,
	0x0acc20010,
	0x090a20000,
	0x090a30001,


@@ 2944,7 3074,7 @@ ulong bootcode[]={
	0x0afa50010,
	0x0afa50008,
	0x02002001c,
	0x00c001785,
	0x00c001807,
	0x0afa2000c,
	0x08fa6001c,
	0x08fa30010,


@@ 2968,7 3098,7 @@ ulong bootcode[]={
	0x024a30004,
	0x024650001,
	0x080630000,
	0x008000e53,
	0x008000ed5,
	0x0a0c3002a,
	0x02443ffb6,
	0x01c6000ce,


@@ 2989,7 3119,7 @@ ulong bootcode[]={
	0x038430045,
	0x010600003,
	0x000000027,
	0x008000e47,
	0x008000ec9,
	0x000000027,
	0x090a20000,
	0x090a30001,


@@ 3010,7 3140,7 @@ ulong bootcode[]={
	0x024650001,
	0x0acc50010,
	0x08cc3000c,
	0x008000e53,
	0x008000ed5,
	0x000a32821,
	0x090a20000,
	0x090a30001,


@@ 3043,7 3173,7 @@ ulong bootcode[]={
	0x000031a00,
	0x000431025,
	0x024a50002,
	0x008000e53,
	0x008000ed5,
	0x0acc2000c,
	0x090a20000,
	0x090a30001,


@@ 3084,7 3214,7 @@ ulong bootcode[]={
	0x000031e00,
	0x000431025,
	0x024a50004,
	0x008000e53,
	0x008000ed5,
	0x0acc20010,
	0x090a20000,
	0x090a30001,


@@ 3121,7 3251,7 @@ ulong bootcode[]={
	0x024650001,
	0x0acc50010,
	0x08cc3000c,
	0x008000e53,
	0x008000ed5,
	0x000a32821,
	0x038430047,
	0x01060001b,


@@ 3132,7 3262,7 @@ ulong bootcode[]={
	0x038430049,
	0x010600003,
	0x000000027,
	0x008000e47,
	0x008000ec9,
	0x000000027,
	0x090a20000,
	0x090a30001,


@@ 3141,7 3271,7 @@ ulong bootcode[]={
	0x000031a00,
	0x000431025,
	0x024a50002,
	0x008000e53,
	0x008000ed5,
	0x0a4c20002,
	0x090a20000,
	0x090a30001,


@@ 3150,7 3280,7 @@ ulong bootcode[]={
	0x000031a00,
	0x000431025,
	0x024a50002,
	0x008000e53,
	0x008000ed5,
	0x0a4c20002,
	0x090a20000,
	0x090a30001,


@@ 3167,7 3297,7 @@ ulong bootcode[]={
	0x000031a00,
	0x000431025,
	0x024a50002,
	0x008000e53,
	0x008000ed5,
	0x0acc2000c,
	0x090a20000,
	0x090a30001,


@@ 3176,7 3306,7 @@ ulong bootcode[]={
	0x000031a00,
	0x000431025,
	0x024a50002,
	0x008000e53,
	0x008000ed5,
	0x0a4c20002,
	0x02443ffb2,
	0x01c600044,


@@ 3192,7 3322,7 @@ ulong bootcode[]={
	0x03843004d,
	0x010600003,
	0x000000027,
	0x008000e47,
	0x008000ec9,
	0x000000027,
	0x090a20000,
	0x090a30001,


@@ 3207,10 3337,10 @@ ulong bootcode[]={
	0x0afa50010,
	0x0afa50008,
	0x020020074,
	0x00c001785,
	0x00c001807,
	0x0afa2000c,
	0x08fa30010,
	0x008000e53,
	0x008000ed5,
	0x024650074,
	0x090a20000,
	0x090a30001,


@@ 3219,7 3349,7 @@ ulong bootcode[]={
	0x000031a00,
	0x000431025,
	0x024a50002,
	0x008000e53,
	0x008000ed5,
	0x0a4c20002,
	0x090a20000,
	0x090a30001,


@@ 3228,7 3358,7 @@ ulong bootcode[]={
	0x000031a00,
	0x000431025,
	0x024a50002,
	0x008000e53,
	0x008000ed5,
	0x0a4c20002,
	0x090a20000,
	0x090a30001,


@@ 3243,10 3373,10 @@ ulong bootcode[]={
	0x0afa50010,
	0x0afa50008,
	0x020020074,
	0x00c001785,
	0x00c001807,
	0x0afa2000c,
	0x08fa30010,
	0x008000e53,
	0x008000ed5,
	0x024650074,
	0x03843004f,
	0x010600023,


@@ 3257,7 3387,7 @@ ulong bootcode[]={
	0x038430051,
	0x01060fe92,
	0x000000027,
	0x008000e47,
	0x008000ec9,
	0x000000027,
	0x090a20000,
	0x090a30001,


@@ 3280,10 3410,10 @@ ulong bootcode[]={
	0x0afa50010,
	0x0afa50008,
	0x02002001c,
	0x00c001785,
	0x00c001807,
	0x0afa2000c,
	0x08fa30010,
	0x008000e53,
	0x008000ed5,
	0x02465001c,
	0x090a20000,
	0x090a30001,


@@ 3292,7 3422,7 @@ ulong bootcode[]={
	0x000031a00,
	0x000431025,
	0x024a50002,
	0x008000e53,
	0x008000ed5,
	0x0a4c20002,
	0x023bdffec,
	0x0afbf0000,


@@ 3303,7 3433,7 @@ ulong bootcode[]={
	0x0afa50010,
	0x0afa50008,
	0x02003001c,
	0x00c001785,
	0x00c001807,
	0x0afa3000c,
	0x08fa20010,
	0x08fa3001c,


@@ 3313,7 3443,7 @@ ulong bootcode[]={
	0x0afa50010,
	0x0afa50008,
	0x02003001c,
	0x00c001785,
	0x00c001807,
	0x0afa3000c,
	0x08fa20010,
	0x08fa3001c,


@@ 3323,7 3453,7 @@ ulong bootcode[]={
	0x0afa50010,
	0x0afa50008,
	0x02003001c,
	0x00c001785,
	0x00c001807,
	0x0afa3000c,
	0x08fa5001c,
	0x08fa20010,


@@ 3448,7 3578,7 @@ ulong bootcode[]={
	0x000400008,
	0x023bd0014,
	0x023bdfffc,
	0x08fc78052,
	0x08fc7808e,
	0x083a2000b,
	0x028e3001e,
	0x000021600,


@@ 3457,7 3587,7 @@ ulong bootcode[]={
	0x000022e00,
	0x000052e03,
	0x014600004,
	0x023c6863e,
	0x023c6810e,
	0x023bd0004,
	0x003e00008,
	0x020010001,


@@ 3467,7 3597,7 @@ ulong bootcode[]={
	0x000031e03,
	0x000661821,
	0x024e20001,
	0x0afc28052,
	0x0afc2808e,
	0x0a0670000,
	0x000051600,
	0x000021603,


@@ 3475,7 3605,7 @@ ulong bootcode[]={
	0x000021603,
	0x000461021,
	0x080420000,
	0x023c3810e,
	0x023c3818e,
	0x000021600,
	0x000021603,
	0x000021080,


@@ 3489,19 3619,19 @@ ulong bootcode[]={
	0x0afbf0000,
	0x08fa90044,
	0x08fa60040,
	0x08fc28022,
	0x08fc2803e,
	0x000000027,
	0x0afa2001c,
	0x08fc3801e,
	0x08fc3806e,
	0x000000027,
	0x0afa30018,
	0x08fac0038,
	0x000000027,
	0x0afcc8022,
	0x0afcc803e,
	0x08fa3003c,
	0x000000027,
	0x02463ffff,
	0x0afc3801e,
	0x0afc3806e,
	0x000062825,
	0x080a50000,
	0x020020025,


@@ 3511,7 3641,7 @@ ulong bootcode[]={
	0x024c60001,
	0x014a00012,
	0x000000027,
	0x08fc3801e,
	0x08fc3806e,
	0x000000027,
	0x00183202b,
	0x014800002,


@@ 3520,42 3650,42 @@ ulong bootcode[]={
	0x0a1800000,
	0x08fa3001c,
	0x000000027,
	0x0afc38022,
	0x0afc3803e,
	0x08fa20018,
	0x000000027,
	0x0afc2801e,
	0x0afc2806e,
	0x08fa20000,
	0x023bd0034,
	0x000400008,
	0x0000c0825,
	0x08fc3801e,
	0x08fc3806e,
	0x000000027,
	0x00183202b,
	0x010800005,
	0x000000027,
	0x0000c1025,
	0x0258c0001,
	0x0afcc8022,
	0x0afcc803e,
	0x0a0450000,
	0x08fc2808e,
	0x08fc2808a,
	0x000000027,
	0x024420001,
	0x0afc2808e,
	0x0afc2808a,
	0x02002000a,
	0x014a20003,
	0x000000027,
	0x0080011af,
	0x0afc0808e,
	0x008001231,
	0x0afc0808a,
	0x020020009,
	0x014a2ffd2,
	0x000000027,
	0x08fc3808e,
	0x08fc3808a,
	0x000000027,
	0x024630007,
	0x0201cfff8,
	0x0007c1824,
	0x0080011af,
	0x0afc3808e,
	0x008001231,
	0x0afc3808a,
	0x02007fc18,
	0x0200bfc18,
	0x000005025,


@@ 3568,7 3698,7 @@ ulong bootcode[]={
	0x000052e03,
	0x014a00003,
	0x000000027,
	0x0080011af,
	0x008001231,
	0x024c6ffff,
	0x02002002e,
	0x014a20007,


@@ 3577,7 3707,7 @@ ulong bootcode[]={
	0x014e20002,
	0x000000027,
	0x000003825,
	0x0080011e8,
	0x00800126a,
	0x000005825,
	0x028a20031,
	0x014400025,


@@ 3599,11 3729,11 @@ ulong bootcode[]={
	0x000000027,
	0x014a0ffe4,
	0x000083825,
	0x0080011af,
	0x008001231,
	0x024c6ffff,
	0x014a0ffe0,
	0x000085825,
	0x0080011af,
	0x008001231,
	0x024c6ffff,
	0x02002000a,
	0x001020018,


@@ 3616,7 3746,7 @@ ulong bootcode[]={
	0x000000027,
	0x000052e00,
	0x000052e03,
	0x008001204,
	0x008001286,
	0x02468ffd0,
	0x020030030,
	0x014a30006,


@@ 3624,7 3754,7 @@ ulong bootcode[]={
	0x02003fc18,
	0x010e30003,
	0x000000027,
	0x008001203,
	0x008001285,
	0x000000027,
	0x02002002a,
	0x014a20009,


@@ 3633,9 3763,9 @@ ulong bootcode[]={
	0x02002fc18,
	0x014e20003,
	0x025290004,
	0x0080011e8,
	0x00800126a,
	0x000053825,
	0x0080011e8,
	0x00800126a,
	0x000055825,
	0x030a5007f,
	0x0afa90044,


@@ 3647,10 3777,10 @@ ulong bootcode[]={
	0x0afaa0028,
	0x0afaa0010,
	0x0afa50014,
	0x023c2863e,
	0x023c2810e,
	0x000451021,
	0x080420000,
	0x023c3810e,
	0x023c3818e,
	0x000021600,
	0x000021603,
	0x000021080,


@@ 3659,7 3789,7 @@ ulong bootcode[]={
	0x000000027,
	0x00040f809,
	0x000000027,
	0x08fcc8022,
	0x08fcc803e,
	0x08fab002c,
	0x08fa90044,
	0x08fa70030,


@@ 3668,9 3798,9 @@ ulong bootcode[]={
	0x000000027,
	0x08fa40028,
	0x000011023,
	0x0080011e8,
	0x00800126a,
	0x000825025,
	0x0080011af,
	0x008001231,
	0x001214821,
	0x023bdfff0,
	0x0afbf0000,


@@ 3688,13 3818,13 @@ ulong bootcode[]={
	0x0afa20004,
	0x0afa40008,
	0x08fa2001c,
	0x00c001349,
	0x00c0013cb,
	0x0afa2000c,
	0x08fa20000,
	0x000000027,
	0x000400008,
	0x023bd0010,
	0x008001264,
	0x0080012e6,
	0x000042023,
	0x023bdffa8,
	0x0afbf0000,


@@ 3784,7 3914,7 @@ ulong bootcode[]={
	0x02002fc18,
	0x0afa30008,
	0x0afa2000c,
	0x00c001259,
	0x00c0012db,
	0x0afa70010,
	0x08fa10028,
	0x08fa20000,


@@ 3803,12 3933,12 @@ ulong bootcode[]={
	0x024a5ffff,
	0x001651021,
	0x020040030,
	0x0080012bd,
	0x00800133f,
	0x0a0440000,
	0x024a5ffff,
	0x001651021,
	0x020040078,
	0x0080012d9,
	0x00800135b,
	0x0a0440000,
	0x030e30040,
	0x01060001e,


@@ 3830,27 3960,27 @@ ulong bootcode[]={
	0x000000027,
	0x01d000003,
	0x000000027,
	0x0080012ae,
	0x008001330,
	0x000000027,
	0x01d400003,
	0x000000027,
	0x0080012ae,
	0x008001330,
	0x000000027,
	0x030e30040,
	0x01460ffa1,
	0x024a5ffff,
	0x00149001b,
	0x0080012a4,
	0x008001326,
	0x000003010,
	0x00149001b,
	0x0080012ea,
	0x00800136c,
	0x000005012,
	0x0200d0001,
	0x00800129c,
	0x00800131e,
	0x0000a5023,
	0x08caa0000,
	0x020020004,
	0x008001297,
	0x008001319,
	0x0afa20028,
	0x08ca30000,
	0x000000027,


@@ 3862,15 3992,15 @@ ulong bootcode[]={
	0x000021403,
	0x020030004,
	0x0afa30028,
	0x008001297,
	0x008001319,
	0x000025025,
	0x08caa0000,
	0x020020004,
	0x008001297,
	0x008001319,
	0x0afa20028,
	0x08caa0000,
	0x020020004,
	0x008001297,
	0x008001319,
	0x0afa20028,
	0x038620030,
	0x01040000a,


@@ 3878,11 4008,11 @@ ulong bootcode[]={
	0x038620048,
	0x010400003,
	0x000000027,
	0x008001294,
	0x008001316,
	0x000000027,
	0x08ca80000,
	0x020020004,
	0x008001297,
	0x008001319,
	0x0afa20028,
	0x08ca20000,
	0x000000027,


@@ 3892,14 4022,14 @@ ulong bootcode[]={
	0x03063ffff,
	0x020020004,
	0x0afa20028,
	0x008001297,
	0x008001319,
	0x000035025,
	0x008001285,
	0x008001307,
	0x02009000a,
	0x0200e0001,
	0x008001285,
	0x008001307,
	0x020090010,
	0x008001285,
	0x008001307,
	0x020090008,
	0x039220075,
	0x010400006,


@@ 3907,22 4037,22 @@ ulong bootcode[]={
	0x039220078,
	0x01040fff7,
	0x000000027,
	0x008001285,
	0x008001307,
	0x000000027,
	0x02009000a,
	0x008001285,
	0x008001307,
	0x034e70020,
	0x023bdfff0,
	0x0afbf0000,
	0x08fa30014,
	0x00c0009ac,
	0x00c000a24,
	0x0afa30004,
	0x08fac0014,
	0x08faa0018,
	0x08fc9801e,
	0x08fc8808e,
	0x08fc9806e,
	0x08fc8808a,
	0x08fa7001c,
	0x08fc68022,
	0x08fc6803e,
	0x02002fc18,
	0x011420003,
	0x000012825,


@@ 3940,25 4070,25 @@ ulong bootcode[]={
	0x000000027,
	0x01ce00003,
	0x000000027,
	0x008001359,
	0x0080013db,
	0x000000027,
	0x000c9202b,
	0x010800005,
	0x000000027,
	0x000061025,
	0x024c60001,
	0x0afc68022,
	0x0afc6803e,
	0x0a04b0000,
	0x025080001,
	0x02002000a,
	0x015620008,
	0x0afc8808e,
	0x0afc8808a,
	0x000004025,
	0x0afc0808e,
	0x0afc0808a,
	0x02003fc18,
	0x010e3ffe3,
	0x000000027,
	0x008001359,
	0x0080013db,
	0x024e7ffff,
	0x020020009,
	0x01562fff9,


@@ 3968,8 4098,8 @@ ulong bootcode[]={
	0x0007c4024,
	0x02003fc18,
	0x010e3ffd8,
	0x0afc8808e,
	0x008001359,
	0x0afc8808a,
	0x0080013db,
	0x024e7ffff,
	0x02002fc18,
	0x011420003,


@@ 3989,13 4119,13 @@ ulong bootcode[]={
	0x000000027,
	0x000061825,
	0x024c60001,
	0x0afc68022,
	0x0afc6803e,
	0x020040020,
	0x0a0640000,
	0x025080001,
	0x024a50001,
	0x00800138e,
	0x0afc8808e,
	0x008001410,
	0x0afc8808a,
	0x000aa202a,
	0x01080ffba,
	0x000000027,


@@ 4004,13 4134,13 @@ ulong bootcode[]={
	0x000000027,
	0x000061025,
	0x024c60001,
	0x0afc68022,
	0x0afc6803e,
	0x020040020,
	0x0a0440000,
	0x025080001,
	0x024a50001,
	0x00800139d,
	0x0afc8808e,
	0x00800141f,
	0x0afc8808a,
	0x023bdffec,
	0x0afbf0000,
	0x02002002a,


@@ 4024,7 4154,7 @@ ulong bootcode[]={
	0x0afa30004,
	0x0afa00008,
	0x02002fc18,
	0x00c001349,
	0x00c0013cb,
	0x0afa2000c,
	0x08fa20000,
	0x023bd0014,


@@ 4042,7 4172,7 @@ ulong bootcode[]={
	0x08fa3001c,
	0x02002fc18,
	0x0afa30008,
	0x00c001349,
	0x00c0013cb,
	0x0afa2000c,
	0x08fa20000,
	0x023bd0014,


@@ 4062,21 4192,21 @@ ulong bootcode[]={
	0x000000027,
	0x0afa3000c,
	0x08fa20024,
	0x00c001259,
	0x00c0012db,
	0x0afa20010,
	0x08fa20000,
	0x023bd0014,
	0x000400008,
	0x020010004,
	0x023bdfffc,
	0x08fc58022,
	0x08fc2801e,
	0x08fc5803e,
	0x08fc2806e,
	0x000000027,
	0x000a2202b,
	0x010800005,
	0x000000027,
	0x024a20001,
	0x0afc28022,
	0x0afc2803e,
	0x020040025,
	0x0a0a40000,
	0x023bd0004,


@@ 4187,14 4317,14 @@ ulong bootcode[]={
	0x023a20034,
	0x0e7a10004,
	0x0e7a00008,
	0x00c0016fe,
	0x00c001780,
	0x0afa2000c,
	0x08fa20034,
	0x04444f800,
	0x044821000,
	0x034850003,
	0x0c7c5807a,
	0x0c7c4807e,
	0x0c7c58076,
	0x0c7c4807a,
	0x0468010a1,
	0x046241002,
	0x038a50002,


@@ 4210,7 4340,7 @@ ulong bootcode[]={
	0x000023043,
	0x0afa60030,
	0x000061023,
	0x00c0016a3,
	0x00c001725,
	0x0afa20004,
	0x0c7a30048,
	0x0c7a2004c,


@@ 4222,7 4352,7 @@ ulong bootcode[]={
	0x08fa30034,
	0x000000027,
	0x000431023,
	0x00c0016a3,
	0x00c001725,
	0x0afa20004,
	0x08fad00b4,
	0x023ae0078,


@@ 4245,7 4375,7 @@ ulong bootcode[]={
	0x08fa30034,
	0x000000027,
	0x000431023,
	0x00c0016a3,
	0x00c001725,
	0x0afa20004,
	0x08fad00b4,
	0x08fac00ac,


@@ 4254,10 4384,10 @@ ulong bootcode[]={
	0x0c7a2003c,
	0x000000027,
	0x046201182,
	0x00800148a,
	0x00800150c,
	0x023ae0078,
	0x0c7c18082,
	0x0c7c08086,
	0x0c7c1807e,
	0x0c7c08082,
	0x000000027,
	0x04626003e,
	0x000000027,


@@ 4271,7 4401,7 @@ ulong bootcode[]={
	0x08fa30034,
	0x000000027,
	0x000431023,
	0x00c0016a3,
	0x00c001725,
	0x0afa20004,
	0x08fad00b4,
	0x08fac00ac,


@@ 4280,7 4410,7 @@ ulong bootcode[]={
	0x0c7a2003c,
	0x000000027,
	0x046201182,
	0x0080014a1,
	0x008001523,
	0x023ae0078,
	0x02003fc18,
	0x015830002,


@@ 4315,7 4445,7 @@ ulong bootcode[]={
	0x0200cffff,
	0x0afac00ac,
	0x0200d0065,
	0x00800144f,
	0x0080014d1,
	0x0afad00b4,
	0x0c7a70048,
	0x0c7a6004c,


@@ 4329,7 4459,7 @@ ulong bootcode[]={
	0x08fa30034,
	0x02002ffff,
	0x000431023,
	0x00c0016a3,
	0x00c001725,
	0x0afa20004,
	0x08fad00b4,
	0x023ae0078,


@@ 4351,7 4481,7 @@ ulong bootcode[]={
	0x000671823,
	0x004600137,
	0x0afa7002c,
	0x00c0016a3,
	0x00c001725,
	0x0afa30004,
	0x0c7a30040,
	0x0c7a20044,


@@ 4360,7 4490,7 @@ ulong bootcode[]={
	0x046201083,
	0x0e7a30004,
	0x0e7a20008,
	0x00c001661,
	0x00c0016e3,
	0x000000027,
	0x08fad00b4,
	0x023ae0078,


@@ 4421,7 4551,7 @@ ulong bootcode[]={
	0x000042603,
	0x02484fff6,
	0x0a0440001,
	0x008001530,
	0x0080015b2,
	0x024c6ffff,
	0x010e00007,
	0x0200b0001,


@@ 4489,7 4619,7 @@ ulong bootcode[]={
	0x020030030,
	0x0a0430000,
	0x024e7ffff,
	0x00800157b,
	0x0080015fd,
	0x024c60001,
	0x019000013,
	0x000000027,


@@ 4509,7 4639,7 @@ ulong bootcode[]={
	0x0256b0001,
	0x0a0430000,
	0x02508ffff,
	0x00800158c,
	0x00800160e,
	0x024c60001,
	0x08fa300b0,
	0x000000027,


@@ 4538,7 4668,7 @@ ulong bootcode[]={
	0x0afa30008,
	0x0afa2000c,
	0x08fa300b0,
	0x00c001259,
	0x00c0012db,
	0x0afa30010,
	0x08fa20000,
	0x023bd00a0,


@@ 4594,19 4724,19 @@ ulong bootcode[]={
	0x000001810,
	0x024630030,
	0x0a0430000,
	0x0080015b3,
	0x008001635,
	0x024c60001,
	0x000061825,
	0x001231021,
	0x02003002b,
	0x0a0430000,
	0x0080015d4,
	0x008001656,
	0x024c60001,
	0x000061025,
	0x001221821,
	0x020020065,
	0x0a0620000,
	0x0080015ca,
	0x00800164c,
	0x024c60001,
	0x020030067,
	0x011a30006,


@@ 4614,7 4744,7 @@ ulong bootcode[]={
	0x020030068,
	0x011a30003,
	0x000000027,
	0x0080015ad,
	0x00800162f,
	0x000000027,
	0x024c7ffff,
	0x004e00006,


@@ 4634,11 4764,11 @@ ulong bootcode[]={
	0x000000027,
	0x01107ff93,
	0x000073025,
	0x0080015ad,
	0x00800162f,
	0x024c60001,
	0x008001612,
	0x008001694,
	0x02508ffff,
	0x00800160a,
	0x00800168c,
	0x024e7ffff,
	0x08fa30034,
	0x02002ffff,


@@ 4648,7 4778,7 @@ ulong bootcode[]={
	0x000003825,
	0x08fa30034,
	0x0200d0068,
	0x008001568,
	0x0080015ea,
	0x001835023,
	0x08fa200b0,
	0x000000027,


@@ 4659,17 4789,17 @@ ulong bootcode[]={
	0x001221821,
	0x02002002b,
	0x0a0620000,
	0x008001559,
	0x0080015db,
	0x024c60001,
	0x0c7c38082,
	0x0c7c28086,
	0x0c7c3807e,
	0x0c7c28082,
	0x000000027,
	0x046223182,
	0x0e7a70040,
	0x0e7a60044,
	0x0e7a70004,
	0x0e7a60008,
	0x00c001661,
	0x00c0016e3,
	0x000000027,
	0x08fad00b4,
	0x023ae0078,


@@ 4695,14 4825,14 @@ ulong bootcode[]={
	0x046222181,
	0x0e7a70040,
	0x0e7a60044,
	0x008001527,
	0x0080015a9,
	0x000000027,
	0x0080014c4,
	0x008001546,
	0x0258cffff,
	0x020020001,
	0x0afa20014,
	0x025ad0020,
	0x00800144f,
	0x0080014d1,
	0x0afad00b4,
	0x023bdffe8,
	0x0afbf0000,


@@ 4719,7 4849,7 @@ ulong bootcode[]={
	0x04624c081,
	0x0e7a30004,
	0x0e7a20008,
	0x00c00174c,
	0x00c0017ce,
	0x0afa2000c,
	0x04620c032,
	0x000000027,


@@ 4748,7 4878,7 @@ ulong bootcode[]={
	0x023a2001c,
	0x0e7a30004,
	0x0e7a20008,
	0x00c00174c,
	0x00c0017ce,
	0x0afa2000c,
	0x0c7a1001c,
	0x0c7a00020,


@@ 4764,7 4894,7 @@ ulong bootcode[]={
	0x04624c081,
	0x0e7a30004,
	0x0e7a20008,
	0x00c001661,
	0x00c0016e3,
	0x000000027,
	0x08fa20000,
	0x023bd000c,


@@ 4777,7 4907,7 @@ ulong bootcode[]={
	0x004810008,
	0x000000027,
	0x000041023,
	0x00c0016a3,
	0x00c001725,
	0x0afa20004,
	0x08fa20000,
	0x023bd0014,


@@ 4787,7 4917,7 @@ ulong bootcode[]={
	0x01060000a,
	0x000000027,
	0x000041880,
	0x023c28026,
	0x023c28046,
	0x000621821,
	0x08c630000,
	0x08fa20000,


@@ 4798,12 4928,12 @@ ulong bootcode[]={
	0x000042843,
	0x0afa50010,
	0x000851823,
	0x00c0016a3,
	0x00c001725,
	0x0afa30004,
	0x0e7a10008,
	0x0e7a0000c,
	0x08fa20010,
	0x00c0016a3,
	0x00c001725,
	0x0afa20004,
	0x0c7a30008,
	0x0c7a2000c,


@@ 4994,7 5124,7 @@ ulong bootcode[]={
	0x08fa4000c,
	0x000000027,
	0x000821024,
	0x00800176d,
	0x0080017ef,
	0x0afa2000c,
	0x023bdfffc,
	0x08fa30010,


@@ 5105,7 5235,7 @@ ulong bootcode[]={
	0x000000027,
	0x0a0c8ffff,
	0x024c6ffff,
	0x0080017ec,
	0x00800186e,
	0x024e7ffff,
	0x000000000,
	0x000000000,


@@ 5114,6 5244,14 @@ ulong bootcode[]={
	0x000000000,
	0x000000000,
	0x000000000,
	0x062616420,
	0x074797065,
	0x03a202564,
	0x00a006261,
	0x064207479,
	0x070653a20,
	0x025640a00,
	0x000000000,
	0x000000000,
	0x000000000,
	0x000000001,


@@ 5127,15 5265,6 @@ ulong bootcode[]={
	0x005f5e100,
	0x03b9aca00,
	0x000000000,
	0x000000007,
	0x000000000,
	0x062616420,
	0x074797065,
	0x03a202564,
	0x00a006261,
	0x064207479,
	0x070653a20,
	0x025640a00,
	0x000000000,
	0x03fd34413,
	0x055475a32,


@@ 5143,6 5272,7 @@ ulong bootcode[]={
	0x000000000,
	0x000000000,
	0x000000000,
	0x000000007,
	0x000000000,
	0x000000000,
	0x000000000,


@@ 5155,16 5285,16 @@ ulong bootcode[]={
	0x061747573,
	0x000000000,
	0x000000000,
	0x000006184,
	0x000006189,
	0x00000619e,
	0x0000061a5,
	0x0000061ba,
	0x0000061c0,
	0x0000061d5,
	0x0000061dd,
	0x0000061f2,
	0x0000061f6,
	0x000007204,
	0x000007209,
	0x00000721e,
	0x000007225,
	0x00000723a,
	0x000007240,
	0x000007255,
	0x00000725d,
	0x000007272,
	0x000007276,
	0x000000000,
	0x000000000,
	0x07072696e,


@@ 5174,13 5304,45 @@ ulong bootcode[]={
	0x000000000,
	0x0001fffff,
	0x07fffffff,
	0x000004eb0,
	0x000004fcc,
	0x0000049c4,
	0x0000050a8,
	0x000004efc,
	0x000004f44,
	0x000004f94,
	0x000000000,
	0x000000000,
	0x000000000,
	0x000000000,
	0x000000000,
	0x000000000,
	0x000000000,
	0x000000000,
	0x000000001,
	0x000060000,
	0x000000001,
	0x000010000,
	0x000000000,
	0x000000000,
	0x000000000,
	0x000000000,
	0x000000000,
	0x000030003,
	0x000000000,
	0x000000000,
	0x000000000,
	0x000000000,
	0x002000000,
	0x000000000,
	0x000000004,
	0x002030303,
	0x001000000,
	0x001000002,
	0x000000005,
	0x000010000,
	0x002000000,
	0x000000000,
	0x0000050b8,
	0x0000051d4,
	0x000004bcc,
	0x0000052b0,
	0x000005104,
	0x00000514c,
	0x00000519c,
	0x000000000,
	0x000000000,
	0x000000000,


@@ 5360,187 5522,189 @@ ulong bootcode[]={
	0x063742025,
	0x07300646b,
	0x000236b64,
	0x06b007365,
	0x072766572,
	0x000626974,
	0x02100646b,
	0x021006e6f,
	0x06e657421,
	0x00063616e,
	0x027742063,
	0x06f6e6e65,
	0x063742c20,
	0x072657472,
	0x079696e67,
	0x06b002f64,
	0x065760000,
	0x0006d6f75,
	0x06e74002f,
	0x06465762f,
	0x06d697073,
	0x02f62696e,
	0x02f686f74,
	0x0726f6462,
	0x06f6f7400,
	0x0686f7472,
	0x06f64626f,
	0x06f74002f,
	0x06465762f,
	0x0686f6262,
	0x069742f68,
	0x06f740065,
	0x07865636c,
	0x020686f74,
	0x0726f6462,
	0x06f6f7400,
	0x0666f726b,
	0x000736c65,
	0x065702033,
	0x020736563,
	0x06f6e6473,
	0x00a00676f,
	0x020666f72,
	0x02069742e,
	0x02e2e2e0a,
	0x00063616e,
	0x027742063,
	0x06f6e6e65,
	0x063740a00,
	0x06e6f702e,
	0x02e2e006e,
	0x0203d2025,
	0x0640a0077,
	0x072697465,
	0x0206e6f70,
	0x000726561,
	0x064206e6f,
	0x070006e20,
	0x00023482f,
	0x0686f7472,
	0x06f64006e,
	0x06f702e2e,
	0x02e006e20,
	0x03d202564,
	0x03b206275,
	0x066203d20,
	0x00a007772,
	0x069746520,
	0x06e6f7000,
	0x072656164,
	0x0206e6f70,
	0x0006e203d,
	0x02025643b,
	0x020627566,
	0x0203d2025,
	0x02e327820,
	0x0252e3278,
	0x020252e32,
	0x07820252e,
	0x032782025,
	0x02e32780a,
	0x000666f72,
	0x06d617420,
	0x032780a00,
	0x0666f726d,
	0x06174206e,
	0x06f70006e,
	0x06f742052,
	0x06e6f7000,
	0x074616720,
	0x06e6f7420,
	0x0526e6f70,
	0x000746167,
	0x0206e6f74,
	0x0207e3000,
	0x07e300073,
	0x065737369,
	0x06f6e2e2e,
	0x02e007772,
	0x069746520,
	0x073657373,
	0x0696f6e2e,
	0x02e2e0077,
	0x072697465,
	0x0696f6e00,
	0x072656164,
	0x020736573,
	0x073696f6e,
	0x000726561,
	0x064207365,
	0x07373696f,
	0x06e00666f,
	0x0726d6174,
	0x020736573,
	0x073696f6e,
	0x000746167,
	0x0206e6f74,
	0x0207e3000,
	0x0626f6f74,
	0x03a206572,
	0x0726f7220,
	0x025730a00,
	0x000666f72,
	0x06d617420,
	0x073657373,
	0x0696f6e00,
	0x074616720,
	0x06e6f7420,
	0x052736573,
	0x073696f6e,
	0x000706f73,
	0x0742e2e2e,
	0x07e300062,
	0x06f6f743a,
	0x020657272,
	0x06f722025,
	0x0730a006e,
	0x06f742052,
	0x073657373,
	0x0696f6e00,
	0x073657276,
	0x065720062,
	0x069742100,
	0x0686f7421,
	0x000646b21,
	0x0006e6f6e,
	0x065742100,
	0x063616e27,
	0x07420636f,
	0x06e6e6563,
	0x0742c2072,
	0x065747279,
	0x0696e672e,
	0x02e2e0a00,
	0x063616e27,
	0x07420636f,
	0x06e6e6563,
	0x0740a0070,
	0x06f73742e,
	0x02e2e0023,
	0x0732f2573,
	0x000637265,
	0x061746500,
	0x025640077,
	0x072697465,
	0x00023732f,
	0x025730063,
	0x072656174,
	0x065002564,
	0x000777269,
	0x074650023,
	0x0732f626f,
	0x06f740063,
	0x072656174,
	0x065002564,
	0x000777269,
	0x07465006d,
	0x0626f6f74,
	0x000637265,
	0x061746500,
	0x025640077,
	0x072697465,
	0x0006d6f75,
	0x06e742e2e,
	0x02e002f00,
	0x02f006269,
	0x06e64002f,
	0x00000006d,
	0x06f756e74,
	0x02e2e2e00,
	0x02f002f00,
	0x00074696d,
	0x0652e2e2e,
	0x0002f2e2e,
	0x000737461,
	0x074002363,
	0x02f74696d,
	0x06500256c,
	0x064007375,
	0x063636573,
	0x0730a002f,
	0x06e65742f,
	0x02573002f,
	0x06e65742f,
	0x06e657400,
	0x02f6c6962,
	0x02f6e6574,
	0x061646472,
	0x02e257300,
	0x062696e64,
	0x0002f0000,
	0x0006d6f75,
	0x06e740074,
	0x0696d652e,
	0x02e2e002f,
	0x02e2e0073,
	0x074617400,
	0x023632f74,
	0x0696d6500,
	0x0256c6400,
	0x073756363,
	0x06573730a,
	0x0002f6e65,
	0x0742f2573,
	0x0002f6e65,
	0x0742f6e65,
	0x074002f6c,
	0x069622f6e,
	0x065746164,
	0x064722e25,
	0x073006269,
	0x06e64696e,
	0x067202573,
	0x0206f6e74,
	0x06f202f6c,
	0x069622f6e,
	0x065746164,
	0x064722e6e,
	0x065740a00,
	0x0696e6720,
	0x02573206f,
	0x06e746f20,
	0x02f6c6962,
	0x02f6e6574,
	0x061646472,
	0x02e6e6574,
	0x0002f6d69,
	0x070732f69,
	0x06e697400,
	0x00a002f6c,
	0x069622f6e,
	0x065746164,
	0x064722e6e,
	0x06574002f,
	0x06d697073,
	0x02f696e69,
	0x07400696e,
	0x06974002d,
	0x06d002f6d,
	0x06970732f,
	0x0696e6974,
	0x000696e69,
	0x074002f6d,
	0x06970732f,
	0x0696e6974,
	0x0002d6d00,
	0x02f6d6970,
	0x0732f696e,
	0x069740069,
	0x06e697400,
	0x02f6d6970,
	0x0732f696e,
	0x069740062,
	0x06f6f743a,
	0x02025733a,
	0x02025730a,
	0x000626f6f,
	0x0743a2025,
	0x0733a2025,
	0x0730a0025,
	0x0735b2573,
	0x05d3a2000,
	0x063616e27,
	0x074207265,
	0x061642023,
	0x0632f636f,
	0x06e733b20,
	0x0706c6561,
	0x073652072,
	0x065626f6f,
	0x074000000,
	0x000000000,
	0x000000000,
	0x000000000,
	0x000000000,
	0x000000000,
	0x000000000,
	0x000000000,
	0x000000000,
	0x000000001,
	0x000060000,
	0x000000001,
	0x000010000,
	0x000000000,
	0x000000000,
	0x000000000,
	0x000000000,
	0x000000000,
	0x000030003,
	0x000000000,
	0x000000000,
	0x000000000,
	0x000000000,
	0x002000000,
	0x000000000,
	0x000000004,
	0x002030303,
	0x001000000,
	0x001000002,
	0x000000005,
	0x000010000,
	0x002000000,
	0x0730a0062,
	0x06f6f743a,
	0x02025733a,
	0x02025730a,
	0x00025735b,
	0x025735d3a,
	0x020006361,
	0x06e277420,
	0x072656164,
	0x02023632f,
	0x0636f6e73,
	0x03b20706c,
	0x065617365,
	0x020726562,
	0x06f6f7400,
	0x000000000,
	0x000000000,
	0x00005690,
	0x00005920,
	0x0,
	0x00005690,
	0x00005920,
	0x0,
};

M power/devhotrod.c => power/devhotrod.c +15 -7
@@ 15,7 15,7 @@ void	mem(Hot*, ulong*, ulong);
/*
 * If set, causes data transfers to have checksums
 */
#define	ENABCKSUM	1
#define	ENABCKSUM	0

typedef struct Hotrod	Hotrod;
typedef struct HotQ	HotQ;


@@ 70,15 70,23 @@ enum{
void
hotsend(Hotrod *h, Hotmsg *m)
{
	Hotmsg **mp;
	long l;

/* print("hotsend send %d %d %lux %lux\n", h->wi, m->cmd, m, m->param[0]); /**/
	h->wq->msg[h->wi] = (Hotmsg*)MP2VME(m);
	do
		delay(1);
	while(h->wq->msg[h->wi]);
/* print("hotsend done\n"); /**/
	mp = &h->wq->msg[h->wi];
	*mp = (Hotmsg*)MP2VME(m);
	h->wi++;
	if(h->wi >= NhotQ)
		h->wi = 0;
	l = 0;
	while(*mp){
		delay(0);	/* just a subroutine call; stay off VME */
		if(++l > 1000*1000){
			l = 0;
			print("hotsend blocked\n");
		}
	}
}

/*


@@ 360,7 368,7 @@ hotrodwrite(Chan *c, void *buf, long n)
			qunlock(hp);
		}else{
			/*
			 *  use hotrod buffer.  lock the buffer till the reply
			 *  use hotrod buffer.  lock the buffer until the reply
			 */
			mp = &u->uhot;
			qlock(&hp->buflock);