Compare commits

...

19 Commits

Author SHA1 Message Date
Philip Zembrod e2ada21b43
Merge pull request #49 from pzembrod/x16-r46
Typo in RELEASE_NOTES
2023-12-03 14:23:11 +01:00
Philip Zembrod 218ef73a53 Typo in RELEASE_NOTES 2023-12-03 14:22:01 +01:00
Philip Zembrod b22df63828
Merge pull request #48 from pzembrod/x16-r46
X16 r46
2023-12-03 14:16:11 +01:00
Philip Zembrod c9c5c36d48 A few final release rule tweaks 2023-12-03 14:13:54 +01:00
Philip Zembrod a368d2e1cf
Merge pull request #2 from forth-ev/master
master update after X16 R46 merge
2023-12-03 13:56:56 +01:00
Philip Zembrod a0881024c9
Merge pull request #47 from pzembrod/x16-r46
X16 r46
2023-12-03 13:55:25 +01:00
Philip Zembrod 2a435af187
Merge pull request #1 from forth-ev/master
Sync from main repo master branch
2023-12-03 13:51:36 +01:00
Philip Zembrod 1a336935eb RELEASE_NOTES.md formatting tweak 2023-12-03 13:48:39 +01:00
Philip Zembrod 480192093a Update copyright years in 6502/C64/COPYING to 1985-2023 2023-12-03 13:39:48 +01:00
Philip Zembrod 2378e4cc17 Add release rule to Makefile 2023-12-03 13:38:43 +01:00
Philip Zembrod 98dec1d224 Add 6502/C64/RELEASE_NOTES.md 2023-12-03 13:35:58 +01:00
Philip Zembrod 220f5c9253 Remove obsolete x16 r39 and r41 targets 2023-12-02 23:33:57 +01:00
Philip Zembrod 150508feb8 Keep timestamp of sources when converting them to CBM formats so that
make doesn't always rebuild everything.
2023-12-02 23:23:23 +01:00
Philip Zembrod aec38a5b29 Update v4th-x16e binary 2023-12-02 21:17:54 +01:00
Philip Zembrod 9eb5c5958a Adapt xed to newest version of x16edit 2023-12-02 21:15:20 +01:00
Philip Zembrod 508fbfd939 Add dos commands to v4th-x16e 2023-12-02 20:56:48 +01:00
Philip Zembrod 5d275dea35 Add v4th-x16e binary 2023-12-02 09:58:55 +01:00
Philip Zembrod d51c2cfc05 Add v4th-x16e target with x16edit invocation 2023-12-02 09:55:17 +01:00
Philip Zembrod b863a5b11f add names of IOStatus and BkgPenCol in x16rom as comments 2023-12-01 23:42:20 +01:00
9 changed files with 143 additions and 46 deletions

View File

@ -1,4 +1,4 @@
Copyright (c) 1985-2006, Forthgesellschaft e.V. (www.forth-ev.de) All rights
Copyright (c) 1985-2023, Forthgesellschaft e.V. (www.forth-ev.de) All rights
reserved.
Redistribution and use in source and binary forms, with or without

View File

@ -9,14 +9,20 @@ vf_fth_files = $(wildcard src/vf-*.fth src/v4th*.fth)
vf_fth_files_petscii = $(patsubst src/%, cbmfiles/%, $(vf_fth_files))
vf_flavours = \
v4thblk-c64 v4thblk-c16+ v4thblk-c16- \
v4th-c64 v4th-c16+ v4th-c16- v4th-x16
v4th-c64 v4th-c16+ v4th-c16- v4th-x16 v4th-x16e
vf_binaries = $(patsubst %, cbmfiles/%, $(vf_flavours))
all_src_files = $(wildcard src/*.fth)
all_src_files_petscii = $(patsubst src/%, cbmfiles/%, $(all_src_files))
test_files = $(wildcard tests/*.f*)
test_files_petscii = $(patsubst tests/%, cbmfiles/%, $(test_files))
test_logs = $(patsubst %, test-%.log, $(vf_flavours))
test_resuls = $(patsubst %, test-%.result, $(vf_flavours))
release_zipfile = volksforth-6502-c64-release.zip
# 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.
@ -24,7 +30,8 @@ update: $(vf_blk_fth_files) $(vf_fth_files_petscii)
clean:
rm -f cbmfiles/*.fr cbmfiles/*.fth cbmfiles/*.log tmp/*
rm -f cbmfiles/*.fr cbmfiles/*.fth cbmfiles/*.log
rm -rf tmp/* release
rm -f *.log *.result *.golden
rm -f cbmfiles/c??-testbase
rm -f disks/scratch.d64 emulator/sdcard.img
@ -56,16 +63,39 @@ run-testbase16: emulator/testbase16.T64
VICE=xplus4 emulator/run-in-vice.sh testbase16
release: tmp/$(release_zipfile) COPYING RELEASE_NOTES.md
rm -rf release
mkdir release
cp -p $^ release/
tmp/$(release_zipfile): $(vf_binaries) \
$(all_src_files) $(all_src_files_petscii) \
$(test_files) $(test_files_petscii) COPYING RELEASE_NOTES.md
rm -rf tmp
mkdir tmp
mkdir tmp/binaries
mkdir tmp/src
mkdir tmp/src_petscii
mkdir tmp/tests
mkdir tmp/tests_petscii
cp -p COPYING RELEASE_NOTES.md tmp/
cp -p $(vf_binaries) tmp/binaries/
cp -p $(all_src_files) tmp/src/
cp -p $(all_src_files_petscii) tmp/src_petscii/
cp -p $(test_files) tmp/tests/
cp -p $(test_files_petscii) tmp/tests_petscii/
(cd tmp && zip -r $(release_zipfile) COPYING RELEASE_NOTES.md \
binaries src src_petscii tests tests_petscii)
# Targetcompiler targets
cbmfiles/tcbase: emulator/v4th-c64-4tc.T64 emulator/build-tcbase.sh \
disks/tc38q.d64 disks/file-words.d64 cbmfiles/tc-base.fth
emulator/build-tcbase.sh
$(vf_binaries): emulator/tcbase.T64 emulator/build-vf.sh \
disks/tc38q.d64 $(vf_fth_files_petscii)
$(vf_binaries): cbmfiles/logtofile.fth
$(vf_binaries): $(vf_fth_files_petscii) emulator/build-vf.sh \
emulator/tcbase.T64 disks/tc38q.d64 cbmfiles/logtofile.fth
cbmfiles/v4thblk-c64:
emulator/build-vf.sh v4thblk-c64
@ -88,6 +118,9 @@ cbmfiles/v4th-c16-:
cbmfiles/v4th-x16:
emulator/build-vf.sh v4th-x16
cbmfiles/v4th-x16e:
emulator/build-vf.sh v4th-x16e
# Core test targets
@ -138,30 +171,13 @@ test-v4th-x16.log: cbmfiles/v4th-x16 emulator/sdcard.img
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
test-v4th-x16e.log: cbmfiles/v4th-x16e emulator/sdcard.img
rm -f cbmfiles/test.log
emulator/run-in-x16-39.sh v4th-x16 \
emulator/run-in-x16emu.sh v4th-x16e \
"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 $@)
@ -201,6 +217,10 @@ test-v4th-x16.golden: $(patsubst %, tests/golden/%.golden, \
prelim core coreext double report-noblk)
cat $^ > $@
test-v4th-x16e.golden: $(patsubst %, tests/golden/%.golden, \
prelim core coreext double report-noblk)
cat $^ > $@
# Rules for building Forth binaries on top of the plain vanilla
# c64-volksforth83.
@ -214,18 +234,22 @@ cbmfiles/devenv: emulator/run-in-vice.sh emulator/build-devenv.sh \
emulator/%.T64: cbmfiles/%
bin2t64 $< $@
touch -m -r $< $@
# Generic rule for populating cbmfiles/ with PETSCII text files
cbmfiles/%.fth: src/%.fth
ascii2petscii $< $@
touch -m -r $< $@
cbmfiles/%.fth: tests/%.fth
ascii2petscii $< $@
touch -m -r $< $@
cbmfiles/%.fr: tests/%.fr
ascii2petscii $< $@
touch -m -r $< $@
# Generic rule for converting .d64 blk sources into .fth files.

45
6502/C64/RELEASE_NOTES.md Normal file
View File

@ -0,0 +1,45 @@
# VolksForth 6502 C64 Releases
Release notes of VolksForth for 6502 on CBM-like machines (C64/C16/X16)
## Release content
The latest release zip file `volksforth-6502-c64-release.zip` contains
* `binaries/` - the compiled VolksForth binaries, namely:
* `v4th-c64` - minimal C64 kernel
* `v4thblk-c64` - C64 kernel with added block words
* `v4th-c16-` - minmal C16 kernel using 32k RAM
* `v4thblk-c16-` - C16 kernel using 32k RAM with added block words
* `v4th-c16+` - minmal C16 kernel using 63k RAM
(with bank switching)
* `v4thblk-c16+` - C16 kernel using 63k RAM with added block words
* `v4th-x16` - minmal Commander X16 kernel
* `v4th-x16e` - Commander X16 kernel with added X16Edit and
DOS commands
* `src/` - sources
* `v4th*.fth` - the binaries' main files
* `vf-*.fth` - sources from which VolksForth
kernels are compiled
* further Forth sources
* `src_petscii/` - the files from `src/` converted to PETSCII
* `tests/` - the test files used to validate VolksForth builds
* `tests_petscii/` - the files from `tests/` converted to PETSCII
## Versions
The following version descriptions are only valid for VolksForth 6502
C64 Releases. As of now (Dec 2023), the different VolksForth platforms
(6502, 68k, 8080, 8086) don't have shared code or shared versioning.
### 6502-C64 3.9.5
This release adapts the X16 VolksForth to the R46 ROM.
It also adds an X16 binary with added words to invoke the
ROM-based X16Edit (XED), to list directories and files (DIR and CAT)
and to issue DOS commands and read the error channel (DOS).
For C64 and C16 this release should be a no-op.

BIN
6502/C64/cbmfiles/v4th-x16e Normal file

Binary file not shown.

View File

@ -1,9 +0,0 @@
#!/bin/bash
set -e
emulatordir="$(realpath --relative-to="$PWD" "$(dirname "${BASH_SOURCE[0]}")")"
export PATH="${HOME}/x16-r39:${PATH}"
echo "PATH = ${PATH}"
"${emulatordir}/run-in-x16emu.sh" "$@"

View File

@ -1,9 +0,0 @@
#!/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" "$@"

View File

@ -0,0 +1,31 @@
\ with build log:
' noop alias \log
\ without build log:
\ ' \ alias \log
\log include logtofile.fth
include vf-tc-prep.fth
\log logopen" v4th-x16e.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-cbm-dos.fth
include vf-x16edit.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

View File

@ -7,10 +7,10 @@ include vf-lbls-cbm.fth
0ffd2 >label ConOut
0febd >label KbdbufPeek
0287 >label IOStatus
0287 >label IOStatus \ aka status
028d >label MsgFlg
09f2c >label BrdCol
0376 >label BkgPenCol
0376 >label BkgPenCol \ aka color
0381 >label CurFlg \ aka qtsw
0385 >label InsCnt \ aka insrt

View File

@ -0,0 +1,15 @@
$0001 | constant RomBank
create xed-banks 1 c, $ff c, \ first and last RAM bank xed uses.
| Code (xed? ( -- f )
$4c # lda $c000 cmp 0= ?[ $c003 cmp 0= ?[ $c006 cmp 0= ?[
Push0A jmp ]? ]? ]? txa Push0A jmp end-code
| Code (xed ( -- )
xed-banks ldx xed-banks 1+ ldy $c003 jsr
xyNext jmp end-code
: xed ( -- )
bl word count $4 ! $2 ! RomBank c@ $d RomBank c!
(xed? IF (xed RomBank c! ELSE RomBank c! ." no x16edit" THEN ;