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?


Anmelden zum Antworten