diff options
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 |
commit | 2654773c5f7cdcd5ae44d35c391a9972cad11121 (patch) | |
tree | 4365ff504aa913475825a967c8f0e594b9d85542 | |
parent | ff1c7e85fa20a2d21de80a3c22cdbbb8c1777c6a (diff) |
(nw) Finished converting m_p_chargen to required region, and associated cleanups.
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 |