Re: karty S3 a internet

Autor: Gregorio Kus (Grego_at_RMnet.IT)
Data: Fri 22 Nov 1996 - 01:39:34 MET


On Thu, 21 Nov 1996 17:16:17 +0100, Przemys aw Frasunek wrote:

>Tomasz Finke <tom_at_sprocket.ict.pwr.wroc.pl> napisa (a):

>>Hmm.. ja tez uzywam od dawien dawna modemu na COM4 i dziala z G95!
>>Zeby bylo smieszniej, to Warp 4 widzi ten modem na COM3 :-))

przy uzywaniu oryginalnych IBMowskich driverow
to normalne. O ile pamietam - OS/2 nie liczy COMa zajetego
przez mysz. Natomisast SIO - go wymienia zaznaczajac ze zajety.
>
>Oooooo, u mnie w95 widzi port COM3 zamiast COM4 ! Niektore programy
>dosowe tez sie upieraja, ze COM4 to COM3.

Bo tez cala sprawa z COMx jest czysto umowna.
Jest co prawda standard IBMowski
  COM1: IRQ 4, porty od 3F8
i COM2: IRQ 3, porty od 2F8
  (dla IBM PC, PC/XT, PC/AT z wyj PC Junior,
   o ile ktos go jeszcze pamieta)
ale juz
  COM3: IRQ 4, porty od 3E8
  COM4: IRQ 3, porty od 2E8
to juz tylko "standard de facto" bo nigdy nie bylo to
zdefiniowane przez IBMa, a nawet co gorsza - sam IBM nigdy
tego "standardu" nie popieral czego dowodzi IBMowska karta
video 8514, ktora uzywa portow z obszaru zwyczajowo
przydzielonego dla COM4. (Od tej karty wlasnie, dla zachowania
kompatybilnosci ze standardem 8514 biora sie klopoty z kartami
ATI i innymi w przypadku prob korzystania z COM4)

BIOS trzyma w swojej "data area" (0040) trzyma 4 dwubajtowe
"base address" portow poszczegolnych COMow. Mozna tam wstawic
dowolne wartosci, np. zamienic miejscami slowo spod 0040:0000
i 0040:0002, i juz BIOS bedzie widzial COM2 jako COM1 i na
odwrot. Beda go tam widzialy rowniez i programy ktore korzystaja
z data area BIOS'u aby sie dowiedziec adresow portow.

Z kolei DOS (nie wiem jak z najnowszymi ale do 5 napewno)
"zna" tylko 2 porty. Aby poznac ich adresy korzysta z dwoch
pierwszych znanych BIOSowi czyli wlasnie 0040:0000 i 0002.
Jezeli zamienimy slowa spod 0040:0002 i 0040:0004 to programy
komunikujace sie z serialem poprzez DOS potraktuja COM3 jako COM2
a to co bylo COM2 dla DOSa przestanie byc widoczne.
Nie ma to co prawda znaczenia bo jeszcze nie widzialem programu
robiacego cos konkretnego z serialami, ktory poslugiwalby sie
INT 21 czyli odwolaniami do DOSa. Obsluga lacza szeregowego
zostala tak skiepszczona w DOSie (M$) i BIOSie (IBM), ze kazdy
program czy to komunikacyjny, czy jakas "minisiec" na serialach,
czy rozne "filelink'i" do przesylania plikow - wszystko korzysta
z wlasnej obslugi seriali, lub w najlepszym przypadku z tzw. fossil
driver'a.

Pozostaje jeszcze sprawa przerwan - te nie sa "odnotowane"
w zwiazku z tym kiepskie programy czy drivery - przyjmuja na
zywca standard COM1/COM2 i ewentualnie COM3/COM4. Te sprytniejsze
usiluja same wychwycic na ktorych przerwaniach wisza poszczegolne
COMy, ale nie zawsze z dobrym skutkiem. Dlatego wiekszosc z nich
pozwala podac zarowno IRQ jak i adresy bazowe portow jako parametry.

Ja mam w tej chwili w moim komputerze
COM1: IRQ 3, base port 3F8
COM2: IRQ 4, base port 2F8
COM3: IRQ 7, base port 3E8
COM4: IRQ 10, base port 2E0

czyli - ZADEN port nie jest "standardowy"
i uzywam wszystkich zarowno pod DOSem jak i OS/2
COM1 ze wzgledu na przerwanie jest "COM2"
COM2 ze wzgledu na przerwanie jest COM1
COM3 ze wzgledu na przerwanie nie jest nawet "standardowy de facto"
a COM4 ani przerwaniem ani adresem (ze wzgledu na konflikt z Mach64)
czyli co - moze wogole nie jest COMem ????
:-)))

Reasumujac: nazwanie ten czy inny port szeregowy COM'em 1
czy COM'em 3 jest czysto umowne. Nie ma nic konkretnego,
niezmiennego, co pozwoliloby przydzielic im jakies "prawdziwe"
numery.

Moge podac np. dla SIO parametry w odwroconej kolejnosci
i te same programy puszczone z czystego DOSa beda pracowaly
na danym porcie (FIZYCZNYM, czyli na tej samej "wtyczce")
jako na COM4 a puszczone w oknie DOSowym OSa jako COM1.

czyli - jesli jakis program sie upiera ze COM3 to COM4
to mozesz go spokojnie olac - jak go zwal tak go zwal
byle dzialal. Ty przeciez i tak wiesz lepiej ktory port
Twojego komputera jest COM3 a ktory COM4, nieprawdaz ?

:-)))

Grego

--
/-----------------------------------------------------------------
Gregorio Kus    Grego_at_RMnet.it                Grego_at_cyberspace.org
ROMA, Italy     http://www.RMnet.it/~grego    Grego_at_FreeNet.hut.fi
Anonymous Mail Service - http://free.rmnet.it/~grego/AnonMail.html


To archiwum zostało wygenerowane przez hypermail 2.1.7 : Tue 18 May 2004 - 12:57:06 MET DST