From 4de1b65643332f6dd4087da2d899ebd6ea7aae59 Mon Sep 17 00:00:00 2001 From: Carsten Strotmann Date: Fri, 31 Jul 2020 13:47:31 +0200 Subject: [PATCH 1/4] Information on Version 3.9.x in Readme --- README.ORG | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/README.ORG b/README.ORG index bef41c7..2b94aa0 100644 --- a/README.ORG +++ b/README.ORG @@ -11,11 +11,12 @@ resources. Some modern Forth Systems were influenced by or were derived from VolksForth (GNU-Forth, bigForth). -The current Version of VolksForth is 3.91. Work on Version 4.00 has -started. +The current Version of VolksForth is 3.81. Version 3.9.x will be +interim versions on the way to sync all VolksForth targets and move +towards compliance with the 2012 Forth standard. -Version 3.9x is based on the Forth 83 standard, Version 4.00 will be -based on the latest 200x Standard (https://forth-standard.org). +Version 3.8.x is based on the Forth 83 standard, Version 4.00 will be +based on the current 2012 Standard (https://forth-standard.org). At this time VolksForth is available for this Systems: From f10155894ca4d56587c1dc64035e5580020aafb2 Mon Sep 17 00:00:00 2001 From: Philip Zembrod Date: Sun, 2 Aug 2020 18:33:53 +0200 Subject: [PATCH 2/4] Add debug-in-vice.sh script --- 6502/C64/emulator/debug-in-vice.sh | 32 ++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100755 6502/C64/emulator/debug-in-vice.sh diff --git a/6502/C64/emulator/debug-in-vice.sh b/6502/C64/emulator/debug-in-vice.sh new file mode 100755 index 0000000..2ace0bf --- /dev/null +++ b/6502/C64/emulator/debug-in-vice.sh @@ -0,0 +1,32 @@ +#!/bin/bash +# This script runs VICE in the foreground so that the VICE monitor +# works which doesn't work if VICE runs in the background. +set -e + +test -n "$VICE" || VICE=x64 +test -n "$DISK9" || DISK9=empty +test -n "$DISK10" || DISK10=empty +test -n "$DISK11" || DISK11=empty +emulatordir="$(realpath --relative-to="$PWD" "$(dirname "${BASH_SOURCE[0]}")")" +basedir="$(realpath --relative-to="$PWD" "${emulatordir}/..")" + +autostart="" +if [ -n "$1" ] +then + autostart="-autostart ${emulatordir}/${1}.T64" +fi + +"$VICE" \ + -virtualdev \ + +truedrive \ + -drive8type 1541 \ + -drive9type 1541 \ + -drive10type 1541 \ + -drive11type 1541 \ + -fs8 "${basedir}/cbmfiles" \ + -9 "${basedir}/disks/${DISK9}.d64" \ + -10 "${basedir}/disks/${DISK10}.d64" \ + -11 "${basedir}/disks/${DISK11}.d64" \ + -symkeymap "${emulatordir}/x11_sym_vf_de.vkm" \ + -keymap 2 \ + $autostart From a14cfd701dc3c7e1c6fe860b724a071c21c325d9 Mon Sep 17 00:00:00 2001 From: Philip Zembrod Date: Sun, 2 Aug 2020 20:28:27 +0200 Subject: [PATCH 3/4] Change default make target to cover both d64->fth and src->cbmfiles updates --- 6502/C64/Makefile | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/6502/C64/Makefile b/6502/C64/Makefile index 81f5c84..bcc5558 100644 --- a/6502/C64/Makefile +++ b/6502/C64/Makefile @@ -16,8 +16,10 @@ 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) +# Target to convert all .d64 images into .fth files for easier reading, +# and to update all PETSCII files in cbmfiles to the latest state of +# the corresponding ASCII files in src. +update: $(vf_blk_fth_files) $(vf_fth_files_petscii) clean: From 6c58b57f63ff09d76865af4c98d51b1d8dc61d62 Mon Sep 17 00:00:00 2001 From: Philip Zembrod Date: Mon, 3 Aug 2020 02:56:03 +0200 Subject: [PATCH 4/4] Get VolksForth versions for C16 with 32k to work. Aka (C16- --- 6502/C64/Makefile | 23 ++++++++++++++++++++--- 6502/C64/cbmfiles/vf-full-c16+ | Bin 16095 -> 16095 bytes 6502/C64/cbmfiles/vf-full-c16- | Bin 0 -> 15952 bytes 6502/C64/cbmfiles/vf-lite-c16+ | Bin 14066 -> 14066 bytes 6502/C64/cbmfiles/vf-lite-c16- | Bin 0 -> 13923 bytes 6502/C64/src/vf-c16+irq.fth | 14 ++++++++++++++ 6502/C64/src/vf-sys-c16.fth | 22 +++++----------------- 6502/C64/src/vf-sys-cbm.fth | 4 ++-- 6502/C64/src/vf-trg-c16-.fth | 3 +++ 9 files changed, 44 insertions(+), 22 deletions(-) create mode 100644 6502/C64/cbmfiles/vf-full-c16- create mode 100644 6502/C64/cbmfiles/vf-lite-c16- create mode 100644 6502/C64/src/vf-c16+irq.fth diff --git a/6502/C64/Makefile b/6502/C64/Makefile index bcc5558..a9f485e 100644 --- a/6502/C64/Makefile +++ b/6502/C64/Makefile @@ -13,8 +13,7 @@ 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)) +test_resuls = $(patsubst %, test-%.result, $(vf_flavours)) # Target to convert all .d64 images into .fth files for easier reading, # and to update all PETSCII files in cbmfiles to the latest state of @@ -33,7 +32,9 @@ clean: test: $(test_resuls) -test64: test-full-c64.result +test64: full64 lite64 + +full64: test-full-c64.result lite64: test-lite-c64.result @@ -103,6 +104,16 @@ test-lite-c16+.log: emulator/vf-lite-c16+.T64 "include run-min-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-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 rm -f $@ tests/evaluate-test.sh $(basename $@) @@ -128,6 +139,12 @@ test-full-c16+.golden: $(c16_golden_parts) test-lite-c16+.golden: $(c16_golden_parts) cat $? > $@ +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 # c64-volksforth83. diff --git a/6502/C64/cbmfiles/vf-full-c16+ b/6502/C64/cbmfiles/vf-full-c16+ index 17787f46ffeb3596fc67092063e25209e33f6d63..d76c4c406f7d251b61ebb45209183771eb5c1509 100644 GIT binary patch delta 14 Wcmca#d%t$WLVd<>n-}TZ@&f=pRR;h7 delta 14 Vcmca#d%t$WLVd=d&5QJH`2jh723!CD diff --git a/6502/C64/cbmfiles/vf-full-c16- b/6502/C64/cbmfiles/vf-full-c16- new file mode 100644 index 0000000000000000000000000000000000000000..076a2efc08ce8758d6adbb56ab4031ed562a09f7 GIT binary patch literal 15952 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 delta 14 VcmeyA`zd$BLVd=d&5QH{*a12T25kTU diff --git a/6502/C64/cbmfiles/vf-lite-c16- b/6502/C64/cbmfiles/vf-lite-c16- new file mode 100644 index 0000000000000000000000000000000000000000..8ab991bca8d7142819a8b9318ed289c94de23db6 GIT binary patch literal 13923 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 bLgQj-EE-FmjrOtEaTPs_MOf`)kIVlL3L#Dm literal 0 HcmV?d00001 diff --git a/6502/C64/src/vf-c16+irq.fth b/6502/C64/src/vf-c16+irq.fth new file mode 100644 index 0000000..7c3e4d0 --- /dev/null +++ b/6502/C64/src/vf-c16+irq.fth @@ -0,0 +1,14 @@ + + +$fcb3 >label IRQ \ normal IRQ +$fffe >label >IRQ \ 6502-Ptr to IRQ + +\ selfmodifying code: +Label RAMIRQ \ the new IRQ + rom RAMIRQ $15 + sta RAMIRQ $17 + stx +( +9) RAMIRQ $1b + $100 u/mod # lda pha + # lda pha +( +f) tsx $103 ,x lda pha \ flags +( +14) 0 # lda 0 # ldx IRQ jmp +( +1b) ram rti end-code + diff --git a/6502/C64/src/vf-sys-c16.fth b/6502/C64/src/vf-sys-c16.fth index 4cac6cb..72caeaf 100644 --- a/6502/C64/src/vf-sys-c16.fth +++ b/6502/C64/src/vf-sys-c16.fth @@ -75,18 +75,7 @@ Create ink-pot Code init-system $F7 # ldx txs xyNext jmp end-code -$fcb3 >label IRQ \ normal IRQ -$fffe >label >IRQ \ 6502-Ptr to IRQ - -\ selfmodifying code: -Label RAMIRQ \ the new IRQ - rom RAMIRQ $15 + sta RAMIRQ $17 + stx -( +9) RAMIRQ $1b + $100 u/mod # lda pha - # lda pha -( +f) tsx $103 ,x lda pha \ flags -( +14) 0 # lda 0 # ldx IRQ jmp -( +1b) ram rti end-code - +(C16+ include vf-c16+irq.fth ) \ *** Block No. 147, Hexblock 93 93 fthpage @@ -96,10 +85,9 @@ Label RAMIRQ \ the new IRQ Label first-init \ will be called in ROM first time \ later called from RAM - sei rom - RAMIRQ $100 u/mod \ new IRQ - # lda >IRQ 1+ sta \ .. install - # lda >IRQ sta + sei (C16+ rom ( ) + \ new IRQ install + (C16+ RAMIRQ $100 u/mod # lda >IRQ 1+ sta # lda >IRQ sta ( ) $FF84 normJsr $FF8A normJsr \ CIAs init. and set I/O-Vectors ink-pot lda BrdCol sta \ border @@ -107,7 +95,7 @@ Label first-init ink-pot 2+ lda PenCol sta \ pen $80 # lda KeyRep sta \ repeat all keys $FF13 lda 04 # ora $FF13 sta \ low/upp - ram cli rts end-code + (C16+ ram ( ) cli rts end-code first-init dup bootsystem 1+ ! warmboot 1+ ! diff --git a/6502/C64/src/vf-sys-cbm.fth b/6502/C64/src/vf-sys-cbm.fth index 97b41d2..d5babd4 100644 --- a/6502/C64/src/vf-sys-cbm.fth +++ b/6502/C64/src/vf-sys-cbm.fth @@ -97,9 +97,9 @@ Output: display [ here output ! ] (C64 | Create (bye $FCE2 here 2- ! ) -(C16- | Create (bye $FF52 here 2- ! ) +(C16- | Create (bye $FFF6 here 2- ! ) -(C16+ | CODE (bye rom $FF52 jmp end-code ) +(C16+ | CODE (bye rom $FFF6 jmp end-code ) \ *** Block No. 135, Hexblock 87 diff --git a/6502/C64/src/vf-trg-c16-.fth b/6502/C64/src/vf-trg-c16-.fth index 309658e..6127f23 100644 --- a/6502/C64/src/vf-trg-c16-.fth +++ b/6502/C64/src/vf-trg-c16-.fth @@ -8,3 +8,6 @@ : (C16+ [compile] ( ; immediate include vf-pr-target.fth + +Assembler also definitions +' Jsr Alias NormJsr