;======================================================
; SEL32 System Engineering Labs 32 bit computer
; MPX - Ver 3.6 extended hardware configuration
; CPU - 32/67 16M Sel32 Concept/32
; IOP - 7e00 Model 8001 IOP Processor Controller
; MFP - 7600 Model 8002 Multi Function Processor
; SBA - 7e00/7e08 MFP SCSI Disk controller
;            sba0 SD700 Model 8833 700MB
;            sba0 <-> dsk/scsi35m1disk0
;            sba1 SD700 Model 8833 700MB
;            sba1 <-> dsk/scsi35m2disk0
; DMA - 0800 DMA HSDP Disk Controller
;            dma0 MD300 Model 8127 300MB MHD
;            dma0 <-> dsk/user36p2udp0
;     - 0802 DMA HSDP Disk Controller
;            dma1 MH600 Model 8155 600MB MHD
;            dma1 <-> dsk/user36s1udp1
;     - 0804 DMA HSDP Disk Controller
;            dma2 MH600 Model 8155 600MB MHD (N/U)
;            dma2 <-> dsk/user36s1udp2 (N/U)
; LPR - 7ef8/7ef9 Model 924X High Speed Line Printer
; COM - 7ec0 8512 8-line async communications
; CON - 7efc/7efd Console Terminal
; RTC - 7f06 60 HZ Real-Time clock
; ITM - 7f04 38.4MS Interval timer
; MT  - 1000 8051 Buffered Tape Processor
;            mta0 <- tapes/user36esdtp2.tap
; EC  - 0e00 Model 8516 Ethernet (not supported)
;======================================================
; Set HOST simulator
set env HOST=sel32
; Set local IP address
; set env IP=192.168.1.5 (N/U)
;======================================================
; Set directory for disk images
mkdir dsk
mkdir tapes
; Set tape image filename
set env FILE=user36esdtp2.tap
; Set github.com URL for downloading files
set env GITURL=https://github.com/AZBevier/SEL32-installs/raw/main/tapes/
if exist "tapes/%FILE%" goto exists
if not exist "tapes/%FILE%" echof "file %FILE% missing, trying %FILE%.tgz"
cd tapes
if exist "%FILE%.tgz" goto nocurl
echof "fetching %FILE%.tgz file from github.com\n"
curl -LJO %GITURL%/%FILE%.tgz
if not exist "%FILE%.tgz" echof "FAILED - file %FILE% not available"; exit 1
:nocurl
echof "untar %FILE%.tgz file\n"
tar -xzf %FILE%.tgz
cd ..
:exists
echof "file %FILE% present, doing install"
;
; Set NBC tape image filename
set env FILE2=nbctape3x.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 debug output
;set debug -n sel.log
;set debug stderr
;
; CPU type and memory
;set CPU 32/27 2M
;set CPU 32/27 4M
;set CPU 32/87 4M
;set CPU 32/87 8M
;set CPU 32/67 4M
set CPU 32/67 8M
;set CPU 32/67 16M
;set CPU 32/97 4M
;set CPU 32/97 8M
;
; CPU debug options
;set cpu debug=cmd;exp;inst;detail;trap;xio;irq
; Set instruction trace history size
;set cpu history=10000
; useful options
;set cpu debug=exp
;set cpu debug=cmd;exp;irq;trap;xio;inst
;;;;set cpu debug=cmd;exp;irq;trap;xio
;set cpu debug=cmd;irq;trap;exp
;set cpu debug=cmd;exp;xio
;set cpu debug=irq;trap;exp;xio
;
; RTC realtime clock
; address is 7f06
;set RTC 50
set RTC 60
; enable RTC
set RTC enable
; RTC debug options
;set RTC debug=cmd
;
; ITM interval timer
; address is 7f04
 set ITM 3840
;set ITM debug=cmd
;
; IOP at channel 7e00
; useful options
;;;;set iop debug=cmd;exp
;;set iop debug=cmd
; make iop online
set iop enable
; set iop channel address
set iop0 dev=7e00
;
; MFP at channel 7e00
; useful options
;;;;set mfp debug=cmd;exp
; make mfp online
set mfp enable
; set mfp channel address
;set mfp0 dev=7e00
set mfp0 dev=7600
;
; COM 8-Line on 7ec0
; useful options
;;set com debug=cmd;
set coml enable
set coml0 dev=7ec0
set coml0 enable
set coml1 enable
set coml2 enable
set coml3 enable
set coml4 enable
set coml5 enable
set coml6 enable
set coml7 enable
;
; Enable telnet sessions on port 4747
;set comc enable
;at comc 4747
;
; LPR
; LPR0 is at 7EF8
; LPR1 is at 7EF9
; useful options
;set lpr debug=cmd;detail
;;;;set lpr debug=cmd
set lpr enable
; LPR output file
;at lpr lprout
;
; CON Console
; useful options
;set con debug=cmd;exp;detail
; enable console
set con enable
; set console address
set con0 dev=7efc
;;;;set con debug=cmd;exp
;
; MTA Buffered tape processor
;set mta debug=cmd;exp;xio;data
; useful options
;set mta debug=cmd;exp;xio;data
;set mta debug=cmd;exp;xio
;
; enable MTA to change channel
set mta enable
; set mt channel
set mta0 dev=1000
;
; Attach in/out tape files
set mta0 locked
at mta0 tapes/user36esdtp2.tap
;at mta0 user36sdts1.tap
;at mta1 temptape.tap
;at mta2 output.tap
;
; DMA disk processor II/UDP
; enable DMA to change channel
set dma enable
; set disk chan to 0800
set dma0 dev=800
; set disk type to MPX MH300 8127
set dma0 type=MH300
; set disk type to MPX MH600 8155
;set dma0 type=MH600
; set disk chan to 0802
set dma1 dev=802
; set disk type to MPX MH300 8127
;set dma1 type=MH300
; set disk type to MPX MH600 8155
set dma1 type=MH600
;
; Attach diskfile
;at dma0 udp35disk0
at dma0 -i dsk/user36p2udp0
;at dma1 udp35disk1
; use s1 disk 2
at dma1 -i dsk/user36s1udp1
;;at dma0 mpx0disk
;;at dma1 mpx1disk
;at dma2 -i dsk/user36s1udp2
;
;set dma debug=cmd;exp;detail;data
; useful options
;;set dma debug=cmd;exp
;set dma debug=exp;cmd;detail
;
; SDA SCFI disk processor
;set sda debug=cmd;exp;data;detail
;set sda debug=cmd;exp
; Attach diskfiles
;at sda0 diskfile4
;at sda1 diskfile5
;
; SBA MFP SCSI buss 1 disk processor
set sba enable
; set disk chan to 7600
set sba0 dev=7600
; set disk type to MPX MH300
;set sba0 type=SD300
;set sba0 type=SD150
set sba0 type=SD700
set sba1 type=SD700
;;;;set sba debug=cmd;exp;data;detail
;;;;set sba debug=cmd;exp;xio;exp;data
; Attach diskfiles
;at sba0 scsia0disk
at sba0 -i dsk/scsi35m1disk0
;at sba1 scsi1disk
at sba1 -i dsk/scsi35m2disk0
;
; SBB SCSI buss 2 disk processor
;set sbb enable
; set disk chan to 7640
;set sbb0 dev=7640
; set disk type to MPX MH300
;;;;set sbb0 type=SD150
;set sbb0 type=SD150
;set sbb0 type=SD700
;set sbb0 type=SD300
;set sbb debug=cmd;exp;data;xio;detail
;set sbb debug=cmd;exp
; Attach diskfiles
;at sbb0 -i scsi35m2disk0
;at sbb1 scsi1disk
;
; DPA high speed disk processor
; enable HSDP to change channel
;set dpa enable
; set channel addr
;set dpa0 dev=800
; set disk type to UTX 8887
;set dpa0 type=8887
;
; Attach diskfiles
;at dpa0 utxdsk.dsk
;at dpa0 utx0hsdp
;at dpa1 utx1hsdp
;
; useful options
;set dpa debug=cmd;exp
;
; set console switches
deposit CSW 0
;
;UTX boot tape options
;set GPR 7 to 0x00 to boot in multi-user mode
;set GPR 7 to 0x01 to prompt for unix filename
;set GPR 7 to 0x02 to boot in single user mode
;set GPR 7 to 0x10 to disable swapping and paging
;set GPR 7 to 0x20 to boot from device specified in GPR6
;set GPR 7 to 0x40 to allow progress messages on boot
;deposit BOOTR[7] 40
;deposit BOOTR[7] 52
deposit BOOTR[7] 42
;deposit BOOTR[7] 2
;deposit BOOTR[6] 800
;deposit BOOTR[0] ffffffff
;
; Set register content at boot for SEL diagnostics
; uncomment next line to get diag loader prompt
;deposit bootr[0] ffffffff
;deposit bootr[1] 0
;deposit bootr[2] 0
; set Boot reg 0 1 to boot MSTRALL from master SDT
deposit bootr[0] 1
; set Boot reg 0  2 to boot MSTREXT from master SDT
;deposit bootr[0] 2
;
; allow cpu idle
set cpu idle
; Set expect script for auto time entry on MPX at OPCOM prompt
;expect haltafter=20000
;
; wait for expected output from simulator, then enter this text
;expect "  >>" send "BR 31D10\r"; continue
;expect "  >>" send "BR 2b4q\r"; continue
;expect "  >>" send "BR 430q\r"; continue
expect "  >>" send "TE\r"; continue
;expect "ENTER SYSTEM VOLUME CHANNEL AND SUBADDRESS: " send "7600\r"; continue
expect "ENTER SYSTEM DEVICE CHANNEL AND SUBADDRESS: " send "0800\r"; continue
;;expect "BOOT FROM A SCSI TAPE? (REPLY Y OR N): " send "N\r"; continue
;;expect "PLEASE ENTER THE 4 CHAR. DEVICE....." send "0800\r"; continue
;expect "PLEASE ENTER THE 4 CHAR. DEVICE....." send "7600\r"; continue
;;expect "ENTER DISC CONTROLLER TYPE:" send "X\r"; continue
;expect "ENTER DISC CONTROLLER TYPE:" send "M\r"; continue
expect "ENTER DATE" send " %DATE_MM%/%DATE_DD%/%DATE_YY%,%TIME_HH%:%TIME_MM%:%TIME_SS%\r"; GO
;
expect "FMT>" send "INITIALIZE DEV=DM0800 DIS=MH0300 DES=Y CON=N\r"; continue
;expect "FMT>" send "INITIALIZE DEV=DM7600 DIS=SD0700 DES=Y CON=N\r"; continue
;expect "FMT>" send "INITIALIZE DEV=DM7600 DIS=SD0300 DES=Y CON=N\r"; continue
expect "FMT>" send "FORMAT DEV=DM0800 VOL=SYSTEM MAXRE=8000 DES=Y CON=N\r"; continue;
;expect "FMT>" send "FORMAT DEV=DM7600 VOL=SYSTEM MAXRE=8000 CON=N\r"; continue
;expect "FMT>" send "INI DEV=DM7600 DIS=SD0150 DES=Y CON=N\r"; continue
;expect "FMT>" send "FOR DEV=DM7600 DIS=SD0700 VOL=SYSTEM MAXRE=8000 DES=Y CON=N\r"; continue
;expect "FMT>" send "INITIALIZE DEVICE=DM7600 DEST=Y DISC=SD0700 CONFIRM=N\r"; continue
;expect "FMT>" send "INITIALIZE DISC=SD0700 DEST=Y CONFIRM=N\r"; continue
;expect "FMT>" send "INITIALIZE DEST=Y CONFIRM=N\r"; continue
;;expect "FMT>" send "EXIT\r"; continue
expect "VOL>" send "CREATE D SYSTEM ENTRIES=2000\r"; continue
; restore system
expect "VOL>" send "RESTORE VOL=SYSTEM\r"; continue
; restore object, object_e, oldobj
;;expect "VOL>" send "RESTORE VOL=SYSTEM\r"; continue
; restore bin, doc, nblib, sample
;;expect "VOL>" send "RESTORE VOL=SYSTEM\r"; continue
expect "VOL>" send "REWIND\r"; continue
expect "VOL>" send "EXIT\r"; continue
;expect "SYSTEM READY... PRESS ATTENTION FOR TSM..."
expect "SYSTEM READY... PRESS ATTENTION FOR TSM..." send "@@A"; continue
expect "ENTER YOUR OWNERNAME:" send "SYSTEM\r"; continue
expect "TSM>" send "WHO\r"; continue
expect "TSM>" send "J.VFMT\r"; continue
expect "FMT>" send "INITIALIZE DEV=DM0802 DIS=MH0600 DES=Y CON=N\r"; continue
expect "CONTINUE - Y/N" send "Y\r"; continue
expect "TASK J.VFMT" send "R\r"; continue
expect "FMT>" send "FORMAT DEV=DM0802 VOL=WORK MAXRE=10000 DES=Y CON=N\r"; continue
expect "TSM>" send "MOUNT WORK ON DM0802 OPTI=PUBLIC\r"; continue
expect "TASK J.TSM" send "R\r"; continue
expect "TSM>" send "VOLMGR\r"; continue
expect "VOL>" send "CREATE D @WORK^SYSTEM ENTRIES=2000\r"; continue
expect "VOL>" send "EXIT\r"; continue
expect "TSM>" send "!STAT VOL\r"; continue
expect "TSM>" send "SYSINFO\r"; continue
;;expect "TSM>" send "WHO\r"; continue
expect "TSM>" send "SHUTDOWN 0\r"; continue
;;;expect "TSM>" send "EXIT\r"; continue
expect "sim>" send "q\r"; continue
;
; Boot from disk
;bo dma0
;
; Boot from mag tape
bo mta0
quit
