![]() |
1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!
![]() ![]() |
![]() |
Altair |
![]()
Сообщение
#1
|
![]() Ищущий истину ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 824 Пол: Мужской Реальное имя: Олег Репутация: ![]() ![]() ![]() |
У меня такая проблемма:
я написал резидента, обработчик $9 прерывания, он у меня к прерыванию 10h часто обращается (для работы с экраном) и 15h(для задержки) И все это у меня зависает! Что может вызывать зависание? -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
virt |
![]()
Сообщение
#2
|
![]() Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 419 Пол: Мужской Репутация: ![]() ![]() ![]() |
может быть 15h и 10h какимто образом вызывают 9h?
-------------------- |
Altair |
![]()
Сообщение
#3
|
![]() Ищущий истину ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 824 Пол: Мужской Реальное имя: Олег Репутация: ![]() ![]() ![]() |
Не могут они вызывать никакие прерывания!
Во-первых 9h прерывание вызывается только когда нажимается клавища, во-вторых ни одно прерывание не вызывает другого! -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
virt |
![]()
Сообщение
#4
|
![]() Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 419 Пол: Мужской Репутация: ![]() ![]() ![]() |
а ты регистры перед вызовом сохраняешь?
и после выхода восстанавливаешь? может сохраняешь n байт в стеке ,а восстанавливаешь m<>n? Сообщение отредактировано: virt - 25.05.2004 18:27 -------------------- |
Altair |
![]()
Сообщение
#5
|
![]() Ищущий истину ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 824 Пол: Мужской Реальное имя: Олег Репутация: ![]() ![]() ![]() |
Цитата а ты регистры перед вызовом сохраняешь? Ага, вот где собака зарыта! А я уже разобрался - это только с задержкой проблеммы! Может подскажите какую - нибудь процедуру для задержки (можно что-то посчитать) -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
virt |
![]()
Сообщение
#6
|
![]() Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 419 Пол: Мужской Репутация: ![]() ![]() ![]() |
а задержка на сколько нужна?
если на 1/18 секунду то можно так : var timer:longint absolute $0:$046c; timer -- обновляется 18.2 раза в сек. как сделать задержку в реальном режиме поменьше есть только одно предположение : заводим переменную большую :longint например ,и в цикле выполнения чего-то там увеличиваем её значение. В начале узнаем тактовую частоту как-нить ,и потом берем коэффициент во сколько раз эта частота больше эталонной. -------------------- |
Altair |
![]()
Сообщение
#7
|
![]() Ищущий истину ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 824 Пол: Мужской Реальное имя: Олег Репутация: ![]() ![]() ![]() |
Ну я так и делаю - цикл с 10000 повторениями присваиваниями.
Кстати и таймер можно ускорить! Здесь обсуждалось как. -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
BlackShadow |
![]()
Сообщение
#8
|
Гость ![]() |
Не забудь всё "обрамить" CLI/STI
|
Altair |
![]()
Сообщение
#9
|
![]() Ищущий истину ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 824 Пол: Мужской Реальное имя: Олег Репутация: ![]() ![]() ![]() |
Цитата Не забудь всё "обрамить" CLI/STI Не забуду. Я этого резидента сейчас уже дописал, и теперь перевожу на АСМ. А странно, почему возникает эта проблемма, если пользоватся прерыванием 15h, а со всеми остальными нормально. -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
BlackShadow |
![]()
Сообщение
#10
|
Гость ![]() |
Возможно потому, что войдя в твой обработчик вызывается CLI, что закрывает INT 08h. Может INT 15h от него и работает?
|
Altair |
![]()
Сообщение
#11
|
![]() Ищущий истину ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 824 Пол: Мужской Реальное имя: Олег Репутация: ![]() ![]() ![]() |
Цитата Возможно потому, что войдя в твой обработчик вызывается CLI, что закрывает INT 08h. Может INT 15h от него и работает? Нет и без CLI не работает! -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
virt |
![]()
Сообщение
#12
|
![]() Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 419 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата Возможно потому, что войдя в твой обработчик вызывается CLI, что закрывает INT 08h. Может INT 15h от него и работает? cli не закрывает прерывание ,оно запрещает вызов новых прерываний. -------------------- |
Altair |
![]()
Сообщение
#13
|
![]() Ищущий истину ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 824 Пол: Мужской Реальное имя: Олег Репутация: ![]() ![]() ![]() |
Цитата cli не закрывает прерывание ,оно запрещает вызов новых прерываний. Да, и тогда тем-более зависание не от этого. Я вот думаю, что это как -то связанно с видео функциями. Где-то (не помню где), я прочитал, что написанный в пасе резидент, не может обращатся к видеосервису. Может такое быть? -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
BlackShadow |
![]()
Сообщение
#14
|
Гость ![]() |
Ага. А старушка, переходящая дорогу не может нести сумку.
|
Altair |
![]()
Сообщение
#15
|
![]() Ищущий истину ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 824 Пол: Мужской Реальное имя: Олег Репутация: ![]() ![]() ![]() |
Если старушка однозадачная, или работает в реальном режиме, то не может, а если работает в защищенном режиме или многозадачная, то может!
-------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
BlackShadow |
![]()
Сообщение
#16
|
Гость ![]() |
В защищённом режиме она ещё и за содержимое сумки может не беспокоиться, если положит её в память с ограниченными правами доступа
![]() |
Altair |
![]()
Сообщение
#17
|
![]() Ищущий истину ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 824 Пол: Мужской Реальное имя: Олег Репутация: ![]() ![]() ![]() |
А если серьезно, то какой, "жизенный цикл" TSR ?
В "MS-DOS для разработчика", все на асме, а как выглядит "скелет" TSR на пасе? Тот, что в справке к BP7, глюченый. -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
![]() ![]() |
![]() |
Текстовая версия | 21.07.2025 8:39 |