mirror of
https://github.com/holub/mame
synced 2025-07-04 17:38:08 +03:00
apricot: create bus interface for the keyboard interface, make hle keyboard emulation a bus device
This commit is contained in:
parent
412ca1644c
commit
c597f40d83
@ -153,7 +153,7 @@ end
|
|||||||
|
|
||||||
---------------------------------------------------
|
---------------------------------------------------
|
||||||
--
|
--
|
||||||
--@src/devices/bus/apricot/expansion.h,BUSES["APRICOT_EXPANSION"] = true
|
--@src/devices/bus/apricot/expansion/expansion.h,BUSES["APRICOT_EXPANSION"] = true
|
||||||
---------------------------------------------------
|
---------------------------------------------------
|
||||||
|
|
||||||
if (BUSES["APRICOT_EXPANSION"]~=null) then
|
if (BUSES["APRICOT_EXPANSION"]~=null) then
|
||||||
@ -168,6 +168,21 @@ if (BUSES["APRICOT_EXPANSION"]~=null) then
|
|||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
---------------------------------------------------
|
||||||
|
--
|
||||||
|
--@src/devices/bus/apricot/keyboard/keyboard.h,BUSES["APRICOT_KEYBOARD"] = true
|
||||||
|
---------------------------------------------------
|
||||||
|
|
||||||
|
if (BUSES["APRICOT_KEYBOARD"]~=null) then
|
||||||
|
files {
|
||||||
|
MAME_DIR .. "src/devices/bus/apricot/keyboard/keyboard.cpp",
|
||||||
|
MAME_DIR .. "src/devices/bus/apricot/keyboard/keyboard.h",
|
||||||
|
MAME_DIR .. "src/devices/bus/apricot/keyboard/hle.cpp",
|
||||||
|
MAME_DIR .. "src/devices/bus/apricot/keyboard/hle.h",
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
---------------------------------------------------
|
---------------------------------------------------
|
||||||
--
|
--
|
||||||
--@src/devices/bus/arcadia/slot.h,BUSES["ARCADIA"] = true
|
--@src/devices/bus/arcadia/slot.h,BUSES["ARCADIA"] = true
|
||||||
|
@ -602,6 +602,7 @@ BUSES["ADAM"] = true
|
|||||||
BUSES["ADAMNET"] = true
|
BUSES["ADAMNET"] = true
|
||||||
BUSES["APF"] = true
|
BUSES["APF"] = true
|
||||||
BUSES["APRICOT_EXPANSION"] = true
|
BUSES["APRICOT_EXPANSION"] = true
|
||||||
|
BUSES["APRICOT_KEYBOARD"] = true
|
||||||
BUSES["ARCADIA"] = true
|
BUSES["ARCADIA"] = true
|
||||||
BUSES["ASTROCADE"] = true
|
BUSES["ASTROCADE"] = true
|
||||||
BUSES["BBC_ANALOGUE"] = true
|
BUSES["BBC_ANALOGUE"] = true
|
||||||
@ -1133,8 +1134,6 @@ files {
|
|||||||
MAME_DIR .. "src/mame/drivers/apricotp.cpp",
|
MAME_DIR .. "src/mame/drivers/apricotp.cpp",
|
||||||
MAME_DIR .. "src/mame/machine/apricotkb.cpp",
|
MAME_DIR .. "src/mame/machine/apricotkb.cpp",
|
||||||
MAME_DIR .. "src/mame/machine/apricotkb.h",
|
MAME_DIR .. "src/mame/machine/apricotkb.h",
|
||||||
MAME_DIR .. "src/mame/machine/apricotkb_hle.cpp",
|
|
||||||
MAME_DIR .. "src/mame/machine/apricotkb_hle.h",
|
|
||||||
MAME_DIR .. "src/mame/drivers/victor9k.cpp",
|
MAME_DIR .. "src/mame/drivers/victor9k.cpp",
|
||||||
MAME_DIR .. "src/mame/includes/victor9k.h",
|
MAME_DIR .. "src/mame/includes/victor9k.h",
|
||||||
MAME_DIR .. "src/mame/machine/victor9kb.cpp",
|
MAME_DIR .. "src/mame/machine/victor9kb.cpp",
|
||||||
|
@ -44,7 +44,7 @@
|
|||||||
|
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
#include "apricotkb_hle.h"
|
#include "hle.h"
|
||||||
|
|
||||||
|
|
||||||
//**************************************************************************
|
//**************************************************************************
|
||||||
@ -190,8 +190,8 @@ ioport_constructor apricot_keyboard_hle_device::device_input_ports() const
|
|||||||
|
|
||||||
apricot_keyboard_hle_device::apricot_keyboard_hle_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
|
apricot_keyboard_hle_device::apricot_keyboard_hle_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
|
||||||
device_t(mconfig, APRICOT_KEYBOARD_HLE, "Apricot Keyboard (HLE)", tag, owner, clock, "apricotkb_hle", __FILE__),
|
device_t(mconfig, APRICOT_KEYBOARD_HLE, "Apricot Keyboard (HLE)", tag, owner, clock, "apricotkb_hle", __FILE__),
|
||||||
|
device_apricot_keyboard_interface(mconfig, *this),
|
||||||
device_serial_interface(mconfig, *this),
|
device_serial_interface(mconfig, *this),
|
||||||
m_txd_handler(*this),
|
|
||||||
m_rxd(1),
|
m_rxd(1),
|
||||||
m_data_in(0),
|
m_data_in(0),
|
||||||
m_data_out(0)
|
m_data_out(0)
|
||||||
@ -204,8 +204,6 @@ apricot_keyboard_hle_device::apricot_keyboard_hle_device(const machine_config &m
|
|||||||
|
|
||||||
void apricot_keyboard_hle_device::device_start()
|
void apricot_keyboard_hle_device::device_start()
|
||||||
{
|
{
|
||||||
// resolve callbacks
|
|
||||||
m_txd_handler.resolve_safe();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//-------------------------------------------------
|
//-------------------------------------------------
|
||||||
@ -233,7 +231,7 @@ void apricot_keyboard_hle_device::device_timer(emu_timer &timer, device_timer_id
|
|||||||
|
|
||||||
void apricot_keyboard_hle_device::tra_callback()
|
void apricot_keyboard_hle_device::tra_callback()
|
||||||
{
|
{
|
||||||
m_txd_handler(transmit_register_get_data_bit());
|
m_host->in_w(transmit_register_get_data_bit());
|
||||||
}
|
}
|
||||||
|
|
||||||
void apricot_keyboard_hle_device::tra_complete()
|
void apricot_keyboard_hle_device::tra_complete()
|
||||||
@ -260,7 +258,7 @@ void apricot_keyboard_hle_device::rcv_complete()
|
|||||||
// transmit_register_setup(0xfb);
|
// transmit_register_setup(0xfb);
|
||||||
}
|
}
|
||||||
|
|
||||||
WRITE_LINE_MEMBER( apricot_keyboard_hle_device::rxd_w )
|
void apricot_keyboard_hle_device::out_w(int state)
|
||||||
{
|
{
|
||||||
m_rxd = state;
|
m_rxd = state;
|
||||||
device_serial_interface::rx_w(m_rxd);
|
device_serial_interface::rx_w(m_rxd);
|
@ -8,20 +8,11 @@
|
|||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#ifndef __APRICOTKB_HLE__
|
#ifndef __APRICOT_KEYBOARD_HLE_H__
|
||||||
#define __APRICOTKB_HLE__
|
#define __APRICOT_KEYBOARD_HLE_H__
|
||||||
|
|
||||||
#include "emu.h"
|
#include "emu.h"
|
||||||
|
#include "keyboard.h"
|
||||||
//**************************************************************************
|
|
||||||
// INTERFACE CONFIGURATION MACROS
|
|
||||||
//**************************************************************************
|
|
||||||
|
|
||||||
#define MCFG_APRICOT_KEYBOARD_ADD(_tag) \
|
|
||||||
MCFG_DEVICE_ADD(_tag, APRICOT_KEYBOARD_HLE, 0)
|
|
||||||
|
|
||||||
#define MCFG_APRICOT_KEYBOARD_TXD_HANDLER(_write) \
|
|
||||||
devcb = &apricot_keyboard_hle_device::set_txd_handler(*device, DEVCB_##_write);
|
|
||||||
|
|
||||||
|
|
||||||
//**************************************************************************
|
//**************************************************************************
|
||||||
@ -30,18 +21,17 @@
|
|||||||
|
|
||||||
// ======================> apricot_keyboard_hle_device
|
// ======================> apricot_keyboard_hle_device
|
||||||
|
|
||||||
class apricot_keyboard_hle_device : public device_t, public device_serial_interface
|
class apricot_keyboard_hle_device : public device_t, public device_apricot_keyboard_interface, public device_serial_interface
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
// construction/destruction
|
// construction/destruction
|
||||||
apricot_keyboard_hle_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
apricot_keyboard_hle_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
||||||
|
|
||||||
template<class _Object> static devcb_base &set_txd_handler(device_t &device, _Object object)
|
|
||||||
{ return downcast<apricot_keyboard_hle_device &>(device).m_txd_handler.set_callback(object); }
|
|
||||||
|
|
||||||
DECLARE_WRITE_LINE_MEMBER(rxd_w);
|
|
||||||
DECLARE_INPUT_CHANGED_MEMBER(key_callback);
|
DECLARE_INPUT_CHANGED_MEMBER(key_callback);
|
||||||
|
|
||||||
|
// from host
|
||||||
|
virtual void out_w(int state) override;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
// device_t overrides
|
// device_t overrides
|
||||||
virtual ioport_constructor device_input_ports() const override;
|
virtual ioport_constructor device_input_ports() const override;
|
||||||
@ -57,8 +47,6 @@ protected:
|
|||||||
virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override;
|
virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
devcb_write_line m_txd_handler;
|
|
||||||
|
|
||||||
int m_rxd;
|
int m_rxd;
|
||||||
|
|
||||||
UINT8 m_data_in;
|
UINT8 m_data_in;
|
||||||
@ -70,4 +58,4 @@ private:
|
|||||||
extern const device_type APRICOT_KEYBOARD_HLE;
|
extern const device_type APRICOT_KEYBOARD_HLE;
|
||||||
|
|
||||||
|
|
||||||
#endif // __APRICOTKB_HLE__
|
#endif // __APRICOT_KEYBOARD_HLE_H__
|
105
src/devices/bus/apricot/keyboard/keyboard.cpp
Normal file
105
src/devices/bus/apricot/keyboard/keyboard.cpp
Normal file
@ -0,0 +1,105 @@
|
|||||||
|
// license:GPL-2.0+
|
||||||
|
// copyright-holders:Dirk Best
|
||||||
|
/***************************************************************************
|
||||||
|
|
||||||
|
ACT Apricot Keyboard Interface
|
||||||
|
|
||||||
|
***************************************************************************/
|
||||||
|
|
||||||
|
#include "keyboard.h"
|
||||||
|
#include "hle.h"
|
||||||
|
|
||||||
|
|
||||||
|
//**************************************************************************
|
||||||
|
// DEVICE DEFINITIONS
|
||||||
|
//**************************************************************************
|
||||||
|
|
||||||
|
const device_type APRICOT_KEYBOARD_INTERFACE = &device_creator<apricot_keyboard_device>;
|
||||||
|
|
||||||
|
|
||||||
|
//**************************************************************************
|
||||||
|
// SLOT DEVICE
|
||||||
|
//**************************************************************************
|
||||||
|
|
||||||
|
//-------------------------------------------------
|
||||||
|
// apricot_keyboard_device - constructor
|
||||||
|
//-------------------------------------------------
|
||||||
|
|
||||||
|
apricot_keyboard_device::apricot_keyboard_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
|
||||||
|
device_t(mconfig, APRICOT_KEYBOARD_INTERFACE, "Apricot Keyboard Interface", tag, owner, clock, "apricot_kbd", __FILE__),
|
||||||
|
device_slot_interface(mconfig, *this),
|
||||||
|
m_kbd(nullptr),
|
||||||
|
m_in_handler(*this)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
//-------------------------------------------------
|
||||||
|
// apricot_keyboard_device - destructor
|
||||||
|
//-------------------------------------------------
|
||||||
|
|
||||||
|
apricot_keyboard_device::~apricot_keyboard_device()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
//-------------------------------------------------
|
||||||
|
// device_start - device-specific startup
|
||||||
|
//-------------------------------------------------
|
||||||
|
|
||||||
|
void apricot_keyboard_device::device_start()
|
||||||
|
{
|
||||||
|
// get connected keyboard
|
||||||
|
m_kbd = dynamic_cast<device_apricot_keyboard_interface *>(get_card_device());
|
||||||
|
|
||||||
|
// resolve callbacks
|
||||||
|
m_in_handler.resolve_safe();
|
||||||
|
}
|
||||||
|
|
||||||
|
//-------------------------------------------------
|
||||||
|
// device_reset - device-specific reset
|
||||||
|
//-------------------------------------------------
|
||||||
|
|
||||||
|
void apricot_keyboard_device::device_reset()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
//-------------------------------------------------
|
||||||
|
// host to module interface
|
||||||
|
//-------------------------------------------------
|
||||||
|
|
||||||
|
WRITE_LINE_MEMBER( apricot_keyboard_device::out_w )
|
||||||
|
{
|
||||||
|
if (m_kbd)
|
||||||
|
m_kbd->out_w(state);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//**************************************************************************
|
||||||
|
// KEYBOARD INTERFACE
|
||||||
|
//**************************************************************************
|
||||||
|
|
||||||
|
//-------------------------------------------------
|
||||||
|
// device_apricot_keyboard_interface - constructor
|
||||||
|
//-------------------------------------------------
|
||||||
|
|
||||||
|
device_apricot_keyboard_interface::device_apricot_keyboard_interface(const machine_config &mconfig, device_t &device) :
|
||||||
|
device_slot_card_interface(mconfig, device)
|
||||||
|
{
|
||||||
|
m_host = dynamic_cast<apricot_keyboard_device *>(device.owner());
|
||||||
|
}
|
||||||
|
|
||||||
|
//-------------------------------------------------
|
||||||
|
// ~device_apricot_keyboard_interface - destructor
|
||||||
|
//-------------------------------------------------
|
||||||
|
|
||||||
|
device_apricot_keyboard_interface::~device_apricot_keyboard_interface()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//**************************************************************************
|
||||||
|
// SLOT INTERFACE
|
||||||
|
//**************************************************************************
|
||||||
|
|
||||||
|
SLOT_INTERFACE_START( apricot_keyboard_devices )
|
||||||
|
SLOT_INTERFACE("hle", APRICOT_KEYBOARD_HLE)
|
||||||
|
SLOT_INTERFACE_END
|
109
src/devices/bus/apricot/keyboard/keyboard.h
Normal file
109
src/devices/bus/apricot/keyboard/keyboard.h
Normal file
@ -0,0 +1,109 @@
|
|||||||
|
// license:GPL-2.0+
|
||||||
|
// copyright-holders:Dirk Best
|
||||||
|
/***************************************************************************
|
||||||
|
|
||||||
|
ACT Apricot Keyboard Interface
|
||||||
|
|
||||||
|
Host interface: 9-pin D-SUB
|
||||||
|
|
||||||
|
1 +12V
|
||||||
|
2 OUT
|
||||||
|
3 IN
|
||||||
|
4 N/C
|
||||||
|
5 N/C
|
||||||
|
6 GND
|
||||||
|
7 -12V
|
||||||
|
8 0V
|
||||||
|
9 N/C
|
||||||
|
|
||||||
|
Keyboard interface:
|
||||||
|
|
||||||
|
A 0V
|
||||||
|
B +12V
|
||||||
|
C -12V
|
||||||
|
D N/C
|
||||||
|
E OUT
|
||||||
|
F IN
|
||||||
|
|
||||||
|
***************************************************************************/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#ifndef __APRICOT_KEYBOARD_H__
|
||||||
|
#define __APRICOT_KEYBOARD_H__
|
||||||
|
|
||||||
|
#include "emu.h"
|
||||||
|
|
||||||
|
|
||||||
|
//**************************************************************************
|
||||||
|
// INTERFACE CONFIGURATION MACROS
|
||||||
|
//**************************************************************************
|
||||||
|
|
||||||
|
#define MCFG_APRICOT_KEYBOARD_INTERFACE_ADD(_tag, _def_slot) \
|
||||||
|
MCFG_DEVICE_ADD(_tag, APRICOT_KEYBOARD_INTERFACE, 0) \
|
||||||
|
MCFG_DEVICE_SLOT_INTERFACE(apricot_keyboard_devices, _def_slot, false)
|
||||||
|
|
||||||
|
#define MCFG_APRICOT_KEYBOARD_IN_HANDLER(_devcb) \
|
||||||
|
devcb = &apricot_keyboard_device::set_in_handler(*device, DEVCB_##_devcb);
|
||||||
|
|
||||||
|
|
||||||
|
//**************************************************************************
|
||||||
|
// TYPE DEFINITIONS
|
||||||
|
//**************************************************************************
|
||||||
|
|
||||||
|
class device_apricot_keyboard_interface;
|
||||||
|
|
||||||
|
// ======================> apricot_keyboard_device
|
||||||
|
|
||||||
|
class apricot_keyboard_device : public device_t, public device_slot_interface
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
// construction/destruction
|
||||||
|
apricot_keyboard_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
||||||
|
virtual ~apricot_keyboard_device();
|
||||||
|
|
||||||
|
// callbacks
|
||||||
|
template<class _Object> static devcb_base &set_in_handler(device_t &device, _Object object)
|
||||||
|
{ return downcast<apricot_keyboard_device &>(device).m_in_handler.set_callback(object); }
|
||||||
|
|
||||||
|
// called from keyboard
|
||||||
|
DECLARE_WRITE_LINE_MEMBER( in_w ) { m_in_handler(state); }
|
||||||
|
|
||||||
|
// called from host
|
||||||
|
DECLARE_WRITE_LINE_MEMBER( out_w );
|
||||||
|
|
||||||
|
protected:
|
||||||
|
// device-level overrides
|
||||||
|
virtual void device_start() override;
|
||||||
|
virtual void device_reset() override;
|
||||||
|
|
||||||
|
private:
|
||||||
|
device_apricot_keyboard_interface *m_kbd;
|
||||||
|
|
||||||
|
devcb_write_line m_in_handler;
|
||||||
|
};
|
||||||
|
|
||||||
|
// ======================> device_apricot_keyboard_interface
|
||||||
|
|
||||||
|
class device_apricot_keyboard_interface : public device_slot_card_interface
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
// construction/destruction
|
||||||
|
device_apricot_keyboard_interface(const machine_config &mconfig, device_t &device);
|
||||||
|
virtual ~device_apricot_keyboard_interface();
|
||||||
|
|
||||||
|
virtual void out_w(int state) {};
|
||||||
|
|
||||||
|
protected:
|
||||||
|
apricot_keyboard_device *m_host;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// device type definition
|
||||||
|
extern const device_type APRICOT_KEYBOARD_INTERFACE;
|
||||||
|
|
||||||
|
// supported devices
|
||||||
|
SLOT_INTERFACE_EXTERN( apricot_keyboard_devices );
|
||||||
|
|
||||||
|
|
||||||
|
#endif // __APRICOT_KEYBOARD_H__
|
@ -19,12 +19,12 @@
|
|||||||
#include "machine/wd_fdc.h"
|
#include "machine/wd_fdc.h"
|
||||||
#include "video/mc6845.h"
|
#include "video/mc6845.h"
|
||||||
#include "sound/sn76496.h"
|
#include "sound/sn76496.h"
|
||||||
#include "machine/apricotkb_hle.h"
|
|
||||||
#include "imagedev/flopdrv.h"
|
#include "imagedev/flopdrv.h"
|
||||||
#include "formats/apridisk.h"
|
#include "formats/apridisk.h"
|
||||||
#include "bus/centronics/ctronics.h"
|
#include "bus/centronics/ctronics.h"
|
||||||
#include "bus/rs232/rs232.h"
|
#include "bus/rs232/rs232.h"
|
||||||
#include "bus/apricot/expansion/expansion.h"
|
#include "bus/apricot/expansion/expansion.h"
|
||||||
|
#include "bus/apricot/keyboard/keyboard.h"
|
||||||
|
|
||||||
|
|
||||||
//**************************************************************************
|
//**************************************************************************
|
||||||
@ -434,7 +434,7 @@ static MACHINE_CONFIG_START( apricot, apricot_state )
|
|||||||
MCFG_Z80DART_OUT_DTRA_CB(DEVWRITELINE("rs232", rs232_port_device, write_dtr))
|
MCFG_Z80DART_OUT_DTRA_CB(DEVWRITELINE("rs232", rs232_port_device, write_dtr))
|
||||||
MCFG_Z80DART_OUT_RTSA_CB(DEVWRITELINE("rs232", rs232_port_device, write_rts))
|
MCFG_Z80DART_OUT_RTSA_CB(DEVWRITELINE("rs232", rs232_port_device, write_rts))
|
||||||
MCFG_Z80DART_OUT_WRDYA_CB(DEVWRITELINE("ic71", i8089_device, drq2_w))
|
MCFG_Z80DART_OUT_WRDYA_CB(DEVWRITELINE("ic71", i8089_device, drq2_w))
|
||||||
MCFG_Z80DART_OUT_TXDB_CB(DEVWRITELINE("keyboard", apricot_keyboard_hle_device, rxd_w))
|
MCFG_Z80DART_OUT_TXDB_CB(DEVWRITELINE("kbd", apricot_keyboard_device, out_w))
|
||||||
MCFG_Z80DART_OUT_DTRB_CB(WRITELINE(apricot_state, data_selector_dtr_w))
|
MCFG_Z80DART_OUT_DTRB_CB(WRITELINE(apricot_state, data_selector_dtr_w))
|
||||||
MCFG_Z80DART_OUT_RTSB_CB(WRITELINE(apricot_state, data_selector_rts_w))
|
MCFG_Z80DART_OUT_RTSB_CB(WRITELINE(apricot_state, data_selector_rts_w))
|
||||||
MCFG_Z80DART_OUT_INT_CB(DEVWRITELINE("ic31", pic8259_device, ir5_w))
|
MCFG_Z80DART_OUT_INT_CB(DEVWRITELINE("ic31", pic8259_device, ir5_w))
|
||||||
@ -448,9 +448,9 @@ static MACHINE_CONFIG_START( apricot, apricot_state )
|
|||||||
MCFG_RS232_DSR_HANDLER(DEVWRITELINE("ic15", z80sio0_device, synca_w))
|
MCFG_RS232_DSR_HANDLER(DEVWRITELINE("ic15", z80sio0_device, synca_w))
|
||||||
MCFG_RS232_CTS_HANDLER(DEVWRITELINE("ic15", z80sio0_device, ctsa_w))
|
MCFG_RS232_CTS_HANDLER(DEVWRITELINE("ic15", z80sio0_device, ctsa_w))
|
||||||
|
|
||||||
// keyboard (hle)
|
// keyboard
|
||||||
MCFG_APRICOT_KEYBOARD_ADD("keyboard")
|
MCFG_APRICOT_KEYBOARD_INTERFACE_ADD("kbd", "hle")
|
||||||
MCFG_APRICOT_KEYBOARD_TXD_HANDLER(DEVWRITELINE("ic15", z80sio0_device, rxb_w))
|
MCFG_APRICOT_KEYBOARD_IN_HANDLER(DEVWRITELINE("ic15", z80sio0_device, rxb_w))
|
||||||
|
|
||||||
// centronics printer
|
// centronics printer
|
||||||
MCFG_CENTRONICS_ADD("centronics", centronics_devices, "printer")
|
MCFG_CENTRONICS_ADD("centronics", centronics_devices, "printer")
|
||||||
|
Loading…
Reference in New Issue
Block a user