Removed init_scsibus() from scsibus_device as it was only used for passing the sector size, in reality this is an attribute of the hard drive and not the bus. It now asks the device for the size, however this will go away soon (nw)

This commit is contained in:
smf- 2012-09-21 18:35:50 +00:00
parent ea2666bdc5
commit feee0c35b8
14 changed files with 19 additions and 22 deletions

View File

@ -130,6 +130,7 @@ void scsibus_device::scsi_data_w( UINT8 data )
// only one line active.
case SCSI_PHASE_BUS_FREE:
last_id=scsibus_driveno(data);
sectorbytes = devices[last_id]->GetSectorBytes();
break;
case SCSI_PHASE_COMMAND:
@ -690,11 +691,6 @@ int scsibus_device::get_scsi_cmd_len(int cbyte)
return 6;
}
void scsibus_device::init_scsibus(int _sectorbytes)
{
sectorbytes = _sectorbytes;
}
scsibus_device::scsibus_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
: device_t(mconfig, SCSIBUS, "SCSI bus", tag, owner, clock)
{

View File

@ -118,9 +118,6 @@ public:
DECLARE_WRITE_LINE_MEMBER( scsi_ack_w );
DECLARE_WRITE_LINE_MEMBER( scsi_rst_w );
/* Initialisation at machine reset time */
void init_scsibus(int sectorbytes);
protected:
// device-level overrides
virtual void device_start();

View File

@ -773,3 +773,8 @@ void scsicd_device::SetDevice( void *_cdrom )
{
cdrom = (cdrom_file *)_cdrom;
}
int scsicd_device::GetSectorBytes()
{
return bytes_per_sector;
}

View File

@ -23,6 +23,7 @@ public:
virtual void ExecCommand( int *transferLength );
virtual void WriteData( UINT8 *data, int dataLength );
virtual void ReadData( UINT8 *data, int dataLength );
virtual int GetSectorBytes();
static struct cdrom_interface cd_intf;

View File

@ -128,6 +128,11 @@ int scsidev_device::GetDeviceID()
return scsiID;
}
int scsidev_device::GetSectorBytes()
{
return 0;
}
void scsidev_device::static_set_deviceid( device_t &device, int _scsiID )
{
scsidev_device &scsidev = downcast<scsidev_device &>(device);

View File

@ -24,6 +24,7 @@ public:
virtual void SetPhase( int phase );
virtual void GetPhase( int *phase );
virtual int GetDeviceID();
virtual int GetSectorBytes();
// configuration helpers
static void static_set_deviceid(device_t &device, int _scsiID);

View File

@ -324,3 +324,8 @@ void scsihd_device::SetDevice( void *_disk )
{
disk = (hard_disk_file *)_disk;
}
int scsihd_device::GetSectorBytes()
{
return sectorbytes;
}

View File

@ -23,6 +23,7 @@ public:
virtual void ExecCommand( int *transferLength );
virtual void WriteData( UINT8 *data, int dataLength );
virtual void ReadData( UINT8 *data, int dataLength );
virtual int GetSectorBytes();
protected:
// device-level overrides

View File

@ -1102,9 +1102,6 @@ void bullet_state::machine_start()
void bulletf_state::machine_start()
{
// initialize SASI bus
m_scsibus->init_scsibus(512);
// state saving
save_item(NAME(m_fdrdy));
save_item(NAME(m_rome));

View File

@ -1022,9 +1022,6 @@ void v1050_state::machine_start()
{
address_space &program = m_maincpu->space(AS_PROGRAM);
// initialize SASI bus
m_sasibus->init_scsibus(256);
// initialize I8214
m_pic->etlg_w(1);
m_pic->inte_w(1);

View File

@ -560,8 +560,6 @@ void base_d9060_device::device_start()
void base_d9060_device::device_reset()
{
m_sasibus->init_scsibus(256);
m_maincpu->set_input_line(M6502_SET_OVERFLOW, ASSERT_LINE);
m_maincpu->set_input_line(M6502_SET_OVERFLOW, CLEAR_LINE);

View File

@ -557,8 +557,6 @@ void e01_device::device_start()
void e01_device::device_reset()
{
m_scsibus->init_scsibus(512);
m_clk_timer->adjust(attotime::zero, 0, attotime::from_hz(200000));
membank("bank1")->set_entry(1);

View File

@ -206,8 +206,6 @@ void luxor_4105_device::device_start()
void luxor_4105_device::device_reset()
{
m_sasibus->init_scsibus(512);
m_cs = 0;
m_data = 0;
m_dma = 0;

View File

@ -2423,8 +2423,6 @@ static void hdc_reset(running_machine &machine)
rmnimbus_state *state = machine.driver_data<rmnimbus_state>();
scsibus_device *hdc = machine.device<scsibus_device>(SCSIBUS_TAG);
hdc->init_scsibus(512);
state->m_nimbus_drives.reg410_in=0;
state->m_nimbus_drives.reg410_in |= (hdc->get_scsi_line(SCSI_LINE_REQ) ? HDC_REQ_MASK : 0);
state->m_nimbus_drives.reg410_in |= (hdc->get_scsi_line(SCSI_LINE_CD) ? HDC_CD_MASK : 0);