Readit News logoReadit News
daviding · 2 years ago
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...
bitwize · 2 years ago
No, in Forth it would probably be:

    1 MILLION YEARS AGO NOW
In other words, push 1 to the stack, multiply TOS by 10^6, multiply TOS by 86400*365, negate TOS, and finally add TOS to the current time in seconds.

Forthers did this kind of thing all the time -- invent Ruby style DSLs based on Forth's stack semantics.

daviding · 2 years ago
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.
LispSporks22 · 2 years ago
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).
jdswain · 2 years ago
I had the machine lightning version for the Commodore 64. I remember that the manual was printed red paper so you couldn't photocopy it.
daviding · 2 years ago
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.
dukoid · 2 years ago
I didn't manage to build any Games with it, but I think it helped me to read Postscript files a few years later :)
rwmj · 2 years ago
I remember seeing adverts for this and wondering what it was. Was it used for any commercial games?
daviding · 2 years ago
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
antod · 2 years ago
I remember the ads for it and wishing I could afford it. It seemed so awesome, but as you mention elsewhere I probably would've struggled.
tromp · 2 years ago
One of the ZX Spectrum's contemporaries, the Jupiter Ace [1], had Forth built-in instead of BASIC. Sadly:

> 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

stuaxo · 2 years ago
I wonder how it's Forth implementation compares to ZXForth.
xkriva11 · 2 years ago
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 modern Solo Forth is worth mentioning too: https://github.com/programandala-net/solo-forth?tab=readme-o...

4ndrewl · 2 years ago
Just came here to post the same!
rwmj · 2 years ago
There was a contemporary Forth for ZX81 (http://www.zx81stuff.org.uk/zx81/tape/ZXForth) but not for ZX Spectrum as far as I know. So filling a nice historical gap there!
varjag · 2 years ago
There was also Spectrum Forth apparently, although I never had a chance to use it: https://worldofspectrum.org/archive/software/utilities/spect...
hovav · 2 years ago
Abersoft Forth for the ZX Spectrum inspired one of the classic books about Forth, Don Thomasson's /Advanced Spectrum FORTH/ (1984): https://archive.org/details/AdvancedSpectrumFORTH
Angostura · 2 years ago
I definitely used it - I think I had the Sinclair Research branded version. It was interesting
bitwize · 2 years ago
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.
LispSporks22 · 2 years ago
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.
veltas · 2 years ago
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.