summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--src/emu/video/mc6845.c10
-rw-r--r--src/emu/video/mc6845.h1
-rw-r--r--src/emu/video/pc_cga.c21
-rw-r--r--src/mame/drivers/4roses.c3
-rw-r--r--src/mame/drivers/5clown.c3
-rw-r--r--src/mame/drivers/albazg.c3
-rw-r--r--src/mame/drivers/amaticmg.c3
-rw-r--r--src/mame/drivers/aristmk4.c5
-rw-r--r--src/mame/drivers/avt.c3
-rw-r--r--src/mame/drivers/blitz.c3
-rw-r--r--src/mame/drivers/blitz68k.c10
-rw-r--r--src/mame/drivers/buster.c3
-rw-r--r--src/mame/drivers/calomega.c3
-rw-r--r--src/mame/drivers/carrera.c3
-rw-r--r--src/mame/drivers/chance32.c3
-rw-r--r--src/mame/drivers/coinmstr.c3
-rw-r--r--src/mame/drivers/flipjack.c1
-rw-r--r--src/mame/drivers/fortecar.c3
-rw-r--r--src/mame/drivers/funworld.c3
-rw-r--r--src/mame/drivers/goldnpkr.c3
-rw-r--r--src/mame/drivers/hitpoker.c3
-rw-r--r--src/mame/drivers/jokrwild.c3
-rw-r--r--src/mame/drivers/jubilee.c3
-rw-r--r--src/mame/drivers/kingdrby.c3
-rw-r--r--src/mame/drivers/laserbas.c3
-rw-r--r--src/mame/drivers/luckgrln.c3
-rw-r--r--src/mame/drivers/magicfly.c3
-rw-r--r--src/mame/drivers/majorpkr.c3
-rw-r--r--src/mame/drivers/merit.c3
-rw-r--r--src/mame/drivers/miniboy7.c3
-rw-r--r--src/mame/drivers/mpu12wbk.c3
-rw-r--r--src/mame/drivers/mpu4dealem.c3
-rw-r--r--src/mame/drivers/murogem.c3
-rw-r--r--src/mame/drivers/nyny.c3
-rw-r--r--src/mame/drivers/othello.c3
-rw-r--r--src/mame/drivers/peplus.c3
-rw-r--r--src/mame/drivers/progolf.c12
-rw-r--r--src/mame/drivers/r2dtank.c3
-rw-r--r--src/mame/drivers/rgum.c3
-rw-r--r--src/mame/drivers/slotcarn.c3
-rw-r--r--src/mame/drivers/snk6502.c3
-rw-r--r--src/mame/drivers/speedatk.c3
-rw-r--r--src/mame/drivers/spiders.c3
-rw-r--r--src/mame/drivers/ssingles.c7
-rw-r--r--src/mame/drivers/supercrd.c3
-rw-r--r--src/mame/drivers/tapatune.c3
-rw-r--r--src/mame/drivers/tmspoker.c3
-rw-r--r--src/mame/drivers/truco.c3
-rw-r--r--src/mame/drivers/usgames.c3
-rw-r--r--src/mame/drivers/vcombat.c3
-rw-r--r--src/mame/drivers/vlc.c7
-rw-r--r--src/mame/drivers/whitestar.c3
-rw-r--r--src/mame/video/madalien.c3
-rw-r--r--src/mame/video/qix.c3
-rw-r--r--src/mame/video/twincobr.c3
-rw-r--r--src/mess/drivers/a6809.c4
-rw-r--r--src/mess/drivers/alphatro.c4
-rw-r--r--src/mess/drivers/applix.c4
-rw-r--r--src/mess/drivers/apricot.c4
-rw-r--r--src/mess/drivers/apricotp.c4
-rw-r--r--src/mess/drivers/b16.c3
-rw-r--r--src/mess/drivers/bigbord2.c4
-rw-r--r--src/mess/drivers/bml3.c4
-rw-r--r--src/mess/drivers/bw12.c4
-rw-r--r--src/mess/drivers/c128.c4
-rw-r--r--src/mess/drivers/camplynx.c9
-rw-r--r--src/mess/drivers/cbm2.c3
-rw-r--r--src/mess/drivers/dim68k.c4
-rw-r--r--src/mess/drivers/ec65.c4
-rw-r--r--src/mess/drivers/einstein.c3
-rw-r--r--src/mess/drivers/fp1100.c4
-rw-r--r--src/mess/drivers/fp6000.c3
-rw-r--r--src/mess/drivers/h19.c4
-rw-r--r--src/mess/drivers/hp9k.c5
-rw-r--r--src/mess/drivers/kaypro.c6
-rw-r--r--src/mess/drivers/m20.c4
-rw-r--r--src/mess/drivers/mbc200.c5
-rw-r--r--src/mess/drivers/mbee.c18
-rw-r--r--src/mess/drivers/multi16.c4
-rw-r--r--src/mess/drivers/multi8.c4
-rw-r--r--src/mess/drivers/myb3k.c3
-rw-r--r--src/mess/drivers/mycom.c23
-rw-r--r--src/mess/drivers/paso1600.c3
-rw-r--r--src/mess/drivers/pasopia.c21
-rw-r--r--src/mess/drivers/pasopia7.c3
-rw-r--r--src/mess/drivers/pet.c9
-rw-r--r--src/mess/drivers/pyl601.c7
-rw-r--r--src/mess/drivers/smc777.c111
-rw-r--r--src/mess/drivers/super80.c4
-rw-r--r--src/mess/drivers/svi318.c4
-rw-r--r--src/mess/drivers/trs80m2.c3
-rw-r--r--src/mess/drivers/tvc.c4
-rw-r--r--src/mess/drivers/v6809.c5
-rw-r--r--src/mess/drivers/victor9k.c4
-rw-r--r--src/mess/drivers/vk100.c3
-rw-r--r--src/mess/drivers/x1.c3
-rw-r--r--src/mess/drivers/x1twin.c21
-rw-r--r--src/mess/drivers/z100.c4
-rw-r--r--src/mess/drivers/zrt80.c4
-rw-r--r--src/mess/machine/a2videoterm.c3
-rw-r--r--src/mess/machine/amstrad.c6
-rw-r--r--src/mess/machine/c64_xl80.c3
-rw-r--r--src/mess/machine/comx_clm.c3
-rw-r--r--src/mess/machine/ecb_grip.c7
-rw-r--r--src/mess/machine/wangpc_lvc.c3
-rw-r--r--src/mess/machine/wangpc_mvc.c3
-rw-r--r--src/mess/video/abc1600.c3
-rw-r--r--src/mess/video/abc800.c3
-rw-r--r--src/mess/video/abc802.c3
-rw-r--r--src/mess/video/abc806.c3
-rw-r--r--src/mess/video/bbc.c3
-rw-r--r--src/mess/video/dgn_beta.c3
-rw-r--r--src/mess/video/isa_cga.c3
-rw-r--r--src/mess/video/isa_mda.c7
-rw-r--r--src/mess/video/mbc55x.c3
-rw-r--r--src/mess/video/pc1512.c3
-rw-r--r--src/mess/video/pc1640.c3
-rw-r--r--src/mess/video/pc8401a.c4
-rw-r--r--src/mess/video/pc_aga.c4
-rw-r--r--src/mess/video/pc_t1t.c8
-rw-r--r--src/mess/video/v1050.c3
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<x_width;x++)
+ for(x=0;x<80/(x_width+1);x++)
{
/*
-x-- ---- blink
@@ -207,17 +223,25 @@ UINT32 smc777_state::screen_update_smc777(screen_device &screen, bitmap_ind16 &b
pen = ((m_pcg[tile*8+yi]>>(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<a2bus_vtc2_device>;
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,