mirror of
https://github.com/holub/mame
synced 2025-07-05 18:08:04 +03:00
Changed victor9000 keyboard to push the data line to the 6522 [smf]
This commit is contained in:
parent
c8c13800b8
commit
0c0ee4823f
@ -1114,8 +1114,6 @@ static MACHINE_CONFIG_START( victor9k, victor9k_state )
|
||||
|
||||
MCFG_DEVICE_ADD(M6522_2_TAG, VIA6522, XTAL_30MHz/30)
|
||||
MCFG_VIA6522_READPA_HANDLER(READ8(victor9k_state, via2_pa_r))
|
||||
MCFG_VIA6522_READCB1_HANDLER(DEVREADLINE(VICTOR9K_KEYBOARD_TAG, victor9k_keyboard_device, kbrdy_r))
|
||||
MCFG_VIA6522_READCB2_HANDLER(DEVREADLINE(VICTOR9K_KEYBOARD_TAG, victor9k_keyboard_device, kbdata_r))
|
||||
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(victor9k_state, via2_pa_w))
|
||||
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(victor9k_state, via2_pb_w))
|
||||
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(victor9k_state, via2_irq_w))
|
||||
@ -1172,7 +1170,9 @@ static MACHINE_CONFIG_START( victor9k, victor9k_state )
|
||||
MCFG_RS232_OUT_RI_HANDLER(DEVWRITELINE(UPD7201_TAG, z80dart_device, rib_w))
|
||||
MCFG_RS232_OUT_CTS_HANDLER(DEVWRITELINE(UPD7201_TAG, z80dart_device, ctsb_w))
|
||||
|
||||
MCFG_VICTOR9K_KEYBOARD_ADD(WRITELINE(victor9k_state, kbrdy_w))
|
||||
MCFG_DEVICE_ADD(VICTOR9K_KEYBOARD_TAG, VICTOR9K_KEYBOARD, 0)
|
||||
MCFG_VICTOR9K_KBRDY_HANDLER(WRITELINE(victor9k_state, kbrdy_w))
|
||||
MCFG_VICTOR9K_KBDATA_HANDLER(DEVWRITELINE(M6522_2_TAG, via6522_device, write_cb2))
|
||||
|
||||
// internal ram
|
||||
MCFG_RAM_ADD(RAM_TAG)
|
||||
|
@ -51,6 +51,7 @@
|
||||
#define RS232_A_TAG "rs232a"
|
||||
#define RS232_B_TAG "rs232b"
|
||||
#define SCREEN_TAG "screen"
|
||||
#define VICTOR9K_KEYBOARD_TAG "victor9kb"
|
||||
|
||||
class victor9k_state : public driver_device
|
||||
{
|
||||
|
@ -253,7 +253,8 @@ victor9k_keyboard_device::victor9k_keyboard_device(const machine_config &mconfig
|
||||
m_ya(*this, "YA"),
|
||||
m_yb(*this, "YB"),
|
||||
m_yc(*this, "YC"),
|
||||
m_write_kbrdy(*this),
|
||||
m_kbrdy_handler(*this),
|
||||
m_kbdata_handler(*this),
|
||||
m_y(0),
|
||||
m_kbrdy(1),
|
||||
m_kbdata(1),
|
||||
@ -269,7 +270,8 @@ victor9k_keyboard_device::victor9k_keyboard_device(const machine_config &mconfig
|
||||
void victor9k_keyboard_device::device_start()
|
||||
{
|
||||
// resolve callbacks
|
||||
m_write_kbrdy.resolve_safe();
|
||||
m_kbrdy_handler.resolve_safe();
|
||||
m_kbdata_handler.resolve_safe();
|
||||
|
||||
// state saving
|
||||
save_item(NAME(m_y));
|
||||
@ -384,10 +386,16 @@ WRITE8_MEMBER( victor9k_keyboard_device::kb_p2_w )
|
||||
if (m_kbrdy != kbrdy)
|
||||
{
|
||||
m_kbrdy = kbrdy;
|
||||
m_write_kbrdy(m_kbrdy);
|
||||
m_kbrdy_handler(m_kbrdy);
|
||||
}
|
||||
|
||||
m_kbdata = BIT(data, 3);
|
||||
int kbdata = BIT(data, 3);
|
||||
|
||||
if (m_kbdata != kbdata)
|
||||
{
|
||||
m_kbdata = kbdata;
|
||||
m_kbdata_handler(m_kbdata);
|
||||
}
|
||||
|
||||
logerror("P2 %01x\n", data & 0x0f);
|
||||
}
|
||||
|
@ -20,21 +20,15 @@
|
||||
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
// MACROS / CONSTANTS
|
||||
//**************************************************************************
|
||||
|
||||
#define VICTOR9K_KEYBOARD_TAG "victor9kb"
|
||||
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
// INTERFACE CONFIGURATION MACROS
|
||||
//**************************************************************************
|
||||
|
||||
#define MCFG_VICTOR9K_KEYBOARD_ADD(_kbrdy) \
|
||||
MCFG_DEVICE_ADD(VICTOR9K_KEYBOARD_TAG, VICTOR9K_KEYBOARD, 0) \
|
||||
downcast<victor9k_keyboard_device *>(device)->set_kbrdy_callback(DEVCB2_##_kbrdy);
|
||||
#define MCFG_VICTOR9K_KBRDY_HANDLER(_devcb) \
|
||||
devcb = &victor9k_keyboard_device::set_kbrdy_handler(*device, DEVCB2_##_devcb);
|
||||
|
||||
#define MCFG_VICTOR9K_KBDATA_HANDLER(_devcb) \
|
||||
devcb = &victor9k_keyboard_device::set_kbdata_handler(*device, DEVCB2_##_devcb);
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
@ -49,7 +43,8 @@ public:
|
||||
// construction/destruction
|
||||
victor9k_keyboard_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
||||
|
||||
template<class _kbrdy> void set_kbrdy_callback(_kbrdy kbrdy) { m_write_kbrdy.set_callback(kbrdy); }
|
||||
template<class _Object> static devcb2_base &set_kbrdy_handler(device_t &device, _Object object) { return downcast<victor9k_keyboard_device &>(device).m_kbrdy_handler.set_callback(object); }
|
||||
template<class _Object> static devcb2_base &set_kbdata_handler(device_t &device, _Object object) { return downcast<victor9k_keyboard_device &>(device).m_kbdata_handler.set_callback(object); }
|
||||
|
||||
// optional information overrides
|
||||
virtual const rom_entry *device_rom_region() const;
|
||||
@ -87,7 +82,8 @@ private:
|
||||
required_ioport m_yb;
|
||||
required_ioport m_yc;
|
||||
|
||||
devcb2_write_line m_write_kbrdy;
|
||||
devcb2_write_line m_kbrdy_handler;
|
||||
devcb2_write_line m_kbdata_handler;
|
||||
|
||||
UINT8 m_y;
|
||||
int m_kbrdy;
|
||||
|
Loading…
Reference in New Issue
Block a user