diff --git a/.gitattributes b/.gitattributes index 47cd1358879..fac332fc2e0 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1189,8 +1189,8 @@ src/emu/machine/s3c2410.h svneol=native#text/plain src/emu/machine/s3c2440.c svneol=native#text/plain src/emu/machine/s3c2440.h svneol=native#text/plain src/emu/machine/s3c24xx.c svneol=native#text/plain -src/emu/machine/scsi.c svneol=native#text/plain -src/emu/machine/scsi.h svneol=native#text/plain +src/emu/machine/scsibus.c svneol=native#text/plain +src/emu/machine/scsibus.h svneol=native#text/plain src/emu/machine/scsicd.c svneol=native#text/plain src/emu/machine/scsicd.h svneol=native#text/plain src/emu/machine/scsidev.c svneol=native#text/plain @@ -6966,8 +6966,6 @@ src/mess/machine/samcoupe.c svneol=native#text/plain src/mess/machine/sapi1.c svneol=native#text/plain src/mess/machine/sc499.c svneol=native#text/plain src/mess/machine/sc499.h svneol=native#text/plain -src/mess/machine/scsibus.c svneol=native#text/plain -src/mess/machine/scsibus.h svneol=native#text/plain src/mess/machine/ser_mouse.c svneol=native#text/plain src/mess/machine/ser_mouse.h svneol=native#text/plain src/mess/machine/serial.c svneol=native#text/plain diff --git a/src/emu/emu.mak b/src/emu/emu.mak index a5e574c7958..3904ff3e81e 100644 --- a/src/emu/emu.mak +++ b/src/emu/emu.mak @@ -244,7 +244,7 @@ EMUMACHINEOBJS = \ $(EMUMACHINE)/s3c2410.o \ $(EMUMACHINE)/s3c2440.o \ $(EMUMACHINE)/s3520cf.o \ - $(EMUMACHINE)/scsi.o \ + $(EMUMACHINE)/scsibus.o \ $(EMUMACHINE)/scsicd.o \ $(EMUMACHINE)/scsidev.o \ $(EMUMACHINE)/scsihd.o \ diff --git a/src/emu/machine/53c810.c b/src/emu/machine/53c810.c index e54580d67da..b861fa223c0 100644 --- a/src/emu/machine/53c810.c +++ b/src/emu/machine/53c810.c @@ -662,10 +662,13 @@ void lsi53c810_device::device_start() memset(devices, 0, sizeof(devices)); // try to open the devices - for (i = 0; i < scsidevs->devs_present; i++) + for( device_t *device = owner()->first_subdevice(); device != NULL; device = device->next() ) { - scsidev_device *device = owner()->subdevice( scsidevs->devices[i].tag ); - devices[device->GetDeviceID()] = device; + scsidev_device *scsidev = dynamic_cast(device); + if( scsidev != NULL ) + { + devices[scsidev->GetDeviceID()] = scsidev; + } } } diff --git a/src/emu/machine/53c810.h b/src/emu/machine/53c810.h index 9fc4284e1dd..8d7afdca882 100644 --- a/src/emu/machine/53c810.h +++ b/src/emu/machine/53c810.h @@ -1,12 +1,10 @@ #ifndef LSI53C810_H #define LSI53C810_H -#include "scsi.h" #include "scsidev.h" struct LSI53C810interface { - const SCSIConfigTable *scsidevs; /* SCSI devices */ void (*irq_callback)(running_machine &machine, int); /* IRQ callback */ void (*dma_callback)(running_machine &machine, UINT32, UINT32, int, int); /* DMA callback */ UINT32 (*fetch)(running_machine &machine, UINT32 dsp); diff --git a/src/emu/machine/am53cf96.c b/src/emu/machine/am53cf96.c index 1b53a94c129..f0bd3582cac 100644 --- a/src/emu/machine/am53cf96.c +++ b/src/emu/machine/am53cf96.c @@ -178,10 +178,13 @@ void am53cf96_device::device_start() memset(devices, 0, sizeof(devices)); // try to open the devices - for (int i = 0; i < scsidevs->devs_present; i++) + for( device_t *device = owner()->first_subdevice(); device != NULL; device = device->next() ) { - scsidev_device *device = owner()->subdevice( scsidevs->devices[i].tag ); - devices[device->GetDeviceID()] = device; + scsidev_device *scsidev = dynamic_cast(device); + if( scsidev != NULL ) + { + devices[scsidev->GetDeviceID()] = scsidev; + } } fptr = 0; diff --git a/src/emu/machine/am53cf96.h b/src/emu/machine/am53cf96.h index 83dbc7a934b..45cf079f4fc 100644 --- a/src/emu/machine/am53cf96.h +++ b/src/emu/machine/am53cf96.h @@ -6,12 +6,10 @@ #ifndef _AM53CF96_H_ #define _AM53CF96_H_ -#include "scsi.h" #include "scsidev.h" struct AM53CF96interface { - const SCSIConfigTable *scsidevs; /* SCSI devices */ void (*irq_callback)(running_machine &machine); /* irq callback */ }; diff --git a/src/emu/machine/ncr539x.c b/src/emu/machine/ncr539x.c index 00e48a3bcd7..d786eb6249a 100644 --- a/src/emu/machine/ncr539x.c +++ b/src/emu/machine/ncr539x.c @@ -122,7 +122,6 @@ void ncr539x_device::device_config_complete() // or initialize to defaults if none provided else { - scsidevs = NULL; memset(&m_out_irq_cb, 0, sizeof(m_out_irq_cb)); memset(&m_out_drq_cb, 0, sizeof(m_out_drq_cb)); } @@ -156,10 +155,13 @@ void ncr539x_device::device_start() m_out_drq_func.resolve(m_out_drq_cb, *this); // try to open the devices - for (int i = 0; i < scsidevs->devs_present; i++) + for( device_t *device = owner()->first_subdevice(); device != NULL; device = device->next() ) { - scsidev_device *device = owner()->subdevice( scsidevs->devices[i].tag ); - m_scsi_devices[device->GetDeviceID()] = device; + scsidev_device *scsidev = dynamic_cast(device); + if( scsidev != NULL ) + { + m_scsi_devices[scsidev->GetDeviceID()] = scsidev; + } } m_operation_timer = timer_alloc(0, NULL); @@ -189,13 +191,6 @@ void ncr539x_device::device_reset() m_out_irq_func(CLEAR_LINE); m_out_drq_func(CLEAR_LINE); - - // try to open the devices - for (int i = 0; i < scsidevs->devs_present; i++) - { - scsidev_device *device = owner()->subdevice( scsidevs->devices[i].tag ); - m_scsi_devices[device->GetDeviceID()] = device; - } } void ncr539x_device::dma_read_data(int bytes, UINT8 *pData) diff --git a/src/emu/machine/ncr539x.h b/src/emu/machine/ncr539x.h index 02462a8d7ee..bc07207ff23 100644 --- a/src/emu/machine/ncr539x.h +++ b/src/emu/machine/ncr539x.h @@ -6,14 +6,12 @@ #ifndef _NCR539x_H_ #define _NCR539x_H_ -#include "machine/scsi.h" #include "machine/scsidev.h" struct NCR539Xinterface { - const SCSIConfigTable *scsidevs; /* SCSI devices */ - devcb_write_line m_out_irq_cb; /* IRQ line */ - devcb_write_line m_out_drq_cb; /* DRQ line */ + devcb_write_line m_out_irq_cb; /* IRQ line */ + devcb_write_line m_out_drq_cb; /* DRQ line */ }; //// 539x registers @@ -23,8 +21,8 @@ struct NCR539Xinterface // device stuff #define MCFG_NCR539X_ADD(_tag, _clock, _intrf) \ - MCFG_DEVICE_ADD(_tag, NCR539X, _clock) \ - MCFG_DEVICE_CONFIG(_intrf) + MCFG_DEVICE_ADD(_tag, NCR539X, _clock) \ + MCFG_DEVICE_CONFIG(_intrf) class ncr539x_device : public device_t, public NCR539Xinterface diff --git a/src/emu/machine/scsi.c b/src/emu/machine/scsi.c deleted file mode 100644 index 1674b330646..00000000000 --- a/src/emu/machine/scsi.c +++ /dev/null @@ -1,16 +0,0 @@ -#include "emu.h" - -int SCSILengthFromUINT8( UINT8 *length ) -{ - if( *length == 0 ) - { - return 256; - } - - return *length; -} - -int SCSILengthFromUINT16( UINT8 *length ) -{ - return ( *(length) << 8 ) | *(length + 1 ); -} diff --git a/src/emu/machine/scsi.h b/src/emu/machine/scsi.h deleted file mode 100644 index 886878c03fd..00000000000 --- a/src/emu/machine/scsi.h +++ /dev/null @@ -1,24 +0,0 @@ -/*************************************************************************** - - scsi.h - Header which defines the interface between SCSI device handlers - and SCSI interfaces. - -***************************************************************************/ - -#ifndef _SCSI_H_ -#define _SCSI_H_ - -typedef struct scsiconfigitem -{ - const char *tag; -} SCSIConfigItem; - -#define SCSI_MAX_DEVICES (16) - -typedef struct scsiconfigtable -{ - int devs_present; - const SCSIConfigItem devices[SCSI_MAX_DEVICES]; -} SCSIConfigTable; - -#endif diff --git a/src/mess/machine/scsibus.c b/src/emu/machine/scsibus.c similarity index 99% rename from src/mess/machine/scsibus.c rename to src/emu/machine/scsibus.c index e364fc37a04..232f392af66 100644 --- a/src/mess/machine/scsibus.c +++ b/src/emu/machine/scsibus.c @@ -8,7 +8,6 @@ */ #include "emu.h" -#include "machine/scsi.h" #include "machine/scsidev.h" #include "machine/scsibus.h" #include "debugger.h" @@ -885,8 +884,11 @@ void scsibus_device::device_start() for( device_t *device = first_subdevice(); device != NULL; device = device->next() ) { - scsidev_device *scsidev = downcast(device); - devices[scsidev->GetDeviceID()] = scsidev; + scsidev_device *scsidev = dynamic_cast(device); + if( scsidev != NULL ) + { + devices[scsidev->GetDeviceID()] = scsidev; + } } } diff --git a/src/mess/machine/scsibus.h b/src/emu/machine/scsibus.h similarity index 99% rename from src/mess/machine/scsibus.h rename to src/emu/machine/scsibus.h index 96e582cc4ad..2282d0767c8 100644 --- a/src/mess/machine/scsibus.h +++ b/src/emu/machine/scsibus.h @@ -10,7 +10,6 @@ #ifndef _SCSIBUS_H_ #define _SCSIBUS_H_ -#include "machine/scsi.h" #include "machine/scsidev.h" diff --git a/src/emu/machine/scsidev.c b/src/emu/machine/scsidev.c index c427188e861..a5c0546dc9d 100644 --- a/src/emu/machine/scsidev.c +++ b/src/emu/machine/scsidev.c @@ -107,3 +107,18 @@ void scsidev_device::static_set_deviceid( device_t &device, int _scsiID ) scsidev_device &scsidev = downcast(device); scsidev.scsiID = _scsiID; } + +int SCSILengthFromUINT8( UINT8 *length ) +{ + if( *length == 0 ) + { + return 256; + } + + return *length; +} + +int SCSILengthFromUINT16( UINT8 *length ) +{ + return ( *(length) << 8 ) | *(length + 1 ); +} diff --git a/src/emu/machine/wd33c93.c b/src/emu/machine/wd33c93.c index 6a8410e8f4f..463a78960a4 100644 --- a/src/emu/machine/wd33c93.c +++ b/src/emu/machine/wd33c93.c @@ -760,10 +760,13 @@ void wd33c93_device::device_start() memset(devices, 0, sizeof(devices)); // try to open the devices - for (int i = 0; i < scsidevs->devs_present; i++) + for( device_t *device = owner()->first_subdevice(); device != NULL; device = device->next() ) { - scsidev_device *device = owner()->subdevice( scsidevs->devices[i].tag ); - devices[device->GetDeviceID()] = device; + scsidev_device *scsidev = dynamic_cast(device); + if( scsidev != NULL ) + { + devices[scsidev->GetDeviceID()] = scsidev; + } } /* allocate a timer for commands */ diff --git a/src/emu/machine/wd33c93.h b/src/emu/machine/wd33c93.h index 654618b5853..a6a29ce8e82 100644 --- a/src/emu/machine/wd33c93.h +++ b/src/emu/machine/wd33c93.h @@ -6,12 +6,10 @@ #ifndef _WD33C93_H_ #define _WD33C93_H_ -#include "machine/scsi.h" #include "scsidev.h" struct WD33C93interface { - const SCSIConfigTable *scsidevs; /* SCSI devices */ void (*irq_callback)(running_machine &machine, int state); /* irq callback */ }; diff --git a/src/mame/drivers/cps3.c b/src/mame/drivers/cps3.c index 9f5f7069fbe..90ad90f1a05 100644 --- a/src/mame/drivers/cps3.c +++ b/src/mame/drivers/cps3.c @@ -388,8 +388,9 @@ Notes: #include "machine/intelfsh.h" #include "machine/nvram.h" #include "includes/cps3.h" -#include "machine/wd33c93.h" +#include "machine/scsibus.h" #include "machine/scsicd.h" +#include "machine/wd33c93.h" #define MASTER_CLOCK 42954500 @@ -2167,7 +2168,7 @@ static ADDRESS_MAP_START( cps3_map, AS_PROGRAM, 32, cps3_state ) AM_RANGE(0x05100000, 0x05100003) AM_WRITE(cps3_irq12_ack_w ) AM_RANGE(0x05110000, 0x05110003) AM_WRITE(cps3_irq10_ack_w ) - AM_RANGE(0x05140000, 0x05140003) AM_DEVREADWRITE8("wd33c93", wd33c93_device, read, write, 0x00ff00ff ) + AM_RANGE(0x05140000, 0x05140003) AM_DEVREADWRITE8("scsi:wd33c93", wd33c93_device, read, write, 0x00ff00ff ) AM_RANGE(0x06000000, 0x067fffff) AM_READWRITE(cps3_flash1_r, cps3_flash1_w ) /* Flash ROMs simm 1 */ AM_RANGE(0x06800000, 0x06ffffff) AM_READWRITE(cps3_flash2_r, cps3_flash2_w ) /* Flash ROMs simm 2 */ @@ -2261,17 +2262,12 @@ static INTERRUPT_GEN(cps3_other_interrupt) //static sh2_cpu_core sh2cp_conf_slave = { 1, NULL }; -static const SCSIConfigTable dev_table = +static const SCSIBus_interface scsibus_intf = { - 1, /* 1 SCSI device */ - { - { ":cdrom" } - } }; -static const struct WD33C93interface scsi_intf = +static const struct WD33C93interface wd33c93_intf = { - &dev_table, /* SCSI device table */ NULL /* command completion IRQ */ }; @@ -2509,8 +2505,9 @@ static MACHINE_CONFIG_START( cps3, cps3_state ) MCFG_CPU_PERIODIC_INT(cps3_other_interrupt,80) /* ?source? */ MCFG_CPU_CONFIG(sh2_conf_cps3) - MCFG_WD33C93_ADD("wd33c93", scsi_intf); - MCFG_SCSIDEV_ADD("cdrom", SCSICD, SCSI_ID_1) + MCFG_SCSIBUS_ADD("scsi", scsibus_intf) + MCFG_SCSIDEV_ADD("scsi:cdrom", SCSICD, SCSI_ID_1) + MCFG_WD33C93_ADD("scsi:wd33c93", wd33c93_intf) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) @@ -2615,7 +2612,7 @@ MACHINE_CONFIG_END ROM_REGION( 0x200000, "simm5.1", 0 ) ROMX_LOAD( "redearth-simm5.1", 0x00000, 0x200000, CRC(9b8cb56b) SHA1(2ff1081dc99bb7c2f1e036f4c112137c96b83d23), flags ) \ #define REDEARTH_961121_CDROM \ - DISK_REGION( "cdrom" ) DISK_IMAGE_READONLY( "cap-wzd-5", 0, BAD_DUMP SHA1(e5676752b08283dc4a98c3d7b759e8aa6dcd0679) ) \ + DISK_REGION( "scsi:cdrom" ) DISK_IMAGE_READONLY( "cap-wzd-5", 0, BAD_DUMP SHA1(e5676752b08283dc4a98c3d7b759e8aa6dcd0679) ) \ #define REDEARTH_961023_FLASH( flags ) \ ROM_REGION( 0x200000, "simm1.0", 0 ) ROMX_LOAD( "redearth(__961023)-simm1.0", 0x00000, 0x200000, CRC(65bac346) SHA1(6f4ba0c2cae91a37fc97bea5fc8a50aaf6ca6513), flags ) \ @@ -2642,7 +2639,7 @@ MACHINE_CONFIG_END ROM_REGION( 0x200000, "simm5.1", 0 ) ROMX_LOAD( "redearth-simm5.1", 0x00000, 0x200000, CRC(9b8cb56b) SHA1(2ff1081dc99bb7c2f1e036f4c112137c96b83d23), flags ) \ #define REDEARTH_961023_CDROM \ - DISK_REGION( "cdrom" ) DISK_IMAGE_READONLY( "cap-wzd-3", 0, SHA1(a6ff67093db6bc80ee5fc46e4300e0177b213a52) ) \ + DISK_REGION( "scsi:cdrom" ) DISK_IMAGE_READONLY( "cap-wzd-3", 0, SHA1(a6ff67093db6bc80ee5fc46e4300e0177b213a52) ) \ #define SFIII_970204_FLASH( flags ) \ ROM_REGION( 0x200000, "simm1.0", 0 ) ROMX_LOAD( "sfiii-simm1.0", 0x00000, 0x200000, CRC(cfc9e45a) SHA1(5d9061f76680642e730373e3ac29b24926dc5c0c), flags ) \ @@ -2669,7 +2666,7 @@ MACHINE_CONFIG_END ROM_REGION( 0x200000, "simm5.1", 0 ) ROMX_LOAD( "sfiii-simm5.1", 0x00000, 0x200000, CRC(c6f1c066) SHA1(00de492dd1ef7aef05027a8c501c296b6602e917), flags ) \ #define SFIII_970204_CDROM \ - DISK_REGION( "cdrom" ) DISK_IMAGE_READONLY( "cap-sf3-3", 0, BAD_DUMP SHA1(606e62cc5f46275e366e7dbb412dbaeb7e54cd0c) ) \ + DISK_REGION( "scsi:cdrom" ) DISK_IMAGE_READONLY( "cap-sf3-3", 0, BAD_DUMP SHA1(606e62cc5f46275e366e7dbb412dbaeb7e54cd0c) ) \ #define SFIII2_970930_FLASH( flags ) \ ROM_REGION( 0x200000, "simm1.0", 0 ) ROMX_LOAD( "sfiii2-simm1.0", 0x00000, 0x200000, CRC(2d666f0b) SHA1(68de034b3a3aeaf4b26122a84ad48b0b763e4122), flags ) \ @@ -2706,7 +2703,7 @@ MACHINE_CONFIG_END ROM_REGION( 0x200000, "simm5.7", 0 ) ROMX_LOAD( "sfiii2-simm5.7", 0x00000, 0x200000, CRC(93ffa199) SHA1(33ec2379f30c6fdf47ba72c1d0cad8bdd02f17df), flags ) \ #define SFIII2_970930_CDROM \ - DISK_REGION( "cdrom" ) DISK_IMAGE_READONLY( "cap-3ga000", 0, BAD_DUMP SHA1(4e162885b0b3265a56e0265037bcf247e820f027) ) \ + DISK_REGION( "scsi:cdrom" ) DISK_IMAGE_READONLY( "cap-3ga000", 0, BAD_DUMP SHA1(4e162885b0b3265a56e0265037bcf247e820f027) ) \ #define JOJO_990128_FLASH( flags ) \ ROM_REGION( 0x200000, "simm1.0", 0 ) ROMX_LOAD( "jojo(__990128)-simm1.0", 0x00000, 0x200000, CRC(9516948b) SHA1(4d7e6c1eb7d1bebff2a5069bcd186070a9105474), flags ) \ @@ -2737,7 +2734,7 @@ MACHINE_CONFIG_END ROM_REGION( 0x200000, "simm5.1", 0 ) ROMX_LOAD( "jojo-simm5.1", 0x00000, 0x200000, CRC(734fd162) SHA1(16cdfac74d18a6c2216afb1ce6afbd7f15297c32), flags ) \ #define JOJO_990128_CDROM \ - DISK_REGION( "cdrom" ) DISK_IMAGE_READONLY( "cap-jjk-3", 0, SHA1(dc6e74b5e02e13f62cb8c4e234dd6061501e49c1) ) \ + DISK_REGION( "scsi:cdrom" ) DISK_IMAGE_READONLY( "cap-jjk-3", 0, SHA1(dc6e74b5e02e13f62cb8c4e234dd6061501e49c1) ) \ #define JOJO_990108_FLASH( flags ) \ ROM_REGION( 0x200000, "simm1.0", 0 ) ROMX_LOAD( "jojo(__990108)-simm1.0", 0x00000, 0x200000, CRC(cfbc38d6) SHA1(c33e3a51fe8ab54e0912a1d6e662fe1ade73cee7), flags ) \ @@ -2768,7 +2765,7 @@ MACHINE_CONFIG_END ROM_REGION( 0x200000, "simm5.1", 0 ) ROMX_LOAD( "jojo-simm5.1", 0x00000, 0x200000, CRC(734fd162) SHA1(16cdfac74d18a6c2216afb1ce6afbd7f15297c32), flags ) \ #define JOJO_990108_CDROM \ - DISK_REGION( "cdrom" ) DISK_IMAGE_READONLY( "cap-jjk-2", 0, BAD_DUMP SHA1(0f5c09171409213e191a607ee89ca3a91fe9c96a) ) \ + DISK_REGION( "scsi:cdrom" ) DISK_IMAGE_READONLY( "cap-jjk-2", 0, BAD_DUMP SHA1(0f5c09171409213e191a607ee89ca3a91fe9c96a) ) \ #define JOJO_981202_FLASH( flags ) \ ROM_REGION( 0x200000, "simm1.0", 0 ) ROMX_LOAD( "jojo(__981202)-simm1.0", 0x00000, 0x200000, CRC(e06ba886) SHA1(4defd5e8e1e6d0c439fed8a6454e89a59e24ea4c), flags ) \ @@ -2799,7 +2796,7 @@ MACHINE_CONFIG_END ROM_REGION( 0x200000, "simm5.1", 0 ) ROMX_LOAD( "jojo-simm5.1", 0x00000, 0x200000, CRC(734fd162) SHA1(16cdfac74d18a6c2216afb1ce6afbd7f15297c32), flags ) \ #define JOJO_981202_CDROM \ - DISK_REGION( "cdrom" ) DISK_IMAGE_READONLY( "cap-jjk000", 0, BAD_DUMP SHA1(09869f6d8c032b527e02d815749dc8fab1289e86) ) \ + DISK_REGION( "scsi:cdrom" ) DISK_IMAGE_READONLY( "cap-jjk000", 0, BAD_DUMP SHA1(09869f6d8c032b527e02d815749dc8fab1289e86) ) \ #define SFIII3_990608_FLASH( flags ) \ ROM_REGION( 0x200000, "simm1.0", 0 ) ROMX_LOAD( "sfiii3(__990608)-simm1.0", 0x00000, 0x200000, CRC(11dfd3cd) SHA1(dba1f77c46e80317e3279298411154dfb6db2309), flags ) \ @@ -2844,7 +2841,7 @@ MACHINE_CONFIG_END ROM_REGION( 0x200000, "simm6.7", 0 ) ROMX_LOAD( "sfiii3-simm6.7", 0x00000, 0x200000, CRC(cc5f4187) SHA1(248ddace21ed4736a56e92f77cc6ad219d7fef0b), flags ) \ #define SFIII3_990608_CDROM \ - DISK_REGION( "cdrom" ) DISK_IMAGE_READONLY( "cap-33s-2", 0, BAD_DUMP SHA1(41b0e246db91cbfc3f8f0f62d981734feb4b4ab5) ) \ + DISK_REGION( "scsi:cdrom" ) DISK_IMAGE_READONLY( "cap-33s-2", 0, BAD_DUMP SHA1(41b0e246db91cbfc3f8f0f62d981734feb4b4ab5) ) \ #define SFIII3_990512_FLASH( flags ) \ ROM_REGION( 0x200000, "simm1.0", 0 ) ROMX_LOAD( "sfiii3(__990512)-simm1.0", 0x00000, 0x200000, CRC(66e66235) SHA1(0a98038721d176458d4f85dbd76c5edb93a65322), flags ) \ @@ -2889,7 +2886,7 @@ MACHINE_CONFIG_END ROM_REGION( 0x200000, "simm6.7", 0 ) ROMX_LOAD( "sfiii3-simm6.7", 0x00000, 0x200000, CRC(cc5f4187) SHA1(248ddace21ed4736a56e92f77cc6ad219d7fef0b), flags ) \ #define SFIII3_990512_CDROM \ - DISK_REGION( "cdrom" ) DISK_IMAGE_READONLY( "cap-33s-1", 0, BAD_DUMP SHA1(2f4a9006a31903114f9f9dc09465ae253e565c51) ) \ + DISK_REGION( "scsi:cdrom" ) DISK_IMAGE_READONLY( "cap-33s-1", 0, BAD_DUMP SHA1(2f4a9006a31903114f9f9dc09465ae253e565c51) ) \ #define JOJOBA_990927_FLASH( flags ) \ ROM_REGION( 0x200000, "simm1.0", 0 ) ROMX_LOAD( "jojoba(__990927)-simm1.0", 0x00000, 0x200000, CRC(adcd8377) SHA1(f1aacbe061e3bcade5cca34435c3f86aec5f1499), flags ) \ @@ -2926,7 +2923,7 @@ MACHINE_CONFIG_END ROM_REGION( 0x200000, "simm5.7", 0 ) ROMX_LOAD( "jojoba-simm5.7", 0x00000, 0x200000, CRC(8c8be520) SHA1(c461f3f76a83592b36b29afb316679a7c8972404), flags ) \ #define JOJOBA_990927_CDROM \ - DISK_REGION( "cdrom" ) DISK_IMAGE_READONLY( "cap-jjm-1", 0, SHA1(8628d3fa555fbd5f4121082e925c1834b76c5e65) ) \ + DISK_REGION( "scsi:cdrom" ) DISK_IMAGE_READONLY( "cap-jjm-1", 0, SHA1(8628d3fa555fbd5f4121082e925c1834b76c5e65) ) \ #define JOJOBA_990913_FLASH( flags ) \ ROM_REGION( 0x200000, "simm1.0", 0 ) ROMX_LOAD( "jojoba(__990913)-simm1.0", 0x00000, 0x200000, CRC(76976231) SHA1(90adde7e5983ec6a4e02789d5cefe9e85c9c52d5), flags ) \ @@ -2963,7 +2960,7 @@ MACHINE_CONFIG_END ROM_REGION( 0x200000, "simm5.7", 0 ) ROMX_LOAD( "jojoba-simm5.7", 0x00000, 0x200000, CRC(8c8be520) SHA1(c461f3f76a83592b36b29afb316679a7c8972404), flags ) \ #define JOJOBA_990913_CDROM \ - DISK_REGION( "cdrom" ) DISK_IMAGE_READONLY( "cap-jjm-0", 0, BAD_DUMP SHA1(0678a0baeb853dcff1d230c14f0873cc9f143d7b) ) \ + DISK_REGION( "scsi:cdrom" ) DISK_IMAGE_READONLY( "cap-jjm-0", 0, BAD_DUMP SHA1(0678a0baeb853dcff1d230c14f0873cc9f143d7b) ) \ /* CD sets - use CD BIOS roms */ diff --git a/src/mame/drivers/konamigq.c b/src/mame/drivers/konamigq.c index 851502201dc..625a27fc93a 100644 --- a/src/mame/drivers/konamigq.c +++ b/src/mame/drivers/konamigq.c @@ -52,15 +52,19 @@ #include "includes/psx.h" #include "includes/konamigx.h" #include "machine/eeprom.h" -#include "machine/am53cf96.h" +#include "machine/scsibus.h" #include "machine/scsihd.h" +#include "machine/am53cf96.h" #include "sound/k054539.h" class konamigq_state : public psx_state { public: konamigq_state(const machine_config &mconfig, device_type type, const char *tag) - : psx_state(mconfig, type, tag) { } + : psx_state(mconfig, type, tag), + m_am53cf96(*this, "scsi:am53cf96"){ } + + required_device m_am53cf96; UINT8 m_sndto000[ 16 ]; UINT8 m_sndtor3k[ 16 ]; @@ -177,7 +181,7 @@ READ32_MEMBER(konamigq_state::pcmram_r) static ADDRESS_MAP_START( konamigq_map, AS_PROGRAM, 32, konamigq_state ) AM_RANGE(0x00000000, 0x003fffff) AM_RAM AM_SHARE("share1") /* ram */ - AM_RANGE(0x1f000000, 0x1f00001f) AM_DEVREADWRITE8("am53cf96", am53cf96_device, read, write, 0x00ff00ff) + AM_RANGE(0x1f000000, 0x1f00001f) AM_DEVREADWRITE8("scsi:am53cf96", am53cf96_device, read, write, 0x00ff00ff) AM_RANGE(0x1f100000, 0x1f10000f) AM_WRITE(soundr3k_w) AM_RANGE(0x1f100010, 0x1f10001f) AM_READ(soundr3k_r) AM_RANGE(0x1f180000, 0x1f180003) AM_WRITE(eeprom_w) @@ -260,8 +264,6 @@ static const k054539_interface k054539_config = static void scsi_dma_read( konamigq_state *state, UINT32 n_address, INT32 n_size ) { - am53cf96_device *am53cf96 = state->machine().device("am53cf96"); - UINT32 *p_n_psxram = state->m_p_n_psxram; UINT8 *sector_buffer = state->m_sector_buffer; int i; @@ -277,7 +279,7 @@ static void scsi_dma_read( konamigq_state *state, UINT32 n_address, INT32 n_size { n_this = n_size; } - am53cf96->dma_read_data( n_this * 4, sector_buffer ); + state->m_am53cf96->dma_read_data( n_this * 4, sector_buffer ); n_size -= n_this; i = 0; @@ -304,17 +306,12 @@ static void scsi_irq(running_machine &machine) psx_irq_set(machine, 0x400); } -static const SCSIConfigTable dev_table = +static const SCSIBus_interface scsibus_intf = { - 1, /* 1 SCSI device */ - { - { ":disk" } - } }; -static const struct AM53CF96interface scsi_intf = +static const struct AM53CF96interface am53cf96_intf = { - &dev_table, /* SCSI device table */ &scsi_irq, /* command completion IRQ */ }; @@ -357,9 +354,9 @@ static MACHINE_CONFIG_START( konamigq, konamigq_state ) MCFG_EEPROM_93C46_ADD("eeprom") MCFG_EEPROM_DATA(konamigq_def_eeprom, 128) - MCFG_AM53CF96_ADD("am53cf96", scsi_intf); - - MCFG_SCSIDEV_ADD("disk", SCSIHD, SCSI_ID_0) + MCFG_SCSIBUS_ADD("scsi", scsibus_intf) + MCFG_SCSIDEV_ADD("scsi:disk", SCSIHD, SCSI_ID_0) + MCFG_AM53CF96_ADD("scsi:am53cf96", am53cf96_intf) /* video hardware */ MCFG_PSXGPU_ADD( "maincpu", "gpu", CXD8538Q, 0x200000, XTAL_53_693175MHz ) @@ -470,7 +467,7 @@ ROM_START( cryptklr ) ROM_REGION32_LE( 0x080000, "user1", 0 ) /* bios */ ROM_LOAD( "420b03.27p", 0x0000000, 0x080000, CRC(aab391b1) SHA1(bf9dc7c0c8168c22a4be266fe6a66d3738df916b) ) - DISK_REGION( "disk" ) + DISK_REGION( "scsi:disk" ) DISK_IMAGE( "420uaa04", 0, SHA1(67cb1418fc0de2a89fc61847dc9efb9f1bebb347) ) ROM_END diff --git a/src/mame/drivers/konamigv.c b/src/mame/drivers/konamigv.c index 0f23b25d890..e8e80ddff97 100644 --- a/src/mame/drivers/konamigv.c +++ b/src/mame/drivers/konamigv.c @@ -125,8 +125,9 @@ Notes: #include "includes/psx.h" #include "machine/eeprom.h" #include "machine/intelfsh.h" -#include "machine/am53cf96.h" +#include "machine/scsibus.h" #include "machine/scsicd.h" +#include "machine/am53cf96.h" #include "sound/spu.h" #include "sound/cdda.h" @@ -134,7 +135,10 @@ class konamigv_state : public psx_state { public: konamigv_state(const machine_config &mconfig, device_type type, const char *tag) - : psx_state(mconfig, type, tag) { } + : psx_state(mconfig, type, tag), + m_am53cf96(*this, "scsi:am53cf96"){ } + + required_device m_am53cf96; UINT32 m_flash_address; @@ -190,7 +194,7 @@ READ32_MEMBER(konamigv_state::mb89371_r) static ADDRESS_MAP_START( konamigv_map, AS_PROGRAM, 32, konamigv_state ) AM_RANGE(0x00000000, 0x001fffff) AM_RAM AM_SHARE("share1") /* ram */ - AM_RANGE(0x1f000000, 0x1f00001f) AM_DEVREADWRITE8("am53cf96", am53cf96_device, read, write, 0x00ff00ff) + AM_RANGE(0x1f000000, 0x1f00001f) AM_DEVREADWRITE8("scsi:am53cf96", am53cf96_device, read, write, 0x00ff00ff) AM_RANGE(0x1f100000, 0x1f100003) AM_READ_PORT("P1") AM_RANGE(0x1f100004, 0x1f100007) AM_READ_PORT("P2") AM_RANGE(0x1f100008, 0x1f10000b) AM_READ_PORT("P3_P4") @@ -209,8 +213,6 @@ ADDRESS_MAP_END static void scsi_dma_read( konamigv_state *state, UINT32 n_address, INT32 n_size ) { - am53cf96_device *am53cf96 = state->machine().device("am53cf96"); - UINT32 *p_n_psxram = state->m_p_n_psxram; UINT8 *sector_buffer = state->m_sector_buffer; int i; @@ -229,12 +231,12 @@ static void scsi_dma_read( konamigv_state *state, UINT32 n_address, INT32 n_size if( n_this < 2048 / 4 ) { /* non-READ commands */ - am53cf96->dma_read_data( n_this * 4, sector_buffer ); + state->m_am53cf96->dma_read_data( n_this * 4, sector_buffer ); } else { /* assume normal 2048 byte data for now */ - am53cf96->dma_read_data( 2048, sector_buffer ); + state->m_am53cf96->dma_read_data( 2048, sector_buffer ); n_this = 2048 / 4; } n_size -= n_this; @@ -256,8 +258,6 @@ static void scsi_dma_read( konamigv_state *state, UINT32 n_address, INT32 n_size static void scsi_dma_write( konamigv_state *state, UINT32 n_address, INT32 n_size ) { - am53cf96_device *am53cf96 = state->machine().device("am53cf96"); - UINT32 *p_n_psxram = state->m_p_n_psxram; UINT8 *sector_buffer = state->m_sector_buffer; int i; @@ -287,7 +287,7 @@ static void scsi_dma_write( konamigv_state *state, UINT32 n_address, INT32 n_siz n_this--; } - am53cf96->dma_write_data( n_this * 4, sector_buffer ); + state->m_am53cf96->dma_write_data( n_this * 4, sector_buffer ); } } @@ -296,17 +296,12 @@ static void scsi_irq(running_machine &machine) psx_irq_set(machine, 0x400); } -static const SCSIConfigTable dev_table = +static const SCSIBus_interface scsibus_intf = { - 1, /* 1 SCSI device */ - { - { ":cdrom", } - } }; -static const struct AM53CF96interface scsi_intf = +static const struct AM53CF96interface am53cf96_intf = { - &dev_table, /* SCSI device table */ &scsi_irq, /* command completion IRQ */ }; @@ -331,7 +326,7 @@ static MACHINE_RESET( konamigv ) { /* also hook up CDDA audio to the CD-ROM drive */ void *cdrom; - scsidev_device *scsidev = machine.device("cdrom"); + scsidev_device *scsidev = machine.device("scsi:cdrom"); scsidev->GetDevice( &cdrom ); cdda_set_cdrom(machine.device("cdda"), cdrom); } @@ -357,9 +352,9 @@ static MACHINE_CONFIG_START( konamigv, konamigv_state ) MCFG_EEPROM_93C46_ADD("eeprom") - MCFG_AM53CF96_ADD("am53cf96", scsi_intf); - - MCFG_SCSIDEV_ADD("cdrom", SCSICD, SCSI_ID_4) + MCFG_SCSIBUS_ADD("scsi", scsibus_intf) + MCFG_SCSIDEV_ADD("scsi:cdrom", SCSICD, SCSI_ID_4) + MCFG_AM53CF96_ADD("scsi:am53cf96", am53cf96_intf) /* video hardware */ MCFG_PSXGPU_ADD( "maincpu", "gpu", CXD8514Q, 0x100000, XTAL_53_693175MHz ) @@ -779,7 +774,7 @@ ROM_START( susume ) ROM_REGION16_BE( 0x0000080, "eeprom", 0 ) /* default eeprom */ ROM_LOAD( "susume.25c", 0x000000, 0x000080, CRC(52f17df7) SHA1(b8ad7787b0692713439d7d9bebfa0c801c806006) ) - DISK_REGION( "cdrom" ) + DISK_REGION( "scsi:cdrom" ) DISK_IMAGE_READONLY( "gv027j1", 0, BAD_DUMP SHA1(e7e6749ac65de7771eb8fed7d5eefaec3f902255) ) ROM_END @@ -789,7 +784,7 @@ ROM_START( hyperath ) ROM_REGION16_BE( 0x0000080, "eeprom", 0 ) /* default eeprom */ ROM_LOAD( "hyperath.25c", 0x000000, 0x000080, CRC(20a8c435) SHA1(a0f203a999757fba68b391c525ac4b9684a57ba9) ) - DISK_REGION( "cdrom" ) + DISK_REGION( "scsi:cdrom" ) DISK_IMAGE_READONLY( "hyperath", 0, BAD_DUMP SHA1(694ef6200c61d3052316100cd9251b495eab88a1) ) ROM_END @@ -799,7 +794,7 @@ ROM_START( pbball96 ) ROM_REGION16_BE( 0x0000080, "eeprom", 0 ) /* default eeprom */ ROM_LOAD( "pbball96.25c", 0x000000, 0x000080, CRC(405a7fc9) SHA1(e2d978f49748ba3c4a425188abcd3d272ec23907) ) - DISK_REGION( "cdrom" ) + DISK_REGION( "scsi:cdrom" ) DISK_IMAGE_READONLY( "pbball96", 0, BAD_DUMP SHA1(ebd0ea18ff9ce300ea1e30d66a739a96acfb0621) ) ROM_END @@ -809,7 +804,7 @@ ROM_START( weddingr ) ROM_REGION16_BE( 0x0000080, "eeprom", 0 ) /* default eeprom */ ROM_LOAD( "weddingr.25c", 0x000000, 0x000080, CRC(b90509a0) SHA1(41510a0ceded81dcb26a70eba97636d38d3742c3) ) - DISK_REGION( "cdrom" ) + DISK_REGION( "scsi:cdrom" ) DISK_IMAGE_READONLY( "weddingr", 0, BAD_DUMP SHA1(4e7122b191747ab7220fe4ce1b4483d62ab579af) ) ROM_END @@ -819,7 +814,7 @@ ROM_START( simpbowl ) ROM_REGION16_BE( 0x0000080, "eeprom", 0 ) /* default eeprom */ ROM_LOAD( "simpbowl.25c", 0x000000, 0x000080, CRC(2c61050c) SHA1(16ae7f81cbe841c429c5c7326cf83e87db1782bf) ) - DISK_REGION( "cdrom" ) + DISK_REGION( "scsi:cdrom" ) DISK_IMAGE_READONLY( "simpbowl", 0, BAD_DUMP SHA1(72b32a863e6891ad3bfc1fdfe9cb90a2bd334d71) ) ROM_END @@ -829,7 +824,7 @@ ROM_START( btchamp ) ROM_REGION16_BE( 0x0000080, "eeprom", 0 ) /* default eeprom */ ROM_LOAD( "btchmp.25c", 0x000000, 0x000080, CRC(6d02ea54) SHA1(d3babf481fd89db3aec17f589d0d3d999a2aa6e1) ) - DISK_REGION( "cdrom" ) + DISK_REGION( "scsi:cdrom" ) DISK_IMAGE_READONLY( "btchamp", 0, BAD_DUMP SHA1(c9c858e9034826e1a12c3c003dd068a49a3577e1) ) ROM_END @@ -839,7 +834,7 @@ ROM_START( kdeadeye ) ROM_REGION16_BE( 0x0000080, "eeprom", 0 ) /* default eeprom */ ROM_LOAD( "kdeadeye.25c", 0x000000, 0x000080, CRC(3935d2df) SHA1(cbb855c475269077803c380dbc3621e522efe51e) ) - DISK_REGION( "cdrom" ) + DISK_REGION( "scsi:cdrom" ) DISK_IMAGE_READONLY( "kdeadeye", 0, BAD_DUMP SHA1(3c737c51717925be724dcb93d30769649029b8ce) ) ROM_END @@ -849,7 +844,7 @@ ROM_START( nagano98 ) ROM_REGION16_BE( 0x0000080, "eeprom", 0 ) /* default eeprom */ ROM_LOAD( "nagano98.25c", 0x000000, 0x000080, CRC(b64b7451) SHA1(a77a37e0cc580934d1e7e05d523bae0acd2c1480) ) - DISK_REGION( "cdrom" ) + DISK_REGION( "scsi:cdrom" ) DISK_IMAGE_READONLY( "nagano98", 0, BAD_DUMP SHA1(1be7bd4531f249ff2233dd40a206c8d60054a8c6) ) ROM_END @@ -859,7 +854,7 @@ ROM_START( naganoj ) ROM_REGION16_BE( 0x0000080, "eeprom", 0 ) /* default eeprom */ ROM_LOAD( "720ja.25c", 0x000000, 0x000080, CRC(34c473ba) SHA1(768225b04a293bdbc114a092d14dee28d52044e9) ) - DISK_REGION( "cdrom" ) + DISK_REGION( "scsi:cdrom" ) DISK_IMAGE_READONLY( "720jaa01", 0, SHA1(437160996551ef4dfca43899d1d14beca62eb4c9) ) ROM_END @@ -869,7 +864,7 @@ ROM_START( tokimosh ) ROM_REGION16_BE( 0x0000080, "eeprom", 0 ) /* default eeprom */ ROM_LOAD( "tokimosh.25c", 0x000000, 0x000080, CRC(e57b833f) SHA1(f18a0974a6be69dc179706643aab837ff61c2738) ) - DISK_REGION( "cdrom" ) + DISK_REGION( "scsi:cdrom" ) DISK_IMAGE_READONLY( "755jaa01", 0, BAD_DUMP SHA1(4af080f9650e34d1ddb91bb763469d5fb3c754bd) ) ROM_END @@ -879,7 +874,7 @@ ROM_START( tokimosp ) ROM_REGION16_BE( 0x0000080, "eeprom", 0 ) /* default eeprom */ ROM_LOAD( "tokimosp.25c", 0x000000, 0x000080, CRC(af4cdd87) SHA1(97041e287e4c80066043967450779b81b62b2b8e) ) - DISK_REGION( "cdrom" ) + DISK_REGION( "scsi:cdrom" ) DISK_IMAGE_READONLY( "756jab01", 0, BAD_DUMP SHA1(7bd974d908ae5a7bfa8d30db185ab01ac38dff28) ) ROM_END diff --git a/src/mame/drivers/model3.c b/src/mame/drivers/model3.c index dc178b9ca3d..3ea391836eb 100644 --- a/src/mame/drivers/model3.c +++ b/src/mame/drivers/model3.c @@ -1204,16 +1204,12 @@ static const eeprom_interface eeprom_intf = 5 /* reset_delay (Lost World needs this, very similar to wbeachvl in playmark.c) */ }; -static const SCSIConfigTable scsi_dev_table = +static const SCSIBus_interface scsibus_intf = { - 0, /* no SCSI device */ - { - } }; -static const struct LSI53C810interface scsi_intf = +static const struct LSI53C810interface lsi53c810_intf = { - &scsi_dev_table, /* SCSI device table */ &scsi_irq_callback, &real3d_dma_callback, &scsi_fetch, @@ -5340,7 +5336,8 @@ static MACHINE_CONFIG_START( model3_10, model3_state ) MCFG_SOUND_ROUTE(0, "lspeaker", 2.0) MCFG_SOUND_ROUTE(0, "rspeaker", 2.0) - MCFG_LSI53C810_ADD( "lsi51c810", scsi_intf) + MCFG_SCSIBUS_ADD("scsi", scsibus_intf) + MCFG_LSI53C810_ADD( "scsi:lsi53c810", lsi53c810_intf) MACHINE_CONFIG_END static MACHINE_CONFIG_START( model3_15, model3_state ) @@ -5381,7 +5378,8 @@ static MACHINE_CONFIG_START( model3_15, model3_state ) MCFG_SOUND_ROUTE(0, "lspeaker", 2.0) MCFG_SOUND_ROUTE(0, "rspeaker", 2.0) - MCFG_LSI53C810_ADD( "lsi51c810", scsi_intf) + MCFG_SCSIBUS_ADD("scsi", scsibus_intf) + MCFG_LSI53C810_ADD( "scsi:lsi53c810", lsi53c810_intf) MACHINE_CONFIG_END static MACHINE_CONFIG_START( model3_20, model3_state ) diff --git a/src/mame/drivers/twinkle.c b/src/mame/drivers/twinkle.c index da7f86be1c1..8653492df7e 100644 --- a/src/mame/drivers/twinkle.c +++ b/src/mame/drivers/twinkle.c @@ -231,8 +231,9 @@ Notes: #include "cpu/m68000/m68000.h" #include "video/psx.h" #include "includes/psx.h" -#include "machine/am53cf96.h" +#include "machine/scsibus.h" #include "machine/scsicd.h" +#include "machine/am53cf96.h" #include "machine/rtc65271.h" #include "machine/i2cmem.h" #include "machine/idectrl.h" @@ -244,7 +245,10 @@ class twinkle_state : public psx_state { public: twinkle_state(const machine_config &mconfig, device_type type, const char *tag) - : psx_state(mconfig, type, tag) { } + : psx_state(mconfig, type, tag), + m_am53cf96(*this, "scsi:am53cf96"){ } + + required_device m_am53cf96; UINT16 m_spu_ctrl; // SPU board control register UINT8 m_spu_shared[0x400]; // SPU/PSX shared dual-ported RAM @@ -627,7 +631,7 @@ READ32_MEMBER(twinkle_state::shared_psx_r) static ADDRESS_MAP_START( main_map, AS_PROGRAM, 32, twinkle_state ) AM_RANGE(0x00000000, 0x003fffff) AM_RAM AM_SHARE("share1") /* ram */ AM_RANGE(0x1f000000, 0x1f0007ff) AM_READWRITE(shared_psx_r, shared_psx_w) - AM_RANGE(0x1f200000, 0x1f20001f) AM_DEVREADWRITE8("am53cf96", am53cf96_device, read, write, 0x00ff00ff) + AM_RANGE(0x1f200000, 0x1f20001f) AM_DEVREADWRITE8("scsi:am53cf96", am53cf96_device, read, write, 0x00ff00ff) AM_RANGE(0x1f20a01c, 0x1f20a01f) AM_WRITENOP /* scsi? */ AM_RANGE(0x1f210400, 0x1f2107ff) AM_READNOP AM_RANGE(0x1f218000, 0x1f218003) AM_WRITE(watchdog_reset32_w) /* LTC1232 */ @@ -768,7 +772,6 @@ ADDRESS_MAP_END static void scsi_dma_read( twinkle_state *state, UINT32 n_address, INT32 n_size ) { UINT32 *p_n_psxram = state->m_p_n_psxram; - am53cf96_device *am53cf96 = state->machine().device("am53cf96"); int i; int n_this; @@ -786,12 +789,12 @@ static void scsi_dma_read( twinkle_state *state, UINT32 n_address, INT32 n_size if( n_this < 2048 / 4 ) { /* non-READ commands */ - am53cf96->dma_read_data( n_this * 4, state->m_sector_buffer ); + state->m_am53cf96->dma_read_data( n_this * 4, state->m_sector_buffer ); } else { /* assume normal 2048 byte data for now */ - am53cf96->dma_read_data( 2048, state->m_sector_buffer ); + state->m_am53cf96->dma_read_data( 2048, state->m_sector_buffer ); n_this = 2048 / 4; } n_size -= n_this; @@ -814,7 +817,6 @@ static void scsi_dma_read( twinkle_state *state, UINT32 n_address, INT32 n_size static void scsi_dma_write( twinkle_state *state, UINT32 n_address, INT32 n_size ) { UINT32 *p_n_psxram = state->m_p_n_psxram; - am53cf96_device *am53cf96 = state->machine().device("am53cf96"); int i; int n_this; @@ -843,7 +845,7 @@ static void scsi_dma_write( twinkle_state *state, UINT32 n_address, INT32 n_size n_this--; } - am53cf96->dma_write_data( n_this * 4, state->m_sector_buffer ); + state->m_am53cf96->dma_write_data( n_this * 4, state->m_sector_buffer ); } } @@ -852,17 +854,12 @@ static void scsi_irq(running_machine &machine) psx_irq_set(machine, 0x400); } -static const SCSIConfigTable dev_table = +static const SCSIBus_interface scsibus_intf = { - 1, /* 1 SCSI device */ - { - { "cdrom0" } - } }; -static const struct AM53CF96interface scsi_intf = +static const struct AM53CF96interface am53cf96_intf = { - &dev_table, /* SCSI device table */ &scsi_irq, /* command completion IRQ */ }; @@ -881,7 +878,7 @@ static MACHINE_RESET( twinkle ) { /* also hook up CDDA audio to the CD-ROM drive */ void *cdrom; - scsidev_device *scsidev = machine.device("cdrom0"); + scsidev_device *scsidev = machine.device("scsi:cdrom"); scsidev->GetDevice( &cdrom ); cdda_set_cdrom(machine.device("cdda"), cdrom); } @@ -920,9 +917,9 @@ static MACHINE_CONFIG_START( twinkle, twinkle_state ) MCFG_MACHINE_RESET( twinkle ) MCFG_I2CMEM_ADD("security",i2cmem_interface) - MCFG_AM53CF96_ADD("am53cf96", scsi_intf); - - MCFG_SCSIDEV_ADD("cdrom0", SCSICD, SCSI_ID_4) + MCFG_SCSIBUS_ADD("scsi", scsibus_intf) + MCFG_SCSIDEV_ADD("scsi:cdrom", SCSICD, SCSI_ID_4) + MCFG_AM53CF96_ADD("scsi:am53cf96", am53cf96_intf) MCFG_IDE_CONTROLLER_ADD("ide", ide_interrupt, ide_devices, "hdd", NULL, true) MCFG_RTC65271_ADD("rtc", twinkle_rtc) @@ -1016,7 +1013,7 @@ ROM_END ROM_START( bmiidx ) TWINKLE_BIOS - DISK_REGION( "cdrom0" ) // program + DISK_REGION( "scsi:cdrom" ) // program DISK_IMAGE_READONLY("863jaa01", 0, BAD_DUMP SHA1(aee12de1dc5dd44e5bf7b62133ed695b80999390) ) DISK_REGION( "cdrom1" ) // video CD @@ -1032,7 +1029,7 @@ ROM_START( bmiidx2 ) ROM_REGION( 0x100, "security", 0 ) ROM_LOAD( "985j.pd", 0x000000, 0x000100, BAD_DUMP CRC(a35143a9) SHA1(1c0feeab60d9dc50dc4b9a2f3dac73ca619e74b0) ) - DISK_REGION( "cdrom0" ) + DISK_REGION( "scsi:cdrom" ) DISK_IMAGE_READONLY( "985jaa01", 0, BAD_DUMP SHA1(0b783f11317f64552ebf3323459139529e7f315f) ) DISK_REGION( "cdrom1" ) // video CD @@ -1048,7 +1045,7 @@ ROM_START( bmiidx3 ) ROM_REGION( 0x100, "security", 0 ) ROM_LOAD( "992j.pd", 0x000000, 0x000100, BAD_DUMP CRC(51f24913) SHA1(574b555e3d0c234011198d218d7ae5e95091acb1) ) - DISK_REGION( "cdrom0" ) + DISK_REGION( "scsi:cdrom" ) DISK_IMAGE_READONLY( "992jaa01", 0, BAD_DUMP SHA1(7e5389735dff379bb286ba3744edf59b7dfcc74b) ) DISK_REGION( "cdrom1" ) // video CD @@ -1064,7 +1061,7 @@ ROM_START( bmiidx4 ) ROM_REGION( 0x100, "security", 0 ) ROM_LOAD( "a03j.pd", 0x000000, 0x000100, CRC(8860cfb6) SHA1(85a5b27f24d4baa7960e692b91c0cf3dc5388e72) ) - DISK_REGION( "cdrom0" ) + DISK_REGION( "scsi:cdrom" ) DISK_IMAGE_READONLY( "a03jaa01", 0, BAD_DUMP SHA1(2a587b5524bac6f03d26b55247a0acd22aad6c3a) ) DISK_REGION( "cdrom1" ) // video CD @@ -1080,7 +1077,7 @@ ROM_START( bmiidx6 ) ROM_REGION( 0x100, "security", 0 ) ROM_LOAD( "b4uj.pd", 0x000000, 0x000100, BAD_DUMP CRC(0ab15633) SHA1(df004ff41f35b16089f69808ccf53a5e5cc13ac3) ) - DISK_REGION( "cdrom0" ) + DISK_REGION( "scsi:cdrom" ) DISK_IMAGE_READONLY( "b4ujaa01", 0, BAD_DUMP SHA1(d8f5d56b8728bea761dc4cdbc04851094d276bd6) ) DISK_REGION( "cdrom1" ) // DVD @@ -1096,7 +1093,7 @@ ROM_START( bmiidx7 ) ROM_REGION( 0x100, "security", 0 ) ROM_LOAD( "b44j.pd", 0x000000, 0x000100, BAD_DUMP CRC(5baf4761) SHA1(aa7e07eb2cada03b85bdf11ac6a3de65f4253eef) ) - DISK_REGION( "cdrom0" ) + DISK_REGION( "scsi:cdrom" ) DISK_IMAGE_READONLY( "b44jaa01", 0, BAD_DUMP SHA1(a21610f3dc090e39e125d063442ed877fa056146) ) DISK_REGION( "cdrom1" ) // DVD @@ -1112,7 +1109,7 @@ ROM_START( bmiidx8 ) ROM_REGION( 0x100, "security", 0 ) ROM_LOAD( "c44j.pd", 0x000000, 0x000100, BAD_DUMP CRC(04c22349) SHA1(d1cb78911cb1ca660d393a81ed3ed07b24c51525) ) - DISK_REGION( "cdrom0" ) + DISK_REGION( "scsi:cdrom" ) DISK_IMAGE_READONLY( "c44jaa01", 0, BAD_DUMP SHA1(8b544c81bc56b19e4aa1649e68824811d6d51ce5) ) DISK_REGION( "cdrom1" ) // DVD @@ -1128,7 +1125,7 @@ ROM_START( bmiidxc ) ROM_REGION( 0x100, "security", 0 ) ROM_LOAD( "896j.pd", 0x000000, 0x000100, BAD_DUMP CRC(1e5caf37) SHA1(75b378662b651cb322e41564d3bae68cc9edadc5) ) - DISK_REGION( "cdrom0" ) + DISK_REGION( "scsi:cdrom" ) DISK_IMAGE_READONLY( "896jaabm", 0, BAD_DUMP SHA1(af008e5bcf18da4e9aea752a712c843e37a74be5) ) DISK_REGION( "cdrom1" ) // video CD @@ -1144,7 +1141,7 @@ ROM_START( bmiidxc2 ) ROM_REGION( 0x100, "security", 0 ) ROM_LOAD( "984j.pd", 0x000000, 0x000100, BAD_DUMP CRC(213843e5) SHA1(5571db155a60fa4087dd996af48e8e27fc1c518c) ) - DISK_REGION( "cdrom0" ) + DISK_REGION( "scsi:cdrom" ) DISK_IMAGE_READONLY( "984a01bm", 0, BAD_DUMP SHA1(d9b7d74a72a76e4e9cf7725e0fb8dafcc1c87187) ) DISK_REGION( "cdrom1" ) // video CD @@ -1160,7 +1157,7 @@ ROM_START( bmiidxca ) ROM_REGION( 0x100, "security", 0 ) ROM_LOAD( "896j.pd", 0x000000, 0x000100, BAD_DUMP CRC(1e5caf37) SHA1(75b378662b651cb322e41564d3bae68cc9edadc5) ) - DISK_REGION( "cdrom0" ) + DISK_REGION( "scsi:cdrom" ) DISK_IMAGE_READONLY( "896jabbm", 0, BAD_DUMP SHA1(117ae4c876207bbaf9e8fe0fdf5bb161155c1bdb) ) DISK_REGION( "cdrom1" ) // video CD diff --git a/src/mame/includes/model3.h b/src/mame/includes/model3.h index 7c58cfabfec..d7c392b2f1e 100644 --- a/src/mame/includes/model3.h +++ b/src/mame/includes/model3.h @@ -1,4 +1,5 @@ #include "video/poly.h" +#include "machine/scsibus.h" #include "machine/53c810.h" typedef float MATRIX[4][4]; @@ -17,7 +18,7 @@ public: model3_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), m_maincpu(*this,"maincpu"), - m_lsi53c810(*this,"lsi53c810"), + m_lsi53c810(*this, "scsi:lsi53c810"), m_work_ram(*this, "work_ram"), m_paletteram64(*this, "paletteram64"), m_soundram(*this, "soundram"){ } diff --git a/src/mess/drivers/bebox.c b/src/mess/drivers/bebox.c index 2b98c39a307..ed0ec356a1f 100644 --- a/src/mess/drivers/bebox.c +++ b/src/mess/drivers/bebox.c @@ -27,14 +27,13 @@ #include "machine/idectrl.h" #include "machine/mpc105.h" #include "machine/intelfsh.h" +#include "machine/scsibus.h" #include "machine/53c810.h" /* Devices */ #include "machine/scsicd.h" #include "machine/scsihd.h" #include "imagedev/flopdrv.h" -#include "imagedev/chd_cd.h" -#include "imagedev/harddriv.h" #include "formats/pc_dsk.h" #include "machine/ram.h" @@ -94,15 +93,6 @@ static ADDRESS_MAP_START( bebox_slave_mem, AS_PROGRAM, 64, bebox_state ) AM_IMPORT_FROM(bebox_mem) ADDRESS_MAP_END -static const SCSIConfigTable dev_table = -{ - 2, /* 2 SCSI devices */ - { - { "harddisk1" }, - { "cdrom" } - } -}; - #define BYTE_REVERSE32(x) (((x >> 24) & 0xff) | \ ((x >> 8) & 0xff00) | \ ((x << 8) & 0xff0000) | \ @@ -127,9 +117,12 @@ static void scsi53c810_dma_callback(running_machine &machine, UINT32 src, UINT32 } -static const struct LSI53C810interface scsi53c810_intf = +static const SCSIBus_interface scsibus_intf = +{ +}; + +static const struct LSI53C810interface lsi53c810_intf = { - &dev_table, /* SCSI device table */ &scsi53c810_irq_callback, &scsi53c810_dma_callback, &scsi53c810_fetch, @@ -197,9 +190,10 @@ static MACHINE_CONFIG_START( bebox, bebox_state ) MCFG_FUJITSU_29F016A_ADD("flash") - MCFG_LSI53C810_ADD( "lsi51c810", scsi53c810_intf) - MCFG_SCSIDEV_ADD("harddisk1", SCSIHD, SCSI_ID_0) - MCFG_SCSIDEV_ADD("cdrom", SCSICD, SCSI_ID_3) + MCFG_SCSIBUS_ADD("scsi", scsibus_intf) + MCFG_SCSIDEV_ADD("scsi:harddisk1", SCSIHD, SCSI_ID_0) + MCFG_SCSIDEV_ADD("scsi:cdrom", SCSICD, SCSI_ID_3) + MCFG_LSI53C810_ADD( "scsi:lsi53c810", lsi53c810_intf) MCFG_IDE_CONTROLLER_ADD( "ide", bebox_ide_interrupt, ide_image_devices, "hdd", NULL, false ) /* FIXME */ diff --git a/src/mess/drivers/fmtowns.c b/src/mess/drivers/fmtowns.c index f6f57893f97..d30ae2cccad 100644 --- a/src/mess/drivers/fmtowns.c +++ b/src/mess/drivers/fmtowns.c @@ -115,6 +115,7 @@ */ #include "includes/fmtowns.h" +#include "machine/scsibus.h" #include "machine/scsihd.h" // CD controller IRQ types @@ -2171,7 +2172,7 @@ static ADDRESS_MAP_START( towns_io , AS_IO, 32, towns_state) // Keyboard (8042 MCU) AM_RANGE(0x0600,0x0607) AM_READWRITE8(towns_keyboard_r, towns_keyboard_w,0x00ff00ff) // SCSI controller - AM_RANGE(0x0c30,0x0c37) AM_DEVREADWRITE8("scsi",fmscsi_device,fmscsi_r,fmscsi_w,0x00ff00ff) + AM_RANGE(0x0c30,0x0c37) AM_DEVREADWRITE8("scsi:fm",fmscsi_device,fmscsi_r,fmscsi_w,0x00ff00ff) // CMOS AM_RANGE(0x3000,0x4fff) AM_READWRITE8(towns_cmos_r, towns_cmos_w,0x00ff00ff) // Something (MS-DOS wants this 0x41ff to be 1) @@ -2485,7 +2486,7 @@ void towns_state::machine_reset() m_cdrom = machine().device("cdrom"); m_cdda = machine().device("cdda"); m_speaker = machine().device(SPEAKER_TAG); - m_scsi = machine().device("scsi"); + m_scsi = machine().device("scsi:fm"); m_ram = machine().device(RAM_TAG); m_ftimer = 0x00; m_freerun_timer = 0x00; @@ -2625,21 +2626,12 @@ static const rf5c68_interface rf5c68_intf = towns_pcm_irq }; -static const SCSIConfigTable towns_scsi_devtable = +static const SCSIBus_interface scsibus_intf = { - 5, /* 5 SCSI devices */ - { - { "harddisk0" }, - { "harddisk1" }, - { "harddisk2" }, - { "harddisk3" }, - { "harddisk4" }, - } }; static const FMSCSIinterface towns_scsi_config = { - &towns_scsi_devtable, DEVCB_LINE(towns_scsi_irq), DEVCB_LINE(towns_scsi_drq) }; @@ -2721,12 +2713,13 @@ static MACHINE_CONFIG_FRAGMENT( towns_base ) MCFG_CDROM_ADD("cdrom",towns_cdrom) - MCFG_SCSIDEV_ADD("harddisk0", SCSIHD, SCSI_ID_0) - MCFG_SCSIDEV_ADD("harddisk1", SCSIHD, SCSI_ID_1) - MCFG_SCSIDEV_ADD("harddisk2", SCSIHD, SCSI_ID_2) - MCFG_SCSIDEV_ADD("harddisk3", SCSIHD, SCSI_ID_3) - MCFG_SCSIDEV_ADD("harddisk4", SCSIHD, SCSI_ID_4) - MCFG_FMSCSI_ADD("scsi",towns_scsi_config) + MCFG_SCSIBUS_ADD("scsi", scsibus_intf) + MCFG_SCSIDEV_ADD("scsi:harddisk0", SCSIHD, SCSI_ID_0) + MCFG_SCSIDEV_ADD("scsi:harddisk1", SCSIHD, SCSI_ID_1) + MCFG_SCSIDEV_ADD("scsi:harddisk2", SCSIHD, SCSI_ID_2) + MCFG_SCSIDEV_ADD("scsi:harddisk3", SCSIHD, SCSI_ID_3) + MCFG_SCSIDEV_ADD("scsi:harddisk4", SCSIHD, SCSI_ID_4) + MCFG_FMSCSI_ADD("scsi:fm",towns_scsi_config) MCFG_UPD71071_ADD("dma_1",towns_dma_config) MCFG_UPD71071_ADD("dma_2",towns_dma_config) diff --git a/src/mess/drivers/ip20.c b/src/mess/drivers/ip20.c index 58e2f0f87b4..918ab01156c 100644 --- a/src/mess/drivers/ip20.c +++ b/src/mess/drivers/ip20.c @@ -22,10 +22,9 @@ #include "machine/8530scc.h" #include "machine/sgi.h" #include "machine/eeprom.h" -#include "machine/wd33c93.h" +#include "machine/scsibus.h" #include "machine/scsicd.h" -#include "imagedev/harddriv.h" -#include "imagedev/chd_cd.h" +#include "machine/wd33c93.h" typedef struct { @@ -50,7 +49,7 @@ class ip20_state : public driver_device public: ip20_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), - m_wd33c93(*this, "wd33c93"){ } + m_wd33c93(*this, "scsi:wd33c93"){ } required_device m_wd33c93; @@ -484,17 +483,12 @@ static void scsi_irq(running_machine &machine, int state) { } -static const SCSIConfigTable dev_table = +static const SCSIBus_interface scsibus_intf = { - 1, /* 1 SCSI device */ - { - { "cdrom" } - } }; -static const struct WD33C93interface scsi_intf = +static const struct WD33C93interface wd33c93_intf = { - &dev_table, /* SCSI device table */ &scsi_irq, /* command completion IRQ */ }; @@ -616,8 +610,9 @@ static MACHINE_CONFIG_START( ip204415, ip20_state ) MCFG_SCC8530_ADD("scc", 7000000, line_cb_t()) - MCFG_WD33C93_ADD("wd33c93", scsi_intf); - MCFG_SCSIDEV_ADD("cdrom", SCSICD, SCSI_ID_6) + MCFG_SCSIBUS_ADD("scsi", scsibus_intf) + MCFG_SCSIDEV_ADD("scsi:cdrom", SCSICD, SCSI_ID_6) + MCFG_WD33C93_ADD("scsi:wd33c93", wd33c93_intf) MCFG_EEPROM_ADD("eeprom", eeprom_interface_93C56) MACHINE_CONFIG_END diff --git a/src/mess/drivers/ip22.c b/src/mess/drivers/ip22.c index f4b0dc4505c..d9fd1c030ec 100644 --- a/src/mess/drivers/ip22.c +++ b/src/mess/drivers/ip22.c @@ -50,13 +50,12 @@ #include "includes/ps2.h" #include "machine/pcshare.h" #include "video/newport.h" -#include "machine/wd33c93.h" -#include "imagedev/harddriv.h" -#include "imagedev/chd_cd.h" #include "sound/dac.h" #include "machine/nvram.h" +#include "machine/scsibus.h" #include "machine/scsicd.h" #include "machine/scsihd.h" +#include "machine/wd33c93.h" typedef struct { @@ -96,7 +95,7 @@ class ip22_state : public driver_device public: ip22_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), - m_wd33c93(*this, "wd33c93"), + m_wd33c93(*this, "scsi:wd33c93"), m_unkpbus0(*this, "unkpbus0"), m_mainram(*this, "mainram") { } @@ -1497,18 +1496,12 @@ static void scsi_irq(running_machine &machine, int state) } } -static const SCSIConfigTable dev_table = +static const SCSIBus_interface scsibus_intf = { - 2, /* 2 SCSI devices */ - { - { "harddisk1" }, - { "cdrom" } - } }; -static const struct WD33C93interface scsi_intf = +static const struct WD33C93interface wd33c93_intf = { - &dev_table, /* SCSI device table */ &scsi_irq, /* command completion IRQ */ }; @@ -1692,9 +1685,10 @@ static MACHINE_CONFIG_START( ip225015, ip22_state ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) - MCFG_WD33C93_ADD("wd33c93", scsi_intf); - MCFG_SCSIDEV_ADD("cdrom", SCSICD, SCSI_ID_4) - MCFG_SCSIDEV_ADD("harddisk1", SCSIHD, SCSI_ID_1) + MCFG_SCSIBUS_ADD("scsi", scsibus_intf) + MCFG_SCSIDEV_ADD("scsi:harddisk1", SCSIHD, SCSI_ID_1) + MCFG_SCSIDEV_ADD("scsi:cdrom", SCSICD, SCSI_ID_4) + MCFG_WD33C93_ADD("scsi:wd33c93", wd33c93_intf) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( ip224613, ip225015 ) diff --git a/src/mess/drivers/mac.c b/src/mess/drivers/mac.c index 0b18c157de5..01b64a051c0 100644 --- a/src/mess/drivers/mac.c +++ b/src/mess/drivers/mac.c @@ -45,11 +45,10 @@ #include "machine/ncr5380.h" #include "machine/applefdc.h" #include "devices/sonydriv.h" -#include "imagedev/harddriv.h" #include "formats/ap_dsk35.h" #include "machine/ram.h" +#include "machine/scsibus.h" #include "machine/scsihd.h" -#include "imagedev/chd_cd.h" #include "sound/asc.h" #include "sound/awacs.h" #include "sound/cdda.h" @@ -814,24 +813,17 @@ static const applefdc_interface mac_iwm_interface = sony_read_status }; -static const SCSIConfigTable dev_table = +static const SCSIBus_interface scsibus_intf = { - 2, /* 2 SCSI devices */ - { - { "harddisk1" }, - { "harddisk2" } - } }; static const struct NCR5380interface macplus_5380intf = { - &dev_table, // SCSI device table mac_scsi_irq // IRQ (unconnected on the Mac Plus) }; static const struct NCR539Xinterface mac_539x_intf = { - &dev_table, // SCSI device table DEVCB_DRIVER_LINE_MEMBER(mac_state, irq_539x_1_w), DEVCB_DRIVER_LINE_MEMBER(mac_state, drq_539x_1_w) }; @@ -939,10 +931,10 @@ static MACHINE_CONFIG_DERIVED( macplus, mac512ke ) MCFG_CPU_MODIFY( "maincpu" ) MCFG_CPU_PROGRAM_MAP(macplus_map) - MCFG_NCR5380_ADD("ncr5380", C7M, macplus_5380intf) - - MCFG_SCSIDEV_ADD("harddisk1", SCSIHD, SCSI_ID_6) - MCFG_SCSIDEV_ADD("harddisk2", SCSIHD, SCSI_ID_5) + MCFG_SCSIBUS_ADD("scsi", scsibus_intf) + MCFG_SCSIDEV_ADD("scsi:harddisk1", SCSIHD, SCSI_ID_6) + MCFG_SCSIDEV_ADD("scsi:harddisk2", SCSIHD, SCSI_ID_5) + MCFG_NCR5380_ADD("scsi:ncr5380", C7M, macplus_5380intf) MCFG_LEGACY_FLOPPY_SONY_2_DRIVES_MODIFY(mac_floppy_interface) @@ -998,7 +990,10 @@ static MACHINE_CONFIG_START( macprtb, mac_state ) MCFG_NVRAM_HANDLER(mac) /* devices */ - MCFG_NCR5380_ADD("ncr5380", C7M, macplus_5380intf) + MCFG_SCSIBUS_ADD("scsi", scsibus_intf) + MCFG_SCSIDEV_ADD("scsi:harddisk1", SCSIHD, SCSI_ID_6) + MCFG_SCSIDEV_ADD("scsi:harddisk2", SCSIHD, SCSI_ID_5) + MCFG_NCR5380_ADD("scsi:ncr5380", C7M, macplus_5380intf) MCFG_IWM_ADD("fdc", mac_iwm_interface) MCFG_LEGACY_FLOPPY_SONY_2_DRIVES_ADD(mac_floppy_interface) @@ -1006,9 +1001,6 @@ static MACHINE_CONFIG_START( macprtb, mac_state ) MCFG_SCC8530_ADD("scc", C7M, line_cb_t(FUNC(mac_state::set_scc_interrupt), static_cast(owner))) MCFG_VIA6522_ADD("via6522_0", 783360, mac_via6522_intf) - MCFG_SCSIDEV_ADD("harddisk1", SCSIHD, SCSI_ID_6) - MCFG_SCSIDEV_ADD("harddisk2", SCSIHD, SCSI_ID_5) - /* internal ram */ MCFG_RAM_ADD(RAM_TAG) MCFG_RAM_DEFAULT_SIZE("1M") @@ -1044,7 +1036,10 @@ static MACHINE_CONFIG_START( macii, mac_state ) MCFG_NUBUS_SLOT_ADD("nubus","nbd", mac_nubus_cards, NULL, NULL) MCFG_NUBUS_SLOT_ADD("nubus","nbe", mac_nubus_cards, NULL, NULL) - MCFG_NCR5380_ADD("ncr5380", C7M, macplus_5380intf) + MCFG_SCSIBUS_ADD("scsi", scsibus_intf) + MCFG_SCSIDEV_ADD("scsi:harddisk1", SCSIHD, SCSI_ID_6) + MCFG_SCSIDEV_ADD("scsi:harddisk2", SCSIHD, SCSI_ID_5) + MCFG_NCR5380_ADD("scsi:ncr5380", C7M, macplus_5380intf) MCFG_IWM_ADD("fdc", mac_iwm_interface) MCFG_LEGACY_FLOPPY_SONY_2_DRIVES_ADD(mac_floppy_interface) @@ -1054,9 +1049,6 @@ static MACHINE_CONFIG_START( macii, mac_state ) MCFG_VIA6522_ADD("via6522_0", C7M/10, mac_via6522_adb_intf) MCFG_VIA6522_ADD("via6522_1", C7M/10, mac_via6522_2_intf) - MCFG_SCSIDEV_ADD("harddisk1", SCSIHD, SCSI_ID_6) - MCFG_SCSIDEV_ADD("harddisk2", SCSIHD, SCSI_ID_5) - /* internal ram */ MCFG_RAM_ADD(RAM_TAG) MCFG_RAM_DEFAULT_SIZE("2M") @@ -1096,7 +1088,10 @@ static MACHINE_CONFIG_START( maciifx, mac_state ) MCFG_NUBUS_SLOT_ADD("nubus","nbd", mac_nubus_cards, NULL, NULL) MCFG_NUBUS_SLOT_ADD("nubus","nbe", mac_nubus_cards, NULL, NULL) - MCFG_NCR5380_ADD("ncr5380", C7M, macplus_5380intf) + MCFG_SCSIBUS_ADD("scsi", scsibus_intf) + MCFG_SCSIDEV_ADD("scsi:harddisk1", SCSIHD, SCSI_ID_6) + MCFG_SCSIDEV_ADD("scsi:harddisk2", SCSIHD, SCSI_ID_5) + MCFG_NCR5380_ADD("scsi:ncr5380", C7M, macplus_5380intf) MCFG_IWM_ADD("fdc", mac_iwm_interface) MCFG_LEGACY_FLOPPY_SONY_2_DRIVES_ADD(mac_floppy_interface) @@ -1105,9 +1100,6 @@ static MACHINE_CONFIG_START( maciifx, mac_state ) MCFG_VIA6522_ADD("via6522_0", C7M/10, mac_via6522_adb_intf) - MCFG_SCSIDEV_ADD("harddisk1", SCSIHD, SCSI_ID_6) - MCFG_SCSIDEV_ADD("harddisk2", SCSIHD, SCSI_ID_5) - /* internal ram */ MCFG_RAM_ADD(RAM_TAG) MCFG_RAM_DEFAULT_SIZE("4M") @@ -1294,7 +1286,10 @@ static MACHINE_CONFIG_START( macse30, mac_state ) MCFG_NVRAM_HANDLER(mac) /* devices */ - MCFG_NCR5380_ADD("ncr5380", C7M, macplus_5380intf) + MCFG_SCSIBUS_ADD("scsi", scsibus_intf) + MCFG_SCSIDEV_ADD("scsi:harddisk1", SCSIHD, SCSI_ID_6) + MCFG_SCSIDEV_ADD("scsi:harddisk2", SCSIHD, SCSI_ID_5) + MCFG_NCR5380_ADD("scsi:ncr5380", C7M, macplus_5380intf) MCFG_SWIM_ADD("fdc", mac_iwm_interface) MCFG_LEGACY_FLOPPY_SONY_2_DRIVES_ADD(mac_floppy_interface) @@ -1304,9 +1299,6 @@ static MACHINE_CONFIG_START( macse30, mac_state ) MCFG_VIA6522_ADD("via6522_0", 783360, mac_via6522_adb_intf) MCFG_VIA6522_ADD("via6522_1", 783360, mac_via6522_2_intf) - MCFG_SCSIDEV_ADD("harddisk1", SCSIHD, SCSI_ID_6) - MCFG_SCSIDEV_ADD("harddisk2", SCSIHD, SCSI_ID_5) - /* internal ram */ MCFG_RAM_ADD(RAM_TAG) MCFG_RAM_DEFAULT_SIZE("2M") @@ -1345,7 +1337,10 @@ static MACHINE_CONFIG_START( macpb140, mac_state ) MCFG_NVRAM_HANDLER(mac) /* devices */ - MCFG_NCR5380_ADD("ncr5380", C7M, macplus_5380intf) + MCFG_SCSIBUS_ADD("scsi", scsibus_intf) + MCFG_SCSIDEV_ADD("scsi:harddisk1", SCSIHD, SCSI_ID_6) + MCFG_SCSIDEV_ADD("scsi:harddisk2", SCSIHD, SCSI_ID_5) + MCFG_NCR5380_ADD("scsi:ncr5380", C7M, macplus_5380intf) MCFG_SWIM_ADD("fdc", mac_iwm_interface) MCFG_LEGACY_FLOPPY_SONY_2_DRIVES_ADD(mac_floppy_interface) @@ -1355,9 +1350,6 @@ static MACHINE_CONFIG_START( macpb140, mac_state ) MCFG_VIA6522_ADD("via6522_0", 783360, mac_via6522_adb_intf) MCFG_VIA6522_ADD("via6522_1", 783360, mac_via6522_2_intf) - MCFG_SCSIDEV_ADD("harddisk1", SCSIHD, SCSI_ID_6) - MCFG_SCSIDEV_ADD("harddisk2", SCSIHD, SCSI_ID_5) - /* internal ram */ MCFG_RAM_ADD(RAM_TAG) MCFG_RAM_DEFAULT_SIZE("2M") @@ -1416,7 +1408,10 @@ static MACHINE_CONFIG_START( macpb160, mac_state ) MCFG_NVRAM_HANDLER(mac) /* devices */ - MCFG_NCR5380_ADD("ncr5380", C7M, macplus_5380intf) + MCFG_SCSIBUS_ADD("scsi", scsibus_intf) + MCFG_SCSIDEV_ADD("scsi:harddisk1", SCSIHD, SCSI_ID_6) + MCFG_SCSIDEV_ADD("scsi:harddisk2", SCSIHD, SCSI_ID_5) + MCFG_NCR5380_ADD("scsi:ncr5380", C7M, macplus_5380intf) MCFG_SWIM_ADD("fdc", mac_iwm_interface) MCFG_LEGACY_FLOPPY_SONY_2_DRIVES_ADD(mac_floppy_interface) @@ -1426,9 +1421,6 @@ static MACHINE_CONFIG_START( macpb160, mac_state ) MCFG_VIA6522_ADD("via6522_0", 783360, mac_via6522_adb_intf) MCFG_VIA6522_ADD("via6522_1", 783360, mac_via6522_2_intf) - MCFG_SCSIDEV_ADD("harddisk1", SCSIHD, SCSI_ID_6) - MCFG_SCSIDEV_ADD("harddisk2", SCSIHD, SCSI_ID_5) - /* internal ram */ MCFG_RAM_ADD(RAM_TAG) MCFG_RAM_DEFAULT_SIZE("4M") @@ -1587,7 +1579,10 @@ static MACHINE_CONFIG_START( pwrmac, mac_state ) MCFG_NVRAM_HANDLER(mac) /* devices */ - MCFG_NCR5380_ADD("ncr5380", C7M, macplus_5380intf) + MCFG_SCSIBUS_ADD("scsi", scsibus_intf) + MCFG_SCSIDEV_ADD("scsi:harddisk1", SCSIHD, SCSI_ID_6) + MCFG_SCSIDEV_ADD("scsi:harddisk2", SCSIHD, SCSI_ID_5) + MCFG_NCR5380_ADD("scsi:ncr5380", C7M, macplus_5380intf) MCFG_IWM_ADD("fdc", mac_iwm_interface) MCFG_LEGACY_FLOPPY_SONY_2_DRIVES_ADD(mac_floppy_interface) @@ -1597,9 +1592,6 @@ static MACHINE_CONFIG_START( pwrmac, mac_state ) MCFG_VIA6522_ADD("via6522_0", 783360, mac_via6522_adb_intf) MCFG_VIA6522_ADD("via6522_1", 783360, mac_via6522_2_intf) - MCFG_SCSIDEV_ADD("harddisk1", SCSIHD, SCSI_ID_6) - MCFG_SCSIDEV_ADD("harddisk2", SCSIHD, SCSI_ID_5) - /* internal ram */ MCFG_RAM_ADD(RAM_TAG) MCFG_RAM_DEFAULT_SIZE("8M") @@ -1647,11 +1639,11 @@ static MACHINE_CONFIG_START( macqd700, mac_state ) MCFG_VIA6522_ADD("via6522_0", C7M/10, mac_via6522_adb_intf) MCFG_VIA6522_ADD("via6522_1", C7M/10, mac_via6522_2_intf) + MCFG_SCSIBUS_ADD("scsi", scsibus_intf) + MCFG_SCSIDEV_ADD("scsi:harddisk1", SCSIHD, SCSI_ID_6) + MCFG_SCSIDEV_ADD("scsi:harddisk2", SCSIHD, SCSI_ID_5) MCFG_NCR539X_ADD(MAC_539X_1_TAG, C7M, mac_539x_intf) - MCFG_SCSIDEV_ADD("harddisk1", SCSIHD, SCSI_ID_6) - MCFG_SCSIDEV_ADD("harddisk2", SCSIHD, SCSI_ID_5) - /* internal ram */ MCFG_RAM_ADD(RAM_TAG) MCFG_RAM_DEFAULT_SIZE("4M") diff --git a/src/mess/drivers/rmnimbus.c b/src/mess/drivers/rmnimbus.c index 6aa28991b1b..afa42093b9c 100644 --- a/src/mess/drivers/rmnimbus.c +++ b/src/mess/drivers/rmnimbus.c @@ -11,12 +11,10 @@ #include "cpu/i86/i86.h" #include "cpu/mcs51/mcs51.h" #include "imagedev/flopdrv.h" -#include "imagedev/harddriv.h" #include "machine/ram.h" #include "formats/pc_dsk.h" #include "includes/rmnimbus.h" #include "machine/er59256.h" -#include "machine/scsi.h" #include "machine/scsihd.h" #include "machine/6522via.h" #include "machine/ctronics.h" diff --git a/src/mess/drivers/x68k.c b/src/mess/drivers/x68k.c index d863a37ee82..ff2a5d4f1f5 100644 --- a/src/mess/drivers/x68k.c +++ b/src/mess/drivers/x68k.c @@ -128,11 +128,9 @@ #include "machine/hd63450.h" #include "machine/rp5c15.h" #include "machine/mb89352.h" -#include "machine/scsi.h" #include "imagedev/flopdrv.h" #include "formats/basicdsk.h" #include "formats/dim_dsk.h" -#include "imagedev/harddriv.h" #include "machine/x68k_hdc.h" #include "includes/x68k.h" #include "machine/ram.h" @@ -140,6 +138,7 @@ #include "machine/x68kexp.h" #include "machine/x68k_neptunex.h" #include "machine/x68k_scsiext.h" +#include "machine/scsibus.h" #include "machine/scsihd.h" #include "x68000.lh" @@ -2018,7 +2017,7 @@ static ADDRESS_MAP_START(x68kxvi_map, AS_PROGRAM, 16, x68k_state ) AM_RANGE(0xe92002, 0xe92003) AM_DEVREADWRITE8_LEGACY("okim6258", okim6258_status_r, okim6258_data_w, 0x00ff) AM_RANGE(0xe94000, 0xe95fff) AM_READWRITE_LEGACY(x68k_fdc_r, x68k_fdc_w) // AM_RANGE(0xe96000, 0xe9601f) AM_DEVREADWRITE_LEGACY("x68k_hdc",x68k_hdc_r, x68k_hdc_w) - AM_RANGE(0xe96020, 0xe9603f) AM_DEVREADWRITE8("mb89352_int",mb89352_device,mb89352_r,mb89352_w,0x00ff) + AM_RANGE(0xe96020, 0xe9603f) AM_DEVREADWRITE8("scsi:mb89352",mb89352_device,mb89352_r,mb89352_w,0x00ff) AM_RANGE(0xe98000, 0xe99fff) AM_READWRITE_LEGACY(x68k_scc_r, x68k_scc_w) AM_RANGE(0xe9a000, 0xe9bfff) AM_READWRITE_LEGACY(x68k_ppi_r, x68k_ppi_w) AM_RANGE(0xe9c000, 0xe9dfff) AM_READWRITE_LEGACY(x68k_ioc_r, x68k_ioc_w) @@ -2056,7 +2055,7 @@ static ADDRESS_MAP_START(x68030_map, AS_PROGRAM, 32, x68k_state ) AM_RANGE(0xe92000, 0xe92003) AM_DEVREADWRITE8_LEGACY("okim6258", okim6258_status_r, x68030_adpcm_w, 0x00ff00ff) AM_RANGE(0xe94000, 0xe95fff) AM_READWRITE16_LEGACY(x68k_fdc_r, x68k_fdc_w,0xffffffff) // AM_RANGE(0xe96000, 0xe9601f) AM_DEVREADWRITE16_LEGACY("x68k_hdc",x68k_hdc_r, x68k_hdc_w,0xffffffff) - AM_RANGE(0xe96020, 0xe9603f) AM_DEVREADWRITE8("mb89352_int",mb89352_device,mb89352_r,mb89352_w,0x00ff00ff) + AM_RANGE(0xe96020, 0xe9603f) AM_DEVREADWRITE8("scsi:mb89352",mb89352_device,mb89352_r,mb89352_w,0x00ff00ff) AM_RANGE(0xe98000, 0xe99fff) AM_READWRITE16_LEGACY(x68k_scc_r, x68k_scc_w,0xffffffff) AM_RANGE(0xe9a000, 0xe9bfff) AM_READWRITE16_LEGACY(x68k_ppi_r, x68k_ppi_w,0xffffffff) AM_RANGE(0xe9c000, 0xe9dfff) AM_READWRITE16_LEGACY(x68k_ioc_r, x68k_ioc_w,0xffffffff) @@ -2529,23 +2528,12 @@ static const floppy_interface x68k_floppy_interface = NULL }; -static const SCSIConfigTable x68k_scsi_devtable = +static const SCSIBus_interface scsibus_intf = { - 7, /* 7 SCSI devices */ - { - { "harddisk0" }, - { "harddisk1" }, - { "harddisk2" }, - { "harddisk3" }, - { "harddisk4" }, - { "harddisk5" }, - { "harddisk6" }, - } }; static const mb89352_interface x68k_scsi_intf = { - &x68k_scsi_devtable, DEVCB_LINE(x68k_scsi_irq), DEVCB_LINE(x68k_scsi_drq) }; @@ -2833,14 +2821,15 @@ static MACHINE_CONFIG_START( x68ksupr, x68k_state ) MCFG_CPU_MODIFY("maincpu") MCFG_CPU_PROGRAM_MAP(x68kxvi_map) - MCFG_MB89352A_ADD("mb89352_int",x68k_scsi_intf) - MCFG_SCSIDEV_ADD("harddisk0", SCSIHD, SCSI_ID_0) - MCFG_SCSIDEV_ADD("harddisk1", SCSIHD, SCSI_ID_1) - MCFG_SCSIDEV_ADD("harddisk2", SCSIHD, SCSI_ID_2) - MCFG_SCSIDEV_ADD("harddisk3", SCSIHD, SCSI_ID_3) - MCFG_SCSIDEV_ADD("harddisk4", SCSIHD, SCSI_ID_4) - MCFG_SCSIDEV_ADD("harddisk5", SCSIHD, SCSI_ID_5) - MCFG_SCSIDEV_ADD("harddisk6", SCSIHD, SCSI_ID_6) + MCFG_SCSIBUS_ADD("scsi", scsibus_intf) + MCFG_SCSIDEV_ADD("scsi:harddisk0", SCSIHD, SCSI_ID_0) + MCFG_SCSIDEV_ADD("scsi:harddisk1", SCSIHD, SCSI_ID_1) + MCFG_SCSIDEV_ADD("scsi:harddisk2", SCSIHD, SCSI_ID_2) + MCFG_SCSIDEV_ADD("scsi:harddisk3", SCSIHD, SCSI_ID_3) + MCFG_SCSIDEV_ADD("scsi:harddisk4", SCSIHD, SCSI_ID_4) + MCFG_SCSIDEV_ADD("scsi:harddisk5", SCSIHD, SCSI_ID_5) + MCFG_SCSIDEV_ADD("scsi:harddisk6", SCSIHD, SCSI_ID_6) + MCFG_MB89352A_ADD("scsi:mb89352",x68k_scsi_intf) MACHINE_CONFIG_END static MACHINE_CONFIG_START( x68kxvi, x68k_state ) @@ -2853,14 +2842,15 @@ static MACHINE_CONFIG_START( x68kxvi, x68k_state ) MCFG_CPU_CLOCK(16000000) /* 16 MHz */ MCFG_CPU_PROGRAM_MAP(x68kxvi_map) - MCFG_MB89352A_ADD("mb89352_int",x68k_scsi_intf) - MCFG_SCSIDEV_ADD("harddisk0", SCSIHD, SCSI_ID_0) - MCFG_SCSIDEV_ADD("harddisk1", SCSIHD, SCSI_ID_1) - MCFG_SCSIDEV_ADD("harddisk2", SCSIHD, SCSI_ID_2) - MCFG_SCSIDEV_ADD("harddisk3", SCSIHD, SCSI_ID_3) - MCFG_SCSIDEV_ADD("harddisk4", SCSIHD, SCSI_ID_4) - MCFG_SCSIDEV_ADD("harddisk5", SCSIHD, SCSI_ID_5) - MCFG_SCSIDEV_ADD("harddisk6", SCSIHD, SCSI_ID_6) + MCFG_SCSIBUS_ADD("scsi", scsibus_intf) + MCFG_SCSIDEV_ADD("scsi:harddisk0", SCSIHD, SCSI_ID_0) + MCFG_SCSIDEV_ADD("scsi:harddisk1", SCSIHD, SCSI_ID_1) + MCFG_SCSIDEV_ADD("scsi:harddisk2", SCSIHD, SCSI_ID_2) + MCFG_SCSIDEV_ADD("scsi:harddisk3", SCSIHD, SCSI_ID_3) + MCFG_SCSIDEV_ADD("scsi:harddisk4", SCSIHD, SCSI_ID_4) + MCFG_SCSIDEV_ADD("scsi:harddisk5", SCSIHD, SCSI_ID_5) + MCFG_SCSIDEV_ADD("scsi:harddisk6", SCSIHD, SCSI_ID_6) + MCFG_MB89352A_ADD("scsi:mb89352",x68k_scsi_intf) MACHINE_CONFIG_END static MACHINE_CONFIG_START( x68030, x68k_state ) @@ -2874,14 +2864,15 @@ static MACHINE_CONFIG_START( x68030, x68k_state ) MCFG_NVRAM_ADD_0FILL("nvram32") - MCFG_MB89352A_ADD("mb89352_int",x68k_scsi_intf) - MCFG_SCSIDEV_ADD("harddisk0", SCSIHD, SCSI_ID_0) - MCFG_SCSIDEV_ADD("harddisk1", SCSIHD, SCSI_ID_1) - MCFG_SCSIDEV_ADD("harddisk2", SCSIHD, SCSI_ID_2) - MCFG_SCSIDEV_ADD("harddisk3", SCSIHD, SCSI_ID_3) - MCFG_SCSIDEV_ADD("harddisk4", SCSIHD, SCSI_ID_4) - MCFG_SCSIDEV_ADD("harddisk5", SCSIHD, SCSI_ID_5) - MCFG_SCSIDEV_ADD("harddisk6", SCSIHD, SCSI_ID_6) + MCFG_SCSIBUS_ADD("scsi", scsibus_intf) + MCFG_SCSIDEV_ADD("scsi:harddisk0", SCSIHD, SCSI_ID_0) + MCFG_SCSIDEV_ADD("scsi:harddisk1", SCSIHD, SCSI_ID_1) + MCFG_SCSIDEV_ADD("scsi:harddisk2", SCSIHD, SCSI_ID_2) + MCFG_SCSIDEV_ADD("scsi:harddisk3", SCSIHD, SCSI_ID_3) + MCFG_SCSIDEV_ADD("scsi:harddisk4", SCSIHD, SCSI_ID_4) + MCFG_SCSIDEV_ADD("scsi:harddisk5", SCSIHD, SCSI_ID_5) + MCFG_SCSIDEV_ADD("scsi:harddisk6", SCSIHD, SCSI_ID_6) + MCFG_MB89352A_ADD("scsi:mb89352",x68k_scsi_intf) MACHINE_CONFIG_END ROM_START( x68000 ) diff --git a/src/mess/includes/abc1600.h b/src/mess/includes/abc1600.h index 17cf6bbf51c..c59a74f335f 100644 --- a/src/mess/includes/abc1600.h +++ b/src/mess/includes/abc1600.h @@ -8,7 +8,6 @@ #include "cpu/m68000/m68000.h" #include "formats/basicdsk.h" #include "imagedev/flopdrv.h" -#include "imagedev/harddriv.h" #include "machine/ram.h" #include "machine/8530scc.h" #include "machine/abc99.h" diff --git a/src/mess/includes/bebox.h b/src/mess/includes/bebox.h index b691a015e77..a77b2fc7cd5 100644 --- a/src/mess/includes/bebox.h +++ b/src/mess/includes/bebox.h @@ -27,7 +27,7 @@ class bebox_state : public driver_device public: bebox_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), - m_lsi53c810(*this, "lsi53c810"){ } + m_lsi53c810(*this, "scsi:lsi53c810"){ } required_device m_lsi53c810; UINT32 m_cpu_imask[2]; diff --git a/src/mess/includes/bullet.h b/src/mess/includes/bullet.h index 9446c1e5ba8..433566923c4 100644 --- a/src/mess/includes/bullet.h +++ b/src/mess/includes/bullet.h @@ -7,7 +7,6 @@ #include "emu.h" #include "cpu/z80/z80.h" #include "imagedev/flopdrv.h" -#include "imagedev/harddriv.h" #include "machine/ctronics.h" #include "machine/ram.h" #include "machine/scsibus.h" diff --git a/src/mess/includes/fmtowns.h b/src/mess/includes/fmtowns.h index 18898147b8e..fc038c264d0 100644 --- a/src/mess/includes/fmtowns.h +++ b/src/mess/includes/fmtowns.h @@ -17,8 +17,6 @@ #include "machine/upd71071.h" #include "machine/ram.h" #include "machine/nvram.h" -#include "imagedev/harddriv.h" -#include "machine/scsi.h" #include "machine/fm_scsi.h" #define IRQ_LOG 0 // set to 1 to log IRQ line activity diff --git a/src/mess/includes/mac.h b/src/mess/includes/mac.h index e6f906059dc..8bafd7417d2 100644 --- a/src/mess/includes/mac.h +++ b/src/mess/includes/mac.h @@ -16,13 +16,14 @@ #include "machine/cuda.h" #include "machine/nubus.h" #include "machine/ncr539x.h" +#include "machine/ncr5380.h" #include "machine/mackbd.h" #include "sound/asc.h" #include "sound/awacs.h" #define MAC_SCREEN_NAME "screen" -#define MAC_539X_1_TAG "539x_1" -#define MAC_539X_2_TAG "539x_2" +#define MAC_539X_1_TAG "scsi:539x_1" +#define MAC_539X_2_TAG "scsi:539x_2" // model helpers #define ADB_IS_BITBANG ((mac->m_model == MODEL_MAC_SE || mac->m_model == MODEL_MAC_CLASSIC) || (mac->m_model >= MODEL_MAC_II && mac->m_model <= MODEL_MAC_IICI) || (mac->m_model == MODEL_MAC_SE30) || (mac->m_model == MODEL_MAC_QUADRA_700)) @@ -202,6 +203,7 @@ public: m_screen(*this, MAC_SCREEN_NAME), m_539x_1(*this, MAC_539X_1_TAG), m_539x_2(*this, MAC_539X_2_TAG), + m_ncr5380(*this, "scsi:ncr5380"), m_mackbd(*this, MACKBD_TAG), m_vram(*this,"vram"), m_vram16(*this,"vram16") @@ -218,6 +220,7 @@ public: optional_device m_screen; optional_device m_539x_1; optional_device m_539x_2; + optional_device m_ncr5380; optional_device m_mackbd; virtual void machine_start(); diff --git a/src/mess/includes/next.h b/src/mess/includes/next.h index 470f2b8b02e..9e4139386f4 100644 --- a/src/mess/includes/next.h +++ b/src/mess/includes/next.h @@ -114,7 +114,6 @@ public: void mo_irq(bool state); void mo_drq(bool state); - // static const SCSIConfigTable scsi_devices; static const floppy_format_type floppy_formats[]; static const cdrom_interface cdrom_intf; static const harddisk_interface harddisk_intf; diff --git a/src/mess/includes/v1050.h b/src/mess/includes/v1050.h index ca584fe7775..a667b847cea 100644 --- a/src/mess/includes/v1050.h +++ b/src/mess/includes/v1050.h @@ -8,7 +8,6 @@ #include "cpu/z80/z80.h" #include "cpu/m6502/m6502.h" #include "imagedev/flopdrv.h" -#include "imagedev/harddriv.h" #include "formats/basicdsk.h" #include "machine/ctronics.h" #include "machine/i8214.h" diff --git a/src/mess/machine/a2scsi.c b/src/mess/machine/a2scsi.c index 727e54cdcac..171f15dc487 100644 --- a/src/mess/machine/a2scsi.c +++ b/src/mess/machine/a2scsi.c @@ -20,6 +20,7 @@ #include "a2scsi.h" #include "includes/apple2.h" +#include "machine/scsibus.h" /*************************************************************************** @@ -33,24 +34,19 @@ const device_type A2BUS_SCSI = &device_creator; #define SCSI_ROM_REGION "scsi_rom" -#define SCSI_5380_TAG "ncr5380" +#define SCSI_5380_TAG "scsi:ncr5380" -static const SCSIConfigTable dev_table = +static const SCSIBus_interface scsibus_intf = { - 0, /* 2 SCSI devices */ - { -// { SCSI_ID_6, "harddisk1", SCSI_DEVICE_HARDDISK }, /* SCSI ID 6, using disk1, and it's a harddisk */ -// { SCSI_ID_5, "harddisk2", SCSI_DEVICE_HARDDISK } /* SCSI ID 5, using disk2, and it's a harddisk */ - } }; static const struct NCR5380interface a2scsi_5380_intf = { - &dev_table, // SCSI device table NULL // IRQ handler (unconnected according to schematic) }; MACHINE_CONFIG_FRAGMENT( scsi ) + MCFG_SCSIBUS_ADD("scsi", scsibus_intf) MCFG_NCR5380_ADD(SCSI_5380_TAG, (XTAL_28_63636MHz/4), a2scsi_5380_intf) MACHINE_CONFIG_END diff --git a/src/mess/machine/abc_hdc.h b/src/mess/machine/abc_hdc.h index 2f3083eaf09..191a273744e 100644 --- a/src/mess/machine/abc_hdc.h +++ b/src/mess/machine/abc_hdc.h @@ -16,7 +16,6 @@ #include "emu.h" #include "cpu/z80/z80.h" #include "cpu/z80/z80daisy.h" -#include "imagedev/harddriv.h" #include "machine/abcbus.h" #include "machine/scsibus.h" #include "machine/scsihd.h" diff --git a/src/mess/machine/abc_xebec.h b/src/mess/machine/abc_xebec.h index 94c775eb3e2..793ddbb4e72 100644 --- a/src/mess/machine/abc_xebec.h +++ b/src/mess/machine/abc_xebec.h @@ -16,7 +16,6 @@ #include "emu.h" #include "cpu/z80/z80.h" #include "cpu/z80/z80daisy.h" -#include "imagedev/harddriv.h" #include "machine/abcbus.h" #include "machine/scsibus.h" #include "machine/scsihd.h" diff --git a/src/mess/machine/d9060.h b/src/mess/machine/d9060.h index 7e4385bdc2f..245e517bb49 100644 --- a/src/mess/machine/d9060.h +++ b/src/mess/machine/d9060.h @@ -26,7 +26,6 @@ #include "emu.h" #include "cpu/m6502/m6502.h" -#include "imagedev/harddriv.h" #include "machine/6522via.h" #include "machine/6532riot.h" #include "machine/ieee488.h" diff --git a/src/mess/machine/e01.h b/src/mess/machine/e01.h index efab269dabe..6035f2568e7 100644 --- a/src/mess/machine/e01.h +++ b/src/mess/machine/e01.h @@ -15,7 +15,6 @@ #include "emu.h" #include "cpu/m6502/m6502.h" #include "imagedev/flopdrv.h" -#include "imagedev/harddriv.h" #include "machine/6522via.h" #include "machine/ctronics.h" #include "machine/econet.h" diff --git a/src/mess/machine/fm_scsi.c b/src/mess/machine/fm_scsi.c index 7e771c3d536..2f691cc9d90 100644 --- a/src/mess/machine/fm_scsi.c +++ b/src/mess/machine/fm_scsi.c @@ -43,7 +43,6 @@ void fmscsi_device::device_config_complete() // otherwise, initialize it to defaults else { - scsidevs = NULL; memset(&irq_callback,0,sizeof(irq_callback)); memset(&drq_callback,0,sizeof(drq_callback)); } @@ -73,12 +72,15 @@ void fmscsi_device::device_start() memset(m_SCSIdevices,0,sizeof(m_SCSIdevices)); - // initialise SCSI devices, if any present - for(int x=0;xdevs_present;x++) - { - scsidev_device *device = owner()->subdevice( scsidevs->devices[x].tag ); - m_SCSIdevices[device->GetDeviceID()] = device; - } + // try to open the devices + for( device_t *device = owner()->first_subdevice(); device != NULL; device = device->next() ) + { + scsidev_device *scsidev = dynamic_cast(device); + if( scsidev != NULL ) + { + m_SCSIdevices[scsidev->GetDeviceID()] = scsidev; + } + } // allocate read timer m_transfer_timer = timer_alloc(TIMER_TRANSFER); diff --git a/src/mess/machine/fm_scsi.h b/src/mess/machine/fm_scsi.h index 1b8aaed981d..38e1f065406 100644 --- a/src/mess/machine/fm_scsi.h +++ b/src/mess/machine/fm_scsi.h @@ -8,7 +8,6 @@ #ifndef FM_SCSI_H_ #define FM_SCSI_H_ -#include "machine/scsi.h" #include "machine/scsidev.h" // SCSI input lines (from target) @@ -37,7 +36,6 @@ struct FMSCSIinterface { - const SCSIConfigTable *scsidevs; /* SCSI devices */ devcb_write_line irq_callback; /* irq callback */ devcb_write_line drq_callback; /* drq callback */ }; diff --git a/src/mess/machine/mac.c b/src/mess/machine/mac.c index c0dae0b848c..98cfcf154e8 100644 --- a/src/mess/machine/mac.c +++ b/src/mess/machine/mac.c @@ -974,7 +974,6 @@ Note: Asserting the DACK signal applies only to write operations to READ16_MEMBER ( mac_state::macplus_scsi_r ) { int reg = (offset>>3) & 0xf; - ncr5380_device *ncr = space.machine().device("ncr5380"); // logerror("macplus_scsi_r: offset %x mask %x\n", offset, mem_mask); @@ -983,23 +982,21 @@ READ16_MEMBER ( mac_state::macplus_scsi_r ) reg = R5380_CURDATA_DTACK; } - return ncr->ncr5380_read_reg(reg)<<8; + return m_ncr5380->ncr5380_read_reg(reg)<<8; } READ32_MEMBER (mac_state::macii_scsi_drq_r) { - ncr5380_device *ncr = space.machine().device("ncr5380"); - switch (mem_mask) { case 0xff000000: - return ncr->ncr5380_read_reg(R5380_CURDATA_DTACK)<<24; + return m_ncr5380->ncr5380_read_reg(R5380_CURDATA_DTACK)<<24; case 0xffff0000: - return (ncr->ncr5380_read_reg(R5380_CURDATA_DTACK)<<24) | (ncr->ncr5380_read_reg(R5380_CURDATA_DTACK)<<16); + return (m_ncr5380->ncr5380_read_reg(R5380_CURDATA_DTACK)<<24) | (m_ncr5380->ncr5380_read_reg(R5380_CURDATA_DTACK)<<16); case 0xffffffff: - 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); + return (m_ncr5380->ncr5380_read_reg(R5380_CURDATA_DTACK)<<24) | (m_ncr5380->ncr5380_read_reg(R5380_CURDATA_DTACK)<<16) | (m_ncr5380->ncr5380_read_reg(R5380_CURDATA_DTACK)<<8) | m_ncr5380->ncr5380_read_reg(R5380_CURDATA_DTACK); default: logerror("macii_scsi_drq_r: unknown mem_mask %08x\n", mem_mask); @@ -1010,24 +1007,22 @@ READ32_MEMBER (mac_state::macii_scsi_drq_r) WRITE32_MEMBER (mac_state::macii_scsi_drq_w) { - ncr5380_device *ncr = space.machine().device("ncr5380"); - switch (mem_mask) { case 0xff000000: - ncr->ncr5380_write_reg(R5380_OUTDATA_DTACK, data>>24); + m_ncr5380->ncr5380_write_reg(R5380_OUTDATA_DTACK, data>>24); break; case 0xffff0000: - ncr->ncr5380_write_reg(R5380_OUTDATA_DTACK, data>>24); - ncr->ncr5380_write_reg(R5380_OUTDATA_DTACK, data>>16); + m_ncr5380->ncr5380_write_reg(R5380_OUTDATA_DTACK, data>>24); + m_ncr5380->ncr5380_write_reg(R5380_OUTDATA_DTACK, data>>16); break; case 0xffffffff: - 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); + m_ncr5380->ncr5380_write_reg(R5380_OUTDATA_DTACK, data>>24); + m_ncr5380->ncr5380_write_reg(R5380_OUTDATA_DTACK, data>>16); + m_ncr5380->ncr5380_write_reg(R5380_OUTDATA_DTACK, data>>8); + m_ncr5380->ncr5380_write_reg(R5380_OUTDATA_DTACK, data&0xff); break; default: @@ -1039,7 +1034,6 @@ WRITE32_MEMBER (mac_state::macii_scsi_drq_w) WRITE16_MEMBER ( mac_state::macplus_scsi_w ) { int reg = (offset>>3) & 0xf; - ncr5380_device *ncr = space.machine().device("ncr5380"); // logerror("macplus_scsi_w: data %x offset %x mask %x\n", data, offset, mem_mask); @@ -1048,13 +1042,12 @@ WRITE16_MEMBER ( mac_state::macplus_scsi_w ) reg = R5380_OUTDATA_DTACK; } - ncr->ncr5380_write_reg(reg, data); + m_ncr5380->ncr5380_write_reg(reg, data); } WRITE16_MEMBER ( mac_state::macii_scsi_w ) { int reg = (offset>>3) & 0xf; - ncr5380_device *ncr = space.machine().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 +1056,7 @@ WRITE16_MEMBER ( mac_state::macii_scsi_w ) reg = R5380_OUTDATA_DTACK; } - ncr->ncr5380_write_reg(reg, data>>8); + m_ncr5380->ncr5380_write_reg(reg, data>>8); } void mac_scsi_irq(running_machine &machine, int state) diff --git a/src/mess/machine/mb89352.c b/src/mess/machine/mb89352.c index bc6e71eab1f..be69018b20a 100644 --- a/src/mess/machine/mb89352.c +++ b/src/mess/machine/mb89352.c @@ -120,7 +120,6 @@ void mb89352_device::device_config_complete() // otherwise, initialize it to defaults else { - scsidevs = NULL; memset(&irq_callback,0,sizeof(irq_callback)); memset(&drq_callback,0,sizeof(drq_callback)); } @@ -156,10 +155,13 @@ void mb89352_device::device_start() m_transfer_timer = timer_alloc(TIMER_TRANSFER); // try to open the devices - for (int i = 0; i < scsidevs->devs_present; i++) + for( device_t *device = owner()->first_subdevice(); device != NULL; device = device->next() ) { - scsidev_device *device = owner()->subdevice( scsidevs->devices[i].tag ); - m_SCSIdevices[device->GetDeviceID()] = device; + scsidev_device *scsidev = dynamic_cast(device); + if( scsidev != NULL ) + { + m_SCSIdevices[scsidev->GetDeviceID()] = scsidev; + } } } diff --git a/src/mess/machine/mb89352.h b/src/mess/machine/mb89352.h index b1b397c27be..ab466ccb38b 100644 --- a/src/mess/machine/mb89352.h +++ b/src/mess/machine/mb89352.h @@ -7,7 +7,6 @@ #ifndef MB89352_H_ #define MB89352_H_ -#include "machine/scsi.h" #include "machine/scsidev.h" // SCSI lines readable via PSNS register (reg 5) @@ -55,7 +54,6 @@ struct mb89352_interface { - const SCSIConfigTable *scsidevs; /* SCSI devices */ devcb_write_line irq_callback; /* irq callback */ devcb_write_line drq_callback; /* drq callback */ }; diff --git a/src/mess/machine/ncr5380.c b/src/mess/machine/ncr5380.c index e9788e8a38b..d9255e53518 100644 --- a/src/mess/machine/ncr5380.c +++ b/src/mess/machine/ncr5380.c @@ -81,7 +81,6 @@ void ncr5380_device::device_config_complete() // or initialize to defaults if none provided else { - scsidevs = NULL; irq_callback = NULL; } } @@ -123,10 +122,13 @@ void ncr5380_device::device_start() save_item(NAME(m_next_req_flag)); // try to open the devices - for (int i = 0; i < scsidevs->devs_present; i++) + for( device_t *device = owner()->first_subdevice(); device != NULL; device = device->next() ) { - scsidev_device *device = owner()->subdevice( scsidevs->devices[i].tag ); - m_scsi_devices[device->GetDeviceID()] = device; + scsidev_device *scsidev = dynamic_cast(device); + if( scsidev != NULL ) + { + m_scsi_devices[scsidev->GetDeviceID()] = scsidev; + } } } diff --git a/src/mess/machine/ncr5380.h b/src/mess/machine/ncr5380.h index e0bc6995636..d7756aebd02 100644 --- a/src/mess/machine/ncr5380.h +++ b/src/mess/machine/ncr5380.h @@ -6,12 +6,10 @@ #ifndef _NCR5380_H_ #define _NCR5380_H_ -#include "machine/scsi.h" #include "machine/scsidev.h" struct NCR5380interface { - const SCSIConfigTable *scsidevs; /* SCSI devices */ void (*irq_callback)(running_machine &machine, int state); /* irq callback */ }; diff --git a/src/mess/machine/rmnimbus.c b/src/mess/machine/rmnimbus.c index 8c3b6232c48..557a04a8202 100644 --- a/src/mess/machine/rmnimbus.c +++ b/src/mess/machine/rmnimbus.c @@ -62,7 +62,6 @@ even if you have to use unusual geometry to do so ! #include "machine/i8251.h" #include "machine/ctronics.h" #include "machine/6522via.h" -#include "machine/scsi.h" #include "sound/ay8910.h" #include "sound/msm5205.h" diff --git a/src/mess/machine/x68k_scsiext.c b/src/mess/machine/x68k_scsiext.c index 205b267ab65..516ed13bb92 100644 --- a/src/mess/machine/x68k_scsiext.c +++ b/src/mess/machine/x68k_scsiext.c @@ -7,6 +7,7 @@ */ #include "emu.h" +#include "machine/scsibus.h" #include "machine/scsihd.h" #include "machine/mb89352.h" #include "machine/x68k_scsiext.h" @@ -17,23 +18,12 @@ const device_type X68K_SCSIEXT = &device_creator; -static const SCSIConfigTable x68k_scsiext_devtable = +static const SCSIBus_interface scsibus_intf = { - 7, /* 7 SCSI devices */ - { - { "extharddisk0" }, - { "extharddisk1" }, - { "extharddisk2" }, - { "extharddisk3" }, - { "extharddisk4" }, - { "extharddisk5" }, - { "extharddisk6" }, - } }; -static const mb89352_interface x68k_scsiext_intf = +static const mb89352_interface mb89352_intf = { - &x68k_scsiext_devtable, DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER,x68k_scsiext_device,irq_w), DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER,x68k_scsiext_device,drq_w) }; @@ -54,14 +44,15 @@ const rom_entry *x68k_scsiext_device::device_rom_region() const // device machine config static MACHINE_CONFIG_FRAGMENT( x68k_scsiext ) - MCFG_MB89352A_ADD("mb89352_ext",x68k_scsiext_intf) - MCFG_SCSIDEV_ADD("extharddisk0", SCSIHD, SCSI_ID_0) - MCFG_SCSIDEV_ADD("extharddisk1", SCSIHD, SCSI_ID_1) - MCFG_SCSIDEV_ADD("extharddisk2", SCSIHD, SCSI_ID_2) - MCFG_SCSIDEV_ADD("extharddisk3", SCSIHD, SCSI_ID_3) - MCFG_SCSIDEV_ADD("extharddisk4", SCSIHD, SCSI_ID_4) - MCFG_SCSIDEV_ADD("extharddisk5", SCSIHD, SCSI_ID_5) - MCFG_SCSIDEV_ADD("extharddisk6", SCSIHD, SCSI_ID_6) + MCFG_SCSIBUS_ADD("scsi", scsibus_intf) + MCFG_SCSIDEV_ADD("scsi:harddisk0", SCSIHD, SCSI_ID_0) + MCFG_SCSIDEV_ADD("scsi:harddisk1", SCSIHD, SCSI_ID_1) + MCFG_SCSIDEV_ADD("scsi:harddisk2", SCSIHD, SCSI_ID_2) + MCFG_SCSIDEV_ADD("scsi:harddisk3", SCSIHD, SCSI_ID_3) + MCFG_SCSIDEV_ADD("scsi:harddisk4", SCSIHD, SCSI_ID_4) + MCFG_SCSIDEV_ADD("scsi:harddisk5", SCSIHD, SCSI_ID_5) + MCFG_SCSIDEV_ADD("scsi:harddisk6", SCSIHD, SCSI_ID_6) + MCFG_MB89352A_ADD("scsi:mb89352",mb89352_intf) MACHINE_CONFIG_END machine_config_constructor x68k_scsiext_device::device_mconfig_additions() const @@ -72,7 +63,7 @@ machine_config_constructor x68k_scsiext_device::device_mconfig_additions() const x68k_scsiext_device::x68k_scsiext_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : device_t(mconfig, X68K_SCSIEXT, "Sharp CZ-6BS1 SCSI-1", tag, owner, clock), device_x68k_expansion_card_interface(mconfig, *this), - m_spc(*this, "mb89352_ext") + m_spc(*this, "mb89352") { } diff --git a/src/mess/mess.mak b/src/mess/mess.mak index ba1eb899dba..099ba042a42 100644 --- a/src/mess/mess.mak +++ b/src/mess/mess.mak @@ -525,7 +525,6 @@ $(MESSOBJ)/shared.a: \ $(MESS_MACHINE)/pc_lpt.o \ $(MESS_MACHINE)/cntr_covox.o \ $(MESS_MACHINE)/pcf8593.o \ - $(MESS_MACHINE)/scsibus.o \ $(MESS_MACHINE)/smartmed.o \ $(MESS_MACHINE)/smc92x4.o \ $(MESS_MACHINE)/sst39vfx.o \