2 Skelton for retropc emulator
5 Author : Takeda.Toshiya
18 #define SIG_UPD7810_INTF1 0
19 #define SIG_UPD7810_INTF2 1
20 #define SIG_UPD7810_INTF0 2
21 #define SIG_UPD7810_INTFE1 3
22 #define SIG_UPD7810_NMI 4
28 class UPD7810 : public DEVICE
36 outputs_t outputs_txd;
39 uint64_t total_icount;
40 uint64_t prev_total_icount;
43 bool busreq, rxd_status;
45 int run_one_opecode();
48 UPD7810(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
51 total_icount = prev_total_icount = 0;
53 initialize_output_signals(&outputs_to);
54 initialize_output_signals(&outputs_txd);
55 set_device_name(_T("uPD7810/7811 MCU"));
64 void write_signal(int id, uint32_t data, uint32_t mask);
66 uint32_t get_next_pc();
72 uint32_t get_debug_prog_addr_mask()
76 uint32_t get_debug_data_addr_mask()
80 void write_debug_data8(uint32_t addr, uint32_t data);
81 uint32_t read_debug_data8(uint32_t addr);
82 void write_debug_io8(uint32_t addr, uint32_t data);
83 uint32_t read_debug_io8(uint32_t addr);
84 bool write_debug_reg(const _TCHAR *reg, uint32_t data);
85 void get_debug_regs_info(_TCHAR *buffer, size_t buffer_len);
86 int debug_dasm(uint32_t pc, _TCHAR *buffer, size_t buffer_len);
88 void save_state(FILEIO* state_fio);
89 bool load_state(FILEIO* state_fio);
92 void set_context_mem(DEVICE* device)
96 void set_context_io(DEVICE* device)
101 void set_context_debugger(DEBUGGER* device)
106 void set_context_to(DEVICE* device, int id, uint32_t mask)
108 register_output_signal(&outputs_to, device, id, mask);
110 void set_context_txd(DEVICE* device, int id, uint32_t mask)
112 register_output_signal(&outputs_txd, device, id, mask);