diff options
Diffstat (limited to 'src/devices/machine/tmp68301.h')
-rw-r--r-- | src/devices/machine/tmp68301.h | 100 |
1 files changed, 0 insertions, 100 deletions
diff --git a/src/devices/machine/tmp68301.h b/src/devices/machine/tmp68301.h deleted file mode 100644 index b701822eb78..00000000000 --- a/src/devices/machine/tmp68301.h +++ /dev/null @@ -1,100 +0,0 @@ -// license:BSD-3-Clause -// copyright-holders:Luca Elia -#ifndef MAME_MACHINE_TMP68301_H -#define MAME_MACHINE_TMP68301_H - -#pragma once - -#include "cpu/m68000/m68000.h" - -/* TODO: serial ports, frequency & hook it up with m68k */ - - -//************************************************************************** -// TYPE DEFINITIONS -//************************************************************************** - - - -class tmp68301_device : public m68000_device -{ -public: - tmp68301_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - - auto in_parallel_callback() { return m_in_parallel_cb.bind(); } - auto out_parallel_callback() { return m_out_parallel_cb.bind(); } - - // Interrupts - void external_interrupt_0(); - void external_interrupt_1(); - void external_interrupt_2(); - -private: - DECLARE_READ16_MEMBER(imr_r); - DECLARE_WRITE16_MEMBER(imr_w); - DECLARE_READ16_MEMBER(ipr_r); - DECLARE_WRITE16_MEMBER(ipr_w); - DECLARE_READ16_MEMBER(iisr_r); - DECLARE_WRITE16_MEMBER(iisr_w); - DECLARE_READ16_MEMBER(scr_r); - DECLARE_WRITE16_MEMBER(scr_w); - DECLARE_READ16_MEMBER(pdr_r); - DECLARE_WRITE16_MEMBER(pdr_w); - DECLARE_READ16_MEMBER(pdir_r); - DECLARE_WRITE16_MEMBER(pdir_w); - DECLARE_READ8_MEMBER(icr_r); - DECLARE_WRITE8_MEMBER(icr_w); - - // Hardware Registers - DECLARE_READ16_MEMBER( regs_r ); - DECLARE_WRITE16_MEMBER( regs_w ); - - void tmp68301_regs(address_map &map); - -protected: - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - -private: - TIMER_CALLBACK_MEMBER(timer_callback); - void update_timer(int i); - void update_ipl(); - uint8_t serial_interrupt_cause(int channel); - - static constexpr uint16_t EXT_IRQ0 = 1 << 0; - static constexpr uint16_t EXT_IRQ1 = 1 << 1; - static constexpr uint16_t EXT_IRQ2 = 1 << 2; - static constexpr uint16_t SERIAL_IRQ_CH0 = 1 << 4; - static constexpr uint16_t SERIAL_IRQ_CH1 = 1 << 5; - static constexpr uint16_t SERIAL_IRQ_CH2 = 1 << 6; - static constexpr uint16_t PARALLEL_IRQ = 1 << 7; - static constexpr uint16_t TIMER0_IRQ = 1 << 8; - static constexpr uint16_t TIMER1_IRQ = 1 << 9; - static constexpr uint16_t TIMER2_IRQ = 1 << 10; - - devcb_read16 m_in_parallel_cb; - devcb_write16 m_out_parallel_cb; - - // internal state - uint16_t m_regs[0x400]; - - emu_timer *m_tmp68301_timer[3]; // 3 Timers - - uint8_t m_ipl; // internal interrupt level - - uint16_t m_imr; - uint16_t m_ipr; - uint16_t m_iisr; - uint16_t m_scr; - uint16_t m_pdir; - uint16_t m_pdr; - uint8_t m_icr[10]; - - void internal_vectors_r(address_map &map); - uint8_t irq_callback(offs_t offset); -}; - -DECLARE_DEVICE_TYPE(TMP68301, tmp68301_device) - -#endif // MAME_MACHINE_TMP68301_H |