george-emu/README.md

12 lines
1.0 KiB
Markdown
Raw Normal View History

2024-02-04 22:55:03 -05:00
# george-emu
a ramshackle emulator for george 😌
plenty of inspiration & guidance taken from [emulator_6502](https://docs.rs/emulator_6502/latest/emulator_6502/) (don't use `george-emu` in a serious project! `emulator_6502` is the crate you're looking for)
## structure
see [the george wiki](https://git.augustkline.com/august/george/wiki) for how george works, why she exists, who she is, etc.
the george emulator contains 3 main structs: `Cpu`, `Mem`, and `MemMappedDevice`. `Cpu` represents a 65c02 processor, with functions for interacting with memory and executing instructions. `Mem` is a collection of `MemMappedDevice`'s, which each hold the data for some address space. `Mem` can add `MemMappedDevice`'s, and read from and write to them. A `MemMappedDevice` can have multiple banks at the same address space, and can translate 'global' addresses to 'local' ones (e.g. 0xFFFF in the system's [memory map](https://git.augustkline.com/august/george-hardware/src/branch/main/memory.md) corresponds to 0x1FFF in the ROM).