mirror of
https://github.com/holub/mame
synced 2025-05-21 13:18:56 +03:00
nec/pc9821.cpp: bump 7220 couple to use A revision
* fix win95 overlaying startup text on desktop graphics
This commit is contained in:
parent
d991883a09
commit
b6df288773
@ -69,7 +69,6 @@ public:
|
||||
set_screen(std::forward<T>(screen_tag));
|
||||
}
|
||||
|
||||
|
||||
template <typename... T> void set_display_pixels(T &&... args) { m_display_cb.set(std::forward<T>(args)...); }
|
||||
template <typename... T> void set_draw_text(T &&... args) { m_draw_text_cb.set(std::forward<T>(args)...); }
|
||||
|
||||
@ -233,6 +232,13 @@ public:
|
||||
// construction/destruction
|
||||
upd7220a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
|
||||
|
||||
template <typename T>
|
||||
upd7220a_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock, T &&screen_tag)
|
||||
: upd7220a_device(mconfig, tag, owner, clock)
|
||||
{
|
||||
set_screen(std::forward<T>(screen_tag));
|
||||
}
|
||||
|
||||
protected:
|
||||
virtual const tiny_rom_entry *device_rom_region() const override ATTR_COLD;
|
||||
|
||||
|
@ -2231,6 +2231,18 @@ void pc9801_atapi_devices(device_slot_interface &device)
|
||||
device.option_add("pc98_cd", PC98_CD);
|
||||
}
|
||||
|
||||
void pc9801_state::config_video(machine_config &config)
|
||||
{
|
||||
m_hgdc[0]->set_addrmap(0, &pc9801_state::upd7220_1_map);
|
||||
m_hgdc[0]->set_draw_text(FUNC(pc9801_state::hgdc_draw_text));
|
||||
m_hgdc[0]->vsync_wr_callback().set(m_hgdc[1], FUNC(upd7220_device::ext_sync_w));
|
||||
m_hgdc[0]->vsync_wr_callback().append(FUNC(pc9801_state::vrtc_irq));
|
||||
|
||||
m_hgdc[1]->set_addrmap(0, &pc9801_state::upd7220_2_map);
|
||||
m_hgdc[1]->set_display_pixels(FUNC(pc9801_state::hgdc_display_pixels));
|
||||
}
|
||||
|
||||
|
||||
void pc9801_state::config_keyboard(machine_config &config)
|
||||
{
|
||||
I8251(config, m_sio_kbd, 0);
|
||||
@ -2432,14 +2444,8 @@ void pc9801_state::pc9801_common(machine_config &config)
|
||||
m_screen->set_screen_update(FUNC(pc9801_state::screen_update));
|
||||
|
||||
UPD7220(config, m_hgdc[0], 21.0526_MHz_XTAL / 8, "screen");
|
||||
m_hgdc[0]->set_addrmap(0, &pc9801_state::upd7220_1_map);
|
||||
m_hgdc[0]->set_draw_text(FUNC(pc9801_state::hgdc_draw_text));
|
||||
m_hgdc[0]->vsync_wr_callback().set(m_hgdc[1], FUNC(upd7220_device::ext_sync_w));
|
||||
m_hgdc[0]->vsync_wr_callback().append(FUNC(pc9801_state::vrtc_irq));
|
||||
|
||||
UPD7220(config, m_hgdc[1], 21.0526_MHz_XTAL / 8, "screen");
|
||||
m_hgdc[1]->set_addrmap(0, &pc9801_state::upd7220_2_map);
|
||||
m_hgdc[1]->set_display_pixels(FUNC(pc9801_state::hgdc_display_pixels));
|
||||
config_video(config);
|
||||
|
||||
SPEAKER(config, "mono").front_center();
|
||||
|
||||
|
@ -199,6 +199,7 @@ protected:
|
||||
DECLARE_MACHINE_START(pc9801_common);
|
||||
DECLARE_MACHINE_RESET(pc9801_common);
|
||||
|
||||
void config_video(machine_config &config);
|
||||
void config_keyboard(machine_config &config);
|
||||
void pc9801_mouse(machine_config &config);
|
||||
void pc9801_cbus(machine_config &config);
|
||||
|
@ -803,6 +803,12 @@ void pc9821_state::pc9821(machine_config &config)
|
||||
|
||||
PALETTE(config.replace(), m_palette, FUNC(pc9821_state::pc9801_palette), 16 + 16 + 256);
|
||||
|
||||
// win95 expects to be A revision, otherwise it will overlay startup text prompts over desktop GFX
|
||||
// NOTE: possibly this bump happened around PC-9801BX series
|
||||
UPD7220A(config.replace(), m_hgdc[0], 21.0526_MHz_XTAL / 8, "screen");
|
||||
UPD7220A(config.replace(), m_hgdc[1], 21.0526_MHz_XTAL / 8, "screen");
|
||||
config_video(config);
|
||||
|
||||
PC98_119_KBD(config.replace(), m_keyb, 0);
|
||||
m_keyb->rxd_callback().set("sio_kbd", FUNC(i8251_device::write_rxd));
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user