hd6301: fix timer 2 serial clock

This commit is contained in:
hap 2023-12-18 00:39:40 +01:00
parent 65317f9a47
commit 3a508a1497
4 changed files with 7 additions and 11 deletions

View File

@ -2084,14 +2084,12 @@ void hd6301x_cpu_device::increment_t2cnt(int amount)
if (BIT(m_rmcr, 5) && !m_use_ext_serclock)
{
if (m_ext_serclock + amount >= 32)
m_ext_serclock++;
if (m_ext_serclock >= 32)
{
m_ext_serclock = (m_ext_serclock + amount) % 32;
serial_transmit();
serial_receive();
m_ext_serclock = 0;
machine().scheduler().synchronize(timer_expired_delegate(FUNC(hd6301x_cpu_device::sci_tick), this));
}
else
m_ext_serclock += amount;
}
m_tcsr3 |= 0x80;

View File

@ -11,7 +11,6 @@ NVRAM won't work properly (supremo doesn't have NVRAM).
TODO:
- if/when MAME supports an exit callback, hook up nsnova power-off switch to that
- serial port isn't working, same problem as nsvip
- unmapped reads from 0x33/0x34 (nsnova) or 0x3c/0x3d (supremo)
- supremo unmapped writes to 0x2000/0x6000, always 0?
- is "Aquamarine / Super Nova" the same rom as nsnova and just a redesign?

View File

@ -26,8 +26,7 @@ The LCD is the same as the one in Primo / Supremo / Super Nova.
TODO:
- if/when MAME supports an exit callback, hook up power-off switch to that
- serial port isn't working, MCU emulation problem? (it has nothing to do with
the distributor box, that's just a dumb expander)
- serial port isn't working for nsvip V1.x? it only sends empty chars
- unmapped reads from 0x3* range, same as snova driver
- is (non-super) VIP on the same hardware? minus EPROM or RS232
@ -138,7 +137,7 @@ u8 svip_state::p2_r()
if (m_inp_mux & m_inputs[i]->read())
data |= 0x20 << i;
return ~data;
return ~data ^ 8;
}
void svip_state::p2_w(u8 data)

View File

@ -23,7 +23,7 @@ TODO:
and says "Sixteen Level Computerized Chess"
Hardware notes:
- HD6301Y0 MCU, 8MHz or 12MHz (LC osc, no XTAL)
- Hitachi HD6301Y0P/F MCU, 8MHz or 12MHz (LC osc, no XTAL)
- 16 board LEDs (can be tri-color), 7 or 8 status LEDs
- buttons sensor board, piezo