mirror of
https://github.com/forth-ev/VolksForth.git
synced 2024-05-31 15:41:34 +00:00
commit
bda78c41f9
|
@ -34,7 +34,7 @@ clean:
|
||||||
|
|
||||||
binaries: $(vf_binaries)
|
binaries: $(vf_binaries)
|
||||||
|
|
||||||
test: $(test_resuls) test-v4th-x16-39.result
|
test: $(test_resuls)
|
||||||
|
|
||||||
test64: std64 blk64
|
test64: std64 blk64
|
||||||
|
|
||||||
|
@ -93,66 +93,79 @@ cbmfiles/v4th-x16:
|
||||||
|
|
||||||
$(test_logs): $(test_files_petscii) emulator/run-in-vice.sh
|
$(test_logs): $(test_files_petscii) emulator/run-in-vice.sh
|
||||||
|
|
||||||
test-v4thblk-c64.log: emulator/v4thblk-c64.T64 disks/scratch.d64
|
test-v4thblk-c64.log: emulator/v4thblk-c64.T64 disks/empty.d64
|
||||||
rm -f cbmfiles/test.log
|
rm -f cbmfiles/test.log disks/scratch.d64
|
||||||
|
cp disks/empty.d64 disks/scratch.d64
|
||||||
DISK9=scratch emulator/run-in-vice.sh v4thblk-c64 \
|
DISK9=scratch emulator/run-in-vice.sh v4thblk-c64 \
|
||||||
"include run-blk-tests.fth\n1234567890\n"
|
"include run-blk-tests.fth\n1234567890"
|
||||||
petscii2ascii cbmfiles/test.log $@
|
petscii2ascii cbmfiles/test.log $@
|
||||||
|
|
||||||
test-v4th-c64.log: emulator/v4th-c64.T64
|
test-v4th-c64.log: emulator/v4th-c64.T64
|
||||||
rm -f cbmfiles/test.log
|
rm -f cbmfiles/test.log
|
||||||
emulator/run-in-vice.sh v4th-c64 \
|
emulator/run-in-vice.sh v4th-c64 \
|
||||||
"include run-std-tests.fth\n1234567890\n"
|
"include run-std-tests.fth\n1234567890"
|
||||||
petscii2ascii cbmfiles/test.log $@
|
petscii2ascii cbmfiles/test.log $@
|
||||||
|
|
||||||
test-v4thblk-c16+.log: emulator/v4thblk-c16+.T64 disks/scratch.d64
|
test-v4thblk-c16+.log: emulator/v4thblk-c16+.T64 disks/empty.d64
|
||||||
rm -f cbmfiles/test.log
|
rm -f cbmfiles/test.log disks/scratch.d64
|
||||||
VICE=xplus4 emulator/run-in-vice.sh v4thblk-c16+ \
|
cp disks/empty.d64 disks/scratch.d64
|
||||||
"include run-blk-tests.fth\n1234567890\n"
|
VICE=xplus4 DISK9=scratch emulator/run-in-vice.sh v4thblk-c16+ \
|
||||||
|
"include run-blk-tests.fth\n1234567890"
|
||||||
petscii2ascii cbmfiles/test.log $@
|
petscii2ascii cbmfiles/test.log $@
|
||||||
|
|
||||||
test-v4th-c16+.log: emulator/v4th-c16+.T64
|
test-v4th-c16+.log: emulator/v4th-c16+.T64
|
||||||
rm -f cbmfiles/test.log
|
rm -f cbmfiles/test.log
|
||||||
VICE=xplus4 emulator/run-in-vice.sh v4th-c16+ \
|
VICE=xplus4 emulator/run-in-vice.sh v4th-c16+ \
|
||||||
"include run-std-tests.fth\n1234567890\n"
|
"include run-std-tests.fth\n1234567890"
|
||||||
petscii2ascii cbmfiles/test.log $@
|
petscii2ascii cbmfiles/test.log $@
|
||||||
|
|
||||||
test-v4thblk-c16-.log: emulator/v4thblk-c16-.T64
|
test-v4thblk-c16-.log: emulator/v4thblk-c16-.T64
|
||||||
rm -f cbmfiles/test.log
|
rm -f cbmfiles/test.log
|
||||||
VICE=xplus4 emulator/run-in-vice.sh v4thblk-c16- \
|
VICE=xplus4 emulator/run-in-vice.sh v4thblk-c16- \
|
||||||
"include run-min-tests.fth\n1234567890\n"
|
"include run-min-tests.fth\n1234567890"
|
||||||
petscii2ascii cbmfiles/test.log $@
|
petscii2ascii cbmfiles/test.log $@
|
||||||
|
|
||||||
test-v4th-c16-.log: emulator/v4th-c16-.T64
|
test-v4th-c16-.log: emulator/v4th-c16-.T64
|
||||||
rm -f cbmfiles/test.log
|
rm -f cbmfiles/test.log
|
||||||
VICE=xplus4 emulator/run-in-vice.sh v4th-c16- \
|
VICE=xplus4 emulator/run-in-vice.sh v4th-c16- \
|
||||||
"include run-std-tests.fth\n1234567890\n"
|
"include run-std-tests.fth\n1234567890"
|
||||||
petscii2ascii cbmfiles/test.log $@
|
petscii2ascii cbmfiles/test.log $@
|
||||||
|
|
||||||
test-v4th-x16.log: cbmfiles/v4th-x16 emulator/sdcard.img
|
test-v4th-x16.log: cbmfiles/v4th-x16 emulator/sdcard.img
|
||||||
rm -f cbmfiles/test.log
|
rm -f cbmfiles/test.log
|
||||||
emulator/run-in-x16emu.sh v4th-x16 \
|
emulator/run-in-x16emu.sh v4th-x16 \
|
||||||
"include run-std-tests.fth\n1234567890\n"
|
"include run-std-tests.fth\n1234567890"
|
||||||
mcopy -i emulator/sdcard.img ::TEST.LOG cbmfiles/test.log
|
mcopy -i emulator/sdcard.img ::TEST.LOG cbmfiles/test.log
|
||||||
petscii2ascii cbmfiles/test.log $@
|
petscii2ascii cbmfiles/test.log $@
|
||||||
|
|
||||||
|
test-v4th-x16-39.log: $(test_files_petscii) emulator/run-in-vice.sh
|
||||||
|
|
||||||
test-v4th-x16-39.log: cbmfiles/v4th-x16 emulator/sdcard.img
|
test-v4th-x16-39.log: cbmfiles/v4th-x16 emulator/sdcard.img
|
||||||
rm -f cbmfiles/test.log
|
rm -f cbmfiles/test.log
|
||||||
emulator/run-in-x16-39.sh v4th-x16 \
|
emulator/run-in-x16-39.sh v4th-x16 \
|
||||||
"include run-std-tests.fth\n1234567890\n"
|
"include run-std-tests.fth\n1234567890"
|
||||||
mcopy -i emulator/sdcard.img ::TEST.LOG cbmfiles/test.log
|
mcopy -i emulator/sdcard.img ::TEST.LOG cbmfiles/test.log
|
||||||
petscii2ascii cbmfiles/test.log $@
|
petscii2ascii cbmfiles/test.log $@
|
||||||
|
|
||||||
test-v4th-x16-39.golden: test-v4th-x16.golden
|
test-v4th-x16-39.golden: test-v4th-x16.golden
|
||||||
cp $< $@
|
cp $< $@
|
||||||
|
|
||||||
|
test-v4th-x16-41.log: $(test_files_petscii) emulator/run-in-vice.sh
|
||||||
|
|
||||||
|
test-v4th-x16-41.log: cbmfiles/v4th-x16 emulator/sdcard.img
|
||||||
|
rm -f cbmfiles/test.log
|
||||||
|
emulator/run-in-x16-41.sh v4th-x16 \
|
||||||
|
"include run-std-tests.fth\n1234567890"
|
||||||
|
mcopy -i emulator/sdcard.img ::TEST.LOG cbmfiles/test.log
|
||||||
|
petscii2ascii cbmfiles/test.log $@
|
||||||
|
|
||||||
|
test-v4th-x16-41.golden: test-v4th-x16.golden
|
||||||
|
cp $< $@
|
||||||
|
|
||||||
test-%.result: test-%.log test-%.golden tests/evaluate-test.sh
|
test-%.result: test-%.log test-%.golden tests/evaluate-test.sh
|
||||||
rm -f $@
|
rm -f $@
|
||||||
tests/evaluate-test.sh $(basename $@)
|
tests/evaluate-test.sh $(basename $@)
|
||||||
|
|
||||||
disks/scratch.d64: disks/empty.d64
|
|
||||||
cp $< $@
|
|
||||||
|
|
||||||
emulator/sdcard.img: emulator/sdcard.sfdisk
|
emulator/sdcard.img: emulator/sdcard.sfdisk
|
||||||
rm -f $@ $@.tmp
|
rm -f $@ $@.tmp
|
||||||
dd if=/dev/zero of=$@.tmp count=64 bs=1M
|
dd if=/dev/zero of=$@.tmp count=64 bs=1M
|
||||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -11,7 +11,7 @@ rm -f "${basedir}/cbmfiles/devenv"
|
||||||
# load include and dos from file-words.d64 block 10 in drive 11.
|
# load include and dos from file-words.d64 block 10 in drive 11.
|
||||||
# savesystem and then scratch file notdone to exit emulator.
|
# savesystem and then scratch file notdone to exit emulator.
|
||||||
keybuf="2 drive 19 load\n47 load\n1 drive 26 load\n3 drive 10 load\n\
|
keybuf="2 drive 19 load\n47 load\n1 drive 26 load\n3 drive 10 load\n\
|
||||||
savesystem devenv\ndos s0:notdone\n"
|
savesystem devenv\ndos s0:notdone"
|
||||||
|
|
||||||
DISK9=vforth4_1 DISK10=vforth4_3 DISK11=file-words \
|
DISK9=vforth4_1 DISK10=vforth4_3 DISK11=file-words \
|
||||||
"${emulatordir}/run-in-vice.sh" "c64-volksforth83" "${keybuf}"
|
"${emulatordir}/run-in-vice.sh" "c64-volksforth83" "${keybuf}"
|
||||||
|
|
|
@ -11,7 +11,7 @@ rm -f "${basedir}/cbmfiles/tcbase"
|
||||||
|
|
||||||
keybuf="3 drive 20 load\n3 drive 10 load\nsave\n\
|
keybuf="3 drive 20 load\n3 drive 10 load\nsave\n\
|
||||||
2 drive 4 load\ninclude tc-base.fth\n\
|
2 drive 4 load\ninclude tc-base.fth\n\
|
||||||
savesystem tcbase\ndos s0:notdone\n"
|
savesystem tcbase\ndos s0:notdone"
|
||||||
|
|
||||||
DISK10=tc38q DISK11=file-words "${emulatordir}/run-in-vice.sh" \
|
DISK10=tc38q DISK11=file-words "${emulatordir}/run-in-vice.sh" \
|
||||||
"v4th-c64-4tc" "${keybuf}"
|
"v4th-c64-4tc" "${keybuf}"
|
||||||
|
|
|
@ -15,7 +15,7 @@ rm -f "${basedir}/cbmfiles/${target}"
|
||||||
# load include and dos from file-words.d64 block 10.
|
# load include and dos from file-words.d64 block 10.
|
||||||
# savesystem and then scratch file notdone to exit emulator.
|
# savesystem and then scratch file notdone to exit emulator.
|
||||||
keybuf="3 drive 20 load\n3 drive 10 load\n\
|
keybuf="3 drive 20 load\n3 drive 10 load\n\
|
||||||
savesystem ${target}\ndos s0:notdone\n"
|
savesystem ${target}\ndos s0:notdone"
|
||||||
|
|
||||||
DISK11=file-words "${emulatordir}/run-in-vice.sh" \
|
DISK11=file-words "${emulatordir}/run-in-vice.sh" \
|
||||||
"${source}" "${keybuf}"
|
"${source}" "${keybuf}"
|
||||||
|
|
|
@ -18,7 +18,7 @@ nosave="${2}"
|
||||||
test -z "${nosave}" && rm -f "${basedir}/cbmfiles/${target}"
|
test -z "${nosave}" && rm -f "${basedir}/cbmfiles/${target}"
|
||||||
rm -f "${basedir}/cbmfiles/${logfile}"
|
rm -f "${basedir}/cbmfiles/${logfile}"
|
||||||
|
|
||||||
keybuf="include ${source}\nsave-target ${target}\ndos s0:notdone\n"
|
keybuf="include ${source}\nsave-target ${target}\ndos s0:notdone"
|
||||||
test -n "${nosave}" && 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" \
|
||||||
|
|
|
@ -8,20 +8,26 @@ test -n "$DISK11" || DISK11=empty
|
||||||
emulatordir="$(realpath --relative-to="$PWD" "$(dirname "${BASH_SOURCE[0]}")")"
|
emulatordir="$(realpath --relative-to="$PWD" "$(dirname "${BASH_SOURCE[0]}")")"
|
||||||
basedir="$(realpath --relative-to="$PWD" "${emulatordir}/..")"
|
basedir="$(realpath --relative-to="$PWD" "${emulatordir}/..")"
|
||||||
|
|
||||||
|
executable="${1}"
|
||||||
|
keybuf="${2}"
|
||||||
|
|
||||||
autostart=""
|
autostart=""
|
||||||
if [ -n "$1" ]
|
if [ -n "${executable}" ]
|
||||||
then
|
then
|
||||||
autostart="-autostart ${emulatordir}/${1}.T64"
|
autostart="-autostart ${emulatordir}/${executable}.T64"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
keybuf=""
|
|
||||||
warp=""
|
warp=""
|
||||||
if [ -n "$2" ]
|
if [ -n "${keybuf}" ]
|
||||||
then
|
then
|
||||||
keybuf="${2}"
|
# 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"
|
||||||
|
# Magic env variable KEEPEMU: Only if not set, send in the final CR.
|
||||||
|
if [ -z "${KEEPEMU}" ]; then
|
||||||
|
keybuf="${keybuf}\n"
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
"$VICE" \
|
"$VICE" \
|
||||||
|
|
9
6502/C64/emulator/run-in-x16-41.sh
Executable file
9
6502/C64/emulator/run-in-x16-41.sh
Executable file
|
@ -0,0 +1,9 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
emulatordir="$(realpath --relative-to="$PWD" "$(dirname "${BASH_SOURCE[0]}")")"
|
||||||
|
|
||||||
|
export PATH="${HOME}/x16-r41:${PATH}"
|
||||||
|
echo "PATH = ${PATH}"
|
||||||
|
"${emulatordir}/run-in-x16emu.sh" "$@"
|
|
@ -1,6 +1,9 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
|
executable="${1}"
|
||||||
|
keybuf="${2}"
|
||||||
|
|
||||||
emulatordir="$(realpath --relative-to="$PWD" "$(dirname "${BASH_SOURCE[0]}")")"
|
emulatordir="$(realpath --relative-to="$PWD" "$(dirname "${BASH_SOURCE[0]}")")"
|
||||||
basedir="$(realpath --relative-to="$PWD" "${emulatordir}/..")"
|
basedir="$(realpath --relative-to="$PWD" "${emulatordir}/..")"
|
||||||
cbmfilesdir="${basedir}/cbmfiles"
|
cbmfilesdir="${basedir}/cbmfiles"
|
||||||
|
@ -16,20 +19,27 @@ do
|
||||||
done
|
done
|
||||||
|
|
||||||
autostart=""
|
autostart=""
|
||||||
if [ -n "$1" ]
|
if [ -n "${executable}" ]
|
||||||
then
|
then
|
||||||
autostart="-prg ${cbmfilesdir}/${1} -run"
|
autostart="-prg ${cbmfilesdir}/${executable} -run"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
script=""
|
script=""
|
||||||
warp=""
|
warp=""
|
||||||
scale=""
|
scale=""
|
||||||
debug=""
|
debug=""
|
||||||
if [ -n "$2" ]
|
if [ -n "${keybuf}" ]
|
||||||
then
|
then
|
||||||
test -d tmp || mkdir tmp
|
test -d tmp || mkdir tmp
|
||||||
rm -f "${x16script}".*
|
rm -f "${x16script}".*
|
||||||
echo "load\"${1}\"\nrun\n${2}" | sed 's/\\n/\n/g' > "${x16script}".ascii
|
# Magic env variable KEEPEMU: If set, remove the final CR.
|
||||||
|
if [ -n "${KEEPEMU}" ]; then
|
||||||
|
tr_remove='\n'
|
||||||
|
else
|
||||||
|
tr_remove=''
|
||||||
|
fi
|
||||||
|
echo "load\"${executable}\"\nrun\n${keybuf}" | tr -d "${tr_remove}" \
|
||||||
|
| sed 's/\\n/\n/g' > "${x16script}".ascii
|
||||||
ascii2petscii "${x16script}.ascii" "${x16script}.petscii"
|
ascii2petscii "${x16script}.ascii" "${x16script}.petscii"
|
||||||
script="-bas ${x16script}.petscii"
|
script="-bas ${x16script}.petscii"
|
||||||
autostart=""
|
autostart=""
|
||||||
|
|
|
@ -21,10 +21,14 @@
|
||||||
dup 0= swap #cr = or IF 0 exit THEN
|
dup 0= swap #cr = or IF 0 exit THEN
|
||||||
i/o-status? IF 1 exit THEN -1 ;
|
i/o-status? IF 1 exit THEN -1 ;
|
||||||
|
|
||||||
|
| : i/o-status?abort i/o-status? 3 and IF c64cr
|
||||||
|
fload-dev @ dos-error abort THEN ;
|
||||||
|
|
||||||
| : freadline ( -- eof )
|
| : freadline ( -- eof )
|
||||||
fload-dev @ fload-2nd @ busin
|
fload-dev @ fload-2nd @ busin
|
||||||
|
i/o-status?abort
|
||||||
tib /tib bounds
|
tib /tib bounds
|
||||||
DO bus@ dup eolf? under
|
DO bus@ i/o-status?abort dup eolf? under
|
||||||
IF I c! ELSE drop THEN
|
IF I c! ELSE drop THEN
|
||||||
dup 0<
|
dup 0<
|
||||||
IF drop ELSE I + tib - #tib ! UNLOOP
|
IF drop ELSE I + tib - #tib ! UNLOOP
|
||||||
|
@ -38,9 +42,6 @@
|
||||||
|
|
||||||
\ fload-open fload-close 30jun20pz
|
\ fload-open fload-close 30jun20pz
|
||||||
|
|
||||||
| : i/o-status?abort i/o-status? IF cr
|
|
||||||
fload-dev @ dos-error abort THEN ;
|
|
||||||
|
|
||||||
defer on-fload ' noop is on-fload
|
defer on-fload ' noop is on-fload
|
||||||
| : fload-open ( addr c -- )
|
| : fload-open ( addr c -- )
|
||||||
on-fload fload-dev @
|
on-fload fload-dev @
|
||||||
|
|
|
@ -28,5 +28,5 @@ here dup origin!
|
||||||
$100 allot
|
$100 allot
|
||||||
|
|
||||||
Create logo
|
Create logo
|
||||||
(C16+ ," volksFORTH-83 3.9.3-C16+ " )
|
(C16+ ," volksFORTH-83 3.9.4-C16+ " )
|
||||||
(C16- ," volksFORTH-83 3.9.3-C16- " )
|
(C16- ," volksFORTH-83 3.9.4-C16- " )
|
||||||
|
|
|
@ -28,4 +28,4 @@ here dup origin!
|
||||||
$100 allot
|
$100 allot
|
||||||
|
|
||||||
Create logo
|
Create logo
|
||||||
," volksFORTH-83 3.9.3-C64 "
|
," volksFORTH-83 3.9.4-C64 "
|
||||||
|
|
|
@ -27,4 +27,4 @@ here dup origin!
|
||||||
$100 allot
|
$100 allot
|
||||||
|
|
||||||
Create logo
|
Create logo
|
||||||
," volksFORTH-83 3.9.3-X16 "
|
," volksFORTH-83 3.9.4-X16 "
|
||||||
|
|
|
@ -18,6 +18,7 @@ $FF84 >label IOINIT
|
||||||
$FFB1 >label LISTEN
|
$FFB1 >label LISTEN
|
||||||
$FFC0 >label OPEN
|
$FFC0 >label OPEN
|
||||||
$FFF0 >label PLOT
|
$FFF0 >label PLOT
|
||||||
|
$FFB7 >label READST
|
||||||
$FF8A >label RESTOR
|
$FF8A >label RESTOR
|
||||||
$FF93 >label SECOND
|
$FF93 >label SECOND
|
||||||
$FFE1 >label STOP
|
$FFE1 >label STOP
|
||||||
|
|
|
@ -9,13 +9,10 @@ include vf-lbls-cbm.fth
|
||||||
0ff4c >label ConOut
|
0ff4c >label ConOut
|
||||||
090 >label IOStatus
|
090 >label IOStatus
|
||||||
09a >label MsgFlg
|
09a >label MsgFlg
|
||||||
099 >label OutDev
|
0ae >label CurDev
|
||||||
098 >label InDev
|
|
||||||
0ff19 >label BrdCol
|
0ff19 >label BrdCol
|
||||||
0ff15 >label BkgCol
|
0ff15 >label BkgCol
|
||||||
053b >label PenCol
|
053b >label PenCol
|
||||||
09d >label PrgEnd \ aka eal; seems unused
|
|
||||||
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
|
||||||
|
|
|
@ -9,13 +9,9 @@ include vf-lbls-cbm.fth
|
||||||
0E716 >label ConOut
|
0E716 >label ConOut
|
||||||
090 >label IOStatus
|
090 >label IOStatus
|
||||||
09d >label MsgFlg
|
09d >label MsgFlg
|
||||||
09a >label OutDev
|
|
||||||
099 >label InDev
|
|
||||||
0d020 >label BrdCol
|
0d020 >label BrdCol
|
||||||
0d021 >label BkgCol
|
0d021 >label BkgCol
|
||||||
0286 >label PenCol
|
0286 >label PenCol
|
||||||
0ae >label PrgEnd \ aka eal; seems unused
|
|
||||||
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
|
||||||
|
|
|
@ -100,7 +100,7 @@ Output: display [ here output ! ]
|
||||||
87 fthpage
|
87 fthpage
|
||||||
|
|
||||||
Code i/o-status? ( -- n )
|
Code i/o-status? ( -- n )
|
||||||
IOStatus lda Push0A jmp end-code
|
READST jsr Push0A jmp end-code
|
||||||
|
|
||||||
\ b/blk drive >drive drvinit clv14:2x87
|
\ b/blk drive >drive drvinit clv14:2x87
|
||||||
|
|
||||||
|
@ -131,7 +131,12 @@ Variable (drv 0 (drv !
|
||||||
|
|
||||||
Variable i/o 0 i/o ! \ Semaphore
|
Variable i/o 0 i/o ! \ Semaphore
|
||||||
|
|
||||||
Code busoff ( --) CLRCHN jsr
|
Label LsnDev 0 c,
|
||||||
|
Label TlkDev 0 c,
|
||||||
|
|
||||||
|
Code busoff ( --)
|
||||||
|
LsnDev lda 0<> ?[ LsnDev stx UNLSN jsr ]?
|
||||||
|
TlkDev lda 0<> ?[ TlkDev stx UNTLK jsr ]?
|
||||||
Label unlocki/o 1 # ldy 0 # ldx
|
Label unlocki/o 1 # ldy 0 # ldx
|
||||||
;c: i/o unlock ;
|
;c: i/o unlock ;
|
||||||
|
|
||||||
|
@ -146,10 +151,14 @@ Label nodevice 0 # ldx 1 # ldy
|
||||||
\ ?device clv12jul87
|
\ ?device clv12jul87
|
||||||
|
|
||||||
Label (?dev
|
Label (?dev
|
||||||
IOStatus stx (C16 $ae sta ( ) LISTEN jsr
|
IOStatus stx \ because IOStatus isn't cleared by LISTEN or TALK
|
||||||
\ because of error in OS
|
\ It's unclear in which situation or use case the following
|
||||||
|
\ workaround for a C16 OS error is needed. The v4th tests pass
|
||||||
|
\ even with the following line removed.
|
||||||
|
(C16 CurDev sta ( ) \ current device number - because of error in OS
|
||||||
|
LISTEN jsr
|
||||||
60 # lda SECOND jsr UNLSN jsr
|
60 # lda SECOND jsr UNLSN jsr
|
||||||
IOStatus lda 0<> ?[ pla pla nodevice jmp ]?
|
READST jsr 0<> ?[ pla pla nodevice jmp ]?
|
||||||
rts end-code
|
rts end-code
|
||||||
|
|
||||||
Code (?device ( dev --)
|
Code (?device ( dev --)
|
||||||
|
@ -164,7 +173,7 @@ Label (?dev
|
||||||
N 2+ lda (?dev jsr
|
N 2+ lda (?dev jsr
|
||||||
N 2+ lda LISTEN jsr
|
N 2+ lda LISTEN jsr
|
||||||
N lda 60 # ora SECOND jsr
|
N lda 60 # ora SECOND jsr
|
||||||
N 2+ ldx OutDev stx
|
N 2+ ldx LsnDev stx
|
||||||
xyNext jmp end-code
|
xyNext jmp end-code
|
||||||
|
|
||||||
|
|
||||||
|
@ -188,8 +197,7 @@ Label (?dev
|
||||||
N 2+ lda TALK jsr
|
N 2+ lda TALK jsr
|
||||||
N lda 60 # ora (C16 $ad sta ( )
|
N lda 60 # ora (C16 $ad sta ( )
|
||||||
TKSA jsr
|
TKSA jsr
|
||||||
\ because of error in old C16 OS
|
N 2+ ldx TlkDev stx
|
||||||
N 2+ ldx InDev stx
|
|
||||||
xyNext jmp end-code
|
xyNext jmp end-code
|
||||||
|
|
||||||
: busin ( dev 2nd -- )
|
: busin ( dev 2nd -- )
|
||||||
|
|
|
@ -6,27 +6,18 @@ include vf-lbls-cbm.fth
|
||||||
\ X16 labels
|
\ X16 labels
|
||||||
|
|
||||||
0ffd2 >label ConOut
|
0ffd2 >label ConOut
|
||||||
0286 >label IOStatus
|
0febd >label KbdbufPeek
|
||||||
|
0289 >label IOStatus
|
||||||
028c >label MsgFlg
|
028c >label MsgFlg
|
||||||
028b >label OutDev
|
|
||||||
028a >label InDev
|
|
||||||
09f2c >label BrdCol
|
09f2c >label BrdCol
|
||||||
0266 >label BkgCol
|
0266 >label BkgCol
|
||||||
0284 >label PenCol
|
0284 >label PenCol
|
||||||
8a >label PrgEnd \ aka eal; seems unused
|
|
||||||
0292 >label IOBeg \ aka stal; seems unused
|
|
||||||
0381 >label CurFlg \ aka qtsw
|
0381 >label CurFlg \ aka qtsw
|
||||||
0385 >label InsCnt \ aka insrt
|
0385 >label InsCnt \ aka insrt
|
||||||
|
|
||||||
\ TODO(issues/33): Remove the R?mBank38 labels.
|
|
||||||
09f60 >label RomBank38
|
|
||||||
09f61 >label RamBank38
|
|
||||||
1 >label RomBank
|
1 >label RomBank
|
||||||
0 >label RamBank
|
0 >label RamBank
|
||||||
|
|
||||||
0a000 >label KeyD \ keyboard buffer
|
|
||||||
0a00a >label Ndx \ #keys in keyboard buffer
|
|
||||||
|
|
||||||
037B >label blnsw \ C64: $cc
|
037B >label blnsw \ C64: $cc
|
||||||
\ 037C >label blnct \ C64: $cd
|
\ 037C >label blnct \ C64: $cd
|
||||||
\ 037D >label gdbln \ C64: $ce
|
\ 037D >label gdbln \ C64: $ce
|
||||||
|
@ -46,33 +37,12 @@ include vf-lbls-cbm.fth
|
||||||
\ X16 c64key? getkey
|
\ X16 c64key? getkey
|
||||||
|
|
||||||
Code c64key? ( -- flag)
|
Code c64key? ( -- flag)
|
||||||
RamBank ldx
|
KbdbufPeek jsr
|
||||||
\ TODO(issues/33): Remove the lines accessing RamBank38.
|
txa pha
|
||||||
RamBank38 ldy
|
|
||||||
0 # lda RamBank sta
|
|
||||||
RamBank38 sta
|
|
||||||
Ndx lda
|
|
||||||
0<> ?[ 0FF # lda ]? pha
|
|
||||||
RamBank stx
|
|
||||||
RamBank38 sty
|
|
||||||
Push jmp end-code
|
Push jmp end-code
|
||||||
|
|
||||||
Code getkey ( -- 8b)
|
Code getkey ( -- 8b)
|
||||||
RamBank lda N sta
|
GETIN jsr
|
||||||
\ TODO(issues/33): Remove the lines accessing RamBank38.
|
|
||||||
RamBank38 lda N 1+ sta
|
|
||||||
0 # lda RamBank sta
|
|
||||||
RamBank38 sta
|
|
||||||
Ndx lda 0<>
|
|
||||||
?[ sei KeyD ldy
|
|
||||||
[[ KeyD 1+ ,X lda KeyD ,X sta inx
|
|
||||||
Ndx cpx 0= ?]
|
|
||||||
Ndx dec
|
|
||||||
N lda RamBank sta
|
|
||||||
N 1+ lda RamBank38 sta
|
|
||||||
tya cli 0A0 # cmp
|
|
||||||
0= ?[ bl # lda ]?
|
|
||||||
]?
|
|
||||||
Push0A jmp end-code
|
Push0A jmp end-code
|
||||||
|
|
||||||
|
|
||||||
|
@ -124,8 +94,6 @@ Label restore pha txa pha tya pha cld
|
||||||
Label first-init
|
Label first-init
|
||||||
sei cld
|
sei cld
|
||||||
RomBank lda $f8 # and RomBank sta \ map in KERNAL ROM
|
RomBank lda $f8 # and RomBank sta \ map in KERNAL ROM
|
||||||
\ TODO(issues/33): Remove this line accessing RomBank38.
|
|
||||||
RomBank38 lda $f8 # and RomBank38 sta \ map in KERNAL ROM for R38
|
|
||||||
IOINIT jsr CINT jsr RESTOR jsr \ init. and set I/O-Vectors
|
IOINIT jsr CINT jsr RESTOR jsr \ init. and set I/O-Vectors
|
||||||
ink-pot lda BrdCol sta \ border
|
ink-pot lda BrdCol sta \ border
|
||||||
ink-pot 1+ lda BkgCol sta \ backgrnd
|
ink-pot 1+ lda BkgCol sta \ backgrnd
|
||||||
|
|
|
@ -13,11 +13,10 @@ User tmpheap[
|
||||||
User tmpheap>
|
User tmpheap>
|
||||||
User ]tmpheap
|
User ]tmpheap
|
||||||
|
|
||||||
\ $9f61 is the X16 RAM bank select register. This will change to $0001
|
\ $0000 is the X16 RAM bank select register.
|
||||||
\ in the next X16 board version.
|
|
||||||
\ 1 is the RAM bank selected for the tmpheap. RAM bank 0 is used by the
|
\ 1 is the RAM bank selected for the tmpheap. RAM bank 0 is used by the
|
||||||
\ X16 KERNAL. The banked RAM lives from $a000 to $bfff.
|
\ X16 KERNAL. The banked RAM lives from $a000 to $bfff.
|
||||||
1 $9f61 c! $a000 tmpheap[ ! $c000 dup ]tmpheap ! tmpheap> !
|
1 $0000 c! $a000 tmpheap[ ! $c000 dup ]tmpheap ! tmpheap> !
|
||||||
|
|
||||||
: tmp-hallot ( size -- addr )
|
: tmp-hallot ( size -- addr )
|
||||||
tmpheap> @ swap -
|
tmpheap> @ swap -
|
||||||
|
|
37
VERSIONS.ORG
Normal file
37
VERSIONS.ORG
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
#+Title: VolksForth versions
|
||||||
|
|
||||||
|
* C64/C16/Plus4/CommanderX16
|
||||||
|
|
||||||
|
*3.9.4*
|
||||||
|
|
||||||
|
* X16 version adapted to Kernal/Emulator version R41
|
||||||
|
* Some reduction in use of and dependence on Kernal variables in RAM
|
||||||
|
|
||||||
|
*3.9.3*
|
||||||
|
|
||||||
|
* X16 version adapted to work with both versions R38 and R39 of
|
||||||
|
Kernal and Emulator, and thus with prototype boards #1 and #2
|
||||||
|
* Some code cleanup around moving word headers to the heap
|
||||||
|
and related tmpheap cleanup
|
||||||
|
* load, thru, +load, +thru were removed from the v4th versions
|
||||||
|
like the x16 version that don't have block/buffer disk access.
|
||||||
|
|
||||||
|
*3.9.2*
|
||||||
|
|
||||||
|
* X16: Zero page area used by v4th moved from $30-$5b to $50-$7b,
|
||||||
|
inclusive, so that it now doesn't collide with the ROM version of X16Edit
|
||||||
|
* Initial prepartion for and implementation of tmpheap
|
||||||
|
* Some minor cleanups and bug fixes.
|
||||||
|
|
||||||
|
*3.91*
|
||||||
|
|
||||||
|
* X16: Initial version
|
||||||
|
|
||||||
|
*3.90*
|
||||||
|
|
||||||
|
* Built-in INCLUDE stream file interface
|
||||||
|
* Separate versions with and without BLOCK words
|
||||||
|
* C16-32k version resurrected and fixed
|
||||||
|
* An adapted subset of the ANS test suite is made to pass
|
||||||
|
* Makefile setup for build and test
|
||||||
|
* Build sources moved from BLOCK disk images to stream sources
|
Loading…
Reference in New Issue
Block a user