mirror of https://github.com/bsnes-emu/bsnes.git
58 lines
1.2 KiB
C++
58 lines
1.2 KiB
C++
struct CPU : Processor::R6502, Thread {
|
|
static auto Enter() -> void;
|
|
auto main() -> void;
|
|
auto add_clocks(uint clocks) -> void;
|
|
|
|
auto power() -> void;
|
|
auto reset() -> void;
|
|
|
|
auto debugger_read(uint16 addr) -> uint8;
|
|
|
|
auto ram_read(uint16 addr) -> uint8;
|
|
auto ram_write(uint16 addr, uint8 data) -> void;
|
|
|
|
auto read(uint16 addr) -> uint8;
|
|
auto write(uint16 addr, uint8 data) -> void;
|
|
|
|
auto serialize(serializer&) -> void;
|
|
|
|
//timing.cpp
|
|
auto op_read(uint16 addr) -> uint8;
|
|
auto op_write(uint16 addr, uint8 data) -> void;
|
|
auto last_cycle() -> void;
|
|
auto nmi(uint16& vector) -> void;
|
|
|
|
auto oam_dma() -> void;
|
|
|
|
auto set_nmi_line(bool) -> void;
|
|
auto set_irq_line(bool) -> void;
|
|
auto set_irq_apu_line(bool) -> void;
|
|
|
|
auto set_rdy_line(bool) -> void;
|
|
auto set_rdy_addr(bool valid, uint16 value = 0) -> void;
|
|
|
|
//protected:
|
|
uint8 ram[0x0800];
|
|
|
|
struct Status {
|
|
bool interrupt_pending;
|
|
bool nmi_pending;
|
|
bool nmi_line;
|
|
bool irq_line;
|
|
bool irq_apu_line;
|
|
|
|
bool rdy_line;
|
|
bool rdy_addr_valid;
|
|
uint16 rdy_addr_value;
|
|
|
|
bool oam_dma_pending;
|
|
uint8 oam_dma_page;
|
|
|
|
bool controller_latch;
|
|
uint controller_port0;
|
|
uint controller_port1;
|
|
} status;
|
|
};
|
|
|
|
extern CPU cpu;
|