/byte

6502 based fantasy console

Primary LanguageRust

byte

A work-in-progress fantasy console designed to provide a user-friendly platform for those who want to learn 6502 assembly.

Progress

  • core emulation of 6502, passes Klaus' test suite
  • functional emulator
    • loading binary/text files
    • base emulator implementation (the console with a screen and keypad)
    • interactive memory monitor
    • step debugger
    • code editor
    • in memory virtual file system for the wasm target fork: gh/brkp/rust-vfs
  • custom assembler
  • custom programming language

There is a simple PoC deployed at brkp.github.io/byte, running demo.s.

[WIP]: Everything described here is intended solely as a starting point; nothing is definitive or permanent.

Special Registers

  • 0xfd: Video Page Pointer
    • This register contains a pointer to the page that will contain the framebuffer.
  • 0xfe: RNG Source
    • This register resets after each executed instruction and serves as a source of random numbers.
  • 0xff: Input Register
    • This register holds the key that is currently being pressed down.

Key mapping:

Key Mapping Mask
Right ArrowRight 0x1
Left ArrowLeft 0x2
Down ArrowDown 0x4
Up ArrowUp 0x8
Start S 0x10
Select A 0x20
B F 0x40
A D 0x80