From ce92a019524b21d656bfd2cf163969910896175d Mon Sep 17 00:00:00 2001 From: Philip Zembrod Date: Sun, 6 Oct 2024 22:51:50 +0200 Subject: [PATCH] First successfully target-compiled and working CPM VolksForth with min test. --- 8080/CPM/Makefile | 22 ++++++++++++++++++++-- 8080/CPM/v4th.com | Bin 0 -> 13440 bytes 2 files changed, 20 insertions(+), 2 deletions(-) create mode 100644 8080/CPM/v4th.com diff --git a/8080/CPM/Makefile b/8080/CPM/Makefile index 8f91abf..7a6bf48 100644 --- a/8080/CPM/Makefile +++ b/8080/CPM/Makefile @@ -84,7 +84,7 @@ target0.log: \ "include source2.fb" #vdos2unix -n $(runcpmdir)/logfile.txt $@ -target1.log: \ +v4th.com: \ $(patsubst %, $(cpmfilesdir)/%, volks4th.com \ include.fb log2file.fb target.fb source.fb) \ | emu @@ -97,7 +97,8 @@ target1.log: \ "logclose" \ "bye" \ "exit" - dos2unix -n $(runcpmdir)/logfile.txt $@ + dos2unix -n $(runcpmdir)/logfile.txt $@.log + cp $(runcpmdir)/A/0/KERNEL.COM $@ target3.log: \ $(patsubst %, $(cpmfilesdir)/%, volks4th.com \ @@ -161,11 +162,28 @@ test-min.log: \ "exit" dos2unix -n $(runcpmdir)/logfile.txt $@ +test-v4th.log: \ + $(patsubst %, $(cpmfilesdir)/%, v4th.com fileint.fb \ + include.fb log2file.fb \ + ans-shim.fth prelim.fth tester.fth core.fr test-min.fth) \ + | emu + ./emulator/run-in-runcpm.sh \ + "v4th fileint.fb" \ + "1 load onlyforth" \ + "include include.fb" \ + "include test-min.fth" \ + "bye" \ + "exit" + dos2unix -n $(runcpmdir)/logfile.txt $@ + emu: $(runcpmdir)/RunCPM test-min.golden: $(patsubst %, tests/golden/%.golden, prelim core) cat $^ > $@ +test-v4th.golden: $(patsubst %, tests/golden/%.golden, prelim core) + cat $^ > $@ + %.golden: tests/golden/%.golden cp -p $< $@ diff --git a/8080/CPM/v4th.com b/8080/CPM/v4th.com new file mode 100644 index 0000000000000000000000000000000000000000..125ca69d2a3b77e2840364da41128b05793b7bc4 GIT binary patch literal 13440 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 B{XhT! literal 0 HcmV?d00001