diff options
-rw-r--r-- | .gitattributes | 2 | ||||
-rw-r--r-- | src/emu/emu.mak | 1 | ||||
-rw-r--r-- | src/emu/machine/m6m80011ap.c | 92 | ||||
-rw-r--r-- | src/emu/machine/m6m80011ap.h | 62 | ||||
-rw-r--r-- | src/mame/drivers/nss.c | 29 | ||||
-rw-r--r-- | src/mame/etc/template_device.h | 2 |
6 files changed, 165 insertions, 23 deletions
diff --git a/.gitattributes b/.gitattributes index ed708bdba50..50bb9f60fb8 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1102,6 +1102,8 @@ src/emu/machine/ldv1000.c svneol=native#text/plain src/emu/machine/ldv1000.h svneol=native#text/plain src/emu/machine/ldvp931.c svneol=native#text/plain src/emu/machine/ldvp931.h svneol=native#text/plain +src/emu/machine/m6m80011ap.c svneol=native#text/plain +src/emu/machine/m6m80011ap.h svneol=native#text/plain src/emu/machine/matsucd.c svneol=native#text/plain src/emu/machine/matsucd.h svneol=native#text/plain src/emu/machine/mb14241.c svneol=native#text/plain diff --git a/src/emu/emu.mak b/src/emu/emu.mak index 7fb080c4590..8e25353c25c 100644 --- a/src/emu/emu.mak +++ b/src/emu/emu.mak @@ -203,6 +203,7 @@ EMUMACHINEOBJS = \ $(EMUMACHINE)/ldpr8210.o \ $(EMUMACHINE)/ldv1000.o \ $(EMUMACHINE)/ldvp931.o \ + $(EMUMACHINE)/m6m80011ap.o \ $(EMUMACHINE)/matsucd.o \ $(EMUMACHINE)/mb14241.o \ $(EMUMACHINE)/mb3773.o \ diff --git a/src/emu/machine/m6m80011ap.c b/src/emu/machine/m6m80011ap.c new file mode 100644 index 00000000000..eb481e8d751 --- /dev/null +++ b/src/emu/machine/m6m80011ap.c @@ -0,0 +1,92 @@ +/*************************************************************************** + +Template for skeleton device + +***************************************************************************/ + +#include "emu.h" +#include "machine/m6m80011ap.h" + + + +//************************************************************************** +// GLOBAL VARIABLES +//************************************************************************** + +// device type definition +const device_type M6M80011AP = &device_creator<m6m80011ap_device>; + + +//************************************************************************** +// LIVE DEVICE +//************************************************************************** + +//------------------------------------------------- +// m6m80011ap_device - constructor +//------------------------------------------------- + +m6m80011ap_device::m6m80011ap_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) + : device_t(mconfig, M6M80011AP, "m6m80011ap", tag, owner, clock) +{ + +} + + +//------------------------------------------------- +// device_validity_check - perform validity checks +// on this device +//------------------------------------------------- + +void m6m80011ap_device::device_validity_check(validity_checker &valid) const +{ +} + + +//------------------------------------------------- +// device_start - device-specific startup +//------------------------------------------------- + +void m6m80011ap_device::device_start() +{ + +} + + +//------------------------------------------------- +// device_reset - device-specific reset +//------------------------------------------------- + +void m6m80011ap_device::device_reset() +{ +} + + +//************************************************************************** +// READ/WRITE HANDLERS +//************************************************************************** + + +READ_LINE_MEMBER( m6m80011ap_device::read_bit ) +{ + return 0; +} + +READ_LINE_MEMBER( m6m80011ap_device::ready_line ) +{ + return 1; // TODO +} + +WRITE_LINE_MEMBER( m6m80011ap_device::set_cs_line ) +{ + +} + +WRITE_LINE_MEMBER( m6m80011ap_device::set_clock_line ) +{ + +} + +WRITE_LINE_MEMBER( m6m80011ap_device::write_bit ) +{ + +} diff --git a/src/emu/machine/m6m80011ap.h b/src/emu/machine/m6m80011ap.h new file mode 100644 index 00000000000..4edae748fd1 --- /dev/null +++ b/src/emu/machine/m6m80011ap.h @@ -0,0 +1,62 @@ +/*************************************************************************** + +Template for skeleton device + +***************************************************************************/ + +#pragma once + +#ifndef __M6M80011APDEV_H__ +#define __M6M80011APDEV_H__ + + + +//************************************************************************** +// INTERFACE CONFIGURATION MACROS +//************************************************************************** + +/* TODO: frequency */ +#define MCFG_M6M80011AP_ADD(_tag) \ + MCFG_DEVICE_ADD(_tag, M6M80011AP, XTAL_32_768kHz) \ + + +//************************************************************************** +// TYPE DEFINITIONS +//************************************************************************** + +// ======================> m6m80011ap_device + +class m6m80011ap_device : public device_t +{ +public: + // construction/destruction + m6m80011ap_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + + // I/O operations + READ_LINE_MEMBER( read_bit ); + READ_LINE_MEMBER( ready_line ); + WRITE_LINE_MEMBER( set_cs_line ); + WRITE_LINE_MEMBER( set_clock_line ); + WRITE_LINE_MEMBER( write_bit ); + +protected: + // device-level overrides + virtual void device_validity_check(validity_checker &valid) const; + virtual void device_start(); + virtual void device_reset(); + +}; + + +// device type definition +extern const device_type M6M80011AP; + + + +//************************************************************************** +// GLOBAL VARIABLES +//************************************************************************** + + + +#endif diff --git a/src/mame/drivers/nss.c b/src/mame/drivers/nss.c index c7db7c5f632..925e060c33d 100644 --- a/src/mame/drivers/nss.c +++ b/src/mame/drivers/nss.c @@ -280,7 +280,7 @@ Contra III CONTRA_III_1 TC574000 CONTRA_III_0 TC574000 GAME1_NSSU #include "emu.h" #include "cpu/z80/z80.h" -#include "machine/eeprom.h" +#include "machine/m6m80011ap.h" #include "machine/s3520cf.h" #include "machine/rp5h01.h" #include "video/m50458.h" @@ -606,20 +606,6 @@ static ADDRESS_MAP_START( bios_io_map, AS_IO, 8, nss_state ) AM_RANGE(0x07, 0x07) AM_WRITENOP // Pad watchdog ADDRESS_MAP_END -/* Mitsubishi M6M80011 */ -static const eeprom_interface nss_eeprom_intf = -{ - 8, /* address bits */ - 16, /* data bits */ - "*10101000", /* read command */ - "*10100100", /* write command */ - 0, /* erase command */ - "*10100000", /* lock command */ - "*10100011" /* unlock command*/ - /* "10101001" TODO: status output? */ -}; - - static MACHINE_START( nss ) { nss_state *state = machine.driver_data<nss_state>(); @@ -649,14 +635,14 @@ static INPUT_PORTS_START( snes ) PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON7 ) PORT_NAME("Game 1 Button") PORT_START("EEPROMIN") - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) // EEPROM Ready + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("m6m80011ap", m6m80011ap_device, read_bit) + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("m6m80011ap", m6m80011ap_device, ready_line ) PORT_BIT( 0x3f, IP_ACTIVE_HIGH, IPT_UNKNOWN ) PORT_START("EEPROMOUT") - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_clock_line) - PORT_BIT( 0x08, IP_ACTIVE_HIGH,IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, write_bit) - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_device, set_cs_line) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("m6m80011ap", m6m80011ap_device, set_clock_line) + PORT_BIT( 0x08, IP_ACTIVE_HIGH,IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("m6m80011ap", m6m80011ap_device, write_bit) + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("m6m80011ap", m6m80011ap_device, set_cs_line) PORT_START("RTC_OSD") PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("m50458", m50458_device, set_clock_line) @@ -844,6 +830,7 @@ static MACHINE_CONFIG_DERIVED( nss, snes ) MCFG_M50458_ADD("m50458",4000000) /* TODO: clock */ MCFG_S3520CF_ADD("s3520cf") /* RTC */ MCFG_RP5H01_ADD("rp5h01") + MCFG_M6M80011AP_ADD("m6m80011ap") /* TODO: the screen should actually superimpose, but for the time being let's just separate outputs for now */ MCFG_DEFAULT_LAYOUT(layout_dualhsxs) @@ -857,8 +844,6 @@ static MACHINE_CONFIG_DERIVED( nss, snes ) MCFG_SCREEN_VISIBLE_AREA(0*8, 24*12-1, 0*8, 12*18-1) MCFG_SCREEN_UPDATE_DRIVER(nss_state,screen_update) - MCFG_EEPROM_ADD("eeprom", nss_eeprom_intf) - MCFG_MACHINE_START( nss ) MACHINE_CONFIG_END diff --git a/src/mame/etc/template_device.h b/src/mame/etc/template_device.h index b8642d827f9..b7eb0632cee 100644 --- a/src/mame/etc/template_device.h +++ b/src/mame/etc/template_device.h @@ -44,7 +44,7 @@ protected: // device type definition -extern const device_type xxx; +extern const device_type XXX; |