mirror of
https://github.com/forth-ev/VolksForth.git
synced 2025-02-16 06:30:45 +00:00
commit
634e68c68c
@ -5,10 +5,12 @@
|
|||||||
|
|
||||||
vf_blk_d64_files = $(wildcard disks/*.d64)
|
vf_blk_d64_files = $(wildcard disks/*.d64)
|
||||||
vf_blk_fth_files = $(patsubst %.d64, %.fth, $(vf_blk_d64_files))
|
vf_blk_fth_files = $(patsubst %.d64, %.fth, $(vf_blk_d64_files))
|
||||||
vf_fth_files = $(wildcard src/vf-*.fth)
|
vf_fth_files = $(wildcard src/vf-*.fth src/v4th*.fth)
|
||||||
vf_fth_files_petscii = $(patsubst src/%, cbmfiles/%, $(vf_fth_files))
|
vf_fth_files_petscii = $(patsubst src/%, cbmfiles/%, $(vf_fth_files))
|
||||||
vf_flavours = full-c64 full-c16+ full-c16- lite-c64 lite-c16+ lite-c16-
|
vf_flavours = \
|
||||||
vf_binaries = $(patsubst %, cbmfiles/vf-%, $(vf_flavours))
|
v4thblk-c64 v4thblk-c16+ v4thblk-c16- \
|
||||||
|
v4th-c64 v4th-c16+ v4th-c16- v4th-x16
|
||||||
|
vf_binaries = $(patsubst %, cbmfiles/%, $(vf_flavours))
|
||||||
|
|
||||||
test_files = $(wildcard tests/*.f*)
|
test_files = $(wildcard tests/*.f*)
|
||||||
test_files_petscii = $(patsubst tests/%, cbmfiles/%, $(test_files))
|
test_files_petscii = $(patsubst tests/%, cbmfiles/%, $(test_files))
|
||||||
@ -25,7 +27,7 @@ clean:
|
|||||||
rm -f cbmfiles/*.fr cbmfiles/*.fth cbmfiles/*.log
|
rm -f cbmfiles/*.fr cbmfiles/*.fth cbmfiles/*.log
|
||||||
rm -f *.log *.result *.golden
|
rm -f *.log *.result *.golden
|
||||||
rm -f cbmfiles/c??-testbase
|
rm -f cbmfiles/c??-testbase
|
||||||
rm -f disks/scratch.d64
|
rm -f disks/scratch.d64 emulator/sdcard.img
|
||||||
|
|
||||||
|
|
||||||
# Convenience targets
|
# Convenience targets
|
||||||
@ -34,15 +36,15 @@ binaries: $(vf_binaries)
|
|||||||
|
|
||||||
test: $(test_resuls)
|
test: $(test_resuls)
|
||||||
|
|
||||||
test64: full64 lite64
|
test64: std64 blk64
|
||||||
|
|
||||||
full64: test-full-c64.result
|
blk64: test-v4thblk-c64.result
|
||||||
|
|
||||||
lite64: test-lite-c64.result
|
std64: test-v4th-c64.result
|
||||||
|
|
||||||
debug-64: emulator/tcbase.T64 emulator/build-vf.sh \
|
debug-64: emulator/tcbase.T64 emulator/build-vf.sh \
|
||||||
disks/vforth4_2.d64 disks/tc38q.d64 $(vf_fth_files_petscii)
|
disks/vforth4_2.d64 disks/tc38q.d64 $(vf_fth_files_petscii)
|
||||||
emulator/build-vf.sh vf-c64-main.fth
|
emulator/build-vf.sh v4th-c64 nosave
|
||||||
|
|
||||||
run-devenv: emulator/devenv.T64
|
run-devenv: emulator/devenv.T64
|
||||||
emulator/run-in-vice.sh devenv
|
emulator/run-in-vice.sh devenv
|
||||||
@ -63,57 +65,75 @@ cbmfiles/tcbase: emulator/c64-vf-390.T64 emulator/build-tcbase.sh \
|
|||||||
$(vf_binaries): emulator/tcbase.T64 emulator/build-vf.sh \
|
$(vf_binaries): emulator/tcbase.T64 emulator/build-vf.sh \
|
||||||
disks/tc38q.d64 $(vf_fth_files_petscii)
|
disks/tc38q.d64 $(vf_fth_files_petscii)
|
||||||
|
|
||||||
cbmfiles/vf-full-c64:
|
$(vf_binaries): cbmfiles/logtofile.fth
|
||||||
emulator/build-vf.sh vf-full-c64.fth vf-full-c64
|
|
||||||
|
|
||||||
cbmfiles/vf-full-c16+:
|
cbmfiles/v4thblk-c64:
|
||||||
emulator/build-vf.sh vf-full-c16+.fth vf-full-c16+
|
emulator/build-vf.sh v4thblk-c64
|
||||||
|
|
||||||
cbmfiles/vf-full-c16-:
|
cbmfiles/v4thblk-c16+:
|
||||||
emulator/build-vf.sh vf-full-c16-.fth vf-full-c16-
|
emulator/build-vf.sh v4thblk-c16+
|
||||||
|
|
||||||
cbmfiles/vf-lite-c64:
|
cbmfiles/v4thblk-c16-:
|
||||||
emulator/build-vf.sh vf-lite-c64.fth vf-lite-c64
|
emulator/build-vf.sh v4thblk-c16-
|
||||||
|
|
||||||
cbmfiles/vf-lite-c16+:
|
cbmfiles/v4th-c64:
|
||||||
emulator/build-vf.sh vf-lite-c16+.fth vf-lite-c16+
|
emulator/build-vf.sh v4th-c64
|
||||||
|
|
||||||
cbmfiles/vf-lite-c16-:
|
cbmfiles/v4th-c16+:
|
||||||
emulator/build-vf.sh vf-lite-c16-.fth vf-lite-c16-
|
emulator/build-vf.sh v4th-c16+
|
||||||
|
|
||||||
|
cbmfiles/v4th-c16-:
|
||||||
|
emulator/build-vf.sh v4th-c16-
|
||||||
|
|
||||||
|
cbmfiles/v4th-x16:
|
||||||
|
emulator/build-vf.sh v4th-x16
|
||||||
|
|
||||||
|
|
||||||
# Core test targets
|
# Core test targets
|
||||||
|
|
||||||
$(test_logs): $(test_files_petscii) emulator/run-in-vice.sh
|
$(test_logs): $(test_files_petscii) emulator/run-in-vice.sh
|
||||||
|
|
||||||
test-full-c64.log: emulator/vf-full-c64.T64 disks/scratch.d64
|
test-v4thblk-c64.log: emulator/v4thblk-c64.T64 disks/scratch.d64
|
||||||
DISK9=scratch emulator/run-in-vice.sh vf-full-c64 \
|
rm -f cbmfiles/test.log
|
||||||
"include run-full-tests.fth\n1234567890\n"
|
DISK9=scratch emulator/run-in-vice.sh v4thblk-c64 \
|
||||||
|
"include run-blk-tests.fth\n1234567890\n"
|
||||||
petscii2ascii cbmfiles/test.log $@
|
petscii2ascii cbmfiles/test.log $@
|
||||||
|
|
||||||
test-lite-c64.log: emulator/vf-lite-c64.T64
|
test-v4th-c64.log: emulator/v4th-c64.T64
|
||||||
emulator/run-in-vice.sh vf-lite-c64 \
|
rm -f cbmfiles/test.log
|
||||||
"include run-lite-tests.fth\n1234567890\n"
|
emulator/run-in-vice.sh v4th-c64 \
|
||||||
|
"include run-std-tests.fth\n1234567890\n"
|
||||||
petscii2ascii cbmfiles/test.log $@
|
petscii2ascii cbmfiles/test.log $@
|
||||||
|
|
||||||
test-full-c16+.log: emulator/vf-full-c16+.T64 disks/scratch.d64
|
test-v4thblk-c16+.log: emulator/v4thblk-c16+.T64 disks/scratch.d64
|
||||||
VICE=xplus4 emulator/run-in-vice.sh vf-full-c16+ \
|
rm -f cbmfiles/test.log
|
||||||
"include run-full-tests.fth\n1234567890\n"
|
VICE=xplus4 emulator/run-in-vice.sh v4thblk-c16+ \
|
||||||
|
"include run-blk-tests.fth\n1234567890\n"
|
||||||
petscii2ascii cbmfiles/test.log $@
|
petscii2ascii cbmfiles/test.log $@
|
||||||
|
|
||||||
test-lite-c16+.log: emulator/vf-lite-c16+.T64
|
test-v4th-c16+.log: emulator/v4th-c16+.T64
|
||||||
VICE=xplus4 emulator/run-in-vice.sh vf-lite-c16+ \
|
rm -f cbmfiles/test.log
|
||||||
"include run-lite-tests.fth\n1234567890\n"
|
VICE=xplus4 emulator/run-in-vice.sh v4th-c16+ \
|
||||||
|
"include run-std-tests.fth\n1234567890\n"
|
||||||
petscii2ascii cbmfiles/test.log $@
|
petscii2ascii cbmfiles/test.log $@
|
||||||
|
|
||||||
test-full-c16-.log: emulator/vf-full-c16-.T64
|
test-v4thblk-c16-.log: emulator/v4thblk-c16-.T64
|
||||||
VICE=xplus4 emulator/run-in-vice.sh vf-full-c16- \
|
rm -f cbmfiles/test.log
|
||||||
|
VICE=xplus4 emulator/run-in-vice.sh v4thblk-c16- \
|
||||||
"include run-min-tests.fth\n1234567890\n"
|
"include run-min-tests.fth\n1234567890\n"
|
||||||
petscii2ascii cbmfiles/test.log $@
|
petscii2ascii cbmfiles/test.log $@
|
||||||
|
|
||||||
test-lite-c16-.log: emulator/vf-lite-c16-.T64
|
test-v4th-c16-.log: emulator/v4th-c16-.T64
|
||||||
VICE=xplus4 emulator/run-in-vice.sh vf-lite-c16- \
|
rm -f cbmfiles/test.log
|
||||||
"include run-lite-tests.fth\n1234567890\n"
|
VICE=xplus4 emulator/run-in-vice.sh v4th-c16- \
|
||||||
|
"include run-std-tests.fth\n1234567890\n"
|
||||||
|
petscii2ascii cbmfiles/test.log $@
|
||||||
|
|
||||||
|
test-v4th-x16.log: cbmfiles/v4th-x16 emulator/sdcard.img
|
||||||
|
rm -f cbmfiles/test.log
|
||||||
|
emulator/run-in-x16emu.sh v4th-x16 \
|
||||||
|
"INCLUDE RUN-STD-TESTS.FTH\\X0D1234567890\\X0D"
|
||||||
|
mcopy -i emulator/sdcard.img ::TEST.LOG cbmfiles/test.log
|
||||||
petscii2ascii cbmfiles/test.log $@
|
petscii2ascii cbmfiles/test.log $@
|
||||||
|
|
||||||
test-%.result: test-%.log test-%.golden tests/evaluate-test.sh
|
test-%.result: test-%.log test-%.golden tests/evaluate-test.sh
|
||||||
@ -123,28 +143,38 @@ test-%.result: test-%.log test-%.golden tests/evaluate-test.sh
|
|||||||
disks/scratch.d64: disks/empty.d64
|
disks/scratch.d64: disks/empty.d64
|
||||||
cp $< $@
|
cp $< $@
|
||||||
|
|
||||||
|
emulator/sdcard.img: emulator/sdcard.sfdisk
|
||||||
|
rm -f $@ $@.tmp
|
||||||
|
dd if=/dev/zero of=$@.tmp count=64 bs=1M
|
||||||
|
sfdisk -w always -W always $@.tmp < $<
|
||||||
|
mformat -i $@.tmp -F
|
||||||
|
mv $@.tmp $@
|
||||||
|
|
||||||
test-full-c64.golden: $(patsubst %, tests/golden/%.golden, \
|
test-v4thblk-c64.golden: $(patsubst %, tests/golden/%.golden, \
|
||||||
prelim core coreext double block report-blk)
|
prelim core coreext double block report-blk)
|
||||||
cat $? > $@
|
cat $? > $@
|
||||||
|
|
||||||
test-lite-c64.golden: $(patsubst %, tests/golden/%.golden, \
|
test-v4th-c64.golden: $(patsubst %, tests/golden/%.golden, \
|
||||||
prelim core coreext double report-noblk)
|
prelim core coreext double report-noblk)
|
||||||
cat $? > $@
|
cat $? > $@
|
||||||
|
|
||||||
test-full-c16+.golden: $(patsubst %, tests/golden/%.golden, \
|
test-v4thblk-c16+.golden: $(patsubst %, tests/golden/%.golden, \
|
||||||
prelim core coreext double block report-blk)
|
prelim core coreext double block report-blk)
|
||||||
cat $? > $@
|
cat $? > $@
|
||||||
|
|
||||||
test-lite-c16+.golden: $(patsubst %, tests/golden/%.golden, \
|
test-v4th-c16+.golden: $(patsubst %, tests/golden/%.golden, \
|
||||||
prelim core coreext double report-noblk)
|
prelim core coreext double report-noblk)
|
||||||
cat $? > $@
|
cat $? > $@
|
||||||
|
|
||||||
test-full-c16-.golden: $(patsubst %, tests/golden/%.golden, \
|
test-v4thblk-c16-.golden: $(patsubst %, tests/golden/%.golden, \
|
||||||
prelim core)
|
prelim core)
|
||||||
cat $? > $@
|
cat $? > $@
|
||||||
|
|
||||||
test-lite-c16-.golden: $(patsubst %, tests/golden/%.golden, \
|
test-v4th-c16-.golden: $(patsubst %, tests/golden/%.golden, \
|
||||||
|
prelim core coreext double report-noblk)
|
||||||
|
cat $? > $@
|
||||||
|
|
||||||
|
test-v4th-x16.golden: $(patsubst %, tests/golden/%.golden, \
|
||||||
prelim core coreext double report-noblk)
|
prelim core coreext double report-noblk)
|
||||||
cat $? > $@
|
cat $? > $@
|
||||||
|
|
||||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
6502/C64/cbmfiles/v4th-x16
Normal file
BIN
6502/C64/cbmfiles/v4th-x16
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -10,13 +10,20 @@ set -e
|
|||||||
emulatordir="$(dirname "${BASH_SOURCE[0]}")"
|
emulatordir="$(dirname "${BASH_SOURCE[0]}")"
|
||||||
basedir="$(realpath --relative-to="$PWD" "${emulatordir}/..")"
|
basedir="$(realpath --relative-to="$PWD" "${emulatordir}/..")"
|
||||||
|
|
||||||
source="$1"
|
target="${1}"
|
||||||
target="$2"
|
source="${target}.fth"
|
||||||
|
logfile="${target}.log"
|
||||||
|
nosave="${2}"
|
||||||
|
|
||||||
test -n "$target" && rm -f "${basedir}/cbmfiles/${target}"
|
test -z "${nosave}" && rm -f "${basedir}/cbmfiles/${target}"
|
||||||
|
rm -f "${basedir}/cbmfiles/${logfile}"
|
||||||
|
|
||||||
keybuf="include ${source}\nsave-target ${target}\ndos s0:notdone\n"
|
keybuf="include ${source}\nsave-target ${target}\ndos s0:notdone\n"
|
||||||
test -z "$target" && keybuf="include ${source}\n"
|
test -n "${nosave}" && keybuf="include ${source}\n"
|
||||||
|
|
||||||
DISK10=tc38q "${emulatordir}/run-in-vice.sh" \
|
DISK10=tc38q "${emulatordir}/run-in-vice.sh" \
|
||||||
"tcbase" "${keybuf}"
|
"tcbase" "${keybuf}"
|
||||||
|
|
||||||
|
petscii2ascii "${basedir}/cbmfiles/${logfile}" | \
|
||||||
|
grep -F 'target compile complete' || \
|
||||||
|
(echo "check logfile ${basedir}/cbmfiles/${logfile}" && exit 1)
|
||||||
|
@ -18,7 +18,7 @@ keybuf=""
|
|||||||
warp=""
|
warp=""
|
||||||
if [ -n "$2" ]
|
if [ -n "$2" ]
|
||||||
then
|
then
|
||||||
keybuf="${2}" # dos s0:notdone\n"
|
keybuf="${2}"
|
||||||
# The following could also just be a cp.
|
# The following could also just be a cp.
|
||||||
ascii2petscii "${emulatordir}/notdone" "${basedir}/cbmfiles/notdone"
|
ascii2petscii "${emulatordir}/notdone" "${basedir}/cbmfiles/notdone"
|
||||||
warp="-warp"
|
warp="-warp"
|
||||||
@ -50,7 +50,11 @@ then
|
|||||||
done
|
done
|
||||||
sleep 0.5
|
sleep 0.5
|
||||||
|
|
||||||
|
kill9log="${basedir}/kill-9.log"
|
||||||
|
vicepid="$(jobs -p %1)"
|
||||||
kill %1
|
kill %1
|
||||||
|
(sleep 20; ps -q "${vicepid}" -f --no-headers && \
|
||||||
|
(kill -9 "${vicepid}" ; date)) >> "${kill9log}" 2>&1 &
|
||||||
fi
|
fi
|
||||||
|
|
||||||
wait %1 || echo "x64 returned $?"
|
wait %1 || echo "x64 returned $?"
|
||||||
|
62
6502/C64/emulator/run-in-x16emu.sh
Executable file
62
6502/C64/emulator/run-in-x16emu.sh
Executable file
@ -0,0 +1,62 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
set -e
|
||||||
|
|
||||||
|
emulatordir="$(realpath --relative-to="$PWD" "$(dirname "${BASH_SOURCE[0]}")")"
|
||||||
|
basedir="$(realpath --relative-to="$PWD" "${emulatordir}/..")"
|
||||||
|
cbmfilesdir="${basedir}/cbmfiles"
|
||||||
|
sdcard="${emulatordir}/sdcard.img"
|
||||||
|
|
||||||
|
mformat -i "${sdcard}" -F
|
||||||
|
for asciifile in $(cd "${cbmfilesdir}" && ls *.fth *fr)
|
||||||
|
do
|
||||||
|
# Convert filename to PETSCII, remove trailing CR.
|
||||||
|
petsciifile="$(echo ${asciifile} | ascii2petscii - |tr -d '\r')"
|
||||||
|
mcopy -i "${sdcard}" "${cbmfilesdir}/$asciifile" "::${petsciifile}"
|
||||||
|
done
|
||||||
|
|
||||||
|
autostart=""
|
||||||
|
if [ -n "$1" ]
|
||||||
|
then
|
||||||
|
autostart="-prg ${cbmfilesdir}/${1} -run"
|
||||||
|
fi
|
||||||
|
|
||||||
|
keybuf=""
|
||||||
|
warp=""
|
||||||
|
scale=""
|
||||||
|
debug=""
|
||||||
|
if [ -n "$2" ]
|
||||||
|
then
|
||||||
|
keybuf="${2}"
|
||||||
|
mcopy -i "${sdcard}" "${emulatordir}/notdone" "::NOTDONE"
|
||||||
|
warp="-warp"
|
||||||
|
else
|
||||||
|
scale="-scale 2"
|
||||||
|
debug="-debug"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# The -keybuf flag is added in https://github.com/pzembrod/x16-emulator
|
||||||
|
x16emu \
|
||||||
|
-keymap de \
|
||||||
|
-sdcard "${sdcard}" \
|
||||||
|
$autostart \
|
||||||
|
-keybuf "$keybuf" \
|
||||||
|
$warp \
|
||||||
|
$scale \
|
||||||
|
$debug \
|
||||||
|
&
|
||||||
|
|
||||||
|
if [ -n "$keybuf" ]
|
||||||
|
then
|
||||||
|
while mtype -i "${sdcard}" "::NOTDONE" > /dev/null
|
||||||
|
do sleep 1
|
||||||
|
done
|
||||||
|
sleep 0.5
|
||||||
|
|
||||||
|
kill9log="${basedir}/kill-9.log"
|
||||||
|
x16emupid="$(jobs -p %1)"
|
||||||
|
kill %1
|
||||||
|
(sleep 20; ps -q "${x16emupid}" -f --no-headers && \
|
||||||
|
(kill -9 "${x16emupid}" ; date)) >> "${kill9log}" 2>&1 &
|
||||||
|
fi
|
||||||
|
|
||||||
|
wait %1 || echo "x16emu returned $?"
|
6
6502/C64/emulator/sdcard.sfdisk
Normal file
6
6502/C64/emulator/sdcard.sfdisk
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
label: dos
|
||||||
|
label-id: 0x00000000
|
||||||
|
device: emulator/my-image.fat
|
||||||
|
unit: sectors
|
||||||
|
|
||||||
|
emulator/my-image.fat1 : start= 1, size= 131040, type=c, bootable
|
@ -1,6 +1,15 @@
|
|||||||
|
|
||||||
|
\ with build log:
|
||||||
|
' noop alias \log
|
||||||
|
\ without build log:
|
||||||
|
\ ' \ alias \log
|
||||||
|
|
||||||
|
\log include logtofile.fth
|
||||||
|
|
||||||
include vf-tc-prep.fth
|
include vf-tc-prep.fth
|
||||||
|
|
||||||
|
\log logopen" v4th-c16+.log"
|
||||||
|
|
||||||
include vf-trg-c16+.fth
|
include vf-trg-c16+.fth
|
||||||
|
|
||||||
\ The actual volksForth sources
|
\ The actual volksForth sources
|
||||||
@ -14,4 +23,7 @@ include vf-finalize.fth
|
|||||||
include vf-memsetup.fth
|
include vf-memsetup.fth
|
||||||
|
|
||||||
include vf-pr-target.fth
|
include vf-pr-target.fth
|
||||||
|
.( target compile complete) cr
|
||||||
|
\log logclose
|
||||||
|
|
||||||
quit
|
quit
|
@ -1,6 +1,15 @@
|
|||||||
|
|
||||||
|
\ with build log:
|
||||||
|
' noop alias \log
|
||||||
|
\ without build log:
|
||||||
|
\ ' \ alias \log
|
||||||
|
|
||||||
|
\log include logtofile.fth
|
||||||
|
|
||||||
include vf-tc-prep.fth
|
include vf-tc-prep.fth
|
||||||
|
|
||||||
|
\log logopen" v4th-c16-.log"
|
||||||
|
|
||||||
include vf-trg-c16-.fth
|
include vf-trg-c16-.fth
|
||||||
|
|
||||||
\ The actual volksForth sources
|
\ The actual volksForth sources
|
||||||
@ -14,4 +23,7 @@ include vf-finalize.fth
|
|||||||
include vf-memsetup.fth
|
include vf-memsetup.fth
|
||||||
|
|
||||||
include vf-pr-target.fth
|
include vf-pr-target.fth
|
||||||
|
.( target compile complete) cr
|
||||||
|
\log logclose
|
||||||
|
|
||||||
quit
|
quit
|
@ -1,6 +1,15 @@
|
|||||||
|
|
||||||
|
\ with build log:
|
||||||
|
' noop alias \log
|
||||||
|
\ without build log:
|
||||||
|
\ ' \ alias \log
|
||||||
|
|
||||||
|
\log include logtofile.fth
|
||||||
|
|
||||||
include vf-tc-prep.fth
|
include vf-tc-prep.fth
|
||||||
|
|
||||||
|
\log logopen" v4th-c64.log"
|
||||||
|
|
||||||
include vf-trg-c64.fth
|
include vf-trg-c64.fth
|
||||||
|
|
||||||
\ The actual volksForth sources
|
\ The actual volksForth sources
|
||||||
@ -14,4 +23,7 @@ include vf-finalize.fth
|
|||||||
include vf-memsetup.fth
|
include vf-memsetup.fth
|
||||||
|
|
||||||
include vf-pr-target.fth
|
include vf-pr-target.fth
|
||||||
|
.( target compile complete) cr
|
||||||
|
\log logclose
|
||||||
|
|
||||||
quit
|
quit
|
29
6502/C64/src/v4th-x16.fth
Normal file
29
6502/C64/src/v4th-x16.fth
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
|
||||||
|
\ with build log:
|
||||||
|
' noop alias \log
|
||||||
|
\ without build log:
|
||||||
|
\ ' \ alias \log
|
||||||
|
|
||||||
|
\log include logtofile.fth
|
||||||
|
|
||||||
|
include vf-tc-prep.fth
|
||||||
|
|
||||||
|
\log logopen" v4th-x16.log"
|
||||||
|
|
||||||
|
include vf-trg-x16.fth
|
||||||
|
|
||||||
|
\ The actual volksForth sources
|
||||||
|
|
||||||
|
include vf-head-x16.fth
|
||||||
|
include vf-cbm-core.fth
|
||||||
|
include vf-sys-x16.fth
|
||||||
|
include vf-cbm-file.fth
|
||||||
|
include vf-finalize.fth
|
||||||
|
9f00 ' limit >body ! 9b00 s0 ! 9f00 r0 !
|
||||||
|
include vf-memsetup.fth
|
||||||
|
|
||||||
|
include vf-pr-target.fth
|
||||||
|
.( target compile complete) cr
|
||||||
|
\log logclose
|
||||||
|
|
||||||
|
quit
|
@ -1,6 +1,15 @@
|
|||||||
|
|
||||||
|
\ with build log:
|
||||||
|
' noop alias \log
|
||||||
|
\ without build log:
|
||||||
|
\ ' \ alias \log
|
||||||
|
|
||||||
|
\log include logtofile.fth
|
||||||
|
|
||||||
include vf-tc-prep.fth
|
include vf-tc-prep.fth
|
||||||
|
|
||||||
|
\log logopen" v4thblk-c16+.log"
|
||||||
|
|
||||||
include vf-trg-c16+.fth
|
include vf-trg-c16+.fth
|
||||||
|
|
||||||
\ The actual volksForth sources
|
\ The actual volksForth sources
|
||||||
@ -15,4 +24,7 @@ include vf-finalize.fth
|
|||||||
include vf-memsetup.fth
|
include vf-memsetup.fth
|
||||||
|
|
||||||
include vf-pr-target.fth
|
include vf-pr-target.fth
|
||||||
|
.( target compile complete) cr
|
||||||
|
\log logclose
|
||||||
|
|
||||||
quit
|
quit
|
@ -1,6 +1,15 @@
|
|||||||
|
|
||||||
|
\ with build log:
|
||||||
|
' noop alias \log
|
||||||
|
\ without build log:
|
||||||
|
\ ' \ alias \log
|
||||||
|
|
||||||
|
\log include logtofile.fth
|
||||||
|
|
||||||
include vf-tc-prep.fth
|
include vf-tc-prep.fth
|
||||||
|
|
||||||
|
\log logopen" v4thblk-c16-.log"
|
||||||
|
|
||||||
include vf-trg-c16-.fth
|
include vf-trg-c16-.fth
|
||||||
|
|
||||||
\ The actual volksForth sources
|
\ The actual volksForth sources
|
||||||
@ -15,4 +24,7 @@ include vf-finalize.fth
|
|||||||
include vf-memsetup.fth
|
include vf-memsetup.fth
|
||||||
|
|
||||||
include vf-pr-target.fth
|
include vf-pr-target.fth
|
||||||
|
.( target compile complete) cr
|
||||||
|
\log logclose
|
||||||
|
|
||||||
quit
|
quit
|
@ -1,6 +1,15 @@
|
|||||||
|
|
||||||
|
\ with build log:
|
||||||
|
' noop alias \log
|
||||||
|
\ without build log:
|
||||||
|
\ ' \ alias \log
|
||||||
|
|
||||||
|
\log include logtofile.fth
|
||||||
|
|
||||||
include vf-tc-prep.fth
|
include vf-tc-prep.fth
|
||||||
|
|
||||||
|
\log logopen" v4thblk-c64.log"
|
||||||
|
|
||||||
include vf-trg-c64.fth
|
include vf-trg-c64.fth
|
||||||
|
|
||||||
\ The actual volksForth sources
|
\ The actual volksForth sources
|
||||||
@ -15,4 +24,7 @@ include vf-finalize.fth
|
|||||||
include vf-memsetup.fth
|
include vf-memsetup.fth
|
||||||
|
|
||||||
include vf-pr-target.fth
|
include vf-pr-target.fth
|
||||||
|
.( target compile complete) cr
|
||||||
|
\log logclose
|
||||||
|
|
||||||
quit
|
quit
|
@ -5,7 +5,10 @@
|
|||||||
|
|
||||||
( Zero page Variables & Next 03apr85bp)
|
( Zero page Variables & Next 03apr85bp)
|
||||||
|
|
||||||
02 dup >label RP 2+
|
(C64 02 )
|
||||||
|
(C16 02 )
|
||||||
|
(X16 $30 )
|
||||||
|
dup >label RP 2+
|
||||||
dup >label UP 2+
|
dup >label UP 2+
|
||||||
|
|
||||||
dup >label Puta 1+
|
dup >label Puta 1+
|
||||||
|
@ -13,6 +13,7 @@ Forth also definitions
|
|||||||
|
|
||||||
(C16 : (64 ) \ jumps belhind C)
|
(C16 : (64 ) \ jumps belhind C)
|
||||||
(C64 : (16 )
|
(C64 : (16 )
|
||||||
|
(X16 : (CX )
|
||||||
BEGIN name count dup 0=
|
BEGIN name count dup 0=
|
||||||
abort" C) missing" 2 = >r
|
abort" C) missing" 2 = >r
|
||||||
@ [ Ascii C Ascii ) $100 * + ] Literal
|
@ [ Ascii C Ascii ) $100 * + ] Literal
|
||||||
@ -20,7 +21,7 @@ Forth also definitions
|
|||||||
|
|
||||||
: C) ; immediate
|
: C) ; immediate
|
||||||
|
|
||||||
(C16 : (16 ) (C64 : (64 ) ; immediate
|
(C16 : (16 ) (C64 : (64 ) (X16 : (CX ) ; immediate
|
||||||
|
|
||||||
: forth-83 ; \ last word in Dictionary
|
: forth-83 ; \ last word in Dictionary
|
||||||
|
|
||||||
|
@ -28,5 +28,5 @@ here dup origin!
|
|||||||
$100 allot
|
$100 allot
|
||||||
|
|
||||||
Create logo
|
Create logo
|
||||||
(C16+ ," volksFORTH-83 3.90-C16+ " )
|
(C16+ ," volksFORTH-83 3.91-C16+ " )
|
||||||
(C16- ," volksFORTH-83 3.90-C16- " )
|
(C16- ," volksFORTH-83 3.91-C16- " )
|
||||||
|
@ -28,4 +28,4 @@ here dup origin!
|
|||||||
$100 allot
|
$100 allot
|
||||||
|
|
||||||
Create logo
|
Create logo
|
||||||
," volksFORTH-83 3.90-C64 "
|
," volksFORTH-83 3.91-C64 "
|
||||||
|
30
6502/C64/src/vf-head-x16.fth
Normal file
30
6502/C64/src/vf-head-x16.fth
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
\ The head of Commander X16 VolkForth
|
||||||
|
|
||||||
|
\ Initial part of load file
|
||||||
|
|
||||||
|
Onlyforth
|
||||||
|
|
||||||
|
$801 dup displace !
|
||||||
|
Target definitions here!
|
||||||
|
|
||||||
|
|
||||||
|
10 fthpage
|
||||||
|
|
||||||
|
\ FORTH Preamble and ID
|
||||||
|
|
||||||
|
$D c, $8 c, $A c, 00 c, 9E c, 28 c, 32 c, 30 c,
|
||||||
|
36 c, 34 c, 29 c, 00 c, 00 c, 00 c, 00 c, \ SYS(2064)
|
||||||
|
|
||||||
|
Assembler
|
||||||
|
nop 0 jmp here 2- >label >cold
|
||||||
|
nop 0 jmp here 2- >label >restart
|
||||||
|
|
||||||
|
here dup origin!
|
||||||
|
\ Here are coldstart- and Uservariables
|
||||||
|
\
|
||||||
|
0 jmp 0 jsr here 2- >label >wake
|
||||||
|
end-code
|
||||||
|
$100 allot
|
||||||
|
|
||||||
|
Create logo
|
||||||
|
," volksFORTH-83 3.91-X16 "
|
@ -8,6 +8,7 @@ cr .( Target is: ) \ clv14.4.87)
|
|||||||
(C16 .( C16 with )
|
(C16 .( C16 with )
|
||||||
(C16+ .( 64kb )
|
(C16+ .( 64kb )
|
||||||
(C16- .( 32kb )
|
(C16- .( 32kb )
|
||||||
|
(X16 .( Cmdr X16 )
|
||||||
|
|
||||||
cr .( Target is not: )
|
cr .( Target is not: )
|
||||||
|
|
||||||
@ -16,3 +17,5 @@ cr .( Target is not: )
|
|||||||
(C16 \ ) .( C16, )
|
(C16 \ ) .( C16, )
|
||||||
(C16+ \ ) .( C16+64kb, )
|
(C16+ \ ) .( C16+64kb, )
|
||||||
(C16- \ ) .( C16-32kb, )
|
(C16- \ ) .( C16-32kb, )
|
||||||
|
(X16 \ ) .( Cmdr X16, )
|
||||||
|
cr
|
||||||
|
@ -13,8 +13,8 @@ include vf-lbls-cbm.fth
|
|||||||
0ff19 >label BrdCol
|
0ff19 >label BrdCol
|
||||||
0ff15 >label BkgCol
|
0ff15 >label BkgCol
|
||||||
053b >label PenCol
|
053b >label PenCol
|
||||||
09d >label PrgEnd
|
09d >label PrgEnd \ aka eal; seems unused
|
||||||
0b2 >label IOBeg
|
0b2 >label IOBeg \ aka stal; seems unused
|
||||||
0cb >label CurFlg
|
0cb >label CurFlg
|
||||||
0cf >label InsCnt
|
0cf >label InsCnt
|
||||||
0540 >label KeyRep
|
0540 >label KeyRep
|
||||||
@ -55,6 +55,8 @@ end-code
|
|||||||
|
|
||||||
include vf-sys-cbm.fth
|
include vf-sys-cbm.fth
|
||||||
|
|
||||||
|
: i/o-status? $90 c@ ;
|
||||||
|
|
||||||
|
|
||||||
\ *** Block No. 143, Hexblock 8f
|
\ *** Block No. 143, Hexblock 8f
|
||||||
\ ... continued
|
\ ... continued
|
||||||
@ -126,3 +128,7 @@ Code C64fkeys \ Pushkeys a la C64
|
|||||||
[[ dex 0>= ?[[
|
[[ dex 0>= ?[[
|
||||||
InitPKs ,X lda PKeys ,x sta ]]?
|
InitPKs ,X lda PKeys ,x sta ]]?
|
||||||
xyNext jmp end-code
|
xyNext jmp end-code
|
||||||
|
|
||||||
|
(C16- | Create (bye $FFF6 here 2- ! )
|
||||||
|
|
||||||
|
(C16+ | CODE (bye rom $FFF6 jmp end-code )
|
||||||
|
@ -13,8 +13,8 @@ include vf-lbls-cbm.fth
|
|||||||
0d020 >label BrdCol
|
0d020 >label BrdCol
|
||||||
0d021 >label BkgCol
|
0d021 >label BkgCol
|
||||||
0286 >label PenCol
|
0286 >label PenCol
|
||||||
0ae >label PrgEnd
|
0ae >label PrgEnd \ aka eal; seems unused
|
||||||
0c1 >label IOBeg
|
0c1 >label IOBeg \ aka stal; seems unused
|
||||||
0d4 >label CurFlg
|
0d4 >label CurFlg
|
||||||
0d8 >label InsCnt
|
0d8 >label InsCnt
|
||||||
028a >label KeyRep
|
028a >label KeyRep
|
||||||
@ -58,6 +58,8 @@ Code curoff ( --)
|
|||||||
|
|
||||||
include vf-sys-cbm.fth
|
include vf-sys-cbm.fth
|
||||||
|
|
||||||
|
: i/o-status? $90 c@ ;
|
||||||
|
|
||||||
|
|
||||||
\ *** Block No. 143, Hexblock 8f
|
\ *** Block No. 143, Hexblock 8f
|
||||||
\ ... continued
|
\ ... continued
|
||||||
@ -121,3 +123,5 @@ first-init dup bootsystem 1+ !
|
|||||||
warmboot 1+ !
|
warmboot 1+ !
|
||||||
Code c64init first-init jsr
|
Code c64init first-init jsr
|
||||||
xyNext jmp end-code
|
xyNext jmp end-code
|
||||||
|
|
||||||
|
| Create (bye $FCE2 here 2- !
|
||||||
|
@ -95,12 +95,6 @@ Output: display [ here output ! ]
|
|||||||
c64emit c64cr c64type c64del c64page
|
c64emit c64cr c64type c64del c64page
|
||||||
c64at c64at? ;
|
c64at c64at? ;
|
||||||
|
|
||||||
(C64 | Create (bye $FCE2 here 2- ! )
|
|
||||||
|
|
||||||
(C16- | Create (bye $FFF6 here 2- ! )
|
|
||||||
|
|
||||||
(C16+ | CODE (bye rom $FFF6 jmp end-code )
|
|
||||||
|
|
||||||
|
|
||||||
\ *** Block No. 135, Hexblock 87
|
\ *** Block No. 135, Hexblock 87
|
||||||
87 fthpage
|
87 fthpage
|
||||||
@ -217,8 +211,6 @@ Code bus@ ( -- 8b)
|
|||||||
: businput ( adr n --)
|
: businput ( adr n --)
|
||||||
bounds ?DO bus@ I c! LOOP pause ;
|
bounds ?DO bus@ I c! LOOP pause ;
|
||||||
|
|
||||||
: i/o-status? $90 c@ ;
|
|
||||||
|
|
||||||
: derror? ( -- flag )
|
: derror? ( -- flag )
|
||||||
disk $F busin bus@ dup Ascii 0 -
|
disk $F busin bus@ dup Ascii 0 -
|
||||||
IF BEGIN emit bus@ dup #cr = UNTIL
|
IF BEGIN emit bus@ dup #cr = UNTIL
|
||||||
|
120
6502/C64/src/vf-sys-x16.fth
Normal file
120
6502/C64/src/vf-sys-x16.fth
Normal file
@ -0,0 +1,120 @@
|
|||||||
|
|
||||||
|
include vf-lbls-cbm.fth
|
||||||
|
|
||||||
|
7f fthpage
|
||||||
|
|
||||||
|
\ X16 labels
|
||||||
|
|
||||||
|
0c28c >label ConOut
|
||||||
|
028c >label MsgFlg
|
||||||
|
028b >label OutDev
|
||||||
|
028a >label InDev
|
||||||
|
09f2c >label BrdCol
|
||||||
|
0266 >label BkgCol
|
||||||
|
0284 >label PenCol
|
||||||
|
8a >label PrgEnd \ aka eal; seems unused
|
||||||
|
0292 >label IOBeg \ aka stal; seems unused
|
||||||
|
0381 >label CurFlg \ aka qtsw
|
||||||
|
0385 >label InsCnt \ aka insrt
|
||||||
|
|
||||||
|
|
||||||
|
\ C64 labels that X16 doesn't have:
|
||||||
|
|
||||||
|
\ 028a >label KeyRep \ aka rptflg
|
||||||
|
|
||||||
|
|
||||||
|
\ *** Block No. 129, Hexblock 81
|
||||||
|
81 fthpage
|
||||||
|
|
||||||
|
\ X16 c64key? getkey
|
||||||
|
|
||||||
|
Code c64key? ( -- flag)
|
||||||
|
0 # lda 9f61 sta
|
||||||
|
0a00a lda
|
||||||
|
0<> ?[ 0FF # lda ]? pha
|
||||||
|
Push jmp end-code
|
||||||
|
|
||||||
|
Code getkey ( -- 8b)
|
||||||
|
0 # lda 9f61 sta
|
||||||
|
0a00a lda 0<>
|
||||||
|
?[ sei 0a000 ldy
|
||||||
|
[[ 0a000 1+ ,X lda 0a000 ,X sta inx
|
||||||
|
0a00a cpx 0= ?]
|
||||||
|
0a00a dec tya cli 0A0 # cmp
|
||||||
|
0= ?[ bl # lda ]?
|
||||||
|
]?
|
||||||
|
Push0A jmp end-code
|
||||||
|
|
||||||
|
|
||||||
|
\ *** Block No. 130, Hexblock 82
|
||||||
|
82 fthpage
|
||||||
|
|
||||||
|
\ X16 curon curoff
|
||||||
|
|
||||||
|
037B >label blnsw \ C64: $cc
|
||||||
|
\ 037C >label blnct \ C64: $cd
|
||||||
|
\ 037D >label gdbln \ C64: $ce
|
||||||
|
\ 037E >label blnon \ C64: $cf
|
||||||
|
\ 0262 >label pnt \ C64: $d1
|
||||||
|
\ 0380 >label pntr \ C64: $d3
|
||||||
|
\ 0373 >label gdcol
|
||||||
|
|
||||||
|
09f60 >label via1pb
|
||||||
|
|
||||||
|
Code curon ( --)
|
||||||
|
blnsw stx Next jmp end-code
|
||||||
|
|
||||||
|
Code curoff ( --)
|
||||||
|
blnsw sty Next jmp end-code
|
||||||
|
|
||||||
|
|
||||||
|
include vf-sys-cbm.fth
|
||||||
|
|
||||||
|
: i/o-status? $0286 c@ ;
|
||||||
|
|
||||||
|
|
||||||
|
\ *** Block No. 143, Hexblock 8f
|
||||||
|
\ ... continued
|
||||||
|
8f fthpage
|
||||||
|
|
||||||
|
Create ink-pot
|
||||||
|
\ border bkgnd pen 0
|
||||||
|
6 c, 6 c, 3 c, 0 c, \ Forth
|
||||||
|
0E c, 6 c, 3 c, 0 c, \ Edi
|
||||||
|
6 c, 6 c, 3 c, 0 c, \ User
|
||||||
|
|
||||||
|
|
||||||
|
\ *** Block No. 144, Hexblock 90
|
||||||
|
90 fthpage
|
||||||
|
|
||||||
|
\ X16 restore
|
||||||
|
|
||||||
|
Label restore pha txa pha tya pha cld
|
||||||
|
\ TODO: Replace with phx phy once 65c02 asm is available
|
||||||
|
$ffe1 jsr ( stop ) 0<> ?[ $e01f jmp ( prend ) ]?
|
||||||
|
' restart @ jmp end-code
|
||||||
|
|
||||||
|
|
||||||
|
\ *** Block No. 145, Hexblock 91
|
||||||
|
91 fthpage
|
||||||
|
|
||||||
|
\ X16:Init
|
||||||
|
|
||||||
|
: init-system \ TODO(pzembrod): Check if this works and is needed
|
||||||
|
[ restore ] Literal $318 ! ; \ NMI-Vector
|
||||||
|
|
||||||
|
Label first-init
|
||||||
|
sei cld
|
||||||
|
via1pb lda $f8 # and via1pb sta \ map in KERNAL ROM
|
||||||
|
IOINIT jsr CINT jsr RESTOR jsr \ init. and set I/O-Vectors
|
||||||
|
ink-pot lda BrdCol sta \ border
|
||||||
|
ink-pot 1+ lda BkgCol sta \ backgrnd
|
||||||
|
ink-pot 2+ lda PenCol sta \ pen
|
||||||
|
$0e # lda ConOut jsr \ lower/uppercase
|
||||||
|
cli rts end-code
|
||||||
|
first-init dup bootsystem 1+ !
|
||||||
|
warmboot 1+ !
|
||||||
|
Code c64init first-init jsr
|
||||||
|
xyNext jmp end-code
|
||||||
|
|
||||||
|
| CODE (bye $FFFC ) jmp end-code
|
@ -6,6 +6,7 @@
|
|||||||
: (C16+ ; immediate
|
: (C16+ ; immediate
|
||||||
: (C64 [compile] ( ; immediate
|
: (C64 [compile] ( ; immediate
|
||||||
: (C16- [compile] ( ; immediate
|
: (C16- [compile] ( ; immediate
|
||||||
|
: (X16 [compile] ( ; immediate
|
||||||
|
|
||||||
include vf-pr-target.fth
|
include vf-pr-target.fth
|
||||||
|
|
||||||
|
@ -6,6 +6,7 @@
|
|||||||
: (C16- ; immediate
|
: (C16- ; immediate
|
||||||
: (C64 [compile] ( ; immediate
|
: (C64 [compile] ( ; immediate
|
||||||
: (C16+ [compile] ( ; immediate
|
: (C16+ [compile] ( ; immediate
|
||||||
|
: (X16 [compile] ( ; immediate
|
||||||
|
|
||||||
include vf-pr-target.fth
|
include vf-pr-target.fth
|
||||||
|
|
||||||
|
@ -6,5 +6,6 @@
|
|||||||
: (C16 [compile] ( ; immediate
|
: (C16 [compile] ( ; immediate
|
||||||
: (C16+ [compile] ( ; immediate
|
: (C16+ [compile] ( ; immediate
|
||||||
: (C16- [compile] ( ; immediate
|
: (C16- [compile] ( ; immediate
|
||||||
|
: (X16 [compile] ( ; immediate
|
||||||
|
|
||||||
include vf-pr-target.fth
|
include vf-pr-target.fth
|
||||||
|
11
6502/C64/src/vf-trg-x16.fth
Normal file
11
6502/C64/src/vf-trg-x16.fth
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
|
||||||
|
: ) ; immediate
|
||||||
|
: (C ; immediate
|
||||||
|
|
||||||
|
: (X16 ; immediate
|
||||||
|
: (C64 [compile] ( ; immediate
|
||||||
|
: (C16 [compile] ( ; immediate
|
||||||
|
: (C16+ [compile] ( ; immediate
|
||||||
|
: (C16- [compile] ( ; immediate
|
||||||
|
|
||||||
|
include vf-pr-target.fth
|
Loading…
x
Reference in New Issue
Block a user