equi

A self-descriptive stack-based PC platform
git clone git://git.luxferre.top/equi.git
Log | Files | Refs | README | LICENSE

commit 5b7ca1d2a03909ecc5d95ed80e39ced9695db7e6
parent 25526d3abc8c5309bf71561adbb9f6bf8f19119b
Author: Luxferre <lux@ferre>
Date:   Fri, 12 Aug 2022 16:14:05 +0300

minor readme update

Diffstat:
MREADME.md | 10+++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/README.md b/README.md @@ -191,12 +191,20 @@ java -jar platform-build-tools/apple2/ac.jar -dos equi.dsk PERS.DAT bin < platfo The Makefile also provides a usual `apple2` target and the disk image will run on a "normal" Apple IIe, however the environment is not guaranteed to work correctly due to the way CC65 compiler converts string literals for this target. -## FAQ (under construction) +## FAQ ### Why does the world need another Forth-like system? Because it aims for a different set of goals than typical Forth systems, mainly to explore the realms of blurring the borders between source and machine code, and to create a VM that can be easily programmed with printable text on the lowest level with no assembly required. Equi is to a typical Forth what VTL-2 was to BASIC, except in this case it is much more capable and extensible at its core. +### What is the main niche for Equi? With a hard 16-bit address bus, is it a Uxn's competitor? + +No, not at all. Although Equi was partially inspired by Uxn, it aims for a totally different goal. Uxn was primarily designed for an esoteric computer, Varvara, with graphical, non-blocking input and sound capabilities in mind, and for compact **binary** machine code size, requiring preprocessing and assembly to obtain it. Equi was primarily designed for a more old-school serial terminal experience, and for machine code being readable and writable by humans at some expense of compactness. Still, FizzBuzz is 180 bytes in Equi when minified, and this size can be reduced even further by switching to single-character words and removing zeroes in hex literals where possible. And the resulting `.equi` file would still be readable by outputting its contents to a terminal, compared to 99-byte FizzBuzz in Uxn that would only have to be read in a hex viewer or via special disassembly tools. + +### I want to use Equi programs in a relatively modern POSIX environment as a part of a scripted process. Is this possible? + +Totally! The Makefile for the reference implementation includes sensible default parameters for all targets. Just call `cat program.equi | /path/to/equi s | [other program]` in your scripts, where `s` parameter is used to suppress all banners and prompts and terminal initialization code from the standard output stream. Just make sure to place `PERS.DAT` file in the appropriate place if you need the persistence capabilities in your Equi-based scripts. + ### Too few core instructions! There still are lots of unused uppercase Latin letters, why not utilise them? Yes, Equi was designed to be useable from a standard keyboard but this doesn't mean every possible letter should be covered by an instruction. Implementation complexity should be kept low. Besides, new core features not present in every target system are much more convenient to implement via port I/O mechanism.