My first 'job' as a kid was working at Oasis Software on White Lightning, which was a Forth based game making kit for the ZX Spectrum (amongst other platforms). About a million years ago now. Or now ago million, if you know Forth. https://worldofspectrum.org/archive/software/utilities/white...
White Lighting was really a sprite editor packaged with an interrupt driven DSL for games, but back before DSL was a term. Forth was a good choice for a compiled target on the platforms back then, given the constraints. Ironically I do ruby now.
I play around with White Lightening occasionally because of the ease of making games with it on C64 and the comprehensive documentation (PDFs of it have been preserved).
Yep, the tape to tape copying days were really happening around 1984 so the manual in either red or green paper was the only way to keep it selling. The sprite library package and Forth's closeness to machine code were its strengths. Not easy to work with though.
Some smaller ones, but nothing big. There was a user submission contest that got some traction, but the jump up from BASIC to using this was not easy. This was the time of 'rock star game devs' but interrupts, memory paging and sprite libraries probably crushed a few teenage dreams. An old video of what it could do https://www.youtube.com/watch?v=IgmZ2Ht-QiQ
I can only compare it with Abersoft Forth on ZX Spectrum. While I admire the Forth implementation in Jupiter Ace a lot, it lacks a lot of basic words. Users can often find them implemented in the manual, but they are not immediately available. 8kB ROM is really on the edge of usability. Jupiter Ace Forth uses an unusual approach to code editing based on decompilation instead of screens, which is closer to how Basic worked. Abersoft Forth was much faster and had better graphics support.
The Jupiter Ace, a comparatively weaker (ZX81-equivalent) computer, came with Forth built into its ROMs. The use of Forth was such an efficiency improvement over BASIC that, as I recall, simple video games could be written in its 1 KiB of program RAM.
I think it is direct threaded Forth but there is a conditional token table in there (tokens.asm). Thought it might be some clever hybrid of threading techniques, but I don’t see how tokens is used.
It's a build option, the variable 'tokenised' controls whether it builds tokenised or direct threaded. The macro DX outputs either a token or word depending on whether a token is available and whether 'tokenised' is set.
Forthers did this kind of thing all the time -- invent Ruby style DSLs based on Forth's stack semantics.
> This difference, along with limited available software and poor character based graphic display, limited sales and the machine was not a success.
[1] https://en.wikipedia.org/wiki/Jupiter_Ace
The modern Solo Forth is worth mentioning too: https://github.com/programandala-net/solo-forth?tab=readme-o...