2 * FM-8 Main I/O [fm7_mainio.h]
4 * Author: K.Ohta <whatisthis.sowhat _at_ gmail.com>
7 * Jan 03, 2015 : Initial
8 * Jan 25, 2018 : Split FM-8 from fm7_mainio.h .
11 #ifndef _VM_FM8_MAINIO_H_
12 #define _VM_FM8_MAINIO_H_
14 #include "./fm7_mainio.h"
21 class FM8_MAINIO : public FM7_MAINIO {
23 FM7::BUBBLECASETTE *bubble_casette[2];
24 uint8_t get_port_fd00(void) override;
25 void set_port_fd02(uint8_t val) override;
26 uint8_t get_irqstat_fd03(void) override;
27 uint8_t get_extirq_fd17(void) override;
28 void set_ext_fd17(uint8_t data) override;
30 void set_irq_syndet(bool flag) override;
31 void set_irq_rxrdy(bool flag) override;
32 void set_irq_txrdy(bool flag) override;
33 void set_irq_timer(bool flag) override;
34 void set_irq_printer(bool flag) override;
35 void set_irq_mfd(bool flag) override;
36 void do_irq(void) override;
37 void __FASTCALL write_fd0f(void) override;
38 uint8_t __FASTCALL read_fd0f(void) override;
40 void reset_sound(void) override;
41 void set_psg(uint8_t val) override;
42 uint8_t get_psg(void) override;
43 void set_psg_cmd(uint8_t cmd) override;
44 void write_opn_reg(int index, uint32_t addr, uint32_t data) override;
45 void set_opn(int index, uint8_t val) override;
46 uint8_t get_opn(int index) override;
47 void set_opn_cmd(int index, uint8_t cmd) override;
48 uint8_t get_extirq_whg(void) override;
49 uint8_t get_extirq_thg(void) override;
51 FM8_MAINIO(VM_TEMPLATE* parent_vm, EMU_TEMPLATE* parent_emu);
54 void __FASTCALL write_data8(uint32_t addr, uint32_t data);
55 uint32_t __FASTCALL read_data8(uint32_t addr);
56 void __FASTCALL write_signal(int id, uint32_t data, uint32_t mask);
58 void event_callback(int event_id, int err);
59 void reset() override;
62 bool process_state(FILEIO *state_fio, bool loading) override;
64 void set_context_kanjirom_class2(DEVICE *p)
67 # if defined(USE_AY_3_8910_AS_PSG)
68 void set_context_psg(AY_3_891X *p)
74 void set_context_psg(YM2203 *p)
80 void set_context_bubble(BUBBLECASETTE *p, int drive) {
82 bubble_casette[drive] = p;