mirror of
https://github.com/holub/mame
synced 2025-04-24 17:30:55 +03:00
finished modernizing timekeeper [smf]
This commit is contained in:
parent
5fcb3cd11f
commit
5871e48352
@ -352,7 +352,7 @@ void timekeeper_device::device_timer(emu_timer &timer, device_timer_id id, int p
|
||||
}
|
||||
}
|
||||
|
||||
void timekeeper_device::write(UINT16 offset, UINT8 data)
|
||||
WRITE8_MEMBER( timekeeper_device::write )
|
||||
{
|
||||
if( offset == m_offset_control )
|
||||
{
|
||||
@ -375,7 +375,7 @@ void timekeeper_device::write(UINT16 offset, UINT8 data)
|
||||
m_data[ offset ] = data;
|
||||
}
|
||||
|
||||
UINT8 timekeeper_device::read(UINT16 offset)
|
||||
READ8_MEMBER( timekeeper_device::read )
|
||||
{
|
||||
UINT8 result = m_data[ offset ];
|
||||
if( offset == m_offset_date && type() == M48T58 )
|
||||
@ -433,12 +433,3 @@ void timekeeper_device::nvram_write(emu_file &file)
|
||||
{
|
||||
file.write( m_data, m_size );
|
||||
}
|
||||
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
TRAMPOLINES
|
||||
***************************************************************************/
|
||||
|
||||
WRITE8_DEVICE_HANDLER( timekeeper_w ) { downcast<timekeeper_device *>(device)->write(offset, data); }
|
||||
READ8_DEVICE_HANDLER( timekeeper_r ) { return downcast<timekeeper_device*>(device)->read(offset); }
|
||||
|
@ -64,8 +64,8 @@ protected:
|
||||
timekeeper_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock);
|
||||
|
||||
public:
|
||||
void write(UINT16 offset, UINT8 data);
|
||||
UINT8 read(UINT16 offset);
|
||||
DECLARE_WRITE8_MEMBER( write );
|
||||
DECLARE_READ8_MEMBER( read );
|
||||
|
||||
protected:
|
||||
// device-level overrides
|
||||
@ -147,13 +147,4 @@ extern const device_type M48T37;
|
||||
extern const device_type M48T58;
|
||||
extern const device_type MK48T08;
|
||||
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
// READ/WRITE HANDLERS
|
||||
//**************************************************************************
|
||||
|
||||
DECLARE_WRITE8_DEVICE_HANDLER( timekeeper_w );
|
||||
DECLARE_READ8_DEVICE_HANDLER( timekeeper_r );
|
||||
|
||||
#endif // __TIMEKPR_H__
|
||||
|
@ -65,7 +65,7 @@ static ADDRESS_MAP_START( cdimono1_mem, AS_PROGRAM, 16, cdi_state )
|
||||
AM_RANGE(0x00303c00, 0x00303fff) AM_DEVREADWRITE("cdic", cdicdic_device, regs_r, regs_w)
|
||||
AM_RANGE(0x00310000, 0x00317fff) AM_DEVREADWRITE("slave", cdislave_device, slave_r, slave_w)
|
||||
//AM_RANGE(0x00318000, 0x0031ffff) AM_NOP
|
||||
AM_RANGE(0x00320000, 0x00323fff) AM_DEVREADWRITE8_LEGACY("mk48t08", timekeeper_r, timekeeper_w, 0xff00) /* nvram (only low bytes used) */
|
||||
AM_RANGE(0x00320000, 0x00323fff) AM_DEVREADWRITE8("mk48t08", timekeeper_device, read, write, 0xff00) /* nvram (only low bytes used) */
|
||||
AM_RANGE(0x00400000, 0x0047ffff) AM_ROM AM_REGION("maincpu", 0)
|
||||
AM_RANGE(0x004fffe0, 0x004fffff) AM_DEVREADWRITE("mcd212", mcd212_device, regs_r, regs_w)
|
||||
//AM_RANGE(0x00500000, 0x0057ffff) AM_RAM
|
||||
|
@ -1996,7 +1996,7 @@ static ADDRESS_MAP_START( cobra_sub_map, AS_PROGRAM, 32, cobra_state )
|
||||
AM_RANGE(0x78280000, 0x7828000f) AM_MIRROR(0x80000000) AM_NOP // ???
|
||||
AM_RANGE(0x78300000, 0x7830000f) AM_MIRROR(0x80000000) AM_READWRITE(sub_psac2_r, sub_psac2_w) // PSAC
|
||||
AM_RANGE(0x7e000000, 0x7e000003) AM_MIRROR(0x80000000) AM_READWRITE(sub_unk7e_r, sub_debug_w)
|
||||
AM_RANGE(0x7e040000, 0x7e041fff) AM_MIRROR(0x80000000) AM_DEVREADWRITE8_LEGACY("m48t58", timekeeper_r, timekeeper_w, 0xffffffff) /* M48T58Y RTC/NVRAM */
|
||||
AM_RANGE(0x7e040000, 0x7e041fff) AM_MIRROR(0x80000000) AM_DEVREADWRITE8("m48t58", timekeeper_device, read, write, 0xffffffff) /* M48T58Y RTC/NVRAM */
|
||||
AM_RANGE(0x7e180000, 0x7e180003) AM_MIRROR(0x80000000) AM_READWRITE(sub_unk1_r, sub_unk1_w) // TMS57002?
|
||||
AM_RANGE(0x7e200000, 0x7e200003) AM_MIRROR(0x80000000) AM_READWRITE(sub_config_r, sub_config_w)
|
||||
AM_RANGE(0x7e280000, 0x7e28ffff) AM_MIRROR(0x80000000) AM_NOP // LANC
|
||||
|
@ -244,7 +244,6 @@ Stephh's log (2006.09.20) :
|
||||
#include "sound/okim6295.h"
|
||||
#include "sound/qsound.h"
|
||||
#include "sound/msm5205.h"
|
||||
#include "machine/timekpr.h"
|
||||
#include "machine/kabuki.h"
|
||||
#include "includes/cps1.h" /* External CPS1 definitions */
|
||||
|
||||
@ -10921,7 +10920,7 @@ READ16_MEMBER(cps_state::ganbare_ram_r)
|
||||
UINT16 result = 0xffff;
|
||||
|
||||
if (ACCESSING_BITS_0_7)
|
||||
result = (result & ~0x00ff) | timekeeper_r(machine().device("m48t35"), space, offset);
|
||||
result = (result & ~0x00ff) | m_m48t35->read(space, offset, 0xff);
|
||||
if (ACCESSING_BITS_8_15)
|
||||
result = (result & ~0xff00) | (m_mainram[offset] & 0xff00);
|
||||
|
||||
@ -10933,7 +10932,7 @@ WRITE16_MEMBER(cps_state::ganbare_ram_w)
|
||||
COMBINE_DATA(&m_mainram[offset]);
|
||||
|
||||
if (ACCESSING_BITS_0_7)
|
||||
timekeeper_w(machine().device("m48t35"), space, offset, data & 0xff);
|
||||
m_m48t35->write(space, offset, data & 0xff, 0xff);
|
||||
}
|
||||
|
||||
DRIVER_INIT_MEMBER(cps_state, ganbare)
|
||||
|
@ -657,7 +657,7 @@ static ADDRESS_MAP_START( hornet_map, AS_PROGRAM, 32, hornet_state )
|
||||
AM_RANGE(0x780c0000, 0x780c0003) AM_READWRITE_LEGACY(cgboard_dsp_comm_r_ppc, cgboard_dsp_comm_w_ppc)
|
||||
AM_RANGE(0x7d000000, 0x7d00ffff) AM_READ8(sysreg_r, 0xffffffff)
|
||||
AM_RANGE(0x7d010000, 0x7d01ffff) AM_WRITE8(sysreg_w, 0xffffffff)
|
||||
AM_RANGE(0x7d020000, 0x7d021fff) AM_DEVREADWRITE8_LEGACY("m48t58", timekeeper_r, timekeeper_w, 0xffffffff) /* M48T58Y RTC/NVRAM */
|
||||
AM_RANGE(0x7d020000, 0x7d021fff) AM_DEVREADWRITE8("m48t58", timekeeper_device, read, write, 0xffffffff) /* M48T58Y RTC/NVRAM */
|
||||
AM_RANGE(0x7d030000, 0x7d030007) AM_DEVREADWRITE_LEGACY("k056800", k056800_host_r, k056800_host_w)
|
||||
AM_RANGE(0x7d042000, 0x7d043fff) AM_RAM /* COMM BOARD 0 */
|
||||
AM_RANGE(0x7d044000, 0x7d044007) AM_READ(comm0_unk_r)
|
||||
|
@ -4258,8 +4258,8 @@ DRIVER_INIT_MEMBER(itech32_state,wcbowln)
|
||||
|
||||
void itech32_state::install_timekeeper()
|
||||
{
|
||||
device_t *device = machine().device("m48t02");
|
||||
m_maincpu->space(AS_PROGRAM).install_legacy_readwrite_handler(*device, 0x681000, 0x6817ff, FUNC(timekeeper_r), FUNC(timekeeper_w), 0xffffffff);
|
||||
timekeeper_device *m48t02 = machine().device<timekeeper_device>("m48t02");
|
||||
m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x681000, 0x6817ff, read8_delegate(FUNC(timekeeper_device::read), m48t02), write8_delegate(FUNC(timekeeper_device::write), m48t02), 0xffffffff);
|
||||
}
|
||||
|
||||
DRIVER_INIT_MEMBER(itech32_state,wcbowlt)
|
||||
|
@ -1380,7 +1380,7 @@ static ADDRESS_MAP_START( konami573_map, AS_PROGRAM, 32, ksys573_state )
|
||||
AM_RANGE(0x1f500000, 0x1f500003) AM_READWRITE(control_r, control_w ) // Konami can't make a game without a "control" register.
|
||||
AM_RANGE(0x1f560000, 0x1f560003) AM_WRITE(atapi_reset_w )
|
||||
AM_RANGE(0x1f5c0000, 0x1f5c0003) AM_WRITENOP // watchdog?
|
||||
AM_RANGE(0x1f620000, 0x1f623fff) AM_DEVREADWRITE8_LEGACY("m48t58", timekeeper_r, timekeeper_w, 0x00ff00ff)
|
||||
AM_RANGE(0x1f620000, 0x1f623fff) AM_DEVREADWRITE8("m48t58", timekeeper_device, read, write, 0x00ff00ff)
|
||||
AM_RANGE(0x1f680000, 0x1f68001f) AM_READWRITE(mb89371_r, mb89371_w)
|
||||
AM_RANGE(0x1f6a0000, 0x1f6a0003) AM_READWRITE(security_r, security_w )
|
||||
ADDRESS_MAP_END
|
||||
|
@ -31,7 +31,6 @@ The Grid v1.2 10/18/2000
|
||||
#include "cpu/pic16c5x/pic16c5x.h"
|
||||
#include "includes/midzeus.h"
|
||||
#include "machine/midwayic.h"
|
||||
#include "machine/timekpr.h"
|
||||
#include "audio/dcs.h"
|
||||
#include "machine/nvram.h"
|
||||
|
||||
@ -153,16 +152,13 @@ WRITE32_MEMBER(midzeus_state::cmos_protect_w)
|
||||
|
||||
READ32_MEMBER(midzeus_state::zeus2_timekeeper_r)
|
||||
{
|
||||
device_t *device = machine().device("m48t35");
|
||||
return timekeeper_r(device, space, offset) | 0xffffff00;
|
||||
return m_m48t35->read(space, offset, 0xff) | 0xffffff00;
|
||||
}
|
||||
|
||||
|
||||
WRITE32_MEMBER(midzeus_state::zeus2_timekeeper_w)
|
||||
{
|
||||
device_t *device = machine().device("m48t35");
|
||||
if (bitlatch[2] && !cmos_protected)
|
||||
timekeeper_w(device, space, offset, data);
|
||||
m_m48t35->write(space, offset, data, 0xff);
|
||||
else
|
||||
logerror("%s:zeus2_timekeeper_w with bitlatch[2] = %d, cmos_protected = %d\n", machine().describe_context(), bitlatch[2], cmos_protected);
|
||||
cmos_protected = TRUE;
|
||||
|
@ -185,7 +185,10 @@ class multfish_state : public driver_device
|
||||
public:
|
||||
multfish_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: driver_device(mconfig, type, tag),
|
||||
m_maincpu(*this, "maincpu") { }
|
||||
m_maincpu(*this, "maincpu"),
|
||||
m_m48t35(*this, "m48t35" )
|
||||
{
|
||||
}
|
||||
|
||||
/* Video related */
|
||||
|
||||
@ -248,9 +251,9 @@ public:
|
||||
virtual void machine_start();
|
||||
virtual void machine_reset();
|
||||
virtual void video_start();
|
||||
DECLARE_MACHINE_RESET(island2a);
|
||||
UINT32 screen_update_multfish(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_device<timekeeper_device> m_m48t35;
|
||||
};
|
||||
|
||||
TILE_GET_INFO_MEMBER(multfish_state::get_multfish_tile_info)
|
||||
@ -377,21 +380,19 @@ WRITE8_MEMBER(multfish_state::multfish_bank_w)
|
||||
|
||||
READ8_MEMBER(multfish_state::multfish_timekeeper_r)
|
||||
{
|
||||
device_t *device = machine().device("m48t35");
|
||||
return timekeeper_r(device, space, offset + 0x6000);
|
||||
return m_m48t35->read(space, offset + 0x6000, 0xff);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(multfish_state::multfish_timekeeper_w)
|
||||
{
|
||||
device_t *device = machine().device("m48t35");
|
||||
timekeeper_w(device, space, offset + 0x6000, data);
|
||||
m_m48t35->write(space, offset + 0x6000, data, 0xff);
|
||||
}
|
||||
|
||||
READ8_MEMBER(multfish_state::bankedram_r)
|
||||
{
|
||||
if ((m_rambk & 0x80) == 0x00)
|
||||
{
|
||||
return timekeeper_r(machine().device("m48t35"), space, offset + 0x2000*(m_rambk & 0x03));
|
||||
return m_m48t35->read(space, offset + 0x2000*(m_rambk & 0x03), 0xff);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -404,7 +405,7 @@ WRITE8_MEMBER(multfish_state::bankedram_w)
|
||||
{
|
||||
if ((m_rambk & 0x80) == 0x00)
|
||||
{
|
||||
timekeeper_w(machine().device("m48t35"), space, offset + 0x2000*(m_rambk & 0x03), data);
|
||||
m_m48t35->write(space, offset + 0x2000*(m_rambk & 0x03), data, 0xff);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -1155,20 +1156,6 @@ static MACHINE_CONFIG_DERIVED( rollfr, multfish )
|
||||
MCFG_CPU_IO_MAP(rollfr_portmap)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
MACHINE_RESET_MEMBER(multfish_state,island2a)
|
||||
{
|
||||
multfish_state::machine_reset();
|
||||
|
||||
// this set needs preprogrammed data in timekeeper
|
||||
timekeeper_w(machine().device("m48t35"), generic_space(), 0x2003 , 0x01);
|
||||
timekeeper_w(machine().device("m48t35"), generic_space(), 0x4003 , 0x02);
|
||||
}
|
||||
static MACHINE_CONFIG_DERIVED( island2a, multfish )
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_MACHINE_RESET_OVERRIDE(multfish_state, island2a )
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
||||
|
||||
/* Rom Naming note:
|
||||
@ -4552,6 +4539,9 @@ ROM_START( island2a ) // 060529 bank F9
|
||||
ROM_LOAD( "island2.006", 0x180000, 0x80000, CRC(55e285d9) SHA1(ba58963441c65220700cd8057e6afe3f5f8faa4f) )
|
||||
ROM_LOAD( "island2.007", 0x280000, 0x80000, CRC(edd72be6) SHA1(fb1e63f59e8565c23ae43630fa572fbc022c878f) )
|
||||
ROM_LOAD( "island2.008", 0x380000, 0x80000, CRC(c336d608) SHA1(55391183c6d95ecea81354efa70641350860d1f5) )
|
||||
|
||||
ROM_REGION( 0x8000, "m48t35", 0 )
|
||||
ROM_LOAD( "m48t35", 0x000000, 0x08000, CRC(c8ec9973) SHA1(7973189d9b380ca2591d3ef3b80446410f7a8ed8) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( island2b ) // 060529 bank F9, changed version text to 070205, skip some start tests
|
||||
@ -5277,7 +5267,7 @@ GAME( 2005, islanda, island_parent, multfish, multfish, driver_device, 0,
|
||||
GAME( 2005, islandb, island_parent, multfish, multfish, multfish_state, customl, ROT0, "bootleg", "Island (bootleg, 050713, VIDEO GAME-1 OS01)", GAME_SUPPORTS_SAVE ) // custom alteras, modified graphics, many texts changed, changed version text to "VIDEO GAME-1 OS01"
|
||||
GAME( 2005, islandc, island_parent, multfish, multfish, multfish_state, customl, ROT0, "bootleg", "Island (bootleg, 050713, LOTOS OS01)", GAME_SUPPORTS_SAVE ) // custom alteras, modified graphics, many texts changed, changed version text to "LOTOS OS01"
|
||||
|
||||
GAME( 2006, island2a, island2_parent, island2a, multfish, driver_device, 0, ROT0, "bootleg", "Island 2 (bootleg, 060529, banking address hack)", GAME_SUPPORTS_SAVE ) // bank F9 (not standart, game not work)
|
||||
GAME( 2006, island2a, island2_parent, multfish, multfish, driver_device, 0, ROT0, "bootleg", "Island 2 (bootleg, 060529, banking address hack)", GAME_SUPPORTS_SAVE ) // bank F9 (not standart, game not work)
|
||||
GAME( 2006, island2b, island2_parent, multfish, multfish, driver_device, 0, ROT0, "bootleg", "Island 2 (bootleg, 060529, banking address hack, changed version text)", GAME_SUPPORTS_SAVE ) // bank F9, changed version text to 070205, skip some start tests
|
||||
GAME( 2006, island2c, island2_parent, multfish, multfish, driver_device, 0, ROT0, "bootleg", "Island 2 (bootleg, 060529, LOTTOGAME (I))", GAME_SUPPORTS_SAVE ) // bank F9, modified graphics, changed version text to "MDS_is_the_best_ LOTTOGAME (I)"
|
||||
GAME( 2006, island2_3a, island2_parent, multfish, multfish, driver_device, 0, ROT0, "bootleg", "Island 2 (bootleg, 061218, VIDEO GAME-1 OS2-01)", GAME_SUPPORTS_SAVE ) // bank F9, modified graphics, changed version text to "VIDEO GAME-1 OS2-01"
|
||||
|
@ -545,7 +545,7 @@ static ADDRESS_MAP_START( nwktr_map, AS_PROGRAM, 32, nwktr_state )
|
||||
AM_RANGE(0x780c0000, 0x780c0003) AM_READWRITE_LEGACY(cgboard_dsp_comm_r_ppc, cgboard_dsp_comm_w_ppc)
|
||||
AM_RANGE(0x7d000000, 0x7d00ffff) AM_READ(sysreg_r)
|
||||
AM_RANGE(0x7d010000, 0x7d01ffff) AM_WRITE(sysreg_w)
|
||||
AM_RANGE(0x7d020000, 0x7d021fff) AM_DEVREADWRITE8_LEGACY("m48t58", timekeeper_r, timekeeper_w, 0xffffffff) /* M48T58Y RTC/NVRAM */
|
||||
AM_RANGE(0x7d020000, 0x7d021fff) AM_DEVREADWRITE8("m48t58", timekeeper_device, read, write, 0xffffffff) /* M48T58Y RTC/NVRAM */
|
||||
AM_RANGE(0x7d030000, 0x7d030007) AM_DEVREAD_LEGACY("k056800", k056800_host_r)
|
||||
AM_RANGE(0x7d030000, 0x7d030007) AM_DEVWRITE_LEGACY("k056800", k056800_host_w)
|
||||
AM_RANGE(0x7d030008, 0x7d03000f) AM_DEVWRITE_LEGACY("k056800", k056800_host_w)
|
||||
|
@ -283,7 +283,7 @@ static ADDRESS_MAP_START( slapshot_map, AS_PROGRAM, 16, slapshot_state )
|
||||
AM_RANGE(0x800000, 0x80ffff) AM_DEVREADWRITE_LEGACY("tc0480scp", tc0480scp_word_r, tc0480scp_word_w) /* tilemaps */
|
||||
AM_RANGE(0x830000, 0x83002f) AM_DEVREADWRITE_LEGACY("tc0480scp", tc0480scp_ctrl_word_r, tc0480scp_ctrl_word_w)
|
||||
AM_RANGE(0x900000, 0x907fff) AM_READWRITE(color_ram_word_r, color_ram_word_w) AM_SHARE("color_ram") /* 8bpg palette */
|
||||
AM_RANGE(0xa00000, 0xa03fff) AM_DEVREADWRITE8_LEGACY("mk48t08", timekeeper_r, timekeeper_w, 0xff00) /* nvram (only low bytes used) */
|
||||
AM_RANGE(0xa00000, 0xa03fff) AM_DEVREADWRITE8("mk48t08", timekeeper_device, read, write, 0xff00) /* nvram (only low bytes used) */
|
||||
AM_RANGE(0xb00000, 0xb0001f) AM_DEVWRITE8_LEGACY("tc0360pri", tc0360pri_w, 0xff00) /* priority chip */
|
||||
AM_RANGE(0xc00000, 0xc0000f) AM_DEVREADWRITE_LEGACY("tc0640fio", tc0640fio_halfword_byteswap_r, tc0640fio_halfword_byteswap_w)
|
||||
AM_RANGE(0xc00020, 0xc0002f) AM_READ(slapshot_service_input_r) /* service mirror */
|
||||
@ -298,7 +298,7 @@ static ADDRESS_MAP_START( opwolf3_map, AS_PROGRAM, 16, slapshot_state )
|
||||
AM_RANGE(0x800000, 0x80ffff) AM_DEVREADWRITE_LEGACY("tc0480scp", tc0480scp_word_r, tc0480scp_word_w) /* tilemaps */
|
||||
AM_RANGE(0x830000, 0x83002f) AM_DEVREADWRITE_LEGACY("tc0480scp", tc0480scp_ctrl_word_r, tc0480scp_ctrl_word_w)
|
||||
AM_RANGE(0x900000, 0x907fff) AM_READWRITE(color_ram_word_r, color_ram_word_w) AM_SHARE("color_ram") /* 8bpg palette */
|
||||
AM_RANGE(0xa00000, 0xa03fff) AM_DEVREADWRITE8_LEGACY("mk48t08", timekeeper_r, timekeeper_w, 0xff00) /* nvram (only low bytes used) */
|
||||
AM_RANGE(0xa00000, 0xa03fff) AM_DEVREADWRITE8("mk48t08", timekeeper_device, read, write, 0xff00) /* nvram (only low bytes used) */
|
||||
AM_RANGE(0xb00000, 0xb0001f) AM_DEVWRITE8_LEGACY("tc0360pri", tc0360pri_w, 0xff00) /* priority chip */
|
||||
AM_RANGE(0xc00000, 0xc0000f) AM_DEVREADWRITE_LEGACY("tc0640fio", tc0640fio_halfword_byteswap_r, tc0640fio_halfword_byteswap_w)
|
||||
AM_RANGE(0xc00020, 0xc0002f) AM_READ(slapshot_service_input_r) /* service mirror */
|
||||
|
@ -306,7 +306,7 @@ static ADDRESS_MAP_START( tomcat_map, AS_PROGRAM, 16, tomcat_state )
|
||||
AM_RANGE(0x800000, 0x803fff) AM_RAM AM_SHARE("vectorram")
|
||||
AM_RANGE(0xffa000, 0xffbfff) AM_READWRITE(tomcat_shared_ram_r, tomcat_shared_ram_w)
|
||||
AM_RANGE(0xffc000, 0xffcfff) AM_RAM
|
||||
AM_RANGE(0xffd000, 0xffdfff) AM_DEVREADWRITE8_LEGACY("m48t02", timekeeper_r, timekeeper_w, 0xff00)
|
||||
AM_RANGE(0xffd000, 0xffdfff) AM_DEVREADWRITE8("m48t02", timekeeper_device, read, write, 0xff00)
|
||||
AM_RANGE(0xffd000, 0xffdfff) AM_READWRITE8(tomcat_nvram_r, tomcat_nvram_w, 0x00ff)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
@ -618,13 +618,13 @@ static WRITE32_HANDLER( timekeeper_w )
|
||||
if (state->m_cmos_unlocked)
|
||||
{
|
||||
if ((mem_mask & 0x000000ff) != 0)
|
||||
state->m_timekeeper->write(offset * 4 + 0, data >> 0);
|
||||
state->m_timekeeper->write(space, offset * 4 + 0, data >> 0, 0xff);
|
||||
if ((mem_mask & 0x0000ff00) != 0)
|
||||
state->m_timekeeper->write(offset * 4 + 1, data >> 8);
|
||||
state->m_timekeeper->write(space, offset * 4 + 1, data >> 8, 0xff);
|
||||
if ((mem_mask & 0x00ff0000) != 0)
|
||||
state->m_timekeeper->write(offset * 4 + 2, data >> 16);
|
||||
state->m_timekeeper->write(space, offset * 4 + 2, data >> 16, 0xff);
|
||||
if ((mem_mask & 0xff000000) != 0)
|
||||
state->m_timekeeper->write(offset * 4 + 3, data >> 24);
|
||||
state->m_timekeeper->write(space, offset * 4 + 3, data >> 24, 0xff);
|
||||
if (offset*4 >= 0x7ff0)
|
||||
if (LOG_TIMEKEEPER) logerror("timekeeper_w(%04X & %08X) = %08X\n", offset*4, mem_mask, data);
|
||||
state->m_cmos_unlocked = 0;
|
||||
@ -639,13 +639,13 @@ static READ32_HANDLER( timekeeper_r )
|
||||
vegas_state *state = space.machine().driver_data<vegas_state>();
|
||||
UINT32 result = 0xffffffff;
|
||||
if ((mem_mask & 0x000000ff) != 0)
|
||||
result = (result & ~0x000000ff) | (state->m_timekeeper->read(offset * 4 + 0) << 0);
|
||||
result = (result & ~0x000000ff) | (state->m_timekeeper->read(space, offset * 4 + 0, 0xff) << 0);
|
||||
if ((mem_mask & 0x0000ff00) != 0)
|
||||
result = (result & ~0x0000ff00) | (state->m_timekeeper->read(offset * 4 + 1) << 8);
|
||||
result = (result & ~0x0000ff00) | (state->m_timekeeper->read(space, offset * 4 + 1, 0xff) << 8);
|
||||
if ((mem_mask & 0x00ff0000) != 0)
|
||||
result = (result & ~0x00ff0000) | (state->m_timekeeper->read(offset * 4 + 2) << 16);
|
||||
result = (result & ~0x00ff0000) | (state->m_timekeeper->read(space, offset * 4 + 2, 0xff) << 16);
|
||||
if ((mem_mask & 0xff000000) != 0)
|
||||
result = (result & ~0xff000000) | (state->m_timekeeper->read(offset * 4 + 3) << 24);
|
||||
result = (result & ~0xff000000) | (state->m_timekeeper->read(space, offset * 4 + 3, 0xff) << 24);
|
||||
if (offset*4 >= 0x7ff0)
|
||||
if (LOG_TIMEKEEPER) logerror("timekeeper_r(%04X & %08X) = %08X\n", offset*4, mem_mask, result);
|
||||
return result;
|
||||
|
@ -1919,7 +1919,7 @@ static ADDRESS_MAP_START(viper_map, AS_PROGRAM, 64, viper_state )
|
||||
AM_RANGE(0xffe00000, 0xffe00007) AM_READ(e00000_r)
|
||||
AM_RANGE(0xffe00008, 0xffe0000f) AM_READWRITE(e00008_r, e00008_w)
|
||||
AM_RANGE(0xffe10000, 0xffe10007) AM_READ(unk1_r)
|
||||
AM_RANGE(0xffe30000, 0xffe31fff) AM_DEVREADWRITE8_LEGACY("m48t58", timekeeper_r, timekeeper_w, U64(0xffffffffffffffff))
|
||||
AM_RANGE(0xffe30000, 0xffe31fff) AM_DEVREADWRITE8("m48t58", timekeeper_device, read, write, U64(0xffffffffffffffff))
|
||||
AM_RANGE(0xffe40000, 0xffe4000f) AM_NOP
|
||||
AM_RANGE(0xffe50000, 0xffe50007) AM_WRITE(unk2_w)
|
||||
AM_RANGE(0xffe70000, 0xffe7000f) AM_READWRITE(e70000_r, e70000_w)
|
||||
|
@ -4,6 +4,7 @@
|
||||
#include "sound/msm5205.h"
|
||||
#include "sound/qsound.h"
|
||||
#include "sound/okim6295.h"
|
||||
#include "machine/timekpr.h"
|
||||
|
||||
struct gfx_range
|
||||
{
|
||||
@ -77,7 +78,8 @@ public:
|
||||
m_output(*this, "output"),
|
||||
m_maincpu(*this, "maincpu"),
|
||||
m_audiocpu(*this, "audiocpu"),
|
||||
m_oki(*this, "oki")
|
||||
m_oki(*this, "oki"),
|
||||
m_m48t35(*this,"m48t35")
|
||||
{ }
|
||||
|
||||
/* memory pointers */
|
||||
@ -167,6 +169,7 @@ public:
|
||||
required_device<cpu_device> m_maincpu;
|
||||
optional_device<cpu_device> m_audiocpu;
|
||||
optional_device<okim6295_device> m_oki;
|
||||
optional_device<m48t35_device> m_m48t35;
|
||||
msm5205_device *m_msm_1; // fcrash
|
||||
msm5205_device *m_msm_2; // fcrash
|
||||
DECLARE_READ16_MEMBER(cps1_hack_dsw_r);
|
||||
|
@ -6,6 +6,8 @@
|
||||
|
||||
#define MIDZEUS_VIDEO_CLOCK XTAL_66_6667MHz
|
||||
|
||||
#include "machine/timekpr.h"
|
||||
|
||||
class midzeus_state : public driver_device
|
||||
{
|
||||
public:
|
||||
@ -16,6 +18,7 @@ public:
|
||||
m_linkram(*this, "linkram"),
|
||||
m_tms32031_control(*this, "tms32031_ctl"),
|
||||
m_zeusbase(*this, "zeusbase") ,
|
||||
m_m48t35(*this, "m48t35"),
|
||||
m_maincpu(*this, "maincpu") { }
|
||||
|
||||
required_shared_ptr<UINT32> m_nvram;
|
||||
@ -23,6 +26,7 @@ public:
|
||||
optional_shared_ptr<UINT32> m_linkram;
|
||||
required_shared_ptr<UINT32> m_tms32031_control;
|
||||
required_shared_ptr<UINT32> m_zeusbase;
|
||||
optional_device<timekeeper_device> m_m48t35;
|
||||
|
||||
DECLARE_WRITE32_MEMBER(cmos_w);
|
||||
DECLARE_READ32_MEMBER(cmos_r);
|
||||
|
Loading…
Reference in New Issue
Block a user