M pc/dat.h => pc/dat.h +3 -3
@@ 76,12 76,12 @@ struct Conf
ulong base0; /* base of bank 0 */
ulong base1; /* base of bank 1 */
ulong copymode; /* 0 is copy on write, 1 is copy on reference */
- ulong ipif; /* Ip protocol interfaces */
- ulong ip; /* Ip conversations per interface */
ulong arp; /* Arp table size */
- ulong frag; /* Ip fragment assemble queue size */
ulong nfloppy; /* number of floppy drives */
ulong nhard; /* number of hard drives */
+ ulong ldepth; /* screen depth */
+ ulong maxx; /* screen width */
+ ulong maxy; /* screen length */
};
/*
M pc/screen.h => pc/screen.h +0 -5
@@ 29,8 29,3 @@ extern Cursorinfo cursor;
extern void mouseupdate(int);
#define hwscreenwrite(a, b)
-
-#define mbbpt(x)
-#define mbbrect(x)
-#define screenupdate()
-#define mousescreenupdate()
M pc/vga.c => pc/vga.c +46 -0
@@ 381,3 381,49 @@ bigcursor(void)
memmove(&arrow, &fatarrow, sizeof(fatarrow));
}
+
+/*
+ * collect changes to the 'soft' screen
+ */
+static Rectangle mbb;
+
+void
+mbbrect(Rectangle r)
+{
+ if(!islcd)
+ return;
+ if (r.min.x < mbb.min.x)
+ mbb.min.x = r.min.x;
+ if (r.min.y < mbb.min.y)
+ mbb.min.y = r.min.y;
+ if (r.max.x > mbb.max.x)
+ mbb.max.x = r.max.x;
+ if (r.max.y > mbb.max.y)
+ mbb.max.y = r.max.y;
+}
+
+void
+mbbpt(Point p)
+{
+ if(!islcd)
+ return;
+ if (p.x < mbb.min.x)
+ mbb.min.x = p.x;
+ if (p.y < mbb.min.y)
+ mbb.min.y = p.y;
+ if (p.x >= mbb.max.x)
+ mbb.max.x = p.x+1;
+ if (p.y >= mbb.max.y)
+ mbb.max.y = p.y+1;
+}
+
+void
+screenupdate(void)
+{
+}
+
+void
+mousescreenupdate(void)
+{
+}
+
M power/faultmips.c => power/faultmips.c +2 -2
@@ 34,8 34,8 @@ faultmips(Ureg *ur, int user, int code)
LEDOFF(LEDfault);
return;
}
- print("kernel %s badvaddr=0x%lux\n", excname[code], ur->badvaddr);
- print("status=0x%lux pc=0x%lux sp=0x%lux\n", ur->status, ur->pc, ur->sp);
+ iprint("kernel %s badvaddr=0x%lux\n", excname[code], ur->badvaddr);
+ iprint("status=0x%lux pc=0x%lux sp=0x%lux\n", ur->status, ur->pc, ur->sp);
dumpregs(ur);
panic("fault");
}
M power/trap.c => power/trap.c +4 -4
@@ 375,13 375,13 @@ dumpregs(Ureg *ur)
ulong *l;
if(u)
- print("registers for %s %d\n", u->p->text, u->p->pid);
+ iprint("registers for %s %d\n", u->p->text, u->p->pid);
else
- print("registers for kernel\n");
+ iprint("registers for kernel\n");
l = &ur->status;
for(i=0; i<sizeof regname/sizeof(char*); i+=2, l+=2){
- print("%s\t%.8lux\t%s\t%.8lux\n", regname[i], l[0], regname[i+1], l[1]);
- prflush();
+ iprint("%s\t%.8lux\t%s\t%.8lux\n", regname[i], l[0], regname[i+1], l[1]);
+/* prflush();/**/
}
}
M ss/main.c => ss/main.c +4 -3
@@ 448,9 448,10 @@ confinit(void)
bank[1] = bank[0]-8;
bank[0] = 8;
}
-
conf.npage = conf.npage0+conf.npage1;
- conf.upages = (conf.npage*70)/100;
+ i = screenbits()-1; /* Calculate % of memory for page pool */
+ i = 70 - (i*10);
+ conf.upages = (conf.npage*i)/100;
if(cpuserver){
i = conf.npage-conf.upages;
if(i > (12*MB)/BY2PG)
@@ 473,7 474,7 @@ confinit(void)
if(cpuserver)
conf.nswap = conf.npage*2;
else
- conf.nswap = 4096;
+ conf.nswap = 16*MB/BY2PG;
conf.nimage = 50;
conf.copymode = 0; /* copy on write */
conf.ipif = 8;