summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Nigel Barnes <Pernod70@users.noreply.github.com>2018-03-08 16:31:53 +0000
committer Nigel Barnes <Pernod70@users.noreply.github.com>2018-03-08 16:33:04 +0000
commit8365385013ab4020a4985f9c33e86125a705493a (patch)
treee3e8755fe6654378b0c6f9937f96a9b31332c80c
parentd05c2080aa424c46d0f25e18e2de7b0619ac5585 (diff)
first_screen removal from a5105, apc, osbexec, pasopia7, pc88va, scv (nw)
-rw-r--r--src/mame/drivers/a5105.cpp6
-rw-r--r--src/mame/drivers/apc.cpp8
-rw-r--r--src/mame/drivers/osbexec.cpp10
-rw-r--r--src/mame/drivers/pasopia7.cpp12
-rw-r--r--src/mame/drivers/pc88va.cpp6
-rw-r--r--src/mame/drivers/scv.cpp8
-rw-r--r--src/mame/drivers/x1.cpp2
7 files changed, 32 insertions, 20 deletions
diff --git a/src/mame/drivers/a5105.cpp b/src/mame/drivers/a5105.cpp
index e7f3a8885c8..a3372d1ddd9 100644
--- a/src/mame/drivers/a5105.cpp
+++ b/src/mame/drivers/a5105.cpp
@@ -43,6 +43,7 @@ public:
a5105_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag)
, m_maincpu(*this, "maincpu")
+ , m_screen(*this, "screen")
, m_hgdc(*this, "upd7220")
, m_cass(*this, "cassette")
, m_beep(*this, "beeper")
@@ -86,6 +87,7 @@ private:
virtual void machine_reset() override;
virtual void video_start() override;
required_device<cpu_device> m_maincpu;
+ required_device<screen_device> m_screen;
required_device<upd7220_device> m_hgdc;
required_device<cassette_image_device> m_cass;
required_device<beep_device> m_beep;
@@ -135,7 +137,7 @@ UPD7220_DRAW_TEXT_LINE_MEMBER( a5105_state::hgdc_draw_text )
{
tile_data = m_char_ram[(tile*8+yi) & 0x7ff];
- if(cursor_on && cursor_addr == addr+x && machine().first_screen()->frame_number() & 0x10)
+ if(cursor_on && cursor_addr == addr+x && m_screen->frame_number() & 0x10)
tile_data^=0xff;
for( xi = 0; xi < 8; xi++)
@@ -148,7 +150,7 @@ UPD7220_DRAW_TEXT_LINE_MEMBER( a5105_state::hgdc_draw_text )
if(yi >= 8) { pen = 0; }
- if(!machine().first_screen()->visible_area().contains(res_x+0, res_y))
+ if(!m_screen->visible_area().contains(res_x+0, res_y))
continue;
bitmap.pix32(res_y, res_x) = palette[pen];
diff --git a/src/mame/drivers/apc.cpp b/src/mame/drivers/apc.cpp
index 0b9aac3a046..d640b94a516 100644
--- a/src/mame/drivers/apc.cpp
+++ b/src/mame/drivers/apc.cpp
@@ -75,6 +75,7 @@ public:
apc_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag),
m_maincpu(*this, "maincpu"),
+ m_screen(*this, "screen"),
m_hgdc1(*this, "upd7220_chr"),
m_hgdc2(*this, "upd7220_btm"),
m_rtc(*this, "upd1990a"),
@@ -90,6 +91,7 @@ public:
// devices
required_device<cpu_device> m_maincpu;
+ required_device<screen_device> m_screen;
required_device<upd7220_device> m_hgdc1;
required_device<upd7220_device> m_hgdc2;
required_device<upd1990a_device> m_rtc;
@@ -238,7 +240,7 @@ UPD7220_DRAW_TEXT_LINE_MEMBER( apc_state::hgdc_draw_text )
res_x = (x*8+xi);
res_y = y+yi;
- if(!machine().first_screen()->visible_area().contains(res_x, res_y))
+ if(!m_screen->visible_area().contains(res_x, res_y))
continue;
/*
@@ -271,9 +273,9 @@ UPD7220_DRAW_TEXT_LINE_MEMBER( apc_state::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 && machine().first_screen()->frame_number() & 0x20) { tile_data = 0; } // TODO: rate & correct behaviour
+ if(blink && m_screen->frame_number() & 0x20) { tile_data = 0; } // TODO: rate & correct behaviour
- if(cursor_on && cursor_addr == tile_addr && machine().first_screen()->frame_number() & 0x10)
+ if(cursor_on && cursor_addr == tile_addr && m_screen->frame_number() & 0x10)
tile_data^=0xff;
if(yi >= char_size)
diff --git a/src/mame/drivers/osbexec.cpp b/src/mame/drivers/osbexec.cpp
index f34a69aaf34..35793d2d024 100644
--- a/src/mame/drivers/osbexec.cpp
+++ b/src/mame/drivers/osbexec.cpp
@@ -36,6 +36,7 @@ public:
osbexec_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag),
m_maincpu( *this, "maincpu" ),
+ m_screen( *this, "screen" ),
m_mb8877( *this, "mb8877" ),
m_messram( *this, RAM_TAG ),
m_pia_0( *this, "pia_0" ),
@@ -47,6 +48,7 @@ public:
{ }
required_device<cpu_device> m_maincpu;
+ required_device<screen_device> m_screen;
required_device<mb8877_device> m_mb8877;
required_device<ram_device> m_messram;
required_device<pia6821_device> m_pia_0;
@@ -319,7 +321,7 @@ INPUT_PORTS_END
void osbexec_state::video_start()
{
- machine().first_screen()->register_screen_bitmap(m_bitmap);
+ m_screen->register_screen_bitmap(m_bitmap);
}
uint32_t osbexec_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
@@ -472,7 +474,7 @@ SLOT_INTERFACE_END
TIMER_CALLBACK_MEMBER(osbexec_state::osbexec_video_callback)
{
- int y = machine().first_screen()->vpos();
+ int y = m_screen->vpos();
/* Start of frame */
if ( y == 0 )
@@ -519,7 +521,7 @@ TIMER_CALLBACK_MEMBER(osbexec_state::osbexec_video_callback)
}
}
- m_video_timer->adjust( machine().first_screen()->time_until_pos( y + 1, 0 ) );
+ m_video_timer->adjust( m_screen->time_until_pos( y + 1, 0 ) );
}
@@ -544,7 +546,7 @@ void osbexec_state::machine_reset()
set_banks();
- m_video_timer->adjust( machine().first_screen()->time_until_pos( 0, 0 ) );
+ m_video_timer->adjust( m_screen->time_until_pos( 0, 0 ) );
m_rtc = 0;
diff --git a/src/mame/drivers/pasopia7.cpp b/src/mame/drivers/pasopia7.cpp
index 6f28588201d..986fda7f64f 100644
--- a/src/mame/drivers/pasopia7.cpp
+++ b/src/mame/drivers/pasopia7.cpp
@@ -43,6 +43,7 @@ public:
pasopia7_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag)
, m_maincpu(*this, "maincpu")
+ , m_screen(*this, "screen")
, m_ppi0(*this, "ppi8255_0")
, m_ppi1(*this, "ppi8255_1")
, m_ppi2(*this, "ppi8255_2")
@@ -127,6 +128,7 @@ private:
void draw_mixed_screen(bitmap_ind16 &bitmap,const rectangle &cliprect,int width);
required_device<cpu_device> m_maincpu;
+ required_device<screen_device> m_screen;
required_device<i8255_device> m_ppi0;
required_device<i8255_device> m_ppi1;
required_device<i8255_device> m_ppi2;
@@ -224,8 +226,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().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
+ case 0x40: if(m_screen->frame_number() & 0x10) { cursor_on = 1; } break; //fast blink
+ case 0x60: if(m_screen->frame_number() & 0x20) { cursor_on = 1; } break; //slow blink
}
if(cursor_on)
@@ -302,8 +304,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().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
+ case 0x40: if(m_screen->frame_number() & 0x10) { cursor_on = 1; } break; //fast blink
+ case 0x60: if(m_screen->frame_number() & 0x20) { cursor_on = 1; } break; //slow blink
}
if(cursor_on)
@@ -780,7 +782,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_t vdisp = (machine().first_screen()->vpos() < (m_screen_type ? 200 : 28)) ? 0x08 : 0x00; //TODO: check LCD vpos trigger
+ uint8_t vdisp = (m_screen->vpos() < (m_screen_type ? 200 : 28)) ? 0x08 : 0x00; //TODO: check LCD vpos trigger
uint8_t vsync = vdisp ? 0x00 : 0x20;
return 0x40 | (m_attr_latch & 0x87) | vsync | vdisp | (m_screen_type << 4);
diff --git a/src/mame/drivers/pc88va.cpp b/src/mame/drivers/pc88va.cpp
index 4acb228b8a8..a192520e40e 100644
--- a/src/mame/drivers/pc88va.cpp
+++ b/src/mame/drivers/pc88va.cpp
@@ -78,6 +78,7 @@ public:
pc88va_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag),
m_maincpu(*this, "maincpu"),
+ m_screen(*this, "screen"),
m_fdc(*this, "upd765"),
m_dmac(*this, "dmac"),
m_palram(*this, "palram"),
@@ -85,6 +86,7 @@ public:
m_palette(*this, "palette") { }
required_device<cpu_device> m_maincpu;
+ required_device<screen_device> m_screen;
required_device<upd765a_device> m_fdc;
required_device<am9517a_device> m_dmac;
required_shared_ptr<uint16_t> m_palram;
@@ -814,7 +816,7 @@ void pc88va_state::execute_sync_cmd()
refresh = HZ_TO_ATTOSECONDS(60);
- machine().first_screen()->configure(640, 480, visarea, refresh);
+ m_screen->configure(640, 480, visarea, refresh);
}
void pc88va_state::execute_dspon_cmd()
@@ -967,7 +969,7 @@ WRITE16_MEMBER(pc88va_state::palette_ram_w)
READ16_MEMBER(pc88va_state::sys_port4_r)
{
uint8_t vrtc,sw1;
- vrtc = (machine().first_screen()->vpos() < 200) ? 0x20 : 0x00; // vblank
+ vrtc = (m_screen->vpos() < 200) ? 0x20 : 0x00; // vblank
sw1 = (ioport("DSW")->read() & 1) ? 2 : 0;
diff --git a/src/mame/drivers/scv.cpp b/src/mame/drivers/scv.cpp
index 656c3f4b0d9..8d993f071d9 100644
--- a/src/mame/drivers/scv.cpp
+++ b/src/mame/drivers/scv.cpp
@@ -23,6 +23,7 @@ public:
: driver_device(mconfig, type, tag),
m_videoram(*this,"videoram"),
m_maincpu(*this, "maincpu"),
+ m_screen(*this, "screen"),
m_upd1771c(*this, "upd1771c"),
m_cart(*this, "cartslot"),
m_pa(*this, "PA.%u", 0),
@@ -53,6 +54,7 @@ protected:
};
required_device<cpu_device> m_maincpu;
+ required_device<screen_device> m_screen;
required_device<upd1771c_device> m_upd1771c;
required_device<scv_cart_slot_device> m_cart;
required_ioport_array<8> m_pa;
@@ -264,7 +266,7 @@ void scv_state::device_timer(emu_timer &timer, device_timer_id id, int param, vo
{
case TIMER_VB:
{
- int vpos = machine().first_screen()->vpos();
+ int vpos = m_screen->vpos();
switch( vpos )
{
@@ -276,7 +278,7 @@ void scv_state::device_timer(emu_timer &timer, device_timer_id id, int param, vo
break;
}
- m_vb_timer->adjust(machine().first_screen()->time_until_pos((vpos + 1) % 262, 0));
+ m_vb_timer->adjust(m_screen->time_until_pos((vpos + 1) % 262, 0));
}
break;
@@ -621,7 +623,7 @@ void scv_state::machine_start()
void scv_state::machine_reset()
{
- m_vb_timer->adjust(machine().first_screen()->time_until_pos(0, 0));
+ m_vb_timer->adjust(m_screen->time_until_pos(0, 0));
}
diff --git a/src/mame/drivers/x1.cpp b/src/mame/drivers/x1.cpp
index 33c37b9adad..aecac65c520 100644
--- a/src/mame/drivers/x1.cpp
+++ b/src/mame/drivers/x1.cpp
@@ -840,7 +840,7 @@ uint16_t x1_state::get_pcg_addr( uint16_t width, uint8_t y_char_size )
int vbeam = m_screen->vpos() / y_char_size;
uint16_t pcg_offset = ((hbeam + vbeam*width) + (((m_crtc_vreg[0x0c]<<8) & 0x3f00) | (m_crtc_vreg[0x0d] & 0xff))) & 0x7ff;
- //logerror("%08x %d %d %d %d\n",(hbeam+vbeam*width),hbeam,vbeam,machine.first_screen()->vpos() & 7,width);
+ //logerror("%08x %d %d %d %d\n",(hbeam+vbeam*width),hbeam,vbeam,m_screen->vpos() & 7,width);
return pcg_offset;
}