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() 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_a9_12v) );
save_item( NAME(m_oe_12v) ); save_item( NAME(m_oe_12v) );
@ -182,12 +182,7 @@ void at28c16_device::nvram_write( emu_file &file )
// READ/WRITE HANDLERS // READ/WRITE HANDLERS
//************************************************************************** //**************************************************************************
WRITE8_DEVICE_HANDLER( at28c16_w ) WRITE8_MEMBER( at28c16_device::write )
{
downcast<at28c16_device *>( device )->write( offset, data );
}
void at28c16_device::write( offs_t offset, UINT8 data )
{ {
if( m_last_write >= 0 ) if( m_last_write >= 0 )
{ {
@ -225,12 +220,7 @@ void at28c16_device::write( offs_t offset, UINT8 data )
} }
READ8_DEVICE_HANDLER( at28c16_r ) READ8_MEMBER( at28c16_device::read )
{
return downcast<at28c16_device *>( device )->read( offset );
}
UINT8 at28c16_device::read( offs_t offset )
{ {
if( m_last_write >= 0 ) if( m_last_write >= 0 )
{ {
@ -252,12 +242,7 @@ UINT8 at28c16_device::read( offs_t offset )
} }
WRITE_LINE_DEVICE_HANDLER( at28c16_a9_12v ) WRITE_LINE_MEMBER( at28c16_device::set_a9_12v )
{
downcast<at28c16_device *>( device )->set_a9_12v( state );
}
void at28c16_device::set_a9_12v( int state )
{ {
state &= 1; state &= 1;
if( m_a9_12v != state ) if( m_a9_12v != state )
@ -268,12 +253,7 @@ void at28c16_device::set_a9_12v( int state )
} }
WRITE_LINE_DEVICE_HANDLER( at28c16_oe_12v ) WRITE_LINE_MEMBER( at28c16_device::set_oe_12v )
{
downcast<at28c16_device *>( device )->set_oe_12v( state );
}
void at28c16_device::set_oe_12v( int state )
{ {
state &= 1; state &= 1;
if( m_oe_12v != state ) if( m_oe_12v != state )
@ -284,11 +264,12 @@ void at28c16_device::set_oe_12v( int state )
} }
//************************************************************************** void at28c16_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr)
// INTERNAL HELPERS
//**************************************************************************
TIMER_CALLBACK( at28c16_device::write_finished )
{ {
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 ); at28c16_device( const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock );
// I/O operations // I/O operations
void write( offs_t offset, UINT8 data ); DECLARE_WRITE8_MEMBER( write );
UINT8 read( offs_t offset ); DECLARE_READ8_MEMBER( read );
void set_a9_12v( int state ); DECLARE_WRITE_LINE_MEMBER( set_a9_12v );
void set_oe_12v( int state ); DECLARE_WRITE_LINE_MEMBER( set_oe_12v );
protected: protected:
// device-level overrides // device-level overrides
@ -55,6 +55,7 @@ protected:
virtual void device_validity_check(validity_checker &valid) const; virtual void device_validity_check(validity_checker &valid) const;
virtual void device_start(); virtual void device_start();
virtual void device_reset(); virtual void device_reset();
virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr);
// device_memory_interface overrides // device_memory_interface overrides
virtual const address_space_config *memory_space_config( address_spacenum spacenum = AS_0 ) const; 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_read( emu_file &file );
virtual void nvram_write( emu_file &file ); virtual void nvram_write( emu_file &file );
// internal helpers
static TIMER_CALLBACK( write_finished );
// internal state // internal state
address_space_config m_space_config; address_space_config m_space_config;
emu_timer *m_write_timer; emu_timer *m_write_timer;
@ -79,14 +77,4 @@ protected:
// device type definition // device type definition
extern const device_type AT28C16; 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 #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(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x400000, 0x40ffff) AM_READWRITE(namcond1_shared_ram_r,namcond1_shared_ram_w) AM_SHARE("shared_ram") 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(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 #ifdef MAME_DEBUG
AM_RANGE(0xb00000, 0xb00001) AM_READ_LEGACY(ygv608_debug_trigger) AM_RANGE(0xb00000, 0xb00001) AM_READ_LEGACY(ygv608_debug_trigger)
#endif #endif

View File

@ -730,7 +730,7 @@ READ32_MEMBER(namcos11_state::lightgun_r)
static ADDRESS_MAP_START( namcos11_map, AS_PROGRAM, 32, namcos11_state ) 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(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(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(0x1fb00000, 0x1fb00003) AM_WRITENOP /* ?? */
AM_RANGE(0x1fbf6000, 0x1fbf6003) AM_WRITENOP /* ?? */ AM_RANGE(0x1fbf6000, 0x1fbf6003) AM_WRITENOP /* ?? */
ADDRESS_MAP_END 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 ) static ADDRESS_MAP_START( namcos12_map, AS_PROGRAM, 32, namcos12_state )
AM_RANGE(0x1f000000, 0x1f000003) AM_READNOP AM_WRITE(bankoffset_w) /* banking */ 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(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(0x1f1bff08, 0x1f1bff0f) AM_WRITENOP /* ?? */
AM_RANGE(0x1f700000, 0x1f70ffff) AM_WRITE(dmaoffset_w) /* dma */ AM_RANGE(0x1f700000, 0x1f70ffff) AM_WRITE(dmaoffset_w) /* dma */
AM_RANGE(0x1fa00000, 0x1fbfffff) AM_ROMBANK("bank1") /* banked roms */ 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(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(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(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(0x1fb00000, 0x1fb0ffff) AM_READWRITE(rf5c296_io_r, rf5c296_io_w)
AM_RANGE(0x1fb40000, 0x1fb40003) AM_READWRITE(control_r, control_w) AM_RANGE(0x1fb40000, 0x1fb40003) AM_READWRITE(control_r, control_w)
AM_RANGE(0x1fb60000, 0x1fb60003) AM_WRITE(control2_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 ) static ADDRESS_MAP_START( vega_map, AS_PROGRAM, 32, vegaeo_state )
AM_RANGE(0x00000000, 0x001fffff) AM_RAM AM_RANGE(0x00000000, 0x001fffff) AM_RAM
AM_RANGE(0x80000000, 0x80013fff) AM_READWRITE(vega_vram_r, vega_vram_w) 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(0xfc200000, 0xfc2003ff) AM_RAM_WRITE(vega_palette_w) AM_SHARE("paletteram")
AM_RANGE(0xfc400000, 0xfc40005b) AM_WRITENOP // crt registers ? AM_RANGE(0xfc400000, 0xfc40005b) AM_WRITENOP // crt registers ?
AM_RANGE(0xfc600000, 0xfc600003) AM_WRITE(soundlatch_w) 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(0x1fa30000, 0x1fa30003) AM_NOP /* ?? */
AM_RANGE(0x1fa40000, 0x1fa40003) AM_READNOP /* ?? */ AM_RANGE(0x1fa40000, 0x1fa40003) AM_READNOP /* ?? */
AM_RANGE(0x1fa60000, 0x1fa60003) 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) AM_RANGE(0x1fb20000, 0x1fb20007) AM_READ(unknown_r)
ADDRESS_MAP_END ADDRESS_MAP_END