summaryrefslogtreecommitdiffstatshomepage
path: root/src/mess
diff options
context:
space:
mode:
author Curt Coder <curtcoder@mail.com>2012-09-09 09:59:56 +0000
committer Curt Coder <curtcoder@mail.com>2012-09-09 09:59:56 +0000
commit432e2e3e6fb131f7c5534d6be53764ac5f5b43c3 (patch)
tree0692c9d96d5b2bf43ac8fc6b2c07e744ed667201 /src/mess
parent05bb6231693d2c99255c12de192dd1032e7a95d8 (diff)
(MESS) p500: Refactored to use new VIC emulation. (nw)
Diffstat (limited to 'src/mess')
-rw-r--r--src/mess/drivers/cbmb.c63
1 files changed, 14 insertions, 49 deletions
diff --git a/src/mess/drivers/cbmb.c b/src/mess/drivers/cbmb.c
index b0c2f860983..5635f69ff2d 100644
--- a/src/mess/drivers/cbmb.c
+++ b/src/mess/drivers/cbmb.c
@@ -107,7 +107,7 @@ Keyboard: Full-sized 102 key QWERTY (19 key numeric keypad!; 4 direction
#include "includes/cbmb.h"
#include "machine/ieee488.h"
#include "machine/cbmipt.h"
-#include "video/vic6567.h"
+#include "video/mos6566.h"
#include "video/mc6845.h"
#include "includes/cbmb.h"
@@ -162,7 +162,7 @@ static ADDRESS_MAP_START(p500_mem , AS_PROGRAM, 8, cbmb_state )
AM_RANGE(0xf8000, 0xfbfff) AM_ROM AM_SHARE("basic")
AM_RANGE(0xfd000, 0xfd3ff) AM_RAM AM_SHARE("videoram") /* videoram */
AM_RANGE(0xfd400, 0xfd7ff) AM_RAM_WRITE(cbmb_colorram_w) AM_SHARE("colorram") /* colorram */
- AM_RANGE(0xfd800, 0xfd8ff) AM_DEVREADWRITE_LEGACY("vic6567", vic2_port_r, vic2_port_w)
+ AM_RANGE(0xfd800, 0xfd8ff) AM_DEVREADWRITE("vic6567", mos6566_device, read, write)
/* disk units */
AM_RANGE(0xfda00, 0xfdaff) AM_DEVREADWRITE_LEGACY("sid6581", sid6581_r, sid6581_w)
/* db00 coprocessor */
@@ -313,37 +313,6 @@ static const mc6845_interface cbm700_crtc = {
/* p500 uses a VIC II chip */
-static const unsigned char p500_palette[] =
-{
-/* black, white, red, cyan */
-/* purple, green, blue, yellow */
-/* orange, brown, light red, dark gray, */
-/* medium gray, light green, light blue, light gray */
-/* taken from the vice emulator */
- 0x00, 0x00, 0x00, 0xfd, 0xfe, 0xfc, 0xbe, 0x1a, 0x24, 0x30, 0xe6, 0xc6,
- 0xb4, 0x1a, 0xe2, 0x1f, 0xd2, 0x1e, 0x21, 0x1b, 0xae, 0xdf, 0xf6, 0x0a,
- 0xb8, 0x41, 0x04, 0x6a, 0x33, 0x04, 0xfe, 0x4a, 0x57, 0x42, 0x45, 0x40,
- 0x70, 0x74, 0x6f, 0x59, 0xfe, 0x59, 0x5f, 0x53, 0xfe, 0xa4, 0xa7, 0xa2
-};
-
-static PALETTE_INIT( p500 )
-{
- int i;
-
- for (i = 0; i < sizeof(p500_palette) / 3; i++)
- {
- palette_set_color_rgb(machine, i, p500_palette[i * 3], p500_palette[i * 3 + 1], p500_palette[i * 3 + 2]);
- }
-}
-
-static SCREEN_UPDATE_IND16( p500 )
-{
- device_t *vic2 = screen.machine().device("vic6567");
-
- vic2_video_update(vic2, bitmap, cliprect);
- return 0;
-}
-
READ8_MEMBER( cbmb_state::vic_lightpen_x_cb )
{
return ioport("LIGHTX")->read() & ~0x01;
@@ -377,17 +346,23 @@ READ8_MEMBER( cbmb_state::vic_rdy_cb )
return ioport("CTRLSEL")->read() & 0x08;
}
+static ADDRESS_MAP_START( vic_videoram_map, AS_0, 8, cbmb_state )
+ AM_RANGE(0x0000, 0x3fff) AM_READ(vic_dma_read)
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( vic_colorram_map, AS_1, 8, cbmb_state )
+ AM_RANGE(0x000, 0x3ff) AM_READ(vic_dma_read_color)
+ADDRESS_MAP_END
-static const vic2_interface p500_vic2_intf = {
+static MOS6567_INTERFACE( vic_intf )
+{
"screen",
"maincpu",
- VIC6567,
+ DEVCB_NULL,
+ DEVCB_NULL,
DEVCB_DRIVER_MEMBER(cbmb_state, vic_lightpen_x_cb),
DEVCB_DRIVER_MEMBER(cbmb_state, vic_lightpen_y_cb),
DEVCB_DRIVER_MEMBER(cbmb_state, vic_lightpen_button_cb),
- DEVCB_DRIVER_MEMBER(cbmb_state, vic_dma_read),
- DEVCB_DRIVER_MEMBER(cbmb_state, vic_dma_read_color),
- DEVCB_NULL,
DEVCB_DRIVER_MEMBER(cbmb_state, vic_rdy_cb)
};
@@ -528,17 +503,7 @@ static MACHINE_CONFIG_START( p500, cbmb_state )
MCFG_MACHINE_RESET( cbmb )
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_SIZE(VIC6567_COLUMNS, VIC6567_LINES)
- MCFG_SCREEN_VISIBLE_AREA(0, VIC6567_VISIBLECOLUMNS - 1, 0, VIC6567_VISIBLELINES - 1)
- MCFG_SCREEN_REFRESH_RATE(VIC6567_VRETRACERATE)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
- MCFG_SCREEN_UPDATE_STATIC( p500 )
-
- MCFG_PALETTE_INIT( p500 )
- MCFG_PALETTE_LENGTH(ARRAY_LENGTH(p500_palette) / 3)
-
- MCFG_VIC2_ADD("vic6567", p500_vic2_intf)
+ MCFG_MOS6567_ADD("vic6567", "screen", VIC6567_CLOCK, vic_intf, vic_videoram_map, vic_colorram_map)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")