summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/cpu/f2mc16/mb9061x.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/cpu/f2mc16/mb9061x.h')
-rw-r--r--src/devices/cpu/f2mc16/mb9061x.h21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/devices/cpu/f2mc16/mb9061x.h b/src/devices/cpu/f2mc16/mb9061x.h
index 7a463577402..e79d0202601 100644
--- a/src/devices/cpu/f2mc16/mb9061x.h
+++ b/src/devices/cpu/f2mc16/mb9061x.h
@@ -25,6 +25,12 @@ class mb9061x_device : public f2mc16_device
public:
const address_space_config m_program_config;
+ // interrupts handled by the interrupt controller
+ enum
+ {
+ ICR0 = 0, ICR1, ICR2, ICR3, ICR4, ICR5, ICR6, ICR7, ICR8, ICR9, ICR10, ICR11, ICR12, ICR13, ICR14, ICR15
+ };
+
protected:
// construction/destruction
mb9061x_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, address_map_constructor internal_map);
@@ -36,6 +42,21 @@ protected:
virtual space_config_vector memory_space_config() const override;
private:
+ // TBC
+ TIMER_CALLBACK_MEMBER(tbtc_tick);
+ READ8_MEMBER(tbtc_r);
+ WRITE8_MEMBER(tbtc_w);
+
+ // INTC
+ READ8_MEMBER(intc_r);
+ WRITE8_MEMBER(intc_w);
+ void intc_trigger_irq(int icr, int vector);
+ void intc_clear_irq(int icr, int vector);
+
+ u8 m_tbtc;
+ emu_timer *m_tbtc_timer;
+
+ u8 m_intc[0x10];
};
class mb90610_device : public mb9061x_device