🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.pascal
4 messages
4 total messages Started by Piotr Bochaczyk Wed, 16 Dec 1998 00:00
Kursor textowy i porty komunikacyjne
#26
Author: Piotr Bochaczyk
Date: Wed, 16 Dec 1998 00:00
97 lines
2855 bytes
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
           16K;  32K;  64+K
4-5     : Aktywny tryb graficzny
           mo�liwa EGA (nie zawsze prawda, lepiej u�y� przerwania
10h)
           40 kolumn kolor;  80 kolumn kolor;  TTL Mono
6-7     : Ca�kowita liczba nap�d�w

---           1;  2;  3;  4
8       : Obecno�� DMA
9-11    : Porty RS232
          0 brak; 1 1; ... 1 7
12      : =1 obecno�� karty GAME
13      : =1 obecno�� drukarki szeregowej (zwykle drukarka jest
r�wnoleg�a)
14-15   : Zainstalowane drukarki
           brak;  1;  2;  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


Re: Kursor textowy i porty komunikacyjne
#27
Author: Artur Jedlinski
Date: Wed, 16 Dec 1998 00:00
104 lines
3199 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
:            16K;  32K;  64+K
: 4-5     : Aktywny tryb graficzny
:            mo�liwa EGA (nie zawsze prawda, lepiej u�y� przerwania
: 10h)
:            40 kolumn kolor;  80 kolumn kolor;  TTL Mono
: 6-7     : Ca�kowita liczba nap�d�w

: ---           1;  2;  3;  4
: 8       : Obecno�� DMA
: 9-11    : Porty RS232
:           0 brak; 1 1; ... 1 7
: 12      : =1 obecno�� karty GAME
: 13      : =1 obecno�� drukarki szeregowej (zwykle drukarka jest
: r�wnoleg�a)
: 14-15   : Zainstalowane drukarki
:            brak;  1;  2;  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"


Re: Kursor textowy i porty komunikacyjne
#30
Author: Piotr Bochaczyk
Date: Wed, 16 Dec 1998 00:00
21 lines
686 bytes
Artur Jedlinski wrote:
>
> Piotr Bochaczyk <piotrb@mops.uci.agh.edu.pl> wrote:
> : Te dwie procedurki rozwi�zuj� chyba problem ukrywania kursora
> : tekstowego?
>
> : Procedure KursorOff; Assembler;
> :  Asm
<CIACH!>
Nie rozumiem jednego. W jakim celu Pan Artur Jedlinski przyslal jeszcze
raz CALEGO(!!!) mojego posta bez zadnego komentarza?
--
                 __          Piotr ,,Neevor'' Bochaczyk
  ___   ___     __    ___    member of Team OS/2 Poland
 _   _ _       __   _    _   & Asu'a Programmers Group
 _   _  __    __       _
 _   _    _  __      _       neevor@teamos2.org.pl
  ___  ___  __     ______
           __                Uroda x Rozum = const


Re: Kursor textowy i porty komunikacyjne
#41
Author: Artur Jedlinski
Date: Thu, 17 Dec 1998 00:00
17 lines
662 bytes
Piotr Bochaczyk <piotrb@mops.uci.agh.edu.pl> wrote:
: <CIACH!>
: Nie rozumiem jednego. W jakim celu Pan Artur Jedlinski przyslal jeszcze
: raz CALEGO(!!!) mojego posta bez zadnego komentarza
<SPLAT>
	Suxx! Sorry wszystkim, przepraszam, naprawde nie wiem co sie zwalilo,
ale wycialem praktycznie wszystko i napisalem pascalowa wersje obu procedur
(tak dla scislosci, nie zeby assemblerowe byly zle). I gdzies to jak widze
wcielo... Sam dopiero zauwazylem.. Jeszcze raz przepraszam, musialem cos nie
tak wcisnac w ktoryms momencie :)

	Nataniel <nataniel@rpg.pl>
        editor of "Nowe WIZJE"

"Co to za czasy, ze byle chlystek moze mowic NI do starej kobiety"


Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads