Re: Program rezydentny działający cały czas w

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