avgdvg is now device (nw)

This commit is contained in:
Miodrag Milanovic 2014-03-17 13:43:18 +00:00
parent fb20ff1e86
commit 6b6e43fa1c
13 changed files with 1216 additions and 1038 deletions

View file

@ -196,7 +196,6 @@ There is not a rev 03 known or dumped. An Asteroids rev 03 is not mentioned in a
#include "includes/asteroid.h"
#include "sound/discrete.h"
#include "sound/pokey.h"
#include "drivlgcy.h"
#include "astdelux.lh"
@ -249,7 +248,7 @@ static ADDRESS_MAP_START( asteroid_map, AS_PROGRAM, 8, asteroid_state )
AM_RANGE(0x2000, 0x2007) AM_READ(asteroid_IN0_r) /* IN0 */
AM_RANGE(0x2400, 0x2407) AM_READ(asteroid_IN1_r) /* IN1 */
AM_RANGE(0x2800, 0x2803) AM_READ(asteroid_DSW1_r) /* DSW1 */
AM_RANGE(0x3000, 0x3000) AM_WRITE_LEGACY(avgdvg_go_w)
AM_RANGE(0x3000, 0x3000) AM_DEVWRITE("dvg", dvg_device, go_w)
AM_RANGE(0x3200, 0x3200) AM_WRITE(asteroid_bank_switch_w)
AM_RANGE(0x3400, 0x3400) AM_WRITE(watchdog_reset_w)
AM_RANGE(0x3600, 0x3600) AM_WRITE(asteroid_explode_w)
@ -272,7 +271,7 @@ static ADDRESS_MAP_START( astdelux_map, AS_PROGRAM, 8, asteroid_state )
AM_RANGE(0x2800, 0x2803) AM_READ(asteroid_DSW1_r) /* DSW1 */
AM_RANGE(0x2c00, 0x2c0f) AM_DEVREADWRITE("pokey", pokey_device, read, write)
AM_RANGE(0x2c40, 0x2c7f) AM_DEVREAD("earom", atari_vg_earom_device, read)
AM_RANGE(0x3000, 0x3000) AM_WRITE_LEGACY(avgdvg_go_w)
AM_RANGE(0x3000, 0x3000) AM_DEVWRITE("dvg", dvg_device, go_w)
AM_RANGE(0x3200, 0x323f) AM_DEVWRITE("earom", atari_vg_earom_device, write)
AM_RANGE(0x3400, 0x3400) AM_WRITE(watchdog_reset_w)
AM_RANGE(0x3600, 0x3600) AM_WRITE(asteroid_explode_w)
@ -295,7 +294,7 @@ static ADDRESS_MAP_START( llander_map, AS_PROGRAM, 8, asteroid_state )
AM_RANGE(0x2400, 0x2407) AM_READ(asteroid_IN1_r) /* IN1 */
AM_RANGE(0x2800, 0x2803) AM_READ(asteroid_DSW1_r) /* DSW1 */
AM_RANGE(0x2c00, 0x2c00) AM_READ_PORT("THRUST")
AM_RANGE(0x3000, 0x3000) AM_WRITE_LEGACY(avgdvg_go_w)
AM_RANGE(0x3000, 0x3000) AM_DEVWRITE("dvg", dvg_device, go_w)
AM_RANGE(0x3200, 0x3200) AM_WRITE(llander_led_w)
AM_RANGE(0x3400, 0x3400) AM_WRITE(watchdog_reset_w)
AM_RANGE(0x3c00, 0x3c00) AM_WRITE(llander_sounds_w)
@ -323,7 +322,7 @@ static INPUT_PORTS_START( asteroid )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN )
/* Bit 2 is the 3 KHz source and Bit 3 the VG_HALT bit */
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, asteroid_state,clock_r, NULL)
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_CUSTOM(avgdvg_done_r, NULL)
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_CUSTOM_MEMBER("dvg", dvg_device, done_r, NULL)
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON5 ) PORT_CODE(KEYCODE_SPACE) PORT_CODE(JOYCODE_BUTTON3) /* hyperspace */
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_CODE(KEYCODE_LCONTROL) PORT_CODE(JOYCODE_BUTTON1) /* fire */
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_SERVICE ) PORT_NAME("Diagnostic Step") PORT_CODE(KEYCODE_F1)
@ -377,7 +376,7 @@ static INPUT_PORTS_START( asteroidb )
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
/* Bit 7 is VG_HALT */
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_CUSTOM(avgdvg_done_r, NULL)
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_CUSTOM_MEMBER("dvg", dvg_device, done_r, NULL)
PORT_MODIFY("IN1")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START1 )
@ -414,7 +413,7 @@ static INPUT_PORTS_START( asterock )
PORT_MODIFY("IN0")
/* Bit 0 is VG_HALT and Bit 2 is the 3 KHz source */
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_CUSTOM(avgdvg_done_r, NULL)
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_CUSTOM_MEMBER("dvg", dvg_device, done_r, NULL)
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN )
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, asteroid_state,clock_r, NULL)
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_CODE(KEYCODE_SPACE) PORT_CODE(JOYCODE_BUTTON3) /* hyperspace */
@ -457,7 +456,7 @@ static INPUT_PORTS_START( astdelux )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED ) /* According to schematics */
/* Bit 2 is the 3 KHz source and Bit 3 the VG_HALT bit */
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, asteroid_state,clock_r, NULL)
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_CUSTOM(avgdvg_done_r, NULL)
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_CUSTOM_MEMBER("dvg", dvg_device, done_r, NULL)
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON5 ) PORT_CODE(KEYCODE_SPACE) PORT_CODE(JOYCODE_BUTTON3) /* hyperspace */
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_CODE(KEYCODE_LCONTROL) PORT_CODE(JOYCODE_BUTTON1) /* fire */
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_SERVICE ) PORT_NAME("Diagnostic Step") PORT_CODE(KEYCODE_F1)
@ -539,7 +538,7 @@ INPUT_PORTS_END
static INPUT_PORTS_START( llander )
PORT_START("IN0")
/* Bit 0 is VG_HALT */
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(avgdvg_done_r, NULL)
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER("dvg", dvg_device, done_r, NULL)
PORT_SERVICE( 0x02, IP_ACTIVE_LOW )
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_TILT )
/* Of the rest, Bit 6 is the 3KHz source. 3,4 and 5 are unknown */
@ -645,8 +644,9 @@ static MACHINE_CONFIG_START( asteroid, asteroid_state )
MCFG_SCREEN_VISIBLE_AREA(522, 1566, 394, 1182)
MCFG_SCREEN_UPDATE_DEVICE("vector", vector_device, screen_update)
MCFG_VIDEO_START(dvg)
MCFG_DEVICE_ADD("dvg", DVG, 0)
MCFG_AVGDVG_VECTOR("vector")
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")

View file

@ -226,7 +226,6 @@
#include "includes/bwidow.h"
#include "drivlgcy.h"
#define IN_LEFT (1 << 0)
@ -364,8 +363,8 @@ static ADDRESS_MAP_START( bwidow_map, AS_PROGRAM, 8, bwidow_state )
AM_RANGE(0x8000, 0x8000) AM_READ_PORT("IN3")
AM_RANGE(0x8800, 0x8800) AM_READ_PORT("IN4")
AM_RANGE(0x8800, 0x8800) AM_WRITE(bwidow_misc_w) /* coin counters, leds */
AM_RANGE(0x8840, 0x8840) AM_WRITE_LEGACY(avgdvg_go_w)
AM_RANGE(0x8880, 0x8880) AM_WRITE_LEGACY(avgdvg_reset_w)
AM_RANGE(0x8840, 0x8840) AM_DEVWRITE("avg", avg_device, go_w)
AM_RANGE(0x8880, 0x8880) AM_DEVWRITE("avg", avg_device, reset_w)
AM_RANGE(0x88c0, 0x88c0) AM_WRITE(irq_ack_w) /* interrupt acknowledge */
AM_RANGE(0x8900, 0x8900) AM_DEVWRITE("earom", atari_vg_earom_device, ctrl_w)
AM_RANGE(0x8940, 0x897f) AM_DEVWRITE("earom", atari_vg_earom_device, write)
@ -381,9 +380,9 @@ static ADDRESS_MAP_START( spacduel_map, AS_PROGRAM, 8, bwidow_state )
AM_RANGE(0x0905, 0x0906) AM_WRITENOP /* ignore? */
AM_RANGE(0x0a00, 0x0a00) AM_DEVREAD("earom", atari_vg_earom_device, read)
// AM_RANGE(0x0c00, 0x0c00) AM_WRITE(coin_counter_w) /* coin out */
AM_RANGE(0x0c80, 0x0c80) AM_WRITE_LEGACY(avgdvg_go_w)
AM_RANGE(0x0c80, 0x0c80) AM_DEVWRITE("avg", avg_device, go_w)
AM_RANGE(0x0d00, 0x0d00) AM_WRITENOP /* watchdog clear */
AM_RANGE(0x0d80, 0x0d80) AM_WRITE_LEGACY(avgdvg_reset_w)
AM_RANGE(0x0d80, 0x0d80) AM_DEVWRITE("avg", avg_device, reset_w)
AM_RANGE(0x0e00, 0x0e00) AM_WRITE(irq_ack_w) /* interrupt acknowledge */
AM_RANGE(0x0e80, 0x0e80) AM_DEVWRITE("earom", atari_vg_earom_device, ctrl_w)
AM_RANGE(0x0f00, 0x0f3f) AM_DEVWRITE("earom", atari_vg_earom_device, write)
@ -411,7 +410,7 @@ static INPUT_PORTS_START( bwidow )
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Diagnostic Step") PORT_CODE(KEYCODE_F1)
/* bit 6 is the VG HALT bit. We set it to "low" */
/* per default (busy vector processor). */
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(avgdvg_done_r, NULL)
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER("avg", avg_device, done_r, NULL)
/* bit 7 is tied to a 3kHz clock */
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, bwidow_state,clock_r, NULL)
@ -490,7 +489,7 @@ static INPUT_PORTS_START( gravitar )
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Diagnostic Step") PORT_CODE(KEYCODE_F1)
/* bit 6 is the VG HALT bit. We set it to "low" */
/* per default (busy vector processor). */
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(avgdvg_done_r, NULL)
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER("avg", avg_device, done_r, NULL)
/* bit 7 is tied to a 3kHz clock */
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, bwidow_state,clock_r, NULL)
@ -564,7 +563,7 @@ static INPUT_PORTS_START( lunarbat )
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
/* bit 6 is the VG HALT bit. We set it to "low" */
/* per default (busy vector processor). */
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(avgdvg_done_r, NULL)
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER("avg", avg_device, done_r, NULL)
/* bit 7 is tied to a 3kHz clock */
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, bwidow_state,clock_r, NULL)
@ -598,7 +597,7 @@ static INPUT_PORTS_START( spacduel )
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Diagnostic Step") PORT_CODE(KEYCODE_F1)
/* bit 6 is the VG HALT bit. We set it to "low" */
/* per default (busy vector processor). */
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(avgdvg_done_r, NULL)
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER("avg", avg_device, done_r, NULL)
/* bit 7 is tied to a 3kHz clock */
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, bwidow_state,clock_r, NULL)
@ -708,7 +707,8 @@ static MACHINE_CONFIG_START( bwidow, bwidow_state )
MCFG_SCREEN_VISIBLE_AREA(0, 480, 0, 440)
MCFG_SCREEN_UPDATE_DEVICE("vector", vector_device, screen_update)
MCFG_VIDEO_START(avg)
MCFG_DEVICE_ADD("avg", AVG, 0)
MCFG_AVGDVG_VECTOR("vector")
/* sound hardware */
MCFG_FRAGMENT_ADD(bwidow_audio)

View file

@ -211,7 +211,6 @@
#include "machine/atari_vg.h"
#include "includes/bzone.h"
#include "sound/pokey.h"
#include "drivlgcy.h"
#include "bzone.lh"
#include "redbaron.lh"
@ -302,9 +301,9 @@ static ADDRESS_MAP_START( bzone_map, AS_PROGRAM, 8, bzone_state )
AM_RANGE(0x0a00, 0x0a00) AM_READ_PORT("DSW0")
AM_RANGE(0x0c00, 0x0c00) AM_READ_PORT("DSW1")
AM_RANGE(0x1000, 0x1000) AM_WRITE(bzone_coin_counter_w)
AM_RANGE(0x1200, 0x1200) AM_WRITE_LEGACY(avgdvg_go_w)
AM_RANGE(0x1200, 0x1200) AM_DEVWRITE("avg", avg_bzone_device, go_w)
AM_RANGE(0x1400, 0x1400) AM_WRITE(watchdog_reset_w)
AM_RANGE(0x1600, 0x1600) AM_WRITE_LEGACY(avgdvg_reset_w)
AM_RANGE(0x1600, 0x1600) AM_DEVWRITE("avg", avg_bzone_device, reset_w)
AM_RANGE(0x1800, 0x1800) AM_DEVREAD("mathbox", mathbox_device, status_r)
AM_RANGE(0x1810, 0x1810) AM_DEVREAD("mathbox", mathbox_device, lo_r)
AM_RANGE(0x1818, 0x1818) AM_DEVREAD("mathbox", mathbox_device, hi_r)
@ -322,9 +321,9 @@ static ADDRESS_MAP_START( redbaron_map, AS_PROGRAM, 8, bzone_state )
AM_RANGE(0x0a00, 0x0a00) AM_READ_PORT("DSW0")
AM_RANGE(0x0c00, 0x0c00) AM_READ_PORT("DSW1")
AM_RANGE(0x1000, 0x1000) AM_WRITENOP /* coin out - Manual states this is "Coin Counter" */
AM_RANGE(0x1200, 0x1200) AM_WRITE_LEGACY(avgdvg_go_w)
AM_RANGE(0x1200, 0x1200) AM_DEVWRITE("avg", avg_bzone_device, go_w)
AM_RANGE(0x1400, 0x1400) AM_WRITE(watchdog_reset_w)
AM_RANGE(0x1600, 0x1600) AM_WRITE_LEGACY(avgdvg_reset_w)
AM_RANGE(0x1600, 0x1600) AM_DEVWRITE("avg", avg_bzone_device, reset_w)
AM_RANGE(0x1800, 0x1800) AM_DEVREAD("mathbox", mathbox_device, status_r)
AM_RANGE(0x1802, 0x1802) AM_READ_PORT("IN4")
AM_RANGE(0x1804, 0x1804) AM_DEVREAD("mathbox", mathbox_device, lo_r)
@ -356,7 +355,7 @@ ADDRESS_MAP_END
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Diagnostic Step") PORT_CODE(KEYCODE_F1)\
/* bit 6 is the VG HALT bit. We set it to "low" */\
/* per default (busy vector processor). */\
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(avgdvg_done_r, NULL)\
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER("avg", avg_bzone_device, done_r, NULL)\
/* bit 7 is tied to a 3kHz clock */\
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, bzone_state,clock_r, NULL)
@ -562,7 +561,8 @@ static MACHINE_CONFIG_START( bzone_base, bzone_state )
MCFG_SCREEN_VISIBLE_AREA(0, 580, 0, 400)
MCFG_SCREEN_UPDATE_DEVICE("vector", vector_device, screen_update)
MCFG_VIDEO_START(avg_bzone)
MCFG_DEVICE_ADD("avg", AVG_BZONE, 0)
MCFG_AVGDVG_VECTOR("vector")
/* Drivers */
MCFG_MATHBOX_ADD("mathbox")

View file

@ -192,7 +192,6 @@
#include "sound/pokey.h"
#include "machine/nvram.h"
#include "includes/mhavoc.h"
#include "drivlgcy.h"
READ8_MEMBER(mhavoc_state::quad_pokeyn_r)
@ -265,9 +264,9 @@ static ADDRESS_MAP_START( alpha_map, AS_PROGRAM, 8, mhavoc_state )
AM_RANGE(0x1200, 0x1200) AM_READ_PORT("IN0") AM_WRITENOP /* Alpha Input Port 0 */
AM_RANGE(0x1400, 0x141f) AM_RAM AM_SHARE("colorram") /* ColorRAM */
AM_RANGE(0x1600, 0x1600) AM_WRITE(mhavoc_out_0_w) /* Control Signals */
AM_RANGE(0x1640, 0x1640) AM_WRITE_LEGACY(avgdvg_go_w) /* Vector Generator GO */
AM_RANGE(0x1640, 0x1640) AM_DEVWRITE("avg", avg_mhavoc_device, go_w) /* Vector Generator GO */
AM_RANGE(0x1680, 0x1680) AM_WRITE(watchdog_reset_w) /* Watchdog Clear */
AM_RANGE(0x16c0, 0x16c0) AM_WRITE_LEGACY(avgdvg_reset_w) /* Vector Generator Reset */
AM_RANGE(0x16c0, 0x16c0) AM_DEVWRITE("avg", avg_mhavoc_device, reset_w) /* Vector Generator Reset */
AM_RANGE(0x1700, 0x1700) AM_WRITE(mhavoc_alpha_irq_ack_w) /* IRQ ack */
AM_RANGE(0x1740, 0x1740) AM_WRITE(mhavoc_rom_banksel_w) /* Program ROM Page Select */
AM_RANGE(0x1780, 0x1780) AM_WRITE(mhavoc_ram_banksel_w) /* Program RAM Page Select */
@ -320,9 +319,9 @@ static ADDRESS_MAP_START( alphaone_map, AS_PROGRAM, 8, mhavoc_state )
AM_RANGE(0x1060, 0x1060) AM_READ_PORT("IN1") /* Gamma Input Port */
AM_RANGE(0x1080, 0x1080) AM_READ_PORT("DIAL") /* Roller Controller Input*/
AM_RANGE(0x10a0, 0x10a0) AM_WRITE(alphaone_out_0_w) /* Control Signals */
AM_RANGE(0x10a4, 0x10a4) AM_WRITE_LEGACY(avgdvg_go_w) /* Vector Generator GO */
AM_RANGE(0x10a4, 0x10a4) AM_DEVWRITE("avg", avg_mhavoc_device, go_w) /* Vector Generator GO */
AM_RANGE(0x10a8, 0x10a8) AM_WRITE(watchdog_reset_w) /* Watchdog Clear */
AM_RANGE(0x10ac, 0x10ac) AM_WRITE_LEGACY(avgdvg_reset_w) /* Vector Generator Reset */
AM_RANGE(0x10ac, 0x10ac) AM_DEVWRITE("avg", avg_mhavoc_device, reset_w) /* Vector Generator Reset */
AM_RANGE(0x10b0, 0x10b0) AM_WRITE(mhavoc_alpha_irq_ack_w) /* IRQ ack */
AM_RANGE(0x10b4, 0x10b4) AM_WRITE(mhavoc_rom_banksel_w)
AM_RANGE(0x10b8, 0x10b8) AM_WRITE(mhavoc_ram_banksel_w)
@ -361,7 +360,7 @@ static INPUT_PORTS_START( mhavoc )
/* Bit 2 = Gamma xmtd flag */
/* Bit 1 = 2.4kHz (divide 2.5MHz by 1024) */
/* Bit 0 = Vector generator halt flag */
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(avgdvg_done_r, NULL)
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER("avg", avg_mhavoc_device, done_r, NULL)
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, mhavoc_state,clock_r, NULL)
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, mhavoc_state,gamma_xmtd_r, NULL)
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, mhavoc_state,gamma_rcvd_r, NULL)
@ -460,7 +459,7 @@ INPUT_PORTS_END
static INPUT_PORTS_START( alphaone )
PORT_START("IN0") /* alpha (player_1 = 0) */
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(avgdvg_done_r, NULL)
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER("avg", avg_mhavoc_device, done_r, NULL)
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, mhavoc_state,clock_r, NULL)
PORT_BIT( 0x7c, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 )
@ -517,8 +516,9 @@ static MACHINE_CONFIG_START( mhavoc, mhavoc_state )
MCFG_SCREEN_SIZE(400, 300)
MCFG_SCREEN_VISIBLE_AREA(0, 300, 0, 260)
MCFG_SCREEN_UPDATE_DEVICE("vector", vector_device, screen_update)
MCFG_VIDEO_START(avg_mhavoc)
MCFG_DEVICE_ADD("avg", AVG_MHAVOC, 0)
MCFG_AVGDVG_VECTOR("vector")
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")

View file

@ -219,7 +219,6 @@
#include "video/avgdvg.h"
#include "sound/ay8910.h"
#include "machine/nvram.h"
#include "drivlgcy.h"
#include "omegrace.lh"
@ -230,10 +229,12 @@ public:
omegrace_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag),
m_maincpu(*this, "maincpu"),
m_audiocpu(*this, "audiocpu") { }
m_audiocpu(*this, "audiocpu"),
m_dvg(*this, "dvg") { }
required_device<cpu_device> m_maincpu;
required_device<cpu_device> m_audiocpu;
required_device<dvg_device> m_dvg;
DECLARE_READ8_MEMBER(omegrace_vg_go_r);
DECLARE_READ8_MEMBER(omegrace_spinner1_r);
@ -254,7 +255,7 @@ void omegrace_state::machine_reset()
{
address_space &space = m_maincpu->space(AS_PROGRAM);
/* Omega Race expects the vector processor to be ready. */
avgdvg_reset_w(space, 0, 0);
m_dvg->reset_w(space, 0, 0);
}
@ -267,7 +268,7 @@ void omegrace_state::machine_reset()
READ8_MEMBER(omegrace_state::omegrace_vg_go_r)
{
avgdvg_go_w(space, 0, 0);
m_dvg->go_w(space, 0, 0);
return 0;
}
@ -359,7 +360,7 @@ static ADDRESS_MAP_START( port_map, AS_IO, 8, omegrace_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x08, 0x08) AM_READ(omegrace_vg_go_r)
AM_RANGE(0x09, 0x09) AM_READ(watchdog_reset_r)
AM_RANGE(0x0a, 0x0a) AM_WRITE_LEGACY(avgdvg_reset_w)
AM_RANGE(0x0a, 0x0a) AM_DEVWRITE("dvg", dvg_device, reset_w)
AM_RANGE(0x0b, 0x0b) AM_READ_PORT("AVGDVG") /* vg_halt */
AM_RANGE(0x10, 0x10) AM_READ_PORT("DSW1") /* DIP SW C4 */
AM_RANGE(0x17, 0x17) AM_READ_PORT("DSW2") /* DIP SW C6 */
@ -476,7 +477,7 @@ static INPUT_PORTS_START( omegrace )
PORT_BIT( 0x3f, 0x00, IPT_DIAL ) PORT_SENSITIVITY(12) PORT_KEYDELTA(10) PORT_COCKTAIL
PORT_START("AVGDVG") /* port 0x0b */
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_CUSTOM(avgdvg_done_r, NULL)
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_CUSTOM_MEMBER("dvg", dvg_device, done_r, NULL)
INPUT_PORTS_END
@ -518,7 +519,8 @@ static MACHINE_CONFIG_START( omegrace, omegrace_state )
MCFG_SCREEN_VISIBLE_AREA(522, 1566, 522, 1566)
MCFG_SCREEN_UPDATE_DEVICE("vector", vector_device, screen_update)
MCFG_VIDEO_START(dvg)
MCFG_DEVICE_ADD("dvg", DVG, 0)
MCFG_AVGDVG_VECTOR("vector")
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")

View file

@ -50,7 +50,6 @@
#include "sound/pokey.h"
#include "sound/discrete.h"
#include "machine/nvram.h"
#include "drivlgcy.h"
class quantum_state : public driver_device
@ -58,13 +57,15 @@ class quantum_state : public driver_device
public:
quantum_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag),
m_maincpu(*this, "maincpu") { }
m_maincpu(*this, "maincpu"),
m_avg(*this, "avg") { }
DECLARE_READ16_MEMBER(trackball_r);
DECLARE_WRITE16_MEMBER(led_w);
DECLARE_READ8_MEMBER(input_1_r);
DECLARE_READ8_MEMBER(input_2_r);
required_device<cpu_device> m_maincpu;
required_device<avg_quantum_device> m_avg;
};
@ -118,8 +119,8 @@ WRITE16_MEMBER(quantum_state::led_w)
set_led_status(machine(), 1, data & 0x20);
/* bits 6 and 7 flip screen */
avg_set_flip_x (data & 0x40);
avg_set_flip_y (data & 0x80);
m_avg->set_flip_x (data & 0x40);
m_avg->set_flip_y (data & 0x80);
}
}
@ -143,8 +144,8 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, quantum_state )
AM_RANGE(0x950000, 0x95001f) AM_WRITEONLY AM_SHARE("colorram")
AM_RANGE(0x958000, 0x958001) AM_WRITE(led_w)
AM_RANGE(0x960000, 0x960001) AM_WRITENOP
AM_RANGE(0x968000, 0x968001) AM_WRITE_LEGACY(avgdvg_reset_word_w)
AM_RANGE(0x970000, 0x970001) AM_WRITE_LEGACY(avgdvg_go_word_w)
AM_RANGE(0x968000, 0x968001) AM_DEVWRITE("avg", avg_quantum_device, reset_word_w)
AM_RANGE(0x970000, 0x970001) AM_DEVWRITE("avg", avg_quantum_device, go_word_w)
AM_RANGE(0x978000, 0x978001) AM_READNOP AM_WRITE(watchdog_reset16_w)
ADDRESS_MAP_END
@ -158,7 +159,7 @@ ADDRESS_MAP_END
static INPUT_PORTS_START( quantum )
PORT_START("SYSTEM")
/* YHALT here MUST BE ALWAYS 0 */
PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(avgdvg_done_r, NULL) /* vg YHALT */
PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER("avg", avg_quantum_device, done_r, NULL) /* vg YHALT */
PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN3 )
PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_START1 )
PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_START2 )
@ -307,7 +308,8 @@ static MACHINE_CONFIG_START( quantum, quantum_state )
MCFG_SCREEN_VISIBLE_AREA(0, 900, 0, 600)
MCFG_SCREEN_UPDATE_DEVICE("vector", vector_device, screen_update)
MCFG_VIDEO_START(avg_quantum)
MCFG_DEVICE_ADD("avg", AVG_QUANTUM, 0)
MCFG_AVGDVG_VECTOR("vector")
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")

View file

@ -31,7 +31,6 @@
#include "machine/x2212.h"
#include "includes/starwars.h"
#include "includes/slapstic.h"
#include "drivlgcy.h"
#define MASTER_CLOCK (12096000)
@ -172,8 +171,8 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, starwars_state )
AM_RANGE(0x4400, 0x4400) AM_READWRITE(starwars_main_read_r, starwars_main_wr_w)
AM_RANGE(0x4401, 0x4401) AM_READ(starwars_main_ready_flag_r)
AM_RANGE(0x4500, 0x45ff) AM_DEVREADWRITE("x2212", x2212_device, read, write)
AM_RANGE(0x4600, 0x461f) AM_WRITE_LEGACY(avgdvg_go_w)
AM_RANGE(0x4620, 0x463f) AM_WRITE_LEGACY(avgdvg_reset_w)
AM_RANGE(0x4600, 0x461f) AM_DEVWRITE("avg", avg_starwars_device, go_w)
AM_RANGE(0x4620, 0x463f) AM_DEVWRITE("avg", avg_starwars_device, reset_w)
AM_RANGE(0x4640, 0x465f) AM_WRITE(watchdog_reset_w)
AM_RANGE(0x4660, 0x467f) AM_WRITE(irq_ack_w)
AM_RANGE(0x4680, 0x469f) AM_READNOP AM_WRITE(starwars_out_w)
@ -239,7 +238,7 @@ static INPUT_PORTS_START( starwars )
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON3 )
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 )
/* Bit 6 is VG_HALT */
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(avgdvg_done_r, NULL)
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER("avg", avg_starwars_device, done_r, NULL)
/* Bit 7 is MATH_RUN - see machine/starwars.c */
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, starwars_state,matrix_flag_r, NULL)
@ -348,7 +347,8 @@ static MACHINE_CONFIG_START( starwars, starwars_state )
MCFG_SCREEN_VISIBLE_AREA(0, 250, 0, 280)
MCFG_SCREEN_UPDATE_DEVICE("vector", vector_device, screen_update)
MCFG_VIDEO_START(avg_starwars)
MCFG_DEVICE_ADD("avg", AVG_STARWARS, 0)
MCFG_AVGDVG_VECTOR("vector")
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")

View file

@ -280,7 +280,6 @@ Note: Roms for Tempest Analog Vector-Generator PCB Assembly A037383-03 or A03738
#include "video/vector.h"
#include "machine/atari_vg.h"
#include "sound/pokey.h"
#include "drivlgcy.h"
class tempest_state : public driver_device
@ -289,10 +288,12 @@ public:
tempest_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag),
m_maincpu(*this, "maincpu"),
m_mathbox(*this, "mathbox") { }
m_mathbox(*this, "mathbox"),
m_avg(*this, "avg") { }
required_device<cpu_device> m_maincpu;
required_device<mathbox_device> m_mathbox;
required_device<avg_tempest_device> m_avg;
UINT8 m_player_select;
DECLARE_WRITE8_MEMBER(wdclr_w);
@ -391,8 +392,8 @@ WRITE8_MEMBER(tempest_state::tempest_coin_w)
coin_counter_w(machine(), 0, (data & 0x01));
coin_counter_w(machine(), 1, (data & 0x02));
coin_counter_w(machine(), 2, (data & 0x04));
avg_set_flip_x(data & 0x08);
avg_set_flip_y(data & 0x10);
m_avg->set_flip_x(data & 0x08);
m_avg->set_flip_y(data & 0x10);
}
@ -412,9 +413,9 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, tempest_state )
AM_RANGE(0x2000, 0x2fff) AM_RAM AM_SHARE("vectorram") AM_REGION("maincpu", 0x2000)
AM_RANGE(0x3000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x4000) AM_WRITE(tempest_coin_w)
AM_RANGE(0x4800, 0x4800) AM_WRITE_LEGACY(avgdvg_go_w)
AM_RANGE(0x4800, 0x4800) AM_DEVWRITE("avg", avg_tempest_device, go_w)
AM_RANGE(0x5000, 0x5000) AM_WRITE(wdclr_w)
AM_RANGE(0x5800, 0x5800) AM_WRITE_LEGACY(avgdvg_reset_w)
AM_RANGE(0x5800, 0x5800) AM_DEVWRITE("avg", avg_tempest_device, reset_w)
AM_RANGE(0x6000, 0x603f) AM_DEVWRITE("earom", atari_vg_earom_device, write)
AM_RANGE(0x6040, 0x6040) AM_DEVREAD("mathbox", mathbox_device, status_r) AM_DEVWRITE("earom", atari_vg_earom_device, ctrl_w)
AM_RANGE(0x6050, 0x6050) AM_DEVREAD("earom", atari_vg_earom_device, read)
@ -445,7 +446,7 @@ static INPUT_PORTS_START( tempest )
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Diagnostic Step") PORT_CODE(KEYCODE_F1)
/* bit 6 is the VG HALT bit. We set it to "low" */
/* per default (busy vector processor). */
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(avgdvg_done_r, NULL)
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER("avg", avg_tempest_device, done_r, NULL)
/* bit 7 is tied to a 3kHz (?) clock */
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, tempest_state,clock_r, NULL)
@ -608,7 +609,8 @@ static MACHINE_CONFIG_START( tempest, tempest_state )
MCFG_SCREEN_VISIBLE_AREA(0, 580, 0, 570)
MCFG_SCREEN_UPDATE_DEVICE("vector", vector_device, screen_update)
MCFG_VIDEO_START(avg_tempest)
MCFG_DEVICE_ADD("avg", AVG_TEMPEST, 0)
MCFG_AVGDVG_VECTOR("vector")
/* Drivers */
MCFG_MATHBOX_ADD("mathbox")

View file

@ -34,7 +34,6 @@
#include "sound/pokey.h"
#include "sound/tms5220.h"
#include "sound/2151intf.h"
#include "drivlgcy.h"
@ -285,8 +284,8 @@ WRITE8_MEMBER(tomcat_state::tomcat_nvram_w)
static ADDRESS_MAP_START( tomcat_map, AS_PROGRAM, 16, tomcat_state )
AM_RANGE(0x000000, 0x00ffff) AM_ROM
AM_RANGE(0x402000, 0x402001) AM_READ(tomcat_adcread_r) AM_WRITE(tomcat_adcon_w)
AM_RANGE(0x404000, 0x404001) AM_READ(tomcat_inputs_r) AM_WRITE_LEGACY(avgdvg_go_word_w)
AM_RANGE(0x406000, 0x406001) AM_WRITE_LEGACY(avgdvg_reset_word_w)
AM_RANGE(0x404000, 0x404001) AM_READ(tomcat_inputs_r) AM_DEVWRITE("avg", avg_tomcat_device, go_word_w)
AM_RANGE(0x406000, 0x406001) AM_DEVWRITE("avg", avg_tomcat_device, reset_word_w)
AM_RANGE(0x408000, 0x408001) AM_READWRITE(tomcat_inputs2_r, watchdog_reset16_w)
AM_RANGE(0x40a000, 0x40a001) AM_READWRITE(tomcat_320bio_r, tomcat_irqclr_w)
AM_RANGE(0x40e000, 0x40e001) AM_WRITE(tomcat_led1on_w)
@ -348,7 +347,7 @@ ADDRESS_MAP_END
static INPUT_PORTS_START( tomcat )
PORT_START("IN0") /* INPUTS */
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(avgdvg_done_r, NULL)
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER("avg", avg_tomcat_device, done_r, NULL)
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) // SPARE
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON5 ) // DIAGNOSTIC
PORT_SERVICE( 0x08, IP_ACTIVE_LOW )
@ -433,7 +432,8 @@ static MACHINE_CONFIG_START( tomcat, tomcat_state )
MCFG_SCREEN_VISIBLE_AREA(0, 280, 0, 250)
MCFG_SCREEN_UPDATE_DEVICE("vector", vector_device, screen_update)
MCFG_VIDEO_START(avg_tomcat)
MCFG_DEVICE_ADD("avg", AVG_TOMCAT, 0)
MCFG_AVGDVG_VECTOR("vector")
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
MCFG_POKEY_ADD("pokey1", XTAL_14_31818MHz / 8)

View file

@ -5,6 +5,7 @@
*************************************************************************/
#include "sound/discrete.h"
#include "video/avgdvg.h"
class asteroid_state : public driver_device
{
@ -14,7 +15,8 @@ public:
m_ram1(*this, "ram1"),
m_ram2(*this, "ram2"),
m_discrete(*this, "discrete") ,
m_maincpu(*this, "maincpu") { }
m_maincpu(*this, "maincpu"),
m_dvg(*this, "dvg") { }
optional_shared_ptr<UINT8> m_ram1;
optional_shared_ptr<UINT8> m_ram2;
@ -44,6 +46,7 @@ public:
DECLARE_WRITE8_MEMBER(llander_sounds_w);
DECLARE_MACHINE_RESET(llander);
required_device<cpu_device> m_maincpu;
required_device<dvg_device> m_dvg;
};
/*----------- defined in audio/asteroid.c -----------*/

View file

@ -134,10 +134,10 @@ WRITE8_MEMBER(asteroid_state::astdelux_led_w)
void asteroid_state::machine_reset()
{
asteroid_bank_switch_w(m_maincpu->space(AS_PROGRAM), 0, 0);
avgdvg_reset_w(m_maincpu->space(AS_PROGRAM), 0, 0);
m_dvg->reset_w(m_maincpu->space(AS_PROGRAM), 0, 0);
}
MACHINE_RESET_MEMBER(asteroid_state, llander)
{
avgdvg_reset_w(m_maincpu->space(AS_PROGRAM), 0, 0);
m_dvg->reset_w(m_maincpu->space(AS_PROGRAM), 0, 0);
}

File diff suppressed because it is too large Load diff

View file

@ -1,23 +1,272 @@
#ifndef __AVGDVG__
#define __AVGDVG__
CUSTOM_INPUT( avgdvg_done_r );
DECLARE_WRITE8_HANDLER( avgdvg_go_w );
DECLARE_WRITE8_HANDLER( avgdvg_reset_w );
DECLARE_WRITE16_HANDLER( avgdvg_go_word_w );
DECLARE_WRITE16_HANDLER( avgdvg_reset_word_w );
#define MAXVECT (10000)
/* Tempest and Quantum use this capability */
void avg_set_flip_x(int flip);
void avg_set_flip_y(int flip);
#include "video/vector.h"
#define MCFG_AVGDVG_VECTOR(_tag) \
avgdvg_device::static_set_vector_tag(*device, "^" _tag);
struct vgvector
{
int x; int y;
rgb_t color;
int intensity;
int arg1; int arg2;
int status;
};
// ======================> avgdvg_device
class avgdvg_device : public device_t
{
public:
// construction/destruction
avgdvg_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source);
static void static_set_vector_tag(device_t &device, const char *tag);
DECLARE_CUSTOM_INPUT_MEMBER(done_r);
DECLARE_WRITE8_MEMBER(go_w);
DECLARE_WRITE8_MEMBER(reset_w);
DECLARE_WRITE16_MEMBER(go_word_w);
DECLARE_WRITE16_MEMBER(reset_word_w);
/* Tempest and Quantum use this capability */
void set_flip_x(int flip);
void set_flip_y(int flip);
TIMER_CALLBACK_MEMBER(vg_set_halt_callback);
TIMER_CALLBACK_MEMBER(run_state_machine);
protected:
void apply_flipping(int *x, int *y);
void vg_set_halt(int dummy);
void vg_flush();
void vg_add_point_buf(int x, int y, rgb_t color, int intensity);
void vg_add_clip (int xmin, int ymin, int xmax, int ymax);
void register_state();
UINT8 *avgdvg_vectorram;
size_t avgdvg_vectorram_size;
UINT8 *avgdvg_colorram;
int xmin, xmax, ymin, ymax;
int xcenter, ycenter;
emu_timer *vg_run_timer, *vg_halt_timer;
int flip_x, flip_y;
int nvect;
vgvector vectbuf[MAXVECT];
UINT16 m_pc;
UINT8 m_sp;
UINT16 m_dvx;
UINT16 m_dvy;
UINT8 m_dvy12;
UINT16 m_timer;
UINT16 m_stack[4];
UINT16 m_data;
UINT8 m_state_latch;
UINT8 m_int_latch;
UINT8 m_scale;
UINT8 m_bin_scale;
UINT8 m_intensity;
UINT8 m_color;
UINT8 m_enspkl;
UINT8 m_spkl_shift;
UINT8 m_map;
UINT16 m_hst;
UINT16 m_lst;
UINT16 m_izblank;
UINT8 m_op;
UINT8 m_halt;
UINT8 m_sync_halt;
UINT16 m_xdac_xor;
UINT16 m_ydac_xor;
INT32 m_xpos;
INT32 m_ypos;
INT32 m_clipx_min;
INT32 m_clipy_min;
INT32 m_clipx_max;
INT32 m_clipy_max;
virtual int handler_0() = 0;
virtual int handler_1() = 0;
virtual int handler_2() = 0;
virtual int handler_3() = 0;
virtual int handler_4() = 0;
virtual int handler_5() = 0;
virtual int handler_6() = 0;
virtual int handler_7() = 0;
virtual UINT8 state_addr() = 0;
virtual void update_databus() = 0;
virtual void vggo() = 0;
virtual void vgrst() = 0;
required_device<vector_device> m_vector;
};
class dvg_device : public avgdvg_device
{
public:
// construction/destruction
dvg_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
void dvg_draw_to(int x, int y, int intensity);
virtual int handler_0();
virtual int handler_1();
virtual int handler_2();
virtual int handler_3();
virtual int handler_4();
virtual int handler_5();
virtual int handler_6();
virtual int handler_7();
virtual UINT8 state_addr();
virtual void update_databus();
virtual void vggo();
virtual void vgrst();
virtual void device_start();
};
// device type definition
extern const device_type DVG;
class avg_device : public avgdvg_device
{
public:
// construction/destruction
avg_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
avg_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source);
int avg_common_strobe1();
int avg_common_strobe2();
int avg_common_strobe3();
virtual int handler_0();
virtual int handler_1();
virtual int handler_2();
virtual int handler_3();
virtual int handler_4();
virtual int handler_5();
virtual int handler_6();
virtual int handler_7();
virtual UINT8 state_addr();
virtual void update_databus();
virtual void vggo();
virtual void vgrst();
virtual void device_start();
void avg_start_common();
};
// device type definition
extern const device_type AVG;
class avg_tempest_device : public avg_device
{
public:
// construction/destruction
avg_tempest_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
virtual int handler_6();
virtual int handler_7();
virtual void vggo();
};
// device type definition
extern const device_type AVG_TEMPEST;
class avg_mhavoc_device : public avg_device
{
public:
// construction/destruction
avg_mhavoc_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
virtual int handler_1();
virtual int handler_6();
virtual int handler_7();
virtual void update_databus();
virtual void vgrst();
};
// device type definition
extern const device_type AVG_MHAVOC;
class avg_starwars_device : public avg_device
{
public:
// construction/destruction
avg_starwars_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
virtual int handler_6();
virtual int handler_7();
virtual void update_databus();
};
// device type definition
extern const device_type AVG_STARWARS;
class avg_quantum_device : public avg_device
{
public:
// construction/destruction
avg_quantum_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
virtual int handler_0();
virtual int handler_1();
virtual int handler_2();
virtual int handler_3();
virtual int handler_4();
virtual int handler_5();
virtual int handler_6();
virtual int handler_7();
virtual void update_databus();
virtual void vggo();
};
// device type definition
extern const device_type AVG_QUANTUM;
class avg_bzone_device : public avg_device
{
public:
// construction/destruction
avg_bzone_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
virtual int handler_1();
virtual int handler_6();
virtual int handler_7();
};
// device type definition
extern const device_type AVG_BZONE;
class avg_tomcat_device : public avg_device
{
public:
// construction/destruction
avg_tomcat_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
virtual int handler_6();
virtual int handler_7();
};
// device type definition
extern const device_type AVG_TOMCAT;
VIDEO_START( dvg );
VIDEO_START( avg );
VIDEO_START( avg_tempest );
VIDEO_START( avg_mhavoc );
VIDEO_START( avg_starwars );
VIDEO_START( avg_quantum );
VIDEO_START( avg_bzone );
VIDEO_START( avg_tomcat );
#endif