diff --git a/6502/C64/Makefile b/6502/C64/Makefile index 7f71ff8..a795e13 100644 --- a/6502/C64/Makefile +++ b/6502/C64/Makefile @@ -34,7 +34,7 @@ clean: binaries: $(vf_binaries) -test: $(test_resuls) test-v4th-x16-39.result +test: $(test_resuls) test64: std64 blk64 @@ -93,66 +93,79 @@ cbmfiles/v4th-x16: $(test_logs): $(test_files_petscii) emulator/run-in-vice.sh -test-v4thblk-c64.log: emulator/v4thblk-c64.T64 disks/scratch.d64 - rm -f cbmfiles/test.log +test-v4thblk-c64.log: emulator/v4thblk-c64.T64 disks/empty.d64 + rm -f cbmfiles/test.log disks/scratch.d64 + cp disks/empty.d64 disks/scratch.d64 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 $@ test-v4th-c64.log: emulator/v4th-c64.T64 rm -f cbmfiles/test.log emulator/run-in-vice.sh v4th-c64 \ - "include run-std-tests.fth\n1234567890\n" + "include run-std-tests.fth\n1234567890" petscii2ascii cbmfiles/test.log $@ -test-v4thblk-c16+.log: emulator/v4thblk-c16+.T64 disks/scratch.d64 - rm -f cbmfiles/test.log - VICE=xplus4 emulator/run-in-vice.sh v4thblk-c16+ \ - "include run-blk-tests.fth\n1234567890\n" +test-v4thblk-c16+.log: emulator/v4thblk-c16+.T64 disks/empty.d64 + rm -f cbmfiles/test.log disks/scratch.d64 + cp disks/empty.d64 disks/scratch.d64 + VICE=xplus4 DISK9=scratch emulator/run-in-vice.sh v4thblk-c16+ \ + "include run-blk-tests.fth\n1234567890" petscii2ascii cbmfiles/test.log $@ test-v4th-c16+.log: emulator/v4th-c16+.T64 rm -f cbmfiles/test.log 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 $@ test-v4thblk-c16-.log: emulator/v4thblk-c16-.T64 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" petscii2ascii cbmfiles/test.log $@ test-v4th-c16-.log: emulator/v4th-c16-.T64 rm -f cbmfiles/test.log 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 $@ 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\n1234567890\n" + "include run-std-tests.fth\n1234567890" mcopy -i emulator/sdcard.img ::TEST.LOG 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 rm -f cbmfiles/test.log 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 petscii2ascii cbmfiles/test.log $@ test-v4th-x16-39.golden: test-v4th-x16.golden 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 rm -f $@ tests/evaluate-test.sh $(basename $@) -disks/scratch.d64: disks/empty.d64 - cp $< $@ - emulator/sdcard.img: emulator/sdcard.sfdisk rm -f $@ $@.tmp dd if=/dev/zero of=$@.tmp count=64 bs=1M diff --git a/6502/C64/cbmfiles/v4th-c16+ b/6502/C64/cbmfiles/v4th-c16+ index 899c199..1bfb30e 100644 Binary files a/6502/C64/cbmfiles/v4th-c16+ and b/6502/C64/cbmfiles/v4th-c16+ differ diff --git a/6502/C64/cbmfiles/v4th-c16- b/6502/C64/cbmfiles/v4th-c16- index 3f1e332..a2a959f 100644 Binary files a/6502/C64/cbmfiles/v4th-c16- and b/6502/C64/cbmfiles/v4th-c16- differ diff --git a/6502/C64/cbmfiles/v4th-c64 b/6502/C64/cbmfiles/v4th-c64 index 04c7397..53df832 100644 Binary files a/6502/C64/cbmfiles/v4th-c64 and b/6502/C64/cbmfiles/v4th-c64 differ diff --git a/6502/C64/cbmfiles/v4th-x16 b/6502/C64/cbmfiles/v4th-x16 index ee12471..9e36648 100644 Binary files a/6502/C64/cbmfiles/v4th-x16 and b/6502/C64/cbmfiles/v4th-x16 differ diff --git a/6502/C64/cbmfiles/v4thblk-c16+ b/6502/C64/cbmfiles/v4thblk-c16+ index 9502879..a8e27c4 100644 Binary files a/6502/C64/cbmfiles/v4thblk-c16+ and b/6502/C64/cbmfiles/v4thblk-c16+ differ diff --git a/6502/C64/cbmfiles/v4thblk-c16- b/6502/C64/cbmfiles/v4thblk-c16- index e1eab28..1c3fd42 100644 Binary files a/6502/C64/cbmfiles/v4thblk-c16- and b/6502/C64/cbmfiles/v4thblk-c16- differ diff --git a/6502/C64/cbmfiles/v4thblk-c64 b/6502/C64/cbmfiles/v4thblk-c64 index 20a14e7..2a7cb92 100644 Binary files a/6502/C64/cbmfiles/v4thblk-c64 and b/6502/C64/cbmfiles/v4thblk-c64 differ diff --git a/6502/C64/emulator/build-devenv.sh b/6502/C64/emulator/build-devenv.sh index cd034ab..8ef1831 100755 --- a/6502/C64/emulator/build-devenv.sh +++ b/6502/C64/emulator/build-devenv.sh @@ -11,7 +11,7 @@ rm -f "${basedir}/cbmfiles/devenv" # load include and dos from file-words.d64 block 10 in drive 11. # 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\ -savesystem devenv\ndos s0:notdone\n" +savesystem devenv\ndos s0:notdone" DISK9=vforth4_1 DISK10=vforth4_3 DISK11=file-words \ "${emulatordir}/run-in-vice.sh" "c64-volksforth83" "${keybuf}" diff --git a/6502/C64/emulator/build-tcbase.sh b/6502/C64/emulator/build-tcbase.sh index 3e65753..3e4814b 100755 --- a/6502/C64/emulator/build-tcbase.sh +++ b/6502/C64/emulator/build-tcbase.sh @@ -11,7 +11,7 @@ rm -f "${basedir}/cbmfiles/tcbase" keybuf="3 drive 20 load\n3 drive 10 load\nsave\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" \ "v4th-c64-4tc" "${keybuf}" diff --git a/6502/C64/emulator/build-testbase.sh b/6502/C64/emulator/build-testbase.sh index 7e5c59e..002318a 100755 --- a/6502/C64/emulator/build-testbase.sh +++ b/6502/C64/emulator/build-testbase.sh @@ -15,7 +15,7 @@ rm -f "${basedir}/cbmfiles/${target}" # 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 ${target}\ndos s0:notdone\n" +savesystem ${target}\ndos s0:notdone" DISK11=file-words "${emulatordir}/run-in-vice.sh" \ "${source}" "${keybuf}" diff --git a/6502/C64/emulator/build-vf.sh b/6502/C64/emulator/build-vf.sh index f7fed6c..3f29a5f 100755 --- a/6502/C64/emulator/build-vf.sh +++ b/6502/C64/emulator/build-vf.sh @@ -18,7 +18,7 @@ nosave="${2}" 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" test -n "${nosave}" && keybuf="include ${source}\n" DISK10=tc38q "${emulatordir}/run-in-vice.sh" \ diff --git a/6502/C64/emulator/run-in-vice.sh b/6502/C64/emulator/run-in-vice.sh index 683ce36..77febe7 100755 --- a/6502/C64/emulator/run-in-vice.sh +++ b/6502/C64/emulator/run-in-vice.sh @@ -8,20 +8,26 @@ test -n "$DISK11" || DISK11=empty emulatordir="$(realpath --relative-to="$PWD" "$(dirname "${BASH_SOURCE[0]}")")" basedir="$(realpath --relative-to="$PWD" "${emulatordir}/..")" +executable="${1}" +keybuf="${2}" + autostart="" -if [ -n "$1" ] +if [ -n "${executable}" ] then - autostart="-autostart ${emulatordir}/${1}.T64" + autostart="-autostart ${emulatordir}/${executable}.T64" fi -keybuf="" warp="" -if [ -n "$2" ] +if [ -n "${keybuf}" ] then - keybuf="${2}" + # keybuf="${2}" # The following could also just be a cp. ascii2petscii "${emulatordir}/notdone" "${basedir}/cbmfiles/notdone" warp="-warp" + # Magic env variable KEEPEMU: Only if not set, send in the final CR. + if [ -z "${KEEPEMU}" ]; then + keybuf="${keybuf}\n" + fi fi "$VICE" \ diff --git a/6502/C64/emulator/run-in-x16-41.sh b/6502/C64/emulator/run-in-x16-41.sh new file mode 100755 index 0000000..89487d4 --- /dev/null +++ b/6502/C64/emulator/run-in-x16-41.sh @@ -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" "$@" diff --git a/6502/C64/emulator/run-in-x16emu.sh b/6502/C64/emulator/run-in-x16emu.sh index ab94f63..ea7f15d 100755 --- a/6502/C64/emulator/run-in-x16emu.sh +++ b/6502/C64/emulator/run-in-x16emu.sh @@ -1,6 +1,9 @@ #!/bin/bash set -e +executable="${1}" +keybuf="${2}" + emulatordir="$(realpath --relative-to="$PWD" "$(dirname "${BASH_SOURCE[0]}")")" basedir="$(realpath --relative-to="$PWD" "${emulatordir}/..")" cbmfilesdir="${basedir}/cbmfiles" @@ -16,20 +19,27 @@ do done autostart="" -if [ -n "$1" ] +if [ -n "${executable}" ] then - autostart="-prg ${cbmfilesdir}/${1} -run" + autostart="-prg ${cbmfilesdir}/${executable} -run" fi script="" warp="" scale="" debug="" -if [ -n "$2" ] +if [ -n "${keybuf}" ] then test -d tmp || mkdir tmp 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" script="-bas ${x16script}.petscii" autostart="" diff --git a/6502/C64/src/vf-cbm-file.fth b/6502/C64/src/vf-cbm-file.fth index 4d8bfff..3a4ab7b 100644 --- a/6502/C64/src/vf-cbm-file.fth +++ b/6502/C64/src/vf-cbm-file.fth @@ -21,10 +21,14 @@ dup 0= swap #cr = or IF 0 exit THEN 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 ) fload-dev @ fload-2nd @ busin + i/o-status?abort tib /tib bounds - DO bus@ dup eolf? under + DO bus@ i/o-status?abort dup eolf? under IF I c! ELSE drop THEN dup 0< IF drop ELSE I + tib - #tib ! UNLOOP @@ -38,9 +42,6 @@ \ 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 | : fload-open ( addr c -- ) on-fload fload-dev @ diff --git a/6502/C64/src/vf-head-c16.fth b/6502/C64/src/vf-head-c16.fth index 2a0927b..012ecb2 100644 --- a/6502/C64/src/vf-head-c16.fth +++ b/6502/C64/src/vf-head-c16.fth @@ -28,5 +28,5 @@ here dup origin! $100 allot Create logo - (C16+ ," volksFORTH-83 3.9.3-C16+ " ) - (C16- ," volksFORTH-83 3.9.3-C16- " ) + (C16+ ," volksFORTH-83 3.9.4-C16+ " ) + (C16- ," volksFORTH-83 3.9.4-C16- " ) diff --git a/6502/C64/src/vf-head-c64.fth b/6502/C64/src/vf-head-c64.fth index 83b23d9..7e4d7f0 100644 --- a/6502/C64/src/vf-head-c64.fth +++ b/6502/C64/src/vf-head-c64.fth @@ -28,4 +28,4 @@ here dup origin! $100 allot Create logo - ," volksFORTH-83 3.9.3-C64 " + ," volksFORTH-83 3.9.4-C64 " diff --git a/6502/C64/src/vf-head-x16.fth b/6502/C64/src/vf-head-x16.fth index 4d411d6..4671b87 100644 --- a/6502/C64/src/vf-head-x16.fth +++ b/6502/C64/src/vf-head-x16.fth @@ -27,4 +27,4 @@ here dup origin! $100 allot Create logo - ," volksFORTH-83 3.9.3-X16 " + ," volksFORTH-83 3.9.4-X16 " diff --git a/6502/C64/src/vf-lbls-cbm.fth b/6502/C64/src/vf-lbls-cbm.fth index d1a5480..1a2b77d 100644 --- a/6502/C64/src/vf-lbls-cbm.fth +++ b/6502/C64/src/vf-lbls-cbm.fth @@ -18,6 +18,7 @@ $FF84 >label IOINIT $FFB1 >label LISTEN $FFC0 >label OPEN $FFF0 >label PLOT +$FFB7 >label READST $FF8A >label RESTOR $FF93 >label SECOND $FFE1 >label STOP diff --git a/6502/C64/src/vf-sys-c16.fth b/6502/C64/src/vf-sys-c16.fth index 3dd8d44..31c6b44 100644 --- a/6502/C64/src/vf-sys-c16.fth +++ b/6502/C64/src/vf-sys-c16.fth @@ -9,13 +9,10 @@ include vf-lbls-cbm.fth 0ff4c >label ConOut 090 >label IOStatus 09a >label MsgFlg - 099 >label OutDev - 098 >label InDev + 0ae >label CurDev 0ff19 >label BrdCol 0ff15 >label BkgCol 053b >label PenCol - 09d >label PrgEnd \ aka eal; seems unused - 0b2 >label IOBeg \ aka stal; seems unused 0cb >label CurFlg 0cf >label InsCnt 0540 >label KeyRep diff --git a/6502/C64/src/vf-sys-c64.fth b/6502/C64/src/vf-sys-c64.fth index 9eb05de..707573a 100644 --- a/6502/C64/src/vf-sys-c64.fth +++ b/6502/C64/src/vf-sys-c64.fth @@ -9,13 +9,9 @@ include vf-lbls-cbm.fth 0E716 >label ConOut 090 >label IOStatus 09d >label MsgFlg - 09a >label OutDev - 099 >label InDev 0d020 >label BrdCol 0d021 >label BkgCol 0286 >label PenCol - 0ae >label PrgEnd \ aka eal; seems unused - 0c1 >label IOBeg \ aka stal; seems unused 0d4 >label CurFlg 0d8 >label InsCnt 028a >label KeyRep diff --git a/6502/C64/src/vf-sys-cbm.fth b/6502/C64/src/vf-sys-cbm.fth index 260a63e..0b21057 100644 --- a/6502/C64/src/vf-sys-cbm.fth +++ b/6502/C64/src/vf-sys-cbm.fth @@ -100,7 +100,7 @@ Output: display [ here output ! ] 87 fthpage Code i/o-status? ( -- n ) - IOStatus lda Push0A jmp end-code + READST jsr Push0A jmp end-code \ b/blk drive >drive drvinit clv14:2x87 @@ -131,7 +131,12 @@ Variable (drv 0 (drv ! 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 ;c: i/o unlock ; @@ -146,10 +151,14 @@ Label nodevice 0 # ldx 1 # ldy \ ?device clv12jul87 Label (?dev - IOStatus stx (C16 $ae sta ( ) LISTEN jsr - \ because of error in OS + IOStatus stx \ because IOStatus isn't cleared by LISTEN or TALK + \ 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 - IOStatus lda 0<> ?[ pla pla nodevice jmp ]? + READST jsr 0<> ?[ pla pla nodevice jmp ]? rts end-code Code (?device ( dev --) @@ -164,7 +173,7 @@ Label (?dev N 2+ lda (?dev jsr N 2+ lda LISTEN jsr N lda 60 # ora SECOND jsr - N 2+ ldx OutDev stx + N 2+ ldx LsnDev stx xyNext jmp end-code @@ -188,8 +197,7 @@ Label (?dev N 2+ lda TALK jsr N lda 60 # ora (C16 $ad sta ( ) TKSA jsr -\ because of error in old C16 OS - N 2+ ldx InDev stx + N 2+ ldx TlkDev stx xyNext jmp end-code : busin ( dev 2nd -- ) diff --git a/6502/C64/src/vf-sys-x16.fth b/6502/C64/src/vf-sys-x16.fth index 084887c..e6d9244 100644 --- a/6502/C64/src/vf-sys-x16.fth +++ b/6502/C64/src/vf-sys-x16.fth @@ -6,27 +6,18 @@ include vf-lbls-cbm.fth \ X16 labels 0ffd2 >label ConOut - 0286 >label IOStatus +0febd >label KbdbufPeek + 0289 >label IOStatus 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 -\ TODO(issues/33): Remove the R?mBank38 labels. -09f60 >label RomBank38 -09f61 >label RamBank38 1 >label RomBank 0 >label RamBank -0a000 >label KeyD \ keyboard buffer -0a00a >label Ndx \ #keys in keyboard buffer - 037B >label blnsw \ C64: $cc \ 037C >label blnct \ C64: $cd \ 037D >label gdbln \ C64: $ce @@ -46,33 +37,12 @@ include vf-lbls-cbm.fth \ X16 c64key? getkey Code c64key? ( -- flag) - RamBank ldx -\ TODO(issues/33): Remove the lines accessing RamBank38. - RamBank38 ldy - 0 # lda RamBank sta - RamBank38 sta - Ndx lda - 0<> ?[ 0FF # lda ]? pha - RamBank stx - RamBank38 sty + KbdbufPeek jsr + txa pha Push jmp end-code Code getkey ( -- 8b) - RamBank lda N sta -\ 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 ]? - ]? + GETIN jsr Push0A jmp end-code @@ -124,8 +94,6 @@ Label restore pha txa pha tya pha cld Label first-init sei cld 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 ink-pot lda BrdCol sta \ border ink-pot 1+ lda BkgCol sta \ backgrnd diff --git a/6502/C64/src/x16tmpheap.fth b/6502/C64/src/x16tmpheap.fth index ac650f7..07b9a90 100644 --- a/6502/C64/src/x16tmpheap.fth +++ b/6502/C64/src/x16tmpheap.fth @@ -13,11 +13,10 @@ User tmpheap[ User tmpheap> User ]tmpheap -\ $9f61 is the X16 RAM bank select register. This will change to $0001 -\ in the next X16 board version. +\ $0000 is the X16 RAM bank select register. \ 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. - 1 $9f61 c! $a000 tmpheap[ ! $c000 dup ]tmpheap ! tmpheap> ! + 1 $0000 c! $a000 tmpheap[ ! $c000 dup ]tmpheap ! tmpheap> ! : tmp-hallot ( size -- addr ) tmpheap> @ swap - diff --git a/VERSIONS.ORG b/VERSIONS.ORG new file mode 100644 index 0000000..8e59731 --- /dev/null +++ b/VERSIONS.ORG @@ -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