Terminal-BASIC time-sharing mainframe

A project log for Terminal-BASIC

Language interpreter for uC-based systems

Andrey SkvortsovAndrey Skvortsov 12/15/2017 at 13:230 Comments

If the hardware platform supports multiple UARTs, like Atmega 1284/128/2560, terminal-basic can function as simple time-sharing system.

It doesn't use any OS, even FreeRTOS. The main interpreting context object is designed as finite state machine instead, which state-chart looks like this:

The FSM has very short step method and main loop executes many interpreters in order, thus implementing primitive non-preemptive Round-Robin scheduling algorithm.

This time-sharing mode can be enabled by the BASIC_MULTITERMINAL option in the config_arduino.hpp or config_linux.hpp, depending on the version, being built.

Terminal-BASIC 1.1 (link) has working implementation of this mode.