A fun little virtual machine project with the custom language 'Rua', a little console access and some graphical ability
riomhaireRua uses a simple 'worker' and 'worktop' model for getting stuff done. The program you write is given to the worker, which goes through each command one after another, following each instruction wherever it may lead. Once the worker runs out of instructions, they will stop and the machine will switch off.
The worker uses the worktop to do jobs. The worktop is firstly a place to put bytes down. It is secondly somewhere to find connections to other tools. These connections are called ports. Tools can have different amounts of ports depending on their designs.
These ports are used to show which instruction on the program the worker is going to do next. The number of ports used depends on how long the instruction program is allowed to be.
Console ports are used to communicate with the user console. With this tool, you can print messages to the user, or ask for input.
Display connections are used to work with the visual display module. This module can contain a simple array of pixel bytes, or a more complicated list of shapes, with their size, coloring, position, etc.
These can be used to store a large number of bytes for use later on, all accessible through ports similar to the ones the Visual Display uses. These devices can also write and read a file, we call that 'removable storage'.