diff options
Diffstat (limited to 'src/mame/drivers/byvid.cpp')
-rw-r--r-- | src/mame/drivers/byvid.cpp | 62 |
1 files changed, 26 insertions, 36 deletions
diff --git a/src/mame/drivers/byvid.cpp b/src/mame/drivers/byvid.cpp index 7799837e073..89b3216dca3 100644 --- a/src/mame/drivers/byvid.cpp +++ b/src/mame/drivers/byvid.cpp @@ -166,8 +166,7 @@ void by133_state::video_map(address_map &map) { // U8 Vidiot map(0x0000, 0x1fff).rw(FUNC(by133_state::sound_data_r), FUNC(by133_state::sound_data_w)); map(0x2000, 0x2003).mirror(0x0ffc).rw(m_pia_u7, FUNC(pia6821_device::read), FUNC(pia6821_device::write)); // PIA U7 Vidiot - map(0x4000, 0x4000).mirror(0x0ffe).rw(m_crtc, FUNC(tms9928a_device::vram_r), FUNC(tms9928a_device::vram_w)); - map(0x4001, 0x4001).mirror(0x0ffe).rw(m_crtc, FUNC(tms9928a_device::register_r), FUNC(tms9928a_device::register_w)); + map(0x4000, 0x4001).mirror(0x0ffe).rw(m_crtc, FUNC(tms9928a_device::read), FUNC(tms9928a_device::write)); map(0x6000, 0x63ff).mirror(0x1c00).ram(); map(0x8000, 0xffff).rom(); } @@ -175,10 +174,8 @@ void by133_state::video_map(address_map &map) void by133_state::granny_map(address_map &map) { map(0x0000, 0x0001).rw(FUNC(by133_state::sound_data_r), FUNC(by133_state::sound_data_w)); - map(0x0002, 0x0002).rw(m_crtc, FUNC(tms9928a_device::vram_r), FUNC(tms9928a_device::vram_w)); - map(0x0003, 0x0003).rw(m_crtc, FUNC(tms9928a_device::register_r), FUNC(tms9928a_device::register_w)); - map(0x0004, 0x0004).rw(m_crtc2, FUNC(tms9928a_device::vram_r), FUNC(tms9928a_device::vram_w)); - map(0x0005, 0x0005).rw(m_crtc2, FUNC(tms9928a_device::register_r), FUNC(tms9928a_device::register_w)); + map(0x0002, 0x0003).rw(m_crtc, FUNC(tms9928a_device::read), FUNC(tms9928a_device::write)); + map(0x0004, 0x0005).rw(m_crtc2, FUNC(tms9928a_device::read), FUNC(tms9928a_device::write)); map(0x0006, 0x0007).w(FUNC(by133_state::granny_crtc_w)); // can write to both at once map(0x0008, 0x000b).rw(m_pia_u7, FUNC(pia6821_device::read), FUNC(pia6821_device::write)); map(0x2000, 0x27ff).ram(); @@ -536,16 +533,8 @@ INPUT_PORTS_END WRITE8_MEMBER( by133_state::granny_crtc_w ) { - if (offset) - { - m_crtc->register_write(data); - m_crtc2->register_write(data); - } - else - { - m_crtc->vram_write(data); - m_crtc2->vram_write(data); - } + m_crtc->write(offset, data); + m_crtc2->write(offset, data); } READ8_MEMBER( by133_state::sound_data_r ) @@ -746,13 +735,14 @@ uint32_t by133_state::screen_update_granny(screen_device &screen, bitmap_rgb32 & return 0; } -MACHINE_CONFIG_START(by133_state::babypac) +void by133_state::babypac(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M6800, XTAL(3'579'545)/4) // no xtal, just 2 chips - MCFG_DEVICE_PROGRAM_MAP(main_map) + M6800(config, m_maincpu, XTAL(3'579'545)/4); // no xtal, just 2 chips + m_maincpu->set_addrmap(AS_PROGRAM, &by133_state::main_map); - MCFG_DEVICE_ADD("videocpu", MC6809, XTAL(3'579'545)) - MCFG_DEVICE_PROGRAM_MAP(video_map) + MC6809(config, m_videocpu, XTAL(3'579'545)); + m_videocpu->set_addrmap(AS_PROGRAM, &by133_state::video_map); M6803(config, m_audiocpu, XTAL(3'579'545)); m_audiocpu->set_addrmap(AS_PROGRAM, &by133_state::sound_map); @@ -781,7 +771,7 @@ MACHINE_CONFIG_START(by133_state::babypac) m_pia_u10->cb2_handler().set(FUNC(by133_state::u10_cb2_w)); m_pia_u10->irqa_handler().set_inputline("maincpu", M6800_IRQ_LINE); m_pia_u10->irqb_handler().set_inputline("maincpu", M6800_IRQ_LINE); - MCFG_TIMER_DRIVER_ADD_PERIODIC("babypac1", by133_state, u10_timer, attotime::from_hz(120)) // mains freq*2 + TIMER(config, "babypac1").configure_periodic(FUNC(by133_state::u10_timer), attotime::from_hz(120)); // mains freq*2 PIA6821(config, m_pia_u11, 0); m_pia_u11->readpa_handler().set(FUNC(by133_state::u11_a_r)); @@ -792,7 +782,7 @@ MACHINE_CONFIG_START(by133_state::babypac) m_pia_u11->cb2_handler().set(FUNC(by133_state::u11_cb2_w)); m_pia_u11->irqa_handler().set_inputline("maincpu", M6800_IRQ_LINE); m_pia_u11->irqb_handler().set_inputline("maincpu", M6800_IRQ_LINE); - MCFG_TIMER_DRIVER_ADD_PERIODIC("babypac2", by133_state, u11_timer, attotime::from_hz(634)) // 555 timer*2 + TIMER(config, "babypac2").configure_periodic(FUNC(by133_state::u11_timer), attotime::from_hz(634)); // 555 timer*2 /* video hardware */ TMS9928A(config, m_crtc, XTAL(10'738'635)).set_screen("screen"); @@ -802,28 +792,28 @@ MACHINE_CONFIG_START(by133_state::babypac) /* sound hardware */ SPEAKER(config, "speaker").front_center(); - MCFG_DEVICE_ADD("dac", ZN429E, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25) // U32 (Vidiot) or U6 (Cheap Squeak) - MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0) - MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT) + ZN429E(config, "dac", 0).add_route(ALL_OUTPUTS, "speaker", 0.25); // U32 (Vidiot) or U6 (Cheap Squeak) + voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref")); + vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT); + vref.add_route(0, "dac", -1.0, DAC_VREF_NEG_INPUT); SPEAKER(config, "beee").front_center(); - MCFG_DEVICE_ADD("beeper", BEEP, 600) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "beee", 0.10) -MACHINE_CONFIG_END + BEEP(config, m_beep, 600).add_route(ALL_OUTPUTS, "beee", 0.10); +} -MACHINE_CONFIG_START(by133_state::granny) +void by133_state::granny(machine_config &config) +{ babypac(config); - MCFG_DEVICE_REMOVE("videocpu") - MCFG_DEVICE_ADD("videocpu", MC6809, XTAL(8'000'000)) // MC68B09P (XTAL value hard to read) - MCFG_DEVICE_PROGRAM_MAP(granny_map) + + MC6809(config.replace(), m_videocpu, XTAL(8'000'000)); // MC68B09P (XTAL value hard to read) + m_videocpu->set_addrmap(AS_PROGRAM, &by133_state::granny_map); TMS9928A(config, m_crtc2, XTAL(10'738'635)).set_screen("screen"); m_crtc2->set_vram_size(0x4000); m_crtc2->int_callback().set_inputline(m_videocpu, M6809_IRQ_LINE); - MCFG_DEVICE_MODIFY("screen") - MCFG_SCREEN_UPDATE_DRIVER(by133_state, screen_update_granny) -MACHINE_CONFIG_END + subdevice<screen_device>("screen")->set_screen_update(FUNC(by133_state::screen_update_granny)); +} /*----------------------------------------------------- |