mirror of
https://github.com/holub/mame
synced 2025-05-22 13:48:55 +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));
|
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_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)...); }
|
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
|
// construction/destruction
|
||||||
upd7220a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
|
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:
|
protected:
|
||||||
virtual const tiny_rom_entry *device_rom_region() const override ATTR_COLD;
|
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);
|
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)
|
void pc9801_state::config_keyboard(machine_config &config)
|
||||||
{
|
{
|
||||||
I8251(config, m_sio_kbd, 0);
|
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));
|
m_screen->set_screen_update(FUNC(pc9801_state::screen_update));
|
||||||
|
|
||||||
UPD7220(config, m_hgdc[0], 21.0526_MHz_XTAL / 8, "screen");
|
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");
|
UPD7220(config, m_hgdc[1], 21.0526_MHz_XTAL / 8, "screen");
|
||||||
m_hgdc[1]->set_addrmap(0, &pc9801_state::upd7220_2_map);
|
config_video(config);
|
||||||
m_hgdc[1]->set_display_pixels(FUNC(pc9801_state::hgdc_display_pixels));
|
|
||||||
|
|
||||||
SPEAKER(config, "mono").front_center();
|
SPEAKER(config, "mono").front_center();
|
||||||
|
|
||||||
|
@ -199,6 +199,7 @@ protected:
|
|||||||
DECLARE_MACHINE_START(pc9801_common);
|
DECLARE_MACHINE_START(pc9801_common);
|
||||||
DECLARE_MACHINE_RESET(pc9801_common);
|
DECLARE_MACHINE_RESET(pc9801_common);
|
||||||
|
|
||||||
|
void config_video(machine_config &config);
|
||||||
void config_keyboard(machine_config &config);
|
void config_keyboard(machine_config &config);
|
||||||
void pc9801_mouse(machine_config &config);
|
void pc9801_mouse(machine_config &config);
|
||||||
void pc9801_cbus(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);
|
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);
|
PC98_119_KBD(config.replace(), m_keyb, 0);
|
||||||
m_keyb->rxd_callback().set("sio_kbd", FUNC(i8251_device::write_rxd));
|
m_keyb->rxd_callback().set("sio_kbd", FUNC(i8251_device::write_rxd));
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user