Přidáno 1 450 bajtů,
2. 10. 2012, 15:25 Ukončí běh programu, ale ponechá jej v paměti.
;Deklarace
procedure Keep(ExitCode: Word);
;Režim
:Reálný, Chráněný
;Poznámky
:Celý program zůstane v paměti, včetně datového segmentu, zásobníkového segmentu a haldy, takže nezapomeňte určit pomocí direktivy kompilátoru [[$M]] maximální velikost haldy. [[ExitCode]] odpovídá výstupnímu kódu, předanému standardní proceduře [[Halt]].
;Omezení
:Používejte opatrně! [[Rezidentní programy (TSR)]] jsou složité a není pro ně poskytována žádná jiná podpora. Informujte se v technické dokumentaci DOSu.
;Viz také
:[[DosExitCode]]
Vzorový příklad
{ Keep.PAS }
{ Příklad na Keep }
{$M $800,0,0 } { 2K zásobníku, žádná halda }
{ Tento program při každém stisku klávesy cvakne.}
uses Crt, Dos;
var
KbdIntVec : Procedure;
{$F+}
procedure Keyclick; interrupt;
begin
if Port[$60] < $80 then
{ Cvakne jen při stisku klávesy }
begin
Sound(5000);
Delay(1);
Nosound;
end;
inline ($9C); { PUSHF -- Push flags }
{ Volej starý ovladač }
KbdIntVec;
end;
{$F-}
begin
{ Vlož přerušovací proceduru do řetězce ovladačů klávesnice }
GetIntVec($9,@KbdIntVec);
SetIntVec($9,Addr(Keyclick));
Keep(0); { Ukonči a zůstaň rezidentní }
end.
[[Category:DOS]]
[[Category:Procedúry DOS]]
[[Category:Procedury a funkce správy procesů]]