From e8340e6f211b07ca110ecc6dc9b12ae02dfa62f8 Mon Sep 17 00:00:00 2001 From: David du Colombier <0intro@gmail.com> Date: Wed, 18 Nov 1992 00:00:00 +0000 Subject: [PATCH] Plan 9 from Bell Labs 1992-11-18 --- pc/l.s | 12 ++++++------ pc/vga.c | 21 +++++++-------------- port/devproc.c | 2 +- 3 files changed, 14 insertions(+), 21 deletions(-) diff --git a/pc/l.s b/pc/l.s index 08e5d4d05884c073708545a8da4bf39d041556c2..e5b346e08831f3aced727e0d134096b76adedabc 100644 --- a/pc/l.s +++ b/pc/l.s @@ -642,8 +642,8 @@ TEXT config(SB),$0 TEXT l0update(SB),$0 XORL AX,AX MOVL len+8(FP),CX - MOVL from+0(FP),SI - MOVL to+4(FP),DI + MOVL from+4(FP),SI + MOVL to+0(FP),DI l00: MOVB -1(SI)(CX*1),AL MOVB revtab0(SB)(AX*1),AL @@ -660,8 +660,8 @@ l00: */ TEXT l1update(SB),$0 XORL AX,AX - MOVL from+0(FP),SI - MOVL to+4(FP),DI + MOVL from+4(FP),SI + MOVL to+0(FP),DI MOVL len+8(FP),CX MOVB $(Smmask),AL MOVW $(SRX),DX @@ -701,8 +701,8 @@ l11: LOOP l10 */ TEXT l2update(SB),$0 XORL AX,AX - MOVL from+0(FP),SI - MOVL to+4(FP),DI + MOVL from+4(FP),SI + MOVL to+0(FP),DI MOVL len+8(FP),CX MOVB $(Smmask),AL MOVW $(SRX),DX diff --git a/pc/vga.c b/pc/vga.c index 25e22c08b94730a5c5b16bb78237df3e612f073f..245f40a55ab598f606127b77a258bf347805b443 100644 --- a/pc/vga.c +++ b/pc/vga.c @@ -102,12 +102,6 @@ VGAmode mode13 = static Rectangle mbb; static Rectangle NULLMBB = {10000, 10000, -10000, -10000}; -void -unlocktseng(void) { - outb(0x3bf, 0x03); - outb(0x3d8, 0xa0); -} - void genout(int reg, int val) { @@ -274,7 +268,6 @@ setscreen(int maxx, int maxy, int ldepth) if(p == 0) panic("can't alloc screen bitmap"); mbb = NULLMBB; - cga = 0; /* * zero hard screen and setup a bitmap for the new size @@ -338,6 +331,7 @@ setscreen(int maxx, int maxy, int ldepth) gscreen.ldepth = ldepth; break; } + cga = 0; } void @@ -346,8 +340,6 @@ screeninit(void) int i; ulong *l; - unlocktseng(); - /* * arrow is defined as a big endian */ @@ -427,9 +419,6 @@ vgaupdate(void) if(r.max.y > gscreen.r.max.y) r.max.y = gscreen.r.max.y; - outb(0x3bf, 0x03); - outb(0x3d8, 0xa0); - incs = gscreen.width * BY2WD; inch = vgascreen.width * BY2WD; @@ -457,6 +446,8 @@ vgaupdate(void) f = memmove; len = r.max.x - r.min.x; break; + default: + return; } if(len < 1) return; @@ -471,10 +462,12 @@ vgaupdate(void) } else { off = edisp - hp; if(off <= len){ - f(hp, sp, off); + if(off > 0) + f(hp, sp, off); page++; outb(0x3cd, (page<<4)|page); - f(vgascreen.base, sp+off, len - off); + if(len - off > 0) + f(vgascreen.base, sp+off, len - off); } else { f(hp, sp, len); page++; diff --git a/port/devproc.c b/port/devproc.c index 6fb94dd752b3f1a9a75f57f0906fcec4e95c6333..51db9a6d10b08617a5a0dec78619b1660e6d7fef 100644 --- a/port/devproc.c +++ b/port/devproc.c @@ -573,7 +573,7 @@ procctlreq(Proc *p, char *va, int n) else if(strncmp(buf, "kill", 4) == 0) { if(p->state == Broken) ready(p); - else{ + else { if(p->state == Stopped) ready(p); postnote(p, 0, "sys: killed", NExit);