Odczyt i zapis z portu LPT w C++Builder - jak rozwiązać problemy z outportb i inportb?

LPT i C++Builder





Poprzedni Następny
Wiadomość
Spis treści
From: "Blekot" <pitrekb_at_nospam_wp.pl>
Subject: LPT i C++Builder
Date: Thu, 11 Oct 2001 19:23:00 +0200


Jak odczytac stany na porcie LPT lub coś wysłać na powyższy?
Bo outportb i inportb nie działa...!!!!



Poprzedni Następny
Wiadomość
Spis treści
From: "bartek" <cosgdzies_at_nospam_poczta.onet.pl>
Subject: Re: LPT i C++Builder
Date: Fri, 12 Oct 2001 08:08:07 +0200



Użytkownik "Blekot" <pitrekb_at_nospam_wp.pl> napisał w wiadomości
news:9q4kgq$q7p$1_at_nospam_sunsite.icm.edu.pl...
Jak odczytac stany na porcie LPT lub coś wysłać na powyższy?
Bo outportb i inportb nie działa...!!!!

Wstawka asemblera pod Windows 95/98 itd.. nie dziala pod windows 2000&NT40.
Testowane dla Delphi 5 i systemu Win95/98.

var rob:byte

asm
mov al,rob
mov ah,00h
mov dx,00h
int 17h
end;


pozdrawiam,
bartek waleska



Poprzedni Następny
Wiadomość
Spis treści
From: jfox_at_nospam_friko6.onet.pl (J.F.)
Subject: Re: LPT i C++Builder
Date: Fri, 12 Oct 2001 20:36:53 GMT


On Fri, 12 Oct 2001 08:08:07 +0200, bartek wrote:
Wstawka asemblera pod Windows 95/98 itd.. nie dziala pod windows 2000&NT40.
Testowane dla Delphi 5 i systemu Win95/98.

asm
mov al,rob
mov ah,00h
mov dx,00h
int 17h

Dziwne ze pod 9x dziala. Przeciez to nie jest juz program DOS -
"przerwania" nie dzialaja ..

J.


Poprzedni Następny
Wiadomość
Spis treści
From: "bartek" <cosgdzies_at_nospam_poczta.onet.pl>
Subject: Re: LPT i C++Builder
Date: Sat, 13 Oct 2001 21:46:16 +0200


</ciach>
czy ja wiem czy nie ma juz DOSa...
przerwania dzialaja, w wersjach "zaawansowanych" windows 2000 i NT,
operowanie na portach konczy sie bledem. Mysle ze jest to spowodowane inna
struktura systemu. DOS tylko w wersji emulacji, a nie jako sam system. Tak
czy inaczej zastosowanie powyzszej wstawki w Delphi 5 pozwolilo mi zapalac
diody podlaczone do LPT.

pozdrawiam
bartek



Poprzedni Następny
Wiadomość
Spis treści
From: "Chooch" <lawniczak_at_nospam_idea.net.pl>
Subject: Re: LPT i C++Builder
Date: Sun, 14 Oct 2001 12:10:41 +0200


czy ja wiem czy nie ma juz DOSa...
przerwania dzialaja, w wersjach "zaawansowanych" windows 2000 i NT,
operowanie na portach konczy sie bledem. Mysle ze jest to spowodowane inna
struktura systemu. DOS tylko w wersji emulacji, a nie jako sam system. Tak
czy inaczej zastosowanie powyzszej wstawki w Delphi 5 pozwolilo mi zapalac
diody podlaczone do LPT.


Windows 2000 i NT, jak przystalo na porzadne systemy operacyjne, nie
pozwalaja aplikacjom na bezposrednie odwolywanie sie do sprzetu. Jak program
chce cos takiego zrobic, to musi ladnie poprosic system operacyjny o
pozwolenie i wykorzystac do tego celu funkcje udostepniane przez OSa. Mimo
iz moze sie to wydawac upierdliwe, pozwala na zapewnienie wiekszego
bezpieczenstwa i stabilnosci systemu jako calosci.

pozdr.
CHOOCH



Poprzedni Następny
Wiadomość
Spis treści
From: "bartek" <cosgdzies_at_nospam_poczta.onet.pl>
Subject: Re: LPT i C++Builder
Date: Sun, 14 Oct 2001 14:51:19 +0200


</ciach>
Windows 2000 i NT, jak przystalo na porzadne systemy operacyjne, nie
pozwalaja aplikacjom na bezposrednie odwolywanie sie do sprzetu. Jak
program
chce cos takiego zrobic, to musi ladnie poprosic system operacyjny o
pozwolenie i wykorzystac do tego celu funkcje udostepniane przez OSa. Mimo
iz moze sie to wydawac upierdliwe, pozwala na zapewnienie wiekszego
bezpieczenstwa i stabilnosci systemu jako calosci.

</ciach>

Ja tego nie neguje! To jest bardzo dobre, choc troche upierdliwe,
ze wzgledu na tworzenie sterownikow wirtualnych VxD. Okazuje
sie ze tak naprawde trzeba wykonac dwa sterowniki, jeden dla 9x,
a drugi dla Win2k/NT4. (zreszta pod 2000 to wogole jest magia)
Podobnie jest z aplikacjami pisanymi
dla konkretnych OS. Musze sie jednak przyznac, ze bardzo podoba
mi sie stabilnosc Win2k, choc przyznac musze, ze NT4 byl bardziej
stabilny. Tzn. nigdy nie udalo mi sie "puscic w kanal" NT4, a 2k
pare razy poszedl w krzaki...

Chyba jednak odeszlismy juz znacznie od glownego watku..
Tak wiec proponuje zakonczyc dyskusje.

Pozdrawiam,
Bartek



Poprzedni Następny
Wiadomość
Spis treści
From: Greg Szymsiak <greg_sz_at_nospam_dsuper.net>
Subject: Re: LPT i C++Builder
Date: Sun, 14 Oct 2001 18:27:21 -0400


Te INT20, 21,2F to sa odwolania nie do sprzetu a do DOSu, jesli sa inne o
wuzszych numerach to pwenie sa do jakis driverow albo co. Nie znalazlem w
ksiazce ktora mam przed soba.
INT33 jest np dla myszki.

Prawdopodobnie WIN2000/NT jus sie w to za bardzo nie bawia.
INT14 jest BIOSowe i uzywalem do programu strejacego UARTem i chodzil w DOSIE i
w kazdym Windowsie (prawie) testowalem go z Win3.1x, Win95/98 oraz WinNT v.4.0 i
pod OS/2 v3 & 4
Chodzil tez na Mackintoshu emulujacym PC i Win98.

Tak wiec jesli napiszesz program urywajac INT17 to masz wieksze szanse
powodzenia.

Chooch wrote:

czy ja wiem czy nie ma juz DOSa...
przerwania dzialaja, w wersjach "zaawansowanych" windows 2000 i NT,
operowanie na portach konczy sie bledem. Mysle ze jest to spowodowane inna
struktura systemu. DOS tylko w wersji emulacji, a nie jako sam system. Tak
czy inaczej zastosowanie powyzszej wstawki w Delphi 5 pozwolilo mi zapalac
diody podlaczone do LPT.


Windows 2000 i NT, jak przystalo na porzadne systemy operacyjne, nie
pozwalaja aplikacjom na bezposrednie odwolywanie sie do sprzetu. Jak program
chce cos takiego zrobic, to musi ladnie poprosic system operacyjny o
pozwolenie i wykorzystac do tego celu funkcje udostepniane przez OSa. Mimo
iz moze sie to wydawac upierdliwe, pozwala na zapewnienie wiekszego
bezpieczenstwa i stabilnosci systemu jako calosci.

pozdr.
CHOOCH


Poprzedni Następny
Wiadomość
Spis treści
From: "bartek" <cosgdzies_at_nospam_poczta.onet.pl>
Subject: Re: LPT i C++Builder
Date: Mon, 15 Oct 2001 15:25:45 +0200


</ciach>
Tak wiec jesli napiszesz program urywajac INT17 to masz wieksze szanse
powodzenia.
</ciach>

No tak tylko jak nie wpisze komendy INT 17h, to ciekawe co ma ten byte
wypchac na port?
W przypadku, ktory opisujesz dane zostana przeslane do rejestrow i nic,
rownie
dobrze na tych samych danych moza wykonac cos innego.np. 10h - operacje na
grafice,
ale jak nie wpiszesz 10h to nic sie niestanie...
Wg. mnie te "wieksze szanse" sa rowne zero.

Pozdrawiam,
Bartek



Poprzedni Następny
Wiadomość
Spis treści
From: "Chooch" <lawniczak_at_nospam_idea.net.pl>
Subject: Re: LPT i C++Builder
Date: Fri, 12 Oct 2001 08:25:31 +0200


Jak odczytac stany na porcie LPT lub coś wysłać na powyższy?
Bo outportb i inportb nie działa...!!!!

Proponuje poszukac w dokumentacji API Windows (Win32 API Help w Builderze) -
tam powinno byc opisane, jak otworzyc port i jakich funkcji uzywac do
wysylania i odczytu danych z wykorzystaniem sterownika portu LPT,
dostarczanego przez M$. Dla portu szeregowego uzywa sie funckji API:
CreateFile() i ReadFile(), WriteFile(), ew. DeviceIoControl(). Dla parallela
powinno byc podobnie.

pozdr.
CHOOCH