turbo pascal, драйвер, почему очищается вектор прерывания?

программирование программы pascal

написал программу на паскале, заменяет прерывание int 171 (которое свободно) на свое. После выхода из проги вектор прерывания в памяти нулевой.. делаю Keep(0) в конце.

Подскажите, пожалуйста, как оставить в памяти вектор в таблице прерываний после выхода из программы?

Примечание:
DOS

Примечание:
прерывание выставляется корректно. в процессе работы программы все работает, а вот после выхода - очищается...

Примечание:
точно запускаю это в чистом досе на компьютере на котором кроме доса ничо нет. Могу перейти в UnrealMode когда захочу, написал программы для работы для с одним USB девайсом, мышками, клавиатурами, AC97-подобного контроллера. в том что это не windows я уверен на сто процентов. Что в реал, что в анреал режимах - безрезультатно все... грешил, что это паскаль сбрасывает прерывания, но даже когда ехе-шку запускаю - все равно в памяти по адресу, где должен лежать указатель на прерывание, после выхода - нули... Сама функция прерывания остается в памяти и вызывается нормально..

Примечание:
может это какой-нибудь command.com или vc.com все сбрасывает? но вряд ли.

Еще вот вопрос: как из exe сделать com или sys драйвер?
Ответы:
Ты в под windows это пускаешь ?
Точно запускаешь в real mode в настоящем досе, а не в эмуляции из-под винды?
А насчёт того, что сама программа при выходе очищает прерывание - это весьма вероятно, и что делает она это неспроста. У вас где обработчик прерывания расположен? В выгружаемой памяти?
SYS не знаю, а COM это компиляция в том режиме, когда данные и программа размещаются в одном адресном блоке. При указании самой компактной модели компиляции, EXE можно тупо переименовать в COM.
> Еще вот вопрос: как из exe сделать com или sys драйвер?
на счет sys не в курсе, а com, в общем случае не получится. у com главное ограничение - он должен занимать только один сегмент (не более чем 64 Кбайта), при чем и данные и код и стек должны быть там вместе. не уверен, что Turbo Pascal так умеет. вообще резидентов "кошерно" писать на ассемблере


13 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.