summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/tourvis.c
diff options
context:
space:
mode:
author Miodrag Milanovic <mmicko@gmail.com>2014-03-17 10:02:08 +0000
committer Miodrag Milanovic <mmicko@gmail.com>2014-03-17 10:02:08 +0000
commit5e8e5629e3f8cbf7b6aa39e6bb886d02e0c2bcb9 (patch)
treeac30a15dd82e03fb45c22787f5b57f08d9711242 /src/mame/drivers/tourvis.c
parent14756cfa21c4c41f9dc75a58ebfde745cff97e1e (diff)
why complicate when proper devices are there and do work properly (nw)
Diffstat (limited to 'src/mame/drivers/tourvis.c')
-rw-r--r--src/mame/drivers/tourvis.c49
1 files changed, 32 insertions, 17 deletions
diff --git a/src/mame/drivers/tourvis.c b/src/mame/drivers/tourvis.c
index 7f39363746c..1d42c409e9d 100644
--- a/src/mame/drivers/tourvis.c
+++ b/src/mame/drivers/tourvis.c
@@ -193,13 +193,11 @@ I can't tell ATM if units are seconds (even if values in tables seem very relate
#include "emu.h"
#include "cpu/i8085/i8085.h"
#include "machine/pcecommn.h"
-#include "video/vdc.h"
+#include "video/huc6260.h"
+#include "video/huc6270.h"
#include "cpu/h6280/h6280.h"
#include "sound/c6280.h"
#include "machine/i8155.h"
-#include "drivlgcy.h"
-#include "scrlegcy.h"
-
class tourvision_state : public pce_common_state
{
@@ -213,6 +211,7 @@ public:
DECLARE_WRITE8_MEMBER(tourvision_i8155_b_w);
DECLARE_WRITE8_MEMBER(tourvision_i8155_c_w);
DECLARE_WRITE_LINE_MEMBER(tourvision_timer_out);
+ DECLARE_WRITE_LINE_MEMBER(pce_irq_changed);
required_device<cpu_device> m_subcpu;
};
@@ -296,8 +295,8 @@ INPUT_PORTS_END
static ADDRESS_MAP_START( pce_mem , AS_PROGRAM, 8, tourvision_state )
AM_RANGE( 0x000000, 0x0FFFFF) AM_ROM
AM_RANGE( 0x1F0000, 0x1F1FFF) AM_RAM AM_MIRROR(0x6000)
- AM_RANGE( 0x1FE000, 0x1FE3FF) AM_READWRITE_LEGACY(vdc_0_r, vdc_0_w )
- AM_RANGE( 0x1FE400, 0x1FE7FF) AM_READWRITE_LEGACY(vce_r, vce_w )
+ AM_RANGE( 0x1FE000, 0x1FE3FF) AM_DEVREADWRITE( "huc6270", huc6270_device, read, write )
+ AM_RANGE( 0x1FE400, 0x1FE7FF) AM_DEVREADWRITE( "huc6260", huc6260_device, read, write )
AM_RANGE( 0x1FE800, 0x1FEBFF) AM_DEVREADWRITE("c6280", c6280_device, c6280_r, c6280_w )
AM_RANGE( 0x1FEC00, 0x1FEFFF) AM_DEVREADWRITE("maincpu", h6280_device, timer_r, timer_w )
AM_RANGE( 0x1FF000, 0x1FF3FF) AM_READWRITE(pce_joystick_r, pce_joystick_w )
@@ -305,7 +304,7 @@ static ADDRESS_MAP_START( pce_mem , AS_PROGRAM, 8, tourvision_state )
ADDRESS_MAP_END
static ADDRESS_MAP_START( pce_io , AS_IO, 8, tourvision_state )
- AM_RANGE( 0x00, 0x03) AM_READWRITE_LEGACY(vdc_0_r, vdc_0_w )
+ AM_RANGE( 0x00, 0x03) AM_DEVREADWRITE( "huc6270", huc6270_device, read, write )
ADDRESS_MAP_END
WRITE8_MEMBER(tourvision_state::tourvision_8085_d000_w)
@@ -364,30 +363,46 @@ static const c6280_interface c6280_config =
"maincpu"
};
+WRITE_LINE_MEMBER(tourvision_state::pce_irq_changed)
+{
+ m_maincpu->set_input_line(0, state);
+}
+
+
+static const huc6270_interface pce_huc6270_config =
+{
+ 0x10000,
+ DEVCB_DRIVER_LINE_MEMBER(tourvision_state,pce_irq_changed)
+};
+
+
+static const huc6260_interface pce_huc6260_config =
+{
+ DEVCB_DEVICE_MEMBER16( "huc6270", huc6270_device, next_pixel ),
+ DEVCB_DEVICE_MEMBER16( "huc6270", huc6270_device, time_until_next_event ),
+ DEVCB_DEVICE_LINE_MEMBER( "huc6270", huc6270_device, vsync_changed ),
+ DEVCB_DEVICE_LINE_MEMBER( "huc6270", huc6270_device, hsync_changed )
+};
+
static MACHINE_CONFIG_START( tourvision, tourvision_state )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", H6280, PCE_MAIN_CLOCK/3)
MCFG_CPU_PROGRAM_MAP(pce_mem)
MCFG_CPU_IO_MAP(pce_io)
- MCFG_TIMER_ADD_SCANLINE("scantimer", pce_interrupt, "screen", 0, 1)
-
MCFG_QUANTUM_TIME(attotime::from_hz(60))
MCFG_CPU_ADD("subcpu", I8085A, 18000000/3 /*?*/)
MCFG_CPU_PROGRAM_MAP(tourvision_8085_map)
/* video hardware */
-
MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_RAW_PARAMS(PCE_MAIN_CLOCK/2, VDC_WPF, 70, 70 + 512 + 32, VDC_LPF, 14, 14+242)
- MCFG_SCREEN_UPDATE_STATIC( pce )
- MCFG_SCREEN_PALETTE("palette")
+ MCFG_SCREEN_RAW_PARAMS(PCE_MAIN_CLOCK, HUC6260_WPF, 64, 64 + 1024 + 64, HUC6260_LPF, 18, 18 + 242)
+ MCFG_SCREEN_UPDATE_DRIVER( pce_common_state, screen_update )
+ MCFG_SCREEN_PALETTE("huc6260:palette")
- /* MCFG_GFXDECODE_ADD("gfxdecode", "palette", pce_gfxdecodeinfo ) */
- MCFG_PALETTE_ADD("palette", 1024)
- MCFG_PALETTE_INIT_LEGACY( vce )
+ MCFG_HUC6260_ADD( "huc6260", PCE_MAIN_CLOCK, pce_huc6260_config )
+ MCFG_HUC6270_ADD( "huc6270", pce_huc6270_config )
- MCFG_VIDEO_START( pce )
MCFG_I8155_ADD("i8155", 1000000 /*?*/, i8155_intf)