/CESC16

Documentation and tools for the CESC16 homebrew CPU

Primary LanguageAssemblyMIT LicenseMIT

CESC16 documentation and tools

This repository contains the following:

Architecture:

  • MAIN DOCUMENTATION
  • Extended information about the ISA it supports and the I/O interfaces
  • Examples of some assembly programs
  • A basic OS, including libraries for Math, I/O, and Flow control

Computer:

  • C++ code for generating the computer microcode
  • Code for the Arduino I/O controllers (not yet)
  • Schematics and PCBs
  • Pictures of the finished build
  • A usage guide (not yet)

The used assembler is customasm, which you can find here.

Picture of the finished computer

Other repositories

Emulator

Run and debug CESC16 programs from a Linux system with the CESC16 emulator. More details at the emulator's own repository.

C compiler

lcc is a retargetable ANSI C compiler. This repository contains an lcc backend for the CESC16 architecture.

Writing new software for the CESC16 computer in C is much easier than using assembly. The code that the compiler produces is slightly slower than human-written assembly, but most of the time the speed difference is not very significant.