diff options
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 |
commit | 432e2e3e6fb131f7c5534d6be53764ac5f5b43c3 (patch) | |
tree | 0692c9d96d5b2bf43ac8fc6b2c07e744ed667201 /src/mess | |
parent | 05bb6231693d2c99255c12de192dd1032e7a95d8 (diff) |
(MESS) p500: Refactored to use new VIC emulation. (nw)
Diffstat (limited to 'src/mess')
-rw-r--r-- | src/mess/drivers/cbmb.c | 63 |
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") |