diff options
author | AJR <ajrhacker@users.noreply.github.com> | 2018-12-08 11:26:55 -0500 |
---|---|---|
committer | AJR <ajrhacker@users.noreply.github.com> | 2018-12-08 11:27:34 -0500 |
commit | a81080abfe6f7b3b01be5542a87561ee69f0935f (patch) | |
tree | fa387b2e11909032bf63d70248e542323bb75bb0 | |
parent | 4345e8d455f2f73419415cde5b33472e11a06181 (diff) |
triviaes4: This board uses battery-backed NVRAM instead of X2212s (nw)
-rw-r--r-- | src/mame/drivers/balsente.cpp | 27 | ||||
-rw-r--r-- | src/mame/includes/balsente.h | 2 |
2 files changed, 19 insertions, 10 deletions
diff --git a/src/mame/drivers/balsente.cpp b/src/mame/drivers/balsente.cpp index 780b1038432..9971bc3e23b 100644 --- a/src/mame/drivers/balsente.cpp +++ b/src/mame/drivers/balsente.cpp @@ -211,6 +211,7 @@ DIP locations verified for: #include "cpu/z80/z80.h" #include "cpu/m6809/m6809.h" #include "cpu/m68000/m68000.h" +#include "machine/nvram.h" #include "machine/watchdog.h" #include "audio/sente6vb.h" #include "machine/6821pia.h" @@ -318,9 +319,7 @@ void balsente_state::cpu1_triviamb_map(address_map &map) map(0x03e0, 0x03e0).w("watchdog", FUNC(watchdog_timer_device::reset_w)); map(0x0800, 0x7fff).ram().w(FUNC(balsente_state::videoram_w)).share("videoram"); map(0x8000, 0x83ff).ram().w(m_palette, FUNC(palette_device::write8)).share("palette"); - map(0x8800, 0x88ff).rw("nov0", FUNC(x2212_device::read), FUNC(x2212_device::write)); - map(0x8900, 0x89ff).rw("nov1", FUNC(x2212_device::read), FUNC(x2212_device::write)); - map(0x8a00, 0x8fff).ram(); + map(0x8800, 0x8fff).ram().share("nvram"); map(0xa000, 0xbfff).bankr("bankab"); map(0xc000, 0xdfff).bankr("bankcd"); map(0xe000, 0xffff).bankr("bankef"); @@ -1437,17 +1436,27 @@ void balsente_state::rescraid(machine_config &config) void balsente_state::triviamb(machine_config &config) { balsente(config); - - m_maincpu->set_addrmap(AS_PROGRAM, &balsente_state::cpu1_triviamb_map); config.device_remove("outlatch"); config.device_remove("acia"); config.device_remove("audio6vb"); + config.device_remove("nov0"); + config.device_remove("nov1"); + + m_maincpu->set_clock(10_MHz_XTAL / 4); + m_maincpu->set_addrmap(AS_PROGRAM, &balsente_state::cpu1_triviamb_map); + + NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); // HY6116AP-10 + battery (only 512x4 bits are actually saved) - pia6821_device &pia(PIA6821(config, "pia")); - pia.cb2_handler().set("nov0", FUNC(x2212_device::recall)); - pia.cb2_handler().append("nov1", FUNC(x2212_device::recall)); + pia6821_device &pia(PIA6821(config, "pia")); // Thomson EF6821P + pia.writepb_handler().set(FUNC(balsente_state::out0_w)).bit(0); + pia.writepb_handler().append(FUNC(balsente_state::out1_w)).bit(1); + pia.writepb_handler().append(FUNC(balsente_state::out2_w)).bit(2); + pia.writepb_handler().append(FUNC(balsente_state::out3_w)).bit(3); + pia.writepb_handler().append(FUNC(balsente_state::out4_w)).bit(4); + pia.writepb_handler().append(FUNC(balsente_state::out5_w)).bit(5); + pia.writepb_handler().append(FUNC(balsente_state::out6_w)).bit(6); - mc6845_device &crtc(C6545_1(config, "crtc", 20000000 / 16)); // specific type unknown, but must allow VBLANK polling + mc6845_device &crtc(C6545_1(config, "crtc", 10_MHz_XTAL / 8)); // specific type unknown, but must allow VBLANK polling crtc.set_screen(nullptr); crtc.set_show_border_area(false); crtc.set_char_width(4); diff --git a/src/mame/includes/balsente.h b/src/mame/includes/balsente.h index 2d74705c279..b6953bf9141 100644 --- a/src/mame/includes/balsente.h +++ b/src/mame/includes/balsente.h @@ -198,7 +198,7 @@ private: required_device<screen_device> m_screen; required_device<palette_device> m_palette; optional_device<ls259_device> m_outlatch; - required_device_array<x2212_device, 2> m_novram; + optional_device_array<x2212_device, 2> m_novram; optional_device<acia6850_device> m_acia; optional_shared_ptr<uint8_t> m_generic_paletteram_8; |