From 2959e1ede0ebc6fdffd7b8660f43c2ce14c9696f Mon Sep 17 00:00:00 2001 From: Taru Karttunen Date: Wed, 30 Mar 2011 17:14:36 +0300 Subject: Import sources from 2011-03-30 iso image - rc --- rc/bin/pc/bootwin9x | 115 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100755 rc/bin/pc/bootwin9x (limited to 'rc/bin/pc/bootwin9x') diff --git a/rc/bin/pc/bootwin9x b/rc/bin/pc/bootwin9x new file mode 100755 index 000000000..f3f33c613 --- /dev/null +++ b/rc/bin/pc/bootwin9x @@ -0,0 +1,115 @@ +#!/bin/rc + +dosdisk=`{ls /dev/sd??/dos >[2]/dev/null | sed 1q | sed 's!.*/(.*)/dos!\1!'} +if(~ $#dosdisk 0 || ! c: || ! test -f /n/c:/autoexec.bat || ! test -f /n/c:/config.sys) { + echo 'Could not find autoexec.bat or config.sys on the first FAT disk.' >[1=2] + exit +} + +for (i in autoexec config msdos) + if(test -f /n/c:/$i.p9) { + echo 'A Plan 9 backup already exists; will not edit system files again.' >[1=2] + exit + } + +for (i in autoexec.bat config.sys msdos.sys) + if(! cp /n/c:/$i /n/c:/^`{echo $i | sed 's/\.(bat|sys)$/.p9/'}) { + echo 'Could not back up '^$i^'; will not continue.' >[1=2] + exit + } + +if(! test -d /n/c:/plan9 && ! mkdir /n/c:/plan9) { + echo 'Could not create directory /n/c:/plan9.' >[1=2] + exit +} + +if(! cp /386/^(9load ld.com) /386/9pcdisk /n/c:/plan9) { + echo 'Could not copy Plan 9 boot files into /n/c:/plan9.' >[1=2] + exit +} + +chmod +w /n/c:/autoexec.bat /n/c:/config.sys /n/c:/msdos.sys + +if(grep -si 'Plan ?9' /n/c:/config.sys || grep -si 'Plan ?9' /n/c:/autoexec.bat) { + echo 'Plan 9 entries already in config.sys or autoexec.bat.' >[1=2] + echo 'Not changing them; refer to Plan 9 install documentation' >[1=2] + echo 'to configure manually.' >[1=2] + exit +} + +if(! grep -si '\[menu\]' /n/c:/config.sys) { + { + echo 1 + echo i + echo '[menu] ' + echo 'menuitem=windows, Windows ' + echo 'menudefault=windows ' + echo ' ' + echo '[common] ' + echo ' ' + echo '[windows] ' + echo . + echo w + echo q + } | ed /n/c:/config.sys >/dev/null >[2]/dev/null +} + +{ + echo 1 + echo '/\[[Mm][Ee][Nn][Uu]\]' + echo '?^[Mm][Ee][Nn][Uu][Ii][Tt][Ee][Mm]=' + echo a + echo 'menuitem=plan9, Plan 9 from Bell Labs ' + echo . + echo '$' + echo a + echo ' ' + echo '[plan9] ' + echo ' ' + echo . + echo w + echo q +} | ed /n/c:/config.sys >/dev/null >[2]/dev/null + +{ + echo 1 + echo i + echo '@echo off ' + echo 'if %config%==plan9 goto plan9 ' + echo 'goto notplan9 ' + echo ':plan9 ' + echo 'plan9\ld '^$dosdisk^'!dos!plan9/9load ' + echo ':notplan9 ' + echo . + echo w + echo q +} | ed /n/c:/autoexec.bat >/dev/null >[2]/dev/null + +fn zeroopt { + if(grep -s '^'^$1^'=1' /n/c:/msdos.sys) { + { + echo '/^'^$1^'=1/s/=1/=0/' + echo w + echo q + } | ed /n/c:/msdos.sys >/dev/null >[2]/dev/null + } + if not if (grep -s '^'^$1^'=0' /n/c:/msdos.sys) + ; + if not { + { + echo 1 + echo i + echo '[Options] ' + echo 'Logo=0 ' + echo . + echo w + echo q + } | ed /n/c:/msdos.sys >/dev/null >[2]/dev/null + } +} + +if(grep -si '^\[paths\]' /n/c:/msdos.sys){ # Windows 9x rather than DOS + zeroopt Logo +} + +exit -- cgit v1.2.3