mirror of
https://github.com/holub/mame
synced 2025-04-23 00:39:36 +03:00
electron: Added Power Software joystick interface
This commit is contained in:
parent
5ed2b2aaaf
commit
735ab4f355
@ -696,6 +696,8 @@ if (BUSES["ELECTRON"]~=null) then
|
||||
MAME_DIR .. "src/devices/bus/electron/fbjoy.h",
|
||||
MAME_DIR .. "src/devices/bus/electron/plus3.cpp",
|
||||
MAME_DIR .. "src/devices/bus/electron/plus3.h",
|
||||
MAME_DIR .. "src/devices/bus/electron/pwrjoy.cpp",
|
||||
MAME_DIR .. "src/devices/bus/electron/pwrjoy.h",
|
||||
MAME_DIR .. "src/devices/bus/electron/m2105.cpp",
|
||||
MAME_DIR .. "src/devices/bus/electron/m2105.h",
|
||||
}
|
||||
|
@ -105,7 +105,7 @@ void electron_expansion_slot_device::device_reset()
|
||||
//#include "jafamode7.h"
|
||||
//#include "plus1.h"
|
||||
#include "plus3.h"
|
||||
//#include "pwrjoy.h"
|
||||
#include "pwrjoy.h"
|
||||
//#include "rombox.h"
|
||||
//#include "romboxplus.h"
|
||||
#include "m2105.h"
|
||||
@ -119,7 +119,7 @@ SLOT_INTERFACE_START( electron_expansion_devices )
|
||||
//SLOT_INTERFACE("jafamode7", ELECTRON_JAFAMODE7)
|
||||
//SLOT_INTERFACE("plus1", ELECTRON_PLUS1)
|
||||
SLOT_INTERFACE("plus3", ELECTRON_PLUS3)
|
||||
//SLOT_INTERFACE("pwrjoy", ELECTRON_PWRJOY)
|
||||
SLOT_INTERFACE("pwrjoy", ELECTRON_PWRJOY)
|
||||
//SLOT_INTERFACE("rombox", ELECTRON_ROMBOX)
|
||||
//SLOT_INTERFACE("romboxplus", ELECTRON_ROMBOXPLUS)
|
||||
SLOT_INTERFACE("m2105", ELECTRON_M2105)
|
||||
|
97
src/devices/bus/electron/pwrjoy.cpp
Normal file
97
src/devices/bus/electron/pwrjoy.cpp
Normal file
@ -0,0 +1,97 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:Nigel Barnes
|
||||
/**********************************************************************
|
||||
|
||||
Power Software Joystick Interface
|
||||
|
||||
**********************************************************************/
|
||||
|
||||
#include "emu.h"
|
||||
#include "pwrjoy.h"
|
||||
|
||||
//**************************************************************************
|
||||
// DEVICE DEFINITIONS
|
||||
//**************************************************************************
|
||||
|
||||
const device_type ELECTRON_PWRJOY = device_creator<electron_pwrjoy_device>;
|
||||
|
||||
|
||||
ROM_START( pwrjoy )
|
||||
// Bank 12 Expansion module operating system
|
||||
ROM_REGION(0x2000, "exp_rom", 0)
|
||||
ROM_LOAD("power_joystick.rom", 0x0000, 0x2000, CRC(44fb9360) SHA1(6d3aa85a436db952906e84839496e681ea115168))
|
||||
ROM_END
|
||||
|
||||
|
||||
static INPUT_PORTS_START( pwrjoy )
|
||||
PORT_START("JOY")
|
||||
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP) PORT_8WAY
|
||||
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN) PORT_8WAY
|
||||
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT) PORT_8WAY
|
||||
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT) PORT_8WAY
|
||||
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_BUTTON1) PORT_NAME("Fire")
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// input_ports - device-specific input ports
|
||||
//-------------------------------------------------
|
||||
|
||||
ioport_constructor electron_pwrjoy_device::device_input_ports() const
|
||||
{
|
||||
return INPUT_PORTS_NAME( pwrjoy );
|
||||
}
|
||||
|
||||
const tiny_rom_entry *electron_pwrjoy_device::device_rom_region() const
|
||||
{
|
||||
return ROM_NAME( pwrjoy );
|
||||
}
|
||||
|
||||
//**************************************************************************
|
||||
// LIVE DEVICE
|
||||
//**************************************************************************
|
||||
|
||||
//-------------------------------------------------
|
||||
// electron_pwrjoy_device - constructor
|
||||
//-------------------------------------------------
|
||||
|
||||
electron_pwrjoy_device::electron_pwrjoy_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
|
||||
: device_t(mconfig, ELECTRON_PWRJOY, "Power Software Joystick Interface", tag, owner, clock, "electron_pwrjoy", __FILE__),
|
||||
device_electron_expansion_interface(mconfig, *this),
|
||||
m_exp_rom(*this, "exp_rom"),
|
||||
m_joy(*this, "JOY")
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// device_start - device-specific startup
|
||||
//-------------------------------------------------
|
||||
|
||||
void electron_pwrjoy_device::device_start()
|
||||
{
|
||||
address_space& space = machine().device("maincpu")->memory().space(AS_PROGRAM);
|
||||
m_slot = dynamic_cast<electron_expansion_slot_device *>(owner());
|
||||
|
||||
space.install_read_handler(0xfcc0, 0xfcc0, READ8_DELEGATE(electron_pwrjoy_device, joystick_r));
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// device_reset - device-specific reset
|
||||
//-------------------------------------------------
|
||||
|
||||
void electron_pwrjoy_device::device_reset()
|
||||
{
|
||||
machine().root_device().membank("bank2")->configure_entry(15, memregion("exp_rom")->base());
|
||||
}
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
// IMPLEMENTATION
|
||||
//**************************************************************************
|
||||
|
||||
READ8_MEMBER(electron_pwrjoy_device::joystick_r)
|
||||
{
|
||||
return m_joy->read() | 0xe0;
|
||||
}
|
52
src/devices/bus/electron/pwrjoy.h
Normal file
52
src/devices/bus/electron/pwrjoy.h
Normal file
@ -0,0 +1,52 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:Nigel Barnes
|
||||
/**********************************************************************
|
||||
|
||||
Power Software Joystick Interface
|
||||
|
||||
**********************************************************************/
|
||||
|
||||
#pragma once
|
||||
|
||||
#ifndef __ELECTRON_PWRJOY__
|
||||
#define __ELECTRON_PWRJOY__
|
||||
|
||||
|
||||
#include "exp.h"
|
||||
|
||||
//**************************************************************************
|
||||
// TYPE DEFINITIONS
|
||||
//**************************************************************************
|
||||
|
||||
// ======================> electron_pwrjoy_device
|
||||
|
||||
class electron_pwrjoy_device :
|
||||
public device_t,
|
||||
public device_electron_expansion_interface
|
||||
{
|
||||
public:
|
||||
// construction/destruction
|
||||
electron_pwrjoy_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
|
||||
|
||||
// optional information overrides
|
||||
virtual const tiny_rom_entry *device_rom_region() const override;
|
||||
virtual ioport_constructor device_input_ports() const override;
|
||||
|
||||
DECLARE_READ8_MEMBER(joystick_r);
|
||||
|
||||
protected:
|
||||
// device-level overrides
|
||||
virtual void device_start() override;
|
||||
virtual void device_reset() override;
|
||||
|
||||
private:
|
||||
required_memory_region m_exp_rom;
|
||||
required_ioport m_joy;
|
||||
};
|
||||
|
||||
|
||||
// device type definition
|
||||
extern const device_type ELECTRON_PWRJOY;
|
||||
|
||||
|
||||
#endif
|
Loading…
Reference in New Issue
Block a user