Otevřít hlavní menu

Změny

Keep

Přidáno 1 450 bajtů, 2. 10. 2012, 15:25
Založena nová stránka: 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 pa…
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ů]]