From: Nick Walter <nick@ormix.riga.lv>
Subject: Исходник Одной Интересной Резидентной Программы
Organization: ORMIX Ltd
В последнее время все чаще стали появлятся "коммерческие" .TPU модули.
Често признаюсь, что меня не интересовал Turbo Vision, пока у меня не
появился RTL. Редко бывает, что в библиотеке, автор предусмотрел все, что
может заинтересовать того кто эту библиотеку использует. В Turbo Vision мне
не нравилось очень многое и по этому он меня не интересовал до тех пор, пока
у меня не появилась возможность его модифицировать.
В противоположенность "коммерческим" .TPU предлагаю исходный текст одной
очень интересной програмульки.
Я предполагаю, что у Вы знаете ассемблер .86 т.к. 90% исходника -
ассемблер.
Как известно сделать резидентную программу которая после активизации
пользуется досовскими прерываниями дело непростое :-| (1000 и 1 перезапуск по
зависанию).
Тем кого интересует КАК это сделать я и адресую свою програмульку. Хотя
я думаю она будет интересна и сама по себе как программа.
Программулька остается резидентной в памяти, шпионит за исользованием
указанного прерывания из указанной программы, при активизации записывает на
диск протокол использования прерывания:
1) адрес памяти откуда было вызвано прерывание
2) содержимое регистров
Выкидывает себя из памяти ( если это возможно ) при нажатии определенной
комбинации клавиш. Если удастся выкинуть TSR во время работы какой-нибудь
Pascal-праграммы, то по выходу из этой Pascal-программы скорее всего
произойдет зависание (недостаток инициализационного кода Turbo Pascal).
Тем кого моя программа заинтересует и кто захочет продолжения этой темы:
Могу предложить исходник более мощной TSR-программы, которая независимо
от своих паскалевских размеров (CODE,DATA,STACK,OVERLAY,HEAP), причем
реальный размер программы вычисляется автоматически, будет занимать в памяти
около 3K(!). Естественно это достигается путем своппинга. По желанию
пользователя своппинг производится либо в Extended (Expanded) Memory либо на
диск. Предусмотрено удаление программы из памя
|