Hallo Dein Programm liest zweimal am parallelport und bekommt zwei (vielleicht) unterschiedliche Werte. Jetzt liest es so lange, bis es exakt die gleichen zwei Byte wieder in der Reihenfolge bekommt. Normalerweise benutzt man sowas für Hardware, die periodisch einen Sync-impuls sendet, damit man sich auf den Datenstrom synchronisieren kann, aber dann hat man feste Werte, die in irgendeiner Form NICHT im Datenstrom vorkommen und normalerweise sind dass dann mehr als zwei... In deinem Fall möchte ich raten, dass warscheinlich 2 mal eine NULL erwartet wird und dann wieder Daten, aber ein Blick in die Hardware, oder aber ein Oskar an der Leitung wäre hilfreich (Oskar=Oszilloskop) Oder du nimmst den Windowstreiber und jagst den schnell mal durch den SoftICE. (SoftICE = Debugger von NuMega, ähhh sorry ist jetzt Compuware) Gruss - Arndt Am Sonntag, 28. März 2004 23:51 schrieb Bernhard Walle:
Hallo,
ich habe folgenden Code in einem Windowsprogramm gefunden, bin mir aber bei der Bedeutung nicht zu 100 % sicher. Ausprobieren bringt in dem Fall auch nichts. Das Programm steuert Hardware über den Parallelport.
Hier das Codefragment:
last1 = inportb(0x40); last2 = inportb(0x40);
while (last1 == inportb(0x40) && last2 == inportb(0x40)) ;
Auf was genau wartet dieses Codefragment? Die Funktion inportb() dürfte es in ähnlicher Form (inb() ?) auch unter Linux geben, deshalb die Frage hier.
Vielen Dank!
Gruß, Bernhard
-- "Regular ist rekursiv. Ein User ist ein Regular, wenn er von den Regulars als Regular angesehen wird." -- Sebastian Posner in de.alt.folklore.usenet