~kris/9p

9hist

4a8bb339f47d7ec42336fe4aa7a89578b098c9db — David du Colombier 36 years ago 44144f2
Plan 9 from Bell Labs 1990-09-18
9 files changed, 1190 insertions(+), 1100 deletions(-)

M gnot/boot.c
M gnot/boot.h
M gnot/dat.h
M gnot/devcons.c
M gnot/fault.c
M gnot/main.c
M gnot/sysfile.c
M gnot/sysproc.c
M port/sysfile.c
M gnot/boot.c => gnot/boot.c +13 -4
@@ 7,6 7,7 @@ Fcall	hdr;
char	buf[100];
char	bootline[64];
char	bootdevice;
char	bootserver[64];

void	error(char*);
void	sendmsg(int, char*);


@@ 14,7 15,7 @@ void	sendmsg(int, char*);
main(int argc, char *argv[])
{
	int cfd, fd, n, fu, f;
	char buf[NAMELEN];
	char buf[256];
	int p[2];

	open("#c/cons", OREAD);


@@ 26,12 27,17 @@ main(int argc, char *argv[])
		read(fd, bootline, sizeof bootline);
		close(fd);
	}

	fd = open("#e/bootdevice", OREAD);
	if(fd >= 0){
		read(fd, &bootdevice, 1);
		close(fd);
	}
	fd = open("#e/bootserver", OREAD);
	if(fd >= 0){
		read(fd, bootserver, 64);
		close(fd);
	} else
		strcpy(bootserver, "nfs");

	switch(bootdevice){
	case 'a':


@@ 88,8 94,9 @@ main(int argc, char *argv[])
	cfd = open("#k/2/ctl", 2);
	if(cfd < 0)
		error("opening #k/2/ctl");
	sendmsg(cfd, "connect nfs");
	print("connected to helix.bootfs\n");
	sprint(buf, "connect %s", bootserver);
	sendmsg(cfd, buf);
	print("connected to %s\n", bootserver);
	close(cfd);

	/*


@@ 101,6 108,8 @@ main(int argc, char *argv[])
	if(write(fd, buf, n) != n)
		error("write nop");
	n = read(fd, buf, sizeof buf);
	if(n==2 && buf[0]=='O' && buf[1]=='K')
		n = read(fd, buf, sizeof buf);
	if(n <= 0)
		error("read nop");
	if(convM2S(buf, &hdr, n) == 0) {

M gnot/boot.h => gnot/boot.h +1113 -1072
@@ 1,8 1,8 @@
ulong bootcode[]={
	0x000000107,
	0x000002356,
	0x00000043c,
	0x000000170,
	0x0000023f4,
	0x000000444,
	0x0000001b0,
	0x000000000,
	0x000002020,
	0x000000000,


@@ 13,313 13,348 @@ ulong bootcode[]={
	0x000142f2f,
	0x00014610c,
	0x02f006100,
	0x005604fef,
	0x005ec4fef,
	0x0001c4e75,
	0x04fefffc8,
	0x04feffee4,
	0x042a7486e,
	0x081366100,
	0x023124878,
	0x081166100,
	0x023b04878,
	0x00001486e,
	0x0813e6100,
	0x023064878,
	0x0811e6100,
	0x023a44878,
	0x00001486e,
	0x081466100,
	0x022fa42a7,
	0x0486e814e,
	0x0610022f0,
	0x081266100,
	0x0239842a7,
	0x0486e812e,
	0x06100238e,
	0x04a806d1e,
	0x048780040,
	0x0486e856e,
	0x0486e85b6,
	0x02f002f40,
	0x0005c6100,
	0x022e02f2f,
	0x0005c6100,
	0x022ae4fef,
	0x001406100,
	0x0237e2f2f,
	0x001406100,
	0x0234c4fef,
	0x0001042a7,
	0x0486e815a,
	0x0610022c4,
	0x024006d1e,
	0x0486e813a,
	0x061002362,
	0x04a806d1e,
	0x048780001,
	0x0486e8002,
	0x02f022f42,
	0x000646100,
	0x022b42f2f,
	0x000646100,
	0x022824fef,
	0x00010102e,
	0x0800249c0,
	0x04fef0028,
	0x07261b200,
	0x0670003de,
	0x048780002,
	0x0486e819a,
	0x061002284,
	0x02f40003c,
	0x04aaf003c,
	0x0508f6c0a,
	0x0486e81a1,
	0x061000428,
	0x0588f486e,
	0x081b02f2f,
	0x000386100,
	0x003ea486e,
	0x081bb2f2f,
	0x000406100,
	0x003de6100,
	0x022464fef,
	0x0001072ff,
	0x0b2806700,
	0x003904281,
	0x0b2806700,
	0x0037a2f2f,
	0x000346100,
	0x02212588f,
	0x02f002f40,
	0x001486100,
	0x023522f2f,
	0x001486100,
	0x023204fef,
	0x0001042a7,
	0x0486e8148,
	0x061002336,
	0x04a806d00,
	0x004944878,
	0x00040486e,
	0x084ca2f00,
	0x02f400150,
	0x061002324,
	0x02f2f0150,
	0x0610022f2,
	0x0102e8002,
	0x049c04fef,
	0x000407261,
	0x0b2006700,
	0x0042e4878,
	0x00002486e,
	0x0818c6100,
	0x022f82f40,
	0x001204aaf,
	0x00120508f,
	0x06c0a486e,
	0x081936100,
	0x0048a588f,
	0x0486e81a2,
	0x02f2f011c,
	0x06100044c,
	0x0486e81ad,
	0x02f2f0124,
	0x061000440,
	0x0610022ba,
	0x04fef0010,
	0x072ffb280,
	0x0670003e0,
	0x04281b280,
	0x0670003ca,
	0x02f2f0118,
	0x061002286,
	0x0588f4878,
	0x00002486e,
	0x081c36100,
	0x0229c4a80,
	0x042e72f40,
	0x0011e44df,
	0x06c0a486e,
	0x081cd6100,
	0x0042e588f,
	0x048780002,
	0x0486e81d1,
	0x061002228,
	0x0486e81df,
	0x06100227a,
	0x04a8042e7,
	0x02f40003a,
	0x02f40012a,
	0x044df6c0a,
	0x0486e81db,
	0x0610003cc,
	0x0588f4878,
	0x00002486e,
	0x081ed6100,
	0x022062f40,
	0x000444aaf,
	0x000446c0a,
	0x0486e81f6,
	0x0610003ac,
	0x0486e81e8,
	0x06100040c,
	0x0588f486e,
	0x082072f2f,
	0x000486100,
	0x0036e486e,
	0x082136100,
	0x004662f2f,
	0x000506100,
	0x021b2486e,
	0x0822e6100,
	0x00456422e,
	0x08526486f,
	0x0002c486e,
	0x085266100,
	0x012222f00,
	0x02f40005c,
	0x0486f0038,
	0x02f2f0064,
	0x0610021be,
	0x0b0af0064,
	0x084ca486e,
	0x081f9486f,
	0x000206100,
	0x0059a486f,
	0x000242f2f,
	0x001386100,
	0x003be486e,
	0x084ca486e,
	0x082046100,
	0x004b22f2f,
	0x001446100,
	0x02210486e,
	0x082156100,
	0x004a2422e,
	0x0856e486f,
	0x0003c486e,
	0x0856e6100,
	0x012802f00,
	0x02f400150,
	0x0486f0048,
	0x02f2f0158,
	0x06100221c,
	0x0b0af0158,
	0x0670a486e,
	0x082356100,
	0x00356588f,
	0x04878001c,
	0x0486f0044,
	0x02f2f0070,
	0x061002192,
	0x02f400070,
	0x04aaf0070,
	0x06e0a486e,
	0x0823f6100,
	0x00332588f,
	0x02f2f0070,
	0x0486e8526,
	0x0821c6100,
	0x003a2588f,
	0x048780100,
	0x0486f0054,
	0x061001972,
	0x04a806638,
	0x0102f005b,
	0x049c02f00,
	0x0102f005e,
	0x049c02f00,
	0x0102f0061,
	0x049c02f00,
	0x0102f0064,
	0x049c02f00,
	0x02f2f008c,
	0x0486e8248,
	0x0610003c0,
	0x0486e826b,
	0x0610002e8,
	0x04fef001c,
	0x00c2e0001,
	0x08526670a,
	0x0486e8276,
	0x0610002d4,
	0x0588f486e,
	0x0827f6100,
	0x0039a1d7c,
	0x000028526,
	0x01d7c0076,
	0x08530486f,
	0x0005c486e,
	0x085266100,
	0x0115e2f00,
	0x02f40008c,
	0x0486f0068,
	0x02f2f0094,
	0x0610020fa,
	0x0b0af0094,
	0x0670a486e,
	0x0828a6100,
	0x00292588f,
	0x04878001c,
	0x0486f0074,
	0x02f2f00a0,
	0x0610020ce,
	0x02f4000a0,
	0x04aaf00a0,
	0x06e0a486e,
	0x082986100,
	0x0026e588f,
	0x02f2f00a0,
	0x0486e8526,
	0x0486f0084,
	0x0610018ae,
	0x04a80660a,
	0x0486e82a5,
	0x061000250,
	0x0588f0c2e,
	0x000038526,
	0x02f2f0164,
	0x0610021f0,
	0x024007002,
	0x0b082660a,
	0x00c2f004f,
	0x0005c6700,
	0x002cc4a82,
	0x042e72f42,
	0x0016644df,
	0x06e0e486e,
	0x082266100,
	0x0036a242f,
	0x00168588f,
	0x02f02486e,
	0x0856e486f,
	0x000646100,
	0x019ba4a80,
	0x06638102f,
	0x0006b49c0,
	0x02f00102f,
	0x0006e49c0,
	0x02f00102f,
	0x0007149c0,
	0x02f00102f,
	0x0007449c0,
	0x02f002f2f,
	0x00180486e,
	0x0822f6100,
	0x003f6486e,
	0x082526100,
	0x0031e4fef,
	0x0001c0c2e,
	0x00001856e,
	0x0670a486e,
	0x082b46100,
	0x0023e588f,
	0x04a6e852a,
	0x0671c302e,
	0x0852a48c0,
	0x02f00486e,
	0x082c16100,
	0x002f6486e,
	0x082cb6100,
	0x0021e4fef,
	0x0000c486e,
	0x082d86100,
	0x002e2486e,
	0x082e6486e,
	0x082e0486f,
	0x0825d6100,
	0x0030a588f,
	0x0486e8266,
	0x0610003d0,
	0x01d7c0002,
	0x0856e1d7c,
	0x000768578,
	0x0486f006c,
	0x0486e856e,
	0x0610011a6,
	0x02f002f40,
	0x00180486f,
	0x000782f2f,
	0x001886100,
	0x02142b0af,
	0x00188670a,
	0x0486e8271,
	0x0610002c8,
	0x0588f4878,
	0x00100486f,
	0x000842f2f,
	0x001946100,
	0x021162f40,
	0x001944aaf,
	0x001946e0a,
	0x0486e827f,
	0x0610002a4,
	0x0588f2f2f,
	0x00194486e,
	0x0856e486f,
	0x000946100,
	0x003a24878,
	0x001b64878,
	0x00001486f,
	0x000a06100,
	0x0201c4a80,
	0x042e72f40,
	0x000c244df,
	0x06c0a486e,
	0x082ed6100,
	0x001de588f,
	0x02f2f00cc,
	0x0486e82f4,
	0x0486f00ac,
	0x06100036c,
	0x0486f00b0,
	0x061001052,
	0x0588f2f00,
	0x0486f00b4,
	0x02f2f00d4,
	0x06100200e,
	0x02f00486f,
	0x000c06100,
	0x01038588f,
	0x0221fb280,
	0x0670a486e,
	0x082f76100,
	0x0019a588f,
	0x02f2f00d8,
	0x061001fb4,
	0x0486e8303,
	0x0486e82fd,
	0x0486f00c8,
	0x061000320,
	0x018f64a80,
	0x0660a486e,
	0x0828c6100,
	0x00286588f,
	0x00c2e0003,
	0x0856e670a,
	0x0486e829b,
	0x061000274,
	0x0588f4a6e,
	0x08572671c,
	0x0302e8572,
	0x048c02f00,
	0x0486e82a8,
	0x06100032c,
	0x0486e82b2,
	0x061000254,
	0x04fef000c,
	0x0486e82bf,
	0x061000318,
	0x0486e82cd,
	0x0486e82c7,
	0x0486f00a4,
	0x0610003d8,
	0x0487801b6,
	0x048780001,
	0x0486e830a,
	0x061001f9a,
	0x0486f00b0,
	0x061002064,
	0x04a8042e7,
	0x02f4000f6,
	0x02f4001b6,
	0x044df6c0a,
	0x0486e8312,
	0x06100015c,
	0x0486e82d4,
	0x061000214,
	0x0588f2f2f,
	0x00100486e,
	0x08319486f,
	0x000e06100,
	0x002ea486f,
	0x000e46100,
	0x00fd0588f,
	0x001c0486e,
	0x082db486f,
	0x000bc6100,
	0x003a2486f,
	0x000c06100,
	0x0109a588f,
	0x02f00486f,
	0x000e82f2f,
	0x001086100,
	0x01f8c2f00,
	0x0486f00f4,
	0x061000fb6,
	0x000c42f2f,
	0x001c86100,
	0x020562f00,
	0x0486f00d0,
	0x061001080,
	0x0588f221f,
	0x0b280670a,
	0x0486e831c,
	0x061000118,
	0x0486e82de,
	0x0610001d0,
	0x0588f2f2f,
	0x0010c6100,
	0x01f32486e,
	0x083226100,
	0x001d642a7,
	0x0486e832d,
	0x0486e832b,
	0x061000f9e,
	0x04a806c0a,
	0x0486e832f,
	0x0610000ec,
	0x0588f486e,
	0x083364878,
	0x00006486e,
	0x083342f2f,
	0x001386100,
	0x01f184a80,
	0x001cc6100,
	0x01ffc486e,
	0x082ea486e,
	0x082e4486f,
	0x000d86100,
	0x003564878,
	0x001b64878,
	0x00001486e,
	0x082f16100,
	0x01fe24a80,
	0x042e72f40,
	0x001ea44df,
	0x06c0a486e,
	0x083376100,
	0x000ca588f,
	0x0486e833d,
	0x061000190,
	0x048780020,
	0x0486e856e,
	0x061000f1c,
	0x04a806720,
	0x042a7486e,
	0x08357486e,
	0x08352486e,
	0x083466100,
	0x00e66486e,
	0x0836b6100,
	0x000964fef,
	0x001644e75,
	0x082f96100,
	0x00192588f,
	0x02f2f01f4,
	0x0486e8300,
	0x0486f00f0,
	0x061000320,
	0x0486f00f4,
	0x061001018,
	0x0588f2f00,
	0x0486f00f8,
	0x02f2f01fc,
	0x061001fd4,
	0x02f00486f,
	0x001046100,
	0x00ffe588f,
	0x0221fb280,
	0x0670a486e,
	0x083036100,
	0x0014e588f,
	0x02f2f0200,
	0x061001f7a,
	0x0486e8309,
	0x06100020c,
	0x042a7486e,
	0x08366486e,
	0x0835a6100,
	0x00e4a598f,
	0x060e04879,
	0x00000ea60,
	0x061001ec8,
	0x0588f60f2,
	0x06000fc82,
	0x048780002,
	0x0486e8168,
	0x061001ea8,
	0x02f40003c,
	0x04aaf003c,
	0x06c08486e,
	0x08174614e,
	0x08314486e,
	0x083126100,
	0x00fe64a80,
	0x06c0a486e,
	0x083166100,
	0x00122588f,
	0x0486e831d,
	0x048780006,
	0x0486e831b,
	0x02f2f022c,
	0x061001f60,
	0x04a806c0a,
	0x0486e831e,
	0x061000100,
	0x0588f486e,
	0x081882f2f,
	0x000406112,
	0x0486e818f,
	0x02f2f0048,
	0x061084fef,
	0x000186000,
	0x0fc0e598f,
	0x083246100,
	0x001c64878,
	0x00020486e,
	0x085b66100,
	0x00f524a80,
	0x0672042a7,
	0x0486e833e,
	0x0486e8339,
	0x0486e832d,
	0x061000e9c,
	0x0486e8352,
	0x0610000cc,
	0x04fef0258,
	0x04e7542a7,
	0x0486e834d,
	0x0486e8341,
	0x061000e80,
	0x0598f60e0,
	0x00c2f004b,
	0x0005d6600,
	0x0fd2e4878,
	0x00100486f,
	0x000602f2f,
	0x001706100,
	0x01efa2400,
	0x04fef000c,
	0x06000fd14,
	0x048790000,
	0x0ea606100,
	0x01eec588f,
	0x060f26000,
	0x0fc324878,
	0x00002486e,
	0x0815a6100,
	0x01ecc2f40,
	0x001204aaf,
	0x001206c08,
	0x0486e8166,
	0x06160588f,
	0x0486e817a,
	0x02f2f0124,
	0x06124486e,
	0x081812f2f,
	0x0012c611a,
	0x04fef0018,
	0x06000fbbe,
	0x0486e8156,
	0x0486e84ca,
	0x061000ec6,
	0x0518f6000,
	0x0fb78598f,
	0x02f2f000c,
	0x061000eb6,
	0x061000ec8,
	0x02f002f40,
	0x000082f2f,
	0x000142f2f,
	0x000146100,
	0x01e70b0af,
	0x01e82b0af,
	0x000106708,
	0x02f2f001c,
	0x06108588f,


@@ 327,10 362,10 @@ ulong bootcode[]={
	0x04e754fef,
	0x0ffc04857,
	0x042a76100,
	0x01e26486f,
	0x01e38486f,
	0x000082f2f,
	0x00050486e,
	0x083774878,
	0x0835e4878,
	0x000026100,
	0x0011a42a7,
	0x061744fef,


@@ 338,10 373,10 @@ ulong bootcode[]={
	0x0598f4281,
	0x07021b081,
	0x06f1e4ab6,
	0x01d20843e,
	0x01d208446,
	0x0660e2daf,
	0x000081d20,
	0x0843e7001,
	0x084467001,
	0x0588f4e75,
	0x052817021,
	0x0b0816ee2,


@@ 351,30 386,30 @@ ulong bootcode[]={
	0x042827021,
	0x0b0826f18,
	0x020362d20,
	0x0843eb088,
	0x08446b088,
	0x0660642b6,
	0x02d20843e,
	0x02d208446,
	0x052827021,
	0x0b0826ee8,
	0x0588f4e75,
	0x04aaf0004,
	0x0660642a7,
	0x0610c588f,
	0x0486e8426,
	0x0486e838e,
	0x06104588f,
	0x04e75518f,
	0x072204a81,
	0x06d222eb6,
	0x01d20843e,
	0x01d208446,
	0x04a976712,
	0x02f410004,
	0x042b61d20,
	0x0843e4eb7,
	0x084464eb7,
	0x00151222f,
	0x000045381,
	0x04a816cde,
	0x02f2f000c,
	0x061001d56,
	0x061001d68,
	0x04fef000c,
	0x04e754fef,
	0x0eff841ef,


@@ 390,7 425,7 @@ ulong bootcode[]={
	0x092882f01,
	0x0486f001c,
	0x048780001,
	0x061001d52,
	0x061001d64,
	0x0240042e7,
	0x02f40001e,
	0x044df6c1a,


@@ 416,7 451,7 @@ ulong bootcode[]={
	0x092882f01,
	0x0486f001c,
	0x02f2f1024,
	0x061001cea,
	0x061001cfc,
	0x0240042e7,
	0x02f40001e,
	0x044df6c1a,


@@ 689,7 724,7 @@ ulong bootcode[]={
	0x070012640,
	0x060d4518f,
	0x02f2f000c,
	0x0610008da,
	0x0610008ec,
	0x0262f0014,
	0x0266f0010,
	0x0246f0018,


@@ 1210,7 1245,7 @@ ulong bootcode[]={
	0x000045888,
	0x02f082f2f,
	0x000086100,
	0x01060508f,
	0x01072508f,
	0x04e75518f,
	0x0f22f543a,
	0x0000cf293,


@@ 1256,76 1291,31 @@ ulong bootcode[]={
	0x04e754a18,
	0x066fc2008,
	0x053804e75,
	0x0226f0004,
	0x04a19670c,
	0x024494a19,
	0x066fc93ca,
	0x020094e75,
	0x070004e75,
	0x070024e40,
	0x04e75598f,
	0x0246f0004,
	0x0226f0008,
	0x0206f000c,
	0x010d11011,
	0x049c04201,
	0x0b0016d00,
	0x005f07227,
	0x0b0016e00,
	0x005e83036,
	0x00b208386,
	0x04efb0000,
	0x0200890af,
	0x0000c588f,
	0x04e753029,
	0x000021080,
	0x030290002,
	0x048c0e080,
	0x011400001,
	0x054883029,
	0x000041080,
	0x030290004,
	0x048c0e080,
	0x011400001,
	0x054882029,
	0x0000a1080,
	0x02029000a,
	0x0e0801140,
	0x000015488,
	0x060ba3029,
	0x000021080,
	0x030290002,
	0x048c0e080,
	0x011400001,
	0x054882029,
	0x000061080,
	0x020290006,
	0x0e0801140,
	0x000012029,
	0x000067210,
	0x0e2a01140,
	0x000022029,
	0x000067218,
	0x0e2a01140,
	0x000034228,
	0x000044228,
	0x000054228,
	0x000064228,
	0x000075088,
	0x02029000a,
	0x010802029,
	0x0000ae080,
	0x011400001,
	0x054885288,
	0x02f29000a,
	0x02f29000e,
	0x02f082f48,
	0x0000c6100,
	0x00df2206f,
	0x0000c2037,
	0x001620014,
	0x0000ad1c0,
	0x04fef000c,
	0x06000ff32,
	0x014d966fc,
	0x0202f0004,
	0x04e75226f,
	0x000044a19,
	0x0670c2449,
	0x04a1966fc,
	0x093ca2009,
	0x04e757000,
	0x04e757002,
	0x04e404e75,
	0x0598f226f,
	0x00008206f,
	0x0000c10d1,
	0x0101149c0,
	0x04201b001,
	0x06d0005f0,
	0x07227b001,
	0x06e0005e8,
	0x030360b20,
	0x083a64efb,
	0x000002008,
	0x090af000c,
	0x0588f4e75,
	0x030290002,
	0x010803029,
	0x0000248c0,


@@ 1340,17 1330,7 @@ ulong bootcode[]={
	0x010802029,
	0x0000ae080,
	0x011400001,
	0x054885288,
	0x02f29000a,
	0x02f29000e,
	0x02f082f48,
	0x0000c6100,
	0x00d8e206f,
	0x0000c2037,
	0x001620014,
	0x0000ad1c0,
	0x04fef000c,
	0x06000fece,
	0x0548860ba,
	0x030290002,
	0x010803029,
	0x0000248c0,


@@ 1375,37 1355,67 @@ ulong bootcode[]={
	0x02029000a,
	0x0e0801140,
	0x000015488,
	0x06000fe6a,
	0x052882f29,
	0x0000a2f29,
	0x0000e2f08,
	0x02f48000c,
	0x061000df2,
	0x0206f000c,
	0x020370162,
	0x00014000a,
	0x0d1c04fef,
	0x0000c6000,
	0x0ff323029,
	0x000021080,
	0x030290002,
	0x010803029,
	0x0000248c0,
	0x0e0801140,
	0x000015488,
	0x048c0e080,
	0x011400001,
	0x054883029,
	0x000041080,
	0x030290004,
	0x010803029,
	0x0000448c0,
	0x048c0e080,
	0x011400001,
	0x054882029,
	0x0000a1080,
	0x02029000a,
	0x0e0801140,
	0x000015488,
	0x04878001c,
	0x048690006,
	0x02f082f48,
	0x0000c6100,
	0x00cda206f,
	0x0000c701c,
	0x052882f29,
	0x0000a2f29,
	0x0000e2f08,
	0x02f48000c,
	0x061000d8e,
	0x0206f000c,
	0x020370162,
	0x00014000a,
	0x0d1c04fef,
	0x0000c6000,
	0x0fe203029,
	0x0fece3029,
	0x000021080,
	0x030290002,
	0x048c0e080,
	0x011400001,
	0x054883029,
	0x054882029,
	0x000061080,
	0x030290006,
	0x048c0e080,
	0x020290006,
	0x0e0801140,
	0x000012029,
	0x000067210,
	0x0e2a01140,
	0x000022029,
	0x000067218,
	0x0e2a01140,
	0x000034228,
	0x000044228,
	0x000054228,
	0x000064228,
	0x000075088,
	0x02029000a,
	0x010802029,
	0x0000ae080,
	0x011400001,
	0x054886000,
	0x0fdf43029,
	0x0fe6a3029,
	0x000021080,
	0x030290002,
	0x048c0e080,


@@ 1416,25 1426,25 @@ ulong bootcode[]={
	0x048c0e080,
	0x011400001,
	0x054884878,
	0x000404869,
	0x0001c4869,
	0x000062f08,
	0x02f48000c,
	0x061000c64,
	0x061000cda,
	0x0206f000c,
	0x07040d1c0,
	0x0701cd1c0,
	0x04fef000c,
	0x06000fdaa,
	0x06000fe20,
	0x030290002,
	0x010803029,
	0x0000248c0,
	0x0e0801140,
	0x000015488,
	0x030290004,
	0x030290006,
	0x010803029,
	0x0000448c0,
	0x0000648c0,
	0x0e0801140,
	0x000015488,
	0x06000fd7e,
	0x06000fdf4,
	0x030290002,
	0x010803029,
	0x0000248c0,


@@ 1445,21 1455,26 @@ ulong bootcode[]={
	0x0000448c0,
	0x0e0801140,
	0x000015488,
	0x06000fd52,
	0x030290002,
	0x010803029,
	0x0000248c0,
	0x0e0801140,
	0x000015488,
	0x048780040,
	0x048690006,
	0x02f082f48,
	0x0000c6100,
	0x00bd6206f,
	0x00c64206f,
	0x0000c7040,
	0x0d1c04fef,
	0x0000c6000,
	0x0fd1c3029,
	0x0fdaa3029,
	0x000021080,
	0x030290002,
	0x048c0e080,
	0x011400001,
	0x054883029,
	0x000041080,
	0x030290004,
	0x048c0e080,
	0x011400001,
	0x054886000,
	0x0fd7e3029,
	0x000021080,
	0x030290002,
	0x048c0e080,


@@ 1469,82 1484,82 @@ ulong bootcode[]={
	0x030290004,
	0x048c0e080,
	0x011400001,
	0x054886000,
	0x0fd523029,
	0x000021080,
	0x030290002,
	0x048c0e080,
	0x011400001,
	0x054884878,
	0x000404869,
	0x000062f08,
	0x02f48000c,
	0x061000b8c,
	0x061000bd6,
	0x0206f000c,
	0x07040d1c0,
	0x04fef000c,
	0x06000fcd2,
	0x06000fd1c,
	0x030290002,
	0x010803029,
	0x0000248c0,
	0x0e0801140,
	0x000015488,
	0x06000fcba,
	0x06000ff3a,
	0x030290002,
	0x030290004,
	0x010803029,
	0x0000248c0,
	0x0000448c0,
	0x0e0801140,
	0x000015488,
	0x04878001c,
	0x04869000a,
	0x048780040,
	0x048690006,
	0x02f082f48,
	0x0000c6100,
	0x00b3a206f,
	0x0000c701c,
	0x00b8c206f,
	0x0000c7040,
	0x0d1c04fef,
	0x0000c6000,
	0x0fc8060c4,
	0x060aa6000,
	0x0fc823029,
	0x0fcd23029,
	0x000021080,
	0x030290002,
	0x048c0e080,
	0x011400001,
	0x054882029,
	0x000061080,
	0x020290006,
	0x054886000,
	0x0fcba6000,
	0x0ff3a3029,
	0x000021080,
	0x030290002,
	0x048c0e080,
	0x011400001,
	0x054884878,
	0x0001c4869,
	0x0000a2f08,
	0x02f48000c,
	0x061000b3a,
	0x0206f000c,
	0x0701cd1c0,
	0x04fef000c,
	0x06000fc80,
	0x060c460aa,
	0x06000fc82,
	0x030290002,
	0x010803029,
	0x0000248c0,
	0x0e0801140,
	0x000012029,
	0x000067210,
	0x0e2a01140,
	0x000022029,
	0x000067218,
	0x0e2a01140,
	0x000034228,
	0x000044228,
	0x000054228,
	0x000064228,
	0x000075088,
	0x02029000a,
	0x000015488,
	0x020290006,
	0x010802029,
	0x0000ae080,
	0x011400001,
	0x054882f29,
	0x0000a2f29,
	0x0000e2f08,
	0x02f48000c,
	0x061000ab0,
	0x0206f000c,
	0x020370162,
	0x00014000a,
	0x0d1c04fef,
	0x0000c6000,
	0x0fbf03029,
	0x000021080,
	0x030290002,
	0x048c0e080,
	0x011400001,
	0x054883029,
	0x000041080,
	0x030290004,
	0x048c0e080,
	0x00006e080,
	0x011400001,
	0x054882029,
	0x020290006,
	0x07210e2a0,
	0x011400002,
	0x020290006,
	0x07218e2a0,
	0x011400003,
	0x042280004,
	0x042280005,
	0x042280006,
	0x042280007,
	0x050882029,
	0x0000a1080,
	0x02029000a,
	0x0e0801140,


@@ 1553,13 1568,12 @@ ulong bootcode[]={
	0x02f29000e,
	0x02f082f48,
	0x0000c6100,
	0x00a4e206f,
	0x00ab0206f,
	0x0000c2037,
	0x001620014,
	0x0000ad1c0,
	0x04fef000c,
	0x06000fb8e,
	0x06000fcbe,
	0x06000fbf0,
	0x030290002,
	0x010803029,
	0x0000248c0,


@@ 1570,206 1584,272 @@ ulong bootcode[]={
	0x0000448c0,
	0x0e0801140,
	0x000015488,
	0x02029000c,
	0x02029000a,
	0x010802029,
	0x0000ce088,
	0x011400001,
	0x02029000c,
	0x07210e2a8,
	0x011400002,
	0x02029000c,
	0x07218e2a8,
	0x011400003,
	0x058886000,
	0x0fb343029,
	0x000021080,
	0x030290002,
	0x048c0e080,
	0x0000ae080,
	0x011400001,
	0x054884878,
	0x0001c4869,
	0x0000a2f08,
	0x054882f29,
	0x0000a2f29,
	0x0000e2f08,
	0x02f48000c,
	0x0610009b8,
	0x0226f0014,
	0x061000a4e,
	0x0206f000c,
	0x0701cd1c0,
	0x020290006,
	0x010802029,
	0x00006e080,
	0x011400001,
	0x020290006,
	0x07210e2a0,
	0x011400002,
	0x020290006,
	0x07218e2a0,
	0x011400003,
	0x0588810e9,
	0x000264fef,
	0x020370162,
	0x00014000a,
	0x0d1c04fef,
	0x0000c6000,
	0x0facc6000,
	0x0ff403029,
	0x0fb8e6000,
	0x0fcbe3029,
	0x000021080,
	0x030290002,
	0x048c0e080,
	0x011400001,
	0x0548810e9,
	0x000266000,
	0x0faac60de,
	0x06000fdf2,
	0x06000fe24,
	0x054883029,
	0x000041080,
	0x030290004,
	0x048c0e080,
	0x011400001,
	0x054882029,
	0x0000c1080,
	0x02029000c,
	0x0e0881140,
	0x000012029,
	0x0000c7210,
	0x0e2a81140,
	0x000022029,
	0x0000c7218,
	0x0e2a81140,
	0x000035888,
	0x06000fb34,
	0x030290002,
	0x010803029,
	0x0000248c0,
	0x0e0801140,
	0x000015488,
	0x030290008,
	0x010803029,
	0x0000848c0,
	0x04878001c,
	0x04869000a,
	0x02f082f48,
	0x0000c6100,
	0x009b8226f,
	0x00014206f,
	0x0000c701c,
	0x0d1c02029,
	0x000061080,
	0x020290006,
	0x0e0801140,
	0x000015488,
	0x06000fa76,
	0x000012029,
	0x000067210,
	0x0e2a01140,
	0x000022029,
	0x000067218,
	0x0e2a01140,
	0x000035888,
	0x010e90026,
	0x04fef000c,
	0x06000facc,
	0x06000ff40,
	0x030290002,
	0x010803029,
	0x0000248c0,
	0x0e0801140,
	0x000015488,
	0x04878001c,
	0x048690006,
	0x02f082f48,
	0x0000c6100,
	0x008fa701c,
	0x0d1af000c,
	0x04878001c,
	0x048770162,
	0x000180022,
	0x02f2f0014,
	0x0610008e0,
	0x0206f0018,
	0x0701cd1c0,
	0x04fef0018,
	0x06000fa26,
	0x0101149c0,
	0x02f00486e,
	0x081166100,
	0x0ec124280,
	0x04fef000c,
	0x04e753029,
	0x000041080,
	0x030290004,
	0x010e90026,
	0x06000faac,
	0x060de6000,
	0x0fdf26000,
	0x0fe243029,
	0x000021080,
	0x030290002,
	0x048c0e080,
	0x011400001,
	0x054883029,
	0x000081080,
	0x030290008,
	0x048c0e080,
	0x011400001,
	0x054886000,
	0x0f9f810e9,
	0x0000a6000,
	0x0f9f06000,
	0x0f9ec60fa,
	0x0598f206f,
	0x0000c4878,
	0x0001c2f2f,
	0x0000c2f08,
	0x0fa763029,
	0x000021080,
	0x030290002,
	0x048c0e080,
	0x011400001,
	0x054884878,
	0x0001c4869,
	0x000062f08,
	0x02f48000c,
	0x06100087c,
	0x0226f0014,
	0x0610008fa,
	0x0701cd1af,
	0x0000c4878,
	0x0001c4877,
	0x001620018,
	0x000222f2f,
	0x000146100,
	0x008e0206f,
	0x00018701c,
	0x0d1c04fef,
	0x000186000,
	0x0fa261011,
	0x049c02f00,
	0x0486e836e,
	0x06100ec00,
	0x042804fef,
	0x0000c4e75,
	0x030290004,
	0x010803029,
	0x0000448c0,
	0x0e0801140,
	0x000015488,
	0x06000f9f8,
	0x010e9000a,
	0x06000f9f0,
	0x06000f9ec,
	0x060fa598f,
	0x0206f000c,
	0x0701cd1c0,
	0x02029001c,
	0x010802029,
	0x0001ce080,
	0x011400001,
	0x02029001c,
	0x07210e2a0,
	0x011400002,
	0x04878001c,
	0x02f2f000c,
	0x02f082f48,
	0x0000c6100,
	0x0087c226f,
	0x00014206f,
	0x0000c701c,
	0x0d1c02029,
	0x0001c1080,
	0x02029001c,
	0x07218e2a0,
	0x011400003,
	0x058885888,
	0x0e0801140,
	0x000012029,
	0x0001c7210,
	0x0e2a01140,
	0x000022029,
	0x0001c7218,
	0x0e2a01140,
	0x000035888,
	0x058882029,
	0x000241080,
	0x020290024,
	0x0e0801140,
	0x000012029,
	0x000247210,
	0x0e2a01140,
	0x000022029,
	0x000247218,
	0x0e2a01140,
	0x000035888,
	0x020290028,
	0x010802029,
	0x00024e080,
	0x00028e080,
	0x011400001,
	0x020290024,
	0x020290028,
	0x07210e2a0,
	0x011400002,
	0x020290024,
	0x020290028,
	0x07218e2a0,
	0x011400003,
	0x058882029,
	0x000281080,
	0x020290028,
	0x0002c1080,
	0x02029002c,
	0x0e0801140,
	0x000012029,
	0x000287210,
	0x0002c7210,
	0x0e2a01140,
	0x000022029,
	0x000287218,
	0x0002c7218,
	0x0e2a01140,
	0x000035888,
	0x02029002c,
	0x020290034,
	0x010802029,
	0x0002ce080,
	0x00034e080,
	0x011400001,
	0x02029002c,
	0x020290034,
	0x07210e2a0,
	0x011400002,
	0x02029002c,
	0x020290034,
	0x07218e2a0,
	0x011400003,
	0x058882029,
	0x000341080,
	0x020290034,
	0x0e0801140,
	0x000012029,
	0x000347210,
	0x0e2a01140,
	0x000022029,
	0x000347218,
	0x0e2a01140,
	0x000034228,
	0x000044228,
	0x000054228,
	0x000064228,
	0x000075088,
	0x042280004,
	0x042280005,
	0x042280006,
	0x042280007,
	0x050883029,
	0x000381080,
	0x030290038,
	0x010803029,
	0x0003848c0,
	0x0e0801140,
	0x000015488,
	0x048c0e080,
	0x011400001,
	0x054883029,
	0x0003a1080,
	0x03029003a,
	0x010803029,
	0x0003a48c0,
	0x0e0801140,
	0x000015488,
	0x048c0e080,
	0x011400001,
	0x054883029,
	0x000201080,
	0x030290020,
	0x010803029,
	0x0002048c0,
	0x0e0801140,
	0x000015488,
	0x048c0e080,
	0x011400001,
	0x054883029,
	0x000221080,
	0x030290022,
	0x010803029,
	0x0002248c0,
	0x0e0801140,
	0x000015488,
	0x0200890af,
	0x000184fef,
	0x000104e75,
	0x0598f226f,
	0x0000c206f,
	0x000081298,
	0x0101149c0,
	0x04201b001,
	0x06d00057e,
	0x07227b001,
	0x06e000576,
	0x030360b20,
	0x083d64efb,
	0x00000202f,
	0x00008d0af,
	0x00010b088,
	0x06608202f,
	0x00010588f,
	0x04e754280,
	0x048c0e080,
	0x011400001,
	0x054882008,
	0x090af0018,
	0x04fef0010,
	0x04e75598f,
	0x0226f000c,
	0x0206f0008,
	0x012981011,
	0x049c04201,
	0x0b0016d00,
	0x0057e7227,
	0x0b0016e00,
	0x005763036,
	0x00b2083f6,
	0x04efb0000,
	0x0202f0008,
	0x0d0af0010,
	0x0b0886608,
	0x0202f0010,
	0x0588f4e75,
	0x04280588f,
	0x04e754280,
	0x010104281,
	0x012280001,
	0x0e1818081,
	0x033400002,
	0x054884280,
	0x010104281,
	0x012280001,
	0x0e1818081,
	0x033400004,
	0x054884280,
	0x010104281,
	0x012280001,
	0x0e1818081,
	0x02340000a,
	0x0548860a8,
	0x042801010,
	0x042811228,
	0x00001e181,
	0x080813340,
	0x000025488,
	0x042801010,
	0x042811228,
	0x00001e181,
	0x080814281,
	0x012280002,
	0x07410e5a1,
	0x080814281,
	0x012280003,
	0x07418e5a1,
	0x080812340,
	0x000065088,
	0x042801010,
	0x042811228,
	0x00001e181,
	0x080812340,
	0x0000a5488,
	0x052882348,
	0x0000e2029,
	0x0000ad1c0,
	0x06000ff46,
	0x042801010,
	0x042811228,
	0x00001e181,


@@ 1785,51 1865,51 @@ ulong bootcode[]={
	0x00001e181,
	0x080812340,
	0x0000a5488,
	0x060a84280,
	0x010104281,
	0x012280001,
	0x0e1818081,
	0x033400002,
	0x054884280,
	0x010104281,
	0x012280001,
	0x0e1818081,
	0x052882348,
	0x0000e2029,
	0x0000ad1c0,
	0x06000fefa,
	0x042801010,
	0x042811228,
	0x000027410,
	0x0e5a18081,
	0x00001e181,
	0x080813340,
	0x000025488,
	0x042801010,
	0x042811228,
	0x000037418,
	0x0e5a18081,
	0x023400006,
	0x050884280,
	0x010104281,
	0x012280001,
	0x0e1818081,
	0x02340000a,
	0x054885288,
	0x02348000e,
	0x02029000a,
	0x0d1c06000,
	0x0ff464280,
	0x010104281,
	0x012280001,
	0x0e1818081,
	0x033400002,
	0x054884280,
	0x010104281,
	0x012280001,
	0x0e1818081,
	0x033400004,
	0x054884280,
	0x010104281,
	0x012280001,
	0x0e1818081,
	0x02340000a,
	0x054885288,
	0x02348000e,
	0x02029000a,
	0x0d1c06000,
	0x0fefa4280,
	0x00001e181,
	0x080814281,
	0x012280002,
	0x07410e5a1,
	0x080814281,
	0x012280003,
	0x07418e5a1,
	0x080812340,
	0x000065088,
	0x042801010,
	0x042811228,
	0x00001e181,
	0x080812340,
	0x0000a5488,
	0x06000fea2,
	0x042801010,
	0x042811228,
	0x00001e181,
	0x080813340,
	0x000025488,
	0x042801010,
	0x042811228,
	0x00001e181,
	0x080813340,
	0x000045488,
	0x04878001c,
	0x02f082f48,
	0x000084869,
	0x000066100,
	0x0056c206f,
	0x0000c701c,
	0x0d1c04fef,
	0x0000c6000,
	0x0fe584280,
	0x010104281,
	0x012280001,
	0x0e1818081,


@@ 1838,20 1918,9 @@ ulong bootcode[]={
	0x010104281,
	0x012280001,
	0x0e1818081,
	0x042811228,
	0x000027410,
	0x0e5a18081,
	0x042811228,
	0x000037418,
	0x0e5a18081,
	0x023400006,
	0x050884280,
	0x010104281,
	0x012280001,
	0x0e1818081,
	0x02340000a,
	0x033400006,
	0x054886000,
	0x0fea24280,
	0x0fe2c4280,
	0x010104281,
	0x012280001,
	0x0e1818081,


@@ 1862,14 1931,14 @@ ulong bootcode[]={
	0x0e1818081,
	0x033400004,
	0x054884878,
	0x0001c2f08,
	0x000402f08,
	0x02f480008,
	0x048690006,
	0x06100056c,
	0x0610004f6,
	0x0206f000c,
	0x0701cd1c0,
	0x07040d1c0,
	0x04fef000c,
	0x06000fe58,
	0x06000fde2,
	0x042801010,
	0x042811228,
	0x00001e181,


@@ 1879,8 1948,8 @@ ulong bootcode[]={
	0x042811228,
	0x00001e181,
	0x080813340,
	0x000065488,
	0x06000fe2c,
	0x000045488,
	0x06000fdb6,
	0x042801010,
	0x042811228,
	0x00001e181,


@@ 1891,15 1960,21 @@ ulong bootcode[]={
	0x00001e181,
	0x080813340,
	0x000045488,
	0x06000fd8a,
	0x042801010,
	0x042811228,
	0x00001e181,
	0x080813340,
	0x000025488,
	0x048780040,
	0x02f082f48,
	0x000084869,
	0x000066100,
	0x004f6206f,
	0x00468206f,
	0x0000c7040,
	0x0d1c04fef,
	0x0000c6000,
	0x0fde24280,
	0x0fd544280,
	0x010104281,
	0x012280001,
	0x0e1818081,


@@ 1909,8 1984,38 @@ ulong bootcode[]={
	0x012280001,
	0x0e1818081,
	0x033400004,
	0x054886000,
	0x0fdb64280,
	0x054884878,
	0x000402f08,
	0x02f480008,
	0x048690006,
	0x06100041e,
	0x0206f000c,
	0x07040d1c0,
	0x04fef000c,
	0x06000fd0a,
	0x042801010,
	0x042811228,
	0x00001e181,
	0x080813340,
	0x000025488,
	0x06000fcf2,
	0x06000ff3a,
	0x042801010,
	0x042811228,
	0x00001e181,
	0x080813340,
	0x000025488,
	0x04878001c,
	0x02f082f48,
	0x000084869,
	0x0000a6100,
	0x003cc206f,
	0x0000c701c,
	0x0d1c04fef,
	0x0000c6000,
	0x0fcb860c4,
	0x060aa6000,
	0x0fcca4280,
	0x010104281,
	0x012280001,
	0x0e1818081,


@@ 1919,22 2024,22 @@ ulong bootcode[]={
	0x010104281,
	0x012280001,
	0x0e1818081,
	0x033400004,
	0x054886000,
	0x0fd8a4280,
	0x042811228,
	0x000027410,
	0x0e5a18081,
	0x042811228,
	0x000037418,
	0x0e5a18081,
	0x023400006,
	0x050884280,
	0x010104281,
	0x012280001,
	0x0e1818081,
	0x033400002,
	0x054884878,
	0x000402f08,
	0x02f480008,
	0x048690006,
	0x061000468,
	0x0206f000c,
	0x07040d1c0,
	0x04fef000c,
	0x06000fd54,
	0x02340000a,
	0x054882348,
	0x0000e2029,
	0x0000ad1c0,
	0x06000fc4e,
	0x042801010,
	0x042811228,
	0x00001e181,


@@ 1945,22 2050,38 @@ ulong bootcode[]={
	0x00001e181,
	0x080813340,
	0x000045488,
	0x048780040,
	0x02f082f48,
	0x000084869,
	0x000066100,
	0x0041e206f,
	0x0000c7040,
	0x0d1c04fef,
	0x0000c6000,
	0x0fd0a4280,
	0x042801010,
	0x042811228,
	0x00001e181,
	0x080812340,
	0x0000a5488,
	0x02348000e,
	0x02029000a,
	0x0d1c06000,
	0x0fc046000,
	0x0fd084280,
	0x010104281,
	0x012280001,
	0x0e1818081,
	0x033400002,
	0x054886000,
	0x0fcf26000,
	0x0ff3a4280,
	0x054884280,
	0x010104281,
	0x012280001,
	0x0e1818081,
	0x033400004,
	0x054884280,
	0x010104281,
	0x012280001,
	0x0e1818081,
	0x042811228,
	0x000027410,
	0x0e5a18081,
	0x042811228,
	0x000037418,
	0x0e5a18081,
	0x02340000c,
	0x058886000,
	0x0fba84280,
	0x010104281,
	0x012280001,
	0x0e1818081,


@@ 1969,18 2090,10 @@ ulong bootcode[]={
	0x0001c2f08,
	0x02f480008,
	0x04869000a,
	0x0610003cc,
	0x061000286,
	0x0226f0018,
	0x0206f000c,
	0x0701cd1c0,
	0x04fef000c,
	0x06000fcb8,
	0x060c460aa,
	0x06000fcca,
	0x042801010,
	0x042811228,
	0x00001e181,
	0x080813340,
	0x000025488,
	0x042801010,
	0x042811228,
	0x00001e181,


@@ 1991,16 2104,21 @@ ulong bootcode[]={
	0x012280003,
	0x07418e5a1,
	0x080812340,
	0x000065088,
	0x000065888,
	0x013580026,
	0x04fef000c,
	0x06000fb3e,
	0x06000ff3c,
	0x042801010,
	0x042811228,
	0x00001e181,
	0x080812340,
	0x0000a5488,
	0x02348000e,
	0x02029000a,
	0x0d1c06000,
	0x0fc4e4280,
	0x080813340,
	0x000025488,
	0x013580026,
	0x06000fb1e,
	0x060de6000,
	0x0fe2c6000,
	0x0fe5e4280,
	0x010104281,
	0x012280001,
	0x0e1818081,


@@ 2009,49 2127,50 @@ ulong bootcode[]={
	0x010104281,
	0x012280001,
	0x0e1818081,
	0x033400004,
	0x054884280,
	0x033400008,
	0x054886000,
	0x0fae84280,
	0x010104281,
	0x012280001,
	0x0e1818081,
	0x02340000a,
	0x054882348,
	0x0000e2029,
	0x0000ad1c0,
	0x06000fc04,
	0x06000fd08,
	0x042801010,
	0x042811228,
	0x00001e181,
	0x080813340,
	0x000025488,
	0x033400002,
	0x054884878,
	0x0001c2f08,
	0x02f480008,
	0x048690006,
	0x0610001c6,
	0x0701cd1af,
	0x0000c4878,
	0x0001c2f2f,
	0x000104877,
	0x001620020,
	0x000226100,
	0x001ac206f,
	0x00018701c,
	0x0d1c04fef,
	0x000186000,
	0x0fa981011,
	0x049c02f00,
	0x0486e837c,
	0x06100e4cc,
	0x042804fef,
	0x0000c4e75,
	0x042801010,
	0x042811228,
	0x00001e181,
	0x080813340,
	0x000045488,
	0x042801010,
	0x042811228,
	0x00001e181,
	0x080814281,
	0x012280002,
	0x07410e5a1,
	0x080814281,
	0x012280003,
	0x07418e5a1,
	0x080812340,
	0x0000c5888,
	0x06000fba8,
	0x042801010,
	0x042811228,
	0x00001e181,
	0x080813340,
	0x000025488,
	0x06000fa6a,
	0x01358000a,
	0x06000fa62,
	0x06000fa5e,
	0x060fa598f,
	0x0206f0008,
	0x04878001c,
	0x02f082f48,
	0x000084869,
	0x0000a6100,
	0x00286226f,
	0x000082f2f,
	0x000146100,
	0x00148226f,
	0x00018206f,
	0x0000c701c,
	0x0d1c04280,


@@ 2064,76 2183,41 @@ ulong bootcode[]={
	0x042811228,
	0x000037418,
	0x0e5a18081,
	0x023400006,
	0x058881358,
	0x000264fef,
	0x0000c6000,
	0x0fb3e6000,
	0x0ff3c4280,
	0x010104281,
	0x012280001,
	0x0e1818081,
	0x033400002,
	0x054881358,
	0x000266000,
	0x0fb1e60de,
	0x06000fe2c,
	0x06000fe5e,
	0x02340001c,
	0x058885888,
	0x042801010,
	0x042811228,
	0x00001e181,
	0x080813340,
	0x000025488,
	0x080814281,
	0x012280002,
	0x07410e5a1,
	0x080814281,
	0x012280003,
	0x07418e5a1,
	0x080812340,
	0x000245888,
	0x042801010,
	0x042811228,
	0x00001e181,
	0x080813340,
	0x000085488,
	0x06000fae8,
	0x080814281,
	0x012280002,
	0x07410e5a1,
	0x080814281,
	0x012280003,
	0x07418e5a1,
	0x080812340,
	0x000285888,
	0x042801010,
	0x042811228,
	0x00001e181,
	0x080813340,
	0x000025488,
	0x04878001c,
	0x02f082f48,
	0x000084869,
	0x000066100,
	0x001c6701c,
	0x0d1af000c,
	0x04878001c,
	0x02f2f0010,
	0x048770162,
	0x000200022,
	0x0610001ac,
	0x0206f0018,
	0x0701cd1c0,
	0x04fef0018,
	0x06000fa98,
	0x0101149c0,
	0x02f00486e,
	0x081246100,
	0x0e4de4280,
	0x04fef000c,
	0x04e754280,
	0x010104281,
	0x012280001,
	0x0e1818081,
	0x033400004,
	0x054886000,
	0x0fa6a1358,
	0x0000a6000,
	0x0fa626000,
	0x0fa5e60fa,
	0x0598f206f,
	0x000084878,
	0x0001c2f08,
	0x02f480008,
	0x02f2f0014,
	0x061000148,
	0x0226f0018,
	0x0206f000c,
	0x0701cd1c0,
	0x080814281,
	0x012280002,
	0x07410e5a1,
	0x080814281,
	0x012280003,
	0x07418e5a1,
	0x080812340,
	0x0002c5888,
	0x042801010,
	0x042811228,
	0x00001e181,


@@ 2144,146 2228,100 @@ ulong bootcode[]={
	0x012280003,
	0x07418e5a1,
	0x080812340,
	0x0001c5888,
	0x058884280,
	0x010104281,
	0x012280001,
	0x0e1818081,
	0x042811228,
	0x000027410,
	0x0e5a18081,
	0x042811228,
	0x000037418,
	0x0e5a18081,
	0x023400024,
	0x058884280,
	0x010104281,
	0x012280001,
	0x0e1818081,
	0x042811228,
	0x000027410,
	0x0e5a18081,
	0x042811228,
	0x000037418,
	0x0e5a18081,
	0x023400028,
	0x058884280,
	0x010104281,
	0x012280001,
	0x0e1818081,
	0x000345088,
	0x042801010,
	0x042811228,
	0x000027410,
	0x0e5a18081,
	0x00001e181,
	0x080813340,
	0x000385488,
	0x042801010,
	0x042811228,
	0x000037418,
	0x0e5a18081,
	0x02340002c,
	0x058884280,
	0x010104281,
	0x012280001,
	0x0e1818081,
	0x00001e181,
	0x080813340,
	0x0003a5488,
	0x042801010,
	0x042811228,
	0x000027410,
	0x0e5a18081,
	0x00001e181,
	0x080813340,
	0x000205488,
	0x042801010,
	0x042811228,
	0x000037418,
	0x0e5a18081,
	0x023400034,
	0x050884280,
	0x010104281,
	0x012280001,
	0x0e1818081,
	0x033400038,
	0x054884280,
	0x010104281,
	0x012280001,
	0x0e1818081,
	0x03340003a,
	0x054884280,
	0x010104281,
	0x012280001,
	0x0e1818081,
	0x033400020,
	0x054884280,
	0x010104281,
	0x012280001,
	0x0e1818081,
	0x033400022,
	0x054882008,
	0x090af0014,
	0x04fef0010,
	0x04e75202f,
	0x0000c6f4c,
	0x0246f0004,
	0x0226f0008,
	0x0b5c96246,
	0x00001e181,
	0x080813340,
	0x000225488,
	0x0200890af,
	0x000144fef,
	0x000104e75,
	0x0202f000c,
	0x06f4c246f,
	0x00004226f,
	0x00008b5c9,
	0x062462209,
	0x0c2bc0000,
	0x000036710,
	0x053806d32,
	0x014d92209,
	0x0c2bc0000,
	0x0000366f0,
	0x090bc0000,
	0x000106d10,
	0x024d924d9,
	0x024d924d9,
	0x090bc0000,
	0x000106cf0,
	0x0d0bc0000,
	0x0000f6d06,
	0x014d95380,
	0x06cfa202f,
	0x000044e75,
	0x0d3c0d5c0,
	0x02209c2bc,
	0x000000003,
	0x067105380,
	0x06d3214d9,
	0x06de81521,
	0x02209c2bc,
	0x000000003,
	0x066f090bc,
	0x000000010,
	0x06d1024d9,
	0x024d924d9,
	0x024d990bc,
	0x06d102521,
	0x025212521,
	0x0252190bc,
	0x000000010,
	0x06cf0d0bc,
	0x00000000f,
	0x06d0614d9,
	0x053806cfa,
	0x0202f0004,
	0x04e75d3c0,
	0x0d5c02209,
	0x0c2bc0000,
	0x000036710,
	0x053806de8,
	0x015212209,
	0x0c2bc0000,
	0x0000366f0,
	0x090bc0000,
	0x000106d10,
	0x025212521,
	0x025212521,
	0x090bc0000,
	0x000106cf0,
	0x0d0bc0000,
	0x0000f6dbc,
	0x015215380,
	0x06db660f8,
	0x070084e40,
	0x04e757004,
	0x06dbc1521,
	0x053806db6,
	0x060f87008,
	0x04e404e75,
	0x070164e40,
	0x04e757006,
	0x070044e40,
	0x04e757016,
	0x04e404e75,
	0x070074e40,
	0x04e757009,
	0x070064e40,
	0x04e757007,
	0x04e404e75,
	0x0700d4e40,
	0x04e75700e,
	0x070094e40,
	0x04e75700d,
	0x04e404e75,
	0x0700f4e40,
	0x04e757011,
	0x0700e4e40,
	0x04e75700f,
	0x04e404e75,
	0x070114e40,
	0x04e757014,
	0x04e404e75,
	0x070144e40,
	0x04e750000,
	0x000000000,
	0x000000000,
	0x000000000,
	0x000000000,
	0x000000000,
	0x000000000,
	0x000070000,
	0x02b740000,
	0x02bfc0000,
	0x028b80000,
	0x02c4e0000,
	0x02ba20000,
	0x02bc80000,
	0x02be20000,
	0x000000000,
	0x000000007,
	0x000002c00,
	0x000002c88,
	0x000002944,
	0x000002cda,
	0x000002c2e,
	0x000002c54,
	0x000002c6e,
	0x000000000,
	0x000000000,
	0x000000000,


@@ 2314,50 2352,48 @@ ulong bootcode[]={
	0x000000000,
	0x000000000,
	0x000000000,
	0x000010006,
	0x000000000,
	0x000010001,
	0x000000001,
	0x000060000,
	0x000000001,
	0x000010000,
	0x000000000,
	0x000000000,
	0x000000000,
	0x000000000,
	0x000000000,
	0x000000003,
	0x000030000,
	0x000030003,
	0x000000000,
	0x000000000,
	0x000000000,
	0x000000200,
	0x000000000,
	0x002000000,
	0x000000000,
	0x000040203,
	0x003030100,
	0x000000100,
	0x000020000,
	0x000050001,
	0x000000200,
	0x000000004,
	0x002030303,
	0x001000000,
	0x001000002,
	0x000000005,
	0x000010000,
	0x002000000,
	0x000000000,
	0x000006261,
	0x064207479,
	0x070653a20,
	0x025640a00,
	0x062616420,
	0x074797065,
	0x03a202564,
	0x00a000000,
	0x000002363,
	0x02f636f6e,
	0x073002363,
	0x02f636f6e,
	0x073002363,
	0x02f636f6e,
	0x073002365,
	0x02f626f6f,
	0x0746c696e,
	0x023632f63,
	0x06f6e7300,
	0x023632f63,
	0x06f6e7300,
	0x023632f63,
	0x06f6e7300,
	0x023652f62,
	0x06f6f746c,
	0x0696e6500,
	0x023652f62,
	0x06f6f7464,
	0x065766963,
	0x065002365,
	0x02f626f6f,
	0x074646576,
	0x069636500,
	0x074736572,
	0x076657200,
	0x06e667300,
	0x023632f72,
	0x073323332,
	0x063746c00,


@@ 2399,147 2435,152 @@ ulong bootcode[]={
	0x02f322f63,
	0x0746c0063,
	0x06f6e6e65,
	0x06374206e,
	0x066730063,
	0x06f6e6e65,
	0x063746564,
	0x020746f20,
	0x068656c69,
	0x0782e626f,
	0x06f746673,
	0x00a006e6f,
	0x0702e2e2e,
	0x000777269,
	0x07465206e,
	0x06f700072,
	0x065616420,
	0x063742025,
	0x07300636f,
	0x06e6e6563,
	0x074656420,
	0x0746f2025,
	0x0730a006e,
	0x06f702e2e,
	0x02e007772,
	0x069746520,
	0x06e6f7000,
	0x06e203d20,
	0x025643b20,
	0x062756620,
	0x03d20252e,
	0x032782025,
	0x072656164,
	0x0206e6f70,
	0x0006e203d,
	0x02025643b,
	0x020627566,
	0x0203d2025,
	0x02e327820,
	0x0252e3278,
	0x020252e32,
	0x0780a0066,
	0x06f726d61,
	0x074206e6f,
	0x070006e6f,
	0x07420526e,
	0x06f700073,
	0x065737369,
	0x06f6e2e2e,
	0x02e007772,
	0x069746520,
	0x07820252e,
	0x032780a00,
	0x0666f726d,
	0x06174206e,
	0x06f70006e,
	0x06f742052,
	0x06e6f7000,
	0x073657373,
	0x0696f6e00,
	0x072656164,
	0x0696f6e2e,
	0x02e2e0077,
	0x072697465,
	0x020736573,
	0x073696f6e,
	0x000666f72,
	0x06d617420,
	0x073657373,
	0x0696f6e00,
	0x06e6f7420,
	0x052736573,
	0x000726561,
	0x064207365,
	0x07373696f,
	0x06e00666f,
	0x0726d6174,
	0x020736573,
	0x073696f6e,
	0x000657272,
	0x06f722025,
	0x0643b0072,
	0x0656d6f74,
	0x065206572,
	0x0726f7200,
	0x0706f7374,
	0x02e2e2e00,
	0x023732f25,
	0x07300626f,
	0x06f746573,
	0x000637265,
	0x061746500,
	0x025640077,
	0x072697465,
	0x0006e6f74,
	0x020527365,
	0x07373696f,
	0x06e006572,
	0x0726f7220,
	0x025643b00,
	0x072656d6f,
	0x074652065,
	0x072726f72,
	0x000706f73,
	0x0742e2e2e,
	0x00023732f,
	0x025730062,
	0x06f6f7465,
	0x073002373,
	0x02f626f6f,
	0x074006372,
	0x073006372,
	0x065617465,
	0x000256400,
	0x077726974,
	0x065006d6f,
	0x0756e742e,
	0x02e2e002f,
	0x0002f0062,
	0x0696e6400,
	0x02f00006d,
	0x065002373,
	0x02f257300,
	0x0626f6f74,
	0x065730023,
	0x0732f626f,
	0x06f740063,
	0x072656174,
	0x065002564,
	0x000777269,
	0x07465006d,
	0x06f756e74,
	0x000737563,
	0x063657373,
	0x00a002f36,
	0x038303230,
	0x02f696e69,
	0x07400696e,
	0x06974002d,
	0x06d002f36,
	0x038303230,
	0x02f696e69,
	0x07400696e,
	0x06974002f,
	0x02e2e2e00,
	0x02f002f00,
	0x062696e64,
	0x0002f0000,
	0x06d6f756e,
	0x074007375,
	0x063636573,
	0x0730a002f,
	0x036383032,
	0x0302f696e,
	0x069740069,
	0x06e697400,
	0x02d6d002f,
	0x036383032,
	0x0302f696e,
	0x069740062,
	0x06f6f743a,
	0x02025733a,
	0x02025730a,
	0x000000618,
	0x00614060c,
	0x005f405de,
	0x069740069,
	0x06e697400,
	0x02f363830,
	0x032302f69,
	0x06e697400,
	0x0626f6f74,
	0x03a202573,
	0x03a202573,
	0x00a000000,
	0x062616420,
	0x074797065,
	0x03a202564,
	0x00a006261,
	0x064207479,
	0x070653a20,
	0x025640a00,
	0x000000000,
	0x06e6f6e2d,
	0x07a65726f,
	0x020657869,
	0x074207374,
	0x061747573,
	0x000000000,
	0x006180614,
	0x0060c05f4,
	0x005de05de,
	0x005de05de,
	0x005de05de,
	0x005de058e,
	0x005580562,
	0x0055e055a,
	0x00558053c,
	0x0053804d0,
	0x0047a0476,
	0x00414038c,
	0x003880386,
	0x00384034e,
	0x0034a0332,
	0x002e802b2,
	0x00286025a,
	0x0021001e4,
	0x0019a0136,
	0x000d20048,
	0x0000c05a6,
	0x005a2059a,
	0x00582056c,
	0x0058e0558,
	0x00562055e,
	0x0055a0558,
	0x0053c0538,
	0x004d0047a,
	0x004760414,
	0x0038c0388,
	0x003860384,
	0x0034e034a,
	0x0033202e8,
	0x002b20286,
	0x0025a0210,
	0x001e4019a,
	0x0013600d2,
	0x00048000c,
	0x005a605a2,
	0x0059a0582,
	0x0056c056c,
	0x0056c056c,
	0x0056c051c,
	0x004e604f0,
	0x004ec04e8,
	0x004e604ca,
	0x004c6045c,
	0x004040400,
	0x003b60354,
	0x00350034e,
	0x0034c0316,
	0x0031202fa,
	0x002b0027a,
	0x0024e0222,
	0x001d801ac,
	0x00162010a,
	0x000be005a,
	0x0001c6e6f,
	0x06e2d7a65,
	0x0726f2065,
	0x078697420,
	0x073746174,
	0x075730000,
	0x000000000,
	0x000027b2,
	0x0056c056c,
	0x0051c04e6,
	0x004f004ec,
	0x004e804e6,
	0x004ca04c6,
	0x0045c0404,
	0x0040003b6,
	0x003540350,
	0x0034e034c,
	0x003160312,
	0x002fa02b0,
	0x0027a024e,
	0x0022201d8,
	0x001ac0162,
	0x0010a00be,
	0x0005a001c,
	0x00002858,
	0x0,
};

M gnot/dat.h => gnot/dat.h +1 -0
@@ 313,6 313,7 @@ struct Proc
	int	state;
	Page	*upage;			/* BUG: should be unlinked from page list */
	Seg	seg[NSEG];
	ulong	bssend;			/* initial top of bss seg */
	ulong	pid;
	Lock	kidlock;		/* access to kid and sib */
	Proc	*pop;			/* some ascendant */

M gnot/devcons.c => gnot/devcons.c +21 -6
@@ 285,16 285,31 @@ void
echo(int c)
{
	char ch;
	static int ctrlt;

	/*
	 * ^t hack BUG
	 */
	if(c == 0x14)
		DEBUG();
	if(c == 0x16)
		dumpqueues();
	if(c == 0x1A)
		mntdump();
	if(ctrlt == 2){
		ctrlt = 0;
		switch(c){
		case 0x14:
			break;	/* pass it on */
		case 'p':
			DEBUG();
			return;
		case 'q':
			dumpqueues();
			return;
		case 'm':
			mntdump();
			return;
		}
	}else if(c == 0x14){
		ctrlt++;
		return;
	}
	ctrlt = 0;
	if(raw.ref)
		return;
	if(c == 0x15)

M gnot/fault.c => gnot/fault.c +0 -1
@@ 173,7 173,6 @@ fault(Ureg *ur, FFrame *f)
			if((*devtab[o->chan->type].read)(o->chan, l, n) != n)
				error(0, Eioload);
			qunlock(o->chan);
			/* BUG: if was first page of bss, move to data */
			if(n<BY2PG)
				memset(l+n, 0, BY2PG-n);
			lock(o);

M gnot/main.c => gnot/main.c +5 -0
@@ 22,6 22,7 @@ struct Boot

char protouser[NAMELEN];
char bootline[64];
char bootserver[64];
char bootdevice[2];
int bank[2];



@@ 55,6 56,7 @@ unloadboot(void)
{
	strncpy(protouser, BOOT->user, NAMELEN);
	memcpy(bootline, BOOT->line, 64);
	memcpy(bootserver, BOOT->server, 64);
	bootdevice[0] = BOOT->device;
}



@@ 111,6 113,9 @@ init0(void)
		c = namec("#e/bootline", Acreate, OWRITE, 0600);
		(*devtab[c->type].write)(c, bootline, 64);
		close(c);
		c = namec("#e/bootserver", Acreate, OWRITE, 0600);
		(*devtab[c->type].write)(c, bootserver, 64);
		close(c);
		c = namec("#e/bootdevice", Acreate, OWRITE, 0600);
		(*devtab[c->type].write)(c, bootdevice, 2);
		close(c);

M gnot/sysfile.c => gnot/sysfile.c +8 -2
@@ 321,6 321,8 @@ bindmount(ulong *arg, int ismount)
	Chan *c0, *c1;
	ulong flag;
	long ret;
	char *p;
	int t;
	struct{
		Chan	*chan;
		char	*spec;


@@ 331,8 333,12 @@ bindmount(ulong *arg, int ismount)
		error(0, Ebadarg);
	if(ismount){
		bogus.chan = fdtochan(arg[0], 2);
/*BUG: check validaddr for ALL of arg[3]!! */
		validaddr(arg[3], 1, 0);
		p = (char*)arg[3];
		t = BY2PG-((ulong)p&(BY2PG-1));
		while(vmemchr(p, 0, t) == 0){
			p += t;
			t = BY2PG;
		}
		bogus.spec = (char*)arg[3];
		ret = devno('M', 0);
		c0 = (*devtab[ret].attach)((char*)&bogus);

M gnot/sysproc.c => gnot/sysproc.c +21 -13
@@ 163,7 163,7 @@ sysexec(ulong *arg)
	char *a, *charp, *file;
	long fpnull = 0;
	char *progarg[sizeof(Exec)/2+1], elem[NAMELEN];
	ulong ssize, spage, nargs, nbytes, n;
	ulong ssize, spage, nargs, nbytes, n, bssend;
	ulong *sp;
	int indir;
	Exec exec;


@@ 218,11 218,9 @@ sysexec(ulong *arg)

    Binary:
	t = (UTZERO+sizeof(Exec)+exec.text+(BY2PG-1)) & ~(BY2PG-1);
	/*
	 * Last partial page of data goes into BSS.
	 */
	d = (t + exec.data) & ~(BY2PG-1);
	b = (t + exec.data + exec.bss + (BY2PG-1)) & ~(BY2PG-1);
	d = (t + exec.data + (BY2PG-1)) & ~(BY2PG-1);
	bssend = t + exec.data + exec.bss;
	b = (bssend + (BY2PG-1)) & ~(BY2PG-1);
	if((t|d|b) & KZERO)
		error(0, Ebadexec);



@@ 323,7 321,7 @@ sysexec(ulong *arg)
	if(o == 0){
		o = neworig(t, (d-t)>>PGSHIFT, OWRPERM|OPURE|OCACHED, tc);
		o->minca = p->seg[TSEG].o->maxca;
		o->maxca = o->minca + (exec.data & ~(BY2PG-1));
		o->maxca = o->minca + exec.data;
	}
	s->o = o;
	s->minva = t;


@@ 331,15 329,13 @@ sysexec(ulong *arg)
	s->mod = 0;

	/*
	 * BSS.  Created afresh, starting with last page of data.
	 * BUG: should pick up the last page of data, which should be cached in the
	 * data segment.
	 * BSS.  Created afresh.
	 */
	s = &p->seg[BSEG];
	s->proc = p;
	o = neworig(d, (b-d)>>PGSHIFT, OWRPERM, tc);
	o->minca = p->seg[DSEG].o->maxca;
	o->maxca = o->minca + (exec.data & (BY2PG-1));
	o = neworig(d, (b-d)>>PGSHIFT, OWRPERM, 0);
	o->minca = 0;
	o->maxca = 0;
	s->o = o;
	s->minva = d;
	s->maxva = b;


@@ 347,6 343,8 @@ sysexec(ulong *arg)

	close(tc);

	p->bssend = bssend;

	/*
	 * Move the stack
	 */


@@ 529,7 527,17 @@ sysnoted(ulong *arg)
long
sysbrk_(ulong *arg)
{
	ulong addr;
	Seg *s;

	addr = arg[0];
	if(addr < u->p->bssend)
		error(0, Esegaddr);
	if(addr <= ((u->p->bssend+(BY2PG-1))&~(BY2PG-1)))	/* still in DSEG */
		goto Return;
	if(segaddr(&u->p->seg[BSEG], u->p->seg[BSEG].minva, arg[0]) == 0)
		error(0, Esegaddr);
    Return:
	u->p->bssend = addr;
	return 0;
}

M port/sysfile.c => port/sysfile.c +8 -2
@@ 321,6 321,8 @@ bindmount(ulong *arg, int ismount)
	Chan *c0, *c1;
	ulong flag;
	long ret;
	char *p;
	int t;
	struct{
		Chan	*chan;
		char	*spec;


@@ 331,8 333,12 @@ bindmount(ulong *arg, int ismount)
		error(0, Ebadarg);
	if(ismount){
		bogus.chan = fdtochan(arg[0], 2);
/*BUG: check validaddr for ALL of arg[3]!! */
		validaddr(arg[3], 1, 0);
		p = (char*)arg[3];
		t = BY2PG-((ulong)p&(BY2PG-1));
		while(vmemchr(p, 0, t) == 0){
			p += t;
			t = BY2PG;
		}
		bogus.spec = (char*)arg[3];
		ret = devno('M', 0);
		c0 = (*devtab[ret].attach)((char*)&bogus);