; Starfish test.
; RELOAD a new MPE-V/R system from the FOS tape.
; Starfish 7912 is LDEV 1.


; Set up the log(s).

set -n console log=mpe-sysdcx-reload.log
set -n console debug=mpe-sysdcx-reload-debug.log


; Configure the CPU.

set CPU 512K,CIS,IDLE=10


; Configure the simulation environment.

break delay 100 milliseconds

set console DEL=177

set IMBA ENABLED


; Set the disc mode and image file.

set DC0 7912,BUS=0,UNIT=0
set DC1 ENABLED,7912,BUS=0,UNIT=1

attach -N DC0 mpe-sysdcx-reload-U0.7912.disc


; Set the tape mode and attach the FOS tape image file.

set MS0 7970E
attach -R MS0 32002-11018_Rev-2548.tape


; Set the debugging options.

; set cpu debug
;set iop debug=dio;irq,filter=0-87
;set imba debug
;set gic debug=xfer
set dc  debug=cmd;inco
;set cpp debug


; Cold load the FOS installation tape.

deposit SWCH 003006
load


; Work around the SPEEDSENSE bug in INITIAL (see the note above).
;
; Verify that the target location contains a "LOAD P+22,I,X" instruction and
; then change it to a "LDI 360" instruction to set the detected speed to 240
; cps.

assert  01.112247=046022
deposit 01.112247 021360


; Run the INITIAL program and reply to the configuration questions.

echo
echo
echo --------------
echo MPE-V/R Reload
echo --------------
echo


go until "WHICH OPTION <COLDSTART/RELOAD/UPDATE>? "              ; reply "RELOAD\r"
go until "WHICH OPTION <SPREAD/COMPACT/RESTORE/ACCOUNTS/NULL>? " ; reply "SPREAD\r"
go until "ANY CHANGES? "                                         ; reply "YES\r"
go until "LOAD MAP? "                                            ; reply "YES\r"
go until "MEMORY SIZE = 128.? "                                  ; reply "512\r"


; Change the I/O configuration.

go until "I/O CONFIGURATION CHANGES? " ; reply "YES\r"
go until "LIST I/O DEVICES? "          ; reply "YES\r"
go until "LIST CS DEVICES? "           ; reply "NO\r"
go until "HIGHEST DRT = 23.? "         ; reply "95\r"


; Change the system disc to the Starfish 7912.
;
; Subtype 1 = 7911 disc drive
; Subtype 2 = 7912 disc drive
; Subtype 8 = 7933 disc drive

go until "LOGICAL DEVICE #? "     ; reply "1\r"
go until "DRT #? "                ; reply "88\r"
go until "UNIT #? "               ; reply "0\r"
go until "SOFTWARE CHANNEL #? "   ; reply "0\r"
go until "TYPE? "                 ; reply "3\r"
go until "SUB TYPE? "             ; reply "2\r"
go until "RECORD WIDTH? "         ; reply "128\r"
go until "OUTPUT DEVICE? "        ; reply "0\r"
go until "ACCEPT JOBS/SESSIONS? " ; reply "NO\r"
go until "ACCEPT DATA? "          ; reply "NO\r"
go until "INTERACTIVE? "          ; reply "NO\r"
go until "DUPLICATIVE? "          ; reply "NO\r"
go until "INITIALLY SPOOLED? "    ; reply "NO\r"
go until "DRIVER NAME? "          ; reply "*HIOMDSC2\r"
go until "DEVICE CLASSES? "       ; reply "DISC,SPOOL\r"


; Change the system console terminal type from an HP 264x to a non-HP terminal,
; as the default simulation console does not respond to the HP ENQ/ACK
; protocol.
;
; Term type  0 = ASR33 teleprinter (the driver writes SYN pad characters)
; Term type  4 = HP 2600A terminal
; Term type 10 = HP 264x, HP 262x terminal
; Term type 18 = Non-HP terminal

go until "LOGICAL DEVICE #? "               ; reply "20\r"
go until "DRT #? "                          ; reply "7\r"
go until "UNIT #? "                         ; reply "0\r"
go until "SOFTWARE CHANNEL #? "             ; reply "0\r"
go until "TYPE? "                           ; reply "16\r"
go until "SUB TYPE? "                       ; reply "0\r"
go until "TERM TYPE? "                      ; reply "18\r"
go until "SPEED IN CHARACTERS PER SECOND? " ; reply "\r"
go until "RECORD WIDTH? "                   ; reply "40\r"
go until "OUTPUT DEVICE? "                  ; reply "20\r"
go until "ACCEPT JOBS/SESSIONS? "           ; reply "YES\r"
go until "ACCEPT DATA? "                    ; reply "YES\r"
go until "INTERACTIVE? "                    ; reply "YES\r"
go until "DUPLICATIVE? "                    ; reply "YES\r"
go until "INITIALLY SPOOLED? "              ; reply "NO\r"
go until "DRIVER NAME? "                    ; reply "IOTERM0\r"
go until "DEVICE CLASSES? "                 ; reply "TERM\r"


; Change ATC channel 2 from hardwired to modem connection to demonstrate DTR
; disconnection after logoff.
;
; Term type  0 = ASR33 teleprinter (the driver writes SYN pad characters)
; Term type  4 = HP 2600A terminal
; Term type 10 = HP 264x, HP 262x terminal
; Term type 18 = Non-HP terminal
;
; Subtype 0 = hardwired connection, speed sensing
; Subtype 1 = full-duplex modem connection, speed sensing

go until "LOGICAL DEVICE #? "               ; reply "22\r"
go until "DRT #? "                          ; reply "7\r"
go until "UNIT #? "                         ; reply "2\r"
go until "SOFTWARE CHANNEL #? "             ; reply "0\r"
go until "TYPE? "                           ; reply "16\r"
go until "SUB TYPE? "                       ; reply "1\r"
go until "TERM TYPE? "                      ; reply "10\r"
go until "SPEED IN CHARACTERS PER SECOND? " ; reply "\r"
go until "RECORD WIDTH? "                   ; reply "40\r"
go until "OUTPUT DEVICE? "                  ; reply "22\r"
go until "ACCEPT JOBS/SESSIONS? "           ; reply "YES\r"
go until "ACCEPT DATA? "                    ; reply "YES\r"
go until "INTERACTIVE? "                    ; reply "YES\r"
go until "DUPLICATIVE? "                    ; reply "YES\r"
go until "INITIALLY SPOOLED? "              ; reply "NO\r"
go until "DRIVER NAME? "                    ; reply "IOTERM0\r"
go until "DEVICE CLASSES? "                 ; reply "TERM\r"


; Remove these communications devices:
;
;  - 30360A Hardwired Serial Interface
;  - 30055A Synchronous Single-Line Controller
;  - 30010A Intelligent Network Processor
;
; None of these devices exist on the simulated system.

go until "LOGICAL DEVICE #? " ; reply "11\r"
go until "DRT #? "            ; reply "0\r"

go until "LOGICAL DEVICE #? " ; reply "12\r"
go until "DRT #? "            ; reply "0\r"

go until "LOGICAL DEVICE #? " ; reply "13\r"
go until "DRT #? "            ; reply "0\r"

go until "LOGICAL DEVICE #? " ; reply "14\r"
go until "DRT #? "            ; reply "0\r"

go until "LOGICAL DEVICE #? " ; reply "15\r"
go until "DRT #? "            ; reply "0\r"

go until "LOGICAL DEVICE #? " ; reply "16\r"
go until "DRT #? "            ; reply "0\r"

go until "LOGICAL DEVICE #? " ; reply "17\r"
go until "DRT #? "            ; reply "0\r"

go until "LOGICAL DEVICE #? " ; reply "18\r"
go until "DRT #? "            ; reply "0\r"

go until "LOGICAL DEVICE #? " ; reply "60\r"
go until "DRT #? "            ; reply "0\r"

go until "LOGICAL DEVICE #? " ; reply "61\r"
go until "DRT #? "            ; reply "0\r"

go until "LOGICAL DEVICE #? " ; reply "62\r"
go until "DRT #? "            ; reply "0\r"

go until "LOGICAL DEVICE #? " ; reply "63\r"
go until "DRT #? "            ; reply "0\r"

go until "LOGICAL DEVICE #? " ; reply "70\r"
go until "DRT #? "            ; reply "0\r"

go until "LOGICAL DEVICE #? " ; reply "71\r"
go until "DRT #? "            ; reply "0\r"

go until "LOGICAL DEVICE #? " ; reply "72\r"
go until "DRT #? "            ; reply "0\r"

go until "LOGICAL DEVICE #? " ; reply "73\r"
go until "DRT #? "            ; reply "0\r"

go until "LOGICAL DEVICE #? " ; reply "80\r"
go until "DRT #? "            ; reply "0\r"

go until "LOGICAL DEVICE #? " ; reply "81\r"
go until "DRT #? "            ; reply "0\r"

go until "LOGICAL DEVICE #? " ; reply "82\r"
go until "DRT #? "            ; reply "0\r"

go until "LOGICAL DEVICE #? " ; reply "83\r"
go until "DRT #? "            ; reply "0\r"

go until "LOGICAL DEVICE #? " ; reply "90\r"
go until "DRT #? "            ; reply "0\r"

go until "LOGICAL DEVICE #? " ; reply "91\r"
go until "DRT #? "            ; reply "0\r"

go until "LOGICAL DEVICE #? " ; reply "92\r"
go until "DRT #? "            ; reply "0\r"

go until "LOGICAL DEVICE #? " ; reply "93\r"
go until "DRT #? "            ; reply "0\r"

go until "LOGICAL DEVICE #? " ; reply "95\r"
go until "DRT #? "            ; reply "0\r"

go until "LOGICAL DEVICE #? " ; reply "100\r"
go until "DRT #? "            ; reply "0\r"

go until "LOGICAL DEVICE #? " ; reply "101\r"
go until "DRT #? "            ; reply "0\r"

go until "LOGICAL DEVICE #? " ; reply "102\r"
go until "DRT #? "            ; reply "0\r"

go until "LOGICAL DEVICE #? " ; reply "103\r"
go until "DRT #? "            ; reply "0\r"

go until "LOGICAL DEVICE #? " ; reply "110\r"
go until "DRT #? "            ; reply "0\r"

go until "LOGICAL DEVICE #? " ; reply "117\r"
go until "DRT #? "            ; reply "0\r"

go until "LOGICAL DEVICE #? " ; reply "120\r"
go until "DRT #? "            ; reply "0\r"

go until "LOGICAL DEVICE #? " ; reply "121\r"
go until "DRT #? "            ; reply "0\r"

go until "LOGICAL DEVICE #? " ; reply "122\r"
go until "DRT #? "            ; reply "0\r"

go until "LOGICAL DEVICE #? " ; reply "123\r"
go until "DRT #? "            ; reply "0\r"

go until "LOGICAL DEVICE #? " ; reply "130\r"
go until "DRT #? "            ; reply "0\r"

go until "LOGICAL DEVICE #? " ; reply "137\r"
go until "DRT #? "            ; reply "0\r"

go until "LOGICAL DEVICE #? " ; reply "138\r"
go until "DRT #? "            ; reply "0\r"


; Finished with the changes to the I/O devices.

go until "LOGICAL DEVICE #? "               ; reply "0\r"

go until "MAX # OF OPEN SPOOLFILES = 20.? " ; reply "\r"
go until "LIST I/O DEVICES? "               ; reply "YES\r"
go until "CLASS CHANGES? "                  ; reply "NO\r"
go until "LIST I/O DEVICES? "               ; reply "NO\r"
go until "LIST ADDITIONAL DRIVERS? "        ; reply "YES\r"
go until "I/O CONFIGURATION CHANGES? "      ; reply "NO\r"


; Change the disc volume table.

go until "DISC VOLUME CHANGES? " ; reply "YES\r"
go until "LIST VOLUME TABLE? "   ; reply "YES\r"


; Delete the existing disc volumes.

go until "DELETE VOLUME? "     ; reply "YES\r"
go until "ENTER VOLUME NAME? " ; reply "MH7920U0\r"
go until "ENTER VOLUME NAME? " ; reply "MH7925U1\r"
go until "ENTER VOLUME NAME? " ; reply "\r"

; Add the Starfish system volume.

go until "ADD VOLUME? "                              ; reply "YES\r"
go until "ENTER VOLUME NAME? "                       ; reply "MH7912U0\r"
go until "ENTER VOLUME NAME? "                       ; reply "\r"

go until "LIST VOLUME TABLE? "                       ; reply "YES\r"
;        "INVALID LABEL FOR DEVICE 2"
go until "ENTER VOLUME NAME? "                       ; reply "MH7912U0\r"
go until "LIST DEFECTIVE TRACK/SECTOR INFORMATION? " ; reply "YES\r"
go until "LOGICAL DEVICE #? "                        ; reply "1\r"
go until "LOGICAL DEVICE #? "                        ; reply "\r"
go until "DELETE TRACK? "                            ; reply "NO\r"
go until "LIST VOLUME TABLE? "                       ; reply "YES\r"

; List the virtual memory allocation.

go until "LIST VIRTUAL MEMORY DEVICE ALLOCATION? "    ; reply "YES\r"
go until "ENTER VOLUME NAME , SIZE IN KILOSECTORS? "  ; reply "MH7912U0,5\r"
go until "ENTER VOLUME NAME , SIZE IN KILOSECTORS? "  ; reply "\r"
go until "VIRTUAL MEMORY CHANGES? "                   ; reply "NO\r"

go until "DISABLE LOGGING? "                          ; reply "NO\r"
go until "MAX # OF SPOOLFILE KILOSECTORS? =128?"      ; reply "\r"
go until "# OF SECTORS PER SPOOLFILE EXTENT = 384.? " ; reply "\r"


; The FOS tape is now read, and files are copied to the disc.
;
; The FOS tape directory contains entries for files that are not present on the
; tape.  INITIAL reports that these files are not found and asks whether
; another tape image is available.  The missing files are mostly support files
; that do not affect MPE operation.

go until "184 FILES NOT FOUND - ANOTHER TAPE SET AVAILABLE? " ; reply "NO\r"
go until "NOT ALL FILES FOUND - LIST? "                       ; reply "YES\r"


; The allocation of system code segments is reported, and system
; configuration is complete.  INITIAL now boots up MPE for the first
; time.
;
; Set the current date and time.

go until "DATE (M/D/Y)?" ; reply "%DATE_MM%/%DATE_DD%/%DATE_RR%\r"
go until "TIME (H:M)?"   ; reply "%TIME_HH%:%TIME_MM%\r"
go until "(Y/N)"         ; reply "Y\r"


; Wait until the system operator is logged on.

go until "LOGON FOR: OPERATOR.SYS,OPERATOR ON LDEV #20"


; Log the system operator off and shut the system down.

go until "\r\n:"                  ; reply "BYE\r"
go until "LOGOFF ON LDEV #20\r\n" ; reply "\001"
go until "="                      ; reply "SHUTDOWN\r"
go


; Verify "Programmed halt, CIR: 030377 (HALT 17)"

assert CIR=030377

quit