git: 9front

Download patch

ref: efa912f65b13328219f67a8323fc6343a769d244
parent: 8f0174a92c00ebeec6dd766f2f7c1b457fdc3182
parent: 7ad7e4d52668a09f9f15e4fb690c7c14a8293486
author: cinap_lenrek <cinap_lenrek@centraldogma>
date: Wed May 11 01:56:28 EDT 2011

merge

--- a/cfg/cirno/cpurc
+++ b/cfg/cirno/cpurc
@@ -1,9 +1,5 @@
 #!/bin/rc
-# cpu-specific startup
-
-# Since booting from venti could have started loopback,
-# don't test for existing interfaces, just use ipconfig.
-# ip/ipconfig -g your-gateway ether /net/ether0 your-ip-address your-subnet-mask
+# the 9pccpuf kernel runs this file
 
 # example: adjust to fit your network
 #ip/ipconfig -g 192.168.0.1 ether /net/ether0 192.168.0.2 255.255.255.0
--- a/cfg/cirno/cpustart
+++ b/cfg/cirno/cpustart
@@ -1,4 +1,7 @@
+# the 9pccpuf kernel runs this file
+
 aux/listen -q -t /rc/bin/service.auth -d /rc/bin/service tcp
+
 @{
 	rfork n
 	if(~ $monitor vesa)
--- a/cfg/cirno/termrc
+++ b/cfg/cirno/termrc
@@ -1,9 +1,5 @@
 #!/bin/rc
-# terminal-specific startup
-
-# Since booting from venti could have started loopback,
-# don't test for existing interfaces, just use ipconfig.
-# ip/ipconfig -g your-gateway ether /net/ether0 your-ip-address your-subnet-mask
+# the 9pcf kernerl runs this file
 
 # example: adjust to fit your network
 #ip/ipconfig -g 192.168.0.1 ether /net/ether0 192.168.0.2 255.255.255.0
--- /dev/null
+++ b/lib/font/bit/vga/vga
@@ -1,0 +1,23 @@
+16 8
+0x0100 0x01ff vga01
+0x0200 0x02ff vga02
+0x0300 0x03ff vga03
+0x0400 0x04ff vga04
+0x0500 0x05ff vga05
+0x0600 0x06ff vga06
+0x0000 0x00ff vga00
+0xfb00 0xfbff vgafb
+0x2300 0x23ff vga23
+0x2500 0x25ff vga25
+0xff00 0xffff vgaff
+0xfd00 0xfdff vgafd
+0x1e00 0x1eff vga1e
+0xfe00 0xfeff vgafe
+0x2000 0x20ff vga20
+0x2200 0x22ff vga22
+0x2400 0x24ff vga24
+0x2600 0x26ff vga26
+0x1000 0x10ff vga10
+0xfc00 0xfcff vgafc
+0x1f00 0x1fff vga1f
+0x2100 0x21ff vga21
binary files /dev/null b/lib/font/bit/vga/vga00 differ
binary files /dev/null b/lib/font/bit/vga/vga01 differ
binary files /dev/null b/lib/font/bit/vga/vga02 differ
binary files /dev/null b/lib/font/bit/vga/vga03 differ
binary files /dev/null b/lib/font/bit/vga/vga04 differ
binary files /dev/null b/lib/font/bit/vga/vga05 differ
binary files /dev/null b/lib/font/bit/vga/vga06 differ
binary files /dev/null b/lib/font/bit/vga/vga10 differ
binary files /dev/null b/lib/font/bit/vga/vga1e differ
binary files /dev/null b/lib/font/bit/vga/vga1f differ
binary files /dev/null b/lib/font/bit/vga/vga20 differ
binary files /dev/null b/lib/font/bit/vga/vga21 differ
binary files /dev/null b/lib/font/bit/vga/vga22 differ
binary files /dev/null b/lib/font/bit/vga/vga23 differ
binary files /dev/null b/lib/font/bit/vga/vga24 differ
binary files /dev/null b/lib/font/bit/vga/vga25 differ
binary files /dev/null b/lib/font/bit/vga/vga26 differ
binary files /dev/null b/lib/font/bit/vga/vgafb differ
binary files /dev/null b/lib/font/bit/vga/vgafc differ
binary files /dev/null b/lib/font/bit/vga/vgafd differ
binary files /dev/null b/lib/font/bit/vga/vgafe differ
binary files /dev/null b/lib/font/bit/vga/vgaff differ
--- a/rc/bin/cpurc
+++ b/rc/bin/cpurc
@@ -1,5 +1,6 @@
 #!/bin/rc
-# cpu server start up
+# the pccpuf kernel runs this file
+
 date > /env/boottime
 
 # mount points
--- a/rc/bin/cpurc.local
+++ b/rc/bin/cpurc.local
@@ -1,5 +1,5 @@
 #!/bin/rc
-# local cpu startup
+# the 9pccpuf kernel runs this file
 
 # used only by upas, as default return domain appended to all unqualified
 # return addresses, even local ones
@@ -12,4 +12,5 @@
 
 for(i in m i P S t u)
 	bind -a '#'^$i /dev >/dev/null >[2=1]
+
 mount -qa /srv/usb /dev
--- a/rc/bin/inst/bootsetup
+++ b/rc/bin/inst/bootsetup
@@ -30,7 +30,7 @@
 			echo 'monitor='^$monitor
 			echo 'vgasize='^$vgasize
 			if(test -f '#ec/*nomp')
-				echo '*nomp='
+				echo '*nomp=1'
 		} >/tmp/plan9.ini
 	}
 
--- a/rc/bin/inst/finish
+++ b/rc/bin/inst/finish
@@ -10,10 +10,7 @@
 	export finish
 
 case go
-	if(~ $cdboot yes){
-		echo 'Congratulations; you''ve completed the install.'
-		echo
-		halt
-	}
-	stop go finished
+	echo 'Congratulations; you''ve completed the install.'
+	echo
+	halt
 }
--- a/rc/bin/inst/start
+++ b/rc/bin/inst/start
@@ -1,5 +1,7 @@
 #!/bin/rc
 
+echo scroll > /dev/wctl
+
 cd /bin/inst
 . defs
 
--- a/rc/bin/inst/stop
+++ b/rc/bin/inst/stop
@@ -14,37 +14,4 @@
 		stop=notdone
 		export stop
 	}
-
-case go
-	coherence
-	switch($2){
-	case finished
-		echo 'We need to write the state of the current installation to the install floppy,'
-		echo 'so that you can pick up from here if, for example, you want to set up'
-		echo 'more boot methods.'
-		echo
-	case *
-		echo 'We need to write the state of the current installation to the install floppy.'
-		echo 'so that you can pick up from here when you wish to continue.'
-		echo
-	}
-	echo -n 'Please make sure the install floppy is in the floppy drive and press enter.'
-	read >/dev/null >[2]/dev/null
-
-	if(! a:) {
-		echo 'Couldn''t mount the floppy disk; sorry.'
-		exit
-	}
-
-	if(cp /tmp/vars /n/a:/9inst.cnf || cp /tmp/vars /n/a:/9inst.cnf) {
-		echo 'Your install state has been saved to the install floppy.'
-		if(~ $2 finished){
-			echo
-			echo 'Congratulations; you''ve completed the install.'
-		}
-		echo
-		halt
-	}
-
-	echo 'Couldn''t save the state to your install floppy.  Sorry.'
 }
--- a/rc/bin/termrc
+++ b/rc/bin/termrc
@@ -1,5 +1,6 @@
 #!/bin/rc
-# terminal startup
+# the 9pcf kernel runs this file
+
 TIMESYNCARGS=(-rLa1000000)
 NDBFILE=/lib/ndb/local
 
--- a/rc/bin/termrc.local
+++ b/rc/bin/termrc.local
@@ -1,5 +1,5 @@
 #!/bin/rc
-# local terminal startup
+# the 9pcf kernel runs this file
 
 # used only by upas, as default return domain appended to all unqualified
 # return addresses, even local ones
--- a/sys/src/cmd/eqn/eqn.c
+++ b/sys/src/cmd/eqn/eqn.c
@@ -56,7 +56,7 @@
 #define	DYAD	57401
 #define	UTILDE	57402
 
-#line	17	"/sys/src/cmd/eqn/eqn.y"
+#line	17	"/dist/plan9front/sys/src/cmd/eqn/eqn.y"
 #include "e.h"
 
 int	yylex(void);
@@ -72,7 +72,7 @@
 #define YYEOFCODE 1
 #define YYERRCODE 2
 
-#line	140	"/sys/src/cmd/eqn/eqn.y"
+#line	140	"/dist/plan9front/sys/src/cmd/eqn/eqn.y"
 
 short	yyexca[] =
 {-1, 0,
@@ -485,256 +485,256 @@
 	switch(yym) {
 		
 case 1:
-#line	24	"/sys/src/cmd/eqn/eqn.y"
+#line	24	"/dist/plan9front/sys/src/cmd/eqn/eqn.y"
 { putout(yypt[-0].yyv); } break;
 case 2:
-#line	25	"/sys/src/cmd/eqn/eqn.y"
+#line	25	"/dist/plan9front/sys/src/cmd/eqn/eqn.y"
 { ERROR "syntax error" WARNING; } break;
 case 3:
-#line	26	"/sys/src/cmd/eqn/eqn.y"
+#line	26	"/dist/plan9front/sys/src/cmd/eqn/eqn.y"
 { eqnreg = 0; } break;
 case 5:
-#line	30	"/sys/src/cmd/eqn/eqn.y"
+#line	30	"/dist/plan9front/sys/src/cmd/eqn/eqn.y"
 { eqnbox(yypt[-1].yyv, yypt[-0].yyv, 0); } break;
 case 6:
-#line	31	"/sys/src/cmd/eqn/eqn.y"
+#line	31	"/dist/plan9front/sys/src/cmd/eqn/eqn.y"
 { eqnbox(yypt[-1].yyv, yypt[-0].yyv, 1); } break;
 case 7:
-#line	32	"/sys/src/cmd/eqn/eqn.y"
+#line	32	"/dist/plan9front/sys/src/cmd/eqn/eqn.y"
 { lineup(0); } break;
 case 8:
-#line	35	"/sys/src/cmd/eqn/eqn.y"
+#line	35	"/dist/plan9front/sys/src/cmd/eqn/eqn.y"
 { yyval = yypt[-0].yyv; lineup(1); } break;
 case 9:
-#line	38	"/sys/src/cmd/eqn/eqn.y"
+#line	38	"/dist/plan9front/sys/src/cmd/eqn/eqn.y"
 { yyval = yypt[-0].yyv; } break;
 case 10:
-#line	39	"/sys/src/cmd/eqn/eqn.y"
+#line	39	"/dist/plan9front/sys/src/cmd/eqn/eqn.y"
 { yyval = 0; } break;
 case 11:
-#line	42	"/sys/src/cmd/eqn/eqn.y"
+#line	42	"/dist/plan9front/sys/src/cmd/eqn/eqn.y"
 { yyval = yypt[-0].yyv; } break;
 case 12:
-#line	43	"/sys/src/cmd/eqn/eqn.y"
+#line	43	"/dist/plan9front/sys/src/cmd/eqn/eqn.y"
 { yyval = 0; } break;
 case 13:
-#line	46	"/sys/src/cmd/eqn/eqn.y"
+#line	46	"/dist/plan9front/sys/src/cmd/eqn/eqn.y"
 { yyval = yypt[-1].yyv; } break;
 case 14:
-#line	47	"/sys/src/cmd/eqn/eqn.y"
+#line	47	"/dist/plan9front/sys/src/cmd/eqn/eqn.y"
 { text(QTEXT, (char *) yypt[-0].yyv); } break;
 case 15:
-#line	48	"/sys/src/cmd/eqn/eqn.y"
+#line	48	"/dist/plan9front/sys/src/cmd/eqn/eqn.y"
 { text(CONTIG, (char *) yypt[-0].yyv); } break;
 case 16:
-#line	49	"/sys/src/cmd/eqn/eqn.y"
+#line	49	"/dist/plan9front/sys/src/cmd/eqn/eqn.y"
 { text(SPACE, (char *) 0); } break;
 case 17:
-#line	50	"/sys/src/cmd/eqn/eqn.y"
+#line	50	"/dist/plan9front/sys/src/cmd/eqn/eqn.y"
 { text(THIN, (char *) 0); } break;
 case 18:
-#line	51	"/sys/src/cmd/eqn/eqn.y"
+#line	51	"/dist/plan9front/sys/src/cmd/eqn/eqn.y"
 { text(TAB, (char *) 0); } break;
 case 19:
-#line	52	"/sys/src/cmd/eqn/eqn.y"
+#line	52	"/dist/plan9front/sys/src/cmd/eqn/eqn.y"
 { funny(SUM); } break;
 case 20:
-#line	53	"/sys/src/cmd/eqn/eqn.y"
+#line	53	"/dist/plan9front/sys/src/cmd/eqn/eqn.y"
 { funny(PROD); } break;
 case 21:
-#line	54	"/sys/src/cmd/eqn/eqn.y"
+#line	54	"/dist/plan9front/sys/src/cmd/eqn/eqn.y"
 { funny(UNION); } break;
 case 22:
-#line	55	"/sys/src/cmd/eqn/eqn.y"
+#line	55	"/dist/plan9front/sys/src/cmd/eqn/eqn.y"
 { funny(INTER); } break;
 case 23:
-#line	56	"/sys/src/cmd/eqn/eqn.y"
+#line	56	"/dist/plan9front/sys/src/cmd/eqn/eqn.y"
 { boverb(yypt[-2].yyv, yypt[-0].yyv); } break;
 case 24:
-#line	57	"/sys/src/cmd/eqn/eqn.y"
+#line	57	"/dist/plan9front/sys/src/cmd/eqn/eqn.y"
 { mark(yypt[-0].yyv); } break;
 case 25:
-#line	58	"/sys/src/cmd/eqn/eqn.y"
+#line	58	"/dist/plan9front/sys/src/cmd/eqn/eqn.y"
 { size(yypt[-1].yyv, yypt[-0].yyv); } break;
 case 26:
-#line	59	"/sys/src/cmd/eqn/eqn.y"
+#line	59	"/dist/plan9front/sys/src/cmd/eqn/eqn.y"
 { font(yypt[-1].yyv, yypt[-0].yyv); } break;
 case 27:
-#line	60	"/sys/src/cmd/eqn/eqn.y"
+#line	60	"/dist/plan9front/sys/src/cmd/eqn/eqn.y"
 { fatbox(yypt[-0].yyv); } break;
 case 28:
-#line	61	"/sys/src/cmd/eqn/eqn.y"
+#line	61	"/dist/plan9front/sys/src/cmd/eqn/eqn.y"
 { sqrt(yypt[-0].yyv); } break;
 case 29:
-#line	62	"/sys/src/cmd/eqn/eqn.y"
+#line	62	"/dist/plan9front/sys/src/cmd/eqn/eqn.y"
 {ps -= deltaps;} break;
 case 30:
-#line	62	"/sys/src/cmd/eqn/eqn.y"
+#line	62	"/dist/plan9front/sys/src/cmd/eqn/eqn.y"
 { subsup(yypt[-4].yyv, yypt[-1].yyv, yypt[-0].yyv); } break;
 case 31:
-#line	63	"/sys/src/cmd/eqn/eqn.y"
+#line	63	"/dist/plan9front/sys/src/cmd/eqn/eqn.y"
 {ps -= deltaps;} break;
 case 32:
-#line	63	"/sys/src/cmd/eqn/eqn.y"
+#line	63	"/dist/plan9front/sys/src/cmd/eqn/eqn.y"
 { subsup(yypt[-3].yyv, 0, yypt[-0].yyv); } break;
 case 33:
-#line	64	"/sys/src/cmd/eqn/eqn.y"
+#line	64	"/dist/plan9front/sys/src/cmd/eqn/eqn.y"
 {ps -= deltaps;} break;
 case 34:
-#line	64	"/sys/src/cmd/eqn/eqn.y"
+#line	64	"/dist/plan9front/sys/src/cmd/eqn/eqn.y"
 { integral(yypt[-4].yyv, yypt[-1].yyv, yypt[-0].yyv); } break;
 case 35:
-#line	65	"/sys/src/cmd/eqn/eqn.y"
+#line	65	"/dist/plan9front/sys/src/cmd/eqn/eqn.y"
 {ps -= deltaps;} break;
 case 36:
-#line	65	"/sys/src/cmd/eqn/eqn.y"
+#line	65	"/dist/plan9front/sys/src/cmd/eqn/eqn.y"
 { integral(yypt[-3].yyv, 0, yypt[-0].yyv); } break;
 case 37:
-#line	66	"/sys/src/cmd/eqn/eqn.y"
+#line	66	"/dist/plan9front/sys/src/cmd/eqn/eqn.y"
 { integral(yypt[-0].yyv, 0, 0); } break;
 case 38:
-#line	67	"/sys/src/cmd/eqn/eqn.y"
+#line	67	"/dist/plan9front/sys/src/cmd/eqn/eqn.y"
 {ps -= deltaps;} break;
 case 39:
-#line	67	"/sys/src/cmd/eqn/eqn.y"
+#line	67	"/dist/plan9front/sys/src/cmd/eqn/eqn.y"
 { fromto(yypt[-4].yyv, yypt[-1].yyv, yypt[-0].yyv); } break;
 case 40:
-#line	68	"/sys/src/cmd/eqn/eqn.y"
+#line	68	"/dist/plan9front/sys/src/cmd/eqn/eqn.y"
 {ps -= deltaps;} break;
 case 41:
-#line	68	"/sys/src/cmd/eqn/eqn.y"
+#line	68	"/dist/plan9front/sys/src/cmd/eqn/eqn.y"
 { fromto(yypt[-3].yyv, 0, yypt[-0].yyv); } break;
 case 42:
-#line	69	"/sys/src/cmd/eqn/eqn.y"
+#line	69	"/dist/plan9front/sys/src/cmd/eqn/eqn.y"
 { paren(yypt[-2].yyv, yypt[-1].yyv, yypt[-0].yyv); } break;
 case 43:
-#line	70	"/sys/src/cmd/eqn/eqn.y"
+#line	70	"/dist/plan9front/sys/src/cmd/eqn/eqn.y"
 { paren(yypt[-1].yyv, yypt[-0].yyv, 0); } break;
 case 44:
-#line	71	"/sys/src/cmd/eqn/eqn.y"
+#line	71	"/dist/plan9front/sys/src/cmd/eqn/eqn.y"
 { diacrit(yypt[-1].yyv, yypt[-0].yyv); } break;
 case 45:
-#line	72	"/sys/src/cmd/eqn/eqn.y"
+#line	72	"/dist/plan9front/sys/src/cmd/eqn/eqn.y"
 { move(FWD, yypt[-1].yyv, yypt[-0].yyv); } break;
 case 46:
-#line	73	"/sys/src/cmd/eqn/eqn.y"
+#line	73	"/dist/plan9front/sys/src/cmd/eqn/eqn.y"
 { move(UP, yypt[-1].yyv, yypt[-0].yyv); } break;
 case 47:
-#line	74	"/sys/src/cmd/eqn/eqn.y"
+#line	74	"/dist/plan9front/sys/src/cmd/eqn/eqn.y"
 { move(BACK, yypt[-1].yyv, yypt[-0].yyv); } break;
 case 48:
-#line	75	"/sys/src/cmd/eqn/eqn.y"
+#line	75	"/dist/plan9front/sys/src/cmd/eqn/eqn.y"
 { move(DOWN, yypt[-1].yyv, yypt[-0].yyv); } break;
 case 49:
-#line	76	"/sys/src/cmd/eqn/eqn.y"
+#line	76	"/dist/plan9front/sys/src/cmd/eqn/eqn.y"
 { pile(yypt[-0].yyv); ct = yypt[-0].yyv; } break;
 case 50:
-#line	77	"/sys/src/cmd/eqn/eqn.y"
+#line	77	"/dist/plan9front/sys/src/cmd/eqn/eqn.y"
 {yyval=ct;} break;
 case 51:
-#line	77	"/sys/src/cmd/eqn/eqn.y"
+#line	77	"/dist/plan9front/sys/src/cmd/eqn/eqn.y"
 { matrix(yypt[-3].yyv); ct = yypt[-3].yyv; } break;
 case 52:
-#line	80	"/sys/src/cmd/eqn/eqn.y"
+#line	80	"/dist/plan9front/sys/src/cmd/eqn/eqn.y"
 { setintegral(); } break;
 case 53:
-#line	83	"/sys/src/cmd/eqn/eqn.y"
+#line	83	"/dist/plan9front/sys/src/cmd/eqn/eqn.y"
 { yyval = atoi((char *) yypt[-1].yyv); } break;
 case 54:
-#line	84	"/sys/src/cmd/eqn/eqn.y"
+#line	84	"/dist/plan9front/sys/src/cmd/eqn/eqn.y"
 { yyval = atoi((char *) yypt[-1].yyv); } break;
 case 55:
-#line	85	"/sys/src/cmd/eqn/eqn.y"
+#line	85	"/dist/plan9front/sys/src/cmd/eqn/eqn.y"
 { yyval = atoi((char *) yypt[-1].yyv); } break;
 case 56:
-#line	86	"/sys/src/cmd/eqn/eqn.y"
+#line	86	"/dist/plan9front/sys/src/cmd/eqn/eqn.y"
 { yyval = atoi((char *) yypt[-1].yyv); } break;
 case 57:
-#line	88	"/sys/src/cmd/eqn/eqn.y"
+#line	88	"/dist/plan9front/sys/src/cmd/eqn/eqn.y"
 { yyval = HAT; } break;
 case 58:
-#line	89	"/sys/src/cmd/eqn/eqn.y"
+#line	89	"/dist/plan9front/sys/src/cmd/eqn/eqn.y"
 { yyval = VEC; } break;
 case 59:
-#line	90	"/sys/src/cmd/eqn/eqn.y"
+#line	90	"/dist/plan9front/sys/src/cmd/eqn/eqn.y"
 { yyval = DYAD; } break;
 case 60:
-#line	91	"/sys/src/cmd/eqn/eqn.y"
+#line	91	"/dist/plan9front/sys/src/cmd/eqn/eqn.y"
 { yyval = BAR; } break;
 case 61:
-#line	92	"/sys/src/cmd/eqn/eqn.y"
+#line	92	"/dist/plan9front/sys/src/cmd/eqn/eqn.y"
 { yyval = LOWBAR; } break;
 case 62:
-#line	93	"/sys/src/cmd/eqn/eqn.y"
+#line	93	"/dist/plan9front/sys/src/cmd/eqn/eqn.y"
 { yyval = HIGHBAR; } break;
 case 63:
-#line	94	"/sys/src/cmd/eqn/eqn.y"
+#line	94	"/dist/plan9front/sys/src/cmd/eqn/eqn.y"
 { yyval = UNDER; } break;
 case 64:
-#line	95	"/sys/src/cmd/eqn/eqn.y"
+#line	95	"/dist/plan9front/sys/src/cmd/eqn/eqn.y"
 { yyval = DOT; } break;
 case 65:
-#line	96	"/sys/src/cmd/eqn/eqn.y"
+#line	96	"/dist/plan9front/sys/src/cmd/eqn/eqn.y"
 { yyval = TILDE; } break;
 case 66:
-#line	97	"/sys/src/cmd/eqn/eqn.y"
+#line	97	"/dist/plan9front/sys/src/cmd/eqn/eqn.y"
 { yyval = UTILDE; } break;
 case 67:
-#line	98	"/sys/src/cmd/eqn/eqn.y"
+#line	98	"/dist/plan9front/sys/src/cmd/eqn/eqn.y"
 { yyval = DOTDOT; } break;
 case 68:
-#line	101	"/sys/src/cmd/eqn/eqn.y"
+#line	101	"/dist/plan9front/sys/src/cmd/eqn/eqn.y"
 { yyval = ((char *)yypt[-0].yyv)[0]; } break;
 case 69:
-#line	102	"/sys/src/cmd/eqn/eqn.y"
+#line	102	"/dist/plan9front/sys/src/cmd/eqn/eqn.y"
 { yyval = '{'; } break;
 case 70:
-#line	105	"/sys/src/cmd/eqn/eqn.y"
+#line	105	"/dist/plan9front/sys/src/cmd/eqn/eqn.y"
 { yyval = ((char *)yypt[-0].yyv)[0]; } break;
 case 71:
-#line	106	"/sys/src/cmd/eqn/eqn.y"
+#line	106	"/dist/plan9front/sys/src/cmd/eqn/eqn.y"
 { yyval = '}'; } break;
 case 74:
-#line	113	"/sys/src/cmd/eqn/eqn.y"
+#line	113	"/dist/plan9front/sys/src/cmd/eqn/eqn.y"
 { column(yypt[-3].yyv, DEFGAP); } break;
 case 75:
-#line	114	"/sys/src/cmd/eqn/eqn.y"
+#line	114	"/dist/plan9front/sys/src/cmd/eqn/eqn.y"
 {yyval=atoi((char*)yypt[-0].yyv);} break;
 case 76:
-#line	114	"/sys/src/cmd/eqn/eqn.y"
+#line	114	"/dist/plan9front/sys/src/cmd/eqn/eqn.y"
 { column(yypt[-5].yyv, yypt[-3].yyv); } break;
 case 77:
-#line	117	"/sys/src/cmd/eqn/eqn.y"
+#line	117	"/dist/plan9front/sys/src/cmd/eqn/eqn.y"
 { yyval = startcol(LCOL); } break;
 case 78:
-#line	118	"/sys/src/cmd/eqn/eqn.y"
+#line	118	"/dist/plan9front/sys/src/cmd/eqn/eqn.y"
 { yyval = startcol(CCOL); } break;
 case 79:
-#line	119	"/sys/src/cmd/eqn/eqn.y"
+#line	119	"/dist/plan9front/sys/src/cmd/eqn/eqn.y"
 { yyval = startcol(RCOL); } break;
 case 80:
-#line	120	"/sys/src/cmd/eqn/eqn.y"
+#line	120	"/dist/plan9front/sys/src/cmd/eqn/eqn.y"
 { yyval = startcol(COL); } break;
 case 81:
-#line	123	"/sys/src/cmd/eqn/eqn.y"
+#line	123	"/dist/plan9front/sys/src/cmd/eqn/eqn.y"
 { lp[ct++] = yypt[-0].yyv; } break;
 case 82:
-#line	124	"/sys/src/cmd/eqn/eqn.y"
+#line	124	"/dist/plan9front/sys/src/cmd/eqn/eqn.y"
 { lp[ct++] = yypt[-0].yyv; } break;
 case 83:
-#line	127	"/sys/src/cmd/eqn/eqn.y"
+#line	127	"/dist/plan9front/sys/src/cmd/eqn/eqn.y"
 { yyval = ps; setsize((char *) yypt[-0].yyv); } break;
 case 84:
-#line	130	"/sys/src/cmd/eqn/eqn.y"
+#line	130	"/dist/plan9front/sys/src/cmd/eqn/eqn.y"
 { static char R[]="R"; setfont(R); } break;
 case 85:
-#line	131	"/sys/src/cmd/eqn/eqn.y"
+#line	131	"/dist/plan9front/sys/src/cmd/eqn/eqn.y"
 { static char I[]="I"; setfont(I); } break;
 case 86:
-#line	132	"/sys/src/cmd/eqn/eqn.y"
+#line	132	"/dist/plan9front/sys/src/cmd/eqn/eqn.y"
 { static char B[]="B"; setfont(B); } break;
 case 87:
-#line	133	"/sys/src/cmd/eqn/eqn.y"
+#line	133	"/dist/plan9front/sys/src/cmd/eqn/eqn.y"
 { setfont((char *)yypt[-0].yyv); } break;
 	}
 	goto yystack;  /* stack new state and value */
--- a/sys/src/cmd/rio/wind.c
+++ b/sys/src/cmd/rio/wind.c
@@ -23,6 +23,7 @@
 
 static	int		topped;
 static	int		id;
+static	int		reverse;
 
 static	Image	*cols[NCOL];
 static	Image	*grey;
@@ -30,6 +31,7 @@
 static	Cursor	*lastcursor;
 static	Image	*titlecol;
 static	Image	*lighttitlecol;
+static	Image	*dholdcol;
 static	Image	*holdcol;
 static	Image	*lightholdcol;
 static	Image	*paleholdcol;
@@ -41,19 +43,36 @@
 	Rectangle r;
 
 	if(cols[0] == nil){
+		/* there are no pastel paints in the dungeons and dragons world
+		 * - rob pike
+		 */
+		reverse = 0;
+		if(getenv("reverse") != nil)
+			reverse = ~0xFF;
+
 		/* greys are multiples of 0x11111100+0xFF, 14* being palest */
-		grey = allocimage(display, Rect(0,0,1,1), CMAP8, 1, 0xEEEEEEFF);
-		darkgrey = allocimage(display, Rect(0,0,1,1), CMAP8, 1, 0x666666FF);
-		cols[BACK] = display->white;
-		cols[HIGH] = allocimage(display, Rect(0,0,1,1), CMAP8, 1, 0xCCCCCCFF);
+		grey = allocimage(display, Rect(0,0,1,1), CMAP8, 1, 0xEEEEEEFF^reverse);
+		darkgrey = allocimage(display, Rect(0,0,1,1), CMAP8, 1, 0x666666FF^reverse);
+		cols[BACK] = allocimage(display, Rect(0,0,1,1), CMAP8, 1, 0xFFFFFFFF^reverse);
+		cols[HIGH] = allocimage(display, Rect(0,0,1,1), CMAP8, 1, 0xCCCCCCFF^reverse);
 		cols[BORD] = allocimage(display, Rect(0,0,1,1), CMAP8, 1, 0x999999FF);
-		cols[TEXT] = display->black;
-		cols[HTEXT] = display->black;
-		titlecol = allocimage(display, Rect(0,0,1,1), CMAP8, 1, DGreygreen);
-		lighttitlecol = allocimage(display, Rect(0,0,1,1), CMAP8, 1, DPalegreygreen);
-		holdcol = allocimage(display, Rect(0,0,1,1), CMAP8, 1, DMedblue);
+		cols[TEXT] = allocimage(display, Rect(0,0,1,1), CMAP8, 1, 0x000000FF^reverse);
+		cols[HTEXT] = allocimage(display, Rect(0,0,1,1), CMAP8, 1, 0x000000FF^reverse);
+		if(reverse == 0) {
+			titlecol = allocimage(display, Rect(0,0,1,1), CMAP8, 1, DGreygreen);
+			lighttitlecol = allocimage(display, Rect(0,0,1,1), CMAP8, 1, DPalegreygreen);
+		} else {
+			titlecol = allocimage(display, Rect(0,0,1,1), CMAP8, 1, DPurpleblue);
+			lighttitlecol = allocimage(display, Rect(0,0,1,1), CMAP8, 1, 0x666666FF^reverse);
+		}
+		dholdcol = allocimage(display, Rect(0,0,1,1), CMAP8, 1, DMedblue);
 		lightholdcol = allocimage(display, Rect(0,0,1,1), CMAP8, 1, DGreyblue);
 		paleholdcol = allocimage(display, Rect(0,0,1,1), CMAP8, 1, DPalegreyblue);
+
+		if(reverse == 0)
+			holdcol = dholdcol;
+		else
+			holdcol = paleholdcol;
 	}
 	w = emalloc(sizeof(Window));
 	w->screenr = i->r;
@@ -740,7 +759,7 @@
 			w->cols[TEXT] = w->cols[HTEXT] = lightholdcol;
 	else
 		if(w == input)
-			w->cols[TEXT] = w->cols[HTEXT] = display->black;
+			w->cols[TEXT] = w->cols[HTEXT] = cols[TEXT];
 		else
 			w->cols[TEXT] = w->cols[HTEXT] = darkgrey;
 }
@@ -1341,7 +1360,6 @@
 		if(hidden[i] == w){
 			--nhidden;
 			memmove(hidden+i, hidden+i+1, (nhidden-i)*sizeof(hidden[0]));
-			hidden[nhidden] = nil;
 			break;
 		}
 	for(i=0; i<nwindow; i++)
--- a/sys/src/cmd/usb/kb/kb.c
+++ b/sys/src/cmd/usb/kb/kb.c
@@ -102,7 +102,7 @@
 static Kin kbdin =
 {
 	.ref = 0,
-	.name = "#Ι/kbin",
+	.name = "/dev/kbin",
 	.fd = -1,
 };
 static Kin ptrin =
--- a/usr/glenda/bin/rc/riostart
+++ b/usr/glenda/bin/rc/riostart
@@ -1,3 +1,3 @@
 #!/bin/rc
 window 0,0,161,117 stats -lmisce
-window -scroll
+window
--