diff options
author | 2020-07-27 20:12:05 +0200 | |
---|---|---|
committer | 2020-07-27 14:12:05 -0400 | |
commit | 943fc34f3994a7dd2b2e63ae844cef2dc4645fe9 (patch) | |
tree | 8b661a1bc0589e3f78d9cc06813536bfa310e58b /src/devices/bus/hp_ipc_io/82919.h | |
parent | b31859d6c534a192a5e36d2fc6a6de40b3629ec0 (diff) |
HP IPC: support for I/O slots and 82919 serial card added (#7001)
* mc68681: tx/rx clocking from timer fixed, added partial support for
break signal
* hp_ipc: support for I/O slots added, 82919 serial I/O card added
Diffstat (limited to 'src/devices/bus/hp_ipc_io/82919.h')
-rw-r--r-- | src/devices/bus/hp_ipc_io/82919.h | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/src/devices/bus/hp_ipc_io/82919.h b/src/devices/bus/hp_ipc_io/82919.h new file mode 100644 index 00000000000..331a42b0b00 --- /dev/null +++ b/src/devices/bus/hp_ipc_io/82919.h @@ -0,0 +1,73 @@ +// license:BSD-3-Clause +// copyright-holders: F. Ulivi +/********************************************************************* + + 82919.h + + 82919 module (RS232 interface) + +*********************************************************************/ + +#ifndef MAME_BUS_HP_IPC_IO_82919_H +#define MAME_BUS_HP_IPC_IO_82919_H + +#pragma once + +#include "hp_ipc_io.h" +#include "machine/mc68681.h" +#include "bus/rs232/rs232.h" + +class hp82919_io_card_device : public device_t, public device_hp_ipc_io_interface +{ +public: + // construction/destruction + hp82919_io_card_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + virtual ~hp82919_io_card_device(); + + uint8_t read(offs_t addr); + void write(offs_t addr , uint8_t data); + + DECLARE_WRITE_LINE_MEMBER(uart_irq); + DECLARE_WRITE_LINE_MEMBER(uart_a_tx); + DECLARE_WRITE_LINE_MEMBER(uart_b_tx); + void uart_output(uint8_t data); + DECLARE_WRITE_LINE_MEMBER(prim_rxd); + DECLARE_WRITE_LINE_MEMBER(prim_dcd); + DECLARE_WRITE_LINE_MEMBER(prim_dsr); + DECLARE_WRITE_LINE_MEMBER(prim_ri); + DECLARE_WRITE_LINE_MEMBER(prim_cts); + DECLARE_WRITE_LINE_MEMBER(sec_rxd); + DECLARE_WRITE_LINE_MEMBER(sec_dcd); + DECLARE_WRITE_LINE_MEMBER(sec_cts); + +protected: + virtual void device_start() override; + virtual void device_reset() override; + + // device-level overrides + virtual void device_add_mconfig(machine_config &config) override; + virtual ioport_constructor device_input_ports() const override; + + virtual void install_read_write_handlers(address_space& space , uint32_t base_addr) override; + +private: + required_device<rs232_port_device> m_rs232_prim; + required_device<rs232_port_device> m_rs232_sec; + required_device<mc68681_device> m_uart; + required_ioport m_loopback_en; + + uint8_t m_int_level; + bool m_int_en; + bool m_int_forced; + bool m_int_pending; + bool m_uart_int; + bool m_irq; + bool m_loopback; + + void update_irq(); +}; + +// device type definition +DECLARE_DEVICE_TYPE(HP82919_IO_CARD, hp82919_io_card_device) + +#endif // MAME_BUS_HP_IPC_IO_82919_H |