Darren Kulp edited this page Dec 28, 2014 · 9 revisions



tenyr is a 32-bit computer architecture and computing environment that focuses on simplicity of design and implementation. tenyr comprises :

Someday it will also include :

  • a Forth environment (work in progress)
  • a C compiler based on LCC
  • a novel cooperative real-time operating system

Explore a simple online demo of the tenyr toolset.

This page serves as a general overview of the design of tenyr. It is not an exhaustive reference.


General notes

tenyr has the following properties, among others :

  • single-core (no SMP, no NUMA, no threads, no multicore)
  • pure 32-bit
    • word-addressed (no endianness)
    • no concept of a data size larger or smaller than 32 bits (no bytes)
    • fixed-width, 32-bit instructions
  • no hardware stack support
    • the O register is used to maintain a stack, by ABI convention
  • no hardware floating-point
    • software floating-point support is possible but not planned
  • no integer divide (not convenient to synthesis)
  • no interrupts, exceptions, or traps
  • all devices and I/O are memory-mapped (no special I/O instructions)

Assembly language

The tenyr assembly language is algebraic, rather than mnemonic like most : it doesn't use keywords like mov or xor to signal operations to the assembler. Examples in the source tree may clarify. A detailed explanation of the assembly language syntax is found here.