summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/progolf.c
diff options
context:
space:
mode:
author Miodrag Milanovic <mmicko@gmail.com>2012-04-03 07:01:48 +0000
committer Miodrag Milanovic <mmicko@gmail.com>2012-04-03 07:01:48 +0000
commit3783cf95515491d961776534fb5937b76accd464 (patch)
treedc81476844b0b7308d5ecac1debbe6f1cc8c7443 /src/mame/drivers/progolf.c
parent03c583747e9e7475522d1a2ceb5a454a1bc4a5e4 (diff)
MAME going modern part 3 (no whatsnew)
Diffstat (limited to 'src/mame/drivers/progolf.c')
-rw-r--r--src/mame/drivers/progolf.c103
1 files changed, 52 insertions, 51 deletions
diff --git a/src/mame/drivers/progolf.c b/src/mame/drivers/progolf.c
index b709d3e8764..c01055292a0 100644
--- a/src/mame/drivers/progolf.c
+++ b/src/mame/drivers/progolf.c
@@ -71,6 +71,15 @@ public:
UINT8 m_scrollx_lo;
UINT8 m_gfx_switch;
UINT8 m_sound_cmd;
+ DECLARE_WRITE8_MEMBER(progolf_charram_w);
+ DECLARE_WRITE8_MEMBER(progolf_char_vregs_w);
+ DECLARE_WRITE8_MEMBER(progolf_scrollx_lo_w);
+ DECLARE_WRITE8_MEMBER(progolf_scrollx_hi_w);
+ DECLARE_WRITE8_MEMBER(progolf_flip_screen_w);
+ DECLARE_WRITE8_MEMBER(audio_command_w);
+ DECLARE_READ8_MEMBER(audio_command_r);
+ DECLARE_READ8_MEMBER(progolf_videoram_r);
+ DECLARE_WRITE8_MEMBER(progolf_videoram_w);
};
@@ -140,118 +149,110 @@ static SCREEN_UPDATE_IND16( progolf )
return 0;
}
-static WRITE8_HANDLER( progolf_charram_w )
+WRITE8_MEMBER(progolf_state::progolf_charram_w)
{
- progolf_state *state = space->machine().driver_data<progolf_state>();
int i;
- state->m_fbram[offset] = data;
+ m_fbram[offset] = data;
- if(state->m_char_pen == 7)
+ if(m_char_pen == 7)
{
for(i=0;i<8;i++)
- state->m_fg_fb[offset*8+i] = 0;
+ m_fg_fb[offset*8+i] = 0;
}
else
{
for(i=0;i<8;i++)
{
- if(state->m_fg_fb[offset*8+i] == state->m_char_pen)
- state->m_fg_fb[offset*8+i] = data & (1<<(7-i)) ? state->m_char_pen : 0;
+ if(m_fg_fb[offset*8+i] == m_char_pen)
+ m_fg_fb[offset*8+i] = data & (1<<(7-i)) ? m_char_pen : 0;
else
- state->m_fg_fb[offset*8+i] = data & (1<<(7-i)) ? state->m_fg_fb[offset*8+i]|state->m_char_pen : state->m_fg_fb[offset*8+i];
+ m_fg_fb[offset*8+i] = data & (1<<(7-i)) ? m_fg_fb[offset*8+i]|m_char_pen : m_fg_fb[offset*8+i];
}
}
}
-static WRITE8_HANDLER( progolf_char_vregs_w )
+WRITE8_MEMBER(progolf_state::progolf_char_vregs_w)
{
- progolf_state *state = space->machine().driver_data<progolf_state>();
- state->m_char_pen = data & 0x07;
- state->m_gfx_switch = data & 0xf0;
- state->m_char_pen_vreg = data & 0x30;
+ m_char_pen = data & 0x07;
+ m_gfx_switch = data & 0xf0;
+ m_char_pen_vreg = data & 0x30;
}
-static WRITE8_HANDLER( progolf_scrollx_lo_w )
+WRITE8_MEMBER(progolf_state::progolf_scrollx_lo_w)
{
- progolf_state *state = space->machine().driver_data<progolf_state>();
- state->m_scrollx_lo = data;
+ m_scrollx_lo = data;
}
-static WRITE8_HANDLER( progolf_scrollx_hi_w )
+WRITE8_MEMBER(progolf_state::progolf_scrollx_hi_w)
{
- progolf_state *state = space->machine().driver_data<progolf_state>();
- state->m_scrollx_hi = data;
+ m_scrollx_hi = data;
}
-static WRITE8_HANDLER( progolf_flip_screen_w )
+WRITE8_MEMBER(progolf_state::progolf_flip_screen_w)
{
- flip_screen_set(space->machine(), data & 1);
+ flip_screen_set(machine(), data & 1);
if(data & 0xfe)
printf("$9600 with data = %02x used\n",data);
}
-static WRITE8_HANDLER( audio_command_w )
+WRITE8_MEMBER(progolf_state::audio_command_w)
{
- progolf_state *state = space->machine().driver_data<progolf_state>();
- state->m_sound_cmd = data;
- cputag_set_input_line(space->machine(), "audiocpu", 0, ASSERT_LINE);
+ m_sound_cmd = data;
+ cputag_set_input_line(machine(), "audiocpu", 0, ASSERT_LINE);
}
-static READ8_HANDLER( audio_command_r )
+READ8_MEMBER(progolf_state::audio_command_r)
{
- progolf_state *state = space->machine().driver_data<progolf_state>();
- cputag_set_input_line(space->machine(), "audiocpu", 0, CLEAR_LINE);
- return state->m_sound_cmd;
+ cputag_set_input_line(machine(), "audiocpu", 0, CLEAR_LINE);
+ return m_sound_cmd;
}
-static READ8_HANDLER( progolf_videoram_r )
+READ8_MEMBER(progolf_state::progolf_videoram_r)
{
- progolf_state *state = space->machine().driver_data<progolf_state>();
- UINT8 *videoram = state->m_videoram;
- UINT8 *gfx_rom = space->machine().region("gfx1")->base();
+ UINT8 *videoram = m_videoram;
+ UINT8 *gfx_rom = machine().region("gfx1")->base();
if (offset >= 0x0800)
{
- if (state->m_gfx_switch == 0x50)
+ if (m_gfx_switch == 0x50)
return gfx_rom[offset];
- else if (state->m_gfx_switch == 0x60)
+ else if (m_gfx_switch == 0x60)
return gfx_rom[offset + 0x1000];
- else if (state->m_gfx_switch == 0x70)
+ else if (m_gfx_switch == 0x70)
return gfx_rom[offset + 0x2000];
else
return videoram[offset];
} else {
- if (state->m_gfx_switch == 0x10)
+ if (m_gfx_switch == 0x10)
return gfx_rom[offset];
- else if (state->m_gfx_switch == 0x20)
+ else if (m_gfx_switch == 0x20)
return gfx_rom[offset + 0x1000];
- else if (state->m_gfx_switch == 0x30)
+ else if (m_gfx_switch == 0x30)
return gfx_rom[offset + 0x2000];
else
return videoram[offset];
}
}
-static WRITE8_HANDLER( progolf_videoram_w )
+WRITE8_MEMBER(progolf_state::progolf_videoram_w)
{
- progolf_state *state = space->machine().driver_data<progolf_state>();
- UINT8 *videoram = state->m_videoram;
- //if(state->m_gfx_switch & 0x40)
+ UINT8 *videoram = m_videoram;
+ //if(m_gfx_switch & 0x40)
videoram[offset] = data;
}
static ADDRESS_MAP_START( main_cpu, AS_PROGRAM, 8, progolf_state )
AM_RANGE(0x0000, 0x5fff) AM_RAM
- AM_RANGE(0x6000, 0x7fff) AM_RAM_WRITE_LEGACY(progolf_charram_w) AM_BASE(m_fbram)
- AM_RANGE(0x8000, 0x8fff) AM_READWRITE_LEGACY(progolf_videoram_r,progolf_videoram_w)
- AM_RANGE(0x9000, 0x9000) AM_READ_PORT("IN2") AM_WRITE_LEGACY(progolf_char_vregs_w)
- AM_RANGE(0x9200, 0x9200) AM_READ_PORT("P1") AM_WRITE_LEGACY(progolf_scrollx_hi_w) //p1 inputs
- AM_RANGE(0x9400, 0x9400) AM_READ_PORT("P2") AM_WRITE_LEGACY(progolf_scrollx_lo_w) //p2 inputs
- AM_RANGE(0x9600, 0x9600) AM_READ_PORT("IN0") AM_WRITE_LEGACY(progolf_flip_screen_w) /* VBLANK */
+ AM_RANGE(0x6000, 0x7fff) AM_RAM_WRITE(progolf_charram_w) AM_BASE(m_fbram)
+ AM_RANGE(0x8000, 0x8fff) AM_READWRITE(progolf_videoram_r,progolf_videoram_w)
+ AM_RANGE(0x9000, 0x9000) AM_READ_PORT("IN2") AM_WRITE(progolf_char_vregs_w)
+ AM_RANGE(0x9200, 0x9200) AM_READ_PORT("P1") AM_WRITE(progolf_scrollx_hi_w) //p1 inputs
+ AM_RANGE(0x9400, 0x9400) AM_READ_PORT("P2") AM_WRITE(progolf_scrollx_lo_w) //p2 inputs
+ AM_RANGE(0x9600, 0x9600) AM_READ_PORT("IN0") AM_WRITE(progolf_flip_screen_w) /* VBLANK */
AM_RANGE(0x9800, 0x9800) AM_READ_PORT("DSW1")
AM_RANGE(0x9800, 0x9800) AM_DEVWRITE("crtc", mc6845_device, address_w)
AM_RANGE(0x9801, 0x9801) AM_DEVWRITE("crtc", mc6845_device, register_w)
- AM_RANGE(0x9a00, 0x9a00) AM_READ_PORT("DSW2") AM_WRITE_LEGACY(audio_command_w)
+ AM_RANGE(0x9a00, 0x9a00) AM_READ_PORT("DSW2") AM_WRITE(audio_command_w)
// AM_RANGE(0x9e00, 0x9e00) AM_WRITENOP
AM_RANGE(0xb000, 0xffff) AM_ROM
ADDRESS_MAP_END
@@ -262,7 +263,7 @@ static ADDRESS_MAP_START( sound_cpu, AS_PROGRAM, 8, progolf_state )
AM_RANGE(0x5000, 0x5fff) AM_DEVWRITE_LEGACY("ay1", ay8910_address_w)
AM_RANGE(0x6000, 0x6fff) AM_DEVREADWRITE_LEGACY("ay2", ay8910_r, ay8910_data_w)
AM_RANGE(0x7000, 0x7fff) AM_DEVWRITE_LEGACY("ay2", ay8910_address_w)
- AM_RANGE(0x8000, 0x8fff) AM_READ_LEGACY(audio_command_r) AM_WRITENOP //volume control?
+ AM_RANGE(0x8000, 0x8fff) AM_READ(audio_command_r) AM_WRITENOP //volume control?
AM_RANGE(0xf000, 0xffff) AM_ROM
ADDRESS_MAP_END