Turbo Pascal in C++
-
Hallo Leute,
ich muss ein Turbo Pascal Programm in C++ übersetzen.
Habe dafür inpOut in mein programm eingebunden. Das meiste funktioniert auch gut nur mit folgendem Absatz gibt es problem:Port[CP]:=$1F; Port[DP0]:=Port[DP0]or $40; Delay(1); Port[DP0]:=Port[DP0]xor $40;daraus habe ich in c++ gemacht:
Out32(CP,0x1F); Sleep(TimeOut); unsigned int buffer; unsigned int buffer2; buffer=Inp32(DP0); buffer2 = buffer|0x40; Out32(DP0,buffer2); buffer=Inp32(DP0); Sleep(TimeOut); buffer2=buffer^0x40; Out32(DP0,buffer2); Sleep(TimeOut);Hab noch einige Delays eingefügt, hab aber nichts gebracht

könnt ihr mir einen tipp geben wo ich was falsch gemacht habe?
achso eine weitere Frage: Liest Inp32 8 bit werte aus registern ein oder 16Bit?
gruß nora
-
Hmmm... dein C Code hat jede Menge Pausen, nur nicht da wo der Pascal Code eine Pause hat.
Out32(CP,0x1F); Sleep(TimeOut); unsigned int buffer; unsigned int buffer2; buffer=Inp32(DP0); buffer2 = buffer|0x40; Out32(DP0,buffer2); <-- Hier ist die Pause im Pascal Code, genau zwischen dem Schreiben und Lesen von DP0 buffer=Inp32(DP0); Sleep(TimeOut); buffer2=buffer^0x40; Out32(DP0,buffer2); Sleep(TimeOut);Was Inp32 genau macht hängt davon ab wie es definiert wurde. Von meiner kurzen Recherche wird es wahrscheinlich ein 16bit Wert sein, aber 100% kann man dass nur wissen wenn man die Definition sieht. Wo bekommst du es denn her, includes du dafür eine bestimmte Datei?