mirror of
https://github.com/holub/mame
synced 2025-04-23 00:39:36 +03:00
Explicitly define a clock for all HD44780 and derivative LCD controllers, and add a validity check to ensure the defined clock is non-zero. [Lord Nightmare]
This commit is contained in:
parent
06910ab5de
commit
6ca98f5f7b
@ -37,7 +37,7 @@ void bbc_lcd_device::device_add_mconfig(machine_config &config)
|
||||
|
||||
PALETTE(config, "palette", FUNC(bbc_lcd_device::lcd_palette), 3);
|
||||
|
||||
HD44780(config, m_lcdc);
|
||||
HD44780(config, m_lcdc, 250'000); // TODO: clock not measured, datasheet typical clock used
|
||||
m_lcdc->set_lcd_size(4, 20);
|
||||
m_lcdc->set_pixel_update_cb(FUNC(bbc_lcd_device::lcd_pixel_update));
|
||||
}
|
||||
|
@ -237,7 +237,7 @@ void saitekosa_analyst_device::device_add_mconfig(machine_config &config)
|
||||
saitekosa_maestro_device::device_add_mconfig(config);
|
||||
|
||||
// video hardware
|
||||
HD44780(config, m_lcd, 0);
|
||||
HD44780(config, m_lcd, 250'000); // TODO: clock not measured, datasheet typical clock used
|
||||
}
|
||||
|
||||
|
||||
|
@ -189,6 +189,14 @@ void hd44780_device::device_reset()
|
||||
set_busy_flag(1520);
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
// device validity check
|
||||
//-------------------------------------------------
|
||||
void hd44780_device::device_validity_check(validity_checker &valid) const
|
||||
{
|
||||
if (clock() == 0)
|
||||
osd_printf_error("LCDC clock cannot be zero!\n");
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
// timer events
|
||||
|
@ -27,7 +27,7 @@ public:
|
||||
typedef device_delegate<void (bitmap_ind16 &bitmap, u8 line, u8 pos, u8 y, u8 x, int state)> pixel_update_delegate;
|
||||
|
||||
// construction/destruction
|
||||
hd44780_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0);
|
||||
hd44780_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
|
||||
|
||||
// static configuration helpers
|
||||
void set_lcd_size(int lines, int chars) { m_lines = lines; m_chars = chars; }
|
||||
@ -58,6 +58,7 @@ protected:
|
||||
// device-level overrides
|
||||
virtual void device_start() override;
|
||||
virtual void device_reset() override;
|
||||
virtual void device_validity_check(validity_checker &valid) const override;
|
||||
|
||||
// optional information overrides
|
||||
virtual const tiny_rom_entry *device_rom_region() const override;
|
||||
|
@ -431,7 +431,7 @@ void alesis_state::hr16(machine_config &config)
|
||||
m_cassette->set_default_state(CASSETTE_STOPPED);
|
||||
m_cassette->set_interface("hr16_cass");
|
||||
|
||||
HD44780(config, m_lcdc, 0);
|
||||
HD44780(config, m_lcdc, 250'000); // TODO: clock not measured, datasheet typical clock used
|
||||
m_lcdc->set_lcd_size(2, 16);
|
||||
|
||||
/* sound hardware */
|
||||
|
@ -103,10 +103,10 @@ class ax145_state : public driver_device
|
||||
public:
|
||||
ax145_state(const machine_config &mconfig, device_type type, const char *tag) :
|
||||
driver_device(mconfig, type, tag),
|
||||
maincpu(*this, "maincpu"),
|
||||
lcdc(*this, "hd44780"),
|
||||
ram(*this, "ram", 0x8000, ENDIANNESS_LITTLE),
|
||||
rom(*this, "maincpu"),
|
||||
m_maincpu(*this, "maincpu"),
|
||||
m_lcdc(*this, "hd44780"),
|
||||
m_ram(*this, "ram", 0x8000, ENDIANNESS_LITTLE),
|
||||
m_rom(*this, "maincpu"),
|
||||
dictionary_bank(*this, "dictionary")
|
||||
{ }
|
||||
|
||||
@ -123,10 +123,10 @@ private:
|
||||
static constexpr uint8_t ID = 1;
|
||||
|
||||
// devices
|
||||
required_device<hd64180rp_device> maincpu;
|
||||
required_device<hd44780_device> lcdc;
|
||||
memory_share_creator<uint8_t> ram;
|
||||
required_region_ptr<uint8_t> rom;
|
||||
required_device<hd64180rp_device> m_maincpu;
|
||||
required_device<hd44780_device> m_lcdc;
|
||||
memory_share_creator<uint8_t> m_ram;
|
||||
required_region_ptr<uint8_t> m_rom;
|
||||
required_memory_bank dictionary_bank;
|
||||
|
||||
// config switch
|
||||
@ -199,17 +199,17 @@ private:
|
||||
uint8_t lcd_data_r()
|
||||
{
|
||||
if(BIT(lcd_signal, 1)) // RS
|
||||
return lcdc->data_r();
|
||||
return m_lcdc->data_r();
|
||||
else
|
||||
return lcdc->control_r();
|
||||
return m_lcdc->control_r();
|
||||
}
|
||||
void lcd_data_w(uint8_t data)
|
||||
{
|
||||
if(BIT(lcd_signal, 0)) { // E
|
||||
if(BIT(lcd_signal, 1)) // RS
|
||||
lcdc->data_w(data << 4);
|
||||
m_lcdc->data_w(data << 4);
|
||||
else
|
||||
lcdc->control_w(data << 4);
|
||||
m_lcdc->control_w(data << 4);
|
||||
}
|
||||
}
|
||||
|
||||
@ -221,13 +221,13 @@ private:
|
||||
// int2
|
||||
TIMER_DEVICE_CALLBACK_MEMBER(int2_timer_callback)
|
||||
{
|
||||
maincpu->set_input_line(INPUT_LINE_IRQ2, ASSERT_LINE);
|
||||
m_maincpu->set_input_line(INPUT_LINE_IRQ2, ASSERT_LINE);
|
||||
}
|
||||
|
||||
uint8_t irq_ack_r()
|
||||
{
|
||||
if(!machine().side_effects_disabled())
|
||||
maincpu->set_input_line(INPUT_LINE_IRQ2, CLEAR_LINE);
|
||||
m_maincpu->set_input_line(INPUT_LINE_IRQ2, CLEAR_LINE);
|
||||
return 0;
|
||||
}
|
||||
};
|
||||
@ -238,8 +238,8 @@ void ax145_state::video_start()
|
||||
|
||||
void ax145_state::machine_start()
|
||||
{
|
||||
maincpu->space(AS_PROGRAM).install_ram(0x02000, 0x03fff, ram); // first 0x2000 bytes of RAM
|
||||
maincpu->space(AS_PROGRAM).install_ram(0x62000, 0x69fff, ram); // complete 0x8000 bytes of RAM
|
||||
m_maincpu->space(AS_PROGRAM).install_ram(0x02000, 0x03fff, m_ram); // first 0x2000 bytes of RAM
|
||||
m_maincpu->space(AS_PROGRAM).install_ram(0x62000, 0x69fff, m_ram); // complete 0x8000 bytes of RAM
|
||||
dictionary_bank->configure_entries(0, 4, memregion("dictionary")->base(), 0x20000);
|
||||
|
||||
// TODO: ROM patch
|
||||
@ -251,9 +251,9 @@ void ax145_state::machine_reset()
|
||||
|
||||
void ax145_state::ax145(machine_config &config) {
|
||||
// basic machine hardware
|
||||
HD64180RP(config, maincpu, 12'000'000 / 2);
|
||||
maincpu->set_addrmap(AS_PROGRAM, &ax145_state::map_program);
|
||||
maincpu->set_addrmap(AS_IO, &ax145_state::map_io);
|
||||
HD64180RP(config, m_maincpu, 12'000'000 / 2);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &ax145_state::map_program);
|
||||
m_maincpu->set_addrmap(AS_IO, &ax145_state::map_io);
|
||||
|
||||
TIMER(config, "1khz").configure_periodic(FUNC(ax145_state::int2_timer_callback), attotime::from_hz(1000)); // just guessing frequency, based on LW-30, 350, 450
|
||||
|
||||
@ -269,8 +269,8 @@ void ax145_state::ax145(machine_config &config) {
|
||||
|
||||
PALETTE(config, "palette", FUNC(ax145_state::palette), 2);
|
||||
|
||||
HD44780(config, lcdc, 0);
|
||||
lcdc->set_lcd_size(2, 40);
|
||||
HD44780(config, m_lcdc, 250'000); // TODO: Wrong device type, should be HD44780-B02 custom character set mask; clock not measured, datasheet typical clock used
|
||||
m_lcdc->set_lcd_size(2, 40);
|
||||
}
|
||||
|
||||
static INPUT_PORTS_START(ax145)
|
||||
|
@ -320,7 +320,7 @@ void canons80_state::canons80(machine_config &config)
|
||||
screen.set_visarea(0, 16*6-1, 0, 16-1);
|
||||
screen.set_palette("palette");
|
||||
|
||||
hd44780_device &hd44780(HD44780(config, "lcdc"));
|
||||
hd44780_device &hd44780(HD44780(config, "lcdc", 250'000)); // TODO: Wrong device type, should be T1719A; clock not measured, datasheet typical clock used
|
||||
hd44780.set_lcd_size(2, 16);
|
||||
hd44780.set_pixel_update_cb(FUNC(canons80_state::pixel_update));
|
||||
|
||||
|
@ -113,7 +113,7 @@ void ctk2000_state::ctk2000(machine_config &config)
|
||||
m_maincpu->adc_cb<3>().set_ioport("AIN3");
|
||||
|
||||
// LCD
|
||||
HD44780(config, m_lcdc, 0);
|
||||
HD44780(config, m_lcdc, 250'000); // TODO: Wrong device type, should be ST7066U_0A; clock not measured, datasheet typical clock used
|
||||
m_lcdc->set_lcd_size(2, 8);
|
||||
m_lcdc->set_pixel_update_cb(FUNC(ctk2000_state::lcd_update));
|
||||
|
||||
|
@ -574,7 +574,7 @@ void ctk551_state::ctk601(machine_config& config)
|
||||
m_maincpu->write_sci_tx<0>().set(mdout, FUNC(midi_port_device::write_txd));
|
||||
|
||||
// LCD
|
||||
HD44780(config, m_lcdc, 0);
|
||||
HD44780(config, m_lcdc, 250'000); // TODO: Wrong device type, should be SED1278F2A (custom mask variant of SED1278F0A?); clock not measured, datasheet typical clock used
|
||||
m_lcdc->set_lcd_size(2, 8);
|
||||
|
||||
auto& screen = SCREEN(config, "screen", SCREEN_TYPE_SVG);
|
||||
@ -617,7 +617,7 @@ void ctk551_state::ctk551(machine_config &config)
|
||||
m_maincpu->write_sci_tx<0>().set(mdout, FUNC(midi_port_device::write_txd));
|
||||
|
||||
// LCD
|
||||
HD44780(config, m_lcdc, 0);
|
||||
HD44780(config, m_lcdc, 250'000); // TODO: Wrong device type, should be SED1278F2A (custom mask variant of SED1278F0A?); clock not measured, datasheet typical clock used
|
||||
m_lcdc->set_lcd_size(2, 8);
|
||||
|
||||
auto &screen = SCREEN(config, "screen", SCREEN_TYPE_SVG);
|
||||
|
@ -475,7 +475,7 @@ void cz101_state::cz101(machine_config &config)
|
||||
|
||||
PALETTE(config, "palette", FUNC(cz101_state::cz101_palette), 3);
|
||||
|
||||
HD44780(config, m_hd44780, 0);
|
||||
HD44780(config, m_hd44780, 250'000); // TODO: clock not measured, datasheet typical clock used
|
||||
m_hd44780->set_lcd_size(2, 16);
|
||||
m_hd44780->set_function_set_at_any_time();
|
||||
m_hd44780->set_pixel_update_cb(FUNC(cz101_state::lcd_pixel_update));
|
||||
|
@ -277,7 +277,7 @@ void ld50_state::ld50(machine_config &config)
|
||||
m_maincpu->port_out_cb<3>().set(FUNC(ld50_state::port3_w));
|
||||
|
||||
// LCD
|
||||
HD44780(config, m_lcdc, 0);
|
||||
HD44780(config, m_lcdc, 250'000); // TODO: clock not measured, datasheet typical clock used
|
||||
m_lcdc->set_lcd_size(2, 8);
|
||||
m_lcdc->set_pixel_update_cb(FUNC(ld50_state::lcd_update));
|
||||
|
||||
|
@ -430,7 +430,7 @@ void rz1_state::rz1(machine_config &config)
|
||||
|
||||
PALETTE(config, "palette", FUNC(rz1_state::rz1_palette), 3);
|
||||
|
||||
HD44780(config, m_hd44780, 0);
|
||||
HD44780(config, m_hd44780, 250'000); // TODO: clock not measured, datasheet typical clock used
|
||||
m_hd44780->set_lcd_size(1, 16);
|
||||
m_hd44780->set_pixel_update_cb(FUNC(rz1_state::lcd_pixel_update));
|
||||
|
||||
|
@ -287,7 +287,7 @@ void avrmax_state::atm18mcc(machine_config &config)
|
||||
screen.set_visarea_full();
|
||||
screen.set_screen_update(FUNC(avrmax_state::screen_update));
|
||||
|
||||
HD44780(config, m_lcd, 0);
|
||||
HD44780(config, m_lcd, 250'000); // TODO: Wrong device type, should be HD44780U_A00; clock not measured, datasheet typical clock used
|
||||
config.set_default_layout(layout_atm18mcc);
|
||||
}
|
||||
|
||||
|
@ -222,7 +222,7 @@ void emax_state::emax(machine_config &config)
|
||||
screen.set_visarea(0, 16*6-1, 0, 16-1);
|
||||
screen.set_palette("palette");
|
||||
|
||||
HD44780(config, m_lcdc);
|
||||
HD44780(config, m_lcdc, 250'000); // TODO: clock not measured, datasheet typical clock used
|
||||
m_lcdc->set_lcd_size(2, 16);
|
||||
m_lcdc->set_pixel_update_cb(FUNC(emax_state::pixel_update));
|
||||
|
||||
@ -262,7 +262,7 @@ void emax_state::emax2(machine_config &config)
|
||||
screen.set_visarea(0, 16*6-1, 0, 16-1);
|
||||
screen.set_palette("palette");
|
||||
|
||||
HD44780(config, m_lcdc);
|
||||
HD44780(config, m_lcdc, 250'000); // TODO: clock not measured, datasheet typical clock used
|
||||
m_lcdc->set_lcd_size(2, 16);
|
||||
m_lcdc->set_pixel_update_cb(FUNC(emax_state::pixel_update));
|
||||
|
||||
|
@ -251,7 +251,7 @@ void emu3_state::emu3(machine_config &config)
|
||||
SCC85230(config, m_scc, 16_MHz_XTAL / 4);
|
||||
m_scc->out_int_callback().set(*this, FUNC(emu3_state::irq_w<SCCINT>)).invert();
|
||||
|
||||
HD44780(config, m_lcdc, 0);
|
||||
HD44780(config, m_lcdc, 250'000); // TODO: clock not measured, datasheet typical clock used
|
||||
m_lcdc->set_lcd_size(4, 20);
|
||||
|
||||
PALETTE(config, "palette", FUNC(emu3_state::palette_init), 2);
|
||||
|
@ -142,7 +142,7 @@ void emu68k_state::add_lcd(machine_config &config)
|
||||
|
||||
PALETTE(config, "palette", FUNC(emu68k_state::palette_init), 2);
|
||||
|
||||
hd44780_device &lcdc(HD44780(config, "lcdc", 0));
|
||||
hd44780_device &lcdc(HD44780(config, "lcdc", 250'000)); // TODO: clock not measured, datasheet typical clock used
|
||||
lcdc.set_lcd_size(2, 16);
|
||||
lcdc.set_pixel_update_cb(FUNC(emu68k_state::lcd_pixel_update));
|
||||
}
|
||||
|
@ -46,7 +46,7 @@ void mephisto_display2_device::device_add_mconfig(machine_config &config)
|
||||
|
||||
PALETTE(config, "palette", FUNC(mephisto_display2_device::lcd_palette), 3);
|
||||
|
||||
HD44780(config, m_lcd, 0);
|
||||
HD44780(config, m_lcd, 250'000); // TODO: clock not measured, datasheet typical clock used
|
||||
m_lcd->set_lcd_size(2, 16);
|
||||
m_lcd->set_pixel_update_cb(FUNC(mephisto_display2_device::lcd_pixel_update));
|
||||
|
||||
|
@ -132,7 +132,7 @@ void kawai_r100_state::r100(machine_config &config)
|
||||
|
||||
PALETTE(config, "palette", palette_device::MONOCHROME_INVERTED);
|
||||
|
||||
HD44780(config, m_lcdc, 0);
|
||||
HD44780(config, m_lcdc, 250'000); // TODO: clock not measured, datasheet typical clock used
|
||||
m_lcdc->set_lcd_size(2, 16);
|
||||
m_lcdc->set_pixel_update_cb(FUNC(kawai_r100_state::pixel_update));
|
||||
}
|
||||
|
@ -229,7 +229,7 @@ void korg_ds8_state::ds8(machine_config &config)
|
||||
|
||||
PALETTE(config, "palette", FUNC(korg_ds8_state::palette_init_ds8), 2);
|
||||
|
||||
hd44780_device &lcdc(HD44780(config, "lcdc", 0));
|
||||
hd44780_device &lcdc(HD44780(config, "lcdc", 250'000)); // TODO: clock not measured, datasheet typical clock used
|
||||
lcdc.set_lcd_size(2, 40);
|
||||
lcdc.set_pixel_update_cb(FUNC(korg_ds8_state::lcd_pixel_update));
|
||||
|
||||
|
@ -466,7 +466,7 @@ void korg_dss1_state::klm780(machine_config &config)
|
||||
|
||||
PALETTE(config, "palette", FUNC(korg_dss1_state::palette_init_dss1), 2);
|
||||
|
||||
HD44780(config, m_lcdc, 0);
|
||||
HD44780(config, m_lcdc, 250'000); // TODO: clock not measured, datasheet typical clock used
|
||||
m_lcdc->set_lcd_size(2, 20);
|
||||
m_lcdc->set_pixel_update_cb(FUNC(korg_dss1_state::lcd_pixel_update));
|
||||
}
|
||||
|
@ -251,7 +251,7 @@ void korgm1_state::korgm1(machine_config &config)
|
||||
|
||||
PALETTE(config, "palette", FUNC(korgm1_state::palette_init), 2);
|
||||
|
||||
HD44780(config, m_lcdc, 0);
|
||||
HD44780(config, m_lcdc, 250'000); // TODO: clock not measured, datasheet typical clock used
|
||||
m_lcdc->set_lcd_size(2, 40);
|
||||
m_lcdc->set_pixel_update_cb(FUNC(korgm1_state::lcd_pixel_update));
|
||||
|
||||
|
@ -734,7 +734,7 @@ void replicator_state::replicator(machine_config &config)
|
||||
PALETTE(config, "palette", FUNC(replicator_state::palette_init), 2);
|
||||
GFXDECODE(config, "gfxdecode", "palette", gfx_replicator);
|
||||
|
||||
HD44780(config, "hd44780", 0).set_lcd_size(4, 20);
|
||||
HD44780(config, "hd44780", 250'000).set_lcd_size(4, 20); // TODO: clock not measured, datasheet typical clock used
|
||||
|
||||
/* sound hardware */
|
||||
/* A piezo is connected to the PORT G bit 5 (OC0B pin driven by Timer/Counter #4) */
|
||||
|
@ -212,7 +212,7 @@ void piggypas_state::piggypas(machine_config &config)
|
||||
|
||||
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD));
|
||||
screen.set_refresh_hz(50);
|
||||
screen.set_screen_update("hd44780", FUNC(hd44780_device::screen_update));
|
||||
screen.set_screen_update(m_hd44780, FUNC(hd44780_device::screen_update));
|
||||
screen.set_size(16*6, 8);
|
||||
screen.set_visarea(0, 16*6-1, 0, 8-1);
|
||||
screen.set_palette("palette");
|
||||
@ -220,9 +220,9 @@ void piggypas_state::piggypas(machine_config &config)
|
||||
PALETTE(config, "palette").set_entries(2);
|
||||
config.set_default_layout(layout_piggypas);
|
||||
|
||||
hd44780_device &hd44780(HD44780(config, "hd44780"));
|
||||
hd44780.set_lcd_size(1, 16);
|
||||
hd44780.set_pixel_update_cb(FUNC(piggypas_state::piggypas_pixel_update));
|
||||
HD44780(config, m_hd44780, 250'000); // TODO: clock not measured, datasheet typical clock used
|
||||
m_hd44780->set_lcd_size(1, 16);
|
||||
m_hd44780->set_pixel_update_cb(FUNC(piggypas_state::piggypas_pixel_update));
|
||||
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "mono").front_center();
|
||||
|
@ -338,7 +338,7 @@ void mpf1_88_state::mpf1_88(machine_config &config)
|
||||
|
||||
PALETTE(config, "palette", FUNC(mpf1_88_state::lcd_palette), 3);
|
||||
|
||||
hd44780_device &lcdc(HD44780(config, "lcdc", 0));
|
||||
hd44780_device &lcdc(HD44780(config, "lcdc", 250'000)); // TODO: clock not measured, datasheet typical clock used
|
||||
lcdc.set_lcd_size(2, 20);
|
||||
lcdc.set_pixel_update_cb(FUNC(mpf1_88_state::lcd_pixel_update));
|
||||
lcdc.set_function_set_at_any_time(true);
|
||||
|
@ -301,7 +301,7 @@ void diablo_state::diablo68k(machine_config &config)
|
||||
|
||||
PALETTE(config, "palette", FUNC(diablo_state::lcd_palette), 3);
|
||||
|
||||
HD44780(config, m_lcd, 0);
|
||||
HD44780(config, m_lcd, 250'000); // TODO: clock not measured, datasheet typical clock used
|
||||
m_lcd->set_lcd_size(2, 8);
|
||||
m_lcd->set_pixel_update_cb(FUNC(diablo_state::lcd_pixel_update));
|
||||
|
||||
|
@ -445,7 +445,7 @@ void sexpert_state::sexpert(machine_config &config)
|
||||
|
||||
PALETTE(config, "palette", FUNC(sexpert_state::lcd_palette), 3);
|
||||
|
||||
HD44780(config, m_lcd, 0);
|
||||
HD44780(config, m_lcd, 250'000); // TODO: clock not measured, datasheet typical clock used
|
||||
m_lcd->set_lcd_size(2, 8);
|
||||
m_lcd->set_pixel_update_cb(FUNC(sexpert_state::lcd_pixel_update));
|
||||
|
||||
|
@ -548,7 +548,7 @@ void psion_state::psion_2lines(machine_config &config)
|
||||
PALETTE(config, "palette", FUNC(psion_state::psion_palette), 2);
|
||||
GFXDECODE(config, "gfxdecode", "palette", gfx_psion);
|
||||
|
||||
HD44780(config, m_lcdc, 0);
|
||||
HD44780(config, m_lcdc, 250'000); // TODO: Wrong device? Custom? clock not measured, datasheet typical clock used
|
||||
m_lcdc->set_lcd_size(2, 16);
|
||||
|
||||
/* sound hardware */
|
||||
|
@ -142,7 +142,7 @@ void alphajuno_state::ajuno1(machine_config &config)
|
||||
|
||||
PALETTE(config, "palette", FUNC(alphajuno_state::palette_init), 2);
|
||||
|
||||
HD44780(config, m_lcdc, 0);
|
||||
HD44780(config, m_lcdc, 250'000); // TODO: clock not measured, datasheet typical clock used
|
||||
m_lcdc->set_lcd_size(2, 8);
|
||||
m_lcdc->set_pixel_update_cb(FUNC(alphajuno_state::lcd_pixel_update));
|
||||
m_lcdc->set_busy_factor(0.005f);
|
||||
@ -181,7 +181,7 @@ void alphajuno_state::mks50(machine_config &config)
|
||||
|
||||
PALETTE(config, "palette", FUNC(alphajuno_state::palette_init), 2);
|
||||
|
||||
HD44780(config, m_lcdc, 0);
|
||||
HD44780(config, m_lcdc, 250'000); // TODO: clock not measured, datasheet typical clock used
|
||||
m_lcdc->set_lcd_size(2, 8);
|
||||
m_lcdc->set_pixel_update_cb(FUNC(alphajuno_state::lcd_pixel_update));
|
||||
m_lcdc->set_busy_factor(0.05f);
|
||||
|
@ -238,7 +238,7 @@ void roland_s10_state::s10(machine_config &config)
|
||||
|
||||
PALETTE(config, "palette", FUNC(roland_s10_state::palette_init), 2);
|
||||
|
||||
HD44780(config, m_lcdc, 0);
|
||||
HD44780(config, m_lcdc, 250'000); // TODO: clock not measured, datasheet typical clock used
|
||||
m_lcdc->set_lcd_size(2, 8);
|
||||
m_lcdc->set_pixel_update_cb(FUNC(roland_s10_state::lcd_pixel_update));
|
||||
m_lcdc->set_busy_factor(0.005f);
|
||||
|
@ -199,7 +199,7 @@ void model1io2_device::device_add_mconfig(machine_config &config)
|
||||
|
||||
PALETTE(config, "palette", FUNC(model1io2_device::lcd_palette), 3);
|
||||
|
||||
HD44780(config, m_lcd, 0);
|
||||
HD44780(config, m_lcd, 250'000); // TODO: clock not measured, datasheet typical clock used
|
||||
m_lcd->set_lcd_size(2, 20);
|
||||
m_lcd->set_pixel_update_cb(FUNC(model1io2_device::lcd_pixel_update));
|
||||
}
|
||||
|
@ -452,7 +452,7 @@ void speedbsk_state::speedbsk(machine_config &config)
|
||||
|
||||
PALETTE(config, "palette", FUNC(speedbsk_state::lcd_palette), 3);
|
||||
|
||||
HD44780(config, m_lcd, 0);
|
||||
HD44780(config, m_lcd, 250'000); // TODO: clock not measured, datasheet typical clock used
|
||||
m_lcd->set_lcd_size(2, 20);
|
||||
m_lcd->set_pixel_update_cb(FUNC(speedbsk_state::lcd_pixel_update));
|
||||
|
||||
|
@ -142,7 +142,7 @@ void _600cat_state::_600cat(machine_config &config)
|
||||
|
||||
PALETTE(config, m_palette, FUNC(_600cat_state::lcd_palette), 3);
|
||||
|
||||
HD44780(config, m_lcdc);
|
||||
HD44780(config, m_lcdc, 250'000); // TODO: clock not measured, datasheet typical clock used
|
||||
m_lcdc->set_lcd_size(4, 20);
|
||||
m_lcdc->set_pixel_update_cb(FUNC(_600cat_state::lcd_pixel_update));
|
||||
|
||||
|
@ -216,7 +216,7 @@ void adacp150_state::adacp150(machine_config &config)
|
||||
screen.set_visarea(0, 16*6-1, 0, 16-1);
|
||||
screen.set_palette("palette");
|
||||
|
||||
HD44780(config, m_lcdc);
|
||||
HD44780(config, m_lcdc, 250'000); // TODO: clock not measured, datasheet typical clock used
|
||||
m_lcdc->set_lcd_size(2, 20);
|
||||
m_lcdc->set_pixel_update_cb(FUNC(adacp150_state::pixel_update));
|
||||
|
||||
|
@ -73,7 +73,7 @@ void airbase99_state::airbase99(machine_config &config)
|
||||
|
||||
PALETTE(config, "palette", palette_device::MONOCHROME_INVERTED);
|
||||
|
||||
hd44780_device &lcdc(HD44780(config, "lcdc", 0));
|
||||
hd44780_device &lcdc(HD44780(config, "lcdc", 250'000)); // TODO: clock not measured, datasheet typical clock used
|
||||
lcdc.set_lcd_size(2, 20);
|
||||
lcdc.set_pixel_update_cb(FUNC(airbase99_state::pixel_update));
|
||||
}
|
||||
|
@ -572,9 +572,9 @@ void alphasmart_state::alphasmart(machine_config &config)
|
||||
m_maincpu->in_pd_callback().set(FUNC(alphasmart_state::port_d_r));
|
||||
m_maincpu->out_pd_callback().set(FUNC(alphasmart_state::port_d_w));
|
||||
|
||||
KS0066_F05(config, m_lcdc[0], 0);
|
||||
KS0066_F05(config, m_lcdc[0], 270'000); // TODO: clock not measured, datasheet typical clock used
|
||||
m_lcdc[0]->set_lcd_size(2, 40);
|
||||
KS0066_F05(config, m_lcdc[1], 0);
|
||||
KS0066_F05(config, m_lcdc[1], 270'000); // TODO: clock not measured, datasheet typical clock used
|
||||
m_lcdc[1]->set_lcd_size(2, 40);
|
||||
|
||||
/* video hardware */
|
||||
|
@ -113,9 +113,9 @@ void alphasmart3k_state::alphasmart3k(machine_config &config)
|
||||
|
||||
// Values from AlphaSmart 2000, not confirmed for AlphaSmart 3000
|
||||
// AlphaSmart 3000 uses a Data Image CM4040 LCD display, LCD is 40x4 according to ref
|
||||
KS0066_F05(config, m_lcdc0, 0);
|
||||
KS0066_F05(config, m_lcdc0, 270'000); // TODO: Possibly wrong device type, needs confirmation; clock not measured, datasheet typical clock used
|
||||
m_lcdc0->set_lcd_size(4, 40);
|
||||
KS0066_F05(config, m_lcdc1, 0);
|
||||
KS0066_F05(config, m_lcdc1, 270'000); // TODO: Possibly wrong device type, needs confirmation; clock not measured, datasheet typical clock used
|
||||
m_lcdc1->set_lcd_size(4, 40);
|
||||
|
||||
RAM(config, RAM_TAG).set_default_size("256K");
|
||||
|
@ -279,7 +279,7 @@ void consoemt_state::consoemt(machine_config &config)
|
||||
|
||||
PALETTE(config, "palette", FUNC(consoemt_state::consoemt_palette), 3);
|
||||
|
||||
KS0066_F05(config, m_lcdc, 0);
|
||||
KS0066_F05(config, m_lcdc, 270'000); // TODO: clock not measured, datasheet typical clock used
|
||||
m_lcdc->set_lcd_size(2, 20);
|
||||
m_lcdc->set_pixel_update_cb(FUNC(consoemt_state::lcd_pixel_update));
|
||||
}
|
||||
|
@ -172,7 +172,7 @@ void eurit_state::eurit30(machine_config &config)
|
||||
|
||||
PALETTE(config, "palette", FUNC(eurit_state::palette_init), 2);
|
||||
|
||||
hd44780_device &lcdc(SED1278_0B(config, "lcdc", 0));
|
||||
hd44780_device &lcdc(SED1278_0B(config, "lcdc", 250'000)); // TODO: clock not measured, datasheet typical clock used
|
||||
lcdc.set_lcd_size(2, 20);
|
||||
lcdc.set_pixel_update_cb(FUNC(eurit_state::lcd_pixel_update));
|
||||
}
|
||||
|
@ -101,7 +101,7 @@ void gm1000_state::gm1000(machine_config &config)
|
||||
|
||||
PALETTE(config, "palette", palette_device::MONOCHROME_INVERTED);
|
||||
|
||||
hd44780_device &lcdc(HD44780(config, "lcdc", 0));
|
||||
hd44780_device &lcdc(HD44780(config, "lcdc", 250'000)); // TODO: clock not measured, datasheet typical clock used
|
||||
lcdc.set_lcd_size(2, 24);
|
||||
lcdc.set_pixel_update_cb(FUNC(gm1000_state::lcd_pixel_update));
|
||||
lcdc.set_function_set_at_any_time(true);
|
||||
|
@ -272,7 +272,7 @@ void hprot1_state::hprot1(machine_config &config)
|
||||
PALETTE(config, "palette", FUNC(hprot1_state::hprot1_palette), 2);
|
||||
GFXDECODE(config, "gfxdecode", "palette", gfx_hprot1);
|
||||
|
||||
HD44780(config, m_lcdc, 0);
|
||||
HD44780(config, m_lcdc, 250'000); /* TODO: clock not measured, datasheet typical clock used */
|
||||
m_lcdc->set_lcd_size(2, 16);
|
||||
m_lcdc->set_pixel_update_cb(FUNC(hprot1_state::hprot1_pixel_update));
|
||||
|
||||
|
@ -263,7 +263,7 @@ void icatel_state::icatel(machine_config &config)
|
||||
PALETTE(config, "palette", FUNC(icatel_state::icatel_palette), 2);
|
||||
GFXDECODE(config, "gfxdecode", "palette", gfx_icatel);
|
||||
|
||||
HD44780(config, m_lcdc, 0);
|
||||
HD44780(config, m_lcdc, 250'000); /* TODO: clock not measured, datasheet typical clock used */
|
||||
m_lcdc->set_lcd_size(2, 16);
|
||||
m_lcdc->set_pixel_update_cb(FUNC(icatel_state::icatel_pixel_update));
|
||||
}
|
||||
|
@ -274,7 +274,7 @@ void ml20_state::ml20(machine_config &config)
|
||||
|
||||
PALETTE(config, "palette", FUNC(ml20_state::lcd_palette), 3);
|
||||
|
||||
HD44780(config, m_lcdc, 0);
|
||||
HD44780(config, m_lcdc, 250'000); // TODO: clock not measured, datasheet typical clock used
|
||||
m_lcdc->set_lcd_size(2, 16);
|
||||
m_lcdc->set_pixel_update_cb(FUNC(ml20_state::lcd_pixel_update));
|
||||
|
||||
|
@ -138,7 +138,7 @@ void mtd1256_state::mtd1256(machine_config &config)
|
||||
screen.set_visarea(0, 20*6-1, 0, 32-1);
|
||||
screen.set_palette("palette");
|
||||
|
||||
hd44780_device &hd44780(HD44780(config, "lcdc"));
|
||||
hd44780_device &hd44780(HD44780(config, "lcdc", 250'000)); // TODO: clock not measured, datasheet typical clock used
|
||||
hd44780.set_lcd_size(2, 16);
|
||||
hd44780.set_pixel_update_cb(FUNC(mtd1256_state::pixel_update));
|
||||
|
||||
|
@ -264,7 +264,7 @@ void rd100_state::rd100(machine_config &config)
|
||||
screen.set_visarea(0, 16*6-1, 0, 16-1);
|
||||
screen.set_palette("palette");
|
||||
|
||||
hd44780_device &hd44780(HD44780(config, "hd44780"));
|
||||
hd44780_device &hd44780(HD44780(config, "hd44780", 250'000)); // TODO: clock not measured, datasheet typical clock used
|
||||
hd44780.set_lcd_size(2, 16);
|
||||
hd44780.set_pixel_update_cb(FUNC(rd100_state::pixel_update));
|
||||
|
||||
|
@ -170,7 +170,7 @@ void sk101bl_state::sk101bl(machine_config &config)
|
||||
screen.set_visarea(0, 16*6-1, 0, 10-1);
|
||||
screen.set_palette("palette");
|
||||
|
||||
HD44780(config, m_lcdc).set_lcd_size(1, 16);
|
||||
HD44780(config, m_lcdc, 250'000).set_lcd_size(1, 16); // TODO: clock not measured, datasheet typical clock used
|
||||
m_lcdc->set_pixel_update_cb(FUNC(sk101bl_state::pixel_update));
|
||||
|
||||
PALETTE(config, "palette").set_entries(2);
|
||||
|
@ -88,9 +88,9 @@ void ti630_state::init_ti630()
|
||||
|
||||
void ti630_state::i80c31_io(address_map &map)
|
||||
{
|
||||
map(0x0000, 0x0000) /*.mirror(?)*/ .w("hd44780", FUNC(hd44780_device::control_w));
|
||||
map(0x1000, 0x1000) /*.mirror(?)*/ .w("hd44780", FUNC(hd44780_device::data_w));
|
||||
map(0x2000, 0x2000) /*.mirror(?)*/ .r("hd44780", FUNC(hd44780_device::control_r));
|
||||
map(0x0000, 0x0000) /*.mirror(?)*/ .w(m_lcdc, FUNC(hd44780_device::control_w));
|
||||
map(0x1000, 0x1000) /*.mirror(?)*/ .w(m_lcdc, FUNC(hd44780_device::data_w));
|
||||
map(0x2000, 0x2000) /*.mirror(?)*/ .r(m_lcdc, FUNC(hd44780_device::control_r));
|
||||
map(0x8000, 0xffff).ram(); /*TODO: verify the ammont of RAM and the correct address range to which it is mapped. This is just a first reasonable guess that apparently yields good results in the emulation */
|
||||
}
|
||||
|
||||
@ -154,7 +154,7 @@ void ti630_state::ti630(machine_config &config)
|
||||
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD));
|
||||
screen.set_refresh_hz(50);
|
||||
screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
|
||||
screen.set_screen_update("hd44780", FUNC(hd44780_device::screen_update));
|
||||
screen.set_screen_update(m_lcdc, FUNC(hd44780_device::screen_update));
|
||||
screen.set_size(6*16, 9*2);
|
||||
screen.set_visarea(0, 6*16-1, 0, 9*2-1);
|
||||
screen.set_palette("palette");
|
||||
@ -162,7 +162,7 @@ void ti630_state::ti630(machine_config &config)
|
||||
PALETTE(config, "palette", FUNC(ti630_state::ti630_palette), 2);
|
||||
GFXDECODE(config, "gfxdecode", "palette", gfx_ti630);
|
||||
|
||||
HD44780(config, m_lcdc, 0);
|
||||
HD44780(config, m_lcdc, 250'000); // TODO: clock not measured, datasheet typical clock used
|
||||
m_lcdc->set_lcd_size(2, 16);
|
||||
}
|
||||
|
||||
|
@ -104,7 +104,7 @@ void dpsv55_state::dpsv55(machine_config &config)
|
||||
|
||||
PALETTE(config, "palette", palette_device::MONOCHROME_INVERTED);
|
||||
|
||||
HD44780(config, m_lcdc, 0);
|
||||
HD44780(config, m_lcdc, 250'000); // TODO: clock not measured, datasheet typical clock used
|
||||
m_lcdc->set_lcd_size(2, 20);
|
||||
m_lcdc->set_pixel_update_cb(FUNC(dpsv55_state::pixel_update));
|
||||
|
||||
|
@ -639,7 +639,7 @@ void cc40_state::cc40(machine_config &config)
|
||||
|
||||
PALETTE(config, "palette", FUNC(cc40_state::cc40_palette), 3);
|
||||
|
||||
hd44780_device &hd44780(HD44780(config, "hd44780", 0));
|
||||
hd44780_device &hd44780(HD44780(config, "hd44780", 250'000)); // TODO: clock not measured, datasheet typical clock used
|
||||
hd44780.set_lcd_size(2, 16); // 2*16 internal
|
||||
hd44780.set_pixel_update_cb(FUNC(cc40_state::cc40_pixel_update));
|
||||
|
||||
|
@ -536,7 +536,7 @@ void ti74_state::ti74(machine_config &config)
|
||||
|
||||
PALETTE(config, "palette", FUNC(ti74_state::ti74_palette), 3);
|
||||
|
||||
hd44780_device &hd44780(HD44780(config, "hd44780", 0)); // 270kHz
|
||||
hd44780_device &hd44780(HD44780(config, "hd44780", 270'000)); // 270kHz, measured? HD44780A00
|
||||
hd44780.set_lcd_size(2, 16); // 2*16 internal
|
||||
hd44780.set_pixel_update_cb(FUNC(ti74_state::ti74_pixel_update));
|
||||
|
||||
@ -569,7 +569,7 @@ void ti74_state::ti95(machine_config &config)
|
||||
|
||||
PALETTE(config, "palette", FUNC(ti74_state::ti74_palette), 3);
|
||||
|
||||
hd44780_device &hd44780(HD44780(config, "hd44780", 0));
|
||||
hd44780_device &hd44780(HD44780(config, "hd44780", 250'000)); // TODO: clock not measured, datasheet typical clock used
|
||||
hd44780.set_lcd_size(2, 16);
|
||||
hd44780.set_pixel_update_cb(FUNC(ti74_state::ti95_pixel_update));
|
||||
|
||||
|
@ -255,7 +255,7 @@ void lcmate2_state::lcmate2(machine_config &config)
|
||||
PALETTE(config, "palette", FUNC(lcmate2_state::lcmate2_palette), 2);
|
||||
GFXDECODE(config, "gfxdecode", "palette", gfx_lcmate2);
|
||||
|
||||
HD44780(config, m_lcdc, 0);
|
||||
HD44780(config, m_lcdc, 250'000); // TODO: clock not measured, datasheet typical clock used
|
||||
m_lcdc->set_lcd_size(2, 20);
|
||||
|
||||
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
|
||||
|
@ -745,14 +745,14 @@ void pc2000_state::pc2000gen(machine_config &config)
|
||||
void pc2000_state::pc2000(machine_config &config)
|
||||
{
|
||||
pc2000gen(config);
|
||||
HD44780(config, m_lcdc, 0);
|
||||
HD44780(config, m_lcdc, 250'000); // TODO: clock not measured, datasheet typical clock used
|
||||
m_lcdc->set_lcd_size(2, 20);
|
||||
}
|
||||
|
||||
void pc2000_state::pc2000eur(machine_config &config)
|
||||
{
|
||||
pc2000gen(config);
|
||||
SED1278_0B(config, m_lcdc, 0);
|
||||
SED1278_0B(config, m_lcdc, 250'000); // TODO: clock not measured, datasheet typical clock used
|
||||
m_lcdc->set_lcd_size(2, 20);
|
||||
}
|
||||
|
||||
|
@ -182,7 +182,7 @@ void fb01_state::fb01(machine_config &config)
|
||||
|
||||
PALETTE(config, "palette", FUNC(fb01_state::fb01_palette), 2);
|
||||
|
||||
hd44780_device &hd44780(HD44780(config, "hd44780", 0));
|
||||
hd44780_device &hd44780(HD44780(config, "hd44780", 250'000)); // TODO: clock not measured, datasheet typical clock used
|
||||
hd44780.set_lcd_size(2, 8); // 2x8 displayed as 1x16
|
||||
hd44780.set_pixel_update_cb(FUNC(fb01_state::fb01_pixel_update));
|
||||
|
||||
|
@ -77,7 +77,7 @@ void mulcd_device::render_w(int state)
|
||||
|
||||
void mulcd_device::device_add_mconfig(machine_config &config)
|
||||
{
|
||||
HD44780(config, m_lcd);
|
||||
HD44780(config, m_lcd, 250'000); // TODO: Wrong device type, should be a custom mask part of unknown mask number; clock not measured, datasheet typical clock used
|
||||
m_lcd->set_lcd_size(4, 20);
|
||||
|
||||
auto &screen = SCREEN(config, "screen", SCREEN_TYPE_SVG);
|
||||
|
@ -7,7 +7,7 @@ Yamaha DX27 and DX100 digital synthesizers
|
||||
The DX27 and DX100 are mid-tier professional synthesizers released by Yamaha
|
||||
around 1985. The DX27 is a full-size keyboard with 61 full-size keys that can
|
||||
only run on AC power. The DX100 is a smaller, wearable keyboard with only 49
|
||||
small-size keys and can run on either AC power or batteries. Both keybaords have
|
||||
small-size keys and can run on either AC power or batteries. Both keyboards have
|
||||
full MIDI in/out/thru, and can also hook up to a Yamaha foot pedal and breath
|
||||
controller.
|
||||
|
||||
@ -133,7 +133,7 @@ service manual, but is still readily available.
|
||||
1 2 3 4 5 6 7 8 9 0 - = -> 1 2 3 4 5 6 7 8 9 10 11 12
|
||||
Q W T Y O P -> PBend KeyShift Store Func BankA BankB
|
||||
E R U I [ ] -> -1 +1 Edit Internal BankC BankD
|
||||
Octave 3 will be avaible over [Z S X D C V G B H N J M]
|
||||
Octave 3 will be available over [Z S X D C V G B H N J M]
|
||||
Pitch bend will be ' /
|
||||
Mod wheel will be ; .
|
||||
Data entry slider will be L ,
|
||||
@ -622,7 +622,7 @@ void yamaha_dx100_state::dx100(machine_config &config)
|
||||
|
||||
PALETTE(config, "palette", FUNC(yamaha_dx100_state::palette_init), 3);
|
||||
|
||||
hd44780_device &lcdc(HD44780(config, "lcdc", 0)); // HD44780RA00
|
||||
hd44780_device &lcdc(HD44780(config, "lcdc", 250'000)); // HD44780RA00; TODO: clock not measured, datasheet typical clock used
|
||||
lcdc.set_lcd_size(1, 16);
|
||||
lcdc.set_pixel_update_cb(FUNC(yamaha_dx100_state::lcd_pixel_update));
|
||||
|
||||
|
@ -113,7 +113,7 @@ void yamaha_dx11_state::dx11(machine_config &config)
|
||||
|
||||
PALETTE(config, "palette", FUNC(yamaha_dx11_state::palette_init), 2);
|
||||
|
||||
hd44780_device &lcdc(HD44780(config, "lcdc", 0));
|
||||
hd44780_device &lcdc(HD44780(config, "lcdc", 250'000)); // TODO: clock not measured, datasheet typical clock used
|
||||
lcdc.set_lcd_size(2, 16);
|
||||
lcdc.set_pixel_update_cb(FUNC(yamaha_dx11_state::lcd_pixel_update));
|
||||
|
||||
|
@ -295,14 +295,14 @@ void yamaha_dx7_state::dx7(machine_config &config)
|
||||
screen.set_color(rgb_t::green());
|
||||
screen.set_refresh_hz(60);
|
||||
screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
|
||||
screen.set_screen_update("hd44780", FUNC(hd44780_device::screen_update));
|
||||
screen.set_screen_update(m_lcdc, FUNC(hd44780_device::screen_update));
|
||||
screen.set_size(6*16, 8*2);
|
||||
screen.set_visarea_full();
|
||||
screen.set_palette("palette");
|
||||
|
||||
PALETTE(config, "palette", FUNC(yamaha_dx7_state::palette_init), 2);
|
||||
|
||||
HD44780(config, m_lcdc, 0);
|
||||
HD44780(config, m_lcdc, 250'000); // TODO: clock not measured, datasheet typical clock used
|
||||
m_lcdc->set_lcd_size(2, 16);
|
||||
m_lcdc->set_pixel_update_cb(FUNC(yamaha_dx7_state::lcd_pixel_update));
|
||||
}
|
||||
|
@ -277,7 +277,7 @@ void yamaha_dx9_state::dx9(machine_config &config)
|
||||
|
||||
PALETTE(config, "palette", FUNC(yamaha_dx9_state::palette_init), 3);
|
||||
|
||||
hd44780_device &lcdc(HD44780(config, "lcdc", 0));
|
||||
hd44780_device &lcdc(HD44780(config, "lcdc", 250'000)); // TODO: clock not measured, datasheet typical clock used
|
||||
lcdc.set_lcd_size(2, 16);
|
||||
lcdc.set_pixel_update_cb(FUNC(yamaha_dx9_state::lcd_pixel_update));
|
||||
|
||||
|
@ -429,7 +429,7 @@ void psr150_state::psr190_base(machine_config &config)
|
||||
m_maincpu->port_in_cb<2>().set_ioport("PC_R");
|
||||
m_maincpu->port_out_cb<2>().set_ioport("PC_W");
|
||||
|
||||
HD44780(config, m_lcdc);
|
||||
HD44780(config, m_lcdc, 250'000); // TODO: clock not measured, datasheet typical clock used
|
||||
m_lcdc->set_lcd_size(2, 8);
|
||||
|
||||
screen_device& screen(SCREEN(config, "screen", SCREEN_TYPE_SVG));
|
||||
|
@ -82,7 +82,7 @@ void psr260_state::psr260(machine_config &config)
|
||||
// TODO: MIDI in/out
|
||||
|
||||
// LCD
|
||||
HD44780(config, m_lcdc, 0);
|
||||
HD44780(config, m_lcdc, 250'000); // TODO: clock not measured, datasheet typical clock used
|
||||
m_lcdc->set_lcd_size(2, 8);
|
||||
m_lcdc->set_pixel_update_cb(FUNC(psr260_state::lcd_update));
|
||||
// code never checks the busy flag, it just delays for a fixed amount and assumes it's ready
|
||||
|
@ -275,7 +275,7 @@ void psr340_state::psr340(machine_config &config)
|
||||
// SCI0 is externally clocked at the 31250 Hz MIDI rate
|
||||
m_maincpu->sci_set_external_clock_period(0, attotime::from_hz(31250 * 16));
|
||||
|
||||
KS0066_F05(config, m_lcdc, 0);
|
||||
KS0066_F05(config, m_lcdc, 270'000); // TODO: clock not measured, datasheet typical clock used
|
||||
m_lcdc->set_lcd_size(2, 40);
|
||||
|
||||
/* video hardware */
|
||||
|
@ -75,7 +75,7 @@ void rx15_state::rx15(machine_config &config)
|
||||
|
||||
PALETTE(config, "palette", palette_device::MONOCHROME_INVERTED);
|
||||
|
||||
hd44780_device &lcdc(HD44780(config, "lcdc", 0));
|
||||
hd44780_device &lcdc(HD44780(config, "lcdc", 250'000)); // TODO: clock not measured, datasheet typical clock used
|
||||
lcdc.set_lcd_size(2, 8);
|
||||
lcdc.set_pixel_update_cb(FUNC(rx15_state::pixel_update));
|
||||
|
||||
|
@ -155,7 +155,7 @@ void ymtx81z_state::tx81z(machine_config &config)
|
||||
|
||||
config.set_default_layout(layout_tx81z);
|
||||
|
||||
hd44780_device &lcdc(HD44780(config, "lcdc", 0));
|
||||
hd44780_device &lcdc(HD44780(config, "lcdc", 250'000)); // TODO: clock not measured, datasheet typical clock used
|
||||
lcdc.set_lcd_size(2, 16);
|
||||
lcdc.set_pixel_update_cb(FUNC(ymtx81z_state::lcd_pixel_update));
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user