mirror of
https://github.com/holub/mame
synced 2025-04-26 18:23:08 +03:00
use ncr5380 as a c++ device (nw)
This commit is contained in:
parent
8786656348
commit
1537a32446
@ -145,7 +145,7 @@ UINT8 a2bus_scsi_device::read_c0nx(address_space &space, UINT8 offset)
|
||||
case 5:
|
||||
case 6:
|
||||
case 7:
|
||||
return ncr5380_read_reg(m_ncr5380, offset);
|
||||
return m_ncr5380->ncr5380_read_reg(offset);
|
||||
|
||||
case 9: // card's ID?
|
||||
return 7;
|
||||
@ -173,7 +173,7 @@ void a2bus_scsi_device::write_c0nx(address_space &space, UINT8 offset, UINT8 dat
|
||||
case 5:
|
||||
case 6:
|
||||
case 7:
|
||||
ncr5380_write_reg(m_ncr5380, offset, data);
|
||||
m_ncr5380->ncr5380_write_reg(offset, data);
|
||||
break;
|
||||
|
||||
case 0xa: // ROM and RAM banking (74LS273 at U3E)
|
||||
|
@ -42,7 +42,7 @@ protected:
|
||||
virtual UINT8 read_c800(address_space &space, UINT16 offset);
|
||||
virtual void write_c800(address_space &space, UINT16 offset, UINT8 data);
|
||||
|
||||
required_device<device_t> m_ncr5380;
|
||||
required_device<ncr5380_device> m_ncr5380;
|
||||
|
||||
private:
|
||||
UINT8 *m_rom;
|
||||
|
@ -974,7 +974,7 @@ Note: Asserting the DACK signal applies only to write operations to
|
||||
READ16_MEMBER ( mac_state::macplus_scsi_r )
|
||||
{
|
||||
int reg = (offset>>3) & 0xf;
|
||||
device_t *ncr = space.machine().device("ncr5380");
|
||||
ncr5380_device *ncr = space.machine().device<ncr5380_device>("ncr5380");
|
||||
|
||||
// logerror("macplus_scsi_r: offset %x mask %x\n", offset, mem_mask);
|
||||
|
||||
@ -983,23 +983,23 @@ READ16_MEMBER ( mac_state::macplus_scsi_r )
|
||||
reg = R5380_CURDATA_DTACK;
|
||||
}
|
||||
|
||||
return ncr5380_read_reg(ncr, reg)<<8;
|
||||
return ncr->ncr5380_read_reg(reg)<<8;
|
||||
}
|
||||
|
||||
READ32_MEMBER (mac_state::macii_scsi_drq_r)
|
||||
{
|
||||
device_t *ncr = space.machine().device("ncr5380");
|
||||
ncr5380_device *ncr = space.machine().device<ncr5380_device>("ncr5380");
|
||||
|
||||
switch (mem_mask)
|
||||
{
|
||||
case 0xff000000:
|
||||
return ncr5380_read_reg(ncr, R5380_CURDATA_DTACK)<<24;
|
||||
return ncr->ncr5380_read_reg(R5380_CURDATA_DTACK)<<24;
|
||||
|
||||
case 0xffff0000:
|
||||
return (ncr5380_read_reg(ncr, R5380_CURDATA_DTACK)<<24) | (ncr5380_read_reg(ncr, R5380_CURDATA_DTACK)<<16);
|
||||
return (ncr->ncr5380_read_reg(R5380_CURDATA_DTACK)<<24) | (ncr->ncr5380_read_reg(R5380_CURDATA_DTACK)<<16);
|
||||
|
||||
case 0xffffffff:
|
||||
return (ncr5380_read_reg(ncr, R5380_CURDATA_DTACK)<<24) | (ncr5380_read_reg(ncr, R5380_CURDATA_DTACK)<<16) | (ncr5380_read_reg(ncr, R5380_CURDATA_DTACK)<<8) | ncr5380_read_reg(ncr, R5380_CURDATA_DTACK);
|
||||
return (ncr->ncr5380_read_reg(R5380_CURDATA_DTACK)<<24) | (ncr->ncr5380_read_reg(R5380_CURDATA_DTACK)<<16) | (ncr->ncr5380_read_reg(R5380_CURDATA_DTACK)<<8) | ncr->ncr5380_read_reg(R5380_CURDATA_DTACK);
|
||||
|
||||
default:
|
||||
logerror("macii_scsi_drq_r: unknown mem_mask %08x\n", mem_mask);
|
||||
@ -1010,24 +1010,24 @@ READ32_MEMBER (mac_state::macii_scsi_drq_r)
|
||||
|
||||
WRITE32_MEMBER (mac_state::macii_scsi_drq_w)
|
||||
{
|
||||
device_t *ncr = space.machine().device("ncr5380");
|
||||
ncr5380_device *ncr = space.machine().device<ncr5380_device>("ncr5380");
|
||||
|
||||
switch (mem_mask)
|
||||
{
|
||||
case 0xff000000:
|
||||
ncr5380_write_reg(ncr, R5380_OUTDATA_DTACK, data>>24);
|
||||
ncr->ncr5380_write_reg(R5380_OUTDATA_DTACK, data>>24);
|
||||
break;
|
||||
|
||||
case 0xffff0000:
|
||||
ncr5380_write_reg(ncr, R5380_OUTDATA_DTACK, data>>24);
|
||||
ncr5380_write_reg(ncr, R5380_OUTDATA_DTACK, data>>16);
|
||||
ncr->ncr5380_write_reg(R5380_OUTDATA_DTACK, data>>24);
|
||||
ncr->ncr5380_write_reg(R5380_OUTDATA_DTACK, data>>16);
|
||||
break;
|
||||
|
||||
case 0xffffffff:
|
||||
ncr5380_write_reg(ncr, R5380_OUTDATA_DTACK, data>>24);
|
||||
ncr5380_write_reg(ncr, R5380_OUTDATA_DTACK, data>>16);
|
||||
ncr5380_write_reg(ncr, R5380_OUTDATA_DTACK, data>>8);
|
||||
ncr5380_write_reg(ncr, R5380_OUTDATA_DTACK, data&0xff);
|
||||
ncr->ncr5380_write_reg(R5380_OUTDATA_DTACK, data>>24);
|
||||
ncr->ncr5380_write_reg(R5380_OUTDATA_DTACK, data>>16);
|
||||
ncr->ncr5380_write_reg(R5380_OUTDATA_DTACK, data>>8);
|
||||
ncr->ncr5380_write_reg(R5380_OUTDATA_DTACK, data&0xff);
|
||||
break;
|
||||
|
||||
default:
|
||||
@ -1039,7 +1039,7 @@ WRITE32_MEMBER (mac_state::macii_scsi_drq_w)
|
||||
WRITE16_MEMBER ( mac_state::macplus_scsi_w )
|
||||
{
|
||||
int reg = (offset>>3) & 0xf;
|
||||
device_t *ncr = space.machine().device("ncr5380");
|
||||
ncr5380_device *ncr = space.machine().device<ncr5380_device>("ncr5380");
|
||||
|
||||
// logerror("macplus_scsi_w: data %x offset %x mask %x\n", data, offset, mem_mask);
|
||||
|
||||
@ -1048,13 +1048,13 @@ WRITE16_MEMBER ( mac_state::macplus_scsi_w )
|
||||
reg = R5380_OUTDATA_DTACK;
|
||||
}
|
||||
|
||||
ncr5380_write_reg(ncr, reg, data);
|
||||
ncr->ncr5380_write_reg(reg, data);
|
||||
}
|
||||
|
||||
WRITE16_MEMBER ( mac_state::macii_scsi_w )
|
||||
{
|
||||
int reg = (offset>>3) & 0xf;
|
||||
device_t *ncr = space.machine().device("ncr5380");
|
||||
ncr5380_device *ncr = space.machine().device<ncr5380_device>("ncr5380");
|
||||
|
||||
// logerror("macplus_scsi_w: data %x offset %x mask %x (PC=%x)\n", data, offset, mem_mask, cpu_get_pc(&space->device()));
|
||||
|
||||
@ -1063,7 +1063,7 @@ WRITE16_MEMBER ( mac_state::macii_scsi_w )
|
||||
reg = R5380_OUTDATA_DTACK;
|
||||
}
|
||||
|
||||
ncr5380_write_reg(ncr, reg, data>>8);
|
||||
ncr->ncr5380_write_reg(reg, data>>8);
|
||||
}
|
||||
|
||||
void mac_scsi_irq(running_machine &machine, int state)
|
||||
|
@ -156,7 +156,7 @@ void ncr5380_device::device_stop()
|
||||
//-------------------------------------------------
|
||||
// Public API
|
||||
//-------------------------------------------------
|
||||
READ8_DEVICE_HANDLER_TRAMPOLINE(ncr5380, ncr5380_read_reg)
|
||||
UINT8 ncr5380_device::ncr5380_read_reg(UINT32 offset)
|
||||
{
|
||||
int reg = offset & 7;
|
||||
UINT8 rv = 0;
|
||||
@ -240,7 +240,7 @@ READ8_DEVICE_HANDLER_TRAMPOLINE(ncr5380, ncr5380_read_reg)
|
||||
return rv;
|
||||
}
|
||||
|
||||
WRITE8_DEVICE_HANDLER_TRAMPOLINE(ncr5380, ncr5380_write_reg)
|
||||
void ncr5380_device::ncr5380_write_reg(UINT32 offset, UINT8 data)
|
||||
{
|
||||
int reg = offset & 7;
|
||||
|
||||
@ -472,13 +472,3 @@ void ncr5380_device::ncr5380_write_data(int bytes, UINT8 *pData)
|
||||
logerror("ncr5380: write to unknown device SCSI ID %d\n", m_last_id);
|
||||
}
|
||||
}
|
||||
|
||||
void ncr5380_read_data(device_t *dev, UINT8 bytes, UINT8 *pData)
|
||||
{
|
||||
return downcast<ncr5380_device*>(dev)->ncr5380_read_data(bytes, pData);
|
||||
}
|
||||
|
||||
void ncr5380_write_data(device_t *dev, UINT8 bytes, UINT8 *pData)
|
||||
{
|
||||
downcast<ncr5380_device*>(dev)->ncr5380_write_data(bytes, pData);
|
||||
}
|
||||
|
@ -76,13 +76,4 @@ private:
|
||||
// device type definition
|
||||
extern const device_type NCR5380;
|
||||
|
||||
/***************************************************************************
|
||||
PROTOTYPES
|
||||
***************************************************************************/
|
||||
READ8_DEVICE_HANDLER(ncr5380_read_reg);
|
||||
WRITE8_DEVICE_HANDLER(ncr5380_write_reg);
|
||||
|
||||
void ncr5380_read_data(device_t *dev, int bytes, UINT8 *pData);
|
||||
void ncr5380_write_data(device_t *dev, int bytes, UINT8 *pData);
|
||||
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user