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/mess | |
parent | 41afc28498b64234680b70262a18939f94b1a051 (diff) |
mc6847: converted to use devcb2, delegates and inline configs. nw.
Diffstat (limited to 'src/mess')
-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 |
16 files changed, 108 insertions, 247 deletions
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); } |