Pascal Programm in C übersetzen

Gast #1029773
Hallo, ich hatte mal ein Problem mit einem Router und mir wurde hier 
geholfen. Und nun habe ich noch ein Problem. Ich kenne mich überhaupt 
nicht mit Pascal aus, muss das aber für meine Semesterarbeit machen. 
Helft mir Bitte!

Hier wäre das Programm:


PROGRAM AD_Wandler_Abfrage;

USES Crt;

TYPE typLPT             = RECORD
                            Dat, Stat, Steu : Word;
                          END;
VAR LPT : typLPT;
    I   : Byte;
    AD  : Byte;

PROCEDURE OPort(PortAddr : Word; DataByte : Byte); ASSEMBLER;
ASM
  MOV AL, DataByte
  MOV DX, PortAddr
  OUT DX, AL
END;

FUNCTION IPort(PortAddr : Word) : Byte; ASSEMBLER;
ASM
  MOV DX, PortAddr
  IN  AL, DX
END;

PROCEDURE PortInit;
BEGIN
  OPort(LPT.Dat,  $00);
  OPort(LPT.Stat, $00);
  OPort(LPT.Steu, $00);
END;

BEGIN
  LPT.Dat  := MemW[$0040:$0008];  { Einlesen der Parallel-Port-Nummer }
  LPT.Stat := LPT.Dat + 1;
  LPT.Steu := LPT.Dat + 2;

  PortInit; { Ports resetten }

  OPort(LPT.Dat, $01); { D0 auf 1 (Stromversorgung an) }

  REPEAT
    OPort(LPT.Steu, $00); { CS auf 0, IO auf 0 }
    OPort(LPT.Steu, $02); { CS auf 1, IO auf 0 }

    AD := 0; { alten Wandlerwert loeschen }

    FOR I := 7 DOWNTO 0 DO { Bit-Werte auslesen }
    BEGIN
      AD := AD SHL 1;
      IF IPort(LPT.Stat) AND $08 = $08 THEN
      BEGIN
        AD := AD OR 1;
        Write(1);
      END ELSE Write(0);

      OPort(LPT.Steu, $06); { CS auf 1, IO auf 1 }
      OPort(LPT.Steu, $02); { CS auf 1, IO auf 0 }
    END;

    WriteLn(AD:10);
    Delay(250); { etwas warten ... }

  UNTIL KeyPressed;

  ReadKey;
  PortInit; { Ports resetten }
END.
Persönliche Seite
Also wenn ich mir das Programm so anschaue würde ich sagen, dass es 
reicht wenn du C kannst...

BEGIN
...
END

=

{
...
}

Function = Funktion mit Rückgabeparameter
Procedure= Funktion ohne Rückgabewert

repeat
...
until

=

while() oder do {} while()

for-schleife in pascal ist wie for-schleife in C nur andere Syntax...

Und ein bisschen in einem Handbuch der Pascalprogrammierung stöbern kann 
ja nicht so schwer sein...

gruß reiner
Gast
Hast du dior den Code schon mal angeschaut? Auch ohne Pascalkentnisse 
kann man die Funktion des Code halbwegs gut raus bekommen. Ansonsten 
frage detailierter.
Gast
Anthony wrote:

> Hallo, ich hatte mal ein Problem mit einem Router und mir wurde hier
> geholfen. Und nun habe ich noch ein Problem. Ich kenne mich überhaupt
> nicht mit Pascal aus, muss das aber für meine Semesterarbeit machen.

Es ist DEINE Semesterarbeit. Ist dir eigentlich klar, dass du dein 
ganzes Studium mit sowas riskierst?
Gast
Auf welchem Betriebssystem soll das laufen? Das verwendet direkte 
Hardwarezugriffe (Assembler-Befehle IN und OUT), darum geht das nur auf 
MS-DOS und Windows 95  98  ME.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 18 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.