From 34372f03c7fa183b6e41c0e03e898a7f9cd3d52f Mon Sep 17 00:00:00 2001 From: Angelo Salese Date: Mon, 14 Jan 2013 22:02:06 +0000 Subject: [PATCH] Added a preliminary boolean flag to MC6845 interface structure: "show border area". If true, it will show the whole video area including border + blanking areas. [Angelo Salese] Bulk replaced const mc6845_interface -> MC6845_INTERFACE, nw (MESS) SMC-777: enabled to show the border area in MC6845 interface, changed various video related function accordingly [Angelo Salese] --- src/emu/video/mc6845.c | 10 ++- src/emu/video/mc6845.h | 1 + src/emu/video/pc_cga.c | 21 ++++--- src/mame/drivers/4roses.c | 3 +- src/mame/drivers/5clown.c | 3 +- src/mame/drivers/albazg.c | 3 +- src/mame/drivers/amaticmg.c | 3 +- src/mame/drivers/aristmk4.c | 5 +- src/mame/drivers/avt.c | 3 +- src/mame/drivers/blitz.c | 3 +- src/mame/drivers/blitz68k.c | 10 ++- src/mame/drivers/buster.c | 3 +- src/mame/drivers/calomega.c | 3 +- src/mame/drivers/carrera.c | 3 +- src/mame/drivers/chance32.c | 3 +- src/mame/drivers/coinmstr.c | 3 +- src/mame/drivers/flipjack.c | 1 + src/mame/drivers/fortecar.c | 3 +- src/mame/drivers/funworld.c | 3 +- src/mame/drivers/goldnpkr.c | 3 +- src/mame/drivers/hitpoker.c | 3 +- src/mame/drivers/jokrwild.c | 3 +- src/mame/drivers/jubilee.c | 3 +- src/mame/drivers/kingdrby.c | 3 +- src/mame/drivers/laserbas.c | 3 +- src/mame/drivers/luckgrln.c | 3 +- src/mame/drivers/magicfly.c | 3 +- src/mame/drivers/majorpkr.c | 3 +- src/mame/drivers/merit.c | 3 +- src/mame/drivers/miniboy7.c | 3 +- src/mame/drivers/mpu12wbk.c | 3 +- src/mame/drivers/mpu4dealem.c | 3 +- src/mame/drivers/murogem.c | 3 +- src/mame/drivers/nyny.c | 3 +- src/mame/drivers/othello.c | 3 +- src/mame/drivers/peplus.c | 3 +- src/mame/drivers/progolf.c | 12 +--- src/mame/drivers/r2dtank.c | 3 +- src/mame/drivers/rgum.c | 3 +- src/mame/drivers/slotcarn.c | 3 +- src/mame/drivers/snk6502.c | 3 +- src/mame/drivers/speedatk.c | 3 +- src/mame/drivers/spiders.c | 3 +- src/mame/drivers/ssingles.c | 7 ++- src/mame/drivers/supercrd.c | 3 +- src/mame/drivers/tapatune.c | 3 +- src/mame/drivers/tmspoker.c | 3 +- src/mame/drivers/truco.c | 3 +- src/mame/drivers/usgames.c | 3 +- src/mame/drivers/vcombat.c | 3 +- src/mame/drivers/vlc.c | 7 ++- src/mame/drivers/whitestar.c | 3 +- src/mame/video/madalien.c | 3 +- src/mame/video/qix.c | 3 +- src/mame/video/twincobr.c | 3 +- src/mess/drivers/a6809.c | 4 +- src/mess/drivers/alphatro.c | 4 +- src/mess/drivers/applix.c | 4 +- src/mess/drivers/apricot.c | 4 +- src/mess/drivers/apricotp.c | 4 +- src/mess/drivers/b16.c | 3 +- src/mess/drivers/bigbord2.c | 4 +- src/mess/drivers/bml3.c | 4 +- src/mess/drivers/bw12.c | 4 +- src/mess/drivers/c128.c | 4 +- src/mess/drivers/camplynx.c | 9 ++- src/mess/drivers/cbm2.c | 3 +- src/mess/drivers/dim68k.c | 4 +- src/mess/drivers/ec65.c | 4 +- src/mess/drivers/einstein.c | 3 +- src/mess/drivers/fp1100.c | 4 +- src/mess/drivers/fp6000.c | 3 +- src/mess/drivers/h19.c | 4 +- src/mess/drivers/hp9k.c | 5 +- src/mess/drivers/kaypro.c | 6 +- src/mess/drivers/m20.c | 4 +- src/mess/drivers/mbc200.c | 5 +- src/mess/drivers/mbee.c | 18 ++++-- src/mess/drivers/multi16.c | 4 +- src/mess/drivers/multi8.c | 4 +- src/mess/drivers/myb3k.c | 3 +- src/mess/drivers/mycom.c | 23 +++---- src/mess/drivers/paso1600.c | 3 +- src/mess/drivers/pasopia.c | 21 ++++--- src/mess/drivers/pasopia7.c | 3 +- src/mess/drivers/pet.c | 9 ++- src/mess/drivers/pyl601.c | 7 ++- src/mess/drivers/smc777.c | 111 ++++++++++++++++++--------------- src/mess/drivers/super80.c | 4 +- src/mess/drivers/svi318.c | 4 +- src/mess/drivers/trs80m2.c | 3 +- src/mess/drivers/tvc.c | 4 +- src/mess/drivers/v6809.c | 5 +- src/mess/drivers/victor9k.c | 4 +- src/mess/drivers/vk100.c | 3 +- src/mess/drivers/x1.c | 3 +- src/mess/drivers/x1twin.c | 21 ++++--- src/mess/drivers/z100.c | 4 +- src/mess/drivers/zrt80.c | 4 +- src/mess/machine/a2videoterm.c | 3 +- src/mess/machine/amstrad.c | 6 +- src/mess/machine/c64_xl80.c | 3 +- src/mess/machine/comx_clm.c | 3 +- src/mess/machine/ecb_grip.c | 7 ++- src/mess/machine/wangpc_lvc.c | 3 +- src/mess/machine/wangpc_mvc.c | 3 +- src/mess/video/abc1600.c | 3 +- src/mess/video/abc800.c | 3 +- src/mess/video/abc802.c | 3 +- src/mess/video/abc806.c | 3 +- src/mess/video/bbc.c | 3 +- src/mess/video/dgn_beta.c | 3 +- src/mess/video/isa_cga.c | 3 +- src/mess/video/isa_mda.c | 7 ++- src/mess/video/mbc55x.c | 3 +- src/mess/video/pc1512.c | 3 +- src/mess/video/pc1640.c | 3 +- src/mess/video/pc8401a.c | 4 +- src/mess/video/pc_aga.c | 4 +- src/mess/video/pc_t1t.c | 8 ++- src/mess/video/v1050.c | 3 +- 121 files changed, 424 insertions(+), 230 deletions(-) diff --git a/src/emu/video/mc6845.c b/src/emu/video/mc6845.c index 343ac7b852f..a00967442c1 100644 --- a/src/emu/video/mc6845.c +++ b/src/emu/video/mc6845.c @@ -26,6 +26,9 @@ TODO: + - Change device video emulation x/y offsets when "show border color" + is true + - mos8563 - horizontal scroll @@ -95,6 +98,7 @@ void mc6845_device::device_config_complete() else { m_screen_tag = NULL; + m_show_border_area = false; m_hpixels_per_column = 0; m_begin_update = NULL; m_update_row = NULL; @@ -506,7 +510,10 @@ void mc6845_device::recompute_parameters(bool postload) attoseconds_t refresh = HZ_TO_ATTOSECONDS(m_clock) * (m_horiz_char_total + 1) * vert_pix_total; - visarea.set(0, max_visible_x, 0, max_visible_y); + if(m_show_border_area) + visarea.set(0, horiz_pix_total+1, 0, vert_pix_total+1); + else + visarea.set(0, max_visible_x, 0, max_visible_y); if (LOG) logerror("M6845 config screen: HTOTAL: 0x%x VTOTAL: 0x%x MAX_X: 0x%x MAX_Y: 0x%x HSYNC: 0x%x-0x%x VSYNC: 0x%x-0x%x Freq: %ffps\n", horiz_pix_total, vert_pix_total, max_visible_x, max_visible_y, hsync_on_pos, hsync_off_pos - 1, vsync_on_pos, vsync_off_pos - 1, 1 / ATTOSECONDS_TO_DOUBLE(refresh)); @@ -1041,6 +1048,7 @@ void mc6845_device::device_start() m_line_address = 0; m_current_disp_addr = 0; + save_item(NAME(m_show_border_area)); save_item(NAME(m_hpixels_per_column)); save_item(NAME(m_register_address_latch)); save_item(NAME(m_horiz_char_total)); diff --git a/src/emu/video/mc6845.h b/src/emu/video/mc6845.h index 5116dc545fa..c75ee6d5927 100644 --- a/src/emu/video/mc6845.h +++ b/src/emu/video/mc6845.h @@ -70,6 +70,7 @@ typedef void (*mc6845_on_update_addr_changed_func)(mc6845_device *device, int ad struct mc6845_interface { const char *m_screen_tag; /* screen we are acting on */ + bool m_show_border_area; /* visible screen area (false) active display (true) active display + blanking */ int m_hpixels_per_column; /* number of pixels per video memory address */ /* if specified, this gets called before any pixel update, diff --git a/src/emu/video/pc_cga.c b/src/emu/video/pc_cga.c index f73d0896b65..34c63d23e49 100644 --- a/src/emu/video/pc_cga.c +++ b/src/emu/video/pc_cga.c @@ -180,17 +180,18 @@ static VIDEO_START( cga_poisk2 ); static SCREEN_UPDATE_RGB32( cga_poisk2 ); static VIDEO_START( cga_mc1502 ); -static const mc6845_interface mc6845_cga_intf = +static MC6845_INTERFACE( mc6845_cga_intf ) { - CGA_SCREEN_NAME, /* screen number */ - 8, /* numbers of pixels per video memory address */ - NULL, /* begin_update */ - cga_update_row, /* update_row */ - NULL, /* end_update */ - DEVCB_NULL, /* on_de_changed */ - DEVCB_NULL, /* on_cur_changed */ - DEVCB_LINE(cga_hsync_changed), /* on_hsync_changed */ - DEVCB_LINE(cga_vsync_changed), /* on_vsync_changed */ + CGA_SCREEN_NAME, /* screen number */ + false, /* show border area */ + 8, /* numbers of pixels per video memory address */ + NULL, /* begin_update */ + cga_update_row, /* update_row */ + NULL, /* end_update */ + DEVCB_NULL, /* on_de_changed */ + DEVCB_NULL, /* on_cur_changed */ + DEVCB_LINE(cga_hsync_changed), /* on_hsync_changed */ + DEVCB_LINE(cga_vsync_changed), /* on_vsync_changed */ NULL }; diff --git a/src/mame/drivers/4roses.c b/src/mame/drivers/4roses.c index f38ec2eb343..5fad88a79b1 100644 --- a/src/mame/drivers/4roses.c +++ b/src/mame/drivers/4roses.c @@ -362,9 +362,10 @@ static const ay8910_interface ay8910_intf = * CRTC Interface * ************************/ -static const mc6845_interface mc6845_intf = +static MC6845_INTERFACE( mc6845_intf ) { "screen", /* screen we are acting on */ + false, /* show border area */ 8, /* number of pixels per video memory address */ NULL, /* before pixel update callback */ NULL, /* row update callback */ diff --git a/src/mame/drivers/5clown.c b/src/mame/drivers/5clown.c index c9298ff056b..1ffa9a399d9 100644 --- a/src/mame/drivers/5clown.c +++ b/src/mame/drivers/5clown.c @@ -988,9 +988,10 @@ GFXDECODE_END * CRTC Interface * ***********************/ -static const mc6845_interface mc6845_intf = +static MC6845_INTERFACE( mc6845_intf ) { "screen", /* screen we are acting on */ + false, /* show border area */ 8, /* number of pixels per video memory address */ NULL, /* before pixel update callback */ NULL, /* row update callback */ diff --git a/src/mame/drivers/albazg.c b/src/mame/drivers/albazg.c index 35e2c3131a2..fb4960948ba 100644 --- a/src/mame/drivers/albazg.c +++ b/src/mame/drivers/albazg.c @@ -207,9 +207,10 @@ static const ay8910_interface ay8910_config = DEVCB_NULL }; -static const mc6845_interface mc6845_intf = +static MC6845_INTERFACE( mc6845_intf ) { "screen", /* screen we are acting on */ + false, /* show border area */ 8, /* number of pixels per video memory address */ NULL, /* before pixel update callback */ NULL, /* row update callback */ diff --git a/src/mame/drivers/amaticmg.c b/src/mame/drivers/amaticmg.c index 86fa6c7c529..eeb935f0273 100644 --- a/src/mame/drivers/amaticmg.c +++ b/src/mame/drivers/amaticmg.c @@ -799,9 +799,10 @@ static const ym3812_interface ym3812_config = * CRTC Interface * ************************************/ -static const mc6845_interface mc6845_intf = +static MC6845_INTERFACE( mc6845_intf ) { "screen", /* screen we are acting on */ + false, /* show border area */ 4, /* number of pixels per video memory address */ NULL, /* before pixel update callback */ NULL, /* row update callback */ diff --git a/src/mame/drivers/aristmk4.c b/src/mame/drivers/aristmk4.c index 6e24bf8d8f4..43e3c0e42f2 100644 --- a/src/mame/drivers/aristmk4.c +++ b/src/mame/drivers/aristmk4.c @@ -1545,13 +1545,14 @@ static const pia6821_interface aristmk4_pia1_intf = DEVCB_NULL // IRQB }; -static const mc6845_interface mc6845_intf = +static MC6845_INTERFACE( mc6845_intf ) { /* in fact is a mc6845 driving 4 pixels by memory address. that's why the big horizontal parameters */ "screen", /* screen we are acting on */ - 4, /* number of pixels per video memory address */ + false, /* show border area */ + 4, /* number of pixels per video memory address */ NULL, /* before pixel update callback */ NULL, /* row update callback */ NULL, /* after pixel update callback */ diff --git a/src/mame/drivers/avt.c b/src/mame/drivers/avt.c index f23bb45b65d..358c900ca42 100644 --- a/src/mame/drivers/avt.c +++ b/src/mame/drivers/avt.c @@ -847,9 +847,10 @@ GFXDECODE_END * CRTC Interface * *******************************************/ -static const mc6845_interface mc6845_intf = +static MC6845_INTERFACE( mc6845_intf ) { "screen", /* screen we are acting on */ + false, /* show border area */ 8, /* number of pixels per video memory address */ NULL, /* before pixel update callback */ NULL, /* row update callback */ diff --git a/src/mame/drivers/blitz.c b/src/mame/drivers/blitz.c index defbe2dd4e0..477a91c79e4 100644 --- a/src/mame/drivers/blitz.c +++ b/src/mame/drivers/blitz.c @@ -738,9 +738,10 @@ static const pia6821_interface megadpkr_pia1_intf = * CRTC Interface * ********************************************/ -static const mc6845_interface mc6845_intf = +static MC6845_INTERFACE( mc6845_intf ) { "screen", /* screen we are acting on */ + false, /* show border area */ 8, /* number of pixels per video memory address */ NULL, /* before pixel update callback */ NULL, /* row update callback */ diff --git a/src/mame/drivers/blitz68k.c b/src/mame/drivers/blitz68k.c index 35da4976f5e..a67a0770485 100644 --- a/src/mame/drivers/blitz68k.c +++ b/src/mame/drivers/blitz68k.c @@ -1662,9 +1662,11 @@ WRITE_LINE_MEMBER(blitz68k_state::crtc_vsync_irq5) machine().device("maincpu")->execute().set_input_line(5, state ? ASSERT_LINE : CLEAR_LINE); } -const mc6845_interface mc6845_intf_irq1 = + +static MC6845_INTERFACE( mc6845_intf_irq1 ) { "screen", /* screen we are acting on */ + false, /* show border area */ 4, /* number of pixels per video memory address */ /* Horizontal Display programmed to 160 characters */ NULL, /* before pixel update callback */ NULL, /* row update callback */ @@ -1676,9 +1678,10 @@ const mc6845_interface mc6845_intf_irq1 = crtc_addr /* update address callback */ }; -const mc6845_interface mc6845_intf_irq3 = +static MC6845_INTERFACE( mc6845_intf_irq3 ) { "screen", /* screen we are acting on */ + false, /* show border area */ 4, /* number of pixels per video memory address */ /* Horizontal Display programmed to 160 characters */ NULL, /* before pixel update callback */ NULL, /* row update callback */ @@ -1690,9 +1693,10 @@ const mc6845_interface mc6845_intf_irq3 = crtc_addr /* update address callback */ }; -const mc6845_interface mc6845_intf_irq5 = +static MC6845_INTERFACE( mc6845_intf_irq5 ) { "screen", /* screen we are acting on */ + false, /* show border area */ 4, /* number of pixels per video memory address */ /* Horizontal Display programmed to 160 characters */ NULL, /* before pixel update callback */ NULL, /* row update callback */ diff --git a/src/mame/drivers/buster.c b/src/mame/drivers/buster.c index bd790ad0881..bc644c8c354 100644 --- a/src/mame/drivers/buster.c +++ b/src/mame/drivers/buster.c @@ -306,9 +306,10 @@ static GFXDECODE_START( buster ) GFXDECODE_ENTRY( "gfx1", 0, tiles8x8_layout, 0, 1 ) GFXDECODE_END -static const mc6845_interface mc6845_intf = +static MC6845_INTERFACE( mc6845_intf ) { "screen", /* screen we are acting on */ + false, /* show border area */ 8, /* number of pixels per video memory address */ NULL, /* before pixel update callback */ NULL, /* row update callback */ diff --git a/src/mame/drivers/calomega.c b/src/mame/drivers/calomega.c index 5bc36471ec9..db6dcc724a9 100644 --- a/src/mame/drivers/calomega.c +++ b/src/mame/drivers/calomega.c @@ -2714,9 +2714,10 @@ static const ay8910_interface sys906_ay8912_intf = * CRTC Interface * *************************************************/ -static const mc6845_interface mc6845_intf = +static MC6845_INTERFACE( mc6845_intf ) { "screen", /* screen we are acting on */ + false, /* show border area */ 8, /* number of pixels per video memory address */ NULL, /* before pixel update callback */ NULL, /* row update callback */ diff --git a/src/mame/drivers/carrera.c b/src/mame/drivers/carrera.c index a09e1201e4a..25e3ae77bb1 100644 --- a/src/mame/drivers/carrera.c +++ b/src/mame/drivers/carrera.c @@ -309,9 +309,10 @@ void carrera_state::palette_init() } -static const mc6845_interface mc6845_intf = +static MC6845_INTERFACE( mc6845_intf ) { "screen", /* screen we are acting on */ + false, /* show border area */ 8, /* number of pixels per video memory address */ NULL, /* before pixel update callback */ NULL, /* row update callback */ diff --git a/src/mame/drivers/chance32.c b/src/mame/drivers/chance32.c index 98a9230e735..561dea3e996 100644 --- a/src/mame/drivers/chance32.c +++ b/src/mame/drivers/chance32.c @@ -446,9 +446,10 @@ void chance32_state::machine_reset() } -static const mc6845_interface mc6845_intf = +static MC6845_INTERFACE( mc6845_intf ) { "screen", /* screen we are acting on */ + false, /* show border area */ 16, /* number of pixels per video memory address */ NULL, /* before pixel update callback */ NULL, /* row update callback */ diff --git a/src/mame/drivers/coinmstr.c b/src/mame/drivers/coinmstr.c index 4ad99b3a76f..287657778b4 100644 --- a/src/mame/drivers/coinmstr.c +++ b/src/mame/drivers/coinmstr.c @@ -992,9 +992,10 @@ static const ay8910_interface ay8912_interface = DEVCB_NULL }; -static const mc6845_interface h46505_intf = +static MC6845_INTERFACE( h46505_intf ) { "screen", /* screen we are acting on */ + false, /* show border area */ 8, /* number of pixels per video memory address */ NULL, /* before pixel update callback */ NULL, /* row update callback */ diff --git a/src/mame/drivers/flipjack.c b/src/mame/drivers/flipjack.c index aabf3c21098..84b4ce8a42c 100644 --- a/src/mame/drivers/flipjack.c +++ b/src/mame/drivers/flipjack.c @@ -430,6 +430,7 @@ static AY8910_INTERFACE( ay8910_config_2 ) static MC6845_INTERFACE( mc6845_intf ) { "screen", /* screen we are acting on */ + false, /* show border area */ 8, /* number of pixels per video memory address */ NULL, /* before pixel update callback */ NULL, /* row update callback */ diff --git a/src/mame/drivers/fortecar.c b/src/mame/drivers/fortecar.c index 6dadfda5c3e..509a7ef9ec1 100644 --- a/src/mame/drivers/fortecar.c +++ b/src/mame/drivers/fortecar.c @@ -535,9 +535,10 @@ static const ay8910_interface ay8910_config = }; -static const mc6845_interface mc6845_intf = +static MC6845_INTERFACE( mc6845_intf ) { "screen", /* screen we are acting on */ + false, /* show border area */ 8, /* number of pixels per video memory address */ NULL, /* before pixel update callback */ NULL, /* row update callback */ diff --git a/src/mame/drivers/funworld.c b/src/mame/drivers/funworld.c index 74872984a4d..2639bde32c7 100644 --- a/src/mame/drivers/funworld.c +++ b/src/mame/drivers/funworld.c @@ -2457,9 +2457,10 @@ static const ay8910_interface funquiz_ay8910_intf = * CRTC Interface * ************************/ -static const mc6845_interface mc6845_intf = +static MC6845_INTERFACE( mc6845_intf ) { "screen", /* screen we are acting on */ + false, /* show border area */ 4, /* number of pixels per video memory address */ NULL, /* before pixel update callback */ NULL, /* row update callback */ diff --git a/src/mame/drivers/goldnpkr.c b/src/mame/drivers/goldnpkr.c index 4a53ce6eb21..86a17522ff6 100644 --- a/src/mame/drivers/goldnpkr.c +++ b/src/mame/drivers/goldnpkr.c @@ -3399,9 +3399,10 @@ static const pia6821_interface wcfalcon_pia1_intf = * CRTC Interface * *******************************************/ -static const mc6845_interface mc6845_intf = +static MC6845_INTERFACE( mc6845_intf ) { "screen", /* screen we are acting on */ + false, /* show border area */ 8, /* number of pixels per video memory address */ NULL, /* before pixel update callback */ NULL, /* row update callback */ diff --git a/src/mame/drivers/hitpoker.c b/src/mame/drivers/hitpoker.c index 1313104572d..cf6138a5ce5 100644 --- a/src/mame/drivers/hitpoker.c +++ b/src/mame/drivers/hitpoker.c @@ -455,9 +455,10 @@ static GFXDECODE_START( hitpoker ) GFXDECODE_ENTRY( "gfx1", 0, hitpoker_layout_8bpp, 0, 8 ) GFXDECODE_END -static const mc6845_interface mc6845_intf = +static MC6845_INTERFACE( mc6845_intf ) { "screen", /* screen we are acting on */ + false, /* show border area */ 8, /* number of pixels per video memory address */ NULL, /* before pixel update callback */ NULL, /* row update callback */ diff --git a/src/mame/drivers/jokrwild.c b/src/mame/drivers/jokrwild.c index 4052e85015d..c65a2131a3c 100644 --- a/src/mame/drivers/jokrwild.c +++ b/src/mame/drivers/jokrwild.c @@ -456,9 +456,10 @@ static const pia6821_interface pia1_intf = * CRTC Interface * ************************/ -static const mc6845_interface mc6845_intf = +static MC6845_INTERFACE( mc6845_intf ) { "screen", /* screen we are acting on */ + false, /* show border area */ 8, /* number of pixels per video memory address */ NULL, /* before pixel update callback */ NULL, /* row update callback */ diff --git a/src/mame/drivers/jubilee.c b/src/mame/drivers/jubilee.c index d20238e6f52..93cd21dc82b 100644 --- a/src/mame/drivers/jubilee.c +++ b/src/mame/drivers/jubilee.c @@ -392,9 +392,10 @@ GFXDECODE_END * CRTC Interface * ************************/ -static const mc6845_interface mc6845_intf = +static MC6845_INTERFACE( mc6845_intf ) { "screen", /* screen we are acting on */ + false, /* show border area */ 8, /* number of pixels per video memory address */ NULL, /* before pixel update callback */ NULL, /* row update callback */ diff --git a/src/mame/drivers/kingdrby.c b/src/mame/drivers/kingdrby.c index 0b650fc6633..7a7933c3e8c 100644 --- a/src/mame/drivers/kingdrby.c +++ b/src/mame/drivers/kingdrby.c @@ -912,9 +912,10 @@ GFXDECODE_END * ***********************************************************************************************************/ -static const mc6845_interface mc6845_intf = +static MC6845_INTERFACE( mc6845_intf ) { "screen", /* screen we are acting on */ + false, /* show border area */ 8, /* number of pixels per video memory address */ NULL, /* before pixel update callback */ NULL, /* row update callback */ diff --git a/src/mame/drivers/laserbas.c b/src/mame/drivers/laserbas.c index 22eb1c74496..28d8af05a13 100644 --- a/src/mame/drivers/laserbas.c +++ b/src/mame/drivers/laserbas.c @@ -236,9 +236,10 @@ void laserbas_state::machine_reset() m_count = 0; } -static const mc6845_interface mc6845_intf = +static MC6845_INTERFACE( mc6845_intf ) { "screen", /* screen we are acting on */ + false, /* show border area */ 8, /* number of pixels per video memory address */ NULL, /* before pixel update callback */ NULL, /* row update callback */ diff --git a/src/mame/drivers/luckgrln.c b/src/mame/drivers/luckgrln.c index db0b17f6bce..175cb6302f1 100644 --- a/src/mame/drivers/luckgrln.c +++ b/src/mame/drivers/luckgrln.c @@ -973,9 +973,10 @@ static GFXDECODE_START( luckgrln ) GFXDECODE_ENTRY( "reels", 0, tiles8x32_layout, 0, 64 ) GFXDECODE_END -static const mc6845_interface mc6845_intf = +static MC6845_INTERFACE( mc6845_intf ) { "screen", /* screen we are acting on */ + false, /* show border area */ 8, /* number of pixels per video memory address */ NULL, /* before pixel update callback */ NULL, /* row update callback */ diff --git a/src/mame/drivers/magicfly.c b/src/mame/drivers/magicfly.c index ff8c296105e..fe441a7e8ea 100644 --- a/src/mame/drivers/magicfly.c +++ b/src/mame/drivers/magicfly.c @@ -780,9 +780,10 @@ GFXDECODE_END * CRTC Interface * ************************/ -static const mc6845_interface mc6845_intf = +static MC6845_INTERFACE( mc6845_intf ) { "screen", /* screen we are acting on */ + false, /* show border area */ 8, /* number of pixels per video memory address */ NULL, /* before pixel update callback */ NULL, /* row update callback */ diff --git a/src/mame/drivers/majorpkr.c b/src/mame/drivers/majorpkr.c index e096436e4c6..26d0ffce967 100644 --- a/src/mame/drivers/majorpkr.c +++ b/src/mame/drivers/majorpkr.c @@ -999,9 +999,10 @@ GFXDECODE_END * CRTC Interface * ***********************/ -static const mc6845_interface mc6845_intf = +static MC6845_INTERFACE( mc6845_intf ) { "screen", /* screen we are acting on */ + false, /* show border area */ 16, /* number of pixels per video memory address */ NULL, /* before pixel update callback */ NULL, /* row update callback */ diff --git a/src/mame/drivers/merit.c b/src/mame/drivers/merit.c index 7c27325b434..556eace556c 100644 --- a/src/mame/drivers/merit.c +++ b/src/mame/drivers/merit.c @@ -313,9 +313,10 @@ WRITE_LINE_MEMBER(merit_state::vsync_changed) machine().device("maincpu")->execute().set_input_line(0, state ? ASSERT_LINE : CLEAR_LINE); } -static const mc6845_interface mc6845_intf = +static MC6845_INTERFACE( mc6845_intf ) { "screen", /* screen we are acting on */ + false, /* show border area */ 8, /* number of pixels per video memory address */ begin_update, /* before pixel update callback */ update_row, /* row update callback */ diff --git a/src/mame/drivers/miniboy7.c b/src/mame/drivers/miniboy7.c index dc3cc69e1e3..507b6394a9a 100644 --- a/src/mame/drivers/miniboy7.c +++ b/src/mame/drivers/miniboy7.c @@ -391,9 +391,10 @@ GFXDECODE_END * CRTC Interface * **********************************/ -static const mc6845_interface mc6845_intf = +static MC6845_INTERFACE( mc6845_intf ) { "screen", /* screen we are acting on */ + false, /* show border area */ 8, /* number of pixels per video memory address */ NULL, /* before pixel update callback */ NULL, /* row update callback */ diff --git a/src/mame/drivers/mpu12wbk.c b/src/mame/drivers/mpu12wbk.c index 521caaad48c..9dde807e763 100644 --- a/src/mame/drivers/mpu12wbk.c +++ b/src/mame/drivers/mpu12wbk.c @@ -491,9 +491,10 @@ static const ay8910_interface ay8910_config = * CRTC Interface * ************************/ -static const mc6845_interface mc6845_intf = +static MC6845_INTERFACE( mc6845_intf ) { "screen", /* screen we are acting on */ + false, /* show border area */ 4, /* number of pixels per video memory address */ NULL, /* before pixel update callback */ NULL, /* row update callback */ diff --git a/src/mame/drivers/mpu4dealem.c b/src/mame/drivers/mpu4dealem.c index 5bb301feeb1..6092a0ea392 100644 --- a/src/mame/drivers/mpu4dealem.c +++ b/src/mame/drivers/mpu4dealem.c @@ -144,9 +144,10 @@ WRITE_LINE_MEMBER(mpu4dealem_state::dealem_vsync_changed) * *************************************/ -static const mc6845_interface hd6845_intf = +static MC6845_INTERFACE( hd6845_intf ) { "screen", /* screen we are acting on */ + false, /* show border area */ 8, /* number of pixels per video memory address */ NULL, /* before pixel update callback */ NULL, /* row update callback */ diff --git a/src/mame/drivers/murogem.c b/src/mame/drivers/murogem.c index 2aa6b43da27..cb73c0085d5 100644 --- a/src/mame/drivers/murogem.c +++ b/src/mame/drivers/murogem.c @@ -228,9 +228,10 @@ UINT32 murogem_state::screen_update_murogem(screen_device &screen, bitmap_ind16 return 0; } -static const mc6845_interface mc6845_intf = +static MC6845_INTERFACE( mc6845_intf ) { "screen", /* screen we are acting on */ + false, /* show border area */ 8, /* number of pixels per video memory address */ NULL, /* before pixel update callback */ NULL, /* row update callback */ diff --git a/src/mame/drivers/nyny.c b/src/mame/drivers/nyny.c index d860f4f2be9..445e1eea57d 100644 --- a/src/mame/drivers/nyny.c +++ b/src/mame/drivers/nyny.c @@ -422,9 +422,10 @@ WRITE_LINE_MEMBER(nyny_state::display_enable_changed) } -static const mc6845_interface mc6845_intf = +static MC6845_INTERFACE( mc6845_intf ) { "screen", /* screen we are acting on */ + false, /* show border area */ 8, /* number of pixels per video memory address */ begin_update, /* before pixel update callback */ update_row, /* row update callback */ diff --git a/src/mame/drivers/othello.c b/src/mame/drivers/othello.c index 1d4aad15009..5c58e1088ff 100644 --- a/src/mame/drivers/othello.c +++ b/src/mame/drivers/othello.c @@ -364,9 +364,10 @@ static INPUT_PORTS_START( othello ) INPUT_PORTS_END -static const mc6845_interface h46505_intf = +static MC6845_INTERFACE( h46505_intf ) { "screen", /* screen we are acting on */ + false, /* show border area */ TILE_WIDTH, /* number of pixels per video memory address */ NULL, /* before pixel update callback */ update_row, /* row update callback */ diff --git a/src/mame/drivers/peplus.c b/src/mame/drivers/peplus.c index e90bd126b4c..10d9bb0ff7f 100644 --- a/src/mame/drivers/peplus.c +++ b/src/mame/drivers/peplus.c @@ -291,9 +291,10 @@ static const i2cmem_interface i2cmem_interface = static MC6845_ON_UPDATE_ADDR_CHANGED(crtc_addr); -static const mc6845_interface mc6845_intf = +static MC6845_INTERFACE( mc6845_intf ) { "screen", /* screen we are acting on */ + false, /* show border area */ 8, /* number of pixels per video memory address */ NULL, /* before pixel update callback */ NULL, /* row update callback */ diff --git a/src/mame/drivers/progolf.c b/src/mame/drivers/progolf.c index ca0ffb9ad2b..fcc5b755603 100644 --- a/src/mame/drivers/progolf.c +++ b/src/mame/drivers/progolf.c @@ -86,7 +86,6 @@ public: virtual void video_start(); virtual void palette_init(); UINT32 screen_update_progolf(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - INTERRUPT_GEN_MEMBER(progolf_interrupt); }; @@ -369,15 +368,10 @@ static GFXDECODE_START( progolf ) GFXDECODE_END -//#ifdef UNUSED_FUNCTION -INTERRUPT_GEN_MEMBER(progolf_state::progolf_interrupt) -{ -} -//#endif - -static const mc6845_interface mc6845_intf = +static MC6845_INTERFACE( mc6845_intf ) { "screen", /* screen we are acting on */ + false, /* show border area */ 8, /* number of pixels per video memory address */ NULL, /* before pixel update callback */ NULL, /* row update callback */ @@ -423,7 +417,6 @@ static MACHINE_CONFIG_START( progolf, progolf_state ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", DECO_222, 3000000/2) /* guess, 3 Mhz makes the game to behave worse? */ MCFG_CPU_PROGRAM_MAP(main_cpu) - MCFG_CPU_VBLANK_INT_DRIVER("screen", progolf_state, progolf_interrupt) MCFG_CPU_ADD("audiocpu", M6502, 500000) MCFG_CPU_PROGRAM_MAP(sound_cpu) @@ -457,7 +450,6 @@ static MACHINE_CONFIG_DERIVED( progolfa, progolf ) MCFG_DEVICE_REMOVE("maincpu") /* different encrypted cpu to progolf */ MCFG_CPU_ADD("maincpu", DECO_CPU6, 3000000/2) /* guess, 3 Mhz makes the game to behave worse? */ MCFG_CPU_PROGRAM_MAP(main_cpu) - MCFG_CPU_VBLANK_INT_DRIVER("screen", progolf_state, progolf_interrupt) MACHINE_CONFIG_END diff --git a/src/mame/drivers/r2dtank.c b/src/mame/drivers/r2dtank.c index 84dc2e49143..391046d30f1 100644 --- a/src/mame/drivers/r2dtank.c +++ b/src/mame/drivers/r2dtank.c @@ -392,9 +392,10 @@ WRITE_LINE_MEMBER(r2dtank_state::display_enable_changed) } -static const mc6845_interface mc6845_intf = +static MC6845_INTERFACE( mc6845_intf ) { "screen", /* screen we are acting on */ + false, /* show border area */ 8, /* number of pixels per video memory address */ begin_update, /* before pixel update callback */ update_row, /* row update callback */ diff --git a/src/mame/drivers/rgum.c b/src/mame/drivers/rgum.c index 9cb66d7e775..ff43e1a4194 100644 --- a/src/mame/drivers/rgum.c +++ b/src/mame/drivers/rgum.c @@ -228,9 +228,10 @@ static GFXDECODE_START( rgum ) GFXDECODE_END -static const mc6845_interface mc6845_intf = +static MC6845_INTERFACE( mc6845_intf ) { "screen", /* screen we are acting on */ + false, /* show border area */ 8, /* number of pixels per video memory address */ NULL, /* before pixel update callback */ NULL, /* row update callback */ diff --git a/src/mame/drivers/slotcarn.c b/src/mame/drivers/slotcarn.c index ef392e6748a..d1f9af092de 100644 --- a/src/mame/drivers/slotcarn.c +++ b/src/mame/drivers/slotcarn.c @@ -166,9 +166,10 @@ WRITE_LINE_MEMBER(slotcarn_state::vsync_changed) machine().device("maincpu")->execute().set_input_line(0, state ? ASSERT_LINE : CLEAR_LINE); } -static const mc6845_interface mc6845_intf = +static MC6845_INTERFACE( mc6845_intf ) { "screen", /* screen we are acting on */ + false, /* show border area */ 8, /* number of pixels per video memory address */ begin_update, /* before pixel update callback */ update_row, /* row update callback */ diff --git a/src/mame/drivers/snk6502.c b/src/mame/drivers/snk6502.c index eb94a576864..32ee777d41f 100644 --- a/src/mame/drivers/snk6502.c +++ b/src/mame/drivers/snk6502.c @@ -755,9 +755,10 @@ INTERRUPT_GEN_MEMBER(snk6502_state::snk6502_interrupt) * *************************************/ -static const mc6845_interface mc6845_intf = +static MC6845_INTERFACE( mc6845_intf ) { "screen", /* screen we are acting on */ + false, /* show border area */ 8, /* number of pixels per video memory address */ NULL, /* before pixel update callback */ NULL, /* row update callback */ diff --git a/src/mame/drivers/speedatk.c b/src/mame/drivers/speedatk.c index 1f6ec782cb5..0209eff4437 100644 --- a/src/mame/drivers/speedatk.c +++ b/src/mame/drivers/speedatk.c @@ -283,9 +283,10 @@ static GFXDECODE_START( speedatk ) GFXDECODE_ENTRY( "gfx2", 0, charlayout_3bpp, 0, 32 ) GFXDECODE_END -static const mc6845_interface mc6845_intf = +static MC6845_INTERFACE( mc6845_intf ) { "screen", /* screen we are acting on */ + false, /* show border area */ 8, /* number of pixels per video memory address */ NULL, /* before pixel update callback */ NULL, /* row update callback */ diff --git a/src/mame/drivers/spiders.c b/src/mame/drivers/spiders.c index 81887493d92..6dff19d1a22 100644 --- a/src/mame/drivers/spiders.c +++ b/src/mame/drivers/spiders.c @@ -505,9 +505,10 @@ WRITE_LINE_MEMBER(spiders_state::display_enable_changed) } -static const mc6845_interface mc6845_intf = +static MC6845_INTERFACE( mc6845_intf ) { "screen", /* screen we are acting on */ + false, /* show border area */ 8, /* number of pixels per video memory address */ begin_update, /* before pixel update callback */ update_row, /* row update callback */ diff --git a/src/mame/drivers/ssingles.c b/src/mame/drivers/ssingles.c index 4ccee55786e..4c9f89d0d3e 100644 --- a/src/mame/drivers/ssingles.c +++ b/src/mame/drivers/ssingles.c @@ -265,9 +265,11 @@ static MC6845_UPDATE_ROW( atamanot_update_row ) } } -static const mc6845_interface ssingles_mc6845_intf = + +static MC6845_INTERFACE( ssingles_mc6845_intf ) { "screen", + false, 8, NULL, /* before pixel update callback */ ssingles_update_row, /* row update callback */ @@ -279,9 +281,10 @@ static const mc6845_interface ssingles_mc6845_intf = NULL /* update address callback */ }; -static const mc6845_interface atamanot_mc6845_intf = +static MC6845_INTERFACE( atamanot_mc6845_intf ) { "screen", + false, 8, NULL, /* before pixel update callback */ atamanot_update_row, /* row update callback */ diff --git a/src/mame/drivers/supercrd.c b/src/mame/drivers/supercrd.c index deb9ba585c1..ffc795a50d2 100644 --- a/src/mame/drivers/supercrd.c +++ b/src/mame/drivers/supercrd.c @@ -399,9 +399,10 @@ GFXDECODE_END * CRTC Interface * ************************/ -//static const mc6845_interface mc6845_intf = +//static MC6845_INTERFACE( mc6845_intf ) //{ // "screen", /* screen we are acting on */ +// false, // 4, /* number of pixels per video memory address */ // NULL, /* before pixel update callback */ // NULL, /* row update callback */ diff --git a/src/mame/drivers/tapatune.c b/src/mame/drivers/tapatune.c index 4ddb32740f5..8408ac9761c 100644 --- a/src/mame/drivers/tapatune.c +++ b/src/mame/drivers/tapatune.c @@ -359,9 +359,10 @@ WRITE_LINE_MEMBER(tapatune_state::crtc_vsync) machine().device("maincpu")->execute().set_input_line(2, state ? ASSERT_LINE : CLEAR_LINE); } -static const mc6845_interface h46505_intf = +static MC6845_INTERFACE( h46505_intf ) { "screen", /* screen we are acting on */ + false, /* show border area */ 5, /* number of pixels per video memory address */ begin_update,/* before pixel update callback */ update_row, /* row update callback */ diff --git a/src/mame/drivers/tmspoker.c b/src/mame/drivers/tmspoker.c index a5ca8662e30..2ac3698daef 100644 --- a/src/mame/drivers/tmspoker.c +++ b/src/mame/drivers/tmspoker.c @@ -544,9 +544,10 @@ GFXDECODE_END * CRTC Interface * ************************/ -static const mc6845_interface mc6845_intf = +static MC6845_INTERFACE( mc6845_intf ) { "screen", /* screen we are acting on */ + false, /* show border area */ 8, /* number of pixels per video memory address */ NULL, /* before pixel update callback */ NULL, /* row update callback */ diff --git a/src/mame/drivers/truco.c b/src/mame/drivers/truco.c index 20d26ca2ef2..6f0b25234c2 100644 --- a/src/mame/drivers/truco.c +++ b/src/mame/drivers/truco.c @@ -432,9 +432,10 @@ static const pia6821_interface pia0_intf = * CRTC Interface * *******************************************/ -static const mc6845_interface mc6845_intf = +static MC6845_INTERFACE( mc6845_intf ) { "screen", /* screen we are acting on */ + false, /* show border area */ 4, /* number of pixels per video memory address */ NULL, /* before pixel update callback */ NULL, /* row update callback */ diff --git a/src/mame/drivers/usgames.c b/src/mame/drivers/usgames.c index f55c0026bba..d52f97a8f23 100644 --- a/src/mame/drivers/usgames.c +++ b/src/mame/drivers/usgames.c @@ -214,9 +214,10 @@ static GFXDECODE_START( usgames ) GFXDECODE_END -static const mc6845_interface mc6845_intf = +static MC6845_INTERFACE( mc6845_intf ) { "screen", /* screen we are acting on */ + false, /* show border area */ 8, /* number of pixels per video memory address */ NULL, /* before pixel update callback */ NULL, /* row update callback */ diff --git a/src/mame/drivers/vcombat.c b/src/mame/drivers/vcombat.c index 8824dabc80c..c1cc619beb4 100644 --- a/src/mame/drivers/vcombat.c +++ b/src/mame/drivers/vcombat.c @@ -564,9 +564,10 @@ WRITE_LINE_MEMBER(vcombat_state::sound_update) machine().device("soundcpu")->execute().set_input_line(M68K_IRQ_1, state ? ASSERT_LINE : CLEAR_LINE); } -static const mc6845_interface mc6845_intf = +static MC6845_INTERFACE( mc6845_intf ) { "screen", /* screen we are acting on */ + false, /* show border area */ 16, /* number of pixels per video memory address */ NULL, /* before pixel update callback */ NULL, /* row update callback */ diff --git a/src/mame/drivers/vlc.c b/src/mame/drivers/vlc.c index 8de5a088cd3..71030cc16a9 100644 --- a/src/mame/drivers/vlc.c +++ b/src/mame/drivers/vlc.c @@ -215,10 +215,11 @@ static const UINT8 pal35[256] = { /******************** VIDEO SECTION ************************************/ /***************************************************************************/ -static const mc6845_interface mc6845_intf = +static MC6845_INTERFACE( mc6845_intf ) { - "screen", /* screen we are acting on */ - 8, /* number of pixels per video memory address */ + "screen", /* screen we are acting on */ + false, /* show border area */ + 8, /* number of pixels per video memory address */ NULL, /* before pixel update callback */ NULL, /* row update callback */ NULL, /* after pixel update callback */ diff --git a/src/mame/drivers/whitestar.c b/src/mame/drivers/whitestar.c index b1b277aa5fd..9c21e71f695 100644 --- a/src/mame/drivers/whitestar.c +++ b/src/mame/drivers/whitestar.c @@ -244,9 +244,10 @@ MC6845_UPDATE_ROW( whitestar_update_row ) } } -static const mc6845_interface whitestar_crtc6845_interface = +static MC6845_INTERFACE( whitestar_crtc6845_interface ) { NULL, + false, /* show border area */ 1, NULL, whitestar_update_row, diff --git a/src/mame/video/madalien.c b/src/mame/video/madalien.c index f43b478a39c..6efa6face08 100644 --- a/src/mame/video/madalien.c +++ b/src/mame/video/madalien.c @@ -377,9 +377,10 @@ static GFXDECODE_START( madalien ) GFXDECODE_END -static const mc6845_interface mc6845_intf = +static MC6845_INTERFACE( mc6845_intf ) { "screen", /* screen we are acting on */ + false, /* show border area */ 8, /* number of pixels per video memory address */ NULL, /* before pixel update callback */ NULL, /* row update callback */ diff --git a/src/mame/video/qix.c b/src/mame/video/qix.c index 401494cc93c..2cd3db62a27 100644 --- a/src/mame/video/qix.c +++ b/src/mame/video/qix.c @@ -382,9 +382,10 @@ ADDRESS_MAP_END * *************************************/ -static const mc6845_interface mc6845_intf = +static MC6845_INTERFACE( mc6845_intf ) { "screen", /* screen we are acting on */ + false, /* show border area */ 8, /* number of pixels per video memory address */ begin_update, /* before pixel update callback */ update_row, /* row update callback */ diff --git a/src/mame/video/twincobr.c b/src/mame/video/twincobr.c index cab60b44fe1..19734ee7cc0 100644 --- a/src/mame/video/twincobr.c +++ b/src/mame/video/twincobr.c @@ -20,9 +20,10 @@ static void twincobr_restore_screen(running_machine &machine); /* 6845 used for video sync signals only */ -const mc6845_interface twincobr_mc6845_intf = +MC6845_INTERFACE( twincobr_mc6845_intf ) { "screen", /* screen we are acting on */ + false, /* show border area */ 2, /* number of pixels per video memory address */ /* Horizontal Display programmed to 160 characters */ NULL, /* before pixel update callback */ NULL, /* row update callback */ diff --git a/src/mess/drivers/a6809.c b/src/mess/drivers/a6809.c index 5440036971f..ea0e790bf48 100644 --- a/src/mess/drivers/a6809.c +++ b/src/mess/drivers/a6809.c @@ -66,9 +66,11 @@ static MC6845_UPDATE_ROW( a6809_update_row ) { } -static const mc6845_interface a6809_crtc6845_interface = + +static MC6845_INTERFACE( a6809_crtc6845_interface ) { "screen", + false, 12 /*?*/, NULL, a6809_update_row, diff --git a/src/mess/drivers/alphatro.c b/src/mess/drivers/alphatro.c index b27191b8c02..8fb48ccdef4 100644 --- a/src/mess/drivers/alphatro.c +++ b/src/mess/drivers/alphatro.c @@ -379,9 +379,11 @@ void alphatro_state::palette_init() palette_set_color_rgb(machine(), 8, 0xf7, 0xaa, 0x00); } -static const mc6845_interface alphatro_crtc6845_interface = + +static MC6845_INTERFACE( alphatro_crtc6845_interface ) { "screen", + false, 8, NULL, alphatro_update_row, diff --git a/src/mess/drivers/applix.c b/src/mess/drivers/applix.c index c493da59052..223264cd6ed 100644 --- a/src/mess/drivers/applix.c +++ b/src/mess/drivers/applix.c @@ -189,8 +189,10 @@ MC6845_UPDATE_ROW( applix_update_row ) #endif } -static const mc6845_interface applix_crtc = { +static MC6845_INTERFACE( applix_crtc ) +{ "screen", /* name of screen */ + false, 8, /* number of dots per character */ NULL, applix_update_row, /* handler to display a scanline */ diff --git a/src/mess/drivers/apricot.c b/src/mess/drivers/apricot.c index 36e68475fcc..2fde5240d0c 100644 --- a/src/mess/drivers/apricot.c +++ b/src/mess/drivers/apricot.c @@ -235,9 +235,11 @@ WRITE_LINE_MEMBER( apricot_state::apricot_mc6845_de ) m_display_enabled = state; } -static const mc6845_interface apricot_mc6845_intf = + +static MC6845_INTERFACE( apricot_mc6845_intf ) { "screen", + false, 10, NULL, apricot_update_row, diff --git a/src/mess/drivers/apricotp.c b/src/mess/drivers/apricotp.c index 46c971b072a..67ac254119f 100644 --- a/src/mess/drivers/apricotp.c +++ b/src/mess/drivers/apricotp.c @@ -56,9 +56,11 @@ static MC6845_UPDATE_ROW( fp_update_row ) { } -static const mc6845_interface crtc_intf = + +static MC6845_INTERFACE( crtc_intf ) { SCREEN_CRT_TAG, + false, 8, NULL, fp_update_row, diff --git a/src/mess/drivers/b16.c b/src/mess/drivers/b16.c index 82271fe4638..66994ac89bb 100644 --- a/src/mess/drivers/b16.c +++ b/src/mess/drivers/b16.c @@ -247,9 +247,10 @@ void b16_state::machine_reset() -static const mc6845_interface mc6845_intf = +static MC6845_INTERFACE( mc6845_intf ) { "screen", /* screen we are acting on */ + false, /* show border area */ 8, /* number of pixels per video memory address */ NULL, /* before pixel update callback */ NULL, /* row update callback */ diff --git a/src/mess/drivers/bigbord2.c b/src/mess/drivers/bigbord2.c index f6b87389dac..c8ac47cc002 100644 --- a/src/mess/drivers/bigbord2.c +++ b/src/mess/drivers/bigbord2.c @@ -662,8 +662,10 @@ MC6845_UPDATE_ROW( bigbord2_update_row ) } } -static const mc6845_interface bigbord2_crtc = { +static MC6845_INTERFACE( bigbord2_crtc ) +{ SCREEN_TAG, /* name of screen */ + false, 8, /* number of dots per character */ NULL, bigbord2_update_row, /* handler to display a scanline */ diff --git a/src/mess/drivers/bml3.c b/src/mess/drivers/bml3.c index 00ab85725b8..e821b71f434 100644 --- a/src/mess/drivers/bml3.c +++ b/src/mess/drivers/bml3.c @@ -564,9 +564,11 @@ static INPUT_PORTS_START( bml3 ) PORT_BIT(0xffe00000,IP_ACTIVE_HIGH,IPT_UNKNOWN) INPUT_PORTS_END -static const mc6845_interface mc6845_intf = + +static MC6845_INTERFACE( mc6845_intf ) { "screen", /* screen we are acting on */ + false, /* show border area */ 8, /* number of pixels per video memory address */ NULL, /* before pixel update callback */ NULL, /* row update callback */ diff --git a/src/mess/drivers/bw12.c b/src/mess/drivers/bw12.c index 709c514ce86..53018b80ef1 100644 --- a/src/mess/drivers/bw12.c +++ b/src/mess/drivers/bw12.c @@ -355,9 +355,11 @@ static MC6845_UPDATE_ROW( bw12_update_row ) } } -static const mc6845_interface bw12_mc6845_interface = + +static MC6845_INTERFACE( bw12_mc6845_interface ) { SCREEN_TAG, + false, 8, NULL, bw12_update_row, diff --git a/src/mess/drivers/c128.c b/src/mess/drivers/c128.c index ed1b767d1b7..9504c6558b1 100644 --- a/src/mess/drivers/c128.c +++ b/src/mess/drivers/c128.c @@ -788,9 +788,11 @@ static GFXDECODE_START( c128 ) GFXDECODE_ENTRY( "charom", 0x0000, gfx_8x8x1, 0, 1 ) GFXDECODE_END -static const mc6845_interface vdc_intf = + +static MC6845_INTERFACE( vdc_intf ) { SCREEN_VDC_TAG, + false, 8, NULL, NULL, diff --git a/src/mess/drivers/camplynx.c b/src/mess/drivers/camplynx.c index 14ec63c8ea2..dde97451758 100644 --- a/src/mess/drivers/camplynx.c +++ b/src/mess/drivers/camplynx.c @@ -432,8 +432,10 @@ void camplynx_state::video_start() { } -static const mc6845_interface lynx48k_crtc6845_interface = { +static MC6845_INTERFACE( lynx48k_crtc6845_interface ) +{ "screen", + false, 8, NULL, lynx48k_update_row, @@ -445,8 +447,11 @@ static const mc6845_interface lynx48k_crtc6845_interface = { NULL }; -static const mc6845_interface lynx128k_crtc6845_interface = { + +static MC6845_INTERFACE( lynx128k_crtc6845_interface ) +{ "screen", /* screen name */ + false, 8, /* dots per character */ NULL, lynx128k_update_row, /* callback to display one scanline */ diff --git a/src/mess/drivers/cbm2.c b/src/mess/drivers/cbm2.c index aea250efd50..c5f21a2b654 100644 --- a/src/mess/drivers/cbm2.c +++ b/src/mess/drivers/cbm2.c @@ -1103,9 +1103,10 @@ static MC6845_UPDATE_ROW( crtc_update_row ) } } -static const mc6845_interface crtc_intf = +static MC6845_INTERFACE( crtc_intf ) { SCREEN_TAG, + false, 9, NULL, crtc_update_row, diff --git a/src/mess/drivers/dim68k.c b/src/mess/drivers/dim68k.c index 97360d255b1..695e4a631a6 100644 --- a/src/mess/drivers/dim68k.c +++ b/src/mess/drivers/dim68k.c @@ -283,8 +283,10 @@ static GFXDECODE_START( dim68k ) GFXDECODE_ENTRY( "chargen", 0x0000, dim68k_charlayout, 0, 1 ) GFXDECODE_END -static const mc6845_interface dim68k_crtc = { +static MC6845_INTERFACE( dim68k_crtc ) +{ "screen", /* name of screen */ + false, 8, /* number of dots per character - switchable 7 or 8 */ NULL, dim68k_update_row, /* handler to display a scanline */ diff --git a/src/mess/drivers/ec65.c b/src/mess/drivers/ec65.c index d7e0ba52a2b..c0530ed56be 100644 --- a/src/mess/drivers/ec65.c +++ b/src/mess/drivers/ec65.c @@ -211,9 +211,11 @@ static MC6845_UPDATE_ROW( ec65_update_row ) } } -static const mc6845_interface ec65_crtc6845_interface = + +static MC6845_INTERFACE( ec65_crtc6845_interface ) { "screen", + false, 8 /*?*/, NULL, ec65_update_row, diff --git a/src/mess/drivers/einstein.c b/src/mess/drivers/einstein.c index 433b036a92e..8ae1ff0f9d8 100644 --- a/src/mess/drivers/einstein.c +++ b/src/mess/drivers/einstein.c @@ -713,9 +713,10 @@ static const centronics_interface einstein_centronics_config = DEVCB_NULL }; -static const mc6845_interface einstein_crtc6845_interface = +static MC6845_INTERFACE( einstein_crtc6845_interface ) { "80column", + false, 8, NULL, einstein_6845_update_row, diff --git a/src/mess/drivers/fp1100.c b/src/mess/drivers/fp1100.c index fee05e102cf..f0e36eadf08 100644 --- a/src/mess/drivers/fp1100.c +++ b/src/mess/drivers/fp1100.c @@ -381,9 +381,11 @@ GFXDECODE_END static const UPD7810_CONFIG fp1100_slave_cpu_config = { TYPE_7801, NULL }; //static const upd1771_interface scv_upd1771c_config = { DEVCB_LINE( scv_upd1771_ack_w ) }; -static const mc6845_interface mc6845_intf = + +static MC6845_INTERFACE( mc6845_intf ) { "screen", /* screen we are acting on */ + false, /* show border area */ 8, /* number of pixels per video memory address */ NULL, /* before pixel update callback */ fp1100_update_row, /* row update callback */ diff --git a/src/mess/drivers/fp6000.c b/src/mess/drivers/fp6000.c index ed254800ae8..2276d356177 100644 --- a/src/mess/drivers/fp6000.c +++ b/src/mess/drivers/fp6000.c @@ -280,9 +280,10 @@ void fp6000_state::machine_reset() { } -static const mc6845_interface mc6845_intf = +static MC6845_INTERFACE( mc6845_intf ) { "screen", /* screen we are acting on */ + false, /* show border area */ 8, /* number of pixels per video memory address */ NULL, /* before pixel update callback */ NULL, /* row update callback */ diff --git a/src/mess/drivers/h19.c b/src/mess/drivers/h19.c index 68b99cbfce4..b40451c5b1e 100644 --- a/src/mess/drivers/h19.c +++ b/src/mess/drivers/h19.c @@ -350,9 +350,11 @@ static const ins8250_interface h19_ace_interface = DEVCB_NULL }; -static const mc6845_interface h19_crtc6845_interface = + +static MC6845_INTERFACE( h19_crtc6845_interface ) { "screen", + false, 8 /*?*/, NULL, h19_update_row, diff --git a/src/mess/drivers/hp9k.c b/src/mess/drivers/hp9k.c index f7aebb43b52..20938e7cf2c 100644 --- a/src/mess/drivers/hp9k.c +++ b/src/mess/drivers/hp9k.c @@ -385,8 +385,11 @@ WRITE8_MEMBER( hp9k_state::kbd_put ) kbdBit=data; } -static const mc6845_interface hp9k_mc6845_intf = { + +static MC6845_INTERFACE( hp9k_mc6845_intf ) +{ "screen", /* name of screen */ + false, 8, /* number of dots per character */ NULL, NULL, /* handler to display a scanline */ diff --git a/src/mess/drivers/kaypro.c b/src/mess/drivers/kaypro.c index 2f6087c4c63..9fcab290829 100644 --- a/src/mess/drivers/kaypro.c +++ b/src/mess/drivers/kaypro.c @@ -147,8 +147,12 @@ static const z80_daisy_config kaypro2x_daisy_chain[] = { NULL } }; -static const mc6845_interface kaypro2x_crtc = { + + +static MC6845_INTERFACE( kaypro2x_crtc ) +{ "screen", /* name of screen */ + false, 7, /* number of dots per character */ NULL, kaypro2x_update_row, /* handler to display a scanline */ diff --git a/src/mess/drivers/m20.c b/src/mess/drivers/m20.c index c69e1350ce7..8bfa8122aef 100644 --- a/src/mess/drivers/m20.c +++ b/src/mess/drivers/m20.c @@ -831,9 +831,11 @@ void m20_state::machine_reset() m_maincpu->reset(); // reset the CPU to ensure it picks up the new vector } -static const mc6845_interface mc6845_intf = + +static MC6845_INTERFACE( mc6845_intf ) { "screen", /* screen we are acting on */ + false, /* show border area */ 16, /* number of pixels per video memory address */ NULL, /* before pixel update callback */ NULL, /* row update callback */ diff --git a/src/mess/drivers/mbc200.c b/src/mess/drivers/mbc200.c index 2f65415edb6..18439193477 100644 --- a/src/mess/drivers/mbc200.c +++ b/src/mess/drivers/mbc200.c @@ -134,8 +134,11 @@ MC6845_UPDATE_ROW( mbc200_update_row ) { } -static const mc6845_interface mbc200_crtc = { + +static MC6845_INTERFACE( mbc200_crtc ) +{ "screen", /* name of screen */ + false, 8, /* number of dots per character */ NULL, mbc200_update_row, /* handler to display a scanline */ diff --git a/src/mess/drivers/mbee.c b/src/mess/drivers/mbee.c index 7a7468be12c..8a8f987e28f 100644 --- a/src/mess/drivers/mbee.c +++ b/src/mess/drivers/mbee.c @@ -614,8 +614,11 @@ static const floppy_interface mbee_floppy_interface = NULL }; -static const mc6845_interface mbee_crtc = { + +static MC6845_INTERFACE( mbee_crtc ) +{ "screen", /* name of screen */ + false, 8, /* number of dots per character */ NULL, mbee_update_row, /* handler to display a scanline */ @@ -627,8 +630,11 @@ static const mc6845_interface mbee_crtc = { mbee_update_addr /* handler to process transparent mode */ }; -static const mc6845_interface mbeeic_crtc = { + +static MC6845_INTERFACE( mbeeic_crtc ) +{ "screen", /* name of screen */ + false, 8, /* number of dots per character */ NULL, mbeeic_update_row, /* handler to display a scanline */ @@ -640,8 +646,10 @@ static const mc6845_interface mbeeic_crtc = { mbee_update_addr /* handler to process transparent mode */ }; -static const mc6845_interface mbeeppc_crtc = { +static MC6845_INTERFACE( mbeeppc_crtc ) +{ "screen", /* name of screen */ + false, 8, /* number of dots per character */ NULL, mbeeppc_update_row, /* handler to display a scanline */ @@ -653,8 +661,10 @@ static const mc6845_interface mbeeppc_crtc = { mbee_update_addr /* handler to process transparent mode */ }; -static const mc6845_interface mbee256_crtc = { +static MC6845_INTERFACE( mbee256_crtc ) +{ "screen", /* name of screen */ + false, 8, /* number of dots per character */ NULL, mbeeppc_update_row, /* handler to display a scanline */ diff --git a/src/mess/drivers/multi16.c b/src/mess/drivers/multi16.c index 1d5cf888567..69b0d35cda4 100644 --- a/src/mess/drivers/multi16.c +++ b/src/mess/drivers/multi16.c @@ -144,9 +144,11 @@ void multi16_state::machine_reset() { } -static const mc6845_interface mc6845_intf = + +static MC6845_INTERFACE( mc6845_intf ) { "screen", /* screen we are acting on */ + false, /* show border area */ 8, /* number of pixels per video memory address */ NULL, /* before pixel update callback */ NULL, /* row update callback */ diff --git a/src/mess/drivers/multi8.c b/src/mess/drivers/multi8.c index f84de2bcf29..d8cfdc26d85 100644 --- a/src/mess/drivers/multi8.c +++ b/src/mess/drivers/multi8.c @@ -556,9 +556,11 @@ static GFXDECODE_START( multi8 ) GFXDECODE_ENTRY( "kanji", 0x0000, multi8_kanjilayout, 0, 1 ) GFXDECODE_END -static const mc6845_interface mc6845_intf = + +static MC6845_INTERFACE( mc6845_intf ) { "screen", /* screen we are acting on */ + false, /* show border area */ 8, /* number of pixels per video memory address */ NULL, /* before pixel update callback */ NULL, /* row update callback */ diff --git a/src/mess/drivers/myb3k.c b/src/mess/drivers/myb3k.c index 115f2810de3..d205b6c5c56 100644 --- a/src/mess/drivers/myb3k.c +++ b/src/mess/drivers/myb3k.c @@ -230,9 +230,10 @@ static GFXDECODE_START( myb3k ) GFXDECODE_ENTRY( "ipl", 0x0000, myb3k_charlayout, 0, 1 ) GFXDECODE_END -static const mc6845_interface mc6845_intf = +static MC6845_INTERFACE( mc6845_intf ) { "screen", /* screen we are acting on */ + false, /* show border area */ 8, /* number of pixels per video memory address */ NULL, /* before pixel update callback */ NULL, /* row update callback */ diff --git a/src/mess/drivers/mycom.c b/src/mess/drivers/mycom.c index 3091e540dd0..35deaaa1751 100644 --- a/src/mess/drivers/mycom.c +++ b/src/mess/drivers/mycom.c @@ -331,18 +331,19 @@ static GFXDECODE_START( mycom ) GFXDECODE_ENTRY( "chargen", 0x0000, mycom_charlayout, 0, 1 ) GFXDECODE_END -static const mc6845_interface mc6845_intf = +static MC6845_INTERFACE( mc6845_intf ) { - "screen", /* screen we are acting on */ - 8, /* number of pixels per video memory address */ - NULL, /* before pixel update callback */ - mycom_update_row, /* row update callback */ - NULL, /* after pixel update callback */ - DEVCB_NULL, /* callback for display state changes */ - DEVCB_NULL, /* callback for cursor state changes */ - DEVCB_NULL, /* HSYNC callback */ - DEVCB_NULL, /* VSYNC callback */ - NULL /* update address callback */ + "screen", /* screen we are acting on */ + false, /* show border area */ + 8, /* number of pixels per video memory address */ + NULL, /* before pixel update callback */ + mycom_update_row, /* row update callback */ + NULL, /* after pixel update callback */ + DEVCB_NULL, /* callback for display state changes */ + DEVCB_NULL, /* callback for cursor state changes */ + DEVCB_NULL, /* HSYNC callback */ + DEVCB_NULL, /* VSYNC callback */ + NULL /* update address callback */ }; WRITE8_MEMBER( mycom_state::mycom_04_w ) diff --git a/src/mess/drivers/paso1600.c b/src/mess/drivers/paso1600.c index 1bbd33543ec..edc61558ae2 100644 --- a/src/mess/drivers/paso1600.c +++ b/src/mess/drivers/paso1600.c @@ -259,9 +259,10 @@ static GFXDECODE_START( paso1600 ) GFXDECODE_END -static const mc6845_interface mc6845_intf = +static MC6845_INTERFACE( mc6845_intf ) { "screen", /* screen we are acting on */ + false, /* show border area */ 8, /* number of pixels per video memory address */ NULL, /* before pixel update callback */ NULL, /* row update callback */ diff --git a/src/mess/drivers/pasopia.c b/src/mess/drivers/pasopia.c index 1a3dffb3f6c..4e88bc37314 100644 --- a/src/mess/drivers/pasopia.c +++ b/src/mess/drivers/pasopia.c @@ -301,18 +301,19 @@ static Z80PIO_INTERFACE( z80pio_intf ) DEVCB_NULL }; -static const mc6845_interface mc6845_intf = +static MC6845_INTERFACE( mc6845_intf ) { - "screen", /* screen we are acting on */ - 8, /* number of pixels per video memory address */ - NULL, /* before pixel update callback */ + "screen", /* screen we are acting on */ + false, /* show border area */ + 8, /* number of pixels per video memory address */ + NULL, /* before pixel update callback */ pasopia_update_row, /* row update callback */ - NULL, /* after pixel update callback */ - DEVCB_NULL, /* callback for display state changes */ - DEVCB_NULL, /* callback for cursor state changes */ - DEVCB_NULL, /* HSYNC callback */ - DEVCB_NULL, /* VSYNC callback */ - NULL /* update address callback */ + NULL, /* after pixel update callback */ + DEVCB_NULL, /* callback for display state changes */ + DEVCB_NULL, /* callback for cursor state changes */ + DEVCB_NULL, /* HSYNC callback */ + DEVCB_NULL, /* VSYNC callback */ + NULL /* update address callback */ }; static const gfx_layout p7_chars_8x8 = diff --git a/src/mess/drivers/pasopia7.c b/src/mess/drivers/pasopia7.c index 1c7e6623d81..efb5c2a30e4 100644 --- a/src/mess/drivers/pasopia7.c +++ b/src/mess/drivers/pasopia7.c @@ -723,9 +723,10 @@ static GFXDECODE_START( pasopia7 ) GFXDECODE_ENTRY( "kanji", 0x00000, p7_chars_16x16, 0, 0x10 ) GFXDECODE_END -static const mc6845_interface mc6845_intf = +static MC6845_INTERFACE( mc6845_intf ) { "screen", /* screen we are acting on */ + false, /* show border area */ 8, /* number of pixels per video memory address */ NULL, /* before pixel update callback */ NULL, /* row update callback */ diff --git a/src/mess/drivers/pet.c b/src/mess/drivers/pet.c index 400780fb796..31c0ed09870 100644 --- a/src/mess/drivers/pet.c +++ b/src/mess/drivers/pet.c @@ -597,8 +597,11 @@ static GFXDECODE_START( superpet ) GFXDECODE_ENTRY( "gfx1", 0x3000, pet80_charlayout, 0, 1 ) GFXDECODE_END -static const mc6845_interface crtc_pet40 = { + +static MC6845_INTERFACE( crtc_pet40 ) +{ "screen", + false, 8, NULL, pet40_update_row, @@ -610,8 +613,10 @@ static const mc6845_interface crtc_pet40 = { NULL }; -static const mc6845_interface crtc_pet80 = { +static MC6845_INTERFACE( crtc_pet80 ) +{ "screen", + false, 16, NULL, pet80_update_row, diff --git a/src/mess/drivers/pyl601.c b/src/mess/drivers/pyl601.c index b258c40aa54..9fc7f94a186 100644 --- a/src/mess/drivers/pyl601.c +++ b/src/mess/drivers/pyl601.c @@ -463,9 +463,11 @@ static MC6845_UPDATE_ROW( pyl601a_update_row ) } -static const mc6845_interface pyl601_crtc6845_interface = + +static MC6845_INTERFACE( pyl601_crtc6845_interface ) { "screen", + false, 8 /*?*/, NULL, pyl601_update_row, @@ -477,9 +479,10 @@ static const mc6845_interface pyl601_crtc6845_interface = NULL }; -static const mc6845_interface pyl601a_crtc6845_interface = +static MC6845_INTERFACE( pyl601a_crtc6845_interface ) { "screen", + false, 8 /*?*/, NULL, pyl601a_update_row, diff --git a/src/mess/drivers/smc777.c b/src/mess/drivers/smc777.c index f312e6d5e4d..352e297805b 100644 --- a/src/mess/drivers/smc777.c +++ b/src/mess/drivers/smc777.c @@ -27,6 +27,23 @@ #include "formats/basicdsk.h" #include "imagedev/flopdrv.h" +#define mc6845_h_char_total (m_crtc_vreg[0]+1) +#define mc6845_h_display (m_crtc_vreg[1]) +#define mc6845_h_sync_pos (m_crtc_vreg[2]) +#define mc6845_sync_width (m_crtc_vreg[3]) +#define mc6845_v_char_total (m_crtc_vreg[4]+1) +#define mc6845_v_total_adj (m_crtc_vreg[5]) +#define mc6845_v_display (m_crtc_vreg[6]) +#define mc6845_v_sync_pos (m_crtc_vreg[7]) +#define mc6845_mode_ctrl (m_crtc_vreg[8]) +#define mc6845_tile_height (m_crtc_vreg[9]+1) +#define mc6845_cursor_y_start (m_crtc_vreg[0x0a]) +#define mc6845_cursor_y_end (m_crtc_vreg[0x0b]) +#define mc6845_start_addr (((m_crtc_vreg[0x0c]<<8) & 0x3f00) | (m_crtc_vreg[0x0d] & 0xff)) +#define mc6845_cursor_addr (((m_crtc_vreg[0x0e]<<8) & 0x3f00) | (m_crtc_vreg[0x0f] & 0xff)) +#define mc6845_light_pen_addr (((m_crtc_vreg[0x10]<<8) & 0x3f00) | (m_crtc_vreg[0x11] & 0xff)) +#define mc6845_update_addr (((m_crtc_vreg[0x12]<<8) & 0x3f00) | (m_crtc_vreg[0x13] & 0xff)) + class smc777_state : public driver_device { public: @@ -50,14 +67,11 @@ public: UINT8 *m_gvram; UINT8 *m_pcg; - UINT16 m_cursor_addr; - UINT16 m_cursor_raster; UINT8 m_keyb_press; UINT8 m_keyb_press_flag; UINT8 m_shift_press_flag; UINT8 m_backdrop_pen; UINT8 m_display_reg; - int m_addr_latch; UINT8 m_fdc_irq_flag; UINT8 m_fdc_drq_flag; UINT8 m_system_data; @@ -68,6 +82,8 @@ public: UINT8 m_keyb_direct; UINT8 m_pal_mode; UINT8 m_keyb_cmd; + UINT8 m_crtc_vreg[0x20]; + UINT8 m_crtc_addr; DECLARE_WRITE8_MEMBER(smc777_6845_w); DECLARE_READ8_MEMBER(smc777_vram_r); DECLARE_READ8_MEMBER(smc777_attr_r); @@ -107,9 +123,9 @@ public: }; - -#define CRTC_MIN_X 10 -#define CRTC_MIN_Y 10 +/* TODO: correct numbers, calculable thru mc6845 regs */ +#define CRTC_MIN_X 24*8 +#define CRTC_MIN_Y 4*8 void smc777_state::video_start() { @@ -121,9 +137,11 @@ UINT32 smc777_state::screen_update_smc777(screen_device &screen, bitmap_ind16 &b UINT16 count; int x_width; +// popmessage("%d %d %d %d",mc6845_v_char_total,mc6845_v_total_adj,mc6845_v_display,mc6845_v_sync_pos); + bitmap.fill(machine().pens[m_backdrop_pen], cliprect); - x_width = (m_display_reg & 0x80) ? 2 : 4; + x_width = ((m_display_reg & 0x80) >> 7); count = 0x0000; @@ -137,26 +155,26 @@ UINT32 smc777_state::screen_update_smc777(screen_device &screen, bitmap_ind16 &b color = (m_gvram[count] & 0xf0) >> 4; /* todo: clean this up! */ - if(x_width == 2) - { - bitmap.pix16(y+yi+CRTC_MIN_Y, x*2+0+CRTC_MIN_X) = machine().pens[color]; - } - else + //if(x_width) { bitmap.pix16(y+yi+CRTC_MIN_Y, x*4+0+CRTC_MIN_X) = machine().pens[color]; bitmap.pix16(y+yi+CRTC_MIN_Y, x*4+1+CRTC_MIN_X) = machine().pens[color]; } + //else + //{ + // bitmap.pix16(y+yi+CRTC_MIN_Y, x*2+0+CRTC_MIN_X) = machine().pens[color]; + //} color = (m_gvram[count] & 0x0f) >> 0; - if(x_width == 2) - { - bitmap.pix16(y+yi+CRTC_MIN_Y, x*2+1+CRTC_MIN_X) = machine().pens[color]; - } - else + //if(x_width) { bitmap.pix16(y+yi+CRTC_MIN_Y, x*4+2+CRTC_MIN_X) = machine().pens[color]; bitmap.pix16(y+yi+CRTC_MIN_Y, x*4+3+CRTC_MIN_X) = machine().pens[color]; } + //else + //{ + // bitmap.pix16(y+yi+CRTC_MIN_Y, x*2+1+CRTC_MIN_X) = machine().pens[color]; + //} count++; @@ -167,11 +185,9 @@ UINT32 smc777_state::screen_update_smc777(screen_device &screen, bitmap_ind16 &b count = 0x0000; - x_width = (m_display_reg & 0x80) ? 40 : 80; - for(y=0;y<25;y++) { - for(x=0;x>(7-xi)) & 1) ? (color+m_pal_mode) : bk_pen; if (pen != -1) - bitmap.pix16(y*8+CRTC_MIN_Y+yi, x*8+CRTC_MIN_X+xi) = machine().pens[pen]; + { + if(x_width) + { + bitmap.pix16(y*8+CRTC_MIN_Y+yi, (x*8+xi)*2+0+CRTC_MIN_X) = machine().pens[pen]; + bitmap.pix16(y*8+CRTC_MIN_Y+yi, (x*8+xi)*2+1+CRTC_MIN_X) = machine().pens[pen]; + } + else + bitmap.pix16(y*8+CRTC_MIN_Y+yi, x*8+CRTC_MIN_X+xi) = machine().pens[pen]; + } } } // draw cursor - if(m_cursor_addr == count) + if(mc6845_cursor_addr == count) { int xc,yc,cursor_on; cursor_on = 0; - switch(m_cursor_raster & 0x60) + switch(mc6845_cursor_y_start & 0x60) { case 0x00: cursor_on = 1; break; //always on case 0x20: cursor_on = 0; break; //always off @@ -227,11 +251,17 @@ UINT32 smc777_state::screen_update_smc777(screen_device &screen, bitmap_ind16 &b if(cursor_on) { - for(yc=0;yc<(8-(m_cursor_raster & 7));yc++) + for(yc=0;yc<(8-(mc6845_cursor_y_start & 7));yc++) { for(xc=0;xc<8;xc++) { - bitmap.pix16(y*8+CRTC_MIN_Y-yc+7, x*8+CRTC_MIN_X+xc) = machine().pens[0x7]; + if(x_width) + { + bitmap.pix16(y*8+CRTC_MIN_Y-yc+7, (x*8+xc)*2+0+CRTC_MIN_X) = machine().pens[0x7]; + bitmap.pix16(y*8+CRTC_MIN_Y-yc+7, (x*8+xc)*2+1+CRTC_MIN_X) = machine().pens[0x7]; + } + else + bitmap.pix16(y*8+CRTC_MIN_Y-yc+7, x*8+CRTC_MIN_X+xc) = machine().pens[0x7]; } } } @@ -248,19 +278,13 @@ WRITE8_MEMBER(smc777_state::smc777_6845_w) { if(offset == 0) { - m_addr_latch = data; - //mc6845_address_w(m_crtc, 0,data); + m_crtc_addr = data; + m_crtc->address_w(space, 0,data); } else { - if(m_addr_latch == 0x0a) - m_cursor_raster = data; - else if(m_addr_latch == 0x0e) - m_cursor_addr = ((data<<8) & 0x3f00) | (m_cursor_addr & 0xff); - else if(m_addr_latch == 0x0f) - m_cursor_addr = (m_cursor_addr & 0x3f00) | (data & 0xff); - - //mc6845_register_w(m_crtc, 0,data); + m_crtc_vreg[m_crtc_addr] = data; + m_crtc->register_w(space, 0,data); } } @@ -553,20 +577,6 @@ WRITE8_MEMBER(smc777_state::display_reg_w) ---- -x-- mode select? */ - { - if((m_display_reg & 0x80) != (data & 0x80)) - { - rectangle visarea = machine().primary_screen->visible_area(); - int x_width; - - x_width = (data & 0x80) ? 320 : 640; - - visarea.set(0, (x_width+(CRTC_MIN_X*2)) - 1, 0, (200+(CRTC_MIN_Y*2)) - 1); - - machine().primary_screen->configure(660, 220, visarea, machine().primary_screen->frame_period().attoseconds); - } - } - m_display_reg = data; } @@ -984,9 +994,10 @@ void smc777_state::machine_reset() } -static const mc6845_interface mc6845_intf = +static MC6845_INTERFACE( mc6845_intf ) { "screen", /* screen we are acting on */ + true, /* show border area */ 8, /* number of pixels per video memory address */ NULL, /* before pixel update callback */ NULL, /* row update callback */ diff --git a/src/mess/drivers/super80.c b/src/mess/drivers/super80.c index 2f9c122a9a5..fe521c80696 100644 --- a/src/mess/drivers/super80.c +++ b/src/mess/drivers/super80.c @@ -616,8 +616,10 @@ static const cassette_interface super80_cassette_interface = }; -static const mc6845_interface super80v_crtc = { +static MC6845_INTERFACE( super80v_crtc ) +{ "screen", /* name of screen */ + false, SUPER80V_DOTS, /* number of dots per character */ NULL, super80v_update_row, /* handler to display a scanline */ diff --git a/src/mess/drivers/svi318.c b/src/mess/drivers/svi318.c index ffb58268a0c..f507ef2092c 100644 --- a/src/mess/drivers/svi318.c +++ b/src/mess/drivers/svi318.c @@ -386,9 +386,11 @@ static MACHINE_CONFIG_DERIVED( svi328n, svi318n ) MCFG_RAM_EXTRA_OPTIONS("96K,160K") MACHINE_CONFIG_END -static const mc6845_interface svi806_crtc6845_interface = + +static MC6845_INTERFACE( svi806_crtc6845_interface ) { "svi806", + false, 8 /*?*/, NULL, svi806_crtc6845_update_row, diff --git a/src/mess/drivers/trs80m2.c b/src/mess/drivers/trs80m2.c index e861402fc34..ba07be17d3e 100644 --- a/src/mess/drivers/trs80m2.c +++ b/src/mess/drivers/trs80m2.c @@ -616,9 +616,10 @@ WRITE_LINE_MEMBER( trs80m2_state::vsync_w ) } } -static const mc6845_interface mc6845_intf = +static MC6845_INTERFACE( mc6845_intf ) { SCREEN_TAG, + false, 8, NULL, trs80m2_update_row, diff --git a/src/mess/drivers/tvc.c b/src/mess/drivers/tvc.c index 89036167d4f..c43507bd3c0 100644 --- a/src/mess/drivers/tvc.c +++ b/src/mess/drivers/tvc.c @@ -631,9 +631,11 @@ static QUICKLOAD_LOAD(tvc64) } } -static const mc6845_interface tvc_crtc6845_interface = + +static MC6845_INTERFACE( tvc_crtc6845_interface ) { "screen", + false, 8 /*?*/, NULL, tvc_update_row, diff --git a/src/mess/drivers/v6809.c b/src/mess/drivers/v6809.c index 15bfb691c7d..a4e94512161 100644 --- a/src/mess/drivers/v6809.c +++ b/src/mess/drivers/v6809.c @@ -173,8 +173,11 @@ void v6809_state::video_start() m_p_videoram = memregion("videoram")->base(); } -static const mc6845_interface v6809_crtc = { + +static MC6845_INTERFACE( v6809_crtc ) +{ "screen", /* name of screen */ + false, 8, /* number of dots per character */ NULL, v6809_update_row, /* handler to display a scanline */ diff --git a/src/mess/drivers/victor9k.c b/src/mess/drivers/victor9k.c index 82f75a2367d..9dc949a58d2 100644 --- a/src/mess/drivers/victor9k.c +++ b/src/mess/drivers/victor9k.c @@ -107,9 +107,11 @@ static MC6845_UPDATE_ROW( victor9k_update_row ) } } -static const mc6845_interface hd46505s_intf = + +static MC6845_INTERFACE( hd46505s_intf ) { SCREEN_TAG, + false, 10, NULL, victor9k_update_row, diff --git a/src/mess/drivers/vk100.c b/src/mess/drivers/vk100.c index 2e533d21d69..ff265c25a3a 100644 --- a/src/mess/drivers/vk100.c +++ b/src/mess/drivers/vk100.c @@ -947,9 +947,10 @@ static MC6845_UPDATE_ROW( vk100_update_row ) } -static const mc6845_interface mc6845_intf = +static MC6845_INTERFACE( mc6845_intf ) { "screen", + false, 12, NULL, vk100_update_row, diff --git a/src/mess/drivers/x1.c b/src/mess/drivers/x1.c index 48e45c397a1..04c4369f981 100644 --- a/src/mess/drivers/x1.c +++ b/src/mess/drivers/x1.c @@ -1897,9 +1897,10 @@ static I8255A_INTERFACE( ppi8255_intf ) DEVCB_DRIVER_MEMBER(x1_state, x1_portc_w) /* Port C write */ }; -static const mc6845_interface mc6845_intf = +static MC6845_INTERFACE( mc6845_intf ) { "screen", /* screen we are acting on */ + false, /* show border area */ 8, /* number of pixels per video memory address */ NULL, /* before pixel update callback */ NULL, /* row update callback */ diff --git a/src/mess/drivers/x1twin.c b/src/mess/drivers/x1twin.c index 8c64a6e25c4..99169f0b15b 100644 --- a/src/mess/drivers/x1twin.c +++ b/src/mess/drivers/x1twin.c @@ -88,18 +88,19 @@ static I8255A_INTERFACE( ppi8255_intf ) DEVCB_DRIVER_MEMBER(x1_state, x1_portc_w) /* Port C write */ }; -static const mc6845_interface mc6845_intf = +static MC6845_INTERFACE( mc6845_intf ) { "x1_screen", /* screen we are acting on */ - 8, /* number of pixels per video memory address */ - NULL, /* before pixel update callback */ - NULL, /* row update callback */ - NULL, /* after pixel update callback */ - DEVCB_NULL, /* callback for display state changes */ - DEVCB_NULL, /* callback for cursor state changes */ - DEVCB_NULL, /* HSYNC callback */ - DEVCB_NULL, /* VSYNC callback */ - NULL /* update address callback */ + false, /* show border area*/ + 8, /* number of pixels per video memory address */ + NULL, /* before pixel update callback */ + NULL, /* row update callback */ + NULL, /* after pixel update callback */ + DEVCB_NULL, /* callback for display state changes */ + DEVCB_NULL, /* callback for cursor state changes */ + DEVCB_NULL, /* HSYNC callback */ + DEVCB_NULL, /* VSYNC callback */ + NULL /* update address callback */ }; /************************************* diff --git a/src/mess/drivers/z100.c b/src/mess/drivers/z100.c index a50894a1888..ebdce4713cf 100644 --- a/src/mess/drivers/z100.c +++ b/src/mess/drivers/z100.c @@ -627,9 +627,11 @@ static const struct pic8259_interface z100_pic8259_slave_config = DEVCB_NULL }; -static const mc6845_interface mc6845_intf = + +static MC6845_INTERFACE( mc6845_intf ) { "screen", /* screen we are acting on */ + false, /* show border area */ 8, /* number of pixels per video memory address */ NULL, /* before pixel update callback */ NULL, /* row update callback */ diff --git a/src/mess/drivers/zrt80.c b/src/mess/drivers/zrt80.c index 7b1d1123d10..1d7bcbfe1dc 100644 --- a/src/mess/drivers/zrt80.c +++ b/src/mess/drivers/zrt80.c @@ -226,9 +226,11 @@ static MC6845_UPDATE_ROW( zrt80_update_row ) } } -static const mc6845_interface zrt80_crtc6845_interface = + +static MC6845_INTERFACE( zrt80_crtc6845_interface ) { "screen", + false, 8 /*?*/, NULL, zrt80_update_row, diff --git a/src/mess/machine/a2videoterm.c b/src/mess/machine/a2videoterm.c index 4ec4e9ecae5..ce4352d4cb3 100644 --- a/src/mess/machine/a2videoterm.c +++ b/src/mess/machine/a2videoterm.c @@ -48,9 +48,10 @@ const device_type A2BUS_VTC2 = &device_creator; static MC6845_UPDATE_ROW( videoterm_update_row ); -static const mc6845_interface mc6845_mda_intf = +static MC6845_INTERFACE( mc6845_mda_intf ) { VIDEOTERM_SCREEN_NAME, /* screen number */ + false, /* show border area */ 8, /* number of pixels per video memory address */ NULL, /* begin_update */ videoterm_update_row, /* update_row */ diff --git a/src/mess/machine/amstrad.c b/src/mess/machine/amstrad.c index 327cae2f9ad..1a004c9ab39 100644 --- a/src/mess/machine/amstrad.c +++ b/src/mess/machine/amstrad.c @@ -1069,9 +1069,10 @@ UINT32 amstrad_state::screen_update_amstrad(screen_device &screen, bitmap_ind16 } -const mc6845_interface amstrad_mc6845_intf = +MC6845_INTERFACE( amstrad_mc6845_intf ) { NULL, /* screen name */ + false, /* show border area */ 16, /* number of pixels per video memory address */ NULL, /* begin_update */ NULL, /* update_row */ @@ -1084,9 +1085,10 @@ const mc6845_interface amstrad_mc6845_intf = }; -const mc6845_interface amstrad_plus_mc6845_intf = +MC6845_INTERFACE( amstrad_plus_mc6845_intf ) { NULL, /* screen name */ + false, /* show border area */ 16, /* number of pixels per video memory address */ NULL, /* begin_update */ NULL, /* update_row */ diff --git a/src/mess/machine/c64_xl80.c b/src/mess/machine/c64_xl80.c index accb653cf66..965f273cf71 100644 --- a/src/mess/machine/c64_xl80.c +++ b/src/mess/machine/c64_xl80.c @@ -110,9 +110,10 @@ static MC6845_UPDATE_ROW( c64_xl80_update_row ) xl80->crtc_update_row(device,bitmap,cliprect,ma,ra,y,x_count,cursor_x,param); } -static const mc6845_interface crtc_intf = +static MC6845_INTERFACE( crtc_intf ) { MC6845_SCREEN_TAG, + false, 8, NULL, c64_xl80_update_row, diff --git a/src/mess/machine/comx_clm.c b/src/mess/machine/comx_clm.c index 8e4b7669951..b96884106fb 100644 --- a/src/mess/machine/comx_clm.c +++ b/src/mess/machine/comx_clm.c @@ -129,9 +129,10 @@ static MC6845_UPDATE_ROW( comx_clm_update_row ) clm->crtc_update_row(device,bitmap,cliprect,ma,ra,y,x_count,cursor_x,param); } -static const mc6845_interface crtc_intf = +static MC6845_INTERFACE( crtc_intf ) { MC6845_SCREEN_TAG, + false, 8, NULL, comx_clm_update_row, diff --git a/src/mess/machine/ecb_grip.c b/src/mess/machine/ecb_grip.c index 92f8933d380..dc536ba94b1 100644 --- a/src/mess/machine/ecb_grip.c +++ b/src/mess/machine/ecb_grip.c @@ -282,9 +282,10 @@ static const speaker_interface speaker_intf = speaker_levels }; -static const mc6845_interface crtc_intf = +static MC6845_INTERFACE( crtc_intf ) { SCREEN_TAG, + false, 8, NULL, grip_update_row, @@ -296,9 +297,11 @@ static const mc6845_interface crtc_intf = NULL }; /* -static const mc6845_interface grip5_crtc_intf = + +static MC6845_INTERFACE( grip5_crtc_intf ) { SCREEN_TAG, + false, 8, NULL, grip5_update_row, diff --git a/src/mess/machine/wangpc_lvc.c b/src/mess/machine/wangpc_lvc.c index 7eb4cbd1f60..5943050a6ed 100644 --- a/src/mess/machine/wangpc_lvc.c +++ b/src/mess/machine/wangpc_lvc.c @@ -117,9 +117,10 @@ WRITE_LINE_MEMBER( wangpc_lvc_device::vsync_w ) } } -static const mc6845_interface crtc_intf = +static MC6845_INTERFACE( crtc_intf ) { SCREEN_TAG, + false, 8, NULL, wangpc_lvc_update_row, diff --git a/src/mess/machine/wangpc_mvc.c b/src/mess/machine/wangpc_mvc.c index 5ff96a4ef09..429176e1f3b 100644 --- a/src/mess/machine/wangpc_mvc.c +++ b/src/mess/machine/wangpc_mvc.c @@ -137,9 +137,10 @@ WRITE_LINE_MEMBER( wangpc_mvc_device::vsync_w ) } } -static const mc6845_interface crtc_intf = +static MC6845_INTERFACE( crtc_intf ) { SCREEN_TAG, + false, 10, NULL, wangpc_mvc_update_row, diff --git a/src/mess/video/abc1600.c b/src/mess/video/abc1600.c index 21af4b3a6df..9a09f39c3fa 100644 --- a/src/mess/video/abc1600.c +++ b/src/mess/video/abc1600.c @@ -1024,9 +1024,10 @@ static MC6845_ON_UPDATE_ADDR_CHANGED( crtc_update ) { } -static const mc6845_interface crtc_intf = +static MC6845_INTERFACE( crtc_intf ) { SCREEN_TAG, + false, 32, NULL, abc1600_update_row, diff --git a/src/mess/video/abc800.c b/src/mess/video/abc800.c index c54b78197b0..1acfb5fd506 100644 --- a/src/mess/video/abc800.c +++ b/src/mess/video/abc800.c @@ -275,9 +275,10 @@ static MC6845_UPDATE_ROW( abc800m_update_row ) // mc6845_interface crtc_intf //------------------------------------------------- -static const mc6845_interface crtc_intf = +static MC6845_INTERFACE( crtc_intf ) { SCREEN_TAG, + false, ABC800_CHAR_WIDTH, NULL, abc800m_update_row, diff --git a/src/mess/video/abc802.c b/src/mess/video/abc802.c index 23a31070c5e..1de11f54cd3 100644 --- a/src/mess/video/abc802.c +++ b/src/mess/video/abc802.c @@ -187,9 +187,10 @@ WRITE_LINE_MEMBER( abc802_state::vs_w ) // mc6845_interface crtc_intf //------------------------------------------------- -static const mc6845_interface crtc_intf = +static MC6845_INTERFACE( crtc_intf ) { SCREEN_TAG, + false, ABC800_CHAR_WIDTH, NULL, abc802_update_row, diff --git a/src/mess/video/abc806.c b/src/mess/video/abc806.c index ce669fed146..06990bfaf8d 100644 --- a/src/mess/video/abc806.c +++ b/src/mess/video/abc806.c @@ -409,9 +409,10 @@ WRITE_LINE_MEMBER( abc806_state::vs_w ) // mc6845_interface crtc_intf //------------------------------------------------- -static const mc6845_interface crtc_intf = +static MC6845_INTERFACE( crtc_intf ) { SCREEN_TAG, + false, ABC800_CHAR_WIDTH, NULL, abc806_update_row, diff --git a/src/mess/video/bbc.c b/src/mess/video/bbc.c index 4ccca5f2370..99289035552 100644 --- a/src/mess/video/bbc.c +++ b/src/mess/video/bbc.c @@ -281,9 +281,10 @@ WRITE_LINE_MEMBER(bbc_state::bbc_vsync) } -const mc6845_interface bbc_mc6845_intf = +MC6845_INTERFACE( bbc_mc6845_intf ) { "screen", /* screen number */ + false, /* show border area */ 8, /* numbers of pixels per video memory address */ NULL, /* begin_update */ vid_update_row, /* update_row */ diff --git a/src/mess/video/dgn_beta.c b/src/mess/video/dgn_beta.c index 421c3aa1563..6929f958a18 100644 --- a/src/mess/video/dgn_beta.c +++ b/src/mess/video/dgn_beta.c @@ -256,9 +256,10 @@ WRITE_LINE_MEMBER(dgn_beta_state::dgnbeta_vsync_changed) dgn_beta_frame_interrupt(machine(), state); } -const mc6845_interface dgnbeta_crtc6845_interface = +MC6845_INTERFACE( dgnbeta_crtc6845_interface ) { "screen", + false, 16 /*?*/, NULL, dgnbeta_update_row, diff --git a/src/mess/video/isa_cga.c b/src/mess/video/isa_cga.c index 3b48532d003..1ad9f3f6487 100644 --- a/src/mess/video/isa_cga.c +++ b/src/mess/video/isa_cga.c @@ -604,9 +604,10 @@ static MC6845_UPDATE_ROW( cga_update_row ) } -static const mc6845_interface mc6845_cga_intf = +static MC6845_INTERFACE( mc6845_cga_intf ) { CGA_SCREEN_NAME, /* screen number */ + false, /* show border area */ 8, /* numbers of pixels per video memory address */ NULL, /* begin_update */ cga_update_row, /* update_row */ diff --git a/src/mess/video/isa_mda.c b/src/mess/video/isa_mda.c index b388e50f1cc..c50cb208313 100644 --- a/src/mess/video/isa_mda.c +++ b/src/mess/video/isa_mda.c @@ -74,9 +74,11 @@ static GFXDECODE_START( pcmda ) GFXDECODE_ENTRY( "mda:gfx1", 0x1000, pc_8_charlayout, 1, 1 ) GFXDECODE_END -static const mc6845_interface mc6845_mda_intf = + +static MC6845_INTERFACE( mc6845_mda_intf ) { MDA_SCREEN_NAME, /* screen number */ + false, /* show border area */ 9, /* number of pixels per video memory address */ NULL, /* begin_update */ mda_update_row, /* update_row */ @@ -496,9 +498,10 @@ allow this. The divder/pixels per 6845 clock is 9 for text mode and 16 for graphics mode. */ -static const mc6845_interface mc6845_hercules_intf = +static MC6845_INTERFACE( mc6845_hercules_intf ) { HERCULES_SCREEN_NAME, /* screen number */ + false, /* show border area */ 9, /* number of pixels per video memory address */ NULL, /* begin_update */ mda_update_row, /* update_row */ diff --git a/src/mess/video/mbc55x.c b/src/mess/video/mbc55x.c index f21fb04416d..9c6efbac332 100644 --- a/src/mess/video/mbc55x.c +++ b/src/mess/video/mbc55x.c @@ -158,9 +158,10 @@ WRITE_LINE_MEMBER( mbc55x_state::vid_vsync_changed ) { } -const mc6845_interface mb55x_mc6845_intf = +MC6845_INTERFACE( mb55x_mc6845_intf ) { SCREEN_TAG, /* screen number */ + false, /* show border area */ 8, /* numbers of pixels per video memory address */ NULL, /* begin_update */ vid_update_row, /* update_row */ diff --git a/src/mess/video/pc1512.c b/src/mess/video/pc1512.c index 5be5670b07c..c3fd5f695e7 100644 --- a/src/mess/video/pc1512.c +++ b/src/mess/video/pc1512.c @@ -526,9 +526,10 @@ static MC6845_UPDATE_ROW( pc1512_update_row ) } } -static const mc6845_interface crtc_intf = +static MC6845_INTERFACE( crtc_intf ) { SCREEN_TAG, + false, 8, NULL, pc1512_update_row, diff --git a/src/mess/video/pc1640.c b/src/mess/video/pc1640.c index 0c32e588838..fa4d7a123b4 100644 --- a/src/mess/video/pc1640.c +++ b/src/mess/video/pc1640.c @@ -347,9 +347,10 @@ static MC6845_UPDATE_ROW( pc1640_update_row ) { } -static const mc6845_interface crtc_intf = +static MC6845_INTERFACE( crtc_intf ) { SCREEN_TAG, + false, 8, NULL, pc1640_update_row, diff --git a/src/mess/video/pc8401a.c b/src/mess/video/pc8401a.c index 67e952c0182..8b6a2c34750 100644 --- a/src/mess/video/pc8401a.c +++ b/src/mess/video/pc8401a.c @@ -55,9 +55,11 @@ static MC6845_UPDATE_ROW( pc8441a_update_row ) { } -static const mc6845_interface pc8441a_mc6845_interface = + +static MC6845_INTERFACE( pc8441a_mc6845_interface ) { CRT_SCREEN_TAG, + false, 6, NULL, pc8441a_update_row, diff --git a/src/mess/video/pc_aga.c b/src/mess/video/pc_aga.c index dc5f9af8b4e..723b16e56c2 100644 --- a/src/mess/video/pc_aga.c +++ b/src/mess/video/pc_aga.c @@ -28,8 +28,10 @@ static WRITE_LINE_DEVICE_HANDLER( aga_vsync_changed ); static VIDEO_START( pc200 ); -static const mc6845_interface mc6845_aga_intf = { +static MC6845_INTERFACE( mc6845_aga_intf ) +{ AGA_SCREEN_NAME, /* screen number */ + false, /* show border area */ 8, /* numbers of pixels per video memory address */ NULL, /* begin_update */ aga_update_row, /* update_row */ diff --git a/src/mess/video/pc_t1t.c b/src/mess/video/pc_t1t.c index ab1c3115f0a..afd14a20d2a 100644 --- a/src/mess/video/pc_t1t.c +++ b/src/mess/video/pc_t1t.c @@ -29,8 +29,10 @@ static WRITE_LINE_DEVICE_HANDLER( t1000_vsync_changed ); static WRITE_LINE_DEVICE_HANDLER( pcjr_vsync_changed ); -static const mc6845_interface mc6845_t1000_intf = { +static MC6845_INTERFACE( mc6845_t1000_intf ) +{ T1000_SCREEN_NAME, /* screen number */ + false, /* show border area */ 8, /* numbers of pixels per video memory address */ NULL, /* begin_update */ t1000_update_row, /* update_row */ @@ -57,8 +59,10 @@ MACHINE_CONFIG_FRAGMENT( pcvideo_t1000 ) MACHINE_CONFIG_END -static const mc6845_interface mc6845_pcjr_intf = { +static MC6845_INTERFACE( mc6845_pcjr_intf ) +{ T1000_SCREEN_NAME, /* screen number */ + false, /* show border area */ 8, /* numbers of pixels per video memory address */ NULL, /* begin_update */ t1000_update_row, /* update_row */ diff --git a/src/mess/video/v1050.c b/src/mess/video/v1050.c index df9c6006a8b..f70a2a39395 100644 --- a/src/mess/video/v1050.c +++ b/src/mess/video/v1050.c @@ -93,9 +93,10 @@ WRITE_LINE_MEMBER( v1050_state::crtc_vs_w ) set_interrupt(INT_VSYNC, state); } -static const mc6845_interface crtc_intf = +static MC6845_INTERFACE( crtc_intf ) { SCREEN_TAG, + false, 8, NULL, v1050_update_row,