mirror of
https://github.com/holub/mame
synced 2025-06-07 05:13:46 +03:00
New working machine added
---------- Computer Chess (Mattel) [hap, Sean Riddle]
This commit is contained in:
parent
8fa2629a7e
commit
070f179694
@ -9,9 +9,6 @@
|
|||||||
0530: specifications unknown, pinout seems similar to 0569
|
0530: specifications unknown, pinout seems similar to 0569
|
||||||
0601: specifications unknown, pinout seems similar to 0569
|
0601: specifications unknown, pinout seems similar to 0569
|
||||||
|
|
||||||
TODO:
|
|
||||||
- read mode is untested
|
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "emu.h"
|
#include "emu.h"
|
||||||
@ -129,7 +126,13 @@ void hlcd0515_device::set_control()
|
|||||||
}
|
}
|
||||||
|
|
||||||
// clock 4: read/write mode
|
// clock 4: read/write mode
|
||||||
m_buffer = (m_control & 1) ? m_ram[m_rowsel] : 0;
|
if (m_control & 1)
|
||||||
|
{
|
||||||
|
m_buffer = m_ram[m_rowsel];
|
||||||
|
clock_data(-1);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
m_buffer = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void hlcd0569_device::set_control()
|
void hlcd0569_device::set_control()
|
||||||
@ -143,11 +146,11 @@ void hlcd0515_device::clock_data(int col)
|
|||||||
{
|
{
|
||||||
if (m_control & 1)
|
if (m_control & 1)
|
||||||
{
|
{
|
||||||
if (col < m_colmax)
|
m_dataout = m_buffer & 1;
|
||||||
m_buffer <<= 1;
|
|
||||||
|
|
||||||
m_dataout = m_buffer >> m_colmax & 1;
|
|
||||||
m_write_data(m_dataout);
|
m_write_data(m_dataout);
|
||||||
|
|
||||||
|
if (col < m_colmax)
|
||||||
|
m_buffer >>= 1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -11,8 +11,6 @@ Hardware notes:
|
|||||||
- custom LCD screen with chess squares background
|
- custom LCD screen with chess squares background
|
||||||
|
|
||||||
TODO:
|
TODO:
|
||||||
- It goes bonkers at computer's turn, it reads from LCD RAM and seems it doesn't
|
|
||||||
get the data it expects
|
|
||||||
- add SAVE switch
|
- add SAVE switch
|
||||||
- internal artwork
|
- internal artwork
|
||||||
|
|
||||||
@ -120,8 +118,8 @@ WRITE8_MEMBER(mchess_state::lcd_w)
|
|||||||
// d5: both LCDC DATA IN
|
// d5: both LCDC DATA IN
|
||||||
for (int i = 0; i < 2; i++)
|
for (int i = 0; i < 2; i++)
|
||||||
{
|
{
|
||||||
m_lcd[i]->clock_w(BIT(data, 4));
|
|
||||||
m_lcd[i]->data_w(BIT(data, 5));
|
m_lcd[i]->data_w(BIT(data, 5));
|
||||||
|
m_lcd[i]->clock_w(BIT(~data, 4));
|
||||||
}
|
}
|
||||||
|
|
||||||
m_lcd_control = data;
|
m_lcd_control = data;
|
||||||
@ -216,4 +214,4 @@ ROM_END
|
|||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
|
|
||||||
// YEAR NAME PARENT CMP MACHINE INPUT CLASS INIT COMPANY, FULLNAME, FLAGS
|
// YEAR NAME PARENT CMP MACHINE INPUT CLASS INIT COMPANY, FULLNAME, FLAGS
|
||||||
CONS( 1980, mchess, 0, 0, mchess, mchess, mchess_state, empty_init, "Mattel", "Computer Chess (Mattel)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW | MACHINE_NOT_WORKING )
|
CONS( 1980, mchess, 0, 0, mchess, mchess, mchess_state, empty_init, "Mattel", "Computer Chess (Mattel)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW )
|
||||||
|
Loading…
Reference in New Issue
Block a user