Skip to content
/ smol2 Public

Smol2 toy CPU tools and docs

License

Notifications You must be signed in to change notification settings

asumagic/smol2

Repository files navigation

smol2

Documentation and tooling for my toy "smol2" 32-bit CPU architecture.

Quick start

Compiling the emulator (*nix)

You require a recent CMake and C++20 compiler. Currently, the emulator framebuffer depends on SFML, which needs to be installed.

mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=RELEASE
make -j

Current state

Most of the CPU architecture is defined and documented at this point, though there are still moving parts, and there will probably still be quite a few changes to it.

MMIO peripherals are mostly experimental, the framebuffer is subject to change and more IO will be provided (audio, keyboard, storage).

Currently, a simple C++ emulator and a basic Python assembler are implemented.

Some basic demos run, including a Brainfuck interpreter and a Bad Apple demo (because, of course, I had to).

An LLVM backend is under early development.
A hardware implementation using Amaranth (or possibly another HDL) is planned, but a C++ pipelined core emulator might happen before that.

About

Smol2 toy CPU tools and docs

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published