finished modernizing at28c16 [smf]

This commit is contained in:
smf- 2013-05-10 10:37:05 +00:00
parent cca73a4ec0
commit 6fb2859b04
8 changed files with 23 additions and 54 deletions

View File

@ -87,7 +87,7 @@ const address_space_config *at28c16_device::memory_space_config( address_spacenu
void at28c16_device::device_start()
{
m_write_timer = machine().scheduler().timer_alloc( FUNC(write_finished), this );
m_write_timer = timer_alloc(0);
save_item( NAME(m_a9_12v) );
save_item( NAME(m_oe_12v) );
@ -182,12 +182,7 @@ void at28c16_device::nvram_write( emu_file &file )
// READ/WRITE HANDLERS
//**************************************************************************
WRITE8_DEVICE_HANDLER( at28c16_w )
{
downcast<at28c16_device *>( device )->write( offset, data );
}
void at28c16_device::write( offs_t offset, UINT8 data )
WRITE8_MEMBER( at28c16_device::write )
{
if( m_last_write >= 0 )
{
@ -225,12 +220,7 @@ void at28c16_device::write( offs_t offset, UINT8 data )
}
READ8_DEVICE_HANDLER( at28c16_r )
{
return downcast<at28c16_device *>( device )->read( offset );
}
UINT8 at28c16_device::read( offs_t offset )
READ8_MEMBER( at28c16_device::read )
{
if( m_last_write >= 0 )
{
@ -252,12 +242,7 @@ UINT8 at28c16_device::read( offs_t offset )
}
WRITE_LINE_DEVICE_HANDLER( at28c16_a9_12v )
{
downcast<at28c16_device *>( device )->set_a9_12v( state );
}
void at28c16_device::set_a9_12v( int state )
WRITE_LINE_MEMBER( at28c16_device::set_a9_12v )
{
state &= 1;
if( m_a9_12v != state )
@ -268,12 +253,7 @@ void at28c16_device::set_a9_12v( int state )
}
WRITE_LINE_DEVICE_HANDLER( at28c16_oe_12v )
{
downcast<at28c16_device *>( device )->set_oe_12v( state );
}
void at28c16_device::set_oe_12v( int state )
WRITE_LINE_MEMBER( at28c16_device::set_oe_12v )
{
state &= 1;
if( m_oe_12v != state )
@ -284,11 +264,12 @@ void at28c16_device::set_oe_12v( int state )
}
//**************************************************************************
// INTERNAL HELPERS
//**************************************************************************
TIMER_CALLBACK( at28c16_device::write_finished )
void at28c16_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr)
{
reinterpret_cast<at28c16_device *>(ptr)->m_last_write = -1;
switch( id )
{
case 0:
m_last_write = -1;
break;
}
}

View File

@ -44,10 +44,10 @@ public:
at28c16_device( const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock );
// I/O operations
void write( offs_t offset, UINT8 data );
UINT8 read( offs_t offset );
void set_a9_12v( int state );
void set_oe_12v( int state );
DECLARE_WRITE8_MEMBER( write );
DECLARE_READ8_MEMBER( read );
DECLARE_WRITE_LINE_MEMBER( set_a9_12v );
DECLARE_WRITE_LINE_MEMBER( set_oe_12v );
protected:
// device-level overrides
@ -55,6 +55,7 @@ protected:
virtual void device_validity_check(validity_checker &valid) const;
virtual void device_start();
virtual void device_reset();
virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr);
// device_memory_interface overrides
virtual const address_space_config *memory_space_config( address_spacenum spacenum = AS_0 ) const;
@ -64,9 +65,6 @@ protected:
virtual void nvram_read( emu_file &file );
virtual void nvram_write( emu_file &file );
// internal helpers
static TIMER_CALLBACK( write_finished );
// internal state
address_space_config m_space_config;
emu_timer *m_write_timer;
@ -79,14 +77,4 @@ protected:
// device type definition
extern const device_type AT28C16;
//**************************************************************************
// READ/WRITE HANDLERS
//**************************************************************************
DECLARE_WRITE8_DEVICE_HANDLER( at28c16_w );
DECLARE_READ8_DEVICE_HANDLER( at28c16_r );
WRITE_LINE_DEVICE_HANDLER( at28c16_a9_12v );
WRITE_LINE_DEVICE_HANDLER( at28c16_oe_12v );
#endif

View File

@ -80,7 +80,7 @@ static ADDRESS_MAP_START( namcond1_map, AS_PROGRAM, 16, namcond1_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x400000, 0x40ffff) AM_READWRITE(namcond1_shared_ram_r,namcond1_shared_ram_w) AM_SHARE("shared_ram")
AM_RANGE(0x800000, 0x80000f) AM_READWRITE_LEGACY(ygv608_r,ygv608_w)
AM_RANGE(0xa00000, 0xa00fff) AM_DEVREADWRITE8_LEGACY("at28c16", at28c16_r, at28c16_w, 0xff00)
AM_RANGE(0xa00000, 0xa00fff) AM_DEVREADWRITE8("at28c16", at28c16_device, read, write, 0xff00)
#ifdef MAME_DEBUG
AM_RANGE(0xb00000, 0xb00001) AM_READ_LEGACY(ygv608_debug_trigger)
#endif

View File

@ -730,7 +730,7 @@ READ32_MEMBER(namcos11_state::lightgun_r)
static ADDRESS_MAP_START( namcos11_map, AS_PROGRAM, 32, namcos11_state )
AM_RANGE(0x1fa04000, 0x1fa0ffff) AM_RAM AM_SHARE("sharedram") /* shared ram with C76 */
AM_RANGE(0x1fa20000, 0x1fa2ffff) AM_WRITE(keycus_w) AM_SHARE("keycus") /* keycus */
AM_RANGE(0x1fa30000, 0x1fa30fff) AM_DEVREADWRITE8_LEGACY("at28c16", at28c16_r, at28c16_w, 0x00ff00ff) /* eeprom */
AM_RANGE(0x1fa30000, 0x1fa30fff) AM_DEVREADWRITE8("at28c16", at28c16_device, read, write, 0x00ff00ff) /* eeprom */
AM_RANGE(0x1fb00000, 0x1fb00003) AM_WRITENOP /* ?? */
AM_RANGE(0x1fbf6000, 0x1fbf6003) AM_WRITENOP /* ?? */
ADDRESS_MAP_END

View File

@ -1257,7 +1257,7 @@ WRITE32_MEMBER(namcos12_state::s12_dma_bias_w)
static ADDRESS_MAP_START( namcos12_map, AS_PROGRAM, 32, namcos12_state )
AM_RANGE(0x1f000000, 0x1f000003) AM_READNOP AM_WRITE(bankoffset_w) /* banking */
AM_RANGE(0x1f080000, 0x1f083fff) AM_READWRITE(sharedram_r, sharedram_w) AM_SHARE("sharedram") /* shared ram?? */
AM_RANGE(0x1f140000, 0x1f140fff) AM_DEVREADWRITE8_LEGACY("at28c16", at28c16_r, at28c16_w, 0x00ff00ff) /* eeprom */
AM_RANGE(0x1f140000, 0x1f140fff) AM_DEVREADWRITE8("at28c16", at28c16_device, read, write, 0x00ff00ff) /* eeprom */
AM_RANGE(0x1f1bff08, 0x1f1bff0f) AM_WRITENOP /* ?? */
AM_RANGE(0x1f700000, 0x1f70ffff) AM_WRITE(dmaoffset_w) /* dma */
AM_RANGE(0x1fa00000, 0x1fbfffff) AM_ROMBANK("bank1") /* banked roms */

View File

@ -818,7 +818,7 @@ static ADDRESS_MAP_START( taitogn_map, AS_PROGRAM, 32, taitogn_state )
AM_RANGE(0x1fa30000, 0x1fa30003) AM_READWRITE(control3_r, control3_w)
AM_RANGE(0x1fa51c00, 0x1fa51dff) AM_READNOP // systematic read at spu_address + 250000, result dropped, maybe other accesses
AM_RANGE(0x1fa60000, 0x1fa60003) AM_READ(hack1_r)
AM_RANGE(0x1faf0000, 0x1faf07ff) AM_DEVREADWRITE8_LEGACY("at28c16", at28c16_r, at28c16_w, 0xffffffff) /* eeprom */
AM_RANGE(0x1faf0000, 0x1faf07ff) AM_DEVREADWRITE8("at28c16", at28c16_device, read, write, 0xffffffff) /* eeprom */
AM_RANGE(0x1fb00000, 0x1fb0ffff) AM_READWRITE(rf5c296_io_r, rf5c296_io_w)
AM_RANGE(0x1fb40000, 0x1fb40003) AM_READWRITE(control_r, control_w)
AM_RANGE(0x1fb60000, 0x1fb60003) AM_WRITE(control2_w)

View File

@ -144,7 +144,7 @@ WRITE32_MEMBER(vegaeo_state::soundlatch_w)
static ADDRESS_MAP_START( vega_map, AS_PROGRAM, 32, vegaeo_state )
AM_RANGE(0x00000000, 0x001fffff) AM_RAM
AM_RANGE(0x80000000, 0x80013fff) AM_READWRITE(vega_vram_r, vega_vram_w)
AM_RANGE(0xfc000000, 0xfc0000ff) AM_DEVREADWRITE8_LEGACY("at28c16", at28c16_r, at28c16_w, 0x000000ff)
AM_RANGE(0xfc000000, 0xfc0000ff) AM_DEVREADWRITE8("at28c16", at28c16_device, read, write, 0x000000ff)
AM_RANGE(0xfc200000, 0xfc2003ff) AM_RAM_WRITE(vega_palette_w) AM_SHARE("paletteram")
AM_RANGE(0xfc400000, 0xfc40005b) AM_WRITENOP // crt registers ?
AM_RANGE(0xfc600000, 0xfc600003) AM_WRITE(soundlatch_w)

View File

@ -420,7 +420,7 @@ static ADDRESS_MAP_START( zn_map, AS_PROGRAM, 32, zn_state )
AM_RANGE(0x1fa30000, 0x1fa30003) AM_NOP /* ?? */
AM_RANGE(0x1fa40000, 0x1fa40003) AM_READNOP /* ?? */
AM_RANGE(0x1fa60000, 0x1fa60003) AM_READNOP /* ?? */
AM_RANGE(0x1faf0000, 0x1faf07ff) AM_DEVREADWRITE8_LEGACY("at28c16", at28c16_r, at28c16_w, 0xffffffff) /* eeprom */
AM_RANGE(0x1faf0000, 0x1faf07ff) AM_DEVREADWRITE8("at28c16", at28c16_device, read, write, 0xffffffff) /* eeprom */
AM_RANGE(0x1fb20000, 0x1fb20007) AM_READ(unknown_r)
ADDRESS_MAP_END