SvOlli wrote:
BruceRMcF wrote:
The thing about RSC Forth is that it is based on fig Forth, but gains efficiency by using a hardware extension to the 6502 processor that speeds up the indirect threaded execution VM that fig Forth is based on.
The 65C02 command set supersedes the one of the R65F-series, so the speed up should be there also.
I was mis-remembering there, confusing the R65F11 family with a different Forth chip ... the key thing about the R65F11 and family was the inclusion of a Forth kernel and a micro-monitor in a ROM built into the chip. Without a dictionary on the in-chip ROM, the micro-monitor worked by treating a number preceded by "N" as a number and one preceded by "W" as the Code Field Address of a word to be executed.
Quote:
BruceRMcF wrote:
Using a more recent forth like Volksforth (just as an example) with either a direct threaded or subroutine threaded execution VM (called "inner interpreter" in Forth circles) would probably get a more responsive system. A Forth-83 or ANS Forth (aka Forth-94) would also be more familiar to more Forth users outside of the retro 6602 universe
Taking a short look at Volksforth, I noticed that it's 13k-16k in size, depending on the platform. What intrigued me about the RSC Forth of the R65F-series was, that it's separated in a kernel (that could be run from ROM) and a development library (that could be loaded into RAM). So, there was a clean split, that I could replicate into my architecture with ease, since the RSC Forth kernel is way below the 8k available. Taking a quick look at the source code, I don't think it's easy to implement at Volksforth split there.
The key is allowing for a separated dictionary for word definitions pulled out into the Kernel system.
I don't recall the dictionary model that Volksforth uses, but even with a mingled Dictionary / Definition system, if the Kernel is fixed, this can be done by treating any Name Field Address below a certain value as a separated header word with the dictionary entry followed by the code field address in the Kernel and handling that as a special case in the dictionary look-up words.
Then you pull out as many core language code definitions as you have space in the Kernel space in the ROM.
Quote:
However, since Forth-Gesellschaft e.V. is located in Germany, as I am, it might be a good idea to contact them directly. Thanks for that hint.
... or find someone who is an expert in the system to help you out doing something along those lines.