mirror of
https://github.com/holub/mame
synced 2025-06-26 22:29:10 +03:00
modernized the MB14241 and MathBox devices. [Osso]
This commit is contained in:
parent
c43cc8f12f
commit
2840892ced
1
.gitattributes
vendored
1
.gitattributes
vendored
@ -2610,6 +2610,7 @@ src/mame/audio/pulsar.c svneol=native#text/plain
|
|||||||
src/mame/audio/qix.c svneol=native#text/plain
|
src/mame/audio/qix.c svneol=native#text/plain
|
||||||
src/mame/audio/redalert.c svneol=native#text/plain
|
src/mame/audio/redalert.c svneol=native#text/plain
|
||||||
src/mame/audio/redbaron.c svneol=native#text/plain
|
src/mame/audio/redbaron.c svneol=native#text/plain
|
||||||
|
src/mame/audio/redbaron.h svneol=native#text/plain
|
||||||
src/mame/audio/scramble.c svneol=native#text/plain
|
src/mame/audio/scramble.c svneol=native#text/plain
|
||||||
src/mame/audio/segag80r.c svneol=native#text/plain
|
src/mame/audio/segag80r.c svneol=native#text/plain
|
||||||
src/mame/audio/segag80v.c svneol=native#text/plain
|
src/mame/audio/segag80v.c svneol=native#text/plain
|
||||||
|
@ -7,72 +7,17 @@
|
|||||||
#include "emu.h"
|
#include "emu.h"
|
||||||
#include "machine/mb14241.h"
|
#include "machine/mb14241.h"
|
||||||
|
|
||||||
struct mb14241_state
|
|
||||||
{
|
|
||||||
UINT16 shift_data; /* 15 bits only */
|
|
||||||
UINT8 shift_count; /* 3 bits */
|
|
||||||
};
|
|
||||||
|
|
||||||
/*****************************************************************************
|
//-------------------------------------------------
|
||||||
INLINE FUNCTIONS
|
// mb14241_device - constructor
|
||||||
*****************************************************************************/
|
//-------------------------------------------------
|
||||||
|
|
||||||
INLINE mb14241_state *get_safe_token( device_t *device )
|
|
||||||
{
|
|
||||||
assert(device != NULL);
|
|
||||||
assert(device->type() == MB14241);
|
|
||||||
|
|
||||||
return (mb14241_state *)downcast<mb14241_device *>(device)->token();
|
|
||||||
}
|
|
||||||
|
|
||||||
/*****************************************************************************
|
|
||||||
IMPLEMENTATION
|
|
||||||
*****************************************************************************/
|
|
||||||
|
|
||||||
WRITE8_DEVICE_HANDLER( mb14241_shift_count_w )
|
|
||||||
{
|
|
||||||
mb14241_state *mb14241 = get_safe_token(device);
|
|
||||||
mb14241->shift_count = ~data & 0x07;
|
|
||||||
}
|
|
||||||
|
|
||||||
WRITE8_DEVICE_HANDLER( mb14241_shift_data_w )
|
|
||||||
{
|
|
||||||
mb14241_state *mb14241 = get_safe_token(device);
|
|
||||||
mb14241->shift_data = (mb14241->shift_data >> 8) | ((UINT16)data << 7);
|
|
||||||
}
|
|
||||||
|
|
||||||
READ8_DEVICE_HANDLER( mb14241_shift_result_r )
|
|
||||||
{
|
|
||||||
mb14241_state *mb14241 = get_safe_token(device);
|
|
||||||
return mb14241->shift_data >> mb14241->shift_count;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*****************************************************************************
|
|
||||||
DEVICE INTERFACE
|
|
||||||
*****************************************************************************/
|
|
||||||
|
|
||||||
static DEVICE_START( mb14241 )
|
|
||||||
{
|
|
||||||
mb14241_state *mb14241 = get_safe_token(device);
|
|
||||||
|
|
||||||
device->save_item(NAME(mb14241->shift_data));
|
|
||||||
device->save_item(NAME(mb14241->shift_count));
|
|
||||||
}
|
|
||||||
|
|
||||||
static DEVICE_RESET( mb14241 )
|
|
||||||
{
|
|
||||||
mb14241_state *mb14241 = get_safe_token(device);
|
|
||||||
|
|
||||||
mb14241->shift_data = 0;
|
|
||||||
mb14241->shift_count = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
const device_type MB14241 = &device_creator<mb14241_device>;
|
const device_type MB14241 = &device_creator<mb14241_device>;
|
||||||
|
|
||||||
mb14241_device::mb14241_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
|
mb14241_device::mb14241_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
|
||||||
: device_t(mconfig, MB14241, "MB14241", tag, owner, clock)
|
: device_t(mconfig, MB14241, "MB14241", tag, owner, clock)
|
||||||
{
|
{
|
||||||
m_token = global_alloc_clear(mb14241_state);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//-------------------------------------------------
|
//-------------------------------------------------
|
||||||
@ -91,7 +36,8 @@ void mb14241_device::device_config_complete()
|
|||||||
|
|
||||||
void mb14241_device::device_start()
|
void mb14241_device::device_start()
|
||||||
{
|
{
|
||||||
DEVICE_START_NAME( mb14241 )(this);
|
save_item(NAME(m_shift_data));
|
||||||
|
save_item(NAME(m_shift_count));
|
||||||
}
|
}
|
||||||
|
|
||||||
//-------------------------------------------------
|
//-------------------------------------------------
|
||||||
@ -100,5 +46,26 @@ void mb14241_device::device_start()
|
|||||||
|
|
||||||
void mb14241_device::device_reset()
|
void mb14241_device::device_reset()
|
||||||
{
|
{
|
||||||
DEVICE_RESET_NAME( mb14241 )(this);
|
m_shift_data = 0;
|
||||||
|
m_shift_count = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*****************************************************************************
|
||||||
|
IMPLEMENTATION
|
||||||
|
*****************************************************************************/
|
||||||
|
|
||||||
|
WRITE8_MEMBER( mb14241_device::shift_count_w )
|
||||||
|
{
|
||||||
|
m_shift_count = ~data & 0x07;
|
||||||
|
}
|
||||||
|
|
||||||
|
WRITE8_MEMBER( mb14241_device::shift_data_w )
|
||||||
|
{
|
||||||
|
m_shift_data = (m_shift_data >> 8) | ((UINT16)data << 7);
|
||||||
|
}
|
||||||
|
|
||||||
|
READ8_MEMBER( mb14241_device::shift_result_r )
|
||||||
|
{
|
||||||
|
return m_shift_data >> m_shift_count;
|
||||||
}
|
}
|
||||||
|
@ -7,25 +7,27 @@
|
|||||||
#ifndef __MB14241_H__
|
#ifndef __MB14241_H__
|
||||||
#define __MB14241_H__
|
#define __MB14241_H__
|
||||||
|
|
||||||
#include "devlegcy.h"
|
|
||||||
|
|
||||||
|
|
||||||
class mb14241_device : public device_t
|
class mb14241_device : public device_t
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
mb14241_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
mb14241_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
||||||
~mb14241_device() { global_free(m_token); }
|
|
||||||
|
DECLARE_WRITE8_MEMBER ( shift_count_w );
|
||||||
|
DECLARE_WRITE8_MEMBER ( shift_data_w );
|
||||||
|
DECLARE_READ8_MEMBER( shift_result_r );
|
||||||
|
|
||||||
// access to legacy token
|
|
||||||
void *token() const { assert(m_token != NULL); return m_token; }
|
|
||||||
protected:
|
protected:
|
||||||
// device-level overrides
|
// device-level overrides
|
||||||
virtual void device_config_complete();
|
virtual void device_config_complete();
|
||||||
virtual void device_start();
|
virtual void device_start();
|
||||||
virtual void device_reset();
|
virtual void device_reset();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
// internal state
|
// internal state
|
||||||
void *m_token;
|
|
||||||
|
UINT16 m_shift_data; /* 15 bits only */
|
||||||
|
UINT8 m_shift_count; /* 3 bits */
|
||||||
};
|
};
|
||||||
|
|
||||||
extern const device_type MB14241;
|
extern const device_type MB14241;
|
||||||
@ -38,14 +40,4 @@ extern const device_type MB14241;
|
|||||||
#define MCFG_MB14241_ADD(_tag) \
|
#define MCFG_MB14241_ADD(_tag) \
|
||||||
MCFG_DEVICE_ADD(_tag, MB14241, 0)
|
MCFG_DEVICE_ADD(_tag, MB14241, 0)
|
||||||
|
|
||||||
|
|
||||||
/***************************************************************************
|
|
||||||
DEVICE I/O FUNCTIONS
|
|
||||||
***************************************************************************/
|
|
||||||
|
|
||||||
DECLARE_WRITE8_DEVICE_HANDLER ( mb14241_shift_count_w );
|
|
||||||
DECLARE_WRITE8_DEVICE_HANDLER ( mb14241_shift_data_w );
|
|
||||||
DECLARE_READ8_DEVICE_HANDLER( mb14241_shift_result_r );
|
|
||||||
|
|
||||||
|
|
||||||
#endif /* __MB14241_H__ */
|
#endif /* __MB14241_H__ */
|
||||||
|
@ -9,8 +9,6 @@
|
|||||||
#ifndef __UPD4701_H__
|
#ifndef __UPD4701_H__
|
||||||
#define __UPD4701_H__
|
#define __UPD4701_H__
|
||||||
|
|
||||||
#include "devlegcy.h"
|
|
||||||
|
|
||||||
/***************************************************************************
|
/***************************************************************************
|
||||||
MACROS / CONSTANTS
|
MACROS / CONSTANTS
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
@ -214,7 +214,7 @@ void redbaron_sound_device::sound_stream_update(sound_stream &stream, stream_sam
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
WRITE8_MEMBER( redbaron_sound_device::redbaron_sounds_w )
|
WRITE8_MEMBER( redbaron_sound_device::sounds_w )
|
||||||
{
|
{
|
||||||
/* If sound is off, don't bother playing samples */
|
/* If sound is off, don't bother playing samples */
|
||||||
if( data == m_latch )
|
if( data == m_latch )
|
||||||
@ -226,7 +226,7 @@ WRITE8_MEMBER( redbaron_sound_device::redbaron_sounds_w )
|
|||||||
|
|
||||||
|
|
||||||
#ifdef UNUSED_FUNCTION
|
#ifdef UNUSED_FUNCTION
|
||||||
WRITE8_MEMBER( redbaron_sound_device::redbaron_pokey_w )
|
WRITE8_MEMBER( redbaron_sound_device::pokey_w )
|
||||||
{
|
{
|
||||||
if( m_latch & 0x20 )
|
if( m_latch & 0x20 )
|
||||||
pokey_w(device, offset, data);
|
pokey_w(device, offset, data);
|
||||||
|
45
src/mame/audio/redbaron.h
Normal file
45
src/mame/audio/redbaron.h
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
//**************************************************************************
|
||||||
|
// TYPE DEFINITIONS
|
||||||
|
//**************************************************************************
|
||||||
|
|
||||||
|
// ======================> redbaron_sound_device
|
||||||
|
|
||||||
|
class redbaron_sound_device : public device_t,
|
||||||
|
public device_sound_interface
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
redbaron_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
||||||
|
|
||||||
|
DECLARE_WRITE8_MEMBER( sounds_w );
|
||||||
|
|
||||||
|
protected:
|
||||||
|
// device-level overrides
|
||||||
|
virtual void device_start();
|
||||||
|
|
||||||
|
// sound stream update overrides
|
||||||
|
virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples);
|
||||||
|
|
||||||
|
private:
|
||||||
|
INT16 *m_vol_lookup;
|
||||||
|
|
||||||
|
INT16 m_vol_crash[16];
|
||||||
|
|
||||||
|
sound_stream *m_channel;
|
||||||
|
int m_latch;
|
||||||
|
int m_poly_counter;
|
||||||
|
int m_poly_shift;
|
||||||
|
|
||||||
|
int m_filter_counter;
|
||||||
|
|
||||||
|
int m_crash_amp;
|
||||||
|
int m_shot_amp;
|
||||||
|
int m_shot_amp_counter;
|
||||||
|
|
||||||
|
int m_squeal_amp;
|
||||||
|
int m_squeal_amp_counter;
|
||||||
|
int m_squeal_off_counter;
|
||||||
|
int m_squeal_on_counter;
|
||||||
|
int m_squeal_out;
|
||||||
|
};
|
||||||
|
|
||||||
|
extern const device_type REDBARON;
|
@ -175,7 +175,6 @@
|
|||||||
#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/mb14241.h"
|
|
||||||
#include "machine/eeprom.h"
|
#include "machine/eeprom.h"
|
||||||
#include "sound/ay8910.h"
|
#include "sound/ay8910.h"
|
||||||
#include "sound/speaker.h"
|
#include "sound/speaker.h"
|
||||||
@ -350,9 +349,9 @@ INPUT_PORTS_END
|
|||||||
static ADDRESS_MAP_START( invadpt2_io_map, AS_IO, 8, _8080bw_state )
|
static ADDRESS_MAP_START( invadpt2_io_map, AS_IO, 8, _8080bw_state )
|
||||||
AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0")
|
AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0")
|
||||||
AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1")
|
AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1")
|
||||||
AM_RANGE(0x02, 0x02) AM_READ_PORT("IN2") AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_count_w)
|
AM_RANGE(0x02, 0x02) AM_READ_PORT("IN2") AM_DEVWRITE("mb14241", mb14241_device, shift_count_w)
|
||||||
AM_RANGE(0x03, 0x03) AM_DEVREAD_LEGACY("mb14241", mb14241_shift_result_r) AM_WRITE(invadpt2_sh_port_1_w)
|
AM_RANGE(0x03, 0x03) AM_DEVREAD("mb14241", mb14241_device, shift_result_r) AM_WRITE(invadpt2_sh_port_1_w)
|
||||||
AM_RANGE(0x04, 0x04) AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_data_w)
|
AM_RANGE(0x04, 0x04) AM_DEVWRITE("mb14241", mb14241_device, shift_data_w)
|
||||||
AM_RANGE(0x05, 0x05) AM_WRITE(invadpt2_sh_port_2_w)
|
AM_RANGE(0x05, 0x05) AM_WRITE(invadpt2_sh_port_2_w)
|
||||||
AM_RANGE(0x06, 0x06) AM_WRITE(watchdog_reset_w)
|
AM_RANGE(0x06, 0x06) AM_WRITE(watchdog_reset_w)
|
||||||
ADDRESS_MAP_END
|
ADDRESS_MAP_END
|
||||||
@ -416,9 +415,9 @@ MACHINE_CONFIG_END
|
|||||||
static ADDRESS_MAP_START( spacerng_io_map, AS_IO, 8, _8080bw_state )
|
static ADDRESS_MAP_START( spacerng_io_map, AS_IO, 8, _8080bw_state )
|
||||||
AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0")
|
AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0")
|
||||||
AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1")
|
AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1")
|
||||||
AM_RANGE(0x02, 0x02) AM_READ_PORT("IN2") AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_count_w)
|
AM_RANGE(0x02, 0x02) AM_READ_PORT("IN2") AM_DEVWRITE("mb14241", mb14241_device, shift_count_w)
|
||||||
AM_RANGE(0x03, 0x03) AM_DEVREAD_LEGACY("mb14241", mb14241_shift_result_r) AM_WRITE(invadpt2_sh_port_1_w)
|
AM_RANGE(0x03, 0x03) AM_DEVREAD("mb14241", mb14241_device, shift_result_r) AM_WRITE(invadpt2_sh_port_1_w)
|
||||||
AM_RANGE(0x04, 0x04) AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_data_w)
|
AM_RANGE(0x04, 0x04) AM_DEVWRITE("mb14241", mb14241_device, shift_data_w)
|
||||||
AM_RANGE(0x05, 0x05) AM_WRITE(spacerng_sh_port_2_w)
|
AM_RANGE(0x05, 0x05) AM_WRITE(spacerng_sh_port_2_w)
|
||||||
AM_RANGE(0x06, 0x06) AM_WRITE(watchdog_reset_w)
|
AM_RANGE(0x06, 0x06) AM_WRITE(watchdog_reset_w)
|
||||||
ADDRESS_MAP_END
|
ADDRESS_MAP_END
|
||||||
@ -441,9 +440,9 @@ MACHINE_CONFIG_END
|
|||||||
static ADDRESS_MAP_START( spcewars_io_map, AS_IO, 8, _8080bw_state )
|
static ADDRESS_MAP_START( spcewars_io_map, AS_IO, 8, _8080bw_state )
|
||||||
AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0")
|
AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0")
|
||||||
AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1")
|
AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1")
|
||||||
AM_RANGE(0x02, 0x02) AM_READ_PORT("IN2") AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_count_w)
|
AM_RANGE(0x02, 0x02) AM_READ_PORT("IN2") AM_DEVWRITE("mb14241", mb14241_device, shift_count_w)
|
||||||
AM_RANGE(0x03, 0x03) AM_DEVREAD_LEGACY("mb14241", mb14241_shift_result_r) AM_WRITE(spcewars_sh_port_w)
|
AM_RANGE(0x03, 0x03) AM_DEVREAD("mb14241", mb14241_device, shift_result_r) AM_WRITE(spcewars_sh_port_w)
|
||||||
AM_RANGE(0x04, 0x04) AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_data_w)
|
AM_RANGE(0x04, 0x04) AM_DEVWRITE("mb14241", mb14241_device, shift_data_w)
|
||||||
AM_RANGE(0x05, 0x05) AM_WRITE(invadpt2_sh_port_2_w)
|
AM_RANGE(0x05, 0x05) AM_WRITE(invadpt2_sh_port_2_w)
|
||||||
ADDRESS_MAP_END
|
ADDRESS_MAP_END
|
||||||
|
|
||||||
@ -794,9 +793,9 @@ READ8_MEMBER(_8080bw_state::invrvnge_02_r)
|
|||||||
static ADDRESS_MAP_START( invrvnge_io_map, AS_IO, 8, _8080bw_state )
|
static ADDRESS_MAP_START( invrvnge_io_map, AS_IO, 8, _8080bw_state )
|
||||||
AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0")
|
AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0")
|
||||||
AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1")
|
AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1")
|
||||||
AM_RANGE(0x02, 0x02) AM_READ(invrvnge_02_r) AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_count_w)
|
AM_RANGE(0x02, 0x02) AM_READ(invrvnge_02_r) AM_DEVWRITE("mb14241", mb14241_device, shift_count_w)
|
||||||
AM_RANGE(0x03, 0x03) AM_DEVREAD_LEGACY("mb14241", mb14241_shift_result_r) AM_WRITE(invrvnge_sh_port_1_w)
|
AM_RANGE(0x03, 0x03) AM_DEVREAD("mb14241", mb14241_device, shift_result_r) AM_WRITE(invrvnge_sh_port_1_w)
|
||||||
AM_RANGE(0x04, 0x04) AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_data_w)
|
AM_RANGE(0x04, 0x04) AM_DEVWRITE("mb14241", mb14241_device, shift_data_w)
|
||||||
AM_RANGE(0x05, 0x05) AM_WRITE(invrvnge_sh_port_2_w)
|
AM_RANGE(0x05, 0x05) AM_WRITE(invrvnge_sh_port_2_w)
|
||||||
AM_RANGE(0x06, 0x06) AM_WRITE(watchdog_reset_w)
|
AM_RANGE(0x06, 0x06) AM_WRITE(watchdog_reset_w)
|
||||||
ADDRESS_MAP_END
|
ADDRESS_MAP_END
|
||||||
@ -1003,9 +1002,9 @@ MACHINE_CONFIG_END
|
|||||||
static ADDRESS_MAP_START( lrescue_io_map, AS_IO, 8, _8080bw_state )
|
static ADDRESS_MAP_START( lrescue_io_map, AS_IO, 8, _8080bw_state )
|
||||||
AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0")
|
AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0")
|
||||||
AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1")
|
AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1")
|
||||||
AM_RANGE(0x02, 0x02) AM_READ_PORT("IN2") AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_count_w)
|
AM_RANGE(0x02, 0x02) AM_READ_PORT("IN2") AM_DEVWRITE("mb14241", mb14241_device, shift_count_w)
|
||||||
AM_RANGE(0x03, 0x03) AM_DEVREAD_LEGACY("mb14241", mb14241_shift_result_r) AM_WRITE(lrescue_sh_port_1_w)
|
AM_RANGE(0x03, 0x03) AM_DEVREAD("mb14241", mb14241_device, shift_result_r) AM_WRITE(lrescue_sh_port_1_w)
|
||||||
AM_RANGE(0x04, 0x04) AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_data_w)
|
AM_RANGE(0x04, 0x04) AM_DEVWRITE("mb14241", mb14241_device, shift_data_w)
|
||||||
AM_RANGE(0x05, 0x05) AM_WRITE(lrescue_sh_port_2_w)
|
AM_RANGE(0x05, 0x05) AM_WRITE(lrescue_sh_port_2_w)
|
||||||
ADDRESS_MAP_END
|
ADDRESS_MAP_END
|
||||||
|
|
||||||
@ -1101,11 +1100,11 @@ static ADDRESS_MAP_START( cosmicmo_io_map, AS_IO, 8, _8080bw_state )
|
|||||||
AM_RANGE(0x00, 0x00) AM_MIRROR(0x04) AM_READ_PORT("IN0")
|
AM_RANGE(0x00, 0x00) AM_MIRROR(0x04) AM_READ_PORT("IN0")
|
||||||
AM_RANGE(0x01, 0x01) AM_MIRROR(0x04) AM_READ_PORT("IN1")
|
AM_RANGE(0x01, 0x01) AM_MIRROR(0x04) AM_READ_PORT("IN1")
|
||||||
AM_RANGE(0x02, 0x02) AM_MIRROR(0x04) AM_READ(invrvnge_02_r)
|
AM_RANGE(0x02, 0x02) AM_MIRROR(0x04) AM_READ(invrvnge_02_r)
|
||||||
AM_RANGE(0x03, 0x03) AM_MIRROR(0x04) AM_DEVREAD_LEGACY("mb14241", mb14241_shift_result_r)
|
AM_RANGE(0x03, 0x03) AM_MIRROR(0x04) AM_DEVREAD("mb14241", mb14241_device, shift_result_r)
|
||||||
|
|
||||||
AM_RANGE(0x02, 0x02) AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_count_w)
|
AM_RANGE(0x02, 0x02) AM_DEVWRITE("mb14241", mb14241_device, shift_count_w)
|
||||||
AM_RANGE(0x03, 0x03) AM_WRITE(invaders_audio_1_w)
|
AM_RANGE(0x03, 0x03) AM_WRITE(invaders_audio_1_w)
|
||||||
AM_RANGE(0x04, 0x04) AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_data_w)
|
AM_RANGE(0x04, 0x04) AM_DEVWRITE("mb14241", mb14241_device, shift_data_w)
|
||||||
AM_RANGE(0x05, 0x05) AM_WRITE(cosmicmo_05_w)
|
AM_RANGE(0x05, 0x05) AM_WRITE(cosmicmo_05_w)
|
||||||
AM_RANGE(0x06, 0x06) AM_WRITE(watchdog_reset_w)
|
AM_RANGE(0x06, 0x06) AM_WRITE(watchdog_reset_w)
|
||||||
ADDRESS_MAP_END
|
ADDRESS_MAP_END
|
||||||
@ -1207,9 +1206,9 @@ ADDRESS_MAP_END
|
|||||||
static ADDRESS_MAP_START( rollingc_io_map, AS_IO, 8, _8080bw_state )
|
static ADDRESS_MAP_START( rollingc_io_map, AS_IO, 8, _8080bw_state )
|
||||||
AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0") AM_WRITE(rollingc_sh_port_w)
|
AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0") AM_WRITE(rollingc_sh_port_w)
|
||||||
AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1")
|
AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1")
|
||||||
AM_RANGE(0x02, 0x02) AM_READ_PORT("IN2") AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_count_w)
|
AM_RANGE(0x02, 0x02) AM_READ_PORT("IN2") AM_DEVWRITE("mb14241", mb14241_device, shift_count_w)
|
||||||
AM_RANGE(0x03, 0x03) AM_DEVREAD_LEGACY("mb14241", mb14241_shift_result_r) AM_WRITE(invadpt2_sh_port_1_w)
|
AM_RANGE(0x03, 0x03) AM_DEVREAD("mb14241", mb14241_device, shift_result_r) AM_WRITE(invadpt2_sh_port_1_w)
|
||||||
AM_RANGE(0x04, 0x04) AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_data_w)
|
AM_RANGE(0x04, 0x04) AM_DEVWRITE("mb14241", mb14241_device, shift_data_w)
|
||||||
AM_RANGE(0x05, 0x05) AM_WRITE(invadpt2_sh_port_2_w)
|
AM_RANGE(0x05, 0x05) AM_WRITE(invadpt2_sh_port_2_w)
|
||||||
ADDRESS_MAP_END
|
ADDRESS_MAP_END
|
||||||
|
|
||||||
@ -1266,9 +1265,9 @@ ADDRESS_MAP_END
|
|||||||
static ADDRESS_MAP_START( schaser_io_map, AS_IO, 8, _8080bw_state )
|
static ADDRESS_MAP_START( schaser_io_map, AS_IO, 8, _8080bw_state )
|
||||||
AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0")
|
AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0")
|
||||||
AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1")
|
AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1")
|
||||||
AM_RANGE(0x02, 0x02) AM_READ_PORT("IN2") AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_count_w)
|
AM_RANGE(0x02, 0x02) AM_READ_PORT("IN2") AM_DEVWRITE("mb14241", mb14241_device, shift_count_w)
|
||||||
AM_RANGE(0x03, 0x03) AM_DEVREAD_LEGACY("mb14241", mb14241_shift_result_r) AM_WRITE(schaser_sh_port_1_w)
|
AM_RANGE(0x03, 0x03) AM_DEVREAD("mb14241", mb14241_device, shift_result_r) AM_WRITE(schaser_sh_port_1_w)
|
||||||
AM_RANGE(0x04, 0x04) AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_data_w)
|
AM_RANGE(0x04, 0x04) AM_DEVWRITE("mb14241", mb14241_device, shift_data_w)
|
||||||
AM_RANGE(0x05, 0x05) AM_WRITE(schaser_sh_port_2_w)
|
AM_RANGE(0x05, 0x05) AM_WRITE(schaser_sh_port_2_w)
|
||||||
AM_RANGE(0x06, 0x06) AM_WRITE(watchdog_reset_w)
|
AM_RANGE(0x06, 0x06) AM_WRITE(watchdog_reset_w)
|
||||||
ADDRESS_MAP_END
|
ADDRESS_MAP_END
|
||||||
@ -1390,9 +1389,9 @@ READ8_MEMBER(_8080bw_state::schasercv_02_r)
|
|||||||
static ADDRESS_MAP_START( schasercv_io_map, AS_IO, 8, _8080bw_state )
|
static ADDRESS_MAP_START( schasercv_io_map, AS_IO, 8, _8080bw_state )
|
||||||
AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0")
|
AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0")
|
||||||
AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1")
|
AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1")
|
||||||
AM_RANGE(0x02, 0x02) AM_READ(schasercv_02_r) AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_count_w)
|
AM_RANGE(0x02, 0x02) AM_READ(schasercv_02_r) AM_DEVWRITE("mb14241", mb14241_device, shift_count_w)
|
||||||
AM_RANGE(0x03, 0x03) AM_DEVREAD_LEGACY("mb14241", mb14241_shift_result_r) AM_WRITE(schasercv_sh_port_1_w)
|
AM_RANGE(0x03, 0x03) AM_DEVREAD("mb14241", mb14241_device, shift_result_r) AM_WRITE(schasercv_sh_port_1_w)
|
||||||
AM_RANGE(0x04, 0x04) AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_data_w)
|
AM_RANGE(0x04, 0x04) AM_DEVWRITE("mb14241", mb14241_device, shift_data_w)
|
||||||
AM_RANGE(0x05, 0x05) AM_WRITE(schasercv_sh_port_2_w)
|
AM_RANGE(0x05, 0x05) AM_WRITE(schasercv_sh_port_2_w)
|
||||||
ADDRESS_MAP_END
|
ADDRESS_MAP_END
|
||||||
|
|
||||||
@ -1475,11 +1474,11 @@ static ADDRESS_MAP_START( sflush_map, AS_PROGRAM, 8, _8080bw_state )
|
|||||||
AM_RANGE(0x0000, 0x1fff) AM_RAM
|
AM_RANGE(0x0000, 0x1fff) AM_RAM
|
||||||
AM_RANGE(0x4000, 0x5fff) AM_RAM AM_SHARE("main_ram")
|
AM_RANGE(0x4000, 0x5fff) AM_RAM AM_SHARE("main_ram")
|
||||||
AM_RANGE(0x8008, 0x8008) AM_READ_PORT("PADDLE")
|
AM_RANGE(0x8008, 0x8008) AM_READ_PORT("PADDLE")
|
||||||
AM_RANGE(0x8009, 0x8009) AM_DEVREAD_LEGACY("mb14241", mb14241_shift_result_r)
|
AM_RANGE(0x8009, 0x8009) AM_DEVREAD("mb14241", mb14241_device, shift_result_r)
|
||||||
AM_RANGE(0x800a, 0x800a) AM_READ_PORT("IN2")
|
AM_RANGE(0x800a, 0x800a) AM_READ_PORT("IN2")
|
||||||
AM_RANGE(0x800b, 0x800b) AM_READ_PORT("IN0")
|
AM_RANGE(0x800b, 0x800b) AM_READ_PORT("IN0")
|
||||||
AM_RANGE(0x8018, 0x8018) AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_data_w)
|
AM_RANGE(0x8018, 0x8018) AM_DEVWRITE("mb14241", mb14241_device, shift_data_w)
|
||||||
AM_RANGE(0x8019, 0x8019) AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_count_w)
|
AM_RANGE(0x8019, 0x8019) AM_DEVWRITE("mb14241", mb14241_device, shift_count_w)
|
||||||
AM_RANGE(0x801a, 0x801a) AM_WRITENOP
|
AM_RANGE(0x801a, 0x801a) AM_WRITENOP
|
||||||
AM_RANGE(0x801c, 0x801c) AM_WRITENOP
|
AM_RANGE(0x801c, 0x801c) AM_WRITENOP
|
||||||
AM_RANGE(0x801d, 0x801d) AM_WRITENOP
|
AM_RANGE(0x801d, 0x801d) AM_WRITENOP
|
||||||
@ -1555,9 +1554,9 @@ MACHINE_CONFIG_END
|
|||||||
static ADDRESS_MAP_START( lupin3_io_map, AS_IO, 8, _8080bw_state )
|
static ADDRESS_MAP_START( lupin3_io_map, AS_IO, 8, _8080bw_state )
|
||||||
AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0") AM_WRITE(lupin3_00_w)
|
AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0") AM_WRITE(lupin3_00_w)
|
||||||
AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1")
|
AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1")
|
||||||
AM_RANGE(0x02, 0x02) AM_READ_PORT("IN2") AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_count_w)
|
AM_RANGE(0x02, 0x02) AM_READ_PORT("IN2") AM_DEVWRITE("mb14241", mb14241_device, shift_count_w)
|
||||||
AM_RANGE(0x03, 0x03) AM_DEVREAD_LEGACY("mb14241", mb14241_shift_result_r) AM_WRITE(lupin3_sh_port_1_w)
|
AM_RANGE(0x03, 0x03) AM_DEVREAD("mb14241", mb14241_device, shift_result_r) AM_WRITE(lupin3_sh_port_1_w)
|
||||||
AM_RANGE(0x04, 0x04) AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_data_w)
|
AM_RANGE(0x04, 0x04) AM_DEVWRITE("mb14241", mb14241_device, shift_data_w)
|
||||||
AM_RANGE(0x05, 0x05) AM_WRITE(lupin3_sh_port_2_w)
|
AM_RANGE(0x05, 0x05) AM_WRITE(lupin3_sh_port_2_w)
|
||||||
AM_RANGE(0x06, 0x06) AM_WRITE(watchdog_reset_w)
|
AM_RANGE(0x06, 0x06) AM_WRITE(watchdog_reset_w)
|
||||||
ADDRESS_MAP_END
|
ADDRESS_MAP_END
|
||||||
@ -1717,10 +1716,10 @@ READ8_MEMBER(_8080bw_state::polaris_port00_r)
|
|||||||
// It sounds better then the actual circuit used.
|
// It sounds better then the actual circuit used.
|
||||||
// Probably an unfinished feature.
|
// Probably an unfinished feature.
|
||||||
static ADDRESS_MAP_START( polaris_io_map, AS_IO, 8, _8080bw_state )
|
static ADDRESS_MAP_START( polaris_io_map, AS_IO, 8, _8080bw_state )
|
||||||
AM_RANGE(0x00, 0x00) AM_READ(polaris_port00_r) AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_count_w)
|
AM_RANGE(0x00, 0x00) AM_READ(polaris_port00_r) AM_DEVWRITE("mb14241", mb14241_device, shift_count_w)
|
||||||
AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1")
|
AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1")
|
||||||
AM_RANGE(0x02, 0x02) AM_READ_PORT("IN2") AM_WRITE(polaris_sh_port_1_w)
|
AM_RANGE(0x02, 0x02) AM_READ_PORT("IN2") AM_WRITE(polaris_sh_port_1_w)
|
||||||
AM_RANGE(0x03, 0x03) AM_DEVREADWRITE_LEGACY("mb14241", mb14241_shift_result_r, mb14241_shift_data_w)
|
AM_RANGE(0x03, 0x03) AM_DEVREADWRITE("mb14241", mb14241_device, shift_result_r, shift_data_w)
|
||||||
AM_RANGE(0x04, 0x04) AM_WRITE(polaris_sh_port_2_w)
|
AM_RANGE(0x04, 0x04) AM_WRITE(polaris_sh_port_2_w)
|
||||||
AM_RANGE(0x05, 0x05) AM_WRITE(watchdog_reset_w)
|
AM_RANGE(0x05, 0x05) AM_WRITE(watchdog_reset_w)
|
||||||
AM_RANGE(0x06, 0x06) AM_WRITE(polaris_sh_port_3_w)
|
AM_RANGE(0x06, 0x06) AM_WRITE(polaris_sh_port_3_w)
|
||||||
@ -1890,9 +1889,9 @@ INPUT_PORTS_END
|
|||||||
static ADDRESS_MAP_START( ballbomb_io_map, AS_IO, 8, _8080bw_state )
|
static ADDRESS_MAP_START( ballbomb_io_map, AS_IO, 8, _8080bw_state )
|
||||||
AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0")
|
AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0")
|
||||||
AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1") AM_WRITE(ballbomb_01_w)
|
AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1") AM_WRITE(ballbomb_01_w)
|
||||||
AM_RANGE(0x02, 0x02) AM_READ_PORT("IN2") AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_count_w)
|
AM_RANGE(0x02, 0x02) AM_READ_PORT("IN2") AM_DEVWRITE("mb14241", mb14241_device, shift_count_w)
|
||||||
AM_RANGE(0x03, 0x03) AM_DEVREAD_LEGACY("mb14241", mb14241_shift_result_r) AM_WRITE(ballbomb_sh_port_1_w)
|
AM_RANGE(0x03, 0x03) AM_DEVREAD("mb14241", mb14241_device, shift_result_r) AM_WRITE(ballbomb_sh_port_1_w)
|
||||||
AM_RANGE(0x04, 0x04) AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_data_w)
|
AM_RANGE(0x04, 0x04) AM_DEVWRITE("mb14241", mb14241_device, shift_data_w)
|
||||||
AM_RANGE(0x05, 0x05) AM_WRITE(ballbomb_sh_port_2_w)
|
AM_RANGE(0x05, 0x05) AM_WRITE(ballbomb_sh_port_2_w)
|
||||||
ADDRESS_MAP_END
|
ADDRESS_MAP_END
|
||||||
|
|
||||||
@ -2129,9 +2128,9 @@ READ8_MEMBER(_8080bw_state::indianbtbr_01_r)
|
|||||||
static ADDRESS_MAP_START( indianbt_io_map, AS_IO, 8, _8080bw_state )
|
static ADDRESS_MAP_START( indianbt_io_map, AS_IO, 8, _8080bw_state )
|
||||||
AM_RANGE(0x00, 0x00) AM_READ(indianbt_r)
|
AM_RANGE(0x00, 0x00) AM_READ(indianbt_r)
|
||||||
AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1")
|
AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1")
|
||||||
AM_RANGE(0x02, 0x02) AM_READ(invrvnge_02_r) AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_count_w)
|
AM_RANGE(0x02, 0x02) AM_READ(invrvnge_02_r) AM_DEVWRITE("mb14241", mb14241_device, shift_count_w)
|
||||||
AM_RANGE(0x03, 0x03) AM_DEVREAD_LEGACY("mb14241", mb14241_shift_result_r) AM_WRITE(indianbt_sh_port_1_w)
|
AM_RANGE(0x03, 0x03) AM_DEVREAD("mb14241", mb14241_device, shift_result_r) AM_WRITE(indianbt_sh_port_1_w)
|
||||||
AM_RANGE(0x04, 0x04) AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_data_w)
|
AM_RANGE(0x04, 0x04) AM_DEVWRITE("mb14241", mb14241_device, shift_data_w)
|
||||||
AM_RANGE(0x05, 0x05) AM_WRITE(indianbt_sh_port_2_w)
|
AM_RANGE(0x05, 0x05) AM_WRITE(indianbt_sh_port_2_w)
|
||||||
AM_RANGE(0x06, 0x06) AM_WRITE(watchdog_reset_w)
|
AM_RANGE(0x06, 0x06) AM_WRITE(watchdog_reset_w)
|
||||||
AM_RANGE(0x07, 0x07) AM_WRITE(indianbt_sh_port_3_w)
|
AM_RANGE(0x07, 0x07) AM_WRITE(indianbt_sh_port_3_w)
|
||||||
@ -2140,9 +2139,9 @@ ADDRESS_MAP_END
|
|||||||
static ADDRESS_MAP_START( indianbtbr_io_map, AS_IO, 8, _8080bw_state )
|
static ADDRESS_MAP_START( indianbtbr_io_map, AS_IO, 8, _8080bw_state )
|
||||||
AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0")
|
AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0")
|
||||||
AM_RANGE(0x01, 0x01) AM_READ(indianbtbr_01_r)
|
AM_RANGE(0x01, 0x01) AM_READ(indianbtbr_01_r)
|
||||||
AM_RANGE(0x02, 0x02) AM_READ_PORT("IN2") AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_count_w)
|
AM_RANGE(0x02, 0x02) AM_READ_PORT("IN2") AM_DEVWRITE("mb14241", mb14241_device, shift_count_w)
|
||||||
AM_RANGE(0x03, 0x03) AM_DEVREAD_LEGACY("mb14241", mb14241_shift_result_r) AM_WRITE(indianbtbr_sh_port_1_w)
|
AM_RANGE(0x03, 0x03) AM_DEVREAD("mb14241", mb14241_device, shift_result_r) AM_WRITE(indianbtbr_sh_port_1_w)
|
||||||
AM_RANGE(0x04, 0x04) AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_data_w)
|
AM_RANGE(0x04, 0x04) AM_DEVWRITE("mb14241", mb14241_device, shift_data_w)
|
||||||
AM_RANGE(0x05, 0x05) AM_WRITE(indianbtbr_sh_port_2_w)
|
AM_RANGE(0x05, 0x05) AM_WRITE(indianbtbr_sh_port_2_w)
|
||||||
AM_RANGE(0x06, 0x06) AM_WRITE(watchdog_reset_w)
|
AM_RANGE(0x06, 0x06) AM_WRITE(watchdog_reset_w)
|
||||||
AM_RANGE(0x07, 0x07) AM_WRITENOP
|
AM_RANGE(0x07, 0x07) AM_WRITENOP
|
||||||
@ -2205,9 +2204,9 @@ WRITE8_MEMBER(_8080bw_state::steelwkr_sh_port_3_w)
|
|||||||
|
|
||||||
static ADDRESS_MAP_START( steelwkr_io_map, AS_IO, 8, _8080bw_state )
|
static ADDRESS_MAP_START( steelwkr_io_map, AS_IO, 8, _8080bw_state )
|
||||||
AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1")
|
AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1")
|
||||||
AM_RANGE(0x02, 0x02) AM_READ(invrvnge_02_r) AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_count_w)
|
AM_RANGE(0x02, 0x02) AM_READ(invrvnge_02_r) AM_DEVWRITE("mb14241", mb14241_device, shift_count_w)
|
||||||
AM_RANGE(0x03, 0x03) AM_DEVREAD_LEGACY("mb14241", mb14241_shift_result_r) AM_WRITE(invadpt2_sh_port_1_w)
|
AM_RANGE(0x03, 0x03) AM_DEVREAD("mb14241", mb14241_device, shift_result_r) AM_WRITE(invadpt2_sh_port_1_w)
|
||||||
AM_RANGE(0x04, 0x04) AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_data_w)
|
AM_RANGE(0x04, 0x04) AM_DEVWRITE("mb14241", mb14241_device, shift_data_w)
|
||||||
AM_RANGE(0x05, 0x05) AM_WRITE(invadpt2_sh_port_2_w)
|
AM_RANGE(0x05, 0x05) AM_WRITE(invadpt2_sh_port_2_w)
|
||||||
AM_RANGE(0x06, 0x06) AM_WRITE(steelwkr_sh_port_3_w)
|
AM_RANGE(0x06, 0x06) AM_WRITE(steelwkr_sh_port_3_w)
|
||||||
ADDRESS_MAP_END
|
ADDRESS_MAP_END
|
||||||
@ -2575,11 +2574,11 @@ static ADDRESS_MAP_START( vortex_io_map, AS_IO, 8, _8080bw_state )
|
|||||||
AM_RANGE(0x02, 0x02) AM_MIRROR(0x04) AM_READ_PORT("IN0")
|
AM_RANGE(0x02, 0x02) AM_MIRROR(0x04) AM_READ_PORT("IN0")
|
||||||
AM_RANGE(0x03, 0x03) AM_MIRROR(0x04) AM_READ_PORT("IN1")
|
AM_RANGE(0x03, 0x03) AM_MIRROR(0x04) AM_READ_PORT("IN1")
|
||||||
AM_RANGE(0x00, 0x00) AM_MIRROR(0x04) AM_READ_PORT("IN2")
|
AM_RANGE(0x00, 0x00) AM_MIRROR(0x04) AM_READ_PORT("IN2")
|
||||||
AM_RANGE(0x01, 0x01) AM_MIRROR(0x04) AM_DEVREAD_LEGACY("mb14241", mb14241_shift_result_r)
|
AM_RANGE(0x01, 0x01) AM_MIRROR(0x04) AM_DEVREAD("mb14241", mb14241_device, shift_result_r)
|
||||||
|
|
||||||
AM_RANGE(0x00, 0x00) AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_count_w)
|
AM_RANGE(0x00, 0x00) AM_DEVWRITE("mb14241", mb14241_device, shift_count_w)
|
||||||
AM_RANGE(0x01, 0x01) AM_WRITE(invaders_audio_1_w)
|
AM_RANGE(0x01, 0x01) AM_WRITE(invaders_audio_1_w)
|
||||||
AM_RANGE(0x06, 0x06) AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_data_w)
|
AM_RANGE(0x06, 0x06) AM_DEVWRITE("mb14241", mb14241_device, shift_data_w)
|
||||||
AM_RANGE(0x07, 0x07) AM_WRITE(invaders_audio_2_w)
|
AM_RANGE(0x07, 0x07) AM_WRITE(invaders_audio_2_w)
|
||||||
AM_RANGE(0x04, 0x04) AM_WRITE(watchdog_reset_w)
|
AM_RANGE(0x04, 0x04) AM_WRITE(watchdog_reset_w)
|
||||||
ADDRESS_MAP_END
|
ADDRESS_MAP_END
|
||||||
@ -2858,9 +2857,9 @@ READ8_MEMBER(_8080bw_state::claybust_gun_hi_r)
|
|||||||
|
|
||||||
static ADDRESS_MAP_START( claybust_io_map, AS_IO, 8, _8080bw_state )
|
static ADDRESS_MAP_START( claybust_io_map, AS_IO, 8, _8080bw_state )
|
||||||
//AM_RANGE(0x00, 0x00) AM_WRITENOP // ?
|
//AM_RANGE(0x00, 0x00) AM_WRITENOP // ?
|
||||||
AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1") AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_count_w)
|
AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1") AM_DEVWRITE("mb14241", mb14241_device, shift_count_w)
|
||||||
AM_RANGE(0x02, 0x02) AM_READ(claybust_gun_lo_r) AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_data_w)
|
AM_RANGE(0x02, 0x02) AM_READ(claybust_gun_lo_r) AM_DEVWRITE("mb14241", mb14241_device, shift_data_w)
|
||||||
AM_RANGE(0x03, 0x03) AM_DEVREAD_LEGACY("mb14241", mb14241_shift_result_r) //AM_WRITENOP // port3 write looks sound-related
|
AM_RANGE(0x03, 0x03) AM_DEVREAD("mb14241", mb14241_device, shift_result_r) //AM_WRITENOP // port3 write looks sound-related
|
||||||
AM_RANGE(0x04, 0x04) AM_WRITE(watchdog_reset_w)
|
AM_RANGE(0x04, 0x04) AM_WRITE(watchdog_reset_w)
|
||||||
//AM_RANGE(0x05, 0x05) AM_WRITENOP // ?
|
//AM_RANGE(0x05, 0x05) AM_WRITENOP // ?
|
||||||
AM_RANGE(0x06, 0x06) AM_READ(claybust_gun_hi_r)
|
AM_RANGE(0x06, 0x06) AM_READ(claybust_gun_hi_r)
|
||||||
@ -2950,9 +2949,9 @@ TODO sound to be verified.
|
|||||||
static ADDRESS_MAP_START( galactic_io_map, AS_IO, 8, _8080bw_state )
|
static ADDRESS_MAP_START( galactic_io_map, AS_IO, 8, _8080bw_state )
|
||||||
AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0")
|
AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0")
|
||||||
AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1")
|
AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1")
|
||||||
AM_RANGE(0x02, 0x02) AM_READ_PORT("IN2") AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_count_w)
|
AM_RANGE(0x02, 0x02) AM_READ_PORT("IN2") AM_DEVWRITE("mb14241", mb14241_device, shift_count_w)
|
||||||
AM_RANGE(0x03, 0x03) AM_DEVREAD_LEGACY("mb14241", mb14241_shift_result_r) AM_WRITE(galactic_sh_port_1_w)
|
AM_RANGE(0x03, 0x03) AM_DEVREAD("mb14241", mb14241_device, shift_result_r) AM_WRITE(galactic_sh_port_1_w)
|
||||||
AM_RANGE(0x04, 0x04) AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_data_w)
|
AM_RANGE(0x04, 0x04) AM_DEVWRITE("mb14241", mb14241_device, shift_data_w)
|
||||||
AM_RANGE(0x05, 0x05) AM_WRITE(galactic_sh_port_2_w)
|
AM_RANGE(0x05, 0x05) AM_WRITE(galactic_sh_port_2_w)
|
||||||
AM_RANGE(0x06, 0x06) AM_WRITE(watchdog_reset_w)
|
AM_RANGE(0x06, 0x06) AM_WRITE(watchdog_reset_w)
|
||||||
AM_RANGE(0x07, 0x07) AM_WRITE(galactic_07_w)
|
AM_RANGE(0x07, 0x07) AM_WRITE(galactic_07_w)
|
||||||
|
@ -208,7 +208,6 @@
|
|||||||
#include "cpu/m6502/m6502.h"
|
#include "cpu/m6502/m6502.h"
|
||||||
#include "video/vector.h"
|
#include "video/vector.h"
|
||||||
#include "video/avgdvg.h"
|
#include "video/avgdvg.h"
|
||||||
#include "machine/mathbox.h"
|
|
||||||
#include "machine/atari_vg.h"
|
#include "machine/atari_vg.h"
|
||||||
#include "includes/bzone.h"
|
#include "includes/bzone.h"
|
||||||
#include "sound/pokey.h"
|
#include "sound/pokey.h"
|
||||||
@ -283,9 +282,8 @@ READ8_MEMBER(bzone_state::redbaron_joy_r)
|
|||||||
|
|
||||||
WRITE8_MEMBER(bzone_state::redbaron_joysound_w)
|
WRITE8_MEMBER(bzone_state::redbaron_joysound_w)
|
||||||
{
|
{
|
||||||
redbaron_sound_device *device = machine().device<redbaron_sound_device>("custom");
|
|
||||||
m_rb_input_select = data & 1;
|
m_rb_input_select = data & 1;
|
||||||
device->redbaron_sounds_w(space, offset, data);
|
m_redbaronsound->sounds_w(space, offset, data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -306,12 +304,12 @@ static ADDRESS_MAP_START( bzone_map, AS_PROGRAM, 8, bzone_state )
|
|||||||
AM_RANGE(0x1200, 0x1200) AM_WRITE_LEGACY(avgdvg_go_w)
|
AM_RANGE(0x1200, 0x1200) AM_WRITE_LEGACY(avgdvg_go_w)
|
||||||
AM_RANGE(0x1400, 0x1400) AM_WRITE(watchdog_reset_w)
|
AM_RANGE(0x1400, 0x1400) AM_WRITE(watchdog_reset_w)
|
||||||
AM_RANGE(0x1600, 0x1600) AM_WRITE_LEGACY(avgdvg_reset_w)
|
AM_RANGE(0x1600, 0x1600) AM_WRITE_LEGACY(avgdvg_reset_w)
|
||||||
AM_RANGE(0x1800, 0x1800) AM_DEVREAD_LEGACY("mathbox", mathbox_status_r)
|
AM_RANGE(0x1800, 0x1800) AM_DEVREAD("mathbox", mathbox_device, status_r)
|
||||||
AM_RANGE(0x1810, 0x1810) AM_DEVREAD_LEGACY("mathbox", mathbox_lo_r)
|
AM_RANGE(0x1810, 0x1810) AM_DEVREAD("mathbox", mathbox_device, lo_r)
|
||||||
AM_RANGE(0x1818, 0x1818) AM_DEVREAD_LEGACY("mathbox", mathbox_hi_r)
|
AM_RANGE(0x1818, 0x1818) AM_DEVREAD("mathbox", mathbox_device, hi_r)
|
||||||
AM_RANGE(0x1820, 0x182f) AM_DEVREADWRITE("pokey", pokey_device, read, write)
|
AM_RANGE(0x1820, 0x182f) AM_DEVREADWRITE("pokey", pokey_device, read, write)
|
||||||
AM_RANGE(0x1840, 0x1840) AM_WRITE(bzone_sounds_w)
|
AM_RANGE(0x1840, 0x1840) AM_WRITE(bzone_sounds_w)
|
||||||
AM_RANGE(0x1860, 0x187f) AM_DEVWRITE_LEGACY("mathbox", mathbox_go_w)
|
AM_RANGE(0x1860, 0x187f) AM_DEVWRITE("mathbox", mathbox_device, go_w)
|
||||||
AM_RANGE(0x2000, 0x2fff) AM_RAM AM_SHARE("vectorram") AM_REGION("maincpu", 0x2000)
|
AM_RANGE(0x2000, 0x2fff) AM_RAM AM_SHARE("vectorram") AM_REGION("maincpu", 0x2000)
|
||||||
AM_RANGE(0x3000, 0x7fff) AM_ROM
|
AM_RANGE(0x3000, 0x7fff) AM_ROM
|
||||||
ADDRESS_MAP_END
|
ADDRESS_MAP_END
|
||||||
@ -326,16 +324,16 @@ static ADDRESS_MAP_START( redbaron_map, AS_PROGRAM, 8, bzone_state )
|
|||||||
AM_RANGE(0x1200, 0x1200) AM_WRITE_LEGACY(avgdvg_go_w)
|
AM_RANGE(0x1200, 0x1200) AM_WRITE_LEGACY(avgdvg_go_w)
|
||||||
AM_RANGE(0x1400, 0x1400) AM_WRITE(watchdog_reset_w)
|
AM_RANGE(0x1400, 0x1400) AM_WRITE(watchdog_reset_w)
|
||||||
AM_RANGE(0x1600, 0x1600) AM_WRITE_LEGACY(avgdvg_reset_w)
|
AM_RANGE(0x1600, 0x1600) AM_WRITE_LEGACY(avgdvg_reset_w)
|
||||||
AM_RANGE(0x1800, 0x1800) AM_DEVREAD_LEGACY("mathbox", mathbox_status_r)
|
AM_RANGE(0x1800, 0x1800) AM_DEVREAD("mathbox", mathbox_device, status_r)
|
||||||
AM_RANGE(0x1802, 0x1802) AM_READ_PORT("IN4")
|
AM_RANGE(0x1802, 0x1802) AM_READ_PORT("IN4")
|
||||||
AM_RANGE(0x1804, 0x1804) AM_DEVREAD_LEGACY("mathbox", mathbox_lo_r)
|
AM_RANGE(0x1804, 0x1804) AM_DEVREAD("mathbox", mathbox_device, lo_r)
|
||||||
AM_RANGE(0x1806, 0x1806) AM_DEVREAD_LEGACY("mathbox", mathbox_hi_r)
|
AM_RANGE(0x1806, 0x1806) AM_DEVREAD("mathbox", mathbox_device, hi_r)
|
||||||
AM_RANGE(0x1808, 0x1808) AM_WRITE(redbaron_joysound_w) /* and select joystick pot also */
|
AM_RANGE(0x1808, 0x1808) AM_WRITE(redbaron_joysound_w) /* and select joystick pot also */
|
||||||
AM_RANGE(0x180a, 0x180a) AM_WRITENOP /* sound reset, yet todo */
|
AM_RANGE(0x180a, 0x180a) AM_WRITENOP /* sound reset, yet todo */
|
||||||
AM_RANGE(0x180c, 0x180c) AM_DEVWRITE("earom", atari_vg_earom_device, ctrl_w)
|
AM_RANGE(0x180c, 0x180c) AM_DEVWRITE("earom", atari_vg_earom_device, ctrl_w)
|
||||||
AM_RANGE(0x1810, 0x181f) AM_DEVREADWRITE("pokey", pokey_device, read, write)
|
AM_RANGE(0x1810, 0x181f) AM_DEVREADWRITE("pokey", pokey_device, read, write)
|
||||||
AM_RANGE(0x1820, 0x185f) AM_DEVREADWRITE("earom", atari_vg_earom_device, read, write)
|
AM_RANGE(0x1820, 0x185f) AM_DEVREADWRITE("earom", atari_vg_earom_device, read, write)
|
||||||
AM_RANGE(0x1860, 0x187f) AM_DEVWRITE_LEGACY("mathbox", mathbox_go_w)
|
AM_RANGE(0x1860, 0x187f) AM_DEVWRITE("mathbox", mathbox_device, go_w)
|
||||||
AM_RANGE(0x2000, 0x2fff) AM_RAM AM_SHARE("vectorram") AM_REGION("maincpu", 0x2000)
|
AM_RANGE(0x2000, 0x2fff) AM_RAM AM_SHARE("vectorram") AM_REGION("maincpu", 0x2000)
|
||||||
AM_RANGE(0x3000, 0x7fff) AM_ROM
|
AM_RANGE(0x3000, 0x7fff) AM_ROM
|
||||||
ADDRESS_MAP_END
|
ADDRESS_MAP_END
|
||||||
|
@ -18,7 +18,6 @@ Differences between these sets include
|
|||||||
|
|
||||||
#include "emu.h"
|
#include "emu.h"
|
||||||
#include "cpu/m6800/m6800.h"
|
#include "cpu/m6800/m6800.h"
|
||||||
#include "machine/mb14241.h"
|
|
||||||
#include "includes/fgoal.h"
|
#include "includes/fgoal.h"
|
||||||
|
|
||||||
|
|
||||||
@ -147,13 +146,13 @@ READ8_MEMBER(fgoal_state::fgoal_row_r)
|
|||||||
WRITE8_MEMBER(fgoal_state::fgoal_row_w)
|
WRITE8_MEMBER(fgoal_state::fgoal_row_w)
|
||||||
{
|
{
|
||||||
m_row = data;
|
m_row = data;
|
||||||
mb14241_shift_data_w(m_mb14241, space, 0, 0);
|
m_mb14241->shift_data_w(space, 0, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
WRITE8_MEMBER(fgoal_state::fgoal_col_w)
|
WRITE8_MEMBER(fgoal_state::fgoal_col_w)
|
||||||
{
|
{
|
||||||
m_col = data;
|
m_col = data;
|
||||||
mb14241_shift_count_w(m_mb14241, space, 0, data);
|
m_mb14241->shift_count_w(space, 0, data);
|
||||||
}
|
}
|
||||||
|
|
||||||
READ8_MEMBER(fgoal_state::fgoal_address_hi_r)
|
READ8_MEMBER(fgoal_state::fgoal_address_hi_r)
|
||||||
@ -168,14 +167,14 @@ READ8_MEMBER(fgoal_state::fgoal_address_lo_r)
|
|||||||
|
|
||||||
READ8_MEMBER(fgoal_state::fgoal_shifter_r)
|
READ8_MEMBER(fgoal_state::fgoal_shifter_r)
|
||||||
{
|
{
|
||||||
UINT8 v = mb14241_shift_result_r(m_mb14241, space, 0);
|
UINT8 v = m_mb14241->shift_result_r(space, 0);
|
||||||
|
|
||||||
return BITSWAP8(v, 7, 6, 5, 4, 3, 2, 1, 0);
|
return BITSWAP8(v, 7, 6, 5, 4, 3, 2, 1, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
READ8_MEMBER(fgoal_state::fgoal_shifter_reverse_r)
|
READ8_MEMBER(fgoal_state::fgoal_shifter_reverse_r)
|
||||||
{
|
{
|
||||||
UINT8 v = mb14241_shift_result_r(m_mb14241, space, 0);
|
UINT8 v = m_mb14241->shift_result_r(space, 0);
|
||||||
|
|
||||||
return BITSWAP8(v, 0, 1, 2, 3, 4, 5, 6, 7);
|
return BITSWAP8(v, 0, 1, 2, 3, 4, 5, 6, 7);
|
||||||
}
|
}
|
||||||
@ -225,7 +224,7 @@ static ADDRESS_MAP_START( cpu_map, AS_PROGRAM, 8, fgoal_state )
|
|||||||
AM_RANGE(0x00f1, 0x00f1) AM_WRITE(fgoal_col_w)
|
AM_RANGE(0x00f1, 0x00f1) AM_WRITE(fgoal_col_w)
|
||||||
AM_RANGE(0x00f2, 0x00f2) AM_WRITE(fgoal_row_w)
|
AM_RANGE(0x00f2, 0x00f2) AM_WRITE(fgoal_row_w)
|
||||||
AM_RANGE(0x00f3, 0x00f3) AM_WRITE(fgoal_col_w)
|
AM_RANGE(0x00f3, 0x00f3) AM_WRITE(fgoal_col_w)
|
||||||
AM_RANGE(0x00f4, 0x00f7) AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_data_w)
|
AM_RANGE(0x00f4, 0x00f7) AM_DEVWRITE("mb14241", mb14241_device, shift_data_w)
|
||||||
AM_RANGE(0x00f8, 0x00fb) AM_WRITE(fgoal_sound1_w)
|
AM_RANGE(0x00f8, 0x00fb) AM_WRITE(fgoal_sound1_w)
|
||||||
AM_RANGE(0x00fc, 0x00ff) AM_WRITE(fgoal_sound2_w)
|
AM_RANGE(0x00fc, 0x00ff) AM_WRITE(fgoal_sound2_w)
|
||||||
|
|
||||||
@ -339,8 +338,6 @@ GFXDECODE_END
|
|||||||
|
|
||||||
void fgoal_state::machine_start()
|
void fgoal_state::machine_start()
|
||||||
{
|
{
|
||||||
m_mb14241 = machine().device("mb14241");
|
|
||||||
|
|
||||||
save_item(NAME(m_xpos));
|
save_item(NAME(m_xpos));
|
||||||
save_item(NAME(m_ypos));
|
save_item(NAME(m_ypos));
|
||||||
save_item(NAME(m_current_color));
|
save_item(NAME(m_current_color));
|
||||||
|
@ -148,7 +148,6 @@
|
|||||||
#include "emu.h"
|
#include "emu.h"
|
||||||
#include "cpu/i8085/i8085.h"
|
#include "cpu/i8085/i8085.h"
|
||||||
#include "machine/rescap.h"
|
#include "machine/rescap.h"
|
||||||
#include "machine/mb14241.h"
|
|
||||||
#include "includes/mw8080bw.h"
|
#include "includes/mw8080bw.h"
|
||||||
|
|
||||||
#include "280zzzap.lh"
|
#include "280zzzap.lh"
|
||||||
@ -173,7 +172,7 @@
|
|||||||
|
|
||||||
READ8_MEMBER(mw8080bw_state::mw8080bw_shift_result_rev_r)
|
READ8_MEMBER(mw8080bw_state::mw8080bw_shift_result_rev_r)
|
||||||
{
|
{
|
||||||
UINT8 ret = mb14241_shift_result_r(m_mb14241, space, 0);
|
UINT8 ret = m_mb14241->shift_result_r(space, 0);
|
||||||
|
|
||||||
return BITSWAP8(ret,0,1,2,3,4,5,6,7);
|
return BITSWAP8(ret,0,1,2,3,4,5,6,7);
|
||||||
}
|
}
|
||||||
@ -189,7 +188,7 @@ READ8_MEMBER(mw8080bw_state::mw8080bw_reversable_shift_result_r)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ret = mb14241_shift_result_r(m_mb14241, space, 0);
|
ret = m_mb14241->shift_result_r(space, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
@ -197,7 +196,7 @@ READ8_MEMBER(mw8080bw_state::mw8080bw_reversable_shift_result_r)
|
|||||||
|
|
||||||
WRITE8_MEMBER(mw8080bw_state::mw8080bw_reversable_shift_count_w)
|
WRITE8_MEMBER(mw8080bw_state::mw8080bw_reversable_shift_count_w)
|
||||||
{
|
{
|
||||||
mb14241_shift_count_w(m_mb14241, space, offset, data);
|
m_mb14241->shift_count_w(space, offset, data);
|
||||||
|
|
||||||
m_rev_shift_res = data & 0x08;
|
m_rev_shift_res = data & 0x08;
|
||||||
}
|
}
|
||||||
@ -331,12 +330,12 @@ static ADDRESS_MAP_START( seawolf_io_map, AS_IO, 8, mw8080bw_state )
|
|||||||
AM_RANGE(0x00, 0x00) AM_MIRROR(0x04) AM_READ(mw8080bw_shift_result_rev_r)
|
AM_RANGE(0x00, 0x00) AM_MIRROR(0x04) AM_READ(mw8080bw_shift_result_rev_r)
|
||||||
AM_RANGE(0x01, 0x01) AM_MIRROR(0x04) AM_READ_PORT("IN0")
|
AM_RANGE(0x01, 0x01) AM_MIRROR(0x04) AM_READ_PORT("IN0")
|
||||||
AM_RANGE(0x02, 0x02) AM_MIRROR(0x04) AM_READ_PORT("IN1")
|
AM_RANGE(0x02, 0x02) AM_MIRROR(0x04) AM_READ_PORT("IN1")
|
||||||
AM_RANGE(0x03, 0x03) AM_MIRROR(0x04) AM_DEVREAD_LEGACY("mb14241", mb14241_shift_result_r)
|
AM_RANGE(0x03, 0x03) AM_MIRROR(0x04) AM_DEVREAD("mb14241", mb14241_device, shift_result_r)
|
||||||
|
|
||||||
AM_RANGE(0x01, 0x01) AM_WRITE(seawolf_explosion_lamp_w)
|
AM_RANGE(0x01, 0x01) AM_WRITE(seawolf_explosion_lamp_w)
|
||||||
AM_RANGE(0x02, 0x02) AM_WRITE(seawolf_periscope_lamp_w)
|
AM_RANGE(0x02, 0x02) AM_WRITE(seawolf_periscope_lamp_w)
|
||||||
AM_RANGE(0x03, 0x03) AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_data_w)
|
AM_RANGE(0x03, 0x03) AM_DEVWRITE("mb14241", mb14241_device, shift_data_w)
|
||||||
AM_RANGE(0x04, 0x04) AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_count_w)
|
AM_RANGE(0x04, 0x04) AM_DEVWRITE("mb14241", mb14241_device, shift_count_w)
|
||||||
AM_RANGE(0x05, 0x05) AM_WRITE(seawolf_audio_w)
|
AM_RANGE(0x05, 0x05) AM_WRITE(seawolf_audio_w)
|
||||||
ADDRESS_MAP_END
|
ADDRESS_MAP_END
|
||||||
|
|
||||||
@ -430,10 +429,10 @@ WRITE8_MEMBER(mw8080bw_state::gunfight_io_w)
|
|||||||
gunfight_audio_w(space, 0, data);
|
gunfight_audio_w(space, 0, data);
|
||||||
|
|
||||||
if (offset & 0x02)
|
if (offset & 0x02)
|
||||||
mb14241_shift_count_w(m_mb14241, space, 0, data);
|
m_mb14241->shift_count_w(space, 0, data);
|
||||||
|
|
||||||
if (offset & 0x04)
|
if (offset & 0x04)
|
||||||
mb14241_shift_data_w(m_mb14241, space, 0, data);
|
m_mb14241->shift_data_w(space, 0, data);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -443,7 +442,7 @@ static ADDRESS_MAP_START( gunfight_io_map, AS_IO, 8, mw8080bw_state )
|
|||||||
AM_RANGE(0x00, 0x00) AM_MIRROR(0x04) AM_READ_PORT("IN0")
|
AM_RANGE(0x00, 0x00) AM_MIRROR(0x04) AM_READ_PORT("IN0")
|
||||||
AM_RANGE(0x01, 0x01) AM_MIRROR(0x04) AM_READ_PORT("IN1")
|
AM_RANGE(0x01, 0x01) AM_MIRROR(0x04) AM_READ_PORT("IN1")
|
||||||
AM_RANGE(0x02, 0x02) AM_MIRROR(0x04) AM_READ_PORT("IN2")
|
AM_RANGE(0x02, 0x02) AM_MIRROR(0x04) AM_READ_PORT("IN2")
|
||||||
AM_RANGE(0x03, 0x03) AM_MIRROR(0x04) AM_DEVREAD_LEGACY("mb14241", mb14241_shift_result_r)
|
AM_RANGE(0x03, 0x03) AM_MIRROR(0x04) AM_DEVREAD("mb14241", mb14241_device, shift_result_r)
|
||||||
|
|
||||||
/* no decoder, just 3 AND gates */
|
/* no decoder, just 3 AND gates */
|
||||||
AM_RANGE(0x00, 0x07) AM_WRITE(gunfight_io_w)
|
AM_RANGE(0x00, 0x07) AM_WRITE(gunfight_io_w)
|
||||||
@ -625,10 +624,10 @@ WRITE8_MEMBER(mw8080bw_state::tornbase_io_w)
|
|||||||
tornbase_audio_w(space, 0, data);
|
tornbase_audio_w(space, 0, data);
|
||||||
|
|
||||||
if (offset & 0x02)
|
if (offset & 0x02)
|
||||||
mb14241_shift_count_w(m_mb14241, space, 0, data);
|
m_mb14241->shift_count_w(space, 0, data);
|
||||||
|
|
||||||
if (offset & 0x04)
|
if (offset & 0x04)
|
||||||
mb14241_shift_data_w(m_mb14241, space, 0, data);
|
m_mb14241->shift_data_w(space, 0, data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -637,7 +636,7 @@ static ADDRESS_MAP_START( tornbase_io_map, AS_IO, 8, mw8080bw_state )
|
|||||||
AM_RANGE(0x00, 0x00) AM_MIRROR(0x04) AM_READ_PORT("IN0")
|
AM_RANGE(0x00, 0x00) AM_MIRROR(0x04) AM_READ_PORT("IN0")
|
||||||
AM_RANGE(0x01, 0x01) AM_MIRROR(0x04) AM_READ_PORT("IN1")
|
AM_RANGE(0x01, 0x01) AM_MIRROR(0x04) AM_READ_PORT("IN1")
|
||||||
AM_RANGE(0x02, 0x02) AM_MIRROR(0x04) AM_READ_PORT("IN2")
|
AM_RANGE(0x02, 0x02) AM_MIRROR(0x04) AM_READ_PORT("IN2")
|
||||||
AM_RANGE(0x03, 0x03) AM_MIRROR(0x04) AM_DEVREAD_LEGACY("mb14241", mb14241_shift_result_r)
|
AM_RANGE(0x03, 0x03) AM_MIRROR(0x04) AM_DEVREAD("mb14241", mb14241_device, shift_result_r)
|
||||||
|
|
||||||
/* no decoder, just 3 AND gates */
|
/* no decoder, just 3 AND gates */
|
||||||
AM_RANGE(0x00, 0x07) AM_WRITE(tornbase_io_w)
|
AM_RANGE(0x00, 0x07) AM_WRITE(tornbase_io_w)
|
||||||
@ -757,11 +756,11 @@ static ADDRESS_MAP_START( zzzap_io_map, AS_IO, 8, mw8080bw_state )
|
|||||||
AM_RANGE(0x00, 0x00) AM_MIRROR(0x04) AM_READ_PORT("IN0")
|
AM_RANGE(0x00, 0x00) AM_MIRROR(0x04) AM_READ_PORT("IN0")
|
||||||
AM_RANGE(0x01, 0x01) AM_MIRROR(0x04) AM_READ_PORT("IN1")
|
AM_RANGE(0x01, 0x01) AM_MIRROR(0x04) AM_READ_PORT("IN1")
|
||||||
AM_RANGE(0x02, 0x02) AM_MIRROR(0x04) AM_READ_PORT("IN2")
|
AM_RANGE(0x02, 0x02) AM_MIRROR(0x04) AM_READ_PORT("IN2")
|
||||||
AM_RANGE(0x03, 0x03) AM_MIRROR(0x04) AM_DEVREAD_LEGACY("mb14241", mb14241_shift_result_r)
|
AM_RANGE(0x03, 0x03) AM_MIRROR(0x04) AM_DEVREAD("mb14241", mb14241_device, shift_result_r)
|
||||||
|
|
||||||
AM_RANGE(0x02, 0x02) AM_WRITE(zzzap_audio_1_w)
|
AM_RANGE(0x02, 0x02) AM_WRITE(zzzap_audio_1_w)
|
||||||
AM_RANGE(0x03, 0x03) AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_data_w)
|
AM_RANGE(0x03, 0x03) AM_DEVWRITE("mb14241", mb14241_device, shift_data_w)
|
||||||
AM_RANGE(0x04, 0x04) AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_count_w)
|
AM_RANGE(0x04, 0x04) AM_DEVWRITE("mb14241", mb14241_device, shift_count_w)
|
||||||
AM_RANGE(0x05, 0x05) AM_WRITE(zzzap_audio_2_w)
|
AM_RANGE(0x05, 0x05) AM_WRITE(zzzap_audio_2_w)
|
||||||
AM_RANGE(0x07, 0x07) AM_WRITE(watchdog_reset_w)
|
AM_RANGE(0x07, 0x07) AM_WRITE(watchdog_reset_w)
|
||||||
ADDRESS_MAP_END
|
ADDRESS_MAP_END
|
||||||
@ -983,7 +982,7 @@ static ADDRESS_MAP_START( boothill_io_map, AS_IO, 8, mw8080bw_state )
|
|||||||
AM_RANGE(0x03, 0x03) AM_MIRROR(0x04) AM_READ(mw8080bw_reversable_shift_result_r)
|
AM_RANGE(0x03, 0x03) AM_MIRROR(0x04) AM_READ(mw8080bw_reversable_shift_result_r)
|
||||||
|
|
||||||
AM_RANGE(0x01, 0x01) AM_WRITE(mw8080bw_reversable_shift_count_w)
|
AM_RANGE(0x01, 0x01) AM_WRITE(mw8080bw_reversable_shift_count_w)
|
||||||
AM_RANGE(0x02, 0x02) AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_data_w)
|
AM_RANGE(0x02, 0x02) AM_DEVWRITE("mb14241", mb14241_device, shift_data_w)
|
||||||
AM_RANGE(0x03, 0x03) AM_WRITE(boothill_audio_w)
|
AM_RANGE(0x03, 0x03) AM_WRITE(boothill_audio_w)
|
||||||
AM_RANGE(0x04, 0x04) AM_WRITE(watchdog_reset_w)
|
AM_RANGE(0x04, 0x04) AM_WRITE(watchdog_reset_w)
|
||||||
AM_RANGE(0x05, 0x05) AM_WRITE(midway_tone_generator_lo_w)
|
AM_RANGE(0x05, 0x05) AM_WRITE(midway_tone_generator_lo_w)
|
||||||
@ -1204,10 +1203,10 @@ static ADDRESS_MAP_START( desertgu_io_map, AS_IO, 8, mw8080bw_state )
|
|||||||
AM_RANGE(0x00, 0x00) AM_MIRROR(0x04) AM_READ(mw8080bw_shift_result_rev_r)
|
AM_RANGE(0x00, 0x00) AM_MIRROR(0x04) AM_READ(mw8080bw_shift_result_rev_r)
|
||||||
AM_RANGE(0x01, 0x01) AM_MIRROR(0x04) AM_READ_PORT("IN0")
|
AM_RANGE(0x01, 0x01) AM_MIRROR(0x04) AM_READ_PORT("IN0")
|
||||||
AM_RANGE(0x02, 0x02) AM_MIRROR(0x04) AM_READ_PORT("IN1")
|
AM_RANGE(0x02, 0x02) AM_MIRROR(0x04) AM_READ_PORT("IN1")
|
||||||
AM_RANGE(0x03, 0x03) AM_MIRROR(0x04) AM_DEVREAD_LEGACY("mb14241", mb14241_shift_result_r)
|
AM_RANGE(0x03, 0x03) AM_MIRROR(0x04) AM_DEVREAD("mb14241", mb14241_device, shift_result_r)
|
||||||
|
|
||||||
AM_RANGE(0x01, 0x01) AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_count_w)
|
AM_RANGE(0x01, 0x01) AM_DEVWRITE("mb14241", mb14241_device, shift_count_w)
|
||||||
AM_RANGE(0x02, 0x02) AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_data_w)
|
AM_RANGE(0x02, 0x02) AM_DEVWRITE("mb14241", mb14241_device, shift_data_w)
|
||||||
AM_RANGE(0x03, 0x03) AM_WRITE(desertgu_audio_1_w)
|
AM_RANGE(0x03, 0x03) AM_WRITE(desertgu_audio_1_w)
|
||||||
AM_RANGE(0x04, 0x04) AM_WRITE(watchdog_reset_w)
|
AM_RANGE(0x04, 0x04) AM_WRITE(watchdog_reset_w)
|
||||||
AM_RANGE(0x05, 0x05) AM_WRITE(midway_tone_generator_lo_w)
|
AM_RANGE(0x05, 0x05) AM_WRITE(midway_tone_generator_lo_w)
|
||||||
@ -1326,10 +1325,10 @@ static ADDRESS_MAP_START( dplay_io_map, AS_IO, 8, mw8080bw_state )
|
|||||||
AM_RANGE(0x00, 0x00) AM_MIRROR(0x04) AM_READ_PORT("IN0")
|
AM_RANGE(0x00, 0x00) AM_MIRROR(0x04) AM_READ_PORT("IN0")
|
||||||
AM_RANGE(0x01, 0x01) AM_MIRROR(0x04) AM_READ_PORT("IN1")
|
AM_RANGE(0x01, 0x01) AM_MIRROR(0x04) AM_READ_PORT("IN1")
|
||||||
AM_RANGE(0x02, 0x02) AM_MIRROR(0x04) AM_READ_PORT("IN2")
|
AM_RANGE(0x02, 0x02) AM_MIRROR(0x04) AM_READ_PORT("IN2")
|
||||||
AM_RANGE(0x03, 0x03) AM_MIRROR(0x04) AM_DEVREAD_LEGACY("mb14241", mb14241_shift_result_r)
|
AM_RANGE(0x03, 0x03) AM_MIRROR(0x04) AM_DEVREAD("mb14241", mb14241_device, shift_result_r)
|
||||||
|
|
||||||
AM_RANGE(0x01, 0x01) AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_count_w)
|
AM_RANGE(0x01, 0x01) AM_DEVWRITE("mb14241", mb14241_device, shift_count_w)
|
||||||
AM_RANGE(0x02, 0x02) AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_data_w)
|
AM_RANGE(0x02, 0x02) AM_DEVWRITE("mb14241", mb14241_device, shift_data_w)
|
||||||
AM_RANGE(0x03, 0x03) AM_WRITE(dplay_audio_w)
|
AM_RANGE(0x03, 0x03) AM_WRITE(dplay_audio_w)
|
||||||
AM_RANGE(0x04, 0x04) AM_WRITE(watchdog_reset_w)
|
AM_RANGE(0x04, 0x04) AM_WRITE(watchdog_reset_w)
|
||||||
AM_RANGE(0x05, 0x05) AM_WRITE(midway_tone_generator_lo_w)
|
AM_RANGE(0x05, 0x05) AM_WRITE(midway_tone_generator_lo_w)
|
||||||
@ -1505,7 +1504,7 @@ static ADDRESS_MAP_START( gmissile_io_map, AS_IO, 8, mw8080bw_state )
|
|||||||
AM_RANGE(0x03, 0x03) AM_MIRROR(0x04) AM_READ(mw8080bw_reversable_shift_result_r)
|
AM_RANGE(0x03, 0x03) AM_MIRROR(0x04) AM_READ(mw8080bw_reversable_shift_result_r)
|
||||||
|
|
||||||
AM_RANGE(0x01, 0x01) AM_WRITE(mw8080bw_reversable_shift_count_w)
|
AM_RANGE(0x01, 0x01) AM_WRITE(mw8080bw_reversable_shift_count_w)
|
||||||
AM_RANGE(0x02, 0x02) AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_data_w)
|
AM_RANGE(0x02, 0x02) AM_DEVWRITE("mb14241", mb14241_device, shift_data_w)
|
||||||
AM_RANGE(0x03, 0x03) AM_WRITE(gmissile_audio_1_w)
|
AM_RANGE(0x03, 0x03) AM_WRITE(gmissile_audio_1_w)
|
||||||
AM_RANGE(0x04, 0x04) AM_WRITE(watchdog_reset_w)
|
AM_RANGE(0x04, 0x04) AM_WRITE(watchdog_reset_w)
|
||||||
AM_RANGE(0x05, 0x05) AM_WRITE(gmissile_audio_2_w)
|
AM_RANGE(0x05, 0x05) AM_WRITE(gmissile_audio_2_w)
|
||||||
@ -1599,7 +1598,7 @@ static ADDRESS_MAP_START( m4_io_map, AS_IO, 8, mw8080bw_state )
|
|||||||
AM_RANGE(0x03, 0x03) AM_MIRROR(0x04) AM_READ(mw8080bw_reversable_shift_result_r)
|
AM_RANGE(0x03, 0x03) AM_MIRROR(0x04) AM_READ(mw8080bw_reversable_shift_result_r)
|
||||||
|
|
||||||
AM_RANGE(0x01, 0x01) AM_WRITE(mw8080bw_reversable_shift_count_w)
|
AM_RANGE(0x01, 0x01) AM_WRITE(mw8080bw_reversable_shift_count_w)
|
||||||
AM_RANGE(0x02, 0x02) AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_data_w)
|
AM_RANGE(0x02, 0x02) AM_DEVWRITE("mb14241", mb14241_device, shift_data_w)
|
||||||
AM_RANGE(0x03, 0x03) AM_WRITE(m4_audio_1_w)
|
AM_RANGE(0x03, 0x03) AM_WRITE(m4_audio_1_w)
|
||||||
AM_RANGE(0x04, 0x04) AM_WRITE(watchdog_reset_w)
|
AM_RANGE(0x04, 0x04) AM_WRITE(watchdog_reset_w)
|
||||||
AM_RANGE(0x05, 0x05) AM_WRITE(m4_audio_2_w)
|
AM_RANGE(0x05, 0x05) AM_WRITE(m4_audio_2_w)
|
||||||
@ -1709,10 +1708,10 @@ static ADDRESS_MAP_START( clowns_io_map, AS_IO, 8, mw8080bw_state )
|
|||||||
AM_RANGE(0x00, 0x00) AM_MIRROR(0x04) AM_READ_PORT("IN0")
|
AM_RANGE(0x00, 0x00) AM_MIRROR(0x04) AM_READ_PORT("IN0")
|
||||||
AM_RANGE(0x01, 0x01) AM_MIRROR(0x04) AM_READ_PORT("IN1")
|
AM_RANGE(0x01, 0x01) AM_MIRROR(0x04) AM_READ_PORT("IN1")
|
||||||
AM_RANGE(0x02, 0x02) AM_MIRROR(0x04) AM_READ_PORT("IN2")
|
AM_RANGE(0x02, 0x02) AM_MIRROR(0x04) AM_READ_PORT("IN2")
|
||||||
AM_RANGE(0x03, 0x03) AM_MIRROR(0x04) AM_DEVREAD_LEGACY("mb14241", mb14241_shift_result_r)
|
AM_RANGE(0x03, 0x03) AM_MIRROR(0x04) AM_DEVREAD("mb14241", mb14241_device, shift_result_r)
|
||||||
|
|
||||||
AM_RANGE(0x01, 0x01) AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_count_w)
|
AM_RANGE(0x01, 0x01) AM_DEVWRITE("mb14241", mb14241_device, shift_count_w)
|
||||||
AM_RANGE(0x02, 0x02) AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_data_w)
|
AM_RANGE(0x02, 0x02) AM_DEVWRITE("mb14241", mb14241_device, shift_data_w)
|
||||||
AM_RANGE(0x03, 0x03) AM_WRITE(clowns_audio_1_w)
|
AM_RANGE(0x03, 0x03) AM_WRITE(clowns_audio_1_w)
|
||||||
AM_RANGE(0x04, 0x04) AM_WRITE(watchdog_reset_w)
|
AM_RANGE(0x04, 0x04) AM_WRITE(watchdog_reset_w)
|
||||||
AM_RANGE(0x05, 0x05) AM_WRITE(midway_tone_generator_lo_w)
|
AM_RANGE(0x05, 0x05) AM_WRITE(midway_tone_generator_lo_w)
|
||||||
@ -1847,10 +1846,10 @@ static ADDRESS_MAP_START( spacwalk_io_map, AS_IO, 8, mw8080bw_state )
|
|||||||
AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0")
|
AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0")
|
||||||
AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1")
|
AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1")
|
||||||
AM_RANGE(0x02, 0x02) AM_READ_PORT("IN2")
|
AM_RANGE(0x02, 0x02) AM_READ_PORT("IN2")
|
||||||
AM_RANGE(0x03, 0x03) AM_DEVREAD_LEGACY("mb14241", mb14241_shift_result_r)
|
AM_RANGE(0x03, 0x03) AM_DEVREAD("mb14241", mb14241_device, shift_result_r)
|
||||||
|
|
||||||
AM_RANGE(0x01, 0x01) AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_count_w)
|
AM_RANGE(0x01, 0x01) AM_DEVWRITE("mb14241", mb14241_device, shift_count_w)
|
||||||
AM_RANGE(0x02, 0x02) AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_data_w)
|
AM_RANGE(0x02, 0x02) AM_DEVWRITE("mb14241", mb14241_device, shift_data_w)
|
||||||
AM_RANGE(0x03, 0x03) AM_WRITE(spacwalk_audio_1_w)
|
AM_RANGE(0x03, 0x03) AM_WRITE(spacwalk_audio_1_w)
|
||||||
AM_RANGE(0x04, 0x04) AM_WRITE(watchdog_reset_w)
|
AM_RANGE(0x04, 0x04) AM_WRITE(watchdog_reset_w)
|
||||||
AM_RANGE(0x05, 0x05) AM_WRITE(midway_tone_generator_lo_w)
|
AM_RANGE(0x05, 0x05) AM_WRITE(midway_tone_generator_lo_w)
|
||||||
@ -1937,15 +1936,15 @@ MACHINE_CONFIG_END
|
|||||||
|
|
||||||
static ADDRESS_MAP_START( shuffle_io_map, AS_IO, 8, mw8080bw_state )
|
static ADDRESS_MAP_START( shuffle_io_map, AS_IO, 8, mw8080bw_state )
|
||||||
ADDRESS_MAP_GLOBAL_MASK(0xf) /* yes, 4, and no mirroring on the read handlers */
|
ADDRESS_MAP_GLOBAL_MASK(0xf) /* yes, 4, and no mirroring on the read handlers */
|
||||||
AM_RANGE(0x01, 0x01) AM_DEVREAD_LEGACY("mb14241", mb14241_shift_result_r)
|
AM_RANGE(0x01, 0x01) AM_DEVREAD("mb14241", mb14241_device, shift_result_r)
|
||||||
AM_RANGE(0x02, 0x02) AM_READ_PORT("IN0")
|
AM_RANGE(0x02, 0x02) AM_READ_PORT("IN0")
|
||||||
AM_RANGE(0x03, 0x03) AM_READ(mw8080bw_shift_result_rev_r)
|
AM_RANGE(0x03, 0x03) AM_READ(mw8080bw_shift_result_rev_r)
|
||||||
AM_RANGE(0x04, 0x04) AM_READ_PORT("IN1")
|
AM_RANGE(0x04, 0x04) AM_READ_PORT("IN1")
|
||||||
AM_RANGE(0x05, 0x05) AM_READ_PORT("IN2")
|
AM_RANGE(0x05, 0x05) AM_READ_PORT("IN2")
|
||||||
AM_RANGE(0x06, 0x06) AM_READ_PORT("IN3")
|
AM_RANGE(0x06, 0x06) AM_READ_PORT("IN3")
|
||||||
|
|
||||||
AM_RANGE(0x01, 0x01) AM_MIRROR(0x08) AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_count_w)
|
AM_RANGE(0x01, 0x01) AM_MIRROR(0x08) AM_DEVWRITE("mb14241", mb14241_device, shift_count_w)
|
||||||
AM_RANGE(0x02, 0x02) AM_MIRROR(0x08) AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_data_w)
|
AM_RANGE(0x02, 0x02) AM_MIRROR(0x08) AM_DEVWRITE("mb14241", mb14241_device, shift_data_w)
|
||||||
AM_RANGE(0x04, 0x04) AM_MIRROR(0x08) AM_WRITE(watchdog_reset_w)
|
AM_RANGE(0x04, 0x04) AM_MIRROR(0x08) AM_WRITE(watchdog_reset_w)
|
||||||
AM_RANGE(0x05, 0x05) AM_MIRROR(0x08) AM_WRITE(shuffle_audio_1_w)
|
AM_RANGE(0x05, 0x05) AM_MIRROR(0x08) AM_WRITE(shuffle_audio_1_w)
|
||||||
AM_RANGE(0x06, 0x06) AM_MIRROR(0x08) AM_WRITE(shuffle_audio_2_w)
|
AM_RANGE(0x06, 0x06) AM_MIRROR(0x08) AM_WRITE(shuffle_audio_2_w)
|
||||||
@ -2020,10 +2019,10 @@ static ADDRESS_MAP_START( dogpatch_io_map, AS_IO, 8, mw8080bw_state )
|
|||||||
AM_RANGE(0x00, 0x00) AM_MIRROR(0x04) AM_READ_PORT("IN0")
|
AM_RANGE(0x00, 0x00) AM_MIRROR(0x04) AM_READ_PORT("IN0")
|
||||||
AM_RANGE(0x01, 0x01) AM_MIRROR(0x04) AM_READ_PORT("IN1")
|
AM_RANGE(0x01, 0x01) AM_MIRROR(0x04) AM_READ_PORT("IN1")
|
||||||
AM_RANGE(0x02, 0x02) AM_MIRROR(0x04) AM_READ_PORT("IN2")
|
AM_RANGE(0x02, 0x02) AM_MIRROR(0x04) AM_READ_PORT("IN2")
|
||||||
AM_RANGE(0x03, 0x03) AM_MIRROR(0x04) AM_DEVREAD_LEGACY("mb14241", mb14241_shift_result_r)
|
AM_RANGE(0x03, 0x03) AM_MIRROR(0x04) AM_DEVREAD("mb14241", mb14241_device, shift_result_r)
|
||||||
|
|
||||||
AM_RANGE(0x01, 0x01) AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_count_w)
|
AM_RANGE(0x01, 0x01) AM_DEVWRITE("mb14241", mb14241_device, shift_count_w)
|
||||||
AM_RANGE(0x02, 0x02) AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_data_w)
|
AM_RANGE(0x02, 0x02) AM_DEVWRITE("mb14241", mb14241_device, shift_data_w)
|
||||||
AM_RANGE(0x03, 0x03) AM_WRITE(dogpatch_audio_w)
|
AM_RANGE(0x03, 0x03) AM_WRITE(dogpatch_audio_w)
|
||||||
AM_RANGE(0x04, 0x04) AM_WRITE(watchdog_reset_w)
|
AM_RANGE(0x04, 0x04) AM_WRITE(watchdog_reset_w)
|
||||||
AM_RANGE(0x05, 0x05) AM_WRITE(midway_tone_generator_lo_w)
|
AM_RANGE(0x05, 0x05) AM_WRITE(midway_tone_generator_lo_w)
|
||||||
@ -2281,10 +2280,10 @@ static ADDRESS_MAP_START( phantom2_io_map, AS_IO, 8, mw8080bw_state )
|
|||||||
AM_RANGE(0x00, 0x00) AM_MIRROR(0x04) AM_READ(mw8080bw_shift_result_rev_r)
|
AM_RANGE(0x00, 0x00) AM_MIRROR(0x04) AM_READ(mw8080bw_shift_result_rev_r)
|
||||||
AM_RANGE(0x01, 0x01) AM_MIRROR(0x04) AM_READ_PORT("IN0")
|
AM_RANGE(0x01, 0x01) AM_MIRROR(0x04) AM_READ_PORT("IN0")
|
||||||
AM_RANGE(0x02, 0x02) AM_MIRROR(0x04) AM_READ_PORT("IN1")
|
AM_RANGE(0x02, 0x02) AM_MIRROR(0x04) AM_READ_PORT("IN1")
|
||||||
AM_RANGE(0x03, 0x03) AM_MIRROR(0x04) AM_DEVREAD_LEGACY("mb14241", mb14241_shift_result_r)
|
AM_RANGE(0x03, 0x03) AM_MIRROR(0x04) AM_DEVREAD("mb14241", mb14241_device, shift_result_r)
|
||||||
|
|
||||||
AM_RANGE(0x01, 0x01) AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_count_w)
|
AM_RANGE(0x01, 0x01) AM_DEVWRITE("mb14241", mb14241_device, shift_count_w)
|
||||||
AM_RANGE(0x02, 0x02) AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_data_w)
|
AM_RANGE(0x02, 0x02) AM_DEVWRITE("mb14241", mb14241_device, shift_data_w)
|
||||||
AM_RANGE(0x04, 0x04) AM_WRITE(watchdog_reset_w)
|
AM_RANGE(0x04, 0x04) AM_WRITE(watchdog_reset_w)
|
||||||
AM_RANGE(0x05, 0x05) AM_WRITE(phantom2_audio_1_w)
|
AM_RANGE(0x05, 0x05) AM_WRITE(phantom2_audio_1_w)
|
||||||
AM_RANGE(0x06, 0x06) AM_WRITE(phantom2_audio_2_w)
|
AM_RANGE(0x06, 0x06) AM_WRITE(phantom2_audio_2_w)
|
||||||
@ -2362,7 +2361,7 @@ READ8_MEMBER(mw8080bw_state::bowler_shift_result_r)
|
|||||||
anything unusual on the schematics that would cause
|
anything unusual on the schematics that would cause
|
||||||
the bits to flip */
|
the bits to flip */
|
||||||
|
|
||||||
return ~mb14241_shift_result_r(m_mb14241, space, 0);
|
return ~m_mb14241->shift_result_r(space, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
WRITE8_MEMBER(mw8080bw_state::bowler_lights_1_w)
|
WRITE8_MEMBER(mw8080bw_state::bowler_lights_1_w)
|
||||||
@ -2410,8 +2409,8 @@ static ADDRESS_MAP_START( bowler_io_map, AS_IO, 8, mw8080bw_state )
|
|||||||
AM_RANGE(0x05, 0x05) AM_READ_PORT("IN2")
|
AM_RANGE(0x05, 0x05) AM_READ_PORT("IN2")
|
||||||
AM_RANGE(0x06, 0x06) AM_READ_PORT("IN3")
|
AM_RANGE(0x06, 0x06) AM_READ_PORT("IN3")
|
||||||
|
|
||||||
AM_RANGE(0x01, 0x01) AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_count_w)
|
AM_RANGE(0x01, 0x01) AM_DEVWRITE("mb14241", mb14241_device, shift_count_w)
|
||||||
AM_RANGE(0x02, 0x02) AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_data_w)
|
AM_RANGE(0x02, 0x02) AM_DEVWRITE("mb14241", mb14241_device, shift_data_w)
|
||||||
AM_RANGE(0x04, 0x04) AM_WRITE(watchdog_reset_w)
|
AM_RANGE(0x04, 0x04) AM_WRITE(watchdog_reset_w)
|
||||||
AM_RANGE(0x05, 0x05) AM_WRITE(bowler_audio_1_w)
|
AM_RANGE(0x05, 0x05) AM_WRITE(bowler_audio_1_w)
|
||||||
AM_RANGE(0x06, 0x06) AM_WRITE(bowler_audio_2_w)
|
AM_RANGE(0x06, 0x06) AM_WRITE(bowler_audio_2_w)
|
||||||
@ -2590,11 +2589,11 @@ static ADDRESS_MAP_START( invaders_io_map, AS_IO, 8, mw8080bw_state )
|
|||||||
AM_RANGE(0x00, 0x00) AM_MIRROR(0x04) AM_READ_PORT("IN0")
|
AM_RANGE(0x00, 0x00) AM_MIRROR(0x04) AM_READ_PORT("IN0")
|
||||||
AM_RANGE(0x01, 0x01) AM_MIRROR(0x04) AM_READ_PORT("IN1")
|
AM_RANGE(0x01, 0x01) AM_MIRROR(0x04) AM_READ_PORT("IN1")
|
||||||
AM_RANGE(0x02, 0x02) AM_MIRROR(0x04) AM_READ_PORT("IN2")
|
AM_RANGE(0x02, 0x02) AM_MIRROR(0x04) AM_READ_PORT("IN2")
|
||||||
AM_RANGE(0x03, 0x03) AM_MIRROR(0x04) AM_DEVREAD_LEGACY("mb14241", mb14241_shift_result_r)
|
AM_RANGE(0x03, 0x03) AM_MIRROR(0x04) AM_DEVREAD("mb14241", mb14241_device, shift_result_r)
|
||||||
|
|
||||||
AM_RANGE(0x02, 0x02) AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_count_w)
|
AM_RANGE(0x02, 0x02) AM_DEVWRITE("mb14241", mb14241_device, shift_count_w)
|
||||||
AM_RANGE(0x03, 0x03) AM_WRITE(invaders_audio_1_w)
|
AM_RANGE(0x03, 0x03) AM_WRITE(invaders_audio_1_w)
|
||||||
AM_RANGE(0x04, 0x04) AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_data_w)
|
AM_RANGE(0x04, 0x04) AM_DEVWRITE("mb14241", mb14241_device, shift_data_w)
|
||||||
AM_RANGE(0x05, 0x05) AM_WRITE(invaders_audio_2_w)
|
AM_RANGE(0x05, 0x05) AM_WRITE(invaders_audio_2_w)
|
||||||
AM_RANGE(0x06, 0x06) AM_WRITE(watchdog_reset_w)
|
AM_RANGE(0x06, 0x06) AM_WRITE(watchdog_reset_w)
|
||||||
ADDRESS_MAP_END
|
ADDRESS_MAP_END
|
||||||
@ -2721,10 +2720,10 @@ static ADDRESS_MAP_START( blueshrk_io_map, AS_IO, 8, mw8080bw_state )
|
|||||||
AM_RANGE(0x00, 0x00) AM_MIRROR(0x04) AM_READ(mw8080bw_shift_result_rev_r)
|
AM_RANGE(0x00, 0x00) AM_MIRROR(0x04) AM_READ(mw8080bw_shift_result_rev_r)
|
||||||
AM_RANGE(0x01, 0x01) AM_MIRROR(0x04) AM_READ_PORT("IN0")
|
AM_RANGE(0x01, 0x01) AM_MIRROR(0x04) AM_READ_PORT("IN0")
|
||||||
AM_RANGE(0x02, 0x02) AM_MIRROR(0x04) AM_READ_PORT("IN1")
|
AM_RANGE(0x02, 0x02) AM_MIRROR(0x04) AM_READ_PORT("IN1")
|
||||||
AM_RANGE(0x03, 0x03) AM_MIRROR(0x04) AM_DEVREAD_LEGACY("mb14241", mb14241_shift_result_r)
|
AM_RANGE(0x03, 0x03) AM_MIRROR(0x04) AM_DEVREAD("mb14241", mb14241_device, shift_result_r)
|
||||||
|
|
||||||
AM_RANGE(0x01, 0x01) AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_count_w)
|
AM_RANGE(0x01, 0x01) AM_DEVWRITE("mb14241", mb14241_device, shift_count_w)
|
||||||
AM_RANGE(0x02, 0x02) AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_data_w)
|
AM_RANGE(0x02, 0x02) AM_DEVWRITE("mb14241", mb14241_device, shift_data_w)
|
||||||
AM_RANGE(0x03, 0x03) AM_WRITE(blueshrk_audio_w)
|
AM_RANGE(0x03, 0x03) AM_WRITE(blueshrk_audio_w)
|
||||||
AM_RANGE(0x04, 0x04) AM_WRITE(watchdog_reset_w)
|
AM_RANGE(0x04, 0x04) AM_WRITE(watchdog_reset_w)
|
||||||
ADDRESS_MAP_END
|
ADDRESS_MAP_END
|
||||||
@ -2801,12 +2800,12 @@ static ADDRESS_MAP_START( invad2ct_io_map, AS_IO, 8, mw8080bw_state )
|
|||||||
AM_RANGE(0x00, 0x00) AM_MIRROR(0x04) AM_READ_PORT("IN0")
|
AM_RANGE(0x00, 0x00) AM_MIRROR(0x04) AM_READ_PORT("IN0")
|
||||||
AM_RANGE(0x01, 0x01) AM_MIRROR(0x04) AM_READ_PORT("IN1")
|
AM_RANGE(0x01, 0x01) AM_MIRROR(0x04) AM_READ_PORT("IN1")
|
||||||
AM_RANGE(0x02, 0x02) AM_MIRROR(0x04) AM_READ_PORT("IN2")
|
AM_RANGE(0x02, 0x02) AM_MIRROR(0x04) AM_READ_PORT("IN2")
|
||||||
AM_RANGE(0x03, 0x03) AM_MIRROR(0x04) AM_DEVREAD_LEGACY("mb14241", mb14241_shift_result_r)
|
AM_RANGE(0x03, 0x03) AM_MIRROR(0x04) AM_DEVREAD("mb14241", mb14241_device, shift_result_r)
|
||||||
|
|
||||||
AM_RANGE(0x01, 0x01) AM_WRITE(invad2ct_audio_3_w)
|
AM_RANGE(0x01, 0x01) AM_WRITE(invad2ct_audio_3_w)
|
||||||
AM_RANGE(0x02, 0x02) AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_count_w)
|
AM_RANGE(0x02, 0x02) AM_DEVWRITE("mb14241", mb14241_device, shift_count_w)
|
||||||
AM_RANGE(0x03, 0x03) AM_WRITE(invad2ct_audio_1_w)
|
AM_RANGE(0x03, 0x03) AM_WRITE(invad2ct_audio_1_w)
|
||||||
AM_RANGE(0x04, 0x04) AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_data_w)
|
AM_RANGE(0x04, 0x04) AM_DEVWRITE("mb14241", mb14241_device, shift_data_w)
|
||||||
AM_RANGE(0x05, 0x05) AM_WRITE(invad2ct_audio_2_w)
|
AM_RANGE(0x05, 0x05) AM_WRITE(invad2ct_audio_2_w)
|
||||||
AM_RANGE(0x06, 0x06) AM_WRITE(watchdog_reset_w)
|
AM_RANGE(0x06, 0x06) AM_WRITE(watchdog_reset_w)
|
||||||
AM_RANGE(0x07, 0x07) AM_WRITE(invad2ct_audio_4_w)
|
AM_RANGE(0x07, 0x07) AM_WRITE(invad2ct_audio_4_w)
|
||||||
|
@ -287,8 +287,12 @@ class tempest_state : public driver_device
|
|||||||
public:
|
public:
|
||||||
tempest_state(const machine_config &mconfig, device_type type, const char *tag)
|
tempest_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||||
: driver_device(mconfig, type, tag),
|
: driver_device(mconfig, type, tag),
|
||||||
m_maincpu(*this, "maincpu") { }
|
m_maincpu(*this, "maincpu"),
|
||||||
|
m_mathbox(*this, "mathbox") { }
|
||||||
|
|
||||||
|
required_device<cpu_device> m_maincpu;
|
||||||
|
required_device<mathbox_device> m_mathbox;
|
||||||
|
|
||||||
UINT8 m_player_select;
|
UINT8 m_player_select;
|
||||||
DECLARE_WRITE8_MEMBER(wdclr_w);
|
DECLARE_WRITE8_MEMBER(wdclr_w);
|
||||||
DECLARE_WRITE8_MEMBER(tempest_led_w);
|
DECLARE_WRITE8_MEMBER(tempest_led_w);
|
||||||
@ -299,7 +303,6 @@ public:
|
|||||||
DECLARE_READ8_MEMBER(input_port_1_bit_r);
|
DECLARE_READ8_MEMBER(input_port_1_bit_r);
|
||||||
DECLARE_READ8_MEMBER(input_port_2_bit_r);
|
DECLARE_READ8_MEMBER(input_port_2_bit_r);
|
||||||
virtual void machine_start();
|
virtual void machine_start();
|
||||||
required_device<cpu_device> m_maincpu;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -412,11 +415,11 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, tempest_state )
|
|||||||
AM_RANGE(0x5000, 0x5000) AM_WRITE(wdclr_w)
|
AM_RANGE(0x5000, 0x5000) AM_WRITE(wdclr_w)
|
||||||
AM_RANGE(0x5800, 0x5800) AM_WRITE_LEGACY(avgdvg_reset_w)
|
AM_RANGE(0x5800, 0x5800) AM_WRITE_LEGACY(avgdvg_reset_w)
|
||||||
AM_RANGE(0x6000, 0x603f) AM_DEVWRITE("earom", atari_vg_earom_device, write)
|
AM_RANGE(0x6000, 0x603f) AM_DEVWRITE("earom", atari_vg_earom_device, write)
|
||||||
AM_RANGE(0x6040, 0x6040) AM_DEVREAD_LEGACY("mathbox", mathbox_status_r) AM_DEVWRITE("earom", atari_vg_earom_device, ctrl_w)
|
AM_RANGE(0x6040, 0x6040) AM_DEVREAD("mathbox", mathbox_device, status_r) AM_DEVWRITE("earom", atari_vg_earom_device, ctrl_w)
|
||||||
AM_RANGE(0x6050, 0x6050) AM_DEVREAD("earom", atari_vg_earom_device, read)
|
AM_RANGE(0x6050, 0x6050) AM_DEVREAD("earom", atari_vg_earom_device, read)
|
||||||
AM_RANGE(0x6060, 0x6060) AM_DEVREAD_LEGACY("mathbox", mathbox_lo_r)
|
AM_RANGE(0x6060, 0x6060) AM_DEVREAD("mathbox", mathbox_device, lo_r)
|
||||||
AM_RANGE(0x6070, 0x6070) AM_DEVREAD_LEGACY("mathbox", mathbox_hi_r)
|
AM_RANGE(0x6070, 0x6070) AM_DEVREAD("mathbox", mathbox_device, hi_r)
|
||||||
AM_RANGE(0x6080, 0x609f) AM_DEVWRITE_LEGACY("mathbox", mathbox_go_w)
|
AM_RANGE(0x6080, 0x609f) AM_DEVWRITE("mathbox", mathbox_device, go_w)
|
||||||
AM_RANGE(0x60c0, 0x60cf) AM_DEVREADWRITE("pokey1", pokey_device, read, write)
|
AM_RANGE(0x60c0, 0x60cf) AM_DEVREADWRITE("pokey1", pokey_device, read, write)
|
||||||
AM_RANGE(0x60d0, 0x60df) AM_DEVREADWRITE("pokey2", pokey_device, read, write)
|
AM_RANGE(0x60d0, 0x60df) AM_DEVREADWRITE("pokey2", pokey_device, read, write)
|
||||||
AM_RANGE(0x60e0, 0x60e0) AM_WRITE(tempest_led_w)
|
AM_RANGE(0x60e0, 0x60e0) AM_WRITE(tempest_led_w)
|
||||||
|
@ -4,6 +4,8 @@
|
|||||||
|
|
||||||
*************************************************************************/
|
*************************************************************************/
|
||||||
|
|
||||||
|
#include "audio/redbaron.h"
|
||||||
|
#include "machine/mathbox.h"
|
||||||
#include "sound/discrete.h"
|
#include "sound/discrete.h"
|
||||||
|
|
||||||
#define BZONE_MASTER_CLOCK (XTAL_12_096MHz)
|
#define BZONE_MASTER_CLOCK (XTAL_12_096MHz)
|
||||||
@ -14,10 +16,16 @@ class bzone_state : public driver_device
|
|||||||
public:
|
public:
|
||||||
bzone_state(const machine_config &mconfig, device_type type, const char *tag)
|
bzone_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||||
: driver_device(mconfig, type, tag),
|
: driver_device(mconfig, type, tag),
|
||||||
m_discrete(*this, "discrete") ,
|
m_maincpu(*this, "maincpu"),
|
||||||
m_maincpu(*this, "maincpu") { }
|
m_mathbox(*this, "mathbox"),
|
||||||
|
m_discrete(*this, "discrete"),
|
||||||
|
m_redbaronsound(*this, "custom")
|
||||||
|
{ }
|
||||||
|
|
||||||
|
required_device<cpu_device> m_maincpu;
|
||||||
|
required_device<mathbox_device> m_mathbox;
|
||||||
optional_device<discrete_device> m_discrete;
|
optional_device<discrete_device> m_discrete;
|
||||||
|
optional_device<redbaron_sound_device> m_redbaronsound;
|
||||||
|
|
||||||
UINT8 m_analog_data;
|
UINT8 m_analog_data;
|
||||||
UINT8 m_rb_input_select;
|
UINT8 m_rb_input_select;
|
||||||
@ -32,7 +40,6 @@ public:
|
|||||||
DECLARE_MACHINE_START(redbaron);
|
DECLARE_MACHINE_START(redbaron);
|
||||||
INTERRUPT_GEN_MEMBER(bzone_interrupt);
|
INTERRUPT_GEN_MEMBER(bzone_interrupt);
|
||||||
DECLARE_WRITE8_MEMBER(bzone_sounds_w);
|
DECLARE_WRITE8_MEMBER(bzone_sounds_w);
|
||||||
required_device<cpu_device> m_maincpu;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -40,52 +47,5 @@ public:
|
|||||||
MACHINE_CONFIG_EXTERN( bzone_audio );
|
MACHINE_CONFIG_EXTERN( bzone_audio );
|
||||||
|
|
||||||
|
|
||||||
/*----------- defined in audio/redbaron.c -----------*/
|
|
||||||
|
|
||||||
//**************************************************************************
|
|
||||||
// TYPE DEFINITIONS
|
|
||||||
//**************************************************************************
|
|
||||||
|
|
||||||
// ======================> redbaron_sound_device
|
|
||||||
|
|
||||||
class redbaron_sound_device : public device_t,
|
|
||||||
public device_sound_interface
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
redbaron_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
|
||||||
~redbaron_sound_device() { }
|
|
||||||
|
|
||||||
protected:
|
|
||||||
// device-level overrides
|
|
||||||
virtual void device_start();
|
|
||||||
|
|
||||||
// sound stream update overrides
|
|
||||||
virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples);
|
|
||||||
|
|
||||||
public:
|
|
||||||
DECLARE_WRITE8_MEMBER( redbaron_sounds_w );
|
|
||||||
|
|
||||||
private:
|
|
||||||
INT16 *m_vol_lookup;
|
|
||||||
|
|
||||||
INT16 m_vol_crash[16];
|
|
||||||
|
|
||||||
sound_stream *m_channel;
|
|
||||||
int m_latch;
|
|
||||||
int m_poly_counter;
|
|
||||||
int m_poly_shift;
|
|
||||||
|
|
||||||
int m_filter_counter;
|
|
||||||
|
|
||||||
int m_crash_amp;
|
|
||||||
int m_shot_amp;
|
|
||||||
int m_shot_amp_counter;
|
|
||||||
|
|
||||||
int m_squeal_amp;
|
|
||||||
int m_squeal_amp_counter;
|
|
||||||
int m_squeal_off_counter;
|
|
||||||
int m_squeal_on_counter;
|
|
||||||
int m_squeal_out;
|
|
||||||
};
|
|
||||||
|
|
||||||
extern const device_type REDBARON;
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
|
#include "machine/mb14241.h"
|
||||||
|
|
||||||
class fgoal_state : public driver_device
|
class fgoal_state : public driver_device
|
||||||
{
|
{
|
||||||
@ -11,7 +11,9 @@ public:
|
|||||||
fgoal_state(const machine_config &mconfig, device_type type, const char *tag)
|
fgoal_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||||
: driver_device(mconfig, type, tag),
|
: driver_device(mconfig, type, tag),
|
||||||
m_video_ram(*this, "video_ram"),
|
m_video_ram(*this, "video_ram"),
|
||||||
m_maincpu(*this, "maincpu"){ }
|
m_maincpu(*this, "maincpu"),
|
||||||
|
m_mb14241(*this, "mb14241")
|
||||||
|
{ }
|
||||||
|
|
||||||
/* memory pointers */
|
/* memory pointers */
|
||||||
required_shared_ptr<UINT8> m_video_ram;
|
required_shared_ptr<UINT8> m_video_ram;
|
||||||
@ -31,7 +33,7 @@ public:
|
|||||||
|
|
||||||
/* devices */
|
/* devices */
|
||||||
required_device<cpu_device> m_maincpu;
|
required_device<cpu_device> m_maincpu;
|
||||||
device_t *m_mb14241;
|
required_device<mb14241_device> m_mb14241;
|
||||||
DECLARE_READ8_MEMBER(fgoal_analog_r);
|
DECLARE_READ8_MEMBER(fgoal_analog_r);
|
||||||
DECLARE_READ8_MEMBER(fgoal_nmi_reset_r);
|
DECLARE_READ8_MEMBER(fgoal_nmi_reset_r);
|
||||||
DECLARE_READ8_MEMBER(fgoal_irq_reset_r);
|
DECLARE_READ8_MEMBER(fgoal_irq_reset_r);
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
|
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
|
#include "machine/mb14241.h"
|
||||||
#include "sound/discrete.h"
|
#include "sound/discrete.h"
|
||||||
#include "sound/sn76477.h"
|
#include "sound/sn76477.h"
|
||||||
#include "sound/samples.h"
|
#include "sound/samples.h"
|
||||||
@ -37,6 +38,7 @@ public:
|
|||||||
mw8080bw_state(const machine_config &mconfig, device_type type, const char *tag)
|
mw8080bw_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||||
: driver_device(mconfig, type, tag),
|
: driver_device(mconfig, type, tag),
|
||||||
m_maincpu(*this,"maincpu"),
|
m_maincpu(*this,"maincpu"),
|
||||||
|
m_mb14241(*this,"mb14241"),
|
||||||
m_main_ram(*this, "main_ram"),
|
m_main_ram(*this, "main_ram"),
|
||||||
m_colorram(*this, "colorram"),
|
m_colorram(*this, "colorram"),
|
||||||
m_discrete(*this, "discrete"),
|
m_discrete(*this, "discrete"),
|
||||||
@ -47,6 +49,7 @@ public:
|
|||||||
|
|
||||||
/* device/memory pointers */
|
/* device/memory pointers */
|
||||||
required_device<cpu_device> m_maincpu;
|
required_device<cpu_device> m_maincpu;
|
||||||
|
optional_device<mb14241_device> m_mb14241;
|
||||||
required_shared_ptr<UINT8> m_main_ram;
|
required_shared_ptr<UINT8> m_main_ram;
|
||||||
optional_shared_ptr<UINT8> m_colorram;
|
optional_shared_ptr<UINT8> m_colorram;
|
||||||
optional_device<discrete_device> m_discrete;
|
optional_device<discrete_device> m_discrete;
|
||||||
@ -75,7 +78,6 @@ public:
|
|||||||
emu_timer *m_interrupt_timer;
|
emu_timer *m_interrupt_timer;
|
||||||
|
|
||||||
/* other devices */
|
/* other devices */
|
||||||
device_t *m_mb14241;
|
|
||||||
optional_device<samples_device> m_samples;
|
optional_device<samples_device> m_samples;
|
||||||
optional_device<samples_device> m_samples1;
|
optional_device<samples_device> m_samples1;
|
||||||
optional_device<samples_device> m_samples2;
|
optional_device<samples_device> m_samples2;
|
||||||
|
@ -8,62 +8,74 @@
|
|||||||
#include "emu.h"
|
#include "emu.h"
|
||||||
#include "mathbox.h"
|
#include "mathbox.h"
|
||||||
|
|
||||||
#define REG0 mb->reg [0x00]
|
|
||||||
#define REG1 mb->reg [0x01]
|
#define REG0 m_reg [0x00]
|
||||||
#define REG2 mb->reg [0x02]
|
#define REG1 m_reg [0x01]
|
||||||
#define REG3 mb->reg [0x03]
|
#define REG2 m_reg [0x02]
|
||||||
#define REG4 mb->reg [0x04]
|
#define REG3 m_reg [0x03]
|
||||||
#define REG5 mb->reg [0x05]
|
#define REG4 m_reg [0x04]
|
||||||
#define REG6 mb->reg [0x06]
|
#define REG5 m_reg [0x05]
|
||||||
#define REG7 mb->reg [0x07]
|
#define REG6 m_reg [0x06]
|
||||||
#define REG8 mb->reg [0x08]
|
#define REG7 m_reg [0x07]
|
||||||
#define REG9 mb->reg [0x09]
|
#define REG8 m_reg [0x08]
|
||||||
#define REGa mb->reg [0x0a]
|
#define REG9 m_reg [0x09]
|
||||||
#define REGb mb->reg [0x0b]
|
#define REGa m_reg [0x0a]
|
||||||
#define REGc mb->reg [0x0c]
|
#define REGb m_reg [0x0b]
|
||||||
#define REGd mb->reg [0x0d]
|
#define REGc m_reg [0x0c]
|
||||||
#define REGe mb->reg [0x0e]
|
#define REGd m_reg [0x0d]
|
||||||
#define REGf mb->reg [0x0f]
|
#define REGe m_reg [0x0e]
|
||||||
|
#define REGf m_reg [0x0f]
|
||||||
|
|
||||||
|
|
||||||
#define MB_TEST 0
|
#define MB_TEST 0
|
||||||
#define LOG(x) do { if (MB_TEST) logerror x; } while (0)
|
#define LOG(x) do { if (MB_TEST) logerror x; } while (0)
|
||||||
|
|
||||||
struct mathbox_state
|
|
||||||
|
//-------------------------------------------------
|
||||||
|
// mathbox_device - constructor
|
||||||
|
//-------------------------------------------------
|
||||||
|
|
||||||
|
const device_type MATHBOX = &device_creator<mathbox_device>;
|
||||||
|
|
||||||
|
mathbox_device::mathbox_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
|
||||||
|
: device_t(mconfig, MATHBOX, "MATHBOX", tag, owner, clock)
|
||||||
{
|
{
|
||||||
device_t *device;
|
}
|
||||||
/* math box scratch registers */
|
|
||||||
INT16 reg[16];
|
|
||||||
|
|
||||||
/* math box result */
|
//-------------------------------------------------
|
||||||
INT16 result;
|
// device_config_complete - perform any
|
||||||
};
|
// operations now that the configuration is
|
||||||
|
// complete
|
||||||
|
//-------------------------------------------------
|
||||||
|
|
||||||
|
void mathbox_device::device_config_complete()
|
||||||
|
|
||||||
/***************************************************************************
|
|
||||||
INLINE FUNCTIONS
|
|
||||||
***************************************************************************/
|
|
||||||
|
|
||||||
/*-------------------------------------------------
|
|
||||||
get_safe_token - convert a device's token
|
|
||||||
into a mathbox_state
|
|
||||||
-------------------------------------------------*/
|
|
||||||
|
|
||||||
INLINE mathbox_state *get_safe_token(device_t *device)
|
|
||||||
{
|
{
|
||||||
assert(device != NULL);
|
}
|
||||||
assert(device->type() == MATHBOX);
|
|
||||||
return (mathbox_state *)downcast<mathbox_device *>(device)->token();
|
//-------------------------------------------------
|
||||||
|
// device_start - device-specific startup
|
||||||
|
//-------------------------------------------------
|
||||||
|
|
||||||
|
void mathbox_device::device_start()
|
||||||
|
{
|
||||||
|
/* register for save states */
|
||||||
|
save_item(NAME(m_result));
|
||||||
|
save_item(NAME(m_reg));
|
||||||
|
}
|
||||||
|
|
||||||
|
//-------------------------------------------------
|
||||||
|
// device_reset - device-specific reset
|
||||||
|
//-------------------------------------------------
|
||||||
|
|
||||||
|
void mathbox_device::device_reset()
|
||||||
|
{
|
||||||
|
m_result = 0;
|
||||||
|
memset(m_reg, 0, sizeof(INT16)*16);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
WRITE8_MEMBER( mathbox_device::go_w )
|
||||||
|
|
||||||
WRITE8_DEVICE_HANDLER( mathbox_go_w )
|
|
||||||
{
|
{
|
||||||
mathbox_state *mb = get_safe_token(device);
|
|
||||||
|
|
||||||
INT32 mb_temp; /* temp 32-bit multiply results */
|
INT32 mb_temp; /* temp 32-bit multiply results */
|
||||||
INT16 mb_q; /* temp used in division */
|
INT16 mb_q; /* temp used in division */
|
||||||
int msb;
|
int msb;
|
||||||
@ -72,37 +84,37 @@ WRITE8_DEVICE_HANDLER( mathbox_go_w )
|
|||||||
|
|
||||||
switch (offset)
|
switch (offset)
|
||||||
{
|
{
|
||||||
case 0x00: mb->result = REG0 = (REG0 & 0xff00) | data; break;
|
case 0x00: m_result = REG0 = (REG0 & 0xff00) | data; break;
|
||||||
case 0x01: mb->result = REG0 = (REG0 & 0x00ff) | (data << 8); break;
|
case 0x01: m_result = REG0 = (REG0 & 0x00ff) | (data << 8); break;
|
||||||
case 0x02: mb->result = REG1 = (REG1 & 0xff00) | data; break;
|
case 0x02: m_result = REG1 = (REG1 & 0xff00) | data; break;
|
||||||
case 0x03: mb->result = REG1 = (REG1 & 0x00ff) | (data << 8); break;
|
case 0x03: m_result = REG1 = (REG1 & 0x00ff) | (data << 8); break;
|
||||||
case 0x04: mb->result = REG2 = (REG2 & 0xff00) | data; break;
|
case 0x04: m_result = REG2 = (REG2 & 0xff00) | data; break;
|
||||||
case 0x05: mb->result = REG2 = (REG2 & 0x00ff) | (data << 8); break;
|
case 0x05: m_result = REG2 = (REG2 & 0x00ff) | (data << 8); break;
|
||||||
case 0x06: mb->result = REG3 = (REG3 & 0xff00) | data; break;
|
case 0x06: m_result = REG3 = (REG3 & 0xff00) | data; break;
|
||||||
case 0x07: mb->result = REG3 = (REG3 & 0x00ff) | (data << 8); break;
|
case 0x07: m_result = REG3 = (REG3 & 0x00ff) | (data << 8); break;
|
||||||
case 0x08: mb->result = REG4 = (REG4 & 0xff00) | data; break;
|
case 0x08: m_result = REG4 = (REG4 & 0xff00) | data; break;
|
||||||
case 0x09: mb->result = REG4 = (REG4 & 0x00ff) | (data << 8); break;
|
case 0x09: m_result = REG4 = (REG4 & 0x00ff) | (data << 8); break;
|
||||||
|
|
||||||
case 0x0a: mb->result = REG5 = (REG5 & 0xff00) | data; break;
|
case 0x0a: m_result = REG5 = (REG5 & 0xff00) | data; break;
|
||||||
/* note: no function loads low part of REG5 without performing a computation */
|
/* note: no function loads low part of REG5 without performing a computation */
|
||||||
|
|
||||||
case 0x0c: mb->result = REG6 = data; break;
|
case 0x0c: m_result = REG6 = data; break;
|
||||||
/* note: no function loads high part of REG6 */
|
/* note: no function loads high part of REG6 */
|
||||||
|
|
||||||
case 0x15: mb->result = REG7 = (REG7 & 0xff00) | data; break;
|
case 0x15: m_result = REG7 = (REG7 & 0xff00) | data; break;
|
||||||
case 0x16: mb->result = REG7 = (REG7 & 0x00ff) | (data << 8); break;
|
case 0x16: m_result = REG7 = (REG7 & 0x00ff) | (data << 8); break;
|
||||||
|
|
||||||
case 0x1a: mb->result = REG8 = (REG8 & 0xff00) | data; break;
|
case 0x1a: m_result = REG8 = (REG8 & 0xff00) | data; break;
|
||||||
case 0x1b: mb->result = REG8 = (REG8 & 0x00ff) | (data << 8); break;
|
case 0x1b: m_result = REG8 = (REG8 & 0x00ff) | (data << 8); break;
|
||||||
|
|
||||||
case 0x0d: mb->result = REGa = (REGa & 0xff00) | data; break;
|
case 0x0d: m_result = REGa = (REGa & 0xff00) | data; break;
|
||||||
case 0x0e: mb->result = REGa = (REGa & 0x00ff) | (data << 8); break;
|
case 0x0e: m_result = REGa = (REGa & 0x00ff) | (data << 8); break;
|
||||||
case 0x0f: mb->result = REGb = (REGb & 0xff00) | data; break;
|
case 0x0f: m_result = REGb = (REGb & 0xff00) | data; break;
|
||||||
case 0x10: mb->result = REGb = (REGb & 0x00ff) | (data << 8); break;
|
case 0x10: m_result = REGb = (REGb & 0x00ff) | (data << 8); break;
|
||||||
|
|
||||||
case 0x17: mb->result = REG7; break;
|
case 0x17: m_result = REG7; break;
|
||||||
case 0x19: mb->result = REG8; break;
|
case 0x19: m_result = REG8; break;
|
||||||
case 0x18: mb->result = REG9; break;
|
case 0x18: m_result = REG9; break;
|
||||||
|
|
||||||
case 0x0b:
|
case 0x0b:
|
||||||
|
|
||||||
@ -129,12 +141,12 @@ WRITE8_DEVICE_HANDLER( mathbox_go_w )
|
|||||||
REGc = (mb_q >> 1) & 0x7fff;
|
REGc = (mb_q >> 1) & 0x7fff;
|
||||||
mb_q = REGc + REGe;
|
mb_q = REGc + REGe;
|
||||||
if (mb_q < 0)
|
if (mb_q < 0)
|
||||||
REG7++;
|
REG7++;
|
||||||
|
|
||||||
mb->result = REG7;
|
m_result = REG7;
|
||||||
|
|
||||||
if (REGf < 0)
|
if (REGf < 0)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
REG7 += REG2;
|
REG7 += REG2;
|
||||||
|
|
||||||
@ -157,13 +169,13 @@ WRITE8_DEVICE_HANDLER( mathbox_go_w )
|
|||||||
REGc = (mb_q >> 1) & 0x7fff;
|
REGc = (mb_q >> 1) & 0x7fff;
|
||||||
REG9 += REGc;
|
REG9 += REGc;
|
||||||
if (REG9 < 0)
|
if (REG9 < 0)
|
||||||
REG8++;
|
REG8++;
|
||||||
REG9 <<= 1; /* why? only to get the desired load address? */
|
REG9 <<= 1; /* why? only to get the desired load address? */
|
||||||
|
|
||||||
mb->result = REG8;
|
m_result = REG8;
|
||||||
|
|
||||||
if (REGf < 0)
|
if (REGf < 0)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
REG8 += REG3;
|
REG8 += REG3;
|
||||||
|
|
||||||
@ -186,43 +198,43 @@ WRITE8_DEVICE_HANDLER( mathbox_go_w )
|
|||||||
REGe = REG7 ^ mb_q; /* save sign of result */
|
REGe = REG7 ^ mb_q; /* save sign of result */
|
||||||
REGd = mb_q;
|
REGd = mb_q;
|
||||||
if (mb_q >= 0)
|
if (mb_q >= 0)
|
||||||
mb_q = REGc;
|
mb_q = REGc;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
REGd = - mb_q - 1;
|
REGd = - mb_q - 1;
|
||||||
mb_q = - REGc - 1;
|
mb_q = - REGc - 1;
|
||||||
if ((mb_q < 0) && ((mb_q + 1) < 0))
|
if ((mb_q < 0) && ((mb_q + 1) < 0))
|
||||||
REGd++;
|
REGd++;
|
||||||
mb_q++;
|
mb_q++;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* step 0c9: */
|
/* step 0c9: */
|
||||||
/* REGc = abs (REG7) */
|
/* REGc = abs (REG7) */
|
||||||
if (REG7 >= 0)
|
if (REG7 >= 0)
|
||||||
REGc = REG7;
|
REGc = REG7;
|
||||||
else
|
else
|
||||||
REGc = -REG7;
|
REGc = -REG7;
|
||||||
|
|
||||||
REGf = REG6; /* step counter */
|
REGf = REG6; /* step counter */
|
||||||
|
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
REGd -= REGc;
|
REGd -= REGc;
|
||||||
msb = ((mb_q & 0x8000) != 0);
|
msb = ((mb_q & 0x8000) != 0);
|
||||||
mb_q <<= 1;
|
mb_q <<= 1;
|
||||||
if (REGd >= 0)
|
if (REGd >= 0)
|
||||||
mb_q++;
|
mb_q++;
|
||||||
else
|
else
|
||||||
REGd += REGc;
|
REGd += REGc;
|
||||||
REGd <<= 1;
|
REGd <<= 1;
|
||||||
REGd += msb;
|
REGd += msb;
|
||||||
}
|
}
|
||||||
while (--REGf >= 0);
|
while (--REGf >= 0);
|
||||||
|
|
||||||
if (REGe >= 0)
|
if (REGe >= 0)
|
||||||
mb->result = mb_q;
|
m_result = mb_q;
|
||||||
else
|
else
|
||||||
mb->result = - mb_q;
|
m_result = - mb_q;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 0x11:
|
case 0x11:
|
||||||
@ -235,17 +247,17 @@ WRITE8_DEVICE_HANDLER( mathbox_go_w )
|
|||||||
/* window test? */
|
/* window test? */
|
||||||
REG5 = (REG5 & 0x00ff) | (data << 8);
|
REG5 = (REG5 & 0x00ff) | (data << 8);
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
REGe = (REG4 + REG7) >> 1;
|
REGe = (REG4 + REG7) >> 1;
|
||||||
REGf = (REG5 + REG8) >> 1;
|
REGf = (REG5 + REG8) >> 1;
|
||||||
if ((REGb < REGe) && (REGf < REGe) && ((REGe + REGf) >= 0))
|
if ((REGb < REGe) && (REGf < REGe) && ((REGe + REGf) >= 0))
|
||||||
{ REG7 = REGe; REG8 = REGf; }
|
{ REG7 = REGe; REG8 = REGf; }
|
||||||
else
|
else
|
||||||
{ REG4 = REGe; REG5 = REGf; }
|
{ REG4 = REGe; REG5 = REGf; }
|
||||||
}
|
}
|
||||||
while (--REG6 >= 0);
|
while (--REG6 >= 0);
|
||||||
|
|
||||||
mb->result = REG8;
|
m_result = REG8;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 0x1d:
|
case 0x1d:
|
||||||
@ -253,11 +265,11 @@ WRITE8_DEVICE_HANDLER( mathbox_go_w )
|
|||||||
|
|
||||||
REG2 -= REG0;
|
REG2 -= REG0;
|
||||||
if (REG2 < 0)
|
if (REG2 < 0)
|
||||||
REG2 = -REG2;
|
REG2 = -REG2;
|
||||||
|
|
||||||
REG3 -= REG1;
|
REG3 -= REG1;
|
||||||
if (REG3 < 0)
|
if (REG3 < 0)
|
||||||
REG3 = -REG3;
|
REG3 = -REG3;
|
||||||
|
|
||||||
/* fall into command 1e */
|
/* fall into command 1e */
|
||||||
|
|
||||||
@ -266,11 +278,11 @@ WRITE8_DEVICE_HANDLER( mathbox_go_w )
|
|||||||
if (REG3 >= REG2)
|
if (REG3 >= REG2)
|
||||||
{ REGc = REG2; REGd = REG3; }
|
{ REGc = REG2; REGd = REG3; }
|
||||||
else
|
else
|
||||||
{ REGd = REG2; REGc = REG3; }
|
{ REGd = REG2; REGc = REG3; }
|
||||||
REGc >>= 2;
|
REGc >>= 2;
|
||||||
REGd += REGc;
|
REGd += REGc;
|
||||||
REGc >>= 1;
|
REGc >>= 1;
|
||||||
mb->result = REGd = (REGc + REGd);
|
m_result = REGd = (REGc + REGd);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 0x1f:
|
case 0x1f:
|
||||||
@ -279,96 +291,20 @@ WRITE8_DEVICE_HANDLER( mathbox_go_w )
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
LOG((" result %04x\n", mb->result & 0xffff));
|
LOG((" result %04x\n", m_result & 0xffff));
|
||||||
}
|
}
|
||||||
|
|
||||||
READ8_DEVICE_HANDLER( mathbox_status_r )
|
READ8_MEMBER( mathbox_device::status_r )
|
||||||
{
|
{
|
||||||
return 0x00; /* always done! */
|
return 0x00; /* always done! */
|
||||||
}
|
}
|
||||||
|
|
||||||
READ8_DEVICE_HANDLER( mathbox_lo_r )
|
READ8_MEMBER( mathbox_device::lo_r )
|
||||||
{
|
{
|
||||||
mathbox_state *mb = get_safe_token(device);
|
return m_result & 0xff;
|
||||||
|
|
||||||
return mb->result & 0xff;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
READ8_DEVICE_HANDLER( mathbox_hi_r )
|
READ8_MEMBER( mathbox_device::hi_r )
|
||||||
{
|
{
|
||||||
mathbox_state *mb = get_safe_token(device);
|
return (m_result >> 8) & 0xff;
|
||||||
|
|
||||||
return (mb->result >> 8) & 0xff;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/***************************************************************************
|
|
||||||
DEVICE INTERFACE
|
|
||||||
***************************************************************************/
|
|
||||||
|
|
||||||
/*-------------------------------------------------
|
|
||||||
mathbox_portb_r - return port B output
|
|
||||||
value
|
|
||||||
-------------------------------------------------*/
|
|
||||||
|
|
||||||
static DEVICE_START( mathbox )
|
|
||||||
{
|
|
||||||
mathbox_state *mb = get_safe_token(device);
|
|
||||||
|
|
||||||
/* validate arguments */
|
|
||||||
assert(device != NULL);
|
|
||||||
|
|
||||||
/* set static values */
|
|
||||||
mb->device = device;
|
|
||||||
|
|
||||||
/* register for save states */
|
|
||||||
device->save_item(NAME(mb->result));
|
|
||||||
device->save_item(NAME(mb->reg));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static DEVICE_RESET( mathbox )
|
|
||||||
{
|
|
||||||
mathbox_state *mb = get_safe_token(device);
|
|
||||||
|
|
||||||
mb->result = 0;
|
|
||||||
memset(mb->reg, 0, sizeof(INT16)*16);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
const device_type MATHBOX = &device_creator<mathbox_device>;
|
|
||||||
|
|
||||||
mathbox_device::mathbox_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
|
|
||||||
: device_t(mconfig, MATHBOX, "MATHBOX", tag, owner, clock)
|
|
||||||
{
|
|
||||||
m_token = global_alloc_clear(mathbox_state);
|
|
||||||
}
|
|
||||||
|
|
||||||
//-------------------------------------------------
|
|
||||||
// device_config_complete - perform any
|
|
||||||
// operations now that the configuration is
|
|
||||||
// complete
|
|
||||||
//-------------------------------------------------
|
|
||||||
|
|
||||||
void mathbox_device::device_config_complete()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
//-------------------------------------------------
|
|
||||||
// device_start - device-specific startup
|
|
||||||
//-------------------------------------------------
|
|
||||||
|
|
||||||
void mathbox_device::device_start()
|
|
||||||
{
|
|
||||||
DEVICE_START_NAME( mathbox )(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
//-------------------------------------------------
|
|
||||||
// device_reset - device-specific reset
|
|
||||||
//-------------------------------------------------
|
|
||||||
|
|
||||||
void mathbox_device::device_reset()
|
|
||||||
{
|
|
||||||
DEVICE_RESET_NAME( mathbox )(this);
|
|
||||||
}
|
}
|
||||||
|
@ -5,43 +5,39 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "devlegcy.h"
|
|
||||||
|
|
||||||
/***************************************************************************
|
/***************************************************************************
|
||||||
DEVICE CONFIGURATION MACROS
|
DEVICE CONFIGURATION MACROS
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
#define MCFG_MATHBOX_ADD(_tag) \
|
#define MCFG_MATHBOX_ADD(_tag) \
|
||||||
MCFG_DEVICE_ADD(_tag, MATHBOX, 0)
|
MCFG_DEVICE_ADD(_tag, MATHBOX, 0)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/***************************************************************************
|
|
||||||
FUNCTION PROTOTYPES
|
|
||||||
***************************************************************************/
|
|
||||||
|
|
||||||
DECLARE_WRITE8_DEVICE_HANDLER( mathbox_go_w );
|
|
||||||
DECLARE_READ8_DEVICE_HANDLER( mathbox_status_r );
|
|
||||||
DECLARE_READ8_DEVICE_HANDLER( mathbox_lo_r );
|
|
||||||
DECLARE_READ8_DEVICE_HANDLER( mathbox_hi_r );
|
|
||||||
|
|
||||||
/* ----- device interface ----- */
|
/* ----- device interface ----- */
|
||||||
class mathbox_device : public device_t
|
class mathbox_device : public device_t
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
mathbox_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
mathbox_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
||||||
~mathbox_device() { global_free(m_token); }
|
|
||||||
|
DECLARE_WRITE8_MEMBER( go_w );
|
||||||
|
DECLARE_READ8_MEMBER( status_r );
|
||||||
|
DECLARE_READ8_MEMBER( lo_r );
|
||||||
|
DECLARE_READ8_MEMBER( hi_r );
|
||||||
|
|
||||||
// access to legacy token
|
|
||||||
void *token() const { assert(m_token != NULL); return m_token; }
|
|
||||||
protected:
|
protected:
|
||||||
// device-level overrides
|
// device-level overrides
|
||||||
virtual void device_config_complete();
|
virtual void device_config_complete();
|
||||||
virtual void device_start();
|
virtual void device_start();
|
||||||
virtual void device_reset();
|
virtual void device_reset();
|
||||||
private:
|
|
||||||
|
private:
|
||||||
// internal state
|
// internal state
|
||||||
void *m_token;
|
|
||||||
|
/* math box scratch registers */
|
||||||
|
INT16 m_reg[16];
|
||||||
|
|
||||||
|
/* math box result */
|
||||||
|
INT16 m_result;
|
||||||
};
|
};
|
||||||
|
|
||||||
extern const device_type MATHBOX;
|
extern const device_type MATHBOX;
|
||||||
|
@ -98,7 +98,6 @@ MACHINE_START_MEMBER(mw8080bw_state,mw8080bw)
|
|||||||
m_sn = machine().device("snsnd");
|
m_sn = machine().device("snsnd");
|
||||||
m_sn1 = machine().device("sn1");
|
m_sn1 = machine().device("sn1");
|
||||||
m_sn2 = machine().device("sn2");
|
m_sn2 = machine().device("sn2");
|
||||||
m_mb14241 = machine().device("mb14241");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user