diff options
author | Fabio Priuli <etabeta78@users.noreply.github.com> | 2014-05-13 17:00:02 +0000 |
---|---|---|
committer | Fabio Priuli <etabeta78@users.noreply.github.com> | 2014-05-13 17:00:02 +0000 |
commit | f5d20c68501e01c83b4c42ad001d826bb1b24370 (patch) | |
tree | e0dbebfc293777793ba65a1d03635ab817cddfb0 /src | |
parent | 41afc28498b64234680b70262a18939f94b1a051 (diff) |
mc6847: converted to use devcb2, delegates and inline configs. nw.
Diffstat (limited to 'src')
-rw-r--r-- | src/emu/video/mc6847.c | 57 | ||||
-rw-r--r-- | src/emu/video/mc6847.h | 85 | ||||
-rw-r--r-- | src/mess/drivers/apf.c | 22 | ||||
-rw-r--r-- | src/mess/drivers/atom.c | 16 | ||||
-rw-r--r-- | src/mess/drivers/coco12.c | 9 | ||||
-rw-r--r-- | src/mess/drivers/dragon.c | 5 | ||||
-rw-r--r-- | src/mess/drivers/fc100.c | 30 | ||||
-rw-r--r-- | src/mess/drivers/mc10.c | 14 | ||||
-rw-r--r-- | src/mess/drivers/mc1000.c | 10 | ||||
-rw-r--r-- | src/mess/drivers/phc25.c | 61 | ||||
-rw-r--r-- | src/mess/drivers/spc1000.c | 34 | ||||
-rw-r--r-- | src/mess/drivers/sv8000.c | 24 | ||||
-rw-r--r-- | src/mess/drivers/vtech1.c | 76 | ||||
-rw-r--r-- | src/mess/drivers/z80ne.c | 33 | ||||
-rw-r--r-- | src/mess/includes/coco12.h | 1 | ||||
-rw-r--r-- | src/mess/includes/phc25.h | 4 | ||||
-rw-r--r-- | src/mess/machine/coco12.c | 12 | ||||
-rw-r--r-- | src/mess/video/gime.c | 4 |
18 files changed, 173 insertions, 324 deletions
diff --git a/src/emu/video/mc6847.c b/src/emu/video/mc6847.c index 8ca8fecbb99..77530513c51 100644 --- a/src/emu/video/mc6847.c +++ b/src/emu/video/mc6847.c @@ -567,7 +567,11 @@ const rom_entry *mc6847_base_device::device_rom_region() const mc6847_base_device::mc6847_base_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const UINT8 *fontdata, double tpfs, const char *shortname, const char *source) : mc6847_friend_device(mconfig, type, name, tag, owner, clock, fontdata, (type == MC6847T1_NTSC) || (type == MC6847T1_PAL), tpfs, 25+191, true, shortname, source), - m_char_rom(*this, "chargen") + m_char_rom(*this, "chargen"), + m_input_cb(*this), + m_black_and_white(false), + m_fixed_mode(0), + m_fixed_mode_mask(0) { m_palette = s_palette; @@ -580,41 +584,25 @@ mc6847_base_device::mc6847_base_device(const machine_config &mconfig, device_typ //------------------------------------------------- -// setup_fixed_mode - sets up a particular video -// mode bit with a decb callback +// setup_fixed_mode - sets up fixed mode mask //------------------------------------------------- -void mc6847_base_device::setup_fixed_mode(struct devcb_read_line callback, UINT8 mode) +void mc6847_base_device::setup_fixed_mode() { - if (callback.type == DEVCB_TYPE_NULL) + for (int i = 0; i < 8; i++) { - // do nothing - } - else if (callback.type == DEVCB_TYPE_CONSTANT && (callback.index == 0 || callback.index == 1)) - { - // this mode is fixed - m_fixed_mode |= (callback.index ? mode : 0x00); - m_fixed_mode_mask |= mode; - } - else - { - // for reasons of performance, we currently only support DEVCB_NULL, - // DEVCB_LINE_GND and DEVCB_LINE_VCC - emu_fatalerror("mc6847 does not support this callback type for mode bits\n"); + if (BIT(m_fixed_mode, i)) + m_fixed_mode_mask |= (1 << i); } } - //------------------------------------------------- // device_start - device-specific startup //------------------------------------------------- void mc6847_base_device::device_start() { - const mc6847_interface *config = (const mc6847_interface *) static_config(); - assert(config); - /* inherited function */ mc6847_friend_device::device_start(); @@ -622,20 +610,11 @@ void mc6847_base_device::device_start() memset(m_data, 0, sizeof(m_data)); /* resolve callbacks */ - m_res_input_func.resolve(config->m_input_func, *this); - m_get_char_rom = config->m_get_char_rom; + m_input_cb.resolve_safe(0); + m_charrom_cb.bind_relative_to(*owner()); /* set up fixed mode */ - m_fixed_mode = 0x00; - m_fixed_mode_mask = 0x00; - setup_fixed_mode(config->m_in_gm2_func, MODE_GM2); - setup_fixed_mode(config->m_in_gm1_func, MODE_GM1); - setup_fixed_mode(config->m_in_gm0_func, MODE_GM0); - setup_fixed_mode(config->m_in_intext_func, MODE_INTEXT); - setup_fixed_mode(config->m_in_inv_func, MODE_INV); - setup_fixed_mode(config->m_in_as_func, MODE_AS); - setup_fixed_mode(config->m_in_ag_func, MODE_AG); - setup_fixed_mode(config->m_in_css_func, MODE_CSS); + setup_fixed_mode(); m_dirty = false; m_mode = 0; @@ -645,7 +624,7 @@ void mc6847_base_device::device_start() save_item(NAME(m_mode)); /* colors */ - m_palette = config->m_black_and_white ? m_bw_palette : s_palette; + m_palette = m_black_and_white ? m_bw_palette : s_palette; } @@ -668,7 +647,7 @@ void mc6847_base_device::device_reset() UINT8 mc6847_base_device::input(UINT16 address) { - UINT8 data = m_res_input_func(address); + UINT8 data = m_input_cb(address); if (LOG_INPUT) logerror("%s: input: address=0x%04X data=0x%02X\n", describe_context(), address, data); return data; @@ -812,8 +791,8 @@ INT32 mc6847_base_device::scanline_position_from_clock(INT32 clocks_since_hsync) void mc6847_base_device::field_sync_changed(bool line) { /* when field sync is on, the DA* enter the Hi-Z state */ - if (line && !m_res_input_func.isnull()) - m_res_input_func(~0); + if (line) + m_input_cb(~0); } @@ -902,7 +881,7 @@ UINT32 mc6847_base_device::screen_update(screen_device &screen, bitmap_rgb32 &bi x2 - x, pixels, m_palette, - m_get_char_rom, + m_charrom_cb, x, y); diff --git a/src/emu/video/mc6847.h b/src/emu/video/mc6847.h index aee8c845022..8feb39f0686 100644 --- a/src/emu/video/mc6847.h +++ b/src/emu/video/mc6847.h @@ -12,17 +12,20 @@ #define __MC6847__ +#define MC6847_MODE_AG 0x80 +#define MC6847_MODE_GM2 0x40 +#define MC6847_MODE_GM1 0x20 +#define MC6847_MODE_GM0 0x10 +#define MC6847_MODE_CSS 0x08 +#define MC6847_MODE_AS 0x04 +#define MC6847_MODE_INTEXT 0x02 +#define MC6847_MODE_INV 0x01 + + //************************************************************************** // MC6847 CONFIGURATION / INTERFACE //************************************************************************** -#define MCFG_MC6847_REMOVE(_tag) \ - MCFG_DEVICE_REMOVE(_tag) - -#define MCFG_MC6847_ADD(_tag, _variant, _clock, _config) \ - MCFG_DEVICE_ADD(_tag, _variant, _clock) \ - MCFG_DEVICE_CONFIG(_config) - #define MCFG_SCREEN_MC6847_NTSC_ADD(_tag, _mctag) \ MCFG_SCREEN_ADD(_tag, RASTER) \ MCFG_SCREEN_UPDATE_DEVICE(_mctag, mc6847_base_device, screen_update) \ @@ -30,6 +33,7 @@ MCFG_SCREEN_SIZE(320, 243) \ MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 1, 241-1) \ MCFG_SCREEN_VBLANK_TIME(0) + #define MCFG_SCREEN_MC6847_PAL_ADD(_tag, _mctag) \ MCFG_SCREEN_ADD(_tag, RASTER) \ MCFG_SCREEN_UPDATE_DEVICE(_mctag, mc6847_base_device, screen_update) \ @@ -44,32 +48,22 @@ #define MCFG_MC6847_FSYNC_CALLBACK(_write) \ devcb = &mc6847_friend_device::set_fsync_wr_callback(*device, DEVCB2_##_write); +#define MCFG_MC6847_CHARROM_CALLBACK(_class, _method) \ + mc6847_friend_device::set_get_char_rom(*device, mc6847_get_char_rom_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); -/* interface */ -struct mc6847_interface -{ - /* screen we are acting on */ - const char *m_screen_tag; +#define MCFG_MC6847_INPUT_CALLBACK(_read) \ + devcb = &mc6847_base_device::set_input_callback(*device, DEVCB2_##_read); - /* if specified, this gets called whenever reading a byte (offs_t ~0 specifies DA* entering the tristate mode) */ - devcb_read8 m_input_func; - - /* mode control lines input */ - devcb_read_line m_in_ag_func; - devcb_read_line m_in_gm2_func; - devcb_read_line m_in_gm1_func; - devcb_read_line m_in_gm0_func; - devcb_read_line m_in_css_func; - devcb_read_line m_in_as_func; - devcb_read_line m_in_intext_func; - devcb_read_line m_in_inv_func; +#define MCFG_MC6847_FIXED_MODE(_mode) \ + mc6847_base_device::set_get_fixed_mode(*device, _mode); - /* if specified, this reads the external char rom off of the driver state */ - UINT8 (*m_get_char_rom)(running_machine &machine, UINT8 ch, int line); +#define MCFG_MC6847_BW(_bw) \ + mc6847_base_device::set_black_and_white(*device, _bw); + + +typedef device_delegate<UINT8 (UINT8 ch, int line)> mc6847_get_char_rom_delegate; +#define MC6847_GET_CHARROM_MEMBER(_name) UINT8 _name(UINT8 ch, int line) - /* if true, this is black and white */ - bool m_black_and_white; -}; #define ARTIFACTING_TAG "artifacting" @@ -91,6 +85,8 @@ public: template<class _Object> static devcb2_base &set_hsync_wr_callback(device_t &device, _Object object) { return downcast<mc6847_friend_device &>(device).m_write_hsync.set_callback(object); } template<class _Object> static devcb2_base &set_fsync_wr_callback(device_t &device, _Object object) { return downcast<mc6847_friend_device &>(device).m_write_fsync.set_callback(object); } + static void set_get_char_rom(device_t &device, mc6847_get_char_rom_delegate callback) { downcast<mc6847_friend_device &>(device).m_charrom_cb = callback; } + protected: mc6847_friend_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const UINT8 *fontdata, bool is_mc6847t1, double tpfs, int field_sync_falling_edge_scanline, bool supports_partial_body_scanlines, const char *shortname, const char *source); @@ -273,7 +269,11 @@ protected: // callbacks devcb2_write_line m_write_hsync; devcb2_write_line m_write_fsync; - + + /* if specified, this reads the external char rom off of the driver state */ + // moved here from mc6847_base_device so to be useable in GIME + mc6847_get_char_rom_delegate m_charrom_cb; + // incidentals character_map m_character_map; artifacter m_artifacter; @@ -407,7 +407,7 @@ protected: // template function for emitting samples template<int xscale> UINT32 emit_mc6847_samples(UINT8 mode, const UINT8 *data, int length, pixel_t *RESTRICT pixels, const pixel_t *RESTRICT palette, - UINT8 (*get_char_rom)(running_machine &machine, UINT8 ch, int line), int x, int y) + mc6847_get_char_rom_delegate get_char_rom, int x, int y) { UINT32 result = 0; if (mode & MODE_AG) @@ -445,12 +445,12 @@ protected: break; } } - else if ((get_char_rom != NULL) && ((mode & (MODE_AG|MODE_AS|MODE_INTEXT)) == MODE_INTEXT)) + else if (!get_char_rom.isnull() && ((mode & (MODE_AG|MODE_AS|MODE_INTEXT)) == MODE_INTEXT)) { /* external ROM */ for (int i = 0; i < length; i++) { - UINT8 byte = get_char_rom(machine(), data[i], y % 12) ^ (mode & MODE_INV ? 0xFF : 0x00); + UINT8 byte = get_char_rom(data[i], y % 12) ^ (mode & MODE_INV ? 0xFF : 0x00); emit_extbytes<1, xscale>(&byte, 1, &pixels[i * 8], (mode & MODE_CSS) ? 14 : 12, palette); } result = length * 8 * xscale; @@ -517,6 +517,11 @@ public: // optional information overrides virtual const rom_entry *device_rom_region() const; + template<class _Object> static devcb2_base &set_input_callback(device_t &device, _Object object) { return downcast<mc6847_base_device &>(device).m_input_cb.set_callback(object); } + + static void set_get_fixed_mode(device_t &device, UINT8 mode) { downcast<mc6847_base_device &>(device).m_fixed_mode = mode; } + static void set_black_and_white(device_t &device, bool bw) { downcast<mc6847_base_device &>(device).m_black_and_white = bw; } + /* updates the screen -- this will call begin_update(), followed by update_row() reapeatedly and after all row updating is complete, end_update() */ @@ -544,7 +549,7 @@ protected: virtual void field_sync_changed(bool line); virtual void record_body_scanline(UINT16 physical_scanline, UINT16 scanline); virtual void record_partial_body_scanline(UINT16 physical_scanline, UINT16 logical_scanline, INT32 start_clock, INT32 end_clock); - + void set_custom_palette(const pixel_t *custom_palette) { if ( m_palette != m_bw_palette ) @@ -568,8 +573,12 @@ private: static const UINT32 s_palette[PALETTE_LENGTH]; // callbacks - devcb_resolved_read8 m_res_input_func; - UINT8 (*m_get_char_rom)(running_machine &machine, UINT8 ch, int line); + + /* if specified, this gets called whenever reading a byte (offs_t ~0 specifies DA* entering the tristate mode) */ + devcb2_read8 m_input_cb; + + /* if true, this is black and white */ + bool m_black_and_white; // incidentals UINT8 m_fixed_mode; @@ -611,8 +620,8 @@ private: } // setup functions - void setup_fixed_mode(struct devcb_read_line callback, UINT8 mode); - + void setup_fixed_mode(); + // runtime functions void record_body_scanline(UINT16 physical_scanline, UINT16 scanline, INT32 start_pos, INT32 end_pos); pixel_t border_value(UINT8 mode, const pixel_t *palette, bool is_mc6847t1); diff --git a/src/mess/drivers/apf.c b/src/mess/drivers/apf.c index 1694ef06a6f..4e7a801e0ec 100644 --- a/src/mess/drivers/apf.c +++ b/src/mess/drivers/apf.c @@ -538,21 +538,6 @@ static const floppy_interface apfimag_floppy_interface = NULL }; -static const mc6847_interface apf_mc6847_intf = -{ - "screen", - DEVCB_DRIVER_MEMBER(apf_state, videoram_r), - - DEVCB_NULL, /* AG */ - DEVCB_LINE_VCC, /* GM2 */ - DEVCB_LINE_VCC, /* GM1 */ - DEVCB_NULL, /* GM0 */ - DEVCB_NULL, /* CSS */ - DEVCB_NULL, /* AS */ - DEVCB_LINE_GND, /* INTEXT */ - DEVCB_NULL, /* INV */ -}; - static MACHINE_CONFIG_START( apfm1000, apf_state ) /* basic machine hardware */ @@ -561,8 +546,13 @@ static MACHINE_CONFIG_START( apfm1000, apf_state ) /* video hardware */ MCFG_SCREEN_MC6847_NTSC_ADD("screen", "mc6847") - MCFG_MC6847_ADD("mc6847", MC6847_NTSC, XTAL_3_579545MHz, apf_mc6847_intf) + + MCFG_DEVICE_ADD("mc6847", MC6847_NTSC, XTAL_3_579545MHz) MCFG_MC6847_FSYNC_CALLBACK(DEVWRITELINE("pia0", pia6821_device, cb1_w)) + MCFG_MC6847_INPUT_CALLBACK(READ8(apf_state, videoram_r)) + MCFG_MC6847_FIXED_MODE(MC6847_MODE_GM2 | MC6847_MODE_GM1) + // INTEXT = GND + // other lines not connected /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mess/drivers/atom.c b/src/mess/drivers/atom.c index 95de26eec8c..cd347c7c4c7 100644 --- a/src/mess/drivers/atom.c +++ b/src/mess/drivers/atom.c @@ -613,7 +613,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(atom_state::cassette_output_tick) } /*------------------------------------------------- - mc6847_interface vdg_intf + mc6847 interface -------------------------------------------------*/ READ8_MEMBER( atom_state::vdg_videoram_r ) @@ -627,12 +627,6 @@ READ8_MEMBER( atom_state::vdg_videoram_r ) return m_video_ram[offset]; } -static const mc6847_interface vdg_intf = -{ - SCREEN_TAG, - DEVCB_DRIVER_MEMBER(atom_state, vdg_videoram_r) -}; - /*************************************************************************** MACHINE INITIALIZATION ***************************************************************************/ @@ -780,7 +774,9 @@ static MACHINE_CONFIG_START( atom, atom_state ) /* video hardware */ MCFG_SCREEN_MC6847_PAL_ADD(SCREEN_TAG, MC6847_TAG) - MCFG_MC6847_ADD(MC6847_TAG, MC6847_PAL, XTAL_4_433619MHz, vdg_intf) + + MCFG_DEVICE_ADD(MC6847_TAG, MC6847_PAL, XTAL_4_433619MHz) + MCFG_MC6847_INPUT_CALLBACK(READ8(atom_state, vdg_videoram_r)) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -872,7 +868,9 @@ static MACHINE_CONFIG_START( atombb, atom_state ) /* video hardware */ MCFG_SCREEN_MC6847_PAL_ADD(SCREEN_TAG, MC6847_TAG) - MCFG_MC6847_ADD(MC6847_TAG, MC6847_PAL, XTAL_4_433619MHz, vdg_intf) + + MCFG_DEVICE_ADD(MC6847_TAG, MC6847_PAL, XTAL_4_433619MHz) + MCFG_MC6847_INPUT_CALLBACK(READ8(atom_state, vdg_videoram_r)) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mess/drivers/coco12.c b/src/mess/drivers/coco12.c index fa8e5e7dc47..0b9b0ab0261 100644 --- a/src/mess/drivers/coco12.c +++ b/src/mess/drivers/coco12.c @@ -314,9 +314,11 @@ static MACHINE_CONFIG_START( coco, coco12_state ) // video hardware MCFG_SCREEN_MC6847_NTSC_ADD(SCREEN_TAG, VDG_TAG) - MCFG_MC6847_ADD(VDG_TAG, MC6847_NTSC, XTAL_3_579545MHz, coco12_state::mc6847_config) + + MCFG_DEVICE_ADD(VDG_TAG, MC6847_NTSC, XTAL_3_579545MHz) MCFG_MC6847_HSYNC_CALLBACK(WRITELINE(coco12_state, horizontal_sync)) MCFG_MC6847_FSYNC_CALLBACK(WRITELINE(coco12_state, field_sync)) + MCFG_MC6847_INPUT_CALLBACK(DEVREAD8(SAM_TAG, sam6883_device, display_read)) // sound hardware MCFG_FRAGMENT_ADD( coco_sound ) @@ -351,10 +353,11 @@ static MACHINE_CONFIG_DERIVED( coco2, coco ) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( coco2b, coco2 ) - MCFG_MC6847_REMOVE(VDG_TAG) - MCFG_MC6847_ADD(VDG_TAG, MC6847T1_NTSC, XTAL_3_579545MHz, coco12_state::mc6847_config) + MCFG_DEVICE_REMOVE(VDG_TAG) + MCFG_DEVICE_ADD(VDG_TAG, MC6847T1_NTSC, XTAL_3_579545MHz) MCFG_MC6847_HSYNC_CALLBACK(WRITELINE(coco12_state, horizontal_sync)) MCFG_MC6847_FSYNC_CALLBACK(WRITELINE(coco12_state, field_sync)) + MCFG_MC6847_INPUT_CALLBACK(DEVREAD8(SAM_TAG, sam6883_device, display_read)) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( cp400, coco ) diff --git a/src/mess/drivers/dragon.c b/src/mess/drivers/dragon.c index 9e87f8413b4..74c02c8883c 100644 --- a/src/mess/drivers/dragon.c +++ b/src/mess/drivers/dragon.c @@ -164,9 +164,12 @@ static MACHINE_CONFIG_START( dragon_base, dragon_state ) // video hardware MCFG_SCREEN_MC6847_PAL_ADD(SCREEN_TAG, VDG_TAG) - MCFG_MC6847_ADD(VDG_TAG, MC6847_PAL, XTAL_4_433619MHz, dragon_state::mc6847_config) + + MCFG_DEVICE_ADD(VDG_TAG, MC6847_PAL, XTAL_4_433619MHz) MCFG_MC6847_HSYNC_CALLBACK(WRITELINE(dragon_state, horizontal_sync)) MCFG_MC6847_FSYNC_CALLBACK(WRITELINE(dragon_state, field_sync)) + MCFG_MC6847_INPUT_CALLBACK(DEVREAD8(SAM_TAG, sam6883_device, display_read)) + // sound hardware MCFG_FRAGMENT_ADD( coco_sound ) MACHINE_CONFIG_END diff --git a/src/mess/drivers/fc100.c b/src/mess/drivers/fc100.c index 18eb722bb16..ad9211fba1d 100644 --- a/src/mess/drivers/fc100.c +++ b/src/mess/drivers/fc100.c @@ -74,10 +74,10 @@ public: TIMER_DEVICE_CALLBACK_MEMBER(timer_k); UINT8 *m_p_chargen; - static UINT8 get_char_rom(running_machine &machine, UINT8 ch, int line) + + MC6847_GET_CHARROM_MEMBER(get_char_rom) { - fc100_state *state = machine.driver_data<fc100_state>(); - return state->m_p_chargen[ch*16+line]; + return m_p_chargen[ch * 16 + line]; } private: virtual void machine_start(); @@ -367,23 +367,6 @@ READ8_MEMBER( fc100_state::mc6847_videoram_r ) return data; } -static const mc6847_interface fc100_mc6847_interface = -{ - "screen", - DEVCB_DRIVER_MEMBER(fc100_state,mc6847_videoram_r), // data fetch - - DEVCB_NULL, /* AG */ - DEVCB_NULL, /* GM2 */ - DEVCB_NULL, /* GM1 */ - DEVCB_NULL, /* GM0 */ - DEVCB_NULL, /* CSS */ - DEVCB_NULL, /* AS */ - DEVCB_LINE_VCC, /* INTEXT */ - DEVCB_NULL, /* INV */ - - &fc100_state::get_char_rom -}; - /* F4 Character Displayer */ static const gfx_layout u53_charlayout = { @@ -527,7 +510,12 @@ static MACHINE_CONFIG_START( fc100, fc100_state ) MCFG_CPU_IO_MAP(fc100_io) /* video hardware */ - MCFG_MC6847_ADD("vdg", M5C6847P1, XTAL_7_15909MHz/3, fc100_mc6847_interface ) // Clock not verified + MCFG_DEVICE_ADD("vdg", M5C6847P1, XTAL_7_15909MHz/3) // Clock not verified + MCFG_MC6847_INPUT_CALLBACK(READ8(fc100_state, mc6847_videoram_r)) + MCFG_MC6847_CHARROM_CALLBACK(fc100_state, get_char_rom) + MCFG_MC6847_FIXED_MODE(MC6847_MODE_INTEXT) + // other lines not connected + MCFG_SCREEN_MC6847_NTSC_ADD("screen", "vdg") MCFG_GFXDECODE_ADD("gfxdecode", "f4palette", fc100) MCFG_PALETTE_ADD_MONOCHROME_AMBER("f4palette") diff --git a/src/mess/drivers/mc10.c b/src/mess/drivers/mc10.c index c833ed01f69..5c0001d3021 100644 --- a/src/mess/drivers/mc10.c +++ b/src/mess/drivers/mc10.c @@ -72,7 +72,7 @@ public: DECLARE_WRITE8_MEMBER( mc10_port1_w ); DECLARE_READ8_MEMBER( mc10_port2_r ); DECLARE_WRITE8_MEMBER( mc10_port2_w ); - DECLARE_READ8_MEMBER( mc10_mc6847_videoram_r ); + DECLARE_READ8_MEMBER( mc6847_videoram_r ); DECLARE_DRIVER_INIT(mc10); TIMER_DEVICE_CALLBACK_MEMBER(alice32_scanline); }; @@ -214,7 +214,7 @@ WRITE8_MEMBER( mc10_state::mc10_port2_w ) VIDEO EMULATION ***************************************************************************/ -READ8_MEMBER( mc10_state::mc10_mc6847_videoram_r ) +READ8_MEMBER( mc10_state::mc6847_videoram_r ) { if (offset == ~0) return 0xff; m_mc6847->inv_w(BIT(m_ram_base[offset], 6)); @@ -477,12 +477,6 @@ INPUT_PORTS_END MACHINE DRIVERS ***************************************************************************/ -static const mc6847_interface mc10_mc6847_intf = -{ - "screen", - DEVCB_DRIVER_MEMBER(mc10_state, mc10_mc6847_videoram_r) -}; - static MACHINE_CONFIG_START( mc10, mc10_state ) /* basic machine hardware */ @@ -492,7 +486,9 @@ static MACHINE_CONFIG_START( mc10, mc10_state ) /* video hardware */ MCFG_SCREEN_MC6847_NTSC_ADD("screen", "mc6847") - MCFG_MC6847_ADD("mc6847", MC6847_NTSC, XTAL_3_579545MHz, mc10_mc6847_intf) + + MCFG_DEVICE_ADD("mc6847", MC6847_NTSC, XTAL_3_579545MHz) + MCFG_MC6847_INPUT_CALLBACK(READ8(mc10_state, mc6847_videoram_r)) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mess/drivers/mc1000.c b/src/mess/drivers/mc1000.c index e386d570c3e..0dd3fcdd0f5 100644 --- a/src/mess/drivers/mc1000.c +++ b/src/mess/drivers/mc1000.c @@ -414,12 +414,6 @@ TIMER_DEVICE_CALLBACK_MEMBER(mc1000_state::ne555_tick) m_maincpu->set_input_line(INPUT_LINE_IRQ0, param); } -static const mc6847_interface mc1000_mc6847_intf = -{ - SCREEN_TAG, - DEVCB_DRIVER_MEMBER(mc1000_state, videoram_r) -}; - static MACHINE_CONFIG_START( mc1000, mc1000_state ) /* basic machine hardware */ @@ -437,9 +431,11 @@ static MACHINE_CONFIG_START( mc1000, mc1000_state ) /* video hardware */ MCFG_SCREEN_MC6847_PAL_ADD(SCREEN_TAG, MC6847_TAG) - MCFG_MC6847_ADD(MC6847_TAG, MC6847_NTSC, XTAL_3_579545MHz, mc1000_mc6847_intf) + + MCFG_DEVICE_ADD(MC6847_TAG, MC6847_NTSC, XTAL_3_579545MHz) MCFG_MC6847_HSYNC_CALLBACK(WRITELINE(mc1000_state, hs_w)) MCFG_MC6847_FSYNC_CALLBACK(WRITELINE(mc1000_state, fs_w)) + MCFG_MC6847_INPUT_CALLBACK(READ8(mc1000_state, videoram_r)) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mess/drivers/phc25.c b/src/mess/drivers/phc25.c index 1c5bf2ff16d..2a499295312 100644 --- a/src/mess/drivers/phc25.c +++ b/src/mess/drivers/phc25.c @@ -277,11 +277,9 @@ READ8_MEMBER( phc25_state::video_ram_r ) } } -UINT8 phc25_state::pal_char_rom_r(running_machine &machine, UINT8 ch, int line) +MC6847_GET_CHARROM_MEMBER(phc25_state::pal_char_rom_r) { - phc25_state *state = machine.driver_data<phc25_state>(); - - return state->m_char_rom[((ch - 2) * 12) + line + 4]; + return m_char_rom[((ch - 2) * 12) + line + 4]; } // irq is inverted in emulation, so we need this trampoline @@ -290,48 +288,11 @@ WRITE_LINE_MEMBER( phc25_state::irq_w ) m_maincpu->set_input_line(0, state ? CLEAR_LINE : ASSERT_LINE); } -UINT8 phc25_state::ntsc_char_rom_r(running_machine &machine, UINT8 ch, int line) +MC6847_GET_CHARROM_MEMBER(phc25_state::ntsc_char_rom_r) { - phc25_state *state = machine.driver_data<phc25_state>(); - - return state->m_char_rom[(ch * 16) + line]; + return m_char_rom[(ch * 16) + line]; } -static const mc6847_interface ntsc_vdg_intf = -{ - SCREEN_TAG, - DEVCB_DRIVER_MEMBER(phc25_state, video_ram_r), - - DEVCB_NULL, /* AG */ - DEVCB_LINE_VCC, /* GM2 */ - DEVCB_LINE_VCC, /* GM1 */ - DEVCB_NULL, /* GM0 */ - DEVCB_NULL, /* CSS */ - DEVCB_NULL, /* AS */ - DEVCB_LINE_VCC, /* INTEXT */ - DEVCB_NULL, /* INV */ - - &phc25_state::ntsc_char_rom_r -}; - -static const mc6847_interface pal_vdg_intf = -{ - SCREEN_TAG, - DEVCB_DRIVER_MEMBER(phc25_state, video_ram_r), - - DEVCB_NULL, /* AG */ - DEVCB_LINE_VCC, /* GM2 */ - DEVCB_LINE_VCC, /* GM1 */ - DEVCB_NULL, /* GM0 */ - DEVCB_NULL, /* CSS */ - DEVCB_NULL, /* AS */ - DEVCB_LINE_VCC, /* INTEXT */ - DEVCB_NULL, /* INV */ - - &phc25_state::pal_char_rom_r -}; - - void phc25_state::video_start() { /* find memory regions */ @@ -374,15 +335,25 @@ MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( pal, phc25 ) /* video hardware */ MCFG_SCREEN_MC6847_PAL_ADD(SCREEN_TAG, MC6847_TAG) - MCFG_MC6847_ADD(MC6847_TAG, MC6847_PAL, XTAL_4_433619MHz, pal_vdg_intf) + + MCFG_DEVICE_ADD(MC6847_TAG, MC6847_PAL, XTAL_4_433619MHz) MCFG_MC6847_FSYNC_CALLBACK(WRITELINE(phc25_state, irq_w)) + MCFG_MC6847_INPUT_CALLBACK(READ8(phc25_state, video_ram_r)) + MCFG_MC6847_CHARROM_CALLBACK(phc25_state, ntsc_char_rom_r) + MCFG_MC6847_FIXED_MODE(MC6847_MODE_GM2 | MC6847_MODE_GM1 | MC6847_MODE_INTEXT) + // other lines not connected MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( ntsc, phc25 ) /* video hardware */ MCFG_SCREEN_MC6847_NTSC_ADD(SCREEN_TAG, MC6847_TAG) - MCFG_MC6847_ADD(MC6847_TAG, MC6847_NTSC, XTAL_3_579545MHz, ntsc_vdg_intf) + + MCFG_DEVICE_ADD(MC6847_TAG, MC6847_NTSC, XTAL_3_579545MHz) MCFG_MC6847_FSYNC_CALLBACK(WRITELINE(phc25_state, irq_w)) + MCFG_MC6847_INPUT_CALLBACK(READ8(phc25_state, video_ram_r)) + MCFG_MC6847_CHARROM_CALLBACK(phc25_state, pal_char_rom_r) + MCFG_MC6847_FIXED_MODE(MC6847_MODE_GM2 | MC6847_MODE_GM1 | MC6847_MODE_INTEXT) + // other lines not connected MACHINE_CONFIG_END /* ROMs */ diff --git a/src/mess/drivers/spc1000.c b/src/mess/drivers/spc1000.c index 430ae561043..006a3343b7e 100644 --- a/src/mess/drivers/spc1000.c +++ b/src/mess/drivers/spc1000.c @@ -42,13 +42,12 @@ public: DECLARE_WRITE8_MEMBER(spc1000_gmode_w); DECLARE_READ8_MEMBER(spc1000_gmode_r); DECLARE_READ8_MEMBER(porta_r); - DECLARE_READ8_MEMBER(spc1000_mc6847_videoram_r); + DECLARE_READ8_MEMBER(mc6847_videoram_r); DECLARE_WRITE8_MEMBER(cass_w); - static UINT8 get_char_rom(running_machine &machine, UINT8 ch, int line) + MC6847_GET_CHARROM_MEMBER(get_char_rom) { - spc1000_state *state = machine.driver_data<spc1000_state>(); - return state->m_p_videoram[0x1000+(ch&0x7F)*16+line]; + return m_p_videoram[0x1000 + (ch & 0x7f) * 16 + line]; } required_shared_ptr<UINT8> m_p_videoram; @@ -258,7 +257,7 @@ void spc1000_state::machine_reset() m_IPLK = 1; } -READ8_MEMBER(spc1000_state::spc1000_mc6847_videoram_r) +READ8_MEMBER(spc1000_state::mc6847_videoram_r) { if (offset == ~0) return 0xff; @@ -293,23 +292,6 @@ WRITE_LINE_MEMBER( spc1000_state::irq_w ) m_maincpu->set_input_line(0, state ? CLEAR_LINE : HOLD_LINE); } -static const mc6847_interface spc1000_mc6847_intf = -{ - "screen", - DEVCB_DRIVER_MEMBER(spc1000_state,spc1000_mc6847_videoram_r), // data fetch - - DEVCB_NULL, /* AG */ - DEVCB_LINE_VCC, /* GM2 */ - DEVCB_NULL, /* GM1 */ - DEVCB_NULL, /* GM0 */ - DEVCB_NULL, /* CSS */ - DEVCB_NULL, /* AS */ - DEVCB_NULL, /* INTEXT */ - DEVCB_NULL, /* INV */ - - &spc1000_state::get_char_rom -}; - static MACHINE_CONFIG_START( spc1000, spc1000_state ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80, XTAL_4MHz) @@ -318,8 +300,14 @@ static MACHINE_CONFIG_START( spc1000, spc1000_state ) /* video hardware */ MCFG_SCREEN_MC6847_NTSC_ADD("screen", "mc6847") - MCFG_MC6847_ADD("mc6847", MC6847_NTSC, XTAL_3_579545MHz, spc1000_mc6847_intf) + + MCFG_DEVICE_ADD("mc6847", MC6847_NTSC, XTAL_3_579545MHz) MCFG_MC6847_FSYNC_CALLBACK(WRITELINE(spc1000_state, irq_w)) + MCFG_MC6847_INPUT_CALLBACK(READ8(spc1000_state, mc6847_videoram_r)) + MCFG_MC6847_CHARROM_CALLBACK(spc1000_state, get_char_rom) + MCFG_MC6847_FIXED_MODE(MC6847_MODE_GM2) + // other lines not connected + /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SOUND_ADD("ay8910", AY8910, XTAL_4MHz / 1) diff --git a/src/mess/drivers/sv8000.c b/src/mess/drivers/sv8000.c index 3783110db01..8ee62b23aa6 100644 --- a/src/mess/drivers/sv8000.c +++ b/src/mess/drivers/sv8000.c @@ -372,26 +372,6 @@ READ8_MEMBER( sv8000_state::mc6847_videoram_r ) return data; } - -static const mc6847_interface sv8000_mc6847_interface = -{ - "screen", - DEVCB_DRIVER_MEMBER(sv8000_state,mc6847_videoram_r), // data fetch - - DEVCB_NULL, /* AG */ - DEVCB_NULL, /* GM2 */ - DEVCB_NULL, /* GM1 */ - DEVCB_NULL, /* GM0 */ - DEVCB_NULL, /* CSS */ - DEVCB_NULL, /* AS */ - DEVCB_NULL, /* INTEXT */ - DEVCB_NULL, /* INV */ - - NULL, - false -}; - - static MACHINE_CONFIG_START( sv8000, sv8000_state ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",Z80, XTAL_10_738635MHz/3) /* Not verified */ @@ -409,7 +389,9 @@ static MACHINE_CONFIG_START( sv8000, sv8000_state ) /* video hardware */ // S68047P - Unknown whether the internal or an external character rom is used - MCFG_MC6847_ADD("s68047p", S68047, XTAL_10_738635MHz/3, sv8000_mc6847_interface ) // Clock not verified + MCFG_DEVICE_ADD("s68047p", S68047, XTAL_10_738635MHz/3 ) // Clock not verified + MCFG_MC6847_INPUT_CALLBACK(READ8(sv8000_state, mc6847_videoram_r)) + MCFG_SCREEN_MC6847_NTSC_ADD("screen", "s68047p") /* sound hardware */ diff --git a/src/mess/drivers/vtech1.c b/src/mess/drivers/vtech1.c index 497b3af1ba6..d37c5423348 100644 --- a/src/mess/drivers/vtech1.c +++ b/src/mess/drivers/vtech1.c @@ -190,7 +190,7 @@ public: DECLARE_DRIVER_INIT(vtech1); DECLARE_READ8_MEMBER(vtech1_printer_r); DECLARE_WRITE8_MEMBER(vtech1_strobe_w); - DECLARE_READ8_MEMBER(vtech1_mc6847_videoram_r); + DECLARE_READ8_MEMBER(mc6847_videoram_r); DECLARE_SNAPSHOT_LOAD_MEMBER( vtech1 ); void vtech1_get_track(); void vtech1_put_track(); @@ -600,7 +600,7 @@ WRITE8_MEMBER(vtech1_state::vtech1_video_bank_w) VIDEO EMULATION ***************************************************************************/ -READ8_MEMBER(vtech1_state::vtech1_mc6847_videoram_r) +READ8_MEMBER(vtech1_state::mc6847_videoram_r) { if (offset == ~0) return 0xff; m_mc6847->inv_w(BIT(m_videoram[offset], 6)); @@ -887,57 +887,6 @@ static const speaker_interface vtech1_speaker_interface = speaker_levels }; -static const mc6847_interface vtech1_mc6847_bw_intf = -{ - "screen", - DEVCB_DRIVER_MEMBER(vtech1_state,vtech1_mc6847_videoram_r), - - DEVCB_NULL, /* AG */ - DEVCB_LINE_GND, /* GM2 */ - DEVCB_LINE_VCC, /* GM1 */ - DEVCB_LINE_GND, /* GM0 */ - DEVCB_NULL, /* CSS */ - DEVCB_NULL, /* AS */ - DEVCB_LINE_GND, /* INTEXT */ - DEVCB_NULL, /* INV */ - - NULL, /* m_get_char_rom */ - true // monochrome -}; - -static const mc6847_interface vtech1_mc6847_intf = -{ - "screen", - DEVCB_DRIVER_MEMBER(vtech1_state,vtech1_mc6847_videoram_r), - - DEVCB_NULL, /* AG */ - DEVCB_LINE_GND, /* GM2 */ - DEVCB_LINE_VCC, /* GM1 */ - DEVCB_LINE_GND, /* GM0 */ - DEVCB_NULL, /* CSS */ - DEVCB_NULL, /* AS */ - DEVCB_LINE_GND, /* INTEXT */ - DEVCB_NULL, /* INV */ - - NULL, /* m_get_char_rom */ - false // colour -}; - -static const mc6847_interface vtech1_shrg_mc6847_intf = -{ - "screen", - DEVCB_DRIVER_MEMBER(vtech1_state,vtech1_mc6847_videoram_r), - - DEVCB_NULL, /* AG */ - DEVCB_NULL, /* GM2 */ - DEVCB_LINE_VCC, /* GM1 */ - DEVCB_NULL, /* GM0 */ - DEVCB_NULL, /* CSS */ - DEVCB_NULL, /* AS */ - DEVCB_LINE_GND, /* INTEXT */ - DEVCB_NULL, /* INV */ -}; - static MACHINE_CONFIG_START( laser110, vtech1_state ) /* basic machine hardware */ @@ -947,8 +896,14 @@ static MACHINE_CONFIG_START( laser110, vtech1_state ) /* video hardware */ MCFG_SCREEN_MC6847_PAL_ADD("screen", "mc6847") - MCFG_MC6847_ADD("mc6847", MC6847_PAL, XTAL_4_433619MHz, vtech1_mc6847_bw_intf) + + MCFG_DEVICE_ADD("mc6847", MC6847_PAL, XTAL_4_433619MHz) MCFG_MC6847_FSYNC_CALLBACK(INPUTLINE("maincpu", 0)) + MCFG_MC6847_INPUT_CALLBACK(READ8(vtech1_state, mc6847_videoram_r)) + MCFG_MC6847_BW(true) + MCFG_MC6847_FIXED_MODE(MC6847_MODE_GM1) + // GM2 = GND, GM0 = GND, INTEXT = GND + // other lines not connected /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") @@ -985,8 +940,12 @@ MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( laser200, laser110 ) MCFG_DEVICE_REMOVE("mc6847") - MCFG_MC6847_ADD("mc6847", MC6847_PAL, XTAL_4_433619MHz, vtech1_mc6847_intf) + MCFG_DEVICE_ADD("mc6847", MC6847_PAL, XTAL_4_433619MHz) MCFG_MC6847_FSYNC_CALLBACK(INPUTLINE("maincpu", 0)) + MCFG_MC6847_INPUT_CALLBACK(READ8(vtech1_state, mc6847_videoram_r)) + MCFG_MC6847_FIXED_MODE(MC6847_MODE_GM1) + // GM2 = GND, GM0 = GND, INTEXT = GND + // other lines not connected MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( laser210, laser200 ) @@ -1013,9 +972,14 @@ MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( laser310h, laser310 ) MCFG_CPU_MODIFY("maincpu") MCFG_CPU_IO_MAP(vtech1_shrg_io) + MCFG_DEVICE_REMOVE("mc6847") - MCFG_MC6847_ADD("mc6847", MC6847_PAL, XTAL_4_433619MHz, vtech1_shrg_mc6847_intf) + MCFG_DEVICE_ADD("mc6847", MC6847_PAL, XTAL_4_433619MHz) MCFG_MC6847_FSYNC_CALLBACK(INPUTLINE("maincpu", 0)) + MCFG_MC6847_INPUT_CALLBACK(READ8(vtech1_state, mc6847_videoram_r)) + MCFG_MC6847_FIXED_MODE(MC6847_MODE_GM1) + // INTEXT = GND + // other lines not connected MACHINE_CONFIG_END diff --git a/src/mess/drivers/z80ne.c b/src/mess/drivers/z80ne.c index 97306ee0ca8..af48a454ee0 100644 --- a/src/mess/drivers/z80ne.c +++ b/src/mess/drivers/z80ne.c @@ -407,21 +407,6 @@ static const floppy_interface z80netf_floppy_interface = NULL }; -static const mc6847_interface z80net_mc6847_intf = -{ - "lx388", - DEVCB_DRIVER_MEMBER(z80ne_state, lx388_mc6847_videoram_r), - - DEVCB_LINE_GND, /* AG */ - DEVCB_LINE_GND, /* GM2 */ - DEVCB_LINE_GND, /* GM1 */ - DEVCB_LINE_GND, /* GM0 */ - DEVCB_LINE_GND, /* CSS */ - DEVCB_NULL, /* AS */ - DEVCB_NULL, /* INTEXT */ - DEVCB_NULL, /* INV */ -}; - static MACHINE_CONFIG_START( z80ne, z80ne_state ) /* basic machine hardware */ MCFG_CPU_ADD("z80ne", Z80, Z80NE_CPU_SPEED_HZ) @@ -461,7 +446,11 @@ static MACHINE_CONFIG_DERIVED( z80net, z80ne ) /* video hardware */ MCFG_SCREEN_MC6847_PAL_ADD("lx388", "mc6847") - MCFG_MC6847_ADD("mc6847", MC6847_PAL, XTAL_4_433619MHz, z80net_mc6847_intf) + + MCFG_DEVICE_ADD("mc6847", MC6847_PAL, XTAL_4_433619MHz) + MCFG_MC6847_INPUT_CALLBACK(READ8(z80ne_state, lx388_mc6847_videoram_r)) + // AG = GND, GM2 = GND, GM1 = GND, GM0 = GND, CSS = GND + // other lines not connected MCFG_DEFAULT_LAYOUT(layout_z80net) @@ -494,7 +483,11 @@ static MACHINE_CONFIG_START( z80netb, z80ne_state ) /* video hardware */ MCFG_SCREEN_MC6847_PAL_ADD("lx388", "mc6847") - MCFG_MC6847_ADD("mc6847", MC6847_PAL, XTAL_4_433619MHz, z80net_mc6847_intf) + + MCFG_DEVICE_ADD("mc6847", MC6847_PAL, XTAL_4_433619MHz) + MCFG_MC6847_INPUT_CALLBACK(READ8(z80ne_state, lx388_mc6847_videoram_r)) + // AG = GND, GM2 = GND, GM1 = GND, GM0 = GND, CSS = GND + // other lines not connected MCFG_DEFAULT_LAYOUT(layout_z80netb) @@ -527,7 +520,11 @@ static MACHINE_CONFIG_START( z80netf, z80ne_state ) /* video hardware */ MCFG_SCREEN_MC6847_PAL_ADD("lx388", "mc6847") - MCFG_MC6847_ADD("mc6847", MC6847_PAL, XTAL_4_433619MHz, z80net_mc6847_intf) + + MCFG_DEVICE_ADD("mc6847", MC6847_PAL, XTAL_4_433619MHz) + MCFG_MC6847_INPUT_CALLBACK(READ8(z80ne_state, lx388_mc6847_videoram_r)) + // AG = GND, GM2 = GND, GM1 = GND, GM0 = GND, CSS = GND + // other lines not connected MCFG_FD1771_ADD("wd1771", default_wd17xx_interface) MCFG_LEGACY_FLOPPY_4_DRIVES_ADD(z80netf_floppy_interface) diff --git a/src/mess/includes/coco12.h b/src/mess/includes/coco12.h index a25a74f2caa..98f2a86ae17 100644 --- a/src/mess/includes/coco12.h +++ b/src/mess/includes/coco12.h @@ -45,7 +45,6 @@ public: required_device<sam6883_device> m_sam; required_device<mc6847_base_device> m_vdg; - static const mc6847_interface mc6847_config; static const sam6883_interface sam6883_config; DECLARE_READ8_MEMBER( sam_read ); diff --git a/src/mess/includes/phc25.h b/src/mess/includes/phc25.h index a90412821d1..649bbf548ed 100644 --- a/src/mess/includes/phc25.h +++ b/src/mess/includes/phc25.h @@ -41,8 +41,8 @@ public: DECLARE_WRITE8_MEMBER( port40_w ); DECLARE_WRITE_LINE_MEMBER(irq_w); DECLARE_READ8_MEMBER( video_ram_r ); - static UINT8 ntsc_char_rom_r(running_machine &machine, UINT8 ch, int line); - static UINT8 pal_char_rom_r(running_machine &machine, UINT8 ch, int line); + MC6847_GET_CHARROM_MEMBER(ntsc_char_rom_r); + MC6847_GET_CHARROM_MEMBER(pal_char_rom_r); private: virtual void video_start(); diff --git a/src/mess/machine/coco12.c b/src/mess/machine/coco12.c index 9691c6cf000..49c6bf17ae6 100644 --- a/src/mess/machine/coco12.c +++ b/src/mess/machine/coco12.c @@ -120,18 +120,6 @@ void coco12_state::update_cart_base(UINT8 *cart_base) //------------------------------------------------- -// mc6847_config -//------------------------------------------------- - -const mc6847_interface coco12_state::mc6847_config = -{ - SCREEN_TAG, - DEVCB_DEVICE_MEMBER(SAM_TAG, sam6883_device, display_read) -}; - - - -//------------------------------------------------- // sam6883_config //------------------------------------------------- diff --git a/src/mess/video/gime.c b/src/mess/video/gime.c index 18d94a2fd7f..265e7b5fbaa 100644 --- a/src/mess/video/gime.c +++ b/src/mess/video/gime.c @@ -1643,8 +1643,6 @@ UINT32 gime_base_device::emit_dummy_samples(const scanline_record *scanline, int return 0; } - - //------------------------------------------------- // emit_mc6847_samples //------------------------------------------------- @@ -1657,7 +1655,7 @@ ATTR_FORCE_INLINE UINT32 gime_base_device::emit_mc6847_samples(const scanline_re sample_count, pixels, palette, - NULL, + super::m_charrom_cb, sample_start, scanline->m_line_in_row); } |