mirror of
https://github.com/PDP-10/its.git
synced 2026-04-02 12:19:14 +00:00
Build ITS for KA10.
This commit is contained in:
committed by
Eric Swenson
parent
e1f80890d4
commit
e4f28ab1cf
3
.gitmodules
vendored
3
.gitmodules
vendored
@@ -19,3 +19,6 @@
|
||||
[submodule "tools/mldev"]
|
||||
path = tools/mldev
|
||||
url = https://github.com/larsbrinkhoff/mldev
|
||||
[submodule "tools/sims"]
|
||||
path = tools/sims
|
||||
url = https://github.com/rcornwell/sims
|
||||
|
||||
@@ -4,6 +4,7 @@ sudo: required
|
||||
env:
|
||||
- EMULATOR=simh
|
||||
- EMULATOR=klh10
|
||||
- EMULATOR=sims
|
||||
install: sh -ex build/dependencies.sh install_${TRAVIS_OS_NAME:-linux}
|
||||
script: make
|
||||
notifications:
|
||||
|
||||
31
Makefile
31
Makefile
@@ -18,21 +18,40 @@ DSKDMP = bin/ks10/boot/dskdmp.rp06
|
||||
|
||||
KLH10=${PWD}/tools/klh10/tmp/bld-ks-its/kn10-ks-its
|
||||
SIMH=${PWD}/tools/simh/BIN/pdp10
|
||||
KA10=${PWD}/tools/sims/BIN/ka10
|
||||
ITSTAR=${PWD}/tools/itstar/itstar
|
||||
WRITETAPE=${PWD}/tools/tapeutils/tapewrite
|
||||
MAGFRM=${PWD}/tools/dasm/magfrm
|
||||
|
||||
H3TEXT=$(shell cd build; ls h3text.*)
|
||||
|
||||
all: out/rp0.dsk tools/supdup/supdup
|
||||
all: out/$(EMULATOR).stamp tools/supdup/supdup
|
||||
|
||||
out/klh10.stamp out/simh.stamp: out/rp0.dsk
|
||||
touch $@
|
||||
|
||||
out/sims.stamp: out/rp03.2 out/rp03.3
|
||||
touch $@
|
||||
|
||||
out/rp0.dsk: build/simh/init out/minsys.tape out/salv.tape out/dskdmp.tape build/build.tcl out/sources.tape build/$(EMULATOR)/stamp
|
||||
PATH=${PWD}/tools/simh/BIN:$$PATH expect -f build/$(EMULATOR)/build.tcl $(IP) $(GW)
|
||||
|
||||
out/rp03.2 out/rp03.3: out/ka-minsys.tape out/magdmp.tap out/sources.tape
|
||||
expect -f build/$(EMULATOR)/build.tcl $(IP) $(GW)
|
||||
|
||||
out/magdmp.tap: $(MAGFRM)
|
||||
cd bin/ka10/boot; $(MAGFRM) @.ddt @.salv > ../../../$@
|
||||
|
||||
out/minsys.tape: $(ITSTAR)
|
||||
mkdir -p out
|
||||
cd bin/ks10; $(ITSTAR) -cf ../../$@ _ sys
|
||||
cd bin; $(ITSTAR) -rf ../$@ sys
|
||||
|
||||
out/ka-minsys.tape: $(ITSTAR)
|
||||
mkdir -p out
|
||||
cd bin/ka10; $(ITSTAR) -cf ../../$@ _ sys
|
||||
cd bin; $(ITSTAR) -rf ../$@ sys
|
||||
|
||||
out/sources.tape: $(ITSTAR) build/$(EMULATOR)/stamp src/syshst/$(H3TEXT)
|
||||
mkdir -p out
|
||||
rm -f src/*/*~
|
||||
@@ -66,6 +85,10 @@ build/simh/stamp: $(SIMH) start
|
||||
cp build/simh/config.* src/system
|
||||
touch $@
|
||||
|
||||
build/sims/stamp: $(KA10) start
|
||||
cp build/sims/config.* src/system
|
||||
touch $@
|
||||
|
||||
build/klh10/dskdmp.ini: build/klh10/dskdmp.txt Makefile
|
||||
cp=';'; ca=''; \
|
||||
test $(CHAOS) != no && cp='' && ca='myaddr=$(CHAOS) $(CHAFRIENDS)'; \
|
||||
@@ -94,12 +117,18 @@ $(KLH10):
|
||||
$(SIMH):
|
||||
cd tools/simh; make pdp10
|
||||
|
||||
$(KA10):
|
||||
cd tools/sims; make ka10 TYPE340=y
|
||||
|
||||
$(ITSTAR):
|
||||
cd tools/itstar; make
|
||||
|
||||
$(WRITETAPE):
|
||||
cd tools/tapeutils; make
|
||||
|
||||
$(MAGFRM):
|
||||
cd tools/dasm; make
|
||||
|
||||
tools/supdup/supdup:
|
||||
cd tools/supdup; make
|
||||
|
||||
|
||||
@@ -49,10 +49,11 @@ we'd be delighted to test this on a real KS10.
|
||||
### Usage
|
||||
|
||||
To build ITS with this repository, you need some tools installed:
|
||||
make, C compiler, and expect. Ensure all submodules are checked out,
|
||||
and then type `make EMULATOR=simh` or `make EMULATOR=klh10`. This
|
||||
will leave built files in the `out` directory, one of which is a disk
|
||||
image with ITS installed.
|
||||
make, C compiler, and expect. For KA10, you also need SDL or SDL2 for
|
||||
the Type 340 display. Ensure all submodules are checked out, and then
|
||||
type `make EMULATOR=simh`, `make EMULATOR=sims`, or `make
|
||||
EMULATOR=klh10`. This will leave built files in the `out` directory,
|
||||
one of which is a disk image with ITS installed.
|
||||
|
||||
To start ITS, type `./start`. If you see `KLH10#`, type `go` and
|
||||
Enter. When you see the `DSKDMP` prompt, type `its`, press Enter, and
|
||||
|
||||
BIN
bin/ka10/_/@.its
Normal file
BIN
bin/ka10/_/@.its
Normal file
Binary file not shown.
BIN
bin/ka10/boot/@.ddt
Normal file
BIN
bin/ka10/boot/@.ddt
Normal file
Binary file not shown.
BIN
bin/ka10/boot/@.salv
Normal file
BIN
bin/ka10/boot/@.salv
Normal file
Binary file not shown.
1
bin/ka10/boot/dskdmp.rim
Normal file
1
bin/ka10/boot/dskdmp.rim
Normal file
File diff suppressed because one or more lines are too long
1
bin/ka10/boot/magdmp.rim
Normal file
1
bin/ka10/boot/magdmp.rim
Normal file
@@ -0,0 +1 @@
|
||||
靠眬€€箚€€€艾尃€€劰嚑€€垥爛€€償垑靠竟劰€€垥皦€€垥皦€€嫗<EFBFBD>€€€檺€€€彈€弨€€洀爛€€暍€€€仌煚€€儠爛€€偪竣亢€競€抄◥彔烤瑦亐烤稅垹€€€敯爛€啑垹€€爾嚑炕<EFBFBD>眬亢兓<EFBFBD>€€仏嚑烤灃嚑烤殩嚑烤<EFBFBD>垹靠€枃牽蕉湢牽簵槶€€€儠爛炕<EFBFBD>垹彴€枅爮皝枅爮皞枃牽茎枃牽茎暊€亢嵀悹烤硱彔烤瑬嚑烤灃嚑炕<EFBFBD>€€€€€牉牽镜爯€€€壃挘殥悼竣亢瀾姞€€儛畝爛€湌牽氦晠爛€寪畝爛€洢€烤窅厐烤腹摖€€爼爛亢ス悹€€仏嚑炕ウ<EFBFBD>€伩湊牽簹渶爛€€湪牽旱棃爛仢殘牽竟槇爛亐棬爛€牃悹亢牥潃縺€嫲爛€姕<EFBFBD>亢<EFBFBD>灎考槡敔亢及敔€€繒爛亢粩敔靠簳爛亢罚瑺悙悊悘<EFBFBD>惪竣亢紪嚑烤毀箑€€剱垹靠仚怠€€€櫀亐€仌爛炕啳仭€€倸敔考摍睜€€墪爛炕嫍垹€€儥悹烤硶爛亢繗垁考<EFBFBD>妧炕<EFBFBD>垁炕<EFBFBD>悁€€墣個€€亹垹亢€爯€€€爯仩烤紭皜€€磹€翱熆槓€€€瓡墶靠繍垽€亗搱爛€償悹€€仏嚑烤<EFBFBD>笭炕槀禉珖斂咖炕殣崁靠咖籂烤禆嚑烤憴悹烤綍爛炕湒嚑拷煓磤€€仌爛炕煐彔拷灈牋拷摦垹€€嵐搥€€悤爛炕ス憼€€仛<EFBFBD>烤<EFBFBD>垹€€姇爛炕<EFBFBD><EFBFBD><EFBFBD>剫牋€€儣垹€€爾嚑炕<EFBFBD>垹€€牥範縺€暟兛紘暊€炕<EFBFBD>法叴缚竣考€暊€亢槓妧烤緰嚑炕<EFBFBD>妧€€儥拃烤硶爛炕珪爛亢殩嚑炕<EFBFBD>嚑炕<EFBFBD>爛考倶榾€€瓬挔炕煐嚑烤灇籂考懍悹考悮皜亢殨爛亢毊榾繜繒爛繝€櫣爛€倳爛炕啇亐€€儛個€€仌爛炕啇垹€€<EFBFBD>嚑炕<EFBFBD>帬亢墜█€€姌皜€€<EFBFBD>爛考伜殔憵<EFBFBD>竣考灅皜€€<EFBFBD>垁€€仒皜€€<EFBFBD>爛考悤爛亢潥礌考瓫█€€倫墍悙悧﹢€墘氨€€€悤爛考<EFBFBD>憖€悁棄€€秬棄€€€董將€墛悂€烤硺眬靠綍爛炕<EFBFBD>墍€€儠亐烤硱暍€€€悥個€伃敘€€偋<EFBFBD>€€€枃牽茎枃牽荆户爜€€暊€考痘<EFBFBD>嚭€枃牽練泚灂噺靠⒖技悕€€€€ī€靠綈€<EFBFBD>€€枃牽緢暀€考緰嚑烤寲嚑烤檺€牽窘悙爮皜悑爛€悩嫚彴€槢爯€€洶噣€€湥牽絾悡爛€埈埀€個洶噣€€洂噣€仚洜€€仌爛拷挊摖亢€湥牽綄悁爛€垪<EFBFBD>€€嚚牋€€垰<EFBFBD>拷槚嚑拷煏爛拷啇€牽紣枃牽緢安偀瑳靠⒖綒枃牽緢枃牽緦枃牽緳枃牽緳暊€亢槚嚑烤垚剙€€仛<EFBFBD>考姎姞拷<EFBFBD><EFBFBD>€€仺<EFBFBD>靠織灠繜楷€爛€崘亐€€仈寑€€伃劆€€倶尃€€悩尃抗繍尃€€寪€﹢€€枃牽緢悙﹢€€梽€€€仌檧拷ò檧靠緯爛拷◥€爛€垥爛烤垚弨啋€惌€粻牔偑浗伩竣拷笎崰€悁瑣€彲炕<EFBFBD>€€€户爛亖暊€拷换<EFBFBD>€€仠<EFBFBD>烤净<EFBFBD>€€亹崐皭伝<EFBFBD>仩€潃弨€€暊€烤殣弨啟€惌牷<EFBFBD>晠爛€姇爛拷箾█烤禃爛烤憳瓈€悁暊€烤彇嚑烤剷爛炕<EFBFBD>崁€€€悙獜皜湧€烤<EFBFBD>€獜皜櫗€烤礈<EFBFBD>烤<EFBFBD>嚑拷稌爛炕⒋憪牸嬁咯烤枑晙烤磹崁€€€暊€烤懟<EFBFBD>啰€户爛亐暊€烤毣<EFBFBD>唫€枱爛€€虎€唺€户爛亐暊€烤熁<EFBFBD>噦€枱爛€€柉€烤Щ<EFBFBD>€€仏瘈烤Щ<EFBFBD>€€€虎€啿€户€€亐枱爛€€户€€€仌皫€€€暊€烤▌床吙櫩坎烤硛€€靠亐€€€€€€€€€€€<EFBFBD>Г<EFBFBD><EFBFBD>€€€寬唨€€壈悹€€垥爛亢禃爛亢秬€爛€<EFBFBD>爛€€仌皜€€姙綘拷粫爛拷糠潷ǎ檿爛亢€
|
||||
BIN
bin/ka10/sys/ts.dump
Normal file
BIN
bin/ka10/sys/ts.dump
Normal file
Binary file not shown.
@@ -23,6 +23,8 @@ proc respond { w r } {
|
||||
}
|
||||
|
||||
proc pdset {} {
|
||||
expect "SYSTEM JOB USING THIS CONSOLE"
|
||||
sleep 1
|
||||
type "\032"
|
||||
|
||||
respond "Fair" ":pdset\r"
|
||||
@@ -77,7 +79,8 @@ mark_packs
|
||||
respond "DDT" "tran\033g"
|
||||
respond "#" "0"
|
||||
respond "OK" "y"
|
||||
expect "EOT"
|
||||
expect -timeout 300 EOT
|
||||
|
||||
respond "DDT" $emulator_escape
|
||||
|
||||
start_dskdmp_its
|
||||
@@ -105,6 +108,7 @@ respond "*" ":job midas\r"
|
||||
respond "*" ":load sysbin;midas bin\r"
|
||||
respond "*" "purify\033g"
|
||||
respond "CR to dump" "\r"
|
||||
sleep 2
|
||||
respond "*" ":kill\r"
|
||||
|
||||
respond "*" ":midas sysbin;_sysen1;ddt\r"
|
||||
@@ -167,7 +171,7 @@ respond "*" ":link sys3;ts teco,.teco.;tecpur >\r"
|
||||
respond "*" ":link sys2;ts emacs,emacs;ts >\r"
|
||||
respond "*" ":emacs\r"
|
||||
respond "EMACS Editor" "\033xrun\033einit\033? Generate\r"
|
||||
expect "EINIT"
|
||||
expect -timeout 2000 "EINIT"
|
||||
respond ":EJ" "\033xgenerate\033emacs;aux\033emacs1;aux\r"
|
||||
respond ":EJ" "\030\003"
|
||||
respond "*" ":kill\r"
|
||||
|
||||
88
build/ka10/include.tcl
Normal file
88
build/ka10/include.tcl
Normal file
@@ -0,0 +1,88 @@
|
||||
proc start_dskdmp_its {} {
|
||||
start_dskdmp
|
||||
|
||||
respond "DSKDMP" "its\r"
|
||||
expect "\n"; type "\033g"
|
||||
}
|
||||
|
||||
proc mark_packs {} {
|
||||
respond "\n" "mark\033g"
|
||||
respond "UNIT #" "0"
|
||||
respond "#0?" "y"
|
||||
respond "NO =" "2\r"
|
||||
expect -timeout 300 "VERIFICATION"
|
||||
respond "ALLOC =" "3000\r"
|
||||
respond "PACK # =" "2\r"
|
||||
respond "PACK ID =" "2\r"
|
||||
|
||||
respond "DDT" "mark\033g"
|
||||
respond "UNIT #" "1"
|
||||
respond "#1?" "y"
|
||||
respond "NO =" "3\r"
|
||||
expect -timeout 300 "VERIFICATION"
|
||||
respond "ALLOC =" "3000\r"
|
||||
respond "PACK # =" "3\r"
|
||||
respond "PACK ID =" "3\r"
|
||||
}
|
||||
|
||||
proc prepare_frontend {} {
|
||||
}
|
||||
|
||||
proc frontend_bootstrap {} {
|
||||
}
|
||||
|
||||
proc its_switches {} {
|
||||
respond "MACHINE NAME =" "KA\r"
|
||||
}
|
||||
|
||||
proc make_ntsddt {} {
|
||||
respond "*" ":midas .;@ ddt_system;ddt\r"
|
||||
respond "cpusw=" "0\r"
|
||||
respond "ndsk=" "0\r"
|
||||
respond "dsksw=" "0\r"
|
||||
expect ":KILL"
|
||||
}
|
||||
|
||||
proc make_salv {} {
|
||||
respond "*" ":midas .;@ salv_system;salv\r"
|
||||
respond "time-sharing?" "n\r"
|
||||
respond "machine?" "KA\r"
|
||||
expect ":KILL"
|
||||
}
|
||||
|
||||
proc make_dskdmp {} {
|
||||
respond "*" ":midas .;@ dskdmp_system;dskdmp\r"
|
||||
expect "Configuration"
|
||||
respond "?" "ASK\r"
|
||||
respond "HRIFLG=" "N\r"
|
||||
respond "BOOTSW=" "N\r"
|
||||
respond "RP06P=" "N\r"
|
||||
respond "RP07P=" "N\r"
|
||||
respond "RM03P=" "N\r"
|
||||
respond "RM80P=" "N\r"
|
||||
respond "RH10P=" "N\r"
|
||||
respond "DC10P=" "N\r"
|
||||
respond "NUDSL=" "250.\r"
|
||||
respond "KS10P=" "N\r"
|
||||
respond "KL10P=" "N\r"
|
||||
expect ":KILL"
|
||||
}
|
||||
|
||||
proc dump_switches {} {
|
||||
respond "WHICH MACHINE?" "KA\r"
|
||||
}
|
||||
|
||||
proc dump_nits {} {
|
||||
respond "DSKDMP" "l\0331\033"
|
||||
respond "\n" "l\033ddt\r"
|
||||
expect "\n"; type "t\033@ dskdmp\r"
|
||||
expect "\n"; type "\033g"
|
||||
respond "DSKDMP" "l\0331\033"
|
||||
respond "\n" "t\033its bin\r"
|
||||
expect "\n"; type "\033u"
|
||||
respond "DSKDMP" "m\033@ salv\r"
|
||||
expect "\n"; type "d\033nits\r"
|
||||
}
|
||||
|
||||
proc bootable_tapes {} {
|
||||
}
|
||||
9
build/sims/boot
Normal file
9
build/sims/boot
Normal file
@@ -0,0 +1,9 @@
|
||||
set cpu its
|
||||
set cpu 512k
|
||||
set pd off
|
||||
at ptr bin/ka10/boot/dskdmp.rim
|
||||
at mta0 out/sources.tape
|
||||
at dpa0 out/rp03.2
|
||||
at dpa1 out/rp03.3
|
||||
set dpa noheaders
|
||||
b ptr
|
||||
39
build/sims/build.tcl
Normal file
39
build/sims/build.tcl
Normal file
@@ -0,0 +1,39 @@
|
||||
set emulator_escape "\005"
|
||||
|
||||
proc start_salv {} {
|
||||
uplevel #0 {spawn ./tools/sims/BIN/ka10 build/sims/init}
|
||||
expect "MAGDMP\r\n"; send "l\033ddt\r"
|
||||
expect "\n"; send "t\033salv\r"
|
||||
}
|
||||
|
||||
proc start_dskdmp {} {
|
||||
quit_emulator
|
||||
uplevel #0 {spawn ./tools/sims/BIN/ka10 build/sims/boot}
|
||||
}
|
||||
|
||||
proc mount_tape {file} {
|
||||
respond "sim>" "at mta0 $file\r"
|
||||
respond "sim>" "c\r"
|
||||
}
|
||||
|
||||
proc create_tape {file} {
|
||||
respond "sim>" "at mta0 $file\r"
|
||||
respond "sim>" "c\r"
|
||||
respond "BUGPC/" "\033P"
|
||||
}
|
||||
|
||||
proc quit_emulator {} {
|
||||
respond "sim>" "q\r"
|
||||
}
|
||||
|
||||
proc initialize_comsat {} {
|
||||
# commented out because you cannot run COMSAT initialization without network
|
||||
# support
|
||||
#respond "*" ":job comsat\r"
|
||||
#respond "*" ":load .mail.;comsat launch\r"
|
||||
#respond "*" "debug/-1\r"
|
||||
#type "mfinit\033g"
|
||||
}
|
||||
|
||||
source build/ka10/include.tcl
|
||||
source build/build.tcl
|
||||
1301
build/sims/config.202
Normal file
1301
build/sims/config.202
Normal file
File diff suppressed because it is too large
Load Diff
9
build/sims/init
Normal file
9
build/sims/init
Normal file
@@ -0,0 +1,9 @@
|
||||
set cpu its
|
||||
set cpu 512k
|
||||
at ptr bin/ka10/boot/magdmp.rim
|
||||
at mta0 out/magdmp.tap
|
||||
at mta5 out/ka-minsys.tape
|
||||
at dpa0 out/rp03.2
|
||||
at dpa1 out/rp03.3
|
||||
set dpa headers
|
||||
b ptr
|
||||
10
build/sims/run
Normal file
10
build/sims/run
Normal file
@@ -0,0 +1,10 @@
|
||||
set cpu its
|
||||
set cpu 512k
|
||||
set cpu idle
|
||||
set pd off
|
||||
set dpy enabled
|
||||
at ptr bin/ka10/boot/dskdmp.rim
|
||||
at dpa0 out/rp03.2
|
||||
at dpa1 out/rp03.3
|
||||
set dpa noheaders
|
||||
b ptr
|
||||
3
build/sims/start
Executable file
3
build/sims/start
Executable file
@@ -0,0 +1,3 @@
|
||||
#!/bin/sh
|
||||
|
||||
tools/sims/BIN/ka10 build/sims/run
|
||||
1
tools/sims
Submodule
1
tools/sims
Submodule
Submodule tools/sims added at 86d88609de
Reference in New Issue
Block a user