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)$'
--
⑨