git: 9front

Download patch

ref: cfd46a8bf926f32bcc0e895ad80214d18298ac44
parent: 83f5857b449e04323a9c1230240c7334edd173a5
author: cinap_lenrek <cinap_lenrek@centraldogma>
date: Thu Apr 14 11:41:59 EDT 2011

set better defaults in termrc, set dmamode, allow breaking to rc with !rc

--- a/rc/bin/termrc
+++ b/rc/bin/termrc
@@ -9,6 +9,30 @@
 for(i in f t m v L P u U '$' Σ κ)
 	/bin/bind -a '#'^$i /dev >/dev/null >[2=1]
 
+fn ask {
+	if(~ $"$1 ask){
+		echo -n $1
+		echo -n $2
+		echo -n ' ['
+		echo -n $3
+		echo -n '] '
+		$1=`{read}
+		if(~ $"$1 '!rc'){
+			rc -i
+			$1=ask
+		}
+		if(~ $#$1 0)
+			$1=$3
+		ask $*
+	}
+}
+
+ask dmamode ' is (on, off)' on
+if(~ $"dmamode on off){
+	for(c in `{ls /dev/sd*/ctl >[2]/dev/null})
+		echo dma $dmamode >$c
+}
+
 # set up any partitions
 diskparts
 
@@ -27,8 +51,8 @@
 if(! test -e /srv/cs && ! test -e /net/cs)
 	ndb/cs -f $NDBFILE
 sysname=`{cat /dev/sysname}
-if (~ $#sysname 0 || ~ $sysname '') {
-	sysname = gnot			# default
+if(~ $#sysname 0 || ~ $sysname ''){
+	sysname=gnot			# default
 	echo -n $sysname >/dev/sysname
 }
 
@@ -59,7 +83,7 @@
 
 	# add the loop-back medium
 	if(! grep -s 127.0.0.1 /net/ipselftab)
-		ip/ipconfig loopback /dev/null 127.1
+		ip/ipconfig loopback /dev/null 127.1 >/dev/null >[2=1]
 
 	# set things up for vmware
 	if(! ~ `{cat /dev/user} none)
@@ -67,40 +91,26 @@
 			aux/vmware
 }
 
-# query user if terminal isn't adequately configured yet
-if(~ $mouseport ask){
-	echo -n 'mouseport is (ps2, ps2intellimouse, 0, 1, 2)[ps2]: '
-	mouseport=`{read}
-	if(~ $#mouseport 0)
-		mouseport=ps2
-}
-if(~ $vgasize ask){
-	echo -n 'vgasize [640x480x8]: '
-	vgasize=`{read}
-	if(~ $#vgasize 0)
-		vgasize=640x480x8
-}
-if(~ $monitor ask){
-	echo -n 'monitor is [xga]: '
-	monitor=`{read}
-	if(~ $#monitor 0)
-		monitor=xga
-}
-if(test -f /dev/mousectl){
-	switch($mouseport){
-	case ps2 ps2intellimouse 0 1 2
-		aux/mouse $mouseport
-		# parse vgasize into fields
-		vgasize=`{echo $vgasize}
+ask vgasize ' is (text, 640x480x8, 1024x768x16, ...)' 1024x768x16
+if(! ~ $"vgasize '' text none){
+	ask monitor ' is (vesa, xga, lcd, ...)' vesa
+	if(! ~ $"monitor ''){
+		if(test -f /dev/mousectl)
+			ask mouseport ' is (ps2, ps2intellimouse, 0, 1, 2)' ps2
+		if not
+			mouseport=none
 		@{
 			rfork n
 			if(~ $monitor vesa)
 				aux/realemu
-			if(! ~ $"monitor '')
-				aux/vga -l $vgasize
+			aux/vga -l $vgasize
 		}
-		if(~ $accupoint 1)
-			pipefile -dr /bin/aux/accupoint /dev/mouse
+		switch($mouseport){
+		case ps2 ps2intellimouse 0 1 2
+			aux/mouse $mouseport
+			if(~ $accupoint 1)
+				pipefile -dr /bin/aux/accupoint /dev/mouse
+		}
 	}
 }
 
@@ -108,4 +118,4 @@
 if (test -f /dev/apm)
 	aux/apm
 
-dontkill '^(ipconfig|factotum|mntgen|fossil|cs|dns|listen|reboot)$'
+dontkill '^(ipconfig|factotum|mntgen|fossil|kfs|cwfs|cs|dns|listen|reboot)$'
--