mirror of
https://github.com/holub/mame
synced 2025-07-04 17:38:08 +03:00
Split eeprom.c into a base class base_eeprom_device and a serial-specific
subclass serial_eeprom_device. Moved the latter into its own file eepromser.c and significantly cleaned up/simplified the code. The new code should be functionally the same as the previous code, but expect that to change soon. As a side-effect, the size and bus width of the EEPROM is now specified in the ADD macro rather than in the interface structure.
This commit is contained in:
parent
3f994bce85
commit
b963a48cdf
2
.gitattributes
vendored
2
.gitattributes
vendored
@ -1233,6 +1233,8 @@ src/emu/machine/e0516.c svneol=native#text/plain
|
|||||||
src/emu/machine/e0516.h svneol=native#text/plain
|
src/emu/machine/e0516.h svneol=native#text/plain
|
||||||
src/emu/machine/eeprom.c svneol=native#text/plain
|
src/emu/machine/eeprom.c svneol=native#text/plain
|
||||||
src/emu/machine/eeprom.h svneol=native#text/plain
|
src/emu/machine/eeprom.h svneol=native#text/plain
|
||||||
|
src/emu/machine/eepromser.c svneol=native#text/plain
|
||||||
|
src/emu/machine/eepromser.h svneol=native#text/plain
|
||||||
src/emu/machine/er2055.c svneol=native#text/plain
|
src/emu/machine/er2055.c svneol=native#text/plain
|
||||||
src/emu/machine/er2055.h svneol=native#text/plain
|
src/emu/machine/er2055.h svneol=native#text/plain
|
||||||
src/emu/machine/er59256.c svneol=native#text/plain
|
src/emu/machine/er59256.c svneol=native#text/plain
|
||||||
|
@ -81,6 +81,7 @@ const UINT64 device_state_entry::k_decimal_divisor[] =
|
|||||||
device_state_entry::device_state_entry(int index, const char *symbol, void *dataptr, UINT8 size)
|
device_state_entry::device_state_entry(int index, const char *symbol, void *dataptr, UINT8 size)
|
||||||
: m_next(NULL),
|
: m_next(NULL),
|
||||||
m_index(index),
|
m_index(index),
|
||||||
|
m_dataptr(dataptr),
|
||||||
m_datamask(0),
|
m_datamask(0),
|
||||||
m_datasize(size),
|
m_datasize(size),
|
||||||
m_flags(0),
|
m_flags(0),
|
||||||
@ -88,9 +89,6 @@ device_state_entry::device_state_entry(int index, const char *symbol, void *data
|
|||||||
m_default_format(true),
|
m_default_format(true),
|
||||||
m_sizemask(0)
|
m_sizemask(0)
|
||||||
{
|
{
|
||||||
// set the data pointer
|
|
||||||
m_dataptr.v = dataptr;
|
|
||||||
|
|
||||||
// convert the size to a mask
|
// convert the size to a mask
|
||||||
assert(size == 1 || size == 2 || size == 4 || size == 8);
|
assert(size == 1 || size == 2 || size == 4 || size == 8);
|
||||||
if (size == 1)
|
if (size == 1)
|
||||||
|
@ -85,6 +85,7 @@ class running_machine;
|
|||||||
// generic_ptr is a union of pointers to various sizes
|
// generic_ptr is a union of pointers to various sizes
|
||||||
union generic_ptr
|
union generic_ptr
|
||||||
{
|
{
|
||||||
|
generic_ptr(void *value) { v = value; }
|
||||||
void * v;
|
void * v;
|
||||||
INT8 * i8;
|
INT8 * i8;
|
||||||
UINT8 * u8;
|
UINT8 * u8;
|
||||||
|
@ -2,7 +2,38 @@
|
|||||||
|
|
||||||
eeprom.c
|
eeprom.c
|
||||||
|
|
||||||
Serial eeproms.
|
Base class for EEPROM devices.
|
||||||
|
|
||||||
|
****************************************************************************
|
||||||
|
|
||||||
|
Copyright Aaron Giles
|
||||||
|
All rights reserved.
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
modification, are permitted provided that the following conditions are
|
||||||
|
met:
|
||||||
|
|
||||||
|
* Redistributions of source code must retain the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer.
|
||||||
|
* Redistributions in binary form must reproduce the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer in
|
||||||
|
the documentation and/or other materials provided with the
|
||||||
|
distribution.
|
||||||
|
* Neither the name 'MAME' nor the names of its contributors may be
|
||||||
|
used to endorse or promote products derived from this software
|
||||||
|
without specific prior written permission.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY AARON GILES ''AS IS'' AND ANY EXPRESS OR
|
||||||
|
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
|
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
|
DISCLAIMED. IN NO EVENT SHALL AARON GILES BE LIABLE FOR ANY DIRECT,
|
||||||
|
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||||
|
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||||
|
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||||
|
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
||||||
|
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
|
||||||
|
IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
|
POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
@ -24,61 +55,12 @@
|
|||||||
// GLOBAL VARIABLES
|
// GLOBAL VARIABLES
|
||||||
//**************************************************************************
|
//**************************************************************************
|
||||||
|
|
||||||
// device type definition
|
static ADDRESS_MAP_START( eeprom_map8, AS_PROGRAM, 8, base_eeprom_device )
|
||||||
const device_type SERIAL_EEPROM = &device_creator<serial_eeprom_device>;
|
|
||||||
|
|
||||||
const serial_eeprom_interface eeprom_interface_93C46 =
|
|
||||||
{
|
|
||||||
6, // address bits 6
|
|
||||||
16, // data bits 16
|
|
||||||
"*110", // read 1 10 aaaaaa
|
|
||||||
"*101", // write 1 01 aaaaaa dddddddddddddddd
|
|
||||||
"*111", // erase 1 11 aaaaaa
|
|
||||||
"*10000xxxx", // lock 1 00 00xxxx
|
|
||||||
"*10011xxxx", // unlock 1 00 11xxxx
|
|
||||||
1, // enable_multi_read
|
|
||||||
0 // reset_delay
|
|
||||||
// "*10001xxxx" // write all 1 00 01xxxx dddddddddddddddd
|
|
||||||
// "*10010xxxx" // erase all 1 00 10xxxx
|
|
||||||
};
|
|
||||||
|
|
||||||
const serial_eeprom_interface eeprom_interface_93C46_8bit =
|
|
||||||
{
|
|
||||||
7, // address bits 7
|
|
||||||
8, // data bits 8
|
|
||||||
"*110", // read 1 10 aaaaaa
|
|
||||||
"*101", // write 1 01 aaaaaa dddddddd
|
|
||||||
"*111", // erase 1 11 aaaaaa
|
|
||||||
"*10000xxxx", // lock 1 00 00xxxx
|
|
||||||
"*10011xxxx", // unlock 1 00 11xxxx
|
|
||||||
1, // enable_multi_read
|
|
||||||
0 // reset_delay
|
|
||||||
// "*10001xxxx" // write all 1 00 01xxxx dddddddd
|
|
||||||
// "*10010xxxx" // erase all 1 00 10xxxx
|
|
||||||
};
|
|
||||||
|
|
||||||
const serial_eeprom_interface eeprom_interface_93C66B =
|
|
||||||
{
|
|
||||||
8, // address bits
|
|
||||||
16, // data bits
|
|
||||||
"*110", // read command
|
|
||||||
"*101", // write command
|
|
||||||
"*111", // erase command
|
|
||||||
"*10000xxxxxx", // lock command
|
|
||||||
"*10011xxxxxx", // unlock command
|
|
||||||
1, // enable_multi_read
|
|
||||||
0 // reset_delay
|
|
||||||
// "*10001xxxxxx", // write all
|
|
||||||
// "*10010xxxxxx", // erase all
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
static ADDRESS_MAP_START( eeprom_map8, AS_PROGRAM, 8, serial_eeprom_device )
|
|
||||||
AM_RANGE(0x0000, 0x0fff) AM_RAM
|
AM_RANGE(0x0000, 0x0fff) AM_RAM
|
||||||
ADDRESS_MAP_END
|
ADDRESS_MAP_END
|
||||||
|
|
||||||
|
|
||||||
static ADDRESS_MAP_START( eeprom_map16, AS_PROGRAM, 16, serial_eeprom_device )
|
static ADDRESS_MAP_START( eeprom_map16, AS_PROGRAM, 16, base_eeprom_device )
|
||||||
AM_RANGE(0x0000, 0x07ff) AM_RAM
|
AM_RANGE(0x0000, 0x07ff) AM_RAM
|
||||||
ADDRESS_MAP_END
|
ADDRESS_MAP_END
|
||||||
|
|
||||||
@ -89,40 +71,43 @@ ADDRESS_MAP_END
|
|||||||
//**************************************************************************
|
//**************************************************************************
|
||||||
|
|
||||||
//-------------------------------------------------
|
//-------------------------------------------------
|
||||||
// serial_eeprom_device - constructor
|
// base_eeprom_device - constructor
|
||||||
//-------------------------------------------------
|
//-------------------------------------------------
|
||||||
|
|
||||||
serial_eeprom_device::serial_eeprom_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
|
base_eeprom_device::base_eeprom_device(const machine_config &mconfig, device_type devtype, const char *name, const char *tag, device_t *owner, const char *shortname, const char *file)
|
||||||
: device_t(mconfig, SERIAL_EEPROM, "Serial EEPROM", tag, owner, clock, "seeprom", __FILE__),
|
: device_t(mconfig, devtype, name, tag, owner, 0, shortname, file),
|
||||||
device_memory_interface(mconfig, *this),
|
device_memory_interface(mconfig, *this),
|
||||||
device_nvram_interface(mconfig, *this),
|
device_nvram_interface(mconfig, *this),
|
||||||
|
m_cells(0),
|
||||||
|
m_address_bits(0),
|
||||||
|
m_data_bits(0),
|
||||||
|
m_default_data(0),
|
||||||
m_default_data_size(0),
|
m_default_data_size(0),
|
||||||
m_default_value(0),
|
m_default_value(0),
|
||||||
m_serial_count(0),
|
m_default_value_set(false)
|
||||||
m_data_buffer(0),
|
|
||||||
m_read_address(0),
|
|
||||||
m_clock_count(0),
|
|
||||||
m_latch(0),
|
|
||||||
m_reset_line(CLEAR_LINE),
|
|
||||||
m_clock_line(CLEAR_LINE),
|
|
||||||
m_sending(0),
|
|
||||||
m_locked(false),
|
|
||||||
m_reset_counter(0)
|
|
||||||
{
|
{
|
||||||
m_default_data.u8 = NULL;
|
|
||||||
memset(downcast<serial_eeprom_interface *>(this), 0, sizeof(serial_eeprom_interface));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//-------------------------------------------------
|
//-------------------------------------------------
|
||||||
// static_set_interface - configuration helper
|
// static_set_default_data - configuration helpers
|
||||||
// to set the interface
|
// to set the default data
|
||||||
//-------------------------------------------------
|
//-------------------------------------------------
|
||||||
|
|
||||||
void serial_eeprom_device::static_set_interface(device_t &device, const serial_eeprom_interface &interface)
|
void base_eeprom_device::static_set_size(device_t &device, int cells, int cellbits)
|
||||||
{
|
{
|
||||||
serial_eeprom_device &eeprom = downcast<serial_eeprom_device &>(device);
|
base_eeprom_device &eeprom = downcast<base_eeprom_device &>(device);
|
||||||
static_cast<serial_eeprom_interface &>(eeprom) = interface;
|
eeprom.m_cells = cells;
|
||||||
|
eeprom.m_data_bits = cellbits;
|
||||||
|
|
||||||
|
// compute address bits (validation checks verify cells was an even power of 2)
|
||||||
|
cells--;
|
||||||
|
eeprom.m_address_bits = 0;
|
||||||
|
while (cells != 0)
|
||||||
|
{
|
||||||
|
cells >>= 1;
|
||||||
|
eeprom.m_address_bits++;
|
||||||
|
}
|
||||||
|
|
||||||
// describe our address space
|
// describe our address space
|
||||||
if (eeprom.m_data_bits == 8)
|
if (eeprom.m_data_bits == 8)
|
||||||
@ -137,18 +122,18 @@ void serial_eeprom_device::static_set_interface(device_t &device, const serial_e
|
|||||||
// to set the default data
|
// to set the default data
|
||||||
//-------------------------------------------------
|
//-------------------------------------------------
|
||||||
|
|
||||||
void serial_eeprom_device::static_set_default_data(device_t &device, const UINT8 *data, UINT32 size)
|
void base_eeprom_device::static_set_default_data(device_t &device, const UINT8 *data, UINT32 size)
|
||||||
{
|
{
|
||||||
serial_eeprom_device &eeprom = downcast<serial_eeprom_device &>(device);
|
base_eeprom_device &eeprom = downcast<base_eeprom_device &>(device);
|
||||||
assert(eeprom.m_data_bits == 8);
|
assert(eeprom.m_cellbits == 8);
|
||||||
eeprom.m_default_data.u8 = const_cast<UINT8 *>(data);
|
eeprom.m_default_data.u8 = const_cast<UINT8 *>(data);
|
||||||
eeprom.m_default_data_size = size;
|
eeprom.m_default_data_size = size;
|
||||||
}
|
}
|
||||||
|
|
||||||
void serial_eeprom_device::static_set_default_data(device_t &device, const UINT16 *data, UINT32 size)
|
void base_eeprom_device::static_set_default_data(device_t &device, const UINT16 *data, UINT32 size)
|
||||||
{
|
{
|
||||||
serial_eeprom_device &eeprom = downcast<serial_eeprom_device &>(device);
|
base_eeprom_device &eeprom = downcast<base_eeprom_device &>(device);
|
||||||
assert(eeprom.m_data_bits == 16);
|
assert(eeprom.m_cellbits == 16);
|
||||||
eeprom.m_default_data.u16 = const_cast<UINT16 *>(data);
|
eeprom.m_default_data.u16 = const_cast<UINT16 *>(data);
|
||||||
eeprom.m_default_data_size = size / 2;
|
eeprom.m_default_data_size = size / 2;
|
||||||
}
|
}
|
||||||
@ -159,9 +144,37 @@ void serial_eeprom_device::static_set_default_data(device_t &device, const UINT1
|
|||||||
// to set the default value
|
// to set the default value
|
||||||
//-------------------------------------------------
|
//-------------------------------------------------
|
||||||
|
|
||||||
void serial_eeprom_device::static_set_default_value(device_t &device, UINT16 value)
|
void base_eeprom_device::static_set_default_value(device_t &device, UINT32 value)
|
||||||
{
|
{
|
||||||
downcast<serial_eeprom_device &>(device).m_default_value = 0x10000 | value;
|
base_eeprom_device &eeprom = downcast<base_eeprom_device &>(device);
|
||||||
|
eeprom.m_default_value = value;
|
||||||
|
eeprom.m_default_value_set = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//-------------------------------------------------
|
||||||
|
// read_data - read data at the given address
|
||||||
|
//-------------------------------------------------
|
||||||
|
|
||||||
|
UINT32 base_eeprom_device::read_data(offs_t address)
|
||||||
|
{
|
||||||
|
if (m_data_bits == 16)
|
||||||
|
return m_addrspace[0]->read_word(address * 2);
|
||||||
|
else
|
||||||
|
return m_addrspace[0]->read_byte(address);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//-------------------------------------------------
|
||||||
|
// write_data - write data at the given address
|
||||||
|
//-------------------------------------------------
|
||||||
|
|
||||||
|
void base_eeprom_device::write_data(offs_t address, UINT32 data)
|
||||||
|
{
|
||||||
|
if (m_data_bits == 16)
|
||||||
|
m_addrspace[0]->write_word(address * 2, data);
|
||||||
|
else
|
||||||
|
m_addrspace[0]->write_byte(address, data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -170,10 +183,15 @@ void serial_eeprom_device::static_set_default_value(device_t &device, UINT16 val
|
|||||||
// on this device
|
// on this device
|
||||||
//-------------------------------------------------
|
//-------------------------------------------------
|
||||||
|
|
||||||
void serial_eeprom_device::device_validity_check(validity_checker &valid) const
|
void base_eeprom_device::device_validity_check(validity_checker &valid) const
|
||||||
{
|
{
|
||||||
|
// ensure the number of cells is an even power of 2
|
||||||
|
if (m_cells != (1 << m_address_bits))
|
||||||
|
mame_printf_error("Invalid EEPROM size %d specified\n", m_cells);
|
||||||
|
|
||||||
|
// ensure only the sizes we support are requested
|
||||||
if (m_data_bits != 8 && m_data_bits != 16)
|
if (m_data_bits != 8 && m_data_bits != 16)
|
||||||
mame_printf_error("Invalid data width %d specified\n", m_data_bits);
|
mame_printf_error("Invalid EEPROM data width %d specified\n", m_data_bits);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -181,20 +199,8 @@ void serial_eeprom_device::device_validity_check(validity_checker &valid) const
|
|||||||
// device_start - device-specific startup
|
// device_start - device-specific startup
|
||||||
//-------------------------------------------------
|
//-------------------------------------------------
|
||||||
|
|
||||||
void serial_eeprom_device::device_start()
|
void base_eeprom_device::device_start()
|
||||||
{
|
{
|
||||||
m_locked = (m_cmd_unlock != NULL);
|
|
||||||
|
|
||||||
save_pointer(NAME(m_serial_buffer), SERIAL_BUFFER_LENGTH);
|
|
||||||
save_item(NAME(m_clock_line));
|
|
||||||
save_item(NAME(m_reset_line));
|
|
||||||
save_item(NAME(m_locked));
|
|
||||||
save_item(NAME(m_serial_count));
|
|
||||||
save_item(NAME(m_latch));
|
|
||||||
save_item(NAME(m_reset_counter));
|
|
||||||
save_item(NAME(m_clock_count));
|
|
||||||
save_item(NAME(m_data_buffer));
|
|
||||||
save_item(NAME(m_read_address));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -202,7 +208,7 @@ void serial_eeprom_device::device_start()
|
|||||||
// device_reset - device-specific reset
|
// device_reset - device-specific reset
|
||||||
//-------------------------------------------------
|
//-------------------------------------------------
|
||||||
|
|
||||||
void serial_eeprom_device::device_reset()
|
void base_eeprom_device::device_reset()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -212,7 +218,7 @@ void serial_eeprom_device::device_reset()
|
|||||||
// any address spaces owned by this device
|
// any address spaces owned by this device
|
||||||
//-------------------------------------------------
|
//-------------------------------------------------
|
||||||
|
|
||||||
const address_space_config *serial_eeprom_device::memory_space_config(address_spacenum spacenum) const
|
const address_space_config *base_eeprom_device::memory_space_config(address_spacenum spacenum) const
|
||||||
{
|
{
|
||||||
return (spacenum == 0) ? &m_space_config : NULL;
|
return (spacenum == 0) ? &m_space_config : NULL;
|
||||||
}
|
}
|
||||||
@ -223,31 +229,30 @@ const address_space_config *serial_eeprom_device::memory_space_config(address_sp
|
|||||||
// its default state
|
// its default state
|
||||||
//-------------------------------------------------
|
//-------------------------------------------------
|
||||||
|
|
||||||
void serial_eeprom_device::nvram_default()
|
void base_eeprom_device::nvram_default()
|
||||||
{
|
{
|
||||||
UINT32 eeprom_length = 1 << m_address_bits;
|
UINT32 eeprom_length = 1 << m_address_bits;
|
||||||
UINT32 eeprom_bytes = eeprom_length * m_data_bits / 8;
|
UINT32 eeprom_bytes = eeprom_length * m_data_bits / 8;
|
||||||
|
|
||||||
/* initialize to the default value */
|
// initialize to the default value
|
||||||
UINT16 default_value = 0xffff;
|
UINT32 default_value = m_default_value_set ? m_default_value : ~0;
|
||||||
if (m_default_value != 0)
|
|
||||||
default_value = m_default_value;
|
|
||||||
for (offs_t offs = 0; offs < eeprom_length; offs++)
|
for (offs_t offs = 0; offs < eeprom_length; offs++)
|
||||||
if (m_data_bits == 8)
|
if (m_data_bits == 8)
|
||||||
m_addrspace[0]->write_byte(offs, default_value);
|
m_addrspace[0]->write_byte(offs, default_value);
|
||||||
else
|
else
|
||||||
m_addrspace[0]->write_word(offs * 2, default_value);
|
m_addrspace[0]->write_word(offs * 2, default_value);
|
||||||
|
|
||||||
/* handle hard-coded data from the driver */
|
// handle hard-coded data from the driver
|
||||||
if (m_default_data.u8 != NULL)
|
if (m_default_data.u8 != NULL)
|
||||||
for (offs_t offs = 0; offs < m_default_data_size; offs++) {
|
for (offs_t offs = 0; offs < m_default_data_size; offs++)
|
||||||
|
{
|
||||||
if (m_data_bits == 8)
|
if (m_data_bits == 8)
|
||||||
m_addrspace[0]->write_byte(offs, m_default_data.u8[offs]);
|
m_addrspace[0]->write_byte(offs, m_default_data.u8[offs]);
|
||||||
else
|
else
|
||||||
m_addrspace[0]->write_word(offs * 2, m_default_data.u16[offs]);
|
m_addrspace[0]->write_word(offs * 2, m_default_data.u16[offs]);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* populate from a memory region if present */
|
// populate from a memory region if present
|
||||||
if (m_region != NULL)
|
if (m_region != NULL)
|
||||||
{
|
{
|
||||||
if (m_region->bytes() != eeprom_bytes)
|
if (m_region->bytes() != eeprom_bytes)
|
||||||
@ -271,16 +276,15 @@ void serial_eeprom_device::nvram_default()
|
|||||||
// .nv file
|
// .nv file
|
||||||
//-------------------------------------------------
|
//-------------------------------------------------
|
||||||
|
|
||||||
void serial_eeprom_device::nvram_read(emu_file &file)
|
void base_eeprom_device::nvram_read(emu_file &file)
|
||||||
{
|
{
|
||||||
UINT32 eeprom_length = 1 << m_address_bits;
|
UINT32 eeprom_length = 1 << m_address_bits;
|
||||||
UINT32 eeprom_bytes = eeprom_length * m_data_bits / 8;
|
UINT32 eeprom_bytes = eeprom_length * m_data_bits / 8;
|
||||||
|
|
||||||
UINT8 *buffer = auto_alloc_array(machine(), UINT8, eeprom_bytes);
|
dynamic_buffer buffer(eeprom_bytes);
|
||||||
file.read(buffer, eeprom_bytes);
|
file.read(buffer, eeprom_bytes);
|
||||||
for (offs_t offs = 0; offs < eeprom_bytes; offs++)
|
for (offs_t offs = 0; offs < eeprom_bytes; offs++)
|
||||||
m_addrspace[0]->write_byte(offs, buffer[offs]);
|
m_addrspace[0]->write_byte(offs, buffer[offs]);
|
||||||
auto_free(machine(), buffer);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -289,269 +293,13 @@ void serial_eeprom_device::nvram_read(emu_file &file)
|
|||||||
// .nv file
|
// .nv file
|
||||||
//-------------------------------------------------
|
//-------------------------------------------------
|
||||||
|
|
||||||
void serial_eeprom_device::nvram_write(emu_file &file)
|
void base_eeprom_device::nvram_write(emu_file &file)
|
||||||
{
|
{
|
||||||
UINT32 eeprom_length = 1 << m_address_bits;
|
UINT32 eeprom_length = 1 << m_address_bits;
|
||||||
UINT32 eeprom_bytes = eeprom_length * m_data_bits / 8;
|
UINT32 eeprom_bytes = eeprom_length * m_data_bits / 8;
|
||||||
|
|
||||||
UINT8 *buffer = auto_alloc_array(machine(), UINT8, eeprom_bytes);
|
dynamic_buffer buffer(eeprom_bytes);
|
||||||
for (offs_t offs = 0; offs < eeprom_bytes; offs++)
|
for (offs_t offs = 0; offs < eeprom_bytes; offs++)
|
||||||
buffer[offs] = m_addrspace[0]->read_byte(offs);
|
buffer[offs] = m_addrspace[0]->read_byte(offs);
|
||||||
file.write(buffer, eeprom_bytes);
|
file.write(buffer, eeprom_bytes);
|
||||||
auto_free(machine(), buffer);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//**************************************************************************
|
|
||||||
// READ/WRITE HANDLERS
|
|
||||||
//**************************************************************************
|
|
||||||
|
|
||||||
WRITE_LINE_MEMBER( serial_eeprom_device::write_bit )
|
|
||||||
{
|
|
||||||
LOG(("write bit %d\n",state));
|
|
||||||
m_latch = state;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
READ_LINE_DEVICE_HANDLER( eeprom_read_bit )
|
|
||||||
{
|
|
||||||
return downcast<serial_eeprom_device *>(device)->read_bit();
|
|
||||||
}
|
|
||||||
|
|
||||||
READ_LINE_MEMBER( serial_eeprom_device::read_bit )
|
|
||||||
{
|
|
||||||
int res;
|
|
||||||
|
|
||||||
if (m_sending)
|
|
||||||
res = (m_data_buffer >> m_data_bits) & 1;
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (m_reset_counter > 0)
|
|
||||||
{
|
|
||||||
/* this is needed by wbeachvl */
|
|
||||||
m_reset_counter--;
|
|
||||||
res = 0;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
res = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
LOG(("read bit %d\n",res));
|
|
||||||
|
|
||||||
return res;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
WRITE_LINE_MEMBER( serial_eeprom_device::set_cs_line )
|
|
||||||
{
|
|
||||||
LOG(("set reset line %d\n",state));
|
|
||||||
m_reset_line = state;
|
|
||||||
|
|
||||||
if (m_reset_line != CLEAR_LINE)
|
|
||||||
{
|
|
||||||
if (m_serial_count)
|
|
||||||
logerror("EEPROM %s reset, buffer = %s\n", tag(), m_serial_buffer);
|
|
||||||
|
|
||||||
m_serial_count = 0;
|
|
||||||
m_sending = 0;
|
|
||||||
m_reset_counter = m_reset_delay; /* delay a little before returning setting data to 1 (needed by wbeachvl) */
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
WRITE_LINE_MEMBER( serial_eeprom_device::set_clock_line )
|
|
||||||
{
|
|
||||||
LOG(("set clock line %d\n",state));
|
|
||||||
if (state == PULSE_LINE || (m_clock_line == CLEAR_LINE && state != CLEAR_LINE))
|
|
||||||
{
|
|
||||||
if (m_reset_line == CLEAR_LINE)
|
|
||||||
{
|
|
||||||
if (m_sending)
|
|
||||||
{
|
|
||||||
if (m_clock_count == m_data_bits && m_enable_multi_read)
|
|
||||||
{
|
|
||||||
m_read_address = (m_read_address + 1) & ((1 << m_address_bits) - 1);
|
|
||||||
if (m_data_bits == 16)
|
|
||||||
m_data_buffer = m_addrspace[0]->read_word(m_read_address * 2);
|
|
||||||
else
|
|
||||||
m_data_buffer = m_addrspace[0]->read_byte(m_read_address);
|
|
||||||
m_clock_count = 0;
|
|
||||||
logerror("EEPROM %s read %04x from address %02x\n", tag(), m_data_buffer, m_read_address);
|
|
||||||
}
|
|
||||||
m_data_buffer = (m_data_buffer << 1) | 1;
|
|
||||||
m_clock_count++;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
write(m_latch);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
m_clock_line = state;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//**************************************************************************
|
|
||||||
// INTERNAL HELPERS
|
|
||||||
//**************************************************************************
|
|
||||||
|
|
||||||
void serial_eeprom_device::write(int bit)
|
|
||||||
{
|
|
||||||
LOG(("EEPROM %s write bit %d\n", tag(), bit));
|
|
||||||
|
|
||||||
if (m_serial_count >= SERIAL_BUFFER_LENGTH-1)
|
|
||||||
{
|
|
||||||
logerror("error: EEPROM %s serial buffer overflow\n", tag());
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
m_serial_buffer[m_serial_count++] = (bit ? '1' : '0');
|
|
||||||
m_serial_buffer[m_serial_count] = 0; /* nul terminate so we can treat it as a string */
|
|
||||||
|
|
||||||
if ( (m_serial_count > m_address_bits) &&
|
|
||||||
command_match((char*)(m_serial_buffer),m_cmd_read,strlen((char*)(m_serial_buffer))-m_address_bits) )
|
|
||||||
{
|
|
||||||
int i,address;
|
|
||||||
|
|
||||||
address = 0;
|
|
||||||
for (i = m_serial_count-m_address_bits;i < m_serial_count;i++)
|
|
||||||
{
|
|
||||||
address <<= 1;
|
|
||||||
if (m_serial_buffer[i] == '1') address |= 1;
|
|
||||||
}
|
|
||||||
if (m_data_bits == 16)
|
|
||||||
m_data_buffer = m_addrspace[0]->read_word(address * 2);
|
|
||||||
else
|
|
||||||
m_data_buffer = m_addrspace[0]->read_byte(address);
|
|
||||||
m_read_address = address;
|
|
||||||
m_clock_count = 0;
|
|
||||||
m_sending = 1;
|
|
||||||
m_serial_count = 0;
|
|
||||||
logerror("EEPROM %s read %04x from address %02x\n", tag(), m_data_buffer,address);
|
|
||||||
}
|
|
||||||
else if ( (m_serial_count > m_address_bits) &&
|
|
||||||
command_match((char*)(m_serial_buffer),m_cmd_erase,strlen((char*)(m_serial_buffer))-m_address_bits) )
|
|
||||||
{
|
|
||||||
int i,address;
|
|
||||||
|
|
||||||
address = 0;
|
|
||||||
for (i = m_serial_count-m_address_bits;i < m_serial_count;i++)
|
|
||||||
{
|
|
||||||
address <<= 1;
|
|
||||||
if (m_serial_buffer[i] == '1') address |= 1;
|
|
||||||
}
|
|
||||||
logerror("EEPROM %s erase address %02x\n", tag(), address);
|
|
||||||
if (m_locked == 0)
|
|
||||||
{
|
|
||||||
if (m_data_bits == 16)
|
|
||||||
m_addrspace[0]->write_word(address * 2, 0xFFFF);
|
|
||||||
else
|
|
||||||
m_addrspace[0]->write_byte(address, 0xFF);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
logerror("Error: EEPROM %s is locked\n", tag());
|
|
||||||
m_serial_count = 0;
|
|
||||||
}
|
|
||||||
else if ( (m_serial_count > (m_address_bits + m_data_bits)) &&
|
|
||||||
command_match((char*)(m_serial_buffer),m_cmd_write,strlen((char*)(m_serial_buffer))-(m_address_bits + m_data_bits)) )
|
|
||||||
{
|
|
||||||
int i,address,data;
|
|
||||||
|
|
||||||
address = 0;
|
|
||||||
for (i = m_serial_count-m_data_bits-m_address_bits;i < (m_serial_count-m_data_bits);i++)
|
|
||||||
{
|
|
||||||
address <<= 1;
|
|
||||||
if (m_serial_buffer[i] == '1') address |= 1;
|
|
||||||
}
|
|
||||||
data = 0;
|
|
||||||
for (i = m_serial_count-m_data_bits;i < m_serial_count;i++)
|
|
||||||
{
|
|
||||||
data <<= 1;
|
|
||||||
if (m_serial_buffer[i] == '1') data |= 1;
|
|
||||||
}
|
|
||||||
logerror("EEPROM %s write %04x to address %02x\n", tag(), data, address);
|
|
||||||
if (m_locked == 0)
|
|
||||||
{
|
|
||||||
if (m_data_bits == 16)
|
|
||||||
m_addrspace[0]->write_word(address * 2, data);
|
|
||||||
else
|
|
||||||
m_addrspace[0]->write_byte(address, data);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
logerror("Error: EEPROM %s is locked\n", tag());
|
|
||||||
m_serial_count = 0;
|
|
||||||
}
|
|
||||||
else if ( command_match((char*)(m_serial_buffer),m_cmd_lock,strlen((char*)(m_serial_buffer))) )
|
|
||||||
{
|
|
||||||
logerror("EEPROM %s lock\n", tag());
|
|
||||||
m_locked = 1;
|
|
||||||
m_serial_count = 0;
|
|
||||||
}
|
|
||||||
else if ( command_match((char*)(m_serial_buffer),m_cmd_unlock,strlen((char*)(m_serial_buffer))) )
|
|
||||||
{
|
|
||||||
logerror("EEPROM %s unlock\n", tag());
|
|
||||||
m_locked = 0;
|
|
||||||
m_serial_count = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
command_match:
|
|
||||||
|
|
||||||
Try to match the first (len) digits in the EEPROM serial buffer
|
|
||||||
string (*buf) with an EEPROM command string (*cmd).
|
|
||||||
Return non zero if a match was found.
|
|
||||||
|
|
||||||
The serial buffer only contains '0' or '1' (e.g. "1001").
|
|
||||||
The command can contain: '0' or '1' or these wildcards:
|
|
||||||
|
|
||||||
'x' : match both '0' and '1'
|
|
||||||
"*1": match "1", "01", "001", "0001" etc.
|
|
||||||
"*0": match "0", "10", "110", "1110" etc.
|
|
||||||
|
|
||||||
Note: (cmd) may be NULL. Return 0 (no match) in this case.
|
|
||||||
*/
|
|
||||||
bool serial_eeprom_device::command_match(const char *buf, const char *cmd, int len)
|
|
||||||
{
|
|
||||||
if ( cmd == 0 ) return false;
|
|
||||||
if ( len == 0 ) return false;
|
|
||||||
|
|
||||||
for (;len>0;)
|
|
||||||
{
|
|
||||||
char b = *buf;
|
|
||||||
char c = *cmd;
|
|
||||||
|
|
||||||
if ((b==0) || (c==0))
|
|
||||||
return (b==c);
|
|
||||||
|
|
||||||
switch ( c )
|
|
||||||
{
|
|
||||||
case '0':
|
|
||||||
case '1':
|
|
||||||
if (b != c) return false;
|
|
||||||
case 'X':
|
|
||||||
case 'x':
|
|
||||||
buf++;
|
|
||||||
len--;
|
|
||||||
cmd++;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case '*':
|
|
||||||
c = cmd[1];
|
|
||||||
switch( c )
|
|
||||||
{
|
|
||||||
case '0':
|
|
||||||
case '1':
|
|
||||||
if (b == c) { cmd++; }
|
|
||||||
else { buf++; len--; }
|
|
||||||
break;
|
|
||||||
default: return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return (*cmd==0);
|
|
||||||
}
|
}
|
||||||
|
@ -2,14 +2,45 @@
|
|||||||
|
|
||||||
eeprom.h
|
eeprom.h
|
||||||
|
|
||||||
Serial eeproms.
|
Base class for EEPROM devices.
|
||||||
|
|
||||||
|
****************************************************************************
|
||||||
|
|
||||||
|
Copyright Aaron Giles
|
||||||
|
All rights reserved.
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
modification, are permitted provided that the following conditions are
|
||||||
|
met:
|
||||||
|
|
||||||
|
* Redistributions of source code must retain the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer.
|
||||||
|
* Redistributions in binary form must reproduce the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer in
|
||||||
|
the documentation and/or other materials provided with the
|
||||||
|
distribution.
|
||||||
|
* Neither the name 'MAME' nor the names of its contributors may be
|
||||||
|
used to endorse or promote products derived from this software
|
||||||
|
without specific prior written permission.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY AARON GILES ''AS IS'' AND ANY EXPRESS OR
|
||||||
|
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
|
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
|
DISCLAIMED. IN NO EVENT SHALL AARON GILES BE LIABLE FOR ANY DIRECT,
|
||||||
|
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||||
|
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||||
|
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||||
|
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
||||||
|
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
|
||||||
|
IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
|
POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#ifndef __EEPROMDEV_H__
|
#ifndef __EEPROM_H__
|
||||||
#define __EEPROMDEV_H__
|
#define __EEPROM_H__
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -17,23 +48,12 @@
|
|||||||
// INTERFACE CONFIGURATION MACROS
|
// INTERFACE CONFIGURATION MACROS
|
||||||
//**************************************************************************
|
//**************************************************************************
|
||||||
|
|
||||||
#define MCFG_SERIAL_EEPROM_ADD(_tag, _interface) \
|
#define MCFG_EEPROM_SIZE(_cells, _cellbits) \
|
||||||
MCFG_DEVICE_ADD(_tag, SERIAL_EEPROM, 0) \
|
base_eeprom_device::static_set_size(*device, _cells, _cellbits);
|
||||||
serial_eeprom_device::static_set_interface(*device, _interface);
|
#define MCFG_EEPROM_DATA(_data, _size) \
|
||||||
|
base_eeprom_device::static_set_default_data(*device, _data, _size);
|
||||||
#define MCFG_SERIAL_EEPROM_DATA(_data, _size) \
|
#define MCFG_EEPROM_DEFAULT_VALUE(_value) \
|
||||||
serial_eeprom_device::static_set_default_data(*device, _data, _size);
|
base_eeprom_device::static_set_default_value(*device, _value);
|
||||||
#define MCFG_SERIAL_EEPROM_DEFAULT_VALUE(_value) \
|
|
||||||
serial_eeprom_device::static_set_default_value(*device, _value);
|
|
||||||
|
|
||||||
#define MCFG_EEPROM_93C46_ADD(_tag) \
|
|
||||||
MCFG_SERIAL_EEPROM_ADD(_tag, eeprom_interface_93C46)
|
|
||||||
|
|
||||||
#define MCFG_EEPROM_93C46_8BIT_ADD(_tag) \
|
|
||||||
MCFG_SERIAL_EEPROM_ADD(_tag, eeprom_interface_93C46_8bit)
|
|
||||||
|
|
||||||
#define MCFG_EEPROM_93C66B_ADD(_tag) \
|
|
||||||
MCFG_SERIAL_EEPROM_ADD(_tag, eeprom_interface_93C66B)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -41,47 +61,26 @@
|
|||||||
// TYPE DEFINITIONS
|
// TYPE DEFINITIONS
|
||||||
//**************************************************************************
|
//**************************************************************************
|
||||||
|
|
||||||
|
// ======================> base_eeprom_device
|
||||||
|
|
||||||
// ======================> serial_eeprom_interface
|
class base_eeprom_device : public device_t,
|
||||||
|
public device_memory_interface,
|
||||||
struct serial_eeprom_interface
|
public device_nvram_interface
|
||||||
{
|
{
|
||||||
UINT8 m_address_bits; // EEPROM has 2^address_bits cells
|
protected:
|
||||||
UINT8 m_data_bits; // every cell has this many bits (8 or 16)
|
|
||||||
const char *m_cmd_read; // read command string, e.g. "0110"
|
|
||||||
const char *m_cmd_write; // write command string, e.g. "0111"
|
|
||||||
const char *m_cmd_erase; // erase command string, or 0 if n/a
|
|
||||||
const char *m_cmd_lock; // lock command string, or 0 if n/a
|
|
||||||
const char *m_cmd_unlock; // unlock command string, or 0 if n/a
|
|
||||||
bool m_enable_multi_read; // set to 1 to enable multiple values to be read from one read command
|
|
||||||
int m_reset_delay; // number of times eeprom_read_bit() should return 0 after a reset,
|
|
||||||
// before starting to return 1.
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// ======================> serial_eeprom_device
|
|
||||||
|
|
||||||
class serial_eeprom_device : public device_t,
|
|
||||||
public device_memory_interface,
|
|
||||||
public device_nvram_interface,
|
|
||||||
public serial_eeprom_interface
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
// construction/destruction
|
// construction/destruction
|
||||||
serial_eeprom_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
base_eeprom_device(const machine_config &mconfig, device_type devtype, const char *name, const char *tag, device_t *owner, const char *shortname, const char *file);
|
||||||
|
|
||||||
|
public:
|
||||||
// inline configuration helpers
|
// inline configuration helpers
|
||||||
static void static_set_interface(device_t &device, const serial_eeprom_interface &interface);
|
static void static_set_size(device_t &device, int cells, int cellbits);
|
||||||
static void static_set_default_data(device_t &device, const UINT8 *data, UINT32 size);
|
static void static_set_default_data(device_t &device, const UINT8 *data, UINT32 size);
|
||||||
static void static_set_default_data(device_t &device, const UINT16 *data, UINT32 size);
|
static void static_set_default_data(device_t &device, const UINT16 *data, UINT32 size);
|
||||||
static void static_set_default_value(device_t &device, UINT16 value);
|
static void static_set_default_value(device_t &device, UINT32 value);
|
||||||
|
|
||||||
// I/O operations
|
// read/write data
|
||||||
DECLARE_WRITE_LINE_MEMBER( write_bit );
|
UINT32 read_data(offs_t address);
|
||||||
DECLARE_READ_LINE_MEMBER( read_bit );
|
void write_data(offs_t address, UINT32 data);
|
||||||
DECLARE_WRITE_LINE_MEMBER( set_cs_line );
|
|
||||||
DECLARE_WRITE_LINE_MEMBER( set_clock_line );
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
// device-level overrides
|
// device-level overrides
|
||||||
@ -97,45 +96,16 @@ protected:
|
|||||||
virtual void nvram_read(emu_file &file);
|
virtual void nvram_read(emu_file &file);
|
||||||
virtual void nvram_write(emu_file &file);
|
virtual void nvram_write(emu_file &file);
|
||||||
|
|
||||||
// internal helpers
|
|
||||||
void write(int bit);
|
|
||||||
bool command_match(const char *buf, const char *cmd, int len);
|
|
||||||
|
|
||||||
static const int SERIAL_BUFFER_LENGTH = 40;
|
|
||||||
|
|
||||||
// configuration state
|
// configuration state
|
||||||
|
UINT32 m_cells;
|
||||||
|
UINT8 m_address_bits;
|
||||||
|
UINT8 m_data_bits;
|
||||||
address_space_config m_space_config;
|
address_space_config m_space_config;
|
||||||
generic_ptr m_default_data;
|
generic_ptr m_default_data;
|
||||||
int m_default_data_size;
|
UINT32 m_default_data_size;
|
||||||
UINT32 m_default_value;
|
UINT32 m_default_value;
|
||||||
|
bool m_default_value_set;
|
||||||
// runtime state
|
|
||||||
int m_serial_count;
|
|
||||||
UINT8 m_serial_buffer[SERIAL_BUFFER_LENGTH];
|
|
||||||
int m_data_buffer;
|
|
||||||
int m_read_address;
|
|
||||||
int m_clock_count;
|
|
||||||
int m_latch;
|
|
||||||
int m_reset_line;
|
|
||||||
int m_clock_line;
|
|
||||||
int m_sending;
|
|
||||||
int m_locked;
|
|
||||||
int m_reset_counter;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
// device type definition
|
|
||||||
extern const device_type SERIAL_EEPROM;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//**************************************************************************
|
|
||||||
// GLOBAL VARIABLES
|
|
||||||
//**************************************************************************
|
|
||||||
|
|
||||||
extern const serial_eeprom_interface eeprom_interface_93C46;
|
|
||||||
extern const serial_eeprom_interface eeprom_interface_93C46_8bit;
|
|
||||||
extern const serial_eeprom_interface eeprom_interface_93C66B;
|
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
437
src/emu/machine/eepromser.c
Normal file
437
src/emu/machine/eepromser.c
Normal file
@ -0,0 +1,437 @@
|
|||||||
|
/***************************************************************************
|
||||||
|
|
||||||
|
eepromser.c
|
||||||
|
|
||||||
|
Serial EEPROM devices.
|
||||||
|
|
||||||
|
****************************************************************************
|
||||||
|
|
||||||
|
Copyright Aaron Giles
|
||||||
|
All rights reserved.
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
modification, are permitted provided that the following conditions are
|
||||||
|
met:
|
||||||
|
|
||||||
|
* Redistributions of source code must retain the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer.
|
||||||
|
* Redistributions in binary form must reproduce the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer in
|
||||||
|
the documentation and/or other materials provided with the
|
||||||
|
distribution.
|
||||||
|
* Neither the name 'MAME' nor the names of its contributors may be
|
||||||
|
used to endorse or promote products derived from this software
|
||||||
|
without specific prior written permission.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY AARON GILES ''AS IS'' AND ANY EXPRESS OR
|
||||||
|
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
|
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
|
DISCLAIMED. IN NO EVENT SHALL AARON GILES BE LIABLE FOR ANY DIRECT,
|
||||||
|
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||||
|
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||||
|
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||||
|
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
||||||
|
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
|
||||||
|
IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
|
POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
***************************************************************************/
|
||||||
|
|
||||||
|
#include "emu.h"
|
||||||
|
#include "machine/eepromser.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//**************************************************************************
|
||||||
|
// DEBUGGING
|
||||||
|
//**************************************************************************
|
||||||
|
|
||||||
|
#define VERBOSE 0
|
||||||
|
#define LOG(x) do { if (VERBOSE) logerror x; } while (0)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//**************************************************************************
|
||||||
|
// GLOBAL VARIABLES
|
||||||
|
//**************************************************************************
|
||||||
|
|
||||||
|
// device type definition
|
||||||
|
const device_type SERIAL_EEPROM = &device_creator<serial_eeprom_device>;
|
||||||
|
|
||||||
|
const serial_eeprom_interface eeprom_interface_93C46_93C66B =
|
||||||
|
{
|
||||||
|
"*110", // read 1 10 aaaaaa
|
||||||
|
"*101", // write 1 01 aaaaaa dddddddddddddddd
|
||||||
|
"*111", // erase 1 11 aaaaaa
|
||||||
|
"*10000xxxx", // lock 1 00 00xxxx
|
||||||
|
"*10011xxxx", // unlock 1 00 11xxxx
|
||||||
|
1, // enable_multi_read
|
||||||
|
0 // reset_delay
|
||||||
|
// "*10001xxxx" // write all 1 00 01xxxx dddddddddddddddd
|
||||||
|
// "*10010xxxx" // erase all 1 00 10xxxx
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//**************************************************************************
|
||||||
|
// LIVE DEVICE
|
||||||
|
//**************************************************************************
|
||||||
|
|
||||||
|
//-------------------------------------------------
|
||||||
|
// serial_eeprom_device - constructor
|
||||||
|
//-------------------------------------------------
|
||||||
|
|
||||||
|
serial_eeprom_device::serial_eeprom_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
|
||||||
|
: base_eeprom_device(mconfig, SERIAL_EEPROM, "Serial EEPROM", tag, owner, "seeprom", __FILE__),
|
||||||
|
m_serial_count(0),
|
||||||
|
m_data_buffer(0),
|
||||||
|
m_read_address(0),
|
||||||
|
m_clock_count(0),
|
||||||
|
m_latch(0),
|
||||||
|
m_reset_line(CLEAR_LINE),
|
||||||
|
m_clock_line(CLEAR_LINE),
|
||||||
|
m_sending(false),
|
||||||
|
m_locked(false),
|
||||||
|
m_reset_counter(0)
|
||||||
|
{
|
||||||
|
memset(downcast<serial_eeprom_interface *>(this), 0, sizeof(serial_eeprom_interface));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//-------------------------------------------------
|
||||||
|
// static_set_interface - configuration helper
|
||||||
|
// to set the interface
|
||||||
|
//-------------------------------------------------
|
||||||
|
|
||||||
|
void serial_eeprom_device::static_set_interface(device_t &device, const serial_eeprom_interface &interface)
|
||||||
|
{
|
||||||
|
serial_eeprom_device &eeprom = downcast<serial_eeprom_device &>(device);
|
||||||
|
static_cast<serial_eeprom_interface &>(eeprom) = interface;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//-------------------------------------------------
|
||||||
|
// device_start - device-specific startup
|
||||||
|
//-------------------------------------------------
|
||||||
|
|
||||||
|
void serial_eeprom_device::device_start()
|
||||||
|
{
|
||||||
|
base_eeprom_device::device_start();
|
||||||
|
|
||||||
|
m_locked = (m_cmd_unlock != NULL);
|
||||||
|
|
||||||
|
save_item(NAME(m_serial_buffer));
|
||||||
|
save_item(NAME(m_clock_line));
|
||||||
|
save_item(NAME(m_reset_line));
|
||||||
|
save_item(NAME(m_locked));
|
||||||
|
save_item(NAME(m_serial_count));
|
||||||
|
save_item(NAME(m_latch));
|
||||||
|
save_item(NAME(m_reset_counter));
|
||||||
|
save_item(NAME(m_clock_count));
|
||||||
|
save_item(NAME(m_data_buffer));
|
||||||
|
save_item(NAME(m_read_address));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//-------------------------------------------------
|
||||||
|
// device_reset - device-specific reset
|
||||||
|
//-------------------------------------------------
|
||||||
|
|
||||||
|
void serial_eeprom_device::device_reset()
|
||||||
|
{
|
||||||
|
base_eeprom_device::device_reset();
|
||||||
|
|
||||||
|
// make a note if someone reset in the middle of a read or write
|
||||||
|
if (m_serial_count)
|
||||||
|
logerror("EEPROM %s reset, buffer = %s\n", tag(), m_serial_buffer);
|
||||||
|
|
||||||
|
// reset the state
|
||||||
|
m_serial_count = 0;
|
||||||
|
m_sending = false;
|
||||||
|
m_reset_counter = m_reset_delay; // delay a little before returning setting data to 1 (needed by wbeachvl)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//**************************************************************************
|
||||||
|
// READ/WRITE HANDLERS
|
||||||
|
//**************************************************************************
|
||||||
|
|
||||||
|
//-------------------------------------------------
|
||||||
|
// write_bit - latch a bit to write
|
||||||
|
//-------------------------------------------------
|
||||||
|
|
||||||
|
WRITE_LINE_MEMBER( serial_eeprom_device::write_bit )
|
||||||
|
{
|
||||||
|
LOG(("write bit %d\n",state));
|
||||||
|
m_latch = state;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//-------------------------------------------------
|
||||||
|
// read_bit - read a bit from the eeprom
|
||||||
|
//-------------------------------------------------
|
||||||
|
|
||||||
|
READ_LINE_MEMBER( serial_eeprom_device::read_bit )
|
||||||
|
{
|
||||||
|
int res;
|
||||||
|
|
||||||
|
// if sending, pull the next bit off
|
||||||
|
if (m_sending)
|
||||||
|
res = (m_data_buffer >> m_data_bits) & 1;
|
||||||
|
|
||||||
|
// otherwise check for the proper number of bits needed for a reset
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// this is needed by wbeachvl
|
||||||
|
if (m_reset_counter > 0)
|
||||||
|
{
|
||||||
|
m_reset_counter--;
|
||||||
|
res = 0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
res = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
LOG(("read bit %d\n",res));
|
||||||
|
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//-------------------------------------------------
|
||||||
|
// set_cs_line - set the state of the chip
|
||||||
|
// select (/CS) line
|
||||||
|
//-------------------------------------------------
|
||||||
|
|
||||||
|
WRITE_LINE_MEMBER( serial_eeprom_device::set_cs_line )
|
||||||
|
{
|
||||||
|
// ignore if the state is not changing
|
||||||
|
if (state == m_reset_line)
|
||||||
|
return;
|
||||||
|
|
||||||
|
LOG(("set reset line %d\n",state));
|
||||||
|
|
||||||
|
// if we're going active, reset things
|
||||||
|
m_reset_line = state;
|
||||||
|
if (m_reset_line != CLEAR_LINE)
|
||||||
|
reset();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//-------------------------------------------------
|
||||||
|
// set_clock_line - set the state of the clock
|
||||||
|
// (CLK) line
|
||||||
|
//-------------------------------------------------
|
||||||
|
|
||||||
|
WRITE_LINE_MEMBER( serial_eeprom_device::set_clock_line )
|
||||||
|
{
|
||||||
|
LOG(("set clock line %d\n",state));
|
||||||
|
|
||||||
|
// on a pulse or a rising edge, process
|
||||||
|
if (state == PULSE_LINE || (m_clock_line == CLEAR_LINE && state != CLEAR_LINE))
|
||||||
|
{
|
||||||
|
// only proceed if we're not held in reset
|
||||||
|
if (m_reset_line == CLEAR_LINE)
|
||||||
|
{
|
||||||
|
// if sending, clock the next bit
|
||||||
|
if (m_sending)
|
||||||
|
{
|
||||||
|
// auto-advance to then next word if supported
|
||||||
|
if (m_clock_count == m_data_bits && m_enable_multi_read)
|
||||||
|
{
|
||||||
|
fill_data_buffer(m_read_address + 1);
|
||||||
|
logerror("EEPROM %s read %04x from address %02x\n", tag(), m_data_buffer, m_read_address);
|
||||||
|
}
|
||||||
|
|
||||||
|
// shift the data buffer
|
||||||
|
m_data_buffer = (m_data_buffer << 1) | 1;
|
||||||
|
m_clock_count++;
|
||||||
|
}
|
||||||
|
|
||||||
|
// if not sending, then write the data that was latched
|
||||||
|
else
|
||||||
|
write(m_latch);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// remember the news state
|
||||||
|
m_clock_line = state;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//**************************************************************************
|
||||||
|
// INTERNAL HELPERS
|
||||||
|
//**************************************************************************
|
||||||
|
|
||||||
|
//-------------------------------------------------
|
||||||
|
// decode_value - convert accumulated bits to
|
||||||
|
// a binary value, releative to the end of the
|
||||||
|
// accumulation buffer
|
||||||
|
//-------------------------------------------------
|
||||||
|
|
||||||
|
UINT32 serial_eeprom_device::decode_value(int numbits, int bitsfromend)
|
||||||
|
{
|
||||||
|
UINT32 value = 0;
|
||||||
|
for (int bitnum = m_serial_count - bitsfromend - numbits; bitnum < m_serial_count - bitsfromend; bitnum++)
|
||||||
|
value = (value << 1) | (m_serial_buffer[bitnum] - '0');
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//-------------------------------------------------
|
||||||
|
// fill_data_buffer - fill the data buffer with
|
||||||
|
// the appropriately-sized chunk of data
|
||||||
|
//-------------------------------------------------
|
||||||
|
|
||||||
|
void serial_eeprom_device::fill_data_buffer(offs_t address)
|
||||||
|
{
|
||||||
|
// make the address to be in range
|
||||||
|
address &= (1 << m_address_bits) - 1;
|
||||||
|
|
||||||
|
// fetch the appropriately-sized data
|
||||||
|
m_data_buffer = read_data(address);
|
||||||
|
|
||||||
|
// remember the address and reset the clock count
|
||||||
|
m_read_address = address;
|
||||||
|
m_clock_count = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//-------------------------------------------------
|
||||||
|
// write - process an EEPROM write
|
||||||
|
//-------------------------------------------------
|
||||||
|
|
||||||
|
void serial_eeprom_device::write(int bit)
|
||||||
|
{
|
||||||
|
LOG(("EEPROM %s write bit %d\n", tag(), bit));
|
||||||
|
|
||||||
|
// if too much data was written without seeing a command, log it and return
|
||||||
|
if (m_serial_count >= SERIAL_BUFFER_LENGTH - 1)
|
||||||
|
{
|
||||||
|
logerror("error: EEPROM %s serial buffer overflow\n", tag());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// update the buffer
|
||||||
|
m_serial_buffer[m_serial_count++] = (bit ? '1' : '0');
|
||||||
|
m_serial_buffer[m_serial_count] = 0; // nul terminate so we can treat it as a string
|
||||||
|
|
||||||
|
// look for a read command
|
||||||
|
if (m_cmd_read != NULL && m_serial_count > m_address_bits && command_match(m_cmd_read, m_address_bits))
|
||||||
|
{
|
||||||
|
fill_data_buffer(decode_value(m_address_bits));
|
||||||
|
m_sending = true;
|
||||||
|
m_serial_count = 0;
|
||||||
|
logerror("EEPROM %s read %04x from address %02x\n", tag(), m_data_buffer, m_read_address);
|
||||||
|
}
|
||||||
|
|
||||||
|
// look for an erase command
|
||||||
|
else if (m_cmd_erase != NULL && m_serial_count > m_address_bits && command_match(m_cmd_erase, m_address_bits))
|
||||||
|
{
|
||||||
|
offs_t address = decode_value(m_address_bits);
|
||||||
|
logerror("EEPROM %s erase address %02x\n", tag(), address);
|
||||||
|
if (m_locked == 0)
|
||||||
|
write_data(address, ~0);
|
||||||
|
else
|
||||||
|
logerror("Error: EEPROM %s is locked\n", tag());
|
||||||
|
m_serial_count = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
// look for a write command
|
||||||
|
else if (m_cmd_write != NULL && m_serial_count > m_address_bits + m_data_bits && command_match(m_cmd_write, m_address_bits + m_data_bits))
|
||||||
|
{
|
||||||
|
offs_t address = decode_value(m_address_bits, m_data_bits);
|
||||||
|
UINT32 data = decode_value(m_data_bits);
|
||||||
|
logerror("EEPROM %s write %04x to address %02x\n", tag(), data, address);
|
||||||
|
if (m_locked == 0)
|
||||||
|
write_data(address, data);
|
||||||
|
else
|
||||||
|
logerror("Error: EEPROM %s is locked\n", tag());
|
||||||
|
m_serial_count = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
// look for a lock command
|
||||||
|
else if (m_cmd_lock != NULL && command_match(m_cmd_lock))
|
||||||
|
{
|
||||||
|
logerror("EEPROM %s lock\n", tag());
|
||||||
|
m_locked = 1;
|
||||||
|
m_serial_count = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
// look for an unlock command
|
||||||
|
else if (m_cmd_unlock != NULL && command_match(m_cmd_unlock))
|
||||||
|
{
|
||||||
|
logerror("EEPROM %s unlock\n", tag());
|
||||||
|
m_locked = 0;
|
||||||
|
m_serial_count = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//-------------------------------------------------
|
||||||
|
// command_match - try to match incoming data
|
||||||
|
// against a command template
|
||||||
|
//-------------------------------------------------
|
||||||
|
|
||||||
|
bool serial_eeprom_device::command_match(const char *cmd, int ignorebits)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
// The serial buffer only contains '0' or '1' (e.g. "1001").
|
||||||
|
// The command can contain: '0' or '1' or these wildcards:
|
||||||
|
// 'x' : match both '0' and '1'
|
||||||
|
// "*1": match "1", "01", "001", "0001" etc.
|
||||||
|
// "*0": match "0", "10", "110", "1110" etc.
|
||||||
|
//
|
||||||
|
|
||||||
|
int len = m_serial_count - ignorebits;
|
||||||
|
const char *buf = m_serial_buffer;
|
||||||
|
while (len > 0)
|
||||||
|
{
|
||||||
|
char bufbit = *buf;
|
||||||
|
char cmdbit = *cmd;
|
||||||
|
|
||||||
|
// stop when we hit the end of either string
|
||||||
|
if (bufbit == 0 || cmdbit == 0)
|
||||||
|
return (bufbit == cmdbit);
|
||||||
|
|
||||||
|
// parse based on the cmdbit
|
||||||
|
switch (cmdbit)
|
||||||
|
{
|
||||||
|
case '0':
|
||||||
|
case '1':
|
||||||
|
// these require an exact match
|
||||||
|
if (bufbit != cmdbit)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
// fall through...
|
||||||
|
|
||||||
|
case 'X':
|
||||||
|
case 'x':
|
||||||
|
// this is 'ignore', so just accept anything
|
||||||
|
buf++;
|
||||||
|
len--;
|
||||||
|
cmd++;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case '*':
|
||||||
|
// for a wildcard, check for the opposit bit
|
||||||
|
cmdbit = cmd[1];
|
||||||
|
switch (cmdbit)
|
||||||
|
{
|
||||||
|
case '0':
|
||||||
|
case '1':
|
||||||
|
if (bufbit == cmdbit)
|
||||||
|
cmd++;
|
||||||
|
else
|
||||||
|
buf++, len--;
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return (*cmd == 0);
|
||||||
|
}
|
152
src/emu/machine/eepromser.h
Normal file
152
src/emu/machine/eepromser.h
Normal file
@ -0,0 +1,152 @@
|
|||||||
|
/***************************************************************************
|
||||||
|
|
||||||
|
eepromser.h
|
||||||
|
|
||||||
|
Serial EEPROM devices.
|
||||||
|
|
||||||
|
****************************************************************************
|
||||||
|
|
||||||
|
Copyright Aaron Giles
|
||||||
|
All rights reserved.
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
modification, are permitted provided that the following conditions are
|
||||||
|
met:
|
||||||
|
|
||||||
|
* Redistributions of source code must retain the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer.
|
||||||
|
* Redistributions in binary form must reproduce the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer in
|
||||||
|
the documentation and/or other materials provided with the
|
||||||
|
distribution.
|
||||||
|
* Neither the name 'MAME' nor the names of its contributors may be
|
||||||
|
used to endorse or promote products derived from this software
|
||||||
|
without specific prior written permission.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY AARON GILES ''AS IS'' AND ANY EXPRESS OR
|
||||||
|
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
|
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
|
DISCLAIMED. IN NO EVENT SHALL AARON GILES BE LIABLE FOR ANY DIRECT,
|
||||||
|
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||||
|
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||||
|
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||||
|
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
||||||
|
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
|
||||||
|
IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
|
POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
***************************************************************************/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#ifndef __EEPROMSER_H__
|
||||||
|
#define __EEPROMSER_H__
|
||||||
|
|
||||||
|
#include "eeprom.h"
|
||||||
|
|
||||||
|
|
||||||
|
//**************************************************************************
|
||||||
|
// INTERFACE CONFIGURATION MACROS
|
||||||
|
//**************************************************************************
|
||||||
|
|
||||||
|
#define MCFG_SERIAL_EEPROM_ADD(_tag, _cells, _cellbits, _interface) \
|
||||||
|
MCFG_DEVICE_ADD(_tag, SERIAL_EEPROM, 0) \
|
||||||
|
MCFG_EEPROM_SIZE(_cells, _cellbits) \
|
||||||
|
serial_eeprom_device::static_set_interface(*device, _interface);
|
||||||
|
|
||||||
|
#define MCFG_SERIAL_EEPROM_DATA(_data, _size) \
|
||||||
|
serial_eeprom_device::static_set_default_data(*device, _data, _size);
|
||||||
|
#define MCFG_SERIAL_EEPROM_DEFAULT_VALUE(_value) \
|
||||||
|
serial_eeprom_device::static_set_default_value(*device, _value);
|
||||||
|
|
||||||
|
#define MCFG_EEPROM_93C46_ADD(_tag) \
|
||||||
|
MCFG_SERIAL_EEPROM_ADD(_tag, 64, 16, eeprom_interface_93C46_93C66B)
|
||||||
|
|
||||||
|
#define MCFG_EEPROM_93C46_8BIT_ADD(_tag) \
|
||||||
|
MCFG_SERIAL_EEPROM_ADD(_tag, 128, 8, eeprom_interface_93C46_93C66B)
|
||||||
|
|
||||||
|
#define MCFG_EEPROM_93C66B_ADD(_tag) \
|
||||||
|
MCFG_SERIAL_EEPROM_ADD(_tag, 256, 16, eeprom_interface_93C46_93C66B)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//**************************************************************************
|
||||||
|
// TYPE DEFINITIONS
|
||||||
|
//**************************************************************************
|
||||||
|
|
||||||
|
|
||||||
|
// ======================> serial_eeprom_interface
|
||||||
|
|
||||||
|
struct serial_eeprom_interface
|
||||||
|
{
|
||||||
|
const char *m_cmd_read; // read command string, e.g. "0110"
|
||||||
|
const char *m_cmd_write; // write command string, e.g. "0111"
|
||||||
|
const char *m_cmd_erase; // erase command string, or 0 if n/a
|
||||||
|
const char *m_cmd_lock; // lock command string, or 0 if n/a
|
||||||
|
const char *m_cmd_unlock; // unlock command string, or 0 if n/a
|
||||||
|
bool m_enable_multi_read; // set to 1 to enable multiple values to be read from one read command
|
||||||
|
int m_reset_delay; // number of times eeprom_read_bit() should return 0 after a reset,
|
||||||
|
// before starting to return 1.
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// ======================> serial_eeprom_device
|
||||||
|
|
||||||
|
class serial_eeprom_device : public base_eeprom_device,
|
||||||
|
public serial_eeprom_interface
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
// construction/destruction
|
||||||
|
serial_eeprom_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
||||||
|
|
||||||
|
// inline configuration helpers
|
||||||
|
static void static_set_interface(device_t &device, const serial_eeprom_interface &interface);
|
||||||
|
|
||||||
|
// I/O operations
|
||||||
|
DECLARE_WRITE_LINE_MEMBER( write_bit );
|
||||||
|
DECLARE_READ_LINE_MEMBER( read_bit );
|
||||||
|
DECLARE_WRITE_LINE_MEMBER( set_cs_line );
|
||||||
|
DECLARE_WRITE_LINE_MEMBER( set_clock_line );
|
||||||
|
|
||||||
|
protected:
|
||||||
|
// device-level overrides
|
||||||
|
virtual void device_start();
|
||||||
|
virtual void device_reset();
|
||||||
|
|
||||||
|
// internal helpers
|
||||||
|
UINT32 decode_value(int numbits, int bitsfromend = 0);
|
||||||
|
void fill_data_buffer(offs_t address);
|
||||||
|
void write(int bit);
|
||||||
|
bool command_match(const char *cmd, int ignorebits = 0);
|
||||||
|
|
||||||
|
static const int SERIAL_BUFFER_LENGTH = 40;
|
||||||
|
|
||||||
|
// runtime state
|
||||||
|
int m_serial_count;
|
||||||
|
char m_serial_buffer[SERIAL_BUFFER_LENGTH];
|
||||||
|
int m_data_buffer;
|
||||||
|
int m_read_address;
|
||||||
|
int m_clock_count;
|
||||||
|
int m_latch;
|
||||||
|
int m_reset_line;
|
||||||
|
int m_clock_line;
|
||||||
|
bool m_sending;
|
||||||
|
bool m_locked;
|
||||||
|
int m_reset_counter;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// device type definition
|
||||||
|
extern const device_type SERIAL_EEPROM;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//**************************************************************************
|
||||||
|
// GLOBAL VARIABLES
|
||||||
|
//**************************************************************************
|
||||||
|
|
||||||
|
extern const serial_eeprom_interface eeprom_interface_93C46_93C66B;
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
@ -419,10 +419,12 @@ endif
|
|||||||
#-------------------------------------------------
|
#-------------------------------------------------
|
||||||
#
|
#
|
||||||
#@src/emu/machine/eeprom.h,MACHINES += EEPROMDEV
|
#@src/emu/machine/eeprom.h,MACHINES += EEPROMDEV
|
||||||
|
#@src/emu/machine/eepromser.h,MACHINES += EEPROMDEV
|
||||||
#-------------------------------------------------
|
#-------------------------------------------------
|
||||||
|
|
||||||
ifneq ($(filter EEPROMDEV,$(MACHINES)),)
|
ifneq ($(filter EEPROMDEV,$(MACHINES)),)
|
||||||
MACHINEOBJS += $(MACHINEOBJ)/eeprom.o
|
MACHINEOBJS += $(MACHINEOBJ)/eeprom.o
|
||||||
|
MACHINEOBJS += $(MACHINEOBJ)/eepromser.o
|
||||||
endif
|
endif
|
||||||
|
|
||||||
#-------------------------------------------------
|
#-------------------------------------------------
|
||||||
|
@ -150,7 +150,7 @@ TODO:
|
|||||||
#include "coreutil.h"
|
#include "coreutil.h"
|
||||||
#include "includes/stv.h"
|
#include "includes/stv.h"
|
||||||
#include "machine/smpc.h"
|
#include "machine/smpc.h"
|
||||||
#include "machine/eeprom.h"
|
#include "machine/eepromser.h"
|
||||||
|
|
||||||
#define LOG_SMPC 0
|
#define LOG_SMPC 0
|
||||||
#define LOG_PAD_CMD 0
|
#define LOG_PAD_CMD 0
|
||||||
|
@ -224,6 +224,7 @@ private:
|
|||||||
|
|
||||||
|
|
||||||
// template specializations to enumerate the fundamental atomic types you are allowed to save
|
// template specializations to enumerate the fundamental atomic types you are allowed to save
|
||||||
|
ALLOW_SAVE_TYPE(char);
|
||||||
ALLOW_SAVE_TYPE(bool);
|
ALLOW_SAVE_TYPE(bool);
|
||||||
ALLOW_SAVE_TYPE(INT8);
|
ALLOW_SAVE_TYPE(INT8);
|
||||||
ALLOW_SAVE_TYPE(UINT8);
|
ALLOW_SAVE_TYPE(UINT8);
|
||||||
|
@ -44,7 +44,7 @@
|
|||||||
|
|
||||||
#include "emu.h"
|
#include "emu.h"
|
||||||
#include "pc_vga.h"
|
#include "pc_vga.h"
|
||||||
#include "machine/eeprom.h"
|
#include "machine/eepromser.h"
|
||||||
#include "debugger.h"
|
#include "debugger.h"
|
||||||
|
|
||||||
/***************************************************************************
|
/***************************************************************************
|
||||||
@ -2107,8 +2107,6 @@ WRITE8_MEMBER(vga_device::mem_linear_w)
|
|||||||
|
|
||||||
static struct serial_eeprom_interface ati_eeprom_interface =
|
static struct serial_eeprom_interface ati_eeprom_interface =
|
||||||
{
|
{
|
||||||
6, /* address bits */
|
|
||||||
16, /* data bits */
|
|
||||||
"*110", /* read command */
|
"*110", /* read command */
|
||||||
"*101", /* write command */
|
"*101", /* write command */
|
||||||
"*111", /* erase command */
|
"*111", /* erase command */
|
||||||
@ -2164,7 +2162,7 @@ MACHINE_CONFIG_END
|
|||||||
|
|
||||||
static MACHINE_CONFIG_FRAGMENT( ati_vga )
|
static MACHINE_CONFIG_FRAGMENT( ati_vga )
|
||||||
MCFG_MACH8_ADD_OWNER("8514a")
|
MCFG_MACH8_ADD_OWNER("8514a")
|
||||||
MCFG_SERIAL_EEPROM_ADD("ati_eeprom",ati_eeprom_interface)
|
MCFG_SERIAL_EEPROM_ADD("ati_eeprom",64,16,ati_eeprom_interface)
|
||||||
MACHINE_CONFIG_END
|
MACHINE_CONFIG_END
|
||||||
|
|
||||||
static MACHINE_CONFIG_FRAGMENT( s3_764 )
|
static MACHINE_CONFIG_FRAGMENT( s3_764 )
|
||||||
|
@ -83,7 +83,7 @@ Graphics: CY37256P160-83AC x 2 (Ultra37000 CPLD family - 160 pin TQFP, 256 Macro
|
|||||||
|
|
||||||
#include "emu.h"
|
#include "emu.h"
|
||||||
#include "cpu/z180/z180.h"
|
#include "cpu/z180/z180.h"
|
||||||
#include "machine/eeprom.h"
|
#include "machine/eepromser.h"
|
||||||
#include "sound/dac.h"
|
#include "sound/dac.h"
|
||||||
#include "includes/20pacgal.h"
|
#include "includes/20pacgal.h"
|
||||||
|
|
||||||
@ -141,8 +141,6 @@ static const namco_interface namco_config =
|
|||||||
|
|
||||||
static const serial_eeprom_interface _20pacgal_eeprom_intf =
|
static const serial_eeprom_interface _20pacgal_eeprom_intf =
|
||||||
{
|
{
|
||||||
7, /* address bits */
|
|
||||||
8, /* data bits */
|
|
||||||
"*110", /* read command */
|
"*110", /* read command */
|
||||||
"*101", /* write command */
|
"*101", /* write command */
|
||||||
0, /* erase command */
|
0, /* erase command */
|
||||||
@ -368,7 +366,7 @@ static MACHINE_CONFIG_START( 20pacgal, _20pacgal_state )
|
|||||||
MCFG_CPU_VBLANK_INT_DRIVER("screen", _20pacgal_state, vblank_irq)
|
MCFG_CPU_VBLANK_INT_DRIVER("screen", _20pacgal_state, vblank_irq)
|
||||||
|
|
||||||
|
|
||||||
MCFG_SERIAL_EEPROM_ADD("eeprom", _20pacgal_eeprom_intf)
|
MCFG_SERIAL_EEPROM_ADD("eeprom", 128, 8, _20pacgal_eeprom_intf)
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MCFG_FRAGMENT_ADD(20pacgal_video)
|
MCFG_FRAGMENT_ADD(20pacgal_video)
|
||||||
|
@ -23,7 +23,7 @@
|
|||||||
#include "emu.h"
|
#include "emu.h"
|
||||||
#include "cpu/arm7/arm7.h"
|
#include "cpu/arm7/arm7.h"
|
||||||
#include "cpu/arm7/arm7core.h"
|
#include "cpu/arm7/arm7core.h"
|
||||||
#include "machine/eeprom.h"
|
#include "machine/eepromser.h"
|
||||||
#include "machine/pxa255.h"
|
#include "machine/pxa255.h"
|
||||||
#include "sound/dmadac.h"
|
#include "sound/dmadac.h"
|
||||||
|
|
||||||
|
@ -175,7 +175,7 @@
|
|||||||
#include "emu.h"
|
#include "emu.h"
|
||||||
#include "cpu/m6800/m6800.h"
|
#include "cpu/m6800/m6800.h"
|
||||||
#include "cpu/i8085/i8085.h"
|
#include "cpu/i8085/i8085.h"
|
||||||
#include "machine/eeprom.h"
|
#include "machine/eepromser.h"
|
||||||
#include "sound/ay8910.h"
|
#include "sound/ay8910.h"
|
||||||
#include "sound/speaker.h"
|
#include "sound/speaker.h"
|
||||||
#include "includes/8080bw.h"
|
#include "includes/8080bw.h"
|
||||||
|
@ -34,7 +34,7 @@ PCB:
|
|||||||
|
|
||||||
#include "emu.h"
|
#include "emu.h"
|
||||||
#include "cpu/z80/z80.h"
|
#include "cpu/z80/z80.h"
|
||||||
#include "machine/eeprom.h"
|
#include "machine/eepromser.h"
|
||||||
#include "sound/ay8910.h"
|
#include "sound/ay8910.h"
|
||||||
#include "video/mc6845.h"
|
#include "video/mc6845.h"
|
||||||
#include "machine/i8255.h"
|
#include "machine/i8255.h"
|
||||||
|
@ -12,7 +12,7 @@ colour, including the word "Konami"
|
|||||||
#include "emu.h"
|
#include "emu.h"
|
||||||
#include "cpu/m68000/m68000.h"
|
#include "cpu/m68000/m68000.h"
|
||||||
#include "cpu/z80/z80.h"
|
#include "cpu/z80/z80.h"
|
||||||
#include "machine/eeprom.h"
|
#include "machine/eepromser.h"
|
||||||
#include "sound/2151intf.h"
|
#include "sound/2151intf.h"
|
||||||
#include "sound/k053260.h"
|
#include "sound/k053260.h"
|
||||||
#include "includes/konamipt.h"
|
#include "includes/konamipt.h"
|
||||||
@ -20,8 +20,6 @@ colour, including the word "Konami"
|
|||||||
|
|
||||||
static const serial_eeprom_interface eeprom_intf =
|
static const serial_eeprom_interface eeprom_intf =
|
||||||
{
|
{
|
||||||
7, /* address bits */
|
|
||||||
8, /* data bits */
|
|
||||||
"111000", /* read command */
|
"111000", /* read command */
|
||||||
"111100", /* write command */
|
"111100", /* write command */
|
||||||
"1100100000000",/* erase command */
|
"1100100000000",/* erase command */
|
||||||
@ -289,7 +287,7 @@ static MACHINE_CONFIG_START( asterix, asterix_state )
|
|||||||
MCFG_CPU_PROGRAM_MAP(sound_map)
|
MCFG_CPU_PROGRAM_MAP(sound_map)
|
||||||
|
|
||||||
|
|
||||||
MCFG_SERIAL_EEPROM_ADD("eeprom", eeprom_intf)
|
MCFG_SERIAL_EEPROM_ADD("eeprom", 128, 8, eeprom_intf)
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS)
|
MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS)
|
||||||
|
@ -35,7 +35,7 @@ To do:
|
|||||||
|
|
||||||
#include "emu.h"
|
#include "emu.h"
|
||||||
#include "cpu/m68000/m68000.h"
|
#include "cpu/m68000/m68000.h"
|
||||||
#include "machine/eeprom.h"
|
#include "machine/eepromser.h"
|
||||||
#include "machine/ticket.h"
|
#include "machine/ticket.h"
|
||||||
#include "machine/nvram.h"
|
#include "machine/nvram.h"
|
||||||
#include "sound/okim6295.h"
|
#include "sound/okim6295.h"
|
||||||
|
@ -27,7 +27,7 @@
|
|||||||
|
|
||||||
#include "emu.h"
|
#include "emu.h"
|
||||||
#include "cpu/i86/i86.h"
|
#include "cpu/i86/i86.h"
|
||||||
#include "machine/eeprom.h"
|
#include "machine/eepromser.h"
|
||||||
#include "machine/nvram.h"
|
#include "machine/nvram.h"
|
||||||
#include "cpu/z80/z80.h"
|
#include "cpu/z80/z80.h"
|
||||||
#include "includes/leland.h"
|
#include "includes/leland.h"
|
||||||
@ -292,8 +292,6 @@ INPUT_PORTS_END
|
|||||||
|
|
||||||
static const serial_eeprom_interface eeprom_intf =
|
static const serial_eeprom_interface eeprom_intf =
|
||||||
{
|
{
|
||||||
7,
|
|
||||||
16,
|
|
||||||
"000001100",
|
"000001100",
|
||||||
"000001010",
|
"000001010",
|
||||||
0,
|
0,
|
||||||
@ -328,7 +326,7 @@ static MACHINE_CONFIG_START( ataxx, leland_state )
|
|||||||
MCFG_MACHINE_START_OVERRIDE(leland_state,ataxx)
|
MCFG_MACHINE_START_OVERRIDE(leland_state,ataxx)
|
||||||
MCFG_MACHINE_RESET_OVERRIDE(leland_state,ataxx)
|
MCFG_MACHINE_RESET_OVERRIDE(leland_state,ataxx)
|
||||||
|
|
||||||
MCFG_SERIAL_EEPROM_ADD("eeprom", eeprom_intf)
|
MCFG_SERIAL_EEPROM_ADD("eeprom", 128, 16, eeprom_intf)
|
||||||
MCFG_NVRAM_ADD_0FILL("battery")
|
MCFG_NVRAM_ADD_0FILL("battery")
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
#define DE156CPU ARM
|
#define DE156CPU ARM
|
||||||
#include "emu.h"
|
#include "emu.h"
|
||||||
#include "includes/decocrpt.h"
|
#include "includes/decocrpt.h"
|
||||||
#include "machine/eeprom.h"
|
#include "machine/eepromser.h"
|
||||||
#include "sound/okim6295.h"
|
#include "sound/okim6295.h"
|
||||||
#include "sound/ymz280b.h"
|
#include "sound/ymz280b.h"
|
||||||
#include "cpu/arm/arm.h"
|
#include "cpu/arm/arm.h"
|
||||||
|
@ -84,7 +84,7 @@ Versions known to exist but not dumped:
|
|||||||
|
|
||||||
#include "emu.h"
|
#include "emu.h"
|
||||||
#include "cpu/m68000/m68000.h"
|
#include "cpu/m68000/m68000.h"
|
||||||
#include "machine/eeprom.h"
|
#include "machine/eepromser.h"
|
||||||
#include "machine/nvram.h"
|
#include "machine/nvram.h"
|
||||||
#include "cpu/z80/z80.h"
|
#include "cpu/z80/z80.h"
|
||||||
#include "includes/cave.h"
|
#include "includes/cave.h"
|
||||||
@ -389,8 +389,6 @@ WRITE16_MEMBER(cave_state::metmqstr_eeprom_msb_w)
|
|||||||
|
|
||||||
static const serial_eeprom_interface eeprom_interface_93C46_pacslot =
|
static const serial_eeprom_interface eeprom_interface_93C46_pacslot =
|
||||||
{
|
{
|
||||||
6, // address bits 6
|
|
||||||
16, // data bits 16
|
|
||||||
"*110", // read 1 10 aaaaaa
|
"*110", // read 1 10 aaaaaa
|
||||||
"*101", // write 1 01 aaaaaa dddddddddddddddd
|
"*101", // write 1 01 aaaaaa dddddddddddddddd
|
||||||
"*111", // erase 1 11 aaaaaa
|
"*111", // erase 1 11 aaaaaa
|
||||||
@ -2301,7 +2299,7 @@ static MACHINE_CONFIG_START( pacslot, cave_state )
|
|||||||
|
|
||||||
MCFG_MACHINE_START_OVERRIDE(cave_state,cave)
|
MCFG_MACHINE_START_OVERRIDE(cave_state,cave)
|
||||||
MCFG_MACHINE_RESET_OVERRIDE(cave_state,cave)
|
MCFG_MACHINE_RESET_OVERRIDE(cave_state,cave)
|
||||||
MCFG_SERIAL_EEPROM_ADD("eeprom", eeprom_interface_93C46_pacslot)
|
MCFG_SERIAL_EEPROM_ADD("eeprom", 64, 16, eeprom_interface_93C46_pacslot)
|
||||||
|
|
||||||
MCFG_TIMER_DRIVER_ADD("int_timer", cave_state, cave_vblank_start)
|
MCFG_TIMER_DRIVER_ADD("int_timer", cave_state, cave_vblank_start)
|
||||||
|
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
#include "cpu/z80/z80.h"
|
#include "cpu/z80/z80.h"
|
||||||
#include "machine/kabuki.h" // needed for decoding functions only
|
#include "machine/kabuki.h" // needed for decoding functions only
|
||||||
#include "includes/cbasebal.h"
|
#include "includes/cbasebal.h"
|
||||||
#include "machine/eeprom.h"
|
#include "machine/eepromser.h"
|
||||||
#include "sound/okim6295.h"
|
#include "sound/okim6295.h"
|
||||||
#include "sound/2413intf.h"
|
#include "sound/2413intf.h"
|
||||||
|
|
||||||
@ -91,8 +91,6 @@ WRITE8_MEMBER(cbasebal_state::cbasebal_coinctrl_w)
|
|||||||
|
|
||||||
static const serial_eeprom_interface cbasebal_eeprom_intf =
|
static const serial_eeprom_interface cbasebal_eeprom_intf =
|
||||||
{
|
{
|
||||||
6, /* address bits */
|
|
||||||
16, /* data bits */
|
|
||||||
"0110", /* read command */
|
"0110", /* read command */
|
||||||
"0101", /* write command */
|
"0101", /* write command */
|
||||||
"0111" /* erase command */
|
"0111" /* erase command */
|
||||||
@ -275,7 +273,7 @@ static MACHINE_CONFIG_START( cbasebal, cbasebal_state )
|
|||||||
MCFG_CPU_VBLANK_INT_DRIVER("screen", cbasebal_state, irq0_line_hold) /* ??? */
|
MCFG_CPU_VBLANK_INT_DRIVER("screen", cbasebal_state, irq0_line_hold) /* ??? */
|
||||||
|
|
||||||
|
|
||||||
MCFG_SERIAL_EEPROM_ADD("eeprom", cbasebal_eeprom_intf)
|
MCFG_SERIAL_EEPROM_ADD("eeprom", 64, 16, cbasebal_eeprom_intf)
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
|
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
|
||||||
|
@ -428,7 +428,7 @@ each direction to assign the boundries.
|
|||||||
#include "emu.h"
|
#include "emu.h"
|
||||||
#include "cpu/m6502/m6502.h"
|
#include "cpu/m6502/m6502.h"
|
||||||
#include "cpu/s2650/s2650.h"
|
#include "cpu/s2650/s2650.h"
|
||||||
#include "machine/eeprom.h"
|
#include "machine/eepromser.h"
|
||||||
#include "machine/atari_vg.h"
|
#include "machine/atari_vg.h"
|
||||||
#include "includes/centiped.h"
|
#include "includes/centiped.h"
|
||||||
#include "sound/ay8910.h"
|
#include "sound/ay8910.h"
|
||||||
|
@ -239,7 +239,7 @@ Stephh's log (2006.09.20) :
|
|||||||
#include "cpu/z80/z80.h"
|
#include "cpu/z80/z80.h"
|
||||||
#include "cpu/pic16c5x/pic16c5x.h"
|
#include "cpu/pic16c5x/pic16c5x.h"
|
||||||
#include "cpu/m68000/m68000.h"
|
#include "cpu/m68000/m68000.h"
|
||||||
#include "machine/eeprom.h"
|
#include "machine/eepromser.h"
|
||||||
#include "sound/2151intf.h"
|
#include "sound/2151intf.h"
|
||||||
#include "sound/okim6295.h"
|
#include "sound/okim6295.h"
|
||||||
#include "sound/qsound.h"
|
#include "sound/qsound.h"
|
||||||
@ -434,8 +434,6 @@ WRITE8_MEMBER(cps_state::qsound_banksw_w)
|
|||||||
|
|
||||||
static const serial_eeprom_interface qsound_eeprom_interface =
|
static const serial_eeprom_interface qsound_eeprom_interface =
|
||||||
{
|
{
|
||||||
7, /* address bits */
|
|
||||||
8, /* data bits */
|
|
||||||
"0110", /* read command */
|
"0110", /* read command */
|
||||||
"0101", /* write command */
|
"0101", /* write command */
|
||||||
"0111" /* erase command */
|
"0111" /* erase command */
|
||||||
@ -443,8 +441,6 @@ static const serial_eeprom_interface qsound_eeprom_interface =
|
|||||||
|
|
||||||
static const serial_eeprom_interface pang3_eeprom_interface =
|
static const serial_eeprom_interface pang3_eeprom_interface =
|
||||||
{
|
{
|
||||||
6, /* address bits */
|
|
||||||
16, /* data bits */
|
|
||||||
"0110", /* read command */
|
"0110", /* read command */
|
||||||
"0101", /* write command */
|
"0101", /* write command */
|
||||||
"0111" /* erase command */
|
"0111" /* erase command */
|
||||||
@ -3217,7 +3213,7 @@ MACHINE_CONFIG_END
|
|||||||
static MACHINE_CONFIG_DERIVED( pang3, cps1_12MHz )
|
static MACHINE_CONFIG_DERIVED( pang3, cps1_12MHz )
|
||||||
|
|
||||||
/* basic machine hardware */
|
/* basic machine hardware */
|
||||||
MCFG_SERIAL_EEPROM_ADD("eeprom", pang3_eeprom_interface)
|
MCFG_SERIAL_EEPROM_ADD("eeprom", 64, 16, pang3_eeprom_interface)
|
||||||
MACHINE_CONFIG_END
|
MACHINE_CONFIG_END
|
||||||
|
|
||||||
static MACHINE_CONFIG_DERIVED( ganbare, cps1_10MHz )
|
static MACHINE_CONFIG_DERIVED( ganbare, cps1_10MHz )
|
||||||
@ -3242,7 +3238,7 @@ static MACHINE_CONFIG_DERIVED( qsound, cps1_12MHz )
|
|||||||
|
|
||||||
MCFG_MACHINE_START_OVERRIDE(cps_state,qsound)
|
MCFG_MACHINE_START_OVERRIDE(cps_state,qsound)
|
||||||
|
|
||||||
MCFG_SERIAL_EEPROM_ADD("eeprom", qsound_eeprom_interface)
|
MCFG_SERIAL_EEPROM_ADD("eeprom", 128, 8, qsound_eeprom_interface)
|
||||||
|
|
||||||
/* sound hardware */
|
/* sound hardware */
|
||||||
MCFG_DEVICE_REMOVE("mono")
|
MCFG_DEVICE_REMOVE("mono")
|
||||||
@ -3259,7 +3255,7 @@ MACHINE_CONFIG_END
|
|||||||
static MACHINE_CONFIG_DERIVED( wofhfh, cps1_12MHz )
|
static MACHINE_CONFIG_DERIVED( wofhfh, cps1_12MHz )
|
||||||
|
|
||||||
/* basic machine hardware */
|
/* basic machine hardware */
|
||||||
MCFG_SERIAL_EEPROM_ADD("eeprom", qsound_eeprom_interface)
|
MCFG_SERIAL_EEPROM_ADD("eeprom", 128, 8, qsound_eeprom_interface)
|
||||||
MACHINE_CONFIG_END
|
MACHINE_CONFIG_END
|
||||||
|
|
||||||
static MACHINE_CONFIG_DERIVED( sf2m3, cps1_12MHz)
|
static MACHINE_CONFIG_DERIVED( sf2m3, cps1_12MHz)
|
||||||
|
@ -593,7 +593,7 @@ Stephh's inputs notes (based on some tests on the "parent" set) :
|
|||||||
|
|
||||||
#include "emu.h"
|
#include "emu.h"
|
||||||
#include "cpu/z80/z80.h"
|
#include "cpu/z80/z80.h"
|
||||||
#include "machine/eeprom.h"
|
#include "machine/eepromser.h"
|
||||||
#include "cpu/m68000/m68000.h"
|
#include "cpu/m68000/m68000.h"
|
||||||
#include "sound/qsound.h"
|
#include "sound/qsound.h"
|
||||||
#include "sound/okim6295.h" // gigaman2 bootleg
|
#include "sound/okim6295.h" // gigaman2 bootleg
|
||||||
@ -681,8 +681,6 @@ TIMER_DEVICE_CALLBACK_MEMBER(cps_state::cps2_interrupt)
|
|||||||
|
|
||||||
static const serial_eeprom_interface cps2_eeprom_interface =
|
static const serial_eeprom_interface cps2_eeprom_interface =
|
||||||
{
|
{
|
||||||
6, /* address bits */
|
|
||||||
16, /* data bits */
|
|
||||||
"0110", /* read command */
|
"0110", /* read command */
|
||||||
"0101", /* write command */
|
"0101", /* write command */
|
||||||
"0111" /* erase command */
|
"0111" /* erase command */
|
||||||
@ -1258,7 +1256,7 @@ static MACHINE_CONFIG_START( cps2, cps_state )
|
|||||||
|
|
||||||
MCFG_MACHINE_START_OVERRIDE(cps_state,cps2)
|
MCFG_MACHINE_START_OVERRIDE(cps_state,cps2)
|
||||||
|
|
||||||
MCFG_SERIAL_EEPROM_ADD("eeprom", cps2_eeprom_interface)
|
MCFG_SERIAL_EEPROM_ADD("eeprom", 64, 16, cps2_eeprom_interface)
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
|
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
|
||||||
|
@ -31,7 +31,7 @@
|
|||||||
#include "emu.h"
|
#include "emu.h"
|
||||||
#include "cpu/m6809/m6809.h"
|
#include "cpu/m6809/m6809.h"
|
||||||
#include "cpu/m68000/m68000.h"
|
#include "cpu/m68000/m68000.h"
|
||||||
#include "machine/eeprom.h"
|
#include "machine/eepromser.h"
|
||||||
#include "machine/ticket.h"
|
#include "machine/ticket.h"
|
||||||
#include "sound/bsmt2000.h"
|
#include "sound/bsmt2000.h"
|
||||||
#include "includes/dcheese.h"
|
#include "includes/dcheese.h"
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
#include "emu.h"
|
#include "emu.h"
|
||||||
#include "cpu/arm/arm.h"
|
#include "cpu/arm/arm.h"
|
||||||
#include "includes/decocrpt.h"
|
#include "includes/decocrpt.h"
|
||||||
#include "machine/eeprom.h"
|
#include "machine/eepromser.h"
|
||||||
#include "sound/okim6295.h"
|
#include "sound/okim6295.h"
|
||||||
#include "sound/ymz280b.h"
|
#include "sound/ymz280b.h"
|
||||||
#include "video/deco16ic.h"
|
#include "video/deco16ic.h"
|
||||||
|
@ -230,7 +230,7 @@ Notes:
|
|||||||
#include "cpu/m6809/m6809.h"
|
#include "cpu/m6809/m6809.h"
|
||||||
#include "cpu/z80/z80.h"
|
#include "cpu/z80/z80.h"
|
||||||
#include "includes/decocrpt.h"
|
#include "includes/decocrpt.h"
|
||||||
#include "machine/eeprom.h"
|
#include "machine/eepromser.h"
|
||||||
#include "includes/deco32.h"
|
#include "includes/deco32.h"
|
||||||
#include "sound/2151intf.h"
|
#include "sound/2151intf.h"
|
||||||
#include "sound/okim6295.h"
|
#include "sound/okim6295.h"
|
||||||
@ -1671,8 +1671,6 @@ WRITE8_MEMBER(deco32_state::sound_bankswitch_w)
|
|||||||
|
|
||||||
static const serial_eeprom_interface eeprom_interface_tattass =
|
static const serial_eeprom_interface eeprom_interface_tattass =
|
||||||
{
|
{
|
||||||
10, // address bits 10 ==> } 1024 byte eprom
|
|
||||||
8, // data bits 8
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/**********************************************************************************/
|
/**********************************************************************************/
|
||||||
@ -2161,7 +2159,7 @@ static MACHINE_CONFIG_START( tattass, deco32_state )
|
|||||||
MCFG_CPU_PROGRAM_MAP(tattass_map)
|
MCFG_CPU_PROGRAM_MAP(tattass_map)
|
||||||
MCFG_CPU_VBLANK_INT_DRIVER("screen", deco32_state, deco32_vbl_interrupt)
|
MCFG_CPU_VBLANK_INT_DRIVER("screen", deco32_state, deco32_vbl_interrupt)
|
||||||
|
|
||||||
MCFG_SERIAL_EEPROM_ADD("eeprom", eeprom_interface_tattass)
|
MCFG_SERIAL_EEPROM_ADD("eeprom", 1024, 8, eeprom_interface_tattass)
|
||||||
|
|
||||||
MCFG_SCREEN_ADD("screen", RASTER)
|
MCFG_SCREEN_ADD("screen", RASTER)
|
||||||
MCFG_SCREEN_REFRESH_RATE(60)
|
MCFG_SCREEN_REFRESH_RATE(60)
|
||||||
|
@ -99,7 +99,7 @@
|
|||||||
|
|
||||||
#include "emu.h"
|
#include "emu.h"
|
||||||
#include "includes/decocrpt.h"
|
#include "includes/decocrpt.h"
|
||||||
#include "machine/eeprom.h"
|
#include "machine/eepromser.h"
|
||||||
#include "sound/ymz280b.h"
|
#include "sound/ymz280b.h"
|
||||||
#include "cpu/arm/arm.h"
|
#include "cpu/arm/arm.h"
|
||||||
#include "cpu/sh2/sh2.h"
|
#include "cpu/sh2/sh2.h"
|
||||||
|
@ -317,7 +317,7 @@ Donkey Kong Junior Notes
|
|||||||
#include "machine/8257dma.h"
|
#include "machine/8257dma.h"
|
||||||
#include "machine/z80dma.h"
|
#include "machine/z80dma.h"
|
||||||
#include "machine/latch8.h"
|
#include "machine/latch8.h"
|
||||||
#include "machine/eeprom.h"
|
#include "machine/eepromser.h"
|
||||||
|
|
||||||
/*************************************
|
/*************************************
|
||||||
*
|
*
|
||||||
|
@ -25,7 +25,7 @@ lamps?
|
|||||||
#include "sound/okim6295.h"
|
#include "sound/okim6295.h"
|
||||||
#include "video/deco16ic.h"
|
#include "video/deco16ic.h"
|
||||||
#include "video/decospr.h"
|
#include "video/decospr.h"
|
||||||
#include "machine/eeprom.h"
|
#include "machine/eepromser.h"
|
||||||
#include "machine/deco104.h"
|
#include "machine/deco104.h"
|
||||||
|
|
||||||
class dreambal_state : public driver_device
|
class dreambal_state : public driver_device
|
||||||
|
@ -101,7 +101,7 @@
|
|||||||
#include "cpu/e132xs/e132xs.h"
|
#include "cpu/e132xs/e132xs.h"
|
||||||
#include "cpu/mcs51/mcs51.h"
|
#include "cpu/mcs51/mcs51.h"
|
||||||
|
|
||||||
#include "machine/eeprom.h"
|
#include "machine/eepromser.h"
|
||||||
#include "includes/eolith.h"
|
#include "includes/eolith.h"
|
||||||
#include "includes/eolithsp.h"
|
#include "includes/eolithsp.h"
|
||||||
|
|
||||||
@ -546,8 +546,6 @@ INPUT_PORTS_END
|
|||||||
// It's configured for 512 bytes
|
// It's configured for 512 bytes
|
||||||
static const serial_eeprom_interface eeprom_interface_93C66 =
|
static const serial_eeprom_interface eeprom_interface_93C66 =
|
||||||
{
|
{
|
||||||
9, // address bits 9
|
|
||||||
8, // data bits 8
|
|
||||||
"*110", // read 110 aaaaaaaaa
|
"*110", // read 110 aaaaaaaaa
|
||||||
"*101", // write 101 aaaaaaaaa dddddddd
|
"*101", // write 101 aaaaaaaaa dddddddd
|
||||||
"*111", // erase 111 aaaaaaaaa
|
"*111", // erase 111 aaaaaaaaa
|
||||||
@ -597,7 +595,7 @@ static MACHINE_CONFIG_START( eolith45, eolith_state )
|
|||||||
|
|
||||||
MCFG_MACHINE_RESET_OVERRIDE(eolith_state,eolith)
|
MCFG_MACHINE_RESET_OVERRIDE(eolith_state,eolith)
|
||||||
|
|
||||||
MCFG_SERIAL_EEPROM_ADD("eeprom", eeprom_interface_93C66)
|
MCFG_SERIAL_EEPROM_ADD("eeprom", 512, 8, eeprom_interface_93C66)
|
||||||
|
|
||||||
// for testing sound sync
|
// for testing sound sync
|
||||||
// MCFG_QUANTUM_PERFECT_CPU("maincpu")
|
// MCFG_QUANTUM_PERFECT_CPU("maincpu")
|
||||||
|
@ -11,7 +11,7 @@
|
|||||||
|
|
||||||
#include "emu.h"
|
#include "emu.h"
|
||||||
#include "cpu/e132xs/e132xs.h"
|
#include "cpu/e132xs/e132xs.h"
|
||||||
#include "machine/eeprom.h"
|
#include "machine/eepromser.h"
|
||||||
|
|
||||||
#include "sound/okim6295.h"
|
#include "sound/okim6295.h"
|
||||||
#include "includes/eolith.h"
|
#include "includes/eolith.h"
|
||||||
@ -41,8 +41,6 @@ public:
|
|||||||
// It's configured for 512 bytes
|
// It's configured for 512 bytes
|
||||||
static const serial_eeprom_interface eeprom_interface_93C66 =
|
static const serial_eeprom_interface eeprom_interface_93C66 =
|
||||||
{
|
{
|
||||||
9, // address bits 9
|
|
||||||
8, // data bits 8
|
|
||||||
"*110", // read 110 aaaaaaaaa
|
"*110", // read 110 aaaaaaaaa
|
||||||
"*101", // write 101 aaaaaaaaa dddddddd
|
"*101", // write 101 aaaaaaaaa dddddddd
|
||||||
"*111", // erase 111 aaaaaaaaa
|
"*111", // erase 111 aaaaaaaaa
|
||||||
@ -181,7 +179,7 @@ static MACHINE_CONFIG_START( eolith16, eolith16_state )
|
|||||||
MCFG_CPU_PROGRAM_MAP(eolith16_map)
|
MCFG_CPU_PROGRAM_MAP(eolith16_map)
|
||||||
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", eolith16_state, eolith_speedup, "screen", 0, 1)
|
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", eolith16_state, eolith_speedup, "screen", 0, 1)
|
||||||
|
|
||||||
MCFG_SERIAL_EEPROM_ADD("eeprom", eeprom_interface_93C66)
|
MCFG_SERIAL_EEPROM_ADD("eeprom", 512, 8, eeprom_interface_93C66)
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MCFG_SCREEN_ADD("screen", RASTER)
|
MCFG_SCREEN_ADD("screen", RASTER)
|
||||||
|
@ -67,7 +67,7 @@ ToDo:
|
|||||||
#include "emu.h"
|
#include "emu.h"
|
||||||
#include "cpu/z80/z80.h"
|
#include "cpu/z80/z80.h"
|
||||||
#include "cpu/m68000/m68000.h"
|
#include "cpu/m68000/m68000.h"
|
||||||
#include "machine/eeprom.h"
|
#include "machine/eepromser.h"
|
||||||
#include "sound/okim6295.h"
|
#include "sound/okim6295.h"
|
||||||
#include "sound/3812intf.h"
|
#include "sound/3812intf.h"
|
||||||
#include "includes/esd16.h"
|
#include "includes/esd16.h"
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
|
|
||||||
#include "emu.h"
|
#include "emu.h"
|
||||||
#include "cpu/e132xs/e132xs.h"
|
#include "cpu/e132xs/e132xs.h"
|
||||||
#include "machine/eeprom.h"
|
#include "machine/eepromser.h"
|
||||||
#include "sound/2151intf.h"
|
#include "sound/2151intf.h"
|
||||||
#include "sound/okim6295.h"
|
#include "sound/okim6295.h"
|
||||||
|
|
||||||
|
@ -92,12 +92,10 @@ slampic: no sound. In the wrestling ring, a layer flashes on and off.
|
|||||||
#include "sound/msm5205.h"
|
#include "sound/msm5205.h"
|
||||||
#include "sound/2151intf.h"
|
#include "sound/2151intf.h"
|
||||||
#include "sound/okim6295.h"
|
#include "sound/okim6295.h"
|
||||||
#include "machine/eeprom.h"
|
#include "machine/eepromser.h"
|
||||||
|
|
||||||
static const serial_eeprom_interface qsound_eeprom_interface =
|
static const serial_eeprom_interface qsound_eeprom_interface =
|
||||||
{
|
{
|
||||||
7, /* address bits */
|
|
||||||
8, /* data bits */
|
|
||||||
"0110", /* read command */
|
"0110", /* read command */
|
||||||
"0101", /* write command */
|
"0101", /* write command */
|
||||||
"0111" /* erase command */
|
"0111" /* erase command */
|
||||||
@ -1976,7 +1974,7 @@ static MACHINE_CONFIG_START( dinopic, cps_state )
|
|||||||
|
|
||||||
MCFG_MACHINE_START_OVERRIDE(cps_state, dinopic)
|
MCFG_MACHINE_START_OVERRIDE(cps_state, dinopic)
|
||||||
|
|
||||||
MCFG_SERIAL_EEPROM_ADD("eeprom", qsound_eeprom_interface)
|
MCFG_SERIAL_EEPROM_ADD("eeprom", 128, 8, qsound_eeprom_interface)
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MCFG_SCREEN_ADD("screen", RASTER)
|
MCFG_SCREEN_ADD("screen", RASTER)
|
||||||
@ -2143,7 +2141,7 @@ static MACHINE_CONFIG_START( sgyxz, cps_state )
|
|||||||
MCFG_PALETTE_LENGTH(0xc00)
|
MCFG_PALETTE_LENGTH(0xc00)
|
||||||
MCFG_VIDEO_START_OVERRIDE(cps_state,cps1)
|
MCFG_VIDEO_START_OVERRIDE(cps_state,cps1)
|
||||||
|
|
||||||
MCFG_SERIAL_EEPROM_ADD("eeprom", qsound_eeprom_interface)
|
MCFG_SERIAL_EEPROM_ADD("eeprom", 128, 8, qsound_eeprom_interface)
|
||||||
|
|
||||||
/* sound hardware */
|
/* sound hardware */
|
||||||
MCFG_SPEAKER_STANDARD_MONO("mono")
|
MCFG_SPEAKER_STANDARD_MONO("mono")
|
||||||
@ -2221,7 +2219,7 @@ static MACHINE_CONFIG_START( punipic, cps_state )
|
|||||||
|
|
||||||
MCFG_MACHINE_START_OVERRIDE(cps_state, punipic)
|
MCFG_MACHINE_START_OVERRIDE(cps_state, punipic)
|
||||||
|
|
||||||
MCFG_SERIAL_EEPROM_ADD("eeprom", qsound_eeprom_interface)
|
MCFG_SERIAL_EEPROM_ADD("eeprom", 128, 8, qsound_eeprom_interface)
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MCFG_SCREEN_ADD("screen", RASTER)
|
MCFG_SCREEN_ADD("screen", RASTER)
|
||||||
@ -2611,7 +2609,7 @@ static MACHINE_CONFIG_START( slampic, cps_state )
|
|||||||
|
|
||||||
MCFG_MACHINE_START_OVERRIDE(cps_state, slampic)
|
MCFG_MACHINE_START_OVERRIDE(cps_state, slampic)
|
||||||
|
|
||||||
MCFG_SERIAL_EEPROM_ADD("eeprom", qsound_eeprom_interface)
|
MCFG_SERIAL_EEPROM_ADD("eeprom", 128, 8, qsound_eeprom_interface)
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MCFG_SCREEN_ADD("screen", RASTER)
|
MCFG_SCREEN_ADD("screen", RASTER)
|
||||||
|
@ -314,7 +314,7 @@
|
|||||||
|
|
||||||
#include "emu.h"
|
#include "emu.h"
|
||||||
#include "cpu/z80/z80.h"
|
#include "cpu/z80/z80.h"
|
||||||
#include "machine/eeprom.h"
|
#include "machine/eepromser.h"
|
||||||
#include "sound/ay8910.h"
|
#include "sound/ay8910.h"
|
||||||
#include "machine/i8255.h"
|
#include "machine/i8255.h"
|
||||||
#include "machine/v3021.h"
|
#include "machine/v3021.h"
|
||||||
@ -553,8 +553,6 @@ static const serial_eeprom_interface forte_eeprom_intf =
|
|||||||
Preliminary interface for NM93CS56N Serial EEPROM.
|
Preliminary interface for NM93CS56N Serial EEPROM.
|
||||||
Correct address & data. Using 93C46 similar protocol.
|
Correct address & data. Using 93C46 similar protocol.
|
||||||
*/
|
*/
|
||||||
8, /* address bits */
|
|
||||||
16, /* data bits */
|
|
||||||
"*110", /* read command */
|
"*110", /* read command */
|
||||||
"*101", /* write command */
|
"*101", /* write command */
|
||||||
"*111", /* erase command */
|
"*111", /* erase command */
|
||||||
@ -702,7 +700,7 @@ static MACHINE_CONFIG_START( fortecar, fortecar_state )
|
|||||||
MCFG_SCREEN_UPDATE_DRIVER(fortecar_state, screen_update_fortecar)
|
MCFG_SCREEN_UPDATE_DRIVER(fortecar_state, screen_update_fortecar)
|
||||||
|
|
||||||
|
|
||||||
MCFG_SERIAL_EEPROM_ADD("eeprom", forte_eeprom_intf)
|
MCFG_SERIAL_EEPROM_ADD("eeprom", 256, 16, forte_eeprom_intf)
|
||||||
MCFG_SERIAL_EEPROM_DEFAULT_VALUE(0)
|
MCFG_SERIAL_EEPROM_DEFAULT_VALUE(0)
|
||||||
|
|
||||||
MCFG_I8255A_ADD( "fcppi0", ppi8255_intf )
|
MCFG_I8255A_ADD( "fcppi0", ppi8255_intf )
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
#include "emu.h"
|
#include "emu.h"
|
||||||
#include "cpu/m68000/m68000.h"
|
#include "cpu/m68000/m68000.h"
|
||||||
#include "cpu/z80/z80.h"
|
#include "cpu/z80/z80.h"
|
||||||
#include "machine/eeprom.h"
|
#include "machine/eepromser.h"
|
||||||
#include "sound/2610intf.h"
|
#include "sound/2610intf.h"
|
||||||
#include "rendlay.h"
|
#include "rendlay.h"
|
||||||
#include "includes/fromanc2.h"
|
#include "includes/fromanc2.h"
|
||||||
|
@ -20,7 +20,7 @@
|
|||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
#include "emu.h"
|
#include "emu.h"
|
||||||
#include "machine/eeprom.h"
|
#include "machine/eepromser.h"
|
||||||
#include "sound/gaelco.h"
|
#include "sound/gaelco.h"
|
||||||
#include "rendlay.h"
|
#include "rendlay.h"
|
||||||
#include "includes/gaelco2.h"
|
#include "includes/gaelco2.h"
|
||||||
@ -273,8 +273,6 @@ static const gaelcosnd_interface bang_snd_interface =
|
|||||||
|
|
||||||
static const serial_eeprom_interface gaelco2_eeprom_interface =
|
static const serial_eeprom_interface gaelco2_eeprom_interface =
|
||||||
{
|
{
|
||||||
8, /* address bits */
|
|
||||||
16, /* data bits */
|
|
||||||
"*110", /* read command */
|
"*110", /* read command */
|
||||||
"*101", /* write command */
|
"*101", /* write command */
|
||||||
"*111", /* erase command */
|
"*111", /* erase command */
|
||||||
@ -290,7 +288,7 @@ static MACHINE_CONFIG_START( bang, gaelco2_state )
|
|||||||
MCFG_CPU_PROGRAM_MAP(bang_map)
|
MCFG_CPU_PROGRAM_MAP(bang_map)
|
||||||
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", gaelco2_state, bang_irq, "screen", 0, 1)
|
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", gaelco2_state, bang_irq, "screen", 0, 1)
|
||||||
|
|
||||||
MCFG_SERIAL_EEPROM_ADD("eeprom", gaelco2_eeprom_interface)
|
MCFG_SERIAL_EEPROM_ADD("eeprom", 256, 16, gaelco2_eeprom_interface)
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
|
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
|
||||||
@ -967,7 +965,7 @@ static MACHINE_CONFIG_START( snowboar, gaelco2_state )
|
|||||||
MCFG_CPU_PROGRAM_MAP(snowboar_map)
|
MCFG_CPU_PROGRAM_MAP(snowboar_map)
|
||||||
MCFG_CPU_VBLANK_INT_DRIVER("screen", gaelco2_state, irq6_line_hold)
|
MCFG_CPU_VBLANK_INT_DRIVER("screen", gaelco2_state, irq6_line_hold)
|
||||||
|
|
||||||
MCFG_SERIAL_EEPROM_ADD("eeprom", gaelco2_eeprom_interface)
|
MCFG_SERIAL_EEPROM_ADD("eeprom", 256, 16, gaelco2_eeprom_interface)
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
|
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
|
||||||
@ -1208,7 +1206,7 @@ static MACHINE_CONFIG_START( wrally2, gaelco2_state )
|
|||||||
MCFG_CPU_PROGRAM_MAP(wrally2_map)
|
MCFG_CPU_PROGRAM_MAP(wrally2_map)
|
||||||
MCFG_CPU_VBLANK_INT_DRIVER("lscreen", gaelco2_state, irq6_line_hold)
|
MCFG_CPU_VBLANK_INT_DRIVER("lscreen", gaelco2_state, irq6_line_hold)
|
||||||
|
|
||||||
MCFG_SERIAL_EEPROM_ADD("eeprom", gaelco2_eeprom_interface)
|
MCFG_SERIAL_EEPROM_ADD("eeprom", 256, 16, gaelco2_eeprom_interface)
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
|
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
|
||||||
|
@ -147,7 +147,7 @@ REF. 970429
|
|||||||
#include "includes/gaelco3d.h"
|
#include "includes/gaelco3d.h"
|
||||||
#include "cpu/tms32031/tms32031.h"
|
#include "cpu/tms32031/tms32031.h"
|
||||||
#include "cpu/adsp2100/adsp2100.h"
|
#include "cpu/adsp2100/adsp2100.h"
|
||||||
#include "machine/eeprom.h"
|
#include "machine/eepromser.h"
|
||||||
|
|
||||||
#define LOG 0
|
#define LOG 0
|
||||||
|
|
||||||
|
@ -39,7 +39,7 @@ $305.b invincibility
|
|||||||
|
|
||||||
#include "emu.h"
|
#include "emu.h"
|
||||||
#include "cpu/m68000/m68000.h"
|
#include "cpu/m68000/m68000.h"
|
||||||
#include "machine/eeprom.h"
|
#include "machine/eepromser.h"
|
||||||
#include "sound/es5506.h"
|
#include "sound/es5506.h"
|
||||||
#include "audio/taito_en.h"
|
#include "audio/taito_en.h"
|
||||||
#include "includes/galastrm.h"
|
#include "includes/galastrm.h"
|
||||||
@ -277,8 +277,6 @@ GFXDECODE_END
|
|||||||
|
|
||||||
static const serial_eeprom_interface galastrm_eeprom_interface =
|
static const serial_eeprom_interface galastrm_eeprom_interface =
|
||||||
{
|
{
|
||||||
6, /* address bits */
|
|
||||||
16, /* data bits */
|
|
||||||
"0110", /* read command */
|
"0110", /* read command */
|
||||||
"0101", /* write command */
|
"0101", /* write command */
|
||||||
"0111", /* erase command */
|
"0111", /* erase command */
|
||||||
@ -313,7 +311,7 @@ static MACHINE_CONFIG_START( galastrm, galastrm_state )
|
|||||||
MCFG_CPU_PROGRAM_MAP(galastrm_map)
|
MCFG_CPU_PROGRAM_MAP(galastrm_map)
|
||||||
MCFG_CPU_VBLANK_INT_DRIVER("screen", galastrm_state, galastrm_interrupt) /* VBL */
|
MCFG_CPU_VBLANK_INT_DRIVER("screen", galastrm_state, galastrm_interrupt) /* VBL */
|
||||||
|
|
||||||
MCFG_SERIAL_EEPROM_ADD("eeprom", galastrm_eeprom_interface)
|
MCFG_SERIAL_EEPROM_ADD("eeprom", 64, 16, galastrm_eeprom_interface)
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MCFG_SCREEN_ADD("screen", RASTER)
|
MCFG_SCREEN_ADD("screen", RASTER)
|
||||||
|
@ -22,7 +22,7 @@ To Do:
|
|||||||
#include "emu.h"
|
#include "emu.h"
|
||||||
#include "cpu/m68000/m68000.h"
|
#include "cpu/m68000/m68000.h"
|
||||||
#include "sound/okim6295.h"
|
#include "sound/okim6295.h"
|
||||||
#include "machine/eeprom.h"
|
#include "machine/eepromser.h"
|
||||||
#include "includes/galpani2.h"
|
#include "includes/galpani2.h"
|
||||||
|
|
||||||
/***************************************************************************
|
/***************************************************************************
|
||||||
|
@ -65,7 +65,7 @@ Dumped by Uki
|
|||||||
#include "cpu/m68000/m68000.h"
|
#include "cpu/m68000/m68000.h"
|
||||||
#include "sound/ymz280b.h"
|
#include "sound/ymz280b.h"
|
||||||
#include "video/sknsspr.h"
|
#include "video/sknsspr.h"
|
||||||
#include "machine/eeprom.h"
|
#include "machine/eepromser.h"
|
||||||
#include "machine/kaneko_toybox.h"
|
#include "machine/kaneko_toybox.h"
|
||||||
#include "video/kaneko_grap2.h"
|
#include "video/kaneko_grap2.h"
|
||||||
|
|
||||||
|
@ -36,7 +36,7 @@ Known Issues
|
|||||||
#include "emu.h"
|
#include "emu.h"
|
||||||
#include "cpu/m68000/m68000.h"
|
#include "cpu/m68000/m68000.h"
|
||||||
#include "cpu/z80/z80.h"
|
#include "cpu/z80/z80.h"
|
||||||
#include "machine/eeprom.h"
|
#include "machine/eepromser.h"
|
||||||
#include "sound/k054539.h"
|
#include "sound/k054539.h"
|
||||||
#include "includes/konamipt.h"
|
#include "includes/konamipt.h"
|
||||||
#include "includes/gijoe.h"
|
#include "includes/gijoe.h"
|
||||||
@ -47,8 +47,6 @@ Known Issues
|
|||||||
|
|
||||||
static const serial_eeprom_interface eeprom_intf =
|
static const serial_eeprom_interface eeprom_intf =
|
||||||
{
|
{
|
||||||
7, /* address bits */
|
|
||||||
8, /* data bits */
|
|
||||||
"011000", /* read command */
|
"011000", /* read command */
|
||||||
"011100", /* write command */
|
"011100", /* write command */
|
||||||
"0100100000000",/* erase command */
|
"0100100000000",/* erase command */
|
||||||
@ -286,7 +284,7 @@ static MACHINE_CONFIG_START( gijoe, gijoe_state )
|
|||||||
MCFG_CPU_PROGRAM_MAP(sound_map)
|
MCFG_CPU_PROGRAM_MAP(sound_map)
|
||||||
|
|
||||||
|
|
||||||
MCFG_SERIAL_EEPROM_ADD("eeprom", eeprom_intf)
|
MCFG_SERIAL_EEPROM_ADD("eeprom", 128, 8, eeprom_intf)
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS | VIDEO_UPDATE_BEFORE_VBLANK)
|
MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS | VIDEO_UPDATE_BEFORE_VBLANK)
|
||||||
|
@ -64,7 +64,7 @@
|
|||||||
|
|
||||||
#include "emu.h"
|
#include "emu.h"
|
||||||
#include "cpu/m68000/m68000.h"
|
#include "cpu/m68000/m68000.h"
|
||||||
#include "machine/eeprom.h"
|
#include "machine/eepromser.h"
|
||||||
#include "sound/es5506.h"
|
#include "sound/es5506.h"
|
||||||
#include "audio/taito_en.h"
|
#include "audio/taito_en.h"
|
||||||
#include "includes/groundfx.h"
|
#include "includes/groundfx.h"
|
||||||
@ -116,8 +116,6 @@ void groundfx_state::device_timer(emu_timer &timer, device_timer_id id, int para
|
|||||||
|
|
||||||
static const serial_eeprom_interface groundfx_eeprom_interface =
|
static const serial_eeprom_interface groundfx_eeprom_interface =
|
||||||
{
|
{
|
||||||
6, /* address bits */
|
|
||||||
16, /* data bits */
|
|
||||||
"0110", /* read command */
|
"0110", /* read command */
|
||||||
"0101", /* write command */
|
"0101", /* write command */
|
||||||
"0111", /* erase command */
|
"0111", /* erase command */
|
||||||
@ -372,7 +370,7 @@ static MACHINE_CONFIG_START( groundfx, groundfx_state )
|
|||||||
MCFG_CPU_PROGRAM_MAP(groundfx_map)
|
MCFG_CPU_PROGRAM_MAP(groundfx_map)
|
||||||
MCFG_CPU_VBLANK_INT_DRIVER("screen", groundfx_state, groundfx_interrupt)
|
MCFG_CPU_VBLANK_INT_DRIVER("screen", groundfx_state, groundfx_interrupt)
|
||||||
|
|
||||||
MCFG_SERIAL_EEPROM_ADD("eeprom", groundfx_eeprom_interface)
|
MCFG_SERIAL_EEPROM_ADD("eeprom", 64, 16, groundfx_eeprom_interface)
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MCFG_SCREEN_ADD("screen", RASTER)
|
MCFG_SCREEN_ADD("screen", RASTER)
|
||||||
|
@ -220,7 +220,7 @@ Hang Pilot (uses an unknown but similar video board) 12W
|
|||||||
|
|
||||||
#include "emu.h"
|
#include "emu.h"
|
||||||
#include "cpu/m68000/m68000.h"
|
#include "cpu/m68000/m68000.h"
|
||||||
#include "machine/eeprom.h"
|
#include "machine/eepromser.h"
|
||||||
#include "cpu/powerpc/ppc.h"
|
#include "cpu/powerpc/ppc.h"
|
||||||
#include "cpu/sharc/sharc.h"
|
#include "cpu/sharc/sharc.h"
|
||||||
#include "machine/konppc.h"
|
#include "machine/konppc.h"
|
||||||
@ -362,8 +362,6 @@ WRITE32_MEMBER(gticlub_state::gticlub_k001604_reg_w)
|
|||||||
/* 93C56 EEPROM */
|
/* 93C56 EEPROM */
|
||||||
static const serial_eeprom_interface eeprom_intf =
|
static const serial_eeprom_interface eeprom_intf =
|
||||||
{
|
{
|
||||||
8, /* address bits */
|
|
||||||
16, /* data bits */
|
|
||||||
"*110", /* read command */
|
"*110", /* read command */
|
||||||
"*101", /* write command */
|
"*101", /* write command */
|
||||||
"*111", /* erase command */
|
"*111", /* erase command */
|
||||||
@ -978,7 +976,7 @@ static MACHINE_CONFIG_START( gticlub, gticlub_state )
|
|||||||
|
|
||||||
MCFG_QUANTUM_TIME(attotime::from_hz(6000))
|
MCFG_QUANTUM_TIME(attotime::from_hz(6000))
|
||||||
|
|
||||||
MCFG_SERIAL_EEPROM_ADD("eeprom", eeprom_intf)
|
MCFG_SERIAL_EEPROM_ADD("eeprom", 256, 16, eeprom_intf)
|
||||||
|
|
||||||
MCFG_MACHINE_START_OVERRIDE(gticlub_state,gticlub)
|
MCFG_MACHINE_START_OVERRIDE(gticlub_state,gticlub)
|
||||||
MCFG_MACHINE_RESET_OVERRIDE(gticlub_state,gticlub)
|
MCFG_MACHINE_RESET_OVERRIDE(gticlub_state,gticlub)
|
||||||
@ -1085,7 +1083,7 @@ static MACHINE_CONFIG_START( hangplt, gticlub_state )
|
|||||||
|
|
||||||
MCFG_QUANTUM_TIME(attotime::from_hz(6000))
|
MCFG_QUANTUM_TIME(attotime::from_hz(6000))
|
||||||
|
|
||||||
MCFG_SERIAL_EEPROM_ADD("eeprom", eeprom_intf)
|
MCFG_SERIAL_EEPROM_ADD("eeprom", 256, 16, eeprom_intf)
|
||||||
|
|
||||||
MCFG_MACHINE_START_OVERRIDE(gticlub_state,gticlub)
|
MCFG_MACHINE_START_OVERRIDE(gticlub_state,gticlub)
|
||||||
MCFG_MACHINE_RESET_OVERRIDE(gticlub_state,hangplt)
|
MCFG_MACHINE_RESET_OVERRIDE(gticlub_state,hangplt)
|
||||||
|
@ -43,7 +43,7 @@
|
|||||||
|
|
||||||
#include "emu.h"
|
#include "emu.h"
|
||||||
#include "cpu/m68000/m68000.h"
|
#include "cpu/m68000/m68000.h"
|
||||||
#include "machine/eeprom.h"
|
#include "machine/eepromser.h"
|
||||||
#include "sound/es5506.h"
|
#include "sound/es5506.h"
|
||||||
#include "audio/taito_en.h"
|
#include "audio/taito_en.h"
|
||||||
#include "includes/gunbustr.h"
|
#include "includes/gunbustr.h"
|
||||||
@ -286,8 +286,6 @@ GFXDECODE_END
|
|||||||
|
|
||||||
static const serial_eeprom_interface gunbustr_eeprom_interface =
|
static const serial_eeprom_interface gunbustr_eeprom_interface =
|
||||||
{
|
{
|
||||||
6, /* address bits */
|
|
||||||
16, /* data bits */
|
|
||||||
"0110", /* read command */
|
"0110", /* read command */
|
||||||
"0101", /* write command */
|
"0101", /* write command */
|
||||||
"0111", /* erase command */
|
"0111", /* erase command */
|
||||||
@ -312,7 +310,7 @@ static MACHINE_CONFIG_START( gunbustr, gunbustr_state )
|
|||||||
MCFG_CPU_PROGRAM_MAP(gunbustr_map)
|
MCFG_CPU_PROGRAM_MAP(gunbustr_map)
|
||||||
MCFG_CPU_VBLANK_INT_DRIVER("screen", gunbustr_state, gunbustr_interrupt) /* VBL */
|
MCFG_CPU_VBLANK_INT_DRIVER("screen", gunbustr_state, gunbustr_interrupt) /* VBL */
|
||||||
|
|
||||||
MCFG_SERIAL_EEPROM_ADD("eeprom", gunbustr_eeprom_interface)
|
MCFG_SERIAL_EEPROM_ADD("eeprom", 64, 16, gunbustr_eeprom_interface)
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MCFG_SCREEN_ADD("screen", RASTER)
|
MCFG_SCREEN_ADD("screen", RASTER)
|
||||||
|
@ -312,7 +312,7 @@
|
|||||||
#include "cpu/powerpc/ppc.h"
|
#include "cpu/powerpc/ppc.h"
|
||||||
#include "cpu/sharc/sharc.h"
|
#include "cpu/sharc/sharc.h"
|
||||||
#include "machine/adc1213x.h"
|
#include "machine/adc1213x.h"
|
||||||
#include "machine/eeprom.h"
|
#include "machine/eepromser.h"
|
||||||
#include "machine/k033906.h"
|
#include "machine/k033906.h"
|
||||||
#include "machine/konppc.h"
|
#include "machine/konppc.h"
|
||||||
#include "machine/timekpr.h"
|
#include "machine/timekpr.h"
|
||||||
|
@ -73,7 +73,7 @@ TODO:
|
|||||||
#include "emu.h"
|
#include "emu.h"
|
||||||
#include "cpu/m68000/m68000.h"
|
#include "cpu/m68000/m68000.h"
|
||||||
#include "cpu/z80/z80.h"
|
#include "cpu/z80/z80.h"
|
||||||
#include "machine/eeprom.h"
|
#include "machine/eepromser.h"
|
||||||
#include "sound/2610intf.h"
|
#include "sound/2610intf.h"
|
||||||
#include "video/vsystem_spr.h"
|
#include "video/vsystem_spr.h"
|
||||||
#include "includes/inufuku.h"
|
#include "includes/inufuku.h"
|
||||||
|
@ -119,7 +119,7 @@ as well as Up Right, Cocktail or Flip Screen from the service menu.
|
|||||||
#include "emu.h"
|
#include "emu.h"
|
||||||
#include "cpu/h83002/h8.h"
|
#include "cpu/h83002/h8.h"
|
||||||
#include "sound/okim9810.h"
|
#include "sound/okim9810.h"
|
||||||
#include "machine/eeprom.h"
|
#include "machine/eepromser.h"
|
||||||
|
|
||||||
class invqix_state : public driver_device
|
class invqix_state : public driver_device
|
||||||
{
|
{
|
||||||
|
@ -18,7 +18,7 @@ TODO:
|
|||||||
#include "emu.h"
|
#include "emu.h"
|
||||||
#include "cpu/m68000/m68000.h"
|
#include "cpu/m68000/m68000.h"
|
||||||
#include "sound/okim6295.h"
|
#include "sound/okim6295.h"
|
||||||
#include "machine/eeprom.h"
|
#include "machine/eepromser.h"
|
||||||
|
|
||||||
|
|
||||||
class jackpool_state : public driver_device
|
class jackpool_state : public driver_device
|
||||||
|
@ -341,7 +341,7 @@ Notes:
|
|||||||
#include "imagedev/cartslot.h"
|
#include "imagedev/cartslot.h"
|
||||||
#include "imagedev/snapquik.h"
|
#include "imagedev/snapquik.h"
|
||||||
#include "sound/dac.h"
|
#include "sound/dac.h"
|
||||||
#include "machine/eeprom.h"
|
#include "machine/eepromser.h"
|
||||||
|
|
||||||
#define COJAG_CLOCK XTAL_52MHz
|
#define COJAG_CLOCK XTAL_52MHz
|
||||||
#define R3000_CLOCK XTAL_40MHz
|
#define R3000_CLOCK XTAL_40MHz
|
||||||
|
@ -172,7 +172,7 @@ there are 9 PALS on the pcb (not dumped)
|
|||||||
#include "machine/nvram.h"
|
#include "machine/nvram.h"
|
||||||
#include "sound/ymz280b.h"
|
#include "sound/ymz280b.h"
|
||||||
#include "video/sknsspr.h"
|
#include "video/sknsspr.h"
|
||||||
#include "machine/eeprom.h"
|
#include "machine/eepromser.h"
|
||||||
#include "video/kaneko_tmap.h"
|
#include "video/kaneko_tmap.h"
|
||||||
#include "machine/kaneko_toybox.h"
|
#include "machine/kaneko_toybox.h"
|
||||||
|
|
||||||
|
@ -94,7 +94,7 @@ To do:
|
|||||||
|
|
||||||
#include "emu.h"
|
#include "emu.h"
|
||||||
#include "cpu/m68000/m68000.h"
|
#include "cpu/m68000/m68000.h"
|
||||||
#include "machine/eeprom.h"
|
#include "machine/eepromser.h"
|
||||||
#include "sound/okim6295.h"
|
#include "sound/okim6295.h"
|
||||||
#include "sound/st0016.h"
|
#include "sound/st0016.h"
|
||||||
#include "includes/st0016.h"
|
#include "includes/st0016.h"
|
||||||
|
@ -87,7 +87,7 @@ Dip locations verified from manual for:
|
|||||||
#include "emu.h"
|
#include "emu.h"
|
||||||
#include "cpu/z80/z80.h"
|
#include "cpu/z80/z80.h"
|
||||||
#include "cpu/m68000/m68000.h"
|
#include "cpu/m68000/m68000.h"
|
||||||
#include "machine/eeprom.h"
|
#include "machine/eepromser.h"
|
||||||
#include "includes/kaneko16.h"
|
#include "includes/kaneko16.h"
|
||||||
#include "sound/2203intf.h"
|
#include "sound/2203intf.h"
|
||||||
#include "sound/2151intf.h"
|
#include "sound/2151intf.h"
|
||||||
|
@ -37,7 +37,7 @@ lev 7 : 0x7c : 0000 0000 - x
|
|||||||
#include "emu.h"
|
#include "emu.h"
|
||||||
#include "cpu/m68000/m68000.h"
|
#include "cpu/m68000/m68000.h"
|
||||||
#include "cpu/pic16c5x/pic16c5x.h"
|
#include "cpu/pic16c5x/pic16c5x.h"
|
||||||
#include "machine/eeprom.h"
|
#include "machine/eepromser.h"
|
||||||
#include "sound/okim6295.h"
|
#include "sound/okim6295.h"
|
||||||
#include "includes/kickgoal.h"
|
#include "includes/kickgoal.h"
|
||||||
|
|
||||||
|
@ -50,7 +50,7 @@
|
|||||||
#include "cpu/psx/psx.h"
|
#include "cpu/psx/psx.h"
|
||||||
#include "video/psx.h"
|
#include "video/psx.h"
|
||||||
#include "machine/am53cf96.h"
|
#include "machine/am53cf96.h"
|
||||||
#include "machine/eeprom.h"
|
#include "machine/eepromser.h"
|
||||||
#include "machine/mb89371.h"
|
#include "machine/mb89371.h"
|
||||||
#include "machine/scsibus.h"
|
#include "machine/scsibus.h"
|
||||||
#include "machine/scsihd.h"
|
#include "machine/scsihd.h"
|
||||||
|
@ -124,7 +124,7 @@ Notes:
|
|||||||
#include "cpu/psx/psx.h"
|
#include "cpu/psx/psx.h"
|
||||||
#include "video/psx.h"
|
#include "video/psx.h"
|
||||||
#include "machine/am53cf96.h"
|
#include "machine/am53cf96.h"
|
||||||
#include "machine/eeprom.h"
|
#include "machine/eepromser.h"
|
||||||
#include "machine/intelfsh.h"
|
#include "machine/intelfsh.h"
|
||||||
#include "machine/mb89371.h"
|
#include "machine/mb89371.h"
|
||||||
#include "machine/scsibus.h"
|
#include "machine/scsibus.h"
|
||||||
|
@ -98,7 +98,7 @@
|
|||||||
#include "cpu/m68000/m68000.h"
|
#include "cpu/m68000/m68000.h"
|
||||||
#include "cpu/z80/z80.h"
|
#include "cpu/z80/z80.h"
|
||||||
#include "cpu/tms57002/tms57002.h"
|
#include "cpu/tms57002/tms57002.h"
|
||||||
#include "machine/eeprom.h"
|
#include "machine/eepromser.h"
|
||||||
#include "sound/k054539.h"
|
#include "sound/k054539.h"
|
||||||
#include "includes/konamigx.h"
|
#include "includes/konamigx.h"
|
||||||
#include "machine/adc083x.h"
|
#include "machine/adc083x.h"
|
||||||
|
@ -43,7 +43,7 @@
|
|||||||
|
|
||||||
#include "emu.h"
|
#include "emu.h"
|
||||||
#include "cpu/i86/i86.h"
|
#include "cpu/i86/i86.h"
|
||||||
#include "machine/eeprom.h"
|
#include "machine/eepromser.h"
|
||||||
#include "machine/nvram.h"
|
#include "machine/nvram.h"
|
||||||
#include "cpu/z80/z80.h"
|
#include "cpu/z80/z80.h"
|
||||||
#include "includes/leland.h"
|
#include "includes/leland.h"
|
||||||
@ -730,8 +730,6 @@ static const ay8910_interface ay8910_config =
|
|||||||
|
|
||||||
static const serial_eeprom_interface eeprom_intf =
|
static const serial_eeprom_interface eeprom_intf =
|
||||||
{
|
{
|
||||||
6,
|
|
||||||
16,
|
|
||||||
"110",
|
"110",
|
||||||
"101",
|
"101",
|
||||||
"111"
|
"111"
|
||||||
@ -760,7 +758,7 @@ static MACHINE_CONFIG_START( leland, leland_state )
|
|||||||
MCFG_MACHINE_START_OVERRIDE(leland_state,leland)
|
MCFG_MACHINE_START_OVERRIDE(leland_state,leland)
|
||||||
MCFG_MACHINE_RESET_OVERRIDE(leland_state,leland)
|
MCFG_MACHINE_RESET_OVERRIDE(leland_state,leland)
|
||||||
|
|
||||||
MCFG_SERIAL_EEPROM_ADD("eeprom", eeprom_intf)
|
MCFG_SERIAL_EEPROM_ADD("eeprom", 64, 16, eeprom_intf)
|
||||||
MCFG_NVRAM_ADD_0FILL("battery")
|
MCFG_NVRAM_ADD_0FILL("battery")
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
|
@ -162,7 +162,7 @@ maybe some sprite placement issues
|
|||||||
#include "cpu/m6809/m6809.h"
|
#include "cpu/m6809/m6809.h"
|
||||||
#include "cpu/m6809/hd6309.h"
|
#include "cpu/m6809/hd6309.h"
|
||||||
#include "cpu/z80/z80.h"
|
#include "cpu/z80/z80.h"
|
||||||
#include "machine/eeprom.h"
|
#include "machine/eepromser.h"
|
||||||
#include "sound/k054539.h"
|
#include "sound/k054539.h"
|
||||||
#include "includes/lethal.h"
|
#include "includes/lethal.h"
|
||||||
|
|
||||||
@ -178,8 +178,6 @@ static const char *const gunnames[] = { "LIGHT0_X", "LIGHT0_Y", "LIGHT1_X", "LIG
|
|||||||
|
|
||||||
static const serial_eeprom_interface eeprom_intf =
|
static const serial_eeprom_interface eeprom_intf =
|
||||||
{
|
{
|
||||||
7, /* address bits */
|
|
||||||
8, /* data bits */
|
|
||||||
"011000", /* read command */
|
"011000", /* read command */
|
||||||
"011100", /* write command */
|
"011100", /* write command */
|
||||||
"0100100000000", /* erase command */
|
"0100100000000", /* erase command */
|
||||||
@ -639,7 +637,7 @@ static MACHINE_CONFIG_START( lethalen, lethal_state )
|
|||||||
MCFG_CPU_PROGRAM_MAP(le_sound)
|
MCFG_CPU_PROGRAM_MAP(le_sound)
|
||||||
|
|
||||||
|
|
||||||
MCFG_SERIAL_EEPROM_ADD("eeprom", eeprom_intf)
|
MCFG_SERIAL_EEPROM_ADD("eeprom", 128, 8, eeprom_intf)
|
||||||
|
|
||||||
MCFG_GFXDECODE(lethal)
|
MCFG_GFXDECODE(lethal)
|
||||||
|
|
||||||
|
@ -24,7 +24,7 @@
|
|||||||
|
|
||||||
#include "emu.h"
|
#include "emu.h"
|
||||||
#include "cpu/e132xs/e132xs.h"
|
#include "cpu/e132xs/e132xs.h"
|
||||||
#include "machine/eeprom.h"
|
#include "machine/eepromser.h"
|
||||||
#include "sound/qs1000.h"
|
#include "sound/qs1000.h"
|
||||||
#include "sound/okim6295.h"
|
#include "sound/okim6295.h"
|
||||||
|
|
||||||
|
@ -41,7 +41,7 @@ Notes:
|
|||||||
#include "cpu/m68000/m68000.h"
|
#include "cpu/m68000/m68000.h"
|
||||||
#include "cpu/z80/z80.h"
|
#include "cpu/z80/z80.h"
|
||||||
#include "machine/i8255.h"
|
#include "machine/i8255.h"
|
||||||
#include "machine/eeprom.h"
|
#include "machine/eepromser.h"
|
||||||
#include "sound/3812intf.h"
|
#include "sound/3812intf.h"
|
||||||
#include "sound/okim6295.h"
|
#include "sound/okim6295.h"
|
||||||
#include "sound/ymf278b.h"
|
#include "sound/ymf278b.h"
|
||||||
|
@ -98,7 +98,7 @@ driver modified by Eisuke Watanabe
|
|||||||
#include "cpu/h83002/h8.h"
|
#include "cpu/h83002/h8.h"
|
||||||
#include "cpu/upd7810/upd7810.h"
|
#include "cpu/upd7810/upd7810.h"
|
||||||
#include "includes/metro.h"
|
#include "includes/metro.h"
|
||||||
#include "machine/eeprom.h"
|
#include "machine/eepromser.h"
|
||||||
#include "sound/2151intf.h"
|
#include "sound/2151intf.h"
|
||||||
#include "sound/2413intf.h"
|
#include "sound/2413intf.h"
|
||||||
#include "sound/2610intf.h"
|
#include "sound/2610intf.h"
|
||||||
|
@ -53,7 +53,7 @@
|
|||||||
#include "emu.h"
|
#include "emu.h"
|
||||||
#include "cpu/m68000/m68000.h"
|
#include "cpu/m68000/m68000.h"
|
||||||
#include "sound/ymz280b.h"
|
#include "sound/ymz280b.h"
|
||||||
#include "machine/eeprom.h"
|
#include "machine/eepromser.h"
|
||||||
#include "machine/ticket.h"
|
#include "machine/ticket.h"
|
||||||
|
|
||||||
|
|
||||||
|
@ -68,7 +68,7 @@ mw-9.rom = ST M27C1001 / GFX
|
|||||||
|
|
||||||
#include "emu.h"
|
#include "emu.h"
|
||||||
#include "cpu/z80/z80.h"
|
#include "cpu/z80/z80.h"
|
||||||
#include "machine/eeprom.h"
|
#include "machine/eepromser.h"
|
||||||
#include "machine/kabuki.h" // needed for decoding functions only
|
#include "machine/kabuki.h" // needed for decoding functions only
|
||||||
#include "includes/mitchell.h"
|
#include "includes/mitchell.h"
|
||||||
#include "sound/okim6295.h"
|
#include "sound/okim6295.h"
|
||||||
@ -85,8 +85,6 @@ mw-9.rom = ST M27C1001 / GFX
|
|||||||
|
|
||||||
static const serial_eeprom_interface eeprom_intf =
|
static const serial_eeprom_interface eeprom_intf =
|
||||||
{
|
{
|
||||||
6, /* address bits */
|
|
||||||
16, /* data bits */
|
|
||||||
"0110", /* read command */
|
"0110", /* read command */
|
||||||
"0101", /* write command */
|
"0101", /* write command */
|
||||||
"0111" /* erase command */
|
"0111" /* erase command */
|
||||||
@ -1090,7 +1088,7 @@ static MACHINE_CONFIG_START( mgakuen, mitchell_state )
|
|||||||
MCFG_MACHINE_START_OVERRIDE(mitchell_state,mitchell)
|
MCFG_MACHINE_START_OVERRIDE(mitchell_state,mitchell)
|
||||||
MCFG_MACHINE_RESET_OVERRIDE(mitchell_state,mitchell)
|
MCFG_MACHINE_RESET_OVERRIDE(mitchell_state,mitchell)
|
||||||
|
|
||||||
MCFG_SERIAL_EEPROM_ADD("eeprom", eeprom_intf)
|
MCFG_SERIAL_EEPROM_ADD("eeprom", 64, 16, eeprom_intf)
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MCFG_SCREEN_ADD("screen", RASTER)
|
MCFG_SCREEN_ADD("screen", RASTER)
|
||||||
@ -1127,7 +1125,7 @@ static MACHINE_CONFIG_START( pang, mitchell_state )
|
|||||||
MCFG_MACHINE_START_OVERRIDE(mitchell_state,mitchell)
|
MCFG_MACHINE_START_OVERRIDE(mitchell_state,mitchell)
|
||||||
MCFG_MACHINE_RESET_OVERRIDE(mitchell_state,mitchell)
|
MCFG_MACHINE_RESET_OVERRIDE(mitchell_state,mitchell)
|
||||||
|
|
||||||
MCFG_SERIAL_EEPROM_ADD("eeprom", eeprom_intf)
|
MCFG_SERIAL_EEPROM_ADD("eeprom", 64, 16, eeprom_intf)
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MCFG_SCREEN_ADD("screen", RASTER)
|
MCFG_SCREEN_ADD("screen", RASTER)
|
||||||
@ -1262,7 +1260,7 @@ static MACHINE_CONFIG_START( marukin, mitchell_state )
|
|||||||
MCFG_CPU_IO_MAP(mitchell_io_map)
|
MCFG_CPU_IO_MAP(mitchell_io_map)
|
||||||
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", mitchell_state, mitchell_irq, "screen", 0, 1)
|
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", mitchell_state, mitchell_irq, "screen", 0, 1)
|
||||||
|
|
||||||
MCFG_SERIAL_EEPROM_ADD("eeprom", eeprom_intf)
|
MCFG_SERIAL_EEPROM_ADD("eeprom", 64, 16, eeprom_intf)
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MCFG_SCREEN_ADD("screen", RASTER)
|
MCFG_SCREEN_ADD("screen", RASTER)
|
||||||
@ -1313,7 +1311,7 @@ static MACHINE_CONFIG_START( pkladiesbl, mitchell_state )
|
|||||||
MCFG_CPU_IO_MAP(mitchell_io_map)
|
MCFG_CPU_IO_MAP(mitchell_io_map)
|
||||||
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", mitchell_state, mitchell_irq, "screen", 0, 1)
|
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", mitchell_state, mitchell_irq, "screen", 0, 1)
|
||||||
|
|
||||||
MCFG_SERIAL_EEPROM_ADD("eeprom", eeprom_intf)
|
MCFG_SERIAL_EEPROM_ADD("eeprom", 64, 16, eeprom_intf)
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MCFG_SCREEN_ADD("screen", RASTER)
|
MCFG_SCREEN_ADD("screen", RASTER)
|
||||||
|
@ -87,7 +87,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "emu.h"
|
#include "emu.h"
|
||||||
#include "machine/eeprom.h"
|
#include "machine/eepromser.h"
|
||||||
#include "machine/nvram.h"
|
#include "machine/nvram.h"
|
||||||
#include "video/segaic24.h"
|
#include "video/segaic24.h"
|
||||||
#include "cpu/i960/i960.h"
|
#include "cpu/i960/i960.h"
|
||||||
|
@ -656,7 +656,7 @@ ALL VROM ROMs are 16M MASK
|
|||||||
#include "emu.h"
|
#include "emu.h"
|
||||||
#include "cpu/m68000/m68000.h"
|
#include "cpu/m68000/m68000.h"
|
||||||
#include "cpu/powerpc/ppc.h"
|
#include "cpu/powerpc/ppc.h"
|
||||||
#include "machine/eeprom.h"
|
#include "machine/eepromser.h"
|
||||||
#include "machine/53c810.h"
|
#include "machine/53c810.h"
|
||||||
#include "machine/nvram.h"
|
#include "machine/nvram.h"
|
||||||
#include "sound/scsp.h"
|
#include "sound/scsp.h"
|
||||||
@ -1195,8 +1195,6 @@ static void real3d_dma_callback(running_machine &machine, UINT32 src, UINT32 dst
|
|||||||
/* this is a 93C46 but with reset delay that is needed by Lost World */
|
/* this is a 93C46 but with reset delay that is needed by Lost World */
|
||||||
static const serial_eeprom_interface eeprom_intf =
|
static const serial_eeprom_interface eeprom_intf =
|
||||||
{
|
{
|
||||||
6, /* address bits */
|
|
||||||
16, /* data bits */
|
|
||||||
"*110", /* read command */
|
"*110", /* read command */
|
||||||
"*101", /* write command */
|
"*101", /* write command */
|
||||||
"*111", /* erase command */
|
"*111", /* erase command */
|
||||||
@ -5371,7 +5369,7 @@ static MACHINE_CONFIG_START( model3_10, model3_state )
|
|||||||
MCFG_MACHINE_START_OVERRIDE(model3_state,model3_10)
|
MCFG_MACHINE_START_OVERRIDE(model3_state,model3_10)
|
||||||
MCFG_MACHINE_RESET_OVERRIDE(model3_state,model3_10)
|
MCFG_MACHINE_RESET_OVERRIDE(model3_state,model3_10)
|
||||||
|
|
||||||
MCFG_SERIAL_EEPROM_ADD("eeprom", eeprom_intf)
|
MCFG_SERIAL_EEPROM_ADD("eeprom", 64, 16, eeprom_intf)
|
||||||
MCFG_NVRAM_ADD_1FILL("backup")
|
MCFG_NVRAM_ADD_1FILL("backup")
|
||||||
|
|
||||||
|
|
||||||
@ -5412,7 +5410,7 @@ static MACHINE_CONFIG_START( model3_15, model3_state )
|
|||||||
MCFG_MACHINE_START_OVERRIDE(model3_state,model3_15)
|
MCFG_MACHINE_START_OVERRIDE(model3_state,model3_15)
|
||||||
MCFG_MACHINE_RESET_OVERRIDE(model3_state,model3_15)
|
MCFG_MACHINE_RESET_OVERRIDE(model3_state,model3_15)
|
||||||
|
|
||||||
MCFG_SERIAL_EEPROM_ADD("eeprom", eeprom_intf)
|
MCFG_SERIAL_EEPROM_ADD("eeprom", 64, 16, eeprom_intf)
|
||||||
MCFG_NVRAM_ADD_1FILL("backup")
|
MCFG_NVRAM_ADD_1FILL("backup")
|
||||||
|
|
||||||
|
|
||||||
@ -5459,7 +5457,7 @@ static MACHINE_CONFIG_START( model3_20, model3_state )
|
|||||||
MCFG_MACHINE_START_OVERRIDE(model3_state,model3_20)
|
MCFG_MACHINE_START_OVERRIDE(model3_state,model3_20)
|
||||||
MCFG_MACHINE_RESET_OVERRIDE(model3_state,model3_20)
|
MCFG_MACHINE_RESET_OVERRIDE(model3_state,model3_20)
|
||||||
|
|
||||||
MCFG_SERIAL_EEPROM_ADD("eeprom", eeprom_intf)
|
MCFG_SERIAL_EEPROM_ADD("eeprom", 64, 16, eeprom_intf)
|
||||||
MCFG_NVRAM_ADD_1FILL("backup")
|
MCFG_NVRAM_ADD_1FILL("backup")
|
||||||
|
|
||||||
|
|
||||||
@ -5497,7 +5495,7 @@ static MACHINE_CONFIG_START( model3_21, model3_state )
|
|||||||
MCFG_MACHINE_START_OVERRIDE(model3_state,model3_21)
|
MCFG_MACHINE_START_OVERRIDE(model3_state,model3_21)
|
||||||
MCFG_MACHINE_RESET_OVERRIDE(model3_state,model3_21)
|
MCFG_MACHINE_RESET_OVERRIDE(model3_state,model3_21)
|
||||||
|
|
||||||
MCFG_SERIAL_EEPROM_ADD("eeprom", eeprom_intf)
|
MCFG_SERIAL_EEPROM_ADD("eeprom", 64, 16, eeprom_intf)
|
||||||
MCFG_NVRAM_ADD_1FILL("backup")
|
MCFG_NVRAM_ADD_1FILL("backup")
|
||||||
|
|
||||||
|
|
||||||
|
@ -41,7 +41,7 @@ Bucky:
|
|||||||
#include "emu.h"
|
#include "emu.h"
|
||||||
#include "cpu/m68000/m68000.h"
|
#include "cpu/m68000/m68000.h"
|
||||||
#include "cpu/z80/z80.h"
|
#include "cpu/z80/z80.h"
|
||||||
#include "machine/eeprom.h"
|
#include "machine/eepromser.h"
|
||||||
#include "sound/2151intf.h"
|
#include "sound/2151intf.h"
|
||||||
#include "sound/okim6295.h"
|
#include "sound/okim6295.h"
|
||||||
#include "sound/k054539.h"
|
#include "sound/k054539.h"
|
||||||
@ -54,8 +54,6 @@ Bucky:
|
|||||||
|
|
||||||
static const serial_eeprom_interface eeprom_intf =
|
static const serial_eeprom_interface eeprom_intf =
|
||||||
{
|
{
|
||||||
7, /* address bits */
|
|
||||||
8, /* data bits */
|
|
||||||
"011000", /* read command */
|
"011000", /* read command */
|
||||||
"011100", /* write command */
|
"011100", /* write command */
|
||||||
"0100100000000", /* erase command */
|
"0100100000000", /* erase command */
|
||||||
@ -508,7 +506,7 @@ static MACHINE_CONFIG_START( moo, moo_state )
|
|||||||
MCFG_MACHINE_START_OVERRIDE(moo_state,moo)
|
MCFG_MACHINE_START_OVERRIDE(moo_state,moo)
|
||||||
MCFG_MACHINE_RESET_OVERRIDE(moo_state,moo)
|
MCFG_MACHINE_RESET_OVERRIDE(moo_state,moo)
|
||||||
|
|
||||||
MCFG_SERIAL_EEPROM_ADD("eeprom", eeprom_intf)
|
MCFG_SERIAL_EEPROM_ADD("eeprom", 128, 8, eeprom_intf)
|
||||||
|
|
||||||
MCFG_K053252_ADD("k053252", 16000000/2, moo_k053252_intf)
|
MCFG_K053252_ADD("k053252", 16000000/2, moo_k053252_intf)
|
||||||
|
|
||||||
@ -553,7 +551,7 @@ static MACHINE_CONFIG_START( moobl, moo_state )
|
|||||||
MCFG_MACHINE_START_OVERRIDE(moo_state,moo)
|
MCFG_MACHINE_START_OVERRIDE(moo_state,moo)
|
||||||
MCFG_MACHINE_RESET_OVERRIDE(moo_state,moo)
|
MCFG_MACHINE_RESET_OVERRIDE(moo_state,moo)
|
||||||
|
|
||||||
MCFG_SERIAL_EEPROM_ADD("eeprom", eeprom_intf)
|
MCFG_SERIAL_EEPROM_ADD("eeprom", 128, 8, eeprom_intf)
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS | VIDEO_HAS_HIGHLIGHTS | VIDEO_UPDATE_AFTER_VBLANK)
|
MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS | VIDEO_HAS_HIGHLIGHTS | VIDEO_UPDATE_AFTER_VBLANK)
|
||||||
|
@ -26,7 +26,7 @@
|
|||||||
#include "includes/konamigx.h"
|
#include "includes/konamigx.h"
|
||||||
#include "cpu/m68000/m68000.h"
|
#include "cpu/m68000/m68000.h"
|
||||||
#include "cpu/z80/z80.h"
|
#include "cpu/z80/z80.h"
|
||||||
#include "machine/eeprom.h"
|
#include "machine/eepromser.h"
|
||||||
#include "sound/k054539.h"
|
#include "sound/k054539.h"
|
||||||
#include "includes/konamipt.h"
|
#include "includes/konamipt.h"
|
||||||
#include "includes/mystwarr.h"
|
#include "includes/mystwarr.h"
|
||||||
@ -35,8 +35,6 @@
|
|||||||
|
|
||||||
static const serial_eeprom_interface eeprom_intf =
|
static const serial_eeprom_interface eeprom_intf =
|
||||||
{
|
{
|
||||||
7, /* address bits */
|
|
||||||
8, /* data bits */
|
|
||||||
"011000", /* read command */
|
"011000", /* read command */
|
||||||
"011100", /* write command */
|
"011100", /* write command */
|
||||||
"0100100000000",/* erase command */
|
"0100100000000",/* erase command */
|
||||||
@ -48,8 +46,6 @@ static const serial_eeprom_interface eeprom_intf =
|
|||||||
but the command formats are slightly different. Why? */
|
but the command formats are slightly different. Why? */
|
||||||
static const serial_eeprom_interface gaia_eeprom_intf =
|
static const serial_eeprom_interface gaia_eeprom_intf =
|
||||||
{
|
{
|
||||||
7, /* address bits */
|
|
||||||
8, /* data bits */
|
|
||||||
"011000", /* read command */
|
"011000", /* read command */
|
||||||
"010100", /* write command */
|
"010100", /* write command */
|
||||||
"0100100000000",/* erase command */
|
"0100100000000",/* erase command */
|
||||||
@ -974,7 +970,7 @@ static MACHINE_CONFIG_START( mystwarr, mystwarr_state )
|
|||||||
|
|
||||||
MCFG_QUANTUM_TIME(attotime::from_hz(1920))
|
MCFG_QUANTUM_TIME(attotime::from_hz(1920))
|
||||||
|
|
||||||
MCFG_SERIAL_EEPROM_ADD("eeprom", eeprom_intf)
|
MCFG_SERIAL_EEPROM_ADD("eeprom", 128, 8, eeprom_intf)
|
||||||
MCFG_K053252_ADD("k053252", 6000000, mystwarr_k053252_intf) // 6 MHz?
|
MCFG_K053252_ADD("k053252", 6000000, mystwarr_k053252_intf) // 6 MHz?
|
||||||
|
|
||||||
MCFG_MACHINE_START_OVERRIDE(mystwarr_state,mystwarr)
|
MCFG_MACHINE_START_OVERRIDE(mystwarr_state,mystwarr)
|
||||||
@ -1101,7 +1097,7 @@ static MACHINE_CONFIG_DERIVED( gaiapols, mystwarr )
|
|||||||
MCFG_GFXDECODE(gaiapols)
|
MCFG_GFXDECODE(gaiapols)
|
||||||
|
|
||||||
MCFG_DEVICE_REMOVE("eeprom")
|
MCFG_DEVICE_REMOVE("eeprom")
|
||||||
MCFG_SERIAL_EEPROM_ADD("eeprom", gaia_eeprom_intf)
|
MCFG_SERIAL_EEPROM_ADD("eeprom", 128, 8, gaia_eeprom_intf)
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MCFG_VIDEO_START_OVERRIDE(mystwarr_state,gaiapols)
|
MCFG_VIDEO_START_OVERRIDE(mystwarr_state,gaiapols)
|
||||||
|
@ -235,7 +235,7 @@ TODO:
|
|||||||
#include "emu.h"
|
#include "emu.h"
|
||||||
#include "cpu/z80/z80.h"
|
#include "cpu/z80/z80.h"
|
||||||
#include "cpu/m68000/m68000.h"
|
#include "cpu/m68000/m68000.h"
|
||||||
#include "machine/eeprom.h"
|
#include "machine/eepromser.h"
|
||||||
#include "audio/taitosnd.h"
|
#include "audio/taitosnd.h"
|
||||||
#include "sound/2610intf.h"
|
#include "sound/2610intf.h"
|
||||||
#include "sound/flt_vol.h"
|
#include "sound/flt_vol.h"
|
||||||
@ -299,8 +299,6 @@ bits are different.
|
|||||||
|
|
||||||
static const serial_eeprom_interface eeprom_intf =
|
static const serial_eeprom_interface eeprom_intf =
|
||||||
{
|
{
|
||||||
6, /* address bits */
|
|
||||||
16, /* data bits */
|
|
||||||
"0110", /* read command */
|
"0110", /* read command */
|
||||||
"0101", /* write command */
|
"0101", /* write command */
|
||||||
"0111", /* erase command */
|
"0111", /* erase command */
|
||||||
@ -688,7 +686,7 @@ static MACHINE_CONFIG_START( othunder, othunder_state )
|
|||||||
MCFG_CPU_ADD("audiocpu", Z80,16000000/4 ) /* 4 MHz */
|
MCFG_CPU_ADD("audiocpu", Z80,16000000/4 ) /* 4 MHz */
|
||||||
MCFG_CPU_PROGRAM_MAP(z80_sound_map)
|
MCFG_CPU_PROGRAM_MAP(z80_sound_map)
|
||||||
|
|
||||||
MCFG_SERIAL_EEPROM_ADD("eeprom", eeprom_intf)
|
MCFG_SERIAL_EEPROM_ADD("eeprom", 64, 16, eeprom_intf)
|
||||||
|
|
||||||
|
|
||||||
MCFG_TC0220IOC_ADD("tc0220ioc", othunder_io_intf)
|
MCFG_TC0220IOC_ADD("tc0220ioc", othunder_io_intf)
|
||||||
|
@ -27,7 +27,7 @@
|
|||||||
#include "emu.h"
|
#include "emu.h"
|
||||||
#include "cpu/m68000/m68000.h"
|
#include "cpu/m68000/m68000.h"
|
||||||
#include "video/k053250.h"
|
#include "video/k053250.h"
|
||||||
#include "machine/eeprom.h"
|
#include "machine/eepromser.h"
|
||||||
#include "cpu/m6809/m6809.h"
|
#include "cpu/m6809/m6809.h"
|
||||||
#include "sound/2151intf.h"
|
#include "sound/2151intf.h"
|
||||||
#include "sound/k053260.h"
|
#include "sound/k053260.h"
|
||||||
@ -56,8 +56,6 @@ static const UINT16 overdriv_default_eeprom[64] =
|
|||||||
|
|
||||||
static const serial_eeprom_interface eeprom_intf =
|
static const serial_eeprom_interface eeprom_intf =
|
||||||
{
|
{
|
||||||
6, /* address bits */
|
|
||||||
16, /* data bits */
|
|
||||||
"011000", /* read command */
|
"011000", /* read command */
|
||||||
"010100", /* write command */
|
"010100", /* write command */
|
||||||
0, /* erase command */
|
0, /* erase command */
|
||||||
@ -353,7 +351,7 @@ static MACHINE_CONFIG_START( overdriv, overdriv_state )
|
|||||||
MCFG_QUANTUM_TIME(attotime::from_hz(12000))
|
MCFG_QUANTUM_TIME(attotime::from_hz(12000))
|
||||||
|
|
||||||
|
|
||||||
MCFG_SERIAL_EEPROM_ADD("eeprom", eeprom_intf)
|
MCFG_SERIAL_EEPROM_ADD("eeprom", 64, 16, eeprom_intf)
|
||||||
MCFG_SERIAL_EEPROM_DATA(overdriv_default_eeprom, 128)
|
MCFG_SERIAL_EEPROM_DATA(overdriv_default_eeprom, 128)
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
|
@ -73,7 +73,7 @@ Notes:
|
|||||||
|
|
||||||
#include "emu.h"
|
#include "emu.h"
|
||||||
#include "cpu/e132xs/e132xs.h"
|
#include "cpu/e132xs/e132xs.h"
|
||||||
#include "machine/eeprom.h"
|
#include "machine/eepromser.h"
|
||||||
#include "sound/okim6295.h"
|
#include "sound/okim6295.h"
|
||||||
|
|
||||||
class pasha2_state : public driver_device
|
class pasha2_state : public driver_device
|
||||||
|
@ -89,15 +89,13 @@ Notes:
|
|||||||
|
|
||||||
#include "emu.h"
|
#include "emu.h"
|
||||||
#include "cpu/m68000/m68000.h"
|
#include "cpu/m68000/m68000.h"
|
||||||
#include "machine/eeprom.h"
|
#include "machine/eepromser.h"
|
||||||
#include "sound/okim6295.h"
|
#include "sound/okim6295.h"
|
||||||
#include "includes/pirates.h"
|
#include "includes/pirates.h"
|
||||||
|
|
||||||
|
|
||||||
static const serial_eeprom_interface eeprom_intf =
|
static const serial_eeprom_interface eeprom_intf =
|
||||||
{
|
{
|
||||||
6, /* address bits */
|
|
||||||
16, /* data bits */
|
|
||||||
"*110", /* read command */
|
"*110", /* read command */
|
||||||
"*101", /* write command */
|
"*101", /* write command */
|
||||||
0, /* erase command */
|
0, /* erase command */
|
||||||
@ -262,7 +260,7 @@ static MACHINE_CONFIG_START( pirates, pirates_state )
|
|||||||
MCFG_CPU_PROGRAM_MAP(pirates_map)
|
MCFG_CPU_PROGRAM_MAP(pirates_map)
|
||||||
MCFG_CPU_VBLANK_INT_DRIVER("screen", pirates_state, irq1_line_hold)
|
MCFG_CPU_VBLANK_INT_DRIVER("screen", pirates_state, irq1_line_hold)
|
||||||
|
|
||||||
MCFG_SERIAL_EEPROM_ADD("eeprom", eeprom_intf)
|
MCFG_SERIAL_EEPROM_ADD("eeprom", 64, 16, eeprom_intf)
|
||||||
|
|
||||||
MCFG_GFXDECODE(pirates)
|
MCFG_GFXDECODE(pirates)
|
||||||
|
|
||||||
|
@ -37,7 +37,7 @@ TODO:
|
|||||||
|
|
||||||
#include "emu.h"
|
#include "emu.h"
|
||||||
#include "cpu/m68000/m68000.h"
|
#include "cpu/m68000/m68000.h"
|
||||||
#include "machine/eeprom.h"
|
#include "machine/eepromser.h"
|
||||||
#include "cpu/pic16c5x/pic16c5x.h"
|
#include "cpu/pic16c5x/pic16c5x.h"
|
||||||
#include "sound/okim6295.h"
|
#include "sound/okim6295.h"
|
||||||
#include "includes/playmark.h"
|
#include "includes/playmark.h"
|
||||||
@ -63,8 +63,6 @@ WRITE16_MEMBER(playmark_state::coinctrl_w)
|
|||||||
|
|
||||||
static const serial_eeprom_interface eeprom_intf =
|
static const serial_eeprom_interface eeprom_intf =
|
||||||
{
|
{
|
||||||
6, /* address bits */
|
|
||||||
16, /* data bits */
|
|
||||||
"*110", /* read command */
|
"*110", /* read command */
|
||||||
"*101", /* write command */
|
"*101", /* write command */
|
||||||
0, /* erase command */
|
0, /* erase command */
|
||||||
@ -1128,7 +1126,7 @@ static MACHINE_CONFIG_START( wbeachvl, playmark_state )
|
|||||||
/* Program and Data Maps are internal to the MCU */
|
/* Program and Data Maps are internal to the MCU */
|
||||||
// MCFG_CPU_IO_MAP(playmark_sound_io_map)
|
// MCFG_CPU_IO_MAP(playmark_sound_io_map)
|
||||||
|
|
||||||
MCFG_SERIAL_EEPROM_ADD("eeprom", eeprom_intf)
|
MCFG_SERIAL_EEPROM_ADD("eeprom", 64, 16, eeprom_intf)
|
||||||
MCFG_SERIAL_EEPROM_DEFAULT_VALUE(0)
|
MCFG_SERIAL_EEPROM_DEFAULT_VALUE(0)
|
||||||
|
|
||||||
MCFG_MACHINE_START_OVERRIDE(playmark_state,playmark)
|
MCFG_MACHINE_START_OVERRIDE(playmark_state,playmark)
|
||||||
@ -1199,7 +1197,7 @@ static MACHINE_CONFIG_START( hotmind, playmark_state )
|
|||||||
/* Program and Data Maps are internal to the MCU */
|
/* Program and Data Maps are internal to the MCU */
|
||||||
MCFG_CPU_IO_MAP(playmark_sound_io_map)
|
MCFG_CPU_IO_MAP(playmark_sound_io_map)
|
||||||
|
|
||||||
MCFG_SERIAL_EEPROM_ADD("eeprom", eeprom_intf)
|
MCFG_SERIAL_EEPROM_ADD("eeprom", 64, 16, eeprom_intf)
|
||||||
MCFG_SERIAL_EEPROM_DEFAULT_VALUE(0)
|
MCFG_SERIAL_EEPROM_DEFAULT_VALUE(0)
|
||||||
|
|
||||||
MCFG_MACHINE_START_OVERRIDE(playmark_state,playmark)
|
MCFG_MACHINE_START_OVERRIDE(playmark_state,playmark)
|
||||||
|
@ -67,15 +67,13 @@
|
|||||||
#include "cpu/z80/z80.h"
|
#include "cpu/z80/z80.h"
|
||||||
#include "cpu/dsp56k/dsp56k.h"
|
#include "cpu/dsp56k/dsp56k.h"
|
||||||
#include "sound/k054539.h"
|
#include "sound/k054539.h"
|
||||||
#include "machine/eeprom.h"
|
#include "machine/eepromser.h"
|
||||||
#include "includes/plygonet.h"
|
#include "includes/plygonet.h"
|
||||||
|
|
||||||
enum { BANK_GROUP_A, BANK_GROUP_B, INVALID_BANK_GROUP };
|
enum { BANK_GROUP_A, BANK_GROUP_B, INVALID_BANK_GROUP };
|
||||||
|
|
||||||
static const serial_eeprom_interface eeprom_intf =
|
static const serial_eeprom_interface eeprom_intf =
|
||||||
{
|
{
|
||||||
9, // address bits
|
|
||||||
8, // data bits
|
|
||||||
"*110", // read command
|
"*110", // read command
|
||||||
"*101", // write command
|
"*101", // write command
|
||||||
"*111", // erase command
|
"*111", // erase command
|
||||||
@ -671,7 +669,7 @@ static MACHINE_CONFIG_START( plygonet, polygonet_state )
|
|||||||
|
|
||||||
MCFG_QUANTUM_PERFECT_CPU("maincpu") /* TODO: TEMPORARY! UNTIL A MORE LOCALIZED SYNC CAN BE MADE */
|
MCFG_QUANTUM_PERFECT_CPU("maincpu") /* TODO: TEMPORARY! UNTIL A MORE LOCALIZED SYNC CAN BE MADE */
|
||||||
|
|
||||||
MCFG_SERIAL_EEPROM_ADD("eeprom", eeprom_intf)
|
MCFG_SERIAL_EEPROM_ADD("eeprom", 512, 8, eeprom_intf)
|
||||||
|
|
||||||
MCFG_GFXDECODE(plygonet)
|
MCFG_GFXDECODE(plygonet)
|
||||||
|
|
||||||
|
@ -122,7 +122,7 @@ CN1 standard DB15 VGA connector (15KHz)
|
|||||||
|
|
||||||
#include "emu.h"
|
#include "emu.h"
|
||||||
#include "cpu/m68000/m68000.h"
|
#include "cpu/m68000/m68000.h"
|
||||||
#include "machine/eeprom.h"
|
#include "machine/eepromser.h"
|
||||||
#include "video/pc_vga.h"
|
#include "video/pc_vga.h"
|
||||||
|
|
||||||
|
|
||||||
@ -160,8 +160,6 @@ public:
|
|||||||
|
|
||||||
static const serial_eeprom_interface eeprom_intf =
|
static const serial_eeprom_interface eeprom_intf =
|
||||||
{
|
{
|
||||||
6, /* address bits */
|
|
||||||
16, /* data bits */
|
|
||||||
"*110", /* read command */
|
"*110", /* read command */
|
||||||
"*101", /* write command */
|
"*101", /* write command */
|
||||||
NULL, /* erase command */
|
NULL, /* erase command */
|
||||||
@ -359,7 +357,7 @@ static MACHINE_CONFIG_START( pntnpuzl, pntnpuzl_state )
|
|||||||
MCFG_CPU_ADD("maincpu", M68000, 12000000)//??
|
MCFG_CPU_ADD("maincpu", M68000, 12000000)//??
|
||||||
MCFG_CPU_PROGRAM_MAP(pntnpuzl_map)
|
MCFG_CPU_PROGRAM_MAP(pntnpuzl_map)
|
||||||
|
|
||||||
MCFG_SERIAL_EEPROM_ADD("eeprom", eeprom_intf)
|
MCFG_SERIAL_EEPROM_ADD("eeprom", 64, 16, eeprom_intf)
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MCFG_FRAGMENT_ADD( pcvideo_vga )
|
MCFG_FRAGMENT_ADD( pcvideo_vga )
|
||||||
|
@ -86,7 +86,7 @@ PC5380-9651 5380-JY3306A 5380-N1045503A
|
|||||||
|
|
||||||
#include "emu.h"
|
#include "emu.h"
|
||||||
#include "cpu/mips/r3000.h"
|
#include "cpu/mips/r3000.h"
|
||||||
#include "machine/eeprom.h"
|
#include "machine/eepromser.h"
|
||||||
#include "includes/policetr.h"
|
#include "includes/policetr.h"
|
||||||
#include "sound/bsmt2000.h"
|
#include "sound/bsmt2000.h"
|
||||||
|
|
||||||
@ -239,8 +239,6 @@ WRITE32_MEMBER(policetr_state::speedup_w)
|
|||||||
|
|
||||||
static const serial_eeprom_interface eeprom_interface_policetr =
|
static const serial_eeprom_interface eeprom_interface_policetr =
|
||||||
{
|
{
|
||||||
8, // address bits 8
|
|
||||||
16, // data bits 16
|
|
||||||
"*110", // read 1 10 aaaaaa
|
"*110", // read 1 10 aaaaaa
|
||||||
"*101", // write 1 01 aaaaaa dddddddddddddddd
|
"*101", // write 1 01 aaaaaa dddddddddddddddd
|
||||||
"*111", // erase 1 11 aaaaaa
|
"*111", // erase 1 11 aaaaaa
|
||||||
@ -416,7 +414,7 @@ static MACHINE_CONFIG_START( policetr, policetr_state )
|
|||||||
MCFG_CPU_PROGRAM_MAP(policetr_map)
|
MCFG_CPU_PROGRAM_MAP(policetr_map)
|
||||||
MCFG_CPU_VBLANK_INT_DRIVER("screen", policetr_state, irq4_gen)
|
MCFG_CPU_VBLANK_INT_DRIVER("screen", policetr_state, irq4_gen)
|
||||||
|
|
||||||
MCFG_SERIAL_EEPROM_ADD("eeprom", eeprom_interface_policetr)
|
MCFG_SERIAL_EEPROM_ADD("eeprom", 256, 16, eeprom_interface_policetr)
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
|
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
|
||||||
|
@ -15,7 +15,7 @@ Magic Sticks:
|
|||||||
|
|
||||||
#include "emu.h"
|
#include "emu.h"
|
||||||
#include "cpu/m68000/m68000.h"
|
#include "cpu/m68000/m68000.h"
|
||||||
#include "machine/eeprom.h"
|
#include "machine/eepromser.h"
|
||||||
#include "sound/okim6295.h"
|
#include "sound/okim6295.h"
|
||||||
#include "includes/playmark.h"
|
#include "includes/playmark.h"
|
||||||
|
|
||||||
@ -49,8 +49,6 @@ public:
|
|||||||
|
|
||||||
static const serial_eeprom_interface eeprom_intf =
|
static const serial_eeprom_interface eeprom_intf =
|
||||||
{
|
{
|
||||||
6, /* address bits */
|
|
||||||
16, /* data bits */
|
|
||||||
"*110", /* read command */
|
"*110", /* read command */
|
||||||
"*101", /* write command */
|
"*101", /* write command */
|
||||||
0, /* erase command */
|
0, /* erase command */
|
||||||
@ -534,7 +532,7 @@ static MACHINE_CONFIG_START( magicstk, powerbal_state )
|
|||||||
MCFG_CPU_PROGRAM_MAP(magicstk_main_map)
|
MCFG_CPU_PROGRAM_MAP(magicstk_main_map)
|
||||||
MCFG_CPU_VBLANK_INT_DRIVER("screen", powerbal_state, irq2_line_hold)
|
MCFG_CPU_VBLANK_INT_DRIVER("screen", powerbal_state, irq2_line_hold)
|
||||||
|
|
||||||
MCFG_SERIAL_EEPROM_ADD("eeprom", eeprom_intf)
|
MCFG_SERIAL_EEPROM_ADD("eeprom", 64, 16, eeprom_intf)
|
||||||
MCFG_SERIAL_EEPROM_DEFAULT_VALUE(0)
|
MCFG_SERIAL_EEPROM_DEFAULT_VALUE(0)
|
||||||
|
|
||||||
MCFG_MACHINE_START_OVERRIDE(powerbal_state,powerbal)
|
MCFG_MACHINE_START_OVERRIDE(powerbal_state,powerbal)
|
||||||
|
@ -129,7 +129,7 @@ ROMs -
|
|||||||
#include "emu.h"
|
#include "emu.h"
|
||||||
|
|
||||||
#include "cpu/sh2/sh2.h"
|
#include "cpu/sh2/sh2.h"
|
||||||
#include "machine/eeprom.h"
|
#include "machine/eepromser.h"
|
||||||
#include "sound/ymf278b.h"
|
#include "sound/ymf278b.h"
|
||||||
#include "rendlay.h"
|
#include "rendlay.h"
|
||||||
#include "includes/psikyo4.h"
|
#include "includes/psikyo4.h"
|
||||||
@ -152,8 +152,6 @@ GFXDECODE_END
|
|||||||
|
|
||||||
static const serial_eeprom_interface eeprom_interface_93C56 =
|
static const serial_eeprom_interface eeprom_interface_93C56 =
|
||||||
{
|
{
|
||||||
8, // address bits 8
|
|
||||||
8, // data bits 8
|
|
||||||
"*110x", // read 110x aaaaaaaa
|
"*110x", // read 110x aaaaaaaa
|
||||||
"*101x", // write 101x aaaaaaaa dddddddd
|
"*101x", // write 101x aaaaaaaa dddddddd
|
||||||
"*111x", // erase 111x aaaaaaaa
|
"*111x", // erase 111x aaaaaaaa
|
||||||
@ -669,7 +667,7 @@ static MACHINE_CONFIG_START( ps4big, psikyo4_state )
|
|||||||
MCFG_CPU_VBLANK_INT_DRIVER("lscreen", psikyo4_state, psikyosh_interrupt)
|
MCFG_CPU_VBLANK_INT_DRIVER("lscreen", psikyo4_state, psikyosh_interrupt)
|
||||||
|
|
||||||
|
|
||||||
MCFG_SERIAL_EEPROM_ADD("eeprom", eeprom_interface_93C56)
|
MCFG_SERIAL_EEPROM_ADD("eeprom", 256, 8, eeprom_interface_93C56)
|
||||||
MCFG_SERIAL_EEPROM_DEFAULT_VALUE(0)
|
MCFG_SERIAL_EEPROM_DEFAULT_VALUE(0)
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
|
@ -274,7 +274,7 @@ Notes:
|
|||||||
#include "emu.h"
|
#include "emu.h"
|
||||||
|
|
||||||
#include "cpu/sh2/sh2.h"
|
#include "cpu/sh2/sh2.h"
|
||||||
#include "machine/eeprom.h"
|
#include "machine/eepromser.h"
|
||||||
#include "sound/ymf278b.h"
|
#include "sound/ymf278b.h"
|
||||||
|
|
||||||
#include "includes/psikyosh.h"
|
#include "includes/psikyosh.h"
|
||||||
@ -308,8 +308,6 @@ GFXDECODE_END
|
|||||||
|
|
||||||
static const serial_eeprom_interface eeprom_interface_93C56 =
|
static const serial_eeprom_interface eeprom_interface_93C56 =
|
||||||
{
|
{
|
||||||
8, // address bits 8
|
|
||||||
8, // data bits 8
|
|
||||||
"*110x", // read 110x aaaaaaaa
|
"*110x", // read 110x aaaaaaaa
|
||||||
"*101x", // write 101x aaaaaaaa dddddddd
|
"*101x", // write 101x aaaaaaaa dddddddd
|
||||||
"*111x", // erase 111x aaaaaaaa
|
"*111x", // erase 111x aaaaaaaa
|
||||||
@ -800,7 +798,7 @@ static MACHINE_CONFIG_START( psikyo3v1, psikyosh_state )
|
|||||||
MCFG_CPU_VBLANK_INT_DRIVER("screen", psikyosh_state, psikyosh_interrupt)
|
MCFG_CPU_VBLANK_INT_DRIVER("screen", psikyosh_state, psikyosh_interrupt)
|
||||||
|
|
||||||
|
|
||||||
MCFG_SERIAL_EEPROM_ADD("eeprom", eeprom_interface_93C56)
|
MCFG_SERIAL_EEPROM_ADD("eeprom", 256, 8, eeprom_interface_93C56)
|
||||||
MCFG_SERIAL_EEPROM_DEFAULT_VALUE(0)
|
MCFG_SERIAL_EEPROM_DEFAULT_VALUE(0)
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
#include "emu.h"
|
#include "emu.h"
|
||||||
#include "cpu/m68000/m68000.h"
|
#include "cpu/m68000/m68000.h"
|
||||||
#include "sound/okim6295.h"
|
#include "sound/okim6295.h"
|
||||||
#include "machine/eeprom.h"
|
#include "machine/eepromser.h"
|
||||||
|
|
||||||
class pzletime_state : public driver_device
|
class pzletime_state : public driver_device
|
||||||
{
|
{
|
||||||
|
@ -17,7 +17,7 @@ Then it puts settings at 0x9e08 and 0x9e0a (bp 91acb)
|
|||||||
#include "cpu/nec/nec.h"
|
#include "cpu/nec/nec.h"
|
||||||
#include "cpu/z80/z80.h"
|
#include "cpu/z80/z80.h"
|
||||||
#include "audio/seibu.h"
|
#include "audio/seibu.h"
|
||||||
#include "machine/eeprom.h"
|
#include "machine/eepromser.h"
|
||||||
#include "sound/okim6295.h"
|
#include "sound/okim6295.h"
|
||||||
#include "includes/raiden2.h"
|
#include "includes/raiden2.h"
|
||||||
#include "drivlgcy.h"
|
#include "drivlgcy.h"
|
||||||
|
@ -82,7 +82,7 @@ Custom: Imagetek I5000 (2ch video & 2ch sound)
|
|||||||
|
|
||||||
#include "emu.h"
|
#include "emu.h"
|
||||||
#include "cpu/m68000/m68000.h"
|
#include "cpu/m68000/m68000.h"
|
||||||
#include "machine/eeprom.h"
|
#include "machine/eepromser.h"
|
||||||
#include "sound/i5000.h"
|
#include "sound/i5000.h"
|
||||||
|
|
||||||
|
|
||||||
|
@ -148,7 +148,7 @@ Current Problem(s) - in order of priority
|
|||||||
#include "cpu/nec/nec.h"
|
#include "cpu/nec/nec.h"
|
||||||
#include "cpu/z80/z80.h"
|
#include "cpu/z80/z80.h"
|
||||||
#include "audio/seibu.h"
|
#include "audio/seibu.h"
|
||||||
#include "machine/eeprom.h"
|
#include "machine/eepromser.h"
|
||||||
#include "sound/okim6295.h"
|
#include "sound/okim6295.h"
|
||||||
#include "includes/raiden2.h"
|
#include "includes/raiden2.h"
|
||||||
#include "video/seibu_crtc.h"
|
#include "video/seibu_crtc.h"
|
||||||
|
@ -54,7 +54,7 @@ Notes:
|
|||||||
#include "cpu/mcs51/mcs51.h"
|
#include "cpu/mcs51/mcs51.h"
|
||||||
#include "sound/okim6295.h"
|
#include "sound/okim6295.h"
|
||||||
#include "sound/2151intf.h"
|
#include "sound/2151intf.h"
|
||||||
#include "machine/eeprom.h"
|
#include "machine/eepromser.h"
|
||||||
|
|
||||||
|
|
||||||
class rbmk_state : public driver_device
|
class rbmk_state : public driver_device
|
||||||
|
@ -45,7 +45,7 @@
|
|||||||
|
|
||||||
#include "cpu/m68000/m68000.h"
|
#include "cpu/m68000/m68000.h"
|
||||||
#include "cpu/z80/z80.h"
|
#include "cpu/z80/z80.h"
|
||||||
#include "machine/eeprom.h"
|
#include "machine/eepromser.h"
|
||||||
#include "sound/k054539.h"
|
#include "sound/k054539.h"
|
||||||
#include "includes/konamipt.h"
|
#include "includes/konamipt.h"
|
||||||
#include "includes/rungun.h"
|
#include "includes/rungun.h"
|
||||||
@ -55,8 +55,6 @@
|
|||||||
|
|
||||||
static const serial_eeprom_interface eeprom_intf =
|
static const serial_eeprom_interface eeprom_intf =
|
||||||
{
|
{
|
||||||
7, /* address bits */
|
|
||||||
8, /* data bits */
|
|
||||||
"011000", /* read command */
|
"011000", /* read command */
|
||||||
"011100", /* write command */
|
"011100", /* write command */
|
||||||
"0100100000000",/* erase command */
|
"0100100000000",/* erase command */
|
||||||
@ -390,7 +388,7 @@ static MACHINE_CONFIG_START( rng, rungun_state )
|
|||||||
MCFG_GFXDECODE(rungun)
|
MCFG_GFXDECODE(rungun)
|
||||||
|
|
||||||
|
|
||||||
MCFG_SERIAL_EEPROM_ADD("eeprom", eeprom_intf)
|
MCFG_SERIAL_EEPROM_ADD("eeprom", 128, 8, eeprom_intf)
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS | VIDEO_HAS_HIGHLIGHTS | VIDEO_UPDATE_BEFORE_VBLANK)
|
MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS | VIDEO_HAS_HIGHLIGHTS | VIDEO_UPDATE_BEFORE_VBLANK)
|
||||||
|
@ -335,7 +335,7 @@ orunners: Interleaved with the dj and << >> buttons is the data the drives the
|
|||||||
#include "cpu/nec/nec.h"
|
#include "cpu/nec/nec.h"
|
||||||
#include "rendlay.h"
|
#include "rendlay.h"
|
||||||
#include "includes/segas32.h"
|
#include "includes/segas32.h"
|
||||||
#include "machine/eeprom.h"
|
#include "machine/eepromser.h"
|
||||||
#include "sound/2612intf.h"
|
#include "sound/2612intf.h"
|
||||||
#include "sound/rf5c68.h"
|
#include "sound/rf5c68.h"
|
||||||
#include "sound/multipcm.h"
|
#include "sound/multipcm.h"
|
||||||
|
@ -845,7 +845,7 @@ Notes:
|
|||||||
#include "cpu/z80/z80.h"
|
#include "cpu/z80/z80.h"
|
||||||
#include "cpu/i386/i386.h"
|
#include "cpu/i386/i386.h"
|
||||||
#include "machine/ds2404.h"
|
#include "machine/ds2404.h"
|
||||||
#include "machine/eeprom.h"
|
#include "machine/eepromser.h"
|
||||||
#include "machine/intelfsh.h"
|
#include "machine/intelfsh.h"
|
||||||
#include "machine/7200fifo.h"
|
#include "machine/7200fifo.h"
|
||||||
#include "sound/okim6295.h"
|
#include "sound/okim6295.h"
|
||||||
@ -1753,8 +1753,6 @@ GFXDECODE_END
|
|||||||
/* this is a 93C46 but with reset delay */
|
/* this is a 93C46 but with reset delay */
|
||||||
static const serial_eeprom_interface eeprom_intf =
|
static const serial_eeprom_interface eeprom_intf =
|
||||||
{
|
{
|
||||||
6, /* address bits */
|
|
||||||
16, /* data bits */
|
|
||||||
"*110", /* read command */
|
"*110", /* read command */
|
||||||
"*101", /* write command */
|
"*101", /* write command */
|
||||||
"*111", /* erase command */
|
"*111", /* erase command */
|
||||||
@ -1917,7 +1915,7 @@ static MACHINE_CONFIG_DERIVED( sxx2f, sxx2e )
|
|||||||
|
|
||||||
MCFG_DEVICE_REMOVE("ds2404")
|
MCFG_DEVICE_REMOVE("ds2404")
|
||||||
|
|
||||||
MCFG_SERIAL_EEPROM_ADD("eeprom", eeprom_intf)
|
MCFG_SERIAL_EEPROM_ADD("eeprom", 64, 16, eeprom_intf)
|
||||||
|
|
||||||
// Z80 is Z84C0006PCS instead of Z84C0008PEC
|
// Z80 is Z84C0006PCS instead of Z84C0008PEC
|
||||||
// clock is unknown, possibly slower than 7.159MHz
|
// clock is unknown, possibly slower than 7.159MHz
|
||||||
@ -1950,7 +1948,7 @@ static MACHINE_CONFIG_START( sys386i, seibuspi_state )
|
|||||||
MCFG_CPU_PROGRAM_MAP(sys386i_map)
|
MCFG_CPU_PROGRAM_MAP(sys386i_map)
|
||||||
MCFG_CPU_VBLANK_INT_DRIVER("screen", seibuspi_state, spi_interrupt)
|
MCFG_CPU_VBLANK_INT_DRIVER("screen", seibuspi_state, spi_interrupt)
|
||||||
|
|
||||||
MCFG_SERIAL_EEPROM_ADD("eeprom", eeprom_intf)
|
MCFG_SERIAL_EEPROM_ADD("eeprom", 64, 16, eeprom_intf)
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MCFG_SCREEN_ADD("screen", RASTER)
|
MCFG_SCREEN_ADD("screen", RASTER)
|
||||||
@ -2000,7 +1998,7 @@ static MACHINE_CONFIG_START( sys386f, seibuspi_state )
|
|||||||
MCFG_CPU_PROGRAM_MAP(sys386f_map)
|
MCFG_CPU_PROGRAM_MAP(sys386f_map)
|
||||||
MCFG_CPU_VBLANK_INT_DRIVER("screen", seibuspi_state, spi_interrupt)
|
MCFG_CPU_VBLANK_INT_DRIVER("screen", seibuspi_state, spi_interrupt)
|
||||||
|
|
||||||
MCFG_SERIAL_EEPROM_ADD("eeprom", eeprom_intf)
|
MCFG_SERIAL_EEPROM_ADD("eeprom", 64, 16, eeprom_intf)
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MCFG_SCREEN_ADD("screen", RASTER)
|
MCFG_SCREEN_ADD("screen", RASTER)
|
||||||
|
@ -111,7 +111,7 @@ reelquak:
|
|||||||
#include "cpu/m68000/m68000.h"
|
#include "cpu/m68000/m68000.h"
|
||||||
#include "cpu/h83002/h8.h"
|
#include "cpu/h83002/h8.h"
|
||||||
#include "sound/okim9810.h"
|
#include "sound/okim9810.h"
|
||||||
#include "machine/eeprom.h"
|
#include "machine/eepromser.h"
|
||||||
#include "machine/nvram.h"
|
#include "machine/nvram.h"
|
||||||
#include "machine/ticket.h"
|
#include "machine/ticket.h"
|
||||||
#include "machine/mcf5206e.h"
|
#include "machine/mcf5206e.h"
|
||||||
|
@ -91,7 +91,7 @@ Notes:
|
|||||||
#include "cpu/z80/z80.h"
|
#include "cpu/z80/z80.h"
|
||||||
#include "sound/okim9810.h"
|
#include "sound/okim9810.h"
|
||||||
#include "sound/ymz280b.h"
|
#include "sound/ymz280b.h"
|
||||||
#include "machine/eeprom.h"
|
#include "machine/eepromser.h"
|
||||||
#include "machine/nvram.h"
|
#include "machine/nvram.h"
|
||||||
#include "machine/ticket.h"
|
#include "machine/ticket.h"
|
||||||
|
|
||||||
@ -1677,8 +1677,6 @@ INPUT_PORTS_END
|
|||||||
|
|
||||||
const serial_eeprom_interface eeprom_intf =
|
const serial_eeprom_interface eeprom_intf =
|
||||||
{
|
{
|
||||||
6, // address bits 6
|
|
||||||
16, // data bits 16
|
|
||||||
"*110", // read 1 10 aaaaaa
|
"*110", // read 1 10 aaaaaa
|
||||||
"*101", // write 1 01 aaaaaa dddddddddddddddd
|
"*101", // write 1 01 aaaaaa dddddddddddddddd
|
||||||
"*111", // erase 1 11 aaaaaa
|
"*111", // erase 1 11 aaaaaa
|
||||||
@ -1700,7 +1698,7 @@ static MACHINE_CONFIG_START( gegege, sigmab98_state )
|
|||||||
MCFG_CPU_VBLANK_INT_DRIVER("screen", sigmab98_state, gegege_vblank_interrupt)
|
MCFG_CPU_VBLANK_INT_DRIVER("screen", sigmab98_state, gegege_vblank_interrupt)
|
||||||
|
|
||||||
MCFG_NVRAM_ADD_0FILL("nvram")
|
MCFG_NVRAM_ADD_0FILL("nvram")
|
||||||
MCFG_SERIAL_EEPROM_ADD("eeprom", eeprom_intf)
|
MCFG_SERIAL_EEPROM_ADD("eeprom", 64, 16, eeprom_intf)
|
||||||
|
|
||||||
MCFG_TICKET_DISPENSER_ADD("hopper", attotime::from_msec(200), TICKET_MOTOR_ACTIVE_LOW, TICKET_STATUS_ACTIVE_LOW )
|
MCFG_TICKET_DISPENSER_ADD("hopper", attotime::from_msec(200), TICKET_MOTOR_ACTIVE_LOW, TICKET_STATUS_ACTIVE_LOW )
|
||||||
|
|
||||||
@ -1728,8 +1726,6 @@ MACHINE_CONFIG_END
|
|||||||
|
|
||||||
static const serial_eeprom_interface eeprom_interface_93C46_8bit_delay =
|
static const serial_eeprom_interface eeprom_interface_93C46_8bit_delay =
|
||||||
{
|
{
|
||||||
7, // address bits 6
|
|
||||||
8, // data bits 8
|
|
||||||
"*110", // read 1 10 aaaaaa
|
"*110", // read 1 10 aaaaaa
|
||||||
"*101", // write 1 01 aaaaaa dddddddd
|
"*101", // write 1 01 aaaaaa dddddddd
|
||||||
"*111", // erase 1 11 aaaaaa
|
"*111", // erase 1 11 aaaaaa
|
||||||
@ -1754,7 +1750,7 @@ static MACHINE_CONFIG_START( sammymdl, sigmab98_state )
|
|||||||
MCFG_MACHINE_RESET_OVERRIDE(sigmab98_state, sammymdl )
|
MCFG_MACHINE_RESET_OVERRIDE(sigmab98_state, sammymdl )
|
||||||
|
|
||||||
MCFG_NVRAM_ADD_0FILL("nvram") // battery
|
MCFG_NVRAM_ADD_0FILL("nvram") // battery
|
||||||
MCFG_SERIAL_EEPROM_ADD("eeprom", eeprom_interface_93C46_8bit_delay)
|
MCFG_SERIAL_EEPROM_ADD("eeprom", 128, 8, eeprom_interface_93C46_8bit_delay)
|
||||||
|
|
||||||
MCFG_TICKET_DISPENSER_ADD("hopper", attotime::from_msec(200), TICKET_MOTOR_ACTIVE_LOW, TICKET_STATUS_ACTIVE_LOW )
|
MCFG_TICKET_DISPENSER_ADD("hopper", attotime::from_msec(200), TICKET_MOTOR_ACTIVE_LOW, TICKET_STATUS_ACTIVE_LOW )
|
||||||
|
|
||||||
|
@ -92,7 +92,7 @@ Are the OKI M6295 clocks from Heavy Smash are correct at least for the Mitchell
|
|||||||
#include "includes/decocrpt.h"
|
#include "includes/decocrpt.h"
|
||||||
#include "cpu/arm/arm.h"
|
#include "cpu/arm/arm.h"
|
||||||
#include "includes/simpl156.h"
|
#include "includes/simpl156.h"
|
||||||
#include "machine/eeprom.h"
|
#include "machine/eepromser.h"
|
||||||
#include "sound/okim6295.h"
|
#include "sound/okim6295.h"
|
||||||
|
|
||||||
static INPUT_PORTS_START( simpl156 )
|
static INPUT_PORTS_START( simpl156 )
|
||||||
|
@ -70,7 +70,7 @@ Custom ICs - 053260 - sound chip (QFP80)
|
|||||||
#include "cpu/m6809/konami.h" /* for the callback and the firq irq definition */
|
#include "cpu/m6809/konami.h" /* for the callback and the firq irq definition */
|
||||||
#include "cpu/z80/z80.h"
|
#include "cpu/z80/z80.h"
|
||||||
|
|
||||||
#include "machine/eeprom.h"
|
#include "machine/eepromser.h"
|
||||||
#include "sound/2151intf.h"
|
#include "sound/2151intf.h"
|
||||||
#include "sound/k053260.h"
|
#include "sound/k053260.h"
|
||||||
#include "includes/simpsons.h"
|
#include "includes/simpsons.h"
|
||||||
@ -293,8 +293,6 @@ static const k053247_interface simpsons_k053246_intf =
|
|||||||
|
|
||||||
static const serial_eeprom_interface eeprom_intf =
|
static const serial_eeprom_interface eeprom_intf =
|
||||||
{
|
{
|
||||||
7, /* address bits */
|
|
||||||
8, /* data bits */
|
|
||||||
"011000", /* read command */
|
"011000", /* read command */
|
||||||
"011100", /* write command */
|
"011100", /* write command */
|
||||||
0, /* erase command */
|
0, /* erase command */
|
||||||
@ -314,7 +312,7 @@ static MACHINE_CONFIG_START( simpsons, simpsons_state )
|
|||||||
/* NMIs are generated by the 053260 */
|
/* NMIs are generated by the 053260 */
|
||||||
|
|
||||||
|
|
||||||
MCFG_SERIAL_EEPROM_ADD("eeprom", eeprom_intf)
|
MCFG_SERIAL_EEPROM_ADD("eeprom", 128, 8, eeprom_intf)
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS | VIDEO_HAS_HIGHLIGHTS | VIDEO_UPDATE_AFTER_VBLANK)
|
MCFG_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS | VIDEO_HAS_HIGHLIGHTS | VIDEO_UPDATE_AFTER_VBLANK)
|
||||||
|
@ -92,7 +92,7 @@ Note
|
|||||||
#include "emu.h"
|
#include "emu.h"
|
||||||
#include "cpu/z80/z80.h"
|
#include "cpu/z80/z80.h"
|
||||||
#include "sound/okim6295.h"
|
#include "sound/okim6295.h"
|
||||||
#include "machine/eeprom.h"
|
#include "machine/eepromser.h"
|
||||||
|
|
||||||
class spool99_state : public driver_device
|
class spool99_state : public driver_device
|
||||||
{
|
{
|
||||||
|
@ -69,7 +69,7 @@ TO DO :
|
|||||||
|
|
||||||
#include "emu.h"
|
#include "emu.h"
|
||||||
#include "cpu/m68000/m68000.h"
|
#include "cpu/m68000/m68000.h"
|
||||||
#include "machine/eeprom.h"
|
#include "machine/eepromser.h"
|
||||||
#include "sound/okim6295.h"
|
#include "sound/okim6295.h"
|
||||||
#include "includes/stlforce.h"
|
#include "includes/stlforce.h"
|
||||||
|
|
||||||
|
@ -14,7 +14,7 @@
|
|||||||
#include "cpu/sh2/sh2.h"
|
#include "cpu/sh2/sh2.h"
|
||||||
#include "cpu/m68000/m68000.h"
|
#include "cpu/m68000/m68000.h"
|
||||||
#include "cpu/adsp2100/adsp2100.h"
|
#include "cpu/adsp2100/adsp2100.h"
|
||||||
#include "machine/eeprom.h"
|
#include "machine/eepromser.h"
|
||||||
#include "machine/scudsp.h"
|
#include "machine/scudsp.h"
|
||||||
#include "sound/scsp.h"
|
#include "sound/scsp.h"
|
||||||
#include "sound/cdda.h"
|
#include "sound/cdda.h"
|
||||||
|
@ -39,7 +39,7 @@
|
|||||||
|
|
||||||
#include "emu.h"
|
#include "emu.h"
|
||||||
#include "cpu/m68000/m68000.h"
|
#include "cpu/m68000/m68000.h"
|
||||||
#include "machine/eeprom.h"
|
#include "machine/eepromser.h"
|
||||||
#include "sound/es5506.h"
|
#include "sound/es5506.h"
|
||||||
#include "audio/taito_en.h"
|
#include "audio/taito_en.h"
|
||||||
|
|
||||||
@ -305,8 +305,6 @@ GFXDECODE_END
|
|||||||
|
|
||||||
static const serial_eeprom_interface superchs_eeprom_interface =
|
static const serial_eeprom_interface superchs_eeprom_interface =
|
||||||
{
|
{
|
||||||
6, /* address bits */
|
|
||||||
16, /* data bits */
|
|
||||||
"0110", /* read command */
|
"0110", /* read command */
|
||||||
"0101", /* write command */
|
"0101", /* write command */
|
||||||
"0111", /* erase command */
|
"0111", /* erase command */
|
||||||
@ -337,7 +335,7 @@ static MACHINE_CONFIG_START( superchs, superchs_state )
|
|||||||
|
|
||||||
MCFG_QUANTUM_TIME(attotime::from_hz(480)) /* Need to interleave CPU 1 & 3 */
|
MCFG_QUANTUM_TIME(attotime::from_hz(480)) /* Need to interleave CPU 1 & 3 */
|
||||||
|
|
||||||
MCFG_SERIAL_EEPROM_ADD("eeprom", superchs_eeprom_interface)
|
MCFG_SERIAL_EEPROM_ADD("eeprom", 64, 16, superchs_eeprom_interface)
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MCFG_SCREEN_ADD("screen", RASTER)
|
MCFG_SCREEN_ADD("screen", RASTER)
|
||||||
|
@ -180,7 +180,7 @@ TODO!
|
|||||||
#include "cpu/z80/z80.h"
|
#include "cpu/z80/z80.h"
|
||||||
#include "includes/taitoipt.h"
|
#include "includes/taitoipt.h"
|
||||||
#include "cpu/m68000/m68000.h"
|
#include "cpu/m68000/m68000.h"
|
||||||
#include "machine/eeprom.h"
|
#include "machine/eepromser.h"
|
||||||
#include "audio/taitosnd.h"
|
#include "audio/taitosnd.h"
|
||||||
#include "sound/2203intf.h"
|
#include "sound/2203intf.h"
|
||||||
#include "sound/2610intf.h"
|
#include "sound/2610intf.h"
|
||||||
@ -375,8 +375,6 @@ INPUT_CHANGED_MEMBER(taitob_state::realpunc_sensor)
|
|||||||
|
|
||||||
static const serial_eeprom_interface taitob_eeprom_intf =
|
static const serial_eeprom_interface taitob_eeprom_intf =
|
||||||
{
|
{
|
||||||
6, /* address bits */
|
|
||||||
16, /* data bits */
|
|
||||||
"0110", /* read command */
|
"0110", /* read command */
|
||||||
"0101", /* write command */
|
"0101", /* write command */
|
||||||
"0111", /* erase command */
|
"0111", /* erase command */
|
||||||
@ -2356,7 +2354,7 @@ static MACHINE_CONFIG_START( pbobble, taitob_state )
|
|||||||
|
|
||||||
MCFG_QUANTUM_TIME(attotime::from_hz(600))
|
MCFG_QUANTUM_TIME(attotime::from_hz(600))
|
||||||
|
|
||||||
MCFG_SERIAL_EEPROM_ADD("eeprom", taitob_eeprom_intf)
|
MCFG_SERIAL_EEPROM_ADD("eeprom", 64, 16, taitob_eeprom_intf)
|
||||||
|
|
||||||
MCFG_TC0640FIO_ADD("tc0640fio", pbobble_io_intf)
|
MCFG_TC0640FIO_ADD("tc0640fio", pbobble_io_intf)
|
||||||
|
|
||||||
@ -2404,7 +2402,7 @@ static MACHINE_CONFIG_START( spacedx, taitob_state )
|
|||||||
MCFG_QUANTUM_TIME(attotime::from_hz(600))
|
MCFG_QUANTUM_TIME(attotime::from_hz(600))
|
||||||
|
|
||||||
|
|
||||||
MCFG_SERIAL_EEPROM_ADD("eeprom", taitob_eeprom_intf)
|
MCFG_SERIAL_EEPROM_ADD("eeprom", 64, 16, taitob_eeprom_intf)
|
||||||
|
|
||||||
MCFG_TC0640FIO_ADD("tc0640fio", pbobble_io_intf)
|
MCFG_TC0640FIO_ADD("tc0640fio", pbobble_io_intf)
|
||||||
|
|
||||||
@ -2496,7 +2494,7 @@ static MACHINE_CONFIG_START( qzshowby, taitob_state )
|
|||||||
MCFG_QUANTUM_TIME(attotime::from_hz(600))
|
MCFG_QUANTUM_TIME(attotime::from_hz(600))
|
||||||
|
|
||||||
|
|
||||||
MCFG_SERIAL_EEPROM_ADD("eeprom", taitob_eeprom_intf)
|
MCFG_SERIAL_EEPROM_ADD("eeprom", 64, 16, taitob_eeprom_intf)
|
||||||
|
|
||||||
MCFG_TC0640FIO_ADD("tc0640fio", pbobble_io_intf)
|
MCFG_TC0640FIO_ADD("tc0640fio", pbobble_io_intf)
|
||||||
|
|
||||||
|
@ -32,7 +32,7 @@
|
|||||||
|
|
||||||
#include "emu.h"
|
#include "emu.h"
|
||||||
#include "cpu/m68000/m68000.h"
|
#include "cpu/m68000/m68000.h"
|
||||||
#include "machine/eeprom.h"
|
#include "machine/eepromser.h"
|
||||||
#include "includes/taito_f3.h"
|
#include "includes/taito_f3.h"
|
||||||
#include "sound/es5506.h"
|
#include "sound/es5506.h"
|
||||||
#include "audio/taito_en.h"
|
#include "audio/taito_en.h"
|
||||||
|
@ -968,7 +968,7 @@ DIP switches are not verified
|
|||||||
#include "cpu/z80/z80.h"
|
#include "cpu/z80/z80.h"
|
||||||
#include "includes/taitoipt.h"
|
#include "includes/taitoipt.h"
|
||||||
#include "cpu/m68000/m68000.h"
|
#include "cpu/m68000/m68000.h"
|
||||||
#include "machine/eeprom.h"
|
#include "machine/eepromser.h"
|
||||||
#include "sound/2610intf.h"
|
#include "sound/2610intf.h"
|
||||||
#include "sound/flt_vol.h"
|
#include "sound/flt_vol.h"
|
||||||
#include "includes/taito_z.h"
|
#include "includes/taito_z.h"
|
||||||
@ -1066,8 +1066,6 @@ static const UINT16 spacegun_default_eeprom[64]=
|
|||||||
|
|
||||||
static const serial_eeprom_interface spacegun_eeprom_intf =
|
static const serial_eeprom_interface spacegun_eeprom_intf =
|
||||||
{
|
{
|
||||||
6, /* address bits */
|
|
||||||
16, /* data bits */
|
|
||||||
"0110", /* read command */
|
"0110", /* read command */
|
||||||
"0101", /* write command */
|
"0101", /* write command */
|
||||||
"0111", /* erase command */
|
"0111", /* erase command */
|
||||||
@ -3504,7 +3502,7 @@ static MACHINE_CONFIG_START( spacegun, taitoz_state )
|
|||||||
MCFG_MACHINE_START_OVERRIDE(taitoz_state,bshark)
|
MCFG_MACHINE_START_OVERRIDE(taitoz_state,bshark)
|
||||||
MCFG_MACHINE_RESET_OVERRIDE(taitoz_state,taitoz)
|
MCFG_MACHINE_RESET_OVERRIDE(taitoz_state,taitoz)
|
||||||
|
|
||||||
MCFG_SERIAL_EEPROM_ADD("eeprom", spacegun_eeprom_intf)
|
MCFG_SERIAL_EEPROM_ADD("eeprom", 64, 16, spacegun_eeprom_intf)
|
||||||
MCFG_SERIAL_EEPROM_DATA(spacegun_default_eeprom, 128)
|
MCFG_SERIAL_EEPROM_DATA(spacegun_default_eeprom, 128)
|
||||||
|
|
||||||
MCFG_TC0220IOC_ADD("tc0220ioc", taitoz_io220_intf)
|
MCFG_TC0220IOC_ADD("tc0220ioc", taitoz_io220_intf)
|
||||||
|
@ -380,7 +380,7 @@ Notes:
|
|||||||
#include "cpu/mc68hc11/mc68hc11.h"
|
#include "cpu/mc68hc11/mc68hc11.h"
|
||||||
#include "sound/es5506.h"
|
#include "sound/es5506.h"
|
||||||
#include "sound/okim6295.h"
|
#include "sound/okim6295.h"
|
||||||
#include "machine/eeprom.h"
|
#include "machine/eepromser.h"
|
||||||
#include "audio/taito_en.h"
|
#include "audio/taito_en.h"
|
||||||
#include "includes/taitojc.h"
|
#include "includes/taitojc.h"
|
||||||
|
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user