mirror of
https://github.com/holub/mame
synced 2025-04-26 18:23:08 +03:00
bebox.cpp: use finder for vga device (nw)
This commit is contained in:
parent
23716e98af
commit
d495a669eb
@ -22,7 +22,8 @@ class pci_cirrus_svga_device : public device_t, public pci_device_interface
|
|||||||
public:
|
public:
|
||||||
// construction/destruction
|
// construction/destruction
|
||||||
pci_cirrus_svga_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
|
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 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;
|
virtual void pci_write(pci_bus_device *pcibus, int function, int offset, uint32_t data, uint32_t mem_mask) override;
|
||||||
|
@ -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(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(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(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(0x800003b0, 0x800003bf).rw(m_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(0x800003c0, 0x800003cf).rw(m_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(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).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(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));
|
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(0x800042E8, 0x800042EF).w("cirrus", FUNC(cirrus_device::cirrus_42E8_w));
|
||||||
|
|
||||||
map(0xBFFFFFF0, 0xBFFFFFFF).r(FUNC(bebox_state::bebox_interrupt_ack_r));
|
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(0xC00A0000, 0xC00BFFFF).rw(m_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(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(0xFFF00000, 0xFFF03FFF).bankr("bank2");
|
||||||
map(0xFFF04000, 0xFFFFFFFF).rw(FUNC(bebox_state::bebox_flash_r), FUNC(bebox_state::bebox_flash_w));
|
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)
|
void bebox_state::cirrus_config(device_t *device)
|
||||||
{
|
{
|
||||||
pci_cirrus_svga_device &cirruspci = *downcast<pci_cirrus_svga_device *>(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 */
|
/* video hardware */
|
||||||
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
|
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
|
||||||
screen.set_raw(XTAL(25'174'800), 900, 0, 640, 526, 0, 480);
|
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));
|
cirrus_gd5428_device &vga(CIRRUS_GD5428(config, m_vga, 0));
|
||||||
vga.set_screen("screen");
|
vga.set_screen("screen");
|
||||||
@ -224,9 +224,9 @@ void bebox_state::bebox_peripherals(machine_config &config)
|
|||||||
m_pcibus->set_busnum(0);
|
m_pcibus->set_busnum(0);
|
||||||
|
|
||||||
pci_connector_device &pcislot0 = add_pci_slot(config, "pcibus:0", 0, "mpc105");
|
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");
|
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)*/
|
/*PCI_BUS_LEGACY_DEVICE(12, nullptr, scsi53c810_pci_read, scsi53c810_pci_write)*/
|
||||||
|
|
||||||
|
@ -121,8 +121,8 @@ public:
|
|||||||
void bebox_set_irq_bit(unsigned int interrupt_bit, int val);
|
void bebox_set_irq_bit(unsigned int interrupt_bit, int val);
|
||||||
void bebox_update_interrupts();
|
void bebox_update_interrupts();
|
||||||
|
|
||||||
static void mpc105_config(device_t *device);
|
void mpc105_config(device_t *device);
|
||||||
static void cirrus_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);
|
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);
|
void bebox_peripherals(machine_config &config);
|
||||||
|
Loading…
Reference in New Issue
Block a user