2 Skelton for retropc emulator
4 Origin : MAME i286 core
5 Author : Takeda.Toshiya
18 #define SIG_I86_TEST 0
19 #define SIG_I286_A20 1
25 class I286 : public DEVICE
28 DEVICE *d_mem, *d_io, *d_pic;
29 #ifdef I86_PSEUDO_BIOS
32 #ifdef SINGLE_MODE_DMA
41 I286(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
43 #ifdef I86_PSEUDO_BIOS
46 #ifdef SINGLE_MODE_DMA
50 set_device_name(_T("8086 CPU"));
51 #elif defined(HAS_I88)
52 set_device_name(_T("8088 CPU"));
53 #elif defined(HAS_I186)
54 set_device_name(_T("80186 CPU"));
55 #elif defined(HAS_V30)
56 set_device_name(_T("V30 CPU"));
57 #elif defined(HAS_I286)
58 set_device_name(_T("80286 CPU"));
68 void write_signal(int id, uint32_t data, uint32_t mask);
69 void set_intr_line(bool line, bool pending, uint32_t bit);
70 void set_extra_clock(int icount);
71 int get_extra_clock();
73 uint32_t get_next_pc();
79 uint32_t get_debug_prog_addr_mask()
87 uint32_t get_debug_data_addr_mask()
95 void write_debug_data8(uint32_t addr, uint32_t data);
96 uint32_t read_debug_data8(uint32_t addr);
97 void write_debug_data16(uint32_t addr, uint32_t data);
98 uint32_t read_debug_data16(uint32_t addr);
99 void write_debug_io8(uint32_t addr, uint32_t data);
100 uint32_t read_debug_io8(uint32_t addr);
101 void write_debug_io16(uint32_t addr, uint32_t data);
102 uint32_t read_debug_io16(uint32_t addr);
103 bool write_debug_reg(const _TCHAR *reg, uint32_t data);
104 uint32_t read_debug_reg(const _TCHAR *reg);
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_cpustate(FILEIO* state_fio);
109 void load_state_cpustate(FILEIO* state_fio);
111 bool process_state(FILEIO* state_fio, bool loading);
114 void set_context_mem(DEVICE* device)
118 void set_context_io(DEVICE* device)
122 void set_context_intr(DEVICE* device)
126 #ifdef I86_PSEUDO_BIOS
127 void set_context_bios(DEVICE* device)
132 #ifdef SINGLE_MODE_DMA
133 void set_context_dma(DEVICE* device)
139 void set_context_debugger(DEBUGGER* device)
145 void set_address_mask(uint32_t mask);
146 uint32_t get_address_mask();
147 void set_shutdown_flag(int shutdown);
148 int get_shutdown_flag();