summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/vis.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/vis.cpp')
-rw-r--r--src/mame/drivers/vis.cpp99
1 files changed, 55 insertions, 44 deletions
diff --git a/src/mame/drivers/vis.cpp b/src/mame/drivers/vis.cpp
index caa61fa09a7..8ef1fcff403 100644
--- a/src/mame/drivers/vis.cpp
+++ b/src/mame/drivers/vis.cpp
@@ -28,8 +28,8 @@ protected:
virtual void dack16_w(int line, uint16_t data) override;
virtual void device_add_mconfig(machine_config &config) override;
private:
- required_device<dac_word_interface> m_rdac;
- required_device<dac_word_interface> m_ldac;
+ required_device<dac_16bit_r2r_device> m_rdac;
+ required_device<dac_16bit_r2r_device> m_ldac;
uint16_t m_count;
uint16_t m_curcount;
uint16_t m_sample[2];
@@ -126,20 +126,29 @@ void vis_audio_device::device_timer(emu_timer &timer, device_timer_id id, int pa
}
}
-MACHINE_CONFIG_START(vis_audio_device::device_add_mconfig)
+void vis_audio_device::device_add_mconfig(machine_config &config)
+{
SPEAKER(config, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right();
- MCFG_DEVICE_ADD("ymf262", YMF262, XTAL(14'318'181))
- MCFG_SOUND_ROUTE(0, "lspeaker", 1.00)
- MCFG_SOUND_ROUTE(1, "rspeaker", 1.00)
- MCFG_SOUND_ROUTE(2, "lspeaker", 1.00)
- MCFG_SOUND_ROUTE(3, "rspeaker", 1.00)
- MCFG_DEVICE_ADD("ldac", DAC_16BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) // sanyo lc7883k
- MCFG_DEVICE_ADD("rdac", DAC_16BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) // sanyo lc7883k
- MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
- MCFG_SOUND_ROUTE(0, "ldac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "ldac", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_SOUND_ROUTE(0, "rdac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "rdac", -1.0, DAC_VREF_NEG_INPUT)
-MACHINE_CONFIG_END
+
+ ymf262_device &ymf262(YMF262(config, "ymf262", XTAL(14'318'181)));
+ ymf262.add_route(0, "lspeaker", 1.00);
+ ymf262.add_route(1, "rspeaker", 1.00);
+ ymf262.add_route(2, "lspeaker", 1.00);
+ ymf262.add_route(3, "rspeaker", 1.00);
+
+ DAC_16BIT_R2R(config, m_ldac, 0);
+ DAC_16BIT_R2R(config, m_rdac, 0);
+ m_ldac->add_route(ALL_OUTPUTS, "lspeaker", 1.0); // sanyo lc7883k
+ m_rdac->add_route(ALL_OUTPUTS, "rspeaker", 1.0); // sanyo lc7883k
+
+ voltage_regulator_device &vreg(VOLTAGE_REGULATOR(config, "vref"));
+ vreg.set_output(5.0);
+ vreg.add_route(0, "ldac", 1.0, DAC_VREF_POS_INPUT);
+ vreg.add_route(0, "rdac", 1.0, DAC_VREF_POS_INPUT);
+ vreg.add_route(0, "ldac", -1.0, DAC_VREF_NEG_INPUT);
+ vreg.add_route(0, "rdac", -1.0, DAC_VREF_NEG_INPUT);
+}
READ8_MEMBER(vis_audio_device::pcm_r)
{
@@ -258,11 +267,12 @@ vis_vga_device::vis_vga_device(const machine_config &mconfig, const char *tag, d
set_screen(*this, "screen");
}
-MACHINE_CONFIG_START(vis_vga_device::device_add_mconfig)
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_RAW_PARAMS(XTAL(25'174'800),900,0,640,526,0,480)
- MCFG_SCREEN_UPDATE_DEVICE(DEVICE_SELF, vis_vga_device, screen_update)
-MACHINE_CONFIG_END
+void vis_vga_device::device_add_mconfig(machine_config &config)
+{
+ 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(FUNC(vis_vga_device::screen_update));
+}
void vis_vga_device::recompute_params()
{
@@ -720,8 +730,8 @@ private:
DECLARE_WRITE16_MEMBER(pad_w);
DECLARE_READ8_MEMBER(unk1_r);
DECLARE_WRITE8_MEMBER(unk1_w);
- void at16_io(address_map &map);
- void at16_map(address_map &map);
+ void io_map(address_map &map);
+ void main_map(address_map &map);
void machine_reset() override;
@@ -834,7 +844,7 @@ WRITE8_MEMBER(vis_state::sysctl_w)
m_sysctl = data;
}
-void vis_state::at16_map(address_map &map)
+void vis_state::main_map(address_map &map)
{
map.unmap_value_high();
map(0x000000, 0x09ffff).ram();
@@ -844,7 +854,7 @@ void vis_state::at16_map(address_map &map)
map(0xff0000, 0xffffff).rom().region("bios", 0xf0000);
}
-void vis_state::at16_io(address_map &map)
+void vis_state::io_map(address_map &map)
{
map.unmap_value_high();
map(0x0000, 0x001f).rw("mb:dma8237_1", FUNC(am9517a_device::read), FUNC(am9517a_device::write));
@@ -890,30 +900,31 @@ static INPUT_PORTS_START(vis)
PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_UNKNOWN ) PORT_CHANGED_MEMBER(DEVICE_SELF, vis_state, update, 0)
INPUT_PORTS_END
-MACHINE_CONFIG_START(vis_state::vis)
+void vis_state::vis(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", I80286, XTAL(12'000'000) )
- MCFG_DEVICE_PROGRAM_MAP(at16_map)
- MCFG_DEVICE_IO_MAP(at16_io)
- MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("mb:pic8259_master", pic8259_device, inta_cb)
- MCFG_80286_SHUTDOWN(WRITELINE("mb", at_mb_device, shutdown))
-
- MCFG_DEVICE_ADD("mb", AT_MB, 0)
- // this doesn't have a real keyboard controller
- MCFG_DEVICE_REMOVE("mb:keybc")
- MCFG_DEVICE_REMOVE("mb:pc_kbdc")
-
- MCFG_DEVICE_ADD("kbdc", KBDC8042, 0)
- MCFG_KBDC8042_KEYBOARD_TYPE(KBDC8042_AT386)
- MCFG_KBDC8042_SYSTEM_RESET_CB(INPUTLINE("maincpu", INPUT_LINE_RESET))
- MCFG_KBDC8042_GATE_A20_CB(INPUTLINE("maincpu", INPUT_LINE_A20))
- MCFG_KBDC8042_INPUT_BUFFER_FULL_CB(WRITELINE("mb:pic8259_master", pic8259_device, ir1_w))
+ i80286_cpu_device &maincpu(I80286(config, "maincpu", XTAL(12'000'000)));
+ maincpu.set_addrmap(AS_PROGRAM, &vis_state::main_map);
+ maincpu.set_addrmap(AS_IO, &vis_state::io_map);
+ maincpu.shutdown_callback().set("mb", FUNC(at_mb_device::shutdown));
+ maincpu.set_irq_acknowledge_callback("mb:pic8259_master", FUNC(pic8259_device::inta_cb));
+
+ AT_MB(config, "mb", 0);
+ // the vis doesn't have a real keyboard controller
+ config.device_remove("mb:keybc");
+ config.device_remove("mb:pc_kbdc");
+
+ kbdc8042_device &kbdc(KBDC8042(config, "kbdc"));
+ kbdc.set_keyboard_type(kbdc8042_device::KBDC8042_AT386);
+ kbdc.system_reset_callback().set_inputline("maincpu", INPUT_LINE_RESET);
+ kbdc.gate_a20_callback().set_inputline("maincpu", INPUT_LINE_A20);
+ kbdc.input_buffer_full_callback().set("mb:pic8259_master", FUNC(pic8259_device::ir1_w));
// FIXME: determine ISA bus clock
- MCFG_DEVICE_ADD("mcd", ISA16_SLOT, 0, "mb:isabus", pc_isa16_cards, "mcd", true)
- MCFG_DEVICE_ADD("visaudio", ISA16_SLOT, 0, "mb:isabus", vis_cards, "visaudio", true)
- MCFG_DEVICE_ADD("visvga", ISA16_SLOT, 0, "mb:isabus", vis_cards, "visvga", true)
-MACHINE_CONFIG_END
+ ISA16_SLOT(config, "mcd", 0, "mb:isabus", pc_isa16_cards, "mcd", true);
+ ISA16_SLOT(config, "visaudio", 0, "mb:isabus", vis_cards, "visaudio", true);
+ ISA16_SLOT(config, "visvga", 0, "mb:isabus", vis_cards, "visvga", true);
+}
ROM_START(vis)
ROM_REGION(0x100000,"bios", 0)