summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/xavix.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/xavix.cpp')
-rw-r--r--src/mame/drivers/xavix.cpp130
1 files changed, 65 insertions, 65 deletions
diff --git a/src/mame/drivers/xavix.cpp b/src/mame/drivers/xavix.cpp
index a8dfd9f3828..e6a446b0d7a 100644
--- a/src/mame/drivers/xavix.cpp
+++ b/src/mame/drivers/xavix.cpp
@@ -279,8 +279,8 @@ WRITE8_MEMBER(xavix_state::main2_w)
void xavix_state::xavix_map(address_map &map)
{
- map(0x000000, 0x7fffff).rw(this, FUNC(xavix_state::main_r), FUNC(xavix_state::main_w));
- map(0x800000, 0xffffff).rw(this, FUNC(xavix_state::main2_r), FUNC(xavix_state::main2_w));
+ map(0x000000, 0x7fffff).rw(FUNC(xavix_state::main_r), FUNC(xavix_state::main_w));
+ map(0x800000, 0xffffff).rw(FUNC(xavix_state::main2_r), FUNC(xavix_state::main2_w));
}
void xavix_state::xavix_lowbus_map(address_map &map)
@@ -290,7 +290,7 @@ void xavix_state::xavix_lowbus_map(address_map &map)
// this might not be a real area, the tilemap base register gets set to 0x40 in monster truck service mode, and expects a fixed layout.
// As that would point at this address maybe said layout is being read from here, or maybe it's just a magic tilemap register value that doesn't read address space at all.
- map(0x4000, 0x41ff).r(this, FUNC(xavix_state::xavix_4000_r));
+ map(0x4000, 0x41ff).r(FUNC(xavix_state::xavix_4000_r));
// 6xxx ranges are the video hardware
// appears to be 256 sprites
@@ -306,105 +306,105 @@ void xavix_state::xavix_lowbus_map(address_map &map)
map(0x6900, 0x69ff).ram().share("palram2"); // startup (taitons1)
map(0x6a00, 0x6a1f).ram().share("spr_attra"); // test mode, pass flag 0x20
- map(0x6fc0, 0x6fc0).w(this, FUNC(xavix_state::xavix_6fc0_w)); // startup (maybe this is a mirror of tmap1_regs_w)
+ map(0x6fc0, 0x6fc0).w(FUNC(xavix_state::xavix_6fc0_w)); // startup (maybe this is a mirror of tmap1_regs_w)
- map(0x6fc8, 0x6fcf).w(this, FUNC(xavix_state::tmap1_regs_w)); // video registers
+ map(0x6fc8, 0x6fcf).w(FUNC(xavix_state::tmap1_regs_w)); // video registers
- map(0x6fd0, 0x6fd7).rw(this, FUNC(xavix_state::tmap2_regs_r), FUNC(xavix_state::tmap2_regs_w));
- map(0x6fd8, 0x6fd8).w(this, FUNC(xavix_state::xavix_6fd8_w)); // startup (mirror of tmap2_regs_w?)
+ map(0x6fd0, 0x6fd7).rw(FUNC(xavix_state::tmap2_regs_r), FUNC(xavix_state::tmap2_regs_w));
+ map(0x6fd8, 0x6fd8).w(FUNC(xavix_state::xavix_6fd8_w)); // startup (mirror of tmap2_regs_w?)
- map(0x6fe0, 0x6fe0).rw(this, FUNC(xavix_state::vid_dma_trigger_r), FUNC(xavix_state::vid_dma_trigger_w)); // after writing to 6fe1/6fe2 and 6fe5/6fe6 rad_mtrk writes 0x43/0x44 here then polls on 0x40 (see function call at c273) write values are hardcoded, similar code at 18401
- map(0x6fe1, 0x6fe2).w(this, FUNC(xavix_state::vid_dma_params_1_w));
- map(0x6fe5, 0x6fe6).w(this, FUNC(xavix_state::vid_dma_params_2_w));
+ map(0x6fe0, 0x6fe0).rw(FUNC(xavix_state::vid_dma_trigger_r), FUNC(xavix_state::vid_dma_trigger_w)); // after writing to 6fe1/6fe2 and 6fe5/6fe6 rad_mtrk writes 0x43/0x44 here then polls on 0x40 (see function call at c273) write values are hardcoded, similar code at 18401
+ map(0x6fe1, 0x6fe2).w(FUNC(xavix_state::vid_dma_params_1_w));
+ map(0x6fe5, 0x6fe6).w(FUNC(xavix_state::vid_dma_params_2_w));
// function in rad_mtrk at 0184b7 uses this
- map(0x6fe8, 0x6fe8).rw(this, FUNC(xavix_state::xavix_6fe8_r), FUNC(xavix_state::xavix_6fe8_w)); // r/w tested
- map(0x6fe9, 0x6fe9).rw(this, FUNC(xavix_state::xavix_6fe9_r), FUNC(xavix_state::xavix_6fe9_w)); // r/w tested
- map(0x6fea, 0x6fea).w(this, FUNC(xavix_state::xavix_6fea_w));
+ map(0x6fe8, 0x6fe8).rw(FUNC(xavix_state::xavix_6fe8_r), FUNC(xavix_state::xavix_6fe8_w)); // r/w tested
+ map(0x6fe9, 0x6fe9).rw(FUNC(xavix_state::xavix_6fe9_r), FUNC(xavix_state::xavix_6fe9_w)); // r/w tested
+ map(0x6fea, 0x6fea).w(FUNC(xavix_state::xavix_6fea_w));
- map(0x6ff0, 0x6ff0).rw(this, FUNC(xavix_state::xavix_6ff0_r), FUNC(xavix_state::xavix_6ff0_w)); // r/w tested
- map(0x6ff1, 0x6ff1).w(this, FUNC(xavix_state::xavix_6ff1_w)); // startup - cleared in interrupt 0
- map(0x6ff2, 0x6ff2).w(this, FUNC(xavix_state::xavix_6ff2_w)); // set to 07 after clearing above things in interrupt 0
+ map(0x6ff0, 0x6ff0).rw(FUNC(xavix_state::xavix_6ff0_r), FUNC(xavix_state::xavix_6ff0_w)); // r/w tested
+ map(0x6ff1, 0x6ff1).w(FUNC(xavix_state::xavix_6ff1_w)); // startup - cleared in interrupt 0
+ map(0x6ff2, 0x6ff2).w(FUNC(xavix_state::xavix_6ff2_w)); // set to 07 after clearing above things in interrupt 0
- map(0x6ff8, 0x6ff8).rw(this, FUNC(xavix_state::xavix_6ff8_r), FUNC(xavix_state::xavix_6ff8_w)); // always seems to be a read/store or read/modify/store
- map(0x6ff9, 0x6ff9).r(this, FUNC(xavix_state::pal_ntsc_r));
- map(0x6ffa, 0x6ffa).w(this, FUNC(xavix_state::xavix_6ffa_w));
- map(0x6ffb, 0x6ffb).w(this, FUNC(xavix_state::xavix_6ffb_w)); // increases / decreases when you jump in snowboard, maybe raster irq pos or part of a clipping window?
+ map(0x6ff8, 0x6ff8).rw(FUNC(xavix_state::xavix_6ff8_r), FUNC(xavix_state::xavix_6ff8_w)); // always seems to be a read/store or read/modify/store
+ map(0x6ff9, 0x6ff9).r(FUNC(xavix_state::pal_ntsc_r));
+ map(0x6ffa, 0x6ffa).w(FUNC(xavix_state::xavix_6ffa_w));
+ map(0x6ffb, 0x6ffb).w(FUNC(xavix_state::xavix_6ffb_w)); // increases / decreases when you jump in snowboard, maybe raster irq pos or part of a clipping window?
// 7xxx ranges system controller?
- map(0x75f0, 0x75f0).rw(this, FUNC(xavix_state::xavix_75f0_r), FUNC(xavix_state::xavix_75f0_w)); // r/w tested read/written 8 times in a row
- map(0x75f1, 0x75f1).rw(this, FUNC(xavix_state::xavix_75f1_r), FUNC(xavix_state::xavix_75f1_w)); // r/w tested read/written 8 times in a row
+ map(0x75f0, 0x75f0).rw(FUNC(xavix_state::xavix_75f0_r), FUNC(xavix_state::xavix_75f0_w)); // r/w tested read/written 8 times in a row
+ map(0x75f1, 0x75f1).rw(FUNC(xavix_state::xavix_75f1_r), FUNC(xavix_state::xavix_75f1_w)); // r/w tested read/written 8 times in a row
map(0x75f3, 0x75f3).ram();
- map(0x75f4, 0x75f4).r(this, FUNC(xavix_state::xavix_75f4_r)); // related to 75f0 (read after writing there - rad_mtrk)
- map(0x75f5, 0x75f5).r(this, FUNC(xavix_state::xavix_75f5_r)); // related to 75f1 (read after writing there - rad_mtrk)
+ map(0x75f4, 0x75f4).r(FUNC(xavix_state::xavix_75f4_r)); // related to 75f0 (read after writing there - rad_mtrk)
+ map(0x75f5, 0x75f5).r(FUNC(xavix_state::xavix_75f5_r)); // related to 75f1 (read after writing there - rad_mtrk)
// taitons1 after 75f7/75f8
- map(0x75f6, 0x75f6).rw(this, FUNC(xavix_state::xavix_75f6_r), FUNC(xavix_state::xavix_75f6_w)); // r/w tested
+ map(0x75f6, 0x75f6).rw(FUNC(xavix_state::xavix_75f6_r), FUNC(xavix_state::xavix_75f6_w)); // r/w tested
// taitons1 written as a pair
- map(0x75f7, 0x75f7).w(this, FUNC(xavix_state::xavix_75f7_w));
- map(0x75f8, 0x75f8).rw(this, FUNC(xavix_state::xavix_75f8_r), FUNC(xavix_state::xavix_75f8_w)); // r/w tested
+ map(0x75f7, 0x75f7).w(FUNC(xavix_state::xavix_75f7_w));
+ map(0x75f8, 0x75f8).rw(FUNC(xavix_state::xavix_75f8_r), FUNC(xavix_state::xavix_75f8_w)); // r/w tested
// taitons1 written after 75f6, then read
- map(0x75f9, 0x75f9).rw(this, FUNC(xavix_state::xavix_75f9_r), FUNC(xavix_state::xavix_75f9_w));
+ map(0x75f9, 0x75f9).rw(FUNC(xavix_state::xavix_75f9_r), FUNC(xavix_state::xavix_75f9_w));
// at another time
- map(0x75fa, 0x75fa).rw(this, FUNC(xavix_state::xavix_75fa_r), FUNC(xavix_state::xavix_75fa_w)); // r/w tested
- map(0x75fb, 0x75fb).rw(this, FUNC(xavix_state::xavix_75fb_r), FUNC(xavix_state::xavix_75fb_w)); // r/w tested
- map(0x75fc, 0x75fc).rw(this, FUNC(xavix_state::xavix_75fc_r), FUNC(xavix_state::xavix_75fc_w)); // r/w tested
- map(0x75fd, 0x75fd).rw(this, FUNC(xavix_state::xavix_75fd_r), FUNC(xavix_state::xavix_75fd_w)); // r/w tested
- map(0x75fe, 0x75fe).w(this, FUNC(xavix_state::xavix_75fe_w));
+ map(0x75fa, 0x75fa).rw(FUNC(xavix_state::xavix_75fa_r), FUNC(xavix_state::xavix_75fa_w)); // r/w tested
+ map(0x75fb, 0x75fb).rw(FUNC(xavix_state::xavix_75fb_r), FUNC(xavix_state::xavix_75fb_w)); // r/w tested
+ map(0x75fc, 0x75fc).rw(FUNC(xavix_state::xavix_75fc_r), FUNC(xavix_state::xavix_75fc_w)); // r/w tested
+ map(0x75fd, 0x75fd).rw(FUNC(xavix_state::xavix_75fd_r), FUNC(xavix_state::xavix_75fd_w)); // r/w tested
+ map(0x75fe, 0x75fe).w(FUNC(xavix_state::xavix_75fe_w));
// taitons1 written other 75xx operations
- map(0x75ff, 0x75ff).w(this, FUNC(xavix_state::xavix_75ff_w));
+ map(0x75ff, 0x75ff).w(FUNC(xavix_state::xavix_75ff_w));
- map(0x7810, 0x7810).w(this, FUNC(xavix_state::xavix_7810_w)); // startup
+ map(0x7810, 0x7810).w(FUNC(xavix_state::xavix_7810_w)); // startup
- map(0x7900, 0x7900).w(this, FUNC(xavix_state::xavix_7900_w));
- map(0x7901, 0x7901).w(this, FUNC(xavix_state::xavix_7901_w));
- map(0x7902, 0x7902).w(this, FUNC(xavix_state::xavix_7902_w));
+ map(0x7900, 0x7900).w(FUNC(xavix_state::xavix_7900_w));
+ map(0x7901, 0x7901).w(FUNC(xavix_state::xavix_7901_w));
+ map(0x7902, 0x7902).w(FUNC(xavix_state::xavix_7902_w));
// DMA trigger for below (written after the others) waits on status of bit 1 in a loop
- map(0x7980, 0x7980).rw(this, FUNC(xavix_state::dma_trigger_r), FUNC(xavix_state::dma_trigger_w));
+ map(0x7980, 0x7980).rw(FUNC(xavix_state::dma_trigger_r), FUNC(xavix_state::dma_trigger_w));
// DMA source
- map(0x7981, 0x7981).w(this, FUNC(xavix_state::rom_dmasrc_lo_w));
- map(0x7982, 0x7982).w(this, FUNC(xavix_state::rom_dmasrc_md_w));
- map(0x7983, 0x7983).w(this, FUNC(xavix_state::rom_dmasrc_hi_w));
+ map(0x7981, 0x7981).w(FUNC(xavix_state::rom_dmasrc_lo_w));
+ map(0x7982, 0x7982).w(FUNC(xavix_state::rom_dmasrc_md_w));
+ map(0x7983, 0x7983).w(FUNC(xavix_state::rom_dmasrc_hi_w));
// DMA dest
- map(0x7984, 0x7984).w(this, FUNC(xavix_state::rom_dmadst_lo_w));
- map(0x7985, 0x7985).w(this, FUNC(xavix_state::rom_dmadst_hi_w));
+ map(0x7984, 0x7984).w(FUNC(xavix_state::rom_dmadst_lo_w));
+ map(0x7985, 0x7985).w(FUNC(xavix_state::rom_dmadst_hi_w));
// DMA length
- map(0x7986, 0x7986).w(this, FUNC(xavix_state::rom_dmalen_lo_w));
- map(0x7987, 0x7987).w(this, FUNC(xavix_state::rom_dmalen_hi_w));
+ map(0x7986, 0x7986).w(FUNC(xavix_state::rom_dmalen_lo_w));
+ map(0x7987, 0x7987).w(FUNC(xavix_state::rom_dmalen_hi_w));
// GPIO stuff
- map(0x7a00, 0x7a00).rw(this, FUNC(xavix_state::xavix_io_0_r),FUNC(xavix_state::xavix_7a00_w));
- map(0x7a01, 0x7a01).rw(this, FUNC(xavix_state::xavix_io_1_r),FUNC(xavix_state::xavix_7a01_w)); // startup (taitons1)
- map(0x7a02, 0x7a02).rw(this, FUNC(xavix_state::xavix_7a02_r),FUNC(xavix_state::xavix_7a02_w)); // startup, gets set to 20, 7a00 is then also written with 20
- map(0x7a03, 0x7a03).rw(this, FUNC(xavix_state::xavix_7a03_r),FUNC(xavix_state::xavix_7a03_w)); // startup (gets set to 84 which is the same as the bits checked on 7a01, possible port direction register?)
+ map(0x7a00, 0x7a00).rw(FUNC(xavix_state::xavix_io_0_r),FUNC(xavix_state::xavix_7a00_w));
+ map(0x7a01, 0x7a01).rw(FUNC(xavix_state::xavix_io_1_r),FUNC(xavix_state::xavix_7a01_w)); // startup (taitons1)
+ map(0x7a02, 0x7a02).rw(FUNC(xavix_state::xavix_7a02_r),FUNC(xavix_state::xavix_7a02_w)); // startup, gets set to 20, 7a00 is then also written with 20
+ map(0x7a03, 0x7a03).rw(FUNC(xavix_state::xavix_7a03_r),FUNC(xavix_state::xavix_7a03_w)); // startup (gets set to 84 which is the same as the bits checked on 7a01, possible port direction register?)
- map(0x7a80, 0x7a80).w(this, FUNC(xavix_state::xavix_7a80_w)); // still IO? ADC related?
+ map(0x7a80, 0x7a80).w(FUNC(xavix_state::xavix_7a80_w)); // still IO? ADC related?
- map(0x7b00, 0x7b00).w(this, FUNC(xavix_state::xavix_7b00_w)); // rad_snow (not often)
+ map(0x7b00, 0x7b00).w(FUNC(xavix_state::xavix_7b00_w)); // rad_snow (not often)
- map(0x7b80, 0x7b80).rw(this, FUNC(xavix_state::xavix_7b80_r), FUNC(xavix_state::xavix_7b80_w)); // rad_snow (not often)
- map(0x7b81, 0x7b81).w(this, FUNC(xavix_state::xavix_7b81_w)); // written (often, m_trck, analog related?)
+ map(0x7b80, 0x7b80).rw(FUNC(xavix_state::xavix_7b80_r), FUNC(xavix_state::xavix_7b80_w)); // rad_snow (not often)
+ map(0x7b81, 0x7b81).w(FUNC(xavix_state::xavix_7b81_w)); // written (often, m_trck, analog related?)
- map(0x7c00, 0x7c00).w(this, FUNC(xavix_state::xavix_7c00_w));
- map(0x7c01, 0x7c01).rw(this, FUNC(xavix_state::xavix_7c01_r), FUNC(xavix_state::xavix_7c01_w)); // r/w tested
- map(0x7c02, 0x7c02).w(this, FUNC(xavix_state::xavix_7c02_w));
+ map(0x7c00, 0x7c00).w(FUNC(xavix_state::xavix_7c00_w));
+ map(0x7c01, 0x7c01).rw(FUNC(xavix_state::xavix_7c01_r), FUNC(xavix_state::xavix_7c01_w)); // r/w tested
+ map(0x7c02, 0x7c02).w(FUNC(xavix_state::xavix_7c02_w));
// this is a multiplication chip
- map(0x7ff2, 0x7ff4).w(this, FUNC(xavix_state::mult_param_w));
- map(0x7ff5, 0x7ff6).rw(this, FUNC(xavix_state::mult_r), FUNC(xavix_state::mult_w));
+ map(0x7ff2, 0x7ff4).w(FUNC(xavix_state::mult_param_w));
+ map(0x7ff5, 0x7ff6).rw(FUNC(xavix_state::mult_r), FUNC(xavix_state::mult_w));
// maybe irq enable, written after below
- map(0x7ff9, 0x7ff9).w(this, FUNC(xavix_state::irq_enable_w)); // interrupt related, but probalby not a simple 'enable' otherwise interrupts happen before we're ready for them.
+ map(0x7ff9, 0x7ff9).w(FUNC(xavix_state::irq_enable_w)); // interrupt related, but probalby not a simple 'enable' otherwise interrupts happen before we're ready for them.
// an IRQ vector (nmi?)
- map(0x7ffa, 0x7ffa).w(this, FUNC(xavix_state::irq_vector0_lo_w));
- map(0x7ffb, 0x7ffb).w(this, FUNC(xavix_state::irq_vector0_hi_w));
+ map(0x7ffa, 0x7ffa).w(FUNC(xavix_state::irq_vector0_lo_w));
+ map(0x7ffb, 0x7ffb).w(FUNC(xavix_state::irq_vector0_hi_w));
- map(0x7ffc, 0x7ffc).rw(this, FUNC(xavix_state::irq_source_r), FUNC(xavix_state::irq_source_w));
+ map(0x7ffc, 0x7ffc).rw(FUNC(xavix_state::irq_source_r), FUNC(xavix_state::irq_source_w));
// an IRQ vector (irq?)
- map(0x7ffe, 0x7ffe).w(this, FUNC(xavix_state::irq_vector1_lo_w));
- map(0x7fff, 0x7fff).w(this, FUNC(xavix_state::irq_vector1_hi_w));
+ map(0x7ffe, 0x7ffe).w(FUNC(xavix_state::irq_vector1_lo_w));
+ map(0x7fff, 0x7fff).w(FUNC(xavix_state::irq_vector1_hi_w));
}
static INPUT_PORTS_START( xavix )