Write low level assembly style programs for a fictional retro computer as a hobby coding exercise.
Learn how CPU emulators, video processing units, and disk controllers work by studying a compact example.
Experiment with compile time macros and memory layout declarations in a custom assembly language.
| mikesxp/sprk32 | alisharafiiii/sauron-eye | code-my-spec/ear_witness | |
|---|---|---|---|
| Stars | 2 | 2 | 2 |
| Language | C | C | C |
| Setup difficulty | hard | hard | hard |
| Complexity | 4/5 | 5/5 | 4/5 |
| Audience | developer | developer | developer |
Figures from each repo's GitHub metadata at analysis time.
Currently only runs on macOS, is early stage, has known bugs, and lacks audio, keyboard, and joystick support.
SPRK32 is a fantasy computer project, meaning it is a fictional retro computer that only exists as software, built for people who enjoy low level programming close to the hardware as a hobby. It is designed in the spirit of home computers from the late 1980s and early 1990s, with a deliberately limited specification: a 16 megahertz processor, a 160 by 120 pixel display, 256 colors, and storage on a simulated 3.5 inch floppy disk. These limits are intentional, encouraging the kind of careful, resourceful programming that older machines required. The project provides a full set of tools to write and run software for this imagined machine. There is an emulator that simulates the processor and its supporting chips, including a video processing unit and a floppy disk controller, a custom assembly style language called BSL along with its compiler, and a disassembler for reading compiled code back out. All of these tools are run through a built in command interpreter, either by typing commands directly or by writing a small configuration file that lists the steps to compile, disassemble, and run a program. BSL, the custom language, stays close to raw assembly but adds features that make code easier to read without adding any extra cost when the program runs. Programs can declare which hardware registers a routine uses, describe memory layouts and data structures by name instead of raw addresses, and use simple compile time macros to avoid repeating boilerplate code. Everything from interrupt handlers to memory allocation is written in this same language. The author is upfront that the project is still early and rough: several planned features like audio, keyboard, and joystick support are not yet implemented, the floppy disk controller is untested, there are known bugs, and documentation is incomplete. The emulator currently only runs on macOS, with cross platform support planned. The project is written in C and released under the MIT license, which allows free use, modification, and commercial use as long as the license notice is kept.
An early stage fantasy retro computer emulator, assembly language, and compiler inspired by late 1980s home computers.
Mainly C. The stack also includes C, BSL (custom assembly), macOS.
Released under the MIT license, allowing free use, modification, and commercial use as long as the license notice is kept.
Setup difficulty is rated hard, with roughly 1h+ to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Verify against the repo before relying on details.