Description
Solo Forth is a Forth system for the ZX Spectrum 128 and compatible computers, with disk drives and +3DOS, G+DOS, or TR-DOS.
Solo Forth cannot run on the original ZX Spectrum 48, but could be used to develop programs for it.
Solo Forth can be used as a stand-alone Forth system (either in an emulator or on the real computer), or as part of a cross-development environment in a GNU/Linux operating system (in theory, other type of operating systems could be used as well).
Main features
-
Fast DTC (Direct Threaded Code) implementation.
-
A kernel as small as possible.
-
Name space in banked memory, separated from code and data space.
-
Easy access to banked memory.
-
Big library of useful source code.
-
Modular DOS support.
-
Fully documented source code.
-
Detailed documentation.
-
Conform to the Forth standard (not fully tested yet).
Motivation, repository history and current status
The motivation behind Solo Forth is double:
-
I wanted to program the ZX Spectrum with a modern Forth system: In 2015, my detailed disassembly of ZX Spectrum’s Abersoft Forth, a popular tape-based implementation of fig-Forth ported to several 8-bit home computers in the 1980’s (and the Forth system I started learning Forth with in 1984), helped me understand the inner working of the fig-Forth model, including its by-design limitations, compared to modern Forths, and discover some bugs of the ZX Spectrum port. At the same time I wrote the Afera library in order to make Abersoft Forth more stable, powerful and comfortable for cross development. The objective was reached but, after a certain point, further improvements weren’t feasible without making radical changes in the system. The need for a new Forth system arised: a Forth designed from the start to use disk drives and banked memory, and useful for cross-development.
-
Nobody had written such a Forth system before: In 2015 there was no disk-based Forth for the ZX Spectrum platform, and the only Forth written for ZX Spectrum 128 (the first model with banked memory) was Lennart Benschop’s Forth-83 (1988). But despite being more powerful than fig-Forth, it is still tape-based and keeps the block sources in a RAM disk. Besides, the system is built by metacompilation, what makes it difficult to adapt to disk drives.
History of the repository:
-
2015-05-30: The development of Solo Forth started out of the disassembled code of Abersoft Forth. Some ideas and code were reused also from the Afera library and from a previous abandoned project called DZX-Forth (a port of CP/M DX-Forth to ZX Spectrum +3e).
-
2016-03-13: In order to preserve the evolution of the code, a Git repository was created out of the development backups and uploaded to GitHub.
-
2020-12-05: The Git repository was converted to Fossil, keeping GitHub as a mirror.
-
2023-04-06: The Fossil repository was converted to Mercurial, enabling a better interaction with GitHub.
-
2023-09-12: The Mercurial repository was published on SourceHut, keeping GitHub as a mirror.
Current status:
1. The TR-DOS command line uses keyboard tokens, like the ZX Spectrum 48, but commands typed in 'L' cursor mode will be recognized as well, as on the ZX Spectrum 128 editor. In order to get the 'L' cursor mode you can type a quote (Symbol Shift + 'P') or press 'E' to get keyword REM. When the DOS command is typed in full, the quote or the REM must be removed from the start of the line before pressing 'Enter'.
2. In theory, choosing option “TR-DOS” from the system service menu should work. But it seems it depends on a specific version of TR-DOS. This alternative method is longer, but it works with the TR-DOS 5.03 ROM.