RetroForth/nga

This is an implementation of RetroForth and a small virtual computer (named nga) to run it.

Nga is the oldest of the three virtual machines designed for RetroForth. It's been in continual use for over five years, and derives from Ngaro, which was in use for over a decade before Nga began.

The RetroForth running on Nga is the largest of the three models and (when used with the C implementation of nga) has a variety of useful extensions to the core language including file i/o, unix syscall interface, ffi, floating point, rng, block storage, malloc, signals, multiple virtual processor cores, scripting interface, and clock.

Features:

* 30 instructions

* four instructions per memory cell

* subroutine threaded retroforth imagen

* many vm implementations: assembly, c, c++, c#, javascript, nim, pascal, python, rust, swift

* literate source files

* numerous examples

The source and documentation are distributed under the ISC license.

Download

retro.c (amalgamation, for unix-like systems)

latest.tar.gz (latest source snapshot)

Source Repositories

Currently the full source tree can only be obtained via either Fossil or git:

    # fossil
    fossil clone http://fossils.retroforth.org:8000/nga retro-nga.fossil
    mkdir retro-nga; cd retro-nga
    fossil open ../retro-nga.fossil

    # git
    git clone https://git.sr.ht/~crc_/retroforth

The Other Systems

RetroForth implementations run on three virtual computers: ilo, napia, and nga. The nga system is the largest of the three.

ilo.retroforth.org

napia.retroforth.org

nga.retroforth.org