was able to find what is going on. Looks like all of this logic is used to deal with serial protocol of SIM cards.
I wonder why they just didn't replace all of it with single small CPLD like they did for Sega vesion:
Now some Bonza card would be neccessary to find out what is transferred here and there (I guess they are interchangeable over different consoles?)
Code: Select all
SIM1 = small card on top side that contains backup of credits and some demos (?)
SIM2 = big card on bottom side that contains credits
=============================== $5000 (W) ===============================
At the beginning of CPU cycle, SIM1's & SIM2's CCVCC will be set to +5V
76543210
[CcrdD.cd] @
||||| |+-- value to be written to SIM2 CCIO (when $5000.3 == 1)
||||| +--- SIM2 CCCLK latch
||||+----- SIM1/2 CCCIO data direction (0=from card, 1=to card)
|||+------ value to be written to SIM1 CCIO (when $5000.3 == 1)
||+------- SIM1 CCRST latch
|+-------- SIM1 CCCLK latch
+--------- what drives SIM2 CCCLK: 0=$5000.1, 1=$5000.1 AND /M2
=============================== $5000 (R) ===============================
At the beginning of CPU cycle, SIM1's & SIM2's CCVCC will be set to +5V
76543210
[jd.....d] @
|| +- value from SIM2 CCIO (when $5000.3 == 1)
|+------- value from SIM1 CCIO (when $5000.3 == 1)
+-------- value from SIM2 detector (when $5000.3 == 1): 0=card present, 1=no card
=============================== $6000 (R/W) ===============================
At the beginning of CPU cycle, SIM2's CCVCC will be set to 0V
=============================== $7000 (R/W) ===============================
At the beginning of CPU cycle, SIM1's CCVCC will be set to 0V
==========================================================================