summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/fidel68k.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/fidel68k.cpp')
-rw-r--r--src/mame/drivers/fidel68k.cpp158
1 files changed, 83 insertions, 75 deletions
diff --git a/src/mame/drivers/fidel68k.cpp b/src/mame/drivers/fidel68k.cpp
index 324523b9f20..5e7ffbb40ac 100644
--- a/src/mame/drivers/fidel68k.cpp
+++ b/src/mame/drivers/fidel68k.cpp
@@ -392,47 +392,52 @@ WRITE8_MEMBER(fidel68k_state::eag_mux_w)
// Excel 68000
-ADDRESS_MAP_START(fidel68k_state::fex68k_map)
- AM_RANGE(0x000000, 0x00ffff) AM_ROM
- AM_RANGE(0x000000, 0x00000f) AM_MIRROR(0x00fff0) AM_WRITE8(eag_leds_w, 0x00ff)
- AM_RANGE(0x000000, 0x00000f) AM_MIRROR(0x00fff0) AM_WRITE8(eag_7seg_w, 0xff00)
- AM_RANGE(0x044000, 0x047fff) AM_RAM
- AM_RANGE(0x100000, 0x10000f) AM_MIRROR(0x03fff0) AM_READ8(eag_input1_r, 0x00ff)
- AM_RANGE(0x140000, 0x14000f) AM_MIRROR(0x03fff0) AM_WRITE8(fex68k_mux_w, 0x00ff)
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(fidel68k_state::fex68km2_map)
- AM_IMPORT_FROM( fex68k_map )
- AM_RANGE(0x200000, 0x21ffff) AM_RAM
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(fidel68k_state::fex68km3_map)
- AM_IMPORT_FROM( fex68k_map )
- AM_RANGE(0x200000, 0x20ffff) AM_RAM
-ADDRESS_MAP_END
+void fidel68k_state::fex68k_map(address_map &map)
+{
+ map(0x000000, 0x00ffff).rom();
+ map(0x000000, 0x00000f).mirror(0x00fff0).w(this, FUNC(fidel68k_state::eag_leds_w)).umask16(0x00ff);
+ map(0x000000, 0x00000f).mirror(0x00fff0).w(this, FUNC(fidel68k_state::eag_7seg_w)).umask16(0xff00);
+ map(0x044000, 0x047fff).ram();
+ map(0x100000, 0x10000f).mirror(0x03fff0).r(this, FUNC(fidel68k_state::eag_input1_r)).umask16(0x00ff);
+ map(0x140000, 0x14000f).mirror(0x03fff0).w(this, FUNC(fidel68k_state::fex68k_mux_w)).umask16(0x00ff);
+}
+
+void fidel68k_state::fex68km2_map(address_map &map)
+{
+ fex68k_map(map);
+ map(0x200000, 0x21ffff).ram();
+}
+
+void fidel68k_state::fex68km3_map(address_map &map)
+{
+ fex68k_map(map);
+ map(0x200000, 0x20ffff).ram();
+}
// Designer Master
-ADDRESS_MAP_START(fidel68k_state::fdes2265_map)
- ADDRESS_MAP_UNMAP_HIGH
- AM_RANGE(0x000000, 0x00ffff) AM_ROM
- AM_RANGE(0x000000, 0x00000f) AM_WRITE8(fdes68k_lcd_w, 0x00ff)
- AM_RANGE(0x044000, 0x047fff) AM_RAM
- AM_RANGE(0x100000, 0x10ffff) AM_RAM
- AM_RANGE(0x140000, 0x14000f) AM_READ8(fdes68k_input_r, 0xff00)
- AM_RANGE(0x140000, 0x14000f) AM_WRITE8(fdes68k_control_w, 0x00ff)
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(fidel68k_state::fdes2325_map)
- ADDRESS_MAP_UNMAP_HIGH
- AM_RANGE(0x000000, 0x00ffff) AM_ROM
- AM_RANGE(0x100000, 0x10000f) AM_WRITE8(fdes68k_lcd_w, 0x00ff00ff)
- AM_RANGE(0x140000, 0x14000f) AM_WRITE8(fdes68k_control_w, 0x00ff00ff)
- AM_RANGE(0x180000, 0x18000f) AM_READ8(fdes68k_input_r, 0xff00ff00)
- AM_RANGE(0x300000, 0x37ffff) AM_RAM
- AM_RANGE(0x500000, 0x507fff) AM_RAM
-ADDRESS_MAP_END
+void fidel68k_state::fdes2265_map(address_map &map)
+{
+ map.unmap_value_high();
+ map(0x000000, 0x00ffff).rom();
+ map(0x000000, 0x00000f).w(this, FUNC(fidel68k_state::fdes68k_lcd_w)).umask16(0x00ff);
+ map(0x044000, 0x047fff).ram();
+ map(0x100000, 0x10ffff).ram();
+ map(0x140000, 0x14000f).r(this, FUNC(fidel68k_state::fdes68k_input_r)).umask16(0xff00);
+ map(0x140000, 0x14000f).w(this, FUNC(fidel68k_state::fdes68k_control_w)).umask16(0x00ff);
+}
+
+void fidel68k_state::fdes2325_map(address_map &map)
+{
+ map.unmap_value_high();
+ map(0x000000, 0x00ffff).rom();
+ map(0x100000, 0x10000f).w(this, FUNC(fidel68k_state::fdes68k_lcd_w)).umask32(0x00ff00ff);
+ map(0x140000, 0x14000f).w(this, FUNC(fidel68k_state::fdes68k_control_w)).umask32(0x00ff00ff);
+ map(0x180000, 0x18000f).r(this, FUNC(fidel68k_state::fdes68k_input_r)).umask32(0xff00ff00);
+ map(0x300000, 0x37ffff).ram();
+ map(0x500000, 0x507fff).ram();
+}
// EAG
@@ -443,44 +448,47 @@ DRIVER_INIT_MEMBER(fidel68k_state, eag)
m_maincpu->space(AS_PROGRAM).install_ram(0x200000, 0x200000 + m_ram->size() - 1, m_ram->pointer());
}
-ADDRESS_MAP_START(fidel68k_state::eag_map)
- AM_RANGE(0x000000, 0x01ffff) AM_ROM
- AM_RANGE(0x104000, 0x107fff) AM_RAM
- AM_RANGE(0x300000, 0x30000f) AM_MIRROR(0x000010) AM_WRITE8(eag_7seg_w, 0xff00) AM_READNOP
- AM_RANGE(0x300000, 0x30000f) AM_MIRROR(0x000010) AM_READWRITE8(eag_input1_r, eag_leds_w, 0x00ff)
- AM_RANGE(0x400000, 0x407fff) AM_READ8(cartridge_r, 0xff00)
- AM_RANGE(0x400000, 0x400001) AM_WRITE8(eag_mux_w, 0x00ff)
- AM_RANGE(0x400002, 0x400007) AM_WRITENOP // ?
- AM_RANGE(0x604000, 0x607fff) AM_RAM AM_SHARE("nvram")
- AM_RANGE(0x700002, 0x700003) AM_READ8(eag_input2_r, 0x00ff)
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(fidel68k_state::eagv7_map)
- AM_RANGE(0x000000, 0x01ffff) AM_ROM
- AM_RANGE(0x104000, 0x107fff) AM_RAM
- AM_RANGE(0x200000, 0x2fffff) AM_RAM
- AM_RANGE(0x300000, 0x30000f) AM_MIRROR(0x000010) AM_WRITE8(eag_7seg_w, 0xff00ff00) AM_READNOP
- AM_RANGE(0x300000, 0x30000f) AM_MIRROR(0x000010) AM_READWRITE8(eag_input1_r, eag_leds_w, 0x00ff00ff)
- AM_RANGE(0x400000, 0x407fff) AM_READ8(cartridge_r, 0xff00ff00)
- AM_RANGE(0x400000, 0x400003) AM_WRITE8(eag_mux_w, 0x00ff0000)
- AM_RANGE(0x400004, 0x400007) AM_WRITENOP // ?
- AM_RANGE(0x604000, 0x607fff) AM_RAM AM_SHARE("nvram")
- AM_RANGE(0x700000, 0x700003) AM_READ8(eag_input2_r, 0x000000ff)
- AM_RANGE(0x800000, 0x807fff) AM_RAM
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(fidel68k_state::eagv11_map)
- AM_RANGE(0x00000000, 0x0001ffff) AM_ROM
- AM_RANGE(0x00200000, 0x003fffff) AM_RAM
- AM_RANGE(0x00b00000, 0x00b0000f) AM_MIRROR(0x00000010) AM_WRITE8(eag_7seg_w, 0xff00ff00) AM_READNOP
- AM_RANGE(0x00b00000, 0x00b0000f) AM_MIRROR(0x00000010) AM_READWRITE8(eag_input1_r, eag_leds_w, 0x00ff00ff)
- AM_RANGE(0x00c00000, 0x00c07fff) AM_READ8(cartridge_r, 0xff00ff00)
- AM_RANGE(0x00c00000, 0x00c00003) AM_WRITE8(eag_mux_w, 0x00ff0000)
- AM_RANGE(0x00c00004, 0x00c00007) AM_WRITENOP // ?
- AM_RANGE(0x00e04000, 0x00e07fff) AM_RAM AM_SHARE("nvram")
- AM_RANGE(0x00f00000, 0x00f00003) AM_READ8(eag_input2_r, 0x000000ff)
- AM_RANGE(0x01000000, 0x0101ffff) AM_RAM
-ADDRESS_MAP_END
+void fidel68k_state::eag_map(address_map &map)
+{
+ map(0x000000, 0x01ffff).rom();
+ map(0x104000, 0x107fff).ram();
+ map(0x300000, 0x30000f).mirror(0x000010).w(this, FUNC(fidel68k_state::eag_7seg_w)).umask16(0xff00).nopr();
+ map(0x300000, 0x30000f).mirror(0x000010).rw(this, FUNC(fidel68k_state::eag_input1_r), FUNC(fidel68k_state::eag_leds_w)).umask16(0x00ff);
+ map(0x400000, 0x407fff).r(this, FUNC(fidel68k_state::cartridge_r)).umask16(0xff00);
+ map(0x400001, 0x400001).w(this, FUNC(fidel68k_state::eag_mux_w));
+ map(0x400002, 0x400007).nopw(); // ?
+ map(0x604000, 0x607fff).ram().share("nvram");
+ map(0x700003, 0x700003).r(this, FUNC(fidel68k_state::eag_input2_r));
+}
+
+void fidel68k_state::eagv7_map(address_map &map)
+{
+ map(0x000000, 0x01ffff).rom();
+ map(0x104000, 0x107fff).ram();
+ map(0x200000, 0x2fffff).ram();
+ map(0x300000, 0x30000f).mirror(0x000010).w(this, FUNC(fidel68k_state::eag_7seg_w)).umask32(0xff00ff00).nopr();
+ map(0x300000, 0x30000f).mirror(0x000010).rw(this, FUNC(fidel68k_state::eag_input1_r), FUNC(fidel68k_state::eag_leds_w)).umask32(0x00ff00ff);
+ map(0x400000, 0x407fff).r(this, FUNC(fidel68k_state::cartridge_r)).umask32(0xff00ff00);
+ map(0x400001, 0x400001).w(this, FUNC(fidel68k_state::eag_mux_w));
+ map(0x400004, 0x400007).nopw(); // ?
+ map(0x604000, 0x607fff).ram().share("nvram");
+ map(0x700003, 0x700003).r(this, FUNC(fidel68k_state::eag_input2_r));
+ map(0x800000, 0x807fff).ram();
+}
+
+void fidel68k_state::eagv11_map(address_map &map)
+{
+ map(0x00000000, 0x0001ffff).rom();
+ map(0x00200000, 0x003fffff).ram();
+ map(0x00b00000, 0x00b0000f).mirror(0x00000010).w(this, FUNC(fidel68k_state::eag_7seg_w)).umask32(0xff00ff00).nopr();
+ map(0x00b00000, 0x00b0000f).mirror(0x00000010).rw(this, FUNC(fidel68k_state::eag_input1_r), FUNC(fidel68k_state::eag_leds_w)).umask32(0x00ff00ff);
+ map(0x00c00000, 0x00c07fff).r(this, FUNC(fidel68k_state::cartridge_r)).umask32(0xff00ff00);
+ map(0x00c00001, 0x00c00001).w(this, FUNC(fidel68k_state::eag_mux_w));
+ map(0x00c00004, 0x00c00007).nopw(); // ?
+ map(0x00e04000, 0x00e07fff).ram().share("nvram");
+ map(0x00f00003, 0x00f00003).r(this, FUNC(fidel68k_state::eag_input2_r));
+ map(0x01000000, 0x0101ffff).ram();
+}