mirror of https://github.com/bsnes-emu/bsnes.git
57 lines
1.1 KiB
C++
57 lines
1.1 KiB
C++
struct CPU : Processor::R6502, Thread {
|
|
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;
|
|
unsigned controller_port0;
|
|
unsigned controller_port1;
|
|
} status;
|
|
|
|
static void Enter();
|
|
void main();
|
|
void add_clocks(unsigned clocks);
|
|
|
|
void power();
|
|
void reset();
|
|
|
|
uint8 debugger_read(uint16 addr);
|
|
|
|
uint8 ram_read(uint16 addr);
|
|
void ram_write(uint16 addr, uint8 data);
|
|
|
|
uint8 read(uint16 addr);
|
|
void write(uint16 addr, uint8 data);
|
|
|
|
void serialize(serializer&);
|
|
|
|
//timing.cpp
|
|
uint8 op_read(uint16 addr);
|
|
void op_write(uint16 addr, uint8 data);
|
|
void last_cycle();
|
|
void nmi(uint16 &vector);
|
|
|
|
void oam_dma();
|
|
|
|
void set_nmi_line(bool);
|
|
void set_irq_line(bool);
|
|
void set_irq_apu_line(bool);
|
|
|
|
void set_rdy_line(bool);
|
|
void set_rdy_addr(bool valid, uint16 value = 0);
|
|
};
|
|
|
|
extern CPU cpu;
|