summaryrefslogtreecommitdiffstatshomepage
path: root/src/mess
diff options
context:
space:
mode:
author Miodrag Milanovic <mmicko@gmail.com>2014-03-15 13:00:23 +0000
committer Miodrag Milanovic <mmicko@gmail.com>2014-03-15 13:00:23 +0000
commita66aff27d6ca7657fe729f8a922e8773d601a37a (patch)
tree3835abb43e8ca1388434b8d4541a6276e18daf0e /src/mess
parent445c89c839044afed3a09478dbd1cdb77f87cf92 (diff)
primary_screen -> first_screen() (nw)
Diffstat (limited to 'src/mess')
-rw-r--r--src/mess/drivers/a2600.c4
-rw-r--r--src/mess/drivers/a5105.c6
-rw-r--r--src/mess/drivers/a7000.c10
-rw-r--r--src/mess/drivers/apc.c6
-rw-r--r--src/mess/drivers/casloopy.c4
-rw-r--r--src/mess/drivers/dmv.c2
-rw-r--r--src/mess/drivers/fm7.c2
-rw-r--r--src/mess/drivers/gba.c16
-rw-r--r--src/mess/drivers/gp32.c10
-rw-r--r--src/mess/drivers/ie15.c12
-rw-r--r--src/mess/drivers/itt3030.c4
-rw-r--r--src/mess/drivers/lynx.c2
-rw-r--r--src/mess/drivers/multi8.c6
-rw-r--r--src/mess/drivers/mz2000.c2
-rw-r--r--src/mess/drivers/mz2500.c10
-rw-r--r--src/mess/drivers/osbexec.c8
-rw-r--r--src/mess/drivers/pasogo.c2
-rw-r--r--src/mess/drivers/pasopia7.c10
-rw-r--r--src/mess/drivers/pc6001.c4
-rw-r--r--src/mess/drivers/pc8801.c12
-rw-r--r--src/mess/drivers/pc88va.c4
-rw-r--r--src/mess/drivers/pc9801.c20
-rw-r--r--src/mess/drivers/pokemini.c2
-rw-r--r--src/mess/drivers/qx10.c4
-rw-r--r--src/mess/drivers/samcoupe.c2
-rw-r--r--src/mess/drivers/scv.c6
-rw-r--r--src/mess/drivers/smc777.c6
-rw-r--r--src/mess/drivers/spec128.c2
-rw-r--r--src/mess/drivers/spectrum.c2
-rw-r--r--src/mess/drivers/supracan.c20
-rw-r--r--src/mess/drivers/uzebox.c2
-rw-r--r--src/mess/drivers/vboy.c2
-rw-r--r--src/mess/drivers/x1.c36
-rw-r--r--src/mess/drivers/x68k.c6
-rw-r--r--src/mess/machine/amigakbd.c4
-rw-r--r--src/mess/machine/apple2.c4
-rw-r--r--src/mess/machine/apple2gs.c18
-rw-r--r--src/mess/machine/apple3.c4
-rw-r--r--src/mess/machine/coco.c4
-rw-r--r--src/mess/machine/gamecom.c2
-rw-r--r--src/mess/machine/hp48.c2
-rw-r--r--src/mess/machine/lisa.c4
-rw-r--r--src/mess/machine/lynx.c2
-rw-r--r--src/mess/machine/mac.c16
-rw-r--r--src/mess/machine/mz700.c6
-rw-r--r--src/mess/machine/orion.c2
-rw-r--r--src/mess/machine/osborne1.c8
-rw-r--r--src/mess/machine/primo.c2
-rw-r--r--src/mess/machine/s3c44b0.c4
-rw-r--r--src/mess/machine/samcoupe.c2
-rw-r--r--src/mess/machine/vector06.c2
-rw-r--r--src/mess/machine/zx.c6
-rw-r--r--src/mess/video/a7800.c2
-rw-r--r--src/mess/video/atarist.c14
-rw-r--r--src/mess/video/bbc.c8
-rw-r--r--src/mess/video/electron.c4
-rw-r--r--src/mess/video/fm7.c10
-rw-r--r--src/mess/video/fmtowns.c10
-rw-r--r--src/mess/video/galaxy.c2
-rw-r--r--src/mess/video/gamecom.c4
-rw-r--r--src/mess/video/gba.c2
-rw-r--r--src/mess/video/kaypro.c2
-rw-r--r--src/mess/video/kc.c2
-rw-r--r--src/mess/video/mac.c4
-rw-r--r--src/mess/video/pc1512.c4
-rw-r--r--src/mess/video/poisk1.c4
-rw-r--r--src/mess/video/samcoupe.c8
-rw-r--r--src/mess/video/spectrum.c8
-rw-r--r--src/mess/video/stic.c2
-rw-r--r--src/mess/video/wswan.c2
-rw-r--r--src/mess/video/x68k.c44
-rw-r--r--src/mess/video/zx.c8
72 files changed, 241 insertions, 241 deletions
diff --git a/src/mess/drivers/a2600.c b/src/mess/drivers/a2600.c
index 29136f44891..1d3b2fcd27c 100644
--- a/src/mess/drivers/a2600.c
+++ b/src/mess/drivers/a2600.c
@@ -1429,7 +1429,7 @@ WRITE16_MEMBER(a2600_state::a2600_tia_vsync_callback)
if ( supported_screen_heights[i] != m_current_screen_height )
{
m_current_screen_height = supported_screen_heights[i];
-// machine.primary_screen->configure(228, m_current_screen_height, &visarea[i], HZ_TO_ATTOSECONDS( MASTER_CLOCK_NTSC ) * 228 * m_current_screen_height );
+// machine.first_screen()->configure(228, m_current_screen_height, &visarea[i], HZ_TO_ATTOSECONDS( MASTER_CLOCK_NTSC ) * 228 * m_current_screen_height );
}
}
}
@@ -1446,7 +1446,7 @@ WRITE16_MEMBER(a2600_state::a2600_tia_vsync_callback_pal)
if ( supported_screen_heights[i] != m_current_screen_height )
{
m_current_screen_height = supported_screen_heights[i];
-// machine.primary_screen->configure(228, m_current_screen_height, &visarea[i], HZ_TO_ATTOSECONDS( MASTER_CLOCK_PAL ) * 228 * m_current_screen_height );
+// machine.first_screen()->configure(228, m_current_screen_height, &visarea[i], HZ_TO_ATTOSECONDS( MASTER_CLOCK_PAL ) * 228 * m_current_screen_height );
}
}
}
diff --git a/src/mess/drivers/a5105.c b/src/mess/drivers/a5105.c
index 20ecde8340f..470225f36c5 100644
--- a/src/mess/drivers/a5105.c
+++ b/src/mess/drivers/a5105.c
@@ -127,7 +127,7 @@ static UPD7220_DRAW_TEXT_LINE( hgdc_draw_text )
{
tile_data = state->m_char_ram[(tile*8+yi) & 0x7ff];
- if(cursor_on && cursor_addr == addr+x && device->machine().primary_screen->frame_number() & 0x10)
+ if(cursor_on && cursor_addr == addr+x && device->machine().first_screen()->frame_number() & 0x10)
tile_data^=0xff;
for( xi = 0; xi < 8; xi++)
@@ -141,12 +141,12 @@ static UPD7220_DRAW_TEXT_LINE( hgdc_draw_text )
if(yi >= 8) { pen = 0; }
/* TODO: pitch is currently 40, this should actually go in the upd7220 device */
- if(!device->machine().primary_screen->visible_area().contains(res_x*2+0, res_y))
+ if(!device->machine().first_screen()->visible_area().contains(res_x*2+0, res_y))
continue;
bitmap.pix32(res_y, res_x*2+0) = palette[pen];
- if(!device->machine().primary_screen->visible_area().contains(res_x*2+1, res_y))
+ if(!device->machine().first_screen()->visible_area().contains(res_x*2+1, res_y))
continue;
bitmap.pix32(res_y, res_x*2+1) = palette[pen];
diff --git a/src/mess/drivers/a7000.c b/src/mess/drivers/a7000.c
index 945d102f837..094db2b6714 100644
--- a/src/mess/drivers/a7000.c
+++ b/src/mess/drivers/a7000.c
@@ -177,7 +177,7 @@ void a7000_state::vidc20_dynamic_screen_change()
{
/* finally ready to change the resolution */
int hblank_period,vblank_period;
- rectangle visarea = machine().primary_screen->visible_area();
+ rectangle visarea = machine().first_screen()->visible_area();
hblank_period = (m_vidc20_horz_reg[HCR] & 0x3ffc);
vblank_period = (m_vidc20_vert_reg[VCR] & 0x3fff);
/* note that we use the border registers as the visible area */
@@ -186,7 +186,7 @@ void a7000_state::vidc20_dynamic_screen_change()
visarea.min_y = (m_vidc20_vert_reg[VBSR] & 0x1fff);
visarea.max_y = (m_vidc20_vert_reg[VBER] & 0x1fff)-1;
- machine().primary_screen->configure(hblank_period, vblank_period, visarea, machine().primary_screen->frame_period().attoseconds );
+ machine().first_screen()->configure(hblank_period, vblank_period, visarea, machine().first_screen()->frame_period().attoseconds );
logerror("VIDC20: successfully changed the screen to:\n Display Size = %d x %d\n Border Size %d x %d\n Cycle Period %d x %d\n",
(m_vidc20_horz_reg[HDER]-m_vidc20_horz_reg[HDSR]),(m_vidc20_vert_reg[VDER]-m_vidc20_vert_reg[VDSR]),
(m_vidc20_horz_reg[HBER]-m_vidc20_horz_reg[HBSR]),(m_vidc20_vert_reg[VBER]-m_vidc20_vert_reg[VBSR]),
@@ -257,7 +257,7 @@ WRITE32_MEMBER( a7000_state::a7000_vidc20_w )
if(vert_reg == 4)
{
if(m_vidc20_vert_reg[VDER] != 0)
- m_flyback_timer->adjust(machine().primary_screen->time_until_pos(m_vidc20_vert_reg[VDER]));
+ m_flyback_timer->adjust(machine().first_screen()->time_until_pos(m_vidc20_vert_reg[VDER]));
else
m_flyback_timer->adjust(attotime::never);
}
@@ -608,7 +608,7 @@ TIMER_CALLBACK_MEMBER(a7000_state::flyback_timer_callback)
generic_pulse_irq_line(m_maincpu, ARM7_IRQ_LINE,1);
}
- m_flyback_timer->adjust(machine().primary_screen->time_until_pos(m_vidc20_vert_reg[VDER]));
+ m_flyback_timer->adjust(machine().first_screen()->time_until_pos(m_vidc20_vert_reg[VDER]));
}
void a7000_state::viddma_transfer_start()
@@ -643,7 +643,7 @@ READ32_MEMBER( a7000_state::a7000_iomd_r )
UINT8 flyback;
int vert_pos;
- vert_pos = machine().primary_screen->vpos();
+ vert_pos = machine().first_screen()->vpos();
flyback = (vert_pos <= m_vidc20_vert_reg[VDSR] || vert_pos >= m_vidc20_vert_reg[VDER]) ? 0x80 : 0x00;
return m_IOMD_IO_ctrl | 0x34 | flyback;
diff --git a/src/mess/drivers/apc.c b/src/mess/drivers/apc.c
index 4eca34216b8..3b712a7a36e 100644
--- a/src/mess/drivers/apc.c
+++ b/src/mess/drivers/apc.c
@@ -238,7 +238,7 @@ static UPD7220_DRAW_TEXT_LINE( hgdc_draw_text )
res_x = (x*8+xi);
res_y = y*lr+yi;
- if(!device->machine().primary_screen->visible_area().contains(res_x, res_y))
+ if(!device->machine().first_screen()->visible_area().contains(res_x, res_y))
continue;
/*
@@ -271,9 +271,9 @@ static UPD7220_DRAW_TEXT_LINE( hgdc_draw_text )
if(u_line && yi == lr-1) { tile_data = 0xff; }
if(o_line && yi == 0) { tile_data = 0xff; }
if(v_line) { tile_data|=1; }
- if(blink && device->machine().primary_screen->frame_number() & 0x20) { tile_data = 0; } // TODO: rate & correct behaviour
+ if(blink && device->machine().first_screen()->frame_number() & 0x20) { tile_data = 0; } // TODO: rate & correct behaviour
- if(cursor_on && cursor_addr == tile_addr && device->machine().primary_screen->frame_number() & 0x10)
+ if(cursor_on && cursor_addr == tile_addr && device->machine().first_screen()->frame_number() & 0x10)
tile_data^=0xff;
if(yi >= char_size)
diff --git a/src/mess/drivers/casloopy.c b/src/mess/drivers/casloopy.c
index d793da4712f..a43d432d6aa 100644
--- a/src/mess/drivers/casloopy.c
+++ b/src/mess/drivers/casloopy.c
@@ -296,11 +296,11 @@ READ16_MEMBER(casloopy_state::casloopy_vregs_r)
{
if(offset == 4/2)
{
- return (machine().primary_screen->vblank() << 8) | (machine().rand() & 0xff); // vblank + vpos?
+ return (machine().first_screen()->vblank() << 8) | (machine().rand() & 0xff); // vblank + vpos?
}
if(offset == 2/2)
- return machine().rand();/*(machine().primary_screen->hblank() << 8) | (machine().primary_screen->hpos() & 0xff);*/ // hblank + hpos?
+ return machine().rand();/*(machine().first_screen()->hblank() << 8) | (machine().first_screen()->hpos() & 0xff);*/ // hblank + hpos?
if(offset == 0/2)
return machine().rand(); // pccllect
diff --git a/src/mess/drivers/dmv.c b/src/mess/drivers/dmv.c
index 98ba00536d0..47d3a39c544 100644
--- a/src/mess/drivers/dmv.c
+++ b/src/mess/drivers/dmv.c
@@ -175,7 +175,7 @@ static UPD7220_DRAW_TEXT_LINE( hgdc_draw_text )
res_x = x * 8 + xi;
res_y = y * lr + yi;
- if(!device->machine().primary_screen->visible_area().contains(res_x, res_y))
+ if(!device->machine().first_screen()->visible_area().contains(res_x, res_y))
continue;
if(yi >= 16) { pen = 0; }
diff --git a/src/mess/drivers/fm7.c b/src/mess/drivers/fm7.c
index 4a6669db541..ef6b3333304 100644
--- a/src/mess/drivers/fm7.c
+++ b/src/mess/drivers/fm7.c
@@ -1896,7 +1896,7 @@ void fm7_state::machine_reset()
m_subtimer->adjust(attotime::from_msec(20),0,attotime::from_msec(20));
m_keyboard_timer->adjust(attotime::zero,0,attotime::from_msec(10));
if(m_type == SYS_FM77AV || m_type == SYS_FM77AV40EX || m_type == SYS_FM11)
- m_fm77av_vsync_timer->adjust(machine().primary_screen->time_until_vblank_end());
+ m_fm77av_vsync_timer->adjust(machine().first_screen()->time_until_vblank_end());
m_irq_mask = 0x00;
m_irq_flags = 0x00;
diff --git a/src/mess/drivers/gba.c b/src/mess/drivers/gba.c
index 7bf449a7f45..66ba795bd72 100644
--- a/src/mess/drivers/gba.c
+++ b/src/mess/drivers/gba.c
@@ -493,7 +493,7 @@ READ32_MEMBER(gba_state::gba_io_r)
}
break;
case 0x0004/4:
- retval = (m_DISPSTAT & 0xffff) | (machine().primary_screen->vpos()<<16);
+ retval = (m_DISPSTAT & 0xffff) | (machine().first_screen()->vpos()<<16);
break;
case 0x0008/4:
if( (mem_mask) & 0x0000ffff )
@@ -1767,7 +1767,7 @@ WRITE32_MEMBER(gba_state::gba_io_w)
case 0x0200/4:
if( (mem_mask) & 0x0000ffff )
{
-// printf("IE (%08x) = %04x raw %x (%08x) (scan %d PC %x)\n", 0x04000000 + ( offset << 2 ), data & mem_mask, data, ~mem_mask, machine.primary_screen->vpos(), space.device().safe_pc());
+// printf("IE (%08x) = %04x raw %x (%08x) (scan %d PC %x)\n", 0x04000000 + ( offset << 2 ), data & mem_mask, data, ~mem_mask, machine.first_screen()->vpos(), space.device().safe_pc());
m_IE = ( m_IE & ~mem_mask ) | ( data & mem_mask );
#if 0
if (m_IE & m_IF)
@@ -1943,7 +1943,7 @@ INPUT_PORTS_END
TIMER_CALLBACK_MEMBER(gba_state::perform_hbl)
{
int ch, ctrl;
- int scanline = machine().primary_screen->vpos();
+ int scanline = machine().first_screen()->vpos();
// draw only visible scanlines
if (scanline < 160)
@@ -1977,7 +1977,7 @@ TIMER_CALLBACK_MEMBER(gba_state::perform_scan)
// clear hblank and raster IRQ flags
m_DISPSTAT &= ~(DISPSTAT_HBL|DISPSTAT_VCNT);
- scanline = machine().primary_screen->vpos();
+ scanline = machine().first_screen()->vpos();
// VBL is set for scanlines 160 through 226 (but not 227, which is the last line)
if (scanline >= 160 && scanline < 227)
@@ -2043,8 +2043,8 @@ TIMER_CALLBACK_MEMBER(gba_state::perform_scan)
}
}
- m_hbl_timer->adjust(machine().primary_screen->time_until_pos(scanline, 240));
- m_scan_timer->adjust(machine().primary_screen->time_until_pos(( scanline + 1 ) % 228, 0));
+ m_hbl_timer->adjust(machine().first_screen()->time_until_pos(scanline, 240));
+ m_scan_timer->adjust(machine().first_screen()->time_until_pos(( scanline + 1 ) % 228, 0));
}
void gba_state::machine_reset()
@@ -2070,7 +2070,7 @@ void gba_state::machine_reset()
m_bios_protected = 0;
- m_scan_timer->adjust(machine().primary_screen->time_until_pos(0, 0));
+ m_scan_timer->adjust(machine().first_screen()->time_until_pos(0, 0));
m_hbl_timer->adjust(attotime::never);
m_dma_timer[0]->adjust(attotime::never);
m_dma_timer[1]->adjust(attotime::never, 1);
@@ -2092,7 +2092,7 @@ void gba_state::machine_start()
/* create a timer to fire scanline functions */
m_scan_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(gba_state::perform_scan),this));
m_hbl_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(gba_state::perform_hbl),this));
- m_scan_timer->adjust(machine().primary_screen->time_until_pos(0, 0));
+ m_scan_timer->adjust(machine().first_screen()->time_until_pos(0, 0));
/* and one for each DMA channel */
m_dma_timer[0] = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(gba_state::dma_complete),this));
diff --git a/src/mess/drivers/gp32.c b/src/mess/drivers/gp32.c
index 9e6be05a5c3..635a8aa9f7f 100644
--- a/src/mess/drivers/gp32.c
+++ b/src/mess/drivers/gp32.c
@@ -241,7 +241,7 @@ void gp32_state::s3c240x_lcd_render_16( )
TIMER_CALLBACK_MEMBER(gp32_state::s3c240x_lcd_timer_exp)
{
- screen_device *screen = machine().primary_screen;
+ screen_device *screen = machine().first_screen();
verboselog( machine(), 2, "LCD timer callback\n");
m_s3c240x_lcd.vpos = screen->vpos();
m_s3c240x_lcd.hpos = screen->hpos();
@@ -269,7 +269,7 @@ TIMER_CALLBACK_MEMBER(gp32_state::s3c240x_lcd_timer_exp)
void gp32_state::video_start()
{
- machine().primary_screen->register_screen_bitmap(m_bitmap);
+ machine().first_screen()->register_screen_bitmap(m_bitmap);
}
UINT32 gp32_state::screen_update_gp32(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
@@ -289,7 +289,7 @@ READ32_MEMBER(gp32_state::s3c240x_lcd_r)
{
// make sure line counter is going
UINT32 lineval = BITS( m_s3c240x_lcd_regs[1], 23, 14);
- data = (data & ~0xFFFC0000) | ((lineval - machine().primary_screen->vpos()) << 18);
+ data = (data & ~0xFFFC0000) | ((lineval - machine().first_screen()->vpos()) << 18);
}
break;
}
@@ -299,7 +299,7 @@ READ32_MEMBER(gp32_state::s3c240x_lcd_r)
void gp32_state::s3c240x_lcd_configure()
{
- screen_device *screen = machine().primary_screen;
+ screen_device *screen = machine().first_screen();
UINT32 vspw, vbpd, lineval, vfpd, hspw, hbpd, hfpd, hozval, clkval, hclk;
double framerate, vclk;
rectangle visarea;
@@ -325,7 +325,7 @@ void gp32_state::s3c240x_lcd_configure()
void gp32_state::s3c240x_lcd_start()
{
- screen_device *screen = machine().primary_screen;
+ screen_device *screen = machine().first_screen();
verboselog( machine(), 1, "LCD start\n");
s3c240x_lcd_configure();
s3c240x_lcd_dma_init();
diff --git a/src/mess/drivers/ie15.c b/src/mess/drivers/ie15.c
index 2f7711e4ab7..960f62e7a48 100644
--- a/src/mess/drivers/ie15.c
+++ b/src/mess/drivers/ie15.c
@@ -382,13 +382,13 @@ READ8_MEMBER( ie15_state::flag_r ) {
switch (offset)
{
case 0: // hsync pulse (not hblank)
- ret = machine().primary_screen->hpos() < IE15_HORZ_START;
+ ret = machine().first_screen()->hpos() < IE15_HORZ_START;
break;
case 1: // marker scanline
- ret = (machine().primary_screen->vpos() % 11) > 7;
+ ret = (machine().first_screen()->vpos() % 11) > 7;
break;
case 2: // vblank
- ret = !machine().primary_screen->vblank();
+ ret = !machine().first_screen()->vblank();
break;
case 4:
ret = m_ruslat;
@@ -519,7 +519,7 @@ UINT32 ie15_state::draw_scanline(UINT16 *p, UINT16 offset, UINT8 scanline, UINT8
UINT16 x,chr;
bg = 0; fg = 1; ra = scanline % 8;
- blink = (machine().primary_screen->frame_number() % 10) >= 5;
+ blink = (machine().first_screen()->frame_number() % 10) >= 5;
red = m_io_keyboard->read() & 0x01;
DBG_LOG(2,"draw_scanline",
@@ -577,9 +577,9 @@ UINT32 ie15_state::draw_scanline(UINT16 *p, UINT16 offset, UINT8 scanline, UINT8
TIMER_DEVICE_CALLBACK_MEMBER(ie15_state::scanline_callback)
{
- UINT16 y = machine().primary_screen->vpos();
+ UINT16 y = machine().first_screen()->vpos();
// DBG_LOG(2,"scanline",
-// ("addr %03x frame %lld x %04d y %03d\n", m_videoptr_2, machine().primary_screen->frame_number(), machine().primary_screen->hpos(), y));
+// ("addr %03x frame %lld x %04d y %03d\n", m_videoptr_2, machine().first_screen()->frame_number(), machine().first_screen()->hpos(), y));
if (y>=IE15_VERT_START) {
y -= IE15_VERT_START;
if (y < IE15_DISP_VERT) {
diff --git a/src/mess/drivers/itt3030.c b/src/mess/drivers/itt3030.c
index 09c2798bc5b..d5c4b2f06cc 100644
--- a/src/mess/drivers/itt3030.c
+++ b/src/mess/drivers/itt3030.c
@@ -293,12 +293,12 @@ READ8_MEMBER(itt3030_state::vsync_r)
{
UINT8 ret = 0;
- if (machine().primary_screen->vblank())
+ if (machine().first_screen()->vblank())
{
ret |= 0xc0; // set both bits 6 and 7 if vblank
}
- if (machine().primary_screen->hblank())
+ if (machine().first_screen()->hblank())
{
ret |= 0x80; // set only bit 7 if hblank
}
diff --git a/src/mess/drivers/lynx.c b/src/mess/drivers/lynx.c
index 060bbbefba3..a6bc642af40 100644
--- a/src/mess/drivers/lynx.c
+++ b/src/mess/drivers/lynx.c
@@ -55,7 +55,7 @@ PALETTE_INIT_MEMBER(lynx_state, lynx)
void lynx_state::video_start()
{
- machine().primary_screen->register_screen_bitmap(m_bitmap);
+ machine().first_screen()->register_screen_bitmap(m_bitmap);
}
UINT32 lynx_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
diff --git a/src/mess/drivers/multi8.c b/src/mess/drivers/multi8.c
index 4637df96728..1fa9c0373fe 100644
--- a/src/mess/drivers/multi8.c
+++ b/src/mess/drivers/multi8.c
@@ -106,7 +106,7 @@ void multi8_state::video_start()
void multi8_state::multi8_draw_pixel(bitmap_ind16 &bitmap,int y,int x,UINT8 pen,UINT8 width)
{
- if(!machine().primary_screen->visible_area().contains(x, y))
+ if(!machine().first_screen()->visible_area().contains(x, y))
return;
if(width)
@@ -195,8 +195,8 @@ UINT32 multi8_state::screen_update_multi8(screen_device &screen, bitmap_ind16 &b
{
case 0x00: cursor_on = 1; break; //always on
case 0x20: cursor_on = 0; break; //always off
- case 0x40: if(machine().primary_screen->frame_number() & 0x10) { cursor_on = 1; } break; //fast blink
- case 0x60: if(machine().primary_screen->frame_number() & 0x20) { cursor_on = 1; } break; //slow blink
+ case 0x40: if(machine().first_screen()->frame_number() & 0x10) { cursor_on = 1; } break; //fast blink
+ case 0x60: if(machine().first_screen()->frame_number() & 0x20) { cursor_on = 1; } break; //slow blink
}
if(cursor_on)
diff --git a/src/mess/drivers/mz2000.c b/src/mess/drivers/mz2000.c
index b37468cb328..9bcc5bc9b8d 100644
--- a/src/mess/drivers/mz2000.c
+++ b/src/mess/drivers/mz2000.c
@@ -635,7 +635,7 @@ READ8_MEMBER(mz2000_state::mz2000_portb_r)
else
res |= 0x20;
- res |= (machine().primary_screen->vblank()) ? 0x00 : 0x01;
+ res |= (machine().first_screen()->vblank()) ? 0x00 : 0x01;
return res;
}
diff --git a/src/mess/drivers/mz2500.c b/src/mess/drivers/mz2500.c
index 7ce05520423..bfbd7fb8ef6 100644
--- a/src/mess/drivers/mz2500.c
+++ b/src/mess/drivers/mz2500.c
@@ -712,7 +712,7 @@ void mz2500_state::mz2500_reconfigure_screen()
//popmessage("%d %d %d %d %02x",vs,ve,hs,he,m_cg_reg[0x0e]);
- machine().primary_screen->configure(720, 480, visarea, machine().primary_screen->frame_period().attoseconds);
+ machine().first_screen()->configure(720, 480, visarea, machine().first_screen()->frame_period().attoseconds);
/* calculate CG window parameters here */
m_cg_vs = (m_cg_reg[0x08]) | ((m_cg_reg[0x09]<<8) & 1);
@@ -1032,8 +1032,8 @@ READ8_MEMBER(mz2500_state::mz2500_crtc_hvblank_r)
{
UINT8 vblank_bit, hblank_bit;
- vblank_bit = machine().primary_screen->vblank() ? 0 : 1;
- hblank_bit = machine().primary_screen->hblank() ? 0 : 2;
+ vblank_bit = machine().first_screen()->vblank() ? 0 : 1;
+ hblank_bit = machine().first_screen()->hblank() ? 0 : 2;
return vblank_bit | hblank_bit;
}
@@ -1307,7 +1307,7 @@ READ8_MEMBER(mz2500_state::mz2500_rplane_latch_r)
{
UINT8 vblank_bit;
- vblank_bit = machine().primary_screen->vblank() ? 0 : 0x80 | m_cg_clear_flag;
+ vblank_bit = machine().first_screen()->vblank() ? 0 : 0x80 | m_cg_clear_flag;
return vblank_bit;
}
@@ -1884,7 +1884,7 @@ READ8_MEMBER(mz2500_state::mz2500_portb_r)
{
UINT8 vblank_bit;
- vblank_bit = machine().primary_screen->vblank() ? 0 : 1; //Guess: NOBO wants this bit to be high/low
+ vblank_bit = machine().first_screen()->vblank() ? 0 : 1; //Guess: NOBO wants this bit to be high/low
return 0xfe | vblank_bit;
}
diff --git a/src/mess/drivers/osbexec.c b/src/mess/drivers/osbexec.c
index 32c782ef0c1..20f3c8e9e39 100644
--- a/src/mess/drivers/osbexec.c
+++ b/src/mess/drivers/osbexec.c
@@ -316,7 +316,7 @@ PALETTE_INIT_MEMBER(osbexec_state, osbexec)
void osbexec_state::video_start()
{
- machine().primary_screen->register_screen_bitmap(m_bitmap);
+ machine().first_screen()->register_screen_bitmap(m_bitmap);
}
UINT32 osbexec_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
@@ -515,7 +515,7 @@ static const floppy_interface osbexec_floppy_interface =
TIMER_CALLBACK_MEMBER(osbexec_state::osbexec_video_callback)
{
- int y = machine().primary_screen->vpos();
+ int y = machine().first_screen()->vpos();
/* Start of frame */
if ( y == 0 )
@@ -562,7 +562,7 @@ TIMER_CALLBACK_MEMBER(osbexec_state::osbexec_video_callback)
}
}
- m_video_timer->adjust( machine().primary_screen->time_until_pos( y + 1, 0 ) );
+ m_video_timer->adjust( machine().first_screen()->time_until_pos( y + 1, 0 ) );
}
@@ -587,7 +587,7 @@ void osbexec_state::machine_reset()
set_banks( machine() );
- m_video_timer->adjust( machine().primary_screen->time_until_pos( 0, 0 ) );
+ m_video_timer->adjust( machine().first_screen()->time_until_pos( 0, 0 ) );
m_rtc = 0;
}
diff --git a/src/mess/drivers/pasogo.c b/src/mess/drivers/pasogo.c
index e2b84858cd2..f7bce7bbcc0 100644
--- a/src/mess/drivers/pasogo.c
+++ b/src/mess/drivers/pasogo.c
@@ -660,7 +660,7 @@ UINT32 pasogo_state::screen_update_pasogo(screen_device &screen, bitmap_ind16 &b
if (w!=width || h!=height)
{
width = w; height = h;
-// machine().primary_screen->set_visible_area(0, width - 1, 0, height - 1);
+// machine().first_screen()->set_visible_area(0, width - 1, 0, height - 1);
screen.set_visible_area(0, width - 1, 0, height - 1);
}
#endif
diff --git a/src/mess/drivers/pasopia7.c b/src/mess/drivers/pasopia7.c
index aef1df0f162..6112e454d6d 100644
--- a/src/mess/drivers/pasopia7.c
+++ b/src/mess/drivers/pasopia7.c
@@ -209,8 +209,8 @@ void pasopia7_state::draw_tv_screen(bitmap_ind16 &bitmap,const rectangle &clipre
{
case 0x00: cursor_on = 1; break; //always on
case 0x20: cursor_on = 0; break; //always off
- case 0x40: if(machine().primary_screen->frame_number() & 0x10) { cursor_on = 1; } break; //fast blink
- case 0x60: if(machine().primary_screen->frame_number() & 0x20) { cursor_on = 1; } break; //slow blink
+ case 0x40: if(machine().first_screen()->frame_number() & 0x10) { cursor_on = 1; } break; //fast blink
+ case 0x60: if(machine().first_screen()->frame_number() & 0x20) { cursor_on = 1; } break; //slow blink
}
if(cursor_on)
@@ -287,8 +287,8 @@ void pasopia7_state::draw_mixed_screen(bitmap_ind16 &bitmap,const rectangle &cli
{
case 0x00: cursor_on = 1; break; //always on
case 0x20: cursor_on = 0; break; //always off
- case 0x40: if(machine().primary_screen->frame_number() & 0x10) { cursor_on = 1; } break; //fast blink
- case 0x60: if(machine().primary_screen->frame_number() & 0x20) { cursor_on = 1; } break; //slow blink
+ case 0x40: if(machine().first_screen()->frame_number() & 0x10) { cursor_on = 1; } break; //fast blink
+ case 0x60: if(machine().first_screen()->frame_number() & 0x20) { cursor_on = 1; } break; //slow blink
}
if(cursor_on)
@@ -811,7 +811,7 @@ READ8_MEMBER( pasopia7_state::crtc_portb_r )
// --x- ---- vsync bit
// ---x ---- hardcoded bit, defines if the system screen is raster (1) or LCD (0)
// ---- x--- disp bit
- UINT8 vdisp = (machine().primary_screen->vpos() < (m_screen_type ? 200 : 28)) ? 0x08 : 0x00; //TODO: check LCD vpos trigger
+ UINT8 vdisp = (machine().first_screen()->vpos() < (m_screen_type ? 200 : 28)) ? 0x08 : 0x00; //TODO: check LCD vpos trigger
UINT8 vsync = vdisp ? 0x00 : 0x20;
return 0x40 | (m_attr_latch & 0x87) | vsync | vdisp | (m_screen_type << 4);
diff --git a/src/mess/drivers/pc6001.c b/src/mess/drivers/pc6001.c
index 882c8157055..a34cde3a8ba 100644
--- a/src/mess/drivers/pc6001.c
+++ b/src/mess/drivers/pc6001.c
@@ -1337,14 +1337,14 @@ WRITE8_MEMBER(pc6001_state::pc6001m2_vram_bank_w)
{
/* Apparently bitmap modes changes the screen res to 320 x 200 */
{
- rectangle visarea = machine().primary_screen->visible_area();
+ rectangle visarea = machine().first_screen()->visible_area();
int y_height;
y_height = (m_exgfx_bitmap_mode || m_exgfx_2bpp_mode) ? 200 : 240;
visarea.set(0, (320) - 1, 0, (y_height) - 1);
- machine().primary_screen->configure(320, 240, visarea, machine().primary_screen->frame_period().attoseconds);
+ machine().first_screen()->configure(320, 240, visarea, machine().first_screen()->frame_period().attoseconds);
}
}
diff --git a/src/mess/drivers/pc8801.c b/src/mess/drivers/pc8801.c
index cf440fafe4a..a054daf496e 100644
--- a/src/mess/drivers/pc8801.c
+++ b/src/mess/drivers/pc8801.c
@@ -675,7 +675,7 @@ UINT8 pc8801_state::calc_cursor_pos(int x,int y,int yi)
if(!(m_crtc.param[0][2] & 0x20))
return 1;
- if(((machine().primary_screen->frame_number() / blink_speed) & 1) == 0)
+ if(((machine().first_screen()->frame_number() / blink_speed) & 1) == 0)
return 1;
return 0;
@@ -754,7 +754,7 @@ void pc8801_state::pc8801_draw_char(bitmap_ind16 &bitmap,int x,int y,int pal,UIN
res_x = x*8+xi*(width+1);
res_y = y*y_height+yi;
- if(!machine().primary_screen->visible_area().contains(res_x, res_y))
+ if(!machine().first_screen()->visible_area().contains(res_x, res_y))
continue;
if(gfx_mode)
@@ -771,7 +771,7 @@ void pc8801_state::pc8801_draw_char(bitmap_ind16 &bitmap,int x,int y,int pal,UIN
UINT8 blink_mask;
blink_mask = 0;
- if(blink && ((machine().primary_screen->frame_number() / blink_speed) & 3) == 1)
+ if(blink && ((machine().first_screen()->frame_number() / blink_speed) & 3) == 1)
blink_mask = 1;
if(yi >= (1 << (y_double+3)) || secret || blink_mask)
@@ -799,7 +799,7 @@ void pc8801_state::pc8801_draw_char(bitmap_ind16 &bitmap,int x,int y,int pal,UIN
bitmap.pix16(res_y, res_x) = m_palette->pen(color);
if(width)
{
- if(!machine().primary_screen->visible_area().contains(res_x+1, res_y))
+ if(!machine().first_screen()->visible_area().contains(res_x+1, res_y))
continue;
bitmap.pix16(res_y, res_x+1) = m_palette->pen(color);
@@ -1241,7 +1241,7 @@ WRITE8_MEMBER(pc8801_state::pc8801_ext_rom_bank_w)
UINT8 pc8801_state::pc8801_pixel_clock(void)
{
- int ysize = machine().primary_screen->height(); /* TODO: correct condition*/
+ int ysize = machine().first_screen()->height(); /* TODO: correct condition*/
return (ysize >= 400);
}
@@ -1269,7 +1269,7 @@ void pc8801_state::pc8801_dynamic_res_change(void)
else
refresh = HZ_TO_ATTOSECONDS(PIXEL_CLOCK_15KHz) * (xsize) * ysize;
- machine().primary_screen->configure(xsize, ysize, visarea, refresh);
+ machine().first_screen()->configure(xsize, ysize, visarea, refresh);
}
WRITE8_MEMBER(pc8801_state::pc8801_gfx_ctrl_w)
diff --git a/src/mess/drivers/pc88va.c b/src/mess/drivers/pc88va.c
index 924142f1ff3..1f7dd6ead9c 100644
--- a/src/mess/drivers/pc88va.c
+++ b/src/mess/drivers/pc88va.c
@@ -804,7 +804,7 @@ void pc88va_state::execute_sync_cmd()
refresh = HZ_TO_ATTOSECONDS(60);
- machine().primary_screen->configure(640, 480, visarea, refresh);
+ machine().first_screen()->configure(640, 480, visarea, refresh);
}
void pc88va_state::execute_dspon_cmd()
@@ -957,7 +957,7 @@ WRITE16_MEMBER(pc88va_state::palette_ram_w)
READ16_MEMBER(pc88va_state::sys_port4_r)
{
UINT8 vrtc,sw1;
- vrtc = (machine().primary_screen->vpos() < 200) ? 0x20 : 0x00; // vblank
+ vrtc = (machine().first_screen()->vpos() < 200) ? 0x20 : 0x00; // vblank
sw1 = (ioport("DSW")->read() & 1) ? 2 : 0;
diff --git a/src/mess/drivers/pc9801.c b/src/mess/drivers/pc9801.c
index 78dc4a47977..b4b9ad7ac6a 100644
--- a/src/mess/drivers/pc9801.c
+++ b/src/mess/drivers/pc9801.c
@@ -804,8 +804,8 @@ static UPD7220_DISPLAY_PIXELS( hgdc_display_pixels )
if(state->m_video_ff[DISPLAY_REG] == 0) //screen is off
return;
-// popmessage("%02x %d",state->m_video_ff[INTERLACE_REG],device->machine().primary_screen->visible_area().max_y + 1);
-// interlace_on = ((device->machine().primary_screen->visible_area().max_y + 1) >= 400) ? 1 : 0;
+// popmessage("%02x %d",state->m_video_ff[INTERLACE_REG],device->machine().first_screen()->visible_area().max_y + 1);
+// interlace_on = ((device->machine().first_screen()->visible_area().max_y + 1) >= 400) ? 1 : 0;
interlace_on = state->m_video_ff[INTERLACE_REG];
colors16_mode = (state->m_ex_video_ff[ANALOG_16_MODE]) ? 16 : 8;
@@ -816,13 +816,13 @@ static UPD7220_DISPLAY_PIXELS( hgdc_display_pixels )
res_x = x + xi;
res_y = y;
- if(!device->machine().primary_screen->visible_area().contains(res_x, res_y*2+0))
+ if(!device->machine().first_screen()->visible_area().contains(res_x, res_y*2+0))
return;
pen = state->m_ext_gvram[(address*8+xi)+(state->m_vram_disp*0x40000)];
bitmap.pix32(res_y*2+0, res_x) = palette[pen + 0x20];
- if(device->machine().primary_screen->visible_area().contains(res_x, res_y*2+1))
+ if(device->machine().first_screen()->visible_area().contains(res_x, res_y*2+1))
bitmap.pix32(res_y*2+1, res_x) = palette[pen + 0x20];
}
}
@@ -841,10 +841,10 @@ static UPD7220_DISPLAY_PIXELS( hgdc_display_pixels )
if(interlace_on)
{
- if(device->machine().primary_screen->visible_area().contains(res_x, res_y*2+0))
+ if(device->machine().first_screen()->visible_area().contains(res_x, res_y*2+0))
bitmap.pix32(res_y*2+0, res_x) = palette[pen + colors16_mode];
/* TODO: it looks like that PC-98xx can only display even lines ... */
- if(device->machine().primary_screen->visible_area().contains(res_x, res_y*2+1))
+ if(device->machine().first_screen()->visible_area().contains(res_x, res_y*2+1))
bitmap.pix32(res_y*2+1, res_x) = palette[pen + colors16_mode];
}
else
@@ -931,7 +931,7 @@ static UPD7220_DRAW_TEXT_LINE( hgdc_draw_text )
res_x = ((x+kanji_lr)*8+xi) * (state->m_video_ff[WIDTH40_REG]+1);
res_y = y*lr+yi - (state->m_txt_scroll_reg[3] & 0xf);
- if(!device->machine().primary_screen->visible_area().contains(res_x, res_y))
+ if(!device->machine().first_screen()->visible_area().contains(res_x, res_y))
continue;
tile_data = 0;
@@ -972,10 +972,10 @@ static UPD7220_DRAW_TEXT_LINE( hgdc_draw_text )
if(v_line) { tile_data|=8; }
/* TODO: proper blink rate for these two */
- if(cursor_on && cursor_addr == tile_addr && device->machine().primary_screen->frame_number() & 0x10)
+ if(cursor_on && cursor_addr == tile_addr && device->machine().first_screen()->frame_number() & 0x10)
tile_data^=0xff;
- if(blink && device->machine().primary_screen->frame_number() & 0x10)
+ if(blink && device->machine().first_screen()->frame_number() & 0x10)
tile_data^=0xff;
if(yi >= char_size)
@@ -988,7 +988,7 @@ static UPD7220_DRAW_TEXT_LINE( hgdc_draw_text )
if(state->m_video_ff[WIDTH40_REG])
{
- if(!device->machine().primary_screen->visible_area().contains(res_x+1, res_y))
+ if(!device->machine().first_screen()->visible_area().contains(res_x+1, res_y))
continue;
if(pen != -1)
diff --git a/src/mess/drivers/pokemini.c b/src/mess/drivers/pokemini.c
index 37b8ccbe2fa..75d91814c68 100644
--- a/src/mess/drivers/pokemini.c
+++ b/src/mess/drivers/pokemini.c
@@ -1760,7 +1760,7 @@ static const speaker_interface pokemini_speaker_interface =
void pokemini_state::video_start()
{
- machine().primary_screen->register_screen_bitmap(m_bitmap);
+ machine().first_screen()->register_screen_bitmap(m_bitmap);
}
diff --git a/src/mess/drivers/qx10.c b/src/mess/drivers/qx10.c
index 338ff2f4543..23b81de6250 100644
--- a/src/mess/drivers/qx10.c
+++ b/src/mess/drivers/qx10.c
@@ -210,7 +210,7 @@ static UPD7220_DRAW_TEXT_LINE( hgdc_draw_text )
if(cursor_on && cursor_addr == addr+x) //TODO
tile_data^=0xff;
- if(attr & 0x80 && device->machine().primary_screen->frame_number() & 0x10) //TODO: check for blinking interval
+ if(attr & 0x80 && device->machine().first_screen()->frame_number() & 0x10) //TODO: check for blinking interval
tile_data=0;
for( xi = 0; xi < 8; xi++)
@@ -220,7 +220,7 @@ static UPD7220_DRAW_TEXT_LINE( hgdc_draw_text )
res_x = x * 8 + xi;
res_y = y * lr + yi;
- if(!device->machine().primary_screen->visible_area().contains(res_x, res_y))
+ if(!device->machine().first_screen()->visible_area().contains(res_x, res_y))
continue;
if(yi >= 16)
diff --git a/src/mess/drivers/samcoupe.c b/src/mess/drivers/samcoupe.c
index d60ffa23fc1..5b2bf820979 100644
--- a/src/mess/drivers/samcoupe.c
+++ b/src/mess/drivers/samcoupe.c
@@ -125,7 +125,7 @@ WRITE8_MEMBER(samcoupe_state::samcoupe_disk_w)
READ8_MEMBER(samcoupe_state::samcoupe_pen_r)
{
- screen_device *scr = machine().primary_screen;
+ screen_device *scr = machine().first_screen();
UINT8 data;
if (offset & 0x100)
diff --git a/src/mess/drivers/scv.c b/src/mess/drivers/scv.c
index 31dc83d92c5..fe642456746 100644
--- a/src/mess/drivers/scv.c
+++ b/src/mess/drivers/scv.c
@@ -420,7 +420,7 @@ void scv_state::device_timer(emu_timer &timer, device_timer_id id, int param, vo
{
case TIMER_VB:
{
- int vpos = machine().primary_screen->vpos();
+ int vpos = machine().first_screen()->vpos();
switch( vpos )
{
@@ -432,7 +432,7 @@ void scv_state::device_timer(emu_timer &timer, device_timer_id id, int param, vo
break;
}
- m_vb_timer->adjust(machine().primary_screen->time_until_pos((vpos + 1) % 262, 0));
+ m_vb_timer->adjust(machine().first_screen()->time_until_pos((vpos + 1) % 262, 0));
}
break;
@@ -791,7 +791,7 @@ void scv_state::machine_start()
void scv_state::machine_reset()
{
- m_vb_timer->adjust(machine().primary_screen->time_until_pos(0, 0));
+ m_vb_timer->adjust(machine().first_screen()->time_until_pos(0, 0));
scv_set_banks();
}
diff --git a/src/mess/drivers/smc777.c b/src/mess/drivers/smc777.c
index 1d561853a7e..84d636b6573 100644
--- a/src/mess/drivers/smc777.c
+++ b/src/mess/drivers/smc777.c
@@ -220,7 +220,7 @@ UINT32 smc777_state::screen_update_smc777(screen_device &screen, bitmap_ind16 &b
case 3: bk_pen = (color ^ 0xf); break; //complementary
}
- if(blink && machine().primary_screen->frame_number() & 0x10) //blinking, used by Dragon's Alphabet
+ if(blink && machine().first_screen()->frame_number() & 0x10) //blinking, used by Dragon's Alphabet
color = bk_pen;
for(yi=0;yi<8;yi++)
@@ -254,8 +254,8 @@ UINT32 smc777_state::screen_update_smc777(screen_device &screen, bitmap_ind16 &b
{
case 0x00: cursor_on = 1; break; //always on
case 0x20: cursor_on = 0; break; //always off
- case 0x40: if(machine().primary_screen->frame_number() & 0x10) { cursor_on = 1; } break; //fast blink
- case 0x60: if(machine().primary_screen->frame_number() & 0x20) { cursor_on = 1; } break; //slow blink
+ case 0x40: if(machine().first_screen()->frame_number() & 0x10) { cursor_on = 1; } break; //fast blink
+ case 0x60: if(machine().first_screen()->frame_number() & 0x20) { cursor_on = 1; } break; //slow blink
}
if(cursor_on)
diff --git a/src/mess/drivers/spec128.c b/src/mess/drivers/spec128.c
index 4b25c7894d4..5cdc252c4a3 100644
--- a/src/mess/drivers/spec128.c
+++ b/src/mess/drivers/spec128.c
@@ -225,7 +225,7 @@ void spectrum_state::spectrum_128_update_memory()
READ8_MEMBER( spectrum_state::spectrum_128_ula_r )
{
- int vpos = machine().primary_screen->vpos();
+ int vpos = machine().first_screen()->vpos();
return vpos<193 ? m_screen_location[0x1800|(vpos&0xf8)<<2]:0xff;
}
diff --git a/src/mess/drivers/spectrum.c b/src/mess/drivers/spectrum.c
index af21551e5ed..e7e0510fb63 100644
--- a/src/mess/drivers/spectrum.c
+++ b/src/mess/drivers/spectrum.c
@@ -411,7 +411,7 @@ READ8_MEMBER(spectrum_state::spectrum_port_df_r)
READ8_MEMBER(spectrum_state::spectrum_port_ula_r)
{
- int vpos = machine().primary_screen->vpos();
+ int vpos = machine().first_screen()->vpos();
return vpos<193 ? m_video_ram[(vpos&0xf8)<<2]:0xff;
}
diff --git a/src/mess/drivers/supracan.c b/src/mess/drivers/supracan.c
index 406f87a5865..d67dc4bc91d 100644
--- a/src/mess/drivers/supracan.c
+++ b/src/mess/drivers/supracan.c
@@ -1525,7 +1525,7 @@ TIMER_CALLBACK_MEMBER(supracan_state::supracan_line_off_callback)
TIMER_CALLBACK_MEMBER(supracan_state::supracan_video_callback)
{
- int vpos = machine().primary_screen->vpos();
+ int vpos = machine().first_screen()->vpos();
m_video_regs[0] &= ~0x0002;
@@ -1556,10 +1556,10 @@ TIMER_CALLBACK_MEMBER(supracan_state::supracan_video_callback)
break;
}
- m_video_regs[1] = machine().primary_screen->vpos()-16; // for son of evil, wants vblank active around 224 instead...
+ m_video_regs[1] = machine().first_screen()->vpos()-16; // for son of evil, wants vblank active around 224 instead...
- m_hbl_timer->adjust( machine().primary_screen->time_until_pos( vpos, 320 ) );
- m_video_timer->adjust( machine().primary_screen->time_until_pos( ( vpos + 1 ) % 256, 0 ) );
+ m_hbl_timer->adjust( machine().first_screen()->time_until_pos( vpos, 320 ) );
+ m_video_timer->adjust( machine().first_screen()->time_until_pos( ( vpos + 1 ) % 256, 0 ) );
}
WRITE16_MEMBER( supracan_state::supracan_video_w )
@@ -1569,7 +1569,7 @@ WRITE16_MEMBER( supracan_state::supracan_video_w )
int i;
// if any of this changes we need a partial update (see sango fighters intro)
- machine().primary_screen->update_partial(machine().primary_screen->vpos());
+ machine().first_screen()->update_partial(machine().first_screen()->vpos());
COMBINE_DATA(&m_video_regs[offset]);
data = m_video_regs[offset];
@@ -1650,10 +1650,10 @@ WRITE16_MEMBER( supracan_state::supracan_video_w )
verboselog("maincpu", 3, "video_flags = %04x\n", data);
m_video_flags = data;
- rectangle visarea = machine().primary_screen->visible_area();
+ rectangle visarea = machine().first_screen()->visible_area();
visarea.set(0, ((m_video_flags & 0x100) ? 320 : 256) - 1, 8, 232 - 1);
- machine().primary_screen->configure(348, 256, visarea, machine().primary_screen->frame_period().attoseconds);
+ machine().first_screen()->configure(348, 256, visarea, machine().first_screen()->frame_period().attoseconds);
}
break;
case 0x0a/2:
@@ -1662,7 +1662,7 @@ WRITE16_MEMBER( supracan_state::supracan_video_w )
verboselog("maincpu", 0, "IRQ Trigger? = %04x\n", data);
if(data & 0x8000)
{
- m_line_on_timer->adjust(machine().primary_screen->time_until_pos((data & 0x00ff), 0));
+ m_line_on_timer->adjust(machine().first_screen()->time_until_pos((data & 0x00ff), 0));
}
else
{
@@ -1676,7 +1676,7 @@ WRITE16_MEMBER( supracan_state::supracan_video_w )
verboselog("maincpu", 0, "IRQ De-Trigger? = %04x\n", data);
if(data & 0x8000)
{
- m_line_off_timer->adjust(machine().primary_screen->time_until_pos(data & 0x00ff, 0));
+ m_line_off_timer->adjust(machine().first_screen()->time_until_pos(data & 0x00ff, 0));
}
else
{
@@ -1794,7 +1794,7 @@ void supracan_state::machine_reset()
{
m_soundcpu->set_input_line(INPUT_LINE_HALT, ASSERT_LINE);
- m_video_timer->adjust( machine().primary_screen->time_until_pos( 0, 0 ) );
+ m_video_timer->adjust( machine().first_screen()->time_until_pos( 0, 0 ) );
m_irq_mask = 0;
}
diff --git a/src/mess/drivers/uzebox.c b/src/mess/drivers/uzebox.c
index 697fc00127c..ca2952c4775 100644
--- a/src/mess/drivers/uzebox.c
+++ b/src/mess/drivers/uzebox.c
@@ -63,7 +63,7 @@ private:
void uzebox_state::machine_start()
{
- machine().primary_screen->register_screen_bitmap(m_bitmap);
+ machine().first_screen()->register_screen_bitmap(m_bitmap);
}
void uzebox_state::machine_reset()
diff --git a/src/mess/drivers/vboy.c b/src/mess/drivers/vboy.c
index d7628618a57..e1c1124b0ea 100644
--- a/src/mess/drivers/vboy.c
+++ b/src/mess/drivers/vboy.c
@@ -1273,7 +1273,7 @@ void vboy_state::m_set_irq(UINT16 irq_vector)
/* TODO: obviously all of this needs clean-ups and better implementation ... */
void vboy_state::m_scanline_tick(int scanline, UINT8 screen_type)
{
- //int frame_num = machine().primary_screen->frame_number();
+ //int frame_num = machine().first_screen()->frame_number();
if(screen_type == 0)
m_row_num = (scanline / 8) & 0x1f;
diff --git a/src/mess/drivers/x1.c b/src/mess/drivers/x1.c
index 304b9cf6cf7..80258624bf9 100644
--- a/src/mess/drivers/x1.c
+++ b/src/mess/drivers/x1.c
@@ -231,7 +231,7 @@ VIDEO_START_MEMBER(x1_state,x1)
void x1_state::x1_draw_pixel(running_machine &machine, bitmap_rgb32 &bitmap,int y,int x,UINT16 pen,UINT8 width,UINT8 height)
{
- if(!machine.primary_screen->visible_area().contains(x, y))
+ if(!machine.first_screen()->visible_area().contains(x, y))
return;
if(width && height)
@@ -429,7 +429,7 @@ void x1_state::draw_fgtilemap(running_machine &machine, bitmap_rgb32 &bitmap,con
pcg_pen = pen[2]<<2|pen[1]<<1|pen[0]<<0;
- if(color & 0x10 && machine.primary_screen->frame_number() & 0x10) //reverse flickering
+ if(color & 0x10 && machine.first_screen()->frame_number() & 0x10) //reverse flickering
pcg_pen^=7;
if(pcg_pen == 0 && (!(color & 8)))
@@ -1098,11 +1098,11 @@ UINT16 x1_state::check_chr_addr()
UINT16 x1_state::get_pcg_addr( UINT16 width, UINT8 y_char_size )
{
- int hbeam = machine().primary_screen->hpos() >> 3;
- int vbeam = machine().primary_screen->vpos() / y_char_size;
+ int hbeam = machine().first_screen()->hpos() >> 3;
+ int vbeam = machine().first_screen()->vpos() / y_char_size;
UINT16 pcg_offset = ((hbeam + vbeam*width) + (((m_crtc_vreg[0x0c]<<8) & 0x3f00) | (m_crtc_vreg[0x0d] & 0xff))) & 0x7ff;
- //printf("%08x %d %d %d %d\n",(hbeam+vbeam*width),hbeam,vbeam,machine.primary_screen->vpos() & 7,width);
+ //printf("%08x %d %d %d %d\n",(hbeam+vbeam*width),hbeam,vbeam,machine.first_screen()->vpos() & 7,width);
return pcg_offset;
}
@@ -1135,7 +1135,7 @@ READ8_MEMBER( x1_state::x1_pcg_r )
y_char_size = ((m_crtc_vreg[9]+1) > 8) ? 8 : m_crtc_vreg[9]+1;
if(y_char_size == 0) { y_char_size = 1; }
pcg_offset = m_tvram[get_pcg_addr(m_crtc_vreg[1], y_char_size)]*8;
- pcg_offset+= machine().primary_screen->vpos() & (y_char_size-1);
+ pcg_offset+= machine().first_screen()->vpos() & (y_char_size-1);
if(addr) { pcg_offset+= ((addr-1)*0x800); }
res = gfx_data[pcg_offset];
}
@@ -1175,7 +1175,7 @@ WRITE8_MEMBER( x1_state::x1_pcg_w )
y_char_size = (m_crtc_vreg[9]+1) > 8 ? (m_crtc_vreg[9]+1)-8 : m_crtc_vreg[9]+1;
if(y_char_size == 0) { y_char_size = 1; }
pcg_offset = m_tvram[get_pcg_addr(m_crtc_vreg[1], y_char_size)]*8;
- pcg_offset+= machine().primary_screen->vpos() & (y_char_size-1);
+ pcg_offset+= machine().first_screen()->vpos() & (y_char_size-1);
pcg_offset+= ((addr-1)*0x800);
m_pcg_ram[pcg_offset] = data;
@@ -1237,10 +1237,10 @@ WRITE8_MEMBER( x1_state::x1_pal_r_w )
{
m_x_r = data;
set_current_palette();
- //if(m_old_vpos != machine().primary_screen->vpos())
+ //if(m_old_vpos != machine().first_screen()->vpos())
//{
- // machine().primary_screen->update_partial(machine().primary_screen->vpos());
- // m_old_vpos = machine().primary_screen->vpos();
+ // machine().first_screen()->update_partial(machine().first_screen()->vpos());
+ // m_old_vpos = machine().first_screen()->vpos();
//}
}
}
@@ -1256,10 +1256,10 @@ WRITE8_MEMBER( x1_state::x1_pal_g_w )
{
m_x_g = data;
set_current_palette();
- //if(m_old_vpos != machine().primary_screen->vpos())
+ //if(m_old_vpos != machine().first_screen()->vpos())
//{
- machine().primary_screen->update_partial(machine().primary_screen->vpos());
- // m_old_vpos = machine().primary_screen->vpos();
+ machine().first_screen()->update_partial(machine().first_screen()->vpos());
+ // m_old_vpos = machine().first_screen()->vpos();
//}
}
}
@@ -1275,10 +1275,10 @@ WRITE8_MEMBER( x1_state::x1_pal_b_w )
{
m_x_b = data;
set_current_palette();
- //if(m_old_vpos != machine().primary_screen->vpos())
+ //if(m_old_vpos != machine().first_screen()->vpos())
//{
- // machine().primary_screen->update_partial(machine().primary_screen->vpos());
- // m_old_vpos = machine().primary_screen->vpos();
+ // machine().first_screen()->update_partial(machine().first_screen()->vpos());
+ // m_old_vpos = machine().first_screen()->vpos();
//}
}
}
@@ -1804,8 +1804,8 @@ READ8_MEMBER( x1_state::x1_portb_r )
UINT8 res = 0;
int vblank_line = m_crtc_vreg[6] * (m_crtc_vreg[9]+1);
int vsync_line = m_crtc_vreg[7] * (m_crtc_vreg[9]+1);
- m_vdisp = (machine().primary_screen->vpos() < vblank_line) ? 0x80 : 0x00;
- m_vsync = (machine().primary_screen->vpos() < vsync_line) ? 0x00 : 0x04;
+ m_vdisp = (machine().first_screen()->vpos() < vblank_line) ? 0x80 : 0x00;
+ m_vsync = (machine().first_screen()->vpos() < vsync_line) ? 0x00 : 0x04;
// popmessage("%d",vsync_line);
// popmessage("%d",vblank_line);
diff --git a/src/mess/drivers/x68k.c b/src/mess/drivers/x68k.c
index b436d496feb..42a44029858 100644
--- a/src/mess/drivers/x68k.c
+++ b/src/mess/drivers/x68k.c
@@ -1715,15 +1715,15 @@ MACHINE_RESET_MEMBER(x68k_state,x68000)
m_crtc.reg[7] = 552; // Vertical end
m_crtc.reg[8] = 27; // Horizontal adjust
- m_scanline = machine().primary_screen->vpos();// = m_crtc.reg[6]; // Vertical start
+ m_scanline = machine().first_screen()->vpos();// = m_crtc.reg[6]; // Vertical start
// start VBlank timer
m_crtc.vblank = 1;
- irq_time = machine().primary_screen->time_until_pos(m_crtc.reg[6],2);
+ irq_time = machine().first_screen()->time_until_pos(m_crtc.reg[6],2);
m_vblank_irq->adjust(irq_time);
// start HBlank timer
- m_scanline_timer->adjust(machine().primary_screen->scan_period(), 1);
+ m_scanline_timer->adjust(machine().first_screen()->scan_period(), 1);
/// TODO: get callbacks to trigger these
m_mfpdev->i0_w(1); // alarm
diff --git a/src/mess/machine/amigakbd.c b/src/mess/machine/amigakbd.c
index 6e50fbc3d8e..063e997119e 100644
--- a/src/mess/machine/amigakbd.c
+++ b/src/mess/machine/amigakbd.c
@@ -75,7 +75,7 @@ void amigakbd_device::device_timer(emu_timer &timer, device_timer_id id, int par
/* if we still have more data, schedule another update */
if ( m_buf_pos != m_cur_pos )
{
- m_timer->adjust(machine().primary_screen->frame_period() / 4);
+ m_timer->adjust(machine().first_screen()->frame_period() / 4);
}
}
@@ -116,7 +116,7 @@ INPUT_CHANGED_MEMBER(amigakbd_device::kbd_update)
/* if the buffer was empty and we have new data, start a timer to send the keystrokes */
if ( key_buf_was_empty && ( m_buf_pos != m_cur_pos ) )
{
- m_timer->adjust(machine().primary_screen->frame_period() / 4);
+ m_timer->adjust(machine().first_screen()->frame_period() / 4);
}
}
}
diff --git a/src/mess/machine/apple2.c b/src/mess/machine/apple2.c
index 97d7709e058..7128a80da32 100644
--- a/src/mess/machine/apple2.c
+++ b/src/mess/machine/apple2.c
@@ -1181,7 +1181,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(apple2_state::apple2_interrupt)
int scanline = param;
if((scanline % 8) == 0)
- machine().primary_screen->update_partial(machine().primary_screen->vpos());
+ machine().first_screen()->update_partial(machine().first_screen()->vpos());
if ((m_kbspecial->read() & 0x80) &&
(a2_no_ctrl_reset() || (m_kbspecial->read() & 0x08)))
{
@@ -1675,7 +1675,7 @@ READ8_MEMBER( apple2_state::apple2_c01x_r )
case 0x06: result |= (m_flags & VAR_ALTZP) ? 0x80 : 0x00; break;
case 0x07: result |= (m_flags & VAR_SLOTC3ROM) ? 0x80 : 0x00; break;
case 0x08: result |= (m_flags & VAR_80STORE) ? 0x80 : 0x00; break;
- case 0x09: result |= !space.machine().primary_screen->vblank() ? 0x80 : 0x00; break;
+ case 0x09: result |= !space.machine().first_screen()->vblank() ? 0x80 : 0x00; break;
case 0x0A: result |= (m_flags & VAR_TEXT) ? 0x80 : 0x00; break;
case 0x0B: result |= (m_flags & VAR_MIXED) ? 0x80 : 0x00; break;
case 0x0C: result |= (m_flags & VAR_PAGE2) ? 0x80 : 0x00; break;
diff --git a/src/mess/machine/apple2gs.c b/src/mess/machine/apple2gs.c
index 423e0c50d0a..3d3eb5d5577 100644
--- a/src/mess/machine/apple2gs.c
+++ b/src/mess/machine/apple2gs.c
@@ -726,8 +726,8 @@ TIMER_CALLBACK_MEMBER(apple2gs_state::apple2gs_scanline_tick)
{
int scanline;
- scanline = machine().primary_screen->vpos();
- machine().primary_screen->update_partial(scanline);
+ scanline = machine().first_screen()->vpos();
+ machine().first_screen()->update_partial(scanline);
/* check scanline interrupt bits if we're in super hi-res and the current scanline is within the active display area */
if ((m_newvideo & 0x80) && (scanline >= (BORDER_TOP-1)) && (scanline < (200+BORDER_TOP-1)))
@@ -768,15 +768,15 @@ TIMER_CALLBACK_MEMBER(apple2gs_state::apple2gs_scanline_tick)
#endif
/* call Apple II interrupt handler */
- if ((machine().primary_screen->vpos() % 8) == 7)
+ if ((machine().first_screen()->vpos() % 8) == 7)
{
//apple2_interrupt(m_maincpu);
/* TODO: check me! */
- machine().primary_screen->update_partial(machine().primary_screen->vpos());
+ machine().first_screen()->update_partial(machine().first_screen()->vpos());
}
}
- m_scanline_timer->adjust(machine().primary_screen->time_until_pos((scanline+1)%262, 0));
+ m_scanline_timer->adjust(machine().first_screen()->time_until_pos((scanline+1)%262, 0));
}
@@ -881,7 +881,7 @@ int apple2gs_state::apple2gs_get_vpos()
};
- scan = machine().primary_screen->vpos();
+ scan = machine().first_screen()->vpos();
if (scan < BORDER_TOP)
{
@@ -920,7 +920,7 @@ READ8_MEMBER( apple2gs_state::apple2gs_c0xx_r )
#endif
case 0x19: /* C019 - RDVBLBAR */
- result = (space.machine().primary_screen->vpos() >= (192+BORDER_TOP)) ? 0x80 : 0x00;
+ result = (space.machine().first_screen()->vpos() >= (192+BORDER_TOP)) ? 0x80 : 0x00;
break;
case 0x22: /* C022 - TBCOLOR */
@@ -1021,7 +1021,7 @@ READ8_MEMBER( apple2gs_state::apple2gs_c0xx_r )
break;
case 0x2F: /* C02F - HORIZCNT */
- result = space.machine().primary_screen->hpos() / 11;
+ result = space.machine().first_screen()->hpos() / 11;
if (result > 0)
{
result += 0x40;
@@ -2068,7 +2068,7 @@ MACHINE_START_MEMBER(apple2gs_state,apple2gscommon)
m_scanline_timer->adjust(attotime::never);
// fire on scanline zero
- m_scanline_timer->adjust(machine().primary_screen->time_until_pos(0, 0));
+ m_scanline_timer->adjust(machine().first_screen()->time_until_pos(0, 0));
}
MACHINE_START_MEMBER(apple2gs_state,apple2gs)
diff --git a/src/mess/machine/apple3.c b/src/mess/machine/apple3.c
index 212f66adbc6..db9528c6e03 100644
--- a/src/mess/machine/apple3.c
+++ b/src/mess/machine/apple3.c
@@ -372,8 +372,8 @@ WRITE8_MEMBER(apple3_state::apple3_c0xx_w)
TIMER_DEVICE_CALLBACK_MEMBER(apple3_state::apple3_interrupt)
{
- m_via_1->write_cb1(machine().primary_screen->vblank());
- m_via_1->write_cb2(machine().primary_screen->vblank());
+ m_via_1->write_cb1(machine().first_screen()->vblank());
+ m_via_1->write_cb2(machine().first_screen()->vblank());
}
UINT8 *apple3_state::apple3_bankaddr(UINT16 bank, offs_t offset)
diff --git a/src/mess/machine/coco.c b/src/mess/machine/coco.c
index ae44f8e69fc..ee204254c81 100644
--- a/src/mess/machine/coco.c
+++ b/src/mess/machine/coco.c
@@ -808,7 +808,7 @@ void coco_state::poll_joystick(bool *joyin, UINT8 *buttons)
/* get the vertical position of the lightgun */
dclg_vpos = analog->input(joystick, 1);
- if (machine().primary_screen->vpos() == dclg_vpos)
+ if (machine().first_screen()->vpos() == dclg_vpos)
{
/* if gun is pointing at the current scan line, set hit bit and cache horizontal timer value */
m_dclg_output_h |= 0x02;
@@ -820,7 +820,7 @@ void coco_state::poll_joystick(bool *joyin, UINT8 *buttons)
if (m_dclg_state == 7)
{
/* while in state 7, prepare to check next video frame for a hit */
- attotime dclg_time = machine().primary_screen->time_until_pos(dclg_vpos, 0);
+ attotime dclg_time = machine().first_screen()->time_until_pos(dclg_vpos, 0);
m_diecom_lightgun_timer->adjust(dclg_time);
}
break;
diff --git a/src/mess/machine/gamecom.c b/src/mess/machine/gamecom.c
index b3edcfabeb8..dfb4daa00f3 100644
--- a/src/mess/machine/gamecom.c
+++ b/src/mess/machine/gamecom.c
@@ -234,7 +234,7 @@ void gamecom_state::recompute_lcd_params()
hblank_period = (H_timing + 200);
refresh = HZ_TO_ATTOSECONDS(pixel_clock) * (hblank_period) * vblank_period;
- machine().primary_screen->configure((hblank_period), (vblank_period), visarea, refresh );
+ machine().first_screen()->configure((hblank_period), (vblank_period), visarea, refresh );
}
WRITE8_MEMBER( gamecom_state::gamecom_internal_w )
diff --git a/src/mess/machine/hp48.c b/src/mess/machine/hp48.c
index 108326117ba..e8fe2445e51 100644
--- a/src/mess/machine/hp48.c
+++ b/src/mess/machine/hp48.c
@@ -499,7 +499,7 @@ READ8_MEMBER(hp48_state::hp48_io_r)
case 0x29:
{
int last_line = HP48_IO_8(0x28) & 0x3f; /* last line of main bitmap before menu */
- int cur_line = space.machine().primary_screen->vpos();
+ int cur_line = space.machine().first_screen()->vpos();
if ( last_line <= 1 ) last_line = 0x3f;
data = ( cur_line >= 0 && cur_line <= last_line ) ? last_line - cur_line : 0;
if ( offset == 0x29 )
diff --git a/src/mess/machine/lisa.c b/src/mess/machine/lisa.c
index 92189c57185..949c842e559 100644
--- a/src/mess/machine/lisa.c
+++ b/src/mess/machine/lisa.c
@@ -1407,7 +1407,7 @@ READ16_MEMBER(lisa_state::lisa_r)
/* problem : due to collisions with video, timings of the LISA CPU
are slightly different from timings of a bare 68k */
/* so we use a kludge... */
- int time_in_frame = machine().primary_screen->vpos();
+ int time_in_frame = machine().first_screen()->vpos();
/* the BOOT ROM only reads 56 bits, so there must be some wrap-around for
videoROM_address <= 56 */
@@ -1814,7 +1814,7 @@ READ16_MEMBER(lisa_state::lisa_IO_r)
if (m_VTIR<=1)
// GFE : needs to be in phase with Serial NUM
{
- int time_in_frame = machine().primary_screen->vpos();
+ int time_in_frame = machine().first_screen()->vpos();
if (m_features.has_mac_xl_video)
{
if ((time_in_frame >= 374) && (time_in_frame <= 392)) /* these values have not been tested */
diff --git a/src/mess/machine/lynx.c b/src/mess/machine/lynx.c
index 030bce8a79f..79ca0ce3d6c 100644
--- a/src/mess/machine/lynx.c
+++ b/src/mess/machine/lynx.c
@@ -1417,7 +1417,7 @@ void lynx_state::lynx_timer_signal_irq(int which)
lynx_timer_count_down(2);
break;
case 2:
- copybitmap(m_bitmap, m_bitmap_temp, 0, 0, 0, 0, machine().primary_screen->cliprect());
+ copybitmap(m_bitmap, m_bitmap_temp, 0, 0, 0, 0, machine().first_screen()->cliprect());
lynx_timer_count_down(4);
break;
case 1:
diff --git a/src/mess/machine/mac.c b/src/mess/machine/mac.c
index c3690f9c0aa..f1df6dee825 100644
--- a/src/mess/machine/mac.c
+++ b/src/mess/machine/mac.c
@@ -1251,9 +1251,9 @@ READ8_MEMBER(mac_state::mac_via_in_b)
{
int val = 0;
/* video beam in display (! VBLANK && ! HBLANK basically) */
- if (machine().primary_screen)
+ if (machine().first_screen())
{
- if (machine().primary_screen->vpos() >= MAC_V_VIS)
+ if (machine().first_screen()->vpos() >= MAC_V_VIS)
val |= 0x40;
}
@@ -1298,9 +1298,9 @@ READ8_MEMBER(mac_state::mac_via_in_b_via2pmu)
int val = 0;
// TODO: is this valid for VIA2 PMU machines?
/* video beam in display (! VBLANK && ! HBLANK basically) */
- if (machine().primary_screen)
+ if (machine().first_screen())
{
- if (machine().primary_screen->vpos() >= MAC_V_VIS)
+ if (machine().first_screen()->vpos() >= MAC_V_VIS)
val |= 0x40;
}
@@ -1742,10 +1742,10 @@ void mac_state::machine_start()
}
}
- if (machine().primary_screen)
+ if (machine().first_screen())
{
this->m_scanline_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(mac_state::mac_scanline_tick),this));
- this->m_scanline_timer->adjust(machine().primary_screen->time_until_pos(0, 0));
+ this->m_scanline_timer->adjust(machine().first_screen()->time_until_pos(0, 0));
}
m_6015_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(mac_state::mac_6015_tick),this));
@@ -2218,7 +2218,7 @@ TIMER_CALLBACK_MEMBER(mac_state::mac_scanline_tick)
}
}
- scanline = machine().primary_screen->vpos();
+ scanline = machine().first_screen()->vpos();
if (scanline == MAC_V_VIS)
vblank_irq();
@@ -2229,7 +2229,7 @@ TIMER_CALLBACK_MEMBER(mac_state::mac_scanline_tick)
mouse_callback();
}
- m_scanline_timer->adjust(machine().primary_screen->time_until_pos((scanline+1) % MAC_V_TOTAL, 0));
+ m_scanline_timer->adjust(machine().first_screen()->time_until_pos((scanline+1) % MAC_V_TOTAL, 0));
}
WRITE_LINE_MEMBER(mac_state::nubus_irq_9_w)
diff --git a/src/mess/machine/mz700.c b/src/mess/machine/mz700.c
index be894cba8de..9c990a443de 100644
--- a/src/mess/machine/mz700.c
+++ b/src/mess/machine/mz700.c
@@ -92,7 +92,7 @@ READ8_MEMBER(mz_state::mz700_e008_r)
data |= m_other_timer;
data |= ioport("JOY")->read();
- data |= machine().primary_screen->hblank() << 7;
+ data |= machine().first_screen()->hblank() << 7;
LOG(1, "mz700_e008_r", ("%02X\n", data), machine());
@@ -431,7 +431,7 @@ READ8_MEMBER(mz_state::pio_port_c_r)
data |= 0x20; /* set the RDATA status */
data |= m_cursor_timer << 6;
- data |= machine().primary_screen->vblank() << 7;
+ data |= machine().first_screen()->vblank() << 7;
LOG(2,"mz700_pio_port_c_r",("%02X\n", data),machine());
@@ -524,7 +524,7 @@ READ8_MEMBER(mz_state::mz800_z80pio_port_a_r)
result |= m_centronics_busy;
result |= m_centronics_perror << 1;
- result |= machine().primary_screen->hblank() << 5;
+ result |= machine().first_screen()->hblank() << 5;
return result;
}
diff --git a/src/mess/machine/orion.c b/src/mess/machine/orion.c
index 837ced06760..7f4f0c13c80 100644
--- a/src/mess/machine/orion.c
+++ b/src/mess/machine/orion.c
@@ -75,7 +75,7 @@ WRITE8_MEMBER(orion_state::orion128_romdisk_w)
void orion_state::orion_set_video_mode(int width)
{
rectangle visarea(0, width-1, 0, 255);
- machine().primary_screen->configure(width, 256, visarea, machine().primary_screen->frame_period().attoseconds);
+ machine().first_screen()->configure(width, 256, visarea, machine().first_screen()->frame_period().attoseconds);
}
WRITE8_MEMBER(orion_state::orion128_video_mode_w)
diff --git a/src/mess/machine/osborne1.c b/src/mess/machine/osborne1.c
index c58c6325592..6f22f9b7498 100644
--- a/src/mess/machine/osborne1.c
+++ b/src/mess/machine/osborne1.c
@@ -325,7 +325,7 @@ void osborne1_state::device_timer(emu_timer &timer, device_timer_id id, int para
TIMER_CALLBACK_MEMBER(osborne1_state::osborne1_video_callback)
{
- int y = machine().primary_screen->vpos();
+ int y = machine().first_screen()->vpos();
UINT8 ra=0,chr,gfx,dim;
UINT16 x,ma;
@@ -378,7 +378,7 @@ TIMER_CALLBACK_MEMBER(osborne1_state::osborne1_video_callback)
m_beep->set_state( 0 );
}
- m_video_timer->adjust(machine().primary_screen->time_until_pos(y + 1, 0 ));
+ m_video_timer->adjust(machine().first_screen()->time_until_pos(y + 1, 0 ));
}
TIMER_CALLBACK_MEMBER(osborne1_state::setup_osborne1)
@@ -443,7 +443,7 @@ DRIVER_INIT_MEMBER(osborne1_state,osborne1)
/* Configure the 6850 ACIA */
// acia6850_config( 0, &osborne1_6850_config );
m_video_timer = timer_alloc(TIMER_VIDEO);
- m_video_timer->adjust(machine().primary_screen->time_until_pos(1, 0 ));
+ m_video_timer->adjust(machine().first_screen()->time_until_pos(1, 0 ));
timer_set(attotime::zero, TIMER_SETUP);
}
@@ -451,7 +451,7 @@ DRIVER_INIT_MEMBER(osborne1_state,osborne1)
void osborne1_state::video_start()
{
- machine().primary_screen->register_screen_bitmap(m_bitmap);
+ machine().first_screen()->register_screen_bitmap(m_bitmap);
}
UINT32 osborne1_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
diff --git a/src/mess/machine/primo.c b/src/mess/machine/primo.c
index 807720ec1ff..759ad9192c3 100644
--- a/src/mess/machine/primo.c
+++ b/src/mess/machine/primo.c
@@ -82,7 +82,7 @@ READ8_MEMBER(primo_state::primo_be_1_r)
// bit 7, 6 - not used
// bit 5 - VBLANK
- data |= (machine().primary_screen->vblank()) ? 0x20 : 0x00;
+ data |= (machine().first_screen()->vblank()) ? 0x20 : 0x00;
// bit 4 - I4 (external bus)
diff --git a/src/mess/machine/s3c44b0.c b/src/mess/machine/s3c44b0.c
index fe5767fcff3..73744094c4d 100644
--- a/src/mess/machine/s3c44b0.c
+++ b/src/mess/machine/s3c44b0.c
@@ -567,7 +567,7 @@ READ32_MEMBER( s3c44b0_device::lcd_r )
void s3c44b0_device::lcd_configure()
{
- screen_device *screen = machine().primary_screen;
+ screen_device *screen = machine().first_screen();
int dismode, clkval, lineval, wdly, hozval, lineblank, wlh, mclk;
double vclk, framerate;
int width, height;
@@ -620,7 +620,7 @@ void s3c44b0_device::lcd_configure()
void s3c44b0_device::lcd_start()
{
- screen_device *screen = machine().primary_screen;
+ screen_device *screen = machine().first_screen();
verboselog(machine(), 1, "LCD start\n");
lcd_configure();
lcd_dma_init();
diff --git a/src/mess/machine/samcoupe.c b/src/mess/machine/samcoupe.c
index e4598f8543f..59439d093b2 100644
--- a/src/mess/machine/samcoupe.c
+++ b/src/mess/machine/samcoupe.c
@@ -301,7 +301,7 @@ void samcoupe_state::machine_start()
/* schedule our video updates */
m_video_update_timer = timer_alloc(TIMER_VIDEO_UPDATE);
- m_video_update_timer->adjust(machine().primary_screen->time_until_pos(0, 0));
+ m_video_update_timer->adjust(machine().first_screen()->time_until_pos(0, 0));
}
/***************************************************************************
diff --git a/src/mess/machine/vector06.c b/src/mess/machine/vector06.c
index 28b34f7a44d..9195bcce66f 100644
--- a/src/mess/machine/vector06.c
+++ b/src/mess/machine/vector06.c
@@ -42,7 +42,7 @@ WRITE8_MEMBER( vector06_state::vector06_8255_porta_w )
void vector06_state::vector06_set_video_mode(int width)
{
rectangle visarea(0, width+64-1, 0, 256+64-1);
- machine().primary_screen->configure(width+64, 256+64, visarea, machine().primary_screen->frame_period().attoseconds);
+ machine().first_screen()->configure(width+64, 256+64, visarea, machine().first_screen()->frame_period().attoseconds);
}
WRITE8_MEMBER( vector06_state::vector06_8255_portb_w )
diff --git a/src/mess/machine/zx.c b/src/mess/machine/zx.c
index f9bfba3c749..37b69eb0a77 100644
--- a/src/mess/machine/zx.c
+++ b/src/mess/machine/zx.c
@@ -13,9 +13,9 @@
#define DEBUG_ZX81_PORTS 1
#define DEBUG_ZX81_VSYNC 1
-#define LOG_ZX81_IOR(_comment) do { if (DEBUG_ZX81_PORTS) logerror("ZX81 IOR: %04x, Data: %02x, Scanline: %d (%s)\n", offset, data, space.machine().primary_screen->vpos(), _comment); } while (0)
-#define LOG_ZX81_IOW(_comment) do { if (DEBUG_ZX81_PORTS) logerror("ZX81 IOW: %04x, Data: %02x, Scanline: %d (%s)\n", offset, data, space.machine().primary_screen->vpos(), _comment); } while (0)
-#define LOG_ZX81_VSYNC do { if (DEBUG_ZX81_VSYNC) logerror("VSYNC starts in scanline: %d\n", space.machine().primary_screen->vpos()); } while (0)
+#define LOG_ZX81_IOR(_comment) do { if (DEBUG_ZX81_PORTS) logerror("ZX81 IOR: %04x, Data: %02x, Scanline: %d (%s)\n", offset, data, space.machine().first_screen()->vpos(), _comment); } while (0)
+#define LOG_ZX81_IOW(_comment) do { if (DEBUG_ZX81_PORTS) logerror("ZX81 IOW: %04x, Data: %02x, Scanline: %d (%s)\n", offset, data, space.machine().first_screen()->vpos(), _comment); } while (0)
+#define LOG_ZX81_VSYNC do { if (DEBUG_ZX81_VSYNC) logerror("VSYNC starts in scanline: %d\n", space.machine().first_screen()->vpos()); } while (0)
WRITE8_MEMBER(zx_state::zx_ram_w)
diff --git a/src/mess/video/a7800.c b/src/mess/video/a7800.c
index b2d1fc5ae9b..a74caacd01c 100644
--- a/src/mess/video/a7800.c
+++ b/src/mess/video/a7800.c
@@ -68,7 +68,7 @@ void a7800_state::video_start()
m_maria_kangaroo = 0;
m_maria_rm = 0;
- machine().primary_screen->register_screen_bitmap(m_bitmap);
+ machine().first_screen()->register_screen_bitmap(m_bitmap);
}
/***************************************************************************
diff --git a/src/mess/video/atarist.c b/src/mess/video/atarist.c
index e6339d26a0f..2c80d6beb9a 100644
--- a/src/mess/video/atarist.c
+++ b/src/mess/video/atarist.c
@@ -134,8 +134,8 @@ inline pen_t st_state::shift_mode_2()
void st_state::shifter_tick()
{
- int y = machine().primary_screen->vpos();
- int x = machine().primary_screen->hpos();
+ int y = machine().first_screen()->vpos();
+ int x = machine().first_screen()->hpos();
pen_t pen;
@@ -193,8 +193,8 @@ inline void st_state::shifter_load()
void st_state::glue_tick()
{
- int y = machine().primary_screen->vpos();
- int x = machine().primary_screen->hpos();
+ int y = machine().first_screen()->vpos();
+ int x = machine().first_screen()->hpos();
int v = (y >= m_shifter_y_start) && (y < m_shifter_y_end);
int h = (x >= m_shifter_x_start) && (x < m_shifter_x_end);
@@ -1069,10 +1069,10 @@ void st_state::video_start()
m_shifter_timer = timer_alloc(TIMER_SHIFTER_TICK);
m_glue_timer = timer_alloc(TIMER_GLUE_TICK);
-// m_shifter_timer->adjust(machine().primary_screen->time_until_pos(0), 0, attotime::from_hz(Y2/4)); // 125 ns
- m_glue_timer->adjust(machine().primary_screen->time_until_pos(0), 0, attotime::from_hz(Y2/16)); // 500 ns
+// m_shifter_timer->adjust(machine().first_screen()->time_until_pos(0), 0, attotime::from_hz(Y2/4)); // 125 ns
+ m_glue_timer->adjust(machine().first_screen()->time_until_pos(0), 0, attotime::from_hz(Y2/16)); // 500 ns
- machine().primary_screen->register_screen_bitmap(m_bitmap);
+ machine().first_screen()->register_screen_bitmap(m_bitmap);
/* register for state saving */
save_item(NAME(m_shifter_base));
diff --git a/src/mess/video/bbc.c b/src/mess/video/bbc.c
index 3b3d10bb25a..c3df043c574 100644
--- a/src/mess/video/bbc.c
+++ b/src/mess/video/bbc.c
@@ -108,13 +108,13 @@ void bbc_state::set_pixel_lookup()
WRITE8_MEMBER(bbc_state::bbc_videoULA_w)
{
// Make sure vpos is never <0 2008-10-11 PHS.
- int vpos=machine().primary_screen->vpos();
+ int vpos=machine().first_screen()->vpos();
if(vpos==0)
- machine().primary_screen->update_partial(vpos);
+ machine().first_screen()->update_partial(vpos);
else
- machine().primary_screen->update_partial(vpos -1 );
+ machine().first_screen()->update_partial(vpos -1 );
- logerror("setting videoULA %.4x to:%.4x at :%d \n",data,offset,machine().primary_screen->vpos() );
+ logerror("setting videoULA %.4x to:%.4x at :%d \n",data,offset,machine().first_screen()->vpos() );
switch (offset&0x01)
diff --git a/src/mess/video/electron.c b/src/mess/video/electron.c
index 9d23b120274..9e26bfc5fa7 100644
--- a/src/mess/video/electron.c
+++ b/src/mess/video/electron.c
@@ -46,7 +46,7 @@ void electron_state::video_start()
m_map16[i] = ( ( i & 0x40 ) >> 3 ) | ( ( i & 0x10 ) >> 2 ) | ( ( i & 0x04 ) >> 1 ) | ( i & 0x01 );
}
m_scanline_timer = timer_alloc(TIMER_SCANLINE_INTERRUPT);
- m_scanline_timer->adjust( machine().primary_screen->time_until_pos(0), 0, machine().primary_screen->scan_period() );
+ m_scanline_timer->adjust( machine().first_screen()->time_until_pos(0), 0, machine().first_screen()->scan_period() );
}
inline UINT8 electron_state::read_vram( UINT16 addr )
@@ -256,7 +256,7 @@ UINT32 electron_state::screen_update_electron(screen_device &screen, bitmap_ind1
TIMER_CALLBACK_MEMBER(electron_state::electron_scanline_interrupt)
{
- switch (machine().primary_screen->vpos())
+ switch (machine().first_screen()->vpos())
{
case 43:
electron_interrupt_handler( INT_SET, INT_RTC );
diff --git a/src/mess/video/fm7.c b/src/mess/video/fm7.c
index 0eaa5045d50..154541fc4be 100644
--- a/src/mess/video/fm7.c
+++ b/src/mess/video/fm7.c
@@ -1063,7 +1063,7 @@ READ8_MEMBER(fm7_state::fm77av_video_flags_r)
{
UINT8 ret = 0xff;
- if(machine().primary_screen->vblank())
+ if(machine().first_screen()->vblank())
ret &= ~0x80;
if(m_alu.busy != 0)
@@ -1104,7 +1104,7 @@ READ8_MEMBER(fm7_state::fm77av_sub_modestatus_r)
ret |= 0xbc;
ret |= (m_video.modestatus & 0x40);
- if(!machine().primary_screen->vblank())
+ if(!machine().first_screen()->vblank())
ret |= 0x02;
if(m_video.vsync_flag != 0)
@@ -1119,12 +1119,12 @@ WRITE8_MEMBER(fm7_state::fm77av_sub_modestatus_w)
if(data & 0x40)
{
rectangle rect(0, 320-1, 0, 200-1);
- machine().primary_screen->configure(320,200,rect,HZ_TO_ATTOSECONDS(60));
+ machine().first_screen()->configure(320,200,rect,HZ_TO_ATTOSECONDS(60));
}
else
{
rectangle rect(0, 640-1, 0, 200-1);
- machine().primary_screen->configure(640,200,rect,HZ_TO_ATTOSECONDS(60));
+ machine().first_screen()->configure(640,200,rect,HZ_TO_ATTOSECONDS(60));
}
}
@@ -1355,7 +1355,7 @@ TIMER_CALLBACK_MEMBER(fm7_state::fm77av_vsync)
else
{
m_video.vsync_flag = 0;
- m_fm77av_vsync_timer->adjust(machine().primary_screen->time_until_vblank_end());
+ m_fm77av_vsync_timer->adjust(machine().first_screen()->time_until_vblank_end());
}
}
diff --git a/src/mess/video/fmtowns.c b/src/mess/video/fmtowns.c
index 500fe1802e9..a807773489b 100644
--- a/src/mess/video/fmtowns.c
+++ b/src/mess/video/fmtowns.c
@@ -122,7 +122,7 @@ void towns_state::towns_crtc_refresh_mode()
if(scr.max_x <= scr.min_x || scr.max_y <= scr.min_y)
return;
- machine().primary_screen->configure(scr.max_x+1,scr.max_y+1,scr,HZ_TO_ATTOSECONDS(60));
+ machine().first_screen()->configure(scr.max_x+1,scr.max_y+1,scr,HZ_TO_ATTOSECONDS(60));
}
READ8_MEMBER( towns_state::towns_gfx_high_r )
@@ -365,8 +365,8 @@ READ8_MEMBER(towns_state::towns_video_440_r)
if(m_video.towns_crtc_sel == 30)
{
// check video position
- xpos = space.machine().primary_screen->hpos();
- ypos = space.machine().primary_screen->vpos();
+ xpos = space.machine().first_screen()->hpos();
+ ypos = space.machine().first_screen()->vpos();
if(xpos < (m_video.towns_crtc_reg[0] & 0xfe))
ret |= 0x02;
@@ -521,7 +521,7 @@ READ8_MEMBER(towns_state::towns_video_fd90_r)
return m_video.towns_degipal[offset-0x08];
case 0x10: // "sub status register"
// check video position
- xpos = space.machine().primary_screen->hpos();
+ xpos = space.machine().first_screen()->hpos();
if(xpos < m_video.towns_crtc_layerscr[0].max_x && xpos > m_video.towns_crtc_layerscr[0].min_x)
ret |= 0x02;
@@ -1655,7 +1655,7 @@ INTERRUPT_GEN_MEMBER(towns_state::towns_vsync_irq)
dev->ir3_w(1); // IRQ11 = VSync
if(IRQ_LOG) logerror("PIC: IRQ11 (VSync) set high\n");
m_video.towns_vblank_flag = 1;
- machine().scheduler().timer_set(machine().primary_screen->time_until_vblank_end(), timer_expired_delegate(FUNC(towns_state::towns_vblank_end),this), 0, (void*)dev);
+ machine().scheduler().timer_set(machine().first_screen()->time_until_vblank_end(), timer_expired_delegate(FUNC(towns_state::towns_vblank_end),this), 0, (void*)dev);
if(m_video.towns_tvram_enable)
draw_text_layer();
if(m_video.towns_sprite_reg[1] & 0x80)
diff --git a/src/mess/video/galaxy.c b/src/mess/video/galaxy.c
index e16baab5fd1..35dfec58d01 100644
--- a/src/mess/video/galaxy.c
+++ b/src/mess/video/galaxy.c
@@ -115,7 +115,7 @@ void galaxy_state::video_start()
m_gal_video_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(galaxy_state::gal_video),this));
m_gal_video_timer->adjust(attotime::zero, 0, attotime::never);
- machine().primary_screen->register_screen_bitmap(m_bitmap);
+ machine().first_screen()->register_screen_bitmap(m_bitmap);
}
UINT32 galaxy_state::screen_update_galaxy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
diff --git a/src/mess/video/gamecom.c b/src/mess/video/gamecom.c
index 1d605e8055c..61b1ac22e3d 100644
--- a/src/mess/video/gamecom.c
+++ b/src/mess/video/gamecom.c
@@ -65,6 +65,6 @@ TIMER_CALLBACK_MEMBER(gamecom_state::gamecom_scanline)
void gamecom_state::video_start()
{
m_scanline_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(gamecom_state::gamecom_scanline),this));
- m_scanline_timer->adjust( machine().primary_screen->time_until_pos(0 ), 0, machine().primary_screen->scan_period() );
- machine().primary_screen->register_screen_bitmap(m_bitmap);
+ m_scanline_timer->adjust( machine().first_screen()->time_until_pos(0 ), 0, machine().first_screen()->scan_period() );
+ machine().first_screen()->register_screen_bitmap(m_bitmap);
}
diff --git a/src/mess/video/gba.c b/src/mess/video/gba.c
index 3c79b773fc5..df584dfea13 100644
--- a/src/mess/video/gba.c
+++ b/src/mess/video/gba.c
@@ -1890,7 +1890,7 @@ void gba_state::draw_scanline(int y)
void gba_state::video_start()
{
- machine().primary_screen->register_screen_bitmap(m_bitmap);
+ machine().first_screen()->register_screen_bitmap(m_bitmap);
}
UINT32 gba_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
diff --git a/src/mess/video/kaypro.c b/src/mess/video/kaypro.c
index 2078829a693..6e97b80853f 100644
--- a/src/mess/video/kaypro.c
+++ b/src/mess/video/kaypro.c
@@ -250,7 +250,7 @@ void kaypro_state::mc6845_screen_configure()
/* Resize the screen */
if ((width < 640) && (height < 400) && (bytes < 0x800)) /* bounds checking to prevent an assert or violation */
- machine().primary_screen->set_visible_area(0, width, 0, height);
+ machine().first_screen()->set_visible_area(0, width, 0, height);
}
diff --git a/src/mess/video/kc.c b/src/mess/video/kc.c
index d847e648873..dc87b4599e4 100644
--- a/src/mess/video/kc.c
+++ b/src/mess/video/kc.c
@@ -58,7 +58,7 @@ WRITE_LINE_MEMBER( kc_state::video_toggle_blink_state )
{
if (state)
{
- machine().primary_screen->update_partial(machine().primary_screen->vpos());
+ machine().first_screen()->update_partial(machine().first_screen()->vpos());
m_kc85_blink_state = !m_kc85_blink_state;
}
diff --git a/src/mess/video/mac.c b/src/mess/video/mac.c
index 3ac1e80e00f..abeda9cd450 100644
--- a/src/mess/video/mac.c
+++ b/src/mess/video/mac.c
@@ -280,7 +280,7 @@ VIDEO_RESET_MEMBER(mac_state,macrbv)
}
// printf("RBV reset: monitor is %dx%d @ %f Hz\n", visarea.max_x+1, visarea.max_y+1, framerate);
- machine().primary_screen->configure(htotal, vtotal, visarea, HZ_TO_ATTOSECONDS(framerate));
+ machine().first_screen()->configure(htotal, vtotal, visarea, HZ_TO_ATTOSECONDS(framerate));
render_target *target = machine().render().first_target();
target->set_view(view);
}
@@ -337,7 +337,7 @@ VIDEO_RESET_MEMBER(mac_state,macsonora)
}
// printf("Sonora reset: monitor is %dx%d @ %f Hz\n", visarea.max_x+1, visarea.max_y+1, framerate);
- machine().primary_screen->configure(htotal, vtotal, visarea, HZ_TO_ATTOSECONDS(framerate));
+ machine().first_screen()->configure(htotal, vtotal, visarea, HZ_TO_ATTOSECONDS(framerate));
render_target *target = machine().render().first_target();
target->set_view(view);
}
diff --git a/src/mess/video/pc1512.c b/src/mess/video/pc1512.c
index 40fd02b6f81..fd015f03d21 100644
--- a/src/mess/video/pc1512.c
+++ b/src/mess/video/pc1512.c
@@ -169,8 +169,8 @@ READ8_MEMBER( pc1512_state::vdu_r )
// vertical sync
int flyback = 0;
- if (machine().primary_screen->vpos() < VFP_LORES - 16) flyback = 1;
- if (machine().primary_screen->vpos() > VFP_LORES + 200) flyback = 1;
+ if (machine().first_screen()->vpos() < VFP_LORES - 16) flyback = 1;
+ if (machine().first_screen()->vpos() > VFP_LORES + 200) flyback = 1;
data |= flyback << 3;
break;
diff --git a/src/mess/video/poisk1.c b/src/mess/video/poisk1.c
index db32d66103a..6f367c6eb2a 100644
--- a/src/mess/video/poisk1.c
+++ b/src/mess/video/poisk1.c
@@ -116,9 +116,9 @@ WRITE8_MEMBER(p1_state::p1_ppi2_porta_w)
// HIRES -- XXX
if (BIT(data, 7) != BIT(m_video.color_select_68, 7)) {
if (BIT(data, 7))
- machine().primary_screen->set_visible_area(0, 640-1, 0, 200-1);
+ machine().first_screen()->set_visible_area(0, 640-1, 0, 200-1);
else
- machine().primary_screen->set_visible_area(0, 320-1, 0, 200-1);
+ machine().first_screen()->set_visible_area(0, 320-1, 0, 200-1);
}
m_video.color_select_68 = data;
set_palette_luts();
diff --git a/src/mess/video/samcoupe.c b/src/mess/video/samcoupe.c
index 2376a676880..95961b4f7b9 100644
--- a/src/mess/video/samcoupe.c
+++ b/src/mess/video/samcoupe.c
@@ -29,7 +29,7 @@
void samcoupe_state::video_start()
{
- machine().primary_screen->register_screen_bitmap(m_bitmap);
+ machine().first_screen()->register_screen_bitmap(m_bitmap);
}
UINT32 samcoupe_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
@@ -124,8 +124,8 @@ void samcoupe_state::draw_mode1_line(int y, int hpos)
TIMER_CALLBACK_MEMBER(samcoupe_state::sam_video_update_callback)
{
- int vpos = machine().primary_screen->vpos();
- int hpos = machine().primary_screen->hpos();
+ int vpos = machine().first_screen()->vpos();
+ int hpos = machine().first_screen()->hpos();
int next_vpos = vpos;
int next_hpos = hpos + SAM_BLOCK*2;
@@ -168,5 +168,5 @@ TIMER_CALLBACK_MEMBER(samcoupe_state::sam_video_update_callback)
samcoupe_irq(SAM_LINE_INT);
/* schedule next update */
- m_video_update_timer->adjust(machine().primary_screen->time_until_pos(next_vpos, next_hpos));
+ m_video_update_timer->adjust(machine().first_screen()->time_until_pos(next_vpos, next_hpos));
}
diff --git a/src/mess/video/spectrum.c b/src/mess/video/spectrum.c
index ab0fc789755..886974452c1 100644
--- a/src/mess/video/spectrum.c
+++ b/src/mess/video/spectrum.c
@@ -26,7 +26,7 @@ VIDEO_START_MEMBER(spectrum_state,spectrum)
m_flash_invert = 0;
m_previous_border_x = 0; m_previous_border_y = 0;
- machine().primary_screen->register_screen_bitmap(m_border_bitmap);
+ machine().first_screen()->register_screen_bitmap(m_border_bitmap);
m_screen_location = m_video_ram;
}
@@ -38,7 +38,7 @@ VIDEO_START_MEMBER(spectrum_state,spectrum_128)
m_flash_invert = 0;
m_previous_border_x = 0; m_previous_border_y = 0;
- machine().primary_screen->register_screen_bitmap(m_border_bitmap);
+ machine().first_screen()->register_screen_bitmap(m_border_bitmap);
}
@@ -183,8 +183,8 @@ PALETTE_INIT_MEMBER(spectrum_state,spectrum)
void spectrum_state::spectrum_UpdateBorderBitmap()
{
- unsigned int x = machine().primary_screen->hpos();
- unsigned int y = machine().primary_screen->vpos();
+ unsigned int x = machine().first_screen()->hpos();
+ unsigned int y = machine().first_screen()->vpos();
int width = m_border_bitmap.width();
int height = m_border_bitmap.height();
diff --git a/src/mess/video/stic.c b/src/mess/video/stic.c
index d908eac5fd4..5cf9488d2af 100644
--- a/src/mess/video/stic.c
+++ b/src/mess/video/stic.c
@@ -41,7 +41,7 @@ stic_device::~stic_device()
void stic_device::device_start()
{
- machine().primary_screen->register_screen_bitmap(m_bitmap);
+ machine().first_screen()->register_screen_bitmap(m_bitmap);
save_item(NAME(m_stic_registers));
save_item(NAME(m_gramdirty));
diff --git a/src/mess/video/wswan.c b/src/mess/video/wswan.c
index 0625b964bf3..da649d76779 100644
--- a/src/mess/video/wswan.c
+++ b/src/mess/video/wswan.c
@@ -572,7 +572,7 @@ void wswan_state::wswan_refresh_scanline()
void wswan_state::video_start()
{
- machine().primary_screen->register_screen_bitmap(m_bitmap);
+ machine().first_screen()->register_screen_bitmap(m_bitmap);
save_item(NAME(m_bitmap));
}
diff --git a/src/mess/video/x68k.c b/src/mess/video/x68k.c
index 2ccd1243f84..8ff6ae7240f 100644
--- a/src/mess/video/x68k.c
+++ b/src/mess/video/x68k.c
@@ -166,8 +166,8 @@ void x68k_state::x68k_crtc_refresh_mode()
// logerror("CRTC regs - %i %i %i %i - %i %i %i %i - %i - %i\n",m_crtc.reg[0],m_crtc.reg[1],m_crtc.reg[2],m_crtc.reg[3],
// m_crtc.reg[4],m_crtc.reg[5],m_crtc.reg[6],m_crtc.reg[7],m_crtc.reg[8],m_crtc.reg[9]);
- logerror("video_screen_configure(machine.primary_screen,%i,%i,[%i,%i,%i,%i],55.45)\n",scr.max_x,scr.max_y,visiblescr.min_x,visiblescr.min_y,visiblescr.max_x,visiblescr.max_y);
- machine().primary_screen->configure(scr.max_x,scr.max_y,visiblescr,HZ_TO_ATTOSECONDS(55.45));
+ logerror("video_screen_configure(machine.first_screen(),%i,%i,[%i,%i,%i,%i],55.45)\n",scr.max_x,scr.max_y,visiblescr.min_x,visiblescr.min_y,visiblescr.max_x,visiblescr.max_y);
+ machine().first_screen()->configure(scr.max_x,scr.max_y,visiblescr,HZ_TO_ATTOSECONDS(55.45));
}
TIMER_CALLBACK_MEMBER(x68k_state::x68k_hsync)
@@ -183,31 +183,31 @@ TIMER_CALLBACK_MEMBER(x68k_state::x68k_hsync)
{
if(m_oddscanline == 1)
{
- int scan = machine().primary_screen->vpos();
+ int scan = machine().first_screen()->vpos();
if(scan > m_crtc.vend)
scan = m_crtc.vbegin;
- hsync_time = machine().primary_screen->time_until_pos(scan,(m_crtc.htotal + m_crtc.hend) / 2);
+ hsync_time = machine().first_screen()->time_until_pos(scan,(m_crtc.htotal + m_crtc.hend) / 2);
m_scanline_timer->adjust(hsync_time);
if(scan != 0)
{
if((ioport("options")->read() & 0x04))
{
- machine().primary_screen->update_partial(scan);
+ machine().first_screen()->update_partial(scan);
}
}
}
else
{
- int scan = machine().primary_screen->vpos();
+ int scan = machine().first_screen()->vpos();
if(scan > m_crtc.vend)
scan = m_crtc.vbegin;
- hsync_time = machine().primary_screen->time_until_pos(scan,m_crtc.hend / 2);
+ hsync_time = machine().first_screen()->time_until_pos(scan,m_crtc.hend / 2);
m_scanline_timer->adjust(hsync_time);
if(scan != 0)
{
if((ioport("options")->read() & 0x04))
{
- machine().primary_screen->update_partial(scan);
+ machine().first_screen()->update_partial(scan);
}
}
}
@@ -216,18 +216,18 @@ TIMER_CALLBACK_MEMBER(x68k_state::x68k_hsync)
{
if(m_oddscanline == 1)
{
- int scan = machine().primary_screen->vpos();
+ int scan = machine().first_screen()->vpos();
if(scan > m_crtc.vend)
scan = m_crtc.vbegin;
else
scan++;
- hsync_time = machine().primary_screen->time_until_pos(scan,m_crtc.hbegin / 2);
+ hsync_time = machine().first_screen()->time_until_pos(scan,m_crtc.hbegin / 2);
m_scanline_timer->adjust(hsync_time, 1);
m_oddscanline = 0;
}
else
{
- hsync_time = machine().primary_screen->time_until_pos(machine().primary_screen->vpos(),(m_crtc.htotal + m_crtc.hbegin) / 2);
+ hsync_time = machine().first_screen()->time_until_pos(machine().first_screen()->vpos(),(m_crtc.htotal + m_crtc.hbegin) / 2);
m_scanline_timer->adjust(hsync_time, 1);
m_oddscanline = 1;
}
@@ -237,22 +237,22 @@ TIMER_CALLBACK_MEMBER(x68k_state::x68k_hsync)
{
if(hstate == 1)
{
- int scan = machine().primary_screen->vpos();
+ int scan = machine().first_screen()->vpos();
if(scan > m_crtc.vend)
scan = 0;
- hsync_time = machine().primary_screen->time_until_pos(scan,m_crtc.hend);
+ hsync_time = machine().first_screen()->time_until_pos(scan,m_crtc.hend);
m_scanline_timer->adjust(hsync_time);
if(scan != 0)
{
if((ioport("options")->read() & 0x04))
{
- machine().primary_screen->update_partial(scan);
+ machine().first_screen()->update_partial(scan);
}
}
}
if(hstate == 0)
{
- hsync_time = machine().primary_screen->time_until_pos(machine().primary_screen->vpos()+1,m_crtc.hbegin);
+ hsync_time = machine().first_screen()->time_until_pos(machine().first_screen()->vpos()+1,m_crtc.hbegin);
m_scanline_timer->adjust(hsync_time, 1);
}
}
@@ -272,13 +272,13 @@ TIMER_CALLBACK_MEMBER(x68k_state::x68k_crtc_raster_irq)
if(scan <= m_crtc.vtotal)
{
m_mfpdev->i6_w(0);
- machine().primary_screen->update_partial(scan);
- irq_time = machine().primary_screen->time_until_pos(scan,m_crtc.hbegin);
+ machine().first_screen()->update_partial(scan);
+ irq_time = machine().first_screen()->time_until_pos(scan,m_crtc.hbegin);
// end of HBlank period clears GPIP6 also?
- end_time = machine().primary_screen->time_until_pos(scan,m_crtc.hend);
+ end_time = machine().first_screen()->time_until_pos(scan,m_crtc.hend);
m_raster_irq->adjust(irq_time, scan);
timer_set(end_time, TIMER_X68K_CRTC_RASTER_END);
- logerror("GPIP6: Raster triggered at line %i (%i)\n",scan,machine().primary_screen->vpos());
+ logerror("GPIP6: Raster triggered at line %i (%i)\n",scan,machine().first_screen()->vpos());
}
}
@@ -292,7 +292,7 @@ TIMER_CALLBACK_MEMBER(x68k_state::x68k_crtc_vblank_irq)
{
m_crtc.vblank = 1;
vblank_line = m_crtc.vbegin;
- irq_time = machine().primary_screen->time_until_pos(vblank_line,2);
+ irq_time = machine().first_screen()->time_until_pos(vblank_line,2);
m_vblank_irq->adjust(irq_time);
logerror("CRTC: VBlank on\n");
}
@@ -302,7 +302,7 @@ TIMER_CALLBACK_MEMBER(x68k_state::x68k_crtc_vblank_irq)
vblank_line = m_crtc.vend;
if(vblank_line > m_crtc.vtotal)
vblank_line = m_crtc.vtotal;
- irq_time = machine().primary_screen->time_until_pos(vblank_line,2);
+ irq_time = machine().first_screen()->time_until_pos(vblank_line,2);
m_vblank_irq->adjust(irq_time, 1);
logerror("CRTC: VBlank off\n");
}
@@ -379,7 +379,7 @@ WRITE16_MEMBER(x68k_state::x68k_crtc_w )
case 9: // CRTC raster IRQ (GPIP6)
{
attotime irq_time;
- irq_time = machine().primary_screen->time_until_pos((data) / m_crtc.vmultiple,2);
+ irq_time = machine().first_screen()->time_until_pos((data) / m_crtc.vmultiple,2);
if(irq_time.as_double() > 0)
m_raster_irq->adjust(irq_time, (data) / m_crtc.vmultiple);
diff --git a/src/mess/video/zx.c b/src/mess/video/zx.c
index 12161fb615f..edf8e4f3786 100644
--- a/src/mess/video/zx.c
+++ b/src/mess/video/zx.c
@@ -58,8 +58,8 @@ void zx_state::zx_ula_bkgnd(UINT8 color)
rectangle r;
bitmap_ind16 &bitmap = m_bitmap;
- new_y = machine().primary_screen->vpos();
- new_x = machine().primary_screen->hpos();
+ new_y = machine().first_screen()->vpos();
+ new_x = machine().first_screen()->hpos();
/* logerror("zx_ula_bkgnd: %3d,%3d - %3d,%3d\n", state->m_old_x, state->m_old_y, new_x, new_y);*/
y = m_old_y;
for (;;)
@@ -109,7 +109,7 @@ TIMER_CALLBACK_MEMBER(zx_state::zx_ula_nmi)
bitmap_ind16 &bitmap = m_bitmap;
r.set(r1.min_x, r1.max_x, m_ula_scanline_count, m_ula_scanline_count);
bitmap.fill(1, r);
-// logerror("ULA %3d[%d] NMI, R:$%02X, $%04x\n", machine().primary_screen->vpos(), ula_scancode_count, (unsigned) m_maincpu->state_int(Z80_R), (unsigned) m_maincpu->state_int(Z80_PC));
+// logerror("ULA %3d[%d] NMI, R:$%02X, $%04x\n", machine().first_screen()->vpos(), ula_scancode_count, (unsigned) m_maincpu->state_int(Z80_R), (unsigned) m_maincpu->state_int(Z80_PC));
m_maincpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
if (++m_ula_scanline_count == height)
m_ula_scanline_count = 0;
@@ -124,7 +124,7 @@ TIMER_CALLBACK_MEMBER(zx_state::zx_ula_irq)
*/
if (m_ula_irq_active)
{
-// logerror("ULA %3d[%d] IRQ, R:$%02X, $%04x\n", machine().primary_screen->vpos(), ula_scancode_count, (unsigned) m_maincpu->state_int(Z80_R), (unsigned) m_maincpu->state_int(Z80_PC));
+// logerror("ULA %3d[%d] IRQ, R:$%02X, $%04x\n", machine().first_screen()->vpos(), ula_scancode_count, (unsigned) m_maincpu->state_int(Z80_R), (unsigned) m_maincpu->state_int(Z80_PC));
m_ula_irq_active = 0;
m_maincpu->set_input_line(0, HOLD_LINE);