summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/micro3d.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/micro3d.cpp')
-rw-r--r--src/mame/drivers/micro3d.cpp124
1 files changed, 65 insertions, 59 deletions
diff --git a/src/mame/drivers/micro3d.cpp b/src/mame/drivers/micro3d.cpp
index 84f3353c286..c76c1e6dd89 100644
--- a/src/mame/drivers/micro3d.cpp
+++ b/src/mame/drivers/micro3d.cpp
@@ -204,22 +204,23 @@ INPUT_PORTS_END
*
*************************************/
-ADDRESS_MAP_START(micro3d_state::hostmem)
- AM_RANGE(0x000000, 0x143fff) AM_ROM
- AM_RANGE(0x200000, 0x20ffff) AM_RAM AM_SHARE("nvram")
- AM_RANGE(0x800000, 0x83ffff) AM_RAM AM_SHARE("shared_ram")
- AM_RANGE(0x900000, 0x900001) AM_WRITE(host_drmath_int_w)
- AM_RANGE(0x920000, 0x920001) AM_READ_PORT("INPUTS_C_D")
- AM_RANGE(0x940000, 0x940001) AM_READ_PORT("INPUTS_A_B")
- AM_RANGE(0x960000, 0x960001) AM_WRITE(micro3d_reset_w)
- AM_RANGE(0x980000, 0x980001) AM_DEVREADWRITE8("adc", adc0844_device, read, write, 0x00ff)
- AM_RANGE(0x9a0000, 0x9a0007) AM_DEVREADWRITE("vgb", tms34010_device, host_r, host_w)
- AM_RANGE(0x9c0000, 0x9c0001) AM_NOP /* Lamps */
- AM_RANGE(0x9e0000, 0x9e002f) AM_DEVREADWRITE8("mfp", mc68901_device, read, write, 0xff00)
- AM_RANGE(0xa00000, 0xa0003f) AM_DEVREADWRITE8("duart", mc68681_device, read, write, 0xff00)
- AM_RANGE(0xa20000, 0xa20001) AM_READ(micro3d_encoder_h_r)
- AM_RANGE(0xa40002, 0xa40003) AM_READ(micro3d_encoder_l_r)
-ADDRESS_MAP_END
+void micro3d_state::hostmem(address_map &map)
+{
+ map(0x000000, 0x143fff).rom();
+ map(0x200000, 0x20ffff).ram().share("nvram");
+ map(0x800000, 0x83ffff).ram().share("shared_ram");
+ map(0x900000, 0x900001).w(this, FUNC(micro3d_state::host_drmath_int_w));
+ map(0x920000, 0x920001).portr("INPUTS_C_D");
+ map(0x940000, 0x940001).portr("INPUTS_A_B");
+ map(0x960000, 0x960001).w(this, FUNC(micro3d_state::micro3d_reset_w));
+ map(0x980001, 0x980001).rw("adc", FUNC(adc0844_device::read), FUNC(adc0844_device::write));
+ map(0x9a0000, 0x9a0007).rw(m_vgb, FUNC(tms34010_device::host_r), FUNC(tms34010_device::host_w));
+ map(0x9c0000, 0x9c0001).noprw(); /* Lamps */
+ map(0x9e0000, 0x9e002f).rw("mfp", FUNC(mc68901_device::read), FUNC(mc68901_device::write)).umask16(0xff00);
+ map(0xa00000, 0xa0003f).rw(m_duart, FUNC(mc68681_device::read), FUNC(mc68681_device::write)).umask16(0xff00);
+ map(0xa20000, 0xa20001).r(this, FUNC(micro3d_state::micro3d_encoder_h_r));
+ map(0xa40002, 0xa40003).r(this, FUNC(micro3d_state::micro3d_encoder_l_r));
+}
/*************************************
@@ -228,20 +229,21 @@ ADDRESS_MAP_END
*
*************************************/
-ADDRESS_MAP_START(micro3d_state::vgbmem)
- AM_RANGE(0x00000000, 0x007fffff) AM_RAM AM_SHARE("sprite_vram")
- AM_RANGE(0x00800000, 0x00bfffff) AM_RAM
- AM_RANGE(0x00c00000, 0x00c0000f) AM_READ_PORT("VGB_SW")
- AM_RANGE(0x00e00000, 0x00e0000f) AM_WRITE(micro3d_xfer3dk_w)
- AM_RANGE(0x02000000, 0x0200ffff) AM_RAM_DEVWRITE("palette", palette_device, write16) AM_SHARE("palette") // clut
- AM_RANGE(0x02600000, 0x0260000f) AM_WRITE(micro3d_creg_w)
- AM_RANGE(0x02c00000, 0x02c0003f) AM_READ8(vgb_uart_r, 0x00ff)
- AM_RANGE(0x02e00000, 0x02e0003f) AM_WRITE8(vgb_uart_w, 0x00ff)
- AM_RANGE(0x03800000, 0x03dfffff) AM_ROM AM_REGION("tms_gfx", 0)
- AM_RANGE(0x03e00000, 0x03ffffff) AM_ROM AM_REGION("tms34010", 0)
- AM_RANGE(0xc0000000, 0xc00001ff) AM_DEVREADWRITE("vgb", tms34010_device, io_register_r, io_register_w)
- AM_RANGE(0xffe00000, 0xffffffff) AM_ROM AM_REGION("tms34010", 0)
-ADDRESS_MAP_END
+void micro3d_state::vgbmem(address_map &map)
+{
+ map(0x00000000, 0x007fffff).ram().share("sprite_vram");
+ map(0x00800000, 0x00bfffff).ram();
+ map(0x00c00000, 0x00c0000f).portr("VGB_SW");
+ map(0x00e00000, 0x00e0000f).w(this, FUNC(micro3d_state::micro3d_xfer3dk_w));
+ map(0x02000000, 0x0200ffff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); // clut
+ map(0x02600000, 0x0260000f).w(this, FUNC(micro3d_state::micro3d_creg_w));
+ map(0x02c00000, 0x02c0003f).r(this, FUNC(micro3d_state::vgb_uart_r)).umask16(0x00ff);
+ map(0x02e00000, 0x02e0003f).w(this, FUNC(micro3d_state::vgb_uart_w)).umask16(0x00ff);
+ map(0x03800000, 0x03dfffff).rom().region("tms_gfx", 0);
+ map(0x03e00000, 0x03ffffff).rom().region("tms34010", 0);
+ map(0xc0000000, 0xc00001ff).rw(m_vgb, FUNC(tms34010_device::io_register_r), FUNC(tms34010_device::io_register_w));
+ map(0xffe00000, 0xffffffff).rom().region("tms34010", 0);
+}
/*************************************
@@ -250,24 +252,26 @@ ADDRESS_MAP_END
*
*************************************/
-ADDRESS_MAP_START(micro3d_state::drmath_prg)
- AM_RANGE(0x00000000, 0x000fffff) AM_ROM
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(micro3d_state::drmath_data)
- AM_RANGE(0x00000000, 0x000fffff) AM_ROM AM_REGION("drmath", 0)
- AM_RANGE(0x00800000, 0x0083ffff) AM_READWRITE(micro3d_shared_r, micro3d_shared_w)
- AM_RANGE(0x00400000, 0x004fffff) AM_RAM
- AM_RANGE(0x00500000, 0x005fffff) AM_RAM
- AM_RANGE(0x00a00000, 0x00a00003) AM_WRITE(drmath_int_w)
- AM_RANGE(0x01000000, 0x01000003) AM_WRITE(micro3d_mac1_w)
- AM_RANGE(0x01000004, 0x01000007) AM_READWRITE(micro3d_mac2_r, micro3d_mac2_w)
- AM_RANGE(0x01200000, 0x01203fff) AM_RAM AM_SHARE("mac_sram")
- AM_RANGE(0x01400000, 0x01400003) AM_READWRITE(micro3d_pipe_r, micro3d_fifo_w)
- AM_RANGE(0x01600000, 0x01600003) AM_WRITE(drmath_intr2_ack)
- AM_RANGE(0x01800000, 0x01800003) AM_WRITE(micro3d_alt_fifo_w)
- AM_RANGE(0x03fffff0, 0x03fffff7) AM_DEVREADWRITE8("scc", z80scc_device, ba_cd_inv_r, ba_cd_inv_w, 0x000000ff)
-ADDRESS_MAP_END
+void micro3d_state::drmath_prg(address_map &map)
+{
+ map(0x00000000, 0x000fffff).rom();
+}
+
+void micro3d_state::drmath_data(address_map &map)
+{
+ map(0x00000000, 0x000fffff).rom().region("drmath", 0);
+ map(0x00800000, 0x0083ffff).rw(this, FUNC(micro3d_state::micro3d_shared_r), FUNC(micro3d_state::micro3d_shared_w));
+ map(0x00400000, 0x004fffff).ram();
+ map(0x00500000, 0x005fffff).ram();
+ map(0x00a00000, 0x00a00003).w(this, FUNC(micro3d_state::drmath_int_w));
+ map(0x01000000, 0x01000003).w(this, FUNC(micro3d_state::micro3d_mac1_w));
+ map(0x01000004, 0x01000007).rw(this, FUNC(micro3d_state::micro3d_mac2_r), FUNC(micro3d_state::micro3d_mac2_w));
+ map(0x01200000, 0x01203fff).ram().share("mac_sram");
+ map(0x01400000, 0x01400003).rw(this, FUNC(micro3d_state::micro3d_pipe_r), FUNC(micro3d_state::micro3d_fifo_w));
+ map(0x01600000, 0x01600003).w(this, FUNC(micro3d_state::drmath_intr2_ack));
+ map(0x01800000, 0x01800003).w(this, FUNC(micro3d_state::micro3d_alt_fifo_w));
+ map(0x03fffff0, 0x03fffff7).rw("scc", FUNC(z80scc_device::ba_cd_inv_r), FUNC(z80scc_device::ba_cd_inv_w)).umask32(0x000000ff);
+}
/*************************************
*
@@ -275,17 +279,19 @@ ADDRESS_MAP_END
*
*************************************/
-ADDRESS_MAP_START(micro3d_state::soundmem_prg)
- AM_RANGE(0x0000, 0x7fff) AM_ROM
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(micro3d_state::soundmem_io)
- AM_RANGE(0x0000, 0x07ff) AM_RAM
- AM_RANGE(0xfd00, 0xfd01) AM_DEVREADWRITE("ym2151", ym2151_device, read, write)
- AM_RANGE(0xfe00, 0xfe00) AM_WRITE(micro3d_upd7759_w)
- AM_RANGE(0xff00, 0xff00) AM_WRITE(micro3d_snd_dac_a)
- AM_RANGE(0xff01, 0xff01) AM_WRITE(micro3d_snd_dac_b)
-ADDRESS_MAP_END
+void micro3d_state::soundmem_prg(address_map &map)
+{
+ map(0x0000, 0x7fff).rom();
+}
+
+void micro3d_state::soundmem_io(address_map &map)
+{
+ map(0x0000, 0x07ff).ram();
+ map(0xfd00, 0xfd01).rw("ym2151", FUNC(ym2151_device::read), FUNC(ym2151_device::write));
+ map(0xfe00, 0xfe00).w(this, FUNC(micro3d_state::micro3d_upd7759_w));
+ map(0xff00, 0xff00).w(this, FUNC(micro3d_state::micro3d_snd_dac_a));
+ map(0xff01, 0xff01).w(this, FUNC(micro3d_state::micro3d_snd_dac_b));
+}
/*************************************