hd44780: Add Epson SED1278-0B variant with European character generator ROM

This commit is contained in:
AJR 2020-05-15 10:30:46 -04:00
parent 4dd350a000
commit 62f1a3169d
3 changed files with 26 additions and 2 deletions

View File

@ -23,6 +23,7 @@
//**************************************************************************
DEFINE_DEVICE_TYPE(HD44780, hd44780_device, "hd44780_a00", "Hitachi HD44780 A00 LCD Controller")
DEFINE_DEVICE_TYPE(SED1278_0B, sed1278_0b_device, "sed1278_0b", "Epson SED1278-0B LCD Controller") // packaged as either SED1278F0B or SED1278D0B
DEFINE_DEVICE_TYPE(KS0066_F05, ks0066_f05_device, "ks0066_f05", "Samsung KS0066 F05 LCD Controller")
@ -35,6 +36,11 @@ ROM_START( hd44780_a00 )
ROM_LOAD( "hd44780_a00.bin", 0x0000, 0x1000, BAD_DUMP CRC(01d108e2) SHA1(bc0cdf0c9ba895f22e183c7bd35a3f655f2ca96f)) // from page 17 of the HD44780 datasheet
ROM_END
ROM_START( sed1278_0b )
ROM_REGION( 0x1000, "cgrom", 0 )
ROM_LOAD( "sed1278_0b.bin", 0x0000, 0x1000, BAD_DUMP CRC(eef342fa) SHA1(d6ac58a48e428e7cff26fb9c8ea9b4eeaa853038)) // from page 9-33 of the SED1278 datasheet
ROM_END
ROM_START( ks0066_f05 )
ROM_REGION( 0x1000, "cgrom", 0 )
ROM_LOAD( "ks0066_f05.bin", 0x0000, 0x1000, BAD_DUMP CRC(af9e7bd6) SHA1(0196e871584ee5d370856e7307c0f9d1466e3e51)) // from page 51 of the KS0066 datasheet
@ -67,6 +73,12 @@ hd44780_device::hd44780_device(const machine_config &mconfig, device_type type,
{
}
sed1278_0b_device::sed1278_0b_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
hd44780_device(mconfig, SED1278_0B, tag, owner, clock)
{
set_charset_type(CHARSET_SED1278_0B);
}
ks0066_f05_device::ks0066_f05_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
hd44780_device(mconfig, KS0066_F05, tag, owner, clock)
{
@ -83,6 +95,7 @@ const tiny_rom_entry *hd44780_device::device_rom_region() const
switch (m_charset_type)
{
case CHARSET_HD44780_A00: return ROM_NAME( hd44780_a00 );
case CHARSET_SED1278_0B: return ROM_NAME( sed1278_0b );
case CHARSET_KS0066_F05: return ROM_NAME( ks0066_f05 );
}

View File

@ -66,6 +66,7 @@ protected:
enum
{
CHARSET_HD44780_A00,
CHARSET_SED1278_0B,
CHARSET_KS0066_F05 /*,
CHARSET_HD44780_A01,
CHARSET_HD44780_A02,
@ -138,6 +139,15 @@ private:
enum { DDRAM, CGRAM };
};
// ======================> sed1278_0b_device
class sed1278_0b_device : public hd44780_device
{
public:
// construction/destruction
sed1278_0b_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
};
// ======================> ks0066_f05_device
class ks0066_f05_device : public hd44780_device
@ -149,6 +159,7 @@ public:
// device type definition
DECLARE_DEVICE_TYPE(HD44780, hd44780_device)
DECLARE_DEVICE_TYPE(SED1278_0B, sed1278_0b_device)
DECLARE_DEVICE_TYPE(KS0066_F05, ks0066_f05_device)
#endif // MAME_VIDEO_HD44780_H

View File

@ -165,7 +165,7 @@ void eurit_state::eurit30(machine_config &config)
PALETTE(config, "palette", FUNC(eurit_state::palette_init), 2);
hd44780_device &lcdc(HD44780(config, "lcdc", 0));
hd44780_device &lcdc(SED1278_0B(config, "lcdc", 0));
lcdc.set_lcd_size(2, 20);
lcdc.set_pixel_update_cb(FUNC(eurit_state::lcd_pixel_update));
}
@ -177,4 +177,4 @@ ROM_START(eurit30)
ROM_END
SYST(1996, eurit30, 0, 0, eurit30, eurit30, eurit_state, empty_init, "Ascom", "Eurit 30", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND)
SYST(1996, eurit30, 0, 0, eurit30, eurit30, eurit_state, empty_init, "Ascom", "Eurit 30", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)