IPB
ЛогинПароль:

> Правила раздела!

1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!

 
 Ответить  Открыть новую тему 
> Tsr программы
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 12
Пол: Мужской

Репутация: -  0  +


Ребят, подскажите плиз, как на пасе делать TSR-проги?
Скажу прямо: запускаю в DOS-режиме одну EXE-прогу (скомпиленную ессноsmile.gif, она улетает, но как и "договаривались" реагирует на "что-то", потом запускаю другую и так до оговоренного предела.
хотя... вряд ли есть методы читать клавиатуру вне EXE-шника.

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

Перенесено из форума "Написание игр"
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Во-первых, почему в "Играх" ?
Во-вторых, я не совсем понимаю, зачем
Цитата
она улетает, но как и "договаривались" реагирует на "что-то", потом запускаю другую и так до оговоренного предела
? Зачем запускать что-то еще? в одном резиденте этого сделать нельзя?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Ищущий истину
******

Группа: Пользователи
Сообщений: 4 825
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


Цитата
как на пасе делать 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.




--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 29.05.2024 18:25
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name