реклама на сайте
подробности

 
 
> Вопрос про прерывания в паскале, Как кроме моего оставить и штатное?
Diusha
сообщение Aug 26 2008, 14:14
Сообщение #1


Вечный студент
****

Группа: Участник
Сообщений: 500
Регистрация: 11-09-06
Из: Питер
Пользователь №: 20 262



Упрощенно прога:

Var xxx : pointer;
{$F+}
Procedure pr; interrupt;
begin
. . . . . .
end;
{F-}
BEGIN
getintvec($08, xxx);
setintvec($08, addr(pr));
. . . . . . .
END.

Вместо срандартного прерывания $08 назначена и выполняется моя процедурка pr, это работает. А как бы так сделать, чтобы кроме pr выполнялась и штатная ПП этого прерывания? (то биш в pr надо как-то вставить CALL (xxx) ???)
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
AHTOXA
сообщение Aug 27 2008, 08:11
Сообщение #2


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Цитата(zltigo @ Aug 27 2008, 00:38) *
Естествнно настраивается, если знать sad.gif что надо убираться с этого прерывания при использовании Вашей программы


А какие проблемы настроить? Почему захват пакетным драйвером вектора 60h вас не смущает, а захват оного моей программой - смущает?


Цитата(zltigo @ Aug 27 2008, 00:38) *
можно и искать свободный, эмулировать jump,... многое, что можно...

Да много чего можно, кто же споритsmile.gif

Цитата(Demeny @ Aug 27 2008, 11:33) *
Вот заведомо рабочий код с вызовом старого обработчика.


А где pushf перед вызовом?

Цитата(Demeny @ Aug 27 2008, 11:33) *
Здесь также продемонстрирована подмена стека прерванной программы на собственный стек размером 2048 байт. Подмена стека нужна, если только предполагается запускать программы в защищённом режиме DPMI, иначе возникнет "Runtime Error 202"


Ничего не возникает и без этого.


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
zltigo
сообщение Aug 27 2008, 08:36
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(AHTOXA @ Aug 27 2008, 10:11) *
А какие проблемы настроить? Почему захват пакетным драйвером вектора 60h вас не смущает, а захват оного моей программой - смущает?

Надо отличать минимально необходимые настройки от лишних сущностей.
Цитата
А где pushf перед вызовом?

В приведенном случае вызываемя функция вызывается с параметром smile.gif и декларирована, как обработчик прерывания.
Цитата
Ничего не возникает и без этого.

Слишком категорично smile.gif. Работает какая-то программа, имеет свой стек, на который и рассчитывает и вдруг ее кто-то прерывает и начинает пользовать ее стек sad.gif. Естественно, если Вы воспользуетесь счинанными байтами практически наверняка ничего не произойдет - редко стеки до байта рассчитывают, а вот если что-то будете более-менеее суровое в прерывании делать, то тогда свой стек надо ставить. Вопрос только как, ибо ASM вставки типа приведенных сносят оптимизацию борланду начисто.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Diusha   Вопрос про прерывания в паскале   Aug 26 2008, 14:14
- - zltigo   Цитата(Diusha @ Aug 26 2008, 16:14) ...то...   Aug 26 2008, 14:27
- - Diusha   1. А Вы не могли бы написать с правильным синтакси...   Aug 26 2008, 14:47
|- - zltigo   Цитата(Diusha @ Aug 26 2008, 16:47) 1. А ...   Aug 26 2008, 16:03
- - AHTOXA   Я делал так: Код GetIntVec($08,Save_08...   Aug 26 2008, 16:09
|- - zltigo   Цитата(AHTOXA @ Aug 26 2008, 18:09) SetIn...   Aug 26 2008, 17:31
|- - AHTOXA   Конечно. Но это не помешает работать нашей програм...   Aug 26 2008, 18:09
|- - zltigo   Цитата(AHTOXA @ Aug 26 2008, 20:09) Конеч...   Aug 26 2008, 18:18
|- - AHTOXA   Цитата(zltigo @ Aug 27 2008, 00:18) Еще к...   Aug 26 2008, 18:31
|- - zltigo   Цитата(AHTOXA @ Aug 26 2008, 20:31) Это н...   Aug 26 2008, 18:38
- - Diusha   zltigo, AHTOXA, спасибо!   Aug 26 2008, 16:24
- - Demeny   Не нужно придумывать лишнего, усложняя себе жизнь ...   Aug 27 2008, 05:33
|- - Demeny   Цитата(AHTOXA @ Aug 27 2008, 12:11) А где...   Aug 27 2008, 08:38
|- - zltigo   Цитата(Demeny @ Aug 27 2008, 10:38) Сохра...   Aug 27 2008, 08:49
|- - Demeny   Цитата(zltigo @ Aug 27 2008, 12:49) Понят...   Aug 27 2008, 09:25
- - AHTOXA   Цитата(zltigo @ Aug 27 2008, 14:36) Надо ...   Aug 27 2008, 10:15
- - zltigo   Цитата(AHTOXA @ Aug 27 2008, 12:15) Челов...   Aug 27 2008, 16:29
- - AHTOXA   Цитата(zltigo @ Aug 27 2008, 22:29) Помоч...   Aug 27 2008, 17:38
- - zltigo   Цитата(AHTOXA @ Aug 27 2008, 19:38) Однак...   Aug 27 2008, 19:07
- - AHTOXA   Цитата(zltigo @ Aug 28 2008, 01:07) Декла...   Aug 27 2008, 19:18
- - zltigo   Цитата(AHTOXA @ Aug 27 2008, 21:18) Кстат...   Aug 27 2008, 19:25
- - AHTOXA   Цитата(zltigo @ Aug 28 2008, 01:25) Для Б...   Aug 28 2008, 05:30


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 3rd August 2025 - 03:41
Рейтинг@Mail.ru


Страница сгенерированна за 0.01386 секунд с 7
ELECTRONIX ©2004-2016