summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Robbbert <Robbbert@users.noreply.github.com>2017-02-14 15:53:07 +1100
committer Robbbert <Robbbert@users.noreply.github.com>2017-02-14 15:53:07 +1100
commit2654773c5f7cdcd5ae44d35c391a9972cad11121 (patch)
tree4365ff504aa913475825a967c8f0e594b9d85542
parentff1c7e85fa20a2d21de80a3c22cdbbb8c1777c6a (diff)
(nw) Finished converting m_p_chargen to required region, and associated cleanups.
-rw-r--r--src/mame/drivers/alphatro.cpp36
-rw-r--r--src/mame/drivers/amust.cpp31
-rw-r--r--src/mame/drivers/argo.cpp5
-rw-r--r--src/mame/drivers/aussiebyte.cpp3
-rw-r--r--src/mame/drivers/banctec.cpp6
-rw-r--r--src/mame/drivers/bcs3.cpp38
-rw-r--r--src/mame/drivers/beehive.cpp5
-rw-r--r--src/mame/drivers/bigbord2.cpp50
-rw-r--r--src/mame/drivers/binbug.cpp44
-rw-r--r--src/mame/drivers/bmjr.cpp51
-rw-r--r--src/mame/drivers/bml3.cpp80
-rw-r--r--src/mame/drivers/c10.cpp8
-rw-r--r--src/mame/drivers/cd2650.cpp21
-rw-r--r--src/mame/drivers/dim68k.cpp38
-rw-r--r--src/mame/drivers/dvk_ksm.cpp34
-rw-r--r--src/mame/drivers/ec65.cpp25
-rw-r--r--src/mame/drivers/excali64.cpp4
-rw-r--r--src/mame/drivers/fc100.cpp5
-rw-r--r--src/mame/drivers/h19.cpp5
-rw-r--r--src/mame/drivers/homelab.cpp32
-rw-r--r--src/mame/drivers/homez80.cpp17
-rw-r--r--src/mame/drivers/ibm3153.cpp7
-rw-r--r--src/mame/drivers/ie15.cpp51
-rw-r--r--src/mame/drivers/jonos.cpp14
-rw-r--r--src/mame/drivers/jupiter.cpp7
-rw-r--r--src/mame/drivers/k8915.cpp5
-rw-r--r--src/mame/drivers/m79152pc.cpp26
-rw-r--r--src/mame/drivers/mes.cpp5
-rw-r--r--src/mame/drivers/multi8.cpp34
-rw-r--r--src/mame/drivers/mycom.cpp25
-rw-r--r--src/mame/drivers/nanos.cpp85
-rw-r--r--src/mame/drivers/paso1600.cpp56
-rw-r--r--src/mame/drivers/pasopia.cpp13
-rw-r--r--src/mame/drivers/pcm.cpp47
-rw-r--r--src/mame/drivers/pegasus.cpp15
-rw-r--r--src/mame/drivers/phunsy.cpp6
-rw-r--r--src/mame/drivers/plan80.cpp5
-rw-r--r--src/mame/drivers/proteus3.cpp8
-rw-r--r--src/mame/drivers/ptcsol.cpp9
-rw-r--r--src/mame/drivers/rc702.cpp4
-rw-r--r--src/mame/drivers/sbrain.cpp45
-rw-r--r--src/mame/drivers/sm7238.cpp50
-rw-r--r--src/mame/drivers/unior.cpp5
-rw-r--r--src/mame/drivers/unistar.cpp5
-rw-r--r--src/mame/drivers/vta2000.cpp5
-rw-r--r--src/mame/drivers/z1013.cpp5
-rw-r--r--src/mame/drivers/z9001.cpp5
-rw-r--r--src/mame/drivers/zrt80.cpp5
-rw-r--r--src/mame/includes/aussiebyte.h13
-rw-r--r--src/mame/includes/jupiter.h10
50 files changed, 473 insertions, 635 deletions
diff --git a/src/mame/drivers/alphatro.cpp b/src/mame/drivers/alphatro.cpp
index 81a44ad2160..10960dd493d 100644
--- a/src/mame/drivers/alphatro.cpp
+++ b/src/mame/drivers/alphatro.cpp
@@ -61,13 +61,14 @@ public:
alphatro_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag)
, m_p_videoram(*this, "videoram")
+ , m_p_chargen(*this, "chargen")
, m_maincpu(*this, "maincpu")
, m_crtc(*this, "crtc")
, m_usart(*this, "usart")
, m_cass(*this, "cassette")
, m_beep(*this, "beeper")
- , m_p_ram(*this, "main_ram"),
- m_palette(*this, "palette")
+ , m_p_ram(*this, "main_ram")
+ , m_palette(*this, "palette")
{ }
DECLARE_READ8_MEMBER(port10_r);
@@ -79,27 +80,25 @@ public:
TIMER_DEVICE_CALLBACK_MEMBER(timer_c);
TIMER_DEVICE_CALLBACK_MEMBER(timer_p);
MC6845_UPDATE_ROW(crtc_update_row);
- required_shared_ptr<uint8_t> m_p_videoram;
- uint8_t *m_p_chargen;
- uint8_t m_flashcnt;
private:
- uint8_t m_timer_bit;
- uint8_t m_cass_data[4];
+ required_shared_ptr<u8> m_p_videoram;
+ u8 m_flashcnt;
+ u8 m_timer_bit;
+ u8 m_cass_data[4];
bool m_cass_state;
bool m_cassold;
emu_timer* m_sys_timer;
- virtual void video_start() override;
virtual void machine_start() override;
virtual void machine_reset() override;
virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override;
+ required_region_ptr<u8> m_p_chargen;
required_device<cpu_device> m_maincpu;
required_device<mc6845_device> m_crtc;
required_device<i8251_device> m_usart;
required_device<cassette_image_device> m_cass;
required_device<beep_device> m_beep;
- required_shared_ptr<uint8_t> m_p_ram;
-public:
+ required_shared_ptr<u8> m_p_ram;
required_device<palette_device> m_palette;
};
@@ -151,20 +150,15 @@ WRITE_LINE_MEMBER( alphatro_state::write_usart_clock )
m_usart->write_rxc(state);
}
-void alphatro_state::video_start()
-{
- m_p_chargen = memregion("chargen")->base();
-}
-
MC6845_UPDATE_ROW( alphatro_state::crtc_update_row )
{
const rgb_t *pens = m_palette->palette()->entry_list_raw();
bool palette = BIT(ioport("CONFIG")->read(), 5);
if (y==0) m_flashcnt++;
bool inv;
- uint8_t chr,gfx,attr,bg,fg;
- uint16_t mem,x;
- uint32_t *p = &bitmap.pix32(y);
+ u8 chr,gfx,attr,bg,fg;
+ u16 mem,x;
+ u32 *p = &bitmap.pix32(y);
for (x = 0; x < x_count; x++)
{
@@ -191,7 +185,7 @@ MC6845_UPDATE_ROW( alphatro_state::crtc_update_row )
if (inv)
{
- uint8_t t = bg;
+ u8 t = bg;
bg = fg;
fg = t;
}
@@ -381,7 +375,7 @@ void alphatro_state::machine_start()
void alphatro_state::machine_reset()
{
// do what the IPL does
- uint8_t* ROM = memregion("roms")->base();
+ u8* ROM = memregion("roms")->base();
m_maincpu->set_pc(0xe000);
// If BASIC is missing then it boots into the Monitor
memcpy(m_p_ram, ROM, 0x6000); // Copy BASIC to RAM
@@ -434,7 +428,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(alphatro_state::timer_p)
{
/* cassette - turn 1200/2400Hz to a bit */
m_cass_data[1]++;
- uint8_t cass_ws = (m_cass->input() > +0.03) ? 1 : 0;
+ u8 cass_ws = (m_cass->input() > +0.03) ? 1 : 0;
if (cass_ws != m_cass_data[0])
{
diff --git a/src/mame/drivers/amust.cpp b/src/mame/drivers/amust.cpp
index 5c2aea97faf..aede4b8c60a 100644
--- a/src/mame/drivers/amust.cpp
+++ b/src/mame/drivers/amust.cpp
@@ -103,6 +103,8 @@ public:
: driver_device(mconfig, type, tag)
, m_palette(*this, "palette")
, m_maincpu(*this, "maincpu")
+ , m_p_videoram(*this, "videoram")
+ , m_p_chargen(*this, "chargen")
, m_beep(*this, "beeper")
, m_fdc (*this, "fdc")
, m_floppy0(*this, "fdc:0")
@@ -127,17 +129,18 @@ public:
DECLARE_WRITE8_MEMBER(kbd_put);
INTERRUPT_GEN_MEMBER(irq_vs);
MC6845_UPDATE_ROW(crtc_update_row);
- uint8_t *m_p_videoram;
- const uint8_t *m_p_chargen;
- required_device<palette_device> m_palette;
+
private:
- uint8_t m_port04;
- uint8_t m_port06;
- uint8_t m_port08;
- uint8_t m_port0a;
- uint8_t m_term_data;
+ u8 m_port04;
+ u8 m_port06;
+ u8 m_port08;
+ u8 m_port0a;
+ u8 m_term_data;
virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override;
+ required_device<palette_device> m_palette;
required_device<cpu_device> m_maincpu;
+ required_region_ptr<u8> m_p_videoram;
+ required_region_ptr<u8> m_p_chargen;
required_device<beep_device> m_beep;
required_device<upd765a_device> m_fdc;
required_device<floppy_connector> m_floppy0;
@@ -213,7 +216,7 @@ INPUT_PORTS_END
READ8_MEMBER( amust_state::port00_r )
{
- uint8_t ret = m_term_data;
+ u8 ret = m_term_data;
m_term_data = 0;
return ret;
}
@@ -337,9 +340,9 @@ GFXDECODE_END
MC6845_UPDATE_ROW( amust_state::crtc_update_row )
{
const rgb_t *palette = m_palette->palette()->entry_list_raw();
- uint8_t chr,gfx,inv;
- uint16_t mem,x;
- uint32_t *p = &bitmap.pix32(y);
+ u8 chr,gfx,inv;
+ u16 mem,x;
+ u32 *p = &bitmap.pix32(y);
for (x = 0; x < x_count; x++)
{
@@ -365,8 +368,6 @@ MC6845_UPDATE_ROW( amust_state::crtc_update_row )
MACHINE_RESET_MEMBER( amust_state, amust )
{
- m_p_chargen = memregion("chargen")->base();
- m_p_videoram = memregion("videoram")->base();
membank("bankr0")->set_entry(0); // point at rom
membank("bankw0")->set_entry(0); // always write to ram
address_space &space = m_maincpu->space(AS_PROGRAM);
@@ -381,7 +382,7 @@ MACHINE_RESET_MEMBER( amust_state, amust )
DRIVER_INIT_MEMBER( amust_state, amust )
{
- uint8_t *main = memregion("maincpu")->base();
+ u8 *main = memregion("maincpu")->base();
membank("bankr0")->configure_entry(1, &main[0xf800]);
membank("bankr0")->configure_entry(0, &main[0x10800]);
diff --git a/src/mame/drivers/argo.cpp b/src/mame/drivers/argo.cpp
index 4ee3d571057..6aac2c8c2eb 100644
--- a/src/mame/drivers/argo.cpp
+++ b/src/mame/drivers/argo.cpp
@@ -58,7 +58,6 @@ private:
bool m_ram_ctrl;
uint8_t m_scroll_ctrl;
virtual void machine_reset() override;
- virtual void video_start() override;
virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override;
};
@@ -284,10 +283,6 @@ DRIVER_INIT_MEMBER(argo_state,argo)
membank("boot")->configure_entries(0, 2, &RAM[0x0000], 0xf800);
}
-void argo_state::video_start()
-{
-}
-
uint32_t argo_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
uint8_t y,ra,chr,gfx;
diff --git a/src/mame/drivers/aussiebyte.cpp b/src/mame/drivers/aussiebyte.cpp
index 18a2736a8a0..f6af1fc31f7 100644
--- a/src/mame/drivers/aussiebyte.cpp
+++ b/src/mame/drivers/aussiebyte.cpp
@@ -455,9 +455,6 @@ MACHINE_RESET_MEMBER( aussiebyte_state, aussiebyte )
m_port1a = 1;
m_alpha_address = 0;
m_graph_address = 0;
- m_p_chargen = memregion("chargen")->base();
- m_p_videoram = memregion("vram")->base();
- m_p_attribram = memregion("aram")->base();
membank("bankr0")->set_entry(16); // point at rom
membank("bankw0")->set_entry(1); // always write to ram
membank("bank1")->set_entry(2);
diff --git a/src/mame/drivers/banctec.cpp b/src/mame/drivers/banctec.cpp
index c6a00cdda8f..7ab55d544fb 100644
--- a/src/mame/drivers/banctec.cpp
+++ b/src/mame/drivers/banctec.cpp
@@ -40,8 +40,6 @@ public:
private:
u8 m_video_address;
virtual void machine_reset() override;
- virtual void video_start() override;
-
required_device<cpu_device> m_maincpu;
required_shared_ptr<u8> m_videoram;
required_region_ptr<u8> m_p_chargen;
@@ -76,10 +74,6 @@ WRITE8_MEMBER( banctec_state::videoram_w )
m_video_address++;
}
-void banctec_state::video_start()
-{
-}
-
/* ROCKWELL 6545 - Transparent Memory Addressing */
MC6845_UPDATE_ROW( banctec_state::crtc_update_row )
diff --git a/src/mame/drivers/bcs3.cpp b/src/mame/drivers/bcs3.cpp
index 44e10bc1a1a..6dcfa62f4db 100644
--- a/src/mame/drivers/bcs3.cpp
+++ b/src/mame/drivers/bcs3.cpp
@@ -77,27 +77,27 @@ public:
DECLARE_DRIVER_INIT(bcs3b);
DECLARE_DRIVER_INIT(bcs3c);
DECLARE_DRIVER_INIT(bcs3d);
- uint32_t screen_update_bcs3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
- uint32_t screen_update_bcs3a(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ u32 screen_update_bcs3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ u32 screen_update_bcs3a(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
private:
bool m_cass_bit;
- uint8_t s_curs;
- uint8_t s_init;
- uint8_t s_rows;
- uint8_t s_cols;
+ u8 s_curs;
+ u8 s_init;
+ u8 s_rows;
+ u8 s_cols;
required_device<cpu_device> m_maincpu;
required_device<z80ctc_device> m_ctc;
- required_memory_region m_p_chargen;
- required_shared_ptr<uint8_t> m_p_videoram;
+ required_region_ptr<u8> m_p_chargen;
+ required_shared_ptr<u8> m_p_videoram;
required_device<cassette_image_device> m_cass;
required_ioport_array<10> m_io_keyboard;
};
READ8_MEMBER( bcs3_state::keyboard_r )
{
- uint8_t i, data = 0;
+ u8 i, data = 0;
if (offset == 0)
data = (m_cass->input() > +0.01) ? 0x80 : 0;
@@ -114,7 +114,7 @@ READ8_MEMBER( bcs3_state::keyboard_r )
// 00-7F = NUL, 0xE0 = end of line.
READ8_MEMBER( bcs3_state::video_r )
{
- uint8_t data = m_p_videoram[offset];
+ u8 data = m_p_videoram[offset];
return BIT(data, 7) ? data : 0;
}
@@ -215,10 +215,10 @@ static INPUT_PORTS_START( bcs3 )
INPUT_PORTS_END
// Official version
-uint32_t bcs3_state::screen_update_bcs3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
+u32 bcs3_state::screen_update_bcs3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- uint8_t y,ra,chr,gfx,rat;
- uint16_t sy=0,ma=0x50,x;
+ u8 y,ra,chr,gfx,rat;
+ u16 sy=0,ma=0x50,x;
for (y = 0; y < 12; y++)
{
@@ -234,7 +234,7 @@ uint32_t bcs3_state::screen_update_bcs3(screen_device &screen, bitmap_ind16 &bit
chr = m_p_videoram[x] & 0x7f;
/* get pattern of pixels for that character scanline */
- gfx = m_p_chargen->base()[(chr<<3) | rat ] ^ 0xff;
+ gfx = m_p_chargen[(chr<<3) | rat ] ^ 0xff;
}
else
gfx = 0xff;
@@ -257,11 +257,11 @@ uint32_t bcs3_state::screen_update_bcs3(screen_device &screen, bitmap_ind16 &bit
/* Hacks: When it starts, it has 4 lines of data. Pressing enter causes it to allocate 100 lines.
I'm assuming that it only shows a portion of this, with the cursor always in sight. */
-uint32_t bcs3_state::screen_update_bcs3a(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
+u32 bcs3_state::screen_update_bcs3a(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- uint8_t y,ra,chr,gfx,rat;
- uint16_t sy = 0, ma = s_init, x;
- uint16_t cursor = (m_p_videoram[s_curs] | (m_p_videoram[s_curs+1] << 8)) - 0x3c00 - ma; // get cursor relative position
+ u8 y,ra,chr,gfx,rat;
+ u16 sy = 0, ma = s_init, x;
+ u16 cursor = (m_p_videoram[s_curs] | (m_p_videoram[s_curs+1] << 8)) - 0x3c00 - ma; // get cursor relative position
rat = cursor / (s_cols+1);
if (rat > (s_rows-1)) ma += (rat-(s_rows-1)) * (s_cols+1);
@@ -279,7 +279,7 @@ uint32_t bcs3_state::screen_update_bcs3a(screen_device &screen, bitmap_ind16 &bi
chr = m_p_videoram[x] & 0x7f;
/* get pattern of pixels for that character scanline */
- gfx = m_p_chargen->base()[(chr<<3) | rat ] ^ 0xff;
+ gfx = m_p_chargen[(chr<<3) | rat ] ^ 0xff;
}
else
gfx = 0xff;
diff --git a/src/mame/drivers/beehive.cpp b/src/mame/drivers/beehive.cpp
index 6b38652fb07..d243c6eee78 100644
--- a/src/mame/drivers/beehive.cpp
+++ b/src/mame/drivers/beehive.cpp
@@ -44,7 +44,6 @@ private:
required_region_ptr<u8> m_p_chargen;
uint8_t m_keyline;
virtual void machine_reset() override;
- virtual void video_start() override;
};
READ8_MEMBER(beehive_state::beehive_60_r)
@@ -233,10 +232,6 @@ void beehive_state::machine_reset()
{
}
-void beehive_state::video_start()
-{
-}
-
/* This system appears to have inline attribute bytes of unknown meaning.
Currently they are ignored. */
uint32_t beehive_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
diff --git a/src/mame/drivers/bigbord2.cpp b/src/mame/drivers/bigbord2.cpp
index 047a5dff665..0daaad3156b 100644
--- a/src/mame/drivers/bigbord2.cpp
+++ b/src/mame/drivers/bigbord2.cpp
@@ -90,6 +90,8 @@ public:
: driver_device(mconfig, type, tag)
, m_palette(*this, "palette")
, m_maincpu(*this, "maincpu")
+ , m_p_ram(*this, "maincpu")
+ , m_p_chargen(*this, "chargen")
, m_ctc1(*this, "ctc1")
, m_ctc2(*this, "ctc2")
, m_sio(*this, "sio")
@@ -123,25 +125,23 @@ public:
DECLARE_READ8_MEMBER(io_read_byte);
DECLARE_WRITE8_MEMBER(io_write_byte);
MC6845_UPDATE_ROW(crtc_update_row);
- required_device<palette_device> m_palette;
private:
- uint8_t crt8002(uint8_t ac_ra, uint8_t ac_chr, uint8_t ac_attr, uint16_t ac_cnt, bool ac_curs);
- uint8_t *m_p_chargen; /* character ROM */
- uint8_t *m_p_videoram; /* Video RAM */
- uint8_t *m_p_attribram; /* Attribute RAM */
- uint8_t m_term_data;
- uint8_t m_term_status;
+ u8 crt8002(u8 ac_ra, u8 ac_chr, u8 ac_attr, uint16_t ac_cnt, bool ac_curs);
+ u8 m_term_data;
+ u8 m_term_status;
uint16_t m_cnt;
bool m_c8[8];
bool m_cc[8];
floppy_image_device *m_floppy;
virtual void machine_start() override;
virtual void machine_reset() override;
- virtual void video_start() override;
address_space *m_mem;
address_space *m_io;
+ required_device<palette_device> m_palette;
required_device<cpu_device> m_maincpu;
+ required_region_ptr<u8> m_p_ram;
+ required_region_ptr<u8> m_p_chargen;
required_device<z80ctc_device> m_ctc1;
required_device<z80ctc_device> m_ctc2;
required_device<z80sio_device> m_sio;
@@ -173,7 +173,7 @@ WRITE8_MEMBER( bigbord2_state::portc0_w )
READ8_MEMBER( bigbord2_state::portc4_r )
{
- uint8_t ret = m_term_status | 3 | (m_c8[6]<<2) | m_dsw->read();
+ u8 ret = m_term_status | 3 | (m_c8[6]<<2) | m_dsw->read();
m_term_status = 0;
return ret;
}
@@ -182,7 +182,7 @@ READ8_MEMBER( bigbord2_state::portc4_r )
READ8_MEMBER( bigbord2_state::portd0_r )
{
- uint8_t ret = m_term_data;
+ u8 ret = m_term_data;
m_term_data = 0;
return ret;
}
@@ -436,17 +436,6 @@ static SLOT_INTERFACE_START( bigbord2_floppies )
SLOT_INTERFACE_END
-/* Video */
-
-void bigbord2_state::video_start()
-{
- /* find memory regions */
- m_p_chargen = memregion("chargen")->base();
- m_p_videoram = memregion("maincpu")->base()+0x6000;
- m_p_attribram = memregion("maincpu")->base()+0x7000;
-}
-
-
/* Machine Initialization */
void bigbord2_state::machine_start()
@@ -458,7 +447,7 @@ void bigbord2_state::machine_start()
void bigbord2_state::machine_reset()
{
- uint8_t i;
+ u8 i;
for (i = 0; i < 8; i++)
{
m_c8[i] = 0;
@@ -475,10 +464,9 @@ DRIVER_INIT_MEMBER(bigbord2_state,bigbord2)
{
m_mem = &m_maincpu->space(AS_PROGRAM);
m_io = &m_maincpu->space(AS_IO);
- uint8_t *RAM = memregion("maincpu")->base();
- m_bankr->configure_entries(0, 2, &RAM[0x0000], 0x10000);
- m_bankv->configure_entries(0, 2, &RAM[0x6000], 0x10000);
- m_banka->configure_entries(0, 2, &RAM[0x7000], 0x10000);
+ m_bankr->configure_entries(0, 2, &m_p_ram[0x0000], 0x10000);
+ m_bankv->configure_entries(0, 2, &m_p_ram[0x6000], 0x10000);
+ m_banka->configure_entries(0, 2, &m_p_ram[0x7000], 0x10000);
}
@@ -502,9 +490,9 @@ static GFXDECODE_START( crt8002 )
GFXDECODE_ENTRY( "chargen", 0x0000, crt8002_charlayout, 0, 1 )
GFXDECODE_END
-uint8_t bigbord2_state::crt8002(uint8_t ac_ra, uint8_t ac_chr, uint8_t ac_attr, uint16_t ac_cnt, bool ac_curs)
+u8 bigbord2_state::crt8002(u8 ac_ra, u8 ac_chr, u8 ac_attr, uint16_t ac_cnt, bool ac_curs)
{
- uint8_t gfx = 0;
+ u8 gfx = 0;
switch (ac_attr & 3)
{
case 0: // lores gfx
@@ -558,7 +546,7 @@ uint8_t bigbord2_state::crt8002(uint8_t ac_ra, uint8_t ac_chr, uint8_t ac_attr,
MC6845_UPDATE_ROW( bigbord2_state::crtc_update_row )
{
const rgb_t *palette = m_palette->palette()->entry_list_raw();
- uint8_t chr,gfx,attr;
+ u8 chr,gfx,attr;
uint16_t mem,x;
uint32_t *p = &bitmap.pix32(y);
ra &= 15;
@@ -567,8 +555,8 @@ MC6845_UPDATE_ROW( bigbord2_state::crtc_update_row )
for (x = 0; x < x_count; x++)
{
mem = (ma + x) & 0x7ff;
- attr = m_p_attribram[mem];
- chr = m_p_videoram[mem];
+ attr = m_p_ram[mem + 0x7000];
+ chr = m_p_ram[mem + 0x6000];
/* process attributes */
gfx = crt8002(ra, chr, attr, m_cnt, (x==cursor_x));
diff --git a/src/mame/drivers/binbug.cpp b/src/mame/drivers/binbug.cpp
index 27dfc0405a0..63da0224639 100644
--- a/src/mame/drivers/binbug.cpp
+++ b/src/mame/drivers/binbug.cpp
@@ -61,28 +61,31 @@ class binbug_state : public driver_device
{
public:
binbug_state(const machine_config &mconfig, device_type type, const char *tag)
- : driver_device(mconfig, type, tag),
- m_rs232(*this, "keyboard"),
- m_cass(*this, "cassette"),
- m_p_videoram(*this, "videoram"),
- m_p_attribram(*this, "attribram"),
- m_maincpu(*this, "maincpu")
+ : driver_device(mconfig, type, tag)
+ , m_maincpu(*this, "maincpu")
+ , m_cass(*this, "cassette")
+ , m_p_videoram(*this, "videoram")
+ , m_p_attribram(*this, "attribram")
+ , m_p_chargen(*this, "chargen")
+ , m_rs232(*this, "keyboard")
{
}
DECLARE_WRITE8_MEMBER(binbug_ctrl_w);
DECLARE_READ8_MEMBER(binbug_serial_r);
DECLARE_WRITE_LINE_MEMBER(binbug_serial_w);
- const uint8_t *m_p_chargen;
- uint8_t m_framecnt;
- virtual void video_start() override;
+ DECLARE_QUICKLOAD_LOAD_MEMBER( binbug );
uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
- optional_device<rs232_port_device> m_rs232;
+ // needed by dg680 class
+ required_device<cpu_device> m_maincpu;
required_device<cassette_image_device> m_cass;
+
+private:
+ uint8_t m_framecnt;
required_shared_ptr<uint8_t> m_p_videoram;
required_shared_ptr<uint8_t> m_p_attribram;
- required_device<cpu_device> m_maincpu;
- DECLARE_QUICKLOAD_LOAD_MEMBER( binbug );
+ required_region_ptr<u8> m_p_chargen;
+ optional_device<rs232_port_device> m_rs232;
};
WRITE8_MEMBER( binbug_state::binbug_ctrl_w )
@@ -117,11 +120,6 @@ ADDRESS_MAP_END
static INPUT_PORTS_START( binbug )
INPUT_PORTS_END
-void binbug_state::video_start()
-{
- m_p_chargen = memregion("chargen")->base();
-}
-
uint32_t binbug_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
// attributes bit 0 = flash, bit 1 = lores. Also bit 7 of the character = reverse-video (text only).
@@ -408,11 +406,10 @@ class dg680_state : public binbug_state
{
public:
dg680_state(const machine_config &mconfig, device_type type, const char *tag)
- : binbug_state(mconfig, type, tag),
- m_maincpu(*this, "maincpu"),
- m_ctc(*this, "z80ctc"),
- m_pio(*this, "z80pio")
- { }
+ : binbug_state(mconfig, type, tag)
+ , m_ctc(*this, "z80ctc")
+ , m_pio(*this, "z80pio")
+ { }
DECLARE_READ8_MEMBER(porta_r);
DECLARE_READ8_MEMBER(portb_r);
@@ -422,11 +419,12 @@ public:
DECLARE_WRITE8_MEMBER(kbd_put);
TIMER_DEVICE_CALLBACK_MEMBER(time_tick);
TIMER_DEVICE_CALLBACK_MEMBER(uart_tick);
+
+private:
uint8_t m_pio_b;
uint8_t m_term_data;
uint8_t m_protection[0x100];
virtual void machine_reset() override;
- required_device<cpu_device> m_maincpu;
required_device<z80ctc_device> m_ctc;
required_device<z80pio_device> m_pio;
};
diff --git a/src/mame/drivers/bmjr.cpp b/src/mame/drivers/bmjr.cpp
index 5699fdcb80c..bfce39ad282 100644
--- a/src/mame/drivers/bmjr.cpp
+++ b/src/mame/drivers/bmjr.cpp
@@ -25,16 +25,14 @@ class bmjr_state : public driver_device
{
public:
bmjr_state(const machine_config &mconfig, device_type type, const char *tag)
- : driver_device(mconfig, type, tag),
- m_maincpu(*this, "maincpu"),
- m_cass(*this, "cassette"),
- m_beep(*this, "beeper")
- ,
- m_p_wram(*this, "p_wram"){ }
+ : driver_device(mconfig, type, tag)
+ , m_maincpu(*this, "maincpu")
+ , m_cass(*this, "cassette")
+ , m_beep(*this, "beeper")
+ , m_p_wram(*this, "wram")
+ , m_p_chargen(*this, "chargen")
+ { }
- required_device<cpu_device> m_maincpu;
- required_device<cassette_image_device> m_cass;
- required_device<beep_device> m_beep;
DECLARE_READ8_MEMBER(key_r);
DECLARE_WRITE8_MEMBER(key_w);
DECLARE_READ8_MEMBER(ff_r);
@@ -44,36 +42,35 @@ public:
DECLARE_READ8_MEMBER(tape_stop_r);
DECLARE_READ8_MEMBER(tape_start_r);
DECLARE_WRITE8_MEMBER(xor_display_w);
- bool m_tape_switch;
- required_shared_ptr<uint8_t> m_p_wram;
- uint8_t *m_p_chargen;
- uint8_t m_xor_display;
- uint8_t m_key_mux;
DECLARE_DRIVER_INIT(bmjr);
+ u32 screen_update_bmjr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+
+private:
+ bool m_tape_switch;
+ u8 m_xor_display;
+ u8 m_key_mux;
virtual void machine_start() override;
virtual void machine_reset() override;
- virtual void video_start() override;
- uint32_t screen_update_bmjr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ required_device<cpu_device> m_maincpu;
+ required_device<cassette_image_device> m_cass;
+ required_device<beep_device> m_beep;
+ required_shared_ptr<u8> m_p_wram;
+ required_region_ptr<u8> m_p_chargen;
};
-void bmjr_state::video_start()
-{
- m_p_chargen = memregion("chargen")->base();
-}
-
-uint32_t bmjr_state::screen_update_bmjr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
+u32 bmjr_state::screen_update_bmjr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- uint8_t y,ra,chr,gfx,fg=4;
- uint16_t sy=0,ma=0x100,x;
- uint8_t inv = (m_xor_display) ? 0xff : 0;
+ u8 y,ra,chr,gfx,fg=4;
+ u16 sy=0,ma=0x100,x;
+ u8 inv = (m_xor_display) ? 0xff : 0;
for(y = 0; y < 24; y++ )
{
for (ra = 0; ra < 8; ra++)
{
- uint16_t *p = &bitmap.pix16(sy++);
+ u16 *p = &bitmap.pix16(sy++);
for (x = ma; x < ma + 32; x++)
{
@@ -168,7 +165,7 @@ static ADDRESS_MAP_START(bmjr_mem, AS_PROGRAM, 8, bmjr_state)
//0x0100, 0x03ff basic vram
//0x0900, 0x20ff vram, modes 0x40 / 0xc0
//0x2100, 0x38ff vram, modes 0x44 / 0xcc
- AM_RANGE(0x0000, 0xafff) AM_RAM AM_SHARE("p_wram")
+ AM_RANGE(0x0000, 0xafff) AM_RAM AM_SHARE("wram")
AM_RANGE(0xb000, 0xdfff) AM_ROM
AM_RANGE(0xe000, 0xe7ff) AM_ROM
// AM_RANGE(0xe890, 0xe890) W MP-1710 tile color
diff --git a/src/mame/drivers/bml3.cpp b/src/mame/drivers/bml3.cpp
index 319b81f45bb..e4dfe07015f 100644
--- a/src/mame/drivers/bml3.cpp
+++ b/src/mame/drivers/bml3.cpp
@@ -66,16 +66,18 @@
class bml3_state : public driver_device
{
public:
- bml3_state(const machine_config &mconfig, device_type type, const char *tag) :
- driver_device(mconfig, type, tag),
- m_maincpu(*this, "maincpu"),
- m_bml3bus(*this, "bml3bus"),
- m_crtc(*this, "crtc"),
- m_cass(*this, "cassette"),
- m_speaker(*this, "speaker"),
- m_ym2203(*this, "ym2203"),
- m_acia6850(*this, "acia6850"),
- m_palette(*this, "palette")
+ bml3_state(const machine_config &mconfig, device_type type, const char *tag)
+ : driver_device(mconfig, type, tag)
+ , m_maincpu(*this, "maincpu")
+ , m_p_videoram(*this, "vram")
+ , m_p_chargen(*this, "chargen")
+ , m_bml3bus(*this, "bml3bus")
+ , m_crtc(*this, "crtc")
+ , m_cass(*this, "cassette")
+ , m_speaker(*this, "speaker")
+ , m_ym2203(*this, "ym2203")
+ , m_acia6850(*this, "acia6850")
+ , m_palette(*this, "palette")
{
}
@@ -114,10 +116,6 @@ public:
MC6845_UPDATE_ROW(crtc_update_row);
- uint8_t *m_p_videoram;
- uint8_t *m_p_chargen;
- uint8_t m_hres_reg;
- uint8_t m_crtc_vreg[0x100];
// INTERRUPT_GEN_MEMBER(bml3_irq);
INTERRUPT_GEN_MEMBER(bml3_timer_firq);
TIMER_DEVICE_CALLBACK_MEMBER(bml3_c);
@@ -127,35 +125,38 @@ public:
DECLARE_WRITE8_MEMBER(bml3_ym2203_w);
private:
- uint8_t m_psg_latch;
- uint8_t m_attr_latch;
- uint8_t m_vres_reg;
+ u8 m_hres_reg;
+ u8 m_crtc_vreg[0x100];
+ u8 m_psg_latch;
+ u8 m_attr_latch;
+ u8 m_vres_reg;
bool m_keyb_interrupt_disabled;
bool m_keyb_nmi_disabled; // not used yet
bool m_keyb_counter_operation_disabled;
- uint8_t m_keyb_empty_scan;
- uint8_t m_keyb_scancode;
+ u8 m_keyb_empty_scan;
+ u8 m_keyb_scancode;
bool m_keyb_capslock_led_on;
bool m_keyb_hiragana_led_on;
bool m_keyb_katakana_led_on;
bool m_cassbit;
bool m_cassold;
- uint8_t m_cass_data[4];
+ u8 m_cass_data[4];
virtual void machine_reset() override;
virtual void machine_start() override;
- void m6845_change_clock(uint8_t setting);
- uint8_t m_crtc_index;
- std::unique_ptr<uint8_t[]> m_extram;
- uint8_t m_firq_mask;
- uint8_t m_firq_status;
+ void m6845_change_clock(u8 setting);
+ u8 m_crtc_index;
+ std::unique_ptr<u8[]> m_extram;
+ u8 m_firq_mask;
+ u8 m_firq_status;
required_device<cpu_device> m_maincpu;
+ required_region_ptr<u8> m_p_videoram;
+ required_region_ptr<u8> m_p_chargen;
required_device<bml3bus_device> m_bml3bus;
required_device<mc6845_device> m_crtc;
required_device<cassette_image_device> m_cass;
required_device<speaker_sound_device> m_speaker;
optional_device<ym2203_device> m_ym2203;
required_device<acia6850_device> m_acia6850;
-public:
required_device<palette_device> m_palette;
};
@@ -202,7 +203,7 @@ WRITE8_MEMBER( bml3_state::bml3_6845_w )
READ8_MEMBER( bml3_state::bml3_keyboard_r )
{
- uint8_t ret = m_keyb_scancode;
+ u8 ret = m_keyb_scancode;
m_keyb_scancode &= 0x7f;
return ret;
}
@@ -217,7 +218,7 @@ WRITE8_MEMBER( bml3_state::bml3_keyboard_w )
m_keyb_nmi_disabled = !BIT(data, 7);
}
-void bml3_state::m6845_change_clock(uint8_t setting)
+void bml3_state::m6845_change_clock(u8 setting)
{
int m6845_clock = CPU_CLOCK; // CRTC and MPU are synchronous by default
@@ -289,14 +290,14 @@ WRITE8_MEMBER( bml3_state::bml3_psg_latch_w)
READ8_MEMBER(bml3_state::bml3_ym2203_r)
{
- uint8_t dev_offs = ((m_psg_latch & 3) != 3);
+ u8 dev_offs = ((m_psg_latch & 3) != 3);
return m_ym2203->read(space, dev_offs);
}
WRITE8_MEMBER(bml3_state::bml3_ym2203_w)
{
- uint8_t dev_offs = ((m_psg_latch & 3) != 3);
+ u8 dev_offs = ((m_psg_latch & 3) != 3);
m_ym2203->write(space, dev_offs, data);
}
@@ -366,7 +367,7 @@ WRITE8_MEMBER( bml3_state::bml3_firq_mask_w)
READ8_MEMBER( bml3_state::bml3_firq_status_r )
{
- uint8_t res = m_firq_status << 7;
+ u8 res = m_firq_status << 7;
m_firq_status = 0;
m_maincpu->set_input_line(M6809_FIRQ_LINE, CLEAR_LINE);
return res;
@@ -601,9 +602,9 @@ MC6845_UPDATE_ROW( bml3_state::crtc_update_row )
// 3: reverse/inverse video
// 4: graphic (not character)
- uint8_t x=0,hf=0,xi=0,interlace=0,bgcolor=0,rawbits=0,dots[2],color=0,pen=0;
+ u8 x=0,hf=0,xi=0,interlace=0,bgcolor=0,rawbits=0,dots[2],color=0,pen=0;
bool reverse=0,graphic=0,lowres=0;
- uint16_t mem=0;
+ u16 mem=0;
interlace = (m_crtc_vreg[8] & 3) ? 1 : 0;
lowres = BIT(m_hres_reg, 6);
@@ -684,7 +685,8 @@ MC6845_UPDATE_ROW( bml3_state::crtc_update_row )
TIMER_DEVICE_CALLBACK_MEMBER(bml3_state::keyboard_callback)
{
static const char *const portnames[3] = { "key1","key2","key3" };
- int i,port_i,trigger = 0;
+ int i,port_i;
+ bool trigger = false;
if(!(m_keyb_scancode & 0x80))
{
@@ -699,7 +701,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(bml3_state::keyboard_callback)
if (m_keyb_empty_scan == 1)
{
// full scan completed with no keypress
- trigger = !0;
+ trigger = true;
}
if (m_keyb_empty_scan > 0)
m_keyb_empty_scan--;
@@ -711,7 +713,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(bml3_state::keyboard_callback)
if((ioport(portnames[port_i])->read()>>i) & 1)
{
m_keyb_empty_scan = 2;
- trigger = !0;
+ trigger = true;
}
}
if (trigger)
@@ -733,7 +735,7 @@ TIMER_DEVICE_CALLBACK_MEMBER( bml3_state::bml3_p )
{
/* cassette - turn 1200/2400Hz to a bit */
m_cass_data[1]++;
- uint8_t cass_ws = (m_cass->input() > +0.03) ? 1 : 0;
+ u8 cass_ws = (m_cass->input() > +0.03) ? 1 : 0;
if (cass_ws != m_cass_data[0])
{
@@ -762,9 +764,7 @@ INTERRUPT_GEN_MEMBER(bml3_state::bml3_timer_firq)
void bml3_state::machine_start()
{
- m_extram = std::make_unique<uint8_t[]>(0x10000);
- m_p_chargen = memregion("chargen")->base();
- m_p_videoram = memregion("vram")->base();
+ m_extram = std::make_unique<u8[]>(0x10000);
m_psg_latch = 0;
m_attr_latch = 0;
m_vres_reg = 0;
diff --git a/src/mame/drivers/c10.cpp b/src/mame/drivers/c10.cpp
index ebe156d1884..413569ab0c1 100644
--- a/src/mame/drivers/c10.cpp
+++ b/src/mame/drivers/c10.cpp
@@ -33,14 +33,12 @@ public:
uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
DECLARE_DRIVER_INIT(c10);
+
private:
required_device<cpu_device> m_maincpu;
required_shared_ptr<uint8_t> m_p_videoram;
required_region_ptr<u8> m_p_chargen;
virtual void machine_reset() override;
- virtual void video_start() override;
-
-protected:
virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override;
};
@@ -82,10 +80,6 @@ void c10_state::machine_reset()
timer_set(attotime::from_usec(4), TIMER_RESET);
}
-void c10_state::video_start()
-{
-}
-
/* This system appears to have inline attribute bytes of unknown meaning.
Currently they are ignored. The word at FAB5 looks like it might be cursor location. */
uint32_t c10_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
diff --git a/src/mame/drivers/cd2650.cpp b/src/mame/drivers/cd2650.cpp
index d34cd203124..3d7b860a464 100644
--- a/src/mame/drivers/cd2650.cpp
+++ b/src/mame/drivers/cd2650.cpp
@@ -40,11 +40,12 @@ class cd2650_state : public driver_device
{
public:
cd2650_state(const machine_config &mconfig, device_type type, const char *tag)
- : driver_device(mconfig, type, tag),
- m_p_videoram(*this, "videoram"),
- m_maincpu(*this, "maincpu"),
- m_beep(*this, "beeper"),
- m_cass(*this, "cassette")
+ : driver_device(mconfig, type, tag)
+ , m_maincpu(*this, "maincpu")
+ , m_p_videoram(*this, "videoram")
+ , m_p_chargen(*this, "chargen")
+ , m_beep(*this, "beeper")
+ , m_cass(*this, "cassette")
{
}
@@ -54,15 +55,14 @@ public:
DECLARE_READ8_MEMBER(cass_r);
DECLARE_WRITE_LINE_MEMBER(cass_w);
DECLARE_QUICKLOAD_LOAD_MEMBER(cd2650);
- const uint8_t *m_p_chargen;
uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
- required_shared_ptr<uint8_t> m_p_videoram;
private:
uint8_t m_term_data;
virtual void machine_reset() override;
- virtual void video_start() override;
required_device<cpu_device> m_maincpu;
+ required_shared_ptr<uint8_t> m_p_videoram;
+ required_region_ptr<u8> m_p_chargen;
required_device<beep_device> m_beep;
required_device<cassette_image_device> m_cass;
};
@@ -115,11 +115,6 @@ void cd2650_state::machine_reset()
m_beep->set_state(0);
}
-void cd2650_state::video_start()
-{
- m_p_chargen = memregion("chargen")->base();
-}
-
uint32_t cd2650_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
/* The video is unusual in that the characters in each line are spaced at 16 bytes in memory,
diff --git a/src/mame/drivers/dim68k.cpp b/src/mame/drivers/dim68k.cpp
index 27c0b7b1ac1..b935b9769d7 100644
--- a/src/mame/drivers/dim68k.cpp
+++ b/src/mame/drivers/dim68k.cpp
@@ -45,12 +45,14 @@ class dim68k_state : public driver_device
{
public:
dim68k_state(const machine_config &mconfig, device_type type, const char *tag)
- : driver_device(mconfig, type, tag),
- m_maincpu(*this, "maincpu"),
- m_crtc(*this, "crtc"),
- m_speaker(*this, "speaker"),
- m_ram(*this, "ram"),
- m_palette(*this, "palette") { }
+ : driver_device(mconfig, type, tag)
+ , m_maincpu(*this, "maincpu")
+ , m_crtc(*this, "crtc")
+ , m_speaker(*this, "speaker")
+ , m_ram(*this, "ram")
+ , m_palette(*this, "palette")
+ , m_p_chargen(*this, "chargen")
+ { }
DECLARE_READ16_MEMBER( dim68k_duart_r );
DECLARE_READ16_MEMBER( dim68k_fdc_r );
@@ -67,17 +69,18 @@ public:
DECLARE_WRITE16_MEMBER( dim68k_video_reset_w );
DECLARE_WRITE8_MEMBER(kbd_put);
MC6845_UPDATE_ROW(crtc_update_row);
- const uint8_t *m_p_chargen;
+
+private:
bool m_speaker_bit;
- uint8_t m_video_control;
- uint8_t m_term_data;
+ u8 m_video_control;
+ u8 m_term_data;
virtual void machine_reset() override;
- virtual void video_start() override;
required_device<cpu_device> m_maincpu;
required_device<mc6845_device> m_crtc;
required_device<speaker_sound_device> m_speaker;
required_shared_ptr<uint16_t> m_ram;
required_device<palette_device> m_palette;
+ required_region_ptr<u8> m_p_chargen;
};
READ16_MEMBER( dim68k_state::dim68k_duart_r )
@@ -212,27 +215,22 @@ INPUT_PORTS_END
void dim68k_state::machine_reset()
{
- uint8_t* ROM = memregion("bootrom")->base();
+ u8* ROM = memregion("bootrom")->base();
- memcpy((uint8_t*)m_ram.target(), ROM, 0x2000);
+ memcpy((u8*)m_ram.target(), ROM, 0x2000);
m_maincpu->reset();
}
-void dim68k_state::video_start()
-{
- m_p_chargen = memregion("chargen")->base();
-}
-
// Text-only; graphics isn't emulated yet. Need to find out if hardware cursor is used.
MC6845_UPDATE_ROW( dim68k_state::crtc_update_row )
{
const rgb_t *palette = m_palette->palette()->entry_list_raw();
- uint8_t chr,gfx,x,xx,inv;
+ u8 chr,gfx,x,xx,inv;
uint16_t chr16=0x2020; // set to spaces if screen is off
uint32_t *p = &bitmap.pix32(y);
- uint8_t screen_on = ~m_video_control & 4;
- uint8_t dot8 = ~m_video_control & 40;
+ u8 screen_on = ~m_video_control & 4;
+ u8 dot8 = ~m_video_control & 40;
// need to divide everything in half to cater for 16-bit reads
x_count /= 2;
diff --git a/src/mame/drivers/dvk_ksm.cpp b/src/mame/drivers/dvk_ksm.cpp
index 9266dbf0da7..994bddb8a48 100644
--- a/src/mame/drivers/dvk_ksm.cpp
+++ b/src/mame/drivers/dvk_ksm.cpp
@@ -98,21 +98,19 @@ ksm|DVK KSM,
class ksm_state : public driver_device
{
public:
- ksm_state(const machine_config &mconfig, device_type type, const char *tag) :
- driver_device(mconfig, type, tag),
- m_p_videoram(*this, "videoram"),
- m_maincpu(*this, "maincpu"),
- m_pic8259(*this, "pic8259"),
- m_i8251line(*this, "i8251line"),
- m_rs232(*this, "rs232"),
- m_i8251kbd(*this, "i8251kbd"),
- m_ms7004(*this, "ms7004"),
- m_screen(*this, "screen")
- { }
+ ksm_state(const machine_config &mconfig, device_type type, const char *tag)
+ : driver_device(mconfig, type, tag)
+ , m_p_videoram(*this, "videoram")
+ , m_maincpu(*this, "maincpu")
+ , m_pic8259(*this, "pic8259")
+ , m_i8251line(*this, "i8251line")
+ , m_rs232(*this, "rs232")
+ , m_i8251kbd(*this, "i8251kbd")
+ , m_ms7004(*this, "ms7004")
+ , m_screen(*this, "screen")
+ , m_p_chargen(*this, "chargen")
+ { }
- virtual void machine_reset() override;
- virtual void video_start() override;
- uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
TIMER_DEVICE_CALLBACK_MEMBER( scanline_callback );
DECLARE_WRITE_LINE_MEMBER(write_keyboard_clock);
@@ -120,19 +118,20 @@ public:
DECLARE_WRITE8_MEMBER(ksm_ppi_porta_w);
DECLARE_WRITE8_MEMBER(ksm_ppi_portc_w);
+ uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
private:
uint32_t draw_scanline(uint16_t *p, uint16_t offset, uint8_t scanline);
rectangle m_tmpclip;
bitmap_ind16 m_tmpbmp;
- const uint8_t *m_p_chargen;
struct {
uint8_t line;
uint16_t ptr;
} m_video;
-protected:
+ virtual void machine_reset() override;
+ virtual void video_start() override;
required_shared_ptr<uint8_t> m_p_videoram;
required_device<cpu_device> m_maincpu;
required_device<pic8259_device> m_pic8259;
@@ -141,6 +140,7 @@ protected:
required_device<i8251_device> m_i8251kbd;
required_device<ms7004_device> m_ms7004;
required_device<screen_device> m_screen;
+ required_region_ptr<u8> m_p_chargen;
};
static ADDRESS_MAP_START( ksm_mem, AS_PROGRAM, 8, ksm_state )
@@ -209,8 +209,6 @@ void ksm_state::machine_reset()
void ksm_state::video_start()
{
- m_p_chargen = memregion("chargen")->base();
-
m_tmpclip = rectangle(0, KSM_DISP_HORZ-1, 0, KSM_DISP_VERT-1);
m_tmpbmp.allocate(KSM_DISP_HORZ, KSM_DISP_VERT);
}
diff --git a/src/mame/drivers/ec65.cpp b/src/mame/drivers/ec65.cpp
index 2a1597a8072..c2ae59d01e8 100644
--- a/src/mame/drivers/ec65.cpp
+++ b/src/mame/drivers/ec65.cpp
@@ -30,23 +30,25 @@ class ec65_state : public driver_device
{
public:
ec65_state(const machine_config &mconfig, device_type type, const char *tag)
- : driver_device(mconfig, type, tag),
- m_via_0(*this, VIA6522_0_TAG),
- m_via_1(*this, VIA6522_1_TAG),
- m_p_videoram(*this, "videoram"),
- m_maincpu(*this, "maincpu"),
- m_palette(*this, "palette")
+ : driver_device(mconfig, type, tag)
+ , m_via_0(*this, VIA6522_0_TAG)
+ , m_via_1(*this, VIA6522_1_TAG)
+ , m_p_videoram(*this, "videoram")
+ , m_p_chargen(*this, "chargen")
+ , m_maincpu(*this, "maincpu")
+ , m_palette(*this, "palette")
{
}
DECLARE_WRITE8_MEMBER(kbd_put);
MC6845_UPDATE_ROW(crtc_update_row);
- uint8_t *m_p_chargen;
+
+private:
+ virtual void machine_reset() override;
required_device<via6522_device> m_via_0;
required_device<via6522_device> m_via_1;
required_shared_ptr<uint8_t> m_p_videoram;
- virtual void machine_reset() override;
- virtual void video_start() override;
+ required_region_ptr<u8> m_p_chargen;
required_device<cpu_device> m_maincpu;
required_device<palette_device> m_palette;
};
@@ -116,11 +118,6 @@ void ec65_state::machine_reset()
m_via_1->write_pb7(1);
}
-void ec65_state::video_start()
-{
- m_p_chargen = memregion("chargen")->base();
-}
-
MC6845_UPDATE_ROW( ec65_state::crtc_update_row )
{
const rgb_t *palette = m_palette->palette()->entry_list_raw();
diff --git a/src/mame/drivers/excali64.cpp b/src/mame/drivers/excali64.cpp
index ec9fd98e00e..9d7579a7ba9 100644
--- a/src/mame/drivers/excali64.cpp
+++ b/src/mame/drivers/excali64.cpp
@@ -54,6 +54,7 @@ public:
: driver_device(mconfig, type, tag)
, m_palette(*this, "palette")
, m_maincpu(*this, "maincpu")
+ , m_p_chargen(*this, "chargen")
, m_cass(*this, "cassette")
, m_crtc(*this, "crtc")
, m_io_keyboard(*this, "KEY.%u", 0)
@@ -90,7 +91,6 @@ public:
required_device<palette_device> m_palette;
private:
- const uint8_t *m_p_chargen;
uint8_t *m_p_videoram;
uint8_t *m_p_hiresram;
uint8_t m_sys_status;
@@ -100,6 +100,7 @@ private:
bool m_motor;
bool m_centronics_busy;
required_device<cpu_device> m_maincpu;
+ required_region_ptr<u8> m_p_chargen;
required_device<cassette_image_device> m_cass;
required_device<mc6845_device> m_crtc;
required_ioport_array<8> m_io_keyboard;
@@ -447,7 +448,6 @@ PALETTE_INIT_MEMBER( excali64_state, excali64 )
{
// do this here because driver_init hasn't run yet
m_p_videoram = memregion("videoram")->base();
- m_p_chargen = memregion("chargen")->base();
m_p_hiresram = m_p_videoram + 0x2000;
uint8_t *main = memregion("roms")->base();
uint8_t *ram = memregion("rambank")->base();
diff --git a/src/mame/drivers/fc100.cpp b/src/mame/drivers/fc100.cpp
index ca1cc9039f1..66cc7d74c4b 100644
--- a/src/mame/drivers/fc100.cpp
+++ b/src/mame/drivers/fc100.cpp
@@ -54,6 +54,7 @@ public:
, m_maincpu(*this, "maincpu")
, m_vdg(*this, "vdg")
, m_p_videoram(*this, "videoram")
+ , m_p_chargen(*this, "chargen")
, m_cass(*this, "cassette")
, m_cart(*this, "cartslot")
, m_uart(*this, "uart")
@@ -75,8 +76,6 @@ public:
TIMER_DEVICE_CALLBACK_MEMBER(timer_p);
TIMER_DEVICE_CALLBACK_MEMBER(timer_k);
- uint8_t *m_p_chargen;
-
MC6847_GET_CHARROM_MEMBER(get_char_rom)
{
return m_p_chargen[(ch * 16 + line) & 0xfff];
@@ -103,6 +102,7 @@ private:
required_device<cpu_device> m_maincpu;
required_device<mc6847_base_device> m_vdg;
required_shared_ptr<uint8_t> m_p_videoram;
+ required_region_ptr<u8> m_p_chargen;
required_device<cassette_image_device> m_cass;
required_device<generic_slot_device> m_cart;
required_device<i8251_device> m_uart;
@@ -479,7 +479,6 @@ void fc100_state::machine_start()
void fc100_state::machine_reset()
{
- m_p_chargen = memregion("chargen")->base();
m_cass_data[0] = m_cass_data[1] = m_cass_data[2] = m_cass_data[3] = 0;
m_cass_state = 0;
m_cassold = 0;
diff --git a/src/mame/drivers/h19.cpp b/src/mame/drivers/h19.cpp
index e6246af35cb..1a3efd1a314 100644
--- a/src/mame/drivers/h19.cpp
+++ b/src/mame/drivers/h19.cpp
@@ -106,7 +106,6 @@ private:
uint8_t m_term_data;
virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override;
virtual void machine_reset() override;
- virtual void video_start() override;
required_device<palette_device> m_palette;
required_device<cpu_device> m_maincpu;
required_device<mc6845_device> m_crtc;
@@ -346,10 +345,6 @@ void h19_state::machine_reset()
{
}
-void h19_state::video_start()
-{
-}
-
MC6845_UPDATE_ROW( h19_state::crtc_update_row )
{
const rgb_t *palette = m_palette->palette()->entry_list_raw();
diff --git a/src/mame/drivers/homelab.cpp b/src/mame/drivers/homelab.cpp
index 3e497346b79..d07c8c6a56e 100644
--- a/src/mame/drivers/homelab.cpp
+++ b/src/mame/drivers/homelab.cpp
@@ -47,11 +47,12 @@ class homelab_state : public driver_device
{
public:
homelab_state(const machine_config &mconfig, device_type type, const char *tag)
- : driver_device(mconfig, type, tag),
- m_maincpu(*this, "maincpu"),
- m_dac(*this, "dac"),
- m_cass(*this, "cassette")
- { }
+ : driver_device(mconfig, type, tag)
+ , m_maincpu(*this, "maincpu")
+ , m_p_chargen(*this, "chargen")
+ , m_dac(*this, "dac")
+ , m_cass(*this, "cassette")
+ { }
DECLARE_READ8_MEMBER(key_r);
DECLARE_WRITE8_MEMBER(cass_w);
@@ -62,22 +63,24 @@ public:
DECLARE_WRITE8_MEMBER(brailab4_port7f_w);
DECLARE_WRITE8_MEMBER(brailab4_portff_w);
DECLARE_CUSTOM_INPUT_MEMBER(cass3_r);
- const uint8_t *m_p_chargen;
- const uint8_t *m_p_videoram;
- bool m_nmi;
- required_device<cpu_device> m_maincpu;
- required_device<dac_bit_interface> m_dac;
- required_device<cassette_image_device> m_cass;
DECLARE_DRIVER_INIT(brailab4);
DECLARE_VIDEO_START(homelab2);
DECLARE_MACHINE_RESET(homelab3);
DECLARE_VIDEO_START(homelab3);
DECLARE_MACHINE_RESET(brailab4);
DECLARE_VIDEO_START(brailab4);
- uint32_t screen_update_homelab2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
- uint32_t screen_update_homelab3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
INTERRUPT_GEN_MEMBER(homelab_frame);
DECLARE_QUICKLOAD_LOAD_MEMBER(homelab);
+ uint32_t screen_update_homelab2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ uint32_t screen_update_homelab3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+
+private:
+ const uint8_t *m_p_videoram;
+ bool m_nmi;
+ required_device<cpu_device> m_maincpu;
+ required_region_ptr<u8> m_p_chargen;
+ required_device<dac_bit_interface> m_dac;
+ required_device<cassette_image_device> m_cass;
};
INTERRUPT_GEN_MEMBER(homelab_state::homelab_frame)
@@ -545,19 +548,16 @@ INPUT_PORTS_END
VIDEO_START_MEMBER(homelab_state,homelab2)
{
- m_p_chargen = memregion("chargen")->base();
m_p_videoram = memregion("maincpu")->base()+0xc000;
}
VIDEO_START_MEMBER(homelab_state,homelab3)
{
- m_p_chargen = memregion("chargen")->base();
m_p_videoram = memregion("maincpu")->base()+0xf800;
}
VIDEO_START_MEMBER(homelab_state,brailab4)
{
- m_p_chargen = memregion("chargen")->base();
m_p_videoram = memregion("maincpu")->base()+0x17800;
}
diff --git a/src/mame/drivers/homez80.cpp b/src/mame/drivers/homez80.cpp
index 7a788a731de..fe2c4cb8242 100644
--- a/src/mame/drivers/homez80.cpp
+++ b/src/mame/drivers/homez80.cpp
@@ -34,15 +34,16 @@ public:
, m_p_chargen(*this, "chargen")
{ }
- required_device<cpu_device> m_maincpu;
DECLARE_READ8_MEMBER( homez80_keyboard_r );
- required_shared_ptr<uint8_t> m_p_videoram;
- required_region_ptr<u8> m_p_chargen;
+ INTERRUPT_GEN_MEMBER(homez80_interrupt);
+ uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+
+private:
bool m_irq;
virtual void machine_reset() override;
- virtual void video_start() override;
- uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
- INTERRUPT_GEN_MEMBER(homez80_interrupt);
+ required_device<cpu_device> m_maincpu;
+ required_shared_ptr<uint8_t> m_p_videoram;
+ required_region_ptr<u8> m_p_chargen;
};
@@ -219,10 +220,6 @@ void homez80_state::machine_reset()
m_irq = 0;
}
-void homez80_state::video_start()
-{
-}
-
uint32_t homez80_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
uint8_t y,ra,chr,gfx;
diff --git a/src/mame/drivers/ibm3153.cpp b/src/mame/drivers/ibm3153.cpp
index 92dfb62537b..9e398633e67 100644
--- a/src/mame/drivers/ibm3153.cpp
+++ b/src/mame/drivers/ibm3153.cpp
@@ -46,14 +46,16 @@ public:
ibm3153_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag)
, m_maincpu(*this, "maincpu")
- { }
+ , m_p_chargen(*this, "chargen")
+ { }
- const uint8_t *m_p_chargen;
DECLARE_PALETTE_INIT(ibm3153);
uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+
private:
virtual void machine_reset() override;
required_device<cpu_device> m_maincpu;
+ required_region_ptr<u8> m_p_chargen;
};
@@ -87,7 +89,6 @@ PALETTE_INIT_MEMBER( ibm3153_state, ibm3153 )
void ibm3153_state::machine_reset()
{
- m_p_chargen = memregion("chargen")->base();
}
static MACHINE_CONFIG_START( ibm3153, ibm3153_state )
diff --git a/src/mame/drivers/ie15.cpp b/src/mame/drivers/ie15.cpp
index c9c0710bb51..cc247f67c2f 100644
--- a/src/mame/drivers/ie15.cpp
+++ b/src/mame/drivers/ie15.cpp
@@ -52,29 +52,20 @@ class ie15_state : public driver_device,
public device_serial_interface
{
public:
- ie15_state(const machine_config &mconfig, device_type type, const char *tag) :
- driver_device(mconfig, type, tag),
- device_serial_interface(mconfig, *this),
- m_maincpu(*this, "maincpu"),
- m_beeper(*this, "beeper"),
- m_rs232(*this, "rs232"),
- m_screen(*this, "screen"),
- m_io_keyboard(*this, "keyboard")
+ ie15_state(const machine_config &mconfig, device_type type, const char *tag)
+ : driver_device(mconfig, type, tag)
+ , device_serial_interface(mconfig, *this)
+ , m_maincpu(*this, "maincpu")
+ , m_p_videoram(*this, "video")
+ , m_p_chargen(*this, "chargen")
+ , m_beeper(*this, "beeper")
+ , m_rs232(*this, "rs232")
+ , m_screen(*this, "screen")
+ , m_io_keyboard(*this, "keyboard")
{ }
- virtual void machine_start() override;
- virtual void machine_reset() override;
- virtual void video_start() override;
- uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
-
DECLARE_WRITE16_MEMBER( kbd_put );
-
DECLARE_WRITE_LINE_MEMBER( serial_rx_callback );
- virtual void rcv_complete() override;
- virtual void tra_callback() override;
- virtual void tra_complete() override;
- virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override;
-
DECLARE_WRITE8_MEMBER( mem_w );
DECLARE_READ8_MEMBER( mem_r );
DECLARE_WRITE8_MEMBER( mem_addr_lo_w );
@@ -97,22 +88,19 @@ public:
DECLARE_READ8_MEMBER( serial_rx_ready_r );
DECLARE_READ8_MEMBER( serial_r );
DECLARE_WRITE8_MEMBER( serial_speed_w );
-
DECLARE_PALETTE_INIT( ie15 );
+ TIMER_CALLBACK_MEMBER(ie15_beepoff);
+ uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+private:
static const device_timer_id TIMER_HBLANK = 0;
-
void scanline_callback();
-private:
- TIMER_CALLBACK_MEMBER(ie15_beepoff);
void update_leds();
void draw_scanline(uint32_t *p, uint16_t offset, uint8_t scanline);
std::unique_ptr<uint32_t[]> m_tmpbmp;
emu_timer *m_hblank_timer;
- const uint8_t *m_p_chargen;
- uint8_t *m_p_videoram;
uint8_t m_long_beep;
uint8_t m_kb_control;
uint8_t m_kb_data;
@@ -135,8 +123,17 @@ private:
int m_vpos;
int m_marker_scanline;
-protected:
+ virtual void machine_start() override;
+ virtual void machine_reset() override;
+ virtual void video_start() override;
+ virtual void rcv_complete() override;
+ virtual void tra_callback() override;
+ virtual void tra_complete() override;
+ virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override;
+
required_device<cpu_device> m_maincpu;
+ required_region_ptr<u8> m_p_videoram;
+ required_region_ptr<u8> m_p_chargen;
required_device<beep_device> m_beeper;
required_device<rs232_port_device> m_rs232;
required_device<screen_device> m_screen;
@@ -489,8 +486,6 @@ void ie15_state::machine_reset()
void ie15_state::video_start()
{
- m_p_chargen = memregion("chargen")->base();
- m_p_videoram = memregion("video")->base();
m_video.ptr1 = m_video.ptr2 = m_latch = 0;
m_tmpbmp = std::make_unique<uint32_t[]>(IE15_TOTAL_HORZ * IE15_TOTAL_VERT);
diff --git a/src/mame/drivers/jonos.cpp b/src/mame/drivers/jonos.cpp
index b487877e81d..9a9ee43fa2b 100644
--- a/src/mame/drivers/jonos.cpp
+++ b/src/mame/drivers/jonos.cpp
@@ -28,16 +28,17 @@ public:
: driver_device(mconfig, type, tag)
, m_p_videoram(*this, "videoram")
, m_maincpu(*this, "maincpu")
- { }
+ , m_p_chargen(*this, "chargen")
+ { }
DECLARE_DRIVER_INIT(jonos);
uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
- required_shared_ptr<uint8_t> m_p_videoram;
+
private:
- const uint8_t *m_p_chargen;
virtual void machine_reset() override;
- virtual void video_start() override;
+ required_shared_ptr<uint8_t> m_p_videoram;
required_device<cpu_device> m_maincpu;
+ required_region_ptr<u8> m_p_chargen;
};
@@ -60,11 +61,6 @@ void jonos_state::machine_reset()
{
}
-void jonos_state::video_start()
-{
- m_p_chargen = memregion("chargen")->base();
-}
-
uint32_t jonos_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
uint8_t y,ra,chr,gfx;
diff --git a/src/mame/drivers/jupiter.cpp b/src/mame/drivers/jupiter.cpp
index 944608f3fa2..0f9803581cb 100644
--- a/src/mame/drivers/jupiter.cpp
+++ b/src/mame/drivers/jupiter.cpp
@@ -71,7 +71,7 @@ ADDRESS_MAP_END
//-------------------------------------------------
static ADDRESS_MAP_START( jupiter3_mem, AS_PROGRAM, 8, jupiter3_state )
- AM_RANGE(0x0000, 0xbfff) AM_RAM AM_SHARE("p_ram")
+ AM_RANGE(0x0000, 0xbfff) AM_RAM AM_SHARE("ram")
AM_RANGE(0xc000, 0xdfff) AM_RAM AM_SHARE("videoram")
AM_RANGE(0xe000, 0xefff) AM_ROM AM_REGION(Z80_TAG, 0)
AM_RANGE(0xf000, 0xffff) AM_RAM
@@ -128,11 +128,6 @@ WRITE8_MEMBER( jupiter3_state::kbd_put )
// VIDEO
//**************************************************************************
-void jupiter3_state::video_start()
-{
- m_p_chargen = memregion("chargen")->base();
-}
-
uint32_t jupiter3_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
uint8_t y,ra,chr,gfx;
diff --git a/src/mame/drivers/k8915.cpp b/src/mame/drivers/k8915.cpp
index 051467ae593..9c137b7759e 100644
--- a/src/mame/drivers/k8915.cpp
+++ b/src/mame/drivers/k8915.cpp
@@ -36,7 +36,6 @@ private:
uint8_t m_framecnt;
uint8_t m_term_data;
virtual void machine_reset() override;
- virtual void video_start() override;
required_device<cpu_device> m_maincpu;
required_shared_ptr<uint8_t> m_p_videoram;
required_region_ptr<u8> m_p_chargen;
@@ -94,10 +93,6 @@ DRIVER_INIT_MEMBER(k8915_state,k8915)
membank("boot")->configure_entries(0, 2, &RAM[0x0000], 0x10000);
}
-void k8915_state::video_start()
-{
-}
-
uint32_t k8915_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
uint8_t y,ra,chr,gfx;
diff --git a/src/mame/drivers/m79152pc.cpp b/src/mame/drivers/m79152pc.cpp
index 4228c278336..49819e96136 100644
--- a/src/mame/drivers/m79152pc.cpp
+++ b/src/mame/drivers/m79152pc.cpp
@@ -17,18 +17,21 @@ class m79152pc_state : public driver_device
{
public:
m79152pc_state(const machine_config &mconfig, device_type type, const char *tag)
- : driver_device(mconfig, type, tag),
- m_p_videoram(*this, "videoram"),
- m_p_attributes(*this, "attributes"),
- m_maincpu(*this, "maincpu") { }
+ : driver_device(mconfig, type, tag)
+ , m_p_videoram(*this, "videoram")
+ , m_p_attributes(*this, "attributes")
+ , m_maincpu(*this, "maincpu")
+ , m_p_chargen(*this, "chargen")
+ { }
- uint8_t *m_p_chargen;
+ uint32_t screen_update_m79152pc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+
+private:
+ virtual void machine_reset() override;
required_shared_ptr<uint8_t> m_p_videoram;
required_shared_ptr<uint8_t> m_p_attributes;
- virtual void machine_reset() override;
- virtual void video_start() override;
- uint32_t screen_update_m79152pc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
required_device<cpu_device> m_maincpu;
+ required_region_ptr<u8> m_p_chargen;
};
static ADDRESS_MAP_START(m79152pc_mem, AS_PROGRAM, 8, m79152pc_state)
@@ -53,11 +56,6 @@ void m79152pc_state::machine_reset()
{
}
-void m79152pc_state::video_start()
-{
- m_p_chargen = memregion("chargen")->base()+4;
-}
-
uint32_t m79152pc_state::screen_update_m79152pc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
// Attributes are unknown so are not implemented
@@ -74,7 +72,7 @@ uint32_t m79152pc_state::screen_update_m79152pc(screen_device &screen, bitmap_in
{
chr = m_p_videoram[x];
//attr = m_p_attributes[x];
- gfx = m_p_chargen[(chr<<4) | ra ];
+ gfx = m_p_chargen[((chr<<4) | ra) + 4 ];
/* Display a scanline of a character */
*p++ = BIT(gfx, 7);
diff --git a/src/mame/drivers/mes.cpp b/src/mame/drivers/mes.cpp
index 0450fc1df60..25f7dc00098 100644
--- a/src/mame/drivers/mes.cpp
+++ b/src/mame/drivers/mes.cpp
@@ -26,7 +26,6 @@ public:
private:
virtual void machine_reset() override;
- virtual void video_start() override;
required_device<cpu_device> m_maincpu;
required_shared_ptr<uint8_t> m_p_videoram;
required_region_ptr<u8> m_p_chargen;
@@ -53,10 +52,6 @@ void mes_state::machine_reset()
{
}
-void mes_state::video_start()
-{
-}
-
/* This system appears to have 2 screens. Not implemented.
Also the screen dimensions are a guess. */
uint32_t mes_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
diff --git a/src/mame/drivers/multi8.cpp b/src/mame/drivers/multi8.cpp
index 3a01417fd92..5f9c0603af6 100644
--- a/src/mame/drivers/multi8.cpp
+++ b/src/mame/drivers/multi8.cpp
@@ -26,17 +26,14 @@ class multi8_state : public driver_device
{
public:
multi8_state(const machine_config &mconfig, device_type type, const char *tag)
- : driver_device(mconfig, type, tag),
- m_maincpu(*this, "maincpu"),
- m_ppi(*this, "ppi8255_0"),
- m_crtc(*this, "crtc"),
- m_beeper(*this, "beeper")
- { }
+ : driver_device(mconfig, type, tag)
+ , m_maincpu(*this, "maincpu")
+ , m_p_chargen(*this, "chargen")
+ , m_ppi(*this, "ppi8255_0")
+ , m_crtc(*this, "crtc")
+ , m_beeper(*this, "beeper")
+ { }
- required_device<cpu_device> m_maincpu;
- required_device<i8255_device> m_ppi;
- required_device<mc6845_device> m_crtc;
- required_device<beep_device> m_beeper;
DECLARE_WRITE8_MEMBER(multi8_6845_w);
DECLARE_READ8_MEMBER(key_input_r);
DECLARE_READ8_MEMBER(key_status_r);
@@ -50,10 +47,15 @@ public:
DECLARE_WRITE8_MEMBER(portb_w);
DECLARE_WRITE8_MEMBER(portc_w);
DECLARE_WRITE8_MEMBER(ym2203_porta_w);
+ DECLARE_READ8_MEMBER(ay8912_0_r);
+ DECLARE_READ8_MEMBER(ay8912_1_r);
+ TIMER_DEVICE_CALLBACK_MEMBER(keyboard_callback);
+ uint32_t screen_update_multi8(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+
+private:
uint8_t *m_p_vram;
uint8_t *m_p_wram;
uint8_t *m_p_kanji;
- uint8_t *m_p_chargen;
uint8_t m_mcu_init;
uint8_t m_keyb_press;
uint8_t m_keyb_press_flag;
@@ -64,14 +66,15 @@ public:
uint8_t m_pen_clut[8];
uint8_t m_bw_mode;
uint16_t m_knj_addr;
- DECLARE_READ8_MEMBER(ay8912_0_r);
- DECLARE_READ8_MEMBER(ay8912_1_r);
virtual void machine_start() override;
virtual void machine_reset() override;
virtual void video_start() override;
- uint32_t screen_update_multi8(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
- TIMER_DEVICE_CALLBACK_MEMBER(keyboard_callback);
void multi8_draw_pixel(bitmap_ind16 &bitmap,int y,int x,uint8_t pen,uint8_t width);
+ required_device<cpu_device> m_maincpu;
+ required_region_ptr<u8> m_p_chargen;
+ required_device<i8255_device> m_ppi;
+ required_device<mc6845_device> m_crtc;
+ required_device<beep_device> m_beeper;
};
#define mc6845_h_char_total (m_crtc_vreg[0])
@@ -100,7 +103,6 @@ void multi8_state::video_start()
m_vram_bank = 8;
m_bw_mode = 0;
- m_p_chargen = memregion("chargen")->base();
}
void multi8_state::multi8_draw_pixel(bitmap_ind16 &bitmap,int y,int x,uint8_t pen,uint8_t width)
diff --git a/src/mame/drivers/mycom.cpp b/src/mame/drivers/mycom.cpp
index 2ee718c675f..6b736e15afd 100644
--- a/src/mame/drivers/mycom.cpp
+++ b/src/mame/drivers/mycom.cpp
@@ -69,15 +69,16 @@ public:
, m_ppi1(*this, "ppi8255_1")
, m_ppi2(*this, "ppi8255_2")
, m_cass(*this, "cassette")
- , m_wave(*this, WAVE_TAG)
, m_crtc(*this, "crtc")
, m_fdc(*this, "fdc")
, m_floppy0(*this, "fdc:0")
, m_floppy1(*this, "fdc:1")
, m_audio(*this, "sn1")
- , m_rtc(*this, "rtc"),
- m_palette(*this, "palette")
- { }
+ , m_rtc(*this, "rtc")
+ , m_palette(*this, "palette")
+ , m_p_videoram(*this, "vram")
+ , m_p_chargen(*this, "chargen")
+ { }
DECLARE_READ8_MEMBER(mycom_upper_r);
DECLARE_WRITE8_MEMBER(mycom_upper_w);
@@ -94,10 +95,9 @@ public:
TIMER_DEVICE_CALLBACK_MEMBER(mycom_kbd);
DECLARE_WRITE8_MEMBER(mycom_rtc_w);
MC6845_UPDATE_ROW(crtc_update_row);
- uint8_t *m_p_videoram;
- uint8_t *m_p_chargen;
- uint8_t m_0a;
+
private:
+ uint8_t m_0a;
uint16_t m_i_videoram;
uint8_t m_keyb_press;
uint8_t m_keyb_press_flag;
@@ -106,31 +106,24 @@ private:
uint8_t *m_p_ram;
virtual void machine_reset() override;
virtual void machine_start() override;
- virtual void video_start() override;
required_device<cpu_device> m_maincpu;
required_device<i8255_device> m_ppi0;
required_device<i8255_device> m_ppi1;
required_device<i8255_device> m_ppi2;
required_device<cassette_image_device> m_cass;
- required_device<wave_device> m_wave;
required_device<mc6845_device> m_crtc;
required_device<fd1771_t> m_fdc;
required_device<floppy_connector> m_floppy0;
required_device<floppy_connector> m_floppy1;
required_device<sn76489_device> m_audio;
required_device<msm5832_device> m_rtc;
-public:
required_device<palette_device> m_palette;
+ required_region_ptr<u8> m_p_videoram;
+ required_region_ptr<u8> m_p_chargen;
};
-void mycom_state::video_start()
-{
- m_p_videoram = memregion("vram")->base();
- m_p_chargen = memregion("chargen")->base();
-}
-
MC6845_UPDATE_ROW( mycom_state::crtc_update_row )
{
const rgb_t *palette = m_palette->palette()->entry_list_raw();
diff --git a/src/mame/drivers/nanos.cpp b/src/mame/drivers/nanos.cpp
index 97b897b7b74..95571f39104 100644
--- a/src/mame/drivers/nanos.cpp
+++ b/src/mame/drivers/nanos.cpp
@@ -23,64 +23,64 @@ class nanos_state : public driver_device
{
public:
nanos_state(const machine_config &mconfig, device_type type, const char *tag)
- : driver_device(mconfig, type, tag),
- m_maincpu(*this, "maincpu"),
- m_pio(*this, "z80pio"),
- m_pio_0(*this, "z80pio_0"),
- m_pio_1(*this, "z80pio_1"),
- m_sio_0(*this, "z80sio_0"),
- m_sio_1(*this, "z80sio_1"),
- m_ctc_0(*this, "z80ctc_0"),
- m_ctc_1(*this, "z80ctc_1"),
- m_fdc(*this, "upd765"),
- m_key_t(*this, "keyboard_timer"),
- m_ram(*this, RAM_TAG),
- m_region_maincpu(*this, "maincpu"),
- m_bank1(*this, "bank1"),
- m_bank2(*this, "bank2"),
- m_bank3(*this, "bank3"),
- m_lines(*this, {"LINE0", "LINE1", "LINE2", "LINE3", "LINE4", "LINE5", "LINE6"}),
- m_linec(*this, "LINEC")
- { }
+ : driver_device(mconfig, type, tag)
+ , m_maincpu(*this, "maincpu")
+ , m_pio(*this, "z80pio")
+ , m_pio_0(*this, "z80pio_0")
+ , m_pio_1(*this, "z80pio_1")
+ , m_sio_0(*this, "z80sio_0")
+ , m_sio_1(*this, "z80sio_1")
+ , m_ctc_0(*this, "z80ctc_0")
+ , m_ctc_1(*this, "z80ctc_1")
+ , m_fdc(*this, "upd765")
+ , m_key_t(*this, "keyboard_timer")
+ , m_ram(*this, RAM_TAG)
+ , m_region_maincpu(*this, "maincpu")
+ , m_p_chargen(*this, "chargen")
+ , m_bank1(*this, "bank1")
+ , m_bank2(*this, "bank2")
+ , m_bank3(*this, "bank3")
+ , m_lines(*this, {"LINE0", "LINE1", "LINE2", "LINE3", "LINE4", "LINE5", "LINE6"})
+ , m_linec(*this, "LINEC")
+ { }
- required_device<cpu_device> m_maincpu;
- required_device<z80pio_device> m_pio;
- required_device<z80pio_device> m_pio_0;
- required_device<z80pio_device> m_pio_1;
- required_device<z80sio0_device> m_sio_0;
- required_device<z80sio0_device> m_sio_1;
- required_device<z80ctc_device> m_ctc_0;
- required_device<z80ctc_device> m_ctc_1;
- required_device<upd765a_device> m_fdc;
- required_device<timer_device> m_key_t;
- required_device<ram_device> m_ram;
- const uint8_t *m_p_chargen;
- uint8_t m_key_command;
- uint8_t m_last_code;
- uint8_t m_key_pressed;
DECLARE_WRITE8_MEMBER( nanos_tc_w );
DECLARE_WRITE_LINE_MEMBER( ctc_z0_w );
DECLARE_WRITE_LINE_MEMBER( ctc_z1_w );
DECLARE_WRITE_LINE_MEMBER( ctc_z2_w );
- virtual void machine_reset() override;
- virtual void machine_start() override;
- virtual void video_start() override;
- uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
TIMER_DEVICE_CALLBACK_MEMBER(keyboard_callback);
DECLARE_WRITE_LINE_MEMBER(z80daisy_interrupt);
DECLARE_READ8_MEMBER(nanos_port_a_r);
DECLARE_READ8_MEMBER(nanos_port_b_r);
DECLARE_WRITE8_MEMBER(nanos_port_b_w);
DECLARE_FLOPPY_FORMATS( floppy_formats );
+ uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
-protected:
+private:
+ uint8_t m_key_command;
+ uint8_t m_last_code;
+ uint8_t m_key_pressed;
+ uint8_t row_number(uint8_t code);
+ virtual void machine_reset() override;
+ virtual void machine_start() override;
+ required_device<cpu_device> m_maincpu;
+ required_device<z80pio_device> m_pio;
+ required_device<z80pio_device> m_pio_0;
+ required_device<z80pio_device> m_pio_1;
+ required_device<z80sio0_device> m_sio_0;
+ required_device<z80sio0_device> m_sio_1;
+ required_device<z80ctc_device> m_ctc_0;
+ required_device<z80ctc_device> m_ctc_1;
+ required_device<upd765a_device> m_fdc;
+ required_device<timer_device> m_key_t;
+ required_device<ram_device> m_ram;
required_memory_region m_region_maincpu;
+ required_region_ptr<u8> m_p_chargen;
required_memory_bank m_bank1;
required_memory_bank m_bank2;
required_memory_bank m_bank3;
required_ioport_array<7> m_lines;
required_ioport m_linec;
- uint8_t row_number(uint8_t code);
};
@@ -241,11 +241,6 @@ static INPUT_PORTS_START( nanos )
INPUT_PORTS_END
-void nanos_state::video_start()
-{
- m_p_chargen = memregion("chargen")->base();
-}
-
uint32_t nanos_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
// static uint8_t framecnt=0;
diff --git a/src/mame/drivers/paso1600.cpp b/src/mame/drivers/paso1600.cpp
index 3c5c10bb89e..ae2292309cf 100644
--- a/src/mame/drivers/paso1600.cpp
+++ b/src/mame/drivers/paso1600.cpp
@@ -21,20 +21,19 @@ class paso1600_state : public driver_device
{
public:
paso1600_state(const machine_config &mconfig, device_type type, const char *tag)
- : driver_device(mconfig, type, tag),
- m_maincpu(*this, "maincpu"),
- m_pic(*this, "pic8259"),
- m_dma(*this, "8237dma"),
- m_crtc(*this, "crtc"),
- m_p_vram(*this, "vram"),
- m_p_gvram(*this, "gvram"),
- m_gfxdecode(*this, "gfxdecode"),
- m_palette(*this, "palette") { }
+ : driver_device(mconfig, type, tag)
+ , m_maincpu(*this, "maincpu")
+ , m_pic(*this, "pic8259")
+ , m_dma(*this, "8237dma")
+ , m_crtc(*this, "crtc")
+ , m_p_vram(*this, "vram")
+ , m_p_gvram(*this, "gvram")
+ , m_p_chargen(*this, "chargen")
+ , m_p_pcg(*this, "pcg")
+ , m_gfxdecode(*this, "gfxdecode")
+ , m_palette(*this, "palette")
+ { }
- required_device<cpu_device> m_maincpu;
- required_device<pic8259_device> m_pic;
- required_device<am9517a_device> m_dma;
- required_device<mc6845_device> m_crtc;
DECLARE_READ8_MEMBER(paso1600_pcg_r);
DECLARE_WRITE8_MEMBER(paso1600_pcg_w);
DECLARE_WRITE8_MEMBER(paso1600_6845_address_w);
@@ -44,22 +43,27 @@ public:
DECLARE_READ8_MEMBER(key_r);
DECLARE_WRITE8_MEMBER(key_w);
DECLARE_READ16_MEMBER(test_hi_r);
+ DECLARE_READ8_MEMBER(pc_dma_read_byte);
+ DECLARE_WRITE8_MEMBER(pc_dma_write_byte);
+ uint32_t screen_update_paso1600(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+
+private:
uint8_t m_crtc_vreg[0x100],m_crtc_index;
- uint8_t *m_p_chargen;
- uint8_t *m_p_pcg;
- required_shared_ptr<uint16_t> m_p_vram;
- required_shared_ptr<uint16_t> m_p_gvram;
- required_device<gfxdecode_device> m_gfxdecode;
- required_device<palette_device> m_palette;
struct{
uint8_t portb;
}m_keyb;
- DECLARE_READ8_MEMBER(pc_dma_read_byte);
- DECLARE_WRITE8_MEMBER(pc_dma_write_byte);
virtual void machine_start() override;
virtual void machine_reset() override;
- virtual void video_start() override;
- uint32_t screen_update_paso1600(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ required_device<cpu_device> m_maincpu;
+ required_device<pic8259_device> m_pic;
+ required_device<am9517a_device> m_dma;
+ required_device<mc6845_device> m_crtc;
+ required_shared_ptr<uint16_t> m_p_vram;
+ required_shared_ptr<uint16_t> m_p_gvram;
+ required_region_ptr<u8> m_p_chargen;
+ required_region_ptr<u8> m_p_pcg;
+ required_device<gfxdecode_device> m_gfxdecode;
+ required_device<palette_device> m_palette;
};
#define mc6845_h_char_total (m_crtc_vreg[0])
@@ -80,12 +84,6 @@ public:
#define mc6845_update_addr (((m_crtc_vreg[0x12]<<8) & 0x3f00) | (m_crtc_vreg[0x13] & 0xff))
-void paso1600_state::video_start()
-{
- m_p_chargen = memregion("chargen")->base();
- m_p_pcg = memregion("pcg")->base();
-}
-
uint32_t paso1600_state::screen_update_paso1600(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
int x,y;
diff --git a/src/mame/drivers/pasopia.cpp b/src/mame/drivers/pasopia.cpp
index 95594f2387a..ab98af7c72f 100644
--- a/src/mame/drivers/pasopia.cpp
+++ b/src/mame/drivers/pasopia.cpp
@@ -24,6 +24,8 @@ public:
pasopia_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag)
, m_maincpu(*this, "maincpu")
+ , m_p_chargen(*this, "chargen")
+ , m_p_vram(*this, "vram")
, m_ppi0(*this, "ppi8255_0")
, m_ppi1(*this, "ppi8255_1")
, m_ppi2(*this, "ppi8255_2")
@@ -57,12 +59,11 @@ private:
uint8_t m_mux_data;
bool m_video_wl;
bool m_ram_bank;
- uint8_t *m_p_vram;
virtual void machine_start() override;
virtual void machine_reset() override;
- virtual void video_start() override;
-
required_device<cpu_device> m_maincpu;
+ required_region_ptr<u8> m_p_chargen;
+ required_region_ptr<u8> m_p_vram;
required_device<i8255_device> m_ppi0;
required_device<i8255_device> m_ppi1;
required_device<i8255_device> m_ppi2;
@@ -79,14 +80,9 @@ TIMER_CALLBACK_MEMBER( pasopia_state::pio_timer )
m_pio->port_b_write(keyb_r(generic_space(),0,0xff));
}
-void pasopia_state::video_start()
-{
-}
-
MC6845_UPDATE_ROW( pasopia_state::crtc_update_row )
{
const rgb_t *palette = m_palette->palette()->entry_list_raw();
- uint8_t *m_p_chargen = memregion("chargen")->base();
uint8_t chr,gfx,fg=7,bg=0; // colours need to be determined
uint16_t mem,x;
uint32_t *p = &bitmap.pix32(y);
@@ -148,7 +144,6 @@ INPUT_PORTS_END
void pasopia_state::machine_start()
{
- m_p_vram = memregion("vram")->base();
m_hblank = 0;
membank("bank1")->set_entry(0);
membank("bank2")->set_entry(0);
diff --git a/src/mame/drivers/pcm.cpp b/src/mame/drivers/pcm.cpp
index 24b5ad9308d..4a5fc324760 100644
--- a/src/mame/drivers/pcm.cpp
+++ b/src/mame/drivers/pcm.cpp
@@ -68,17 +68,28 @@ class pcm_state : public driver_device
{
public:
pcm_state(const machine_config &mconfig, device_type type, const char *tag)
- : driver_device(mconfig, type, tag),
- m_maincpu(*this, "maincpu"),
- m_pio_s(*this, "z80pio_s"),
- m_pio_u(*this, "z80pio_u"),
- m_sio(*this, "z80sio"),
- m_ctc_s(*this, "z80ctc_s"),
- m_ctc_u(*this, "z80ctc_u"),
- m_speaker(*this, "speaker"),
- m_cass(*this, "cassette"),
- m_p_videoram(*this, "videoram"){ }
+ : driver_device(mconfig, type, tag)
+ , m_maincpu(*this, "maincpu")
+ , m_pio_s(*this, "z80pio_s")
+ , m_pio_u(*this, "z80pio_u")
+ , m_sio(*this, "z80sio")
+ , m_ctc_s(*this, "z80ctc_s")
+ , m_ctc_u(*this, "z80ctc_u")
+ , m_speaker(*this, "speaker")
+ , m_cass(*this, "cassette")
+ , m_p_videoram(*this, "videoram")
+ , m_p_chargen(*this, "chargen")
+ { }
+ DECLARE_READ8_MEMBER( pcm_85_r );
+ DECLARE_WRITE_LINE_MEMBER( pcm_82_w );
+ DECLARE_WRITE8_MEMBER( pcm_85_w );
+ uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+
+private:
+ bool m_cone;
+ uint8_t m_85;
+ virtual void machine_reset() override;
required_device<cpu_device> m_maincpu;
required_device<z80pio_device> m_pio_s;
required_device<z80pio_device> m_pio_u;
@@ -87,17 +98,8 @@ public:
required_device<z80ctc_device> m_ctc_u;
required_device<speaker_sound_device> m_speaker;
required_device<cassette_image_device> m_cass;
- DECLARE_READ8_MEMBER( pcm_85_r );
- DECLARE_WRITE_LINE_MEMBER( pcm_82_w );
- DECLARE_WRITE8_MEMBER( pcm_85_w );
- uint8_t *m_p_chargen;
- bool m_cone;
required_shared_ptr<uint8_t> m_p_videoram;
- virtual void machine_reset() override;
- virtual void video_start() override;
- uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
-private:
- uint8_t m_85;
+ required_region_ptr<u8> m_p_chargen;
};
@@ -183,11 +185,6 @@ void pcm_state::machine_reset()
{
}
-void pcm_state::video_start()
-{
- m_p_chargen = memregion("chargen")->base();
-}
-
uint32_t pcm_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
uint8_t y,ra,chr,gfx;
diff --git a/src/mame/drivers/pegasus.cpp b/src/mame/drivers/pegasus.cpp
index 534db540347..0be3df3f145 100644
--- a/src/mame/drivers/pegasus.cpp
+++ b/src/mame/drivers/pegasus.cpp
@@ -62,6 +62,8 @@ public:
, m_exp_0c(*this, "exp0c")
, m_exp_0d(*this, "exp0d")
, m_p_videoram(*this, "videoram")
+ , m_p_chargen(*this, "chargen")
+ , m_p_pcgram(*this, "pcg")
, m_io_keyboard(*this, "KEY.%u", 0)
{ }
@@ -84,15 +86,13 @@ public:
DECLARE_DEVICE_IMAGE_LOAD_MEMBER(exp02_load) { return load_cart(image, m_exp_02, "2000"); }
DECLARE_DEVICE_IMAGE_LOAD_MEMBER(exp0c_load) { return load_cart(image, m_exp_0c, "c000"); }
DECLARE_DEVICE_IMAGE_LOAD_MEMBER(exp0d_load) { return load_cart(image, m_exp_0d, "d000"); }
+
private:
uint8_t m_kbd_row;
bool m_kbd_irq;
- uint8_t *m_p_pcgram;
- const uint8_t *m_p_chargen;
uint8_t m_control_bits;
virtual void machine_reset() override;
virtual void machine_start() override;
- virtual void video_start() override;
void pegasus_decrypt_rom(uint8_t *ROM);
required_device<cpu_device> m_maincpu;
required_device<cassette_image_device> m_cass;
@@ -104,6 +104,8 @@ private:
required_device<generic_slot_device> m_exp_0c;
required_device<generic_slot_device> m_exp_0d;
required_shared_ptr<uint8_t> m_p_videoram;
+ required_region_ptr<u8> m_p_chargen;
+ required_region_ptr<u8> m_p_pcgram;
required_ioport_array<8> m_io_keyboard;
};
@@ -286,11 +288,6 @@ static INPUT_PORTS_START( pegasus )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("{ }") PORT_CODE(KEYCODE_CLOSEBRACE) PORT_CHAR('{') PORT_CHAR('}')
INPUT_PORTS_END
-void pegasus_state::video_start()
-{
- m_p_chargen = memregion("chargen")->base();
-}
-
static const uint8_t mcm6571a_shift[] =
{
0,1,1,0,0,0,1,0,0,0,0,1,0,0,0,0,
@@ -452,8 +449,6 @@ image_init_result pegasus_state::load_cart(device_image_interface &image, generi
void pegasus_state::machine_start()
{
- m_p_pcgram = memregion("pcg")->base();
-
if (m_exp_00->exists())
m_maincpu->space(AS_PROGRAM).install_read_handler(0x0000, 0x0fff, read8_delegate(FUNC(generic_slot_device::read_rom),(generic_slot_device*)m_exp_00));
if (m_exp_01->exists())
diff --git a/src/mame/drivers/phunsy.cpp b/src/mame/drivers/phunsy.cpp
index 0b1428767be..c7cbf6a0728 100644
--- a/src/mame/drivers/phunsy.cpp
+++ b/src/mame/drivers/phunsy.cpp
@@ -65,7 +65,6 @@ private:
uint8_t m_data_out;
uint8_t m_keyboard_input;
virtual void machine_reset() override;
- virtual void video_start() override;
required_device<cpu_device> m_maincpu;
required_device<speaker_sound_device> m_speaker;
required_device<cassette_image_device> m_cass;
@@ -206,11 +205,6 @@ PALETTE_INIT_MEMBER(phunsy_state, phunsy)
}
-void phunsy_state::video_start()
-{
-}
-
-
uint32_t phunsy_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
uint8_t y,ra,chr,gfx,col;
diff --git a/src/mame/drivers/plan80.cpp b/src/mame/drivers/plan80.cpp
index 599cd0ebcc7..ee02d3373b1 100644
--- a/src/mame/drivers/plan80.cpp
+++ b/src/mame/drivers/plan80.cpp
@@ -51,7 +51,6 @@ private:
virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override;
uint8_t m_kbd_row;
virtual void machine_reset() override;
- virtual void video_start() override;
required_device<cpu_device> m_maincpu;
required_shared_ptr<uint8_t> m_p_videoram;
required_region_ptr<u8> m_p_chargen;
@@ -175,10 +174,6 @@ DRIVER_INIT_MEMBER(plan80_state,plan80)
membank("boot")->configure_entries(0, 2, &RAM[0x0000], 0xf800);
}
-void plan80_state::video_start()
-{
-}
-
uint32_t plan80_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
uint8_t y,ra,chr,gfx;
diff --git a/src/mame/drivers/proteus3.cpp b/src/mame/drivers/proteus3.cpp
index b0c55b5392b..d689f6e56c3 100644
--- a/src/mame/drivers/proteus3.cpp
+++ b/src/mame/drivers/proteus3.cpp
@@ -61,6 +61,8 @@ public:
proteus3_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag)
, m_maincpu(*this, "maincpu")
+ , m_p_videoram(*this, "vram")
+ , m_p_chargen(*this, "chargen")
, m_pia(*this, "pia")
, m_acia1(*this, "acia1")
, m_acia2(*this, "acia2")
@@ -81,14 +83,14 @@ private:
uint8_t m_video_data;
uint8_t m_flashcnt;
uint16_t m_curs_pos;
- uint8_t *m_p_chargen;
- uint8_t *m_p_videoram;
uint8_t m_cass_data[4];
bool m_cass_state;
bool m_cassold;
uint8_t m_clockcnt;
virtual void machine_reset() override;
required_device<cpu_device> m_maincpu;
+ required_region_ptr<u8> m_p_videoram;
+ required_region_ptr<u8> m_p_chargen;
required_device<pia6821_device> m_pia;
required_device<acia6850_device> m_acia1; // cassette uart
required_device<acia6850_device> m_acia2; // tty keyboard uart
@@ -298,8 +300,6 @@ GFXDECODE_END
void proteus3_state::machine_reset()
{
- m_p_chargen = memregion("chargen")->base();
- m_p_videoram = memregion("vram")->base();
m_curs_pos = 0;
m_cass_data[0] = m_cass_data[1] = m_cass_data[2] = m_cass_data[3] = 0;
m_cass_state = 1;
diff --git a/src/mame/drivers/ptcsol.cpp b/src/mame/drivers/ptcsol.cpp
index eef88611f54..a5b419fdcb2 100644
--- a/src/mame/drivers/ptcsol.cpp
+++ b/src/mame/drivers/ptcsol.cpp
@@ -150,6 +150,7 @@ public:
, m_uart(*this, "uart")
, m_uart_s(*this, "uart_s")
, m_p_videoram(*this, "videoram")
+ , m_p_chargen(*this, "chargen")
, m_iop_arrows(*this, "ARROWS")
, m_iop_config(*this, "CONFIG")
, m_iop_s1(*this, "S1")
@@ -183,10 +184,8 @@ private:
uint8_t m_sol20_fa;
virtual void machine_reset() override;
virtual void machine_start() override;
- virtual void video_start() override;
uint8_t m_sol20_fc;
uint8_t m_sol20_fe;
- const uint8_t *m_p_chargen;
uint8_t m_framecnt;
cass_data_t m_cass_data;
emu_timer *m_cassette_timer;
@@ -197,6 +196,7 @@ private:
required_device<ay31015_device> m_uart;
required_device<ay31015_device> m_uart_s;
required_shared_ptr<uint8_t> m_p_videoram;
+ required_region_ptr<u8> m_p_chargen;
required_ioport m_iop_arrows;
required_ioport m_iop_config;
required_ioport m_iop_s1;
@@ -626,11 +626,6 @@ DRIVER_INIT_MEMBER(sol20_state,sol20)
membank("boot")->configure_entries(0, 2, &RAM[0x0000], 0xc000);
}
-void sol20_state::video_start()
-{
- m_p_chargen = memregion("chargen")->base();
-}
-
uint32_t sol20_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
// Visible screen is 64 x 16, with start position controlled by scroll register.
diff --git a/src/mame/drivers/rc702.cpp b/src/mame/drivers/rc702.cpp
index 8812d491702..d9091585e84 100644
--- a/src/mame/drivers/rc702.cpp
+++ b/src/mame/drivers/rc702.cpp
@@ -42,6 +42,7 @@ public:
: driver_device(mconfig, type, tag)
, m_palette(*this, "palette")
, m_maincpu(*this, "maincpu")
+ , m_p_chargen(*this, "chargen")
, m_sio1(*this, "sio1")
, m_ctc1(*this, "ctc1")
, m_pio(*this, "pio")
@@ -73,7 +74,6 @@ public:
DECLARE_WRITE8_MEMBER(kbd_put);
private:
- uint8_t *m_p_chargen;
bool m_q_state;
bool m_qbar_state;
bool m_drq_state;
@@ -82,6 +82,7 @@ private:
bool m_tc;
required_device<palette_device> m_palette;
required_device<cpu_device> m_maincpu;
+ required_region_ptr<u8> m_p_chargen;
required_device<z80dart_device> m_sio1;
required_device<z80ctc_device> m_ctc1;
required_device<z80pio_device> m_pio;
@@ -244,7 +245,6 @@ DRIVER_INIT_MEMBER( rc702_state, rc702 )
membank("bankr0")->configure_entry(1, &main[0x0000]);
membank("bankr0")->configure_entry(0, &main[0x10000]);
membank("bankw0")->configure_entry(0, &main[0x0000]);
- m_p_chargen = memregion("chargen")->base();
m_palette->set_pen_colors(0, our_palette, ARRAY_LENGTH(our_palette));
}
diff --git a/src/mame/drivers/sbrain.cpp b/src/mame/drivers/sbrain.cpp
index 24c02aad665..aaf052af8ac 100644
--- a/src/mame/drivers/sbrain.cpp
+++ b/src/mame/drivers/sbrain.cpp
@@ -47,28 +47,26 @@ To Do:
class sbrain_state : public driver_device
{
public:
- sbrain_state(const machine_config &mconfig, device_type type, const char *tag) :
- driver_device(mconfig, type, tag),
- m_p_videoram(*this, "videoram"),
- m_maincpu(*this, "maincpu"),
- m_subcpu(*this, "subcpu"),
- m_beep(*this, "beeper"),
- m_brg(*this, "brg"),
- m_u0(*this, "uart0"),
- m_u1(*this, "uart1"),
- m_ppi(*this, "ppi"),
- m_fdc (*this, "fdc"),
- m_floppy0(*this, "fdc:0"),
- m_floppy1(*this, "fdc:1"),
- m_vs(*this, "VS"),
- m_bankr0(*this, "bankr0"),
- m_bankw0(*this, "bankw0"),
- m_bank2(*this, "bank2") {}
+ sbrain_state(const machine_config &mconfig, device_type type, const char *tag)
+ : driver_device(mconfig, type, tag)
+ , m_maincpu(*this, "maincpu")
+ , m_subcpu(*this, "subcpu")
+ , m_p_videoram(*this, "videoram")
+ , m_p_chargen(*this, "chargen")
+ , m_beep(*this, "beeper")
+ , m_brg(*this, "brg")
+ , m_u0(*this, "uart0")
+ , m_u1(*this, "uart1")
+ , m_ppi(*this, "ppi")
+ , m_fdc (*this, "fdc")
+ , m_floppy0(*this, "fdc:0")
+ , m_floppy1(*this, "fdc:1")
+ , m_vs(*this, "VS")
+ , m_bankr0(*this, "bankr0")
+ , m_bankw0(*this, "bankw0")
+ , m_bank2(*this, "bank2")
+ {}
-public:
- const uint8_t *m_p_chargen;
- uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
- required_shared_ptr<uint8_t> m_p_videoram;
DECLARE_DRIVER_INIT(sbrain);
DECLARE_MACHINE_RESET(sbrain);
DECLARE_READ8_MEMBER(ppi_pa_r);
@@ -82,6 +80,8 @@ public:
DECLARE_WRITE8_MEMBER(baud_w);
DECLARE_WRITE_LINE_MEMBER(fr_w);
DECLARE_WRITE_LINE_MEMBER(ft_w);
+ uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+
private:
uint8_t m_porta;
uint8_t m_portb;
@@ -89,6 +89,8 @@ private:
uint8_t m_port08;
required_device<cpu_device> m_maincpu;
required_device<cpu_device> m_subcpu;
+ required_shared_ptr<uint8_t> m_p_videoram;
+ required_region_ptr<u8> m_p_chargen;
required_device<beep_device> m_beep;
required_device<com8116_device> m_brg;
required_device<i8251_device> m_u0;
@@ -270,7 +272,6 @@ SLOT_INTERFACE_END
MACHINE_RESET_MEMBER( sbrain_state, sbrain )
{
- m_p_chargen = memregion("chargen")->base();
m_bankr0->set_entry(1); // point at rom
m_bankw0->set_entry(0); // always write to ram
m_bank2->set_entry(1); // point at maincpu bank
diff --git a/src/mame/drivers/sm7238.cpp b/src/mame/drivers/sm7238.cpp
index f1577fb88ec..ab918d75e9a 100644
--- a/src/mame/drivers/sm7238.cpp
+++ b/src/mame/drivers/sm7238.cpp
@@ -55,29 +55,26 @@
class sm7238_state : public driver_device
{
public:
- sm7238_state(const machine_config &mconfig, device_type type, const char *tag) :
- driver_device(mconfig, type, tag),
- m_p_videoram(*this, "videoram"),
- m_maincpu(*this, "maincpu"),
- m_nvram(*this, "nvram"),
- m_pic8259(*this, "pic8259"),
- m_i8251line(*this, "i8251line"),
- m_rs232(*this, "rs232"),
- m_i8251kbd(*this, "i8251kbd"),
- m_keyboard(*this, "keyboard"),
- m_i8251prn(*this, "i8251prn"),
- m_printer(*this, "prtr"),
- m_t_hblank(*this, "t_hblank"),
- m_t_vblank(*this, "t_vblank"),
- m_t_color(*this, "t_color"),
- m_t_iface(*this, "t_iface"),
- m_screen(*this, "screen")
+ sm7238_state(const machine_config &mconfig, device_type type, const char *tag)
+ : driver_device(mconfig, type, tag)
+ , m_maincpu(*this, "maincpu")
+ , m_nvram(*this, "nvram")
+ , m_p_videoram(*this, "videoram")
+ , m_p_chargen(*this, "chargen")
+ , m_pic8259(*this, "pic8259")
+ , m_i8251line(*this, "i8251line")
+ , m_rs232(*this, "rs232")
+ , m_i8251kbd(*this, "i8251kbd")
+ , m_keyboard(*this, "keyboard")
+ , m_i8251prn(*this, "i8251prn")
+ , m_printer(*this, "prtr")
+ , m_t_hblank(*this, "t_hblank")
+ , m_t_vblank(*this, "t_vblank")
+ , m_t_color(*this, "t_color")
+ , m_t_iface(*this, "t_iface")
+ , m_screen(*this, "screen")
{ }
- virtual void machine_reset() override;
- virtual void video_start() override;
- uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
- void screen_eof(screen_device &screen, bool state);
TIMER_DEVICE_CALLBACK_MEMBER( scanline_callback );
DECLARE_PALETTE_INIT(sm7238);
@@ -86,6 +83,8 @@ public:
DECLARE_WRITE8_MEMBER(control_w);
DECLARE_WRITE8_MEMBER(text_control_w);
+ uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void screen_eof(screen_device &screen, bool state);
private:
uint32_t draw_scanline(uint16_t *p, uint16_t offset, uint8_t scanline);
@@ -95,17 +94,18 @@ private:
void text_memory_clear();
void recompute_parameters();
- const uint8_t *m_p_chargen;
struct {
uint8_t control;
uint8_t stride;
uint16_t ptr;
} m_video;
-protected:
- required_shared_ptr<uint8_t> m_p_videoram;
+ virtual void machine_reset() override;
+ virtual void video_start() override;
required_device<cpu_device> m_maincpu;
required_device<nvram_device> m_nvram;
+ required_shared_ptr<uint8_t> m_p_videoram;
+ required_region_ptr<u8> m_p_chargen;
required_device<pic8259_device> m_pic8259;
required_device<i8251_device> m_i8251line;
required_device<rs232_port_device> m_rs232;
@@ -154,8 +154,6 @@ void sm7238_state::machine_reset()
void sm7238_state::video_start()
{
- m_p_chargen = memregion("chargen")->base();
-
m_tmpclip = rectangle(0, KSM_DISP_HORZ-1, 0, KSM_DISP_VERT-1);
m_tmpbmp.allocate(KSM_DISP_HORZ, KSM_DISP_VERT);
}
diff --git a/src/mame/drivers/unior.cpp b/src/mame/drivers/unior.cpp
index da086ff5bdd..b8b6dc62193 100644
--- a/src/mame/drivers/unior.cpp
+++ b/src/mame/drivers/unior.cpp
@@ -80,7 +80,6 @@ private:
uint8_t m_4c;
uint8_t m_4e;
virtual void machine_reset() override;
- virtual void video_start() override;
required_device<cpu_device> m_maincpu;
required_device<pit8253_device> m_pit;
required_device<i8257_device> m_dma;
@@ -382,10 +381,6 @@ void unior_state::machine_reset()
m_maincpu->set_state_int(I8085_PC, 0xF800);
}
-void unior_state::video_start()
-{
-}
-
static MACHINE_CONFIG_START( unior, unior_state )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu",I8080, XTAL_20MHz / 9)
diff --git a/src/mame/drivers/unistar.cpp b/src/mame/drivers/unistar.cpp
index b6796a2873c..ca67999c223 100644
--- a/src/mame/drivers/unistar.cpp
+++ b/src/mame/drivers/unistar.cpp
@@ -28,7 +28,6 @@ public:
private:
virtual void machine_reset() override;
- virtual void video_start() override;
required_device<cpu_device> m_maincpu;
required_region_ptr<u8> m_p_chargen;
};
@@ -63,10 +62,6 @@ PALETTE_INIT_MEMBER( unistar_state, unistar )
palette.set_pen_color(2, 0, 128, 0 ); /* Dimmed */
}
-void unistar_state::video_start()
-{
-}
-
uint32_t unistar_state::screen_update_unistar(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
return 0;
diff --git a/src/mame/drivers/vta2000.cpp b/src/mame/drivers/vta2000.cpp
index d6cce560429..f0703c42413 100644
--- a/src/mame/drivers/vta2000.cpp
+++ b/src/mame/drivers/vta2000.cpp
@@ -37,7 +37,6 @@ public:
private:
virtual void machine_reset() override;
- virtual void video_start() override;
required_device<cpu_device> m_maincpu;
required_shared_ptr<uint8_t> m_p_videoram;
required_region_ptr<u8> m_p_chargen;
@@ -64,10 +63,6 @@ void vta2000_state::machine_reset()
{
}
-void vta2000_state::video_start()
-{
-}
-
uint32_t vta2000_state::screen_update_vta2000(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
/* Cursor is missing. */
{
diff --git a/src/mame/drivers/z1013.cpp b/src/mame/drivers/z1013.cpp
index 0d916d0e918..5f05d470866 100644
--- a/src/mame/drivers/z1013.cpp
+++ b/src/mame/drivers/z1013.cpp
@@ -79,7 +79,6 @@ private:
uint8_t m_keyboard_line;
bool m_keyboard_part;
virtual void machine_reset() override;
- virtual void video_start() override;
required_device<cpu_device> m_maincpu;
required_device<cassette_image_device> m_cass;
required_shared_ptr<uint8_t> m_p_videoram;
@@ -223,10 +222,6 @@ static INPUT_PORTS_START( z1013 )
INPUT_PORTS_END
-void z1013_state::video_start()
-{
-}
-
uint32_t z1013_state::screen_update_z1013(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
uint8_t y,ra,chr,gfx;
diff --git a/src/mame/drivers/z9001.cpp b/src/mame/drivers/z9001.cpp
index 255502e3688..c2da9e1da96 100644
--- a/src/mame/drivers/z9001.cpp
+++ b/src/mame/drivers/z9001.cpp
@@ -65,7 +65,6 @@ private:
bool m_cassbit;
virtual void machine_reset() override;
//virtual void machine_start();
- virtual void video_start() override;
required_device<cpu_device> m_maincpu;
required_device<beep_device> m_beeper;
required_device<cassette_image_device> m_cass;
@@ -129,10 +128,6 @@ void z9001_state::machine_reset()
m_maincpu->set_state_int(Z80_PC, 0xf000);
}
-void z9001_state::video_start()
-{
-}
-
uint32_t z9001_state::screen_update_z9001(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
uint8_t y,ra,chr,gfx,col,fg,bg;
diff --git a/src/mame/drivers/zrt80.cpp b/src/mame/drivers/zrt80.cpp
index 54185f62bf0..e7a1c85467f 100644
--- a/src/mame/drivers/zrt80.cpp
+++ b/src/mame/drivers/zrt80.cpp
@@ -53,7 +53,6 @@ private:
virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override;
uint8_t m_term_data;
virtual void machine_reset() override;
- virtual void video_start() override;
required_shared_ptr<uint8_t> m_p_videoram;
required_device<cpu_device> m_maincpu;
required_device<mc6845_device> m_crtc;
@@ -207,10 +206,6 @@ void zrt80_state::machine_reset()
m_term_data = 0;
}
-void zrt80_state::video_start()
-{
-}
-
MC6845_UPDATE_ROW( zrt80_state::crtc_update_row )
{
const rgb_t *palette = m_palette->palette()->entry_list_raw();
diff --git a/src/mame/includes/aussiebyte.h b/src/mame/includes/aussiebyte.h
index e3723bcb284..6634357ae36 100644
--- a/src/mame/includes/aussiebyte.h
+++ b/src/mame/includes/aussiebyte.h
@@ -34,6 +34,9 @@ public:
: driver_device(mconfig, type, tag)
, m_palette(*this, "palette")
, m_maincpu(*this, "maincpu")
+ , m_p_chargen(*this, "chargen")
+ , m_p_videoram(*this, "vram")
+ , m_p_attribram(*this, "aram")
, m_ctc(*this, "ctc")
, m_dma(*this, "dma")
, m_pio1(*this, "pio1")
@@ -91,8 +94,6 @@ public:
DECLARE_WRITE8_MEMBER(register_w);
MC6845_UPDATE_ROW(crtc_update_row);
MC6845_ON_UPDATE_ADDR_CHANGED(crtc_update_addr);
- int m_centronics_busy;
- required_device<palette_device> m_palette;
private:
uint8_t crt8002(uint8_t ac_ra, uint8_t ac_chr, uint8_t ac_attr, uint16_t ac_cnt, bool ac_curs);
@@ -106,12 +107,14 @@ private:
uint8_t m_port35; // byte to be written to vram or aram
uint8_t m_video_index;
uint16_t m_cnt;
- uint8_t *m_p_videoram;
- uint8_t *m_p_attribram;
- const uint8_t *m_p_chargen;
uint16_t m_alpha_address;
uint16_t m_graph_address;
+ int m_centronics_busy;
+ required_device<palette_device> m_palette;
required_device<cpu_device> m_maincpu;
+ required_region_ptr<u8> m_p_chargen;
+ required_region_ptr<u8> m_p_videoram;
+ required_region_ptr<u8> m_p_attribram;
required_device<z80ctc_device> m_ctc;
required_device<z80dma_device> m_dma;
required_device<z80pio_device> m_pio1;
diff --git a/src/mame/includes/jupiter.h b/src/mame/includes/jupiter.h
index 4a10d99bfb9..0f624613125 100644
--- a/src/mame/includes/jupiter.h
+++ b/src/mame/includes/jupiter.h
@@ -35,7 +35,8 @@ public:
: driver_device(mconfig, type, tag)
, m_maincpu(*this, Z80_TAG)
, m_p_videoram(*this, "videoram")
- , m_p_ram(*this, "p_ram")
+ , m_p_ram(*this, "ram")
+ , m_p_chargen(*this, "chargen")
{ }
uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
@@ -46,13 +47,12 @@ public:
DECLARE_READ8_MEMBER(ff_r);
private:
- required_device<cpu_device> m_maincpu;
uint8_t m_term_data;
+ virtual void machine_reset() override;
+ required_device<cpu_device> m_maincpu;
required_shared_ptr<uint8_t> m_p_videoram;
required_shared_ptr<uint8_t> m_p_ram;
- const uint8_t *m_p_chargen;
- virtual void machine_reset() override;
- virtual void video_start() override;
+ required_region_ptr<u8> m_p_chargen;
};
#endif