Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/johnsonjh/third
third: THIRD is a non-standard portable FORTH system by Roger Ivie (with Z80 and PDP-8 ports included)
https://github.com/johnsonjh/third
forth pdp-8 pdp8 qdl stupidcode third z-80 z80
Last synced: about 2 months ago
JSON representation
third: THIRD is a non-standard portable FORTH system by Roger Ivie (with Z80 and PDP-8 ports included)
- Host: GitHub
- URL: https://github.com/johnsonjh/third
- Owner: johnsonjh
- Created: 2021-03-29T18:01:21.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2023-12-03T01:26:46.000Z (about 1 year ago)
- Last Synced: 2024-10-11T02:47:24.753Z (2 months ago)
- Topics: forth, pdp-8, pdp8, qdl, stupidcode, third, z-80, z80
- Language: C
- Homepage: https://github.com/johnsonjh/third
- Size: 261 KB
- Stars: 6
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.TXT
- Security: SECURITY.md
Awesome Lists containing this project
README
THIRD FORTH
===========THIRD is a little FORTH-like system that I have used in several situations
to bring up hardware. It *does* *not* adhere to any FORTH standard; its
vocabulary is its own and is unlike any other FORTH system of which I am
aware. I was a FORTH newbie when I designed THIRD, and it shows. FORTH is
still not my primary programming language; all of my serious work is done
in C, FORTRAN, or assembler.The internals of THIRD are extremely odd. They are also extremely
inefficient. The intent of the system is to be extremely portable, *not*
to be your primary programming language. It is intended to be a primary
debugging tool to generate test loops in the initial debug stages of new
hardware project. Once the system is running well enough to support *any*
*other* programming environment, THIRD is ditched and development moves on
to the target language intended for the system.THIRD is itself written in two other languages: QDL and StupidCode. QDL is
a FORTH-like language to handle the high-level definitions. StupidCode is a
simple stack-based assembly language to describe the portions of THIRD that
would be written in assembly language if this were a *normal* system.Porting THIRD to a new processor involves writing a new backend for the
compiler to convert the StupidCode primitives into the appropriate assembly
language and providing the system-specific I/O and initialization code.The high-level bits of THIRD have been executed on processors ranging from
32 to 8 bits with both endianisms. StupidCode is newer; although I have
several StupidCode compilers, the only ones to generate code that has
actually been executed are the Z80 and PDP-8 versions.- Roger Ivie