diff --git a/src/emu/memory.c b/src/emu/memory.c index 713c8dab63d..e101d51c733 100644 --- a/src/emu/memory.c +++ b/src/emu/memory.c @@ -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); } } diff --git a/src/emu/memory.h b/src/emu/memory.h index 23b06508aec..5892b36b407 100644 --- a/src/emu/memory.h +++ b/src/emu/memory.h @@ -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) diff --git a/src/emu/validity.c b/src/emu/validity.c index 10332b4a63d..76c1bbb7915 100644 --- a/src/emu/validity.c +++ b/src/emu/validity.c @@ -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 diff --git a/src/emu/video/mc6845.c b/src/emu/video/mc6845.c index a59e86d93fb..52524aacd86 100644 --- a/src/emu/video/mc6845.c +++ b/src/emu/video/mc6845.c @@ -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); diff --git a/src/emu/video/mc6845.h b/src/emu/video/mc6845.h index 840962c7edb..f76c5c65c7e 100644 --- a/src/emu/video/mc6845.h +++ b/src/emu/video/mc6845.h @@ -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); diff --git a/src/mame/drivers/calomega.c b/src/mame/drivers/calomega.c index 1c0d3435046..1e6c16d2fdb 100644 --- a/src/mame/drivers/calomega.c +++ b/src/mame/drivers/calomega.c @@ -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) diff --git a/src/mame/drivers/carrera.c b/src/mame/drivers/carrera.c index e88a40a3759..b4e6e4dbd7a 100644 --- a/src/mame/drivers/carrera.c +++ b/src/mame/drivers/carrera.c @@ -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 diff --git a/src/mame/drivers/coinmstr.c b/src/mame/drivers/coinmstr.c index 9d08fb69947..c6f22a8e559 100644 --- a/src/mame/drivers/coinmstr.c +++ b/src/mame/drivers/coinmstr.c @@ -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 diff --git a/src/mame/drivers/couple.c b/src/mame/drivers/couple.c index c94a0b93a29..0bc09bfbc5f 100644 --- a/src/mame/drivers/couple.c +++ b/src/mame/drivers/couple.c @@ -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?*/ diff --git a/src/mame/drivers/funworld.c b/src/mame/drivers/funworld.c index 03a965f033a..b3d57491457 100644 --- a/src/mame/drivers/funworld.c +++ b/src/mame/drivers/funworld.c @@ -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 diff --git a/src/mame/drivers/madalien.c b/src/mame/drivers/madalien.c index 6a0a5018d73..3a5f8833306 100644 --- a/src/mame/drivers/madalien.c +++ b/src/mame/drivers/madalien.c @@ -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) diff --git a/src/mame/drivers/magicfly.c b/src/mame/drivers/magicfly.c index b736d6afbe3..304ef8a12c1 100644 --- a/src/mame/drivers/magicfly.c +++ b/src/mame/drivers/magicfly.c @@ -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 */ diff --git a/src/mame/drivers/miniboy7.c b/src/mame/drivers/miniboy7.c index 747e863a1cf..c1f7dbb4b0d 100644 --- a/src/mame/drivers/miniboy7.c +++ b/src/mame/drivers/miniboy7.c @@ -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 diff --git a/src/mame/drivers/mpu4drvr.c b/src/mame/drivers/mpu4drvr.c index 8c0b3904686..5df8d88bd0f 100644 --- a/src/mame/drivers/mpu4drvr.c +++ b/src/mame/drivers/mpu4drvr.c @@ -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) diff --git a/src/mame/drivers/murogem.c b/src/mame/drivers/murogem.c index d7fa23afcf5..1238d8aef69 100644 --- a/src/mame/drivers/murogem.c +++ b/src/mame/drivers/murogem.c @@ -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? diff --git a/src/mame/drivers/nyny.c b/src/mame/drivers/nyny.c index e6daa4e57c5..4fe79cdc17d 100644 --- a/src/mame/drivers/nyny.c +++ b/src/mame/drivers/nyny.c @@ -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 diff --git a/src/mame/drivers/pmpoker.c b/src/mame/drivers/pmpoker.c index 4b09f46f9c4..40f879d8af7 100644 --- a/src/mame/drivers/pmpoker.c +++ b/src/mame/drivers/pmpoker.c @@ -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) diff --git a/src/mame/drivers/r2dtank.c b/src/mame/drivers/r2dtank.c index f51899495ab..828f7589d12 100644 --- a/src/mame/drivers/r2dtank.c +++ b/src/mame/drivers/r2dtank.c @@ -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 diff --git a/src/mame/drivers/rockola.c b/src/mame/drivers/rockola.c index 1fad8c954c4..8b9ac99eba8 100644 --- a/src/mame/drivers/rockola.c +++ b/src/mame/drivers/rockola.c @@ -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") diff --git a/src/mame/drivers/spiders.c b/src/mame/drivers/spiders.c index 67be4092f76..2a7a82f58f6 100644 --- a/src/mame/drivers/spiders.c +++ b/src/mame/drivers/spiders.c @@ -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) diff --git a/src/mame/drivers/ssingles.c b/src/mame/drivers/ssingles.c index f688fc6254f..92db7ebed62 100644 --- a/src/mame/drivers/ssingles.c +++ b/src/mame/drivers/ssingles.c @@ -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 diff --git a/src/mame/drivers/usgames.c b/src/mame/drivers/usgames.c index 8187ae784df..1c301e0a957 100644 --- a/src/mame/drivers/usgames.c +++ b/src/mame/drivers/usgames.c @@ -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) diff --git a/src/mame/includes/madalien.h b/src/mame/includes/madalien.h index 10b9fd337c4..5d6e2bbaf80 100644 --- a/src/mame/includes/madalien.h +++ b/src/mame/includes/madalien.h @@ -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 ); diff --git a/src/mame/video/calomega.c b/src/mame/video/calomega.c index 6e93efc99bb..08839103bcb 100644 --- a/src/mame/video/calomega.c +++ b/src/mame/video/calomega.c @@ -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"); diff --git a/src/mame/video/funworld.c b/src/mame/video/funworld.c index 1c7b639dab4..f5fdd2f50e3 100644 --- a/src/mame/video/funworld.c +++ b/src/mame/video/funworld.c @@ -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 diff --git a/src/mame/video/madalien.c b/src/mame/video/madalien.c index 0a4dbd5dbb8..55fdc9ec422 100644 --- a/src/mame/video/madalien.c +++ b/src/mame/video/madalien.c @@ -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; diff --git a/src/mame/video/qix.c b/src/mame/video/qix.c index c63f46e2481..21c6cca954d 100644 --- a/src/mame/video/qix.c +++ b/src/mame/video/qix.c @@ -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 diff --git a/src/mame/video/rockola.c b/src/mame/video/rockola.c index f851226d277..3d9af0f2242 100644 --- a/src/mame/video/rockola.c +++ b/src/mame/video/rockola.c @@ -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; diff --git a/src/mame/video/usgames.c b/src/mame/video/usgames.c index b95c1d6590a..63690fee375 100644 --- a/src/mame/video/usgames.c +++ b/src/mame/video/usgames.c @@ -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);