Autor: Darek Uzar (uzi_at_ramboll.kie.top.pl)
Data: Mon 01 Feb 1999 - 11:47:42 MET
De Grejt Kornholio wrote:
>
> Witam
>
> Chciałem sobie napisać pewien programik w Pascalu - program odczytujący i
> zapamiętujący (najlpiej w pliku) wszelkie znaki wprowadzone z klawiatury.
> Nie było żadnego problemu dopóki program miał działać w tle (miał być
> rezydentny)
Oto (w skocie) co musisz zrobic:
1. Napisac procedure, ktora bedzie podpieta pod przerwanie i wywolywana
w tle. Jej deklaracja powinna wygladac nastepujaco :
procedure Nazwa;interrupt;
2. Powinna byc kompilowana jako "daleka", trzeba wiec podac ta
informacje kopilatorowi poprzez dyrektywe F, oto przyklad:
{$F+}
procedure Nazwa;interrupt;
begin
{tresc procedury}
end;
{$F-}
3. Podpiac ja pod przerwanie SetIntVector(nr_przerwania,@Nazwa);
4. Aby uczynic program rezydentnym musisz uzyc jako ostatniej instrukcji
programu glownego keep(0);
5. Nalezy zmniejszyc troche rozmiar sterty i stosu dyrektywa $M
np.{$M 1024,0,8192}
Jeszcze dwie uwagi:
1. Podpinajac procedure do odczytu klawiszy pod przerwanie $10 nic nie
zdzialasz - to jest przerwanie do obslugi karty video. Lepiej bedzie
uzyc do tego przerwania programowego $16 lub sprzetowego $9.
2. Z tym zapisem do pliku na przerwaniu to lepiej uwazac bo DOS nie jest
wielozadaniowy i w pewnych szczegolnych przypadkac Twoj komp sie
zawiesi. wiecej informacji znajdziesz w ksiazce "MS-DOS 5.0 od srodka"
Zycze powodzenia
-----
UZI
To archiwum zostało wygenerowane przez hypermail 2.1.7 : Tue 18 May 2004 - 18:09:47 MET DST