Audr32 or Audrey, is a little 32-bit CPU I've been working on that I wish to make an operating system for sometime in the future. Audr32 supports a few essential features like:
- Proper address mapping (See memory maps in vm/src/ISA.txt)
- Pointers
- Interrupts
- Exceptions
- I/O (Clock, Keyboard, Screen, Disk Drives, and Audio.)
- Proper cycle operations
- Interrupts
- Basic memory mapping
- Screen
- Keyboard
- Proper address mapping
- Clock (For interval based interrupts and keeping time)
- Disk image loading
- Disk services interrupts
- Audio
- BIOS Firmware
- Move interrupts to BIOS instead of embedding directly(?)
- Basic game (inspired by my calculator programming)
- Operating System and before that: A bootloader
Building requires SDL2 to be installed.
-
Run
make
to build assembler and vm (emulator). -
Resulting executables will be in directories
./vm/bin/vm
./assembler/bin/assemble
Read ISA Documentation/Spec (ISA.md) and Assembler Documentation/Spec (ASM.md) to learn more about my insanity.