mc6845: More consistent identification of HD6845S variant (nw)

This commit is contained in:
AJR 2019-05-18 20:24:13 -04:00
parent 53ca659461
commit e2eff85901
68 changed files with 154 additions and 183 deletions

View File

@ -33,7 +33,7 @@ void acorn_vdu40_device::device_add_mconfig(machine_config &config)
PALETTE(config, "palette").set_entries(8); 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_screen("screen");
m_crtc->set_show_border_area(false); m_crtc->set_show_border_area(false);
m_crtc->set_char_width(12); m_crtc->set_char_width(12);

View File

@ -97,7 +97,7 @@ void acorn_vdu80_device::device_add_mconfig(machine_config &config)
GFXDECODE(config, "gfxdecode", m_palette, gfx_acorn_vdu80); GFXDECODE(config, "gfxdecode", m_palette, gfx_acorn_vdu80);
PALETTE(config, m_palette, palette_device::MONOCHROME); 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_screen("screen");
m_crtc->set_show_border_area(false); m_crtc->set_show_border_area(false);
m_crtc->set_char_width(6); m_crtc->set_char_width(6);

View File

@ -126,7 +126,7 @@ GFXDECODE_END
void c64_xl80_device::device_add_mconfig(machine_config &config) 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_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_size(80*8, 24*8);
screen.set_visarea(0, 80*8-1, 0, 24*8-1); screen.set_visarea(0, 80*8-1, 0, 24*8-1);
screen.set_refresh_hz(50); 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); GFXDECODE(config, "gfxdecode", m_palette, gfx_c64_xl80);
PALETTE(config, m_palette, palette_device::MONOCHROME); 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_screen(MC6845_SCREEN_TAG);
m_crtc->set_show_border_area(true); m_crtc->set_show_border_area(true);
m_crtc->set_char_width(8); m_crtc->set_char_width(8);

View File

@ -49,7 +49,7 @@ protected:
private: private:
MC6845_UPDATE_ROW( crtc_update_row ); 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_device<palette_device> m_palette;
required_memory_region m_char_rom; required_memory_region m_char_rom;
optional_shared_ptr<uint8_t> m_ram; optional_shared_ptr<uint8_t> m_ram;

View File

@ -154,12 +154,12 @@ void mtx_sdxcpm_device::device_add_mconfig(machine_config &config)
m_screen->set_refresh_hz(50); m_screen->set_refresh_hz(50);
m_screen->set_size(960, 313); m_screen->set_size(960, 313);
m_screen->set_visarea(00, 640 - 1, 0, 240 - 1); 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); GFXDECODE(config, "gfxdecode", "palette", gfx_mtx_sdx);
PALETTE(config, "palette", palette_device::RGB_3BIT); 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_screen("screen");
m_crtc->set_show_border_area(false); m_crtc->set_show_border_area(false);
m_crtc->set_char_width(8); m_crtc->set_char_width(8);

View File

@ -44,11 +44,11 @@ void sv806_device::device_add_mconfig(machine_config &config)
screen_device &screen(SCREEN(config, "80col", SCREEN_TYPE_RASTER)); screen_device &screen(SCREEN(config, "80col", SCREEN_TYPE_RASTER));
screen.set_color(rgb_t::green()); screen.set_color(rgb_t::green());
screen.set_raw((XTAL(12'000'000) / 6) * 8, 864, 0, 640, 317, 0, 192); 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); 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_screen("80col");
m_crtc->set_show_border_area(false); m_crtc->set_show_border_area(false);
m_crtc->set_char_width(8); m_crtc->set_char_width(8);

View File

@ -41,7 +41,7 @@ protected:
private: private:
MC6845_UPDATE_ROW(crtc_update_row); 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_device<palette_device> m_palette;
required_memory_region m_gfx; required_memory_region m_gfx;

View File

@ -100,7 +100,7 @@ GFXDECODE_END
void vic20_video_pak_device::device_add_mconfig(machine_config &config) 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_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_size(80*8, 24*8);
screen.set_visarea(0, 80*8-1, 0, 24*8-1); screen.set_visarea(0, 80*8-1, 0, 24*8-1);
screen.set_refresh_hz(50); 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); GFXDECODE(config, "gfxdecode", m_palette, gfx_vic20_video_pak);
PALETTE(config, m_palette, palette_device::MONOCHROME); 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_screen(MC6845_SCREEN_TAG);
m_crtc->set_show_border_area(true); m_crtc->set_show_border_area(true);
m_crtc->set_char_width(8); m_crtc->set_char_width(8);

View File

@ -48,7 +48,7 @@ protected:
private: private:
MC6845_UPDATE_ROW( crtc_update_row ); 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_device<palette_device> m_palette;
required_memory_region m_char_rom; required_memory_region m_char_rom;
optional_shared_ptr<uint8_t> m_videoram; optional_shared_ptr<uint8_t> m_videoram;

View File

@ -7,15 +7,17 @@
The following variations exist that are different in The following variations exist that are different in
functionality and not just in speed rating(1): functionality and not just in speed rating(1):
* Motorola 6845, 6845-1 * Motorola 6845, 6845-1
* Hitachi 46505 * Hitachi 6845 (= 46505R), 6845S (= 46505S), 6345/6445
* Rockwell 6545, 6545-1 (= Synertek SY6545-1) * Rockwell 6545, 6545-1 (= Synertek SY6545-1)
* MOS Technology 6545-1 * MOS Technology 6545-1
(1) as per the document at (1) as per the document at
http://www.6502.org/users/andre/hwinfo/crtc/diffs.html http://www.6502.org/users/andre/hwinfo/crtc/diffs.html
The various speed rated devices are identified by a letter, The various speed rated devices are usually identified by a
for example M68A45, M68B45, etc. 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. 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(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(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(C6545_1, c6545_1_device, "c6545_1", "C6545-1 CRTC")
DEFINE_DEVICE_TYPE(H46505, h46505_device, "h46505", "Hitachi HD46505 CRTC") DEFINE_DEVICE_TYPE(HD6845S, hd6845s_device, "hd6845s", "Hitachi HD6845S CRTC") // same as HD46505S
DEFINE_DEVICE_TYPE(HD6845, hd6845_device, "hd6845", "Hitachi HD6845 CRTC")
DEFINE_DEVICE_TYPE(SY6545_1, sy6545_1_device, "sy6545_1", "Synertek SY6545-1 CRTC") 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(SY6845E, sy6845e_device, "sy6845e", "Synertek SY6845E CRTC")
DEFINE_DEVICE_TYPE(HD6345, hd6345_device, "hd6345", "Hitachi HD6345 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() void hd6845s_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()
{ {
mc6845_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 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 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 c6545_1_device::device_reset() { mc6845_device::device_reset(); }
void sy6545_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(); } 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_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) : 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) hd6845s_device::hd6845s_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: mc6845_device(mconfig, HD6845, tag, owner, clock) : mc6845_device(mconfig, HD6845S, tag, owner, clock)
{ {
} }

View File

@ -322,20 +322,10 @@ protected:
virtual void device_reset() override; virtual void device_reset() override;
}; };
class h46505_device : public mc6845_device class hd6845s_device : public mc6845_device
{ {
public: public:
h46505_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;
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);
protected: protected:
virtual void device_start() override; 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(MC6845_1, mc6845_1_device)
DECLARE_DEVICE_TYPE(R6545_1, r6545_1_device) DECLARE_DEVICE_TYPE(R6545_1, r6545_1_device)
DECLARE_DEVICE_TYPE(C6545_1, c6545_1_device) DECLARE_DEVICE_TYPE(C6545_1, c6545_1_device)
DECLARE_DEVICE_TYPE(H46505, h46505_device) DECLARE_DEVICE_TYPE(HD6845S, hd6845s_device)
DECLARE_DEVICE_TYPE(HD6845, hd6845_device)
DECLARE_DEVICE_TYPE(SY6545_1, sy6545_1_device) DECLARE_DEVICE_TYPE(SY6545_1, sy6545_1_device)
DECLARE_DEVICE_TYPE(SY6845E, sy6845e_device) DECLARE_DEVICE_TYPE(SY6845E, sy6845e_device)
DECLARE_DEVICE_TYPE(HD6345, hd6345_device) DECLARE_DEVICE_TYPE(HD6345, hd6345_device)

View File

@ -384,7 +384,7 @@ void albazg_state::yumefuda(machine_config &config)
screen.set_visarea_full(); screen.set_visarea_full();
screen.set_screen_update(FUNC(albazg_state::screen_update_yumefuda)); 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_screen("screen");
crtc.set_show_border_area(false); crtc.set_show_border_area(false);
crtc.set_char_width(8); crtc.set_char_width(8);

View File

@ -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_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)); 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_screen("screen");
m_crtc->set_show_border_area(false); m_crtc->set_show_border_area(false);
m_crtc->set_char_width(8); m_crtc->set_char_width(8);

View File

@ -931,7 +931,7 @@ MACHINE_CONFIG_START(amstrad_state::amstrad_base)
PALETTE(config, m_palette, FUNC(amstrad_state::amstrad_cpc_palette), 32); 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_screen(nullptr);
m_crtc->set_show_border_area(false); m_crtc->set_show_border_area(false);
m_crtc->set_char_width(16); m_crtc->set_char_width(16);

View File

@ -455,7 +455,7 @@ void amust_state::amust(machine_config &config)
BEEP(config, m_beep, 800).add_route(ALL_OUTPUTS, "mono", 0.50); BEEP(config, m_beep, 800).add_route(ALL_OUTPUTS, "mono", 0.50);
/* Devices */ /* 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_screen("screen");
crtc.set_show_border_area(false); crtc.set_show_border_area(false);
crtc.set_char_width(8); crtc.set_char_width(8);

View File

@ -103,7 +103,7 @@ private:
required_device<i8086_cpu_device> m_cpu; required_device<i8086_cpu_device> m_cpu;
required_device<i8089_device> m_iop; required_device<i8089_device> m_iop;
required_device<ram_device> m_ram; 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<i8255_device> m_ppi;
required_device<pic8259_device> m_pic; required_device<pic8259_device> m_pic;
required_device<pit8253_device> m_pit; 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(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(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(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(0x68, 0x68).mirror(0x04).w(m_crtc, FUNC(hd6845s_device::address_w));
map(0x6a, 0x6a).mirror(0x04).rw(m_crtc, FUNC(hd6845_device::register_r), FUNC(hd6845_device::register_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(0x70, 0x70).mirror(0x04).w(FUNC(apricot_state::i8089_ca1_w));
map(0x72, 0x72).mirror(0x04).w(FUNC(apricot_state::i8089_ca2_w)); map(0x72, 0x72).mirror(0x04).w(FUNC(apricot_state::i8089_ca2_w));
map(0x78, 0x7f).noprw(); // unavailable map(0x78, 0x7f).noprw(); // unavailable
@ -389,7 +389,7 @@ void apricot_state::apricot(machine_config &config)
PALETTE(config, m_palette, palette_device::MONOCHROME_HIGHLIGHT); 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_screen("screen");
m_crtc->set_show_border_area(false); m_crtc->set_show_border_area(false);
m_crtc->set_char_width(10); m_crtc->set_char_width(10);

View File

@ -282,7 +282,7 @@ void b16_state::b16(machine_config &config)
screen.set_visarea_full(); screen.set_visarea_full();
screen.set_palette(m_palette); 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_screen("screen");
m_mc6845->set_show_border_area(false); m_mc6845->set_show_border_area(false);
m_mc6845->set_char_width(8); m_mc6845->set_char_width(8);

View File

@ -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(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(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, 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(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(hd6845_device::register_r), FUNC(hd6845_device::register_w)); 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(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(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 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(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(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, 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(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(hd6845_device::register_r), FUNC(hd6845_device::register_w)); 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(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(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. 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(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(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, 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(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(hd6845_device::register_r), FUNC(hd6845_device::register_w)); 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(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(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 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(0x0000, 0x00ff).mirror(0x400).unmaprw(); // fc00-fcff FRED Address Page
map(0x0100, 0x01ff).mirror(0x400).unmaprw(); // fd00-fdff JIM 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, 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(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(hd6845_device::register_r), FUNC(hd6845_device::register_w)); 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(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(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 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(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(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, 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(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(hd6845_device::register_r), FUNC(hd6845_device::register_w)); 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(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(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 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 */ /* video hardware */
SCREEN(config, m_screen, SCREEN_TYPE_RASTER); SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
m_screen->set_raw(16_MHz_XTAL, 1024, 0, 640, 312, 0, 256); 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); 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); m_trom->set_screen_size(40, 25, 40);
/* crtc */ /* 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_screen("screen");
m_hd6845->set_show_border_area(false); m_hd6845->set_show_border_area(false);
m_hd6845->set_char_width(12); m_hd6845->set_char_width(12);
@ -1340,7 +1340,7 @@ void bbcm_state::bbcm(machine_config &config)
/* video hardware */ /* video hardware */
SCREEN(config, m_screen, SCREEN_TYPE_RASTER); SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
m_screen->set_raw(16_MHz_XTAL, 1024, 0, 640, 312, 0, 256); 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); 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); m_trom->set_screen_size(40, 25, 40);
/* crtc */ /* 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_screen("screen");
m_hd6845->set_show_border_area(false); m_hd6845->set_show_border_area(false);
m_hd6845->set_char_width(12); m_hd6845->set_char_width(12);

View File

@ -1836,7 +1836,7 @@ void blitz68k_state::bankrob(machine_config &config)
screen.set_visarea(0, 512-1, 0+4, 256-1-4); screen.set_visarea(0, 512-1, 0+4, 256-1-4);
screen.set_screen_update(FUNC(blitz68k_state::screen_update_blitz68k)); 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_screen("screen");
m_crtc->set_show_border_area(false); m_crtc->set_show_border_area(false);
m_crtc->set_char_width(4); 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_visarea(0, 512-1, 0+7, 256-1);
screen.set_screen_update(FUNC(blitz68k_state::screen_update_blitz68k)); 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_screen("screen");
m_crtc->set_show_border_area(false); m_crtc->set_show_border_area(false);
m_crtc->set_char_width(4); 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_visarea(0, 512-1, 0+4, 256-1-4);
screen.set_screen_update(FUNC(blitz68k_state::screen_update_blitz68k)); 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_screen("screen");
m_crtc->set_show_border_area(false); m_crtc->set_show_border_area(false);
m_crtc->set_char_width(4); 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_visarea(0, 512-1, 0+4, 256-1-4);
screen.set_screen_update(FUNC(blitz68k_state::screen_update_blitz68k)); 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_screen("screen");
m_crtc->set_show_border_area(false); m_crtc->set_show_border_area(false);
m_crtc->set_char_width(4); m_crtc->set_char_width(4);
@ -1993,7 +1993,7 @@ void blitz68k_state::maxidbl(machine_config &config)
screen.set_visarea_full(); screen.set_visarea_full();
screen.set_screen_update(FUNC(blitz68k_state::screen_update_blitz68k_noblit)); 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_screen("screen");
m_crtc->set_show_border_area(false); m_crtc->set_show_border_area(false);
m_crtc->set_char_width(4); m_crtc->set_char_width(4);

View File

@ -933,7 +933,7 @@ void bml3_state::bml3_common(machine_config &config)
/* Devices */ /* Devices */
// CRTC clock should be synchronous with the CPU clock. // 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_screen("screen");
m_crtc->set_show_border_area(false); m_crtc->set_show_border_area(false);
m_crtc->set_char_width(8); m_crtc->set_char_width(8);

View File

@ -487,6 +487,7 @@ INPUT_PORTS_END
* - Map PIA:S * - Map PIA:S
* - ROM/RAM paging by using the PIAs and the myriad of 74138s on the board * - ROM/RAM paging by using the PIAs and the myriad of 74138s on the board
* - Vram and screen for the 6845 CRTC * - Vram and screen for the 6845 CRTC
* - Check actual clock source for CRTC. An 8MHz UKI crystal is also nearby
* - Keyboard * - Keyboard
* - Serial port * - Serial port
* - Floppy controller * - Floppy controller
@ -521,7 +522,7 @@ protected:
required_device<pia6821_device> m_pia1; required_device<pia6821_device> m_pia1;
required_device<ram_device> m_ram; required_device<ram_device> m_ram;
required_memory_bank m_bank1; required_memory_bank m_bank1;
required_device<h46505_device> m_crtc; required_device<hd6845s_device> m_crtc;
}; };
void can09_state::machine_reset() void can09_state::machine_reset()
@ -640,8 +641,8 @@ void can09_state::can09_map(address_map &map)
// AM_RANGE(0x0000, 0x7fff) AM_RAM // AM_RANGE(0x0000, 0x7fff) AM_RAM
map(0x0000, 0x7fff).ram().bankrw("bank1"); map(0x0000, 0x7fff).ram().bankrw("bank1");
map(0xe000, 0xffff).rom().region("roms", 0); map(0xe000, 0xffff).rom().region("roms", 0);
map(0xe020, 0xe020).w(m_crtc, FUNC(h46505_device::address_w)); map(0xe020, 0xe020).w(m_crtc, FUNC(hd6845s_device::address_w));
map(0xe021, 0xe021).w(m_crtc, FUNC(h46505_device::register_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)); map(0xe034, 0xe037).rw(m_pia1, FUNC(pia6821_device::read), FUNC(pia6821_device::write));
#if 0 #if 0
@ -722,8 +723,8 @@ void can09_state::can09(machine_config &config)
/* RAM banks */ /* RAM banks */
RAM(config, RAM_TAG).set_default_size("768K"); RAM(config, RAM_TAG).set_default_size("768K");
// CRTC init // CRTC init
h46505_device &crtc(H46505(config, "crtc", CAN09_CPU_CLOCK)); // TODO: Check actual clock source, An 8MHz UKI crystal is also nearby hd6845s_device &crtc(HD6845S(config, "crtc", CAN09_CPU_CLOCK)); // HD46505SP-1 (HD68A45SP)
crtc.set_screen("screen"); crtc.set_screen("screen");
crtc.set_show_border_area(false); crtc.set_show_border_area(false);
crtc.set_char_width(8); crtc.set_char_width(8);

View File

@ -82,7 +82,7 @@ private:
required_device<cpu_device> m_maincpu; required_device<cpu_device> m_maincpu;
required_device<cassette_image_device> m_cassette; required_device<cassette_image_device> m_cassette;
required_device<ram_device> m_ram; 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<rs232_port_device> m_rs232;
required_device<cg_exp_slot_device> m_exp; required_device<cg_exp_slot_device> m_exp;
required_memory_region m_char_rom; required_memory_region m_char_rom;
@ -125,8 +125,8 @@ void cgenie_state::cgenie_io(address_map &map)
map.global_mask(0xff); map.global_mask(0xff);
map(0xf8, 0xf8).w("ay8910", FUNC(ay8910_device::address_w)); 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(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(0xfa, 0xfa).w(m_crtc, FUNC(hd6845s_device::address_w));
map(0xfb, 0xfb).rw(m_crtc, FUNC(hd6845_device::register_r), FUNC(hd6845_device::register_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)); 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 // video hardware
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); 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_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_screen("screen");
m_crtc->set_show_border_area(true); m_crtc->set_show_border_area(true);
m_crtc->set_char_width(8); m_crtc->set_char_width(8);

View File

@ -475,7 +475,7 @@ void chance32_state::chance32(machine_config &config)
screen.set_visarea(0, 35*16-1, 0, 29*8-1); screen.set_visarea(0, 35*16-1, 0, 29*8-1);
screen.set_screen_update(FUNC(chance32_state::screen_update_chance32)); 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_screen("screen");
crtc.set_show_border_area(false); crtc.set_show_border_area(false);
crtc.set_char_width(16); crtc.set_char_width(16);

View File

@ -1284,7 +1284,7 @@ void coinmstr_state::coinmstr(machine_config &config)
GFXDECODE(config, m_gfxdecode, m_palette, gfx_coinmstr); GFXDECODE(config, m_gfxdecode, m_palette, gfx_coinmstr);
PALETTE(config, m_palette).set_entries(46*32*4); 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_screen("screen");
crtc.set_show_border_area(false); crtc.set_show_border_area(false);
crtc.set_char_width(8); crtc.set_char_width(8);

View File

@ -334,7 +334,7 @@ void dgn_beta_state::dgnbeta(machine_config &config)
screen.set_vblank_time(ATTOSECONDS_IN_USEC(100)); screen.set_vblank_time(ATTOSECONDS_IN_USEC(100));
screen.set_size(700,550); screen.set_size(700,550);
screen.set_visarea(0, 699, 0, 549); 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); screen.set_video_attributes(VIDEO_UPDATE_AFTER_VBLANK);
GFXDECODE(config, "gfxdecode", m_palette, gfx_dgnbeta); 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 ":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); 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_screen("screen");
m_mc6845->set_show_border_area(false); m_mc6845->set_show_border_area(false);
m_mc6845->set_char_width(16); /*?*/ m_mc6845->set_char_width(16); /*?*/

View File

@ -610,7 +610,7 @@ void docastle_state::docastle(machine_config &config)
WATCHDOG_TIMER(config, "watchdog"); WATCHDOG_TIMER(config, "watchdog");
/* video hardware */ /* 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). 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 However, the DE output from the CRTC is first ANDed with the NAND of

View File

@ -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_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
plus_screen.set_size(640, 264); plus_screen.set_size(640, 264);
plus_screen.set_visarea_full(); 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); PALETTE(config, m_palette, palette_device::MONOCHROME);
// crtc // 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_screen("plus_screen");
m_crtc->set_show_border_area(false); m_crtc->set_show_border_area(false);
m_crtc->set_char_width(8); m_crtc->set_char_width(8);

View File

@ -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(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(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(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(0xf80c0, 0xf80c0).rw("crtc", FUNC(hd6845s_device::status_r), FUNC(hd6845s_device::address_w));
map(0xf80c2, 0xf80c2).rw("crtc", FUNC(h46505_device::register_r), FUNC(h46505_device::register_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(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(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)); 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: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); 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_char_width(8);
crtc.set_update_row_callback(FUNC(duet16_state::crtc_update_row), this); 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_refresh_hz(60);
m_screen->set_size(640, 480); m_screen->set_size(640, 480);
m_screen->set_visarea_full(); 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); MSM58321(config, m_rtc, 32768_Hz_XTAL);
m_rtc->d0_handler().set(FUNC(duet16_state::rtc_d0_w)); m_rtc->d0_handler().set(FUNC(duet16_state::rtc_d0_w));

View File

@ -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_raw(XTAL(15'000'000), 640, 0, 512, 390, 0, 384);
screen.set_screen_update(CRTC_TAG, FUNC(mc6845_device::screen_update)); 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_screen(SCREEN_TAG);
m_crtc->set_show_border_area(false); m_crtc->set_show_border_area(false);
m_crtc->set_char_width(8); m_crtc->set_char_width(8);

View File

@ -292,8 +292,8 @@ void flipjack_state::main_map(address_map &map)
map(0x6000, 0x67ff).ram(); map(0x6000, 0x67ff).ram();
map(0x6800, 0x6803).rw("ppi8255", FUNC(i8255_device::read), FUNC(i8255_device::write)); map(0x6800, 0x6803).rw("ppi8255", FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0x7000, 0x7000).w(FUNC(flipjack_state::soundlatch_w)); map(0x7000, 0x7000).w(FUNC(flipjack_state::soundlatch_w));
map(0x7010, 0x7010).w("crtc", FUNC(hd6845_device::address_w)); map(0x7010, 0x7010).w("crtc", FUNC(hd6845s_device::address_w));
map(0x7011, 0x7011).w("crtc", FUNC(hd6845_device::register_w)); map(0x7011, 0x7011).w("crtc", FUNC(hd6845s_device::register_w));
map(0x7020, 0x7020).portr("DSW"); map(0x7020, 0x7020).portr("DSW");
map(0x7800, 0x7800).w(FUNC(flipjack_state::layer_w)); map(0x7800, 0x7800).w(FUNC(flipjack_state::layer_w));
map(0x8000, 0x9fff).rom(); map(0x8000, 0x9fff).rom();
@ -439,9 +439,9 @@ void flipjack_state::flipjack(machine_config &config)
/* video hardware */ /* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
screen.set_raw(VIDEO_CLOCK, 0x188, 0, 0x100, 0x100, 0, 0xc0); // from crtc 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_screen("screen");
crtc.set_show_border_area(false); crtc.set_show_border_area(false);
crtc.set_char_width(8); crtc.set_char_width(8);

View File

@ -655,7 +655,7 @@ void fp1100_state::fp1100(machine_config &config)
screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
screen.set_size(640, 480); screen.set_size(640, 480);
screen.set_visarea_full(); 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); PALETTE(config, m_palette).set_entries(8);
GFXDECODE(config, "gfxdecode", m_palette, gfx_fp1100); 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 .add_route(ALL_OUTPUTS, "mono", 0.50); // inside the keyboard
/* CRTC */ /* 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_screen("screen");
m_crtc->set_show_border_area(false); m_crtc->set_show_border_area(false);
m_crtc->set_char_width(8); m_crtc->set_char_width(8);

View File

@ -313,7 +313,7 @@ void fp6000_state::fp6000(machine_config &config)
screen.set_screen_update(FUNC(fp6000_state::screen_update_fp6000)); screen.set_screen_update(FUNC(fp6000_state::screen_update_fp6000));
screen.set_palette(m_palette); 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_screen("screen");
m_crtc->set_show_border_area(false); m_crtc->set_show_border_area(false);
m_crtc->set_char_width(8); m_crtc->set_char_width(8);

View File

@ -479,7 +479,7 @@ void hitpoker_state::hitpoker(machine_config &config)
screen.set_visarea(0, 648-1, 0, 240-1); screen.set_visarea(0, 648-1, 0, 240-1);
screen.set_screen_update(FUNC(hitpoker_state::screen_update_hitpoker)); 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_screen("screen");
crtc.set_show_border_area(false); crtc.set_show_border_area(false);
crtc.set_char_width(8); crtc.set_char_width(8);

View File

@ -119,8 +119,8 @@ void hnayayoi_state::hnayayoi_io_map(address_map &map)
map(0x02, 0x03).r("ymsnd", FUNC(ym2203_device::read)); map(0x02, 0x03).r("ymsnd", FUNC(ym2203_device::read));
map(0x04, 0x04).portr("DSW3"); map(0x04, 0x04).portr("DSW3");
map(0x06, 0x06).w(FUNC(hnayayoi_state::adpcm_data_w)); map(0x06, 0x06).w(FUNC(hnayayoi_state::adpcm_data_w));
map(0x08, 0x08).w("crtc", FUNC(hd6845_device::address_w)); map(0x08, 0x08).w("crtc", FUNC(hd6845s_device::address_w));
map(0x09, 0x09).w("crtc", FUNC(hd6845_device::register_w)); map(0x09, 0x09).w("crtc", FUNC(hd6845s_device::register_w));
map(0x0a, 0x0a).w(FUNC(hnayayoi_state::dynax_blitter_rev1_start_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(0x0c, 0x0c).w(FUNC(hnayayoi_state::dynax_blitter_rev1_clear_w));
map(0x20, 0x27).w(m_mainlatch, FUNC(ls259_device::write_d0)); 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(0xff02, 0xff03).r("ymsnd", FUNC(ym2203_device::read));
map(0xff04, 0xff04).portr("DSW3"); map(0xff04, 0xff04).portr("DSW3");
map(0xff06, 0xff06).w(FUNC(hnayayoi_state::adpcm_data_w)); map(0xff06, 0xff06).w(FUNC(hnayayoi_state::adpcm_data_w));
map(0xff08, 0xff08).w("crtc", FUNC(hd6845_device::address_w)); map(0xff08, 0xff08).w("crtc", FUNC(hd6845s_device::address_w));
map(0xff09, 0xff09).w("crtc", FUNC(hd6845_device::register_w)); map(0xff09, 0xff09).w("crtc", FUNC(hd6845s_device::register_w));
map(0xff0a, 0xff0a).w(FUNC(hnayayoi_state::dynax_blitter_rev1_start_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(0xff0c, 0xff0c).w(FUNC(hnayayoi_state::dynax_blitter_rev1_clear_w));
map(0xff20, 0xff27).w(m_mainlatch, FUNC(ls259_device::write_d0)); 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.global_mask(0xff);
map(0x10, 0x10).w("ymsnd", FUNC(ym2203_device::control_port_w)); map(0x10, 0x10).w("ymsnd", FUNC(ym2203_device::control_port_w));
map(0x11, 0x11).r("ymsnd", FUNC(ym2203_device::status_port_r)); 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(0x13, 0x13).w(FUNC(hnayayoi_state::adpcm_data_w));
map(0x14, 0x14).portr("COIN"); map(0x14, 0x14).portr("COIN");
map(0x15, 0x15).r(FUNC(hnayayoi_state::keyboard_1_r)); 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(0x30, 0x37).w(m_mainlatch, FUNC(ls259_device::write_d0));
map(0x50, 0x50).w("ymsnd", FUNC(ym2203_device::write_port_w)); map(0x50, 0x50).w("ymsnd", FUNC(ym2203_device::write_port_w));
map(0x51, 0x51).r("ymsnd", FUNC(ym2203_device::read_port_r)); 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 ) static INPUT_PORTS_START( hf_keyboard )
@ -562,11 +562,11 @@ void hnayayoi_state::hnayayoi(machine_config &config)
/* video hardware */ /* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
screen.set_raw(20_MHz_XTAL / 2, 632, 0, 512, 263, 0, 243); 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); 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_screen("screen");
crtc.set_char_width(4); crtc.set_char_width(4);
crtc.set_show_border_area(false); 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<3>().set(m_msm, FUNC(msm5205_device::reset_w)).invert();
m_mainlatch->q_out_cb<4>().set_nop(); // ? 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) MCFG_VIDEO_START_OVERRIDE(hnayayoi_state,untoucha)
} }

View File

@ -60,8 +60,8 @@ void itt1700_state::mem_map(address_map &map)
void itt1700_state::io_map(address_map &map) void itt1700_state::io_map(address_map &map)
{ {
map.global_mask(0xff); map.global_mask(0xff);
map(0x10, 0x10).w("crtc", FUNC(hd6845_device::address_w)); map(0x10, 0x10).w("crtc", FUNC(hd6845s_device::address_w));
map(0x11, 0x11).w("crtc", FUNC(hd6845_device::register_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)); 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_raw(16.6698_MHz_XTAL, 882, 0, 720, 315, 0, 300);
screen.set_screen_update("crtc", FUNC(mc6845_device::screen_update)); 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_char_width(9);
crtc.set_screen("screen"); crtc.set_screen("screen");
crtc.set_show_border_area(false); crtc.set_show_border_area(false);

View File

@ -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_raw(4000000, 256, 0, 256, 256, 0, 256); /* temporary, CRTC will configure screen */
screen.set_screen_update("crtc", FUNC(mc6845_device::screen_update)); 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_screen("screen");
crtc.set_show_border_area(false); crtc.set_show_border_area(false);
crtc.set_char_width(8); crtc.set_char_width(8);

View File

@ -284,11 +284,11 @@ void lola8a_state::lola8a(machine_config &config)
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
screen.set_refresh_hz(50); screen.set_refresh_hz(50);
screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ 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_size(640, 480);
screen.set_visarea(0, 640-1, 0, 480-1); 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_screen("screen");
crtc.set_show_border_area(false); crtc.set_show_border_area(false);
crtc.set_char_width(8); crtc.set_char_width(8);

View File

@ -868,7 +868,7 @@ void luckgrln_state::luckgrln(machine_config &config)
m_maincpu->set_addrmap(AS_IO, &luckgrln_state::luckgrln_io); m_maincpu->set_addrmap(AS_IO, &luckgrln_state::luckgrln_io);
m_maincpu->set_vblank_int("screen", FUNC(luckgrln_state::irq)); 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_screen("screen");
crtc.set_show_border_area(false); crtc.set_show_border_area(false);
crtc.set_char_width(8); crtc.set_char_width(8);

View File

@ -319,11 +319,11 @@ void mbc200_state::mbc200(machine_config &config)
screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
screen.set_size(640, 400); screen.set_size(640, 400);
screen.set_visarea(0, 640-1, 0, 400-1); 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); GFXDECODE(config, "gfxdecode", m_palette, gfx_mbc200);
PALETTE(config, m_palette, palette_device::MONOCHROME); 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_screen("screen");
m_crtc->set_show_border_area(false); m_crtc->set_show_border_area(false);
m_crtc->set_char_width(8); m_crtc->set_char_width(8);

View File

@ -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->in_pc_callback().set(FUNC(mbc55x_state::printer_status_r));
m_ppi->out_pc_callback().set(FUNC(mbc55x_state::disk_select_w)); 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_screen(SCREEN_TAG);
m_crtc->set_show_border_area(false); m_crtc->set_show_border_area(false);
m_crtc->set_char_width(8); m_crtc->set_char_width(8);

View File

@ -225,7 +225,7 @@ void mpu4dealem_state::dealem(machine_config &config)
PALETTE(config, m_palette, FUNC(mpu4dealem_state::dealem_palette), 32); 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_screen("screen");
crtc.set_show_border_area(false); crtc.set_show_border_area(false);
crtc.set_char_width(8); crtc.set_char_width(8);

View File

@ -68,7 +68,7 @@ private:
required_device<cpu_device> m_maincpu; required_device<cpu_device> m_maincpu;
required_device<pic8259_device> m_pic; required_device<pic8259_device> m_pic;
required_device<pit8253_device> m_pit; 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<palette_device> m_palette;
required_device<mb8866_device> m_fdc; required_device<mb8866_device> m_fdc;
required_device_array<floppy_connector, 2> m_floppy; required_device_array<floppy_connector, 2> m_floppy;
@ -123,8 +123,8 @@ void multi16_state::multi16_io(address_map &map)
// map(0x07, 0x07) // ? // map(0x07, 0x07) // ?
// map(0x08, 0x0b) // ? // map(0x08, 0x0b) // ?
map(0x0c, 0x0f).rw(m_pit, FUNC(pit8253_device::read), FUNC(pit8253_device::write)); 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(0x40, 0x40).w(m_crtc, FUNC(hd6845s_device::address_w));
map(0x41, 0x41).rw(m_crtc, FUNC(hd6845_device::register_r), FUNC(hd6845_device::register_w)); map(0x41, 0x41).rw(m_crtc, FUNC(hd6845s_device::register_r), FUNC(hd6845s_device::register_w));
// map(0x42, 0x44) // ? // map(0x42, 0x44) // ?
// map(0x48, 0x48) // ? // map(0x48, 0x48) // ?
// map(0x4e, 0x4e) // ? // map(0x4e, 0x4e) // ?
@ -165,11 +165,11 @@ void multi16_state::multi16(machine_config &config)
// video hardware // video hardware
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
screen.set_raw(16000000, 848, 0, 640, 518, 0, 400); // unknown clock 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); 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_screen("screen");
m_crtc->set_show_border_area(false); m_crtc->set_show_border_area(false);
m_crtc->set_char_width(8); m_crtc->set_char_width(8);

View File

@ -594,7 +594,7 @@ void multi8_state::multi8(machine_config &config)
/* devices */ /* devices */
TIMER(config, "keyboard_timer").configure_periodic(FUNC(multi8_state::keyboard_callback), attotime::from_hz(240/32)); 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_screen("screen");
m_crtc->set_show_border_area(false); m_crtc->set_show_border_area(false);
m_crtc->set_char_width(8); m_crtc->set_char_width(8);

View File

@ -228,7 +228,7 @@ private:
required_device<i8257_device> m_dma8257; required_device<i8257_device> m_dma8257;
required_device<speaker_sound_device> m_speaker; required_device<speaker_sound_device> m_speaker;
required_device<myb3k_keyboard_device> m_kb; 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_shared_ptr<uint8_t> m_vram;
required_device<isa8_device> m_isabus; required_device<isa8_device> m_isabus;
optional_device<centronics_device> m_centronics; 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)); map(0x10, 0x18).rw(m_dma8257, FUNC(i8257_device::read), FUNC(i8257_device::write));
// 1c-1d HD46505S CRTC // 1c-1d HD46505S CRTC
map(0x1c, 0x1c).rw(m_crtc, FUNC(h46505_device::status_r), FUNC(h46505_device::address_w)); map(0x1c, 0x1c).rw(m_crtc, FUNC(hd6845s_device::status_r), FUNC(hd6845s_device::address_w));
map(0x1d, 0x1d).rw(m_crtc, FUNC(h46505_device::register_r), FUNC(h46505_device::register_w)); map(0x1d, 0x1d).rw(m_crtc, FUNC(hd6845s_device::register_r), FUNC(hd6845s_device::register_w));
/* Expansion Unit 0x800 - 0xfff */ /* 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)); // m_pit8253->out_handler<2>().set(FUNC(myb3k_state::pit_out2_changed));
/* Video controller */ /* 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_screen(m_screen);
m_crtc->set_show_border_area(false); m_crtc->set_show_border_area(false);
m_crtc->set_char_width(8); m_crtc->set_char_width(8);
@ -1027,7 +1027,7 @@ void myb3k_state::myb3k(machine_config &config)
/* Monitor */ /* Monitor */
SCREEN(config, m_screen, SCREEN_TYPE_RASTER); 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_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) void myb3k_state::jb3000(machine_config &config)

View File

@ -618,7 +618,7 @@ void nyny_state::nyny(machine_config &config)
PALETTE(config, m_palette, palette_device::RGB_3BIT); 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_screen("screen");
m_mc6845->set_show_border_area(false); m_mc6845->set_show_border_area(false);
m_mc6845->set_char_width(8); m_mc6845->set_char_width(8);

View File

@ -415,11 +415,11 @@ void othello_state::othello(machine_config &config)
screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
screen.set_size(64*6, 64*8); screen.set_size(64*6, 64*8);
screen.set_visarea(0*8, 64*6-1, 0*8, 64*8-1); 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); 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_screen("screen");
crtc.set_show_border_area(false); crtc.set_show_border_area(false);
crtc.set_char_width(TILE_WIDTH); crtc.set_char_width(TILE_WIDTH);

View File

@ -325,7 +325,7 @@ void paso1600_state::paso1600(machine_config &config)
PALETTE(config, m_palette).set_entries(8); PALETTE(config, m_palette).set_entries(8);
/* Devices */ /* 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_screen("screen");
crtc.set_show_border_area(false); crtc.set_show_border_area(false);
crtc.set_char_width(8); crtc.set_char_width(8);

View File

@ -301,12 +301,12 @@ void pasopia_state::pasopia(machine_config &config)
screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
screen.set_size(640, 480); screen.set_size(640, 480);
screen.set_visarea(0, 640-1, 0, 480-1); 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); GFXDECODE(config, "gfxdecode", m_palette, gfx_pasopia);
PALETTE(config, m_palette).set_entries(8); PALETTE(config, m_palette).set_entries(8);
/* Devices */ /* 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_screen("screen");
m_crtc->set_show_border_area(false); m_crtc->set_show_border_area(false);
m_crtc->set_char_width(8); m_crtc->set_char_width(8);

View File

@ -984,7 +984,7 @@ void pasopia7_state::p7_raster(machine_config &config)
PALETTE(config, m_palette, palette_device::BRG_3BIT); PALETTE(config, m_palette, palette_device::BRG_3BIT);
GFXDECODE(config, "gfxdecode", m_palette, gfx_pasopia7); 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_screen(m_screen);
m_crtc->set_show_border_area(false); m_crtc->set_show_border_area(false);
m_crtc->set_char_width(8); 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); PALETTE(config, m_palette, FUNC(pasopia7_state::p7_lcd_palette), 8);
GFXDECODE(config, "gfxdecode", m_palette, gfx_pasopia7); 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_screen(m_screen);
m_crtc->set_show_border_area(false); m_crtc->set_show_border_area(false);
m_crtc->set_char_width(8); m_crtc->set_char_width(8);

View File

@ -277,7 +277,7 @@ void peoplepc_state::olypeopl(machine_config &config)
GFXDECODE(config, m_gfxdecode, m_palette, gfxdecode_device::empty); GFXDECODE(config, m_gfxdecode, m_palette, gfxdecode_device::empty);
PALETTE(config, m_palette, palette_device::MONOCHROME); 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_screen("screen");
crtc.set_show_border_area(false); crtc.set_show_border_area(false);
crtc.set_char_width(8); crtc.set_char_width(8);

View File

@ -388,8 +388,8 @@ void pwrview_state::pwrview_io(address_map &map)
map(0xc00b, 0xc00b).r(FUNC(pwrview_state::err_r)); map(0xc00b, 0xc00b).r(FUNC(pwrview_state::err_r));
map(0xc00c, 0xc00d).ram(); map(0xc00c, 0xc00d).ram();
map(0xc080, 0xc080).rw(FUNC(pwrview_state::unk4_r), FUNC(pwrview_state::unk4_w)); 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(0xc088, 0xc088).w("crtc", FUNC(hd6845s_device::address_w));
map(0xc08a, 0xc08a).rw("crtc", FUNC(hd6845_device::register_r), FUNC(hd6845_device::register_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(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(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); 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_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_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); PIT8253(config, m_pit, 0);
m_pit->set_clk<0>(XTAL(16'000'000)/16); // clocks unknown, fix above when found 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); 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_char_width(32); /* ? */
crtc.set_update_row_callback(FUNC(pwrview_state::update_row), this); crtc.set_update_row_callback(FUNC(pwrview_state::update_row), this);

View File

@ -6,7 +6,7 @@
Known hardware: Known hardware:
- Motorola 6800 CPU - Motorola 6800 CPU
- Hitachi HD46505 (Motorola 6845-compatible) CRTC - Hitachi HD46505SP (Motorola 6845-compatible) CRTC
- Hitachi HD46850 (Motorola 6850-compatible) ACIA - Hitachi HD46850 (Motorola 6850-compatible) ACIA
- M58725P-15 (6116-compatible) (2k x 8bit RAM) - M58725P-15 (6116-compatible) (2k x 8bit RAM)
- Zilog Z8430 CTC - Zilog Z8430 CTC
@ -62,7 +62,7 @@ private:
required_device<m6800_cpu_device> m_maincpu; required_device<m6800_cpu_device> m_maincpu;
required_device<acia6850_device> m_acia; required_device<acia6850_device> m_acia;
required_device<z80ctc_device> m_ctc; 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<screen_device> m_screen;
required_device<gfxdecode_device> m_gfxdecode; required_device<gfxdecode_device> m_gfxdecode;
required_device<palette_device> m_palette; 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); PALETTE(config, m_palette, palette_device::MONOCHROME_HIGHLIGHT);
GFXDECODE(config, m_gfxdecode, m_palette, chars); 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_screen("screen");
m_crtc->set_show_border_area(false); m_crtc->set_show_border_area(false);
m_crtc->set_char_width(9); m_crtc->set_char_width(9);

View File

@ -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_clock(XTAL(18'432'000)/4); // unknown divider
m_maincpu->set_addrmap(AS_IO, &royalmah_state::janyoup2_iomap); 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_screen("screen");
crtc.set_show_border_area(false); crtc.set_show_border_area(false);
crtc.set_char_width(4); crtc.set_char_width(4);

View File

@ -1128,7 +1128,7 @@ MACHINE_CONFIG_START(smc777_state::smc777)
GFXDECODE(config, m_gfxdecode, m_palette, gfxdecode_device::empty); 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_screen(m_screen);
m_crtc->set_show_border_area(true); m_crtc->set_show_border_area(true);
m_crtc->set_char_width(8); m_crtc->set_char_width(8);
@ -1165,8 +1165,8 @@ ROM_START( smc777 )
ROM_SYSTEM_BIOS(1, "2nd", "2nd rev.") ROM_SYSTEM_BIOS(1, "2nd", "2nd rev.")
ROMX_LOAD( "smcrom.v2", 0x0000, 0x4000, CRC(c1494b8f) SHA1(a7396f5c292f11639ffbf0b909e8473c5aa63518), ROM_BIOS(1)) ROMX_LOAD( "smcrom.v2", 0x0000, 0x4000, CRC(c1494b8f) SHA1(a7396f5c292f11639ffbf0b909e8473c5aa63518), ROM_BIOS(1))
ROM_REGION( 0x800, "mcu", ROMREGION_ERASEFF ) ROM_REGION( 0x400, "mcu", ROMREGION_ERASEFF )
ROM_LOAD( "i80xx", 0x000, 0x800, NO_DUMP ) // keyboard mcu, needs decapping ROM_LOAD( "m5l8041a-077p.bin", 0x000, 0x400, NO_DUMP ) // 8041 keyboard mcu, needs decapping
ROM_END ROM_END
/* Driver */ /* Driver */

View File

@ -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_visarea(0*8, 32*8-1, 0*8, 32*8-1);
screen.set_screen_update(FUNC(speedatk_state::screen_update)); 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_screen("screen");
m_crtc->set_show_border_area(false); m_crtc->set_show_border_area(false);
m_crtc->set_char_width(8); m_crtc->set_char_width(8);

View File

@ -552,7 +552,7 @@ void tapatune_state::tapatune(machine_config &config)
config.m_perfect_cpu_quantum = subtag("videocpu"); 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_screen("screen");
crtc.set_show_border_area(false); crtc.set_show_border_area(false);
crtc.set_char_width(5); crtc.set_char_width(5);
@ -563,7 +563,7 @@ void tapatune_state::tapatune(machine_config &config)
/* video hardware */ /* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); 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_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));
} }
/************************************* /*************************************

View File

@ -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)); m_coinlatch->q_out_cb<7>().set(FUNC(twincobr_state::coin_lockout_2_w));
/* video hardware */ /* 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_screen(m_screen);
crtc.set_show_border_area(false); crtc.set_show_border_area(false);
crtc.set_char_width(2); crtc.set_char_width(2);

View File

@ -691,13 +691,13 @@ void victor9k_state::victor9k(machine_config &config)
screen.set_color(rgb_t::green()); screen.set_color(rgb_t::green());
screen.set_refresh_hz(50); screen.set_refresh_hz(50);
screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); // not accurate 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_size(640, 480);
screen.set_visarea(0, 640-1, 0, 480-1); screen.set_visarea(0, 640-1, 0, 480-1);
PALETTE(config, m_palette, FUNC(victor9k_state::victor9k_palette), 16); 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_screen(SCREEN_TAG);
m_crtc->set_show_border_area(true); m_crtc->set_show_border_area(true);
m_crtc->set_char_width(10); m_crtc->set_char_width(10);

View File

@ -96,7 +96,7 @@ void videosaa_state::videosaa(machine_config &config)
screen.set_visarea(0, 640-1, 0, 480-1); screen.set_visarea(0, 640-1, 0, 480-1);
screen.set_screen_update(FUNC(videosaa_state::screen_update)); 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); GFXDECODE(config, "gfxdecode", "palette", gfx);

View File

@ -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_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)); 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_screen("screen");
m_crtc->set_show_border_area(false); m_crtc->set_show_border_area(false);
m_crtc->set_char_width(12); m_crtc->set_char_width(12);

View File

@ -415,7 +415,7 @@ void wardner_state::wardner(machine_config &config)
coinlatch.q_out_cb<7>().set(FUNC(wardner_state::coin_lockout_2_w)); coinlatch.q_out_cb<7>().set(FUNC(wardner_state::coin_lockout_2_w));
/* video hardware */ /* 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_screen(m_screen);
crtc.set_show_border_area(false); crtc.set_show_border_area(false);
crtc.set_char_width(2); crtc.set_char_width(2);

View File

@ -2228,7 +2228,7 @@ void x1_state::x1(machine_config &config)
m_screen->set_visarea(0, 640-1, 0, 480-1); m_screen->set_visarea(0, 640-1, 0, 480-1);
m_screen->set_screen_update(FUNC(x1_state::screen_update_x1)); 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_screen(m_screen);
m_crtc->set_show_border_area(true); m_crtc->set_show_border_area(true);
m_crtc->set_char_width(8); m_crtc->set_char_width(8);

View File

@ -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_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)); 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_screen(m_screen);
m_crtc->set_show_border_area(true); m_crtc->set_show_border_area(true);
m_crtc->set_char_width(8); m_crtc->set_char_width(8);

View File

@ -219,7 +219,7 @@ protected:
required_device<cpu_device> m_maincpu; required_device<cpu_device> m_maincpu;
required_device<ram_device> m_ram; 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<screen_device> m_screen;
required_device<input_merger_device> m_irqs; required_device<input_merger_device> m_irqs;
required_device<palette_device> m_palette; required_device<palette_device> m_palette;

View File

@ -47,7 +47,7 @@ private:
required_device<cpu_device> m_maincpu; required_device<cpu_device> m_maincpu;
required_device<cpu_device> m_slave; required_device<cpu_device> m_slave;
required_device<cpu_device> m_cpu3; required_device<cpu_device> m_cpu3;
required_device<h46505_device> m_crtc; required_device<hd6845s_device> m_crtc;
optional_device<msm5205_device> m_msm; optional_device<msm5205_device> m_msm;
required_device_array<tms1025_device, 2> m_inp; required_device_array<tms1025_device, 2> m_inp;

View File

@ -122,7 +122,7 @@ protected:
virtual void device_reset() override; virtual void device_reset() override;
private: private:
required_device<hd6845_device> m_crtc; required_device<hd6845s_device> m_crtc;
required_device<palette_device> m_palette; required_device<palette_device> m_palette;
optional_shared_ptr<uint8_t> m_plus_ram; optional_shared_ptr<uint8_t> m_plus_ram;
optional_shared_ptr<uint8_t> m_video_ram; optional_shared_ptr<uint8_t> m_video_ram;

View File

@ -25,7 +25,7 @@ public:
private: private:
required_device<cpu_device> m_maincpu; 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<gfxdecode_device> m_gfxdecode;
required_device<palette_device> m_palette; required_device<palette_device> m_palette;

View File

@ -111,7 +111,7 @@ void v1050_state::video_start()
void v1050_state::v1050_video(machine_config &config) 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_screen(SCREEN_TAG);
m_crtc->set_show_border_area(true); m_crtc->set_show_border_area(true);
m_crtc->set_char_width(8); 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)); 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_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_refresh_hz(60);
screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500));
screen.set_size(640, 400); screen.set_size(640, 400);