2 EPSON HC-40 Emulator 'eHC-40'
4 Author : Takeda.Toshiya
14 #include "../../emu.h"
15 #include "../device.h"
22 class HC40_IO : public DEVICE
25 DEVICE *d_cpu, *d_mem, *d_tf20, *d_beep, *d_drec;
40 void send_to_7508(uint8_t val);
41 uint8_t rec_from_7508();
42 FIFO *cmd_buf, *rsp_buf;
44 dll_cur_time_t cur_time;
46 bool onesec_intr, onesec_intr_enb;
47 bool alarm_intr, alarm_intr_enb;
50 void update_key(int code);
53 bool kb_rep_enb, kb_caps;
54 uint8_t kb_rep_spd1, kb_rep_spd2;
57 uint8_t artsr, artdir;
63 bool res_z80, res_7508;
74 HC40_IO(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
76 set_device_name(_T("I/O Bus"));
85 void write_signal(int id, uint32_t data, uint32_t mask);
87 void event_callback(int event_id, int err);
88 void write_io8(uint32_t addr, uint32_t data);
89 uint32_t read_io8(uint32_t addr);
90 uint32_t get_intr_ack();
91 bool process_state(FILEIO* state_fio, bool loading);
94 void set_context_cpu(DEVICE* device)
98 void set_context_mem(DEVICE* device, uint8_t* ptr)
103 void set_context_tf20(DEVICE* device)
107 void set_context_beep(DEVICE* device)
111 void set_context_drec(DEVICE* device)
116 void key_down(int code);
117 void key_up(int code);