summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/adp.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/adp.c')
-rw-r--r--src/mame/drivers/adp.c60
1 files changed, 58 insertions, 2 deletions
diff --git a/src/mame/drivers/adp.c b/src/mame/drivers/adp.c
index cd1e660426e..7ed941ecb33 100644
--- a/src/mame/drivers/adp.c
+++ b/src/mame/drivers/adp.c
@@ -193,8 +193,25 @@ public:
DECLARE_PALETTE_INIT(fstation);
DECLARE_WRITE_LINE_MEMBER(duart_irq_handler);
//INTERRUPT_GEN_MEMBER(adp_int);
+ void skattva_nvram_init(nvram_device &nvram, void *base, size_t size);
};
+void adp_state::skattva_nvram_init(nvram_device &nvram, void *base, size_t size)
+{
+/*
+ 00F6FA: 4EB9 0001 A4B2 jsr $1a4b2.l
+ 00F700: 0CB8 2400 0018 E450 cmpi.l #$24000018, $e450.w
+ 00F708: 6606 bne $f710
+ 00F70A: 4EB9 0001 D7F4 jsr $1d7f4.l ; initializes the HD63484
+ 00F710: 11FC 0010 E8AD move.b #$10, $e8ad.w
+*/
+ UINT16 *ram = (UINT16 *)base;
+ ram[0x2450 >> 1] = 0x2400;
+ ram[0x2452 >> 1] = 0x0018;
+ ram[0x0000 >> 1] = 0x3141;
+ ram[0x0002 >> 1] = 0x5926;
+}
+
/***************************************************************************
@@ -277,6 +294,17 @@ static ADDRESS_MAP_START( skattv_mem, AS_PROGRAM, 16, adp_state )
AM_RANGE(0xffc000, 0xffffff) AM_RAM AM_SHARE("nvram")
ADDRESS_MAP_END
+static ADDRESS_MAP_START( skattva_mem, AS_PROGRAM, 16, adp_state )
+ AM_RANGE(0x000000, 0x03ffff) AM_ROM
+ AM_RANGE(0x400000, 0x40001f) AM_DEVREADWRITE8("rtc",msm6242_device, read, write, 0x00ff)
+ AM_RANGE(0x800080, 0x800081) AM_DEVREADWRITE("h63484", h63484_device, status_r, address_w)
+ AM_RANGE(0x800082, 0x800083) AM_DEVREADWRITE("h63484", h63484_device, data_r, data_w)
+ AM_RANGE(0x800100, 0x800101) AM_READ_PORT("IN0")
+ AM_RANGE(0x800140, 0x800143) AM_DEVREADWRITE8("aysnd", ay8910_device, data_r, address_data_w, 0x00ff) //18b too
+ AM_RANGE(0x800180, 0x80019f) AM_DEVREADWRITE8("duart68681", mc68681_device, read, write, 0xff )
+ AM_RANGE(0xffc000, 0xffffff) AM_RAM AM_SHARE("nvram")
+ADDRESS_MAP_END
+
static ADDRESS_MAP_START( quickjac_mem, AS_PROGRAM, 16, adp_state )
AM_RANGE(0x000000, 0x01ffff) AM_ROM
AM_RANGE(0x400000, 0x40001f) AM_DEVREADWRITE8("rtc",msm6242_device, read, write, 0x00ff)
@@ -313,7 +341,6 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( fstation_mem, AS_PROGRAM, 16, adp_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
- //400000-40001f?
AM_RANGE(0x800080, 0x800081) AM_DEVREADWRITE("h63484", h63484_device, status_r, address_w)
AM_RANGE(0x800082, 0x800083) AM_DEVREADWRITE("h63484", h63484_device, data_r, data_w)
AM_RANGE(0x800100, 0x800101) AM_READWRITE(input_r, input_w)
@@ -400,6 +427,28 @@ static INPUT_PORTS_START( skattv )
PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_COIN1 )
INPUT_PORTS_END
+static INPUT_PORTS_START( skattva )
+ PORT_START("PA")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 )
+ PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_HBLANK("screen")
+ PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_VBLANK("screen")
+ PORT_BIT( 0x9e, IP_ACTIVE_HIGH, IPT_UNKNOWN )
+
+ PORT_START("IN0")
+ PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_BUTTON3 )
+ PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP )
+ PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN )
+ PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT )
+ PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT )
+ PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_BUTTON1 )
+ PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_BUTTON2 )
+ PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_START1 )
+ PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_UNKNOWN )
+
+ PORT_START("DSW1")
+ PORT_BIT( 0x3f, IP_ACTIVE_LOW, IPT_UNKNOWN )
+INPUT_PORTS_END
+
static INPUT_PORTS_START( fstation )
PORT_START("PA")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
@@ -527,6 +576,13 @@ static MACHINE_CONFIG_DERIVED( skattv, quickjac )
MCFG_CPU_PROGRAM_MAP(skattv_mem)
MACHINE_CONFIG_END
+static MACHINE_CONFIG_DERIVED( skattva, quickjac )
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(skattva_mem)
+
+ MCFG_NVRAM_REPLACE_CUSTOM_DRIVER("nvram", adp_state, skattva_nvram_init)
+MACHINE_CONFIG_END
+
static MACHINE_CONFIG_DERIVED( backgamn, skattv )
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_PROGRAM_MAP(backgamn_mem)
@@ -664,7 +720,7 @@ ROM_END
GAME( 1990, backgamn, 0, backgamn, skattv, driver_device, 0, ROT0, "ADP", "Backgammon", GAME_NOT_WORKING )
GAME( 1993, quickjac, 0, quickjac, quickjac, driver_device, 0, ROT0, "ADP", "Quick Jack", GAME_NOT_WORKING )
GAME( 1994, skattv, 0, skattv, skattv, driver_device, 0, ROT0, "ADP", "Skat TV", GAME_NOT_WORKING )
-GAME( 1995, skattva, skattv, skattv, skattv, driver_device, 0, ROT0, "ADP", "Skat TV (version TS3)", GAME_NOT_WORKING )
+GAME( 1995, skattva, skattv, skattva, skattva, driver_device, 0, ROT0, "ADP", "Skat TV (version TS3)", GAME_NOT_WORKING )
GAME( 1997, fashiong, 0, fashiong, skattv, driver_device, 0, ROT0, "ADP", "Fashion Gambler (set 1)", GAME_NOT_WORKING )
GAME( 1997, fashiong2, fashiong, fashiong, skattv, driver_device, 0, ROT0, "ADP", "Fashion Gambler (set 2)", GAME_NOT_WORKING )
GAME( 1999, funlddlx, 0, funland, skattv, driver_device, 0, ROT0, "Stella", "Funny Land de Luxe", GAME_NOT_WORKING )