Last update March 2010

Toga Enhanced

Toga Enhanced (TE) is an extension to the Toga OISC. The original Toga OISC called Toga computer has been developed by Marc Scibetta in Feb 2010. Toga Enhanced differs from the original Toga computer in the following ways:
  1. TE has the uniform address space, i.e. does not distinguish data from code. The original Toga has two separate memory spaces: one for the data and one for the code.
  2. TE has input/output facility. Due to the limited functionality of the instruction the following is assumed: inversion by address (-1) outputs bit 1; inversion by address (-2) outputs bit 0; inversion by address (-3) has the test result of the input bit. The output result is as if the bit is set to 1.
  3. Jump to a negative address halts the execution.
  4. TE has an advanced assembly language.
Toga has one instruction with two operands. The first operand is the address of the bit to be inverted. The second operand is the address to jump after the inversion if the inverted bit is set to 1.

C++   teasm.cpp   Macro assembler
C++   terun.cpp   Emulator
TE   lib.te   Macro and function library
TE   hi.te   Program printing "Hi"
TE   hello.te   Program printing "Hello, World!" forward and backwards.
TE   fact.te   Program printing factorials
TE   echo.te   Echo program
ZIP   Collection of small programs

To run an example download assembler, emulator and the library. Compile assembler and emulator and run them, for example, as following command:
 > teasm -c fact.te | terun -c
 > teasm fact.te
 > terun
Examples include the library lib.te. So its name in the example and the filename have to match.

More Toga on