2 Skelton for retropc emulator
4 Origin : MAME i386 core
5 Author : Takeda.Toshiya
8 [ i386/i486/Pentium/MediaGX ]
18 #define SIG_I386_A20 1
24 class I386 : public DEVICE
27 DEVICE *d_mem, *d_io, *d_pic;
28 #ifdef I386_PSEUDO_BIOS
31 #ifdef SINGLE_MODE_DMA
40 I386(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
42 #ifdef I386_PSEUDO_BIOS
45 #ifdef SINGLE_MODE_DMA
49 set_device_name(_T("i80386 CPU"));
50 #elif defined(HAS_I486)
51 set_device_name(_T("i80486 CPU"));
52 #elif defined(HAS_PENTIUM)
53 set_device_name(_T("Pentium CPU"));
54 #elif defined(HAS_MEDIAGX)
55 set_device_name(_T("Media GX CPU"));
56 #elif defined(HAS_PENTIUM_PRO)
57 set_device_name(_T("Pentium Pro CPU"));
58 #elif defined(HAS_PENTIUM_MMX)
59 set_device_name(_T("Pentium MMX CPU"));
60 #elif defined(HAS_PENTIUM2)
61 set_device_name(_T("Pentium2 CPU"));
62 #elif defined(HAS_PENTIUM3)
63 set_device_name(_T("Pentium3 CPU"));
64 #elif defined(HAS_PENTIUM4)
65 set_device_name(_T("Pentium4 CPU"));
75 void write_signal(int id, uint32_t data, uint32_t mask);
76 void set_intr_line(bool line, bool pending, uint32_t bit);
77 void set_extra_clock(int cycles);
78 int get_extra_clock();
80 uint32_t get_next_pc();
86 uint32_t get_debug_prog_addr_mask()
90 uint32_t get_debug_data_addr_mask()
94 void write_debug_data8(uint32_t addr, uint32_t data);
95 uint32_t read_debug_data8(uint32_t addr);
96 void write_debug_data16(uint32_t addr, uint32_t data);
97 uint32_t read_debug_data16(uint32_t addr);
98 void write_debug_data32(uint32_t addr, uint32_t data);
99 uint32_t read_debug_data32(uint32_t addr);
100 void write_debug_io8(uint32_t addr, uint32_t data);
101 uint32_t read_debug_io8(uint32_t addr);
102 void write_debug_io16(uint32_t addr, uint32_t data);
103 uint32_t read_debug_io32(uint32_t addr);
104 void write_debug_io32(uint32_t addr, uint32_t data);
105 uint32_t read_debug_io16(uint32_t addr);
106 bool write_debug_reg(const _TCHAR *reg, uint32_t data);
107 void get_debug_regs_info(_TCHAR *buffer, size_t buffer_len);
108 int debug_dasm(uint32_t pc, _TCHAR *buffer, size_t buffer_len);
110 void save_state(FILEIO* state_fio);
111 bool load_state(FILEIO* state_fio);
114 void set_context_mem(DEVICE* device)
118 void set_context_io(DEVICE* device)
122 void set_context_intr(DEVICE* device)
126 #ifdef I386_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)
144 void set_address_mask(uint32_t mask);
145 uint32_t get_address_mask();
146 void set_shutdown_flag(int shutdown);
147 int get_shutdown_flag();