summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author yz70s <yz70s@users.noreply.github.com>2019-12-22 19:51:52 +0100
committer yz70s <yz70s@users.noreply.github.com>2019-12-22 19:53:16 +0100
commitd495a669ebe0e8cbd28e28f6750d492538fa9d8e (patch)
tree54aae3ef0961a49880a6e474f5c5d3c3debd40a9
parent23716e98afd64f672c82d6d85fd472ec7fc244b4 (diff)
bebox.cpp: use finder for vga device (nw)
-rw-r--r--src/devices/bus/lpci/cirrus.h3
-rw-r--r--src/mame/drivers/bebox.cpp18
-rw-r--r--src/mame/includes/bebox.h4
3 files changed, 13 insertions, 12 deletions
diff --git a/src/devices/bus/lpci/cirrus.h b/src/devices/bus/lpci/cirrus.h
index ef0b8ce3369..2fc20b65546 100644
--- a/src/devices/bus/lpci/cirrus.h
+++ b/src/devices/bus/lpci/cirrus.h
@@ -22,7 +22,8 @@ class pci_cirrus_svga_device : public device_t, public pci_device_interface
public:
// construction/destruction
pci_cirrus_svga_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- void set_vga(const char *tag) { m_vga.set_tag(tag); }
+ template <typename T>
+ void set_vga(T &&tag) { m_vga.set_tag(std::forward<T>(tag)); }
virtual uint32_t pci_read(pci_bus_device *pcibus, int function, int offset, uint32_t mem_mask) override;
virtual void pci_write(pci_bus_device *pcibus, int function, int offset, uint32_t data, uint32_t mem_mask) override;
diff --git a/src/mame/drivers/bebox.cpp b/src/mame/drivers/bebox.cpp
index d812bd2b8b2..ebe7675ec85 100644
--- a/src/mame/drivers/bebox.cpp
+++ b/src/mame/drivers/bebox.cpp
@@ -51,9 +51,9 @@ void bebox_state::main_mem(address_map &map)
map(0x800002F8, 0x800002FF).rw("ns16550_1", FUNC(ns16550_device::ins8250_r), FUNC(ns16550_device::ins8250_w));
map(0x80000380, 0x80000387).rw("ns16550_2", FUNC(ns16550_device::ins8250_r), FUNC(ns16550_device::ins8250_w));
map(0x80000388, 0x8000038F).rw("ns16550_3", FUNC(ns16550_device::ins8250_r), FUNC(ns16550_device::ins8250_w));
- map(0x800003b0, 0x800003bf).rw("vga", FUNC(cirrus_gd5428_device::port_03b0_r), FUNC(cirrus_gd5428_device::port_03b0_w));
- map(0x800003c0, 0x800003cf).rw("vga", FUNC(cirrus_gd5428_device::port_03c0_r), FUNC(cirrus_gd5428_device::port_03c0_w));
- map(0x800003d0, 0x800003df).rw("vga", FUNC(cirrus_gd5428_device::port_03d0_r), FUNC(cirrus_gd5428_device::port_03d0_w));
+ map(0x800003b0, 0x800003bf).rw(m_vga, FUNC(cirrus_gd5428_device::port_03b0_r), FUNC(cirrus_gd5428_device::port_03b0_w));
+ map(0x800003c0, 0x800003cf).rw(m_vga, FUNC(cirrus_gd5428_device::port_03c0_r), FUNC(cirrus_gd5428_device::port_03c0_w));
+ map(0x800003d0, 0x800003df).rw(m_vga, FUNC(cirrus_gd5428_device::port_03d0_r), FUNC(cirrus_gd5428_device::port_03d0_w));
map(0x800003F0, 0x800003F7).rw("ide", FUNC(ide_controller_device::cs1_r), FUNC(ide_controller_device::cs1_w));
map(0x800003F0, 0x800003F7).m(m_smc37c78, FUNC(smc37c78_device::map));
map(0x800003F8, 0x800003FF).rw("ns16550_0", FUNC(ns16550_device::ins8250_r), FUNC(ns16550_device::ins8250_w));
@@ -62,8 +62,8 @@ void bebox_state::main_mem(address_map &map)
//map(0x800042E8, 0x800042EF).w("cirrus", FUNC(cirrus_device::cirrus_42E8_w));
map(0xBFFFFFF0, 0xBFFFFFFF).r(FUNC(bebox_state::bebox_interrupt_ack_r));
- map(0xC00A0000, 0xC00BFFFF).rw("vga", FUNC(cirrus_gd5428_device::mem_r), FUNC(cirrus_gd5428_device::mem_w));
- map(0xC1000000, 0xC11FFFFF).rw("vga", FUNC(cirrus_gd5428_device::mem_linear_r), FUNC(cirrus_gd5428_device::mem_linear_w));
+ map(0xC00A0000, 0xC00BFFFF).rw(m_vga, FUNC(cirrus_gd5428_device::mem_r), FUNC(cirrus_gd5428_device::mem_w));
+ map(0xC1000000, 0xC11FFFFF).rw(m_vga, FUNC(cirrus_gd5428_device::mem_linear_r), FUNC(cirrus_gd5428_device::mem_linear_w));
map(0xFFF00000, 0xFFF03FFF).bankr("bank2");
map(0xFFF04000, 0xFFFFFFFF).rw(FUNC(bebox_state::bebox_flash_r), FUNC(bebox_state::bebox_flash_w));
}
@@ -125,7 +125,7 @@ void bebox_state::mpc105_config(device_t *device)
void bebox_state::cirrus_config(device_t *device)
{
pci_cirrus_svga_device &cirruspci = *downcast<pci_cirrus_svga_device *>(device);
- cirruspci.set_vga(":vga");
+ cirruspci.set_vga(m_vga);
}
/*************************************
@@ -192,7 +192,7 @@ void bebox_state::bebox_peripherals(machine_config &config)
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
screen.set_raw(XTAL(25'174'800), 900, 0, 640, 526, 0, 480);
- screen.set_screen_update("vga", FUNC(cirrus_gd5428_device::screen_update));
+ screen.set_screen_update(m_vga, FUNC(cirrus_gd5428_device::screen_update));
cirrus_gd5428_device &vga(CIRRUS_GD5428(config, m_vga, 0));
vga.set_screen("screen");
@@ -224,9 +224,9 @@ void bebox_state::bebox_peripherals(machine_config &config)
m_pcibus->set_busnum(0);
pci_connector_device &pcislot0 = add_pci_slot(config, "pcibus:0", 0, "mpc105");
- pcislot0.set_option_machine_config("mpc105", mpc105_config);
+ pcislot0.set_option_machine_config("mpc105", [this](device_t *device) { mpc105_config(device); });
pci_connector_device &pcislot1 = add_pci_slot(config, "pcibus:1", 1, "cirrus");
- pcislot1.set_option_machine_config("cirrus", cirrus_config);
+ pcislot1.set_option_machine_config("cirrus", [this](device_t *device) { cirrus_config(device); });
/*PCI_BUS_LEGACY_DEVICE(12, nullptr, scsi53c810_pci_read, scsi53c810_pci_write)*/
diff --git a/src/mame/includes/bebox.h b/src/mame/includes/bebox.h
index a33ab3c1043..7b787a212f1 100644
--- a/src/mame/includes/bebox.h
+++ b/src/mame/includes/bebox.h
@@ -121,8 +121,8 @@ public:
void bebox_set_irq_bit(unsigned int interrupt_bit, int val);
void bebox_update_interrupts();
- static void mpc105_config(device_t *device);
- static void cirrus_config(device_t *device);
+ void mpc105_config(device_t *device);
+ void cirrus_config(device_t *device);
pci_connector_device & add_pci_slot(machine_config &config, const char *tag, size_t index, const char *default_tag);
void bebox_peripherals(machine_config &config);