From 262c80cd3e9fe6e16fdb3b12d7f82bcc17efca57 Mon Sep 17 00:00:00 2001 From: Philip Zembrod Date: Sun, 2 Aug 2020 01:22:13 +0200 Subject: [PATCH] Add main files and build rules for lite versions (w/o block mechanism) incl. tests and binaries --- 6502/C64/Makefile | 53 ++++++++++-------- 6502/C64/cbmfiles/vf-full-c16+ | Bin 0 -> 16095 bytes 6502/C64/cbmfiles/vf-full-c64 | Bin 0 -> 16027 bytes 6502/C64/cbmfiles/vf-lite-c16+ | Bin 0 -> 14066 bytes 6502/C64/cbmfiles/vf-lite-c64 | Bin 0 -> 13998 bytes 6502/C64/src/vf-lite-c16+.fth | 15 +++++ 6502/C64/src/vf-lite-c16-.fth | 15 +++++ 6502/C64/src/vf-lite-c64.fth | 15 +++++ 6502/C64/tests/run-full-tests.fth | 26 +++++++++ 6502/C64/tests/run-lite-tests.fth | 25 +++++++++ .../{run-vf-tests.fth => run-min-tests.fth} | 21 +------ 11 files changed, 126 insertions(+), 44 deletions(-) create mode 100644 6502/C64/cbmfiles/vf-full-c16+ create mode 100644 6502/C64/cbmfiles/vf-full-c64 create mode 100644 6502/C64/cbmfiles/vf-lite-c16+ create mode 100644 6502/C64/cbmfiles/vf-lite-c64 create mode 100644 6502/C64/src/vf-lite-c16+.fth create mode 100644 6502/C64/src/vf-lite-c16-.fth create mode 100644 6502/C64/src/vf-lite-c64.fth create mode 100644 6502/C64/tests/run-full-tests.fth create mode 100644 6502/C64/tests/run-lite-tests.fth rename 6502/C64/tests/{run-vf-tests.fth => run-min-tests.fth} (62%) diff --git a/6502/C64/Makefile b/6502/C64/Makefile index 4d96be4..81f5c84 100644 --- a/6502/C64/Makefile +++ b/6502/C64/Makefile @@ -3,9 +3,6 @@ # the file format conversion tools from the tools/ subdir of # https://github.com/pzembrod/cc64 to be installed. -# VERSION=volksforth83 -VERSION=vf-latest - vf_blk_d64_files = $(wildcard disks/*.d64) vf_blk_fth_files = $(patsubst %.d64, %.fth, $(vf_blk_d64_files)) vf_fth_files = $(wildcard src/vf-*.fth) @@ -16,6 +13,8 @@ vf_binaries = $(patsubst %, cbmfiles/vf-%, $(vf_flavours)) test_files = $(wildcard tests/*.f*) test_files_petscii = $(patsubst tests/%, cbmfiles/%, $(test_files)) test_logs = $(patsubst %, test-%.log, $(vf_flavours)) +working_vf_flavours = full-c64 full-c16+ lite-c64 lite-c16+ +test_resuls = $(patsubst %, test-%.result, $(working_vf_flavours)) # Target to convert all .d64 images into .fth files for easier reading. vf_blk_fth: $(vf_blk_fth_files) @@ -30,10 +29,12 @@ clean: # Convenience targets -test: test-full-c64.result test-full-c16+.result +test: $(test_resuls) test64: test-full-c64.result +lite64: test-lite-c64.result + debug-64: emulator/tcbase.T64 emulator/build-vf.sh \ disks/vforth4_2.d64 disks/tc38q.d64 $(vf_fth_files_petscii) emulator/build-vf.sh vf-c64-main.fth @@ -82,12 +83,22 @@ $(test_logs): $(test_files_petscii) emulator/run-in-vice.sh test-full-c64.log: emulator/vf-full-c64.T64 disks/scratch.d64 DISK9=scratch emulator/run-in-vice.sh vf-full-c64 \ - "include run-vf-tests.fth\n1234567890\n" + "include run-full-tests.fth\n1234567890\n" + petscii2ascii cbmfiles/test.log $@ + +test-lite-c64.log: emulator/vf-lite-c64.T64 + emulator/run-in-vice.sh vf-lite-c64 \ + "include run-lite-tests.fth\n1234567890\n" petscii2ascii cbmfiles/test.log $@ test-full-c16+.log: emulator/vf-full-c16+.T64 VICE=xplus4 emulator/run-in-vice.sh vf-full-c16+ \ - "include run-vf-tests.fth\n1234567890\n" + "include run-min-tests.fth\n1234567890\n" + petscii2ascii cbmfiles/test.log $@ + +test-lite-c16+.log: emulator/vf-lite-c16+.T64 + VICE=xplus4 emulator/run-in-vice.sh vf-lite-c16+ \ + "include run-min-tests.fth\n1234567890\n" petscii2ascii cbmfiles/test.log $@ test-%.result: test-%.log test-%.golden tests/evaluate-test.sh @@ -98,18 +109,21 @@ disks/scratch.d64: disks/empty.d64 cp $< $@ -c64_golden_parts = prelim core coreext double block report-blk -c64_golden_files = $(patsubst %, tests/golden/%.golden, \ - $(c64_golden_parts)) -test-full-c64.golden: $(c64_golden_files) +test-full-c64.golden: $(patsubst %, tests/golden/%.golden, \ + prelim core coreext double block report-blk) cat $? > $@ -c16_golden_parts = prelim core -c16_golden_files = $(patsubst %, tests/golden/%.golden, \ - $(c16_golden_parts)) -test-full-c16+.golden: $(c16_golden_files) +test-lite-c64.golden: $(patsubst %, tests/golden/%.golden, \ + prelim core coreext double report-noblk) cat $? > $@ -test-full-c16-.golden: $(c16_golden_files) + +c16_golden_parts = $(patsubst %, tests/golden/%.golden, \ + prelim core) + +test-full-c16+.golden: $(c16_golden_parts) + cat $? > $@ + +test-lite-c16+.golden: $(c16_golden_parts) cat $? > $@ # Rules for building Forth binaries on top of the plain vanilla @@ -120,15 +134,6 @@ cbmfiles/devenv: emulator/run-in-vice.sh emulator/build-devenv.sh \ disks/vforth4_1.d64 disks/vforth4_3.d64 disks/file-words.d64 emulator/build-devenv.sh -# Deprecated -# cbmfiles/c64-testbase: emulator/run-in-vice.sh emulator/build-testbase.sh \ -# emulator/c64-$(VERSION).T64 disks/file-words.d64 -# emulator/build-testbase.sh c64 $(VERSION) - -# cbmfiles/c16-testbase: emulator/run-in-vice.sh emulator/build-testbase.sh \ -# emulator/c16-$(VERSION).T64 disks/file-words.d64 -# VICE=xplus4 emulator/build-testbase.sh c16 $(VERSION) - # Generic T64 tape image rule diff --git a/6502/C64/cbmfiles/vf-full-c16+ b/6502/C64/cbmfiles/vf-full-c16+ new file mode 100644 index 0000000000000000000000000000000000000000..17787f46ffeb3596fc67092063e25209e33f6d63 GIT binary patch literal 16095 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 literal 0 HcmV?d00001 diff --git a/6502/C64/cbmfiles/vf-full-c64 b/6502/C64/cbmfiles/vf-full-c64 new file mode 100644 index 0000000000000000000000000000000000000000..fbb7dd85ec2331a57f0ff82bf4b34994842d45c7 GIT binary patch literal 16027 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 literal 0 HcmV?d00001 diff --git a/6502/C64/cbmfiles/vf-lite-c16+ b/6502/C64/cbmfiles/vf-lite-c16+ new file mode 100644 index 0000000000000000000000000000000000000000..e0b55ba4870a643ba903f6ab7ac76a8c5c233dec GIT binary patch literal 14066 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 J_Hsv+{}+vOv*Z8( literal 0 HcmV?d00001 diff --git a/6502/C64/cbmfiles/vf-lite-c64 b/6502/C64/cbmfiles/vf-lite-c64 new file mode 100644 index 0000000000000000000000000000000000000000..efddc5bb4236ddcc9085c2e5dbd3fd33ccea9c69 GIT binary patch literal 13998 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 J?P3or{~Ix25x)Qc literal 0 HcmV?d00001 diff --git a/6502/C64/src/vf-lite-c16+.fth b/6502/C64/src/vf-lite-c16+.fth new file mode 100644 index 0000000..7ea722d --- /dev/null +++ b/6502/C64/src/vf-lite-c16+.fth @@ -0,0 +1,15 @@ + +include vf-tc-prep.fth + +include vf-trg-c16+.fth + +\ The actual volksForth sources + +include vf-head-c16.fth +include vf-cbm-core.fth +include vf-sys-c16.fth +include vf-cbm-file.fth +include vf-finalize.fth + +include vf-pr-target.fth +quit diff --git a/6502/C64/src/vf-lite-c16-.fth b/6502/C64/src/vf-lite-c16-.fth new file mode 100644 index 0000000..52d6597 --- /dev/null +++ b/6502/C64/src/vf-lite-c16-.fth @@ -0,0 +1,15 @@ + +include vf-tc-prep.fth + +include vf-trg-c16-.fth + +\ The actual volksForth sources + +include vf-head-c16.fth +include vf-cbm-core.fth +include vf-sys-c16.fth +include vf-cbm-file.fth +include vf-finalize.fth + +include vf-pr-target.fth +quit diff --git a/6502/C64/src/vf-lite-c64.fth b/6502/C64/src/vf-lite-c64.fth new file mode 100644 index 0000000..fd668b9 --- /dev/null +++ b/6502/C64/src/vf-lite-c64.fth @@ -0,0 +1,15 @@ + +include vf-tc-prep.fth + +include vf-trg-c64.fth + +\ The actual volksForth sources + +include vf-head-c64.fth +include vf-cbm-core.fth +include vf-sys-c64.fth +include vf-cbm-file.fth +include vf-finalize.fth + +include vf-pr-target.fth +quit diff --git a/6502/C64/tests/run-full-tests.fth b/6502/C64/tests/run-full-tests.fth new file mode 100644 index 0000000..395fa1c --- /dev/null +++ b/6502/C64/tests/run-full-tests.fth @@ -0,0 +1,26 @@ + +include vf-cbm-dos.fth +include logtofile.fth +logopen" test.log" + +include ans-shim.fth +: \vf [compile] \ ; immediate + +include prelimtest.fth +include tester.fth +\ 1 verbose ! +include core.fr +include coreplustest.fth + +include utilities.fth +include errorreport.fth + +include coreexttest.fth +include doubletest.fth +1 drive include blocktest.fth + +REPORT-ERRORS + +logclose + +dos s0:notdone diff --git a/6502/C64/tests/run-lite-tests.fth b/6502/C64/tests/run-lite-tests.fth new file mode 100644 index 0000000..08ab4c9 --- /dev/null +++ b/6502/C64/tests/run-lite-tests.fth @@ -0,0 +1,25 @@ + +include vf-cbm-dos.fth +include logtofile.fth +logopen" test.log" + +include ans-shim.fth +: \vf [compile] \ ; immediate + +include prelimtest.fth +include tester.fth +\ 1 verbose ! +include core.fr +include coreplustest.fth + +include utilities.fth +include errorreport.fth + +include coreexttest.fth +include doubletest.fth + +REPORT-ERRORS + +logclose + +dos s0:notdone diff --git a/6502/C64/tests/run-vf-tests.fth b/6502/C64/tests/run-min-tests.fth similarity index 62% rename from 6502/C64/tests/run-vf-tests.fth rename to 6502/C64/tests/run-min-tests.fth index 66d69c5..fc1608f 100644 --- a/6502/C64/tests/run-vf-tests.fth +++ b/6502/C64/tests/run-min-tests.fth @@ -1,39 +1,20 @@ include vf-cbm-dos.fth - include logtofile.fth - logopen" test.log" +include ans-shim.fth : \vf [compile] \ ; immediate -include ans-shim.fth - include prelimtest.fth - include tester.fth - \ 1 verbose ! - include core.fr - include coreplustest.fth \ The C16 VolksForth has LIMIT at $8000. \ More tests than up to here fill the dictionary. -(64 include utilities.fth C) -(64 include errorreport.fth C) - -(64 include coreexttest.fth C) - -(64 include doubletest.fth C) - -(64 1 drive C) -(64 include blocktest.fth C) - -(64 REPORT-ERRORS C) - logclose dos s0:notdone