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.

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.