Forum: Mikrocontroller und Digitale Elektronik EPROM "Versatz"


von Oliver L. (ollil)


Angehängte Dateien:

Lesenswert?

Hallo,

ich habe hier EPROMs aus einem 16 Bit System aus ca. 1983. mit High und 
Low getrennten EPROMs.
Ich habe ebenfalls EPROM Images eines etwas neueren Systems, habe daher 
die Möglichkeit einige Dinge zu verifizieren. Hat schonmal jemand solch 
einen EPROM-Versatz wie im Anhang gesehen? In u77.bin (i2732) scheinen 
einige Bytes doppelt zu sein bzw. einige Dinge versetzt zu sein (so 
verwendet ergeben sie keine gültigen OPCodes) - ich habe es einmal 
versucht grafisch darzustellen.

Woran könnte das liegen? Gibt es Möglichkeiten den EPROM doch noch 
irgendwie auszulesen? Kann man mit den Spannungen evtl. ein wenig 
spielen? Es gibt quasi nur noch diese eine Version.......

Grüße

von Rene Z. (rzimmermann)


Lesenswert?

In deiner Grafik sehe ich nicht durch. Aber was ist wenn Daten- und/oder 
Adressleitungen vertauscht sind. Gruß Rene

von H.Joachim S. (crazyhorse)


Lesenswert?

Ich habe mich nicht getraut, dass zu schreiben :-)

von michael_ (Gast)


Lesenswert?

Meinst du das mit dem Abbild und dem unklaren Geschreibsel oder den 
vertauschten Adressen?
Was für ein Prozessor ist es denn? OPCode?
Ein Hex-Dump wäre evtl. besser.

von Oliver Lehmann (Gast)


Lesenswert?

MH.. Ich dachte echt das die Grafik klar ist.. .

Links Soldaten, daneben mbemonics

Dann kommt die adressspalte des eproms u77 + die dazugehörigen Daten.

Dann kommen die Daten des HIGH eproms und daneben die Adresse.

Ist der soll opcode ed06, steht in dem einen EPROM also ed, und in dem 
anderen e6.

Die rot markierten Zellen sind falsche Daten im EPROM an falscher 
stelle. Wie man sieht sind es Wiederholungen oder noch folgende Daten.

Der content des eproms ist also von oben nach unten zu lesen.

Wüsste jetzt auch nicht was zwei 4k dumps helfen sollen ohne gegenüber 
zu stellen wie es aussehen "müsste".

Prozessor ist ein z8001.

Fehler im board sind auszuschließen. Eprommer Fehler eigentlich auch.

von Holm T. (Gast)


Lesenswert?

Olli putze mal die EpromAnschlüsse und die Textoolfassung mit Alkohol 
und lies nochmal. Der ehler kann so nicht passieren.

Dumps sind an dieser Stelle wirklich informativer als das Assembler 
Listing.

Gruß

Holm

von oszi40 (Gast)


Lesenswert?

Oliver Lehmann schrieb:
> Fehler im board sind auszuschließen. Eprommer Fehler eigentlich auch.

Dann bleibt nach Deiner Theorie ja nur der EPROM übrig?
Übliche Fehler waren eigentlich oft Sockel-Kontaktfehler, 
EPROM-Probleme. Dabei sind im EPROM einzelne Speicherzellen ausgefallen 
oder ganze Spalten oder Adressen. Vergleiche erst mal die GENAUEN 
Bezeichnungen. Evtl. ist einer zu langsam?

> Eprommer Fehler eigentlich auch.
Dann lies die faglichen EPROMS mehrfach ein und vergleiche ob sich etwas 
änderte. Mal Betriebsspannung messen und Stützkondensatoren ansehen kann 
auch nicht schaden. Einzelne Pins mit Oszi vergleichen geht evtl. auch, 
wird aber seltener eine Erleuchtung bringen wenn nur eine Zelle falsch 
ist.

von Oliver L. (ollil)


Lesenswert?

Wenns hilft... EPROMs sind hier zu finden:

http://www.pofo.de/S8000/misc/EPROM/CPU/1.2/

u77.bin
u75.bin

sind die obereren 8 KB der 16KB Firmware. Ich habe halt keinen 100% "so 
sollte es aussehen" Dump - ich habe nur Version 2.2 der Firmware die in 
vielen Dingen semantisch gleich ist - aber halt nicht identisch. 
Byteweise verglichen ist sie natürlich sehr anders, da allein schon 
Sprungadressen durch Codeunterschiede nahezu komplett unterschiedlich 
sind. Daher wüsste ich halt nicht, was man "erkennen" will wenn man sich 
u77.bin jetzt in nem Hex-Editor anschaut ohne eine Bytegenaue 
"Solldatei" daneben - die es halt aber nicht gibt.

Ich werde heute Abend u77.bin nochmal einlesen und auch mal einen 
anderen EPROMMer probieren. Habe aber eigentlich mit meinem HI-LO ALL-02 
noch nie Probleme gehabt. Putzen probiere ich auch mal ;)

: Bearbeitet durch User
von oszi40 (Gast)


Lesenswert?

Oliver L. schrieb:
> Putzen probiere ich auch mal ;)

Vorsicht, es gibt auch krumme Beine!
Woher bist Du so sicher, daß der Sockel noch zuverlässig ist auf dem 
Board? Funktionieren die anderen EPROMS?

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Oliver Lehmann schrieb:
> MH.. Ich dachte echt das die Grafik klar ist.. .
>
> Links Soldaten, daneben mbemonics

Kindergartensprache?


Lies die EPROMs einzeln aus, sieh Dir einen Hexdump davon an, sieh Dir 
den kombinierten Hexdump an -- oft sind in Firmware irgendwelche Texte 
enthalten, die man so erkennen kann (wobei die korrekte Kombination der 
beiden EPROMs klar sein sollte, denn in 
http://www.pofo.de/S8000/misc/diagrams/S8000_CPU_board/S8000_CPU.pdf auf 
S. 9 ist die Beschaltung zu finden -- nachtrag: Das hast Du ja selbst 
gezeichnet).

Nach dreißig Jahren kann und darf ein EPROM auch mal anfangen, seine 
Programmierung zu verlieren. Insbesondere, wenn es wie das 2732 aus der 
vorderen Altsteinzeit stammt, wo viele Programmiergeräte nach "Schnauze" 
geschnitzt waren und die Programmieralgorithmen der Hersteller auch noch 
nicht sehr ausgefeilt waren.

: Bearbeitet durch User
von Oliver L. (ollil)


Angehängte Dateien:

Lesenswert?

Rufus Τ. F. schrieb:
> Oliver Lehmann schrieb:
>> MH.. Ich dachte echt das die Grafik klar ist.. .
>>
>> Links Soldaten, daneben mbemonics
>
> Kindergartensprache?

Solldaten, Mnemonics - mal versucht fehlerfrei am Frühstückstisch auf 
dem Handy zu tippen?

>
> Lies die EPROMs einzeln aus, sieh Dir einen Hexdump davon an, sieh Dir
> den kombinierten Hexdump an -- oft sind in Firmware irgendwelche Texte
> enthalten, die man so erkennen kann (wobei die korrekte Kombination der
> beiden EPROMs klar sein sollte, denn in
> http://www.pofo.de/S8000/misc/diagrams/S8000_CPU_board/S8000_CPU.pdf auf
> S. 9 ist die Beschaltung zu finden -- nachtrag: Das hast Du ja selbst
> gezeichnet).

Genau.... ich habe die EPROMs natürlich einzeln ausgelesen. Sie sind 
gesockelt.

> Nach dreißig Jahren kann und darf ein EPROM auch mal anfangen, seine
> Programmierung zu verlieren. Insbesondere, wenn es wie das 2732 aus der
> vorderen Altsteinzeit stammt, wo viele Programmiergeräte nach "Schnauze"
> geschnitzt waren und die Programmieralgorithmen der Hersteller auch noch
> nicht sehr ausgefeilt waren.

Natürlich dürfen sie das... die Frage war ja ob es "Tricks" gibt evtl. 
doch noch die Daten zu entlocken. Ich hatte was im Hinterkopf mit 
"höherer Spannung auslesen" - vielleicht gibt es hier ja auch noch Leute 
aus der EDV-Steinzeit die Tricks kennen.... Ansonsten mal anbei ein 
Screenie von nem Hexeditor wo ich mal angefangen habe in 077.bin die 
höchstwahrscheinlich korrekten Werte einzutragen. Ist halt nur eine sehr 
mühseelige Arbeit und fehleranfällig Maschinencode nach 
De-Assembler-Analyse zu "korrigieren" - es fällt aber bisher auf, das 
immer die 2 gleichen Spalten betroffen sind.

: Bearbeitet durch User
von Holm T. (Gast)


Lesenswert?

Olli Eproms verlieren Daten, d.h. Nullen konvertieren langsam zu Einsen 
das ist der gewöhnliche "Bit Rot" in einem Eprom. Was aber nicht 
passiert ist das sich Daten in den Roms verschieben, wenn das passiert 
hast Du Kontaktfehler an den Adreßanschlüssen. Dreckige Textoolfassungen 
kommen öfter vor, ich wasche die dann mit einer ollen Zahnbürste und 
Spiritus aus,
das bewirkt Wunder.

Lies den fraglichen Prom einfach mal mehrmals hintereinander oder 
vergleiche gegen die Daten vom ersten Lesen während Du mit den Fingern 
über die Eprom Anschlüsse tatschst, damit findest Du ziemlich sicher 
floatende Adreß- oder Datenpins.

Die Daten werden in Mosfets mit floatendem Gate gespeichert, je nach der 
Ladung auf dem floatenden Gate ändert sich die Schwellspannung des FETs 
so das 0 und 1 unterschieden werden können. Viele programmiergeräte 
prüfen die
Qualität der Programmierung durch Lesen bei erhöhter Versorgungsspannung 
(6V, 6,5V..) weil das die Umschaltschwelle im FET anhebt und man so 
mitbekommt ob auch ausreichend Ladung auf den Gates ist. Damit dürfte 
klar sein das Du zum Lesen fast verschwundener Daten die 
Versorgungsspannung heruntersetzen mußt um bei halb geladenen Gates noch 
unter die Schwelle zu kommen...

Was hast Du übrigens für einen Grund fremd zu gehen?
:-)

Gruß,

Holm

von Oliver L. (ollil)


Lesenswert?

Holm T. schrieb:
> Olli Eproms verlieren Daten, d.h. Nullen konvertieren langsam zu Einsen
> das ist der gewöhnliche "Bit Rot" in einem Eprom. Was aber nicht
> passiert ist das sich Daten in den Roms verschieben, wenn das passiert
> hast Du Kontaktfehler an den Adreßanschlüssen. Dreckige Textoolfassungen
> kommen öfter vor, ich wasche die dann mit einer ollen Zahnbürste und
> Spiritus aus,
> das bewirkt Wunder.

Naja - die Fassung muss eigentlich iO sein - sie liest ja alles andere 
problemlos...
Ich werde mir heute Abend den EPROM nochmal anschauen. Am Ende der Daten 
des EPROMs gibt es weniger "falsches" deswegen hatte ich da mal 
angefangen falsches durch vermeintlich richtiges auszutauschen (siehe 
mein vorheriges Posting inkl. Screenshot). Da gibt es keinen Versatz 
sondern nur falsche Werte. Anstatt 03 steht dann da FF, oder anstatt 5F 
steht ein 7F usw... beschränkt sich halt alles auf die 2 Spalten. Bevor 
ich jetzt aber weiter mache Maschinencode zu "korrigieren", werde ich..

> Lies den fraglichen Prom einfach mal mehrmals hintereinander oder
> vergleiche gegen die Daten vom ersten Lesen während Du mit den Fingern
> über die Eprom Anschlüsse tatschst, damit findest Du ziemlich sicher
> floatende Adreß- oder Datenpins.

.. heute Abend den besagten EPROM aus dem Keller kramen (eingelesen 
hatte ich ihn vor einigen Jahren) mehrmals einlesen, auch mal an meiner 
P8000 mit dem EPROMmer dort einlesen.
Dann habe ich zummindest auch mal 2 verschiedene EPROMMer getestet.


> Die Daten werden in Mosfets mit floatendem Gate gespeichert, je nach der
> Ladung auf dem floatenden Gate ändert sich die Schwellspannung des FETs
> so das 0 und 1 unterschieden werden können. Viele programmiergeräte
> prüfen die
> Qualität der Programmierung durch Lesen bei erhöhter Versorgungsspannung
> (6V, 6,5V..) weil das die Umschaltschwelle im FET anhebt und man so
> mitbekommt ob auch ausreichend Ladung auf den Gates ist. Damit dürfte
> klar sein das Du zum Lesen fast verschwundener Daten die
> Versorgungsspannung heruntersetzen mußt um bei halb geladenen Gates noch
> unter die Schwelle zu kommen...

OK, ich schaue mal ob ich die Spannung bei meinem HI-LO frei wählen kann 
und wenn mehrfaches lesen nicht zum Ziel führt, dann setze ich die 
Spannung mal schrittweise runter.


> Was hast Du übrigens für einen Grund fremd zu gehen?
> :-)

Ich dachte nur viel hilft viel :-P

: Bearbeitet durch User
von Holm T. (Gast)


Lesenswert?

Oliver L. schrieb:
[..]
>Da gibt es keinen Versatz
> sondern nur falsche Werte.

...das ist wahrscheinlicher..

> Anstatt 03 steht dann da FF, oder anstatt 5F
> steht ein 7F usw... beschränkt sich halt alles auf die 2 Spalten. Bevor
> ich jetzt aber weiter mache Maschinencode zu "korrigieren", werde ich..

03 auf FF ist wiederum unwahrscheinlich.
Du mußt jedes Bit als einzelne Zelle betrachten, die Tatsache das die in 
einem Byte angeliefert werden hat nichts zu sagen.

03 auf ff würde bedeuten das da 6 Bits auf einmal leer geworden sind, 
das ist "putzig".
7F anstatt 5F ist eher normal, da ist ein einzelnes Bit gekippt.

[..]

>
> OK, ich schaue mal ob ich die Spannung bei meinem HI-LO frei wählen kann
> und wenn mehrfaches lesen nicht zum Ziel führt, dann setze ich die
> Spannung mal schrittweise runter.

Na dann mach mal.

>
>
>> Was hast Du übrigens für einen Grund fremd zu gehen?
>> :-)
>
> Ich dachte nur viel hilft viel :-P

grin

Die Meisten hier gucken Eproms relativ verständnislos an ...haben die 
für nen Arduino noch nie gebraucht...



Holm

von P8000 superuser (Gast)


Lesenswert?

> ob ich die Spannung bei meinem HI-LO frei wählen kann

einfach eine Si-Diode in die VCC-Leitung.

Schwupps liegt der Gateschwellwert niedriger :-)

von Oliver L. (ollil)


Angehängte Dateien:

Lesenswert?

EPROM mehrmals auslesen hat leider nicht zum Erfolg geführt.
EPROMmer meiner P8000 zu verwenden hat leider auch nix gebracht.
Spannung kann ich nicht frei einstellen.
Kommen immer konstant die gleichen (falschen) Daten beim auslesen raus.

Ich habe nun die meisten Fehler nach eingehender Code-Analyse 
weitestgehend selber korrigiert (zeitfressender Mist) - zum glück ist 
der andere EPROM ja richtig, so das man zummindest ein wenig weiss was 
das wohl für eine Instruktion sein wird.

Anbei mal ein Hexdiff des ausgelesenen Inhaltes (oben) und meiner bisher 
erfolgten Korrektur (unten)

Der Bereich von 0x0060 - 0x0100 steht noch aus - das ist aufgrund der 
Masse an falschem Maschinencode gerade am Anfang alles andere als 
trivial.

Wohler wäre mir natürlich die "richtigen" Daten aus dem EPROM zu 
bekommen.... bei der händischen "Raterei" schleichen sich ggf. Fehler 
ein....

: Bearbeitet durch User
von n^2 (Gast)


Lesenswert?

Holm T. schrieb:

> Was aber nicht
> passiert ist das sich Daten in den Roms verschieben, wenn das passiert
> hast Du Kontaktfehler an den Adreßanschlüssen.

Es sind zwei verschiedene Versionen, die Daten können auch einfach an 
anderer Stelle stehen. Ob hier wirklich ausführbarer Code steht, sehe 
ich auch nicht als sicher an.

von Oliver L. (ollil)


Lesenswert?

n^2 schrieb:
> Ob hier wirklich ausführbarer Code steht, sehe
> ich auch nicht als sicher an.

Kannst du aber. Zusammen mit seinem Schwester-EPROM ergibt sich 
Z8001-Maschinencode. Dazwischen sind natürlich Texte wie "DT NOT SENT" 
usw.
Meinst du bin ich in der Lage den EPROM zu "korrigieren" ohne zu wissen 
was da in der Firmware des Systems wahrscheinlich abläuft? Meinst du ich 
würde jetzt über sowas wie "da steht ASCII-Text" stolpern?

Nunja... jedenfalls bin ich nun doch tatsächlich in der Lage gewesen die 
Daten nach dem xten Versuch vermeintlich "korrekt" auszulesen (ein 
bischen Wackel-Voodoo hat geholfen)

http://www.pofo.de/S8000/misc/EPROM/CPU/1.2/u77_corrected.bin

Bis auf den oben genannten, von mir noch nicht bearbeiteten, Bereich 
waren gegenüber meiner "korrigierten" Version 2 Bytes nicht korrigiert, 
und 4 Bytes falsch korrigiert - find ich einen guten Schnitt bei 
gefühlten 250 korrigierten Bytes ;)

Und das die Korrektur von mir an den Stellen falsch war muss sich auch 
erstmal bewahrheiten :D

: Bearbeitet durch User
von Holm T. (Gast)


Lesenswert?

Hmm... haste es also nun geschafft? Wars wirklich nur Dreck oder hast 
Dus doch nochmal mit dem P8K Promer versucht?

Irnkwie seltsam, zur Zeit sterben ein Haufen interessanter Leute und der 
Großteil vom Rest hat Probleme mit Eproms...

Gruß,

Holm

von Oliver L. (ollil)


Lesenswert?

Ich vermute, es wird Dreck gewesen sein.... er läßt sich nun permanent 
"korrekt" auslesen nach meiner Sockel-ruckel-ruckel Beinchen-kratz-kratz 
Aktion.....

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.