Помощь - Поиск - Пользователи - Календарь
Полная версия: Tsr программы
Форум «Всё о Паскале» > Pascal, Object Pascal > Теоретические вопросы
nonpascaler
Ребят, подскажите плиз, как на пасе делать TSR-проги?
Скажу прямо: запускаю в DOS-режиме одну EXE-прогу (скомпиленную ессноsmile.gif, она улетает, но как и "договаривались" реагирует на "что-то", потом запускаю другую и так до оговоренного предела.
хотя... вряд ли есть методы читать клавиатуру вне EXE-шника.

Хотел бы сделать резидентный русификатор...
sad.gif

Перенесено из форума "Написание игр"
volvo
Во-первых, почему в "Играх" ?
Во-вторых, я не совсем понимаю, зачем
Цитата
она улетает, но как и "договаривались" реагирует на "что-то", потом запускаю другую и так до оговоренного предела
? Зачем запускать что-то еще? в одном резиденте этого сделать нельзя?
Altair
Цитата
как на пасе делать TSR-проги?

Пример TSR:
Код

{ Example for Keep }

{$M $800,0,0 }   { 2K stack, no heap }
{ This program causes a click each time
 a key is pressed.}
uses Crt, Dos;
var
  KbdIntVec : Procedure;
{$F+}
procedure Keyclick; interrupt;
begin
  if Port[$60] < $80 then
    { Only click when key is pressed }
    begin
    Sound(5000);
    Delay(1);
    Nosound;
    end;
  inline ($9C); { PUSHF -- Push flags }
  { Call old ISR using saved vector }
  KbdIntVec;
end;
{$F-}
begin
  { Insert ISR into keyboard chain }
  GetIntVec($9,@@KbdIntVec);
  SetIntVec($9,Addr(Keyclick));

  Keep(0); { Terminate, stay resident }
end.


Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.