summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/sun3.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/sun3.cpp')
-rw-r--r--src/mame/drivers/sun3.cpp149
1 files changed, 73 insertions, 76 deletions
diff --git a/src/mame/drivers/sun3.cpp b/src/mame/drivers/sun3.cpp
index cda7adcc082..68a5c9863f1 100644
--- a/src/mame/drivers/sun3.cpp
+++ b/src/mame/drivers/sun3.cpp
@@ -319,8 +319,8 @@ void sun3_state::ncr5380(device_t *device)
{
devcb_base *devcb;
(void)devcb;
- downcast<ncr5380n_device &>(*device).set_clock(10000000);
-// downcast<ncr5380n_device &>(*device).drq_handler().set(FUNC(sun3_state::drq_w));
+ MCFG_DEVICE_CLOCK(10000000)
+// MCFG_NCR5380N_DRQ_HANDLER(WRITELINE(*this, sun3_state, drq_w))
}
static void scsi_devices(device_slot_interface &device)
@@ -543,7 +543,7 @@ READ32_MEMBER( sun3_state::tl_mmu_r )
switch ((m_pagemap[entry] >> 26) & 3)
{
case 0: // type 0 space
- return m_type0space->read32(tmp, mem_mask);
+ return m_type0space->read32(space, tmp, mem_mask);
case 1: // type 1 space
// magic ROM bypass
@@ -551,13 +551,13 @@ READ32_MEMBER( sun3_state::tl_mmu_r )
{
return m_rom_ptr[offset & 0x3fff];
}
- return m_type1space->read32(tmp, mem_mask);
+ return m_type1space->read32(space, tmp, mem_mask);
case 2: // type 2 space
- return m_type2space->read32(tmp, mem_mask);
+ return m_type2space->read32(space, tmp, mem_mask);
case 3: // type 3 space
- return m_type3space->read32(tmp, mem_mask);
+ return m_type3space->read32(space, tmp, mem_mask);
}
}
else
@@ -693,20 +693,20 @@ WRITE32_MEMBER( sun3_state::tl_mmu_w )
switch ((m_pagemap[entry] >> 26) & 3)
{
case 0: // type 0
- m_type0space->write32(tmp, data, mem_mask);
+ m_type0space->write32(space, tmp, data, mem_mask);
return;
case 1: // type 1
//printf("write device space @ %x\n", tmp<<1);
- m_type1space->write32(tmp, data, mem_mask);
+ m_type1space->write32(space, tmp, data, mem_mask);
return;
case 2: // type 2
- m_type2space->write32(tmp, data, mem_mask);
+ m_type2space->write32(space, tmp, data, mem_mask);
return;
case 3: // type 3
- m_type3space->write32(tmp, data, mem_mask);
+ m_type3space->write32(space, tmp, data, mem_mask);
return;
}
}
@@ -1008,17 +1008,16 @@ void sun3_state::machine_reset()
}
// The base Sun 3004 CPU board
-void sun3_state::sun3(machine_config &config)
-{
+MACHINE_CONFIG_START(sun3_state::sun3)
/* basic machine hardware */
- M68020(config, m_maincpu, 16670000);
- m_maincpu->set_addrmap(AS_PROGRAM, &sun3_state::sun3_mem);
+ MCFG_DEVICE_ADD("maincpu", M68020, 16670000)
+ MCFG_DEVICE_PROGRAM_MAP(sun3_mem)
- screen_device &bwtwo(SCREEN(config, "bwtwo", SCREEN_TYPE_RASTER));
- bwtwo.set_screen_update(FUNC(sun3_state::bw2_update));
- bwtwo.set_size(1600,1100);
- bwtwo.set_visarea(0, 1152-1, 0, 900-1);
- bwtwo.set_refresh_hz(72);
+ MCFG_SCREEN_ADD("bwtwo", RASTER)
+ MCFG_SCREEN_UPDATE_DRIVER(sun3_state, bw2_update)
+ MCFG_SCREEN_SIZE(1600,1100)
+ MCFG_SCREEN_VISIBLE_AREA(0, 1152-1, 0, 900-1)
+ MCFG_SCREEN_REFRESH_RATE(72)
RAM(config, m_ram).set_default_size("4M").set_extra_options("6M,8M,12M,16M,20M,24M,28M,32M").set_default_value(0x00);
@@ -1036,7 +1035,7 @@ void sun3_state::sun3(machine_config &config)
// MMU Type 3 device space
ADDRESS_MAP_BANK(config, "type3").set_map(&sun3_state::vmetype3space_map).set_options(ENDIANNESS_BIG, 32, 32, 0x80000000);
- TIMER(config, "timer").configure_periodic(FUNC(sun3_state::sun3_timer), attotime::from_hz(100));
+ MCFG_TIMER_DRIVER_ADD_PERIODIC("timer", sun3_state, sun3_timer, attotime::from_hz(100))
SCC8530N(config, m_scc1, 4.9152_MHz_XTAL);
m_scc1->out_txda_callback().set(KEYBOARD_TAG, FUNC(sun_keyboard_port_device::write_txd));
@@ -1062,73 +1061,70 @@ void sun3_state::sun3(machine_config &config)
AM79C90(config, m_lance, 10'000'000); // clock is a guess
- NSCSI_BUS(config, "scsibus");
- NSCSI_CONNECTOR(config, "scsibus:0", scsi_devices, nullptr);
- NSCSI_CONNECTOR(config, "scsibus:1", scsi_devices, "harddisk");
- NSCSI_CONNECTOR(config, "scsibus:2", scsi_devices, nullptr);
- NSCSI_CONNECTOR(config, "scsibus:3", scsi_devices, nullptr);
- NSCSI_CONNECTOR(config, "scsibus:4", scsi_devices, nullptr);
- NSCSI_CONNECTOR(config, "scsibus:5", scsi_devices, nullptr);
- NSCSI_CONNECTOR(config, "scsibus:6", scsi_devices, "cdrom");
- NSCSI_CONNECTOR(config, "scsibus:7", scsi_devices, "ncr5380", true).set_option_machine_config("ncr5380", [this] (device_t *device) { ncr5380(device); });
-}
+ MCFG_NSCSI_BUS_ADD("scsibus")
+ MCFG_NSCSI_ADD("scsibus:0", scsi_devices, nullptr, false)
+ MCFG_NSCSI_ADD("scsibus:1", scsi_devices, "harddisk", false)
+ MCFG_NSCSI_ADD("scsibus:2", scsi_devices, nullptr, false)
+ MCFG_NSCSI_ADD("scsibus:3", scsi_devices, nullptr, false)
+ MCFG_NSCSI_ADD("scsibus:4", scsi_devices, nullptr, false)
+ MCFG_NSCSI_ADD("scsibus:5", scsi_devices, nullptr, false)
+ MCFG_NSCSI_ADD("scsibus:6", scsi_devices, "cdrom", false)
+ MCFG_NSCSI_ADD("scsibus:7", scsi_devices, "ncr5380", true)
+ MCFG_SLOT_OPTION_MACHINE_CONFIG("ncr5380", [this] (device_t *device) { ncr5380(device); })
+MACHINE_CONFIG_END
// Sun 3/60
-void sun3_state::sun3_60(machine_config &config)
-{
+MACHINE_CONFIG_START(sun3_state::sun3_60)
sun3(config);
- M68020(config.replace(), m_maincpu, 20000000);
- m_maincpu->set_addrmap(AS_PROGRAM, &sun3_state::sun3_mem);
-
- screen_device &bwtwo(*subdevice<screen_device>("bwtwo"));
- bwtwo.set_screen_update(FUNC(sun3_state::bw2_16x11_update));
- bwtwo.set_size(1600,1100);
- bwtwo.set_visarea(0, 1600-1, 0, 1100-1);
- bwtwo.set_refresh_hz(72);
-}
+ MCFG_DEVICE_REPLACE("maincpu", M68020, 20000000)
+ MCFG_DEVICE_PROGRAM_MAP(sun3_mem)
+
+ MCFG_SCREEN_MODIFY("bwtwo")
+ MCFG_SCREEN_UPDATE_DRIVER(sun3_state, bw2_16x11_update)
+ MCFG_SCREEN_SIZE(1600,1100)
+ MCFG_SCREEN_VISIBLE_AREA(0, 1600-1, 0, 1100-1)
+ MCFG_SCREEN_REFRESH_RATE(72)
+MACHINE_CONFIG_END
// Sun 3/E
-void sun3_state::sun3e(machine_config &config)
-{
+MACHINE_CONFIG_START(sun3_state::sun3e)
sun3(config);
- M68020(config.replace(), m_maincpu, 20000000);
- m_maincpu->set_addrmap(AS_PROGRAM, &sun3_state::sun3_mem);
-}
+ MCFG_DEVICE_REPLACE("maincpu", M68020, 20000000)
+ MCFG_DEVICE_PROGRAM_MAP(sun3_mem)
+MACHINE_CONFIG_END
// 3/260 and 3/280 (the Sun 3200 board)
-void sun3_state::sun3200(machine_config &config)
-{
+MACHINE_CONFIG_START(sun3_state::sun3200)
sun3(config);
- M68020(config.replace(), m_maincpu, 25000000);
- m_maincpu->set_addrmap(AS_PROGRAM, &sun3_state::sun3_mem);
+ MCFG_DEVICE_REPLACE("maincpu", M68020, 25000000)
+ MCFG_DEVICE_PROGRAM_MAP(sun3_mem)
- screen_device &bwtwo(*subdevice<screen_device>("bwtwo"));
- bwtwo.set_screen_update(FUNC(sun3_state::bw2_16x11_update));
- bwtwo.set_size(1600,1100);
- bwtwo.set_visarea(0, 1600-1, 0, 1100-1);
- bwtwo.set_refresh_hz(72);
+ MCFG_SCREEN_MODIFY("bwtwo")
+ MCFG_SCREEN_UPDATE_DRIVER(sun3_state, bw2_16x11_update)
+ MCFG_SCREEN_SIZE(1600,1100)
+ MCFG_SCREEN_VISIBLE_AREA(0, 1600-1, 0, 1100-1)
+ MCFG_SCREEN_REFRESH_RATE(72)
m_ram->set_default_size("32M").set_extra_options("64M,96M,128M");
-}
+MACHINE_CONFIG_END
-void sun3_state::sun3_50(machine_config &config)
-{
+MACHINE_CONFIG_START(sun3_state::sun3_50)
/* basic machine hardware */
- M68020(config, m_maincpu, 15700000);
- m_maincpu->set_addrmap(AS_PROGRAM, &sun3_state::sun3_mem);
+ MCFG_DEVICE_ADD("maincpu", M68020, 15700000)
+ MCFG_DEVICE_PROGRAM_MAP(sun3_mem)
AM79C90(config, m_lance, 10'000'000); // clock is a guess
- screen_device &bwtwo(SCREEN(config, "bwtwo", SCREEN_TYPE_RASTER));
- bwtwo.set_screen_update(FUNC(sun3_state::bw2_350_update));
- bwtwo.set_size(1600,1100);
- bwtwo.set_visarea(0, 1152-1, 0, 900-1);
- bwtwo.set_refresh_hz(72);
+ MCFG_SCREEN_ADD("bwtwo", RASTER)
+ MCFG_SCREEN_UPDATE_DRIVER(sun3_state, bw2_350_update)
+ MCFG_SCREEN_SIZE(1600,1100)
+ MCFG_SCREEN_VISIBLE_AREA(0, 1152-1, 0, 900-1)
+ MCFG_SCREEN_REFRESH_RATE(72)
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
- TIMER(config, "timer").configure_periodic(FUNC(sun3_state::sun3_timer), attotime::from_hz(100));
+ MCFG_TIMER_DRIVER_ADD_PERIODIC("timer", sun3_state, sun3_timer, attotime::from_hz(100))
RAM(config, m_ram).set_default_size("4M").set_default_value(0x00);
@@ -1166,16 +1162,17 @@ void sun3_state::sun3_50(machine_config &config)
rs232b.dcd_handler().set(m_scc2, FUNC(z80scc_device::dcdb_w));
rs232b.cts_handler().set(m_scc2, FUNC(z80scc_device::ctsb_w));
- NSCSI_BUS(config, "scsibus");
- NSCSI_CONNECTOR(config, "scsibus:0", scsi_devices, nullptr);
- NSCSI_CONNECTOR(config, "scsibus:1", scsi_devices, "harddisk");
- NSCSI_CONNECTOR(config, "scsibus:2", scsi_devices, nullptr);
- NSCSI_CONNECTOR(config, "scsibus:3", scsi_devices, nullptr);
- NSCSI_CONNECTOR(config, "scsibus:4", scsi_devices, nullptr);
- NSCSI_CONNECTOR(config, "scsibus:5", scsi_devices, nullptr);
- NSCSI_CONNECTOR(config, "scsibus:6", scsi_devices, "cdrom");
- NSCSI_CONNECTOR(config, "scsibus:7", scsi_devices, "ncr5380", true).set_option_machine_config("ncr5380", [this] (device_t *device) { ncr5380(device); });
-}
+ MCFG_NSCSI_BUS_ADD("scsibus")
+ MCFG_NSCSI_ADD("scsibus:0", scsi_devices, nullptr, false)
+ MCFG_NSCSI_ADD("scsibus:1", scsi_devices, "harddisk", false)
+ MCFG_NSCSI_ADD("scsibus:2", scsi_devices, nullptr, false)
+ MCFG_NSCSI_ADD("scsibus:3", scsi_devices, nullptr, false)
+ MCFG_NSCSI_ADD("scsibus:4", scsi_devices, nullptr, false)
+ MCFG_NSCSI_ADD("scsibus:5", scsi_devices, nullptr, false)
+ MCFG_NSCSI_ADD("scsibus:6", scsi_devices, "cdrom", false)
+ MCFG_NSCSI_ADD("scsibus:7", scsi_devices, "ncr5380", true)
+ MCFG_SLOT_OPTION_MACHINE_CONFIG("ncr5380", [this] (device_t *device) { ncr5380(device); })
+MACHINE_CONFIG_END
/* ROM definition */