From 7e0308908c20c1a4878f9d25c8d20b69a18043ee Mon Sep 17 00:00:00 2001 From: Philip Zembrod Date: Sat, 4 Jul 2020 00:51:25 +0200 Subject: [PATCH] Tweak targetcompiler and test targets such that they fit together. Remove checked-in testbase forth binaries to ease iterations on vf-latest binaries from which testbase will then be built ad-hoc. --- 6502/C64/Makefile | 34 +++++++++++------- 6502/C64/cbmfiles/{testbase => c64-vf-latest} | Bin 16408 -> 15168 bytes 6502/C64/cbmfiles/tcbase | Bin 0 -> 21616 bytes 6502/C64/cbmfiles/testbase16 | Bin 16478 -> 0 bytes 6502/C64/emulator/build-c64forth.sh | 4 +-- 6502/C64/emulator/build-tcbase.sh | 2 +- 6502/C64/emulator/build-testbase.sh | 11 ++++-- 7 files changed, 33 insertions(+), 18 deletions(-) rename 6502/C64/cbmfiles/{testbase => c64-vf-latest} (88%) create mode 100644 6502/C64/cbmfiles/tcbase delete mode 100644 6502/C64/cbmfiles/testbase16 diff --git a/6502/C64/Makefile b/6502/C64/Makefile index 0e45df6..0fb31c6 100644 --- a/6502/C64/Makefile +++ b/6502/C64/Makefile @@ -3,6 +3,9 @@ # 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)) @@ -16,6 +19,7 @@ vf_blk_fth: $(vf_blk_fth_files) clean: rm -f cbmfiles/*.fr cbmfiles/*.fth cbmfiles/*.log *.log *.result + rm -f cbmfiles/c??-testbase # Convenience targets @@ -36,29 +40,35 @@ run-testbase16: emulator/testbase16.T64 # Targetcompiler targets -cbmfiles/tcbase: emulator/testbase.T64 emulator/build-tcbase.sh \ +cbmfiles/tcbase: emulator/c64-testbase.T64 emulator/build-tcbase.sh \ disks/vforth4_2.d64 disks/tc38q.d64 cbmfiles/mk-tcbase.fth emulator/build-tcbase.sh -cbmfiles/vf83-c64: emulator/tcbase.T64 emulator/build-c64forth.sh \ +cbmfiles/c64-vf-latest: emulator/tcbase.T64 emulator/build-c64forth.sh \ disks/vforth4_2.d64 disks/tc38q.d64 cbmfiles/mk-c64forth.fth emulator/build-c64forth.sh +# Temp stopgap to fit c16 into default use of VERSION=vf-latest +# until we have a proper c16 targetcompiler rule. +# Missing part: Moving the target machine definition from vforth4_2.d64 +# screen 9 to somewhere more flexible. Likely two .fth files. +cbmfiles/c16-vf-latest: cbmfiles/c16-volksforth83 + cp $< $@ # Core test targets -test-c64.result: emulator/testbase.T64 $(test_files_petscii) \ +test-c64.result: emulator/c64-testbase.T64 $(test_files_petscii) \ emulator/run-in-vice.sh tests/evaluate-test.sh tests/test-c64.golden rm -f test-c64.log test-c64.result - emulator/run-in-vice.sh testbase \ + emulator/run-in-vice.sh c64-testbase \ "include run-vf-tests.fth\n1234567890\ndos s0:notdone\n" petscii2ascii cbmfiles/test.log test-c64.log tests/evaluate-test.sh test-c64 -test-c16.result: emulator/testbase16.T64 $(test_files_petscii) \ +test-c16.result: emulator/c16-testbase.T64 $(test_files_petscii) \ emulator/run-in-vice.sh tests/evaluate-test.sh tests/test-c16.golden rm -f test-c16.log test-c16.result - VICE=xplus4 emulator/run-in-vice.sh testbase16 \ + VICE=xplus4 emulator/run-in-vice.sh c16-testbase \ "include run-vf-tests.fth\n1234567890\ndos s0:notdone\n" petscii2ascii cbmfiles/test.log test-c16.log tests/evaluate-test.sh test-c16 @@ -72,13 +82,13 @@ 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 -cbmfiles/testbase: emulator/run-in-vice.sh emulator/build-testbase.sh \ - emulator/c64-volksforth83.T64 disks/file-words.d64 - emulator/build-testbase.sh +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/testbase16: emulator/run-in-vice.sh emulator/build-testbase.sh \ - emulator/c16-volksforth83.T64 disks/file-words.d64 - emulator/build-testbase16.sh +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/testbase b/6502/C64/cbmfiles/c64-vf-latest similarity index 88% rename from 6502/C64/cbmfiles/testbase rename to 6502/C64/cbmfiles/c64-vf-latest index 4eca2cb44e596d5dd46b5e446cdb84da037595ab..ec518dd7bd8655206d81222d326c0ab6d85e08b2 100644 GIT binary patch delta 163 zcmbQyz<8i+f+~x>GXuj$O;bUB1_o<}5J?uhD<=;{Ddk8`bPSlhSCC5zB)m_O`Oulu zQA!~8DM^;g7Y?2SayCB{e9NW4fCd5?j;XL8zIy4>(Q{WoIwrr9*(}V!knhC65X3M| tmF4`oGdFjtGB9l3B0G(f2}t{>8?b=rI_(!6j0~I8O~l!N+{q1A2LNbdFb@C# delta 1392 zcmbtUUuauZ7(eL^ZIXME+~$^~X*+w#UD<4tv~||>PjW|^dvjZC)0)JsrW0X4m^a&z|#e zzw>>+^L^j>e&2WRzWd3dCex#}P5iA{e}1U-IU06`~Az`wi-Gx>N`8Jng22707(A9t}XB73NZ(rJ#2ksV6zccjT>GR()UVt&}Zk zlHnKyG^@51*v)lw588n-X*wS`@}}!B6*+j*E5Z-CHm4!tzaY4TaCjyhCk=;dPBrIbp=5>}fb7v)Yyj{_O{kJ^zJLw*l5?-%mL;-17l zH3%f$_YK(4!8hlN{W~frT|zf&J`+xEz`6qK2f`F5NpOzWZ|93S*(EF0m_r9haN(Ke zg@PP&n89Oq32Eazv5ncqX-8g*M1^T4Dnz2={)lkheLOH=1l^Oc}ZvteIy?{PlVWHlEbs|Wl(Px_X3P=x zij%}iLy+)XMtKta=Y4S!LI4F_vEZr`@Yh-6gv5d%w&S-fm}T@8;kvKUaS>;@(QyYt zz?wg^FUgXpb%v8=dq`Mku=1~aq+ zAP7b#Efm1P2Wi!J%iKaMmbyWNancCh2>LHc?4I2Xap}RSS#lo9vb|xwnGWjl@Vkm7 z_4}CPZMzX{1Y6ZYMJer-l!~jW=3IzTi5(N}8)Q2{(SjS!qs#8IPYoIRVGW1a4YsI- zt^B^MGy=6b>Cg-_8466j$_q>|JTuLVPrbb0Jn7U14}-4YJo1Bm;cBFD;&IXhYC%F) z(V&coYiM4r)ahbVa#e(9?9_WHdoPt|jQ7 z&~V{%?NZWmSI3Ci|8Pn`S*6ea)_ diff --git a/6502/C64/cbmfiles/tcbase b/6502/C64/cbmfiles/tcbase new file mode 100644 index 0000000000000000000000000000000000000000..0ff1c5720693c489ce62f2d5b2c02f5f3d559acd GIT binary patch literal 21616 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

SRpQ7IPsDR5rcK0aJ~0(Ba9O+m!~I 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

LOy6r!#WZG$LP|%WUU6vY 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�eBh=5B+5p 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 diff --git a/6502/C64/emulator/build-c64forth.sh b/6502/C64/emulator/build-c64forth.sh index 9d3992a..cc0a10a 100755 --- a/6502/C64/emulator/build-c64forth.sh +++ b/6502/C64/emulator/build-c64forth.sh @@ -4,10 +4,10 @@ set -e emulatordir="$(dirname "${BASH_SOURCE[0]}")" basedir="$(realpath --relative-to="$PWD" "${emulatordir}/..")" -rm -f "${basedir}/cbmfiles/vf83-c64" +rm -f "${basedir}/cbmfiles/c64-vf-latest" keybuf="include mk-c64forth.fth\n\ -save-target vf83-c64\ndos s0:notdone\n" +save-target c64-vf-latest\ndos s0:notdone\n" DISK9=vforth4_2 DISK10=tc38q "${emulatordir}/run-in-vice.sh" \ "tcbase" "${keybuf}" diff --git a/6502/C64/emulator/build-tcbase.sh b/6502/C64/emulator/build-tcbase.sh index 6762203..01cac95 100755 --- a/6502/C64/emulator/build-tcbase.sh +++ b/6502/C64/emulator/build-tcbase.sh @@ -10,4 +10,4 @@ keybuf="2 drive 4 load\ninclude mk-tcbase.fth\n\ savesystem tcbase\ndos s0:notdone\n" DISK9=vforth4_2 DISK10=tc38q "${emulatordir}/run-in-vice.sh" \ - "testbase" "${keybuf}" + "c64-testbase" "${keybuf}" diff --git a/6502/C64/emulator/build-testbase.sh b/6502/C64/emulator/build-testbase.sh index a53cb4b..7e5c59e 100755 --- a/6502/C64/emulator/build-testbase.sh +++ b/6502/C64/emulator/build-testbase.sh @@ -4,13 +4,18 @@ set -e emulatordir="$(dirname "${BASH_SOURCE[0]}")" basedir="$(realpath --relative-to="$PWD" "${emulatordir}/..")" -rm -f "${basedir}/cbmfiles/testbase" +platform="$1" +version="$2" +source="${platform}-${version}" +target="${platform}-testbase" + +rm -f "${basedir}/cbmfiles/${target}" # load savesystem w/o editor from file-words.d64 block 20. # load include and dos from file-words.d64 block 10. # savesystem and then scratch file notdone to exit emulator. keybuf="3 drive 20 load\n3 drive 10 load\n\ -savesystem testbase\ndos s0:notdone\n" +savesystem ${target}\ndos s0:notdone\n" DISK11=file-words "${emulatordir}/run-in-vice.sh" \ - "c64-volksforth83" "${keybuf}" + "${source}" "${keybuf}"