mirror of
https://github.com/holub/mame
synced 2025-06-08 13:53:52 +03:00
added HLCD0530 device (nw)
This commit is contained in:
parent
dbb99ce29f
commit
13ba56b464
@ -2,10 +2,11 @@
|
|||||||
// copyright-holders:hap
|
// copyright-holders:hap
|
||||||
/*
|
/*
|
||||||
|
|
||||||
Hughes HLCD 0515/0569 LCD Driver
|
Hughes HLCD 0515 family LCD Driver
|
||||||
|
|
||||||
0515: 25 columns(also size of buffer/ram)
|
0515: 25 columns(also size of buffer/ram)
|
||||||
0569: 24 columns, no DATA OUT pin, display blank has no effect
|
0569: 24 columns, no DATA OUT pin, display blank has no effect
|
||||||
|
0530: specifications unknown, pinout seems similar to 0569
|
||||||
|
|
||||||
TODO:
|
TODO:
|
||||||
- read mode is untested
|
- read mode is untested
|
||||||
@ -19,6 +20,7 @@
|
|||||||
|
|
||||||
DEFINE_DEVICE_TYPE(HLCD0515, hlcd0515_device, "hlcd0515", "Hughes HLCD 0515 LCD Driver")
|
DEFINE_DEVICE_TYPE(HLCD0515, hlcd0515_device, "hlcd0515", "Hughes HLCD 0515 LCD Driver")
|
||||||
DEFINE_DEVICE_TYPE(HLCD0569, hlcd0569_device, "hlcd0569", "Hughes HLCD 0569 LCD Driver")
|
DEFINE_DEVICE_TYPE(HLCD0569, hlcd0569_device, "hlcd0569", "Hughes HLCD 0569 LCD Driver")
|
||||||
|
DEFINE_DEVICE_TYPE(HLCD0530, hlcd0530_device, "hlcd0530", "Hughes HLCD 0530 LCD Driver")
|
||||||
|
|
||||||
//-------------------------------------------------
|
//-------------------------------------------------
|
||||||
// constructor
|
// constructor
|
||||||
@ -41,6 +43,11 @@ hlcd0569_device::hlcd0569_device(const machine_config &mconfig, const char *tag,
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
hlcd0530_device::hlcd0530_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
|
||||||
|
: hlcd0515_device(mconfig, HLCD0530, tag, owner, clock, 24)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//-------------------------------------------------
|
//-------------------------------------------------
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
// copyright-holders:hap
|
// copyright-holders:hap
|
||||||
/*
|
/*
|
||||||
|
|
||||||
Hughes HLCD 0515/0569 LCD Driver
|
Hughes HLCD 0515 family LCD Driver
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -14,29 +14,27 @@
|
|||||||
// pinout reference
|
// pinout reference
|
||||||
|
|
||||||
/*
|
/*
|
||||||
____ ____
|
____ ____ ____ ____
|
||||||
ROW0 1 |* \_/ | 40 VDD
|
ROW0 1 |* \_/ | 40 VDD ROW0 1 |* \_/ | 40 VDD
|
||||||
ROW1 2 | | 39 OSC
|
ROW1 2 | | 39 OSC ROW1 2 | | 39 VDRIVE?
|
||||||
ROW2 3 | | 38 CLOCK
|
ROW2 3 | | 38 CLOCK ROW2 3 | | 38 OSC
|
||||||
ROW3 4 | | 37 DATA IN
|
ROW3 4 | | 37 DATA IN ROW3 4 | | 37 CLOCK
|
||||||
ROW4 5 | | 36 _CS
|
ROW4 5 | | 36 _CS ROW4 5 | | 36 DATA IN
|
||||||
ROW5 6 | | 35 DATA OUT
|
ROW5 6 | | 35 DATA OUT ROW5 6 | | 35 _CS
|
||||||
ROW6 7 | | 34 COL25
|
ROW6 7 | | 34 COL25 ROW6 7 | | 34 OSC OUT?
|
||||||
ROW7 8 | | 33 COL24
|
ROW7 8 | | 33 COL24 ROW7 8 | | 33 COL24
|
||||||
COL1 9 | | 32 COL23
|
COL1 9 | | 32 COL23 COL1 9 | | 32 COL23
|
||||||
COL2 10 | HLCD 0515 | 31 COL22
|
COL2 10 | HLCD 0515 | 31 COL22 COL2 10 | HLCD 0569 | 31 COL22
|
||||||
COL3 11 | | 30 COL21
|
COL3 11 | | 30 COL21 COL3 11 | | 30 COL21
|
||||||
COL4 12 | | 29 COL20
|
COL4 12 | | 29 COL20 COL4 12 | | 29 COL20
|
||||||
COL5 13 | | 28 COL19
|
COL5 13 | | 28 COL19 COL5 13 | | 28 COL19
|
||||||
COL6 14 | | 27 COL18
|
COL6 14 | | 27 COL18 COL6 14 | | 27 COL18
|
||||||
COL7 15 | | 26 COL17
|
COL7 15 | | 26 COL17 COL7 15 | | 26 COL17
|
||||||
COL8 16 | | 25 COL16
|
COL8 16 | | 25 COL16 COL8 16 | | 25 COL16
|
||||||
COL9 17 | | 24 COL15
|
COL9 17 | | 24 COL15 COL9 17 | | 24 COL15
|
||||||
COL10 18 | | 23 COL14
|
COL10 18 | | 23 COL14 COL10 18 | | 23 COL14
|
||||||
COL11 19 | | 22 COL13
|
COL11 19 | | 22 COL13 COL11 19 | | 22 COL13
|
||||||
GND 20 |___________| 21 COL12
|
GND 20 |___________| 21 COL12 GND 20 |___________| 21 COL12
|
||||||
|
|
||||||
HLCD 0569 doesn't have DATA OUT, instead it has what seems like OSC OUT on pin 34.
|
|
||||||
|
|
||||||
OSC is tied to a capacitor, the result frequency is 50000 * cap(in uF), eg. 0.01uF cap = 500Hz.
|
OSC is tied to a capacitor, the result frequency is 50000 * cap(in uF), eg. 0.01uF cap = 500Hz.
|
||||||
Internally, this is divided by 2, and by number of rows to get display refresh frequency.
|
Internally, this is divided by 2, and by number of rows to get display refresh frequency.
|
||||||
@ -106,8 +104,15 @@ protected:
|
|||||||
virtual void set_control() override;
|
virtual void set_control() override;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class hlcd0530_device : public hlcd0515_device
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
hlcd0530_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
DECLARE_DEVICE_TYPE(HLCD0515, hlcd0515_device)
|
DECLARE_DEVICE_TYPE(HLCD0515, hlcd0515_device)
|
||||||
DECLARE_DEVICE_TYPE(HLCD0569, hlcd0569_device)
|
DECLARE_DEVICE_TYPE(HLCD0569, hlcd0569_device)
|
||||||
|
DECLARE_DEVICE_TYPE(HLCD0530, hlcd0530_device)
|
||||||
|
|
||||||
#endif // MAME_VIDEO_HLCD0515_H
|
#endif // MAME_VIDEO_HLCD0515_H
|
||||||
|
@ -1665,8 +1665,8 @@ MACHINE_CONFIG_END
|
|||||||
/***************************************************************************
|
/***************************************************************************
|
||||||
|
|
||||||
Mattel Computer Gin
|
Mattel Computer Gin
|
||||||
* NEC uCOM-43 MCU, label D650C 060
|
* NEC uCOM-43 MCU, label D650C 060 (die label same)
|
||||||
* Hughes HLCD0569 LCD driver, 5 by 14 segments LCD panel, no sound
|
* Hughes HLCD0530 LCD driver, 5 by 14 segments LCD panel, no sound
|
||||||
|
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
@ -1678,7 +1678,7 @@ public:
|
|||||||
m_lcd(*this, "lcd")
|
m_lcd(*this, "lcd")
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
required_device<hlcd0569_device> m_lcd;
|
required_device<hlcd0530_device> m_lcd;
|
||||||
|
|
||||||
DECLARE_WRITE32_MEMBER(lcd_output_w);
|
DECLARE_WRITE32_MEMBER(lcd_output_w);
|
||||||
DECLARE_WRITE8_MEMBER(lcd_w);
|
DECLARE_WRITE8_MEMBER(lcd_w);
|
||||||
@ -1689,7 +1689,7 @@ public:
|
|||||||
WRITE32_MEMBER(mcompgin_state::lcd_output_w)
|
WRITE32_MEMBER(mcompgin_state::lcd_output_w)
|
||||||
{
|
{
|
||||||
// uses ROW0-4, COL11-24
|
// uses ROW0-4, COL11-24
|
||||||
display_matrix(26, 8, data, 1 << offset);
|
display_matrix(24, 8, data, 1 << offset);
|
||||||
}
|
}
|
||||||
|
|
||||||
WRITE8_MEMBER(mcompgin_state::lcd_w)
|
WRITE8_MEMBER(mcompgin_state::lcd_w)
|
||||||
@ -1721,13 +1721,13 @@ INPUT_PORTS_END
|
|||||||
static MACHINE_CONFIG_START( mcompgin )
|
static MACHINE_CONFIG_START( mcompgin )
|
||||||
|
|
||||||
/* basic machine hardware */
|
/* basic machine hardware */
|
||||||
MCFG_CPU_ADD("maincpu", NEC_D650, 400000) // approximation
|
MCFG_CPU_ADD("maincpu", NEC_D650, XTAL_400kHz) // TDK FCR400K
|
||||||
MCFG_UCOM4_READ_A_CB(IOPORT("IN.0"))
|
MCFG_UCOM4_READ_A_CB(IOPORT("IN.0"))
|
||||||
MCFG_UCOM4_READ_B_CB(IOPORT("IN.1"))
|
MCFG_UCOM4_READ_B_CB(IOPORT("IN.1"))
|
||||||
MCFG_UCOM4_WRITE_E_CB(WRITE8(mcompgin_state, lcd_w))
|
MCFG_UCOM4_WRITE_E_CB(WRITE8(mcompgin_state, lcd_w))
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MCFG_DEVICE_ADD("lcd", HLCD0569, 1000) // C=?
|
MCFG_DEVICE_ADD("lcd", HLCD0530, 500) // C=0.01uF
|
||||||
MCFG_HLCD0515_WRITE_COLS_CB(WRITE32(mcompgin_state, lcd_output_w))
|
MCFG_HLCD0515_WRITE_COLS_CB(WRITE32(mcompgin_state, lcd_output_w))
|
||||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_ucom4_state, display_decay_tick, attotime::from_msec(1))
|
MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_ucom4_state, display_decay_tick, attotime::from_msec(1))
|
||||||
MCFG_DEFAULT_LAYOUT(layout_mcompgin)
|
MCFG_DEFAULT_LAYOUT(layout_mcompgin)
|
||||||
|
Loading…
Reference in New Issue
Block a user