IPB

> Keep (процедура) (модуль Dos)
Чат
Форум
Загрузка...
 

Язык:
Русский
English

 Keep (процедура)    (модуль Dos)


Keep (или Terminate Stay Resident - выйти и остаться резидентом) завершает программу и оставляет ее в памяти.

Объявление

 Procedure Keep(ExitCode : Word);

Режим

Real, Protected

Замечания

Вся программа остается в памяти, включая сегмент данных, сегмент стека и кучу, так что убедитесь, что вы задали максимальный размер кучи, с использованием директивы компилятора $M. Параметр ExitCode соответствует параметру, передаваемому в стандартную процедуру Halt.

Ограничения

Используйте с осторожностью! Резидентные программы (TSR) достаточно сложны, и никакой другой поддержки для них нет. Смотри техническую документацию по DOS для более подробной информации.

Смотри также

Пример

Язык:
Русский
English


 { Пример программы для процедуры Keep }

 { В данном примере используются процедуры GetIntVec и SetIntVec }
 { Посмотрите их описание и пример программы ! }

{$M $800, 0, 0 }   { 2кб стек, без кучи }

{ Эта программа включает встроенный динамик
  на короткое время каждый раз, при нажатии клавиши }


uses Crt, Dos;

var
  KbdIntVec : procedure;

{$F+} { Включаем дальний (FAR) тип вызова }
procedure KeyClick; Interrupt;
begin

 { Порт $60 - порт клавиатуры (также $64 ) }

 if Port[$60] < $80 then
 { Щёлкаем при нажатии клавиши }
 begin
    Sound(5000);
    Delay(1);
    NoSound;
 end;
 InLine($9C); { PUSHF -- запоминаем флаги в стеке }

 { Теперь нужно вернуть событие клавиатуры в цепь обработки. }
 { Вызываем старый ISR с использованием сохранённого вектора }

  KbdIntVec;
end;
{$F-}

begin
 { Устанавливаем новый обработчик событий клавиатуры }
 { $9 - прерывание клавиатуры }
  GetIntVec($9, @KbdIntVec);
 { Переназначаем стандартный обработчик на нашу процедуру }
  SetIntVec($9, Addr(KeyClick));
 { Оставляем программу в памяти }
  Keep(0);
end.
 
 К началу страницы 
Тэги: Keep
 

Код для вставки: :: :: :: ГОСТ ::
Поделиться: //
 



-
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"