Robotrontechnik-Forum

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

Robotrontechnik-Forum » Technische Diskussionen » EPROM Checksumme » Themenansicht

Autor Thread - Seiten: -1-
000
13.07.2009, 06:51 Uhr
Olli

Avatar von Olli

Hallo,

mit welchem Algorithmus berechne ich die Checksummen die auf jeder Zeile hinten stehen?
Und wie die Checksumme ueber alles?

http://ac1-info.de/literatur/fa/fa_88_08_s380_2.jpg

Mein N-Knopf macht ein C - ich vermute einen EPROM-Fehler...
--
P8000 adventures: http://pofo.de/blog/?/categories/1-P8000
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
001
13.07.2009, 10:52 Uhr
volkerp
Default Group and Edit
Avatar von volkerp

guckst Du hier: http://www.ac1-info.de/literatur/fa_86_11.htm

SDLC-Polynom P(x) = x^16 + x^12 + x^5 + 1
--
VolkerP

http://hc-ddr.hucki.net
(Z9001, Z1013, LC-80, ...)

Dieser Beitrag wurde am 13.07.2009 um 10:53 Uhr von volkerp editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
002
13.07.2009, 11:25 Uhr
Olli

Avatar von Olli

Hm - bekomme irgendwie was anderes raus.
Fuer die 1. Zeile sollte 90 rauskommen - ich bekomme 6c:


Quellcode:
olivleh1@kartoffel olivleh1> ./sdlc AC1_tast.bin 0 15
crc_checksum: 6c
olivleh1@kartoffel olivleh1> hd -v AC1_tast.bin |head -1
00000000  00 00 00 00 00 00 00 00  00 00 00 00 00 90 00 00  |................|
olivleh1@kartoffel olivleh1>

hier mein C-Programm, x^16 + x^12 + x^5 + 1 sollte 0xA001 sein
http://www.pofo.de/tmp/sdlc.c

Hm - 0xA001 ist wohl eher "x^16 + x^15 + x^2 + 1"
x^16 + x^15 + x^2 + 1 sollte 10001000000100001 sein, dann das 16. Bit weg und H/L vertauscht komme ich auf 1000010000001000 - und das ist 0x8408. Damit wirds aber auch nichts :/
--
P8000 adventures: http://pofo.de/blog/?/categories/1-P8000

Dieser Beitrag wurde am 13.07.2009 um 11:47 Uhr von Olli editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
003
13.07.2009, 12:09 Uhr
Heiko_P



Hallo Olli,

über die einzelne Zeile wird eine XOR-Verknüpfung von allen Bytes gemacht, die SDLC-Prüfsumme nur über den ganzen Bereich.

Heiko
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
004
13.07.2009, 13:28 Uhr
Olli

Avatar von Olli

Hallo Heiko,

ich habe die Datei jetzt nochmal neu hochgeladen.
Ich initialisiere jetzt eine Variable (xor) mit 0x00, XORe dann das 1. Byte damit, das Ergebniss speichere ich dann in der Variable xor, und dann wird das 2. Byte mit diesem Ergebniss ge-XOR-t usw... bis ich das Ende der Zeile erreiche.

olivleh1@kartoffel olivleh1> ./sdlc AC1_tast.bin 0 15
crc_checksum: da2f
xor_checksum: 90
olivleh1@kartoffel olivleh1> ./sdlc AC1_tast.bin 16 31
crc_checksum: d1ea
xor_checksum: 80

Irgendwie komme ich nicht auf den gruenen Zweig... 80 ist ja doch n bissel was anderes als 10 fuer die 2. Zeile

EDIT: hat sich erledigt, ich habe eine Klammer um mein if vergessen!
--
P8000 adventures: http://pofo.de/blog/?/categories/1-P8000

Dieser Beitrag wurde am 13.07.2009 um 13:30 Uhr von Olli editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
005
13.07.2009, 13:38 Uhr
Olli

Avatar von Olli

So,

das aktuelle Programm errechnet nun die XOR-Ergebnisse fuer die Zeilen aus.
Ich habe nur ein Problem mit 00c0. Dort habe ich:

000000c0 ad 8d 95 00 00 00 00 00 00 00 8b 89 00 00 00 00 |­...............|

Was laut Bild http://ac1-info.de/literatur/fa/fa_88_08_s380_2.jpg mir richtig erscheint. Wenn ich nun den XOR Wert dafuer errechne, komme ich auf B7 - Im Bild steht aber 3D. Wo ist mein Fehler - bin ich blind?
Die anderen Zeilen stimmen alle soweit.
--
P8000 adventures: http://pofo.de/blog/?/categories/1-P8000
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
006
13.07.2009, 16:51 Uhr
Heiko_P



Du bist nicht blind, hier steckt wirklich ein Fehler drin. Jetzt ist Schaltungsanalyse und Logik gefragt: bei welchem Tastendruck werden die Adressen aus dieser Zeile angesprochen? Welcher Code muß dann jeweils ausgegeben werden? Dann merkst du ganz schnell, ob nur die abgedruckte Prüfsumme falsch ist oder ein falsches Byte in der Zeile steht. Ich kann dir im Augenblick nicht weiter helfen, kann erst heute spät abend wieder hier reinschauen. Vielleicht kommst du aber auf diese Weise ganz allein zum Ziel.

Heiko
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
007
13.07.2009, 17:56 Uhr
Olli

Avatar von Olli

0x80-0xFF Bedienen A7 was den Druck der Ctrl. Taste bedeuten wuerde.

folgende Tasten konnte ich anhand der Schaltung ermitteln
C0 = Ctrl + Leer (0xad)
C1 = Ctrl + M (0x8d)
C2 = Ctrl + J (0x95)
C3 = Ctrl + U
C4 = Ctrl + 7
C5 = Ctrl + F8
C6 = nicht moeglich
C7 = nicht moeglich
C8 = nicht belegt (S9/Z1)
C9 = Ctrl + <
CA = Ctrl + K (0x8b)
CB = Ctrl + I (0x89)
CC = Ctrl + 8
CD = Ctrl + F9
CE = nicht moeglich
CF = nicht moeglich

Soviel zu dem welche Tasten angesprochen werden wuerden. Nun weiss ich aber immer noch nicht, was bei den Tasten passieren muesste, und was die HEX Werte sagen. 0xC3 ist ja z.B. ein C oder 0xCE ist ein N - wie passt das zu dem Inhalt im Zeichengenerator? C waere 0x43 und N waere 0x4E im Zeichengenerator werden dort 128 Byte immer abgezogen?
--
P8000 adventures: http://pofo.de/blog/?/categories/1-P8000
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
008
13.07.2009, 18:48 Uhr
Olli

Avatar von Olli

So, hier mal das was auf dem Bildschirm passiert bei den 5 Kombinationen aus der C0 Zeile

Ctrl+Leer ergibt "-"
Ctrl+M ergibt ein "CR"
Ctrl+J ergibt "³"
Ctrl+K bewegt den Cursor nach oben
Ctrl+I ergibt "Leertaste"

ist das so nun korrekt? Muessen anderen Tasten aus der Aufstellung oben (007) auch noch eine Funktion haben?
--
P8000 adventures: http://pofo.de/blog/?/categories/1-P8000
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
009
13.07.2009, 22:09 Uhr
Heiko_P



>C waere 0x43 und N waere 0x4E im Zeichengenerator werden dort 128 Byte immer abgezogen?< Ja, das gesetzte Bit7 signalisiert dem AC1 eine gedrückte Taste. Also von den Werten im EPROM immer 80H (oder 128) abziehen.

Soo, nun zu den Tasten:

Ctrl+Leer ergibt "-" > macht keinen Sinn, keine Ahnung, warum der Wert dort steht
Ctrl+M = CR (Enter) > richtig
Ctrl+J ergibt "³" > falsch, sollte Cursor nach unten (8Ah) ergeben
Ctrl+K bewegt den Cursor nach oben > richtig (8Bh)
Ctrl+I ergibt "Leertaste" > fast richtig, bewegt den Cursor nach rechts (89h)

So weit der Vergleich zumeinem AC1. Im Prinzip könnte die Tastatur erst mal funktionieren. Einen neuen EPROM kannst du immer mal noch brennen, falls noch was fehlt oder falsch ist.

Heiko
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