2 Skelton for retropc emulator
4 Author : Takeda.Toshiya
17 #define SIG_MC6820_PORT_A 0
18 #define SIG_MC6820_PORT_B 1
19 #define SIG_MC6820_C1_A 2
20 #define SIG_MC6820_C1_B 3
21 #define SIG_MC6820_C2_A 4
22 #define SIG_MC6820_C2_B 5
26 class MC6820 : public DEVICE
38 outputs_t outputs_irq;
42 MC6820(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
44 for(int i = 0; i < 2; i++) {
45 initialize_output_signals(&port[i].outputs);
46 initialize_output_signals(&port[i].outputs_irq);
47 port[i].wreg = port[i].rreg = 0;//0xff;
49 set_device_name(_T("MC6820 PIA"));
55 void write_io8(uint32_t addr, uint32_t data);
56 uint32_t read_io8(uint32_t addr);
57 void write_signal(int id, uint32_t data, uint32_t mask);
59 void save_state(FILEIO* state_fio);
60 bool load_state(FILEIO* state_fio);
63 void set_context_port_a(DEVICE* device, int id, uint32_t mask, int shift)
65 register_output_signal(&port[0].outputs, device, id, mask, shift);
67 void set_context_port_b(DEVICE* device, int id, uint32_t mask, int shift)
69 register_output_signal(&port[1].outputs, device, id, mask, shift);
71 void set_context_irq_a(DEVICE* device, int id, uint32_t mask)
73 register_output_signal(&port[0].outputs_irq, device, id, mask);
75 void set_context_irq_b(DEVICE* device, int id, uint32_t mask)
77 register_output_signal(&port[1].outputs_irq, device, id, mask);