;======================================================
; SEL32 System Engineering Labs 32 bit computer
; MPX - Ver 1.5F hardware configuration
; CPU - 32/27 2M Sel32 Concept/32
; IOP - 7e00 Model 8001 IOP Processor Controller
; DMA - 0800 2311/2314 Disk Processor II
;            dma0 MH300 Model 8127 300MB MHD
;            dma0 <-> dsk/sel32disk
; 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/mpx1xsdt.tap
; EC  - 0e00 Model 8516 Ethernet (not supported)
;======================================================
; Set hostname
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=mpx1xsdt.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 debug output
;set debug -n sel.log
;set debug stderr
;
; CPU type and memory
; Bad on UTX
set CPU 32/27 2M
;set CPU 32/27 4M
;set CPU 32/87 4M
;set CPU 32/67 4M
;End of Bad
;set CPU 32/97 4M
;set CPU V6 4M
;set CPU V6 8M
;set CPU V9 4M
;set CPU V9 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;xio;trap
;set cpu debug=cmd;exp;irq;trap;xio;
;set cpu debug=cmd;irq;trap;exp
;set cpu debug=irq;trap;exp;xio
;set cpu debug=irq;xio;exp;inst;cmd;trap
;set cpu debug=irq;xio;exp;cmd;trap
;
; RTC realtime clock
; address is 7f06
;set RTC 50
set RTC 60
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
set iop enable
; set iop channel
set iop0 dev=7e00
;set iop debug=cmd;exp
;set iop debug=cmd
;
; COM 8-Line
set coml enable
set coml0 dev=7ec0
;set coml debug=cmd;
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
;set comc debug=cmd;
at comc 4747
;
; LPR
; LPR0 is at 7EF8
; LPR1 is at 7EF9
; useful options
;set lpr debug=cmd;detail
set lpr enable
; LPR output file
;at lpr lprout
;
;; CON Console
;set con debug=cmd;exp;detail
; useful options
; enable console
;;set con debug=cmd;exp
set con enable
; set console address
; set con0 enable
set con0 dev=7efc
; set con1 enable
set con1 dev=7efd
;set con debug=cmd;exp
;
; MTA Buffered tape processor
;set mta debug=cmd;exp;detail;data
; useful options
;;set mta debug=cmd;detail;exp
;set mta debug=cmd;exp
;
; enable MTA to change channel
set mta enable
; set mta channel
set mta0 dev=1000
;
; Attach in/out tape files
set mta0 locked
at mta0 tapes/mpx1xsdt.tap
;at mta0 nbctape.tap
;at mta0 usertape.tap
;at mta0 mpxsdt6r.tap
;at mta0 tapes/sel32sdt.tap
;at mta0 diag.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
set dma0 type=MH300
; set disk type to MPX MH080
;set dma0 type=MH080
; set disk type to UTX 9346
;set dma0 type=9346
;set dma0 type=8155
;set dma0 type=8887
;set dma0 type=8148
;
; Attach diskfile
at dma0 -i dsk/sel32disk
;
; Debug options
;set dma debug=cmd;exp;detail;data
; useful options
;set dma debug=cmd;exp
;set dma debug=exp
;
; SDA SCFI disk processor
;set sda debug=cmd;exp;data;detail
; Attach diskfiles
;at sda0 diskfile4
;at sda1 diskfile5
;
; 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
;
;set dpa debug=cmd;detail;exp
; 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
;
; allow cpu idle
set cpu idle
; wait for expected output from simulator, then enter this text
expect "COLD OR WARM START (C OR W)?" send "C\r"; continue
; Set expect script for auto time entry on MPX at OPCOM prompt
;expect "??" send " %DATE_MM%/%DATE_DD%/%DATE_YY%,%TIME_HH%:%TIME_MM%:%TIME_SS%\r@@A"; continue
expect "??" send " %DATE_MM%/%DATE_DD%/%DATE_YY%,%TIME_HH%:%TIME_MM%:%TIME_SS%\r@@Ax\r"; GO
expect "TSM>" send "A4 SLO=UT\r"; continue
expect "TSM>" send "A3 IN=M91000,TAP\r"; continue
expect "TSM>" send "PAGE 0\r"; continue
expect "TSM>" send "FILEMGR\r"; continue
; restore all files
expect "FIL>" send "RESTORE\r"; continue
expect "FIL>" send "EXIT\r"; continue
expect "TSM>" send "WHO\r"; continue
expect "TSM>" send "EXIT\r"; continue
expect "RING IN FOR SERVICE" send "\r^E"
; Boot from mag tape
bo mta0
detach all
quit
