From 81e752e1fa281eb53eb88b7efbe98d2575729459 Mon Sep 17 00:00:00 2001 From: David du Colombier <0intro@gmail.com> Date: Tue, 5 Oct 1993 00:00:00 +0000 Subject: [PATCH] Plan 9 from Bell Labs 1993-10-05 --- carrera/main.c | 2 +- carrera/trap.c | 7 ++++--- port/devcons.c | 14 ++++++++++---- 3 files changed, 15 insertions(+), 8 deletions(-) diff --git a/carrera/main.c b/carrera/main.c index 2ba7ed9bb8210720286277e60632e4891f14b60f..3b6eea4603bd0104e6874b7fbce99e585ebb34ba 100644 --- a/carrera/main.c +++ b/carrera/main.c @@ -277,7 +277,7 @@ init0(void) if(!waserror()){ ksetenv("cputype", "mips"); - sprint(buf, "%s R4400PC", conffile); + sprint(buf, "carrera %s R4400PC", conffile); ksetenv("terminal", buf); ksetenv("sysname", sysname); poperror(); diff --git a/carrera/trap.c b/carrera/trap.c index 020dd11867751671ebc677ef230392ba2d967457..99fea108adc03fd8b475cbd3ee01fafbe4966cb5 100644 --- a/carrera/trap.c +++ b/carrera/trap.c @@ -370,9 +370,9 @@ fpexcname(Ureg *ur, ulong fcr31, char *buf) void kernfault(Ureg *ur, int code) { - print("panic: kfault %s badvaddr=0x%lux\n", excname[code], ur->badvaddr); - print("u=0x%lux status=0x%lux pc=0x%lux sp=0x%lux\n", - up, ur->status, ur->pc, ur->sp); + print("kfault %s badvaddr=0x%lux\n", excname[code], ur->badvaddr); + print("UP=0x%lux SR=0x%lux PC=0x%lux R31=%lux SP=0x%lux\n", + up, ur->status, ur->pc, ur->r31, ur->sp); kpteprint(ur); panic("kfault"); } @@ -471,6 +471,7 @@ notify(Ureg *ur) *(ulong*)(sp+2*BY2WD) = sp+3*BY2WD; /* arg 2 is string */ up->svr1 = ur->r1; /* save away r1 */ ur->r1 = (ulong)up->ureg; /* arg 1 is ureg* */ + *(ulong*)(sp+1*BY2WD) = (ulong)u->ureg; /* arg 1 0(FP) is ureg* */ *(ulong*)(sp+0*BY2WD) = 0; /* arg 0 is pc */ ur->usp = sp; ur->pc = (ulong)up->notify; diff --git a/port/devcons.c b/port/devcons.c index aa04dfcbd91cd37dbdf26516ccca561faef369fd..68837cf7990698ce125a4d1435dfda2e4dda3d75 100644 --- a/port/devcons.c +++ b/port/devcons.c @@ -209,10 +209,16 @@ echo(Rune r, char *buf, int n) /* * finally, the actual echoing */ - if(r == 0x15) - putstrn("^U\n", 3); - else - putstrn(buf, n); + if(r == '\n'){ + if(printq) + qproduce(printq, "\r", 1); + } else if(r == 0x15){ + buf = "^U\n"; + n = 3; + } + screenputs(buf, n); + if(printq) + qproduce(printq, buf, n); } /*