mirror of
https://github.com/holub/mame
synced 2025-04-25 17:56:43 +03:00
-video/hd44780.cpp: Cleaned up mess in ROM selection code.
-taito/*.cpp: Keep local headers before library headers.
This commit is contained in:
parent
4744393229
commit
1998db9f5d
@ -22,62 +22,69 @@
|
||||
// DEVICE DEFINITIONS
|
||||
//**************************************************************************
|
||||
|
||||
DEFINE_DEVICE_TYPE(HD44780, hd44780_device, "hd44780_a00", "Hitachi HD44780A00 LCD Controller")
|
||||
DEFINE_DEVICE_TYPE(HD44780U_A00, hd44780u_a00_device, "hd44780u_a00", "Hitachi HD44780UA00 LCD Controller")
|
||||
DEFINE_DEVICE_TYPE(HD44780U_A02, hd44780u_a02_device, "hd44780u_a02", "Hitachi HD44780UA02 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_F00, ks0066_f00_device, "ks0066_f00", "Samsung KS0066 F00 LCD Controller")
|
||||
DEFINE_DEVICE_TYPE(KS0066_F05, ks0066_f05_device, "ks0066_f05", "Samsung KS0066 F05 LCD Controller")
|
||||
DEFINE_DEVICE_TYPE(HD44780, hd44780_device, "hd44780", "Hitachi HD44780 LCD Controller")
|
||||
DEFINE_DEVICE_TYPE(HD44780U, hd44780u_device, "hd44780u", "Hitachi HD44780U LCD Controller")
|
||||
DEFINE_DEVICE_TYPE(SED1278, sed1278_device, "sed1278", "Epson SED1278 LCD Controller") // packaged as either SED1278F0B or SED1278D0B
|
||||
DEFINE_DEVICE_TYPE(KS0066, ks0066_device, "ks0066", "Samsung KS0066 LCD Controller")
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// ROM( hd44780 )
|
||||
//-------------------------------------------------
|
||||
|
||||
ROM_START( hd44780_a00 )
|
||||
ROM_START( hd44780 )
|
||||
ROM_DEFAULT_BIOS("a00")
|
||||
ROM_SYSTEM_BIOS(0, "a00", "A00")
|
||||
|
||||
ROM_REGION( 0x1000, "cgrom", 0 )
|
||||
ROM_LOAD( "hd44780_a00.bin", 0x0000, 0x1000, BAD_DUMP CRC(e459877c) SHA1(65cf075a988cdcbb316b9afdd0529b374a1a65ec)) // from page 97 of the 1985 HD44780 datasheet from crystalfontz
|
||||
ROMX_LOAD( "hd44780_a00.bin", 0x0000, 0x1000, BAD_DUMP CRC(e459877c) SHA1(65cf075a988cdcbb316b9afdd0529b374a1a65ec), ROM_BIOS(0)) // from page 97 of the 1985 HD44780 datasheet from crystalfontz
|
||||
ROM_END
|
||||
|
||||
ROM_START( hd44780u_a00 )
|
||||
ROM_START( hd44780u )
|
||||
ROM_DEFAULT_BIOS("a00")
|
||||
ROM_SYSTEM_BIOS(0, "a00", "A00")
|
||||
ROM_SYSTEM_BIOS(1, "a02", "A02")
|
||||
// Note the HD44780UA01 font does exist in the 1994 M24T026 Hitachi LCD Controller Driver LSI Data Book on bitsavers as well
|
||||
|
||||
ROM_REGION( 0x1000, "cgrom", 0 )
|
||||
ROM_LOAD( "hd44780u_a00.bin", 0x0000, 0x1000, BAD_DUMP CRC(8494cb6b) SHA1(2d4f9cf5ff81f20d2f4e4640f5b8a697a3781eef)) // from page 17 of the 1999 HD44780U datasheet
|
||||
ROMX_LOAD( "hd44780u_a00.bin", 0x0000, 0x1000, BAD_DUMP CRC(8494cb6b) SHA1(2d4f9cf5ff81f20d2f4e4640f5b8a697a3781eef), ROM_BIOS(0)) // from page 17 of the 1999 HD44780U datasheet
|
||||
// this has 6 characters different from the HD44780A00
|
||||
// this differs slightly (see the '7') from the HD44780UA00 font in the 1994 M24T026 Hitachi LCD Controller Driver LSI Data Book on bitsavers
|
||||
// and needs confirmation from a real device as to which is correct; confirmation on the horizontal offset of the '[' would also be helpful
|
||||
ROM_END
|
||||
|
||||
// Note the HD44780UA01 font does exist in the 1994 M24T026 Hitachi LCD Controller Driver LSI Data Book on bitsavers as well
|
||||
|
||||
ROM_START( hd44780u_a02 )
|
||||
ROM_REGION( 0x1000, "cgrom", 0 )
|
||||
ROM_LOAD( "hd44780u_a02.bin", 0x0000, 0x1000, BAD_DUMP CRC(6d522b42) SHA1(db8f59573c81933cfc9d3232d419406f0896e60b)) // from page 18 of the 1999 HD44780U datasheet
|
||||
ROMX_LOAD( "hd44780u_a02.bin", 0x0000, 0x1000, BAD_DUMP CRC(6d522b42) SHA1(db8f59573c81933cfc9d3232d419406f0896e60b), ROM_BIOS(1)) // from page 18 of the 1999 HD44780U datasheet
|
||||
// this differs slightly (see the '7') from the HD44780UA02 font in the 1994 M24T026 Hitachi LCD Controller Driver LSI Data Book on bitsavers
|
||||
// and needs confirmation from a real device as to which is correct
|
||||
ROM_END
|
||||
|
||||
// TODO: SED1278_0A is 100% identical to hd44780a00, see page 9-32 of the SED1278 datasheet
|
||||
|
||||
ROM_START( sed1278_0b )
|
||||
ROM_START( sed1278 )
|
||||
ROM_DEFAULT_BIOS("0a")
|
||||
ROM_SYSTEM_BIOS(0, "0a", "0A")
|
||||
ROM_SYSTEM_BIOS(1, "0b", "0B")
|
||||
|
||||
ROM_REGION( 0x1000, "cgrom", 0 )
|
||||
ROM_LOAD( "sed1278_0b.bin", 0x0000, 0x1000, BAD_DUMP CRC(962498b7) SHA1(41866836ab4ed7bd4c3539bc8df492ba7d7ff42a)) // from page 9-33 of the SED1278 datasheet
|
||||
ROMX_LOAD( "sed1278_0a.bin", 0x0000, 0x1000, BAD_DUMP CRC(e459877c) SHA1(65cf075a988cdcbb316b9afdd0529b374a1a65ec), ROM_BIOS(0)) // from page 9-32 of the SED1278 datasheet (100% identical to hd44780a00)
|
||||
ROMX_LOAD( "sed1278_0b.bin", 0x0000, 0x1000, BAD_DUMP CRC(962498b7) SHA1(41866836ab4ed7bd4c3539bc8df492ba7d7ff42a), ROM_BIOS(1)) // from page 9-33 of the SED1278 datasheet
|
||||
ROM_END
|
||||
|
||||
// TODO: many other SED1278 variants, documented in the datasheet
|
||||
|
||||
// ks0066_f00 is 100% identical to hd44780a00, see page 61 of the KS0066 non-U datasheet
|
||||
// later ks0066 masks may be different, see page 48 of the other KS0066 datasheet
|
||||
ROM_START( ks0066_f00 )
|
||||
ROM_START( ks0066 )
|
||||
ROM_DEFAULT_BIOS("f00")
|
||||
ROM_SYSTEM_BIOS(0, "f00", "F00")
|
||||
//ROM_SYSTEM_BIOS(?, "f03", "F03")
|
||||
//ROM_SYSTEM_BIOS(?, "f04", "F04")
|
||||
ROM_SYSTEM_BIOS(1, "f05", "F05")
|
||||
//ROM_SYSTEM_BIOS(?, "f06", "F06")
|
||||
//ROM_SYSTEM_BIOS(?, "f59", "F59")
|
||||
|
||||
ROM_REGION( 0x1000, "cgrom", 0 )
|
||||
ROM_LOAD( "ks0066_f00.bin", 0x0000, 0x1000, BAD_DUMP CRC(e459877c) SHA1(65cf075a988cdcbb316b9afdd0529b374a1a65ec)) // from page 61 of the KS0066 non-U datasheet
|
||||
ROMX_LOAD( "ks0066_f00.bin", 0x0000, 0x1000, BAD_DUMP CRC(e459877c) SHA1(65cf075a988cdcbb316b9afdd0529b374a1a65ec), ROM_BIOS(0)) // from page 61 of the KS0066 non-U datasheet
|
||||
ROMX_LOAD( "ks0066_f05.bin", 0x0000, 0x1000, BAD_DUMP CRC(af9e7bd6) SHA1(0196e871584ee5d370856e7307c0f9d1466e3e51), ROM_BIOS(1)) // from page 51 of the KS0066 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
|
||||
ROM_END
|
||||
|
||||
// TODO: many other KS0066 variants, documented in the datasheet
|
||||
|
||||
//**************************************************************************
|
||||
// live device
|
||||
@ -90,7 +97,6 @@ ROM_END
|
||||
hd44780_device::hd44780_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
|
||||
: hd44780_device(mconfig, HD44780, tag, owner, clock)
|
||||
{
|
||||
set_charset_type(CHARSET_HD44780_A00);
|
||||
}
|
||||
|
||||
hd44780_device::hd44780_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock)
|
||||
@ -107,34 +113,19 @@ hd44780_device::hd44780_device(const machine_config &mconfig, device_type type,
|
||||
{
|
||||
}
|
||||
|
||||
hd44780u_a00_device::hd44780u_a00_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
|
||||
hd44780_device(mconfig, HD44780U_A00, tag, owner, clock)
|
||||
hd44780u_device::hd44780u_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
|
||||
hd44780_device(mconfig, HD44780U, tag, owner, clock)
|
||||
{
|
||||
set_charset_type(CHARSET_HD44780U_A00);
|
||||
}
|
||||
|
||||
hd44780u_a02_device::hd44780u_a02_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
|
||||
hd44780_device(mconfig, HD44780U_A02, tag, owner, clock)
|
||||
sed1278_device::sed1278_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
|
||||
hd44780_device(mconfig, SED1278, tag, owner, clock)
|
||||
{
|
||||
set_charset_type(CHARSET_HD44780U_A02);
|
||||
}
|
||||
|
||||
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)
|
||||
ks0066_device::ks0066_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
|
||||
hd44780_device(mconfig, KS0066, tag, owner, clock)
|
||||
{
|
||||
set_charset_type(CHARSET_SED1278_0B);
|
||||
}
|
||||
|
||||
ks0066_f00_device::ks0066_f00_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
|
||||
hd44780_device(mconfig, KS0066_F00, tag, owner, clock)
|
||||
{
|
||||
set_charset_type(CHARSET_KS0066_F00);
|
||||
}
|
||||
|
||||
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)
|
||||
{
|
||||
set_charset_type(CHARSET_KS0066_F05);
|
||||
}
|
||||
|
||||
|
||||
@ -144,17 +135,22 @@ ks0066_f05_device::ks0066_f05_device(const machine_config &mconfig, const char *
|
||||
|
||||
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_HD44780U_A00: return ROM_NAME( hd44780u_a00 );
|
||||
case CHARSET_HD44780U_A02: return ROM_NAME( hd44780u_a02 );
|
||||
case CHARSET_SED1278_0B: return ROM_NAME( sed1278_0b );
|
||||
case CHARSET_KS0066_F00: return ROM_NAME( ks0066_f00 );
|
||||
case CHARSET_KS0066_F05: return ROM_NAME( ks0066_f05 );
|
||||
}
|
||||
return ROM_NAME(hd44780);
|
||||
}
|
||||
|
||||
return nullptr;
|
||||
const tiny_rom_entry *hd44780u_device::device_rom_region() const
|
||||
{
|
||||
return ROM_NAME(hd44780u);
|
||||
}
|
||||
|
||||
const tiny_rom_entry *sed1278_device::device_rom_region() const
|
||||
{
|
||||
return ROM_NAME(sed1278);
|
||||
}
|
||||
|
||||
const tiny_rom_entry *ks0066_device::device_rom_region() const
|
||||
{
|
||||
return ROM_NAME(ks0066);
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
@ -258,11 +254,6 @@ TIMER_CALLBACK_MEMBER(hd44780_device::blink_tick)
|
||||
// HELPERS
|
||||
//**************************************************************************
|
||||
|
||||
void hd44780_device::set_charset_type(int type)
|
||||
{
|
||||
m_charset_type = type;
|
||||
}
|
||||
|
||||
void hd44780_device::set_busy_flag(uint16_t usec)
|
||||
{
|
||||
m_busy_flag = true;
|
||||
|
@ -19,7 +19,12 @@
|
||||
#define HD44780_PIXEL_UPDATE(name) void name(bitmap_ind16 &bitmap, u8 line, u8 pos, u8 y, u8 x, int state)
|
||||
|
||||
|
||||
// ======================> hd44780_device
|
||||
// device type declarations
|
||||
DECLARE_DEVICE_TYPE(HD44780, hd44780_device)
|
||||
DECLARE_DEVICE_TYPE(HD44780U, hd44780u_device)
|
||||
DECLARE_DEVICE_TYPE(SED1278, sed1278_device)
|
||||
DECLARE_DEVICE_TYPE(KS0066, ks0066_device)
|
||||
|
||||
|
||||
class hd44780_device : public device_t
|
||||
{
|
||||
@ -55,43 +60,23 @@ public:
|
||||
protected:
|
||||
hd44780_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock);
|
||||
|
||||
// device-level overrides
|
||||
// device_t implementation
|
||||
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;
|
||||
|
||||
TIMER_CALLBACK_MEMBER(clear_busy_flag);
|
||||
TIMER_CALLBACK_MEMBER(blink_tick);
|
||||
|
||||
// charset
|
||||
enum
|
||||
{
|
||||
CHARSET_HD44780_A00,
|
||||
CHARSET_HD44780U_A00,
|
||||
CHARSET_HD44780U_A02,
|
||||
CHARSET_SED1278_0B,
|
||||
CHARSET_KS0066_F00,
|
||||
CHARSET_KS0066_F05 /*,
|
||||
CHARSET_HD44780U_A01,
|
||||
CHARSET_SED1278_0A,
|
||||
CHARSET_KS0066_F03,
|
||||
CHARSET_KS0066_F04,
|
||||
CHARSET_KS0066_F06,
|
||||
CHARSET_KS0066_F59
|
||||
*/
|
||||
};
|
||||
|
||||
virtual void control_write(u8 data);
|
||||
virtual u8 control_read();
|
||||
virtual void data_write(u8 data);
|
||||
virtual u8 data_read();
|
||||
|
||||
void set_charset_type(int type);
|
||||
|
||||
private:
|
||||
enum { DDRAM, CGRAM };
|
||||
|
||||
// internal helper
|
||||
void set_busy_flag(uint16_t usec);
|
||||
void correct_ac();
|
||||
@ -136,64 +121,50 @@ private:
|
||||
int m_rs_state;
|
||||
int m_rw_state;
|
||||
bool m_nibble;
|
||||
int m_charset_type;
|
||||
u8 m_render_buf[80 * 16];
|
||||
bool m_function_set_at_any_time;
|
||||
|
||||
enum { DDRAM, CGRAM };
|
||||
};
|
||||
|
||||
// ======================> hd44780u_a00_device
|
||||
|
||||
class hd44780u_a00_device : public hd44780_device
|
||||
class hd44780u_device : public hd44780_device
|
||||
{
|
||||
public:
|
||||
// construction/destruction
|
||||
hd44780u_a00_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
|
||||
hd44780u_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
|
||||
|
||||
static auto parent_rom_device_type() { return &HD44780; }
|
||||
|
||||
protected:
|
||||
// device_t implementation
|
||||
virtual const tiny_rom_entry *device_rom_region() const override;
|
||||
};
|
||||
|
||||
// ======================> hd44780u_a02_device
|
||||
|
||||
class hd44780u_a02_device : public hd44780_device
|
||||
class sed1278_device : public hd44780_device
|
||||
{
|
||||
public:
|
||||
// construction/destruction
|
||||
hd44780u_a02_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
|
||||
sed1278_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
|
||||
|
||||
static auto parent_rom_device_type() { return &HD44780; }
|
||||
|
||||
protected:
|
||||
// device_t implementation
|
||||
virtual const tiny_rom_entry *device_rom_region() const override;
|
||||
};
|
||||
|
||||
// ======================> sed1278_0b_device
|
||||
|
||||
class sed1278_0b_device : public hd44780_device
|
||||
class ks0066_device : public hd44780_device
|
||||
{
|
||||
public:
|
||||
// construction/destruction
|
||||
sed1278_0b_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
|
||||
ks0066_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
|
||||
|
||||
static auto parent_rom_device_type() { return &HD44780; }
|
||||
|
||||
protected:
|
||||
// device_t implementation
|
||||
virtual const tiny_rom_entry *device_rom_region() const override;
|
||||
};
|
||||
|
||||
// ======================> ks0066_f00_device
|
||||
|
||||
class ks0066_f00_device : public hd44780_device
|
||||
{
|
||||
public:
|
||||
// construction/destruction
|
||||
ks0066_f00_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
|
||||
};
|
||||
|
||||
// ======================> ks0066_f05_device
|
||||
|
||||
class ks0066_f05_device : public hd44780_device
|
||||
{
|
||||
public:
|
||||
// construction/destruction
|
||||
ks0066_f05_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
|
||||
};
|
||||
|
||||
// device type definition
|
||||
DECLARE_DEVICE_TYPE(HD44780, hd44780_device)
|
||||
DECLARE_DEVICE_TYPE(HD44780U_A00, hd44780u_a00_device)
|
||||
DECLARE_DEVICE_TYPE(HD44780U_A02, hd44780u_a02_device)
|
||||
DECLARE_DEVICE_TYPE(SED1278_0B, sed1278_0b_device)
|
||||
DECLARE_DEVICE_TYPE(KS0066_F00, ks0066_f00_device)
|
||||
DECLARE_DEVICE_TYPE(KS0066_F05, ks0066_f05_device)
|
||||
|
||||
#endif // MAME_VIDEO_HD44780_H
|
||||
|
@ -289,7 +289,9 @@ void avrmax_state::atm18mcc(machine_config &config)
|
||||
|
||||
// HD44780UA02 is required for certain international characters in cc2schach,
|
||||
// the others can optionally use a more standard HD44780[U]A00 display
|
||||
HD44780U_A02(config, m_lcd, 270'000); // TODO: clock not measured, datasheet typical clock used
|
||||
HD44780U(config, m_lcd, 270'000); // TODO: clock not measured, datasheet typical clock used
|
||||
m_lcd->set_default_bios_tag("a02");
|
||||
|
||||
config.set_default_layout(layout_atm18mcc);
|
||||
}
|
||||
|
||||
|
@ -124,7 +124,7 @@ private:
|
||||
|
||||
required_device<bt458_device> m_ramdac;
|
||||
memory_share_creator<u32> m_vram;
|
||||
required_device<ks0066_f00_device> m_lcdc;
|
||||
required_device<ks0066_device> m_lcdc;
|
||||
|
||||
required_shared_ptr<u32> m_3port_ram;
|
||||
memory_view m_boot;
|
||||
@ -478,11 +478,11 @@ void luna_88k_state_base::common_config(machine_config &config, XTAL clock)
|
||||
* 6 lcd rs
|
||||
* 7 lcd e
|
||||
*/
|
||||
m_pio[1]->in_pa_callback().set(m_lcdc, FUNC(ks0066_f00_device::db_r));
|
||||
m_pio[1]->out_pa_callback().set(m_lcdc, FUNC(ks0066_f00_device::db_w));
|
||||
m_pio[1]->out_pc_callback().append(m_lcdc, FUNC(ks0066_f00_device::rw_w)).bit(5);
|
||||
m_pio[1]->out_pc_callback().append(m_lcdc, FUNC(ks0066_f00_device::rs_w)).bit(6);
|
||||
m_pio[1]->out_pc_callback().append(m_lcdc, FUNC(ks0066_f00_device::e_w)).bit(7);
|
||||
m_pio[1]->in_pa_callback().set(m_lcdc, FUNC(ks0066_device::db_r));
|
||||
m_pio[1]->out_pa_callback().set(m_lcdc, FUNC(ks0066_device::db_w));
|
||||
m_pio[1]->out_pc_callback().append(m_lcdc, FUNC(ks0066_device::rw_w)).bit(5);
|
||||
m_pio[1]->out_pc_callback().append(m_lcdc, FUNC(ks0066_device::rs_w)).bit(6);
|
||||
m_pio[1]->out_pc_callback().append(m_lcdc, FUNC(ks0066_device::e_w)).bit(7);
|
||||
|
||||
|
||||
// TODO: crt timing control by HD6445CP4
|
||||
@ -492,7 +492,8 @@ void luna_88k_state_base::common_config(machine_config &config, XTAL clock)
|
||||
|
||||
BT458(config, m_ramdac, 108'992'000);
|
||||
|
||||
KS0066_F00(config, m_lcdc, 270'000); // TODO: clock not measured, datasheet typical clock used
|
||||
KS0066(config, m_lcdc, 270'000); // TODO: clock not measured, datasheet typical clock used
|
||||
m_lcdc->set_default_bios_tag("f00");
|
||||
m_lcdc->set_function_set_at_any_time(true);
|
||||
m_lcdc->set_lcd_size(2, 16);
|
||||
|
||||
@ -500,7 +501,7 @@ void luna_88k_state_base::common_config(machine_config &config, XTAL clock)
|
||||
|
||||
screen_device &lcd(SCREEN(config, "lcd", SCREEN_TYPE_LCD));
|
||||
lcd.set_raw(192'000, 40 * 6, 0, 16 * 6, 2 * 8, 0, 2 * 8);
|
||||
lcd.set_screen_update(m_lcdc, FUNC(ks0066_f00_device::screen_update));
|
||||
lcd.set_screen_update(m_lcdc, FUNC(ks0066_device::screen_update));
|
||||
lcd.set_palette(palette);
|
||||
}
|
||||
|
||||
|
@ -572,10 +572,12 @@ 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], 270'000); // TODO: clock not measured, datasheet typical clock used
|
||||
m_lcdc[0]->set_lcd_size(2, 40);
|
||||
KS0066_F05(config, m_lcdc[1], 270'000); // TODO: clock not measured, datasheet typical clock used
|
||||
m_lcdc[1]->set_lcd_size(2, 40);
|
||||
for (auto &lcdc : m_lcdc)
|
||||
{
|
||||
KS0066(config, lcdc, 270'000); // TODO: clock not measured, datasheet typical clock used
|
||||
lcdc->set_default_bios_tag("f05");
|
||||
lcdc->set_lcd_size(2, 40);
|
||||
}
|
||||
|
||||
/* video hardware */
|
||||
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD));
|
||||
|
@ -113,9 +113,11 @@ 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, 270'000); // TODO: Possibly wrong device type, needs confirmation; clock not measured, datasheet typical clock used
|
||||
KS0066(config, m_lcdc0, 270'000); // TODO: Possibly wrong device type, needs confirmation; clock not measured, datasheet typical clock used
|
||||
m_lcdc0->set_default_bios_tag("f05");
|
||||
m_lcdc0->set_lcd_size(4, 40);
|
||||
KS0066_F05(config, m_lcdc1, 270'000); // TODO: Possibly wrong device type, needs confirmation; clock not measured, datasheet typical clock used
|
||||
KS0066(config, m_lcdc1, 270'000); // TODO: Possibly wrong device type, needs confirmation; clock not measured, datasheet typical clock used
|
||||
m_lcdc1->set_default_bios_tag("f05");
|
||||
m_lcdc1->set_lcd_size(4, 40);
|
||||
|
||||
RAM(config, RAM_TAG).set_default_size("256K");
|
||||
|
@ -279,7 +279,8 @@ void consoemt_state::consoemt(machine_config &config)
|
||||
|
||||
PALETTE(config, "palette", FUNC(consoemt_state::consoemt_palette), 3);
|
||||
|
||||
KS0066_F05(config, m_lcdc, 270'000); // TODO: clock not measured, datasheet typical clock used
|
||||
KS0066(config, m_lcdc, 270'000); // TODO: clock not measured, datasheet typical clock used
|
||||
m_lcdc->set_default_bios_tag("f05");
|
||||
m_lcdc->set_lcd_size(2, 20);
|
||||
m_lcdc->set_pixel_update_cb(FUNC(consoemt_state::lcd_pixel_update));
|
||||
}
|
||||
|
@ -172,7 +172,8 @@ void eurit_state::eurit30(machine_config &config)
|
||||
|
||||
PALETTE(config, "palette", FUNC(eurit_state::palette_init), 2);
|
||||
|
||||
hd44780_device &lcdc(SED1278_0B(config, "lcdc", 250'000)); // TODO: clock not measured, datasheet typical clock used
|
||||
hd44780_device &lcdc(SED1278(config, "lcdc", 250'000)); // TODO: clock not measured, datasheet typical clock used
|
||||
lcdc.set_default_bios_tag("0b");
|
||||
lcdc.set_lcd_size(2, 20);
|
||||
lcdc.set_pixel_update_cb(FUNC(eurit_state::lcd_pixel_update));
|
||||
}
|
||||
|
@ -40,6 +40,7 @@ Video PCB:
|
||||
|
||||
#include "emu.h"
|
||||
|
||||
#include "taitoio_opto.h"
|
||||
#include "taitosnd.h"
|
||||
|
||||
#include "cpu/m68000/tmp68301.h"
|
||||
@ -48,8 +49,6 @@ Video PCB:
|
||||
#include "sound/okim6295.h"
|
||||
#include "sound/ymopn.h"
|
||||
|
||||
#include "taitoio_opto.h"
|
||||
|
||||
#include "emupal.h"
|
||||
#include "screen.h"
|
||||
#include "speaker.h"
|
||||
@ -315,7 +314,7 @@ void pkspirit_state::pkspirit(machine_config &config)
|
||||
m_mainio->in_port3_cb().set_ioport("IN3");
|
||||
m_mainio->in_port4_cb().set_ioport("IN4");
|
||||
|
||||
for (auto & opto : m_opto)
|
||||
for (auto &opto : m_opto)
|
||||
TAITOIO_OPTO(config, opto, 0);
|
||||
|
||||
// video hardware
|
||||
|
@ -40,6 +40,8 @@
|
||||
|
||||
#include "emu.h"
|
||||
|
||||
#include "taitoio_opto.h"
|
||||
|
||||
#include "cpu/z80/z80.h"
|
||||
#include "machine/tc009xlvc.h"
|
||||
#include "machine/te7750.h"
|
||||
@ -48,8 +50,6 @@
|
||||
#include "sound/okim6295.h"
|
||||
#include "sound/ymopn.h"
|
||||
|
||||
#include "taitoio_opto.h"
|
||||
|
||||
#include "screen.h"
|
||||
#include "speaker.h"
|
||||
|
||||
|
@ -45,6 +45,7 @@ Notes:
|
||||
|
||||
#include "emu.h"
|
||||
|
||||
#include "taitoio_opto.h"
|
||||
#include "tc0080vco.h"
|
||||
|
||||
#include "cpu/m68000/m68000.h"
|
||||
@ -55,8 +56,6 @@ Notes:
|
||||
#include "machine/watchdog.h"
|
||||
#include "sound/ymopn.h"
|
||||
|
||||
#include "taitoio_opto.h"
|
||||
|
||||
#include "emupal.h"
|
||||
#include "screen.h"
|
||||
#include "speaker.h"
|
||||
@ -96,13 +95,13 @@ private:
|
||||
required_device_array<taitoio_opto_device, 2> m_opto;
|
||||
required_device<hopper_device> m_hopper;
|
||||
|
||||
u16 m_hoppff = 0x0000;
|
||||
|
||||
u32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
TIMER_DEVICE_CALLBACK_MEMBER(interrupt);
|
||||
u32 draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, u32 start_offset);
|
||||
void prg_map(address_map &map);
|
||||
void taitoo_hopper_int_cb(int state);
|
||||
|
||||
u16 m_hoppff = 0x0000;
|
||||
};
|
||||
|
||||
|
||||
@ -377,7 +376,7 @@ void taitoo_state::taitoo(machine_config &config)
|
||||
|
||||
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
|
||||
|
||||
for (auto & opto : m_opto)
|
||||
for (auto &opto : m_opto)
|
||||
TAITOIO_OPTO(config, opto, 0);
|
||||
|
||||
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
|
||||
|
@ -745,6 +745,7 @@ void pc2000_state::pc2000gen(machine_config &config)
|
||||
void pc2000_state::pc2000(machine_config &config)
|
||||
{
|
||||
pc2000gen(config);
|
||||
|
||||
HD44780(config, m_lcdc, 250'000); // TODO: clock not measured, datasheet typical clock used
|
||||
m_lcdc->set_lcd_size(2, 20);
|
||||
}
|
||||
@ -752,7 +753,9 @@ void pc2000_state::pc2000(machine_config &config)
|
||||
void pc2000_state::pc2000eur(machine_config &config)
|
||||
{
|
||||
pc2000gen(config);
|
||||
SED1278_0B(config, m_lcdc, 250'000); // TODO: clock not measured, datasheet typical clock used
|
||||
|
||||
SED1278(config, m_lcdc, 250'000); // TODO: clock not measured, datasheet typical clock used
|
||||
m_lcdc->set_default_bios_tag("0b");
|
||||
m_lcdc->set_lcd_size(2, 20);
|
||||
}
|
||||
|
||||
|
@ -275,7 +275,8 @@ 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, 270'000); // TODO: clock not measured, datasheet typical clock used
|
||||
KS0066(config, m_lcdc, 270'000); // TODO: clock not measured, datasheet typical clock used
|
||||
m_lcdc->set_default_bios_tag("f05");
|
||||
m_lcdc->set_lcd_size(2, 40);
|
||||
|
||||
/* video hardware */
|
||||
|
Loading…
Reference in New Issue
Block a user