Added new macros AM_DEVREAD, AM_DEVWRITE, and AM_DEVREADWRITE,

which specify device read/write handlers in address maps, along
with the type/tag of the device they reference.

Converted MC6845 read/write handlers to READ/WRITE8_DEVICE_HANDLERs.
Updated all MC6845-using drivers to use the new macros and call
the updated functions. Removed the many little helper functions
that used to do this work.

Added validity checks to ensure that the devices referenced
actually exist.
This commit is contained in:
Aaron Giles 2008-03-05 15:12:58 +00:00
parent 856c0a06cf
commit 31bb5d3f3c
29 changed files with 175 additions and 401 deletions

View File

@ -1510,13 +1510,23 @@ static void populate_memory(void)
if (map->read.handler != NULL)
{
void *object = Machine;
if (map->read_devtype != NULL) object = (void *)device_list_find_by_tag(Machine->config->devicelist, map->read_devtype, map->read_devtag);
if (map->read_devtype != NULL)
{
object = (void *)device_list_find_by_tag(Machine->config->devicelist, map->read_devtype, map->read_devtag);
if (object == NULL)
fatalerror("Unidentified object in memory map: type=%s tag=%s\n", devtype_name(map->read_devtype), map->read_devtag);
}
install_mem_handler_private(space, 0, space->dbits, ismatchmask, map->start, map->end, map->mask, map->mirror, map->read.handler, isfixed, object, map->read_name);
}
if (map->write.handler != NULL)
{
void *object = Machine;
if (map->write_devtype != NULL) object = (void *)device_list_find_by_tag(Machine->config->devicelist, map->write_devtype, map->write_devtag);
if (map->write_devtype != NULL)
{
object = (void *)device_list_find_by_tag(Machine->config->devicelist, map->write_devtype, map->write_devtag);
if (object == NULL)
fatalerror("Unidentified object in memory map: type=%s tag=%s\n", devtype_name(map->write_devtype), map->write_devtag);
}
install_mem_handler_private(space, 1, space->dbits, ismatchmask, map->start, map->end, map->mask, map->mirror, map->write.handler, isfixed, object, map->write_name);
}
}

View File

@ -619,15 +619,19 @@ address_map *construct_map_##_name(address_map *map) \
address_map *construct_map_##_name(address_map *map) \
{ \
extern read##_bits##_machine_func port_tag_to_handler##_bits(const char *); \
typedef read##_bits##_machine_func _rh_t; \
typedef write##_bits##_machine_func _wh_t; \
_rh_t read; \
_wh_t write; \
_rh_t (*port_tag_to_handler)(const char *) = port_tag_to_handler##_bits; \
typedef read##_bits##_machine_func _rmf_t; \
typedef write##_bits##_machine_func _wmf_t; \
typedef read##_bits##_device_func _rdf_t; \
typedef write##_bits##_device_func _wdf_t; \
_rmf_t readm; \
_wmf_t writem; \
_rdf_t readd; \
_wdf_t writed; \
_rmf_t (*port_tag_to_handler)(const char *) = port_tag_to_handler##_bits; \
UINT##_bits **base; \
\
(void)read; (void)write; (void)base; \
(void)port_tag_to_handler; \
(void)readm; (void)writem; (void)readd; (void)writed; (void)base; \
(void)port_tag_to_handler; \
map->flags = AM_FLAGS_EXTENDED; \
map->start = AMEF_DBITS(_bits) | AMEF_SPACE(_space); \
@ -663,16 +667,28 @@ address_map *construct_map_##_name(address_map *map) \
map->mirror = (_mirror); \
#define AM_READ(_handler) \
map->read.handler = (genf *)(read = _handler); \
map->read.handler = (genf *)(readm = _handler); \
map->read_name = #_handler; \
#define AM_READ_PORT(_tag) \
AM_READ((*port_tag_to_handler)(_tag))
#define AM_READ_PORT(_tag) \
AM_READ((*port_tag_to_handler)(_tag)) \
#define AM_DEVREAD(_type, _tag, _handler) \
map->read.handler = (genf *)(readd = _handler); \
map->read_name = #_handler; \
map->read_devtype = _type; \
map->read_devtag = _tag; \
#define AM_WRITE(_handler) \
map->write.handler = (genf *)(write = _handler); \
map->write.handler = (genf *)(writem = _handler); \
map->write_name = #_handler; \
#define AM_DEVWRITE(_type, _tag, _handler) \
map->write.handler = (genf *)(writed = _handler); \
map->write_name = #_handler; \
map->write_devtype = _type; \
map->write_devtag = _tag; \
#define AM_REGION(_region, _offs) \
map->region = (_region); \
map->region_offs = (_offs); \
@ -696,15 +712,16 @@ address_map *construct_map_##_name(address_map *map) \
/* ----- common shortcuts ----- */
#define AM_READWRITE(_read,_write) AM_READ(_read) AM_WRITE(_write)
#define AM_ROM AM_READ((_rh_t)STATIC_ROM)
#define AM_RAM AM_READWRITE((_rh_t)STATIC_RAM, (_wh_t)STATIC_RAM)
#define AM_WRITEONLY AM_WRITE((_wh_t)STATIC_RAM)
#define AM_UNMAP AM_READWRITE((_rh_t)STATIC_UNMAP, (_wh_t)STATIC_UNMAP)
#define AM_ROMBANK(_bank) AM_READ((_rh_t)(STATIC_BANK1 + (_bank) - 1))
#define AM_RAMBANK(_bank) AM_READWRITE((_rh_t)(STATIC_BANK1 + (_bank) - 1), (_wh_t)(STATIC_BANK1 + (_bank) - 1))
#define AM_NOP AM_READWRITE((_rh_t)STATIC_NOP, (_wh_t)STATIC_NOP)
#define AM_READNOP AM_READ((_rh_t)STATIC_NOP)
#define AM_WRITENOP AM_WRITE((_wh_t)STATIC_NOP)
#define AM_DEVREADWRITE(_type,_tag,_read,_write) AM_DEVREAD(_type,_tag,_read) AM_DEVWRITE(_type,_tag,_write)
#define AM_ROM AM_READ((_rmf_t)STATIC_ROM)
#define AM_RAM AM_READWRITE((_rmf_t)STATIC_RAM, (_wmf_t)STATIC_RAM)
#define AM_WRITEONLY AM_WRITE((_wmf_t)STATIC_RAM)
#define AM_UNMAP AM_READWRITE((_rmf_t)STATIC_UNMAP, (_wmf_t)STATIC_UNMAP)
#define AM_ROMBANK(_bank) AM_READ((_rmf_t)(STATIC_BANK1 + (_bank) - 1))
#define AM_RAMBANK(_bank) AM_READWRITE((_rmf_t)(STATIC_BANK1 + (_bank) - 1), (_wmf_t)(STATIC_BANK1 + (_bank) - 1))
#define AM_NOP AM_READWRITE((_rmf_t)STATIC_NOP, (_wmf_t)STATIC_NOP)
#define AM_READNOP AM_READ((_rmf_t)STATIC_NOP)
#define AM_WRITENOP AM_WRITE((_wmf_t)STATIC_NOP)

View File

@ -687,51 +687,61 @@ static int validate_cpu(int drivnum, const machine_config *config, const UINT32
UINT32 start = SPACE_SHIFT(map->start);
UINT32 end = ismatchmask ? SPACE_SHIFT(map->end) : SPACE_SHIFT_END(map->end);
/* look for inverted start/end pairs */
if (end < start)
{
/* look for inverted start/end pairs */
if (end < start)
mame_printf_error("%s: %s wrong %s memory read handler start = %08x > end = %08x\n", driver->source_file, driver->name, spacename[spacenum], map->start, map->end);
error = TRUE;
}
/* look for misaligned entries */
if ((start & (alignunit-1)) != 0 || (end & (alignunit-1)) != (alignunit-1))
{
mame_printf_error("%s: %s wrong %s memory read handler start = %08x, end = %08x ALIGN = %d\n", driver->source_file, driver->name, spacename[spacenum], map->start, map->end, alignunit);
error = TRUE;
}
/* if this is a program space, auto-assign implicit ROM entries */
if ((FPTR)map->read.handler == STATIC_ROM && !map->region)
{
map->region = REGION_CPU1 + cpunum;
map->region_offs = map->start;
}
/* if this entry references a memory region, validate it */
if (map->region && map->share == 0)
{
offs_t length = region_length[map->region];
if (length == 0)
{
mame_printf_error("%s: %s wrong %s memory read handler start = %08x > end = %08x\n", driver->source_file, driver->name, spacename[spacenum], map->start, map->end);
mame_printf_error("%s: %s CPU %d space %d memory map entry %X-%X references non-existant region %d\n", driver->source_file, driver->name, cpunum, spacenum, map->start, map->end, map->region);
error = TRUE;
}
/* look for misaligned entries */
if ((start & (alignunit-1)) != 0 || (end & (alignunit-1)) != (alignunit-1))
else if (map->region_offs + (end - start + 1) > length)
{
mame_printf_error("%s: %s wrong %s memory read handler start = %08x, end = %08x ALIGN = %d\n", driver->source_file, driver->name, spacename[spacenum], map->start, map->end, alignunit);
mame_printf_error("%s: %s CPU %d space %d memory map entry %X-%X extends beyond region %d size (%X)\n", driver->source_file, driver->name, cpunum, spacenum, map->start, map->end, map->region, length);
error = TRUE;
}
}
/* if this is a program space, auto-assign implicit ROM entries */
if ((FPTR)map->read.handler == STATIC_ROM && !map->region)
{
map->region = REGION_CPU1 + cpunum;
map->region_offs = map->start;
}
/* if this entry references a memory region, validate it */
if (map->region && map->share == 0)
{
offs_t length = region_length[map->region];
if (length == 0)
{
mame_printf_error("%s: %s CPU %d space %d memory map entry %X-%X references non-existant region %d\n", driver->source_file, driver->name, cpunum, spacenum, map->start, map->end, map->region);
error = TRUE;
}
else if (map->region_offs + (end - start + 1) > length)
{
mame_printf_error("%s: %s CPU %d space %d memory map entry %X-%X extends beyond region %d size (%X)\n", driver->source_file, driver->name, cpunum, spacenum, map->start, map->end, map->region, length);
error = TRUE;
}
}
/* If this is a match/mask, make sure the match bits are present in the mask */
if (ismatchmask && (start & end) != start)
{
mame_printf_error("%s: %s CPU %d space %d memory map entry match %X contains bits not in mask %X for region %d\n", driver->source_file, driver->name, cpunum, spacenum, map->start, map->end, map->region);
error = TRUE;
}
/* If this is a match/mask, make sure the match bits are present in the mask */
if (ismatchmask && (start & end) != start)
{
mame_printf_error("%s: %s CPU %d space %d memory map entry match %X contains bits not in mask %X for region %d\n", driver->source_file, driver->name, cpunum, spacenum, map->start, map->end, map->region);
error = TRUE;
}
/* make sure all devices exist */
if (map->read_devtype != NULL && device_list_find_by_tag(config->devicelist, map->read_devtype, map->read_devtag) == NULL)
{
mame_printf_error("%s: %s CPU %d space %d memory map entry references nonexistant device type %s, tag %s\n", driver->source_file, driver->name, cpunum, spacenum, devtype_name(map->read_devtype), map->read_devtag);
error = TRUE;
}
if (map->write_devtype != NULL && device_list_find_by_tag(config->devicelist, map->write_devtype, map->write_devtag) == NULL)
{
mame_printf_error("%s: %s CPU %d space %d memory map entry references nonexistant device type %s, tag %s\n", driver->source_file, driver->name, cpunum, spacenum, devtype_name(map->write_devtype), map->write_devtag);
error = TRUE;
}
}
else

View File

@ -113,16 +113,19 @@ static void mc6845_state_save_postload(void *param)
}
void mc6845_address_w(mc6845_t *mc6845, UINT8 data)
WRITE8_DEVICE_HANDLER( mc6845_address_w )
{
mc6845_t *mc6845 = device->token;
assert(mc6845 != NULL);
mc6845->register_address_latch = data & 0x1f;
}
UINT8 mc6845_status_r(mc6845_t *mc6845)
READ8_DEVICE_HANDLER( mc6845_status_r )
{
mc6845_t *mc6845 = device->token;
UINT8 ret = 0;
assert(mc6845 != NULL);
@ -140,8 +143,9 @@ UINT8 mc6845_status_r(mc6845_t *mc6845)
}
UINT8 mc6845_register_r(mc6845_t *mc6845)
READ8_DEVICE_HANDLER( mc6845_register_r )
{
mc6845_t *mc6845 = device->token;
UINT8 ret = 0;
assert(mc6845 != NULL);
@ -163,8 +167,10 @@ UINT8 mc6845_register_r(mc6845_t *mc6845)
}
void mc6845_register_w(mc6845_t *mc6845, UINT8 data)
WRITE8_DEVICE_HANDLER( mc6845_register_w )
{
mc6845_t *mc6845 = device->token;
assert(mc6845 != NULL);
if (LOG) logerror("M6845 PC %04x: reg 0x%02x = 0x%02x\n", activecpu_get_pc(), mc6845->register_address_latch, data);

View File

@ -83,16 +83,16 @@ DEVICE_GET_INFO( r6545_1 );
DEVICE_GET_INFO( c6545_1 );
/* select one of the registers for reading or writing */
void mc6845_address_w(mc6845_t *mc6845, UINT8 data);
WRITE8_DEVICE_HANDLER( mc6845_address_w );
/* read from the status register */
UINT8 mc6845_status_r(mc6845_t *mc6845);
READ8_DEVICE_HANDLER( mc6845_status_r );
/* read from the currently selected register */
UINT8 mc6845_register_r(mc6845_t *mc6845);
READ8_DEVICE_HANDLER( mc6845_register_r );
/* write to the currently selected register */
void mc6845_register_w(mc6845_t *mc6845, UINT8 data);
WRITE8_DEVICE_HANDLER( mc6845_register_w );
/* return the current value on the MA0-MA13 pins */
UINT16 mc6845_get_ma(mc6845_t *mc6845);

View File

@ -491,9 +491,6 @@
/* from video */
WRITE8_HANDLER( calomega_videoram_w );
WRITE8_HANDLER( calomega_colorram_w );
WRITE8_HANDLER( calomega_mc6845_address_w );
READ8_HANDLER( calomega_mc6845_register_r );
WRITE8_HANDLER( calomega_mc6845_register_w );
PALETTE_INIT( calomega );
VIDEO_START( calomega );
VIDEO_UPDATE( calomega );
@ -507,8 +504,8 @@ static ADDRESS_MAP_START( sys903_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x07ff) AM_RAM AM_BASE(&generic_nvram) AM_SIZE(&generic_nvram_size)
AM_RANGE(0x0840, 0x0840) AM_WRITE(AY8910_control_port_0_w)
AM_RANGE(0x0841, 0x0841) AM_WRITE(AY8910_write_port_0_w)
AM_RANGE(0x0880, 0x0880) AM_WRITE(calomega_mc6845_address_w)
AM_RANGE(0x0881, 0x0881) AM_READWRITE(calomega_mc6845_register_r, calomega_mc6845_register_w)
AM_RANGE(0x0880, 0x0880) AM_DEVWRITE(MC6845, "crtc", mc6845_address_w)
AM_RANGE(0x0881, 0x0881) AM_DEVREADWRITE(MC6845, "crtc", mc6845_register_r, mc6845_register_w)
AM_RANGE(0x08c4, 0x08c7) AM_READWRITE(pia_0_r, pia_0_w)
AM_RANGE(0x08c8, 0x08cb) AM_READWRITE(pia_1_r, pia_1_w)
AM_RANGE(0x1000, 0x13ff) AM_RAM AM_WRITE(calomega_videoram_w) AM_BASE(&videoram)
@ -520,8 +517,8 @@ static ADDRESS_MAP_START( sys905_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x07ff) AM_RAM AM_BASE(&generic_nvram) AM_SIZE(&generic_nvram_size)
AM_RANGE(0x0880, 0x0880) AM_WRITE(AY8910_control_port_0_w)
AM_RANGE(0x0881, 0x0881) AM_WRITE(AY8910_write_port_0_w)
AM_RANGE(0x1080, 0x1080) AM_WRITE(calomega_mc6845_address_w)
AM_RANGE(0x1081, 0x1081) AM_READWRITE(calomega_mc6845_register_r, calomega_mc6845_register_w)
AM_RANGE(0x1080, 0x1080) AM_DEVWRITE(MC6845, "crtc", mc6845_address_w)
AM_RANGE(0x1081, 0x1081) AM_DEVREADWRITE(MC6845, "crtc", mc6845_register_r, mc6845_register_w)
AM_RANGE(0x10c4, 0x10c7) AM_READWRITE(pia_0_r, pia_0_w)
AM_RANGE(0x10c8, 0x10cb) AM_READWRITE(pia_1_r, pia_1_w)
AM_RANGE(0x2000, 0x23ff) AM_RAM AM_WRITE(calomega_videoram_w) AM_BASE(&videoram)

View File

@ -51,17 +51,6 @@ static mc6845_t *mc6845;
static WRITE8_HANDLER( carrera_mc6845_address_w )
{
mc6845_address_w(mc6845, data);
}
static WRITE8_HANDLER( carrera_mc6845_register_w )
{
mc6845_register_w(mc6845, data);
}
static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x4fff) AM_READ(MRA8_ROM)
AM_RANGE(0xe000, 0xe7ff) AM_READ(MRA8_RAM)
@ -71,8 +60,8 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x4fff) AM_WRITE(MWA8_ROM)
AM_RANGE(0xe000, 0xe7ff) AM_WRITE(MWA8_RAM)
AM_RANGE(0xe800, 0xe800) AM_WRITE(carrera_mc6845_address_w)
AM_RANGE(0xe801, 0xe801) AM_WRITE(carrera_mc6845_register_w)
AM_RANGE(0xe800, 0xe800) AM_DEVWRITE(MC6845, "crtc", mc6845_address_w)
AM_RANGE(0xe801, 0xe801) AM_DEVWRITE(MC6845, "crtc", mc6845_register_w)
AM_RANGE(0xf000, 0xffff) AM_WRITE(MWA8_RAM) AM_BASE(&carrera_tileram)
ADDRESS_MAP_END

View File

@ -116,16 +116,6 @@ static WRITE8_HANDLER( question_w )
question_adr[offset] = data;
}
static WRITE8_HANDLER( coinmstr_mc6845_address_w )
{
mc6845_address_w(mc6845, data);
}
static WRITE8_HANDLER( coinmstr_mc6845_register_w )
{
mc6845_register_w(mc6845, data);
}
// Common memory map
static ADDRESS_MAP_START( coinmstr_map, ADDRESS_SPACE_PROGRAM, 8 )
@ -149,8 +139,8 @@ static ADDRESS_MAP_START( quizmstr_io_map, ADDRESS_SPACE_IO, 8 )
AM_RANGE(0x50, 0x53) AM_READNOP
AM_RANGE(0x50, 0x53) AM_WRITENOP
AM_RANGE(0x58, 0x5b) AM_READWRITE(pia_2_r, pia_2_w)
AM_RANGE(0x70, 0x70) AM_WRITE(coinmstr_mc6845_address_w)
AM_RANGE(0x71, 0x71) AM_WRITE(coinmstr_mc6845_register_w)
AM_RANGE(0x70, 0x70) AM_DEVWRITE(MC6845, "crtc", mc6845_address_w)
AM_RANGE(0x71, 0x71) AM_DEVWRITE(MC6845, "crtc", mc6845_register_w)
AM_RANGE(0xc0, 0xc3) AM_READNOP
AM_RANGE(0xc0, 0xc3) AM_WRITENOP
ADDRESS_MAP_END
@ -159,8 +149,8 @@ static ADDRESS_MAP_START( trailblz_io_map, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
AM_RANGE(0x00, 0x00) AM_READ(question_r)
AM_RANGE(0x00, 0x03) AM_WRITE(question_w)
AM_RANGE(0x40, 0x40) AM_WRITE(coinmstr_mc6845_address_w)
AM_RANGE(0x41, 0x41) AM_WRITE(coinmstr_mc6845_register_w)
AM_RANGE(0x40, 0x40) AM_DEVWRITE(MC6845, "crtc", mc6845_address_w)
AM_RANGE(0x41, 0x41) AM_DEVWRITE(MC6845, "crtc", mc6845_register_w)
AM_RANGE(0x48, 0x48) AM_WRITE(AY8910_control_port_0_w)
AM_RANGE(0x49, 0x49) AM_READWRITE(AY8910_read_port_0_r, AY8910_write_port_0_w)
AM_RANGE(0x50, 0x53) AM_READWRITE(pia_0_r, pia_0_w) //?
@ -176,8 +166,8 @@ static ADDRESS_MAP_START( supnudg2_io_map, ADDRESS_SPACE_IO, 8 )
AM_RANGE(0x40, 0x41) AM_READNOP
AM_RANGE(0x40, 0x43) AM_WRITENOP
AM_RANGE(0x43, 0x43) AM_READNOP
AM_RANGE(0x48, 0x48) AM_WRITE(coinmstr_mc6845_address_w)
AM_RANGE(0x49, 0x49) AM_WRITE(coinmstr_mc6845_register_w)
AM_RANGE(0x48, 0x48) AM_DEVWRITE(MC6845, "crtc", mc6845_address_w)
AM_RANGE(0x49, 0x49) AM_DEVWRITE(MC6845, "crtc", mc6845_register_w)
AM_RANGE(0x50, 0x51) AM_READNOP
AM_RANGE(0x50, 0x53) AM_WRITENOP
AM_RANGE(0x53, 0x53) AM_READNOP

View File

@ -54,16 +54,6 @@ x-x- ---- ---- ---- extra tile number.
---- ---- xxxx xxxx tile number
*/
static WRITE8_HANDLER( couple_mc6845_address_w )
{
mc6845_address_w(mc6845, data);
}
static WRITE8_HANDLER( couple_mc6845_register_w )
{
mc6845_register_w(mc6845, data);
}
static TILE_GET_INFO( get_tile_info )
{
UINT16 vram_data = (((vram_hi[tile_index] & 0xff) << 8) | (vram_lo[tile_index] & 0xff));
@ -158,8 +148,8 @@ static ADDRESS_MAP_START( merit_mem, ADDRESS_SPACE_PROGRAM, 8 )
// AM_RANGE( 0xc000, 0xc00f ) AM_READ(dummy_inputs_r)
// AM_RANGE( 0xc008, 0xc008 ) AM_READ(input_port_0_r)
// AM_RANGE( 0xc00a, 0xc00a ) AM_READ(input_port_1_r)
AM_RANGE( 0xe000, 0xe000 ) AM_WRITE(couple_mc6845_address_w)
AM_RANGE( 0xe001, 0xe001 ) AM_WRITE(couple_mc6845_register_w)
AM_RANGE( 0xe000, 0xe000 ) AM_DEVWRITE(MC6845, "crtc", mc6845_address_w)
AM_RANGE( 0xe001, 0xe001 ) AM_DEVWRITE(MC6845, "crtc", mc6845_register_w)
AM_RANGE( 0xe800, 0xefff ) AM_READWRITE(MRA8_RAM, couple_vram_hi_w) AM_BASE(&vram_hi)
AM_RANGE( 0xf000, 0xf7ff ) AM_READWRITE(MRA8_RAM, couple_vram_lo_w) AM_BASE(&vram_lo)
AM_RANGE( 0xf800, 0xfbff ) AM_RAM /*extra VRAM?*/

View File

@ -840,9 +840,6 @@
/* from video */
WRITE8_HANDLER( funworld_videoram_w );
WRITE8_HANDLER( funworld_colorram_w );
WRITE8_HANDLER( funworld_mc6845_address_w );
READ8_HANDLER( funworld_mc6845_register_r );
WRITE8_HANDLER( funworld_mc6845_register_w );
PALETTE_INIT( funworld );
VIDEO_START( funworld );
VIDEO_START( magiccrd );
@ -885,8 +882,8 @@ static ADDRESS_MAP_START( funworld_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0a00, 0x0a03) AM_READWRITE(pia_1_r, pia_1_w)
AM_RANGE(0x0c00, 0x0c00) AM_READWRITE(AY8910_read_port_0_r, AY8910_control_port_0_w)
AM_RANGE(0x0c01, 0x0c01) AM_WRITE(AY8910_write_port_0_w)
AM_RANGE(0x0e00, 0x0e00) AM_WRITE(funworld_mc6845_address_w)
AM_RANGE(0x0e01, 0x0e01) AM_READWRITE(funworld_mc6845_register_r, funworld_mc6845_register_w)
AM_RANGE(0x0e00, 0x0e00) AM_DEVWRITE(MC6845, "crtc", mc6845_address_w)
AM_RANGE(0x0e01, 0x0e01) AM_DEVREADWRITE(MC6845, "crtc", mc6845_register_r, mc6845_register_w)
AM_RANGE(0x2000, 0x2fff) AM_RAM AM_WRITE(funworld_videoram_w) AM_BASE(&videoram)
AM_RANGE(0x3000, 0x3fff) AM_RAM AM_WRITE(funworld_colorram_w) AM_BASE(&colorram)
AM_RANGE(0x4000, 0x4000) AM_READNOP
@ -900,8 +897,8 @@ static ADDRESS_MAP_START( magiccrd_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0a00, 0x0a03) AM_READWRITE(pia_1_r, pia_1_w)
AM_RANGE(0x0c00, 0x0c00) AM_READWRITE(AY8910_read_port_0_r, AY8910_control_port_0_w)
AM_RANGE(0x0c01, 0x0c01) AM_WRITE(AY8910_write_port_0_w)
AM_RANGE(0x0e00, 0x0e00) AM_WRITE(funworld_mc6845_address_w)
AM_RANGE(0x0e01, 0x0e01) AM_READWRITE(funworld_mc6845_register_r, funworld_mc6845_register_w)
AM_RANGE(0x0e00, 0x0e00) AM_DEVWRITE(MC6845, "crtc", mc6845_address_w)
AM_RANGE(0x0e01, 0x0e01) AM_DEVREADWRITE(MC6845, "crtc", mc6845_register_r, mc6845_register_w)
AM_RANGE(0x3600, 0x36ff) AM_RAM // some games use $3603-05 range for protection.
AM_RANGE(0x4000, 0x4fff) AM_RAM AM_WRITE(funworld_videoram_w) AM_BASE(&videoram)
AM_RANGE(0x5000, 0x5fff) AM_RAM AM_WRITE(funworld_colorram_w) AM_BASE(&colorram)
@ -914,8 +911,8 @@ static ADDRESS_MAP_START( cuoreuno_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0a00, 0x0a03) AM_READWRITE(pia_1_r, pia_1_w)
AM_RANGE(0x0c00, 0x0c00) AM_READWRITE(AY8910_read_port_0_r, AY8910_control_port_0_w)
AM_RANGE(0x0c01, 0x0c01) AM_WRITE(AY8910_write_port_0_w)
AM_RANGE(0x0e00, 0x0e00) AM_WRITE(funworld_mc6845_address_w)
AM_RANGE(0x0e01, 0x0e01) AM_READWRITE(funworld_mc6845_register_r, funworld_mc6845_register_w)
AM_RANGE(0x0e00, 0x0e00) AM_DEVWRITE(MC6845, "crtc", mc6845_address_w)
AM_RANGE(0x0e01, 0x0e01) AM_DEVREADWRITE(MC6845, "crtc", mc6845_register_r, mc6845_register_w)
AM_RANGE(0x2000, 0x2000) AM_READNOP // some unknown reads
AM_RANGE(0x3e00, 0x3fff) AM_RAM // some games use $3e03-05 range for protection.
AM_RANGE(0x6000, 0x6fff) AM_RAM AM_WRITE(funworld_videoram_w) AM_BASE(&videoram)
@ -929,8 +926,8 @@ static ADDRESS_MAP_START( royalmcu_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x2a00, 0x2a03) AM_READWRITE(pia_1_r, pia_1_w)
AM_RANGE(0x2c00, 0x2c00) AM_READWRITE(AY8910_read_port_0_r, AY8910_control_port_0_w)
AM_RANGE(0x2c01, 0x2c01) AM_WRITE(AY8910_write_port_0_w)
AM_RANGE(0x2e00, 0x2e00) AM_WRITE(funworld_mc6845_address_w)
AM_RANGE(0x2e01, 0x2e01) AM_READWRITE(funworld_mc6845_register_r, funworld_mc6845_register_w)
AM_RANGE(0x2e00, 0x2e00) AM_DEVWRITE(MC6845, "crtc", mc6845_address_w)
AM_RANGE(0x2e01, 0x2e01) AM_DEVREADWRITE(MC6845, "crtc", mc6845_register_r, mc6845_register_w)
AM_RANGE(0x4000, 0x4fff) AM_RAM AM_WRITE(funworld_videoram_w) AM_BASE(&videoram)
AM_RANGE(0x5000, 0x5fff) AM_RAM AM_WRITE(funworld_colorram_w) AM_BASE(&colorram)
AM_RANGE(0x6000, 0xffff) AM_ROM

View File

@ -9,6 +9,7 @@
#include "driver.h"
#include "deprecat.h"
#include "sound/ay8910.h"
#include "video/mc6845.h"
#include "madalien.h"
@ -86,8 +87,8 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x6400, 0x67ff) AM_RAM
AM_RANGE(0x6800, 0x7fff) AM_RAM AM_BASE(&madalien_charram)
AM_RANGE(0x8000, 0x8000) AM_MIRROR(0x0ff0) AM_WRITE(madalien_mc6845_address_w)
AM_RANGE(0x8001, 0x8001) AM_MIRROR(0x0ff0) AM_READWRITE(madalien_mc6845_register_r, madalien_mc6845_register_w)
AM_RANGE(0x8000, 0x8000) AM_MIRROR(0x0ff0) AM_DEVWRITE(MC6845, "crtc", mc6845_address_w)
AM_RANGE(0x8001, 0x8001) AM_MIRROR(0x0ff0) AM_DEVREADWRITE(MC6845, "crtc", mc6845_register_r, mc6845_register_w)
AM_RANGE(0x8004, 0x8004) AM_MIRROR(0x0ff0) AM_WRITE(MWA8_RAM) AM_BASE(&madalien_video_control)
AM_RANGE(0x8005, 0x8005) AM_MIRROR(0x0ff0) AM_WRITE(madalien_output_w)
AM_RANGE(0x8006, 0x8006) AM_MIRROR(0x0ff0) AM_READWRITE(soundlatch2_r, madalien_sound_command_w)

View File

@ -336,21 +336,6 @@ static WRITE8_HANDLER( magicfly_colorram_w )
tilemap_mark_tile_dirty(bg_tilemap, offset);
}
static WRITE8_HANDLER( magicfly_mc6845_address_w )
{
mc6845_address_w(mc6845, data);
}
static READ8_HANDLER( magicfly_mc6845_register_r )
{
return mc6845_register_r(mc6845);
}
static WRITE8_HANDLER( magicfly_mc6845_register_w )
{
mc6845_register_w(mc6845, data);
}
static TILE_GET_INFO( get_magicfly_tile_info )
{
/* - bits -
@ -475,8 +460,8 @@ static WRITE8_HANDLER( mux_w )
static ADDRESS_MAP_START( magicfly_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x07ff) AM_RAM AM_BASE(&generic_nvram) AM_SIZE(&generic_nvram_size) /* MK48Z02B NVRAM */
AM_RANGE(0x0800, 0x0800) AM_WRITE(magicfly_mc6845_address_w)
AM_RANGE(0x0801, 0x0801) AM_READWRITE(magicfly_mc6845_register_r, magicfly_mc6845_register_w)
AM_RANGE(0x0800, 0x0800) AM_DEVWRITE(MC6845, "crtc", mc6845_address_w)
AM_RANGE(0x0801, 0x0801) AM_DEVREADWRITE(MC6845, "crtc", mc6845_register_r, mc6845_register_w)
AM_RANGE(0x1000, 0x13ff) AM_RAM AM_WRITE(magicfly_videoram_w) AM_BASE(&videoram) /* HM6116LP #1 (2K x 8) RAM (only 1st half used) */
AM_RANGE(0x1800, 0x1bff) AM_RAM AM_WRITE(magicfly_colorram_w) AM_BASE(&colorram) /* HM6116LP #2 (2K x 8) RAM (only 1st half used) */
AM_RANGE(0x2800, 0x2800) AM_READ(mux_port_r) /* multiplexed input port */

View File

@ -146,21 +146,6 @@ static WRITE8_HANDLER( miniboy7_colorram_w )
tilemap_mark_tile_dirty(bg_tilemap, offset);
}
static WRITE8_HANDLER( miniboy7_mc6845_address_w )
{
mc6845_address_w(mc6845, data);
}
static READ8_HANDLER( miniboy7_mc6845_register_r )
{
return mc6845_register_r(mc6845);
}
static WRITE8_HANDLER( miniboy7_mc6845_register_w )
{
mc6845_register_w(mc6845, data);
}
static TILE_GET_INFO( get_bg_tile_info )
{
/* - bits -
@ -203,8 +188,8 @@ static ADDRESS_MAP_START( miniboy7_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x1000, 0x17ff) AM_RAM AM_WRITE(miniboy7_colorram_w) AM_BASE(&colorram)
AM_RANGE(0x1800, 0x25ff) AM_RAM /* looks like videoram */
AM_RANGE(0x2600, 0x27ff) AM_RAM
AM_RANGE(0x2800, 0x2800) AM_WRITE(miniboy7_mc6845_address_w)
AM_RANGE(0x2801, 0x2801) AM_READWRITE(miniboy7_mc6845_register_r, miniboy7_mc6845_register_w)
AM_RANGE(0x2800, 0x2800) AM_DEVWRITE(MC6845, "crtc", mc6845_address_w)
AM_RANGE(0x2801, 0x2801) AM_DEVREADWRITE(MC6845, "crtc", mc6845_register_r, mc6845_register_w)
// AM_RANGE(0x3000, 0x3001) ????? R/W
// AM_RANGE(0x3080, 0x3083) AM_READWRITE(pia_0_r, pia_0_w)
// AM_RANGE(0x3800, 0x3800) ????? R

View File

@ -1495,21 +1495,6 @@ GFXDECODE_END
static UINT8 *dealem_videoram;
static WRITE8_HANDLER( dealem_mc6845_address_w )
{
mc6845_address_w(mc6845, data);
}
static READ8_HANDLER( dealem_mc6845_register_r )
{
return mc6845_register_r(mc6845);
}
static WRITE8_HANDLER( dealem_mc6845_register_w )
{
mc6845_register_w(mc6845, data);
}
/***************************************************************************
Convert the color PROMs into a more useable format.
@ -1585,8 +1570,8 @@ static ADDRESS_MAP_START( dealem_memmap, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x07ff) AM_RAM AM_BASE(&generic_nvram) AM_SIZE(&generic_nvram_size)
AM_RANGE(0x0800, 0x0800) AM_WRITE(dealem_mc6845_address_w)
AM_RANGE(0x0801, 0x0801) AM_READWRITE(dealem_mc6845_register_r, dealem_mc6845_register_w)
AM_RANGE(0x0800, 0x0800) AM_DEVWRITE(MC6845, "crtc", mc6845_address_w)
AM_RANGE(0x0801, 0x0801) AM_DEVREADWRITE(MC6845, "crtc", mc6845_register_r, mc6845_register_w)
// AM_RANGE(0x0850, 0x0850) AM_WRITE(bankswitch_w) // write bank (rom page select)

View File

@ -101,21 +101,10 @@ static mc6845_t *mc6845;
static UINT8 *murogem_videoram;
static WRITE8_HANDLER( murogem_mc6845_address_w )
{
mc6845_address_w(mc6845, data);
}
static WRITE8_HANDLER( murogem_mc6845_register_w )
{
mc6845_register_w(mc6845, data);
}
static ADDRESS_MAP_START( murogem_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x007f) AM_RAM
AM_RANGE(0x4000, 0x4000) AM_WRITE(murogem_mc6845_address_w)
AM_RANGE(0x4001, 0x4001) AM_WRITE(murogem_mc6845_register_w)
AM_RANGE(0x4000, 0x4000) AM_DEVWRITE(MC6845, "crtc", mc6845_address_w)
AM_RANGE(0x4001, 0x4001) AM_DEVWRITE(MC6845, "crtc", mc6845_register_w)
AM_RANGE(0x5000, 0x5000) AM_READ(input_port_0_r)
AM_RANGE(0x5800, 0x5800) AM_READ(input_port_1_r)
AM_RANGE(0x7000, 0x7000) AM_WRITE(MWA8_NOP) // sound? payout?

View File

@ -270,18 +270,6 @@ static MACHINE_RESET( nyny )
#define NUM_PENS (8)
static WRITE8_HANDLER( nyny_mc6845_address_w )
{
mc6845_address_w(mc6845, data);
}
static WRITE8_HANDLER( nyny_mc6845_register_w )
{
mc6845_register_w(mc6845, data);
}
static WRITE8_HANDLER( flipscreen_w )
{
flipscreen = data ? 0 : 1;
@ -541,8 +529,8 @@ static ADDRESS_MAP_START( nyny_main_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x6000, 0x7fff) AM_RAM AM_BASE(&nyny_colorram_2)
AM_RANGE(0x8000, 0x9fff) AM_RAM
AM_RANGE(0xa000, 0xa0ff) AM_RAM AM_BASE(&generic_nvram) AM_SIZE(&generic_nvram_size) /* SRAM (coin counter, shown when holding F2) */
AM_RANGE(0xa100, 0xa100) AM_MIRROR(0x00fe) AM_WRITE(nyny_mc6845_address_w)
AM_RANGE(0xa101, 0xa101) AM_MIRROR(0x00fe) AM_WRITE(nyny_mc6845_register_w)
AM_RANGE(0xa100, 0xa100) AM_MIRROR(0x00fe) AM_DEVWRITE(MC6845, "crtc", mc6845_address_w)
AM_RANGE(0xa101, 0xa101) AM_MIRROR(0x00fe) AM_DEVWRITE(MC6845, "crtc", mc6845_register_w)
AM_RANGE(0xa200, 0xa20f) AM_MIRROR(0x00f0) AM_READWRITE(nyny_pia_1_2_r, nyny_pia_1_2_w)
AM_RANGE(0xa300, 0xa300) AM_MIRROR(0x00ff) AM_READWRITE(soundlatch3_r, audio_1_command_w)
AM_RANGE(0xa400, 0xa7ff) AM_NOP

View File

@ -383,21 +383,6 @@
static mc6845_t *mc6845;
static tilemap *bg_tilemap;
static WRITE8_HANDLER( pmpoker_mc6845_address_w )
{
mc6845_address_w(mc6845, data);
}
static READ8_HANDLER( pmpoker_mc6845_register_r )
{
return mc6845_register_r(mc6845);
}
static WRITE8_HANDLER( pmpoker_mc6845_register_w )
{
mc6845_register_w(mc6845, data);
}
static WRITE8_HANDLER( pmpoker_videoram_w )
{
videoram[offset] = data;
@ -484,8 +469,8 @@ static PALETTE_INIT( pottnpkr )
static ADDRESS_MAP_START( pmpoker_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x07ff) AM_RAM AM_BASE(&generic_nvram) AM_SIZE(&generic_nvram_size) /* battery backed RAM */
AM_RANGE(0x0800, 0x0800) AM_WRITE(pmpoker_mc6845_address_w)
AM_RANGE(0x0801, 0x0801) AM_READWRITE(pmpoker_mc6845_register_r, pmpoker_mc6845_register_w)
AM_RANGE(0x0800, 0x0800) AM_DEVWRITE(MC6845, "crtc", mc6845_address_w)
AM_RANGE(0x0801, 0x0801) AM_DEVREADWRITE(MC6845, "crtc", mc6845_register_r, mc6845_register_w)
AM_RANGE(0x0844, 0x0847) AM_READWRITE(pia_0_r, pia_0_w)
AM_RANGE(0x0848, 0x084b) AM_READWRITE(pia_1_r, pia_1_w)
AM_RANGE(0x1000, 0x13ff) AM_RAM AM_WRITE(pmpoker_videoram_w) AM_BASE(&videoram)
@ -496,8 +481,8 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( jokerpkr_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x07ff) AM_RAM AM_BASE(&generic_nvram) AM_SIZE(&generic_nvram_size) /* battery backed RAM */
AM_RANGE(0x0800, 0x0800) AM_WRITE(pmpoker_mc6845_address_w)
AM_RANGE(0x0801, 0x0801) AM_READWRITE(pmpoker_mc6845_register_r, pmpoker_mc6845_register_w)
AM_RANGE(0x0800, 0x0800) AM_DEVWRITE(MC6845, "crtc", mc6845_address_w)
AM_RANGE(0x0801, 0x0801) AM_DEVREADWRITE(MC6845, "crtc", mc6845_register_r, mc6845_register_w)
AM_RANGE(0x0844, 0x0847) AM_READWRITE(pia_0_r, pia_0_w)
AM_RANGE(0x0848, 0x084b) AM_READWRITE(pia_1_r, pia_1_w)
AM_RANGE(0x1000, 0x13ff) AM_RAM AM_WRITE(pmpoker_videoram_w) AM_BASE(&videoram)

View File

@ -304,18 +304,6 @@ static MACHINE_RESET( r2dtank )
#define NUM_PENS (8)
static WRITE8_HANDLER( r2dtank_mc6845_address_w )
{
mc6845_address_w(mc6845, data);
}
static WRITE8_HANDLER( r2dtank_mc6845_register_w )
{
mc6845_register_w(mc6845, data);
}
static WRITE8_HANDLER( flipscreen_w )
{
flipscreen = !data;
@ -440,8 +428,8 @@ static ADDRESS_MAP_START( r2dtank_main_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x6000, 0x7fff) AM_RAM
AM_RANGE(0x8000, 0x8003) AM_READWRITE(pia_0_r, pia_comp_0_w)
AM_RANGE(0x8004, 0x8004) AM_READWRITE(audio_answer_r, audio_command_w)
AM_RANGE(0xb000, 0xb000) AM_WRITE(r2dtank_mc6845_address_w)
AM_RANGE(0xb001, 0xb001) AM_WRITE(r2dtank_mc6845_register_w)
AM_RANGE(0xb000, 0xb000) AM_DEVWRITE(MC6845, "crtc", mc6845_address_w)
AM_RANGE(0xb001, 0xb001) AM_DEVWRITE(MC6845, "crtc", mc6845_register_w)
AM_RANGE(0xc000, 0xc007) AM_RAM AM_BASE(&generic_nvram) AM_SIZE(&generic_nvram_size)
AM_RANGE(0xc800, 0xffff) AM_ROM
ADDRESS_MAP_END

View File

@ -289,8 +289,6 @@ WRITE8_HANDLER( rockola_videoram_w );
WRITE8_HANDLER( rockola_videoram2_w );
WRITE8_HANDLER( rockola_colorram_w );
WRITE8_HANDLER( rockola_charram_w );
WRITE8_HANDLER( rockola_mc6845_address_w );
WRITE8_HANDLER( rockola_mc6845_register_w );
WRITE8_HANDLER( rockola_flipscreen_w );
WRITE8_HANDLER( rockola_scrollx_w );
WRITE8_HANDLER( rockola_scrolly_w );
@ -372,8 +370,8 @@ static ADDRESS_MAP_START( sasuke_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0800, 0x0bff) AM_RAM AM_WRITE(rockola_videoram_w) AM_BASE(&videoram)
AM_RANGE(0x0c00, 0x0fff) AM_RAM AM_WRITE(rockola_colorram_w) AM_BASE(&colorram)
AM_RANGE(0x1000, 0x1fff) AM_RAM AM_WRITE(rockola_charram_w) AM_BASE(&rockola_charram)
AM_RANGE(0x3000, 0x3000) AM_WRITE(rockola_mc6845_address_w)
AM_RANGE(0x3001, 0x3001) AM_WRITE(rockola_mc6845_register_w)
AM_RANGE(0x3000, 0x3000) AM_DEVWRITE(MC6845, "crtc", mc6845_address_w)
AM_RANGE(0x3001, 0x3001) AM_DEVWRITE(MC6845, "crtc", mc6845_register_w)
AM_RANGE(0x4000, 0x8fff) AM_ROM
AM_RANGE(0xb000, 0xb001) AM_WRITE(sasuke_sound_w)
AM_RANGE(0xb002, 0xb002) AM_WRITE(satansat_b002_w) /* flip screen & irq enable */
@ -391,8 +389,8 @@ static ADDRESS_MAP_START( satansat_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0800, 0x0bff) AM_RAM AM_WRITE(rockola_videoram_w) AM_BASE(&videoram)
AM_RANGE(0x0c00, 0x0fff) AM_RAM AM_WRITE(rockola_colorram_w) AM_BASE(&colorram)
AM_RANGE(0x1000, 0x1fff) AM_RAM AM_WRITE(rockola_charram_w) AM_BASE(&rockola_charram)
AM_RANGE(0x3000, 0x3000) AM_WRITE(rockola_mc6845_address_w)
AM_RANGE(0x3001, 0x3001) AM_WRITE(rockola_mc6845_register_w)
AM_RANGE(0x3000, 0x3000) AM_DEVWRITE(MC6845, "crtc", mc6845_address_w)
AM_RANGE(0x3001, 0x3001) AM_DEVWRITE(MC6845, "crtc", mc6845_register_w)
AM_RANGE(0x4000, 0x97ff) AM_ROM
AM_RANGE(0xb000, 0xb001) AM_WRITE(satansat_sound_w)
AM_RANGE(0xb002, 0xb002) AM_WRITE(satansat_b002_w) /* flip screen & irq enable */
@ -410,8 +408,8 @@ static ADDRESS_MAP_START( vanguard_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0800, 0x0bff) AM_RAM AM_WRITE(rockola_videoram_w) AM_BASE(&videoram)
AM_RANGE(0x0c00, 0x0fff) AM_RAM AM_WRITE(rockola_colorram_w) AM_BASE(&colorram)
AM_RANGE(0x1000, 0x1fff) AM_RAM AM_WRITE(rockola_charram_w) AM_BASE(&rockola_charram)
AM_RANGE(0x3000, 0x3000) AM_WRITE(rockola_mc6845_address_w)
AM_RANGE(0x3001, 0x3001) AM_WRITE(rockola_mc6845_register_w)
AM_RANGE(0x3000, 0x3000) AM_DEVWRITE(MC6845, "crtc", mc6845_address_w)
AM_RANGE(0x3001, 0x3001) AM_DEVWRITE(MC6845, "crtc", mc6845_register_w)
AM_RANGE(0x3100, 0x3102) AM_WRITE(vanguard_sound_w)
AM_RANGE(0x3103, 0x3103) AM_WRITE(rockola_flipscreen_w)
AM_RANGE(0x3104, 0x3104) AM_READ_PORT("IN0")
@ -431,8 +429,8 @@ static ADDRESS_MAP_START( fantasy_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0800, 0x0bff) AM_RAM AM_WRITE(rockola_videoram_w) AM_BASE(&videoram)
AM_RANGE(0x0c00, 0x0fff) AM_RAM AM_WRITE(rockola_colorram_w) AM_BASE(&colorram)
AM_RANGE(0x1000, 0x1fff) AM_RAM AM_WRITE(rockola_charram_w) AM_BASE(&rockola_charram)
AM_RANGE(0x2000, 0x2000) AM_WRITE(rockola_mc6845_address_w)
AM_RANGE(0x2001, 0x2001) AM_WRITE(rockola_mc6845_register_w)
AM_RANGE(0x2000, 0x2000) AM_DEVWRITE(MC6845, "crtc", mc6845_address_w)
AM_RANGE(0x2001, 0x2001) AM_DEVWRITE(MC6845, "crtc", mc6845_register_w)
AM_RANGE(0x2100, 0x2103) AM_WRITE(fantasy_sound_w)
AM_RANGE(0x2104, 0x2104) AM_READ_PORT("IN0")
AM_RANGE(0x2105, 0x2105) AM_READ_PORT("IN1")
@ -452,8 +450,8 @@ static ADDRESS_MAP_START( pballoon_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0c00, 0x0fff) AM_RAM AM_WRITE(rockola_colorram_w) AM_BASE(&colorram)
AM_RANGE(0x1000, 0x1fff) AM_RAM AM_WRITE(rockola_charram_w) AM_BASE(&rockola_charram)
AM_RANGE(0x3000, 0x9fff) AM_ROM
AM_RANGE(0xb000, 0xb000) AM_WRITE(rockola_mc6845_address_w)
AM_RANGE(0xb001, 0xb001) AM_WRITE(rockola_mc6845_register_w)
AM_RANGE(0xb000, 0xb000) AM_DEVWRITE(MC6845, "crtc", mc6845_address_w)
AM_RANGE(0xb001, 0xb001) AM_DEVWRITE(MC6845, "crtc", mc6845_register_w)
AM_RANGE(0xb100, 0xb103) AM_WRITE(fantasy_sound_w)
AM_RANGE(0xb104, 0xb104) AM_READ_PORT("IN0")
AM_RANGE(0xb105, 0xb105) AM_READ_PORT("IN1")

View File

@ -410,24 +410,6 @@ static MACHINE_RESET( spiders )
#define NUM_PENS (8)
static WRITE8_HANDLER( spiders_mc6845_address_w )
{
mc6845_address_w(mc6845, data);
}
static READ8_HANDLER( spiders_mc6845_register_r )
{
return mc6845_register_r(mc6845);
}
static WRITE8_HANDLER( spiders_mc6845_register_w )
{
mc6845_register_w(mc6845, data);
}
static WRITE8_HANDLER( flipscreen_w )
{
flipscreen = data;
@ -591,8 +573,8 @@ static READ8_HANDLER( gfx_rom_r )
static ADDRESS_MAP_START( spiders_main_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0xbfff) AM_RAM AM_BASE(&spiders_ram)
AM_RANGE(0xc000, 0xc000) AM_WRITE(spiders_mc6845_address_w)
AM_RANGE(0xc001, 0xc001) AM_READWRITE(spiders_mc6845_register_r, spiders_mc6845_register_w)
AM_RANGE(0xc000, 0xc000) AM_DEVWRITE(MC6845, "crtc", mc6845_address_w)
AM_RANGE(0xc001, 0xc001) AM_DEVREADWRITE(MC6845, "crtc", mc6845_register_r, mc6845_register_w)
AM_RANGE(0xc020, 0xc027) AM_RAM AM_BASE(&generic_nvram) AM_SIZE(&generic_nvram_size)
AM_RANGE(0xc044, 0xc047) AM_READWRITE(pia_1_r, pia_1_w)
AM_RANGE(0xc048, 0xc04b) AM_READWRITE(pia_2_alt_r, pia_2_alt_w)

View File

@ -106,17 +106,6 @@ static WRITE8_HANDLER(ssingles_colorram_w)
ssingles_colorram[offset]=data;
}
static WRITE8_HANDLER( ssingles_mc6845_address_w )
{
mc6845_address_w(mc6845, data);
}
static WRITE8_HANDLER( ssingles_mc6845_register_w )
{
mc6845_register_w(mc6845, data);
}
static VIDEO_START(ssingles)
{
@ -193,8 +182,8 @@ static ADDRESS_MAP_START( ssingles_io_map, ADDRESS_SPACE_IO, 8 )
AM_RANGE(0x18, 0x18) AM_READ(input_port_3_r)
AM_RANGE(0x1c, 0x1c) AM_READ(controls_r)
AM_RANGE(0x1a, 0x1a) AM_WRITENOP //video/crt related
AM_RANGE(0xfe, 0xfe) AM_WRITE(ssingles_mc6845_address_w)
AM_RANGE(0xff, 0xff) AM_WRITE(ssingles_mc6845_register_w)
AM_RANGE(0xfe, 0xfe) AM_DEVWRITE(MC6845, "crtc", mc6845_address_w)
AM_RANGE(0xff, 0xff) AM_DEVWRITE(MC6845, "crtc", mc6845_register_w)
ADDRESS_MAP_END

View File

@ -31,8 +31,6 @@ Sound: AY-3-8912
/* video */
WRITE8_HANDLER( usgames_videoram_w );
WRITE8_HANDLER( usgames_charram_w );
WRITE8_HANDLER( usgames_mc6845_address_w );
WRITE8_HANDLER( usgames_mc6845_register_w );
VIDEO_START(usgames);
PALETTE_INIT(usgames);
VIDEO_UPDATE(usgames);
@ -104,8 +102,8 @@ static ADDRESS_MAP_START( usgames_writemem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x2020, 0x2020) AM_WRITE(lamps1_w)
AM_RANGE(0x2030, 0x2030) AM_WRITE(lamps2_w)
AM_RANGE(0x2040, 0x2040) AM_WRITE(usgames_mc6845_address_w)
AM_RANGE(0x2041, 0x2041) AM_WRITE(usgames_mc6845_register_w)
AM_RANGE(0x2040, 0x2040) AM_DEVWRITE(MC6845, "crtc", mc6845_address_w)
AM_RANGE(0x2041, 0x2041) AM_DEVWRITE(MC6845, "crtc", mc6845_register_w)
AM_RANGE(0x2400, 0x2400) AM_WRITE(AY8910_control_port_0_w)
AM_RANGE(0x2401, 0x2401) AM_WRITE(AY8910_write_port_0_w)
@ -124,8 +122,8 @@ static ADDRESS_MAP_START( usg185_writemem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x2420, 0x2420) AM_WRITE(lamps1_w)
AM_RANGE(0x2430, 0x2430) AM_WRITE(lamps2_w)
AM_RANGE(0x2440, 0x2440) AM_WRITE(usgames_mc6845_address_w)
AM_RANGE(0x2441, 0x2441) AM_WRITE(usgames_mc6845_register_w)
AM_RANGE(0x2440, 0x2440) AM_DEVWRITE(MC6845, "crtc", mc6845_address_w)
AM_RANGE(0x2441, 0x2441) AM_DEVWRITE(MC6845, "crtc", mc6845_register_w)
AM_RANGE(0x2000, 0x2000) AM_WRITE(AY8910_control_port_0_w)
AM_RANGE(0x2001, 0x2001) AM_WRITE(AY8910_write_port_0_w)

View File

@ -21,8 +21,4 @@ extern UINT8 *madalien_edge1_pos;
extern UINT8 *madalien_edge2_pos;
extern UINT8 *madalien_headlight_pos;
WRITE8_HANDLER( madalien_mc6845_address_w );
READ8_HANDLER( madalien_mc6845_register_r );
WRITE8_HANDLER( madalien_mc6845_register_w );
MACHINE_DRIVER_EXTERN( madalien_video );

View File

@ -50,21 +50,6 @@ static TILE_GET_INFO( get_bg_tile_info )
SET_TILE_INFO(bank, code, color, 0);
}
WRITE8_HANDLER( calomega_mc6845_address_w )
{
mc6845_address_w(mc6845, data);
}
READ8_HANDLER( calomega_mc6845_register_r )
{
return mc6845_register_r(mc6845);
}
WRITE8_HANDLER( calomega_mc6845_register_w )
{
mc6845_register_w(mc6845, data);
}
VIDEO_START( calomega )
{
mc6845 = devtag_get_token(machine, MC6845, "crtc");

View File

@ -125,21 +125,6 @@ WRITE8_HANDLER( funworld_colorram_w )
tilemap_mark_tile_dirty(bg_tilemap, offset);
}
WRITE8_HANDLER( funworld_mc6845_address_w )
{
mc6845_address_w(mc6845, data);
}
READ8_HANDLER( funworld_mc6845_register_r )
{
return mc6845_register_r(mc6845);
}
WRITE8_HANDLER( funworld_mc6845_register_w )
{
mc6845_register_w(mc6845, data);
}
/**** normal hardware limit ****
- bits -
7654 3210

View File

@ -84,22 +84,6 @@ static PALETTE_INIT( madalien )
}
WRITE8_HANDLER( madalien_mc6845_address_w )
{
mc6845_address_w(mc6845, data);
}
READ8_HANDLER( madalien_mc6845_register_r )
{
return mc6845_register_r(mc6845);
}
WRITE8_HANDLER( madalien_mc6845_register_w )
{
mc6845_register_w(mc6845, data);
}
INLINE int scan_helper(int col, int row, int section)
{
return (section << 8) | ((~col & 0x0f) << 3) | row;

View File

@ -286,37 +286,6 @@ static void get_pens(qix_state *state, pen_t *pens)
/*************************************
*
* M6845 access
*
*************************************/
static WRITE8_HANDLER( qix_mc6845_address_w )
{
qix_state *state = Machine->driver_data;
mc6845_address_w(state->mc6845, data);
}
static READ8_HANDLER( qix_mc6845_register_r )
{
qix_state *state = Machine->driver_data;
return mc6845_register_r(state->mc6845);
}
static WRITE8_HANDLER( qix_mc6845_register_w )
{
qix_state *state = Machine->driver_data;
mc6845_register_w(state->mc6845, data);
}
/*************************************
*
* M6845 callbacks for updating
@ -397,8 +366,8 @@ static ADDRESS_MAP_START( qix_video_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x9400, 0x9400) AM_MIRROR(0x03fc) AM_READWRITE(qix_addresslatch_r, qix_addresslatch_w)
AM_RANGE(0x9402, 0x9403) AM_MIRROR(0x03fc) AM_WRITE(MWA8_RAM) AM_BASE_MEMBER(qix_state, videoram_address)
AM_RANGE(0x9800, 0x9800) AM_MIRROR(0x03ff) AM_READ(MRA8_RAM) AM_BASE_MEMBER(qix_state, scanline_latch)
AM_RANGE(0x9c00, 0x9c00) AM_MIRROR(0x03fe) AM_WRITE(qix_mc6845_address_w)
AM_RANGE(0x9c01, 0x9c01) AM_MIRROR(0x03fe) AM_READWRITE(qix_mc6845_register_r, qix_mc6845_register_w)
AM_RANGE(0x9c00, 0x9c00) AM_MIRROR(0x03fe) AM_DEVWRITE(MC6845, "vid-u18", mc6845_address_w)
AM_RANGE(0x9c01, 0x9c01) AM_MIRROR(0x03fe) AM_DEVREADWRITE(MC6845, "vid-u18", mc6845_register_r, mc6845_register_w)
AM_RANGE(0xa000, 0xffff) AM_ROM
ADDRESS_MAP_END
@ -415,8 +384,8 @@ static ADDRESS_MAP_START( zookeep_video_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x9400, 0x9400) AM_MIRROR(0x03fc) AM_READWRITE(qix_addresslatch_r, qix_addresslatch_w)
AM_RANGE(0x9402, 0x9403) AM_MIRROR(0x03fc) AM_WRITE(MWA8_RAM) AM_BASE_MEMBER(qix_state, videoram_address)
AM_RANGE(0x9800, 0x9800) AM_MIRROR(0x03ff) AM_READ(MRA8_RAM) AM_BASE_MEMBER(qix_state, scanline_latch)
AM_RANGE(0x9c00, 0x9c00) AM_MIRROR(0x03fe) AM_WRITE(qix_mc6845_address_w)
AM_RANGE(0x9c01, 0x9c01) AM_MIRROR(0x03fe) AM_READWRITE(qix_mc6845_register_r, qix_mc6845_register_w)
AM_RANGE(0x9c00, 0x9c00) AM_MIRROR(0x03fe) AM_DEVWRITE(MC6845, "vid-u18", mc6845_address_w)
AM_RANGE(0x9c01, 0x9c01) AM_MIRROR(0x03fe) AM_DEVREADWRITE(MC6845, "vid-u18", mc6845_register_r, mc6845_register_w)
AM_RANGE(0xa000, 0xbfff) AM_ROMBANK(1)
AM_RANGE(0xc000, 0xffff) AM_ROM
ADDRESS_MAP_END
@ -434,8 +403,8 @@ static ADDRESS_MAP_START( slither_video_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x9401, 0x9401) AM_MIRROR(0x03fc) AM_WRITE(MWA8_RAM) AM_BASE_MEMBER(qix_state, videoram_mask)
AM_RANGE(0x9402, 0x9403) AM_MIRROR(0x03fc) AM_WRITE(MWA8_RAM) AM_BASE_MEMBER(qix_state, videoram_address)
AM_RANGE(0x9800, 0x9800) AM_MIRROR(0x03ff) AM_READ(MRA8_RAM) AM_BASE_MEMBER(qix_state, scanline_latch)
AM_RANGE(0x9c00, 0x9c00) AM_MIRROR(0x03fe) AM_WRITE(qix_mc6845_address_w)
AM_RANGE(0x9c01, 0x9c01) AM_MIRROR(0x03fe) AM_READWRITE(qix_mc6845_register_r, qix_mc6845_register_w)
AM_RANGE(0x9c00, 0x9c00) AM_MIRROR(0x03fe) AM_DEVWRITE(MC6845, "vid-u18", mc6845_address_w)
AM_RANGE(0x9c01, 0x9c01) AM_MIRROR(0x03fe) AM_DEVREADWRITE(MC6845, "vid-u18", mc6845_register_r, mc6845_register_w)
AM_RANGE(0xa000, 0xffff) AM_ROM
ADDRESS_MAP_END

View File

@ -115,18 +115,6 @@ WRITE8_HANDLER( rockola_charram_w )
}
WRITE8_HANDLER( rockola_mc6845_address_w )
{
mc6845_address_w(mc6845, data);
}
WRITE8_HANDLER( rockola_mc6845_register_w )
{
mc6845_register_w(mc6845, data);
}
WRITE8_HANDLER( rockola_flipscreen_w )
{
int bank;

View File

@ -72,18 +72,6 @@ WRITE8_HANDLER( usgames_charram_w )
}
WRITE8_HANDLER( usgames_mc6845_address_w )
{
mc6845_address_w(mc6845, data);
}
WRITE8_HANDLER( usgames_mc6845_register_w )
{
mc6845_register_w(mc6845, data);
}
VIDEO_UPDATE(usgames)
{
tilemap_draw(bitmap,cliprect,usgames_tilemap,0,0);