mirror of
https://github.com/holub/mame
synced 2025-06-15 00:47:03 +03:00
electron: Added First Byte joystick interface
This commit is contained in:
parent
f224898523
commit
3ee922ace8
@ -692,6 +692,8 @@ if (BUSES["ELECTRON"]~=null) then
|
|||||||
files {
|
files {
|
||||||
MAME_DIR .. "src/devices/bus/electron/exp.cpp",
|
MAME_DIR .. "src/devices/bus/electron/exp.cpp",
|
||||||
MAME_DIR .. "src/devices/bus/electron/exp.h",
|
MAME_DIR .. "src/devices/bus/electron/exp.h",
|
||||||
|
MAME_DIR .. "src/devices/bus/electron/fbjoy.cpp",
|
||||||
|
MAME_DIR .. "src/devices/bus/electron/fbjoy.h",
|
||||||
MAME_DIR .. "src/devices/bus/electron/plus3.cpp",
|
MAME_DIR .. "src/devices/bus/electron/plus3.cpp",
|
||||||
MAME_DIR .. "src/devices/bus/electron/plus3.h",
|
MAME_DIR .. "src/devices/bus/electron/plus3.h",
|
||||||
MAME_DIR .. "src/devices/bus/electron/m2105.cpp",
|
MAME_DIR .. "src/devices/bus/electron/m2105.cpp",
|
||||||
|
@ -100,21 +100,28 @@ void electron_expansion_slot_device::device_reset()
|
|||||||
|
|
||||||
|
|
||||||
// slot devices
|
// slot devices
|
||||||
|
#include "fbjoy.h"
|
||||||
|
//#include "fbprint.h"
|
||||||
|
//#include "jafamode7.h"
|
||||||
//#include "plus1.h"
|
//#include "plus1.h"
|
||||||
#include "plus3.h"
|
#include "plus3.h"
|
||||||
//#include "aplus3.h"
|
//#include "pwrjoy.h"
|
||||||
//#include "aplus5.h"
|
//#include "rombox.h"
|
||||||
//#include "slogger.h"
|
//#include "romboxplus.h"
|
||||||
//#include "fbjoy.h"
|
|
||||||
#include "m2105.h"
|
#include "m2105.h"
|
||||||
|
//#include "voxbox.h"
|
||||||
|
|
||||||
|
|
||||||
SLOT_INTERFACE_START( electron_expansion_devices )
|
SLOT_INTERFACE_START( electron_expansion_devices )
|
||||||
|
//SLOT_INTERFACE("ap1", ELECTRON_AP1)
|
||||||
|
SLOT_INTERFACE("fbjoy", ELECTRON_FBJOY)
|
||||||
|
//SLOT_INTERFACE("fbprint", ELECTRON_FBPRINT)
|
||||||
|
//SLOT_INTERFACE("jafamode7", ELECTRON_JAFAMODE7)
|
||||||
//SLOT_INTERFACE("plus1", ELECTRON_PLUS1)
|
//SLOT_INTERFACE("plus1", ELECTRON_PLUS1)
|
||||||
SLOT_INTERFACE("plus3", ELECTRON_PLUS3)
|
SLOT_INTERFACE("plus3", ELECTRON_PLUS3)
|
||||||
//SLOT_INTERFACE("aplus3", ELECTRON_APLUS3)
|
//SLOT_INTERFACE("pwrjoy", ELECTRON_PWRJOY)
|
||||||
//SLOT_INTERFACE("aplus5", ELECTRON_APLUS5)
|
//SLOT_INTERFACE("rombox", ELECTRON_ROMBOX)
|
||||||
//SLOT_INTERFACE("slogger", ELECTRON_SLOGGER)
|
//SLOT_INTERFACE("romboxplus", ELECTRON_ROMBOXPLUS)
|
||||||
//SLOT_INTERFACE("fbjoy", ELECTRON_FBJOY)
|
|
||||||
SLOT_INTERFACE("m2105", ELECTRON_M2105)
|
SLOT_INTERFACE("m2105", ELECTRON_M2105)
|
||||||
|
//SLOT_INTERFACE("voxbox", ELECTRON_VOXBOX)
|
||||||
SLOT_INTERFACE_END
|
SLOT_INTERFACE_END
|
||||||
|
86
src/devices/bus/electron/fbjoy.cpp
Normal file
86
src/devices/bus/electron/fbjoy.cpp
Normal file
@ -0,0 +1,86 @@
|
|||||||
|
// license:BSD-3-Clause
|
||||||
|
// copyright-holders:Nigel Barnes
|
||||||
|
/**********************************************************************
|
||||||
|
|
||||||
|
First Byte Switched Joystick Interface
|
||||||
|
|
||||||
|
http://chrisacorns.computinghistory.org.uk/8bit_Upgrades/FirstByte_JoystickIF.html
|
||||||
|
|
||||||
|
**********************************************************************/
|
||||||
|
|
||||||
|
#include "emu.h"
|
||||||
|
#include "fbjoy.h"
|
||||||
|
|
||||||
|
//**************************************************************************
|
||||||
|
// DEVICE DEFINITIONS
|
||||||
|
//**************************************************************************
|
||||||
|
|
||||||
|
const device_type ELECTRON_FBJOY = device_creator<electron_fbjoy_device>;
|
||||||
|
|
||||||
|
|
||||||
|
static INPUT_PORTS_START( fbjoy )
|
||||||
|
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_fbjoy_device::device_input_ports() const
|
||||||
|
{
|
||||||
|
return INPUT_PORTS_NAME( fbjoy );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//**************************************************************************
|
||||||
|
// LIVE DEVICE
|
||||||
|
//**************************************************************************
|
||||||
|
|
||||||
|
//-------------------------------------------------
|
||||||
|
// electron_fbjoy_device - constructor
|
||||||
|
//-------------------------------------------------
|
||||||
|
|
||||||
|
electron_fbjoy_device::electron_fbjoy_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
|
||||||
|
: device_t(mconfig, ELECTRON_FBJOY, "First Byte Joystick Interface", tag, owner, clock, "electron_fbjoy", __FILE__),
|
||||||
|
device_electron_expansion_interface(mconfig, *this),
|
||||||
|
m_joy(*this, "JOY")
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//-------------------------------------------------
|
||||||
|
// device_start - device-specific startup
|
||||||
|
//-------------------------------------------------
|
||||||
|
|
||||||
|
void electron_fbjoy_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_fbjoy_device, joystick_r));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//-------------------------------------------------
|
||||||
|
// device_reset - device-specific reset
|
||||||
|
//-------------------------------------------------
|
||||||
|
|
||||||
|
void electron_fbjoy_device::device_reset()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//**************************************************************************
|
||||||
|
// IMPLEMENTATION
|
||||||
|
//**************************************************************************
|
||||||
|
|
||||||
|
READ8_MEMBER(electron_fbjoy_device::joystick_r)
|
||||||
|
{
|
||||||
|
return m_joy->read() | 0xe0;
|
||||||
|
}
|
52
src/devices/bus/electron/fbjoy.h
Normal file
52
src/devices/bus/electron/fbjoy.h
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
// license:BSD-3-Clause
|
||||||
|
// copyright-holders:Nigel Barnes
|
||||||
|
/**********************************************************************
|
||||||
|
|
||||||
|
First Byte Switched Joystick Interface
|
||||||
|
|
||||||
|
http://chrisacorns.computinghistory.org.uk/8bit_Upgrades/FirstByte_JoystickIF.html
|
||||||
|
|
||||||
|
**********************************************************************/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#ifndef __ELECTRON_FBJOY__
|
||||||
|
#define __ELECTRON_FBJOY__
|
||||||
|
|
||||||
|
|
||||||
|
#include "exp.h"
|
||||||
|
|
||||||
|
//**************************************************************************
|
||||||
|
// TYPE DEFINITIONS
|
||||||
|
//**************************************************************************
|
||||||
|
|
||||||
|
// ======================> electron_fbjoy_device
|
||||||
|
|
||||||
|
class electron_fbjoy_device :
|
||||||
|
public device_t,
|
||||||
|
public device_electron_expansion_interface
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
// construction/destruction
|
||||||
|
electron_fbjoy_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
|
||||||
|
|
||||||
|
// optional information overrides
|
||||||
|
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_ioport m_joy;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// device type definition
|
||||||
|
extern const device_type ELECTRON_FBJOY;
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
Loading…
Reference in New Issue
Block a user