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

 
 
> Вопрос про прерывания в паскале, Как кроме моего оставить и штатное?
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, 10:15
Сообщение #2


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

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



Цитата(zltigo @ Aug 27 2008, 14:36) *
Надо отличать минимально необходимые настройки от лишних сущностей.


Настройки есть, как данность. Так что сущностей не добавляется.
[off]Меня удивляет вот что. Человек задал вопрос, на который вы не дали ответа, ибо у вас "нет желания вспоминать". Я дал готовый, проверенный вариант, и тут у вас неожиданно появилось это желание. Выходит, желание раскритиковать сильнее желания помочь? smile.gif
[/off]

Цитата(zltigo @ Aug 27 2008, 14:36) *
В приведенном случае вызываемя функция вызывается с параметром smile.gif и декларирована, как обработчик прерывания.

Это где? Вот это чтоль:
Код
type      
          TInterrupt = procedure (Flags: Word);
var
          OldIntHandler : TInterrupt;

? Какой же это обработчик?

Цитата(zltigo @ Aug 27 2008, 14:36) *
Слишком категорично smile.gif. Работает какая-то программа, имеет свой стек, на который и рассчитывает и вдруг ее кто-то прерывает и начинает пользовать ее стек sad.gif.


Естественно стек делается с рассчётом на обработчик прерывания. Это гораздо проще, чем заводить отдельный стек на обработчик. "Зачем плодить лишние сущности"? smile.gif
А моё возражение было насчёт того, что в DPMI надо делать что-то особенное со стеком, а то без этого не работает.



Цитата(Demeny @ Aug 27 2008, 14:38) *
Не возникает, если Вы не используете локальные переменные в своём обработчике.


Конечно же использую, и ничего не валится. Дело наверное в чём-то другом. Может банально не хватает стека.


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


Гуру
******

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



Цитата(AHTOXA @ Aug 27 2008, 12:15) *
Человек задал вопрос, на который вы не дали ответа, ибо у вас "нет желания вспоминать".

Если быть точным и прочитать написанное мной полностью, то нет желания вспоминать диалект Паскаля не имеющий актуальности с 90x годов. Помочь не оказывался, в том числе и конкретными кодом smile.gif. И обсуждать начал отнюдь не Паскаль, а подход к делу. Не нервничайте.
Цитата
? Какой же это обработчик?

Опять через слово читаете sad.gif это декларация обработчика.
Цитата
Естественно стек делается с рассчётом на обработчик прерывания.

Да нуsmile.gif А DOS, насамом деле вполне себе многозадачная система - драйвера, TSR-ы, само ядро...
C чего Вы взяли, что прерывать будут исключительно Вашу программу c "рассчитанным" стеком?


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Aug 27 2008, 17:38
Сообщение #4


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

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



Цитата(zltigo @ Aug 27 2008, 22:29) *
Помочь не оказывался, в том числе и конкретными кодом smile.gif.

Однако же не помогли sad.gif.
Цитата
И обсуждать начал отнюдь не Паскаль, а подход к делу. Не нервничайте.

Да я не нервничаю. Просто удивляюсь...
Цитата
Опять через слово читаете sad.gif это декларация обработчика.

Это вы через слово цитируете. Вы написали, что
Цитата
В приведенном случае вызываемя функция вызывается с параметром и декларирована, как обработчик прерывания.
(выделение моё). Вот я и поинтересовался, где она декларирована как обработчик прерывания.
Цитата
C чего Вы взяли, что прерывать будут исключительно Вашу программу c "рассчитанным" стеком?

Да, тут я был не прав. Посмотрел, почему же тогда у меня всё работало, оказывается я в прерывании работал только с глобальными переменными. Но продолжаю настаивать, что это не зависит от DPMI smile.gif


--------------------
Если бы я знал, что такое электричество...
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
- - AHTOXA   Цитата(zltigo @ Aug 27 2008, 00:38) Естес...   Aug 27 2008, 08:11
|- - zltigo   Цитата(AHTOXA @ Aug 27 2008, 10:11) А как...   Aug 27 2008, 08:36
|- - 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
- - 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 - 17:48
Рейтинг@Mail.ru


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