summaryrefslogtreecommitdiffstats
path: root/src/mame/drivers/taitojc.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/taitojc.cpp')
-rw-r--r--src/mame/drivers/taitojc.cpp126
1 files changed, 66 insertions, 60 deletions
diff --git a/src/mame/drivers/taitojc.cpp b/src/mame/drivers/taitojc.cpp
index c6659cd4e3c..d25b3c3fb56 100644
--- a/src/mame/drivers/taitojc.cpp
+++ b/src/mame/drivers/taitojc.cpp
@@ -618,26 +618,27 @@ WRITE8_MEMBER(taitojc_state::jc_lan_w)
}
-ADDRESS_MAP_START(taitojc_state::taitojc_map)
- AM_RANGE(0x00000000, 0x001fffff) AM_ROM AM_MIRROR(0x200000)
- AM_RANGE(0x00400000, 0x01bfffff) AM_ROM AM_REGION("gfx1", 0)
- AM_RANGE(0x04000000, 0x040f7fff) AM_RAM AM_SHARE("vram")
- AM_RANGE(0x040f8000, 0x040fbfff) AM_READWRITE(taitojc_tile_r, taitojc_tile_w)
- AM_RANGE(0x040fc000, 0x040fefff) AM_READWRITE(taitojc_char_r, taitojc_char_w)
- AM_RANGE(0x040ff000, 0x040fffff) AM_RAM AM_SHARE("objlist")
- AM_RANGE(0x05800000, 0x0580003f) AM_READ8(jc_pcbid_r, 0xffffffff)
- AM_RANGE(0x05900000, 0x05900007) AM_READWRITE8(mcu_comm_r, mcu_comm_w, 0xffffffff)
- AM_RANGE(0x06400000, 0x0641ffff) AM_READWRITE(taitojc_palette_r, taitojc_palette_w) AM_SHARE("palette_ram")
- AM_RANGE(0x06600000, 0x0660001f) AM_DEVREADWRITE8("tc0640fio", tc0640fio_device, read, write, 0xff000000)
- AM_RANGE(0x0660004c, 0x0660004f) AM_WRITE_PORT("EEPROMOUT")
- AM_RANGE(0x06800000, 0x06800003) AM_WRITE8(jc_irq_unk_w, 0x00ff0000)
- AM_RANGE(0x06a00000, 0x06a01fff) AM_DEVREADWRITE8("taito_en:dpram", mb8421_device, left_r, left_w, 0xff000000)
- AM_RANGE(0x06c00000, 0x06c0001f) AM_READWRITE8(jc_lan_r, jc_lan_w, 0x00ff0000)
- AM_RANGE(0x08000000, 0x080fffff) AM_RAM AM_SHARE("main_ram")
- AM_RANGE(0x10000000, 0x10001fff) AM_READWRITE16(dsp_shared_r, dsp_shared_w, 0xffff0000)
- AM_RANGE(0x10001ff8, 0x10001ffb) AM_READ16(dsp_to_main_7fe_r, 0xffff0000)
- AM_RANGE(0x10001ffc, 0x10001fff) AM_WRITE16(main_to_dsp_7ff_w, 0xffff0000)
-ADDRESS_MAP_END
+void taitojc_state::taitojc_map(address_map &map)
+{
+ map(0x00000000, 0x001fffff).rom().mirror(0x200000);
+ map(0x00400000, 0x01bfffff).rom().region("gfx1", 0);
+ map(0x04000000, 0x040f7fff).ram().share("vram");
+ map(0x040f8000, 0x040fbfff).rw(this, FUNC(taitojc_state::taitojc_tile_r), FUNC(taitojc_state::taitojc_tile_w));
+ map(0x040fc000, 0x040fefff).rw(this, FUNC(taitojc_state::taitojc_char_r), FUNC(taitojc_state::taitojc_char_w));
+ map(0x040ff000, 0x040fffff).ram().share("objlist");
+ map(0x05800000, 0x0580003f).r(this, FUNC(taitojc_state::jc_pcbid_r));
+ map(0x05900000, 0x05900007).rw(this, FUNC(taitojc_state::mcu_comm_r), FUNC(taitojc_state::mcu_comm_w));
+ map(0x06400000, 0x0641ffff).rw(this, FUNC(taitojc_state::taitojc_palette_r), FUNC(taitojc_state::taitojc_palette_w)).share("palette_ram");
+ map(0x06600000, 0x0660001f).rw(m_tc0640fio, FUNC(tc0640fio_device::read), FUNC(tc0640fio_device::write)).umask32(0xff000000);
+ map(0x0660004c, 0x0660004f).portw("EEPROMOUT");
+ map(0x06800001, 0x06800001).w(this, FUNC(taitojc_state::jc_irq_unk_w));
+ map(0x06a00000, 0x06a01fff).rw("taito_en:dpram", FUNC(mb8421_device::left_r), FUNC(mb8421_device::left_w)).umask32(0xff000000);
+ map(0x06c00000, 0x06c0001f).rw(this, FUNC(taitojc_state::jc_lan_r), FUNC(taitojc_state::jc_lan_w)).umask32(0x00ff0000);
+ map(0x08000000, 0x080fffff).ram().share("main_ram");
+ map(0x10000000, 0x10001fff).rw(this, FUNC(taitojc_state::dsp_shared_r), FUNC(taitojc_state::dsp_shared_w)).umask32(0xffff0000);
+ map(0x10001ff8, 0x10001ff9).r(this, FUNC(taitojc_state::dsp_to_main_7fe_r));
+ map(0x10001ffc, 0x10001ffd).w(this, FUNC(taitojc_state::main_to_dsp_7ff_w));
+}
/*
@@ -668,12 +669,13 @@ WRITE8_MEMBER(taitojc_state::dendego_brakemeter_w)
}
}
-ADDRESS_MAP_START(taitojc_state::dendego_map)
- AM_IMPORT_FROM( taitojc_map )
- AM_RANGE(0x06e00000, 0x06e00003) AM_WRITE8(dendego_speedmeter_w, 0x00ff0000)
- AM_RANGE(0x06e00004, 0x06e00007) AM_WRITE8(dendego_brakemeter_w, 0x00ff0000)
- AM_RANGE(0x06e0000c, 0x06e0000f) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff0000)
-ADDRESS_MAP_END
+void taitojc_state::dendego_map(address_map &map)
+{
+ taitojc_map(map);
+ map(0x06e00001, 0x06e00001).w(this, FUNC(taitojc_state::dendego_speedmeter_w));
+ map(0x06e00005, 0x06e00005).w(this, FUNC(taitojc_state::dendego_brakemeter_w));
+ map(0x06e0000d, 0x06e0000d).rw("oki", FUNC(okim6295_device::read), FUNC(okim6295_device::write));
+}
@@ -743,18 +745,20 @@ READ8_MEMBER(taitojc_state::hc11_analog_r)
}
-ADDRESS_MAP_START(taitojc_state::hc11_pgm_map)
- AM_RANGE(0x4000, 0x5fff) AM_RAM
- AM_RANGE(0x8000, 0xffff) AM_ROM
-ADDRESS_MAP_END
+void taitojc_state::hc11_pgm_map(address_map &map)
+{
+ map(0x4000, 0x5fff).ram();
+ map(0x8000, 0xffff).rom();
+}
-ADDRESS_MAP_START(taitojc_state::hc11_io_map)
- AM_RANGE(MC68HC11_IO_PORTA, MC68HC11_IO_PORTA ) AM_READNOP // ?
- AM_RANGE(MC68HC11_IO_PORTG, MC68HC11_IO_PORTG ) AM_READWRITE(hc11_comm_r, hc11_comm_w)
- AM_RANGE(MC68HC11_IO_PORTH, MC68HC11_IO_PORTH ) AM_READWRITE(hc11_output_r, hc11_output_w)
- AM_RANGE(MC68HC11_IO_SPI2_DATA, MC68HC11_IO_SPI2_DATA) AM_READWRITE(hc11_data_r, hc11_data_w)
- AM_RANGE(MC68HC11_IO_AD0, MC68HC11_IO_AD7 ) AM_READ(hc11_analog_r)
-ADDRESS_MAP_END
+void taitojc_state::hc11_io_map(address_map &map)
+{
+ map(MC68HC11_IO_PORTA, MC68HC11_IO_PORTA).nopr(); // ?
+ map(MC68HC11_IO_PORTG, MC68HC11_IO_PORTG).rw(this, FUNC(taitojc_state::hc11_comm_r), FUNC(taitojc_state::hc11_comm_w));
+ map(MC68HC11_IO_PORTH, MC68HC11_IO_PORTH).rw(this, FUNC(taitojc_state::hc11_output_r), FUNC(taitojc_state::hc11_output_w));
+ map(MC68HC11_IO_SPI2_DATA, MC68HC11_IO_SPI2_DATA).rw(this, FUNC(taitojc_state::hc11_data_r), FUNC(taitojc_state::hc11_data_w));
+ map(MC68HC11_IO_AD0, MC68HC11_IO_AD7).r(this, FUNC(taitojc_state::hc11_analog_r));
+}
@@ -845,29 +849,31 @@ WRITE16_MEMBER(taitojc_state::dsp_rom_w)
}
}
-ADDRESS_MAP_START(taitojc_state::tms_program_map)
- AM_RANGE(0x0000, 0x1fff) AM_RAM AM_MIRROR(0x4000)
- AM_RANGE(0x6000, 0x7fff) AM_RAM
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(taitojc_state::tms_data_map)
- AM_RANGE(0x6a01, 0x6a02) AM_DEVWRITE("tc0780fpa", tc0780fpa_device, render_w)
- AM_RANGE(0x6a11, 0x6a12) AM_NOP // same as 0x6a01..02 for the second renderer chip?
- AM_RANGE(0x6b20, 0x6b20) AM_DEVWRITE("tc0780fpa", tc0780fpa_device, poly_fifo_w)
- AM_RANGE(0x6b22, 0x6b22) AM_DEVWRITE("tc0780fpa", tc0780fpa_device, tex_w)
- AM_RANGE(0x6b23, 0x6b23) AM_DEVREADWRITE("tc0780fpa", tc0780fpa_device, tex_addr_r, tex_addr_w)
- AM_RANGE(0x6c00, 0x6c01) AM_READWRITE(dsp_rom_r, dsp_rom_w)
- AM_RANGE(0x7000, 0x7002) AM_WRITE(dsp_math_projection_w)
- AM_RANGE(0x7010, 0x7012) AM_WRITE(dsp_math_intersection_w)
- AM_RANGE(0x7013, 0x7015) AM_WRITE(dsp_math_viewport_w)
- AM_RANGE(0x701b, 0x701b) AM_READ(dsp_math_intersection_r)
- AM_RANGE(0x701d, 0x701d) AM_READ(dsp_math_projection_y_r)
- AM_RANGE(0x701f, 0x701f) AM_READ(dsp_math_projection_x_r)
- AM_RANGE(0x7022, 0x7022) AM_READ(dsp_math_unk_r)
- AM_RANGE(0x7800, 0x7fff) AM_RAM AM_SHARE("dsp_shared")
- AM_RANGE(0x7ffe, 0x7ffe) AM_WRITE(dsp_to_main_7fe_w)
- AM_RANGE(0x8000, 0xffff) AM_RAM
-ADDRESS_MAP_END
+void taitojc_state::tms_program_map(address_map &map)
+{
+ map(0x0000, 0x1fff).ram().mirror(0x4000);
+ map(0x6000, 0x7fff).ram();
+}
+
+void taitojc_state::tms_data_map(address_map &map)
+{
+ map(0x6a01, 0x6a02).w(m_tc0780fpa, FUNC(tc0780fpa_device::render_w));
+ map(0x6a11, 0x6a12).noprw(); // same as 0x6a01..02 for the second renderer chip?
+ map(0x6b20, 0x6b20).w(m_tc0780fpa, FUNC(tc0780fpa_device::poly_fifo_w));
+ map(0x6b22, 0x6b22).w(m_tc0780fpa, FUNC(tc0780fpa_device::tex_w));
+ map(0x6b23, 0x6b23).rw(m_tc0780fpa, FUNC(tc0780fpa_device::tex_addr_r), FUNC(tc0780fpa_device::tex_addr_w));
+ map(0x6c00, 0x6c01).rw(this, FUNC(taitojc_state::dsp_rom_r), FUNC(taitojc_state::dsp_rom_w));
+ map(0x7000, 0x7002).w(this, FUNC(taitojc_state::dsp_math_projection_w));
+ map(0x7010, 0x7012).w(this, FUNC(taitojc_state::dsp_math_intersection_w));
+ map(0x7013, 0x7015).w(this, FUNC(taitojc_state::dsp_math_viewport_w));
+ map(0x701b, 0x701b).r(this, FUNC(taitojc_state::dsp_math_intersection_r));
+ map(0x701d, 0x701d).r(this, FUNC(taitojc_state::dsp_math_projection_y_r));
+ map(0x701f, 0x701f).r(this, FUNC(taitojc_state::dsp_math_projection_x_r));
+ map(0x7022, 0x7022).r(this, FUNC(taitojc_state::dsp_math_unk_r));
+ map(0x7800, 0x7fff).ram().share("dsp_shared");
+ map(0x7ffe, 0x7ffe).w(this, FUNC(taitojc_state::dsp_to_main_7fe_w));
+ map(0x8000, 0xffff).ram();
+}