Skip to content

tarcisiofischer/micro16

Repository files navigation

Linux

Yet another 16bit fantasy computer

The computer has a 16-bit fictional CPU. For a detailed reference on how it works, see The CPU manual. There's also an ISA documentation file. Memory has basically two levels: CPU registers and 4 banks of 64KB of RAM each (Total 256KB). Persistent disk is planned, but not yet implemented. Since some parts of the memory are dedicated, general purpose memory is actually less than that. For details on how to compile it, please see Compiling and running.

There's an assembler software, so that you don't need to write programs directly in machine code. A C-like language and a compiler is planned, but not yet implemented. Some example programs can be found in the examples/ folder.

Examples

Pixel art display

There's a pixel-art display generator script available in python, where you can provide a 320x200 image, and it'll convert it's color palette to Micro16 color pallete and generate the assembly file to display it on the Micro16 (You just need to translate it using the assembler).

Script usage:

$ python3 pa_to_m16data.py <filename.png>

Example:

$ micro16_asm examples/pixel_art_example.m16asm out.micro16
$ micro16 out.micro16

View assembly for this example

pixel-art-example.micro16

⚠ The art on the example is licensed under CC0 1.0, and the source can be found here.

Brainfuck compiler

There's a brainfuck compiler available, capable of translating a program written in the brainfuck language to the micro16 assembly:

$ micro16_bf examples/example.bf out.m16asm
$ micro16_asm out.m16asm out.micro16
$ micro16 out.micro16

View .bf file for this example

example.bf

Led blink

$ micro16_asm examples/led_blink.m16asm out.micro16
$ micro16 out.micro16

View assembly for this example

led-blink.micro16

About

Yet another 16bit fantasy computer emulator!

Resources

License

Stars

Watchers

Forks

Languages