Robotrontechnik-Forum

Registrieren || Einloggen || Hilfe/FAQ || Suche || Mitglieder || Home || Statistik || Kalender || Admins Willkommen Gast! RSS

Robotrontechnik-Forum » Technische Diskussionen » CRC-Prüfsumme einer Datei passend machen » Themenansicht

Autor Thread - Seiten: -1-
000
22.10.2016, 17:05 Uhr
Klaus



Hallo,

heute mal eine etwas eigenartige Frage:
Ich habe den ROM-Inhalt des K2526 Lade-ROM Bitmuster 83 (1kB) geändert. Vorher hatte der die CRC-Prüfsumme 0000h.
Durch meine Änderung stimmt diese natürlich nicht mehr.
Das Programm HARDY möchte natürlich gern einen Urlader-EPROM mit dieser CRC-Prüfsumme auf der K2526, sonst gibts da logischerweise "Mecker" (Prüfsummenfehler).

Gibt es eine einfache Möglichkeit, ein Programm, einen Trick... die CRC-Prüfsumme der geänderten Datei durch Hinzufügen von einem oder mehreren Bytes wieder auf 0000h zu bekommen (ein wenig Platz ist noch im EPROM)?
Die Prüfsummen wird nach dem damals vermutlich üblichen CRC-16 CCITT gebildet.

Evtl. hat ja schon mal jemand so etwas gemacht.

Danke und viele Grüße,
Klaus
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
001
22.10.2016, 17:22 Uhr
holm

Avatar von holm

Entweder Du bist Mathematiker oder Du würfelst die aus.

Bei dem "Heimcomputer" den ein Freund und ich vor der Wende gebaut hatten (Dieses K1520 System
mit aufgebohrtem MC80 OS) hatten wir das Problem auch da die Eproms teilweise vom Schrott kamen.
Wir hatten ein Turbopascal Programm das die Prüfsumme ausprobierte die in den ersten Eprom geschrieben werden mußte. Dieser enthielt die Testroutine und die PFS aller Eproms.

Gruß,

Holm
--
float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;
{s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+
(r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&&
(A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
002
22.10.2016, 17:28 Uhr
Rolly2



Hallo Klaus, die Prüfsumme des originalen Urlader ist aber F76B. Das sagt jedenfalls Hardy, Ladeeprom ok checksum: F76B.

Viele Grüße, Andreas

Danke für den Zeichensatz, bin aber gleich weg für heute.

Dieser Beitrag wurde am 22.10.2016 um 17:29 Uhr von Rolly2 editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
003
22.10.2016, 18:11 Uhr
Klaus



@Holm,

Danke.
Nee Mathematiker bin ich nicht und beim Glücksspiel haue ich leider auch immer daneben ;-)

OK. Dann lebe ich mit dem kleinen Schönheitsfehler. Betrifft ja auch nur HARDY.

@Andreas
Danke.
Stimmt.... die Prüfsumme von original Lade-ROM, die HARDY anzeigt, ist wirklich F76B. Vermutlich verwenden die eine eigene CRC Berechnung, oder es ist eine ganz andere Berechnung der Prüfsumme.

Ich habe den original Lade-ROM nur am EPROM-Brenner ausgelesen und da kam 0000 als Prüfsumme. Auch am PC mit dem Hexeditor HxD komme ich bei CRC-16 CCITT auf die Prüfsumme 0000.

Viele Grüße,
Klaus
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
004
22.10.2016, 18:21 Uhr
thrh



Wenn Du einen EPROM mit Prüfsumme 0000H mit CRC-16 CCITT erzeugen willst, berechne die Prüfsumme für den EPROM ohne die letzten beiden Byte. Die so errechnete Prüfsumme trage in Reihenfolge H L auf die letzten zwei Byte des EPROM. Dann hat er insgesamt die Prüfsumme 0000H.

Grüße Thomas
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
005
22.10.2016, 18:47 Uhr
Pollyplay



Hallo Klaus,

Das von thrh Geschriebene passt.


Eine Prüfsumme von 0000h wäre m.E. nur dann, wenn alles auf Null ist.

Es sei denn, es verhält sich wie bei den Spielen vom Poly-Play. Dort wurde die CRC nur über die ersten 128 Byte des Spieles ermittelt. Vermutlich zur damaligen Zeit, 1984, weil die Kapazität begrenzt war, um sparsam zu arbeiten?

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : mal 8 = 128
...
...
ergibt: Checksum-16: 0000


Hat die file einen Bereich mit mehrmals 00? gleich zu Beginn?

M.E. müsste die neue CRC dann dort eingetragen werden, von wo der Lade-ROM aufgerufen wird.

Dieser Beitrag wurde am 22.10.2016 um 18:59 Uhr von Pollyplay editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
006
22.10.2016, 19:29 Uhr
Klaus



Hallo,

eine Dankeschön Euch beiden.
Nein... alles Null ist nicht und auch am Anfang keine Nullen.

Aber Thomas hat den Profi-Tipp !!!!
Genau das hat funktioniert. Klasse... Danke.

Ich habe mir den EPROM-Inhalt nochmal genauer angesehen und siehe da, die letzten beiden Byte sind die vom Andreas genannten und vom HARDY angezeigten F76B.
Also habe ich jetzt nach der Anleitung vom Thomas die lezten beiden Byte gelöscht und einen neue CRC generiert. Es kam so bei meinem geänderten EPROM 8215 heraus. Diese beiden Bytes habe ich dann wieder hinten angehangen.
Der nächste CRC-Test ergab die gewünschten 0000.

Nun schnell einen EPROM gebraten und siehe da..... HARDY ist auch mir der neuen Prüfsumme zufrieden. Heißt also, HARDY liest wohl die letzten beiden Bytes, macht den Prüfsummentest ohne diese und vergleicht mit den letzten beiden Bytes im EPROM.



Herzlichen Dank für die Tipps und die Hilfe.
Viele Grüße,
Klaus

Dieser Beitrag wurde am 22.10.2016 um 20:30 Uhr von Klaus editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
007
22.10.2016, 22:41 Uhr
Digitalmax

Avatar von Digitalmax

Hallo Klaus,

früher wurden einfache CRC-Tests mit XOR über 2 Byte gemacht. Damit ergibt sich automatisch der Wert Null, wenn man in die letzten beiden Bytes die bisherige Prüfsumme einträgt.

Gruß Matthias
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
008
23.10.2016, 12:54 Uhr
Klaus



Hallo Matthias,

ja ... von der XOR-Methode habe ich schon mal gehört, habe es aber selbst noch nicht praktiziert.
Keine Ahnung wie es HARDY macht, aber ich habe beim Hexeditor HxD, die CRC-16 CCITT Analyse ausgewählt und da passt es mit den Prüfsummen und auch mein Brenner gibt die selben raus.

Viele Grüße,
Klaus
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
Seiten: -1-     [ Technische Diskussionen ]  



Robotrontechnik-Forum

powered by ThWboard 3 Beta 2.84-php5
© by Paul Baecher & Felix Gonschorek