diff options
author | AJR <ajrhacker@users.noreply.github.com> | 2019-09-24 15:32:40 -0400 |
---|---|---|
committer | AJR <ajrhacker@users.noreply.github.com> | 2019-09-24 15:32:40 -0400 |
commit | 703c4e4949922833cc188835100972d0bff0acb3 (patch) | |
tree | 0d84239a2157f775ece006f6a3d0fbf275f54078 /src/mame/drivers/leapfrog_leappad.cpp | |
parent | 146f421a9669d35fde38cd0c243e245254498e5d (diff) |
leappad: Hook up a half-plausible CPU type (nw)
Diffstat (limited to 'src/mame/drivers/leapfrog_leappad.cpp')
-rw-r--r-- | src/mame/drivers/leapfrog_leappad.cpp | 26 |
1 files changed, 22 insertions, 4 deletions
diff --git a/src/mame/drivers/leapfrog_leappad.cpp b/src/mame/drivers/leapfrog_leappad.cpp index 2a7af785163..88aae10de3a 100644 --- a/src/mame/drivers/leapfrog_leappad.cpp +++ b/src/mame/drivers/leapfrog_leappad.cpp @@ -28,6 +28,8 @@ #include "emu.h" +#include "cpu/mcs51/mcs51.h" + #include "bus/generic/slot.h" #include "bus/generic/carts.h" @@ -40,6 +42,7 @@ class leapfrog_leappad_state : public driver_device public: leapfrog_leappad_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag) + , m_maincpu(*this, "maincpu") , m_cart(*this, "cartslot") , m_cart_region(nullptr) { } @@ -51,8 +54,12 @@ private: virtual void machine_start() override; virtual void machine_reset() override; + void prog_map(address_map &map); + void ext_map(address_map &map); + DECLARE_DEVICE_IMAGE_LOAD_MEMBER(cart_load); + required_device<mcs51_cpu_device> m_maincpu; required_device<generic_slot_device> m_cart; memory_region *m_cart_region; }; @@ -73,6 +80,15 @@ void leapfrog_leappad_state::machine_reset() { } +void leapfrog_leappad_state::prog_map(address_map &map) +{ + map(0x0000, 0xffff).rom().region("maincpu", 0x10000); // TODO: banking +} + +void leapfrog_leappad_state::ext_map(address_map &map) +{ +} + DEVICE_IMAGE_LOAD_MEMBER(leapfrog_leappad_state::cart_load) { uint32_t size = m_cart->common_get_size("rom"); @@ -90,8 +106,9 @@ INPUT_PORTS_END void leapfrog_leappad_state::leapfrog_leappad(machine_config &config) { - //ARCA5(config, m_maincpu, 96000000/10); // LeapPad Leapfrog 05-9-01 FS80A363 (doesn't appear to be Arcompact, what is it?) - //m_maincpu->set_addrmap(AS_PROGRAM, &leapfrog_leappad_state::map); + I8032(config, m_maincpu, 96000000/10); // LeapPad Leapfrog 05-9-01 FS80A363 (which exact type is it?) + m_maincpu->set_addrmap(AS_PROGRAM, &leapfrog_leappad_state::prog_map); + m_maincpu->set_addrmap(AS_IO, &leapfrog_leappad_state::ext_map); // screenless @@ -104,8 +121,9 @@ void leapfrog_leappad_state::leapfrog_leappad(machine_config &config) void leapfrog_leappad_state::leapfrog_mfleappad(machine_config &config) { - //ARCA5(config, m_maincpu, 96000000/10); // LeapPad Leapfrog 05-9-01 FS80A363 (doesn't appear to be Arcompact, what is it?) - //m_maincpu->set_addrmap(AS_PROGRAM, &leapfrog_leappad_state::map); + I8032(config, m_maincpu, 96000000/10); // LeapPad Leapfrog 05-9-01 FS80A363 (which exact type is it?) + m_maincpu->set_addrmap(AS_PROGRAM, &leapfrog_leappad_state::prog_map); + m_maincpu->set_addrmap(AS_IO, &leapfrog_leappad_state::ext_map); // screenless |