mirror of
https://github.com/holub/mame
synced 2025-05-23 06:08:48 +03:00
Get rid of a bunch of mostly-trivial NVRAM_HANDLERS in favor of
NVRAM devices.
This commit is contained in:
parent
dcedf21a43
commit
bb7657c8d3
@ -203,6 +203,7 @@ the entire size of the screen.
|
|||||||
#include "sound/2608intf.h"
|
#include "sound/2608intf.h"
|
||||||
#include "sound/2610intf.h"
|
#include "sound/2610intf.h"
|
||||||
#include "includes/bbusters.h"
|
#include "includes/bbusters.h"
|
||||||
|
#include "machine/nvram.h"
|
||||||
|
|
||||||
|
|
||||||
/******************************************************************************/
|
/******************************************************************************/
|
||||||
@ -351,7 +352,7 @@ static ADDRESS_MAP_START( bbusters_map, ADDRESS_SPACE_PROGRAM, 16 )
|
|||||||
/* AM_RANGE(0x0f0008, 0x0f0009) AM_WRITENOP */
|
/* AM_RANGE(0x0f0008, 0x0f0009) AM_WRITENOP */
|
||||||
AM_RANGE(0x0f0008, 0x0f0009) AM_WRITE(three_gun_output_w)
|
AM_RANGE(0x0f0008, 0x0f0009) AM_WRITE(three_gun_output_w)
|
||||||
AM_RANGE(0x0f0018, 0x0f0019) AM_WRITE(sound_cpu_w)
|
AM_RANGE(0x0f0018, 0x0f0019) AM_WRITE(sound_cpu_w)
|
||||||
AM_RANGE(0x0f8000, 0x0f80ff) AM_READ(eprom_r) AM_WRITEONLY AM_BASE_MEMBER(bbusters_state, eprom_data) /* Eeprom */
|
AM_RANGE(0x0f8000, 0x0f80ff) AM_READ(eprom_r) AM_WRITEONLY AM_SHARE("eeprom") /* Eeprom */
|
||||||
ADDRESS_MAP_END
|
ADDRESS_MAP_END
|
||||||
|
|
||||||
/*******************************************************************************/
|
/*******************************************************************************/
|
||||||
@ -663,45 +664,6 @@ static const ym2610_interface ym2610_config =
|
|||||||
|
|
||||||
/******************************************************************************/
|
/******************************************************************************/
|
||||||
|
|
||||||
// default eeprom with reasonable calibration for MAME
|
|
||||||
static const unsigned char bbusters_default_eeprom[128] =
|
|
||||||
{
|
|
||||||
/*y*/ /*y*/
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0xEE, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0xFE, 0x00,
|
|
||||||
/*y*/ /*y*/
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0xEE, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0xFE, 0x00,
|
|
||||||
/*y*/ /*y*/
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0xEE, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0xFE, 0x00,
|
|
||||||
|
|
||||||
|
|
||||||
0x42, 0x00, 0x45, 0x00, 0x41, 0x00, 0x53, 0x00, 0x54, 0x00, 0x20, 0x00,
|
|
||||||
0x42, 0x00, 0x55, 0x00, 0x53, 0x00, 0x54, 0x00, 0x45, 0x00, 0x52, 0x00,
|
|
||||||
0x53, 0x00, 0x20, 0x00, 0x54, 0x00, 0x4D, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
||||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
||||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
static NVRAM_HANDLER( bbusters )
|
|
||||||
{
|
|
||||||
bbusters_state *state = machine->driver_data<bbusters_state>();
|
|
||||||
|
|
||||||
if( read_or_write )
|
|
||||||
{
|
|
||||||
mame_fwrite (file, state->eprom_data, 0x80);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (file)
|
|
||||||
mame_fread (file, state->eprom_data, 0x80);
|
|
||||||
else
|
|
||||||
memcpy(state->eprom_data, bbusters_default_eeprom, 0x80);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static VIDEO_EOF( bbuster )
|
static VIDEO_EOF( bbuster )
|
||||||
{
|
{
|
||||||
address_space *space = cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM);
|
address_space *space = cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM);
|
||||||
@ -727,7 +689,7 @@ static MACHINE_CONFIG_START( bbusters, bbusters_state )
|
|||||||
MDRV_CPU_PROGRAM_MAP(sound_map)
|
MDRV_CPU_PROGRAM_MAP(sound_map)
|
||||||
MDRV_CPU_IO_MAP(sound_portmap)
|
MDRV_CPU_IO_MAP(sound_portmap)
|
||||||
|
|
||||||
MDRV_NVRAM_HANDLER(bbusters)
|
MDRV_NVRAM_ADD_0FILL("eeprom")
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MDRV_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
|
MDRV_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
|
||||||
@ -837,6 +799,9 @@ ROM_START( bbusters )
|
|||||||
|
|
||||||
ROM_REGION( 0x80000, "ymsnd.deltat", 0 )
|
ROM_REGION( 0x80000, "ymsnd.deltat", 0 )
|
||||||
ROM_LOAD( "bb-pcmb.l3", 0x000000, 0x80000, CRC(c8d5dd53) SHA1(0f7e94532cc14852ca12c1b792e5479667af899e) )
|
ROM_LOAD( "bb-pcmb.l3", 0x000000, 0x80000, CRC(c8d5dd53) SHA1(0f7e94532cc14852ca12c1b792e5479667af899e) )
|
||||||
|
|
||||||
|
ROM_REGION( 0x100, "eeprom", 0 )
|
||||||
|
ROM_LOAD( "bbusters-eeprom.bin", 0x00, 0x100, CRC(a52ebd66) SHA1(de04db6f1510700c61bf152799452a80220ae87c) )
|
||||||
ROM_END
|
ROM_END
|
||||||
|
|
||||||
ROM_START( bbustersu )
|
ROM_START( bbustersu )
|
||||||
@ -882,6 +847,9 @@ ROM_START( bbustersu )
|
|||||||
|
|
||||||
ROM_REGION( 0x80000, "ymsnd.deltat", 0 )
|
ROM_REGION( 0x80000, "ymsnd.deltat", 0 )
|
||||||
ROM_LOAD( "bb-pcma.l5", 0x000000, 0x80000, CRC(44cd5bfe) SHA1(26a612191a0aa614c090203485aba17c99c763ee) )
|
ROM_LOAD( "bb-pcma.l5", 0x000000, 0x80000, CRC(44cd5bfe) SHA1(26a612191a0aa614c090203485aba17c99c763ee) )
|
||||||
|
|
||||||
|
ROM_REGION( 0x100, "eeprom", 0 )
|
||||||
|
ROM_LOAD( "bbusters-eeprom.bin", 0x00, 0x100, CRC(a52ebd66) SHA1(de04db6f1510700c61bf152799452a80220ae87c) )
|
||||||
ROM_END
|
ROM_END
|
||||||
|
|
||||||
|
|
||||||
|
@ -139,6 +139,8 @@ Adder hardware:
|
|||||||
#include "emu.h"
|
#include "emu.h"
|
||||||
#include "cpu/m6809/m6809.h"
|
#include "cpu/m6809/m6809.h"
|
||||||
|
|
||||||
|
#include "machine/nvram.h"
|
||||||
|
|
||||||
#include "video/bfm_adr2.h"
|
#include "video/bfm_adr2.h"
|
||||||
|
|
||||||
#include "sound/2413intf.h"
|
#include "sound/2413intf.h"
|
||||||
@ -188,7 +190,6 @@ static int sc2gui_update_mmtr; // bit pattern which mechanical meter needs updat
|
|||||||
// local vars /////////////////////////////////////////////////////////////
|
// local vars /////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
static UINT8 *nvram; // pointer to NVRAM
|
static UINT8 *nvram; // pointer to NVRAM
|
||||||
static size_t nvram_size; // size of NVRAM
|
|
||||||
static UINT8 key[16]; // security device on gamecard (video games only)
|
static UINT8 key[16]; // security device on gamecard (video games only)
|
||||||
|
|
||||||
static UINT8 e2ram[1024]; // x24C08 e2ram
|
static UINT8 e2ram[1024]; // x24C08 e2ram
|
||||||
@ -443,19 +444,16 @@ static NVRAM_HANDLER( bfm_sc2 )
|
|||||||
static const UINT8 init_e2ram[10] = { 1, 4, 10, 20, 0, 1, 1, 4, 10, 20 };
|
static const UINT8 init_e2ram[10] = { 1, 4, 10, 20, 0, 1, 1, 4, 10, 20 };
|
||||||
if ( read_or_write )
|
if ( read_or_write )
|
||||||
{ // writing
|
{ // writing
|
||||||
mame_fwrite(file,nvram,nvram_size);
|
|
||||||
mame_fwrite(file,e2ram,sizeof(e2ram));
|
mame_fwrite(file,e2ram,sizeof(e2ram));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{ // reading
|
{ // reading
|
||||||
if ( file )
|
if ( file )
|
||||||
{
|
{
|
||||||
mame_fread(file,nvram,nvram_size);
|
|
||||||
mame_fread(file,e2ram,sizeof(e2ram));
|
mame_fread(file,e2ram,sizeof(e2ram));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
memset(nvram,0x00,nvram_size);
|
|
||||||
memset(e2ram,0x00,sizeof(e2ram));
|
memset(e2ram,0x00,sizeof(e2ram));
|
||||||
memcpy(e2ram,init_e2ram,sizeof(init_e2ram));
|
memcpy(e2ram,init_e2ram,sizeof(init_e2ram));
|
||||||
}
|
}
|
||||||
@ -1508,7 +1506,7 @@ static VIDEO_UPDATE( addersc2 )
|
|||||||
|
|
||||||
static ADDRESS_MAP_START( memmap_vid, ADDRESS_SPACE_PROGRAM, 8 )
|
static ADDRESS_MAP_START( memmap_vid, ADDRESS_SPACE_PROGRAM, 8 )
|
||||||
|
|
||||||
AM_RANGE(0x0000, 0x1fff) AM_READWRITE(ram_r, ram_w) AM_BASE(&nvram) AM_SIZE(&nvram_size)// 8k RAM
|
AM_RANGE(0x0000, 0x1fff) AM_READWRITE(ram_r, ram_w) AM_BASE(&nvram) AM_SHARE("nvram") // 8k RAM
|
||||||
AM_RANGE(0x2000, 0x2000) AM_READ(vfd_status_hop_r) // vfd status register
|
AM_RANGE(0x2000, 0x2000) AM_READ(vfd_status_hop_r) // vfd status register
|
||||||
AM_RANGE(0x2000, 0x20FF) AM_WRITE(reel12_vid_w)
|
AM_RANGE(0x2000, 0x20FF) AM_WRITE(reel12_vid_w)
|
||||||
AM_RANGE(0x2100, 0x21FF) AM_WRITE(reel34_w)
|
AM_RANGE(0x2100, 0x21FF) AM_WRITE(reel34_w)
|
||||||
@ -2223,6 +2221,7 @@ static MACHINE_CONFIG_START( scorpion2_vid, driver_device )
|
|||||||
MDRV_CPU_PROGRAM_MAP(memmap_vid) // setup scorpion2 board memorymap
|
MDRV_CPU_PROGRAM_MAP(memmap_vid) // setup scorpion2 board memorymap
|
||||||
MDRV_CPU_PERIODIC_INT(timer_irq, 1000) // generate 1000 IRQ's per second
|
MDRV_CPU_PERIODIC_INT(timer_irq, 1000) // generate 1000 IRQ's per second
|
||||||
|
|
||||||
|
MDRV_NVRAM_ADD_0FILL("nvram")
|
||||||
MDRV_NVRAM_HANDLER(bfm_sc2)
|
MDRV_NVRAM_HANDLER(bfm_sc2)
|
||||||
MDRV_DEFAULT_LAYOUT(layout_bfm_sc2)
|
MDRV_DEFAULT_LAYOUT(layout_bfm_sc2)
|
||||||
|
|
||||||
@ -2748,7 +2747,7 @@ static MACHINE_RESET( dm01_init )
|
|||||||
|
|
||||||
|
|
||||||
static ADDRESS_MAP_START( sc2_memmap, ADDRESS_SPACE_PROGRAM, 8 )
|
static ADDRESS_MAP_START( sc2_memmap, ADDRESS_SPACE_PROGRAM, 8 )
|
||||||
AM_RANGE(0x0000, 0x1FFF) AM_READWRITE(ram_r, ram_w) AM_BASE(&nvram) AM_SIZE(&nvram_size)
|
AM_RANGE(0x0000, 0x1FFF) AM_READWRITE(ram_r, ram_w) AM_BASE(&nvram) AM_SHARE("nvram")
|
||||||
AM_RANGE(0x2000, 0x2000) AM_READ(vfd_status_r)
|
AM_RANGE(0x2000, 0x2000) AM_READ(vfd_status_r)
|
||||||
AM_RANGE(0x2000, 0x20FF) AM_WRITE(reel12_w)
|
AM_RANGE(0x2000, 0x20FF) AM_WRITE(reel12_w)
|
||||||
AM_RANGE(0x2100, 0x21FF) AM_WRITE(reel34_w)
|
AM_RANGE(0x2100, 0x21FF) AM_WRITE(reel34_w)
|
||||||
@ -2797,7 +2796,7 @@ ADDRESS_MAP_END
|
|||||||
|
|
||||||
/* memory map for scorpion3 board */
|
/* memory map for scorpion3 board */
|
||||||
static ADDRESS_MAP_START( sc3_memmap, ADDRESS_SPACE_PROGRAM, 8 )
|
static ADDRESS_MAP_START( sc3_memmap, ADDRESS_SPACE_PROGRAM, 8 )
|
||||||
AM_RANGE(0x0000, 0x1FFF) AM_READWRITE(ram_r, ram_w) AM_BASE(&nvram) AM_SIZE(&nvram_size)
|
AM_RANGE(0x0000, 0x1FFF) AM_READWRITE(ram_r, ram_w) AM_BASE(&nvram) AM_SHARE("nvram")
|
||||||
AM_RANGE(0x2000, 0x2000) AM_READ(vfd_status_r)
|
AM_RANGE(0x2000, 0x2000) AM_READ(vfd_status_r)
|
||||||
AM_RANGE(0x2000, 0x20FF) AM_WRITE(reel12_w)
|
AM_RANGE(0x2000, 0x20FF) AM_WRITE(reel12_w)
|
||||||
AM_RANGE(0x2100, 0x21FF) AM_WRITE(reel34_w)
|
AM_RANGE(0x2100, 0x21FF) AM_WRITE(reel34_w)
|
||||||
@ -2846,7 +2845,7 @@ ADDRESS_MAP_END
|
|||||||
|
|
||||||
/* memory map for scorpion2 board + dm01 dot matrix board */
|
/* memory map for scorpion2 board + dm01 dot matrix board */
|
||||||
static ADDRESS_MAP_START( memmap_sc2_dm01, ADDRESS_SPACE_PROGRAM, 8 )
|
static ADDRESS_MAP_START( memmap_sc2_dm01, ADDRESS_SPACE_PROGRAM, 8 )
|
||||||
AM_RANGE(0x0000, 0x1FFF) AM_READWRITE(ram_r, ram_w) AM_BASE(&nvram) AM_SIZE(&nvram_size)
|
AM_RANGE(0x0000, 0x1FFF) AM_READWRITE(ram_r, ram_w) AM_BASE(&nvram) AM_SHARE("nvram")
|
||||||
AM_RANGE(0x2000, 0x2000) AM_READ(vfd_status_dm01_r)
|
AM_RANGE(0x2000, 0x2000) AM_READ(vfd_status_dm01_r)
|
||||||
AM_RANGE(0x2000, 0x20FF) AM_WRITE(reel12_w)
|
AM_RANGE(0x2000, 0x20FF) AM_WRITE(reel12_w)
|
||||||
AM_RANGE(0x2100, 0x21FF) AM_WRITE(reel34_w)
|
AM_RANGE(0x2100, 0x21FF) AM_WRITE(reel34_w)
|
||||||
@ -3980,6 +3979,7 @@ static MACHINE_CONFIG_START( scorpion2, driver_device )
|
|||||||
MDRV_SOUND_ADD("ymsnd",YM2413, XTAL_3_579545MHz)
|
MDRV_SOUND_ADD("ymsnd",YM2413, XTAL_3_579545MHz)
|
||||||
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
|
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
|
||||||
|
|
||||||
|
MDRV_NVRAM_ADD_0FILL("nvram")
|
||||||
MDRV_NVRAM_HANDLER(bfm_sc2)
|
MDRV_NVRAM_HANDLER(bfm_sc2)
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
@ -4009,6 +4009,7 @@ static MACHINE_CONFIG_START( scorpion2_dm01, driver_device )
|
|||||||
MDRV_SOUND_ADD("upd",UPD7759, UPD7759_STANDARD_CLOCK)
|
MDRV_SOUND_ADD("upd",UPD7759, UPD7759_STANDARD_CLOCK)
|
||||||
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
|
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
|
||||||
|
|
||||||
|
MDRV_NVRAM_ADD_0FILL("nvram")
|
||||||
MDRV_NVRAM_HANDLER(bfm_sc2)
|
MDRV_NVRAM_HANDLER(bfm_sc2)
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
|
@ -26,6 +26,7 @@
|
|||||||
|
|
||||||
***********************************************************************************/
|
***********************************************************************************/
|
||||||
#include "emu.h"
|
#include "emu.h"
|
||||||
|
#include "machine/nvram.h"
|
||||||
#include "sound/ay8910.h"
|
#include "sound/ay8910.h"
|
||||||
#include "cpu/mcs48/mcs48.h"
|
#include "cpu/mcs48/mcs48.h"
|
||||||
|
|
||||||
@ -42,30 +43,11 @@ static UINT8 pkr_io_ram[0x100];
|
|||||||
static UINT16 video_ram[0x0400];
|
static UINT16 video_ram[0x0400];
|
||||||
static UINT8 color_ram[0x0400];
|
static UINT8 color_ram[0x0400];
|
||||||
|
|
||||||
/********************
|
static MACHINE_START( drw80pkr )
|
||||||
* NVRAM Handler *
|
|
||||||
********************/
|
|
||||||
|
|
||||||
static NVRAM_HANDLER( drw80pkr )
|
|
||||||
{
|
{
|
||||||
if (read_or_write)
|
machine->device<nvram_device>("nvram")->set_base(pkr_io_ram, sizeof(pkr_io_ram));
|
||||||
{
|
|
||||||
mame_fwrite(file, pkr_io_ram, DATA_NVRAM_SIZE);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (file)
|
|
||||||
{
|
|
||||||
mame_fread(file, pkr_io_ram, DATA_NVRAM_SIZE);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
memset(pkr_io_ram, 0, DATA_NVRAM_SIZE);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*****************
|
/*****************
|
||||||
* Write Handlers *
|
* Write Handlers *
|
||||||
******************/
|
******************/
|
||||||
@ -451,6 +433,8 @@ static MACHINE_CONFIG_START( drw80pkr, driver_device )
|
|||||||
MDRV_CPU_IO_MAP(drw80pkr_io_map)
|
MDRV_CPU_IO_MAP(drw80pkr_io_map)
|
||||||
MDRV_CPU_VBLANK_INT("screen", irq0_line_hold)
|
MDRV_CPU_VBLANK_INT("screen", irq0_line_hold)
|
||||||
|
|
||||||
|
MDRV_MACHINE_START(drw80pkr)
|
||||||
|
|
||||||
// video hardware
|
// video hardware
|
||||||
|
|
||||||
MDRV_SCREEN_ADD("screen", RASTER)
|
MDRV_SCREEN_ADD("screen", RASTER)
|
||||||
@ -466,7 +450,8 @@ static MACHINE_CONFIG_START( drw80pkr, driver_device )
|
|||||||
MDRV_PALETTE_INIT(drw80pkr)
|
MDRV_PALETTE_INIT(drw80pkr)
|
||||||
MDRV_VIDEO_START(drw80pkr)
|
MDRV_VIDEO_START(drw80pkr)
|
||||||
MDRV_VIDEO_UPDATE(drw80pkr)
|
MDRV_VIDEO_UPDATE(drw80pkr)
|
||||||
MDRV_NVRAM_HANDLER(drw80pkr)
|
|
||||||
|
MDRV_NVRAM_ADD_0FILL("nvram")
|
||||||
|
|
||||||
// sound hardware
|
// sound hardware
|
||||||
MDRV_SPEAKER_STANDARD_MONO("mono")
|
MDRV_SPEAKER_STANDARD_MONO("mono")
|
||||||
|
@ -29,6 +29,7 @@
|
|||||||
#include "cpu/m6809/m6809.h"
|
#include "cpu/m6809/m6809.h"
|
||||||
#include "cpu/esrip/esrip.h"
|
#include "cpu/esrip/esrip.h"
|
||||||
#include "machine/6840ptm.h"
|
#include "machine/6840ptm.h"
|
||||||
|
#include "machine/nvram.h"
|
||||||
#include "sound/dac.h"
|
#include "sound/dac.h"
|
||||||
#include "sound/tms5220.h"
|
#include "sound/tms5220.h"
|
||||||
#include "includes/esripsys.h"
|
#include "includes/esripsys.h"
|
||||||
@ -679,6 +680,8 @@ static DRIVER_INIT( esripsys )
|
|||||||
fdt_a = auto_alloc_array(machine, UINT8, FDT_RAM_SIZE);
|
fdt_a = auto_alloc_array(machine, UINT8, FDT_RAM_SIZE);
|
||||||
fdt_b = auto_alloc_array(machine, UINT8, FDT_RAM_SIZE);
|
fdt_b = auto_alloc_array(machine, UINT8, FDT_RAM_SIZE);
|
||||||
cmos_ram = auto_alloc_array(machine, UINT8, CMOS_RAM_SIZE);
|
cmos_ram = auto_alloc_array(machine, UINT8, CMOS_RAM_SIZE);
|
||||||
|
|
||||||
|
machine->device<nvram_device>("nvram")->set_base(cmos_ram, CMOS_RAM_SIZE);
|
||||||
|
|
||||||
memory_set_bankptr(machine, "bank2", &rom[0x0000]);
|
memory_set_bankptr(machine, "bank2", &rom[0x0000]);
|
||||||
memory_set_bankptr(machine, "bank3", &rom[0x4000]);
|
memory_set_bankptr(machine, "bank3", &rom[0x4000]);
|
||||||
@ -715,16 +718,6 @@ static DRIVER_INIT( esripsys )
|
|||||||
state_save_register_global(machine, _fbsel);
|
state_save_register_global(machine, _fbsel);
|
||||||
}
|
}
|
||||||
|
|
||||||
static NVRAM_HANDLER( esripsys )
|
|
||||||
{
|
|
||||||
if (read_or_write)
|
|
||||||
mame_fwrite(file, cmos_ram, CMOS_RAM_SIZE);
|
|
||||||
else if (file)
|
|
||||||
mame_fread(file, cmos_ram, CMOS_RAM_SIZE);
|
|
||||||
else
|
|
||||||
memset(cmos_ram, 0x00, CMOS_RAM_SIZE);
|
|
||||||
}
|
|
||||||
|
|
||||||
static const esrip_config rip_config =
|
static const esrip_config rip_config =
|
||||||
{
|
{
|
||||||
fdt_rip_r,
|
fdt_rip_r,
|
||||||
@ -749,7 +742,7 @@ static MACHINE_CONFIG_START( esripsys, driver_device )
|
|||||||
MDRV_CPU_ADD("sound_cpu", M6809E, XTAL_8MHz)
|
MDRV_CPU_ADD("sound_cpu", M6809E, XTAL_8MHz)
|
||||||
MDRV_CPU_PROGRAM_MAP(sound_cpu_map)
|
MDRV_CPU_PROGRAM_MAP(sound_cpu_map)
|
||||||
|
|
||||||
MDRV_NVRAM_HANDLER(esripsys)
|
MDRV_NVRAM_ADD_0FILL("nvram")
|
||||||
|
|
||||||
/* Video hardware */
|
/* Video hardware */
|
||||||
MDRV_SCREEN_ADD("screen", RASTER)
|
MDRV_SCREEN_ADD("screen", RASTER)
|
||||||
|
@ -217,6 +217,7 @@
|
|||||||
#include "emu.h"
|
#include "emu.h"
|
||||||
#include "cpu/m6809/m6809.h"
|
#include "cpu/m6809/m6809.h"
|
||||||
#include "includes/exidy440.h"
|
#include "includes/exidy440.h"
|
||||||
|
#include "machine/nvram.h"
|
||||||
|
|
||||||
|
|
||||||
/* constants */
|
/* constants */
|
||||||
@ -234,28 +235,6 @@ static READ8_HANDLER( showdown_bank0_r );
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*************************************
|
|
||||||
*
|
|
||||||
* EEROM save/load
|
|
||||||
*
|
|
||||||
*************************************/
|
|
||||||
|
|
||||||
static NVRAM_HANDLER( exidy440 )
|
|
||||||
{
|
|
||||||
UINT8 *rom = memory_region(machine, "maincpu");
|
|
||||||
if (read_or_write)
|
|
||||||
/* the EEROM lives in the uppermost 8k of the top bank */
|
|
||||||
mame_fwrite(file, &rom[0x10000 + 15 * 0x4000 + 0x2000], 0x2000);
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (file)
|
|
||||||
mame_fread(file, &rom[0x10000 + 15 * 0x4000 + 0x2000], 0x2000);
|
|
||||||
else
|
|
||||||
memset(&rom[0x10000 + 15 * 0x4000 + 0x2000], 0, 0x2000);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*************************************
|
/*************************************
|
||||||
*
|
*
|
||||||
* Coin handling
|
* Coin handling
|
||||||
@ -453,6 +432,13 @@ static WRITE8_HANDLER( topsecex_yscroll_w )
|
|||||||
*
|
*
|
||||||
*************************************/
|
*************************************/
|
||||||
|
|
||||||
|
static MACHINE_START( exidy440 )
|
||||||
|
{
|
||||||
|
/* the EEROM lives in the uppermost 8k of the top bank */
|
||||||
|
UINT8 *rom = memory_region(machine, "maincpu");
|
||||||
|
machine->device<nvram_device>("nvram")->set_base(&rom[0x10000 + 15 * 0x4000 + 0x2000], 0x2000);
|
||||||
|
}
|
||||||
|
|
||||||
static MACHINE_RESET( exidy440 )
|
static MACHINE_RESET( exidy440 )
|
||||||
{
|
{
|
||||||
exidy440_bank = 0xff;
|
exidy440_bank = 0xff;
|
||||||
@ -1004,8 +990,9 @@ static MACHINE_CONFIG_START( exidy440, driver_device )
|
|||||||
MDRV_CPU_PROGRAM_MAP(exidy440_map)
|
MDRV_CPU_PROGRAM_MAP(exidy440_map)
|
||||||
MDRV_CPU_VBLANK_INT("screen", exidy440_vblank_interrupt)
|
MDRV_CPU_VBLANK_INT("screen", exidy440_vblank_interrupt)
|
||||||
|
|
||||||
|
MDRV_MACHINE_START(exidy440)
|
||||||
MDRV_MACHINE_RESET(exidy440)
|
MDRV_MACHINE_RESET(exidy440)
|
||||||
MDRV_NVRAM_HANDLER(exidy440)
|
MDRV_NVRAM_ADD_0FILL("nvram")
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MDRV_FRAGMENT_ADD(exidy440_video)
|
MDRV_FRAGMENT_ADD(exidy440_video)
|
||||||
|
@ -351,6 +351,7 @@ Notes:
|
|||||||
#include "cpu/m6809/m6809.h"
|
#include "cpu/m6809/m6809.h"
|
||||||
#include "cpu/m68000/m68000.h"
|
#include "cpu/m68000/m68000.h"
|
||||||
#include "machine/6522via.h"
|
#include "machine/6522via.h"
|
||||||
|
#include "machine/nvram.h"
|
||||||
#include "machine/ticket.h"
|
#include "machine/ticket.h"
|
||||||
#include "includes/itech32.h"
|
#include "includes/itech32.h"
|
||||||
#include "sound/es5506.h"
|
#include "sound/es5506.h"
|
||||||
@ -379,9 +380,6 @@ static UINT8 sound_int_state;
|
|||||||
|
|
||||||
static UINT16 *main_rom;
|
static UINT16 *main_rom;
|
||||||
static UINT16 *main_ram;
|
static UINT16 *main_ram;
|
||||||
static size_t main_ram_size;
|
|
||||||
static UINT32 *nvram;
|
|
||||||
static size_t nvram_size;
|
|
||||||
|
|
||||||
static offs_t itech020_prot_address;
|
static offs_t itech020_prot_address;
|
||||||
|
|
||||||
@ -909,39 +907,16 @@ static READ32_DEVICE_HANDLER( timekeeper_32be_r )
|
|||||||
*
|
*
|
||||||
*************************************/
|
*************************************/
|
||||||
|
|
||||||
static NVRAM_HANDLER( itech32 )
|
void itech32_state::nvram_init(nvram_device &nvram, void *base, size_t length)
|
||||||
{
|
{
|
||||||
int i;
|
// if nvram is the main RAM, don't overwrite exception vectors
|
||||||
|
int start = (base == main_ram) ? 0x80 : 0x00;
|
||||||
|
for (int i = start; i < length; i++)
|
||||||
|
((UINT8 *)base)[i] = mame_rand(machine);
|
||||||
|
|
||||||
if (read_or_write)
|
// due to accessing uninitialized RAM, we need this hack
|
||||||
mame_fwrite(file, main_ram, main_ram_size);
|
if (is_drivedge)
|
||||||
else if (file)
|
((UINT32 *)main_ram)[0x2ce4/4] = 0x0000001e;
|
||||||
mame_fread(file, main_ram, main_ram_size);
|
|
||||||
else
|
|
||||||
{
|
|
||||||
for (i = 0x80; i < main_ram_size; i++)
|
|
||||||
((UINT8 *)main_ram)[i] = mame_rand(machine);
|
|
||||||
|
|
||||||
/* due to accessing uninitialized RAM, we need this hack */
|
|
||||||
if (is_drivedge)
|
|
||||||
((UINT32 *)main_ram)[0x2ce4/4] = 0x0000001e;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static NVRAM_HANDLER( itech020 )
|
|
||||||
{
|
|
||||||
int i;
|
|
||||||
|
|
||||||
if (read_or_write)
|
|
||||||
mame_fwrite(file, nvram, nvram_size);
|
|
||||||
else if (file)
|
|
||||||
mame_fread(file, nvram, nvram_size);
|
|
||||||
else
|
|
||||||
{
|
|
||||||
for (i = 0; i < nvram_size; i++)
|
|
||||||
((UINT8 *)nvram)[i] = mame_rand(machine);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -953,7 +928,7 @@ static NVRAM_HANDLER( itech020 )
|
|||||||
|
|
||||||
/*------ Time Killers memory layout ------*/
|
/*------ Time Killers memory layout ------*/
|
||||||
static ADDRESS_MAP_START( timekill_map, ADDRESS_SPACE_PROGRAM, 16 )
|
static ADDRESS_MAP_START( timekill_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||||
AM_RANGE(0x000000, 0x003fff) AM_RAM AM_BASE(&main_ram) AM_SIZE(&main_ram_size)
|
AM_RANGE(0x000000, 0x003fff) AM_RAM AM_BASE(&main_ram) AM_SHARE("nvram")
|
||||||
AM_RANGE(0x040000, 0x040001) AM_READ_PORT("P1")
|
AM_RANGE(0x040000, 0x040001) AM_READ_PORT("P1")
|
||||||
AM_RANGE(0x048000, 0x048001) AM_READ_PORT("P2")
|
AM_RANGE(0x048000, 0x048001) AM_READ_PORT("P2")
|
||||||
AM_RANGE(0x050000, 0x050001) AM_READ_PORT("SYSTEM") AM_WRITE(timekill_intensity_w)
|
AM_RANGE(0x050000, 0x050001) AM_READ_PORT("SYSTEM") AM_WRITE(timekill_intensity_w)
|
||||||
@ -971,7 +946,7 @@ ADDRESS_MAP_END
|
|||||||
|
|
||||||
/*------ BloodStorm and later games memory layout ------*/
|
/*------ BloodStorm and later games memory layout ------*/
|
||||||
static ADDRESS_MAP_START( bloodstm_map, ADDRESS_SPACE_PROGRAM, 16 )
|
static ADDRESS_MAP_START( bloodstm_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||||
AM_RANGE(0x000000, 0x00ffff) AM_RAM AM_BASE(&main_ram) AM_SIZE(&main_ram_size)
|
AM_RANGE(0x000000, 0x00ffff) AM_RAM AM_BASE(&main_ram) AM_SHARE("nvram")
|
||||||
AM_RANGE(0x080000, 0x080001) AM_READ_PORT("P1") AM_WRITE(int1_ack_w)
|
AM_RANGE(0x080000, 0x080001) AM_READ_PORT("P1") AM_WRITE(int1_ack_w)
|
||||||
AM_RANGE(0x100000, 0x100001) AM_READ_PORT("P2")
|
AM_RANGE(0x100000, 0x100001) AM_READ_PORT("P2")
|
||||||
AM_RANGE(0x180000, 0x180001) AM_READ_PORT("P3")
|
AM_RANGE(0x180000, 0x180001) AM_READ_PORT("P3")
|
||||||
@ -1036,7 +1011,7 @@ static ADDRESS_MAP_START( drivedge_map, ADDRESS_SPACE_PROGRAM, 32 )
|
|||||||
AM_RANGE(0x000100, 0x0003ff) AM_MIRROR(0x40000) AM_READWRITE(test1_r, test1_w)
|
AM_RANGE(0x000100, 0x0003ff) AM_MIRROR(0x40000) AM_READWRITE(test1_r, test1_w)
|
||||||
AM_RANGE(0x000c00, 0x007fff) AM_MIRROR(0x40000) AM_READWRITE(test2_r, test2_w)
|
AM_RANGE(0x000c00, 0x007fff) AM_MIRROR(0x40000) AM_READWRITE(test2_r, test2_w)
|
||||||
#endif
|
#endif
|
||||||
AM_RANGE(0x000000, 0x03ffff) AM_MIRROR(0x40000) AM_RAM AM_BASE((UINT32 **)&main_ram) AM_SIZE(&main_ram_size)
|
AM_RANGE(0x000000, 0x03ffff) AM_MIRROR(0x40000) AM_RAM AM_BASE((UINT32 **)&main_ram) AM_SHARE("nvram")
|
||||||
AM_RANGE(0x080000, 0x080003) AM_READ_PORT("80000")
|
AM_RANGE(0x080000, 0x080003) AM_READ_PORT("80000")
|
||||||
AM_RANGE(0x082000, 0x082003) AM_READ_PORT("82000")
|
AM_RANGE(0x082000, 0x082003) AM_READ_PORT("82000")
|
||||||
AM_RANGE(0x084000, 0x084003) AM_READWRITE(sound_data32_r, sound_data32_w)
|
AM_RANGE(0x084000, 0x084003) AM_READWRITE(sound_data32_r, sound_data32_w)
|
||||||
@ -1073,7 +1048,7 @@ ADDRESS_MAP_END
|
|||||||
|
|
||||||
/*------ 68EC020-based memory layout ------*/
|
/*------ 68EC020-based memory layout ------*/
|
||||||
static ADDRESS_MAP_START( itech020_map, ADDRESS_SPACE_PROGRAM, 32 )
|
static ADDRESS_MAP_START( itech020_map, ADDRESS_SPACE_PROGRAM, 32 )
|
||||||
AM_RANGE(0x000000, 0x007fff) AM_RAM AM_BASE((UINT32 **)&main_ram) AM_SIZE(&main_ram_size)
|
AM_RANGE(0x000000, 0x007fff) AM_RAM AM_BASE((UINT32 **)&main_ram)
|
||||||
AM_RANGE(0x080000, 0x080003) AM_READ_PORT("P1") AM_WRITE(int1_ack32_w)
|
AM_RANGE(0x080000, 0x080003) AM_READ_PORT("P1") AM_WRITE(int1_ack32_w)
|
||||||
AM_RANGE(0x100000, 0x100003) AM_READ_PORT("P2")
|
AM_RANGE(0x100000, 0x100003) AM_READ_PORT("P2")
|
||||||
AM_RANGE(0x180000, 0x180003) AM_READ_PORT("P3")
|
AM_RANGE(0x180000, 0x180003) AM_READ_PORT("P3")
|
||||||
@ -1086,7 +1061,7 @@ static ADDRESS_MAP_START( itech020_map, ADDRESS_SPACE_PROGRAM, 32 )
|
|||||||
AM_RANGE(0x500000, 0x5000ff) AM_READWRITE(itech020_video_r, itech020_video_w) AM_BASE((UINT32 **)&itech32_video)
|
AM_RANGE(0x500000, 0x5000ff) AM_READWRITE(itech020_video_r, itech020_video_w) AM_BASE((UINT32 **)&itech32_video)
|
||||||
AM_RANGE(0x578000, 0x57ffff) AM_READNOP /* touched by protection */
|
AM_RANGE(0x578000, 0x57ffff) AM_READNOP /* touched by protection */
|
||||||
AM_RANGE(0x580000, 0x59ffff) AM_RAM_WRITE(itech020_paletteram_w) AM_BASE_GENERIC(paletteram)
|
AM_RANGE(0x580000, 0x59ffff) AM_RAM_WRITE(itech020_paletteram_w) AM_BASE_GENERIC(paletteram)
|
||||||
AM_RANGE(0x600000, 0x603fff) AM_RAM AM_BASE(&nvram) AM_SIZE(&nvram_size)
|
AM_RANGE(0x600000, 0x603fff) AM_RAM AM_SHARE("nvram")
|
||||||
/* ? */ AM_RANGE(0x61ff00, 0x61ffff) AM_WRITENOP /* Unknown Writes */
|
/* ? */ AM_RANGE(0x61ff00, 0x61ffff) AM_WRITENOP /* Unknown Writes */
|
||||||
AM_RANGE(0x680000, 0x680003) AM_READ(itech020_prot_result_r) AM_WRITENOP
|
AM_RANGE(0x680000, 0x680003) AM_READ(itech020_prot_result_r) AM_WRITENOP
|
||||||
/* ! */ AM_RANGE(0x680800, 0x68083f) AM_READONLY AM_WRITENOP /* Serial DUART Channel A/B & Top LED sign - To Do! */
|
/* ! */ AM_RANGE(0x680800, 0x68083f) AM_READONLY AM_WRITENOP /* Serial DUART Channel A/B & Top LED sign - To Do! */
|
||||||
@ -1739,7 +1714,7 @@ static MACHINE_CONFIG_START( timekill, itech32_state )
|
|||||||
MDRV_CPU_PROGRAM_MAP(sound_map)
|
MDRV_CPU_PROGRAM_MAP(sound_map)
|
||||||
|
|
||||||
MDRV_MACHINE_RESET(itech32)
|
MDRV_MACHINE_RESET(itech32)
|
||||||
MDRV_NVRAM_HANDLER(itech32)
|
MDRV_NVRAM_ADD_CUSTOM("nvram", itech32_state, nvram_init)
|
||||||
|
|
||||||
MDRV_TICKET_DISPENSER_ADD("ticket", 200, TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_HIGH)
|
MDRV_TICKET_DISPENSER_ADD("ticket", 200, TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_HIGH)
|
||||||
|
|
||||||
@ -1810,8 +1785,6 @@ static MACHINE_CONFIG_DERIVED( sftm, bloodstm )
|
|||||||
MDRV_CPU_PROGRAM_MAP(sound_020_map)
|
MDRV_CPU_PROGRAM_MAP(sound_020_map)
|
||||||
MDRV_CPU_VBLANK_INT_HACK(irq1_line_assert,4)
|
MDRV_CPU_VBLANK_INT_HACK(irq1_line_assert,4)
|
||||||
|
|
||||||
MDRV_NVRAM_HANDLER(itech020)
|
|
||||||
|
|
||||||
/* via */
|
/* via */
|
||||||
MDRV_DEVICE_REMOVE("via6522_0")
|
MDRV_DEVICE_REMOVE("via6522_0")
|
||||||
MACHINE_CONFIG_END
|
MACHINE_CONFIG_END
|
||||||
|
@ -501,6 +501,7 @@
|
|||||||
#include "cpu/m6809/m6809.h"
|
#include "cpu/m6809/m6809.h"
|
||||||
#include "machine/6821pia.h"
|
#include "machine/6821pia.h"
|
||||||
#include "machine/6522via.h"
|
#include "machine/6522via.h"
|
||||||
|
#include "machine/nvram.h"
|
||||||
#include "machine/ticket.h"
|
#include "machine/ticket.h"
|
||||||
#include "video/tms34061.h"
|
#include "video/tms34061.h"
|
||||||
#include "video/tlc34076.h"
|
#include "video/tlc34076.h"
|
||||||
@ -533,9 +534,6 @@ static UINT8 sound_data;
|
|||||||
static UINT8 pia_porta_data;
|
static UINT8 pia_porta_data;
|
||||||
static UINT8 pia_portb_data;
|
static UINT8 pia_portb_data;
|
||||||
|
|
||||||
static UINT8 *main_ram;
|
|
||||||
static size_t main_ram_size;
|
|
||||||
|
|
||||||
static const rectangle *visarea;
|
static const rectangle *visarea;
|
||||||
|
|
||||||
|
|
||||||
@ -859,27 +857,6 @@ static WRITE16_HANDLER( palette16_w )
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*************************************
|
|
||||||
*
|
|
||||||
* NVRAM read/write
|
|
||||||
*
|
|
||||||
*************************************/
|
|
||||||
|
|
||||||
static NVRAM_HANDLER( itech8 )
|
|
||||||
{
|
|
||||||
int i;
|
|
||||||
|
|
||||||
if (read_or_write)
|
|
||||||
mame_fwrite(file, main_ram, main_ram_size);
|
|
||||||
else if (file)
|
|
||||||
mame_fread(file, main_ram, main_ram_size);
|
|
||||||
else
|
|
||||||
for (i = 0; i < main_ram_size; i++)
|
|
||||||
main_ram[i] = mame_rand(machine);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*************************************
|
/*************************************
|
||||||
*
|
*
|
||||||
* Main CPU memory handlers
|
* Main CPU memory handlers
|
||||||
@ -897,7 +874,7 @@ static ADDRESS_MAP_START( tmslo_map, ADDRESS_SPACE_PROGRAM, 8 )
|
|||||||
AM_RANGE(0x11a0, 0x11a0) AM_WRITE(itech8_nmi_ack_w)
|
AM_RANGE(0x11a0, 0x11a0) AM_WRITE(itech8_nmi_ack_w)
|
||||||
AM_RANGE(0x11c0, 0x11df) AM_READWRITE(itech8_blitter_r, blitter_w)
|
AM_RANGE(0x11c0, 0x11df) AM_READWRITE(itech8_blitter_r, blitter_w)
|
||||||
AM_RANGE(0x11e0, 0x11ff) AM_WRITE(itech8_palette_w)
|
AM_RANGE(0x11e0, 0x11ff) AM_WRITE(itech8_palette_w)
|
||||||
AM_RANGE(0x2000, 0x3fff) AM_RAM AM_BASE(&main_ram) AM_SIZE(&main_ram_size)
|
AM_RANGE(0x2000, 0x3fff) AM_RAM AM_SHARE("nvram")
|
||||||
AM_RANGE(0x4000, 0xffff) AM_ROMBANK("bank1")
|
AM_RANGE(0x4000, 0xffff) AM_ROMBANK("bank1")
|
||||||
ADDRESS_MAP_END
|
ADDRESS_MAP_END
|
||||||
|
|
||||||
@ -913,7 +890,7 @@ static ADDRESS_MAP_START( tmshi_map, ADDRESS_SPACE_PROGRAM, 8 )
|
|||||||
AM_RANGE(0x01a0, 0x01a0) AM_WRITE(itech8_nmi_ack_w)
|
AM_RANGE(0x01a0, 0x01a0) AM_WRITE(itech8_nmi_ack_w)
|
||||||
AM_RANGE(0x01c0, 0x01df) AM_READWRITE(itech8_blitter_r, blitter_w)
|
AM_RANGE(0x01c0, 0x01df) AM_READWRITE(itech8_blitter_r, blitter_w)
|
||||||
AM_RANGE(0x01e0, 0x01ff) AM_WRITE(itech8_palette_w)
|
AM_RANGE(0x01e0, 0x01ff) AM_WRITE(itech8_palette_w)
|
||||||
AM_RANGE(0x2000, 0x3fff) AM_RAM AM_BASE(&main_ram) AM_SIZE(&main_ram_size)
|
AM_RANGE(0x2000, 0x3fff) AM_RAM AM_SHARE("nvram")
|
||||||
AM_RANGE(0x4000, 0xffff) AM_ROMBANK("bank1")
|
AM_RANGE(0x4000, 0xffff) AM_ROMBANK("bank1")
|
||||||
ADDRESS_MAP_END
|
ADDRESS_MAP_END
|
||||||
|
|
||||||
@ -929,7 +906,7 @@ static ADDRESS_MAP_START( gtg2_map, ADDRESS_SPACE_PROGRAM, 8 )
|
|||||||
AM_RANGE(0x01c0, 0x01c0) AM_WRITE(gtg2_sound_data_w)
|
AM_RANGE(0x01c0, 0x01c0) AM_WRITE(gtg2_sound_data_w)
|
||||||
AM_RANGE(0x01e0, 0x01e0) AM_WRITE(tms34061_latch_w)
|
AM_RANGE(0x01e0, 0x01e0) AM_WRITE(tms34061_latch_w)
|
||||||
AM_RANGE(0x1000, 0x1fff) AM_READWRITE(itech8_tms34061_r, itech8_tms34061_w)
|
AM_RANGE(0x1000, 0x1fff) AM_READWRITE(itech8_tms34061_r, itech8_tms34061_w)
|
||||||
AM_RANGE(0x2000, 0x3fff) AM_RAM AM_BASE(&main_ram) AM_SIZE(&main_ram_size)
|
AM_RANGE(0x2000, 0x3fff) AM_RAM AM_SHARE("nvram")
|
||||||
AM_RANGE(0x4000, 0xffff) AM_ROMBANK("bank1")
|
AM_RANGE(0x4000, 0xffff) AM_ROMBANK("bank1")
|
||||||
ADDRESS_MAP_END
|
ADDRESS_MAP_END
|
||||||
|
|
||||||
@ -937,7 +914,7 @@ ADDRESS_MAP_END
|
|||||||
/*------ Ninja Clowns layout ------*/
|
/*------ Ninja Clowns layout ------*/
|
||||||
static ADDRESS_MAP_START( ninclown_map, ADDRESS_SPACE_PROGRAM, 16 )
|
static ADDRESS_MAP_START( ninclown_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||||
AM_RANGE(0x000000, 0x00007f) AM_RAM AM_REGION("maincpu", 0)
|
AM_RANGE(0x000000, 0x00007f) AM_RAM AM_REGION("maincpu", 0)
|
||||||
AM_RANGE(0x000080, 0x003fff) AM_RAM AM_BASE((UINT16 **)&main_ram) AM_SIZE(&main_ram_size)
|
AM_RANGE(0x000080, 0x003fff) AM_RAM AM_SHARE("nvram")
|
||||||
AM_RANGE(0x004000, 0x07ffff) AM_ROM
|
AM_RANGE(0x004000, 0x07ffff) AM_ROM
|
||||||
AM_RANGE(0x100080, 0x100081) AM_WRITE8(sound_data_w, 0xff00)
|
AM_RANGE(0x100080, 0x100081) AM_WRITE8(sound_data_w, 0xff00)
|
||||||
AM_RANGE(0x100100, 0x100101) AM_READ_PORT("40") AM_WRITE(grom_bank16_w) AM_BASE((UINT16 **)&itech8_grom_bank)
|
AM_RANGE(0x100100, 0x100101) AM_READ_PORT("40") AM_WRITE(grom_bank16_w) AM_BASE((UINT16 **)&itech8_grom_bank)
|
||||||
@ -1722,7 +1699,7 @@ static MACHINE_CONFIG_START( itech8_core_lo, driver_device )
|
|||||||
MDRV_CPU_VBLANK_INT("screen", generate_nmi)
|
MDRV_CPU_VBLANK_INT("screen", generate_nmi)
|
||||||
|
|
||||||
MDRV_MACHINE_RESET(itech8)
|
MDRV_MACHINE_RESET(itech8)
|
||||||
MDRV_NVRAM_HANDLER(itech8)
|
MDRV_NVRAM_ADD_RANDOM_FILL("nvram")
|
||||||
|
|
||||||
MDRV_TICKET_DISPENSER_ADD("ticket", 200, TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_LOW)
|
MDRV_TICKET_DISPENSER_ADD("ticket", 200, TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_LOW)
|
||||||
|
|
||||||
|
@ -169,24 +169,6 @@ static CUSTOM_INPUT( adpcm_irq_state_r )
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*************************************
|
|
||||||
*
|
|
||||||
* CMOS read/write
|
|
||||||
*
|
|
||||||
*************************************/
|
|
||||||
|
|
||||||
static NVRAM_HANDLER( midyunit )
|
|
||||||
{
|
|
||||||
if (read_or_write)
|
|
||||||
mame_fwrite(file, midyunit_cmos_ram, 0x8000);
|
|
||||||
else if (file)
|
|
||||||
mame_fread(file, midyunit_cmos_ram, 0x8000);
|
|
||||||
else
|
|
||||||
memset(midyunit_cmos_ram, 0, 0x8000);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*************************************
|
/*************************************
|
||||||
*
|
*
|
||||||
* Memory maps
|
* Memory maps
|
||||||
@ -1022,7 +1004,7 @@ static MACHINE_CONFIG_START( zunit, driver_device )
|
|||||||
MDRV_CPU_PROGRAM_MAP(main_map)
|
MDRV_CPU_PROGRAM_MAP(main_map)
|
||||||
|
|
||||||
MDRV_MACHINE_RESET(midyunit)
|
MDRV_MACHINE_RESET(midyunit)
|
||||||
MDRV_NVRAM_HANDLER(midyunit)
|
MDRV_NVRAM_ADD_0FILL("nvram")
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MDRV_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE)
|
MDRV_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE)
|
||||||
@ -1055,7 +1037,7 @@ static MACHINE_CONFIG_START( yunit_core, driver_device )
|
|||||||
MDRV_CPU_PROGRAM_MAP(main_map)
|
MDRV_CPU_PROGRAM_MAP(main_map)
|
||||||
|
|
||||||
MDRV_MACHINE_RESET(midyunit)
|
MDRV_MACHINE_RESET(midyunit)
|
||||||
MDRV_NVRAM_HANDLER(midyunit)
|
MDRV_NVRAM_ADD_0FILL("nvram")
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MDRV_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE)
|
MDRV_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE)
|
||||||
|
@ -57,8 +57,6 @@ static UINT8 keypad_select;
|
|||||||
static UINT8 bitlatch[10];
|
static UINT8 bitlatch[10];
|
||||||
|
|
||||||
static UINT32 *ram_base;
|
static UINT32 *ram_base;
|
||||||
static UINT32 *zpram;
|
|
||||||
static size_t zpram_size;
|
|
||||||
static UINT8 cmos_protected;
|
static UINT8 cmos_protected;
|
||||||
|
|
||||||
static UINT32 *linkram;
|
static UINT32 *linkram;
|
||||||
@ -181,38 +179,22 @@ static WRITE32_DEVICE_HANDLER( zeus2_timekeeper_w )
|
|||||||
|
|
||||||
static READ32_HANDLER( zpram_r )
|
static READ32_HANDLER( zpram_r )
|
||||||
{
|
{
|
||||||
return zpram[offset] | 0xffffff00;
|
midzeus_state *state = space->machine->driver_data<midzeus_state>();
|
||||||
|
return state->m_nvram[offset] | 0xffffff00;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static WRITE32_HANDLER( zpram_w )
|
static WRITE32_HANDLER( zpram_w )
|
||||||
{
|
{
|
||||||
|
midzeus_state *state = space->machine->driver_data<midzeus_state>();
|
||||||
if (bitlatch[2])
|
if (bitlatch[2])
|
||||||
COMBINE_DATA(&zpram[offset]);
|
COMBINE_DATA(&state->m_nvram[offset]);
|
||||||
else
|
else
|
||||||
logerror("%06X:zpram_w with bitlatch[2] = %d\n", cpu_get_pc(space->cpu), bitlatch[2]);
|
logerror("%06X:zpram_w with bitlatch[2] = %d\n", cpu_get_pc(space->cpu), bitlatch[2]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*************************************
|
|
||||||
*
|
|
||||||
* NVRAM handler (Zeus 2 only)
|
|
||||||
*
|
|
||||||
*************************************/
|
|
||||||
|
|
||||||
static NVRAM_HANDLER( midzeus2 )
|
|
||||||
{
|
|
||||||
if (read_or_write)
|
|
||||||
mame_fwrite(file, zpram, zpram_size);
|
|
||||||
else if (file)
|
|
||||||
mame_fread(file, zpram, zpram_size);
|
|
||||||
else
|
|
||||||
memset(zpram, 0xff, zpram_size);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*************************************
|
/*************************************
|
||||||
*
|
*
|
||||||
* Miscellaneous bit latches
|
* Miscellaneous bit latches
|
||||||
@ -608,7 +590,7 @@ static ADDRESS_MAP_START( zeus2_map, ADDRESS_SPACE_PROGRAM, 32 )
|
|||||||
AM_RANGE(0x880000, 0x88007f) AM_READWRITE(zeus2_r, zeus2_w) AM_BASE(&zeusbase)
|
AM_RANGE(0x880000, 0x88007f) AM_READWRITE(zeus2_r, zeus2_w) AM_BASE(&zeusbase)
|
||||||
AM_RANGE(0x8a0000, 0x8a003f) AM_READWRITE(linkram_r, linkram_w) AM_BASE(&linkram)
|
AM_RANGE(0x8a0000, 0x8a003f) AM_READWRITE(linkram_r, linkram_w) AM_BASE(&linkram)
|
||||||
AM_RANGE(0x8d0000, 0x8d000a) AM_READWRITE(bitlatches_r, bitlatches_w)
|
AM_RANGE(0x8d0000, 0x8d000a) AM_READWRITE(bitlatches_r, bitlatches_w)
|
||||||
AM_RANGE(0x900000, 0x91ffff) AM_READWRITE(zpram_r, zpram_w) AM_BASE(&zpram) AM_SIZE(&zpram_size) AM_MIRROR(0x020000)
|
AM_RANGE(0x900000, 0x91ffff) AM_READWRITE(zpram_r, zpram_w) AM_SHARE("nvram") AM_MIRROR(0x020000)
|
||||||
AM_RANGE(0x990000, 0x99000f) AM_READWRITE(midway_ioasic_r, midway_ioasic_w)
|
AM_RANGE(0x990000, 0x99000f) AM_READWRITE(midway_ioasic_r, midway_ioasic_w)
|
||||||
AM_RANGE(0x9c0000, 0x9c000f) AM_READWRITE(analog_r, analog_w)
|
AM_RANGE(0x9c0000, 0x9c000f) AM_READWRITE(analog_r, analog_w)
|
||||||
AM_RANGE(0x9e0000, 0x9e0000) AM_WRITENOP // watchdog?
|
AM_RANGE(0x9e0000, 0x9e0000) AM_WRITENOP // watchdog?
|
||||||
@ -1151,7 +1133,7 @@ static MACHINE_CONFIG_DERIVED( invasn, midzeus )
|
|||||||
MDRV_CPU_IO_MAP(pic_io_map)
|
MDRV_CPU_IO_MAP(pic_io_map)
|
||||||
MACHINE_CONFIG_END
|
MACHINE_CONFIG_END
|
||||||
|
|
||||||
static MACHINE_CONFIG_START( midzeus2, driver_device )
|
static MACHINE_CONFIG_START( midzeus2, midzeus_state )
|
||||||
|
|
||||||
/* basic machine hardware */
|
/* basic machine hardware */
|
||||||
MDRV_CPU_ADD("maincpu", TMS32032, CPU_CLOCK)
|
MDRV_CPU_ADD("maincpu", TMS32032, CPU_CLOCK)
|
||||||
@ -1160,7 +1142,7 @@ static MACHINE_CONFIG_START( midzeus2, driver_device )
|
|||||||
|
|
||||||
MDRV_MACHINE_START(midzeus)
|
MDRV_MACHINE_START(midzeus)
|
||||||
MDRV_MACHINE_RESET(midzeus)
|
MDRV_MACHINE_RESET(midzeus)
|
||||||
MDRV_NVRAM_HANDLER(midzeus2)
|
MDRV_NVRAM_ADD_1FILL("nvram")
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MDRV_SCREEN_ADD("screen", RASTER)
|
MDRV_SCREEN_ADD("screen", RASTER)
|
||||||
|
@ -89,6 +89,7 @@
|
|||||||
#include "emu.h"
|
#include "emu.h"
|
||||||
#include "deprecat.h"
|
#include "deprecat.h"
|
||||||
#include "machine/eeprom.h"
|
#include "machine/eeprom.h"
|
||||||
|
#include "machine/nvram.h"
|
||||||
#include "video/segaic24.h"
|
#include "video/segaic24.h"
|
||||||
#include "cpu/i960/i960.h"
|
#include "cpu/i960/i960.h"
|
||||||
#include "cpu/m68000/m68000.h"
|
#include "cpu/m68000/m68000.h"
|
||||||
@ -101,7 +102,7 @@
|
|||||||
#include "includes/model2.h"
|
#include "includes/model2.h"
|
||||||
|
|
||||||
UINT32 *model2_bufferram, *model2_colorxlat;
|
UINT32 *model2_bufferram, *model2_colorxlat;
|
||||||
static UINT32 *model2_workram, *model2_backup1, *model2_backup2;
|
static UINT32 *model2_workram;
|
||||||
UINT32 *model2_textureram0, *model2_textureram1, *model2_lumaram;
|
UINT32 *model2_textureram0, *model2_textureram1, *model2_lumaram;
|
||||||
UINT32 *model2_paletteram32;
|
UINT32 *model2_paletteram32;
|
||||||
static UINT32 model2_intreq;
|
static UINT32 model2_intreq;
|
||||||
@ -278,34 +279,6 @@ static void copro_fifoout_push(running_device *device, UINT32 data)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static NVRAM_HANDLER( model2 )
|
|
||||||
{
|
|
||||||
if (read_or_write)
|
|
||||||
{
|
|
||||||
mame_fwrite(file, model2_backup1, 0x3fff);
|
|
||||||
if (model2_backup2)
|
|
||||||
mame_fwrite(file, model2_backup2, 0xff);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (file)
|
|
||||||
{
|
|
||||||
mame_fread(file, model2_backup1, 0x3fff);
|
|
||||||
if (model2_backup2)
|
|
||||||
mame_fread(file, model2_backup2, 0xff);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
/* Virtua Striker needs the nvram to be defaulted with 1s or the ranking gets un-inited. */
|
|
||||||
memset(model2_backup1, 0xff, 0x4000);
|
|
||||||
if (model2_backup2)
|
|
||||||
memset(model2_backup2, 0xff, 0x100);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Timers - these count down at 25 MHz and pull IRQ2 when they hit 0 */
|
/* Timers - these count down at 25 MHz and pull IRQ2 when they hit 0 */
|
||||||
static READ32_HANDLER( timers_r )
|
static READ32_HANDLER( timers_r )
|
||||||
{
|
{
|
||||||
@ -1402,7 +1375,7 @@ static ADDRESS_MAP_START( model2_base_mem, ADDRESS_SPACE_PROGRAM, 32 )
|
|||||||
AM_RANGE(0x01810000, 0x0181bfff) AM_RAM AM_BASE(&model2_colorxlat)
|
AM_RANGE(0x01810000, 0x0181bfff) AM_RAM AM_BASE(&model2_colorxlat)
|
||||||
AM_RANGE(0x0181c000, 0x0181c003) AM_WRITE(model2_3d_zclip_w)
|
AM_RANGE(0x0181c000, 0x0181c003) AM_WRITE(model2_3d_zclip_w)
|
||||||
AM_RANGE(0x01a10000, 0x01a1ffff) AM_READWRITE(network_r, network_w)
|
AM_RANGE(0x01a10000, 0x01a1ffff) AM_READWRITE(network_r, network_w)
|
||||||
AM_RANGE(0x01d00000, 0x01d03fff) AM_RAM AM_BASE( &model2_backup1 ) // Backup sram
|
AM_RANGE(0x01d00000, 0x01d03fff) AM_RAM AM_SHARE("backup1") // Backup sram
|
||||||
AM_RANGE(0x02000000, 0x03ffffff) AM_ROM AM_REGION("user1", 0)
|
AM_RANGE(0x02000000, 0x03ffffff) AM_ROM AM_REGION("user1", 0)
|
||||||
|
|
||||||
// "extra" data
|
// "extra" data
|
||||||
@ -1439,7 +1412,7 @@ static ADDRESS_MAP_START( model2o_mem, ADDRESS_SPACE_PROGRAM, 32 )
|
|||||||
AM_RANGE(0x01c00014, 0x01c00017) AM_READ_PORT("1c00014")
|
AM_RANGE(0x01c00014, 0x01c00017) AM_READ_PORT("1c00014")
|
||||||
AM_RANGE(0x01c0001c, 0x01c0001f) AM_READ( desert_unk_r )
|
AM_RANGE(0x01c0001c, 0x01c0001f) AM_READ( desert_unk_r )
|
||||||
AM_RANGE(0x01c00040, 0x01c00043) AM_READ( daytona_unk_r )
|
AM_RANGE(0x01c00040, 0x01c00043) AM_READ( daytona_unk_r )
|
||||||
AM_RANGE(0x01c00200, 0x01c002ff) AM_RAM AM_BASE( &model2_backup2 )
|
AM_RANGE(0x01c00200, 0x01c002ff) AM_RAM AM_SHARE("backup2")
|
||||||
AM_RANGE(0x01c80000, 0x01c80003) AM_READWRITE( model2_serial_r, model2o_serial_w )
|
AM_RANGE(0x01c80000, 0x01c80003) AM_READWRITE( model2_serial_r, model2o_serial_w )
|
||||||
|
|
||||||
AM_IMPORT_FROM(model2_base_mem)
|
AM_IMPORT_FROM(model2_base_mem)
|
||||||
@ -2024,7 +1997,8 @@ static MACHINE_CONFIG_START( model2o, driver_device )
|
|||||||
MDRV_MACHINE_RESET(model2o)
|
MDRV_MACHINE_RESET(model2o)
|
||||||
|
|
||||||
MDRV_EEPROM_93C46_ADD("eeprom")
|
MDRV_EEPROM_93C46_ADD("eeprom")
|
||||||
MDRV_NVRAM_HANDLER( model2 )
|
MDRV_NVRAM_ADD_1FILL("backup1")
|
||||||
|
MDRV_NVRAM_ADD_1FILL("backup2")
|
||||||
|
|
||||||
MDRV_TIMER_ADD("timer0", model2_timer_cb)
|
MDRV_TIMER_ADD("timer0", model2_timer_cb)
|
||||||
MDRV_TIMER_PTR((FPTR)0)
|
MDRV_TIMER_PTR((FPTR)0)
|
||||||
@ -2080,7 +2054,7 @@ static MACHINE_CONFIG_START( model2a, driver_device )
|
|||||||
MDRV_MACHINE_RESET(model2)
|
MDRV_MACHINE_RESET(model2)
|
||||||
|
|
||||||
MDRV_EEPROM_93C46_ADD("eeprom")
|
MDRV_EEPROM_93C46_ADD("eeprom")
|
||||||
MDRV_NVRAM_HANDLER( model2 )
|
MDRV_NVRAM_ADD_1FILL("backup1")
|
||||||
|
|
||||||
MDRV_TIMER_ADD("timer0", model2_timer_cb)
|
MDRV_TIMER_ADD("timer0", model2_timer_cb)
|
||||||
MDRV_TIMER_PTR((FPTR)0)
|
MDRV_TIMER_PTR((FPTR)0)
|
||||||
@ -2181,7 +2155,7 @@ static MACHINE_CONFIG_START( model2b, driver_device )
|
|||||||
MDRV_MACHINE_RESET(model2b)
|
MDRV_MACHINE_RESET(model2b)
|
||||||
|
|
||||||
MDRV_EEPROM_93C46_ADD("eeprom")
|
MDRV_EEPROM_93C46_ADD("eeprom")
|
||||||
MDRV_NVRAM_HANDLER( model2 )
|
MDRV_NVRAM_ADD_1FILL("backup1")
|
||||||
|
|
||||||
MDRV_TIMER_ADD("timer0", model2_timer_cb)
|
MDRV_TIMER_ADD("timer0", model2_timer_cb)
|
||||||
MDRV_TIMER_PTR((FPTR)0)
|
MDRV_TIMER_PTR((FPTR)0)
|
||||||
@ -2226,7 +2200,7 @@ static MACHINE_CONFIG_START( model2c, driver_device )
|
|||||||
MDRV_MACHINE_RESET(model2c)
|
MDRV_MACHINE_RESET(model2c)
|
||||||
|
|
||||||
MDRV_EEPROM_93C46_ADD("eeprom")
|
MDRV_EEPROM_93C46_ADD("eeprom")
|
||||||
MDRV_NVRAM_HANDLER( model2 )
|
MDRV_NVRAM_ADD_1FILL("backup1")
|
||||||
|
|
||||||
MDRV_TIMER_ADD("timer0", model2_timer_cb)
|
MDRV_TIMER_ADD("timer0", model2_timer_cb)
|
||||||
MDRV_TIMER_PTR((FPTR)0)
|
MDRV_TIMER_PTR((FPTR)0)
|
||||||
|
@ -603,6 +603,7 @@ ALL VROM ROMs are 16M MASK
|
|||||||
#include "cpu/powerpc/ppc.h"
|
#include "cpu/powerpc/ppc.h"
|
||||||
#include "machine/eeprom.h"
|
#include "machine/eeprom.h"
|
||||||
#include "machine/53c810.h"
|
#include "machine/53c810.h"
|
||||||
|
#include "machine/nvram.h"
|
||||||
#include "sound/scsp.h"
|
#include "sound/scsp.h"
|
||||||
#include "includes/model3.h"
|
#include "includes/model3.h"
|
||||||
|
|
||||||
@ -614,7 +615,6 @@ int model3_step;
|
|||||||
UINT32 *model3_vrom;
|
UINT32 *model3_vrom;
|
||||||
|
|
||||||
static UINT64 *work_ram;
|
static UINT64 *work_ram;
|
||||||
static UINT64 *model3_backup;
|
|
||||||
static int model3_crom_bank = 0;
|
static int model3_crom_bank = 0;
|
||||||
static int model3_controls_bank;
|
static int model3_controls_bank;
|
||||||
static UINT32 real3d_device_id;
|
static UINT32 real3d_device_id;
|
||||||
@ -1164,21 +1164,6 @@ static const eeprom_interface eeprom_intf =
|
|||||||
5 /* reset_delay (Lost World needs this, very similar to wbeachvl in playmark.c) */
|
5 /* reset_delay (Lost World needs this, very similar to wbeachvl in playmark.c) */
|
||||||
};
|
};
|
||||||
|
|
||||||
static NVRAM_HANDLER( model3 )
|
|
||||||
{
|
|
||||||
if (read_or_write)
|
|
||||||
{
|
|
||||||
mame_fwrite(file, model3_backup, 0x1ffff);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (file)
|
|
||||||
{
|
|
||||||
mame_fread(file, model3_backup, 0x1ffff);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static const SCSIConfigTable scsi_dev_table =
|
static const SCSIConfigTable scsi_dev_table =
|
||||||
{
|
{
|
||||||
1, /* 1 SCSI device */
|
1, /* 1 SCSI device */
|
||||||
@ -1792,26 +1777,19 @@ static ADDRESS_MAP_START( model3_mem, ADDRESS_SPACE_PROGRAM, 64)
|
|||||||
AM_RANGE(0x8e000000, 0x8e0fffff) AM_WRITE( real3d_display_list_w )
|
AM_RANGE(0x8e000000, 0x8e0fffff) AM_WRITE( real3d_display_list_w )
|
||||||
AM_RANGE(0x98000000, 0x980fffff) AM_WRITE( real3d_polygon_ram_w )
|
AM_RANGE(0x98000000, 0x980fffff) AM_WRITE( real3d_polygon_ram_w )
|
||||||
|
|
||||||
AM_RANGE(0xf0040000, 0xf004003f) AM_READWRITE( model3_ctrl_r, model3_ctrl_w )
|
AM_RANGE(0xf0040000, 0xf004003f) AM_MIRROR(0x0e000000) AM_READWRITE( model3_ctrl_r, model3_ctrl_w )
|
||||||
AM_RANGE(0xf0080000, 0xf0080007) AM_READWRITE( model3_sound_r, model3_sound_w )
|
AM_RANGE(0xf0080000, 0xf0080007) AM_MIRROR(0x0e000000) AM_READWRITE( model3_sound_r, model3_sound_w )
|
||||||
AM_RANGE(0xf00c0000, 0xf00dffff) AM_RAM AM_BASE(&model3_backup) /* backup SRAM */
|
AM_RANGE(0xf00c0000, 0xf00dffff) AM_MIRROR(0x0e000000) AM_RAM AM_SHARE("backup") /* backup SRAM */
|
||||||
AM_RANGE(0xf0100000, 0xf010003f) AM_READWRITE( model3_sys_r, model3_sys_w )
|
AM_RANGE(0xf0100000, 0xf010003f) AM_MIRROR(0x0e000000) AM_READWRITE( model3_sys_r, model3_sys_w )
|
||||||
AM_RANGE(0xf0140000, 0xf014003f) AM_READWRITE( model3_rtc_r, model3_rtc_w )
|
AM_RANGE(0xf0140000, 0xf014003f) AM_MIRROR(0x0e000000) AM_READWRITE( model3_rtc_r, model3_rtc_w )
|
||||||
|
AM_RANGE(0xf0180000, 0xf019ffff) AM_MIRROR(0x0e000000) AM_RAM /* Security Board RAM */
|
||||||
|
AM_RANGE(0xf01a0000, 0xf01a003f) AM_MIRROR(0x0e000000) AM_READ( model3_security_r ) /* Security board */
|
||||||
|
|
||||||
AM_RANGE(0xf1000000, 0xf10f7fff) AM_READWRITE( model3_char_r, model3_char_w ) /* character RAM */
|
AM_RANGE(0xf1000000, 0xf10f7fff) AM_READWRITE( model3_char_r, model3_char_w ) /* character RAM */
|
||||||
AM_RANGE(0xf10f8000, 0xf10fffff) AM_READWRITE( model3_tile_r, model3_tile_w ) /* tilemaps */
|
AM_RANGE(0xf10f8000, 0xf10fffff) AM_READWRITE( model3_tile_r, model3_tile_w ) /* tilemaps */
|
||||||
AM_RANGE(0xf1100000, 0xf111ffff) AM_READWRITE( model3_palette_r, model3_palette_w ) AM_BASE(&paletteram64) /* palette */
|
AM_RANGE(0xf1100000, 0xf111ffff) AM_READWRITE( model3_palette_r, model3_palette_w ) AM_BASE(&paletteram64) /* palette */
|
||||||
AM_RANGE(0xf1180000, 0xf11800ff) AM_READWRITE( model3_vid_reg_r, model3_vid_reg_w )
|
AM_RANGE(0xf1180000, 0xf11800ff) AM_READWRITE( model3_vid_reg_r, model3_vid_reg_w )
|
||||||
|
|
||||||
AM_RANGE(0xfe040000, 0xfe04003f) AM_READWRITE( model3_ctrl_r, model3_ctrl_w )
|
|
||||||
AM_RANGE(0xfe080000, 0xfe080007) AM_READWRITE( model3_sound_r, model3_sound_w )
|
|
||||||
AM_RANGE(0xfe0c0000, 0xfe0dffff) AM_RAM AM_BASE(&model3_backup) /* backup SRAM */
|
|
||||||
AM_RANGE(0xfe100000, 0xfe10003f) AM_READWRITE( model3_sys_r, model3_sys_w )
|
|
||||||
AM_RANGE(0xfe140000, 0xfe14003f) AM_READWRITE( model3_rtc_r, model3_rtc_w )
|
|
||||||
|
|
||||||
AM_RANGE(0xfe180000, 0xfe19ffff) AM_RAM /* Security Board RAM */
|
|
||||||
AM_RANGE(0xfe1a0000, 0xfe1a003f) AM_READ( model3_security_r ) /* Security board */
|
|
||||||
|
|
||||||
AM_RANGE(0xff800000, 0xffffffff) AM_ROM AM_REGION("user1", 0)
|
AM_RANGE(0xff800000, 0xffffffff) AM_ROM AM_REGION("user1", 0)
|
||||||
ADDRESS_MAP_END
|
ADDRESS_MAP_END
|
||||||
|
|
||||||
@ -5007,7 +4985,7 @@ static MACHINE_CONFIG_START( model3_10, driver_device )
|
|||||||
MDRV_MACHINE_RESET(model3_10)
|
MDRV_MACHINE_RESET(model3_10)
|
||||||
|
|
||||||
MDRV_EEPROM_ADD("eeprom", eeprom_intf)
|
MDRV_EEPROM_ADD("eeprom", eeprom_intf)
|
||||||
MDRV_NVRAM_HANDLER(model3)
|
MDRV_NVRAM_ADD_1FILL("backup")
|
||||||
|
|
||||||
|
|
||||||
MDRV_SCREEN_ADD("screen", RASTER)
|
MDRV_SCREEN_ADD("screen", RASTER)
|
||||||
@ -5047,7 +5025,7 @@ static MACHINE_CONFIG_START( model3_15, driver_device )
|
|||||||
MDRV_MACHINE_RESET(model3_15)
|
MDRV_MACHINE_RESET(model3_15)
|
||||||
|
|
||||||
MDRV_EEPROM_ADD("eeprom", eeprom_intf)
|
MDRV_EEPROM_ADD("eeprom", eeprom_intf)
|
||||||
MDRV_NVRAM_HANDLER(model3)
|
MDRV_NVRAM_ADD_1FILL("backup")
|
||||||
|
|
||||||
|
|
||||||
MDRV_SCREEN_ADD("screen", RASTER)
|
MDRV_SCREEN_ADD("screen", RASTER)
|
||||||
@ -5087,7 +5065,7 @@ static MACHINE_CONFIG_START( model3_20, driver_device )
|
|||||||
MDRV_MACHINE_RESET(model3_20)
|
MDRV_MACHINE_RESET(model3_20)
|
||||||
|
|
||||||
MDRV_EEPROM_ADD("eeprom", eeprom_intf)
|
MDRV_EEPROM_ADD("eeprom", eeprom_intf)
|
||||||
MDRV_NVRAM_HANDLER(model3)
|
MDRV_NVRAM_ADD_1FILL("backup")
|
||||||
|
|
||||||
|
|
||||||
MDRV_SCREEN_ADD("screen", RASTER)
|
MDRV_SCREEN_ADD("screen", RASTER)
|
||||||
@ -5127,7 +5105,7 @@ static MACHINE_CONFIG_START( model3_21, driver_device )
|
|||||||
MDRV_MACHINE_RESET(model3_21)
|
MDRV_MACHINE_RESET(model3_21)
|
||||||
|
|
||||||
MDRV_EEPROM_ADD("eeprom", eeprom_intf)
|
MDRV_EEPROM_ADD("eeprom", eeprom_intf)
|
||||||
MDRV_NVRAM_HANDLER(model3)
|
MDRV_NVRAM_ADD_1FILL("backup")
|
||||||
|
|
||||||
|
|
||||||
MDRV_SCREEN_ADD("screen", RASTER)
|
MDRV_SCREEN_ADD("screen", RASTER)
|
||||||
|
@ -2,11 +2,12 @@ class bbusters_state : public driver_device
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
bbusters_state(running_machine &machine, const driver_device_config_base &config)
|
bbusters_state(running_machine &machine, const driver_device_config_base &config)
|
||||||
: driver_device(machine, config) { }
|
: driver_device(machine, config),
|
||||||
|
eprom_data(*this, "eeprom") { }
|
||||||
|
|
||||||
UINT16 *videoram;
|
UINT16 *videoram;
|
||||||
UINT16 *ram;
|
UINT16 *ram;
|
||||||
UINT16 *eprom_data;
|
optional_shared_ptr<UINT16> eprom_data;
|
||||||
int sound_status;
|
int sound_status;
|
||||||
int gun_select;
|
int gun_select;
|
||||||
|
|
||||||
|
@ -18,6 +18,8 @@ public:
|
|||||||
itech32_state(running_machine &machine, const driver_device_config_base &config)
|
itech32_state(running_machine &machine, const driver_device_config_base &config)
|
||||||
: driver_device(machine, config) { }
|
: driver_device(machine, config) { }
|
||||||
|
|
||||||
|
void nvram_init(nvram_device &nvram, void *base, size_t length);
|
||||||
|
|
||||||
UINT16 *videoram;
|
UINT16 *videoram;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -5,6 +5,7 @@
|
|||||||
**************************************************************************/
|
**************************************************************************/
|
||||||
|
|
||||||
#include "cpu/tms34010/tms34010.h"
|
#include "cpu/tms34010/tms34010.h"
|
||||||
|
#include "machine/nvram.h"
|
||||||
|
|
||||||
/*----------- defined in machine/midyunit.c -----------*/
|
/*----------- defined in machine/midyunit.c -----------*/
|
||||||
|
|
||||||
|
@ -73,6 +73,8 @@ static VIDEO_START( common )
|
|||||||
midyunit_cmos_ram = auto_alloc_array(machine, UINT16, (0x2000 * 4)/2);
|
midyunit_cmos_ram = auto_alloc_array(machine, UINT16, (0x2000 * 4)/2);
|
||||||
local_videoram = auto_alloc_array_clear(machine, UINT16, 0x80000/2);
|
local_videoram = auto_alloc_array_clear(machine, UINT16, 0x80000/2);
|
||||||
pen_map = auto_alloc_array(machine, pen_t, 65536);
|
pen_map = auto_alloc_array(machine, pen_t, 65536);
|
||||||
|
|
||||||
|
machine->device<nvram_device>("nvram")->set_base(midyunit_cmos_ram, 0x2000 * 4);
|
||||||
|
|
||||||
/* reset all the globals */
|
/* reset all the globals */
|
||||||
midyunit_cmos_page = 0;
|
midyunit_cmos_page = 0;
|
||||||
|
Loading…
Reference in New Issue
Block a user