diff options
author | 2019-03-25 23:13:40 +0100 | |
---|---|---|
committer | 2019-03-25 23:13:40 +0100 | |
commit | b380514764cf857469bae61c11143a19f79a74c5 (patch) | |
tree | 63c8012e262618f08a332da31dd714281aa2c5ed /src/devices/bus/sg1000_exp | |
parent | c24473ddff715ecec2e258a6eb38960cf8c8e98e (diff) |
Revert "conflict resolution (nw)"
This reverts commit c24473ddff715ecec2e258a6eb38960cf8c8e98e, reversing
changes made to 009cba4fb8102102168ef32870892438327f3705.
Diffstat (limited to 'src/devices/bus/sg1000_exp')
-rw-r--r-- | src/devices/bus/sg1000_exp/fm_unit.cpp | 13 | ||||
-rw-r--r-- | src/devices/bus/sg1000_exp/kblink.cpp | 179 | ||||
-rw-r--r-- | src/devices/bus/sg1000_exp/kblink.h | 82 | ||||
-rw-r--r-- | src/devices/bus/sg1000_exp/sg1000exp.h | 26 | ||||
-rw-r--r-- | src/devices/bus/sg1000_exp/sk1100.cpp | 45 | ||||
-rw-r--r-- | src/devices/bus/sg1000_exp/sk1100.h | 3 | ||||
-rw-r--r-- | src/devices/bus/sg1000_exp/sk1100prn.cpp | 125 | ||||
-rw-r--r-- | src/devices/bus/sg1000_exp/sk1100prn.h | 88 |
8 files changed, 42 insertions, 519 deletions
diff --git a/src/devices/bus/sg1000_exp/fm_unit.cpp b/src/devices/bus/sg1000_exp/fm_unit.cpp index a7bdc4bcc5d..ab759994f30 100644 --- a/src/devices/bus/sg1000_exp/fm_unit.cpp +++ b/src/devices/bus/sg1000_exp/fm_unit.cpp @@ -50,13 +50,12 @@ SMS version is not playing PSG sound on his Mark III with the FM unit. DEFINE_DEVICE_TYPE(SEGA_FM_UNIT, sega_fm_unit_device, "sega_fm_unit", "SG-1000 FM Sound Unit") -void sega_fm_unit_device::device_add_mconfig(machine_config &config) -{ - YM2413(config, m_ym, XTAL(10'738'635)/3); +MACHINE_CONFIG_START(sega_fm_unit_device::device_add_mconfig) + MCFG_DEVICE_ADD("ym2413", YM2413, XTAL(10'738'635)/3) // if this output gain is changed, the gain set when unmute the output need // to be changed too, probably along the gain set for SMSJ/SMSKRFM drivers. - m_ym->add_route(ALL_OUTPUTS, ":mono", 1.00); -} + MCFG_SOUND_ROUTE(ALL_OUTPUTS, ":mono", 1.00) +MACHINE_CONFIG_END //************************************************************************** @@ -123,10 +122,10 @@ WRITE8_MEMBER(sega_fm_unit_device::peripheral_w) switch (offset) { case 0: // register port - m_ym->write(0, data & 0x3f); + m_ym->write(space, 0, data & 0x3f); break; case 1: // data port - m_ym->write(1, data); + m_ym->write(space, 1, data); break; case 2: // control port case 3: // mirror diff --git a/src/devices/bus/sg1000_exp/kblink.cpp b/src/devices/bus/sg1000_exp/kblink.cpp deleted file mode 100644 index 039c7f91196..00000000000 --- a/src/devices/bus/sg1000_exp/kblink.cpp +++ /dev/null @@ -1,179 +0,0 @@ -// license:BSD-3-Clause -// copyright-holders:Enik Land -/********************************************************************** - - Sega SK-1100 keyboard link cable emulation - -The cable is used only to link two Mark III's through keyboard, what -is supported by the game F-16 Fighting Falcon for its 2 players mode. - -Keyboard link cable info (originally from http://homepage3.nifty.com/st-2/, -but taken from http://www.smspower.org/Games/F16FightingFalcon-SMS-Talk): - -- Cable is 7-pin DIN. -- Crossover scheme of the cable to connect pins - - From To - 1 1 - 2 6 - 3 3 - 4 5 - 5 4 - 6 2 - 7 7 - -Pinout of the printer port (from Charles MacDonald's sc3000h-20040729.txt -document, with the function of pin 6 corrected to /FAULT). -Numbering in counterclockwise/anticlockwise direction: - - 1 : Unused (not connected to anything) - 2 : PPI PC5 (DATA output) - 3 : PPI PC7 (/FEED output) - 4 : PPI PB6 (BUSY input) - 5 : PPI PC6 (/RESET output) - 6 : PPI PB5 (/FAULT input) - 7 : GND - -**********************************************************************/ - -#include "emu.h" -#include "kblink.h" - - - -//************************************************************************** -// DEVICE DEFINITIONS -//************************************************************************** - -DEFINE_DEVICE_TYPE(SK1100_LINK_CABLE, sk1100_link_cable_device, "sk1100_link_cable", "SK-1100 Link Cable") - - -//************************************************************************** -// LIVE DEVICE -//************************************************************************** - -//------------------------------------------------- -// sk1100_link_cable_device - constructor -//------------------------------------------------- - -sk1100_link_cable_device::sk1100_link_cable_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) : - device_t(mconfig, SK1100_LINK_CABLE, tag, owner, clock), - device_sk1100_printer_port_interface(mconfig, *this), - m_stream(*this, "stream"), - m_input_count(0), - m_input_index(0), - m_timer_poll(nullptr), - m_timer_send(nullptr), - m_timer_read(nullptr), - m_update_received_data(true), - m_data(0), - m_reset(0), - m_feed(0), - m_busy(0), - m_fault(0) -{ -} - - -//------------------------------------------------- -// device_start - device-specific startup -//------------------------------------------------- - -void sk1100_link_cable_device::device_start() -{ - m_timer_poll = timer_alloc(TIMER_POLL); - m_timer_send = timer_alloc(TIMER_SEND); - m_timer_read = timer_alloc(TIMER_READ); - - /* register for state saving */ - save_item(NAME(m_data)); - save_item(NAME(m_reset)); - save_item(NAME(m_feed)); - save_item(NAME(m_busy)); - save_item(NAME(m_fault)); - save_item(NAME(m_update_received_data)); - save_item(NAME(m_input_count)); - save_item(NAME(m_input_index)); - save_pointer(NAME(m_input_buffer), sizeof(m_input_buffer)); -} - -//------------------------------------------------- -// device_reset - device-specific reset -//------------------------------------------------- - -void sk1100_link_cable_device::device_reset() -{ - queue(); -} - - -//------------------------------------------------- -// device_add_mconfig - add device configuration -//------------------------------------------------- - -void sk1100_link_cable_device::device_add_mconfig(machine_config &config) -{ - BITBANGER(config, m_stream, 0); -} - - -void sk1100_link_cable_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) -{ - switch (id) - { - case TIMER_POLL: - queue(); - break; - - case TIMER_SEND: - m_stream->output(u8(param)); - break; - - case TIMER_READ: - m_update_received_data = true; - break; - - default: - break; - } -} - -void sk1100_link_cable_device::queue() -{ - if (m_input_index == m_input_count) - { - m_input_index = 0; - m_input_count = m_stream->input(m_input_buffer, sizeof(m_input_buffer)); - if (!m_input_count) - { - m_timer_poll->adjust(attotime::from_hz(XTAL(10'738'635)/3)); - } - } -} - -void sk1100_link_cable_device::set_data_read() -{ - // Check if a new byte from the input buffer was read for this timeslice. - if (m_update_received_data == true) - { - if (m_input_count != 0) - { - u8 byte = m_input_buffer[m_input_index++]; - // there is no way to read what was sent from peer as feed bit. - m_fault = BIT(byte, 0); // sent from peer as data bit - m_busy = BIT(byte, 1); // sent from peer as reset bit - queue(); - } - // Set to read next byte only after the end of this timeslice. - m_update_received_data = false; - m_timer_read->adjust(attotime::zero); - } -} - -void sk1100_link_cable_device::set_data_transfer() -{ - u8 byte = (m_feed << 2) | (m_reset << 1) | m_data; - m_timer_send->adjust(attotime::zero, byte); -} - - diff --git a/src/devices/bus/sg1000_exp/kblink.h b/src/devices/bus/sg1000_exp/kblink.h deleted file mode 100644 index 65e5782f4a2..00000000000 --- a/src/devices/bus/sg1000_exp/kblink.h +++ /dev/null @@ -1,82 +0,0 @@ -// license:BSD-3-Clause -// copyright-holders:Enik Land -/********************************************************************** - - Sega SK-1100 keyboard link cable emulation - -The cable is used only to link two Mark III's through keyboard, what -is supported by the game F-16 Fighting Falcon for its 2 players mode. - -**********************************************************************/ - -#ifndef MAME_BUS_SG1000_EXP_SK1100_KBLINK_H -#define MAME_BUS_SG1000_EXP_SK1100_KBLINK_H - -#pragma once - - -#include "sk1100prn.h" -#include "imagedev/bitbngr.h" - - - -//************************************************************************** -// TYPE DEFINITIONS -//************************************************************************** - -// ======================> sk1100_link_cable_device - -class sk1100_link_cable_device : public device_t, - public device_sk1100_printer_port_interface -{ -public: - // construction/destruction - sk1100_link_cable_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); - -protected: - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; - virtual void device_add_mconfig(machine_config &config) override; - - // device_sk1100_link_cable_interface overrides - - virtual DECLARE_WRITE_LINE_MEMBER( input_data ) override { m_data = state; set_data_transfer(); } - virtual DECLARE_WRITE_LINE_MEMBER( input_reset ) override { m_reset = state; set_data_transfer(); } - virtual DECLARE_WRITE_LINE_MEMBER( input_feed ) override { m_feed = state; set_data_transfer(); } - - virtual DECLARE_READ_LINE_MEMBER( output_fault ) override { set_data_read(); return m_fault; } - virtual DECLARE_READ_LINE_MEMBER( output_busy ) override { set_data_read(); return m_busy; } - -private: - static constexpr int TIMER_POLL = 1; - static constexpr int TIMER_SEND = 2; - static constexpr int TIMER_READ = 3; - - void queue(); - void set_data_transfer(); - void set_data_read(); - - required_device<bitbanger_device> m_stream; - - u8 m_input_buffer[1000]; - u32 m_input_count; - u32 m_input_index; - emu_timer *m_timer_poll; - emu_timer *m_timer_send; - emu_timer *m_timer_read; - bool m_update_received_data; - int m_data; - int m_reset; - int m_feed; - int m_busy; - int m_fault; -}; - - -// device type definition -DECLARE_DEVICE_TYPE(SK1100_LINK_CABLE, sk1100_link_cable_device) - - -#endif // MAME_BUS_SG1000_EXP_SK1100_KBLINK_H diff --git a/src/devices/bus/sg1000_exp/sg1000exp.h b/src/devices/bus/sg1000_exp/sg1000exp.h index c132b48d9dd..9a21c263407 100644 --- a/src/devices/bus/sg1000_exp/sg1000exp.h +++ b/src/devices/bus/sg1000_exp/sg1000exp.h @@ -15,6 +15,20 @@ #pragma once + + +//************************************************************************** +// INTERFACE CONFIGURATION MACROS +//************************************************************************** + +#define MCFG_SG1000_EXPANSION_ADD(_tag, _slot_intf, _def_slot, _fixed) \ + MCFG_DEVICE_ADD(_tag, SG1000_EXPANSION_SLOT, 0) \ + MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, _fixed) +#define MCFG_SG1000_EXPANSION_MODIFY(_tag) \ + MCFG_DEVICE_MODIFY(_tag) + + + //************************************************************************** // TYPE DEFINITIONS //************************************************************************** @@ -27,17 +41,7 @@ class sg1000_expansion_slot_device : public device_t, public device_slot_interfa { public: // construction/destruction - template <typename T> - sg1000_expansion_slot_device(machine_config const &mconfig, char const *tag, device_t *owner, T &&opts, char const *dflt, bool const fixed) - : sg1000_expansion_slot_device(mconfig, tag, owner, 0) - { - option_reset(); - opts(*this); - set_default_option(dflt); - set_fixed(fixed); - } - - sg1000_expansion_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0); + sg1000_expansion_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual ~sg1000_expansion_slot_device(); DECLARE_READ8_MEMBER(read); diff --git a/src/devices/bus/sg1000_exp/sk1100.cpp b/src/devices/bus/sg1000_exp/sk1100.cpp index 1bb0a01adfd..e23fe34caed 100644 --- a/src/devices/bus/sg1000_exp/sk1100.cpp +++ b/src/devices/bus/sg1000_exp/sk1100.cpp @@ -12,6 +12,7 @@ Release data from the Sega Retro project: TODO: - SP-400 serial printer +- Link between two Mark III's through keyboard, supported by F-16 Fighting Falcon **********************************************************************/ @@ -109,23 +110,23 @@ static INPUT_PORTS_START( sk1100_keys ) PORT_START("PB0") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_8) PORT_CHAR('8') PORT_CHAR('(') - PORT_BIT( 0x0e, IP_ACTIVE_LOW, IPT_UNUSED ) + PORT_BIT( 0x06, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("PB1") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_9) PORT_CHAR('9') PORT_CHAR(')') - PORT_BIT( 0x0e, IP_ACTIVE_LOW, IPT_UNUSED ) + PORT_BIT( 0x06, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("PB2") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_0) PORT_CHAR('0') - PORT_BIT( 0x0e, IP_ACTIVE_LOW, IPT_UNUSED ) + PORT_BIT( 0x06, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("PB3") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_MINUS) PORT_CHAR('-') PORT_CHAR('=') - PORT_BIT( 0x0e, IP_ACTIVE_LOW, IPT_UNUSED ) + PORT_BIT( 0x06, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("PB4") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_BACKSLASH2) PORT_CHAR('^') - PORT_BIT( 0x0e, IP_ACTIVE_LOW, IPT_UNUSED ) + PORT_BIT( 0x06, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("PB5") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("\xc2\xa5") PORT_CODE(KEYCODE_TILDE) PORT_CHAR(0x00a5) @@ -153,25 +154,24 @@ ioport_constructor sega_sk1100_device::device_input_ports() const } -void sega_sk1100_device::device_add_mconfig(machine_config &config) -{ +MACHINE_CONFIG_START(sega_sk1100_device::device_add_mconfig) /* devices */ I8255(config, m_ppi); m_ppi->in_pa_callback().set(FUNC(sega_sk1100_device::ppi_pa_r)); m_ppi->in_pb_callback().set(FUNC(sega_sk1100_device::ppi_pb_r)); m_ppi->out_pc_callback().set(FUNC(sega_sk1100_device::ppi_pc_w)); - CASSETTE(config, m_cassette); - m_cassette->set_formats(sc3000_cassette_formats); - m_cassette->set_default_state(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_ENABLED); - m_cassette->set_interface("sc3000_cass"); +// MCFG_PRINTER_ADD("sp400") /* serial printer */ - SK1100_PRINTER_PORT(config, m_printer_port, sk1100_printer_port_devices, nullptr); + MCFG_CASSETTE_ADD("cassette") + MCFG_CASSETTE_FORMATS(sc3000_cassette_formats) + MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_ENABLED) + MCFG_CASSETTE_INTERFACE("sc3000_cass") /* software lists */ - SOFTWARE_LIST(config, "sc3k_cart_list").set_original("sc3000_cart"); - SOFTWARE_LIST(config, "cass_list").set_original("sc3000_cass"); -} + MCFG_SOFTWARE_LIST_ADD("sc3k_cart_list","sc3000_cart") + MCFG_SOFTWARE_LIST_ADD("cass_list","sc3000_cass") +MACHINE_CONFIG_END //************************************************************************** // LIVE DEVICE @@ -186,7 +186,6 @@ sega_sk1100_device::sega_sk1100_device(const machine_config &mconfig, const char device_sg1000_expansion_slot_interface(mconfig, *this), m_cassette(*this, "cassette"), m_ppi(*this, UPD9255_0_TAG), - m_printer_port(*this, "printer"), m_pa(*this, {"PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7"}), m_pb(*this, {"PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7"}), m_keylatch(0) @@ -263,7 +262,7 @@ READ8_MEMBER( sega_sk1100_device::ppi_pb_r ) PB2 Keyboard input PB3 Keyboard input PB4 /CONT input from cartridge terminal B-11 - PB5 /FAULT input from printer + PB5 FAULT input from printer PB6 BUSY input from printer PB7 Cassette tape input */ @@ -274,9 +273,8 @@ READ8_MEMBER( sega_sk1100_device::ppi_pb_r ) /* cartridge contact */ data |= 0x10; - /* printer port */ - data |= m_printer_port->fault_r() << 5; - data |= m_printer_port->busy_r() << 6; + /* printer */ + data |= 0x60; /* tape input */ if (m_cassette->input() > +0.0) data |= 0x80; @@ -303,10 +301,7 @@ WRITE8_MEMBER( sega_sk1100_device::ppi_pc_w ) m_keylatch = data & 0x07; /* cassette */ - m_cassette->output(BIT(data, 4) ? +1.0 : -1.0); + m_cassette->output( BIT(data, 4) ? +1.0 : -1.0); - /* printer port */ - m_printer_port->data_w(BIT(data, 5)); - m_printer_port->reset_w(BIT(data, 6)); - m_printer_port->feed_w(BIT(data, 7)); + /* TODO printer */ } diff --git a/src/devices/bus/sg1000_exp/sk1100.h b/src/devices/bus/sg1000_exp/sk1100.h index 13ff5780f64..4845fe09e1c 100644 --- a/src/devices/bus/sg1000_exp/sk1100.h +++ b/src/devices/bus/sg1000_exp/sk1100.h @@ -13,9 +13,9 @@ #include "sg1000exp.h" -#include "sk1100prn.h" #include "formats/sc3000_bit.h" #include "imagedev/cassette.h" +#include "imagedev/printer.h" #include "machine/i8255.h" @@ -55,7 +55,6 @@ private: required_device<cassette_image_device> m_cassette; required_device<i8255_device> m_ppi; - required_device<sk1100_printer_port_device> m_printer_port; required_ioport_array<8> m_pa; required_ioport_array<8> m_pb; diff --git a/src/devices/bus/sg1000_exp/sk1100prn.cpp b/src/devices/bus/sg1000_exp/sk1100prn.cpp deleted file mode 100644 index b902ce3992f..00000000000 --- a/src/devices/bus/sg1000_exp/sk1100prn.cpp +++ /dev/null @@ -1,125 +0,0 @@ -// license:BSD-3-Clause -// copyright-holders:Enik Land -/********************************************************************** - - Sega SK-1100 keyboard printer port emulation - -**********************************************************************/ - -#include "emu.h" -#include "sk1100prn.h" -// slot devices -//#include "sp400.h" -#include "kblink.h" - - - -//************************************************************************** -// GLOBAL VARIABLES -//************************************************************************** - -DEFINE_DEVICE_TYPE(SK1100_PRINTER_PORT, sk1100_printer_port_device, "sk1100_printer_port", "Sega SK-1100 Printer Port") - - - -//************************************************************************** -// CARD INTERFACE -//************************************************************************** - -//------------------------------------------------- -// device_sk1100_printer_port_interface - constructor -//------------------------------------------------- - -device_sk1100_printer_port_interface::device_sk1100_printer_port_interface(const machine_config &mconfig, device_t &device) - : device_slot_card_interface(mconfig,device) -{ -} - - -//------------------------------------------------- -// ~device_sk1100_printer_port_interface - destructor -//------------------------------------------------- - -device_sk1100_printer_port_interface::~device_sk1100_printer_port_interface() -{ -} - - - -//************************************************************************** -// LIVE DEVICE -//************************************************************************** - -//------------------------------------------------- -// sk1100_printer_port_device - constructor -//------------------------------------------------- - -sk1100_printer_port_device::sk1100_printer_port_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) : - device_t(mconfig, SK1100_PRINTER_PORT, tag, owner, clock), - device_slot_interface(mconfig, *this), - m_device(nullptr) -{ -} - - -//------------------------------------------------- -// sk1100_printer_port_device - destructor -//------------------------------------------------- - -sk1100_printer_port_device::~sk1100_printer_port_device() -{ -} - - -//------------------------------------------------- -// device_start - device-specific startup -//------------------------------------------------- - -void sk1100_printer_port_device::device_start() -{ - m_device = dynamic_cast<device_sk1100_printer_port_interface *>(get_card_device()); -} - -WRITE_LINE_MEMBER(sk1100_printer_port_device::data_w) -{ - if (m_device) - m_device->input_data(state); -} - -WRITE_LINE_MEMBER(sk1100_printer_port_device::reset_w) -{ - if (m_device) - m_device->input_reset(state); -} - -WRITE_LINE_MEMBER(sk1100_printer_port_device::feed_w) -{ - if (m_device) - m_device->input_feed(state); -} - -READ_LINE_MEMBER(sk1100_printer_port_device::fault_r) -{ - if (m_device) - return m_device->output_fault(); - else - return 1; -} - -READ_LINE_MEMBER(sk1100_printer_port_device::busy_r) -{ - if (m_device) - return m_device->output_busy(); - else - return 1; -} - -//------------------------------------------------- -// SLOT_INTERFACE( sk1100_printer_port_devices ) -//------------------------------------------------- - -void sk1100_printer_port_devices(device_slot_interface &device) -{ - //device.option_add("sp400", SP400_PRINTER); /* serial printer */ - device.option_add("kblink", SK1100_LINK_CABLE); -} diff --git a/src/devices/bus/sg1000_exp/sk1100prn.h b/src/devices/bus/sg1000_exp/sk1100prn.h deleted file mode 100644 index b926f311f29..00000000000 --- a/src/devices/bus/sg1000_exp/sk1100prn.h +++ /dev/null @@ -1,88 +0,0 @@ -// license:BSD-3-Clause -// copyright-holders:Enik Land -/********************************************************************** - - Sega SK-1100 keyboard printer port emulation - -********************************************************************** - - -**********************************************************************/ - -#ifndef MAME_BUS_SG1000_EXP_SK1100_PRN_H -#define MAME_BUS_SG1000_EXP_SK1100_PRN_H - -#pragma once - - -//************************************************************************** -// TYPE DEFINITIONS -//************************************************************************** - -// ======================> sk1100_printer_port_device - -class device_sk1100_printer_port_interface; - -class sk1100_printer_port_device : public device_t, public device_slot_interface -{ -public: - // construction/destruction - template <typename T> - sk1100_printer_port_device(machine_config const &mconfig, char const *tag, device_t *owner, T &&opts, char const *dflt) - : sk1100_printer_port_device(mconfig, tag, owner, 0) - { - option_reset(); - opts(*this); - set_default_option(dflt); - set_fixed(false); - } - - sk1100_printer_port_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock = 0); - virtual ~sk1100_printer_port_device(); - - DECLARE_READ_LINE_MEMBER(fault_r); - DECLARE_READ_LINE_MEMBER(busy_r); - - DECLARE_WRITE_LINE_MEMBER(data_w); - DECLARE_WRITE_LINE_MEMBER(reset_w); - DECLARE_WRITE_LINE_MEMBER(feed_w); - -protected: - // device-level overrides - virtual void device_start() override; - -private: - device_sk1100_printer_port_interface *m_device; -}; - - -// ======================> device_sk1100_printer_port_interface - -// class representing interface-specific live sk1100_printer_port peripheral -class device_sk1100_printer_port_interface : public device_slot_card_interface -{ - friend class sk1100_printer_port_device; -public: - // construction/destruction - virtual ~device_sk1100_printer_port_interface(); - -protected: - device_sk1100_printer_port_interface(const machine_config &mconfig, device_t &device); - - virtual DECLARE_WRITE_LINE_MEMBER( input_data ) { } - virtual DECLARE_WRITE_LINE_MEMBER( input_reset ) { } - virtual DECLARE_WRITE_LINE_MEMBER( input_feed ) { } - - virtual DECLARE_READ_LINE_MEMBER( output_fault ) { return 1; } - virtual DECLARE_READ_LINE_MEMBER( output_busy ) { return 1; } -}; - - -// device type definition -DECLARE_DEVICE_TYPE(SK1100_PRINTER_PORT, sk1100_printer_port_device) - - -void sk1100_printer_port_devices(device_slot_interface &device); - - -#endif // MAME_BUS_SG1000_EXP_SK1100_PRN_H |