;======================================================
; SEL32 System Engineering Labs 32 bit computer
; UTX - Ver 2.1B hardware configuration
; CPU - V6 8M Sel32 Powernode
; MFP - 7e00 Model 8001 IOP Processor Controller
; DMA - 0800 2311/2314 Disk Processor II
;            dma0 Model 8858 340MB
;            dma0 <-> dsk/21bdisk0.dma
;            dma1 Model 8858 340MB
;            dma1 <-> dsk/21bdisk1.dma
; LPR - 7ef8/7ef9 Model 924X High Speed Line Printer
; COM - 7ee0 8512 8-line async communications
; CON - 7efc/7efd Console Terminal
; RTC - 7f06 50 HZ Real-Time clock
; ITM - 7f04 38.4MS Interval timer
; MT  - 1000 8051 Buffered Tape Processor
;            mta0 <- tapes/utx21b1.tap
; EC  - 0e00 Model 8516 Ethernet
;======================================================
; Set hostname
set env HOST=sel32
; Set local IP address
set env IP=192.168.1.5
;======================================================
; Set directory for disk images
mkdir dsk
mkdir tapes
; Set tape image filename
set env FILE1=utx21b1.tap
; Set github.com URL for downloading files
set env GITURL=https://github.com/AZBevier/SEL32-installs/raw/main/tapes/
if exist "tapes/%FILE1%" goto exists1
if not exist "tapes/%FILE1%" echof "file %FILE1% missing, trying %FILE1%.tgz"
cd tapes
if exist "%FILE1%.tgz" goto nocurl1
echof "fetching %FILE1%.tgz file from github.com\n"
curl -LJO %GITURL%/%FILE1%.tgz
if not exist "%FILE1%.tgz" echof "FAILED - file %FILE1% not available"; exit 1
:nocurl1
echof "untar %FILE1%.tgz file\n"
tar -xzf %FILE1%.tgz
cd ..
:exists1
echof "file %FILE1% present, doing install"
;
; Set directory for disk images
mkdir dsk
mkdir tapes
; Set tape image filename
set env FILE2=utx21b2.tap
if exist "tapes/%FILE2%" goto exists2
if not exist "tapes/%FILE2%" echof "file %FILE2% missing, trying %FILE2%.tgz"
cd tapes
if exist "%FILE2%.tgz" goto nocurl2
echof "fetching %FILE2%.tgz file from github.com\n"
curl -LJO %GITURL%/%FILE2%.tgz
if not exist "%FILE2%.tgz" echof "FAILED - file %FILE2% not available"; exit 1
:nocurl2
echof "untar %FILE2%.tgz file\n"
tar -xzf %FILE2%.tgz
cd ..
:exists2
echof "file %FILE2% present, doing install"
;
; Set directory for disk images
mkdir dsk
mkdir tapes
; Set tape image filename
set env FILE3=utx21b3.tap
if exist "tapes/%FILE3%" goto exists3
if not exist "tapes/%FILE3%" echof "file %FILE% missing, trying %FILE%.tgz"
cd tapes
if exist "%FILE3%.tgz" goto nocurl3
echof "fetching %FILE3%.tgz file from github.com\n"
curl -LJO %GITURL%/%FILE3%.tgz
if not exist "%FILE3%.tgz" echof "FAILED - file %FILE% not available"; exit 1
:nocurl3
echof "untar %FILE3%.tgz file\n"
tar -xzf %FILE3%.tgz
cd ..
:exists3
echof "file %FILE3% present, doing install"
;
set RTC 50
set CPU V6 8M
set RTC enable
set iop enable
set iop0 dev=7e00
set dma enable
set dma0 dev=800
set dma0 type=8858
set dma1 type=8858
set coml0 dev=7ee0
set coml0 enable
set coml1 enable
set coml2 enable
set coml3 enable
set coml4 enable
set coml5 enable
set coml6 enable
set coml7 enable
set con enable
set con0 dev=7efc
set mta enable
set mta0 dev=1000
set lpr enable
set comc enable
at comc 4747
set ec enable
set ec mode=2
set ec0 dev=0e00
; set mac address to cause ec to be attached
set ec MAC=08:00:5D:01:01:20
;at lpr lprout
;set cpu idle
;
deposit BOOTR[7] 42
deposit BOOTR[6] 800
set mta0 locked
at mta0 tapes/utx21b1.tap
at dma0 -i dsk/21bdisk0.dma
at dma1 -i dsk/21bdisk1.dma
at ec tap:tap0
expect "#" continue
expect "#" send "prep /dev/rdk0a\r"; continue
expect "Ready to prep /dev/rdk0a" send "yes\r"; continue
expect "Which option ?" send "2\r"; continue
expect "Warning: some data may be lost on the pack, proceed <no>?" send "yes\r"; continue
expect "Rebuild UTX flaw map from diagnostic flaw map <no>?" send "yes\r"; continue
expect "Please select a drive type:" send "8\r"; continue
expect "#" continue
expect "#" continue
expect "How many spare tracks should be allocated " send "\r"; continue
expect "Do you really want to do this <no>?" send "yes\r"; continue
expect "Which option ?" send "3\r"; continue
expect "Which option ?" send "2\r"; continue
expect "(a) Starting Cylinder <0>?" send "0\r"; continue
expect "(a) Size In Blocks <25344> or Ending Cylinder <C65>?" send "c65\r"; continue
expect "(a) Swap <no>?" send "\r"; continue
expect "(b) Starting Cylinder <66>?" send "66\r"; continue
expect "(b) Size In Blocks <20352> or Ending Cylinder <C118>?" send "c118\r"; continue
expect "(b) Swap <yes>?" send "\r"; continue
expect "(c) Starting Cylinder <0>?" send "\r"; continue
expect "(c) Size In Blocks <271488> or Ending Cylinder <C706>?" send "\r"; continue
expect "(c) Swap <no>?" send "\r"; continue
expect "(d) Starting Cylinder <119>?" send "119\r"; continue
expect "(d) Size In Blocks <70272> or Ending Cylinder <C301>?" send "c301\r"; continue
expect "(d) Swap <no>?" send "\r"; continue
expect "(e) Starting Cylinder <302>?" send "302\r"; continue
expect "(e) Size In Blocks <100224> or Ending Cylinder <C562>?" send "C706\r"; continue
expect "(e) Swap <no>?" send "\r"; continue
expect "(f) Starting Cylinder <563>?" send "0\r"; continue
expect "(f) Size In Blocks <55296> or Ending Cylinder <C143>?" send "0\r"; continue
expect "(f) Swap <no>?" send "\r"; continue
expect "(g) Starting Cylinder <0>?" send "\r"; continue
expect "(g) Size In Blocks <0> or Ending Cylinder <C0>?" send "\r"; continue
expect "(g) Swap <no>?" send "\r"; continue
expect "(h) Starting Cylinder <0>?" send "\r"; continue
expect "(h) Size In Blocks <0> or Ending Cylinder <C0>?" send "\r"; continue
expect "(h) Swap <no>?" send "\r"; continue
expect "Do you really want to do this <no>?" send "yes\r"; continue
expect "Which option ?" send "0\r"; continue
expect "Which option ?" send "0\r"; continue
expect "#" send "prep /dev/rdk1a\r"; continue
expect "Ready to prep /dev/rdk1a" send "yes\r"; continue
expect "Which option ?" send "2\r"; continue
expect "Warning: some data may be lost on the pack, proceed <no>?" send "yes\r"; continue
expect "Rebuild UTX flaw map from diagnostic flaw map <no>?" send "yes\r"; continue
expect "Please select a drive type:" send "8\r"; continue
expect "#" continue
expect "#" continue
expect "How many spare tracks should be allocated " send "\r"; continue
expect "Do you really want to do this <no>?" send "yes\r"; continue
expect "Which option ?" send "0\r"; continue
expect "#" send "newfs /dev/dk0a\r"; continue
expect "#" continue
expect "#" send "mount /dev/dk0a /mnt\r"; continue
expect "#" send "cd /mnt\r"; continue
expect "#" send "restore r\r"; continue
expect "#" send "cd /\r"; continue
expect "#" send "umount /dev/dk0a\r"; continue
expect "#" send "halt\r"; continue
bo mta0
deposit BOOTR[7] 2
at mta0 tapes/utx21b2.tap
; do not allow cpu to idle
; works around a reboot issue with UTX
; if allowed, installation will hang checking root file system
set cpu noidle
;at mta0 tapes/utx21b2-3.tap
expect "#" continue
expect "#" send "newfs /dev/dk0d\r"; continue
expect "#" continue
expect "#" send "newfs /dev/dk0e\r"; continue
expect "#" continue
expect "#" send "mount /dev/dk0d /usr.POWERNODE\r"; continue
expect "#" send "rm /restoresymtable\r"; continue
expect "#" send "cd /usr.POWERNODE\r"; continue
expect "#" send "restore rf /dev/rmt0\r"; continue
expect "then enter tape name (default: /dev/rmt0)" at mta0 tapes/utx21b3.tap; send "\r"; continue
expect "#" send "rm /usr.POWERNODE/restoresymtable\r"; continue
expect "#" send "cd /\r"; continue
expect "#" send "/ranlib.sh\r"; continue
expect "#" send 'echo "/dev/dk0e /usr.POWERNODE/src 4.3 rw,noquota 1 3" >>/etc/fstab\r'; continue
expect "echo" continue
;expect "#" send "mount /dev/dk0e /usr.POWERNODE/src\r"; at mta0 tapes/utx21b_src.tap; continue
;expect "#" send "cd /usr.POWERNODE/src\r"; continue
;expect "#" send "tar xf /dev/rmt0\r"; continue
expect "#" send "ed /etc/rc.boot\r"; continue
expect "1522" send "/preen/\r"; continue
expect "#" send "s/#/ /\r.+1\r"; continue
expect "#" continue
expect "echo" send "d\r"; 'expect "\r\n" send "/noname/\r"; continue' ; continue
expect "/bin/hostname noname" send "s/noname/%HOST%/\rw\rq\r"; continue
expect "#" send "ed /etc/hosts\r"; continue
expect "128" send "/sysname/\r"; continue
expect "sysname" continue
expect "sysname" send "d\r"; 'expect "\r\n" send "i\r%IP%    %HOST%\r.\rw\rq\r"; continue'; continue
expect "#" send "ed /etc/rc.local\r" ; continue
expect "3849" send "/echo 'Setup/\r"; continue
expect "#" send "s/# //\r"; 'expect "\r\n" send "/en0 inet/\r"; continue' ; continue
expect "#" continue
expect "#" send "s/# //\r"; 'expect "\r\n" send "w\rq\r"; continue'; continue
expect "#" continue
expect "#" send "newfs /dev/dk1c\r"; continue
expect "#" continue
expect "#" send "mkdir /home\r"; continue
expect "#" send 'echo "/dev/dk1c /home 4.3 rw,noquota 2 1" >>/etc/fstab\r'; continue
expect "echo" continue
expect "#" send 'bin/echo "stty intr \003" >>/.profile\r'; continue
expect "#" send "mount /dev/dk1c /home\r"; continue
expect "#" send "df\r"; continue
;expect "#" send "reboot\r"; continue
expect "#" send "halt\r"; continue
expect "sim>" send "q\r"; continue
;Boot from disk dma0
bo dma0
;stop simh execution
quit
