~kris/9p

9hist

6a8b27b4cf6fedcf8f5e8ab4af6f6b1ba5dc54fd — David du Colombier 35 years ago bb53952
Plan 9 from Bell Labs 1991-01-09
M gnot/dat.h => gnot/dat.h +1 -1
@@ 332,7 332,7 @@ struct Proc
	ulong	pid;
	int	nchild;
	QLock	wait;			/* exiting children to be waited for */
	ulong	waitmsg;
	Waitmsg	waitmsg;		/* this is large but must be addressable */
	Proc	*child;
	Proc	*parent;
	Pgrp	*pgrp;

M gnot/fns.h => gnot/fns.h +2 -1
@@ 202,4 202,5 @@ Chan	*walk(Chan*, char*, int);

#define	evenaddr(x)	/* 68020 doesn't care */

#define USED(x) if(x)
#define USED(x)	if(x)
#define SET(x)	x = 0

M gnot/lock.c => gnot/lock.c +1 -2
@@ 36,8 36,7 @@ lock(Lock *l)
			return;
		}
	ll->key = 0;
dumpstack();
	panic("lock loop %lux pc %lux held by pc %lux\n", l, ((ulong*)&l)[PCOFF], l->pc);
	print("lock loop %lux pc %lux held by pc %lux\n", l, ((ulong*)&l)[PCOFF], l->pc);
}

int

M port/devlance.c => port/devlance.c +1 -29
@@ 176,13 176,6 @@ static SoftLance l;
#define INIT	0x1

/*
 *  LANCE CSR3
 */
#define BSWP	0x4
#define ACON	0x2
#define BCON	0x1

/*
 *  flag bits from a buffer descriptor in the rcv/xmt rings
 */
#define OWN	0x8000	/* 1 means that the buffer can be used by the chip */


@@ 342,9 335,7 @@ lanceoput(Queue *q, Block *bp )
	 *  Wait till we get an output buffer
	 */
	if(TSUCC(l.tc) == l.tl){
		print("lance obuf sleep");
		sleep(&l.tr, isobuf, (void *)0);
		print("done");
	}
	p = &l.tp[l.tc];



@@ 422,13 413,6 @@ lancereset(void)
		lancesetup(&l);
	}

	*l.rap = 0;
	print("csr0 %lux\n", *l.rdp);
	*l.rap = 1;
	print("csr1 %lux\n", *l.rdp);
	*l.rap = 2;
	print("csr2 %lux\n", *l.rdp);

	/*
	 *  stop the lance
	 */


@@ 521,16 505,14 @@ lancestart(void)
	 */
	wbflush();
	*l.rap = 3;
	*l.rdp = BSWP;
	*l.rdp = l.busctl;

	/*
	 *  initialize lance, turn on interrupts, turn on transmit and rcv.
	 */
	wbflush();
	print("starting lance\n");
	*l.rap = 0;
	*l.rdp = INEA|INIT|STRT; /**/
	print("lance started\n");
}

/*


@@ 746,16 728,6 @@ lanceintr(void)
	 */
	if(csr & (BABL|MISS|MERR)){
		print("lance err %ux\n", csr);
		print("aser %lux asevar %lux\n", getw2(0x60000008), getw2(0x6000000C));
	*l.rap = 0;
	*l.rdp = STOP;
delay(100);
	*l.rap = 0;
	print("csr0 %lux\n", *l.rdp);
	*l.rap = 1;
	print("csr1 %lux\n", *l.rdp);
	*l.rap = 2;
	print("csr2 %lux\n", *l.rdp);
	}

	if(csr & IDON){

M port/devnonet.c => port/devnonet.c +5 -4
@@ 554,8 554,9 @@ nonetoput(Queue *q, Block *bp)
				mp->first = 0;
			}
			mp->inuse = 0;
		} else
			qunlock(&cp->mlock);
		}
		qunlock(&cp->mlock);
		nexterror();
	}

	/*


@@ 593,8 594,9 @@ nonetoput(Queue *q, Block *bp)
		sendmsg(cp, mp);
		tsleep(&mp->r, acked, mp, MSrexmit);
		if(retries++ > 100)
			errors("to many nonet rexmits");
			errors("too many nonet rexmits");
	}
	poperror();

	/*
	 *  free buffer


@@ 603,7 605,6 @@ nonetoput(Queue *q, Block *bp)
	mp->first = 0;
	mp->inuse = 0;
	wakeup(&cp->r);
	poperror();
}

/*

M port/proc.c => port/proc.c +23 -29
@@ 317,17 317,24 @@ postnote(Proc *p, int dolock, char *n, int flag)

	if(dolock)
		lock(&p->debug);
	k = kmap(p->upage);
	up = (User*)VA(k);
	if(p != u->p){
		k = kmap(p->upage);
		up = (User*)VA(k);
	}else{
		SET(k);
		up = u;
	}
	if(flag!=NUser && (up->notify==0 || up->notified))
		up->nnote = 0;	/* force user's hand */
	else if(up->nnote == NNOTE-1){
		kunmap(k);
		if(up != u)
			kunmap(k);
		return 0;
	}
	strcpy(up->note[up->nnote].msg, n);
	up->note[up->nnote++].flag = flag;
	kunmap(k);
	if(up != u)
		kunmap(k);
	if(dolock)
		unlock(&p->debug);
	if(r = p->r){	/* assign = */


@@ 387,16 394,13 @@ addbroken(Proc *c)
int
freebroken(void)
{
	int n;

	int i, n;

	lock(&broken);
	n = broken.n;
	while(broken.n > 0){
		ready(broken.p[0]);
		memcpy(&broken.p[0], &broken.p[1], sizeof(Proc*)*(NBROKEN-1));
		--broken.n;
	}
	for(i=0; i<n; i++)
		ready(broken.p[i]);
	broken.n = 0;
	unlock(&broken);
	return n;
}


@@ 404,20 408,14 @@ freebroken(void)
void
pexit(char *s, int freemem)
{
	char status[64];
	ulong mypid;
	Proc *p, *c, *k, *l;
	Waitmsg w;
	int n;
	Chan *ch;
	ulong *up, *ucp, *wp;

	c = u->p;
	mypid = c->pid;
	if(s)
		strcpy(status, s);
	else
		status[0] = 0;
	if(freemem){
		freesegs(-1);
		closepgrp(c->pgrp);


@@ 452,19 450,18 @@ pexit(char *s, int freemem)
	qlock(&p->wait);
	lock(&p->wait.queue);
	if(p->pid==c->parentpid && !p->exiting){
		w.pid = mypid;
		strcpy(w.msg, status);
		wp = &w.time[TUser];
		if(s)
			strcpy(p->waitmsg.msg, s);
		else
			p->waitmsg.msg[0] = 0;
		p->waitmsg.pid = mypid;
		wp = &p->waitmsg.time[TUser];
		up = &c->time[TUser];
		ucp = &c->time[TCUser];
		*wp++ = TK2MS(*up++ + *ucp++);
		*wp++ = TK2MS(*up++ + *ucp  );
		*wp   = TK2MS(*up           );
		p->child = c;
		/*
		 * Pass info through back door, to avoid huge Proc's
		 */
		p->waitmsg = (((ulong)&w)&(BY2PG-1));
		c->state = Exiting;
		if(p->state == Inwait)
			ready(p);


@@ 495,7 492,6 @@ ulong
pwait(Waitmsg *w)
{
	Proc *c, *p;
	KMap *k;
	ulong cpid;

	p = u->p;


@@ 518,11 514,9 @@ again:
		goto again;
	}
	p->child = 0;
	k = kmap(c->upage);
	if(w)
		*w = *(Waitmsg*)(p->waitmsg|VA(k));
	cpid = ((Waitmsg*)(p->waitmsg|VA(k)))->pid;
	kunmap(k);
		*w = p->waitmsg;
	cpid = p->waitmsg.pid;
	p->time[TCUser] += c->time[TUser] + c->time[TCUser];
	p->time[TCSys] += c->time[TSys] + c->time[TCSys];
	p->time[TCReal] += c->time[TReal];

M power/dat.h => power/dat.h +9 -1
@@ 326,7 326,7 @@ struct Proc
	ulong	pid;
	int	nchild;
	QLock	wait;			/* exiting children to be waited for */
	ulong	waitmsg;
	Waitmsg	waitmsg;		/* this is large but must be addressable */
	Proc	*child;
	Proc	*parent;
	Pgrp	*pgrp;


@@ 620,6 620,13 @@ struct Noifc {
};

/*
 *  LANCE CSR3 (bus control bits)
 */
#define BSWP	0x4
#define ACON	0x2
#define BCON	0x1

/*
 *  system dependent lance stuff
 *  filled by lancesetup() 
 */


@@ 631,6 638,7 @@ struct Lance
	ushort	ntrb;		/* number of xmit ring buffers */
	ushort	*rap;		/* lance address register */
	ushort	*rdp;		/* lance data register */
	ushort	busctl;		/* bus control bits */
	uchar	ea[6];		/* our ether addr */
	int	sep;		/* separation between shorts in lance ram
				    as seen by host */

M power/main.c => power/main.c +1 -0
@@ 791,6 791,7 @@ lancesetup(Lance *lp)
	lp->logntrb = 7;
	lp->nrrb = 1<<lp->lognrrb;
	lp->ntrb = 1<<lp->logntrb;
	lp->busctl = BSWP;
	if(ioid >= IO3R1)
		lanceIO3setup(lp);
	else

M ss/boot.c => ss/boot.c +38 -13
@@ 3,13 3,14 @@
#include <fcall.h>

#define DEFSYS "bootes"
#define DEFFILE "/mips/9"

char	*net;
char	*netdev;

Fcall	hdr;
char	*scmd;

char	buf[4*1024];
char	bootfile[5*NAMELEN];
char	sys[NAMELEN];

int fd;


@@ 45,7 46,7 @@ int	bitdial(char *);
/*
 *  usage: 9b [-a] [server] [file]
 *
 *  default server is `bootes', default file is `/mips/9'
 *  default server is `bootes', default file is `/sparc/9'
 */
main(int argc, char *argv[])
{


@@ 57,6 58,13 @@ main(int argc, char *argv[])
	open("#c/cons", 1);
	open("#c/cons", 1);

	strcpy(buf, "none");
	outin("user", buf, sizeof(buf));
	i = open("#c/user", 2);
	if(i >= 0){
		write(i, buf, strlen(buf));
		close(i);
	}
	i = create("#e/sysname", 1, 0666);
	if(i < 0)
		error("sysname");


@@ 64,9 72,13 @@ main(int argc, char *argv[])
		error("sysname");
	close(i);

	for(i = 0; i < argc; i++)
		print("argv[%d] = %s\n", i, argv[i]);

	argv++;
	argc--;	
	argc--;

	manual = 1;
	while(argc > 0){
		if(argv[0][0] == '-'){
			if(argv[0][1] == 'm')


@@ 78,13 90,8 @@ main(int argc, char *argv[])
	}

	strcpy(sys, DEFSYS);
	strcpy(bootfile, DEFFILE);
	switch(argc){
	case 1:
		strcpy(bootfile, argv[0]);
		break;
	case 2:
		strcpy(bootfile, argv[0]);
		strcpy(sys, argv[1]);
		break;
	}


@@ 172,6 179,9 @@ nonetdial(char *arg)
		prerror(a->cmd);
		return -1;
	}

	net = "nonet";
	netdev = "#nnonet";
	return fd;
}



@@ 228,6 238,8 @@ dkdial(char *arg)
		prerror(cmd);
		return -1;
	}
	net = "dk";
	netdev = "#kdk";
	return fd;
}



@@ 348,11 360,25 @@ boot(int ask)
	print("success\n");
	close(fd);

	if(net){
		char buf[128];

		fd = create("#e/bootnet", 1, 0666);
		if(fd >= 0){
			if(write(fd, net, strlen(net)) != strlen(net))
				error("writing bootnet");
			close(fd);
			sprint(buf, "/net/%s", net);
			if(bind(netdev, buf, MREPL) < 0)
				error("binding bootnet");
		}
	}

	if(ask)
		execl("/mips/init", "init", "-m", 0);
		execl("/sparc/init", "init", "-t", "-m", 0);
	else
		execl("/mips/init", "init", 0);
	error("/mips/init");
		execl("/sparc/init", "init", "-t", 0);
	error("/sparc/init");
}

/*


@@ 384,7 410,6 @@ error(char *s)
 *  prompt and get input
 */
int
int
outin(char *prompt, char *def, int len)
{
	int n;

M ss/boot.h => ss/boot.h +820 -668
@@ 1,8 1,8 @@
ulong bootcode[]={
	0x0000002ab,
	0x000005960,
	0x000000610,
	0x000001190,
	0x000005b58,
	0x000000680,
	0x000001100,
	0x000000000,
	0x000001020,
	0x000000000,


@@ 18,37 18,80 @@ ulong bootcode[]={
	0x040000007,
	0x001000000,
	0x0ce206004,
	0x04000052d,
	0x0400005aa,
	0x001000000,
	0x010bffffd,
	0x001000000,
	0x0822060a0,
	0x0de206000,
	0x0c0206098,
	0x09000b1e5,
	0x09000b1ed,
	0x0d0206004,
	0x0c0206008,
	0x0400006a3,
	0x040000721,
	0x001000000,
	0x09200b1ed,
	0x09200b1f5,
	0x0d2206004,
	0x090002001,
	0x0d0206008,
	0x04000069d,
	0x04000071b,
	0x001000000,
	0x09200b1f5,
	0x09200b1fd,
	0x0d2206004,
	0x090002001,
	0x0d0206008,
	0x040000697,
	0x040000715,
	0x001000000,
	0x092006018,
	0x0d2206004,
	0x09000b205,
	0x0d0206008,
	0x040000686,
	0x001000000,
	0x09200b20a,
	0x0d2206004,
	0x090006018,
	0x0d0206008,
	0x092002080,
	0x0d220600c,
	0x04000051a,
	0x001000000,
	0x09200b20f,
	0x0d2206004,
	0x094002002,
	0x0d4206008,
	0x040000701,
	0x001000000,
	0x090100007,
	0x096100007,
	0x092100007,
	0x0ce20609c,
	0x080a1c000,
	0x006800013,
	0x001000000,
	0x092006018,
	0x0d2206004,
	0x040000691,
	0x001000000,
	0x0ce206014,
	0x0d200609c,
	0x0d2206004,
	0x090006018,
	0x0d0206008,
	0x0d2006014,
	0x0d220600c,
	0x0400006ff,
	0x001000000,
	0x0d000609c,
	0x0d0206004,
	0x0400006cb,
	0x001000000,
	0x09000b1fd,
	0x09000b217,
	0x0d0206004,
	0x094002001,
	0x0d4206008,
	0x0900021b6,
	0x0d020600c,
	0x040000677,
	0x0400006c9,
	0x001000000,
	0x092100007,
	0x096100007,


@@ 57,20 100,20 @@ ulong bootcode[]={
	0x080a1c000,
	0x016800006,
	0x001000000,
	0x09200b208,
	0x09200b222,
	0x0d2206004,
	0x040000480,
	0x0400004d2,
	0x001000000,
	0x0d00060a8,
	0x0d0022000,
	0x0d0206004,
	0x04000061a,
	0x04000066c,
	0x001000000,
	0x0ce206014,
	0x0d40060a8,
	0x0d402a000,
	0x0d4206004,
	0x040000614,
	0x040000666,
	0x001000000,
	0x0ce206010,
	0x0d400609c,


@@ 80,129 123,126 @@ ulong bootcode[]={
	0x0d2206008,
	0x0d4006010,
	0x0d420600c,
	0x040000681,
	0x0400006d3,
	0x001000000,
	0x090100007,
	0x0d2006014,
	0x080a1c009,
	0x002800006,
	0x001000000,
	0x09000b210,
	0x09000b22a,
	0x0d0206004,
	0x040000462,
	0x0400004b4,
	0x001000000,
	0x0d200609c,
	0x0d2206004,
	0x040000644,
	0x040000696,
	0x001000000,
	0x096100000,
	0x0d00060a4,
	0x080a2c008,
	0x016800011,
	0x001000000,
	0x09200b232,
	0x0d2206004,
	0x0d6206008,
	0x0d620609c,
	0x0932ae002,
	0x0d00060a8,
	0x092024008,
	0x0d2026000,
	0x0d220600c,
	0x040000565,
	0x001000000,
	0x0d000609c,
	0x096022001,
	0x010bfffef,
	0x001000000,
	0x0d00060a8,
	0x096022004,
	0x0d62060a8,
	0x0d20060a4,
	0x098027fff,
	0x090002001,
	0x0d0206098,
	0x0d82060a4,
	0x080a30000,
	0x004800013,
	0x001000000,
	0x0d202e000,
	0x0d24a6000,
	0x080a2602d,
	0x0d002e000,
	0x0d04a2000,
	0x080a2202d,
	0x01280000e,
	0x001000000,
	0x0d002e000,
	0x0d04a2001,
	0x080a2206d,
	0x0d202e000,
	0x0d24a6001,
	0x080a2606d,
	0x012800004,
	0x001000000,
	0x092002001,
	0x0d2206098,
	0x090002001,
	0x0d0206098,
	0x098033fff,
	0x09602e004,
	0x0d62060a8,
	0x010bfffed,
	0x001000000,
	0x09000b002,
	0x0d0206004,
	0x09200b218,
	0x0d2206008,
	0x0400005b9,
	0x001000000,
	0x09000b696,
	0x0d0206004,
	0x09200b21f,
	0x0d2206008,
	0x0400005b3,
	0x001000000,
	0x0d80060a8,
	0x09600b696,
	0x0d00060a4,
	0x080a22001,
	0x002800033,
	0x09200b002,
	0x0d2206004,
	0x09000b241,
	0x0d0206008,
	0x0400005f5,
	0x001000000,
	0x080a22002,
	0x0d20060a4,
	0x080a26002,
	0x002800021,
	0x001000000,
	0x0d0006098,
	0x0d0206004,
	0x0400001d4,
	0x0d2006098,
	0x0d2206004,
	0x0400001cf,
	0x001000000,
	0x0d600b0a2,
	0x09210000b,
	0x0d600b0aa,
	0x09010000b,
	0x080a2c000,
	0x004800006,
	0x001000000,
	0x09010000b,
	0x09210000b,
	0x0d6206004,
	0x040000608,
	0x04000064f,
	0x001000000,
	0x0d200b07a,
	0x080a24000,
	0x0d000b07e,
	0x080a20000,
	0x004800006,
	0x001000000,
	0x0d000b07a,
	0x0d0206004,
	0x040000600,
	0x0d200b07e,
	0x0d2206004,
	0x040000647,
	0x001000000,
	0x092100000,
	0x0c020b07a,
	0x0c020b0a2,
	0x090002001,
	0x0d0206004,
	0x0400001bc,
	0x090100000,
	0x0c020b07e,
	0x0c020b0aa,
	0x092002001,
	0x0d2206004,
	0x0400001b7,
	0x001000000,
	0x0d600b0a2,
	0x0d600b0aa,
	0x010bfffe8,
	0x001000000,
	0x09010000b,
	0x0d6206004,
	0x0d2032000,
	0x0d2206008,
	0x040000585,
	0x001000000,
	0x09000b002,
	0x0d0206004,
	0x0d20060a8,
	0x0d2026004,
	0x0d2206008,
	0x04000057e,
	0x001000000,
	0x010bfffd4,
	0x001000000,
	0x09010000b,
	0x0d6206004,
	0x0d2032000,
	0x0d2206008,
	0x040000576,
	0x09200b002,
	0x0d2206004,
	0x0d00060a8,
	0x0d0022004,
	0x0d0206008,
	0x0400005cb,
	0x001000000,
	0x010bfffcc,
	0x010bfffda,
	0x001000000,
	0x08220600c,
	0x0de206000,
	0x09200b227,
	0x0d2206004,
	0x090002002,
	0x0d0206008,
	0x0400005f5,
	0x09000b248,
	0x0d0206004,
	0x092002002,
	0x0d2206008,
	0x04000064a,
	0x001000000,
	0x0d0006000,
	0x08200600c,


@@ 210,54 250,55 @@ ulong bootcode[]={
	0x001000000,
	0x082206024,
	0x0de206000,
	0x09600b0a6,
	0x0d202e000,
	0x080a24000,
	0x00280000d,
	0x09600b0ae,
	0x0d002e000,
	0x080a20000,
	0x00280000e,
	0x001000000,
	0x0d6206014,
	0x0d202e000,
	0x0d2206004,
	0x0d002e000,
	0x0d0206004,
	0x0d4006028,
	0x0d4206008,
	0x04000052e,
	0x040000583,
	0x001000000,
	0x0d6006014,
	0x092100007,
	0x080a1c000,
	0x0128000cf,
	0x0128000d3,
	0x001000000,
	0x0d6206014,
	0x0d002e000,
	0x080a20000,
	0x01280000b,
	0x001000000,
	0x09200b22f,
	0x09200b250,
	0x0d2206004,
	0x040000497,
	0x0400004eb,
	0x001000000,
	0x08e003fff,
	0x0d0006000,
	0x082006024,
	0x081c22008,
	0x001000000,
	0x0d000b082,
	0x0d000b086,
	0x080a20000,
	0x012800062,
	0x001000000,
	0x09000b25d,
	0x09000b27e,
	0x0d0206004,
	0x094002002,
	0x0d4206008,
	0x0400005c7,
	0x04000061b,
	0x001000000,
	0x096100007,
	0x090100007,
	0x080a1c000,
	0x01680000b,
	0x001000000,
	0x09200b266,
	0x09200b287,
	0x0d2206004,
	0x0400003a6,
	0x0400003fa,
	0x001000000,
	0x08e003fff,
	0x0d0006000,


@@ 266,11 307,11 @@ ulong bootcode[]={
	0x001000000,
	0x0ce206020,
	0x0ce206004,
	0x09400b277,
	0x09400b298,
	0x0d4206008,
	0x09200200d,
	0x0d220600c,
	0x0400005c3,
	0x040000617,
	0x001000000,
	0x0d6006020,
	0x090100007,


@@ 279,11 320,11 @@ ulong bootcode[]={
	0x001000000,
	0x09010000b,
	0x0d6206004,
	0x04000058a,
	0x0400005de,
	0x001000000,
	0x09200b285,
	0x09200b2a6,
	0x0d2206004,
	0x04000038c,
	0x0400003e0,
	0x001000000,
	0x08e003fff,
	0x0d0006000,


@@ 291,11 332,11 @@ ulong bootcode[]={
	0x081c22008,
	0x001000000,
	0x0d6206004,
	0x09400b293,
	0x09400b2b4,
	0x0d4206008,
	0x09200200c,
	0x0d220600c,
	0x0400005aa,
	0x0400005fe,
	0x001000000,
	0x0d6006020,
	0x090100007,


@@ 304,11 345,11 @@ ulong bootcode[]={
	0x001000000,
	0x09010000b,
	0x0d6206004,
	0x040000571,
	0x0400005c5,
	0x001000000,
	0x09200b2a0,
	0x09200b2c1,
	0x0d2206004,
	0x040000373,
	0x0400003c7,
	0x001000000,
	0x08e003fff,
	0x0d0006000,


@@ 316,22 357,22 @@ ulong bootcode[]={
	0x081c22008,
	0x001000000,
	0x0d6206004,
	0x09400b2ad,
	0x09400b2ce,
	0x0d4206008,
	0x09200200c,
	0x0d220600c,
	0x040000591,
	0x0400005e5,
	0x001000000,
	0x080a1c000,
	0x01680000f,
	0x001000000,
	0x0d0006020,
	0x0d0206004,
	0x04000055a,
	0x0400005ae,
	0x001000000,
	0x09200b2ba,
	0x09200b2db,
	0x0d2206004,
	0x04000035c,
	0x0400003b0,
	0x001000000,
	0x08e003fff,
	0x0d0006000,


@@ 339,12 380,12 @@ ulong bootcode[]={
	0x081c22008,
	0x001000000,
	0x090002001,
	0x0d020b082,
	0x09000b2c7,
	0x0d020b086,
	0x09000b2e8,
	0x0d0206004,
	0x094002002,
	0x0d4206008,
	0x040000567,
	0x0400005bb,
	0x001000000,
	0x096100007,
	0x090100007,


@@ 352,20 393,20 @@ ulong bootcode[]={
	0x080a1c000,
	0x01680000b,
	0x001000000,
	0x09200b2d6,
	0x09200b2f7,
	0x0d2206004,
	0x040000345,
	0x040000399,
	0x001000000,
	0x08e003fff,
	0x0d0006000,
	0x082006024,
	0x081c22008,
	0x001000000,
	0x09200b2ed,
	0x09200b30e,
	0x0d2206004,
	0x094002002,
	0x0d4206008,
	0x040000552,
	0x0400005a6,
	0x001000000,
	0x090100007,
	0x096100007,


@@ 376,12 417,12 @@ ulong bootcode[]={
	0x001000000,
	0x0d0006018,
	0x0d0206004,
	0x040000529,
	0x04000057d,
	0x001000000,
	0x092003fff,
	0x09000b2fb,
	0x09000b31c,
	0x0d0206004,
	0x04000032a,
	0x04000037e,
	0x001000000,
	0x08e003fff,
	0x0d0006000,


@@ 391,7 432,7 @@ ulong bootcode[]={
	0x0d4006014,
	0x0d402a004,
	0x0d4206004,
	0x0400004d3,
	0x040000527,
	0x001000000,
	0x0ce206010,
	0x0d400601c,


@@ 401,7 442,7 @@ ulong bootcode[]={
	0x0d0206008,
	0x0d4006010,
	0x0d420600c,
	0x040000540,
	0x040000594,
	0x001000000,
	0x092100007,
	0x080a1c000,


@@ 409,53 450,57 @@ ulong bootcode[]={
	0x001000000,
	0x0d000601c,
	0x0d0206004,
	0x040000508,
	0x04000055c,
	0x001000000,
	0x0d2006018,
	0x0d2206004,
	0x040000504,
	0x040000558,
	0x001000000,
	0x090003fff,
	0x0d2006014,
	0x0d2026004,
	0x0d2206004,
	0x040000304,
	0x040000358,
	0x001000000,
	0x08e003fff,
	0x0d0006000,
	0x082006024,
	0x081c22008,
	0x001000000,
	0x09000b332,
	0x0d020b08e,
	0x09200b338,
	0x0d220b06e,
	0x0ce006018,
	0x0d0006000,
	0x082006024,
	0x081c22008,
	0x001000000,
	0x09002e008,
	0x096100008,
	0x010bfff22,
	0x09202e008,
	0x096100009,
	0x010bfff1d,
	0x001000000,
	0x082206058,
	0x0de206000,
	0x0d000b0da,
	0x0d000b0e2,
	0x080a20000,
	0x01280004d,
	0x001000000,
	0x09000b311,
	0x09000b340,
	0x0d0206004,
	0x094002002,
	0x0d4206008,
	0x040000502,
	0x040000552,
	0x001000000,
	0x096100007,
	0x090100007,
	0x0ce20b07e,
	0x0ce20b082,
	0x080a1c000,
	0x01680000b,
	0x001000000,
	0x09200b318,
	0x09200b347,
	0x0d2206004,
	0x0400002e0,
	0x040000330,
	0x001000000,
	0x08e003fff,
	0x0d0006000,


@@ 463,24 508,24 @@ ulong bootcode[]={
	0x081c22008,
	0x001000000,
	0x0ce206004,
	0x09400b327,
	0x09400b356,
	0x0d4206008,
	0x09200200a,
	0x0d220600c,
	0x0400004fe,
	0x04000054e,
	0x001000000,
	0x0d600b07e,
	0x0d600b082,
	0x090100007,
	0x080a1c000,
	0x01680000f,
	0x001000000,
	0x09010000b,
	0x0d6206004,
	0x0400004c5,
	0x040000515,
	0x001000000,
	0x09200b332,
	0x09200b361,
	0x0d2206004,
	0x0400002c7,
	0x040000317,
	0x001000000,
	0x08e003fff,
	0x0d0006000,


@@ 488,22 533,22 @@ ulong bootcode[]={
	0x081c22008,
	0x001000000,
	0x0d6206004,
	0x09400b33d,
	0x09400b36c,
	0x0d4206008,
	0x092002017,
	0x0d220600c,
	0x0400004e5,
	0x040000535,
	0x001000000,
	0x080a1c000,
	0x01680000f,
	0x001000000,
	0x0d000b07e,
	0x0d000b082,
	0x0d0206004,
	0x0400004ae,
	0x0400004fe,
	0x001000000,
	0x09200b355,
	0x09200b384,
	0x0d2206004,
	0x0400002b0,
	0x040000300,
	0x001000000,
	0x08e003fff,
	0x0d0006000,


@@ 511,16 556,16 @@ ulong bootcode[]={
	0x081c22008,
	0x001000000,
	0x090002001,
	0x0d020b0da,
	0x0d020b0e2,
	0x0920027d0,
	0x0d2206004,
	0x0400004c9,
	0x040000519,
	0x001000000,
	0x09200b36d,
	0x09200b39c,
	0x0d2206004,
	0x094002002,
	0x0d4206008,
	0x0400004b7,
	0x040000507,
	0x001000000,
	0x096100007,
	0x092100007,


@@ 528,35 573,35 @@ ulong bootcode[]={
	0x080a1c000,
	0x01680000b,
	0x001000000,
	0x09000b379,
	0x09000b3a8,
	0x0d0206004,
	0x040000295,
	0x0400002e5,
	0x001000000,
	0x08e003fff,
	0x0d0006000,
	0x082006058,
	0x081c22008,
	0x001000000,
	0x09000b38d,
	0x09000b3bc,
	0x0d0206004,
	0x094002002,
	0x0d4206008,
	0x0400004a2,
	0x0400004f2,
	0x001000000,
	0x096100007,
	0x090100007,
	0x0ce20b07a,
	0x0ce20b07e,
	0x080a1c000,
	0x016800010,
	0x001000000,
	0x0d2006054,
	0x0d2206004,
	0x04000047a,
	0x0400004ca,
	0x001000000,
	0x090003fff,
	0x09200b398,
	0x09200b3c7,
	0x0d2206004,
	0x04000027b,
	0x0400002cb,
	0x001000000,
	0x08e003fff,
	0x0d0006000,


@@ 565,163 610,167 @@ ulong bootcode[]={
	0x001000000,
	0x090006014,
	0x0d0206004,
	0x09200b3ab,
	0x09200b3da,
	0x0d2206008,
	0x0d000605c,
	0x0d020600c,
	0x0400003b7,
	0x040000407,
	0x001000000,
	0x094006014,
	0x0d4206004,
	0x04000041d,
	0x04000046d,
	0x001000000,
	0x0ce206010,
	0x0d400b07a,
	0x0d400b07e,
	0x0d4206004,
	0x090006014,
	0x0d0206008,
	0x0d4006010,
	0x0d420600c,
	0x04000048b,
	0x0400004db,
	0x001000000,
	0x092100007,
	0x080a1c000,
	0x016800015,
	0x001000000,
	0x0d000b07a,
	0x0d000b07e,
	0x0d0206004,
	0x040000453,
	0x0400004a3,
	0x001000000,
	0x0d2006054,
	0x0d2206004,
	0x04000044f,
	0x04000049f,
	0x001000000,
	0x090003fff,
	0x0d020b07a,
	0x0d020b07e,
	0x092006014,
	0x0d2206004,
	0x04000024f,
	0x04000029f,
	0x001000000,
	0x08e003fff,
	0x0d0006000,
	0x082006058,
	0x081c22008,
	0x001000000,
	0x09000b3e5,
	0x0d020b08e,
	0x09200b3e8,
	0x0d220b06e,
	0x0ce006054,
	0x0d0006000,
	0x082006058,
	0x081c22008,
	0x001000000,
	0x08220602c,
	0x0822060ac,
	0x0de206000,
	0x0d800b0a2,
	0x0d0006030,
	0x0d800b0aa,
	0x0d00060b0,
	0x080a20000,
	0x00280000b,
	0x001000000,
	0x09200b3b6,
	0x09200b3ed,
	0x0d2206004,
	0x09000b002,
	0x0d0206008,
	0x09200201c,
	0x0d220600c,
	0x040000261,
	0x0400002ad,
	0x001000000,
	0x0d800b0a2,
	0x0d800b0aa,
	0x096100000,
	0x09210000b,
	0x0d6206020,
	0x0d62060a0,
	0x080a2e005,
	0x01680001c,
	0x001000000,
	0x090003fff,
	0x0d020b0a2,
	0x0d020b0aa,
	0x09000b002,
	0x0d0206004,
	0x09400b3bd,
	0x09400b3f4,
	0x0d4206008,
	0x090002004,
	0x0d020600c,
	0x0400003e5,
	0x040000431,
	0x001000000,
	0x09600b002,
	0x092100007,
	0x080a1c000,
	0x0128001f0,
	0x01280023c,
	0x001000000,
	0x09002e004,
	0x0d020601c,
	0x0d020609c,
	0x0d0206004,
	0x07ffffe38,
	0x07ffffe2f,
	0x001000000,
	0x098100007,
	0x09210000c,
	0x0d820b0a2,
	0x0d820b0aa,
	0x080a30000,
	0x0068001d8,
	0x006800224,
	0x001000000,
	0x09010000c,
	0x080a30000,
	0x01680000a,
	0x001000000,
	0x09200b3e9,
	0x09200b420,
	0x0d2206004,
	0x0400002e6,
	0x040000332,
	0x001000000,
	0x0d0006000,
	0x08200602c,
	0x0820060ac,
	0x081c22008,
	0x001000000,
	0x09000b3f8,
	0x09000b42f,
	0x0d0206004,
	0x0400002de,
	0x04000032a,
	0x001000000,
	0x092002032,
	0x0d228a722,
	0x0d228a706,
	0x090003fff,
	0x0d030a726,
	0x09000a722,
	0x0d030a70a,
	0x09000a706,
	0x0d0206004,
	0x09400b722,
	0x09400b706,
	0x0d4206008,
	0x04000042b,
	0x040000477,
	0x001000000,
	0x096100007,
	0x0d200b0a2,
	0x0d200b0aa,
	0x0d2206004,
	0x09400b722,
	0x09400b706,
	0x0d4206008,
	0x092100007,
	0x0ce206028,
	0x0ce2060a8,
	0x0ce20600c,
	0x04000041b,
	0x040000467,
	0x001000000,
	0x0d6006028,
	0x0d60060a8,
	0x09410000b,
	0x080a1c00b,
	0x002800010,
	0x001000000,
	0x09000b3ff,
	0x09000b436,
	0x0d0206004,
	0x09210000b,
	0x0d6206008,
	0x0400002bf,
	0x04000030b,
	0x001000000,
	0x09000b407,
	0x09000b43e,
	0x0d0206004,
	0x0400001e2,
	0x04000022e,
	0x001000000,
	0x0d0006000,
	0x08200602c,
	0x0820060ac,
	0x081c22008,
	0x001000000,
	0x0d000b0a2,
	0x0d000b0aa,
	0x0d0206004,
	0x09400b722,
	0x09400b706,
	0x0d4206008,
	0x011000004,
	0x0d020600c,
	0x0400003f4,
	0x040000440,
	0x001000000,
	0x092100007,
	0x096100007,


@@ 729,12 778,12 @@ ulong bootcode[]={
	0x080a1c000,
	0x01480000a,
	0x001000000,
	0x09200b411,
	0x09200b448,
	0x0d2206004,
	0x0400001cc,
	0x040000218,
	0x001000000,
	0x0d0006000,
	0x08200602c,
	0x0820060ac,
	0x081c22008,
	0x001000000,
	0x080a1e002,


@@ 742,395 791,471 @@ ulong bootcode[]={
	0x001000000,
	0x010bfffe7,
	0x001000000,
	0x09000b722,
	0x09000b706,
	0x0d0206004,
	0x09400a722,
	0x09400a706,
	0x0d4206008,
	0x090100007,
	0x0ce206028,
	0x0ce2060a8,
	0x0ce20600c,
	0x040000741,
	0x04000078d,
	0x001000000,
	0x092100007,
	0x080a1c000,
	0x012800020,
	0x001000000,
	0x09200b41a,
	0x09200b451,
	0x0d2206004,
	0x0d0006028,
	0x0d00060a8,
	0x0d0206008,
	0x0d248b722,
	0x0d248b706,
	0x0932a6018,
	0x0933a6018,
	0x0d220600c,
	0x0d048b723,
	0x0d048b707,
	0x0912a2018,
	0x0913a2018,
	0x0d0206010,
	0x0d248b724,
	0x0d248b708,
	0x0932a6018,
	0x0933a6018,
	0x0d2206014,
	0x0d048b725,
	0x0d048b709,
	0x0912a2018,
	0x0913a2018,
	0x0d0206018,
	0x040000279,
	0x0400002c5,
	0x001000000,
	0x09200b43d,
	0x09200b474,
	0x0d2206004,
	0x04000019c,
	0x0400001e8,
	0x001000000,
	0x0d0006000,
	0x08200602c,
	0x0820060ac,
	0x081c22008,
	0x001000000,
	0x0d048a722,
	0x0d048a706,
	0x080a22033,
	0x00280000a,
	0x001000000,
	0x09200b448,
	0x09200b47f,
	0x0d2206004,
	0x040000190,
	0x0400001dc,
	0x001000000,
	0x0d0006000,
	0x08200602c,
	0x0820060ac,
	0x081c22008,
	0x001000000,
	0x0d050a726,
	0x0d050a70a,
	0x080a23fff,
	0x00280000a,
	0x001000000,
	0x09200b451,
	0x09200b488,
	0x0d2206004,
	0x040000184,
	0x0400001d0,
	0x001000000,
	0x0d0006000,
	0x08200602c,
	0x0820060ac,
	0x081c22008,
	0x001000000,
	0x09000b45c,
	0x09000b493,
	0x0d0206004,
	0x040000255,
	0x0400002a1,
	0x001000000,
	0x092002034,
	0x0d228a722,
	0x0d228a706,
	0x090003fff,
	0x0d030a726,
	0x09000a722,
	0x0d030a70a,
	0x09000a706,
	0x0d0206004,
	0x09400b722,
	0x09400b706,
	0x0d4206008,
	0x0400003a2,
	0x0400003ee,
	0x001000000,
	0x096100007,
	0x0d200b0a2,
	0x0d200b0aa,
	0x0d2206004,
	0x09400b722,
	0x09400b706,
	0x0d4206008,
	0x092100007,
	0x0ce206028,
	0x0ce2060a8,
	0x0ce20600c,
	0x040000392,
	0x0400003de,
	0x001000000,
	0x0d4006028,
	0x0d40060a8,
	0x080a1c00a,
	0x00280000a,
	0x001000000,
	0x09000b467,
	0x09000b49e,
	0x0d0206004,
	0x040000160,
	0x0400001ac,
	0x001000000,
	0x0d0006000,
	0x08200602c,
	0x0820060ac,
	0x081c22008,
	0x001000000,
	0x0d000b0a2,
	0x0d000b0aa,
	0x0d0206004,
	0x09400b722,
	0x09400b706,
	0x0d4206008,
	0x011000004,
	0x0d020600c,
	0x040000372,
	0x0400003be,
	0x001000000,
	0x096100007,
	0x090100007,
	0x080a1c000,
	0x01480000a,
	0x001000000,
	0x09200b475,
	0x09200b4ac,
	0x0d2206004,
	0x04000014b,
	0x040000197,
	0x001000000,
	0x0d0006000,
	0x08200602c,
	0x0820060ac,
	0x081c22008,
	0x001000000,
	0x09200b722,
	0x09200b706,
	0x0d2206004,
	0x09400a722,
	0x09400a706,
	0x0d4206008,
	0x092100007,
	0x0ce20600c,
	0x0400006c6,
	0x040000712,
	0x001000000,
	0x090100007,
	0x080a1c000,
	0x01280000a,
	0x001000000,
	0x09000b482,
	0x09000b4b9,
	0x0d0206004,
	0x040000137,
	0x040000183,
	0x001000000,
	0x0d0006000,
	0x08200602c,
	0x0820060ac,
	0x081c22008,
	0x001000000,
	0x0d250a726,
	0x0d250a70a,
	0x080a27fff,
	0x00280000a,
	0x001000000,
	0x09000b491,
	0x09000b4c8,
	0x0d0206004,
	0x04000012b,
	0x040000177,
	0x001000000,
	0x0d0006000,
	0x08200602c,
	0x0820060ac,
	0x081c22008,
	0x001000000,
	0x0d248a722,
	0x0d248a706,
	0x080a26037,
	0x01280000f,
	0x001000000,
	0x090002002,
	0x0d0206004,
	0x09200b49c,
	0x09200b4d3,
	0x0d2206008,
	0x09000a722,
	0x09000a706,
	0x090022008,
	0x0d020600c,
	0x04000022a,
	0x040000276,
	0x001000000,
	0x0d0006000,
	0x08200602c,
	0x0820060ac,
	0x081c22008,
	0x001000000,
	0x0d248a722,
	0x0d248a706,
	0x080a26035,
	0x00280000a,
	0x001000000,
	0x09000b4ac,
	0x09000b4e3,
	0x0d0206004,
	0x04000010e,
	0x04000015a,
	0x001000000,
	0x0d0006000,
	0x08200602c,
	0x0820060ac,
	0x081c22008,
	0x001000000,
	0x09200b4b9,
	0x09200b4f0,
	0x0d2206004,
	0x0400001df,
	0x04000022b,
	0x001000000,
	0x09000b722,
	0x09000b706,
	0x0d0206004,
	0x09200b4c1,
	0x09200b4f8,
	0x0d2206008,
	0x0d000601c,
	0x0d000609c,
	0x0d020600c,
	0x040000247,
	0x040000293,
	0x001000000,
	0x09000b722,
	0x09000b706,
	0x0d0206004,
	0x094002001,
	0x0d4206008,
	0x0900021b6,
	0x0d020600c,
	0x0400002f6,
	0x040000342,
	0x001000000,
	0x096100007,
	0x090100007,
	0x0ce206024,
	0x0ce2060a4,
	0x080a1c000,
	0x016800006,
	0x001000000,
	0x09200b4c7,
	0x09200b4fe,
	0x0d2206004,
	0x040000100,
	0x04000014c,
	0x001000000,
	0x09000b722,
	0x09000b706,
	0x0d0206004,
	0x09200b4ce,
	0x09200b505,
	0x0d2206008,
	0x0d000b0a2,
	0x0d000b0aa,
	0x0d020600c,
	0x04000022d,
	0x040000279,
	0x001000000,
	0x09200b722,
	0x09200b706,
	0x0d2206004,
	0x040000293,
	0x0400002df,
	0x001000000,
	0x0ce206018,
	0x09400b722,
	0x09400b706,
	0x0d4206004,
	0x04000028e,
	0x0400002da,
	0x001000000,
	0x0ce206014,
	0x0d4006024,
	0x0d40060a4,
	0x0d4206004,
	0x09200b722,
	0x09200b706,
	0x0d2206008,
	0x0d4006014,
	0x0d420600c,
	0x0400002fc,
	0x040000348,
	0x001000000,
	0x090100007,
	0x0d2006018,
	0x080a1c009,
	0x002800006,
	0x001000000,
	0x09000b4d1,
	0x09000b508,
	0x0d0206004,
	0x0400000dd,
	0x040000129,
	0x001000000,
	0x0d2006024,
	0x0d20060a4,
	0x0d2206004,
	0x0400002bf,
	0x04000030b,
	0x001000000,
	0x09200b4d7,
	0x09200b50e,
	0x0d2206004,
	0x094002001,
	0x0d4206008,
	0x0920021b6,
	0x0d220600c,
	0x0400002bd,
	0x040000309,
	0x001000000,
	0x096100007,
	0x092100007,
	0x0ce206024,
	0x0ce2060a4,
	0x080a1c000,
	0x016800006,
	0x001000000,
	0x09000b4df,
	0x09000b516,
	0x0d0206004,
	0x0400000c7,
	0x040000113,
	0x001000000,
	0x09200b722,
	0x09200b706,
	0x0d2206004,
	0x09000b4e6,
	0x09000b51d,
	0x0d0206008,
	0x0d200b0a2,
	0x0d200b0aa,
	0x0d220600c,
	0x0400001f4,
	0x040000240,
	0x001000000,
	0x09000b722,
	0x09000b706,
	0x0d0206004,
	0x04000025a,
	0x0400002a6,
	0x001000000,
	0x0ce206018,
	0x09400b722,
	0x09400b706,
	0x0d4206004,
	0x040000255,
	0x0400002a1,
	0x001000000,
	0x0ce206014,
	0x0d4006024,
	0x0d40060a4,
	0x0d4206004,
	0x09200b722,
	0x09200b706,
	0x0d2206008,
	0x0d4006014,
	0x0d420600c,
	0x0400002c3,
	0x04000030f,
	0x001000000,
	0x090100007,
	0x0d2006018,
	0x080a1c009,
	0x002800006,
	0x001000000,
	0x09000b4e9,
	0x09000b520,
	0x0d0206004,
	0x0400000a4,
	0x0400000f0,
	0x001000000,
	0x0d2006024,
	0x0d20060a4,
	0x0d2206004,
	0x040000286,
	0x0400002d2,
	0x001000000,
	0x09000b4ef,
	0x09000b526,
	0x0d0206004,
	0x040000161,
	0x0400001ad,
	0x001000000,
	0x09000b4f8,
	0x09000b52f,
	0x0d0206004,
	0x09400b4fa,
	0x09400b531,
	0x0d4206008,
	0x0c020600c,
	0x040000275,
	0x0400002c1,
	0x001000000,
	0x092100007,
	0x080a1c000,
	0x016800006,
	0x001000000,
	0x09000b4fc,
	0x09000b533,
	0x0d0206004,
	0x04000008d,
	0x0400000d9,
	0x001000000,
	0x0d000b0a2,
	0x0d000b0aa,
	0x0d0206004,
	0x09400b501,
	0x09400b538,
	0x0d4206008,
	0x090002006,
	0x0d020600c,
	0x09400b503,
	0x09400b53a,
	0x0d4206010,
	0x09000b504,
	0x09000b53b,
	0x0d0206014,
	0x04000027f,
	0x0400002cb,
	0x001000000,
	0x092100007,
	0x080a1c000,
	0x016800006,
	0x001000000,
	0x09200b505,
	0x09200b53c,
	0x0d2206004,
	0x040000079,
	0x0400000c5,
	0x001000000,
	0x09000b50b,
	0x09000b542,
	0x0d0206004,
	0x04000013a,
	0x040000186,
	0x001000000,
	0x0d200b0a2,
	0x0d200b0aa,
	0x0d2206004,
	0x040000257,
	0x0400002a3,
	0x001000000,
	0x0d0006030,
	0x0d000b08e,
	0x080a20000,
	0x002800013,
	0x002800046,
	0x001000000,
	0x09200b514,
	0x09000b54b,
	0x0d0206004,
	0x094002001,
	0x0d4206008,
	0x0900021b6,
	0x0d020600c,
	0x04000029d,
	0x001000000,
	0x096100007,
	0x090100007,
	0x0ce20b0aa,
	0x080a1c000,
	0x006800038,
	0x001000000,
	0x0d200b08e,
	0x0d2206004,
	0x09000b51f,
	0x0d0206008,
	0x09200b524,
	0x0d220600c,
	0x0c0206010,
	0x04000011c,
	0x040000246,
	0x001000000,
	0x0ce206018,
	0x0d400b08e,
	0x0d4206004,
	0x040000241,
	0x001000000,
	0x0ce206014,
	0x0d400b0aa,
	0x0d4206004,
	0x0d200b08e,
	0x0d2206008,
	0x0d4006014,
	0x0d420600c,
	0x0400002af,
	0x001000000,
	0x09000b537,
	0x090100007,
	0x0d2006018,
	0x080a1c009,
	0x002800006,
	0x001000000,
	0x09000b556,
	0x0d0206004,
	0x040000090,
	0x001000000,
	0x0d200b0aa,
	0x0d2206004,
	0x040000272,
	0x001000000,
	0x09000601c,
	0x0d0206004,
	0x09200b566,
	0x0d2206008,
	0x0d000b08e,
	0x0d020600c,
	0x0400001b9,
	0x001000000,
	0x0d000b06e,
	0x0d0206004,
	0x09400601c,
	0x0d4206008,
	0x0c020600c,
	0x04000025d,
	0x001000000,
	0x092100007,
	0x080a1c000,
	0x016800006,
	0x001000000,
	0x09000b56e,
	0x0d0206004,
	0x040000075,
	0x001000000,
	0x0d20060b0,
	0x080a24000,
	0x002800015,
	0x001000000,
	0x09000b57e,
	0x0d0206004,
	0x040000060,
	0x09200b58a,
	0x0d2206008,
	0x09000b58f,
	0x0d020600c,
	0x09200b592,
	0x0d2206010,
	0x0c0206014,
	0x04000011e,
	0x001000000,
	0x09200b5a9,
	0x0d2206004,
	0x040000062,
	0x001000000,
	0x0d0006000,
	0x08200602c,
	0x0820060ac,
	0x081c22008,
	0x001000000,
	0x09000b527,
	0x09000b595,
	0x0d0206004,
	0x09200b532,
	0x09200b5a1,
	0x0d2206008,
	0x0c020600c,
	0x09000b5a6,
	0x0d020600c,
	0x0c0206010,
	0x04000010d,
	0x001000000,
	0x010bffff1,
	0x010bfffef,
	0x001000000,
	0x09000b3cd,
	0x09000b404,
	0x0d0206004,
	0x040000114,
	0x001000000,


@@ 1138,13 1263,13 @@ ulong bootcode[]={
	0x0d2206004,
	0x04000025b,
	0x001000000,
	0x0d800b0a2,
	0x0d0006020,
	0x0d800b0aa,
	0x0d00060a0,
	0x096022001,
	0x010bffe00,
	0x010bffdb4,
	0x001000000,
	0x0d6206004,
	0x09400b3c2,
	0x09400b3f9,
	0x0d4206008,
	0x092002003,
	0x0d220600c,


@@ 1156,15 1281,15 @@ ulong bootcode[]={
	0x01280000a,
	0x001000000,
	0x09202e003,
	0x0d220601c,
	0x0d220609c,
	0x0d2206004,
	0x07ffffd2d,
	0x07ffffcdd,
	0x001000000,
	0x098100007,
	0x010bffe06,
	0x010bffdba,
	0x001000000,
	0x0d6206004,
	0x09400b3c6,
	0x09400b3fd,
	0x0d4206008,
	0x090002006,
	0x0d020600c,


@@ 1176,35 1301,35 @@ ulong bootcode[]={
	0x01280000a,
	0x001000000,
	0x09002e006,
	0x0d020601c,
	0x0d020609c,
	0x0d0206004,
	0x07ffffc36,
	0x07ffffbe1,
	0x001000000,
	0x098100007,
	0x010bffdf2,
	0x010bffda6,
	0x001000000,
	0x09210000b,
	0x0d620601c,
	0x0d620609c,
	0x0d6206004,
	0x07ffffc2e,
	0x07ffffbd9,
	0x001000000,
	0x098100007,
	0x010bffdea,
	0x010bffd9e,
	0x001000000,
	0x082206054,
	0x0de206000,
	0x092006014,
	0x0d2206004,
	0x090006014,
	0x0d0206004,
	0x040000202,
	0x001000000,
	0x090002002,
	0x0d0206004,
	0x09200b542,
	0x0d2206008,
	0x0d0006058,
	0x0d020600c,
	0x092006014,
	0x0d2206010,
	0x092002002,
	0x0d2206004,
	0x09000b5b5,
	0x0d0206008,
	0x0d2006058,
	0x0d220600c,
	0x090006014,
	0x0d0206010,
	0x040000102,
	0x001000000,
	0x0d0006000,


@@ 1213,18 1338,18 @@ ulong bootcode[]={
	0x001000000,
	0x082206054,
	0x0de206000,
	0x090006014,
	0x0d0206004,
	0x092006014,
	0x0d2206004,
	0x0400001ee,
	0x001000000,
	0x092002002,
	0x0d2206004,
	0x09000b550,
	0x0d0206008,
	0x0d2006058,
	0x0d220600c,
	0x090006014,
	0x0d0206010,
	0x090002002,
	0x0d0206004,
	0x09200b5c3,
	0x0d2206008,
	0x0d0006058,
	0x0d020600c,
	0x092006014,
	0x0d2206010,
	0x0400000ee,
	0x001000000,
	0x0c0206004,


@@ 1236,49 1361,49 @@ ulong bootcode[]={
	0x001000000,
	0x082206114,
	0x0de206000,
	0x09000b55e,
	0x0d0206004,
	0x0d2006118,
	0x0d2206008,
	0x0d000611c,
	0x0d020600c,
	0x09200b5d1,
	0x0d2206004,
	0x0d0006118,
	0x0d0206008,
	0x0d200611c,
	0x0d220600c,
	0x0400000a6,
	0x001000000,
	0x0c0206004,
	0x090006010,
	0x0d0206008,
	0x092006010,
	0x0d2206008,
	0x0d4006120,
	0x0d420600c,
	0x0400001e4,
	0x001000000,
	0x092100007,
	0x090100007,
	0x096100007,
	0x080a1c000,
	0x012800004,
	0x001000000,
	0x010bfffec,
	0x001000000,
	0x090100007,
	0x092100007,
	0x0ce206110,
	0x080a1c000,
	0x016800007,
	0x001000000,
	0x09200b567,
	0x0d2206004,
	0x09000b5da,
	0x0d0206004,
	0x07fffffca,
	0x001000000,
	0x0d6006110,
	0x09010000b,
	0x09210000b,
	0x080a2e001,
	0x00280000c,
	0x001000000,
	0x092006010,
	0x09202c009,
	0x0c02a7fff,
	0x0d200611c,
	0x0d2206004,
	0x090006010,
	0x0d0206008,
	0x09002c008,
	0x0c02a3fff,
	0x0d000611c,
	0x0d0206004,
	0x092006010,
	0x0d2206008,
	0x040000137,
	0x001000000,
	0x0d6006110,


@@ 1289,7 1414,7 @@ ulong bootcode[]={
	0x001000000,
	0x082206008,
	0x09a100000,
	0x09800b612,
	0x09800b682,
	0x096100000,
	0x09210000b,
	0x080a2e021,


@@ 1321,7 1446,7 @@ ulong bootcode[]={
	0x082206008,
	0x0da00600c,
	0x098100000,
	0x09600b612,
	0x09600b682,
	0x094100000,
	0x09210000a,
	0x080a2a021,


@@ 1352,7 1477,7 @@ ulong bootcode[]={
	0x0c0206004,
	0x04000000a,
	0x001000000,
	0x09200b08a,
	0x09200b092,
	0x0d2206004,
	0x040000006,
	0x001000000,


@@ 1362,7 1487,7 @@ ulong bootcode[]={
	0x001000000,
	0x082206010,
	0x0de206000,
	0x09800b612,
	0x09800b682,
	0x094002020,
	0x09010000a,
	0x080a28000,


@@ 1382,7 1507,7 @@ ulong bootcode[]={
	0x09010000b,
	0x09fc22000,
	0x001000000,
	0x09800b612,
	0x09800b682,
	0x0d400600c,
	0x09402bfff,
	0x010bfffeb,


@@ 1445,9 1570,9 @@ ulong bootcode[]={
	0x080a1c000,
	0x01680000d,
	0x001000000,
	0x0d200b076,
	0x0d200b07a,
	0x092026001,
	0x0d220b076,
	0x0d220b07a,
	0x080a2600a,
	0x006800007,
	0x001000000,


@@ 1502,9 1627,9 @@ ulong bootcode[]={
	0x080a1c000,
	0x01680000d,
	0x001000000,
	0x0d200b076,
	0x0d200b07a,
	0x092026001,
	0x0d220b076,
	0x0d220b07a,
	0x080a2600a,
	0x006800007,
	0x001000000,


@@ 1523,7 1648,7 @@ ulong bootcode[]={
	0x08220601c,
	0x0de206000,
	0x0d6006020,
	0x0d000b072,
	0x0d000b076,
	0x0d0206014,
	0x0d6206004,
	0x01d000004,


@@ 1539,7 1664,7 @@ ulong bootcode[]={
	0x092100007,
	0x096100007,
	0x0d0006014,
	0x0d020b072,
	0x0d020b076,
	0x0d0006020,
	0x08e21c008,
	0x0d0006000,


@@ 3651,7 3776,7 @@ ulong bootcode[]={
	0x001000000,
	0x082206004,
	0x0da00b042,
	0x09800b58e,
	0x09800b5fe,
	0x0d048600b,
	0x0912a2018,
	0x0913a2018,


@@ 3683,7 3808,7 @@ ulong bootcode[]={
	0x0912a2018,
	0x0913a2018,
	0x0912a2002,
	0x09200b0e6,
	0x09200b0ee,
	0x090020009,
	0x0d400600c,
	0x0d4222000,


@@ 3699,13 3824,13 @@ ulong bootcode[]={
	0x0d8006040,
	0x0d000b03e,
	0x0d020601c,
	0x0d200b0d6,
	0x0d200b0de,
	0x0d2206018,
	0x0ec006038,
	0x0ec20b03e,
	0x0d200603c,
	0x092027fff,
	0x0d220b0d6,
	0x0d220b0de,
	0x09610000c,
	0x098032001,
	0x0d64ae000,


@@ 3717,7 3842,7 @@ ulong bootcode[]={
	0x080a2c000,
	0x012800012,
	0x001000000,
	0x0d000b0d6,
	0x0d000b0de,
	0x080a58008,
	0x00a800003,
	0x001000000,


@@ 3727,13 3852,13 @@ ulong bootcode[]={
	0x0d000601c,
	0x0d020b03e,
	0x0d2006018,
	0x0d220b0d6,
	0x0d220b0de,
	0x08e100016,
	0x0d0006000,
	0x082006034,
	0x081c22008,
	0x001000000,
	0x0d200b0d6,
	0x0d200b0de,
	0x080a58009,
	0x01a800007,
	0x001000000,


@@ 3742,22 3867,22 @@ ulong bootcode[]={
	0x0ec20b03e,
	0x09410000b,
	0x0d62a2000,
	0x0d000b072,
	0x0d000b076,
	0x090022001,
	0x0d020b072,
	0x0d020b076,
	0x080a2e00a,
	0x012800005,
	0x001000000,
	0x0e020b072,
	0x0e020b076,
	0x010bfffd5,
	0x001000000,
	0x080a2e009,
	0x012bfffd2,
	0x001000000,
	0x0d200b072,
	0x0d200b076,
	0x092026007,
	0x0920a7ff8,
	0x0d220b072,
	0x0d220b076,
	0x010bfffcc,
	0x001000000,
	0x09a100015,


@@ 3854,13 3979,13 @@ ulong bootcode[]={
	0x0e6206028,
	0x0e6206010,
	0x0d6206014,
	0x09200b58e,
	0x09200b5fe,
	0x09202400b,
	0x0d24a6000,
	0x0932a6018,
	0x0933a6018,
	0x0932a6002,
	0x09000b0e6,
	0x09000b0ee,
	0x092024008,
	0x0d2026000,
	0x09fc26000,


@@ 4240,8 4365,8 @@ ulong bootcode[]={
	0x0ea006014,
	0x0a8002020,
	0x0e4006018,
	0x0e200b0d6,
	0x0e000b072,
	0x0e200b0de,
	0x0e000b076,
	0x0da00601c,
	0x0d800b03e,
	0x096100007,


@@ 4277,12 4402,12 @@ ulong bootcode[]={
	0x094100013,
	0x0e62a6000,
	0x0a0042001,
	0x0e020b072,
	0x0e020b076,
	0x080a4e00a,
	0x01280000a,
	0x001000000,
	0x0a0100016,
	0x0ec20b072,
	0x0ec20b076,
	0x080a37c18,
	0x002bfffdf,
	0x001000000,


@@ 4294,7 4419,7 @@ ulong bootcode[]={
	0x001000000,
	0x092042007,
	0x0a00a7ff8,
	0x0e020b072,
	0x0e020b076,
	0x010bffff4,
	0x001000000,
	0x090100012,


@@ 4324,7 4449,7 @@ ulong bootcode[]={
	0x094100014,
	0x0e82a6000,
	0x0a0042001,
	0x0e020b072,
	0x0e020b076,
	0x09602e001,
	0x010bffff0,
	0x001000000,


@@ 4340,7 4465,7 @@ ulong bootcode[]={
	0x094100014,
	0x0e82a6000,
	0x0a0042001,
	0x0e020b072,
	0x0e020b076,
	0x09602e001,
	0x010bffff2,
	0x001000000,


@@ 4404,7 4529,7 @@ ulong bootcode[]={
	0x082206004,
	0x0d200b03e,
	0x096100009,
	0x0d000b0d6,
	0x0d000b0de,
	0x080a24008,
	0x01a800007,
	0x001000000,


@@ 5700,7 5825,7 @@ ulong bootcode[]={
	0x080a22015,
	0x014800011,
	0x001000000,
	0x0d000b0de,
	0x0d000b0e6,
	0x0913a000b,
	0x0901a3fff,
	0x0d4006008,


@@ 5719,7 5844,7 @@ ulong bootcode[]={
	0x014bffff7,
	0x001000000,
	0x09002ffea,
	0x0d200b0e2,
	0x0d200b0ea,
	0x0913a4008,
	0x0901a3fff,
	0x0d400600c,


@@ 5734,6 5859,7 @@ ulong bootcode[]={
	0x000000000,
	0x000000000,
	0x000000000,
	0x000000000,
	0x062616420,
	0x074797065,
	0x03a202564,


@@ 5761,6 5887,8 @@ ulong bootcode[]={
	0x000000000,
	0x000000000,
	0x000000000,
	0x000000000,
	0x000000000,
	0x06e6f6e2d,
	0x07a65726f,
	0x020657869,


@@ 5768,29 5896,29 @@ ulong bootcode[]={
	0x061747573,
	0x000000000,
	0x000000000,
	0x00000715c,
	0x000007161,
	0x000007176,
	0x00000717d,
	0x000007192,
	0x000007198,
	0x0000071ad,
	0x000007164,
	0x000007169,
	0x00000717e,
	0x000007185,
	0x00000719a,
	0x0000071a0,
	0x0000071b5,
	0x0000071ca,
	0x0000071ce,
	0x0000071bd,
	0x0000071d2,
	0x0000071d6,
	0x000000000,
	0x000000000,
	0x000000000,
	0x000000000,
	0x0001fffff,
	0x07fffffff,
	0x0000053e4,
	0x000005508,
	0x000004d18,
	0x000005618,
	0x000005434,
	0x000005480,
	0x0000054c8,
	0x0000055d8,
	0x0000056fc,
	0x000004f0c,
	0x00000580c,
	0x000005628,
	0x000005674,
	0x0000056bc,
	0x000000000,
	0x000000000,
	0x000000000,


@@ 5853,235 5981,261 @@ ulong bootcode[]={
	0x0632f636f,
	0x06e730023,
	0x0632f636f,
	0x06e730023,
	0x0652f7379,
	0x0736e616d,
	0x065007379,
	0x0736e616d,
	0x065007379,
	0x0736e616d,
	0x06500626f,
	0x06f746573,
	0x0002f6d69,
	0x070732f39,
	0x00023332f,
	0x062697433,
	0x00063616e,
	0x027742063,
	0x06f6e7665,
	0x07274206e,
	0x06f6e6574,
	0x020616464,
	0x072657373,
	0x020746f20,
	0x065746865,
	0x072206164,
	0x06e73006e,
	0x06f6e6500,
	0x075736572,
	0x00023632f,
	0x075736572,
	0x00023652f,
	0x07379736e,
	0x0616d6500,
	0x07379736e,
	0x0616d6500,
	0x07379736e,
	0x0616d6500,
	0x061726776,
	0x05b25645d,
	0x0203d2025,
	0x0730a0062,
	0x06f6f7465,
	0x073002333,
	0x02f626974,
	0x033006361,
	0x06e277420,
	0x0636f6e76,
	0x065727420,
	0x06e6f6e65,
	0x074206164,
	0x064726573,
	0x0730a0023,
	0x06c2f312f,
	0x063746c00,
	0x06f70656e,
	0x0696e6720,
	0x07320746f,
	0x020657468,
	0x065722061,
	0x064647265,
	0x073730a00,
	0x0236c2f31,
	0x02f63746c,
	0x000636f6e,
	0x06e656374,
	0x020307839,
	0x030300063,
	0x06f6e6e65,
	0x063742030,
	0x078393030,
	0x000707573,
	0x068206e6f,
	0x065746865,
	0x072007075,
	0x0006f7065,
	0x06e696e67,
	0x020236c2f,
	0x0312f6374,
	0x06c00636f,
	0x06e6e6563,
	0x074203078,
	0x039303000,
	0x0636f6e6e,
	0x065637420,
	0x030783930,
	0x030007075,
	0x07368206e,
	0x06f657468,
	0x065720063,
	0x06f6e6669,
	0x067206e6f,
	0x06e657400,
	0x065720070,
	0x075736820,
	0x06e6f6574,
	0x068657200,
	0x0636f6e66,
	0x06967206e,
	0x06f6e6574,
	0x000236e6e,
	0x000636f6e,
	0x066696720,
	0x06e6f6e65,
	0x07400236e,
	0x06e6f6e65,
	0x0742f322f,
	0x064617461,
	0x0006f7065,
	0x06e696e67,
	0x020236e6e,
	0x06f6e6574,
	0x02f322f64,
	0x061746100,
	0x06f70656e,
	0x0696e6720,
	0x0236e6e6f,
	0x06e65742f,
	0x0322f6461,
	0x074610023,
	0x06e6e6f6e,
	0x065742f32,
	0x02f63746c,
	0x0006f7065,
	0x06e696e67,
	0x020236e6e,
	0x06f6e6574,
	0x02f322f63,
	0x0746c0023,
	0x0682f6374,
	0x0322f6374,
	0x06c006f70,
	0x0656e696e,
	0x067202368,
	0x06720236e,
	0x06e6f6e65,
	0x0742f322f,
	0x063746c00,
	0x06e6f6e65,
	0x07400236e,
	0x06e6f6e65,
	0x074002368,
	0x02f63746c,
	0x000707573,
	0x06820646b,
	0x06d757800,
	0x0006f7065,
	0x06e696e67,
	0x02023682f,
	0x063746c00,
	0x070757368,
	0x020646b6d,
	0x075780063,
	0x06f6e6669,
	0x067203420,
	0x032353620,
	0x072657374,
	0x061727420,
	0x0646b0063,
	0x06f6e6669,
	0x067203420,
	0x032353620,
	0x072657374,
	0x061727420,
	0x0646b0023,
	0x06b646b2f,
	0x0352f6461,
	0x07461006f,
	0x070656e69,
	0x06e672023,
	0x06b646b2f,
	0x0352f6461,
	0x074610023,
	0x06b646b2f,
	0x0352f6374,
	0x06c006f70,
	0x075780070,
	0x075736820,
	0x0646b6d75,
	0x07800636f,
	0x06e666967,
	0x020342032,
	0x035362072,
	0x065737461,
	0x072742064,
	0x06b00636f,
	0x06e666967,
	0x020342032,
	0x035362072,
	0x065737461,
	0x072742064,
	0x06b00236b,
	0x0646b2f35,
	0x02f646174,
	0x061006f70,
	0x0656e696e,
	0x06720236b,
	0x0646b2f35,
	0x02f646174,
	0x06100236b,
	0x0646b2f35,
	0x02f63746c,
	0x000636f6e,
	0x06e656374,
	0x020257300,
	0x073657276,
	0x065720062,
	0x069742100,
	0x0646b2100,
	0x06e6f6e65,
	0x074210063,
	0x0616e2774,
	0x020636f6e,
	0x06e656374,
	0x02c207265,
	0x074727969,
	0x06e672e2e,
	0x02e0a0063,
	0x0616e2774,
	0x020636f6e,
	0x06e656374,
	0x00a006e6f,
	0x0702e2e2e,
	0x0006e203d,
	0x02025640a,
	0x000777269,
	0x07465206e,
	0x06f700072,
	0x065616420,
	0x06e6f7000,
	0x0006f7065,
	0x06e696e67,
	0x020236b64,
	0x06b2f352f,
	0x063746c00,
	0x0636f6e6e,
	0x065637420,
	0x025730064,
	0x06b00236b,
	0x0646b0073,
	0x065727665,
	0x072006269,
	0x074210064,
	0x06b21006e,
	0x06f6e6574,
	0x021006361,
	0x06e277420,
	0x0636f6e6e,
	0x06563742c,
	0x020726574,
	0x07279696e,
	0x0672e2e2e,
	0x00a006361,
	0x06e277420,
	0x0636f6e6e,
	0x06563740a,
	0x0006e6f70,
	0x02e2e2e00,
	0x06e203d20,
	0x025643b20,
	0x062756620,
	0x03d20252e,
	0x025640a00,
	0x077726974,
	0x065206e6f,
	0x070007265,
	0x06164206e,
	0x06f70006e,
	0x0203d2025,
	0x0643b2062,
	0x07566203d,
	0x020252e32,
	0x07820252e,
	0x032782025,
	0x02e327820,
	0x0252e3278,
	0x020252e32,
	0x0780a0066,
	0x06f726d61,
	0x074206e6f,
	0x070006e6f,
	0x07420526e,
	0x06f700074,
	0x06167206e,
	0x06f74207e,
	0x030007365,
	0x00a00666f,
	0x0726d6174,
	0x0206e6f70,
	0x0006e6f74,
	0x020526e6f,
	0x070007461,
	0x067206e6f,
	0x074207e30,
	0x000736573,
	0x073696f6e,
	0x02e2e2e00,
	0x077726974,
	0x065207365,
	0x07373696f,
	0x06e2e2e2e,
	0x000777269,
	0x074652073,
	0x065737369,
	0x06f6e0072,
	0x065616420,
	0x073657373,
	0x0696f6e00,
	0x0666f726d,
	0x061742073,
	0x06e007265,
	0x061642073,
	0x065737369,
	0x06f6e0074,
	0x06167206e,
	0x06f74207e,
	0x03000626f,
	0x06f743a20,
	0x06572726f,
	0x072202573,
	0x00a006e6f,
	0x074205273,
	0x065737369,
	0x06f6e0070,
	0x06f73742e,
	0x02e2e0023,
	0x0732f2573,
	0x000637265,
	0x061746500,
	0x025640077,
	0x072697465,
	0x00023732f,
	0x06f6e0066,
	0x06f726d61,
	0x074207365,
	0x07373696f,
	0x06e007461,
	0x067206e6f,
	0x074207e30,
	0x000626f6f,
	0x0743a2065,
	0x072726f72,
	0x02025730a,
	0x0006e6f74,
	0x020527365,
	0x07373696f,
	0x06e00706f,
	0x073742e2e,
	0x02e002373,
	0x02f257300,
	0x063726561,
	0x074650025,
	0x064007772,
	0x069746500,
	0x023732f62,
	0x06f6f7400,
	0x063726561,
	0x074650025,
	0x064007772,
	0x069746500,
	0x06d6f756e,
	0x0742e2e2e,
	0x0002f002f,
	0x00062696e,
	0x064002f00,
	0x000006d6f,
	0x0756e7400,
	0x073756363,
	0x06573730a,
	0x00023652f,
	0x0626f6f74,
	0x000637265,
	0x061746500,
	0x025640077,
	0x072697465,
	0x0006d6f75,
	0x06e742e2e,
	0x02e002f00,
	0x02f006269,
	0x06e64002f,
	0x00000006d,
	0x06f756e74,
	0x000737563,
	0x063657373,
	0x00a002f6d,
	0x06970732f,
	0x0696e6974,
	0x000696e69,
	0x074002d6d,
	0x0002f6d69,
	0x070732f69,
	0x06e657400,
	0x077726974,
	0x0696e6720,
	0x0626f6f74,
	0x06e657400,
	0x02f6e6574,
	0x02f257300,
	0x062696e64,
	0x0696e6720,
	0x0626f6f74,
	0x06e657400,
	0x02f737061,
	0x072632f69,
	0x06e697400,
	0x0696e6974,
	0x0002f6d69,
	0x070732f69,
	0x0002d7400,
	0x02d6d002f,
	0x073706172,
	0x0632f696e,
	0x069740069,
	0x06e697400,
	0x0626f6f74,
	0x03a202573,
	0x03a202573,
	0x00a00626f,
	0x06f743a20,
	0x025733a20,
	0x025730a00,
	0x025735b25,
	0x0735d3a20,
	0x00063616e,
	0x027742072,
	0x065616420,
	0x023632f63,
	0x06f6e733b,
	0x020706c65,
	0x061736520,
	0x07265626f,
	0x06f740000,
	0x000000000,
	0x02d74002f,
	0x073706172,
	0x0632f696e,
	0x069740062,
	0x06f6f743a,
	0x02025733a,
	0x02025730a,
	0x000626f6f,
	0x0743a2025,
	0x0733a2025,
	0x0730a0025,
	0x0735b2573,
	0x05d3a2000,
	0x063616e27,
	0x074207265,
	0x061642023,
	0x0632f636f,
	0x06e733b20,
	0x0706c6561,
	0x073652072,
	0x065626f6f,
	0x074000000,
	0x000000000,
	0x000000000,
	0x000000000,


@@ 6115,8 6269,6 @@ ulong bootcode[]={
	0x002000000,
	0x000000000,
	0x000000000,
	0x00005f90,
	0x0,
	0x00005f90,
	0x000061f8,
	0x0,
};

M ss/dat.h => ss/dat.h +8 -1
@@ 343,7 343,7 @@ struct Proc
	ulong	pid;
	int	nchild;
	QLock	wait;			/* exiting children to be waited for */
	ulong	waitmsg;
	Waitmsg	waitmsg;		/* this is large but must be addressable */
	Proc	*child;
	Proc	*parent;
	Pgrp	*pgrp;


@@ 648,6 648,12 @@ struct Service
	char	name[NAMELEN];
};

/*
 *  LANCE CSR3 (bus control bits)
 */
#define BSWP	0x4
#define ACON	0x2
#define BCON	0x1

/*
 *  system dependent lance stuff


@@ 661,6 667,7 @@ struct Lance
	ushort	ntrb;		/* number of xmit ring buffers */
	ushort	*rap;		/* lance address register */
	ushort	*rdp;		/* lance data register */
	ushort	busctl;		/* bus control bits */
	uchar	ea[6];		/* our ether addr */
	int	sep;		/* separation between shorts in lance ram
				    as seen by host */

M ss/devbit.c => ss/devbit.c +2 -1
@@ 1152,6 1152,7 @@ mousechar(int c)
{
	static short msg[5];
	static int nb;
	static uchar b[] = {0, 4, 2, 6, 1, 5, 3, 7};

	if((c&0xF0) == 0x80)
		nb=0;


@@ 1159,7 1160,7 @@ mousechar(int c)
	if(c & 0x80)
		msg[nb] |= 0xFF00;	/* sign extend */
	if(++nb == 5){
		mouse.newbuttons = (msg[0]&7)^7;
		mouse.newbuttons = b[(msg[0]&7)^7];
		mouse.dx = msg[1]+msg[3];
		mouse.dy = -(msg[2]+msg[4]);
		mouse.track = 1;

M ss/l.s => ss/l.s +8 -0
@@ 33,6 33,14 @@ TEXT	getpsr(SB), $0
	MOVW	PSR, R7
	RETURN

/*
TEXT	swap1_please(SB), $0

	MOVW	keyaddr+0(FP), R8
	LDSTUB	(R8), R7
	RETURN
*/

TEXT	swap1_should_work(SB), $0

	MOVW	keyaddr+0(FP), R8

M ss/lock.c => ss/lock.c +0 -1
@@ 19,7 19,6 @@ lock(Lock *l)
		ll->pc = ((ulong*)&l)[PCOFF];
		return;
	}
reset();
	for(i=0; i<10000000; i++)
    		if(swap1(&ll->key) == 0){
			ll->pc = ((ulong*)&l)[PCOFF];

M ss/main.c => ss/main.c +8 -16
@@ 92,7 92,7 @@ reset(void)
void
unloadboot(void)
{
	strncpy(user, "rob", sizeof user);
	strncpy(user, "bootes", sizeof user);
	memcpy(bootline, "9s", sizeof bootline);
	memcpy(bootserver, "bootes", sizeof bootserver);
	memcpy(bootdevice, "parnfucky", sizeof bootdevice);


@@ 157,7 157,6 @@ userinit(void)
	p = newproc();
	p->pgrp = newpgrp();
	strcpy(p->text, "*init*");
	strcpy(p->pgrp->user, user);
	p->fpstate = FPinit;

	/*


@@ 340,28 339,28 @@ lancesetup(Lance *lp)
	ulong pa, pte, va;
	int i, j;

	k = kmappa(ETHER, PTEIO|PTENOCACHE);
	k = kmappa(ETHER, PTEIO);
	lp->rdp = (void*)(k->va+0);
	lp->rap = (void*)(k->va+2);
	k = kmappa(EEPROM, PTEIO|PTENOCACHE);
	k = kmappa(EEPROM, PTEIO);
	cp = (uchar*)(k->va+0x7da);
	for(i=0; i<6; i++)
		lp->ea[i] = *cp++;
	kunmap(k);

	lp->lognrrb = 2;	/* should be larger */
	lp->logntrb = 2;	/* should be larger */
	lp->lognrrb = 5;
	lp->logntrb = 5;
	lp->nrrb = 1<<lp->lognrrb;
	lp->ntrb = 1<<lp->logntrb;

	lp->sep = 1;
	lp->busctl = BSWP | ACON | BCON;

	/*
	 * Allocate area for lance init block and descriptor rings
	 */
	pa = (ulong)ialloc(BY2PG, 1)&~KZERO;	/* one whole page */
	/* map at LANCESEGM */
	k = kmappa(pa, PTEMAINMEM|PTENOCACHE);
	k = kmappa(pa, PTEMAINMEM);
print("init block va %lux\n", k->va);
	lp->lanceram = (ushort*)k->va;
	lp->lm = (Lancemem*)k->va;


@@ 377,7 376,7 @@ print("%d lance buffers\n", i);
	pa = (ulong)ialloc(i*BY2PG, 1)&~KZERO;
	va = 0;
	for(j=i-1; j>=0; j--){
		k = kmappa(pa+j*BY2PG, PTEMAINMEM|PTENOCACHE);
		k = kmappa(pa+j*BY2PG, PTEMAINMEM);
		if(va){
			if(va != k->va+BY2PG)
				panic("lancesetup va unordered");


@@ 391,13 390,6 @@ print("%d lance buffers\n", i);
	lp->rp = (Etherpkt*)k->va;
	lp->ltp = lp->lrp+lp->nrrb;
	lp->tp = lp->rp+lp->nrrb;
print("rp %lux tp %lux lm %lux\n", lp->rp, lp->tp, lp->lm);
print("*rp %lux *tp %lux *lm %lux\n", *(ulong*)lp->rp, *(ulong*)lp->tp, *(ulong*)lp->lm);
*(ulong*)lp->rp = 0;
	k = kmappa(0xF8400000, PTEIO|PTENOCACHE);
print("dma %lux %lux\n", k->va, *(ulong*)(k->va+4));
	*(ulong*)(k->va+4) = 0;
	kunmap(k);
}

/*

M ss/mmu.c => ss/mmu.c +11 -8
@@ 55,7 55,7 @@ mapstack(Proc *p)
int
newpid(Proc *p)
{
	int i, j;
	int i, j, k;
	Proc *sp;

	i = m->lastpid+1;


@@ 69,13 69,16 @@ newpid(Proc *p)
	m->pidproc[i] = p;
	m->lastpid = i;
	putcontext(i-1);
/* print("new pid %d\n", i); /**/
	/*
	 * kludge: each context is allowed 2 pmegs, one for text and one for stack
	 * kludge: each context is allowed 5 pmegs, four for text & data and one for stack
	 */
	putsegm(UZERO, kmapalloc.lowpmeg+(2*i));
	putsegm(TSTKTOP-BY2SEGM, kmapalloc.lowpmeg+(2*i)+1);
	for(j=0; j<4; j++)
		putsegm(UZERO, kmapalloc.lowpmeg+(2*i)+j);
	putsegm(TSTKTOP-BY2SEGM, kmapalloc.lowpmeg+(2*i)+4);
	for(j=0; j<PG2SEGM; j++){
		putpmeg(UZERO+j*BY2PG, INVALIDPTE);
		for(k=0; k<4; k++)
			putpmeg(UZERO+k*BY2SEGM+j*BY2PG, INVALIDPTE);
		putpmeg((TSTKTOP-BY2SEGM)+j*BY2PG, INVALIDPTE);
	}
	return i;


@@ 95,7 98,7 @@ purgepid(int pid)

	if(m->pidhere[pid] == 0)
		return;
print("purge pid %d\n", pid);
/* print("purge pid %d\n", pid);/**/
	memset(m->pidhere, 0, sizeof m->pidhere);
	putcontext(pid-1);
	/*


@@ 103,7 106,7 @@ print("purge pid %d\n", pid);
	 */
	for(i=0; i<0x1000; i++)
		putwE((i<<4), 0);
print("purge done\n");
/* print("purge done\n");/**/
}




@@ 199,7 202,7 @@ putmmu(ulong tlbvirt, ulong tlbphys)
	/*
	 * kludge part 2: make sure we've got a valid segment
	 */
	if(tlbvirt>=TSTKTOP || (UZERO+BY2SEGM<=tlbvirt && tlbvirt<(TSTKTOP-BY2SEGM)))
	if(tlbvirt>=TSTKTOP || (UZERO+4*BY2SEGM<=tlbvirt && tlbvirt<(TSTKTOP-BY2SEGM)))
		panic("putmmu %lux", tlbvirt);
	putpmeg(tlbvirt, tlbphys);
	spllo();

M ss/trap.c => ss/trap.c +8 -3
@@ 78,17 78,21 @@ trap(Ureg *ur)
	if(user){
		print("user trap: %s pc=0x%lux\n", excname(tbr), ur->pc);
dumpregs(ur);
for(;;);
		sprint(buf, "sys: trap: pc=0x%lux %s", ur->pc, excname(tbr));
print("call postnote\n");
		postnote(u->p, 1, buf, NDebug);
print("return from postnote\n");
	}else{
		print("kernel trap: %s pc=0x%lux\n", excname(tbr), ur->pc);
		dumpregs(ur);
for(;;);
		exit();
	}
	if(user && u->nnote)
	if(user && u->nnote){
		print("notify %d\n", u->p->pid);
		notify(ur);
		print("notifyed %d\n", u->p->pid);
	}
}

void


@@ 157,7 161,7 @@ notify(Ureg *ur)
	ulong sp;

	lock(&u->p->debug);
	if(u->nnote==0){
	if(u->nnote == 0){
		unlock(&u->p->debug);
		return;
	}


@@ 165,6 169,7 @@ notify(Ureg *ur)
		if(u->note[0].flag == NDebug)
			pprint("suicide: %s\n", u->note[0].msg);
    Die:
print("suicide: %s\n", u->note[0].msg);
		unlock(&u->p->debug);
		pexit(u->note[0].msg, u->note[0].flag!=NDebug);
	}