mirror of
https://github.com/PDP-10/its.git
synced 2026-01-13 15:27:28 +00:00
Build ITS using KLH10.
This commit is contained in:
parent
9c1f8a369e
commit
c5d3af5c18
3
.gitignore
vendored
3
.gitignore
vendored
@ -1,2 +1,3 @@
|
|||||||
*~
|
*~
|
||||||
out
|
/out
|
||||||
|
/build/klh10/stamp
|
||||||
|
|||||||
@ -1,5 +1,8 @@
|
|||||||
language: c
|
language: c
|
||||||
sudo: required
|
sudo: required
|
||||||
|
env:
|
||||||
|
- EMULATOR=simh
|
||||||
|
- EMULATOR=klh10
|
||||||
install:
|
install:
|
||||||
- sudo add-apt-repository ppa:dns/gnu -y
|
- sudo add-apt-repository ppa:dns/gnu -y
|
||||||
- sudo apt-get update -myq
|
- sudo apt-get update -myq
|
||||||
|
|||||||
2
Makefile
2
Makefile
@ -32,7 +32,7 @@ out/dskdmp.tape: $(WRITETAPE) $(RAM) $(DSKDMP)
|
|||||||
$(WRITETAPE) -n 2560 $@ $(RAM) $(DSKDMP)
|
$(WRITETAPE) -n 2560 $@ $(RAM) $(DSKDMP)
|
||||||
|
|
||||||
build/klh10/stamp: $(KLH10)
|
build/klh10/stamp: $(KLH10)
|
||||||
touch $<
|
touch $@
|
||||||
|
|
||||||
$(KLH10):
|
$(KLH10):
|
||||||
cd tools/klh10; \
|
cd tools/klh10; \
|
||||||
|
|||||||
@ -1,12 +1,13 @@
|
|||||||
proc type s {
|
proc type s {
|
||||||
sleep .2
|
sleep .1
|
||||||
foreach c [split $s ""] {
|
foreach c [split $s ""] {
|
||||||
send $c
|
send -- $c
|
||||||
if [string match {[a-z]} $c] {
|
if [string match {[a-z]} $c] {
|
||||||
expect -nocase $c
|
expect -nocase $c
|
||||||
} else {
|
} else {
|
||||||
expect "?"
|
expect "?"
|
||||||
}
|
}
|
||||||
|
sleep .03
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -16,7 +17,8 @@ proc respond { w r } {
|
|||||||
}
|
}
|
||||||
|
|
||||||
proc pdset {} {
|
proc pdset {} {
|
||||||
respond "YOU MAY HAVE TO :PDSET" "\032"
|
type "\032"
|
||||||
|
|
||||||
respond "Fair" ":pdset\r"
|
respond "Fair" ":pdset\r"
|
||||||
set t [timestamp]
|
set t [timestamp]
|
||||||
respond "PDSET" [expr [timestamp -seconds $t -format "%Y"] / 100]C
|
respond "PDSET" [expr [timestamp -seconds $t -format "%Y"] / 100]C
|
||||||
@ -32,6 +34,17 @@ proc pdset {} {
|
|||||||
expect ":KILL"
|
expect ":KILL"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
proc maybe_pdset {} {
|
||||||
|
expect "YOU MAY HAVE TO :PDSET" {
|
||||||
|
pdset
|
||||||
|
} "PDTIME OFFSET" {
|
||||||
|
pdset
|
||||||
|
} "IT IS NOW" {
|
||||||
|
type "\032"
|
||||||
|
expect "Fair"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
proc shutdown {} {
|
proc shutdown {} {
|
||||||
global emulator_escape
|
global emulator_escape
|
||||||
respond "*" ":lock\r"
|
respond "*" ":lock\r"
|
||||||
@ -77,7 +90,9 @@ set dir $expect_out(1,string)
|
|||||||
type "write\r"
|
type "write\r"
|
||||||
respond "Are you sure" "yes\r"
|
respond "Are you sure" "yes\r"
|
||||||
respond "Which file" "bt\r"
|
respond "Which file" "bt\r"
|
||||||
respond "Input from" ".;bt rp06\r"
|
expect "Input from"
|
||||||
|
sleep 1
|
||||||
|
respond ":" ".;bt rp06\r"
|
||||||
respond "!" "quit\r"
|
respond "!" "quit\r"
|
||||||
expect ":KILL"
|
expect ":KILL"
|
||||||
shutdown
|
shutdown
|
||||||
@ -95,7 +110,7 @@ quit_emulator
|
|||||||
start_its
|
start_its
|
||||||
respond "DSKDMP" "its\r"
|
respond "DSKDMP" "its\r"
|
||||||
type "\033g"
|
type "\033g"
|
||||||
pdset
|
maybe_pdset
|
||||||
|
|
||||||
respond "*" $emulator_escape
|
respond "*" $emulator_escape
|
||||||
mount_tape "out/sources.tape"
|
mount_tape "out/sources.tape"
|
||||||
|
|||||||
BIN
build/klh10/@.ddt-u
Normal file
BIN
build/klh10/@.ddt-u
Normal file
Binary file not shown.
BIN
build/klh10/@.nsalv-260-u
Normal file
BIN
build/klh10/@.nsalv-260-u
Normal file
Binary file not shown.
44
build/klh10/build.tcl
Normal file
44
build/klh10/build.tcl
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
cd build/klh10
|
||||||
|
|
||||||
|
set emulator_prompt "KLH10"
|
||||||
|
set emulator_escape "\034"
|
||||||
|
|
||||||
|
proc start_nsalv {} {
|
||||||
|
uplevel #0 {spawn ./kn10-ks-its nsalv.ini}
|
||||||
|
expect "EOF"
|
||||||
|
respond "KLH10#" "go\r"
|
||||||
|
}
|
||||||
|
|
||||||
|
proc restart_nsalv {} {
|
||||||
|
quit_emulator
|
||||||
|
start_nsalv
|
||||||
|
}
|
||||||
|
|
||||||
|
proc start_dskdmp {} {
|
||||||
|
respond "KLH10>" "zero\r"
|
||||||
|
respond "KLH10>" "load @.ddt-u\r"
|
||||||
|
respond "KLH10>" "load dskdmp.216bin\r"
|
||||||
|
respond "KLH10>" "go\r"
|
||||||
|
}
|
||||||
|
|
||||||
|
proc start_its {} {
|
||||||
|
uplevel #0 {spawn ./kn10-ks-its dskdmp.ini}
|
||||||
|
respond "KLH10#" "go\r"
|
||||||
|
}
|
||||||
|
|
||||||
|
proc mount_tape {file} {
|
||||||
|
respond "KLH10>" "devmo mta0 ../../$file\r"
|
||||||
|
respond "KLH10>" "c\r"
|
||||||
|
}
|
||||||
|
|
||||||
|
proc create_tape {file} {
|
||||||
|
respond "KLH10>" "devmo mta0 ../../$file create\r"
|
||||||
|
respond "KLH10>" "c\r"
|
||||||
|
}
|
||||||
|
|
||||||
|
proc quit_emulator {} {
|
||||||
|
respond "KLH10>" "quit\r"
|
||||||
|
respond "Confirm" "y\r"
|
||||||
|
}
|
||||||
|
|
||||||
|
source ../build.tcl
|
||||||
BIN
build/klh10/dskdmp.216bin
Normal file
BIN
build/klh10/dskdmp.216bin
Normal file
Binary file not shown.
29
build/klh10/dskdmp.ini
Normal file
29
build/klh10/dskdmp.ini
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
; Define basic KS10 device config - two RH11s each on its own Unibus
|
||||||
|
|
||||||
|
devdef rh0 ub1 rh11 addr=776700 br=6 vec=254
|
||||||
|
devdef rh1 ub3 rh11 addr=772440 br=6 vec=224
|
||||||
|
|
||||||
|
; Provide one disk, one tape in config ITS expects
|
||||||
|
|
||||||
|
devdef dsk0 rh0.0 rp type=rp06 format=dbd9 path=../../out/rp0.dsk iodly=0
|
||||||
|
devdef mta0 rh1.0 tm02 fmtr=tm03 type=tu45
|
||||||
|
;devdef mta1 rh1.1 tm02 fmtr=tm03 type=tu45
|
||||||
|
;devmo mta0 ../../out/minsys.tape
|
||||||
|
;devmo mta1 ../../out/salv.tape
|
||||||
|
|
||||||
|
; ITS wants a 60Hz clock, allow it. Need this until defaults OK.
|
||||||
|
set clk_ithzfix=60
|
||||||
|
|
||||||
|
; Define IMP for PI on ITS.JOSS.COM
|
||||||
|
devdef imp ub3 lhdh addr=767600 br=6 vec=250 ipaddr=199.34.53.51 gwaddr=199.34.53.50
|
||||||
|
|
||||||
|
; Dummy definitions. Only one DZ is still (apparently) needed.
|
||||||
|
devdef dz0 ub3 dz11 addr=760010 br=5 vec=340
|
||||||
|
;devdef dz1 ub3 dz11 addr=760020 br=5 vec=350
|
||||||
|
;devdef chaos ub3 ch11 addr=764140 br=5 vec=270
|
||||||
|
|
||||||
|
; Define new HOST device hackery
|
||||||
|
;devdef idler ub3 host addr=777000
|
||||||
|
|
||||||
|
load @.ddt-u
|
||||||
|
load dskdmp.216bin
|
||||||
28
build/klh10/nsalv.ini
Normal file
28
build/klh10/nsalv.ini
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
; Define basic KS10 device config - two RH11s each on its own Unibus
|
||||||
|
|
||||||
|
devdef rh0 ub1 rh11 addr=776700 br=6 vec=254
|
||||||
|
devdef rh1 ub3 rh11 addr=772440 br=6 vec=224
|
||||||
|
|
||||||
|
; Provide one disk, one tape in config ITS expects
|
||||||
|
|
||||||
|
devdef dsk0 rh0.0 rp type=rp06 format=dbd9 path=../../out/rp0.dsk iodly=0
|
||||||
|
devdef mta0 rh1.0 tm02 fmtr=tm03 type=tu45
|
||||||
|
devdef mta1 rh1.1 tm02 fmtr=tm03 type=tu45
|
||||||
|
devmo mta0 ../../out/minsys.tape
|
||||||
|
devmo mta1 ../../out/salv.tape
|
||||||
|
|
||||||
|
; ITS wants a 60Hz clock, allow it. Need this until defaults OK.
|
||||||
|
set clk_ithzfix=60
|
||||||
|
|
||||||
|
; Define IMP for PI on ITS.JOSS.COM
|
||||||
|
devdef imp ub3 lhdh addr=767600 br=6 vec=250 ipaddr=199.34.53.51 gwaddr=199.34.53.50
|
||||||
|
|
||||||
|
; Dummy definitions. Only one DZ is still (apparently) needed.
|
||||||
|
devdef dz0 ub3 dz11 addr=760010 br=5 vec=340
|
||||||
|
;devdef dz1 ub3 dz11 addr=760020 br=5 vec=350
|
||||||
|
;devdef chaos ub3 ch11 addr=764140 br=5 vec=270
|
||||||
|
|
||||||
|
; Define new HOST device hackery
|
||||||
|
;devdef idler ub3 host addr=777000
|
||||||
|
|
||||||
|
load @.nsalv-260-u
|
||||||
Loading…
x
Reference in New Issue
Block a user