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

 
 
> Вопрос про прерывания в паскале, Как кроме моего оставить и штатное?
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
Demeny
сообщение Aug 27 2008, 08:38
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 648
Регистрация: 11-02-06
Из: Санкт-Петербург
Пользователь №: 14 237



Цитата(AHTOXA @ Aug 27 2008, 12:11) *
А где pushf перед вызовом?

А зачем ? smile.gif Сохранить флаги и регистры и восстановить их - это задача старого обработчика, если он корректно написан (иначе как же он работал до этого).
Цитата(AHTOXA @ Aug 27 2008, 12:11) *
Ничего не возникает и без этого.

Не возникает, если Вы не используете локальные переменные в своём обработчике. У меня, например, в обработчике прерывания идёт гигантская работа с обилием локальных переменных, вызов других функий и т. п. Поэтому я сделал себе свой "локальный" стек. Без него у меня программа валится по "Runtime Error 202" (DPMI, защищённый режим).


--------------------
Сделано в Китае. Упаковано в России.
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
|- - zltigo   Цитата(AHTOXA @ Aug 27 2008, 10:11) А как...   Aug 27 2008, 08:36
|- - 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 Текстовая версия Сейчас: 1st August 2025 - 21:08
Рейтинг@Mail.ru


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