12 lines
1.0 KiB
Markdown
12 lines
1.0 KiB
Markdown
|
# 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).
|