diff options
Diffstat (limited to 'src/mame/bfm/rastersp.cpp')
| -rw-r--r-- | src/mame/bfm/rastersp.cpp | 50 |
1 files changed, 17 insertions, 33 deletions
diff --git a/src/mame/bfm/rastersp.cpp b/src/mame/bfm/rastersp.cpp index 7eab8ffa7e2..7684422fa06 100644 --- a/src/mame/bfm/rastersp.cpp +++ b/src/mame/bfm/rastersp.cpp @@ -65,6 +65,7 @@ public: , m_maincpu(*this, "maincpu") , m_dsp(*this, "dsp") , m_duart(*this, "duart") + , m_scsibus(*this, "scsibus") , m_dram(*this, "dram") , m_ldac(*this, "ldac") , m_rdac(*this, "rdac") @@ -96,6 +97,7 @@ protected: required_device<i486_device> m_maincpu; required_device<tms320c3x_device> m_dsp; required_device<z80scc_device> m_duart; + required_device<nscsi_bus_device> m_scsibus; void update_irq(uint32_t which, uint32_t state); @@ -171,7 +173,6 @@ private: void upload_palette(uint32_t word1, uint32_t word2); IRQ_CALLBACK_MEMBER(irq_callback); nscsi_connector &add_rastersp_scsi_slot(machine_config &config, const char *tag, const char *default_slot); - static void ncr53c700_config(device_t *device); void cpu_map(address_map &map) ATTR_COLD; void dsp_map(address_map &map) ATTR_COLD; uint8_t interrupt_status_r(offs_t offset); @@ -1101,7 +1102,7 @@ void rastersp_state::cpu_map_base(address_map &map) { map(0x02200000, 0x022fffff).rw(FUNC(rastersp_state::nvram_r), FUNC(rastersp_state::nvram_w)).umask32(0x000000ff); map(0x02200800, 0x02200803).rw(FUNC(rastersp_state::interrupt_ctrl_r),FUNC(rastersp_state::interrupt_ctrl_w)); - map(0x02208000, 0x02208fff).rw("scsibus:7:ncr53c700", FUNC(ncr53c7xx_device::read), FUNC(ncr53c7xx_device::write)); + map(0x02208000, 0x02208fff).rw("ncr53c700", FUNC(ncr53c7xx_device::read), FUNC(ncr53c7xx_device::write)); map(0x0220e000, 0x0220e003).w(FUNC(rastersp_state::dpylist_w)); map(0xfff00000, 0xffffffff).bankrw("bank1");//was 3 } @@ -1425,16 +1426,6 @@ void rastersp_state::ncr53c700_write(offs_t offset, uint32_t data, uint32_t mem_ m_maincpu->space(AS_PROGRAM).write_dword(offset, data, mem_mask); } -void rastersp_state::ncr53c700_config(device_t *device) -{ - auto *state = device->subdevice<rastersp_state>(":"); - ncr53c7xx_device &scsictrl = downcast<ncr53c7xx_device &>(*device); - scsictrl.set_clock(66'000'000); - scsictrl.irq_handler().set(*state, FUNC(rastersp_state::scsi_irq)); - scsictrl.host_read().set(*state, FUNC(rastersp_state::ncr53c700_read)); - scsictrl.host_write().set(*state, FUNC(rastersp_state::ncr53c700_write)); -} - void rastersp_state::rs_config_base(machine_config &config) { I486(config, m_maincpu, 33'330'000); @@ -1448,16 +1439,15 @@ void rastersp_state::rs_config_base(machine_config &config) NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); - NSCSI_BUS(config, "scsibus", 0); + (NSCSI_BUS(config, m_scsibus)); - WATCHDOG_TIMER(config, m_watchdog).set_time(attotime::from_seconds(1)); + auto &scsictrl(NCR53C7XX(config, "ncr53c700",66'000'000)); + m_scsibus->set_external_device(7, scsictrl); + scsictrl.irq_handler().set(DEVICE_SELF, FUNC(rastersp_state::scsi_irq)); + scsictrl.host_read().set(DEVICE_SELF, FUNC(rastersp_state::ncr53c700_read)); + scsictrl.host_write().set(DEVICE_SELF, FUNC(rastersp_state::ncr53c700_write)); - nscsi_connector &connector7(NSCSI_CONNECTOR(config, "scsibus:7", 0)); - connector7.option_add("harddisk", NSCSI_HARDDISK); - connector7.option_add_internal("ncr53c700", NCR53C7XX); - connector7.set_default_option("ncr53c700"); - connector7.set_fixed(true); - connector7.set_option_machine_config("ncr53c700", ncr53c700_config); + WATCHDOG_TIMER(config, m_watchdog).set_time(attotime::from_seconds(1)); /* Video */ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); @@ -1497,11 +1487,8 @@ void rastersp_state::rastersp(machine_config &config) m_dsp->set_addrmap(AS_PROGRAM, &rastersp_state::dsp_map); - nscsi_connector &connector0(NSCSI_CONNECTOR(config, "scsibus:0", 0)); - connector0.option_add("harddisk", NSCSI_HARDDISK); - connector0.option_add_internal("ncr53c700", NCR53C7XX); - connector0.set_default_option("harddisk"); - connector0.set_fixed(true); + auto &hd(NSCSI_HARDDISK(config, "harddisk")); + m_scsibus->set_external_device(0, hd); } @@ -1512,11 +1499,8 @@ void fbcrazy_state::fbcrazy(machine_config &config) m_dsp->set_addrmap(AS_PROGRAM, &fbcrazy_state::dsp_map); - nscsi_connector &connector3(NSCSI_CONNECTOR(config, "scsibus:3", 0)); - connector3.option_add("cdrom", NSCSI_CDROM); - connector3.option_add_internal("ncr53c700", NCR53C7XX); - connector3.set_default_option("cdrom"); - connector3.set_fixed(true); + auto &cdrom(NSCSI_CDROM(config, "cdrom")); + m_scsibus->set_external_device(3, cdrom); bacta_datalogger_device &bacta(BACTA_DATALOGGER(config, "bacta", 0)); @@ -1543,7 +1527,7 @@ ROM_START( rotr ) ROM_REGION(0x8000, "nvram", 0) /* Default NVRAM */ ROM_LOAD( "rotr.nv", 0x0000, 0x8000, CRC(62543517) SHA1(a4bf3431cdab956839bb155c4a8c140d30e5c7ec) ) - DISK_REGION( "scsibus:0:harddisk" ) + DISK_REGION( "harddisk" ) DISK_IMAGE( "rotr", 0, SHA1(d67d7feb52d8c7ba1d2a190a40d97e84871f2d80) ) ROM_END @@ -1559,7 +1543,7 @@ ROM_START( rotra ) ROM_REGION(0x8000, "nvram", 0) /* Default NVRAM */ ROM_LOAD( "rotr.nv", 0x0000, 0x8000, CRC(62543517) SHA1(a4bf3431cdab956839bb155c4a8c140d30e5c7ec) ) - DISK_REGION( "scsibus:0:harddisk" ) + DISK_REGION( "harddisk" ) DISK_IMAGE( "rotra", 0, SHA1(570d402e5e9bba123edf7dfa9db7a0e6bdb23823) ) ROM_END @@ -1593,7 +1577,7 @@ ROM_START( fbcrazy ) ROM_REGION(0x8000, "nvram", ROMREGION_ERASEFF ) - DISK_REGION( "scsibus:3:cdrom" ) + DISK_REGION( "cdrom" ) DISK_IMAGE_READONLY( "95100303", 0, SHA1(9ba47c96de27ec2bea9c6624d78d309b67705406) ) ROM_END |
