LPT1



Masz problem? Zapytaj na forum elektroda.pl

Poprzedni Następny
Wiadomość
Spis treści
From: "Marcinek" <mbatp_at_nospam_kki.net.pl>
Subject: LPT1
Date: Sun, 3 Sep 2000 23:52:34 +0200


Obsługę 8 bitowego portu rozpocząłem już dawno na komputerku C64 ( wspaniała
rzecz jeśli chodzi o sterowanie urządzeniami na zewnątrz ) .
I na C64 miałem możliwość zarówno wysłania jak i pobrania 8 bitów .
Jak mogę pobrać z zewnątrz 8 bitów równolegle bez ich dzielenia .
Mam urządzenie które taką informację wysyła ale nie mogę jej dzielić a nie
wiem czy port równoległy PC - ta jest przygotowany do dwustronnej transmisji
8 bitów.
Proszę o pomoc . Jak to zrobić ? Najlepiej w Pascalu .



Poprzedni Następny
Wiadomość
Spis treści
From: "Grzegorz Kurczyk" <control_at_nospam_post.pl>
Subject: Re: LPT1
Date: Mon, 4 Sep 2000 15:47:18 +0200



Użytkownik Marcinek <mbatp_at_nospam_kki.net.pl> w wiadomości do grup dyskusyjnych
napisał:39b2c82f_at_nospam_news.vogel.pl...
Obsługę 8 bitowego portu rozpocząłem już dawno na komputerku C64
wspaniała
rzecz jeśli chodzi o sterowanie urządzeniami na zewnątrz ) .
I na C64 miałem możliwość zarówno wysłania jak i pobrania 8 bitów .
Jak mogę pobrać z zewnątrz 8 bitów równolegle bez ich dzielenia .
Mam urządzenie które taką informację wysyła ale nie mogę jej dzielić a nie
wiem czy port równoległy PC - ta jest przygotowany do dwustronnej
transmisji
8 bitów.
Proszę o pomoc . Jak to zrobić ? Najlepiej w Pascalu .


Cześć
Jest taka możliwość, ale port LPT musi być typu Bidirectional. Wszystkie
współczesne płyty główne mają taki port. Trzeba tylko w BIOSie ustawić port
w tryb EPP. Starsze komputery, które port LPT miały na karcie, nie zawsze
obsługiwały tryb dwukierunkowy (np. port na karcie grafiki HERCULES jest na
pewno jednokierunkowy). Jeśli chodzi o sposób programowania to z tego co
pamiętam:

dla portu LPT1:
$378 - port danych D0-D7
$37A - rejestr sterujący ( bit 5 odpowiada za kierunek portu danych b5=0 ->
OUT, b5=1 ->IN)

dla LPT2:
$278 i $27A

dla LPT3:
$3BC i $3BE

Przykład w Pascalu

procedure OutLPT(x: Byte);
begin
Port[$37A] := 0;
Port[$378] := x;
end;

function InLPT: Byte;
begin
Port[$37A] := 32;
InLPT := Port[$378];
end;


Powodzenia
Grzegorz