2 Skelton for retropc emulator
5 Author : Takeda.Toshiya
22 class HUC6280_BASE : public DEVICE
33 int exec_call_debug(void);
34 uint64_t total_icount;
35 uint64_t prev_total_icount;
37 virtual int run_one_opecode();
40 HUC6280_BASE(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu) {
41 total_icount = prev_total_icount = 0;
42 set_device_name(_T("HuC6280 CPU"));
47 virtual void initialize();
48 virtual void release();
50 virtual int run(int clock);
51 void write_signal(int id, uint32_t data, uint32_t mask);
53 uint32_t get_next_pc();
59 uint32_t get_debug_prog_addr_mask()
63 uint32_t get_debug_data_addr_mask()
67 void write_debug_data8(uint32_t addr, uint32_t data);
68 uint32_t read_debug_data8(uint32_t addr);
69 void write_debug_io8(uint32_t addr, uint32_t data);
70 uint32_t read_debug_io8(uint32_t addr);
71 bool write_debug_reg(const _TCHAR *reg, uint32_t data);
72 void get_debug_regs_info(_TCHAR *buffer, size_t buffer_len);
73 int debug_dasm(uint32_t pc, _TCHAR *buffer, size_t buffer_len);
75 void decl_state_registers();
76 void save_state_registers(FILEIO* state_fio);
77 void load_state_registers(FILEIO* state_fio);
80 void set_context_mem(DEVICE* device)
84 void set_context_io(DEVICE* device)
88 uint8_t irq_status_r(uint16_t offset);
89 void irq_status_w(uint16_t offset, uint8_t data);
90 uint8_t timer_r(uint16_t offset);
91 void timer_w(uint16_t offset, uint8_t data);
94 class HUC6280 : public HUC6280_BASE
98 int run_one_opecode() override;
100 HUC6280(VM* parent_vm, EMU* parent_emu) : HUC6280_BASE(parent_vm, parent_emu) {
101 set_device_name(_T("HuC6280 CPU"));
112 void save_state(FILEIO* state_fio);
113 bool load_state(FILEIO* state_fio);
116 void set_context_debugger(DEBUGGER* device)