mirror of
https://github.com/holub/mame
synced 2025-04-23 00:39:36 +03:00
pc1512: Added mouse port slot interface. [Curt Coder]
This commit is contained in:
parent
908f473f19
commit
c4d0fbc48b
@ -2904,3 +2904,15 @@ if (BUSES["COMPIS_GRAPHICS"]~=null) then
|
||||
MAME_DIR .. "src/devices/bus/compis/hrg.h",
|
||||
}
|
||||
end
|
||||
|
||||
---------------------------------------------------
|
||||
--
|
||||
--@src/devices/bus/pc1512/mouse.h,BUSES["PC1512"] = true
|
||||
---------------------------------------------------
|
||||
|
||||
if (BUSES["PC1512"]~=null) then
|
||||
files {
|
||||
MAME_DIR .. "src/devices/bus/pc1512/mouse.cpp",
|
||||
MAME_DIR .. "src/devices/bus/pc1512/mouse.h",
|
||||
}
|
||||
end
|
||||
|
@ -663,6 +663,7 @@ BUSES["NEWBRAIN"] = true
|
||||
BUSES["NUBUS"] = true
|
||||
BUSES["O2"] = true
|
||||
BUSES["ORICEXT"] = true
|
||||
BUSES["PC1512"] = true
|
||||
BUSES["PCE"] = true
|
||||
BUSES["PC_JOY"] = true
|
||||
BUSES["PC_KBD"] = true
|
||||
|
118
src/devices/bus/pc1512/mouse.cpp
Normal file
118
src/devices/bus/pc1512/mouse.cpp
Normal file
@ -0,0 +1,118 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:Curt Coder
|
||||
/**********************************************************************
|
||||
|
||||
Amstrad PC1512 mouse port emulation
|
||||
|
||||
**********************************************************************/
|
||||
|
||||
#include "emu.h"
|
||||
#include "bus/pc1512/mouse.h"
|
||||
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
// DEVICE DEFINITION
|
||||
//**************************************************************************
|
||||
|
||||
const device_type PC1512_MOUSE_PORT = &device_creator<pc1512_mouse_port_t>;
|
||||
const device_type PC1512_MOUSE = &device_creator<pc1512_mouse_t>;
|
||||
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
// CARD INTERFACE
|
||||
//**************************************************************************
|
||||
|
||||
//-------------------------------------------------
|
||||
// device_pc1512_mouse_port_interface - constructor
|
||||
//-------------------------------------------------
|
||||
|
||||
device_pc1512_mouse_port_interface::device_pc1512_mouse_port_interface(const machine_config &mconfig, device_t &device) :
|
||||
device_slot_card_interface(mconfig, device)
|
||||
{
|
||||
m_port = dynamic_cast<pc1512_mouse_port_t *>(device.owner());
|
||||
}
|
||||
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
// LIVE DEVICE
|
||||
//**************************************************************************
|
||||
|
||||
//-------------------------------------------------
|
||||
// pc1512_mouse_port_t - constructor
|
||||
//-------------------------------------------------
|
||||
|
||||
pc1512_mouse_port_t::pc1512_mouse_port_t(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
|
||||
device_t(mconfig, PC1512_MOUSE_PORT, "Amstrad PC1512 mouse port", tag, owner, clock, "pc1512_mouse_port", __FILE__),
|
||||
device_slot_interface(mconfig, *this),
|
||||
m_write_x(*this),
|
||||
m_write_y(*this),
|
||||
m_write_m1(*this),
|
||||
m_write_m2(*this),
|
||||
m_device(nullptr)
|
||||
{
|
||||
}
|
||||
|
||||
pc1512_mouse_t::pc1512_mouse_t(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
|
||||
device_t(mconfig, PC1512_MOUSE, "Amstrad PC1512 mouse", tag, owner, clock, "pc1512_mouse", __FILE__),
|
||||
device_pc1512_mouse_port_interface(mconfig, *this)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// device_start - device-specific startup
|
||||
//-------------------------------------------------
|
||||
|
||||
void pc1512_mouse_port_t::device_start()
|
||||
{
|
||||
m_device = dynamic_cast<device_pc1512_mouse_port_interface *>(get_card_device());
|
||||
|
||||
// resolve callbacks
|
||||
m_write_x.resolve_safe();
|
||||
m_write_y.resolve_safe();
|
||||
m_write_m1.resolve_safe();
|
||||
m_write_m2.resolve_safe();
|
||||
}
|
||||
|
||||
void pc1512_mouse_t::device_start()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// INPUT_PORTS( mouse )
|
||||
//-------------------------------------------------
|
||||
|
||||
static INPUT_PORTS_START( mouse )
|
||||
PORT_START("MOUSEB")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_NAME("Left Mouse Button") PORT_CODE(MOUSECODE_BUTTON1) PORT_CHANGED_MEMBER(DEVICE_SELF, pc1512_mouse_t, mouse_button_1_changed, 0)
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_NAME("Right Mouse Button") PORT_CODE(MOUSECODE_BUTTON2) PORT_CHANGED_MEMBER(DEVICE_SELF, pc1512_mouse_t, mouse_button_2_changed, 0)
|
||||
|
||||
PORT_START("MOUSEX")
|
||||
PORT_BIT( 0xff, 0x00, IPT_MOUSE_X ) PORT_SENSITIVITY(100) PORT_KEYDELTA(5) PORT_MINMAX(0, 255) PORT_PLAYER(1) PORT_CHANGED_MEMBER(DEVICE_SELF, pc1512_mouse_t, mouse_x_changed, 0)
|
||||
|
||||
PORT_START("MOUSEY")
|
||||
PORT_BIT( 0xff, 0x00, IPT_MOUSE_Y ) PORT_SENSITIVITY(100) PORT_KEYDELTA(5) PORT_MINMAX(0, 255) PORT_PLAYER(1) PORT_CHANGED_MEMBER(DEVICE_SELF, pc1512_mouse_t, mouse_y_changed, 0)
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// input_ports - device-specific input ports
|
||||
//-------------------------------------------------
|
||||
|
||||
ioport_constructor pc1512_mouse_t::device_input_ports() const
|
||||
{
|
||||
return INPUT_PORTS_NAME( mouse );
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// SLOT_INTERFACE( pc1512_mouse_port_devices )
|
||||
//-------------------------------------------------
|
||||
|
||||
SLOT_INTERFACE_START( pc1512_mouse_port_devices )
|
||||
SLOT_INTERFACE("mouse", PC1512_MOUSE)
|
||||
SLOT_INTERFACE_END
|
140
src/devices/bus/pc1512/mouse.h
Normal file
140
src/devices/bus/pc1512/mouse.h
Normal file
@ -0,0 +1,140 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:Curt Coder
|
||||
/**********************************************************************
|
||||
|
||||
Amstrad PC1512 mouse port emulation
|
||||
|
||||
**********************************************************************
|
||||
|
||||
1 XA
|
||||
2 XB
|
||||
3 YA
|
||||
4 YB
|
||||
5
|
||||
6 M1
|
||||
7 +5V
|
||||
8 GND
|
||||
9 M2
|
||||
|
||||
**********************************************************************/
|
||||
|
||||
#pragma once
|
||||
|
||||
#ifndef __PC1512_MOUSE_PORT__
|
||||
#define __PC1512_MOUSE_PORT__
|
||||
|
||||
#include "emu.h"
|
||||
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
// INTERFACE CONFIGURATION MACROS
|
||||
//**************************************************************************
|
||||
|
||||
#define PC1512_MOUSE_PORT_TAG "mous"
|
||||
|
||||
#define MCFG_PC1512_MOUSE_PORT_ADD(_tag, _slot_intf, _def_slot) \
|
||||
MCFG_DEVICE_ADD(_tag, PC1512_MOUSE_PORT, 0) \
|
||||
MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, false)
|
||||
|
||||
#define MCFG_PC1512_MOUSE_PORT_X_CB(_write) \
|
||||
devcb = &pc1512_mouse_port_t::set_x_wr_callback(*device, DEVCB_##_write);
|
||||
|
||||
#define MCFG_PC1512_MOUSE_PORT_Y_CB(_write) \
|
||||
devcb = &pc1512_mouse_port_t::set_y_wr_callback(*device, DEVCB_##_write);
|
||||
|
||||
#define MCFG_PC1512_MOUSE_PORT_M1_CB(_write) \
|
||||
devcb = &pc1512_mouse_port_t::set_m1_wr_callback(*device, DEVCB_##_write);
|
||||
|
||||
#define MCFG_PC1512_MOUSE_PORT_M2_CB(_write) \
|
||||
devcb = &pc1512_mouse_port_t::set_m2_wr_callback(*device, DEVCB_##_write);
|
||||
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
// TYPE DEFINITIONS
|
||||
//**************************************************************************
|
||||
|
||||
class pc1512_mouse_port_t;
|
||||
|
||||
|
||||
// ======================> device_pc1512_mouse_port_interface
|
||||
|
||||
class device_pc1512_mouse_port_interface : public device_slot_card_interface
|
||||
{
|
||||
public:
|
||||
// construction/destruction
|
||||
device_pc1512_mouse_port_interface(const machine_config &mconfig, device_t &device);
|
||||
virtual ~device_pc1512_mouse_port_interface() { }
|
||||
|
||||
protected:
|
||||
pc1512_mouse_port_t *m_port;
|
||||
};
|
||||
|
||||
|
||||
// ======================> pc1512_mouse_port_t
|
||||
|
||||
class pc1512_mouse_port_t : public device_t,
|
||||
public device_slot_interface
|
||||
{
|
||||
public:
|
||||
// construction/destruction
|
||||
pc1512_mouse_port_t(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
||||
|
||||
// static configuration helpers
|
||||
template<class _Object> static devcb_base &set_x_wr_callback(device_t &device, _Object object) { return downcast<pc1512_mouse_port_t &>(device).m_write_x.set_callback(object); }
|
||||
template<class _Object> static devcb_base &set_y_wr_callback(device_t &device, _Object object) { return downcast<pc1512_mouse_port_t &>(device).m_write_y.set_callback(object); }
|
||||
template<class _Object> static devcb_base &set_m1_wr_callback(device_t &device, _Object object) { return downcast<pc1512_mouse_port_t &>(device).m_write_m1.set_callback(object); }
|
||||
template<class _Object> static devcb_base &set_m2_wr_callback(device_t &device, _Object object) { return downcast<pc1512_mouse_port_t &>(device).m_write_m2.set_callback(object); }
|
||||
|
||||
// peripheral interface
|
||||
void x_w(UINT8 data) { m_write_x(data); }
|
||||
void y_w(UINT8 data) { m_write_y(data); }
|
||||
void m1_w(int state) { m_write_m1(state); }
|
||||
void m2_w(int state) { m_write_m2(state); }
|
||||
|
||||
protected:
|
||||
// device-level overrides
|
||||
virtual void device_start() override;
|
||||
|
||||
devcb_write8 m_write_x;
|
||||
devcb_write8 m_write_y;
|
||||
devcb_write_line m_write_m1;
|
||||
devcb_write_line m_write_m2;
|
||||
|
||||
device_pc1512_mouse_port_interface *m_device;
|
||||
};
|
||||
|
||||
|
||||
// ======================> pc1512_mouse_t
|
||||
|
||||
class pc1512_mouse_t : public device_t,
|
||||
public device_pc1512_mouse_port_interface
|
||||
{
|
||||
public:
|
||||
// construction/destruction
|
||||
pc1512_mouse_t(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
||||
|
||||
// optional information overrides
|
||||
virtual ioport_constructor device_input_ports() const override;
|
||||
|
||||
DECLARE_INPUT_CHANGED_MEMBER( mouse_x_changed ) { m_port->x_w(newval); }
|
||||
DECLARE_INPUT_CHANGED_MEMBER( mouse_y_changed ) { m_port->y_w(newval); }
|
||||
DECLARE_INPUT_CHANGED_MEMBER( mouse_button_1_changed ) { m_port->m1_w(newval); }
|
||||
DECLARE_INPUT_CHANGED_MEMBER( mouse_button_2_changed ) { m_port->m2_w(newval); }
|
||||
|
||||
protected:
|
||||
// device-level overrides
|
||||
virtual void device_start() override;
|
||||
};
|
||||
|
||||
|
||||
// device type definition
|
||||
extern const device_type PC1512_MOUSE_PORT;
|
||||
extern const device_type PC1512_MOUSE;
|
||||
|
||||
|
||||
// slot devices
|
||||
SLOT_INTERFACE_EXTERN( pc1512_mouse_port_devices );
|
||||
|
||||
#endif
|
@ -674,76 +674,11 @@ ADDRESS_MAP_END
|
||||
// INPUT PORTS
|
||||
//**************************************************************************
|
||||
|
||||
//-------------------------------------------------
|
||||
// INPUT_CHANGED_MEMBER( mouse_button_1_changed )
|
||||
//-------------------------------------------------
|
||||
|
||||
INPUT_CHANGED_MEMBER( pc1512_state::mouse_button_1_changed )
|
||||
{
|
||||
m_kb->m1_w(newval);
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// INPUT_CHANGED_MEMBER( mouse_button_2_changed )
|
||||
//-------------------------------------------------
|
||||
|
||||
INPUT_CHANGED_MEMBER( pc1512_state::mouse_button_2_changed )
|
||||
{
|
||||
m_kb->m2_w(newval);
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// INPUT_CHANGED_MEMBER( mouse_x_changed )
|
||||
//-------------------------------------------------
|
||||
|
||||
INPUT_CHANGED_MEMBER( pc1512_state::mouse_x_changed )
|
||||
{
|
||||
if (newval > oldval)
|
||||
m_mouse_x++;
|
||||
else
|
||||
m_mouse_x--;
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// INPUT_CHANGED_MEMBER( mouse_y_changed )
|
||||
//-------------------------------------------------
|
||||
|
||||
INPUT_CHANGED_MEMBER( pc1512_state::mouse_y_changed )
|
||||
{
|
||||
if (newval > oldval)
|
||||
m_mouse_y--;
|
||||
else
|
||||
m_mouse_y++;
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// INPUT_PORTS( mouse )
|
||||
//-------------------------------------------------
|
||||
|
||||
static INPUT_PORTS_START( mouse )
|
||||
PORT_START("MOUSEB")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_NAME("Left Mouse Button") PORT_CODE(MOUSECODE_BUTTON1) PORT_CHANGED_MEMBER(DEVICE_SELF, pc1512_state, mouse_button_1_changed, 0)
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_NAME("Right Mouse Button") PORT_CODE(MOUSECODE_BUTTON2) PORT_CHANGED_MEMBER(DEVICE_SELF, pc1512_state, mouse_button_2_changed, 0)
|
||||
|
||||
PORT_START("MOUSEX")
|
||||
PORT_BIT( 0xff, 0x00, IPT_MOUSE_X ) PORT_SENSITIVITY(100) PORT_KEYDELTA(5) PORT_MINMAX(0, 255) PORT_PLAYER(1) PORT_CHANGED_MEMBER(DEVICE_SELF, pc1512_state, mouse_x_changed, 0)
|
||||
|
||||
PORT_START("MOUSEY")
|
||||
PORT_BIT( 0xff, 0x00, IPT_MOUSE_Y ) PORT_SENSITIVITY(100) PORT_KEYDELTA(5) PORT_MINMAX(0, 255) PORT_PLAYER(1) PORT_CHANGED_MEMBER(DEVICE_SELF, pc1512_state, mouse_y_changed, 0)
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// INPUT_PORTS( pc1512 )
|
||||
//-------------------------------------------------
|
||||
|
||||
static INPUT_PORTS_START( pc1512 )
|
||||
PORT_INCLUDE( mouse )
|
||||
|
||||
PORT_START("LK")
|
||||
PORT_DIPNAME( 0x07, 0x07, DEF_STR( Language ) )
|
||||
PORT_DIPSETTING( 0x07, DEF_STR( English ) )
|
||||
@ -776,8 +711,6 @@ INPUT_PORTS_END
|
||||
//-------------------------------------------------
|
||||
|
||||
static INPUT_PORTS_START( pc1640 )
|
||||
PORT_INCLUDE( mouse )
|
||||
|
||||
PORT_START("LK")
|
||||
PORT_DIPNAME( 0x07, 0x07, DEF_STR( Language ) )
|
||||
PORT_DIPSETTING( 0x07, DEF_STR( English ) )
|
||||
@ -860,6 +793,25 @@ WRITE_LINE_MEMBER( pc1512_state::kbclk_w )
|
||||
m_kbclk = state;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER( pc1512_state::mouse_x_w )
|
||||
{
|
||||
if (data > m_mouse_x_old)
|
||||
m_mouse_x+=3;
|
||||
else
|
||||
m_mouse_x-=3;
|
||||
|
||||
m_mouse_x_old = data;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER( pc1512_state::mouse_y_w )
|
||||
{
|
||||
if (data > m_mouse_y_old)
|
||||
m_mouse_y-=3;
|
||||
else
|
||||
m_mouse_y+=3;
|
||||
|
||||
m_mouse_y_old = data;
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
// I8237_INTERFACE( dmac_intf )
|
||||
@ -1114,6 +1066,8 @@ void pc1512_state::machine_start()
|
||||
save_item(NAME(m_kbdata));
|
||||
save_item(NAME(m_mouse_x));
|
||||
save_item(NAME(m_mouse_y));
|
||||
save_item(NAME(m_mouse_x_old));
|
||||
save_item(NAME(m_mouse_y_old));
|
||||
save_item(NAME(m_dma_page));
|
||||
save_item(NAME(m_dma_channel));
|
||||
save_item(NAME(m_dreq0));
|
||||
@ -1184,6 +1138,8 @@ void pc1640_state::machine_start()
|
||||
save_item(NAME(m_kbdata));
|
||||
save_item(NAME(m_mouse_x));
|
||||
save_item(NAME(m_mouse_y));
|
||||
save_item(NAME(m_mouse_x_old));
|
||||
save_item(NAME(m_mouse_y_old));
|
||||
save_item(NAME(m_dma_page));
|
||||
save_item(NAME(m_dma_channel));
|
||||
save_item(NAME(m_dreq0));
|
||||
@ -1241,6 +1197,13 @@ static MACHINE_CONFIG_START( pc1512, pc1512_state )
|
||||
MCFG_DEVICE_ADD(PC1512_KEYBOARD_TAG, PC1512_KEYBOARD, 0)
|
||||
MCFG_PC1512_KEYBOARD_CLOCK_CALLBACK(WRITELINE(pc1512_state, kbclk_w))
|
||||
MCFG_PC1512_KEYBOARD_DATA_CALLBACK(WRITELINE(pc1512_state, kbdata_w))
|
||||
|
||||
MCFG_PC1512_MOUSE_PORT_ADD(PC1512_MOUSE_PORT_TAG, pc1512_mouse_port_devices, "mouse")
|
||||
MCFG_PC1512_MOUSE_PORT_X_CB(WRITE8(pc1512_state, mouse_x_w))
|
||||
MCFG_PC1512_MOUSE_PORT_Y_CB(WRITE8(pc1512_state, mouse_y_w))
|
||||
MCFG_PC1512_MOUSE_PORT_M1_CB(DEVWRITELINE(PC1512_KEYBOARD_TAG, pc1512_keyboard_t, m1_w))
|
||||
MCFG_PC1512_MOUSE_PORT_M2_CB(DEVWRITELINE(PC1512_KEYBOARD_TAG, pc1512_keyboard_t, m2_w))
|
||||
|
||||
MCFG_DEVICE_ADD(I8237A5_TAG, AM9517A, XTAL_24MHz/6)
|
||||
MCFG_I8237_OUT_HREQ_CB(WRITELINE(pc1512_state, hrq_w))
|
||||
MCFG_I8237_OUT_EOP_CB(WRITELINE(pc1512_state, eop_w))
|
||||
@ -1269,11 +1232,13 @@ static MACHINE_CONFIG_START( pc1512, pc1512_state )
|
||||
|
||||
MCFG_MC146818_ADD(MC146818_TAG, XTAL_32_768kHz)
|
||||
MCFG_MC146818_IRQ_HANDLER(DEVWRITELINE(I8259A2_TAG, pic8259_device, ir2_w))
|
||||
|
||||
MCFG_PC_FDC_XT_ADD(PC_FDC_XT_TAG)
|
||||
MCFG_PC_FDC_INTRQ_CALLBACK(WRITELINE(pc1512_state, fdc_int_w))
|
||||
MCFG_PC_FDC_DRQ_CALLBACK(WRITELINE(pc1512_state, fdc_drq_w))
|
||||
MCFG_FLOPPY_DRIVE_ADD(PC_FDC_XT_TAG ":0", pc1512_floppies, "525dd", pc1512_state::floppy_formats)
|
||||
MCFG_FLOPPY_DRIVE_ADD(PC_FDC_XT_TAG ":1", pc1512_floppies, nullptr, pc1512_state::floppy_formats)
|
||||
|
||||
MCFG_DEVICE_ADD(INS8250_TAG, INS8250, XTAL_1_8432MHz)
|
||||
MCFG_INS8250_OUT_TX_CB(DEVWRITELINE(RS232_TAG, rs232_port_device, write_txd))
|
||||
MCFG_INS8250_OUT_DTR_CB(DEVWRITELINE(RS232_TAG, rs232_port_device, write_dtr))
|
||||
@ -1286,7 +1251,6 @@ static MACHINE_CONFIG_START( pc1512, pc1512_state )
|
||||
MCFG_CENTRONICS_PERROR_HANDLER(WRITELINE(pc1512_state, write_centronics_perror))
|
||||
MCFG_CENTRONICS_SELECT_HANDLER(WRITELINE(pc1512_state, write_centronics_select))
|
||||
MCFG_CENTRONICS_FAULT_HANDLER(WRITELINE(pc1512_state, write_centronics_fault))
|
||||
|
||||
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", CENTRONICS_TAG)
|
||||
|
||||
MCFG_RS232_PORT_ADD(RS232_TAG, default_rs232_devices, nullptr)
|
||||
@ -1363,6 +1327,13 @@ static MACHINE_CONFIG_START( pc1640, pc1640_state )
|
||||
MCFG_DEVICE_ADD(PC1512_KEYBOARD_TAG, PC1512_KEYBOARD, 0)
|
||||
MCFG_PC1512_KEYBOARD_CLOCK_CALLBACK(WRITELINE(pc1512_state, kbclk_w))
|
||||
MCFG_PC1512_KEYBOARD_DATA_CALLBACK(WRITELINE(pc1512_state, kbdata_w))
|
||||
|
||||
MCFG_PC1512_MOUSE_PORT_ADD(PC1512_MOUSE_PORT_TAG, pc1512_mouse_port_devices, "mouse")
|
||||
MCFG_PC1512_MOUSE_PORT_X_CB(WRITE8(pc1512_state, mouse_x_w))
|
||||
MCFG_PC1512_MOUSE_PORT_Y_CB(WRITE8(pc1512_state, mouse_y_w))
|
||||
MCFG_PC1512_MOUSE_PORT_M1_CB(DEVWRITELINE(PC1512_KEYBOARD_TAG, pc1512_keyboard_t, m1_w))
|
||||
MCFG_PC1512_MOUSE_PORT_M2_CB(DEVWRITELINE(PC1512_KEYBOARD_TAG, pc1512_keyboard_t, m2_w))
|
||||
|
||||
MCFG_DEVICE_ADD(I8237A5_TAG, AM9517A, XTAL_24MHz/6)
|
||||
MCFG_I8237_OUT_HREQ_CB(WRITELINE(pc1512_state, hrq_w))
|
||||
MCFG_I8237_OUT_EOP_CB(WRITELINE(pc1512_state, eop_w))
|
||||
@ -1391,25 +1362,25 @@ static MACHINE_CONFIG_START( pc1640, pc1640_state )
|
||||
|
||||
MCFG_MC146818_ADD(MC146818_TAG, XTAL_32_768kHz)
|
||||
MCFG_MC146818_IRQ_HANDLER(DEVWRITELINE(I8259A2_TAG, pic8259_device, ir2_w))
|
||||
|
||||
MCFG_PC_FDC_XT_ADD(PC_FDC_XT_TAG)
|
||||
MCFG_PC_FDC_INTRQ_CALLBACK(WRITELINE(pc1512_state, fdc_int_w))
|
||||
MCFG_PC_FDC_DRQ_CALLBACK(WRITELINE(pc1512_state, fdc_drq_w))
|
||||
MCFG_FLOPPY_DRIVE_ADD(PC_FDC_XT_TAG ":0", pc1512_floppies, "525dd", pc1512_state::floppy_formats)
|
||||
MCFG_FLOPPY_DRIVE_ADD(PC_FDC_XT_TAG ":1", pc1512_floppies, nullptr, pc1512_state::floppy_formats)
|
||||
|
||||
MCFG_DEVICE_ADD(INS8250_TAG, INS8250, XTAL_1_8432MHz)
|
||||
MCFG_INS8250_OUT_TX_CB(DEVWRITELINE(RS232_TAG, rs232_port_device, write_txd))
|
||||
MCFG_INS8250_OUT_DTR_CB(DEVWRITELINE(RS232_TAG, rs232_port_device, write_dtr))
|
||||
MCFG_INS8250_OUT_RTS_CB(DEVWRITELINE(RS232_TAG, rs232_port_device, write_rts))
|
||||
MCFG_INS8250_OUT_INT_CB(DEVWRITELINE(I8259A2_TAG, pic8259_device, ir4_w))
|
||||
|
||||
|
||||
MCFG_CENTRONICS_ADD("centronics", centronics_devices, "printer")
|
||||
MCFG_CENTRONICS_ACK_HANDLER(WRITELINE(pc1512_state, write_centronics_ack))
|
||||
MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(pc1512_state, write_centronics_busy))
|
||||
MCFG_CENTRONICS_PERROR_HANDLER(WRITELINE(pc1512_state, write_centronics_perror))
|
||||
MCFG_CENTRONICS_SELECT_HANDLER(WRITELINE(pc1512_state, write_centronics_select))
|
||||
MCFG_CENTRONICS_FAULT_HANDLER(WRITELINE(pc1512_state, write_centronics_fault))
|
||||
|
||||
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", CENTRONICS_TAG)
|
||||
|
||||
MCFG_RS232_PORT_ADD(RS232_TAG, default_rs232_devices, nullptr)
|
||||
|
@ -6,15 +6,17 @@
|
||||
#define __PC1512__
|
||||
|
||||
#include "emu.h"
|
||||
#include "bus/centronics/ctronics.h"
|
||||
#include "bus/isa/isa.h"
|
||||
#include "bus/isa/isa_cards.h"
|
||||
#include "bus/isa/pc1640_iga.h"
|
||||
#include "bus/pc1512/mouse.h"
|
||||
#include "cpu/i86/i86.h"
|
||||
#include "cpu/mcs48/mcs48.h"
|
||||
#include "formats/pc_dsk.h"
|
||||
#include "machine/am9517a.h"
|
||||
#include "machine/buffer.h"
|
||||
#include "bus/centronics/ctronics.h"
|
||||
#include "machine/ins8250.h"
|
||||
#include "bus/isa/isa.h"
|
||||
#include "bus/isa/isa_cards.h"
|
||||
#include "machine/mc146818.h"
|
||||
#include "machine/pic8259.h"
|
||||
#include "machine/pit8253.h"
|
||||
@ -23,7 +25,6 @@
|
||||
#include "machine/ram.h"
|
||||
#include "sound/speaker.h"
|
||||
#include "video/mc6845.h"
|
||||
#include "bus/isa/pc1640_iga.h"
|
||||
|
||||
#define I8086_TAG "ic120"
|
||||
#define I8087_TAG "ic119"
|
||||
@ -155,10 +156,6 @@ public:
|
||||
DECLARE_WRITE_LINE_MEMBER( dack1_w );
|
||||
DECLARE_WRITE_LINE_MEMBER( dack2_w );
|
||||
DECLARE_WRITE_LINE_MEMBER( dack3_w );
|
||||
DECLARE_INPUT_CHANGED_MEMBER( mouse_button_1_changed );
|
||||
DECLARE_INPUT_CHANGED_MEMBER( mouse_button_2_changed );
|
||||
DECLARE_INPUT_CHANGED_MEMBER( mouse_x_changed );
|
||||
DECLARE_INPUT_CHANGED_MEMBER( mouse_y_changed );
|
||||
DECLARE_FLOPPY_FORMATS( floppy_formats );
|
||||
DECLARE_WRITE_LINE_MEMBER( fdc_int_w );
|
||||
DECLARE_WRITE_LINE_MEMBER( fdc_drq_w );
|
||||
@ -167,6 +164,8 @@ public:
|
||||
DECLARE_WRITE_LINE_MEMBER(write_centronics_perror);
|
||||
DECLARE_WRITE_LINE_MEMBER(write_centronics_select);
|
||||
DECLARE_WRITE_LINE_MEMBER(write_centronics_fault);
|
||||
DECLARE_WRITE8_MEMBER( mouse_x_w );
|
||||
DECLARE_WRITE8_MEMBER( mouse_y_w );
|
||||
MC6845_UPDATE_ROW(crtc_update_row);
|
||||
|
||||
// system status register
|
||||
@ -186,6 +185,8 @@ public:
|
||||
int m_kbdata;
|
||||
|
||||
// mouse state
|
||||
UINT8 m_mouse_x_old;
|
||||
UINT8 m_mouse_y_old;
|
||||
UINT8 m_mouse_x;
|
||||
UINT8 m_mouse_y;
|
||||
|
||||
|
@ -22,7 +22,7 @@
|
||||
// MACROS / CONSTANTS
|
||||
//**************************************************************************
|
||||
|
||||
#define PC1512_KEYBOARD_TAG "pc1512_keyboard"
|
||||
#define PC1512_KEYBOARD_TAG "kb"
|
||||
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user