summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author AJR <ajrhacker@users.noreply.github.com>2019-05-18 20:24:13 -0400
committer AJR <ajrhacker@users.noreply.github.com>2019-05-18 20:24:13 -0400
commite2eff859010d88e09667420619c1653c2850737c (patch)
tree21b0b7a3c0a961c5bcc581697305dc949714e7ff
parent53ca659461b413f9345e60572b9ce38f4175c1a7 (diff)
mc6845: More consistent identification of HD6845S variant (nw)
-rw-r--r--src/devices/bus/acorn/system/vdu40.cpp2
-rw-r--r--src/devices/bus/acorn/system/vdu80.cpp2
-rw-r--r--src/devices/bus/c64/xl80.cpp4
-rw-r--r--src/devices/bus/c64/xl80.h2
-rw-r--r--src/devices/bus/mtx/sdx.cpp4
-rw-r--r--src/devices/bus/svi3x8/slot/sv806.cpp4
-rw-r--r--src/devices/bus/svi3x8/slot/sv806.h2
-rw-r--r--src/devices/bus/vic20/videopak.cpp4
-rw-r--r--src/devices/bus/vic20/videopak.h2
-rw-r--r--src/devices/video/mc6845.cpp39
-rw-r--r--src/devices/video/mc6845.h17
-rw-r--r--src/mame/drivers/albazg.cpp2
-rw-r--r--src/mame/drivers/alphatro.cpp2
-rw-r--r--src/mame/drivers/amstrad.cpp2
-rw-r--r--src/mame/drivers/amust.cpp2
-rw-r--r--src/mame/drivers/apricot.cpp8
-rw-r--r--src/mame/drivers/b16.cpp2
-rw-r--r--src/mame/drivers/bbc.cpp28
-rw-r--r--src/mame/drivers/blitz68k.cpp10
-rw-r--r--src/mame/drivers/bml3.cpp2
-rw-r--r--src/mame/drivers/candela.cpp11
-rw-r--r--src/mame/drivers/cgenie.cpp10
-rw-r--r--src/mame/drivers/chance32.cpp2
-rw-r--r--src/mame/drivers/coinmstr.cpp2
-rw-r--r--src/mame/drivers/dgn_beta.cpp4
-rw-r--r--src/mame/drivers/docastle.cpp2
-rw-r--r--src/mame/drivers/dragon.cpp4
-rw-r--r--src/mame/drivers/duet16.cpp8
-rw-r--r--src/mame/drivers/fanucspmg.cpp2
-rw-r--r--src/mame/drivers/flipjack.cpp8
-rw-r--r--src/mame/drivers/fp1100.cpp4
-rw-r--r--src/mame/drivers/fp6000.cpp2
-rw-r--r--src/mame/drivers/hitpoker.cpp2
-rw-r--r--src/mame/drivers/hnayayoi.cpp18
-rw-r--r--src/mame/drivers/itt1700.cpp6
-rw-r--r--src/mame/drivers/laserbas.cpp2
-rw-r--r--src/mame/drivers/lola8a.cpp4
-rw-r--r--src/mame/drivers/luckgrln.cpp2
-rw-r--r--src/mame/drivers/mbc200.cpp4
-rw-r--r--src/mame/drivers/mbc55x.cpp2
-rw-r--r--src/mame/drivers/mpu4dealem.cpp2
-rw-r--r--src/mame/drivers/multi16.cpp10
-rw-r--r--src/mame/drivers/multi8.cpp2
-rw-r--r--src/mame/drivers/myb3k.cpp10
-rw-r--r--src/mame/drivers/nyny.cpp2
-rw-r--r--src/mame/drivers/othello.cpp4
-rw-r--r--src/mame/drivers/paso1600.cpp2
-rw-r--r--src/mame/drivers/pasopia.cpp4
-rw-r--r--src/mame/drivers/pasopia7.cpp4
-rw-r--r--src/mame/drivers/peoplepc.cpp2
-rw-r--r--src/mame/drivers/pwrview.cpp8
-rw-r--r--src/mame/drivers/qvt102.cpp6
-rw-r--r--src/mame/drivers/royalmah.cpp2
-rw-r--r--src/mame/drivers/smc777.cpp6
-rw-r--r--src/mame/drivers/speedatk.cpp2
-rw-r--r--src/mame/drivers/tapatune.cpp4
-rw-r--r--src/mame/drivers/twincobr.cpp2
-rw-r--r--src/mame/drivers/victor9k.cpp4
-rw-r--r--src/mame/drivers/videosaa.cpp2
-rw-r--r--src/mame/drivers/vk100.cpp2
-rw-r--r--src/mame/drivers/wardner.cpp2
-rw-r--r--src/mame/drivers/x1.cpp2
-rw-r--r--src/mame/drivers/x1twin.cpp2
-rw-r--r--src/mame/includes/bbc.h2
-rw-r--r--src/mame/includes/docastle.h2
-rw-r--r--src/mame/includes/dragon.h2
-rw-r--r--src/mame/includes/speedatk.h2
-rw-r--r--src/mame/video/v1050.cpp4
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<h46505_device> m_crtc;
+ required_device<hd6845s_device> m_crtc;
required_device<palette_device> m_palette;
required_memory_region m_char_rom;
optional_shared_ptr<uint8_t> 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<hd6845_device> m_crtc;
+ required_device<hd6845s_device> m_crtc;
required_device<palette_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<h46505_device> m_crtc;
+ required_device<mc6845_device> m_crtc;
required_device<palette_device> m_palette;
required_memory_region m_char_rom;
optional_shared_ptr<uint8_t> 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<i8086_cpu_device> m_cpu;
required_device<i8089_device> m_iop;
required_device<ram_device> m_ram;
- required_device<hd6845_device> m_crtc;
+ required_device<hd6845s_device> m_crtc;
required_device<i8255_device> m_ppi;
required_device<pic8259_device> m_pic;
required_device<pit8253_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<pia6821_device> m_pia1;
required_device<ram_device> m_ram;
required_memory_bank m_bank1;
- required_device<h46505_device> m_crtc;
+ required_device<hd6845s_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<cpu_device> m_maincpu;
required_device<cassette_image_device> m_cassette;
required_device<ram_device> m_ram;
- required_device<hd6845_device> m_crtc;
+ required_device<hd6845s_device> m_crtc;
required_device<rs232_port_device> m_rs232;
required_device<cg_exp_slot_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<hd6845_device>("crtc")->set_update_row_callback(FUNC(hnayayoi_state::untoucha_update_row), this);
+ subdevice<hd6845s_device>("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<cpu_device> m_maincpu;
required_device<pic8259_device> m_pic;
required_device<pit8253_device> m_pit;
- required_device<hd6845_device> m_crtc;
+ required_device<hd6845s_device> m_crtc;
required_device<palette_device> m_palette;
required_device<mb8866_device> m_fdc;
required_device_array<floppy_connector, 2> 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<i8257_device> m_dma8257;
required_device<speaker_sound_device> m_speaker;
required_device<myb3k_keyboard_device> m_kb;
- required_device<h46505_device> m_crtc;
+ required_device<hd6845s_device> m_crtc;
required_shared_ptr<uint8_t> m_vram;
required_device<isa8_device> m_isabus;
optional_device<centronics_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<m6800_cpu_device> m_maincpu;
required_device<acia6850_device> m_acia;
required_device<z80ctc_device> m_ctc;
- required_device<h46505_device> m_crtc;
+ required_device<hd6845s_device> m_crtc;
required_device<screen_device> m_screen;
required_device<gfxdecode_device> m_gfxdecode;
required_device<palette_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<cpu_device> m_maincpu;
required_device<ram_device> m_ram;
- required_device<hd6845_device> m_hd6845;
+ required_device<hd6845s_device> m_hd6845;
required_device<screen_device> m_screen;
required_device<input_merger_device> m_irqs;
required_device<palette_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<cpu_device> m_maincpu;
required_device<cpu_device> m_slave;
required_device<cpu_device> m_cpu3;
- required_device<h46505_device> m_crtc;
+ required_device<hd6845s_device> m_crtc;
optional_device<msm5205_device> m_msm;
required_device_array<tms1025_device, 2> 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<hd6845_device> m_crtc;
+ required_device<hd6845s_device> m_crtc;
required_device<palette_device> m_palette;
optional_shared_ptr<uint8_t> m_plus_ram;
optional_shared_ptr<uint8_t> 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<cpu_device> m_maincpu;
- required_device<h46505_device> m_crtc;
+ required_device<mc6845_device> m_crtc;
required_device<gfxdecode_device> m_gfxdecode;
required_device<palette_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);