2 Skelton for retropc emulator
4 Author : Takeda.Toshiya
17 #define SIG_I8255_PORT_A 0
18 #define SIG_I8255_PORT_B 1
19 #define SIG_I8255_PORT_C 2
21 class I8255 : public DEVICE
35 I8255(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
37 for(int i = 0; i < 3; i++) {
38 initialize_output_signals(&port[i].outputs);
39 port[i].wreg = port[i].rreg = 0;//0xff;
41 clear_ports_by_cmdreg = false;
47 void write_io8(uint32_t addr, uint32_t data);
48 uint32_t read_io8(uint32_t addr);
49 void write_signal(int id, uint32_t data, uint32_t mask);
50 uint32_t read_signal(int id);
51 void save_state(FILEIO* state_fio);
52 bool load_state(FILEIO* state_fio);
53 const _TCHAR *get_device_name()
59 void set_context_port_a(DEVICE* device, int id, uint32_t mask, int shift)
61 register_output_signal(&port[0].outputs, device, id, mask, shift);
63 void set_context_port_b(DEVICE* device, int id, uint32_t mask, int shift)
65 register_output_signal(&port[1].outputs, device, id, mask, shift);
67 void set_context_port_c(DEVICE* device, int id, uint32_t mask, int shift)
69 register_output_signal(&port[2].outputs, device, id, mask, shift);
71 bool clear_ports_by_cmdreg;