Mike McBike @ Home / Arcade Reps Teil 5 / Sidam Invasion


{Sidam Invasion} Ein Space Invaders Bootleg-Nachbau von Sidam. Gibt es auch als "Space Attack" von Lich. Allen gemeinsam: drei Logikversorgungsspannungen (+5V/-5V/+12V), 2708 EPROMs, 8080 CPU und anfällige TMS4060 RAMs... In diesem Fall ist die PCB tot. Takt geht, aber die CPU ist an Daten- und Adressbus hochohmig. Reset ist aus, andere Signale muss ich testen, vielleicht stimmt was mit dem HALT-Signal nicht. Ach ja, der WDT macht alle 4s einen braven RESET, dann zucken mal kurz die Adressleitungen...

Sidam hat solide PCBs gebaut. Übersichtliches Layout, gutes Platinenmaterial, wertige Bauteile:

Invasion

Diese hier sieht aus, wie frisch aus dem Laden. So ein Anblick ist selten. Selbst der Audio-AMP ist teuer verkühlkörpert!

Invasion

Der klassische Sidam-Kühlkörper für die vier Linearregler (2x7805, 7905 und 7812) - danach gut kopiert von Proel...

Invasion

Technik, die begeistert: 8080 und 2708... nicht gerade einfach zu ersetzen.

Invasion

Ich messe mich an der Sidam noch zu Tode... Vielleicht kann mir mal jemand 8080 erklären, diese Prozessorgeneration scheint nicht ganz trivial zu sein. Nach dem Start der PCB steht das Ready-Signal des Prozessors stabil auf High. Das sollte so nicht sein. Leider entspricht der Aufbau der Sidam PCB in keinster Weise weder dem Original (Taito), noch der Kopie (Lich). Also darf ich mir einen Wolf(gang) suchen...

Invasion

Die Russen sind da - hat schon Meister Eckart gestammelt... Auch bei mir sind sie eingezogen, in Form von billigen 8080 CPU-Clones: KP580BM80A oder auf Lateinisch KR580VM80A.

Invasion

Die auf dem Seziertisch liegende Invasion macht mich irre und ich will testen, ob es am Prozessor liegt... 8080 sind jetzt nicht so häufig, daher hatte ich mir mal die Russen kommen lassen. Hier mal im Vergleich:

Invasion

Moment... da stimmt doch was nicht - das Teil geht nicht richtig in den Sockel...

Invasion

Argh... die Russen haben wohl noch nie was von Zoll gehört, oder? Der Pinabstand ist hier nicht 2,54mm, sondern glatte 2,50mm. Mit etwas Vorsicht geht ein 40poliges IC gerade so rein, aber kontaktsicher geht anders. An der CPU liegt's übrigens nicht, die Symptome der Invasion ändern sich nicht...

Das Bild sieht nach dem Einschalten so aus: keinerlei Initialisierungsablauf, der Prozessor legt sich sofort tot.

Invasion

Wenn man ganz viel Glück hat, dann tut das System nach einer der vielen Watchdog-Resets sogar kurz was:

Invasion

Phänomenal: wenn ich alle EPROMs ausstecke, dann läuft zwar kein Programm ab, aber der Prozessor rödelt brav vor sich hin. Wenn ich alle EPROMs außer #0 stecken lasse, dann ebenso.
Wenn #0 auf Platz #0 steckt, dann ist die CPU tot.
Wenn #1 auf Platz #0 und #0 auf Platz #1 stecken, danm läuft die CPU...
Vermutung: EPROM #0 ist korrupt. Kann ein falscher OP-Code die CPU in den Wartemodus zwingen?

Nächster Schritt: 2716 Ersatz brennen und testen...
Was auch nichts gebracht hat. Oh je...


{Weiter geht's} Das probehalber neu gebrannte ROM0 (2716 adaptiert auf 2708) hat leider nichts gebracht.

Invasion

Das Verhalten ändert sich nicht. Jetzt muss ich in's Detail gehen... Daten und Adressbusse durchklingeln. Der Prozessor macht nach einem RESET genau neun Zugriffe auf Speicherstellen. Getriggert auf den Pin DBIN kann man das gut erkennen. Hier der Adressbus (ein Bit):

Invasion

Hier der Datenbus:

Invasion

Nun ist Fleißarbeit angesagt: 8 Datenbuspins und 16 Adressbuspins aufnehmen und dann händisch in Hex umwandeln:

Invasion

Ja, ich hätte auch den Logikanalysator nehmen können, aber das waren einfach zu wenige Bits... Das Ergebnis korrespondiert (nach Korrektur des Fehlers in Byte 0 FB-->DB)mit dem Hexdump vom MAME-ROM. Ein Blick in das 8080 Datenbuch ermöglicht ein Disassemblieren:

0000 IN 03
0002 AND 02
0004 JZ 18D4
0007 HLT

Gelesen wird also zu Beginn die I/O Adresse 03, dann wird Bit 1 maskiert und wenn das nicht "1" ist, dann wird nach Adresse 18D4 gesprungen. Ansonsten macht der 8080 HALT und legt sich schlafen. Genau das, was er gerade immer macht. Was ist auf I/O-Adresse 03? Laut MAME Sourcecode irgendwas mit dem Grafik-Schieberegister. Da der Sidam-Aufbau völlig anders ist, als die Vorgänger-PCBs, muss ich wieder suchen - und als nächsten Schritt mal die Bitabfrage aus-NOP-en.


{Noch weiter geht's:} Was für ein Drecksteil... ;-) Als Erstes habe ich mal die Bitmaske auf "immer richtig" geändert. X and 0 ist immer Null.

Invasion

Dann endlich mal einen sauberen 2708-zu-2716-Adapter gebastelt:

Invasion

In Betrieb genommen:

Invasion

Wow - Huston, wir haben ein Bild!

Invasion

Danach allerdings wieder Stille im Digitalwalde... das gleichmäßige Muster am Adressbuss lässt eine Endlosschleife vermuten:

Invasion

Wieder mit der Hand am Arm Daten- und Adressbus durchgeklingelt und disassembliert:

Invasion

WTF! Jetzt fragt er auf Adresse 0x03 das dritte Bit ab... Ich muss unbedingt rausfinden, wo auf dieser blöden Platine I/O-Adresse 3 ist... 8080 ist nicht trivial, I/O-Zugriffe haben keinen eigenen Pin, der das anzeigen würde. Die in den Büchern beschriebenen IN- und OUT-Signale werden erst mühsam generiert, weil der Prozessor während der ersten OP-Code-Microzyklen ein Statuswort auf den Datenbus legt, welches man mit dem SYNC-Pin latchen kann. Daraus kann man dann entnehmen, ob ein I/O Zugriff stattfindet. Die Logik dafür muss ich jetzt auf der Platine suchen, für die ja bekanntlich kein Schaltplan existiert...


© 2013 - 2018 · W. Robel e-Mail senden