1
0
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:
Lars Brinkhoff
2017-12-18 09:52:11 +01:00
committed by Eric Swenson
parent e1f80890d4
commit e4f28ab1cf
19 changed files with 1507 additions and 7 deletions

3
.gitmodules vendored
View File

@@ -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

View File

@@ -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:

View File

@@ -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

View File

@@ -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

Binary file not shown.

BIN
bin/ka10/boot/@.ddt Normal file

Binary file not shown.

BIN
bin/ka10/boot/@.salv Normal file

Binary file not shown.

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
View 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

Binary file not shown.

View File

@@ -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
View 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
View 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
View 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

File diff suppressed because it is too large Load Diff

9
build/sims/init Normal file
View 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
View 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
View File

@@ -0,0 +1,3 @@
#!/bin/sh
tools/sims/BIN/ka10 build/sims/run

1
tools/sims Submodule

Submodule tools/sims added at 86d88609de