Article View: pl.comp.lang.pascal
Article #168Re: Kursor textowy i porty komunikacyjne
From: Artur Jedlinski
Date: Wed, 16 Dec 1998 11:02
Date: Wed, 16 Dec 1998 11:02
102 lines
3912 bytes
3912 bytes
Piotr Bochaczyk <piotrb@mops.uci.agh.edu.pl> wrote:
: Te dwie procedurki rozwiązują chyba problem ukrywania kursora
: tekstowego?
: Procedure KursorOff; Assembler;
: Asm
: MOV AH,01h
: MOV CH,10h
: MOV CL,00h
: INT 10H
: End;
: Procedure KursorOn; Assembler;
: Asm
: MOV AH,01h
: MOV CH,07h
: MOV CL,07h
: INT 10H
: End;
: Jak sprawdzić jakie porty COM i LPT są zainstalowane? Bardzo prosto!
: COM1BaseAdr:word absolute $0:0400;
: COM2BaseAdr:word absolute $0:0402;
: COM3BaseAdr:word absolute $0:0404;
: COM4BaseAdr:word absolute $0:0406;
: LPT1BaseAdr:word absolute $0:0408;
: LPT2BaseAdr:word absolute $0:040A;
: LPT3BaseAdr:word absolute $0:040C;
: LPT4BaseAdr:word absolute $0:040E;
: Wiadomo o co chodzi? W odpowiednich zmiennych znajdują się adresy Portów
: dla poszczególnych portów. Jak tego używać? Poczytajcie w literaturze. W
: niektorych przypadkach lepiej bedzie uzyc typu pointer, ale to zalezy od
: zastosowania.
: Jeśli któregoś z portów brakuje, to zmienna nie jest określona. Zwykle
: oznacza to wartość 0:0, ale częściej jest po prostu przypadkowy adres.
: Jak wobec tego zdobyć pewność, że dany adres jest prawdziwy? Ano
: odczytujemy zmienną $0:0410, której zawartość wygląda tak:
: bity
: 0 : =0 Brak stacji dysków
: 1 : =1 obecność kooprocesora
: 2-3 : Pamięć RAM płyty głównej
: =01 16K; =10 32K; =11 64+K
: 4-5 : Aktywny tryb graficzny
: =00 możliwa EGA (nie zawsze prawda, lepiej użyć przerwania
: 10h)
: =01 40 kolumn kolor; =10 80 kolumn kolor; =11 TTL Mono
: 6-7 : Całkowita liczba napędów
: --- =00 1; =01 2; =10 3; =11 4
: 8 : Obecność DMA
: 9-11 : Porty RS232
: =000 brak; =001 1; ... =111 7
: 12 : =1 obecność karty GAME
: 13 : =1 obecność drukarki szeregowej (zwykle drukarka jest
: równoległa)
: 14-15 : Zainstalowane drukarki
: =00 brak; =01 1; =10 2; =11 3
: Te informacje zwraca także przerwanie 11h w rejestrze AX, np:
: Label IsHere,Quit;
: ...
: {Funkcja zwraca TRUE jeśli w systemie jest obecny}
: {kooprocesor matematyczny, w przeciwnym przypadku zwraca FALSE}
: Function Check4MathCoopr:Boolean; Assembler; Far;
: Asm
: MOV @Result,00
: INT 11h
: AND AX,0002h
: JNE IsHere
: JMP Quit
: :IsHere
: MOV @Result,01
: :Quit
: NOP
: End;
: W Linux'ie nie działa F9, więc piszę z pamięci. Wniosek - funkcja
: może się nie kompilować. Ale to już chyba nie jest problem. Nie piszę
: komentaży, bo chyba wszystko jest jasne.
: O obsłudze myszki w tekstówce napiszę następnym razem.
: __ Piotr ,,Neevor'' Bochaczyk
: ___ ___ __ ___ member of Team OS/2 Poland
: _ _ _ __ _ _ & Asu'a Programmers Group
: _ _ __ __ _
: _ _ _ __ _ neevor@teamos2.org.pl
: ___ ___ __ ______
: __ Uroda x Rozum = const
--
Nataniel <nataniel@rpg.pl>
editor of "Nowe WIZJE"
"Co to za czasy, ze byle chlystek moze mowic NI do starej kobiety"
Technical Details
Message-ID:
<75840l$ini$1@zeus.polsl.gliwice.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!mat.uni.torun.pl!news.nask.pl!orion.cst.tpsa.pl!news.task.gda.pl!news.man.poznan.pl!polsl.gliwice.pl!not-for-mailReferences:
<367784A4.30191855@mops.uci.agh.edu.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!mat.uni.torun.pl!news.nask.pl!orion.cst.tpsa.pl!news.task.gda.pl!news.man.poznan.pl!polsl.gliwice.pl!not-for-mail From: Artur Jedlinski <nataniel@infeco.pb.bialystok.pl> Newsgroups: pl.comp.lang.pascal Subject: Re: Kursor textowy i porty komunikacyjne Date: 16 Dec 1998 11:02:45 GMT Organization: Infeco HQ Lines: 102 Message-ID: <75840l$ini$1@zeus.polsl.gliwice.pl> References: <367784A4.30191855@mops.uci.agh.edu.pl> NNTP-Posting-Host: infeco.pb.bialystok.pl Mime-Version: 1.0 User-Agent: tin/pre-1.4-980226 (UNIX) (Linux/2.0.35 (i586)) Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit