mam niecieka prosbe
Port drukarki ma 8 kanałów danych, które możemy wykorzystać jako Wy/We danych. Dodatkowo jest jeszcze 5 Wejść i 4 dwukierunkowe linie które możemy użyć.
Adresy bazowe portów są odpowiednio 378h (LPT1) i 278h (LPT2). Żeby wysłać dane na szynę danych wystarczy użyć takiej składni polecenia:
Port[$378] := $FF; { wysyla na wszystkie linie 1 }
Odczytujemy w następujący sposób:
b := Port[$378];{ odczytaj dane z szyny i zapisz je w b }
k:= k OR 4; { ustawienie bitu 2 liczby przechowywanej w zminnej k }
IF k AND 16 <> 0 THEN podjeta_akcja {testowanie bitu 4 zmiennej k}
k:= k AND ( NOT 4) { zerowanie bitu 2 zmiennej k }
const
LPT = $378;
RST = { wstaw odpowiednia warosc linii }
CLK = { wstaw odpowiednia warosc linii }
IO = { wstaw odpowiednia warosc linii }
{--- ustaw licznik na 0 ---}
procedure Reset_Card;
begin
Port[LPT] := 0;
Port[LPT] := RST;
delay(5);
Port[LPT] := RST or CLK;
delay(5);
Port[LPT] := RST;
delay(5);
Port[LPT] := 0;
end;
{--- odczytaj bit na aktualnum adresie ---}
function Read_Bit: byte;
begin
if (Port[LPT+1] and IO) > 0 then Read_Bit := 1
else Read_Bit := 0;
end;
{--- zwieksz adres o 1 ---}
procedure Clock;
begin
Port[LPT] := CLK;
delay(10);
Port[LPT] := 0;
end;
{--- sekwencja 'Zapisz' dla bitu na aktualnym adresie na 0 ---}
procedure Write_Bit;
begin
Port[LPT] := RST;
delay(5);
Port[LPT] := 0;
Clock;
end;
I to by było na tyle!
Jak teraz to przepsiacv zeby obslugiwac te krotkie procedury z poziomu delphi ?