- Clang supporting C++20 or higher
- GNU Make
- readline
- yaml-cpp
- dbus-glib
- SDL2
Run make all
to build the 6502
executable and all included plugins.
Run make rebuild
to perform a clean rebuild.
- ncurses
Intended for use with Jeff Tranter's Enhanced 6502 BASIC.
- To write a character to
stdout
, store it at address0xF001
. - To read a character from
stdin
, read from address0xF004
(non-blocking, returns0
if there is none).
Incomplete implementation of the Commodore PET 2001 hardware, sufficient to boot into BASIC and load software from .tap files.
Use with configs/pet2001.yaml or configs/pet2001.yaml - ROMs not included.
Additionally requires a 2k PETSCII character ROM to be present at roms/char_rom.bin
.
Provides a 640x480, 1bpp framebuffer at address 0x9000-0x9FFF
.
0x9000 - 0x9EFF
maps to the currently visible portion of screen memory (48 scanlines at a time)0x9F00 - 0x9FFF
all map to a single, 8-bit register determining the currently active portion of screen memory. Valid values are0-9
, higher values will result in a segfault because currently no bounds-checking is performed.
Some demo code is provided in roms/fbclear.asm, used by configs/fb.yaml .
- more plugins - full CBM PET or VIC-20 emulation as potential goal
- UI for debugging (ongoing)
- documentation (ongoing)
- rework the plugin system
- decouple plugins defining devices from instances of those devices
- allow for other kinds of plugins, e.g. UI addons