summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/machine
diff options
context:
space:
mode:
author Paul-Arnold <98924583+Paul-Arnold@users.noreply.github.com>2022-04-29 20:05:56 +0100
committer GitHub <noreply@github.com>2022-04-30 05:05:56 +1000
commit93ff10cab0901f8d7d2200789b8ac9e37902cff2 (patch)
tree36e61d1a82a055108b3702dbd5556876b30934a8 /src/mame/machine
parent90f166da8fdfd09006e7569c495bc91af8436a48 (diff)
Added FIXME comments to badly behaved I2C target devices, (#9648)
* I2C slaves should only ACK their own device-id and NAK all others. * SDA output should only change state while clock is low. * Idle state of SDA must be high.
Diffstat (limited to 'src/mame/machine')
-rw-r--r--src/mame/machine/zs01.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/mame/machine/zs01.cpp b/src/mame/machine/zs01.cpp
index 5edfbe60e94..d3b07ea9312 100644
--- a/src/mame/machine/zs01.cpp
+++ b/src/mame/machine/zs01.cpp
@@ -378,6 +378,8 @@ WRITE_LINE_MEMBER( zs01_device::write_scl )
break;
case STATE_LOAD_COMMAND:
+ // FIXME: Processing on the rising edge of the clock causes sda to change state while clock is high
+ // which is not allowed. Also need to ensure that only valid device-id's and commands are acknowledged.
if( m_scl == 0 && state != 0 )
{
if( m_bit < 8 )
@@ -542,6 +544,8 @@ WRITE_LINE_MEMBER( zs01_device::write_scl )
break;
case STATE_READ_DATA:
+ // FIXME: Processing on the rising edge of the clock causes sda to change state while clock is high
+ // which is not allowed.
if( m_scl == 0 && state != 0 )
{
if( m_bit < 8 )