Forum: PC-Programmierung GLCD an LPT


von Fix (Gast)


Lesenswert?

Hi!

Im Internet habe ich ein kleines Programm gefunden für die Ansteuerung
eines Displays T6963 an die LPT.

Ich verstehe nicht, warum hier "PortReadB(printerport+$402);"
verwendet wird. Was genau soll das bezwecken?

procedure TForm1.WaitDispRdy;
// Warten, bis das Display bereit ist
var tmp: byte;
    t: TDateTime;

begin
  if BiDirLPT THEN begin
    // LPT im ECP-Control-Register auf PS/2-Mode setzen
    // nötig, falls es ein ECP-Port ist
    tmp:=PortReadB(printerport+$402);
    tmp:=tmp AND $1F;
    tmp:=tmp OR $20; // Bidirektionaler Modus = PS/2
    PortWriteB(printerport+$402,tmp);
    t:=now+(5/86400);  // Begrenzt auf 5 Sekunden
    repeat
      // Auf Eingang schalten und abfragen
      PortWriteB(printerport+2,$20+4+2); //In, CD=1, CS=0, Wr=1
      PortWriteB(printerport+2,$20+4+2+8); //In, CD=1, CS=0, Wr=1,
Rd=0
      tmp:=PortReadB(printerport);
      PortWriteB(printerport+2,$20+4+2); //In, CD=1, CS=0, Wr=1
    until ((tmp AND 3)=3) OR (now>t); // Maximal 5 Sekunden warten
    PortWriteB(printerport+2,0);
  end else
    Delay(1); // Ohne bidirektionalen Parallelport ist Handshaking
nicht möglich
end;

von Rufus T. Firefly (Gast)


Lesenswert?

Lass' doch einfach Deine Doppelpostings sein.

von Tobi (Gast)


Lesenswert?

déjà vu...

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.