summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/taitoair.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/taitoair.c')
-rw-r--r--src/mame/drivers/taitoair.c109
1 files changed, 50 insertions, 59 deletions
diff --git a/src/mame/drivers/taitoair.c b/src/mame/drivers/taitoair.c
index 24f903607f1..a6a45e20806 100644
--- a/src/mame/drivers/taitoair.c
+++ b/src/mame/drivers/taitoair.c
@@ -230,90 +230,82 @@ cpu #2 (PC=0000060E): unmapped memory word read from 0000683A & FFFF
MEMORY handlers
***********************************************************/
-static WRITE16_HANDLER( system_control_w )
+WRITE16_MEMBER(taitoair_state::system_control_w)
{
- taitoair_state *state = space->machine().driver_data<taitoair_state>();
if ((ACCESSING_BITS_0_7 == 0) && ACCESSING_BITS_8_15)
data >>= 8;
- state->m_dsp_hold_signal = (data & 4) ? CLEAR_LINE : ASSERT_LINE;
+ m_dsp_hold_signal = (data & 4) ? CLEAR_LINE : ASSERT_LINE;
- device_set_input_line(state->m_dsp, INPUT_LINE_RESET, (data & 1) ? CLEAR_LINE : ASSERT_LINE);
+ device_set_input_line(m_dsp, INPUT_LINE_RESET, (data & 1) ? CLEAR_LINE : ASSERT_LINE);
- logerror("68K:%06x writing %04x to TMS32025. %s HOLD , %s RESET\n", cpu_get_previouspc(&space->device()), data, ((data & 4) ? "Clear" : "Assert"), ((data & 1) ? "Clear" : "Assert"));
+ logerror("68K:%06x writing %04x to TMS32025. %s HOLD , %s RESET\n", cpu_get_previouspc(&space.device()), data, ((data & 4) ? "Clear" : "Assert"), ((data & 1) ? "Clear" : "Assert"));
}
-static READ16_HANDLER( lineram_r )
+READ16_MEMBER(taitoair_state::lineram_r)
{
- taitoair_state *state = space->machine().driver_data<taitoair_state>();
- return state->m_line_ram[offset];
+ return m_line_ram[offset];
}
-static WRITE16_HANDLER( lineram_w )
+WRITE16_MEMBER(taitoair_state::lineram_w)
{
- taitoair_state *state = space->machine().driver_data<taitoair_state>();
if (ACCESSING_BITS_8_15 && ACCESSING_BITS_0_7)
- state->m_line_ram[offset] = data;
+ m_line_ram[offset] = data;
//if(offset == 0x3fff)
- // printf("LineRAM go %d\n",(int)space->machine().primary_screen->frame_number());
+ // printf("LineRAM go %d\n",(int)machine().primary_screen->frame_number());
}
-static READ16_HANDLER( dspram_r )
+READ16_MEMBER(taitoair_state::dspram_r)
{
- taitoair_state *state = space->machine().driver_data<taitoair_state>();
- return state->m_dsp_ram[offset];
+ return m_dsp_ram[offset];
}
-static WRITE16_HANDLER( dspram_w )
+WRITE16_MEMBER(taitoair_state::dspram_w)
{
- taitoair_state *state = space->machine().driver_data<taitoair_state>();
if (ACCESSING_BITS_8_15 && ACCESSING_BITS_0_7)
- state->m_dsp_ram[offset] = data;
+ m_dsp_ram[offset] = data;
}
-static READ16_HANDLER( dsp_HOLD_signal_r )
+READ16_MEMBER(taitoair_state::dsp_HOLD_signal_r)
{
- taitoair_state *state = space->machine().driver_data<taitoair_state>();
/* HOLD signal is active low */
- // logerror("TMS32025:%04x Reading %01x level from HOLD signal\n", cpu_get_previouspc(&space->device()), state->m_dsp_hold_signal);
+ // logerror("TMS32025:%04x Reading %01x level from HOLD signal\n", cpu_get_previouspc(&space.device()), m_dsp_hold_signal);
- return state->m_dsp_hold_signal;
+ return m_dsp_hold_signal;
}
-static WRITE16_HANDLER( dsp_HOLDA_signal_w )
+WRITE16_MEMBER(taitoair_state::dsp_HOLDA_signal_w)
{
if (offset)
- logerror("TMS32025:%04x Writing %01x level to HOLD-Acknowledge signal\n", cpu_get_previouspc(&space->device()), data);
+ logerror("TMS32025:%04x Writing %01x level to HOLD-Acknowledge signal\n", cpu_get_previouspc(&space.device()), data);
}
-static WRITE16_HANDLER( airsys_paletteram16_w ) /* xxBBBBxRRRRxGGGG */
+WRITE16_MEMBER(taitoair_state::airsys_paletteram16_w)/* xxBBBBxRRRRxGGGG */
{
- taitoair_state *state = space->machine().driver_data<taitoair_state>();
int a;
- COMBINE_DATA(&state->m_paletteram[offset]);
+ COMBINE_DATA(&m_paletteram[offset]);
- a = state->m_paletteram[offset];
- palette_set_color_rgb(space->machine(), offset, pal4bit(a >> 0), pal4bit(a >> 5), pal4bit(a >> 10));
+ a = m_paletteram[offset];
+ palette_set_color_rgb(machine(), offset, pal4bit(a >> 0), pal4bit(a >> 5), pal4bit(a >> 10));
}
-static WRITE16_HANDLER( airsys_gradram_w )
+WRITE16_MEMBER(taitoair_state::airsys_gradram_w)
{
- taitoair_state *state = space->machine().driver_data<taitoair_state>();
UINT32 pen;
int r,g,b;
//int pal_r,pal_g,pal_b;
- COMBINE_DATA(&state->m_gradram[offset]);
+ COMBINE_DATA(&m_gradram[offset]);
offset &= 0x1fff;
- pen = (state->m_gradram[offset])|(state->m_gradram[(offset+0x2000)]<<16);
+ pen = (m_gradram[offset])|(m_gradram[(offset+0x2000)]<<16);
/* TODO: correct? */
r = (pen & 0x00007f) >> 0;
g = (pen & 0x007f00) >> (8);
@@ -324,15 +316,15 @@ static WRITE16_HANDLER( airsys_gradram_w )
b = (b << 1) | (b & 1);
/* TODO: I'm sure that normal paletteram and gradiation ram mixes in some way ... */
- //pal_r = ((state->m_paletteram[(offset >> 7) + 0x300] & 0x000f) >> 0) * 0x11;
- //pal_g = ((state->m_paletteram[(offset >> 7) + 0x300] & 0x01e0) >> 5) * 0x11;
- //pal_b = ((state->m_paletteram[(offset >> 7) + 0x300] & 0x7c00) >> 10) * 0x11;
+ //pal_r = ((m_paletteram[(offset >> 7) + 0x300] & 0x000f) >> 0) * 0x11;
+ //pal_g = ((m_paletteram[(offset >> 7) + 0x300] & 0x01e0) >> 5) * 0x11;
+ //pal_b = ((m_paletteram[(offset >> 7) + 0x300] & 0x7c00) >> 10) * 0x11;
//if(r == 0) { r = (pal_r); }
//if(g == 0) { g = (pal_g); }
//if(b == 0) { b = (pal_b); }
- palette_set_color_rgb(space->machine(), offset+0x2000, r, g, b);
+ palette_set_color_rgb(machine(), offset+0x2000, r, g, b);
}
@@ -344,38 +336,38 @@ static WRITE16_HANDLER( airsys_gradram_w )
#define STICK2_PORT_TAG "STICK2"
#define STICK3_PORT_TAG "STICK3"
-static READ16_HANDLER( stick_input_r )
+READ16_MEMBER(taitoair_state::stick_input_r)
{
switch( offset )
{
case 0x00: /* "counter 1" lo */
- return input_port_read(space->machine(), STICK1_PORT_TAG);
+ return input_port_read(machine(), STICK1_PORT_TAG);
case 0x01: /* "counter 2" lo */
- return input_port_read(space->machine(), STICK2_PORT_TAG);
+ return input_port_read(machine(), STICK2_PORT_TAG);
case 0x02: /* "counter 1" hi */
- if(input_port_read(space->machine(), STICK1_PORT_TAG) & 0x80)
+ if(input_port_read(machine(), STICK1_PORT_TAG) & 0x80)
return 0xff;
return 0;
case 0x03: /* "counter 2" hi */
- return (input_port_read(space->machine(), STICK2_PORT_TAG) & 0xff00) >> 8;
+ return (input_port_read(machine(), STICK2_PORT_TAG) & 0xff00) >> 8;
}
return 0;
}
-static READ16_HANDLER( stick2_input_r )
+READ16_MEMBER(taitoair_state::stick2_input_r)
{
switch( offset )
{
case 0x00: /* "counter 3" lo */
- return input_port_read(space->machine(), STICK3_PORT_TAG);
+ return input_port_read(machine(), STICK3_PORT_TAG);
case 0x02: /* "counter 3" hi */
- return (input_port_read(space->machine(), STICK3_PORT_TAG) & 0xff00) >> 8;
+ return (input_port_read(machine(), STICK3_PORT_TAG) & 0xff00) >> 8;
}
return 0;
@@ -389,12 +381,11 @@ static void reset_sound_region( running_machine &machine )
memory_set_bank(machine, "bank1", state->m_banknum);
}
-static WRITE8_HANDLER( sound_bankswitch_w )
+WRITE8_MEMBER(taitoair_state::sound_bankswitch_w)
{
- taitoair_state *state = space->machine().driver_data<taitoair_state>();
- state->m_banknum = data & 3;
- reset_sound_region(space->machine());
+ m_banknum = data & 3;
+ reset_sound_region(machine());
}
@@ -405,16 +396,16 @@ static WRITE8_HANDLER( sound_bankswitch_w )
static ADDRESS_MAP_START( airsys_map, AS_PROGRAM, 16, taitoair_state )
AM_RANGE(0x000000, 0x0bffff) AM_ROM
AM_RANGE(0x0c0000, 0x0cffff) AM_RAM AM_BASE(m_m68000_mainram)
- AM_RANGE(0x140000, 0x140001) AM_WRITE_LEGACY(system_control_w) /* Pause the TMS32025 */
- AM_RANGE(0x180000, 0x187fff) AM_RAM_WRITE_LEGACY(airsys_gradram_w) AM_BASE(m_gradram) /* "gradiation ram (0/1)" */
- AM_RANGE(0x188000, 0x189fff) AM_MIRROR(0x2000) AM_RAM_WRITE_LEGACY(airsys_paletteram16_w) AM_BASE(m_paletteram)
+ AM_RANGE(0x140000, 0x140001) AM_WRITE(system_control_w) /* Pause the TMS32025 */
+ AM_RANGE(0x180000, 0x187fff) AM_RAM_WRITE(airsys_gradram_w) AM_BASE(m_gradram) /* "gradiation ram (0/1)" */
+ AM_RANGE(0x188000, 0x189fff) AM_MIRROR(0x2000) AM_RAM_WRITE(airsys_paletteram16_w) AM_BASE(m_paletteram)
AM_RANGE(0x800000, 0x820fff) AM_DEVREADWRITE_LEGACY("tc0080vco", tc0080vco_word_r, tc0080vco_word_w) /* tilemaps, sprites */
AM_RANGE(0x906000, 0x906007) AM_RAM // DMA?
AM_RANGE(0x908000, 0x90ffff) AM_RAM AM_BASE(m_line_ram) /* "line ram" */
AM_RANGE(0x910000, 0x91ffff) AM_RAM AM_BASE(m_dsp_ram) /* "dsp common ram" (TMS320C25) */
AM_RANGE(0x980000, 0x98000f) AM_RAM AM_BASE(m_backregs)
- AM_RANGE(0xa00000, 0xa00007) AM_READ_LEGACY(stick_input_r)
- AM_RANGE(0xa00100, 0xa00107) AM_READ_LEGACY(stick2_input_r)
+ AM_RANGE(0xa00000, 0xa00007) AM_READ(stick_input_r)
+ AM_RANGE(0xa00100, 0xa00107) AM_READ(stick2_input_r)
AM_RANGE(0xa00200, 0xa0020f) AM_DEVREADWRITE8_LEGACY("tc0220ioc", tc0220ioc_r, tc0220ioc_w, 0x00ff) /* other I/O */
AM_RANGE(0xa80000, 0xa80001) AM_READNOP AM_DEVWRITE8_LEGACY("tc0140syt", tc0140syt_port_w, 0x00ff)
AM_RANGE(0xa80002, 0xa80003) AM_DEVREADWRITE8_LEGACY("tc0140syt", tc0140syt_comm_r, tc0140syt_comm_w, 0x00ff)
@@ -434,7 +425,7 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, taitoair_state )
AM_RANGE(0xea00, 0xea00) AM_READNOP
AM_RANGE(0xee00, 0xee00) AM_WRITENOP /* ? */
AM_RANGE(0xf000, 0xf000) AM_WRITENOP /* ? */
- AM_RANGE(0xf200, 0xf200) AM_WRITE_LEGACY(sound_bankswitch_w)
+ AM_RANGE(0xf200, 0xf200) AM_WRITE(sound_bankswitch_w)
ADDRESS_MAP_END
/********************************** TMS32025 ********************************/
@@ -486,13 +477,13 @@ static ADDRESS_MAP_START( DSP_map_data, AS_DATA, 16, taitoair_state )
// AM_RANGE(0x341b, 0x341b) AM_WRITE_LEGACY(dsp_sqrt_r)
// AM_RANGE(0x341c, 0x341c) AM_READ_LEGACY(dsp_sqrt_flags1_r)
// AM_RANGE(0x341d, 0x341d) AM_READ_LEGACY(dsp_sqrt_flags2_r)
- AM_RANGE(0x4000, 0x7fff) AM_READWRITE_LEGACY(lineram_r, lineram_w)
- AM_RANGE(0x8000, 0xffff) AM_READWRITE_LEGACY(dspram_r, dspram_w)
+ AM_RANGE(0x4000, 0x7fff) AM_READWRITE(lineram_r, lineram_w)
+ AM_RANGE(0x8000, 0xffff) AM_READWRITE(dspram_r, dspram_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( DSP_map_io, AS_IO, 16, taitoair_state )
- AM_RANGE(TMS32025_HOLD, TMS32025_HOLD) AM_READ_LEGACY(dsp_HOLD_signal_r)
- AM_RANGE(TMS32025_HOLDA, TMS32025_HOLDA) AM_WRITE_LEGACY(dsp_HOLDA_signal_w)
+ AM_RANGE(TMS32025_HOLD, TMS32025_HOLD) AM_READ(dsp_HOLD_signal_r)
+ AM_RANGE(TMS32025_HOLDA, TMS32025_HOLDA) AM_WRITE(dsp_HOLDA_signal_w)
ADDRESS_MAP_END