diff options
Diffstat (limited to 'src/mame/machine/gaelco3d.h')
-rw-r--r-- | src/mame/machine/gaelco3d.h | 106 |
1 files changed, 0 insertions, 106 deletions
diff --git a/src/mame/machine/gaelco3d.h b/src/mame/machine/gaelco3d.h deleted file mode 100644 index d8317a240bd..00000000000 --- a/src/mame/machine/gaelco3d.h +++ /dev/null @@ -1,106 +0,0 @@ -// license:BSD-3-Clause -// copyright-holders:Aaron Giles -/*************************************************************************** - - Gaelco 3D serial hardware - -***************************************************************************/ -#ifndef MAME_MACHINE_GAELCO3D_H -#define MAME_MACHINE_GAELCO3D_H - -#pragma once - - -/*************************************************************************** - DEVICE INTERFACE TYPE -***************************************************************************/ - -/* ----- device interface ----- */ - -class gaelco_serial_device : public device_t -{ -public: - static constexpr unsigned EXT_STATUS_MASK = 0x03; - - gaelco_serial_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - - auto irq_handler() { return m_irq_handler.bind(); } - - DECLARE_READ8_MEMBER(status_r); - DECLARE_WRITE8_MEMBER(data_w); - DECLARE_READ8_MEMBER(data_r); - DECLARE_WRITE_LINE_MEMBER(rts_w); - /* Set to 1 during transmit, 0 for receive */ - DECLARE_WRITE_LINE_MEMBER(tr_w); - - - /* Big questions marks, related to serial i/o */ - - /* Not used in surfplnt, but in radikalb - * Set at beginning of transfer sub, cleared at end - */ - DECLARE_WRITE_LINE_MEMBER(unknown_w); - - - /* only used in radikalb, set at beginning of receive isr, cleared at end */ - DECLARE_WRITE_LINE_MEMBER(irq_enable); - -protected: - // device-level overrides - virtual void device_start() override; - virtual void device_stop() override; - virtual void device_reset() override; - -private: - struct buf_t - { - volatile uint8_t data; - volatile uint8_t stat; - volatile int cnt; - volatile int data_cnt; - }; - - struct shmem_t - { - buf_t buf[2]; - }; - - struct osd_shared_mem - { - char *fn; - size_t size; - void *ptr; - int creator; - }; - - static osd_shared_mem *osd_sharedmem_alloc(const char *path, int create, size_t size); - static void osd_sharedmem_free(osd_shared_mem *os_shmem); - static void *osd_sharedmem_ptr(osd_shared_mem *os_shmem); - - static void buf_reset(buf_t *buf); - - // internal state - devcb_write_line m_irq_handler; - - uint8_t m_status; - int m_last_in_msg_cnt; - int m_slack_cnt; - - emu_timer *m_sync_timer; - - buf_t *m_in_ptr; - buf_t *m_out_ptr; - osd_shared_mem *m_os_shmem; - shmem_t *m_shmem; - std::mutex m_mutex; - - TIMER_CALLBACK_MEMBER( set_status_cb ); - TIMER_CALLBACK_MEMBER( link_cb ); - void set_status(uint8_t mask, uint8_t set, int wait); - void process_in(); - void sync_link(); -}; - -DECLARE_DEVICE_TYPE(GAELCO_SERIAL, gaelco_serial_device) - -#endif // MAME_MACHINE_GAELCO3D_H |