retroforth/BUILDING.md
crc 27350b987c add a document on building, with details on the non-default interfaces and alternate implementations
FossilOrigin-Name: c84a4065016c4079351bf118e5004dc45b1408427031a3a368804c09ff051fde
2019-02-06 21:52:04 +00:00

2 KiB

Building RETRO

Requirements

  • c compiler (tested: clang, tcc, gcc)
  • make
  • standard unix shell

Process

Run make.

This will build the toolchain and then the main retro executable.

Executables

In the bin/ directory:

retro
retro-unu
retro-muri
retro-extend
retro-embedimage

Alternate Interfaces

The main interface, rre, is built as the retro executable. But there are other options:

retro-repl

A basic interactive system can be built by using:

make bin/retro-repl

This requires a copy of ngaImage to be in the current directory.

retro-ri

ri is a full screen, curses based interface to RETRO. It provides a display like:

+-------------------------------+
| ... output ...                |
|                               |
|                               |
|                               |
+-------------------------------+
| status                        |
+-------------------------------+
| input                         |
+-------------------------------+

Input is processed as it is being entered with output displayed above. ri is different from the other user interfaces as it provides a means of switching between five separate images.

Additional Dependencies:

  • curses

To build this:

make bin/retro-ri

Barebones

This is a minimal version of the retro-repl. It keeps the C portion as short as possible, making it a useful starting point for new interfaces.

To build:

make bin/retro-barebones

RETRO12.html

There is a JavaScript and HTML based interface. To build this:

make bin/RETRO12.html

It is tested on Chrome and Safari. The interface is based on the UI used on the iOS and macOS versions, presenting a dual-pane model with an editor to the left, an output area to the right, and a listener at the bottom.

Pascal

There is a Pascal version of retro-repl.

Dependencies:

  • freepascal

Building:

cd interfaces/pascal
fpc listener.lpr

This will require a copy of the ngaImage in the current directory.