2 Skelton for retropc emulator
5 Author : Takeda.Toshiya
18 #define SIG_I8237_CH0 0
19 #define SIG_I8237_CH1 1
20 #define SIG_I8237_CH2 2
21 #define SIG_I8237_CH3 3
22 #define SIG_I8237_BANK0 4
23 #define SIG_I8237_BANK1 5
24 #define SIG_I8237_BANK2 6
25 #define SIG_I8237_BANK3 7
26 #define SIG_I8237_MASK0 8
27 #define SIG_I8237_MASK1 9
28 #define SIG_I8237_MASK2 10
29 #define SIG_I8237_MASK3 11
31 class I8237 : public DEVICE
35 #ifdef SINGLE_MODE_DMA
59 void write_mem(uint32 addr, uint32 data);
60 uint32 read_mem(uint32 addr);
61 void write_io(int ch, uint32 data);
62 uint32 read_io(int ch);
65 I8237(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
67 for(int i = 0; i < 4; i++) {
68 dma[i].dev = vm->dummy;
69 dma[i].bankreg = dma[i].incmask = 0;
71 #ifdef SINGLE_MODE_DMA
80 void write_io8(uint32 addr, uint32 data);
81 uint32 read_io8(uint32 addr);
82 void write_signal(int id, uint32 data, uint32 mask);
84 void save_state(FILEIO* state_fio);
85 bool load_state(FILEIO* state_fio);
88 void set_context_memory(DEVICE* device)
92 void set_context_ch0(DEVICE* device)
96 void set_context_ch1(DEVICE* device)
100 void set_context_ch2(DEVICE* device)
104 void set_context_ch3(DEVICE* device)
108 #ifdef SINGLE_MODE_DMA
109 void set_context_child_dma(DEVICE* device)
114 void set_mode_word(bool val)