From e2eff859010d88e09667420619c1653c2850737c Mon Sep 17 00:00:00 2001 From: AJR Date: Sat, 18 May 2019 20:24:13 -0400 Subject: mc6845: More consistent identification of HD6845S variant (nw) --- src/devices/bus/acorn/system/vdu40.cpp | 2 +- src/devices/bus/acorn/system/vdu80.cpp | 2 +- src/devices/bus/c64/xl80.cpp | 4 ++-- src/devices/bus/c64/xl80.h | 2 +- src/devices/bus/mtx/sdx.cpp | 4 ++-- src/devices/bus/svi3x8/slot/sv806.cpp | 4 ++-- src/devices/bus/svi3x8/slot/sv806.h | 2 +- src/devices/bus/vic20/videopak.cpp | 4 ++-- src/devices/bus/vic20/videopak.h | 2 +- src/devices/video/mc6845.cpp | 39 +++++++++------------------------- src/devices/video/mc6845.h | 17 +++------------ src/mame/drivers/albazg.cpp | 2 +- src/mame/drivers/alphatro.cpp | 2 +- src/mame/drivers/amstrad.cpp | 2 +- src/mame/drivers/amust.cpp | 2 +- src/mame/drivers/apricot.cpp | 8 +++---- src/mame/drivers/b16.cpp | 2 +- src/mame/drivers/bbc.cpp | 28 ++++++++++++------------ src/mame/drivers/blitz68k.cpp | 10 ++++----- src/mame/drivers/bml3.cpp | 2 +- src/mame/drivers/candela.cpp | 11 +++++----- src/mame/drivers/cgenie.cpp | 10 ++++----- src/mame/drivers/chance32.cpp | 2 +- src/mame/drivers/coinmstr.cpp | 2 +- src/mame/drivers/dgn_beta.cpp | 4 ++-- src/mame/drivers/docastle.cpp | 2 +- src/mame/drivers/dragon.cpp | 4 ++-- src/mame/drivers/duet16.cpp | 8 +++---- src/mame/drivers/fanucspmg.cpp | 2 +- src/mame/drivers/flipjack.cpp | 8 +++---- src/mame/drivers/fp1100.cpp | 4 ++-- src/mame/drivers/fp6000.cpp | 2 +- src/mame/drivers/hitpoker.cpp | 2 +- src/mame/drivers/hnayayoi.cpp | 18 ++++++++-------- src/mame/drivers/itt1700.cpp | 6 +++--- src/mame/drivers/laserbas.cpp | 2 +- src/mame/drivers/lola8a.cpp | 4 ++-- src/mame/drivers/luckgrln.cpp | 2 +- src/mame/drivers/mbc200.cpp | 4 ++-- src/mame/drivers/mbc55x.cpp | 2 +- src/mame/drivers/mpu4dealem.cpp | 2 +- src/mame/drivers/multi16.cpp | 10 ++++----- src/mame/drivers/multi8.cpp | 2 +- src/mame/drivers/myb3k.cpp | 10 ++++----- src/mame/drivers/nyny.cpp | 2 +- src/mame/drivers/othello.cpp | 4 ++-- src/mame/drivers/paso1600.cpp | 2 +- src/mame/drivers/pasopia.cpp | 4 ++-- src/mame/drivers/pasopia7.cpp | 4 ++-- src/mame/drivers/peoplepc.cpp | 2 +- src/mame/drivers/pwrview.cpp | 8 +++---- src/mame/drivers/qvt102.cpp | 6 +++--- src/mame/drivers/royalmah.cpp | 2 +- src/mame/drivers/smc777.cpp | 6 +++--- src/mame/drivers/speedatk.cpp | 2 +- src/mame/drivers/tapatune.cpp | 4 ++-- src/mame/drivers/twincobr.cpp | 2 +- src/mame/drivers/victor9k.cpp | 4 ++-- src/mame/drivers/videosaa.cpp | 2 +- src/mame/drivers/vk100.cpp | 2 +- src/mame/drivers/wardner.cpp | 2 +- src/mame/drivers/x1.cpp | 2 +- src/mame/drivers/x1twin.cpp | 2 +- src/mame/includes/bbc.h | 2 +- src/mame/includes/docastle.h | 2 +- src/mame/includes/dragon.h | 2 +- src/mame/includes/speedatk.h | 2 +- src/mame/video/v1050.cpp | 4 ++-- 68 files changed, 154 insertions(+), 183 deletions(-) diff --git a/src/devices/bus/acorn/system/vdu40.cpp b/src/devices/bus/acorn/system/vdu40.cpp index 4f97b778a5b..916d7309dc3 100644 --- a/src/devices/bus/acorn/system/vdu40.cpp +++ b/src/devices/bus/acorn/system/vdu40.cpp @@ -33,7 +33,7 @@ void acorn_vdu40_device::device_add_mconfig(machine_config &config) PALETTE(config, "palette").set_entries(8); - HD6845(config, m_crtc, 12_MHz_XTAL / 6); + HD6845S(config, m_crtc, 12_MHz_XTAL / 6); // "MC6845S" on schematics m_crtc->set_screen("screen"); m_crtc->set_show_border_area(false); m_crtc->set_char_width(12); diff --git a/src/devices/bus/acorn/system/vdu80.cpp b/src/devices/bus/acorn/system/vdu80.cpp index ef6cd463baa..702041c3cf1 100644 --- a/src/devices/bus/acorn/system/vdu80.cpp +++ b/src/devices/bus/acorn/system/vdu80.cpp @@ -97,7 +97,7 @@ void acorn_vdu80_device::device_add_mconfig(machine_config &config) GFXDECODE(config, "gfxdecode", m_palette, gfx_acorn_vdu80); PALETTE(config, m_palette, palette_device::MONOCHROME); - H46505(config, m_crtc, 2_MHz_XTAL); + HD6845S(config, m_crtc, 2_MHz_XTAL); // "46505" on schematics (variant not verified) m_crtc->set_screen("screen"); m_crtc->set_show_border_area(false); m_crtc->set_char_width(6); diff --git a/src/devices/bus/c64/xl80.cpp b/src/devices/bus/c64/xl80.cpp index 8e09508e2a3..19a2f768a2c 100644 --- a/src/devices/bus/c64/xl80.cpp +++ b/src/devices/bus/c64/xl80.cpp @@ -126,7 +126,7 @@ GFXDECODE_END void c64_xl80_device::device_add_mconfig(machine_config &config) { screen_device &screen(SCREEN(config, MC6845_SCREEN_TAG, SCREEN_TYPE_RASTER, rgb_t::white())); - screen.set_screen_update(HD46505SP_TAG, FUNC(h46505_device::screen_update)); + screen.set_screen_update(HD46505SP_TAG, FUNC(hd6845s_device::screen_update)); screen.set_size(80*8, 24*8); screen.set_visarea(0, 80*8-1, 0, 24*8-1); screen.set_refresh_hz(50); @@ -134,7 +134,7 @@ void c64_xl80_device::device_add_mconfig(machine_config &config) GFXDECODE(config, "gfxdecode", m_palette, gfx_c64_xl80); PALETTE(config, m_palette, palette_device::MONOCHROME); - H46505(config, m_crtc, XTAL(14'318'181) / 8); + HD6845S(config, m_crtc, XTAL(14'318'181) / 8); m_crtc->set_screen(MC6845_SCREEN_TAG); m_crtc->set_show_border_area(true); m_crtc->set_char_width(8); diff --git a/src/devices/bus/c64/xl80.h b/src/devices/bus/c64/xl80.h index 82ebdee51d0..70a9b1cba9d 100644 --- a/src/devices/bus/c64/xl80.h +++ b/src/devices/bus/c64/xl80.h @@ -49,7 +49,7 @@ protected: private: MC6845_UPDATE_ROW( crtc_update_row ); - required_device m_crtc; + required_device m_crtc; required_device m_palette; required_memory_region m_char_rom; optional_shared_ptr m_ram; diff --git a/src/devices/bus/mtx/sdx.cpp b/src/devices/bus/mtx/sdx.cpp index 44687e09f08..d34e73e7605 100644 --- a/src/devices/bus/mtx/sdx.cpp +++ b/src/devices/bus/mtx/sdx.cpp @@ -154,12 +154,12 @@ void mtx_sdxcpm_device::device_add_mconfig(machine_config &config) m_screen->set_refresh_hz(50); m_screen->set_size(960, 313); m_screen->set_visarea(00, 640 - 1, 0, 240 - 1); - m_screen->set_screen_update("crtc", FUNC(hd6845_device::screen_update)); + m_screen->set_screen_update("crtc", FUNC(mc6845_device::screen_update)); GFXDECODE(config, "gfxdecode", "palette", gfx_mtx_sdx); PALETTE(config, "palette", palette_device::RGB_3BIT); - HD6845(config, m_crtc, 15_MHz_XTAL / 8); + MC6845(config, m_crtc, 15_MHz_XTAL / 8); m_crtc->set_screen("screen"); m_crtc->set_show_border_area(false); m_crtc->set_char_width(8); diff --git a/src/devices/bus/svi3x8/slot/sv806.cpp b/src/devices/bus/svi3x8/slot/sv806.cpp index aed4fb80bda..e2319516781 100644 --- a/src/devices/bus/svi3x8/slot/sv806.cpp +++ b/src/devices/bus/svi3x8/slot/sv806.cpp @@ -44,11 +44,11 @@ void sv806_device::device_add_mconfig(machine_config &config) screen_device &screen(SCREEN(config, "80col", SCREEN_TYPE_RASTER)); screen.set_color(rgb_t::green()); screen.set_raw((XTAL(12'000'000) / 6) * 8, 864, 0, 640, 317, 0, 192); - screen.set_screen_update("crtc", FUNC(hd6845_device::screen_update)); + screen.set_screen_update("crtc", FUNC(hd6845s_device::screen_update)); PALETTE(config, m_palette, palette_device::MONOCHROME); - HD6845(config, m_crtc, XTAL(12'000'000) / 6); + HD6845S(config, m_crtc, XTAL(12'000'000) / 6); // HD6845 (variant not verified) m_crtc->set_screen("80col"); m_crtc->set_show_border_area(false); m_crtc->set_char_width(8); diff --git a/src/devices/bus/svi3x8/slot/sv806.h b/src/devices/bus/svi3x8/slot/sv806.h index e6af5071c56..095e8291acc 100644 --- a/src/devices/bus/svi3x8/slot/sv806.h +++ b/src/devices/bus/svi3x8/slot/sv806.h @@ -41,7 +41,7 @@ protected: private: MC6845_UPDATE_ROW(crtc_update_row); - required_device m_crtc; + required_device m_crtc; required_device m_palette; required_memory_region m_gfx; diff --git a/src/devices/bus/vic20/videopak.cpp b/src/devices/bus/vic20/videopak.cpp index 849f9a00a3b..98a6c054d22 100644 --- a/src/devices/bus/vic20/videopak.cpp +++ b/src/devices/bus/vic20/videopak.cpp @@ -100,7 +100,7 @@ GFXDECODE_END void vic20_video_pak_device::device_add_mconfig(machine_config &config) { screen_device &screen(SCREEN(config, MC6845_SCREEN_TAG, SCREEN_TYPE_RASTER, rgb_t::white())); - screen.set_screen_update(MC6845_TAG, FUNC(h46505_device::screen_update)); + screen.set_screen_update(MC6845_TAG, FUNC(mc6845_device::screen_update)); screen.set_size(80*8, 24*8); screen.set_visarea(0, 80*8-1, 0, 24*8-1); screen.set_refresh_hz(50); @@ -108,7 +108,7 @@ void vic20_video_pak_device::device_add_mconfig(machine_config &config) GFXDECODE(config, "gfxdecode", m_palette, gfx_vic20_video_pak); PALETTE(config, m_palette, palette_device::MONOCHROME); - H46505(config, m_crtc, XTAL(14'318'181) / 8); + MC6845(config, m_crtc, XTAL(14'318'181) / 8); // HD46505RP or similar m_crtc->set_screen(MC6845_SCREEN_TAG); m_crtc->set_show_border_area(true); m_crtc->set_char_width(8); diff --git a/src/devices/bus/vic20/videopak.h b/src/devices/bus/vic20/videopak.h index 084e57689dc..9e3176e5365 100644 --- a/src/devices/bus/vic20/videopak.h +++ b/src/devices/bus/vic20/videopak.h @@ -48,7 +48,7 @@ protected: private: MC6845_UPDATE_ROW( crtc_update_row ); - required_device m_crtc; + required_device m_crtc; required_device m_palette; required_memory_region m_char_rom; optional_shared_ptr m_videoram; diff --git a/src/devices/video/mc6845.cpp b/src/devices/video/mc6845.cpp index 4b3f354e334..bfb3cb249eb 100644 --- a/src/devices/video/mc6845.cpp +++ b/src/devices/video/mc6845.cpp @@ -7,15 +7,17 @@ The following variations exist that are different in functionality and not just in speed rating(1): * Motorola 6845, 6845-1 - * Hitachi 46505 + * Hitachi 6845 (= 46505R), 6845S (= 46505S), 6345/6445 * Rockwell 6545, 6545-1 (= Synertek SY6545-1) * MOS Technology 6545-1 (1) as per the document at http://www.6502.org/users/andre/hwinfo/crtc/diffs.html - The various speed rated devices are identified by a letter, - for example M68A45, M68B45, etc. + The various speed rated devices are usually identified by a + letter, e.g. MC68A45, MC68B45. Hitachi's older HD46505 numbering + identifies speed by numerical suffixes (-1, -2), which other + manufacturers use to identify functional variants instead. The chip is originally designed by Hitachi, not by Motorola. @@ -54,8 +56,7 @@ DEFINE_DEVICE_TYPE(MC6845, mc6845_device, "mc6845", "Motorola MC6845 CRTC" DEFINE_DEVICE_TYPE(MC6845_1, mc6845_1_device, "mc6845_1", "Motorola MC6845-1 CRTC") DEFINE_DEVICE_TYPE(R6545_1, r6545_1_device, "r6545_1", "Rockwell R6545-1 CRTC") DEFINE_DEVICE_TYPE(C6545_1, c6545_1_device, "c6545_1", "C6545-1 CRTC") -DEFINE_DEVICE_TYPE(H46505, h46505_device, "h46505", "Hitachi HD46505 CRTC") -DEFINE_DEVICE_TYPE(HD6845, hd6845_device, "hd6845", "Hitachi HD6845 CRTC") +DEFINE_DEVICE_TYPE(HD6845S, hd6845s_device, "hd6845s", "Hitachi HD6845S CRTC") // same as HD46505S DEFINE_DEVICE_TYPE(SY6545_1, sy6545_1_device, "sy6545_1", "Synertek SY6545-1 CRTC") DEFINE_DEVICE_TYPE(SY6845E, sy6845e_device, "sy6845e", "Synertek SY6845E CRTC") DEFINE_DEVICE_TYPE(HD6345, hd6345_device, "hd6345", "Hitachi HD6345 CRTC") @@ -1196,20 +1197,7 @@ void r6545_1_device::device_start() } -void h46505_device::device_start() -{ - mc6845_device::device_start(); - - m_supports_disp_start_addr_r = false; - m_supports_vert_sync_width = false; - m_supports_status_reg_d5 = false; - m_supports_status_reg_d6 = false; - m_supports_status_reg_d7 = false; - m_supports_transparent = false; -} - - -void hd6845_device::device_start() +void hd6845s_device::device_start() { mc6845_device::device_start(); @@ -1417,9 +1405,8 @@ void mc6845_device::device_reset() void r6545_1_device::device_reset() { mc6845_device::device_reset(); } -void h46505_device::device_reset() { mc6845_device::device_reset(); } void mc6845_1_device::device_reset() { mc6845_device::device_reset(); } -void hd6845_device::device_reset() { mc6845_device::device_reset(); } +void hd6845s_device::device_reset() { mc6845_device::device_reset(); } void c6545_1_device::device_reset() { mc6845_device::device_reset(); } void sy6545_1_device::device_reset() { mc6845_device::device_reset(); } void sy6845e_device::device_reset() { mc6845_device::device_reset(); } @@ -1463,20 +1450,14 @@ r6545_1_device::r6545_1_device(const machine_config &mconfig, const char *tag, d } -h46505_device::h46505_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : mc6845_device(mconfig, H46505, tag, owner, clock) -{ -} - - mc6845_1_device::mc6845_1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : mc6845_device(mconfig, MC6845_1, tag, owner, clock) { } -hd6845_device::hd6845_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : mc6845_device(mconfig, HD6845, tag, owner, clock) +hd6845s_device::hd6845s_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : mc6845_device(mconfig, HD6845S, tag, owner, clock) { } diff --git a/src/devices/video/mc6845.h b/src/devices/video/mc6845.h index f042e60ac1a..a75cb62a205 100644 --- a/src/devices/video/mc6845.h +++ b/src/devices/video/mc6845.h @@ -322,20 +322,10 @@ protected: virtual void device_reset() override; }; -class h46505_device : public mc6845_device +class hd6845s_device : public mc6845_device { public: - h46505_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - -protected: - virtual void device_start() override; - virtual void device_reset() override; -}; - -class hd6845_device : public mc6845_device -{ -public: - hd6845_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + hd6845s_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); protected: virtual void device_start() override; @@ -482,8 +472,7 @@ DECLARE_DEVICE_TYPE(MC6845, mc6845_device) DECLARE_DEVICE_TYPE(MC6845_1, mc6845_1_device) DECLARE_DEVICE_TYPE(R6545_1, r6545_1_device) DECLARE_DEVICE_TYPE(C6545_1, c6545_1_device) -DECLARE_DEVICE_TYPE(H46505, h46505_device) -DECLARE_DEVICE_TYPE(HD6845, hd6845_device) +DECLARE_DEVICE_TYPE(HD6845S, hd6845s_device) DECLARE_DEVICE_TYPE(SY6545_1, sy6545_1_device) DECLARE_DEVICE_TYPE(SY6845E, sy6845e_device) DECLARE_DEVICE_TYPE(HD6345, hd6345_device) diff --git a/src/mame/drivers/albazg.cpp b/src/mame/drivers/albazg.cpp index 32f54c79b13..0e550b4eac7 100644 --- a/src/mame/drivers/albazg.cpp +++ b/src/mame/drivers/albazg.cpp @@ -384,7 +384,7 @@ void albazg_state::yumefuda(machine_config &config) screen.set_visarea_full(); screen.set_screen_update(FUNC(albazg_state::screen_update_yumefuda)); - h46505_device &crtc(H46505(config, "crtc", MASTER_CLOCK/16)); /* hand tuned to get ~60 fps */ + hd6845s_device &crtc(HD6845S(config, "crtc", MASTER_CLOCK/16)); /* hand tuned to get ~60 fps */ crtc.set_screen("screen"); crtc.set_show_border_area(false); crtc.set_char_width(8); diff --git a/src/mame/drivers/alphatro.cpp b/src/mame/drivers/alphatro.cpp index fd99bcae0b0..03144666980 100644 --- a/src/mame/drivers/alphatro.cpp +++ b/src/mame/drivers/alphatro.cpp @@ -759,7 +759,7 @@ MACHINE_CONFIG_START(alphatro_state::alphatro) m_dmac->out_iow_cb<2>().set(m_fdc, FUNC(upd765a_device::dma_w)); m_dmac->out_tc_cb().set(m_fdc, FUNC(upd765a_device::tc_line_w)); - HD6845(config, m_crtc, 16_MHz_XTAL / 8); + HD6845S(config, m_crtc, 16_MHz_XTAL / 8); m_crtc->set_screen("screen"); m_crtc->set_show_border_area(false); m_crtc->set_char_width(8); diff --git a/src/mame/drivers/amstrad.cpp b/src/mame/drivers/amstrad.cpp index c9280c9a6ed..73ac495ba34 100644 --- a/src/mame/drivers/amstrad.cpp +++ b/src/mame/drivers/amstrad.cpp @@ -931,7 +931,7 @@ MACHINE_CONFIG_START(amstrad_state::amstrad_base) PALETTE(config, m_palette, FUNC(amstrad_state::amstrad_cpc_palette), 32); - HD6845(config, m_crtc, 16_MHz_XTAL / 16); + HD6845S(config, m_crtc, 16_MHz_XTAL / 16); m_crtc->set_screen(nullptr); m_crtc->set_show_border_area(false); m_crtc->set_char_width(16); diff --git a/src/mame/drivers/amust.cpp b/src/mame/drivers/amust.cpp index a7fc22e98fa..7c8dd90d45c 100644 --- a/src/mame/drivers/amust.cpp +++ b/src/mame/drivers/amust.cpp @@ -455,7 +455,7 @@ void amust_state::amust(machine_config &config) BEEP(config, m_beep, 800).add_route(ALL_OUTPUTS, "mono", 0.50); /* Devices */ - h46505_device &crtc(H46505(config, "crtc", XTAL(14'318'181) / 8)); + hd6845s_device &crtc(HD6845S(config, "crtc", XTAL(14'318'181) / 8)); crtc.set_screen("screen"); crtc.set_show_border_area(false); crtc.set_char_width(8); diff --git a/src/mame/drivers/apricot.cpp b/src/mame/drivers/apricot.cpp index 171c42f6e7f..417c0b6c739 100644 --- a/src/mame/drivers/apricot.cpp +++ b/src/mame/drivers/apricot.cpp @@ -103,7 +103,7 @@ private: required_device m_cpu; required_device m_iop; required_device m_ram; - required_device m_crtc; + required_device m_crtc; required_device m_ppi; required_device m_pic; required_device m_pit; @@ -347,8 +347,8 @@ void apricot_state::apricot_io(address_map &map) map(0x62, 0x62).r(FUNC(apricot_state::sio_ca_r)).w(m_sio, FUNC(z80sio_device::ca_w)).umask16(0x00ff); map(0x64, 0x64).r(FUNC(apricot_state::sio_db_r)).w(m_sio, FUNC(z80sio_device::db_w)).umask16(0x00ff); map(0x66, 0x66).r(FUNC(apricot_state::sio_cb_r)).w(m_sio, FUNC(z80sio_device::cb_w)).umask16(0x00ff); - map(0x68, 0x68).mirror(0x04).w(m_crtc, FUNC(hd6845_device::address_w)); - map(0x6a, 0x6a).mirror(0x04).rw(m_crtc, FUNC(hd6845_device::register_r), FUNC(hd6845_device::register_w)); + map(0x68, 0x68).mirror(0x04).w(m_crtc, FUNC(hd6845s_device::address_w)); + map(0x6a, 0x6a).mirror(0x04).rw(m_crtc, FUNC(hd6845s_device::register_r), FUNC(hd6845s_device::register_w)); map(0x70, 0x70).mirror(0x04).w(FUNC(apricot_state::i8089_ca1_w)); map(0x72, 0x72).mirror(0x04).w(FUNC(apricot_state::i8089_ca2_w)); map(0x78, 0x7f).noprw(); // unavailable @@ -389,7 +389,7 @@ void apricot_state::apricot(machine_config &config) PALETTE(config, m_palette, palette_device::MONOCHROME_HIGHLIGHT); - HD6845(config, m_crtc, 15_MHz_XTAL / 10); + HD6845S(config, m_crtc, 15_MHz_XTAL / 10); m_crtc->set_screen("screen"); m_crtc->set_show_border_area(false); m_crtc->set_char_width(10); diff --git a/src/mame/drivers/b16.cpp b/src/mame/drivers/b16.cpp index 343c4eaf055..87e279dde94 100644 --- a/src/mame/drivers/b16.cpp +++ b/src/mame/drivers/b16.cpp @@ -282,7 +282,7 @@ void b16_state::b16(machine_config &config) screen.set_visarea_full(); screen.set_palette(m_palette); - H46505(config, m_mc6845, XTAL(14'318'181)/5); /* unknown clock, hand tuned to get ~60 fps */ + MC6845(config, m_mc6845, XTAL(14'318'181)/5); /* unknown variant, unknown clock, hand tuned to get ~60 fps */ m_mc6845->set_screen("screen"); m_mc6845->set_show_border_area(false); m_mc6845->set_char_width(8); diff --git a/src/mame/drivers/bbc.cpp b/src/mame/drivers/bbc.cpp index 581ccc03efe..b283071c4b9 100644 --- a/src/mame/drivers/bbc.cpp +++ b/src/mame/drivers/bbc.cpp @@ -132,8 +132,8 @@ void bbc_state::bbca_mem(address_map &map) map(0x8000, 0xbfff).rw(FUNC(bbc_state::bbc_paged_r), FUNC(bbc_state::bbc_paged_w)); // 8000-bfff Paged ROM/RAM map(0xc000, 0xffff).rom().region("mos", 0); // c000-fbff OS ROM map(0xfe00, 0xfeff).r(FUNC(bbc_state::bbc_fe_r)); // fe00-feff SHEILA Address Page - map(0xfe00, 0xfe00).mirror(0x06).rw(m_hd6845, FUNC(hd6845_device::status_r), FUNC(hd6845_device::address_w)); // fe00-fe07 6845 CRTC Video controller - map(0xfe01, 0xfe01).mirror(0x06).rw(m_hd6845, FUNC(hd6845_device::register_r), FUNC(hd6845_device::register_w)); + map(0xfe00, 0xfe00).mirror(0x06).rw(m_hd6845, FUNC(hd6845s_device::status_r), FUNC(hd6845s_device::address_w)); // fe00-fe07 6845 CRTC Video controller + map(0xfe01, 0xfe01).mirror(0x06).rw(m_hd6845, FUNC(hd6845s_device::register_r), FUNC(hd6845s_device::register_w)); map(0xfe08, 0xfe0f).rw(m_acia, FUNC(acia6850_device::read), FUNC(acia6850_device::write)); // fe08-fe0f 6850 ACIA Serial controller map(0xfe10, 0xfe17).w(FUNC(bbc_state::serial_ula_w)); // fe10-fe17 Serial ULA Serial system chip map(0xfe20, 0xfe2f).w(FUNC(bbc_state::video_ula_w)); // W: fe20-fe2f Video ULA Video system chip @@ -149,8 +149,8 @@ void bbc_state::bbc_base(address_map &map) map(0xfc00, 0xfcff).rw(m_1mhzbus, FUNC(bbc_1mhzbus_slot_device::fred_r), FUNC(bbc_1mhzbus_slot_device::fred_w)); // fc00-fcff FRED Address Page map(0xfd00, 0xfdff).rw(m_1mhzbus, FUNC(bbc_1mhzbus_slot_device::jim_r), FUNC(bbc_1mhzbus_slot_device::jim_w)); // fd00-fdff JIM Address Page map(0xfe00, 0xfeff).r(FUNC(bbc_state::bbc_fe_r)); // fe00-feff SHEILA Address Page - map(0xfe00, 0xfe00).mirror(0x06).rw(m_hd6845, FUNC(hd6845_device::status_r), FUNC(hd6845_device::address_w)); // fe00-fe07 6845 CRTC Video controller - map(0xfe01, 0xfe01).mirror(0x06).rw(m_hd6845, FUNC(hd6845_device::register_r), FUNC(hd6845_device::register_w)); + map(0xfe00, 0xfe00).mirror(0x06).rw(m_hd6845, FUNC(hd6845s_device::status_r), FUNC(hd6845s_device::address_w)); // fe00-fe07 6845 CRTC Video controller + map(0xfe01, 0xfe01).mirror(0x06).rw(m_hd6845, FUNC(hd6845s_device::register_r), FUNC(hd6845s_device::register_w)); map(0xfe08, 0xfe0f).rw(m_acia, FUNC(acia6850_device::read), FUNC(acia6850_device::write)); // fe08-fe0f 6850 ACIA Serial controller map(0xfe10, 0xfe17).w(FUNC(bbc_state::serial_ula_w)); // fe10-fe17 Serial ULA Serial system chip map(0xfe18, 0xfe1f).portr("STATID"); // fe18-fe1f INTOFF/STATID ECONET Interrupt Off / ID No. @@ -239,8 +239,8 @@ void bbcm_state::bbcm_bankdev(address_map &map) map(0x0000, 0x00ff).mirror(0x400).rw(m_1mhzbus, FUNC(bbc_1mhzbus_slot_device::fred_r), FUNC(bbc_1mhzbus_slot_device::fred_w)); // fc00-fcff Master FRED Address Page map(0x0100, 0x01ff).mirror(0x400).rw(m_1mhzbus, FUNC(bbc_1mhzbus_slot_device::jim_r), FUNC(bbc_1mhzbus_slot_device::jim_w)); // fd00-fdff Master JIM Address Page map(0x0200, 0x02ff).mirror(0x400).r(FUNC(bbc_state::bbc_fe_r)); // fe00-feff SHEILA Address Page - map(0x0200, 0x0200).mirror(0x406).rw(m_hd6845, FUNC(hd6845_device::status_r), FUNC(hd6845_device::address_w)); // fe00-fe07 6845 CRTC Video controller - map(0x0201, 0x0201).mirror(0x406).rw(m_hd6845, FUNC(hd6845_device::register_r), FUNC(hd6845_device::register_w)); + map(0x0200, 0x0200).mirror(0x406).rw(m_hd6845, FUNC(hd6845s_device::status_r), FUNC(hd6845s_device::address_w)); // fe00-fe07 6845 CRTC Video controller + map(0x0201, 0x0201).mirror(0x406).rw(m_hd6845, FUNC(hd6845s_device::register_r), FUNC(hd6845s_device::register_w)); map(0x0208, 0x020f).mirror(0x400).rw(m_acia, FUNC(acia6850_device::read), FUNC(acia6850_device::write)); // fe08-fe0f 6850 ACIA Serial controller map(0x0210, 0x0217).mirror(0x400).w(FUNC(bbc_state::serial_ula_w)); // fe10-fe17 Serial ULA Serial system chip map(0x0218, 0x021f).mirror(0x400).rw(m_upd7002, FUNC(upd7002_device::read), FUNC(upd7002_device::write)); // fe18-fe1f uPD7002 Analogue to digital converter @@ -269,8 +269,8 @@ void bbcm_state::bbcmet_bankdev(address_map &map) map(0x0000, 0x00ff).mirror(0x400).unmaprw(); // fc00-fcff FRED Address Page map(0x0100, 0x01ff).mirror(0x400).unmaprw(); // fd00-fdff JIM Address Page map(0x0200, 0x02ff).mirror(0x400).r(FUNC(bbc_state::bbc_fe_r)); // fe00-feff SHEILA Address Page - map(0x0200, 0x0200).mirror(0x406).rw(m_hd6845, FUNC(hd6845_device::status_r), FUNC(hd6845_device::address_w)); // fe00-fe07 6845 CRTC Video controller - map(0x0201, 0x0201).mirror(0x406).rw(m_hd6845, FUNC(hd6845_device::register_r), FUNC(hd6845_device::register_w)); + map(0x0200, 0x0200).mirror(0x406).rw(m_hd6845, FUNC(hd6845s_device::status_r), FUNC(hd6845s_device::address_w)); // fe00-fe07 6845 CRTC Video controller + map(0x0201, 0x0201).mirror(0x406).rw(m_hd6845, FUNC(hd6845s_device::register_r), FUNC(hd6845s_device::register_w)); map(0x0208, 0x020f).mirror(0x400).r(FUNC(bbc_state::bbc_fe_r)); // fe08-fe0f 6850 ACIA Serial controller map(0x0210, 0x0217).mirror(0x400).w(FUNC(bbc_state::serial_ula_w)); // fe10-fe17 Serial ULA Serial system chip map(0x0218, 0x021f).mirror(0x400).r(FUNC(bbc_state::bbc_fe_r)); // fe18-fe1f uPD7002 Analogue to digital converter @@ -299,8 +299,8 @@ void bbcm_state::bbcmc_bankdev(address_map &map) map(0x0000, 0x00ff).mirror(0x400).rw(m_exp, FUNC(bbc_exp_slot_device::fred_r), FUNC(bbc_exp_slot_device::fred_w)); // fc00-fcff Compact FRED Address Page map(0x0100, 0x01ff).mirror(0x400).rw(m_exp, FUNC(bbc_exp_slot_device::jim_r), FUNC(bbc_exp_slot_device::jim_w)); // fd00-fdff Compact JIM Address Page map(0x0200, 0x02ff).mirror(0x400).rw(m_exp, FUNC(bbc_exp_slot_device::sheila_r), FUNC(bbc_exp_slot_device::sheila_w)); // fd00-fdff Compact SHEILA Address Page - map(0x0200, 0x0200).mirror(0x406).rw(m_hd6845, FUNC(hd6845_device::status_r), FUNC(hd6845_device::address_w)); // fe00-fe07 6845 CRTC Video controller - map(0x0201, 0x0201).mirror(0x406).rw(m_hd6845, FUNC(hd6845_device::register_r), FUNC(hd6845_device::register_w)); + map(0x0200, 0x0200).mirror(0x406).rw(m_hd6845, FUNC(hd6845s_device::status_r), FUNC(hd6845s_device::address_w)); // fe00-fe07 6845 CRTC Video controller + map(0x0201, 0x0201).mirror(0x406).rw(m_hd6845, FUNC(hd6845s_device::register_r), FUNC(hd6845s_device::register_w)); map(0x0208, 0x020f).mirror(0x400).rw(m_acia, FUNC(acia6850_device::read), FUNC(acia6850_device::write)); // fe08-fe0f 6850 ACIA Serial controller map(0x0210, 0x0217).mirror(0x400).w(FUNC(bbc_state::serial_ula_w)); // fe10-fe17 Serial ULA Serial system chip map(0x0220, 0x0223).mirror(0x400).w(FUNC(bbc_state::video_ula_w)); // fe20-fe23 Video ULA Video system chip @@ -846,7 +846,7 @@ void bbc_state::bbca(machine_config &config) /* video hardware */ SCREEN(config, m_screen, SCREEN_TYPE_RASTER); m_screen->set_raw(16_MHz_XTAL, 1024, 0, 640, 312, 0, 256); - m_screen->set_screen_update("hd6845", FUNC(hd6845_device::screen_update)); + m_screen->set_screen_update("hd6845", FUNC(hd6845s_device::screen_update)); PALETTE(config, m_palette, FUNC(bbc_state::bbc_colours), 16); @@ -854,7 +854,7 @@ void bbc_state::bbca(machine_config &config) m_trom->set_screen_size(40, 25, 40); /* crtc */ - HD6845(config, m_hd6845, 16_MHz_XTAL / 8); + HD6845S(config, m_hd6845, 16_MHz_XTAL / 8); m_hd6845->set_screen("screen"); m_hd6845->set_show_border_area(false); m_hd6845->set_char_width(12); @@ -1340,7 +1340,7 @@ void bbcm_state::bbcm(machine_config &config) /* video hardware */ SCREEN(config, m_screen, SCREEN_TYPE_RASTER); m_screen->set_raw(16_MHz_XTAL, 1024, 0, 640, 312, 0, 256); - m_screen->set_screen_update("hd6845", FUNC(hd6845_device::screen_update)); + m_screen->set_screen_update("hd6845", FUNC(hd6845s_device::screen_update)); PALETTE(config, m_palette, FUNC(bbc_state::bbc_colours), 16); @@ -1348,7 +1348,7 @@ void bbcm_state::bbcm(machine_config &config) m_trom->set_screen_size(40, 25, 40); /* crtc */ - HD6845(config, m_hd6845, 16_MHz_XTAL / 8); + HD6845S(config, m_hd6845, 16_MHz_XTAL / 8); m_hd6845->set_screen("screen"); m_hd6845->set_show_border_area(false); m_hd6845->set_char_width(12); diff --git a/src/mame/drivers/blitz68k.cpp b/src/mame/drivers/blitz68k.cpp index 30df7046f1b..be576676590 100644 --- a/src/mame/drivers/blitz68k.cpp +++ b/src/mame/drivers/blitz68k.cpp @@ -1836,7 +1836,7 @@ void blitz68k_state::bankrob(machine_config &config) screen.set_visarea(0, 512-1, 0+4, 256-1-4); screen.set_screen_update(FUNC(blitz68k_state::screen_update_blitz68k)); - H46505(config, m_crtc, XTAL(11'059'200)/4); + HD6845S(config, m_crtc, XTAL(11'059'200)/4); m_crtc->set_screen("screen"); m_crtc->set_show_border_area(false); m_crtc->set_char_width(4); @@ -1867,7 +1867,7 @@ void blitz68k_state::bankroba(machine_config &config) screen.set_visarea(0, 512-1, 0+7, 256-1); screen.set_screen_update(FUNC(blitz68k_state::screen_update_blitz68k)); - H46505(config, m_crtc, XTAL(11'059'200)/4); + HD6845S(config, m_crtc, XTAL(11'059'200)/4); m_crtc->set_screen("screen"); m_crtc->set_show_border_area(false); m_crtc->set_char_width(4); @@ -1929,7 +1929,7 @@ void blitz68k_state::dualgame(machine_config &config) screen.set_visarea(0, 512-1, 0+4, 256-1-4); screen.set_screen_update(FUNC(blitz68k_state::screen_update_blitz68k)); - H46505(config, m_crtc, XTAL(11'059'200)/4); + HD6845S(config, m_crtc, XTAL(11'059'200)/4); m_crtc->set_screen("screen"); m_crtc->set_show_border_area(false); m_crtc->set_char_width(4); @@ -1959,7 +1959,7 @@ void blitz68k_state::hermit(machine_config &config) screen.set_visarea(0, 512-1, 0+4, 256-1-4); screen.set_screen_update(FUNC(blitz68k_state::screen_update_blitz68k)); - H46505(config, m_crtc, XTAL(22'118'400)/8); + HD6845S(config, m_crtc, XTAL(22'118'400)/8); m_crtc->set_screen("screen"); m_crtc->set_show_border_area(false); m_crtc->set_char_width(4); @@ -1993,7 +1993,7 @@ void blitz68k_state::maxidbl(machine_config &config) screen.set_visarea_full(); screen.set_screen_update(FUNC(blitz68k_state::screen_update_blitz68k_noblit)); - H46505(config, m_crtc, XTAL(11'059'200)/4); + HD6845S(config, m_crtc, XTAL(11'059'200)/4); m_crtc->set_screen("screen"); m_crtc->set_show_border_area(false); m_crtc->set_char_width(4); diff --git a/src/mame/drivers/bml3.cpp b/src/mame/drivers/bml3.cpp index dcd22bacb65..c3fd84a71b1 100644 --- a/src/mame/drivers/bml3.cpp +++ b/src/mame/drivers/bml3.cpp @@ -933,7 +933,7 @@ void bml3_state::bml3_common(machine_config &config) /* Devices */ // CRTC clock should be synchronous with the CPU clock. - H46505(config, m_crtc, CPU_CLOCK); + HD6845S(config, m_crtc, CPU_CLOCK); // HD46505SP m_crtc->set_screen("screen"); m_crtc->set_show_border_area(false); m_crtc->set_char_width(8); diff --git a/src/mame/drivers/candela.cpp b/src/mame/drivers/candela.cpp index 09528cc6d03..ec2a2385361 100644 --- a/src/mame/drivers/candela.cpp +++ b/src/mame/drivers/candela.cpp @@ -487,6 +487,7 @@ INPUT_PORTS_END * - Map PIA:S * - ROM/RAM paging by using the PIAs and the myriad of 74138s on the board * - Vram and screen for the 6845 CRTC + * - Check actual clock source for CRTC. An 8MHz UKI crystal is also nearby * - Keyboard * - Serial port * - Floppy controller @@ -521,7 +522,7 @@ protected: required_device m_pia1; required_device m_ram; required_memory_bank m_bank1; - required_device m_crtc; + required_device m_crtc; }; void can09_state::machine_reset() @@ -640,8 +641,8 @@ void can09_state::can09_map(address_map &map) // AM_RANGE(0x0000, 0x7fff) AM_RAM map(0x0000, 0x7fff).ram().bankrw("bank1"); map(0xe000, 0xffff).rom().region("roms", 0); - map(0xe020, 0xe020).w(m_crtc, FUNC(h46505_device::address_w)); - map(0xe021, 0xe021).w(m_crtc, FUNC(h46505_device::register_w)); + map(0xe020, 0xe020).w(m_crtc, FUNC(hd6845s_device::address_w)); + map(0xe021, 0xe021).w(m_crtc, FUNC(hd6845s_device::register_w)); map(0xe034, 0xe037).rw(m_pia1, FUNC(pia6821_device::read), FUNC(pia6821_device::write)); #if 0 @@ -722,8 +723,8 @@ void can09_state::can09(machine_config &config) /* RAM banks */ RAM(config, RAM_TAG).set_default_size("768K"); - // CRTC init - h46505_device &crtc(H46505(config, "crtc", CAN09_CPU_CLOCK)); // TODO: Check actual clock source, An 8MHz UKI crystal is also nearby + // CRTC init + hd6845s_device &crtc(HD6845S(config, "crtc", CAN09_CPU_CLOCK)); // HD46505SP-1 (HD68A45SP) crtc.set_screen("screen"); crtc.set_show_border_area(false); crtc.set_char_width(8); diff --git a/src/mame/drivers/cgenie.cpp b/src/mame/drivers/cgenie.cpp index ed21baaf88f..47d8c1afbd3 100644 --- a/src/mame/drivers/cgenie.cpp +++ b/src/mame/drivers/cgenie.cpp @@ -82,7 +82,7 @@ private: required_device m_maincpu; required_device m_cassette; required_device m_ram; - required_device m_crtc; + required_device m_crtc; required_device m_rs232; required_device m_exp; required_memory_region m_char_rom; @@ -125,8 +125,8 @@ void cgenie_state::cgenie_io(address_map &map) map.global_mask(0xff); map(0xf8, 0xf8).w("ay8910", FUNC(ay8910_device::address_w)); map(0xf9, 0xf9).rw("ay8910", FUNC(ay8910_device::data_r), FUNC(ay8910_device::data_w)); - map(0xfa, 0xfa).w(m_crtc, FUNC(hd6845_device::address_w)); - map(0xfb, 0xfb).rw(m_crtc, FUNC(hd6845_device::register_r), FUNC(hd6845_device::register_w)); + map(0xfa, 0xfa).w(m_crtc, FUNC(hd6845s_device::address_w)); + map(0xfb, 0xfb).rw(m_crtc, FUNC(hd6845s_device::register_r), FUNC(hd6845s_device::register_w)); map(0xff, 0xff).rw(FUNC(cgenie_state::control_r), FUNC(cgenie_state::control_w)); } @@ -444,9 +444,9 @@ void cgenie_state::cgenie(machine_config &config) // video hardware screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); screen.set_raw(XTAL(17'734'470) / 2, 568, 32, 416, 312, 28, 284); - screen.set_screen_update("crtc", FUNC(hd6845_device::screen_update)); + screen.set_screen_update("crtc", FUNC(hd6845s_device::screen_update)); - HD6845(config, m_crtc, XTAL(17'734'470) / 16); + HD6845S(config, m_crtc, XTAL(17'734'470) / 16); m_crtc->set_screen("screen"); m_crtc->set_show_border_area(true); m_crtc->set_char_width(8); diff --git a/src/mame/drivers/chance32.cpp b/src/mame/drivers/chance32.cpp index dbf35d5870c..6c1fa01d690 100644 --- a/src/mame/drivers/chance32.cpp +++ b/src/mame/drivers/chance32.cpp @@ -475,7 +475,7 @@ void chance32_state::chance32(machine_config &config) screen.set_visarea(0, 35*16-1, 0, 29*8-1); screen.set_screen_update(FUNC(chance32_state::screen_update_chance32)); - h46505_device &crtc(H46505(config, "crtc", 12000000/16)); /* 52.786 Hz (similar to Major Poker) */ + hd6845s_device &crtc(HD6845S(config, "crtc", 12000000/16)); /* 52.786 Hz (similar to Major Poker) */ crtc.set_screen("screen"); crtc.set_show_border_area(false); crtc.set_char_width(16); diff --git a/src/mame/drivers/coinmstr.cpp b/src/mame/drivers/coinmstr.cpp index 015b1c6b1d1..99008afa819 100644 --- a/src/mame/drivers/coinmstr.cpp +++ b/src/mame/drivers/coinmstr.cpp @@ -1284,7 +1284,7 @@ void coinmstr_state::coinmstr(machine_config &config) GFXDECODE(config, m_gfxdecode, m_palette, gfx_coinmstr); PALETTE(config, m_palette).set_entries(46*32*4); - h46505_device &crtc(H46505(config, "crtc", 14000000 / 16)); + mc6845_device &crtc(MC6845(config, "crtc", 14000000 / 16)); crtc.set_screen("screen"); crtc.set_show_border_area(false); crtc.set_char_width(8); diff --git a/src/mame/drivers/dgn_beta.cpp b/src/mame/drivers/dgn_beta.cpp index 3e635eab3d6..d1e3724d426 100644 --- a/src/mame/drivers/dgn_beta.cpp +++ b/src/mame/drivers/dgn_beta.cpp @@ -334,7 +334,7 @@ void dgn_beta_state::dgnbeta(machine_config &config) screen.set_vblank_time(ATTOSECONDS_IN_USEC(100)); screen.set_size(700,550); screen.set_visarea(0, 699, 0, 549); - screen.set_screen_update("crtc", FUNC(hd6845_device::screen_update)); + screen.set_screen_update("crtc", FUNC(hd6845s_device::screen_update)); screen.set_video_attributes(VIDEO_UPDATE_AFTER_VBLANK); GFXDECODE(config, "gfxdecode", m_palette, gfx_dgnbeta); @@ -379,7 +379,7 @@ void dgn_beta_state::dgnbeta(machine_config &config) FLOPPY_CONNECTOR(config, FDC_TAG ":2", dgnbeta_floppies, nullptr, dgn_beta_state::floppy_formats).enable_sound(true); FLOPPY_CONNECTOR(config, FDC_TAG ":3", dgnbeta_floppies, nullptr, dgn_beta_state::floppy_formats).enable_sound(true); - HD6845(config, m_mc6845, 12.288_MHz_XTAL / 16); //XTAL is guessed + HD6845S(config, m_mc6845, 12.288_MHz_XTAL / 16); //XTAL is guessed m_mc6845->set_screen("screen"); m_mc6845->set_show_border_area(false); m_mc6845->set_char_width(16); /*?*/ diff --git a/src/mame/drivers/docastle.cpp b/src/mame/drivers/docastle.cpp index eb4949d65c2..5bdb72b7eec 100644 --- a/src/mame/drivers/docastle.cpp +++ b/src/mame/drivers/docastle.cpp @@ -610,7 +610,7 @@ void docastle_state::docastle(machine_config &config) WATCHDOG_TIMER(config, "watchdog"); /* video hardware */ - H46505(config, m_crtc, XTAL(9'828'000) / 16); + HD6845S(config, m_crtc, XTAL(9'828'000) / 16); /* The games program the CRTC for a width of 32 characters (256 pixels). However, the DE output from the CRTC is first ANDed with the NAND of diff --git a/src/mame/drivers/dragon.cpp b/src/mame/drivers/dragon.cpp index 490d4e38d06..8d8aa077d3e 100644 --- a/src/mame/drivers/dragon.cpp +++ b/src/mame/drivers/dragon.cpp @@ -306,11 +306,11 @@ void d64plus_state::d64plus(machine_config &config) plus_screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ plus_screen.set_size(640, 264); plus_screen.set_visarea_full(); - plus_screen.set_screen_update("crtc", FUNC(hd6845_device::screen_update)); + plus_screen.set_screen_update("crtc", FUNC(hd6845s_device::screen_update)); PALETTE(config, m_palette, palette_device::MONOCHROME); // crtc - HD6845(config, m_crtc, 14.218_MHz_XTAL / 4 / 2); + HD6845S(config, m_crtc, 14.218_MHz_XTAL / 4 / 2); m_crtc->set_screen("plus_screen"); m_crtc->set_show_border_area(false); m_crtc->set_char_width(8); diff --git a/src/mame/drivers/duet16.cpp b/src/mame/drivers/duet16.cpp index a0d31db2481..3e9603c1a3d 100644 --- a/src/mame/drivers/duet16.cpp +++ b/src/mame/drivers/duet16.cpp @@ -160,8 +160,8 @@ void duet16_state::duet16_mem(address_map &map) map(0xf8060, 0xf8067).rw("bgpit", FUNC(pit8253_device::read), FUNC(pit8253_device::write)).umask16(0x00ff); map(0xf8080, 0xf8087).rw("sio", FUNC(upd7201_new_device::ba_cd_r), FUNC(upd7201_new_device::ba_cd_w)).umask16(0x00ff); map(0xf80a0, 0xf80a3).rw("kbusart", FUNC(i8251_device::read), FUNC(i8251_device::write)).umask16(0x00ff); - map(0xf80c0, 0xf80c0).rw("crtc", FUNC(h46505_device::status_r), FUNC(h46505_device::address_w)); - map(0xf80c2, 0xf80c2).rw("crtc", FUNC(h46505_device::register_r), FUNC(h46505_device::register_w)); + map(0xf80c0, 0xf80c0).rw("crtc", FUNC(hd6845s_device::status_r), FUNC(hd6845s_device::address_w)); + map(0xf80c2, 0xf80c2).rw("crtc", FUNC(hd6845s_device::register_r), FUNC(hd6845s_device::register_w)); map(0xf80e0, 0xf80e3).rw("i8741", FUNC(upi41_cpu_device::upi41_master_r), FUNC(upi41_cpu_device::upi41_master_w)).umask16(0x00ff); map(0xf8100, 0xf8103).m(m_fdc, FUNC(upd765a_device::map)).umask16(0x00ff); map(0xf8120, 0xf8120).rw(FUNC(duet16_state::rtc_r), FUNC(duet16_state::rtc_w)); @@ -420,7 +420,7 @@ void duet16_state::duet16(machine_config &config) FLOPPY_CONNECTOR(config, "fdc:0", duet16_floppies, "525qd", floppy_image_device::default_floppy_formats, true); FLOPPY_CONNECTOR(config, "fdc:1", duet16_floppies, "525qd", floppy_image_device::default_floppy_formats, true); - h46505_device &crtc(H46505(config, "crtc", 2000000)); + hd6845s_device &crtc(HD6845S(config, "crtc", 2000000)); // "46505S" on schematics crtc.set_char_width(8); crtc.set_update_row_callback(FUNC(duet16_state::crtc_update_row), this); @@ -433,7 +433,7 @@ void duet16_state::duet16(machine_config &config) m_screen->set_refresh_hz(60); m_screen->set_size(640, 480); m_screen->set_visarea_full(); - m_screen->set_screen_update("crtc", FUNC(h46505_device::screen_update)); + m_screen->set_screen_update("crtc", FUNC(hd6845s_device::screen_update)); MSM58321(config, m_rtc, 32768_Hz_XTAL); m_rtc->d0_handler().set(FUNC(duet16_state::rtc_d0_w)); diff --git a/src/mame/drivers/fanucspmg.cpp b/src/mame/drivers/fanucspmg.cpp index a898334a118..fcb47205b19 100644 --- a/src/mame/drivers/fanucspmg.cpp +++ b/src/mame/drivers/fanucspmg.cpp @@ -1005,7 +1005,7 @@ void fanucspmg_state::fanucspmg(machine_config &config) screen.set_raw(XTAL(15'000'000), 640, 0, 512, 390, 0, 384); screen.set_screen_update(CRTC_TAG, FUNC(mc6845_device::screen_update)); - HD6845(config, m_crtc, XTAL(8'000'000)/2); + HD6845S(config, m_crtc, XTAL(8'000'000)/2); m_crtc->set_screen(SCREEN_TAG); m_crtc->set_show_border_area(false); m_crtc->set_char_width(8); diff --git a/src/mame/drivers/flipjack.cpp b/src/mame/drivers/flipjack.cpp index 6fa9210f59a..f99267910d5 100644 --- a/src/mame/drivers/flipjack.cpp +++ b/src/mame/drivers/flipjack.cpp @@ -292,8 +292,8 @@ void flipjack_state::main_map(address_map &map) map(0x6000, 0x67ff).ram(); map(0x6800, 0x6803).rw("ppi8255", FUNC(i8255_device::read), FUNC(i8255_device::write)); map(0x7000, 0x7000).w(FUNC(flipjack_state::soundlatch_w)); - map(0x7010, 0x7010).w("crtc", FUNC(hd6845_device::address_w)); - map(0x7011, 0x7011).w("crtc", FUNC(hd6845_device::register_w)); + map(0x7010, 0x7010).w("crtc", FUNC(hd6845s_device::address_w)); + map(0x7011, 0x7011).w("crtc", FUNC(hd6845s_device::register_w)); map(0x7020, 0x7020).portr("DSW"); map(0x7800, 0x7800).w(FUNC(flipjack_state::layer_w)); map(0x8000, 0x9fff).rom(); @@ -439,9 +439,9 @@ void flipjack_state::flipjack(machine_config &config) /* video hardware */ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); screen.set_raw(VIDEO_CLOCK, 0x188, 0, 0x100, 0x100, 0, 0xc0); // from crtc - screen.set_screen_update("crtc", FUNC(hd6845_device::screen_update)); + screen.set_screen_update("crtc", FUNC(hd6845s_device::screen_update)); - hd6845_device &crtc(HD6845(config, "crtc", VIDEO_CLOCK/8)); + hd6845s_device &crtc(HD6845S(config, "crtc", VIDEO_CLOCK/8)); crtc.set_screen("screen"); crtc.set_show_border_area(false); crtc.set_char_width(8); diff --git a/src/mame/drivers/fp1100.cpp b/src/mame/drivers/fp1100.cpp index 51aeed58aca..b214bd8c037 100644 --- a/src/mame/drivers/fp1100.cpp +++ b/src/mame/drivers/fp1100.cpp @@ -655,7 +655,7 @@ void fp1100_state::fp1100(machine_config &config) screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ screen.set_size(640, 480); screen.set_visarea_full(); - screen.set_screen_update("crtc", FUNC(h46505_device::screen_update)); + screen.set_screen_update("crtc", FUNC(mc6845_device::screen_update)); PALETTE(config, m_palette).set_entries(8); GFXDECODE(config, "gfxdecode", m_palette, gfx_fp1100); @@ -665,7 +665,7 @@ void fp1100_state::fp1100(machine_config &config) .add_route(ALL_OUTPUTS, "mono", 0.50); // inside the keyboard /* CRTC */ - H46505(config, m_crtc, MAIN_CLOCK/8); /* hand tuned to get ~60 fps */ + MC6845(config, m_crtc, MAIN_CLOCK/8); /* unknown variant; hand tuned to get ~60 fps */ m_crtc->set_screen("screen"); m_crtc->set_show_border_area(false); m_crtc->set_char_width(8); diff --git a/src/mame/drivers/fp6000.cpp b/src/mame/drivers/fp6000.cpp index ef42b50c823..02b4f52d59e 100644 --- a/src/mame/drivers/fp6000.cpp +++ b/src/mame/drivers/fp6000.cpp @@ -313,7 +313,7 @@ void fp6000_state::fp6000(machine_config &config) screen.set_screen_update(FUNC(fp6000_state::screen_update_fp6000)); screen.set_palette(m_palette); - H46505(config, m_crtc, 16000000/5); /* unknown clock, hand tuned to get ~60 fps */ + MC6845(config, m_crtc, 16000000/5); /* unknown variant, unknown clock, hand tuned to get ~60 fps */ m_crtc->set_screen("screen"); m_crtc->set_show_border_area(false); m_crtc->set_char_width(8); diff --git a/src/mame/drivers/hitpoker.cpp b/src/mame/drivers/hitpoker.cpp index 42c04794e49..c2b96159b12 100644 --- a/src/mame/drivers/hitpoker.cpp +++ b/src/mame/drivers/hitpoker.cpp @@ -479,7 +479,7 @@ void hitpoker_state::hitpoker(machine_config &config) screen.set_visarea(0, 648-1, 0, 240-1); screen.set_screen_update(FUNC(hitpoker_state::screen_update_hitpoker)); - h46505_device &crtc(H46505(config, "crtc", CRTC_CLOCK/2)); /* hand tuned to get ~60 fps */ + hd6845s_device &crtc(HD6845S(config, "crtc", CRTC_CLOCK/2)); /* hand tuned to get ~60 fps */ crtc.set_screen("screen"); crtc.set_show_border_area(false); crtc.set_char_width(8); diff --git a/src/mame/drivers/hnayayoi.cpp b/src/mame/drivers/hnayayoi.cpp index 6941b922ac0..bd061e4c096 100644 --- a/src/mame/drivers/hnayayoi.cpp +++ b/src/mame/drivers/hnayayoi.cpp @@ -119,8 +119,8 @@ void hnayayoi_state::hnayayoi_io_map(address_map &map) map(0x02, 0x03).r("ymsnd", FUNC(ym2203_device::read)); map(0x04, 0x04).portr("DSW3"); map(0x06, 0x06).w(FUNC(hnayayoi_state::adpcm_data_w)); - map(0x08, 0x08).w("crtc", FUNC(hd6845_device::address_w)); - map(0x09, 0x09).w("crtc", FUNC(hd6845_device::register_w)); + map(0x08, 0x08).w("crtc", FUNC(hd6845s_device::address_w)); + map(0x09, 0x09).w("crtc", FUNC(hd6845s_device::register_w)); map(0x0a, 0x0a).w(FUNC(hnayayoi_state::dynax_blitter_rev1_start_w)); map(0x0c, 0x0c).w(FUNC(hnayayoi_state::dynax_blitter_rev1_clear_w)); map(0x20, 0x27).w(m_mainlatch, FUNC(ls259_device::write_d0)); @@ -141,8 +141,8 @@ void hnayayoi_state::hnfubuki_map(address_map &map) map(0xff02, 0xff03).r("ymsnd", FUNC(ym2203_device::read)); map(0xff04, 0xff04).portr("DSW3"); map(0xff06, 0xff06).w(FUNC(hnayayoi_state::adpcm_data_w)); - map(0xff08, 0xff08).w("crtc", FUNC(hd6845_device::address_w)); - map(0xff09, 0xff09).w("crtc", FUNC(hd6845_device::register_w)); + map(0xff08, 0xff08).w("crtc", FUNC(hd6845s_device::address_w)); + map(0xff09, 0xff09).w("crtc", FUNC(hd6845s_device::register_w)); map(0xff0a, 0xff0a).w(FUNC(hnayayoi_state::dynax_blitter_rev1_start_w)); map(0xff0c, 0xff0c).w(FUNC(hnayayoi_state::dynax_blitter_rev1_clear_w)); map(0xff20, 0xff27).w(m_mainlatch, FUNC(ls259_device::write_d0)); @@ -166,7 +166,7 @@ void hnayayoi_state::untoucha_io_map(address_map &map) map.global_mask(0xff); map(0x10, 0x10).w("ymsnd", FUNC(ym2203_device::control_port_w)); map(0x11, 0x11).r("ymsnd", FUNC(ym2203_device::status_port_r)); - map(0x12, 0x12).w("crtc", FUNC(hd6845_device::address_w)); + map(0x12, 0x12).w("crtc", FUNC(hd6845s_device::address_w)); map(0x13, 0x13).w(FUNC(hnayayoi_state::adpcm_data_w)); map(0x14, 0x14).portr("COIN"); map(0x15, 0x15).r(FUNC(hnayayoi_state::keyboard_1_r)); @@ -179,7 +179,7 @@ void hnayayoi_state::untoucha_io_map(address_map &map) map(0x30, 0x37).w(m_mainlatch, FUNC(ls259_device::write_d0)); map(0x50, 0x50).w("ymsnd", FUNC(ym2203_device::write_port_w)); map(0x51, 0x51).r("ymsnd", FUNC(ym2203_device::read_port_r)); - map(0x52, 0x52).w("crtc", FUNC(hd6845_device::register_w)); + map(0x52, 0x52).w("crtc", FUNC(hd6845s_device::register_w)); } static INPUT_PORTS_START( hf_keyboard ) @@ -562,11 +562,11 @@ void hnayayoi_state::hnayayoi(machine_config &config) /* video hardware */ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); screen.set_raw(20_MHz_XTAL / 2, 632, 0, 512, 263, 0, 243); - screen.set_screen_update("crtc", FUNC(hd6845_device::screen_update)); + screen.set_screen_update("crtc", FUNC(hd6845s_device::screen_update)); PALETTE(config, m_palette, palette_device::RGB_444_PROMS, "proms", 256); - hd6845_device &crtc(HD6845(config, "crtc", 20_MHz_XTAL / 8)); + hd6845s_device &crtc(HD6845S(config, "crtc", 20_MHz_XTAL / 8)); crtc.set_screen("screen"); crtc.set_char_width(4); crtc.set_show_border_area(false); @@ -611,7 +611,7 @@ void hnayayoi_state::untoucha(machine_config &config) m_mainlatch->q_out_cb<3>().set(m_msm, FUNC(msm5205_device::reset_w)).invert(); m_mainlatch->q_out_cb<4>().set_nop(); // ? - subdevice("crtc")->set_update_row_callback(FUNC(hnayayoi_state::untoucha_update_row), this); + subdevice("crtc")->set_update_row_callback(FUNC(hnayayoi_state::untoucha_update_row), this); MCFG_VIDEO_START_OVERRIDE(hnayayoi_state,untoucha) } diff --git a/src/mame/drivers/itt1700.cpp b/src/mame/drivers/itt1700.cpp index f59d1236daf..7bdb2fe4b79 100644 --- a/src/mame/drivers/itt1700.cpp +++ b/src/mame/drivers/itt1700.cpp @@ -60,8 +60,8 @@ void itt1700_state::mem_map(address_map &map) void itt1700_state::io_map(address_map &map) { map.global_mask(0xff); - map(0x10, 0x10).w("crtc", FUNC(hd6845_device::address_w)); - map(0x11, 0x11).w("crtc", FUNC(hd6845_device::register_w)); + map(0x10, 0x10).w("crtc", FUNC(hd6845s_device::address_w)); + map(0x11, 0x11).w("crtc", FUNC(hd6845s_device::register_w)); map(0x20, 0x21).rw("upi", FUNC(i8741_device::upi41_master_r), FUNC(i8741_device::upi41_master_w)); } @@ -86,7 +86,7 @@ void itt1700_state::itt1700(machine_config &config) screen.set_raw(16.6698_MHz_XTAL, 882, 0, 720, 315, 0, 300); screen.set_screen_update("crtc", FUNC(mc6845_device::screen_update)); - hd6845_device &crtc(HD6845(config, "crtc", 16.6698_MHz_XTAL / 9)); // on video board + hd6845s_device &crtc(HD6845S(config, "crtc", 16.6698_MHz_XTAL / 9)); // on video board crtc.set_char_width(9); crtc.set_screen("screen"); crtc.set_show_border_area(false); diff --git a/src/mame/drivers/laserbas.cpp b/src/mame/drivers/laserbas.cpp index 0d9dae8a029..d24cec3251f 100644 --- a/src/mame/drivers/laserbas.cpp +++ b/src/mame/drivers/laserbas.cpp @@ -396,7 +396,7 @@ void laserbas_state::laserbas(machine_config &config) screen.set_raw(4000000, 256, 0, 256, 256, 0, 256); /* temporary, CRTC will configure screen */ screen.set_screen_update("crtc", FUNC(mc6845_device::screen_update)); - h46505_device &crtc(H46505(config, "crtc", 3000000/4)); /* unknown clock, hand tuned to get ~60 fps */ + mc6845_device &crtc(MC6845(config, "crtc", 3000000/4)); /* unknown clock, hand tuned to get ~60 fps */ crtc.set_screen("screen"); crtc.set_show_border_area(false); crtc.set_char_width(8); diff --git a/src/mame/drivers/lola8a.cpp b/src/mame/drivers/lola8a.cpp index 0d07d1daff7..c80e2f1702f 100644 --- a/src/mame/drivers/lola8a.cpp +++ b/src/mame/drivers/lola8a.cpp @@ -284,11 +284,11 @@ void lola8a_state::lola8a(machine_config &config) screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); screen.set_refresh_hz(50); screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ - screen.set_screen_update(HD46505SP_TAG, FUNC(hd6845_device::screen_update)); + screen.set_screen_update(HD46505SP_TAG, FUNC(hd6845s_device::screen_update)); screen.set_size(640, 480); screen.set_visarea(0, 640-1, 0, 480-1); - hd6845_device &crtc(HD6845(config, HD46505SP_TAG, XTAL(8'000'000) / 8)); // HD6845 == HD46505S + hd6845s_device &crtc(HD6845S(config, HD46505SP_TAG, XTAL(8'000'000) / 8)); // HD6845 == HD46505S crtc.set_screen("screen"); crtc.set_show_border_area(false); crtc.set_char_width(8); diff --git a/src/mame/drivers/luckgrln.cpp b/src/mame/drivers/luckgrln.cpp index 5217632f298..dba1b870111 100644 --- a/src/mame/drivers/luckgrln.cpp +++ b/src/mame/drivers/luckgrln.cpp @@ -868,7 +868,7 @@ void luckgrln_state::luckgrln(machine_config &config) m_maincpu->set_addrmap(AS_IO, &luckgrln_state::luckgrln_io); m_maincpu->set_vblank_int("screen", FUNC(luckgrln_state::irq)); - h46505_device &crtc(H46505(config, "crtc", 6000000/4)); /* unknown clock, hand tuned to get ~60 fps */ + hd6845s_device &crtc(HD6845S(config, "crtc", 6000000/4)); /* HD6845SP; unknown clock, hand tuned to get ~60 fps */ crtc.set_screen("screen"); crtc.set_show_border_area(false); crtc.set_char_width(8); diff --git a/src/mame/drivers/mbc200.cpp b/src/mame/drivers/mbc200.cpp index abb4dd2f6c1..105ea31fe1f 100644 --- a/src/mame/drivers/mbc200.cpp +++ b/src/mame/drivers/mbc200.cpp @@ -319,11 +319,11 @@ void mbc200_state::mbc200(machine_config &config) screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ screen.set_size(640, 400); screen.set_visarea(0, 640-1, 0, 400-1); - screen.set_screen_update("crtc", FUNC(h46505_device::screen_update)); + screen.set_screen_update("crtc", FUNC(hd6845s_device::screen_update)); GFXDECODE(config, "gfxdecode", m_palette, gfx_mbc200); PALETTE(config, m_palette, palette_device::MONOCHROME); - H46505(config, m_crtc, 8_MHz_XTAL / 4); // HD46505SP + HD6845S(config, m_crtc, 8_MHz_XTAL / 4); // HD46505SP m_crtc->set_screen("screen"); m_crtc->set_show_border_area(false); m_crtc->set_char_width(8); diff --git a/src/mame/drivers/mbc55x.cpp b/src/mame/drivers/mbc55x.cpp index 73629a1945f..f1d2aab493d 100644 --- a/src/mame/drivers/mbc55x.cpp +++ b/src/mame/drivers/mbc55x.cpp @@ -289,7 +289,7 @@ void mbc55x_state::mbc55x(machine_config &config) m_ppi->in_pc_callback().set(FUNC(mbc55x_state::printer_status_r)); m_ppi->out_pc_callback().set(FUNC(mbc55x_state::disk_select_w)); - HD6845(config, m_crtc, 14.318181_MHz_XTAL / 8); // HD46505SP-1 + HD6845S(config, m_crtc, 14.318181_MHz_XTAL / 8); // HD46505SP-1 m_crtc->set_screen(SCREEN_TAG); m_crtc->set_show_border_area(false); m_crtc->set_char_width(8); diff --git a/src/mame/drivers/mpu4dealem.cpp b/src/mame/drivers/mpu4dealem.cpp index 3b1ddf828d9..9fe3a61994f 100644 --- a/src/mame/drivers/mpu4dealem.cpp +++ b/src/mame/drivers/mpu4dealem.cpp @@ -225,7 +225,7 @@ void mpu4dealem_state::dealem(machine_config &config) PALETTE(config, m_palette, FUNC(mpu4dealem_state::dealem_palette), 32); - hd6845_device &crtc(HD6845(config, "crtc", MPU4_MASTER_CLOCK / 4 / 8)); /* HD68B45 */ + hd6845s_device &crtc(HD6845S(config, "crtc", MPU4_MASTER_CLOCK / 4 / 8)); /* HD68B45 */ crtc.set_screen("screen"); crtc.set_show_border_area(false); crtc.set_char_width(8); diff --git a/src/mame/drivers/multi16.cpp b/src/mame/drivers/multi16.cpp index fab21770928..83d781a1f89 100644 --- a/src/mame/drivers/multi16.cpp +++ b/src/mame/drivers/multi16.cpp @@ -68,7 +68,7 @@ private: required_device m_maincpu; required_device m_pic; required_device m_pit; - required_device m_crtc; + required_device m_crtc; required_device m_palette; required_device m_fdc; required_device_array m_floppy; @@ -123,8 +123,8 @@ void multi16_state::multi16_io(address_map &map) // map(0x07, 0x07) // ? // map(0x08, 0x0b) // ? map(0x0c, 0x0f).rw(m_pit, FUNC(pit8253_device::read), FUNC(pit8253_device::write)); - map(0x40, 0x40).w(m_crtc, FUNC(hd6845_device::address_w)); - map(0x41, 0x41).rw(m_crtc, FUNC(hd6845_device::register_r), FUNC(hd6845_device::register_w)); + map(0x40, 0x40).w(m_crtc, FUNC(hd6845s_device::address_w)); + map(0x41, 0x41).rw(m_crtc, FUNC(hd6845s_device::register_r), FUNC(hd6845s_device::register_w)); // map(0x42, 0x44) // ? // map(0x48, 0x48) // ? // map(0x4e, 0x4e) // ? @@ -165,11 +165,11 @@ void multi16_state::multi16(machine_config &config) // video hardware screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); screen.set_raw(16000000, 848, 0, 640, 518, 0, 400); // unknown clock - screen.set_screen_update("crtc", FUNC(hd6845_device::screen_update)); + screen.set_screen_update("crtc", FUNC(hd6845s_device::screen_update)); PALETTE(config, m_palette, palette_device::RGB_3BIT); - HD6845(config, m_crtc, 2000000); // unknown clock + HD6845S(config, m_crtc, 2000000); // unknown clock m_crtc->set_screen("screen"); m_crtc->set_show_border_area(false); m_crtc->set_char_width(8); diff --git a/src/mame/drivers/multi8.cpp b/src/mame/drivers/multi8.cpp index 119bc61d3b6..6599704cd72 100644 --- a/src/mame/drivers/multi8.cpp +++ b/src/mame/drivers/multi8.cpp @@ -594,7 +594,7 @@ void multi8_state::multi8(machine_config &config) /* devices */ TIMER(config, "keyboard_timer").configure_periodic(FUNC(multi8_state::keyboard_callback), attotime::from_hz(240/32)); - H46505(config, m_crtc, XTAL(3'579'545)/2); /* unknown clock, hand tuned to get ~60 fps */ + MC6845(config, m_crtc, XTAL(3'579'545)/2); /* unknown variant, unknown clock, hand tuned to get ~60 fps */ m_crtc->set_screen("screen"); m_crtc->set_show_border_area(false); m_crtc->set_char_width(8); diff --git a/src/mame/drivers/myb3k.cpp b/src/mame/drivers/myb3k.cpp index b3639487930..c3d735bfad5 100644 --- a/src/mame/drivers/myb3k.cpp +++ b/src/mame/drivers/myb3k.cpp @@ -228,7 +228,7 @@ private: required_device m_dma8257; required_device m_speaker; required_device m_kb; - required_device m_crtc; + required_device m_crtc; required_shared_ptr m_vram; required_device m_isabus; optional_device m_centronics; @@ -597,8 +597,8 @@ void myb3k_state::myb3k_io(address_map &map) map(0x10, 0x18).rw(m_dma8257, FUNC(i8257_device::read), FUNC(i8257_device::write)); // 1c-1d HD46505S CRTC - map(0x1c, 0x1c).rw(m_crtc, FUNC(h46505_device::status_r), FUNC(h46505_device::address_w)); - map(0x1d, 0x1d).rw(m_crtc, FUNC(h46505_device::register_r), FUNC(h46505_device::register_w)); + map(0x1c, 0x1c).rw(m_crtc, FUNC(hd6845s_device::status_r), FUNC(hd6845s_device::address_w)); + map(0x1d, 0x1d).rw(m_crtc, FUNC(hd6845s_device::register_r), FUNC(hd6845s_device::register_w)); /* Expansion Unit 0x800 - 0xfff */ } @@ -980,7 +980,7 @@ void myb3k_state::myb3k(machine_config &config) // m_pit8253->out_handler<2>().set(FUNC(myb3k_state::pit_out2_changed)); /* Video controller */ - H46505(config, m_crtc, XTAL(14'318'181) / 16); /* Main crystal divided by 16 through a 74163 4 bit counter */ + HD6845S(config, m_crtc, XTAL(14'318'181) / 16); /* Main crystal divided by 16 through a 74163 4 bit counter */ m_crtc->set_screen(m_screen); m_crtc->set_show_border_area(false); m_crtc->set_char_width(8); @@ -1027,7 +1027,7 @@ void myb3k_state::myb3k(machine_config &config) /* Monitor */ SCREEN(config, m_screen, SCREEN_TYPE_RASTER); m_screen->set_raw(XTAL(14'318'181) / 3, 600, 0, 600, 400, 0, 400); - m_screen->set_screen_update("crtc", FUNC(h46505_device::screen_update)); + m_screen->set_screen_update("crtc", FUNC(hd6845s_device::screen_update)); } void myb3k_state::jb3000(machine_config &config) diff --git a/src/mame/drivers/nyny.cpp b/src/mame/drivers/nyny.cpp index df6f824ec22..0575c99dc78 100644 --- a/src/mame/drivers/nyny.cpp +++ b/src/mame/drivers/nyny.cpp @@ -618,7 +618,7 @@ void nyny_state::nyny(machine_config &config) PALETTE(config, m_palette, palette_device::RGB_3BIT); - H46505(config, m_mc6845, CRTC_CLOCK); + MC6845(config, m_mc6845, CRTC_CLOCK); // HD46505P m_mc6845->set_screen("screen"); m_mc6845->set_show_border_area(false); m_mc6845->set_char_width(8); diff --git a/src/mame/drivers/othello.cpp b/src/mame/drivers/othello.cpp index 513ea3fbe3e..c567e44b770 100644 --- a/src/mame/drivers/othello.cpp +++ b/src/mame/drivers/othello.cpp @@ -415,11 +415,11 @@ void othello_state::othello(machine_config &config) screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); screen.set_size(64*6, 64*8); screen.set_visarea(0*8, 64*6-1, 0*8, 64*8-1); - screen.set_screen_update("crtc", FUNC(h46505_device::screen_update)); + screen.set_screen_update("crtc", FUNC(hd6845s_device::screen_update)); PALETTE(config, m_palette, FUNC(othello_state::othello_palette), 0x10); - h46505_device &crtc(H46505(config, "crtc", 1000000 /* ? MHz */)); /* H46505 @ CPU clock */ + hd6845s_device &crtc(HD6845S(config, "crtc", 1000000 /* ? MHz */)); /* HD46505SP @ CPU clock */ crtc.set_screen("screen"); crtc.set_show_border_area(false); crtc.set_char_width(TILE_WIDTH); diff --git a/src/mame/drivers/paso1600.cpp b/src/mame/drivers/paso1600.cpp index e01e46d17c4..1c536d1699f 100644 --- a/src/mame/drivers/paso1600.cpp +++ b/src/mame/drivers/paso1600.cpp @@ -325,7 +325,7 @@ void paso1600_state::paso1600(machine_config &config) PALETTE(config, m_palette).set_entries(8); /* Devices */ - h46505_device &crtc(H46505(config, "crtc", 16000000/4)); /* unknown clock, hand tuned to get ~60 fps */ + mc6845_device &crtc(MC6845(config, "crtc", 16000000/4)); /* unknown variant, unknown clock, hand tuned to get ~60 fps */ crtc.set_screen("screen"); crtc.set_show_border_area(false); crtc.set_char_width(8); diff --git a/src/mame/drivers/pasopia.cpp b/src/mame/drivers/pasopia.cpp index 3ce53dbc8a5..ca4d37a1601 100644 --- a/src/mame/drivers/pasopia.cpp +++ b/src/mame/drivers/pasopia.cpp @@ -301,12 +301,12 @@ void pasopia_state::pasopia(machine_config &config) screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ screen.set_size(640, 480); screen.set_visarea(0, 640-1, 0, 480-1); - screen.set_screen_update("crtc", FUNC(h46505_device::screen_update)); + screen.set_screen_update("crtc", FUNC(mc6845_device::screen_update)); GFXDECODE(config, "gfxdecode", m_palette, gfx_pasopia); PALETTE(config, m_palette).set_entries(8); /* Devices */ - H46505(config, m_crtc, XTAL(4'000'000)/4); /* unknown clock, hand tuned to get ~60 fps */ + MC6845(config, m_crtc, XTAL(4'000'000)/4); /* unknown variant, unknown clock, hand tuned to get ~60 fps */ m_crtc->set_screen("screen"); m_crtc->set_show_border_area(false); m_crtc->set_char_width(8); diff --git a/src/mame/drivers/pasopia7.cpp b/src/mame/drivers/pasopia7.cpp index 3e97477912a..0296ec2abab 100644 --- a/src/mame/drivers/pasopia7.cpp +++ b/src/mame/drivers/pasopia7.cpp @@ -984,7 +984,7 @@ void pasopia7_state::p7_raster(machine_config &config) PALETTE(config, m_palette, palette_device::BRG_3BIT); GFXDECODE(config, "gfxdecode", m_palette, gfx_pasopia7); - H46505(config, m_crtc, VDP_CLOCK); /* unknown clock, hand tuned to get ~60 fps */ + MC6845(config, m_crtc, VDP_CLOCK); /* unknown variant, unknown clock, hand tuned to get ~60 fps */ m_crtc->set_screen(m_screen); m_crtc->set_show_border_area(false); m_crtc->set_char_width(8); @@ -1007,7 +1007,7 @@ void pasopia7_state::p7_lcd(machine_config &config) PALETTE(config, m_palette, FUNC(pasopia7_state::p7_lcd_palette), 8); GFXDECODE(config, "gfxdecode", m_palette, gfx_pasopia7); - H46505(config, m_crtc, LCD_CLOCK); /* unknown clock, hand tuned to get ~60 fps */ + MC6845(config, m_crtc, LCD_CLOCK); /* unknown variant, unknown clock, hand tuned to get ~60 fps */ m_crtc->set_screen(m_screen); m_crtc->set_show_border_area(false); m_crtc->set_char_width(8); diff --git a/src/mame/drivers/peoplepc.cpp b/src/mame/drivers/peoplepc.cpp index 4d01fbce79e..ed7beef1aad 100644 --- a/src/mame/drivers/peoplepc.cpp +++ b/src/mame/drivers/peoplepc.cpp @@ -277,7 +277,7 @@ void peoplepc_state::olypeopl(machine_config &config) GFXDECODE(config, m_gfxdecode, m_palette, gfxdecode_device::empty); PALETTE(config, m_palette, palette_device::MONOCHROME); - h46505_device &crtc(H46505(config, "h46505", XTAL(22'000'000)/8)); + mc6845_device &crtc(MC6845(config, "h46505", XTAL(22'000'000)/8)); // unknown variant crtc.set_screen("screen"); crtc.set_show_border_area(false); crtc.set_char_width(8); diff --git a/src/mame/drivers/pwrview.cpp b/src/mame/drivers/pwrview.cpp index 2c9d76c2c62..e9e21a36aa4 100644 --- a/src/mame/drivers/pwrview.cpp +++ b/src/mame/drivers/pwrview.cpp @@ -388,8 +388,8 @@ void pwrview_state::pwrview_io(address_map &map) map(0xc00b, 0xc00b).r(FUNC(pwrview_state::err_r)); map(0xc00c, 0xc00d).ram(); map(0xc080, 0xc080).rw(FUNC(pwrview_state::unk4_r), FUNC(pwrview_state::unk4_w)); - map(0xc088, 0xc088).w("crtc", FUNC(hd6845_device::address_w)); - map(0xc08a, 0xc08a).rw("crtc", FUNC(hd6845_device::register_r), FUNC(hd6845_device::register_w)); + map(0xc088, 0xc088).w("crtc", FUNC(hd6845s_device::address_w)); + map(0xc08a, 0xc08a).rw("crtc", FUNC(hd6845s_device::register_r), FUNC(hd6845s_device::register_w)); map(0xc280, 0xc287).rw(FUNC(pwrview_state::unk3_r), FUNC(pwrview_state::unk3_w)).umask16(0x00ff); map(0xc288, 0xc28f).rw(m_pit, FUNC(pit8253_device::read), FUNC(pit8253_device::write)).umask16(0x00ff); map(0xc2a0, 0xc2a7).rw("sio", FUNC(z80sio2_device::cd_ba_r), FUNC(z80sio2_device::cd_ba_w)).umask16(0x00ff); @@ -413,7 +413,7 @@ void pwrview_state::pwrview(machine_config &config) screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); screen.set_raw(XTAL(64'000'000)/8, 480, 0, 384, 1040, 0, 960); // clock unknown - screen.set_screen_update("crtc", FUNC(hd6845_device::screen_update)); + screen.set_screen_update("crtc", FUNC(hd6845s_device::screen_update)); PIT8253(config, m_pit, 0); m_pit->set_clk<0>(XTAL(16'000'000)/16); // clocks unknown, fix above when found @@ -431,7 +431,7 @@ void pwrview_state::pwrview(machine_config &config) Z80SIO2(config, "sio", 4000000); - hd6845_device &crtc(HD6845(config, "crtc", XTAL(64'000'000)/64)); // clock unknown + hd6845s_device &crtc(HD6845S(config, "crtc", XTAL(64'000'000)/64)); // clock unknown crtc.set_char_width(32); /* ? */ crtc.set_update_row_callback(FUNC(pwrview_state::update_row), this); diff --git a/src/mame/drivers/qvt102.cpp b/src/mame/drivers/qvt102.cpp index d11723fcee3..acb5f3d7a59 100644 --- a/src/mame/drivers/qvt102.cpp +++ b/src/mame/drivers/qvt102.cpp @@ -6,7 +6,7 @@ Known hardware: - Motorola 6800 CPU - - Hitachi HD46505 (Motorola 6845-compatible) CRTC + - Hitachi HD46505SP (Motorola 6845-compatible) CRTC - Hitachi HD46850 (Motorola 6850-compatible) ACIA - M58725P-15 (6116-compatible) (2k x 8bit RAM) - Zilog Z8430 CTC @@ -62,7 +62,7 @@ private: required_device m_maincpu; required_device m_acia; required_device m_ctc; - required_device m_crtc; + required_device m_crtc; required_device m_screen; required_device m_gfxdecode; required_device m_palette; @@ -150,7 +150,7 @@ void qvt102_state::qvt102(machine_config &config) PALETTE(config, m_palette, palette_device::MONOCHROME_HIGHLIGHT); GFXDECODE(config, m_gfxdecode, m_palette, chars); - H46505(config, m_crtc, MASTER_CLOCK / 9); + HD6845S(config, m_crtc, MASTER_CLOCK / 9); m_crtc->set_screen("screen"); m_crtc->set_show_border_area(false); m_crtc->set_char_width(9); diff --git a/src/mame/drivers/royalmah.cpp b/src/mame/drivers/royalmah.cpp index 622baca8f21..c19b7c92852 100644 --- a/src/mame/drivers/royalmah.cpp +++ b/src/mame/drivers/royalmah.cpp @@ -3650,7 +3650,7 @@ void royalmah_state::janyoup2(machine_config &config) m_maincpu->set_clock(XTAL(18'432'000)/4); // unknown divider m_maincpu->set_addrmap(AS_IO, &royalmah_state::janyoup2_iomap); - h46505_device &crtc(H46505(config, "crtc", XTAL(18'432'000)/12)); // unknown divider + hd6845s_device &crtc(HD6845S(config, "crtc", XTAL(18'432'000)/12)); // unknown divider crtc.set_screen("screen"); crtc.set_show_border_area(false); crtc.set_char_width(4); diff --git a/src/mame/drivers/smc777.cpp b/src/mame/drivers/smc777.cpp index 442c694bc6e..9f45f31ca5b 100644 --- a/src/mame/drivers/smc777.cpp +++ b/src/mame/drivers/smc777.cpp @@ -1128,7 +1128,7 @@ MACHINE_CONFIG_START(smc777_state::smc777) GFXDECODE(config, m_gfxdecode, m_palette, gfxdecode_device::empty); - H46505(config, m_crtc, MASTER_CLOCK/2); /* unknown clock, hand tuned to get ~60 fps */ + HD6845S(config, m_crtc, MASTER_CLOCK/2); /* HD68A45SP; unknown clock, hand tuned to get ~60 fps */ m_crtc->set_screen(m_screen); m_crtc->set_show_border_area(true); m_crtc->set_char_width(8); @@ -1165,8 +1165,8 @@ ROM_START( smc777 ) ROM_SYSTEM_BIOS(1, "2nd", "2nd rev.") ROMX_LOAD( "smcrom.v2", 0x0000, 0x4000, CRC(c1494b8f) SHA1(a7396f5c292f11639ffbf0b909e8473c5aa63518), ROM_BIOS(1)) - ROM_REGION( 0x800, "mcu", ROMREGION_ERASEFF ) - ROM_LOAD( "i80xx", 0x000, 0x800, NO_DUMP ) // keyboard mcu, needs decapping + ROM_REGION( 0x400, "mcu", ROMREGION_ERASEFF ) + ROM_LOAD( "m5l8041a-077p.bin", 0x000, 0x400, NO_DUMP ) // 8041 keyboard mcu, needs decapping ROM_END /* Driver */ diff --git a/src/mame/drivers/speedatk.cpp b/src/mame/drivers/speedatk.cpp index ee65103d336..9b35cde163e 100644 --- a/src/mame/drivers/speedatk.cpp +++ b/src/mame/drivers/speedatk.cpp @@ -323,7 +323,7 @@ void speedatk_state::speedatk(machine_config &config) screen.set_visarea(0*8, 32*8-1, 0*8, 32*8-1); screen.set_screen_update(FUNC(speedatk_state::screen_update)); - H46505(config, m_crtc, MASTER_CLOCK/16); /* hand tuned to get ~60 fps */ + MC6845(config, m_crtc, MASTER_CLOCK/16); /* unknown variant; hand tuned to get ~60 fps */ m_crtc->set_screen("screen"); m_crtc->set_show_border_area(false); m_crtc->set_char_width(8); diff --git a/src/mame/drivers/tapatune.cpp b/src/mame/drivers/tapatune.cpp index 2b3a9414c2f..e74e6fa0e87 100644 --- a/src/mame/drivers/tapatune.cpp +++ b/src/mame/drivers/tapatune.cpp @@ -552,7 +552,7 @@ void tapatune_state::tapatune(machine_config &config) config.m_perfect_cpu_quantum = subtag("videocpu"); - h46505_device &crtc(H46505(config, "crtc", XTAL(24'000'000) / 16)); + hd6845s_device &crtc(HD6845S(config, "crtc", XTAL(24'000'000) / 16)); crtc.set_screen("screen"); crtc.set_show_border_area(false); crtc.set_char_width(5); @@ -563,7 +563,7 @@ void tapatune_state::tapatune(machine_config &config) /* video hardware */ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); screen.set_raw(XTAL(24'000'000) / 16 * 5, 500, 0, 320, 250, 0, 240); - screen.set_screen_update("crtc", FUNC(h46505_device::screen_update)); + screen.set_screen_update("crtc", FUNC(hd6845s_device::screen_update)); } /************************************* diff --git a/src/mame/drivers/twincobr.cpp b/src/mame/drivers/twincobr.cpp index 2697328b4be..310f77e7908 100644 --- a/src/mame/drivers/twincobr.cpp +++ b/src/mame/drivers/twincobr.cpp @@ -682,7 +682,7 @@ void twincobr_state::twincobr(machine_config &config) m_coinlatch->q_out_cb<7>().set(FUNC(twincobr_state::coin_lockout_2_w)); /* video hardware */ - hd6845_device &crtc(HD6845(config, "crtc", XTAL(28'000'000)/8)); /* 3.5MHz measured on CLKin */ + hd6845s_device &crtc(HD6845S(config, "crtc", XTAL(28'000'000)/8)); /* 3.5MHz measured on CLKin */ crtc.set_screen(m_screen); crtc.set_show_border_area(false); crtc.set_char_width(2); diff --git a/src/mame/drivers/victor9k.cpp b/src/mame/drivers/victor9k.cpp index 6dbd305c8ff..8d32c46a950 100644 --- a/src/mame/drivers/victor9k.cpp +++ b/src/mame/drivers/victor9k.cpp @@ -691,13 +691,13 @@ void victor9k_state::victor9k(machine_config &config) screen.set_color(rgb_t::green()); screen.set_refresh_hz(50); screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); // not accurate - screen.set_screen_update(HD46505S_TAG, FUNC(hd6845_device::screen_update)); + screen.set_screen_update(HD46505S_TAG, FUNC(hd6845s_device::screen_update)); screen.set_size(640, 480); screen.set_visarea(0, 640-1, 0, 480-1); PALETTE(config, m_palette, FUNC(victor9k_state::victor9k_palette), 16); - HD6845(config, m_crtc, XTAL(30'000'000)/10); // HD6845 == HD46505S + HD6845S(config, m_crtc, XTAL(30'000'000)/10); // HD6845 == HD46505S m_crtc->set_screen(SCREEN_TAG); m_crtc->set_show_border_area(true); m_crtc->set_char_width(10); diff --git a/src/mame/drivers/videosaa.cpp b/src/mame/drivers/videosaa.cpp index 829e652026a..84768b1a296 100644 --- a/src/mame/drivers/videosaa.cpp +++ b/src/mame/drivers/videosaa.cpp @@ -96,7 +96,7 @@ void videosaa_state::videosaa(machine_config &config) screen.set_visarea(0, 640-1, 0, 480-1); screen.set_screen_update(FUNC(videosaa_state::screen_update)); - H46505(config, "crtc", 10_MHz_XTAL); // unknown divider + HD6845S(config, "crtc", 10_MHz_XTAL); // unknown divider GFXDECODE(config, "gfxdecode", "palette", gfx); diff --git a/src/mame/drivers/vk100.cpp b/src/mame/drivers/vk100.cpp index 5af83801dc8..98daff46239 100644 --- a/src/mame/drivers/vk100.cpp +++ b/src/mame/drivers/vk100.cpp @@ -1043,7 +1043,7 @@ void vk100_state::vk100(machine_config &config) screen.set_raw(XTAL(45'619'200)/3, 882, 0, 720, 370, 0, 350 ); // fake screen timings for startup until 6845 sets real ones screen.set_screen_update("crtc", FUNC(mc6845_device::screen_update)); - H46505(config, m_crtc, 45.6192_MHz_XTAL/3/12); + MC6845(config, m_crtc, 45.6192_MHz_XTAL/3/12); // unknown variant m_crtc->set_screen("screen"); m_crtc->set_show_border_area(false); m_crtc->set_char_width(12); diff --git a/src/mame/drivers/wardner.cpp b/src/mame/drivers/wardner.cpp index df124b67ac2..6d630131924 100644 --- a/src/mame/drivers/wardner.cpp +++ b/src/mame/drivers/wardner.cpp @@ -415,7 +415,7 @@ void wardner_state::wardner(machine_config &config) coinlatch.q_out_cb<7>().set(FUNC(wardner_state::coin_lockout_2_w)); /* video hardware */ - hd6845_device &crtc(HD6845(config, "crtc", XTAL(14'000'000)/4)); /* 3.5MHz measured on CLKin */ + hd6845s_device &crtc(HD6845S(config, "crtc", XTAL(14'000'000)/4)); /* 3.5MHz measured on CLKin */ crtc.set_screen(m_screen); crtc.set_show_border_area(false); crtc.set_char_width(2); diff --git a/src/mame/drivers/x1.cpp b/src/mame/drivers/x1.cpp index a044ca8c284..24bf556be9c 100644 --- a/src/mame/drivers/x1.cpp +++ b/src/mame/drivers/x1.cpp @@ -2228,7 +2228,7 @@ void x1_state::x1(machine_config &config) m_screen->set_visarea(0, 640-1, 0, 480-1); m_screen->set_screen_update(FUNC(x1_state::screen_update_x1)); - H46505(config, m_crtc, (VDP_CLOCK/48)); //unknown divider + HD6845S(config, m_crtc, (VDP_CLOCK/48)); //unknown divider m_crtc->set_screen(m_screen); m_crtc->set_show_border_area(true); m_crtc->set_char_width(8); diff --git a/src/mame/drivers/x1twin.cpp b/src/mame/drivers/x1twin.cpp index 698f5059488..292905b3f9b 100644 --- a/src/mame/drivers/x1twin.cpp +++ b/src/mame/drivers/x1twin.cpp @@ -466,7 +466,7 @@ void x1twin_state::x1twin(machine_config &config) pce_screen.set_raw(PCE_MAIN_CLOCK/2, huc6260_device::WPF, 70, 70 + 512 + 32, huc6260_device::LPF, 14, 14+242); pce_screen.set_screen_update(FUNC(x1twin_state::screen_update_x1pce)); - H46505(config, m_crtc, (VDP_CLOCK/48)); //unknown divider + HD6845S(config, m_crtc, (VDP_CLOCK/48)); //unknown divider (TODO: verify chip type) m_crtc->set_screen(m_screen); m_crtc->set_show_border_area(true); m_crtc->set_char_width(8); diff --git a/src/mame/includes/bbc.h b/src/mame/includes/bbc.h index 3c733c2c291..db9497ee69e 100644 --- a/src/mame/includes/bbc.h +++ b/src/mame/includes/bbc.h @@ -219,7 +219,7 @@ protected: required_device m_maincpu; required_device m_ram; - required_device m_hd6845; + required_device m_hd6845; required_device m_screen; required_device m_irqs; required_device m_palette; diff --git a/src/mame/includes/docastle.h b/src/mame/includes/docastle.h index c35a9079cdc..dd65ec46835 100644 --- a/src/mame/includes/docastle.h +++ b/src/mame/includes/docastle.h @@ -47,7 +47,7 @@ private: required_device m_maincpu; required_device m_slave; required_device m_cpu3; - required_device m_crtc; + required_device m_crtc; optional_device m_msm; required_device_array m_inp; diff --git a/src/mame/includes/dragon.h b/src/mame/includes/dragon.h index 1c8f38d8830..16516e06d44 100644 --- a/src/mame/includes/dragon.h +++ b/src/mame/includes/dragon.h @@ -122,7 +122,7 @@ protected: virtual void device_reset() override; private: - required_device m_crtc; + required_device m_crtc; required_device m_palette; optional_shared_ptr m_plus_ram; optional_shared_ptr m_video_ram; diff --git a/src/mame/includes/speedatk.h b/src/mame/includes/speedatk.h index b62137b131d..55c8c076362 100644 --- a/src/mame/includes/speedatk.h +++ b/src/mame/includes/speedatk.h @@ -25,7 +25,7 @@ public: private: required_device m_maincpu; - required_device m_crtc; + required_device m_crtc; required_device m_gfxdecode; required_device m_palette; diff --git a/src/mame/video/v1050.cpp b/src/mame/video/v1050.cpp index d8bd838ef3c..2d0ade7b4f8 100644 --- a/src/mame/video/v1050.cpp +++ b/src/mame/video/v1050.cpp @@ -111,7 +111,7 @@ void v1050_state::video_start() void v1050_state::v1050_video(machine_config &config) { - H46505(config, m_crtc, 15.36_MHz_XTAL/8); + HD6845S(config, m_crtc, 15.36_MHz_XTAL/8); // HD6845SP according to Programmer's Technical Document m_crtc->set_screen(SCREEN_TAG); m_crtc->set_show_border_area(true); m_crtc->set_char_width(8); @@ -119,7 +119,7 @@ void v1050_state::v1050_video(machine_config &config) m_crtc->out_vsync_callback().set(FUNC(v1050_state::crtc_vs_w)); screen_device &screen(SCREEN(config, SCREEN_TAG, SCREEN_TYPE_RASTER, rgb_t::green())); - screen.set_screen_update(H46505_TAG, FUNC(h46505_device::screen_update)); + screen.set_screen_update(H46505_TAG, FUNC(hd6845s_device::screen_update)); screen.set_refresh_hz(60); screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); screen.set_size(640, 400); -- cgit v1.2.3