mirror of
https://github.com/holub/mame
synced 2025-04-21 16:01:56 +03:00
started thinking about how multi-endpoint devices will work, using a hierarchy has too many limitations (nw)
This commit is contained in:
parent
4212614f83
commit
fae0bac008
@ -46,6 +46,7 @@ void scsibus_device::device_start()
|
||||
if( scsidev != NULL )
|
||||
{
|
||||
devices[ deviceCount++ ] = scsidev;
|
||||
scsidev->m_scsibus = this;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -151,6 +151,5 @@ void scsidev_device::scsi_out( UINT32 data, UINT32 mask )
|
||||
|
||||
data_out = ( data_out & ~mask ) | ( data & mask );
|
||||
|
||||
scsibus_device *m_scsibus = downcast<scsibus_device *>( owner() );
|
||||
m_scsibus->scsi_update();
|
||||
}
|
||||
|
@ -25,21 +25,28 @@ Base class for SCSI devices.
|
||||
#define SCSI_MASK_RST ( 0x2000000 )
|
||||
#define SCSI_MASK_ALL ( 0x3ffffff )
|
||||
|
||||
class scsibus_device;
|
||||
|
||||
// base handler
|
||||
class scsidev_device : public device_t
|
||||
{
|
||||
friend class scsibus_device;
|
||||
|
||||
public:
|
||||
// construction/destruction
|
||||
scsidev_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock);
|
||||
|
||||
virtual void scsi_in( UINT32 data, UINT32 mask ) = 0;
|
||||
void scsi_out( UINT32 data, UINT32 mask );
|
||||
|
||||
UINT32 data_out;
|
||||
|
||||
protected:
|
||||
// device-level overrides
|
||||
virtual void device_start();
|
||||
|
||||
void scsi_out( UINT32 data, UINT32 mask );
|
||||
|
||||
private:
|
||||
virtual void scsi_in( UINT32 data, UINT32 mask ) = 0;
|
||||
|
||||
UINT32 data_out;
|
||||
scsibus_device *m_scsibus;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user