2 Skelton for retropc emulator
5 Author : Takeda.Toshiya
14 #if defined(USE_DEVICES_SHARED_LIB)
15 #include "libcpu_newdev/mcs48.h"
21 #define MCS48_PORT_P0 0x100 /* Not used */
22 #define MCS48_PORT_P1 0x101 /* P10-P17 */
23 #define MCS48_PORT_P2 0x102 /* P20-P28 */
24 #define MCS48_PORT_T0 0x110
25 #define MCS48_PORT_T1 0x111
26 #define MCS48_PORT_BUS 0x120 /* DB0-DB7 */
27 #define MCS48_PORT_PROG 0x121 /* PROG line to 8243 expander */
33 class MCS48MEM : public DEVICE
38 MCS48MEM(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
40 memset(ram, 0, sizeof(ram));
41 set_device_name(_T("MCS48 MEMORY BUS"));
45 uint32_t read_data8(uint32_t addr)
47 return ram[addr & 0xff];
49 void write_data8(uint32_t addr, uint32_t data)
51 ram[addr & 0xff] = data;
53 void save_state(FILEIO* state_fio);
54 bool load_state(FILEIO* state_fio);
57 class MCS48 : public DEVICE
60 /* ---------------------------------------------------------------------------
62 --------------------------------------------------------------------------- */
64 DEVICE *d_mem, *d_io, *d_intr;
67 DEVICE *d_mem_stored, *d_io_stored;
72 MCS48(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
74 d_mem = d_io = d_intr = NULL;
75 set_device_name(_T("MCS48 MCU"));
84 void write_signal(int id, uint32_t data, uint32_t mask);
86 uint32_t get_next_pc();
92 uint32_t get_debug_prog_addr_mask()
96 uint32_t get_debug_data_addr_mask()
100 void write_debug_data8(uint32_t addr, uint32_t data);
101 uint32_t read_debug_data8(uint32_t addr);
102 void write_debug_io8(uint32_t addr, uint32_t data);
103 uint32_t read_debug_io8(uint32_t addr);
104 bool write_debug_reg(const _TCHAR *reg, uint32_t data);
105 void get_debug_regs_info(_TCHAR *buffer, size_t buffer_len);
106 int debug_dasm(uint32_t pc, _TCHAR *buffer, size_t buffer_len);
108 void save_state(FILEIO* state_state_fio);
109 bool load_state(FILEIO* state_state_fio);
112 void set_context_mem(DEVICE* device)
116 void set_context_io(DEVICE* device)
120 void set_context_intr(DEVICE* device)
125 void set_context_debugger(DEBUGGER* device)
130 void load_rom_image(const _TCHAR *file_path);
131 uint8_t *get_rom_ptr();