mirror of
https://github.com/holub/mame
synced 2025-04-26 10:13:37 +03:00
(MESS) smartmed: devcb2. (nw)
This commit is contained in:
parent
226b3a9d37
commit
9271b7e281
@ -227,8 +227,7 @@ static S3C2440_INTERFACE( mini2440_s3c2440_intf )
|
||||
|
||||
static NAND_INTERFACE( mini2440_nand_intf )
|
||||
{
|
||||
NAND_CHIP_K9F1G08U0B,
|
||||
DEVCB_DEVICE_LINE_MEMBER("s3c2440", s3c2440_device, frnb_w)
|
||||
NAND_CHIP_K9F1G08U0B
|
||||
};
|
||||
|
||||
static MACHINE_CONFIG_START( mini2440, mini2440_state )
|
||||
@ -246,7 +245,6 @@ static MACHINE_CONFIG_START( mini2440, mini2440_state )
|
||||
|
||||
MCFG_SCREEN_UPDATE_DEVICE("s3c2440", s3c2440_device, screen_update)
|
||||
|
||||
|
||||
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
|
||||
MCFG_SOUND_ADD("dac1", DAC, 0)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0)
|
||||
@ -256,6 +254,7 @@ static MACHINE_CONFIG_START( mini2440, mini2440_state )
|
||||
MCFG_S3C2440_ADD("s3c2440", 12000000, mini2440_s3c2440_intf, "palette")
|
||||
|
||||
MCFG_NAND_ADD("nand", mini2440_nand_intf)
|
||||
MCFG_NAND_RNB_CALLBACK(DEVWRITELINE("s3c2440", s3c2440_device, frnb_w))
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
static INPUT_PORTS_START( mini2440 )
|
||||
|
@ -295,8 +295,7 @@ static S3C2410_INTERFACE( palmz22_s3c2410_intf )
|
||||
|
||||
static NAND_INTERFACE( palmz22_nand_intf )
|
||||
{
|
||||
NAND_CHIP_K9F5608U0D_J,
|
||||
DEVCB_DEVICE_LINE_MEMBER("s3c2410", s3c2410_device, frnb_w)
|
||||
NAND_CHIP_K9F5608U0D_J
|
||||
};
|
||||
|
||||
static MACHINE_CONFIG_START( palmz22, palmz22_state )
|
||||
@ -314,10 +313,10 @@ static MACHINE_CONFIG_START( palmz22, palmz22_state )
|
||||
|
||||
MCFG_SCREEN_UPDATE_DEVICE("s3c2410", s3c2410_device, screen_update)
|
||||
|
||||
|
||||
MCFG_S3C2410_ADD("s3c2410", 12000000, palmz22_s3c2410_intf, "palette")
|
||||
|
||||
MCFG_NAND_ADD("nand", palmz22_nand_intf)
|
||||
MCFG_NAND_RNB_CALLBACK(DEVWRITELINE("s3c2410", s3c2410_device, frnb_w))
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
static INPUT_PORTS_START( palmz22 )
|
||||
|
@ -75,11 +75,13 @@ enum
|
||||
const device_type NAND = &device_creator<nand_device>;
|
||||
|
||||
nand_device::nand_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
|
||||
: device_t(mconfig, NAND, "NAND Flash Memory", tag, owner, clock, "nand", __FILE__)
|
||||
: device_t(mconfig, NAND, "NAND Flash Memory", tag, owner, clock, "nand", __FILE__),
|
||||
m_write_rnb(*this)
|
||||
{
|
||||
}
|
||||
nand_device::nand_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source)
|
||||
: device_t(mconfig, type, name, tag, owner, clock, shortname, source)
|
||||
: device_t(mconfig, type, name, tag, owner, clock, shortname, source),
|
||||
m_write_rnb(*this)
|
||||
{
|
||||
}
|
||||
|
||||
@ -105,7 +107,6 @@ void nand_device::device_config_complete()
|
||||
else
|
||||
{
|
||||
memset(&m_chip, 0, sizeof(m_chip));
|
||||
memset(&m_devcb_write_line_cb, 0, sizeof(m_devcb_write_line_cb));
|
||||
m_id_len = 0;
|
||||
m_page_data_size = 0;
|
||||
m_page_total_size = 0;
|
||||
@ -137,7 +138,7 @@ void nand_device::device_start()
|
||||
#ifdef SMARTMEDIA_IMAGE_SAVE
|
||||
m_image_format = 0;
|
||||
#endif
|
||||
m_devcb_write_line_rnb.resolve( m_devcb_write_line_cb, *this);
|
||||
m_write_rnb.resolve_safe();
|
||||
}
|
||||
|
||||
/*
|
||||
@ -408,10 +409,10 @@ void nand_device::command_w(UINT8 data)
|
||||
m_status = (m_status & 0x80) | 0x40;
|
||||
m_accumulated_status = 0;
|
||||
m_mode_3065 = 0;
|
||||
if (!m_devcb_write_line_rnb.isnull())
|
||||
if (!m_write_rnb.isnull())
|
||||
{
|
||||
m_devcb_write_line_rnb( 0);
|
||||
m_devcb_write_line_rnb( 1);
|
||||
m_write_rnb( 0);
|
||||
m_write_rnb( 1);
|
||||
}
|
||||
break;
|
||||
case 0x00: // Read (1st cycle)
|
||||
@ -475,10 +476,10 @@ void nand_device::command_w(UINT8 data)
|
||||
else
|
||||
m_accumulated_status = 0;
|
||||
m_mode = SM_M_INIT;
|
||||
if (!m_devcb_write_line_rnb.isnull())
|
||||
if (!m_write_rnb.isnull())
|
||||
{
|
||||
m_devcb_write_line_rnb( 0);
|
||||
m_devcb_write_line_rnb( 1);
|
||||
m_write_rnb( 0);
|
||||
m_write_rnb( 1);
|
||||
}
|
||||
}
|
||||
break;
|
||||
@ -504,10 +505,10 @@ void nand_device::command_w(UINT8 data)
|
||||
m_mode = SM_M_INIT;
|
||||
if (m_pointer_mode == SM_PM_B)
|
||||
m_pointer_mode = SM_PM_A;
|
||||
if (!m_devcb_write_line_rnb.isnull())
|
||||
if (!m_write_rnb.isnull())
|
||||
{
|
||||
m_devcb_write_line_rnb( 0);
|
||||
m_devcb_write_line_rnb( 1);
|
||||
m_write_rnb( 0);
|
||||
m_write_rnb( 1);
|
||||
}
|
||||
}
|
||||
break;
|
||||
@ -541,10 +542,10 @@ void nand_device::command_w(UINT8 data)
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!m_devcb_write_line_rnb.isnull())
|
||||
if (!m_write_rnb.isnull())
|
||||
{
|
||||
m_devcb_write_line_rnb( 0);
|
||||
m_devcb_write_line_rnb( 1);
|
||||
m_write_rnb( 0);
|
||||
m_write_rnb( 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -7,6 +7,9 @@
|
||||
|
||||
//#define SMARTMEDIA_IMAGE_SAVE
|
||||
|
||||
#define MCFG_NAND_RNB_CALLBACK(_write) \
|
||||
devcb = &nand_device::set_rnb_wr_callback(*device, DEVCB2_##_write);
|
||||
|
||||
/***************************************************************************
|
||||
TYPE DEFINITIONS
|
||||
***************************************************************************/
|
||||
@ -64,7 +67,6 @@ struct nand_chip
|
||||
struct nand_interface
|
||||
{
|
||||
nand_chip m_chip;
|
||||
devcb_write_line m_devcb_write_line_cb;
|
||||
};
|
||||
|
||||
// ======================> nand_device
|
||||
@ -76,6 +78,8 @@ public:
|
||||
nand_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
||||
nand_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source);
|
||||
|
||||
template<class _Object> static devcb2_base &set_rnb_wr_callback(device_t &device, _Object object) { return downcast<nand_device &>(device).m_write_rnb.set_callback(object); }
|
||||
|
||||
int is_present();
|
||||
int is_protected();
|
||||
int is_busy();
|
||||
@ -130,7 +134,7 @@ protected:
|
||||
int m_row_address_cycles;
|
||||
int m_sequential_row_read;
|
||||
|
||||
devcb_resolved_write_line m_devcb_write_line_rnb;
|
||||
devcb2_write_line m_write_rnb;
|
||||
|
||||
#ifdef SMARTMEDIA_IMAGE_SAVE
|
||||
int m_image_format;
|
||||
|
Loading…
Reference in New Issue
Block a user