mirror of
https://github.com/mamedev/mame.git
synced 2024-11-16 07:48:32 +01:00
avgdvg is now device (nw)
This commit is contained in:
parent
fb20ff1e86
commit
6b6e43fa1c
13 changed files with 1216 additions and 1038 deletions
|
@ -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")
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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")
|
||||
|
|
|
@ -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")
|
||||
|
|
|
@ -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")
|
||||
|
|
|
@ -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")
|
||||
|
|
|
@ -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")
|
||||
|
|
|
@ -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")
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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 -----------*/
|
||||
|
|
|
@ -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
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue