diff options
author | Aaron Giles <aaron@aarongiles.com> | 2011-03-17 07:12:42 +0000 |
---|---|---|
committer | Aaron Giles <aaron@aarongiles.com> | 2011-03-17 07:12:42 +0000 |
commit | 36fdd337acd67af266ed1f6bb67f58d28668e1d1 (patch) | |
tree | cc779ee0cb3d76ee297348df11b5c8be80807b7d /src/mame/drivers/esh.c | |
parent | ef95984285044c8af96e9e1d279e2f99e58e984f (diff) |
Continued moving global/static variables to the driver_device classes.
[Atari Ace]
Diffstat (limited to 'src/mame/drivers/esh.c')
-rw-r--r-- | src/mame/drivers/esh.c | 49 |
1 files changed, 30 insertions, 19 deletions
diff --git a/src/mame/drivers/esh.c b/src/mame/drivers/esh.c index 1fa2fb004fe..930a7212b77 100644 --- a/src/mame/drivers/esh.c +++ b/src/mame/drivers/esh.c @@ -27,21 +27,28 @@ Todo: #include "machine/laserdsc.h" #include "machine/nvram.h" -/* From daphne */ -#define PCB_CLOCK (18432000) +class esh_state : public driver_device +{ +public: + esh_state(running_machine &machine, const driver_device_config_base &config) + : driver_device(machine, config) { } + + device_t *laserdisc; + UINT8 *tile_ram; + UINT8 *tile_control_ram; + UINT8 ld_video_visible; +}; -/* Misc variables */ -static device_t *laserdisc; -static UINT8 *tile_ram; -static UINT8 *tile_control_ram; +/* From daphne */ +#define PCB_CLOCK (18432000) -static UINT8 ld_video_visible; /* VIDEO GOODS */ static SCREEN_UPDATE( esh ) { + esh_state *state = screen->machine->driver_data<esh_state>(); int charx, chary; /* clear */ @@ -54,13 +61,13 @@ static SCREEN_UPDATE( esh ) { int current_screen_character = (chary*32) + charx; - int palIndex = (tile_control_ram[current_screen_character] & 0x0f); - int tileOffs = (tile_control_ram[current_screen_character] & 0x10) >> 4; - //int blinkLine = (tile_control_ram[current_screen_character] & 0x40) >> 6; - //int blinkChar = (tile_control_ram[current_screen_character] & 0x80) >> 7; + int palIndex = (state->tile_control_ram[current_screen_character] & 0x0f); + int tileOffs = (state->tile_control_ram[current_screen_character] & 0x10) >> 4; + //int blinkLine = (state->tile_control_ram[current_screen_character] & 0x40) >> 6; + //int blinkChar = (state->tile_control_ram[current_screen_character] & 0x80) >> 7; drawgfx_transpen(bitmap, cliprect, screen->machine->gfx[0], - tile_ram[current_screen_character] + (0x100 * tileOffs), + state->tile_ram[current_screen_character] + (0x100 * tileOffs), palIndex, 0, 0, charx*8, chary*8, 0); } @@ -75,23 +82,26 @@ static SCREEN_UPDATE( esh ) /* MEMORY HANDLERS */ static READ8_HANDLER(ldp_read) { - return laserdisc_data_r(laserdisc); + esh_state *state = space->machine->driver_data<esh_state>(); + return laserdisc_data_r(state->laserdisc); } static WRITE8_HANDLER(ldp_write) { - laserdisc_data_w(laserdisc,data); + esh_state *state = space->machine->driver_data<esh_state>(); + laserdisc_data_w(state->laserdisc,data); } static WRITE8_HANDLER(misc_write) { + esh_state *state = space->machine->driver_data<esh_state>(); /* Bit 0 unknown */ if (data & 0x02) logerror("BEEP!\n"); /* Bit 2 unknown */ - ld_video_visible = !((data & 0x08) >> 3); + state->ld_video_visible = !((data & 0x08) >> 3); /* Bits 4-7 unknown */ /* They cycle through a repeating pattern though */ @@ -144,8 +154,8 @@ static WRITE8_HANDLER(nmi_line_w) static ADDRESS_MAP_START( z80_0_mem, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000,0x3fff) AM_ROM AM_RANGE(0xe000,0xe7ff) AM_RAM AM_SHARE("nvram") - AM_RANGE(0xf000,0xf3ff) AM_RAM AM_BASE(&tile_ram) - AM_RANGE(0xf400,0xf7ff) AM_RAM AM_BASE(&tile_control_ram) + AM_RANGE(0xf000,0xf3ff) AM_RAM AM_BASE_MEMBER(esh_state, tile_ram) + AM_RANGE(0xf400,0xf7ff) AM_RAM AM_BASE_MEMBER(esh_state, tile_control_ram) ADDRESS_MAP_END @@ -273,12 +283,13 @@ static INTERRUPT_GEN( vblank_callback_esh ) static MACHINE_START( esh ) { - laserdisc = machine->device("laserdisc"); + esh_state *state = machine->driver_data<esh_state>(); + state->laserdisc = machine->device("laserdisc"); } /* DRIVER */ -static MACHINE_CONFIG_START( esh, driver_device ) +static MACHINE_CONFIG_START( esh, esh_state ) /* main cpu */ MCFG_CPU_ADD("maincpu", Z80, PCB_CLOCK/6) /* The denominator is a Daphne guess based on PacMan's hardware */ |