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

Autor: Kowal (kowal2_at_friko6.onet.pl.nospam)
Data: Mon 01 Feb 1999 - 16:07:15 MET


>Dlaczego takie pytania mnie zawsze śmieszą?

Bo dla nas wygladaja banalnie!

>Choć problem jest ciekawy. Oczywiście działanie w tle to pestka, ale
>nigdy nie udało mi się nic zapisać do pliku. Chciałem kiedyś napisać
>"łapacza" ekranu. Wszystko ślicznie - ładnie łapał cały ekran, ale
>wieszał się przy zapisie do pliku. Pewnie dlatego, że to kolejne
>przerwanie i odwołanie... Czy ktoś rozwiązał może problem zapisywania
>do pliku z rezydenta?

Do glowy przychodzi mi cos takiego:

  Nalezy przechwycic _sprzetowe_ przerwanie klawiatury. Jak wiadomo nie
mozna w nim wywolywac niektorych funckji MS-DOS, wiec uzyjemy sztuczki :)
Zamiast zapisywac z do pliku z przerwania sprzetowego, przechwytujemy jakies
wolne przerwanie. Co ma zapisac przekazujemy w rejestrach. Przed wywolaniem
tego przerwania wykonujemy:

asm
  cli
end;

a koniec procedury obslugi przerwania sprzetowego robimy taki:

asm
  sti
  retf
end;

Wtedy wedlug mnie przerwanie zapisujace dane do pliku, powinno poczekac az
zakonczy sie przerwanie klawiatruy i dopiero wtedy sie wykonac. Co o tym
sadzicie?

Kowal ( kowal2_at_friko6.onet.pl )



To archiwum zostało wygenerowane przez hypermail 2.1.7 : Tue 18 May 2004 - 18:09:50 MET DST