Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.134.87.95] |
|
Сообщ.
#1
,
|
|
|
Обязательно ли проверять флаг занятости DOS и (или) использовать
прерывание int28h, если программа перехватывает девятое прерывание и в новом обработчике при этом используются функции DOS (возможно, не одна, а несколько)и вывод на экран с помощъю записи в B800h ? |
Сообщ.
#2
,
|
|
|
Да.
Если используешь ф-ии ДОС, надо или проверять флаги, или использовать int 28h. Вывода на экран через B800h тут совершенно не причём... Это к ДОСу отношения не имеет. |
Сообщ.
#3
,
|
|
|
Узнал я, честно говоря, о необходимости использования 34h и int28h
слишком поздно. Ну зависла, фиг с тобой, сейчас, думаю, нажму ресет, и всё нормально... Эксперементатор хренов... При загрузке то выдавалось "re-select CPU speed", то меня просили вставить дискету в дисковод, а часы стали показывать 4 января 1980 года. Не знаю, как мне повезло, но вроде сейчас с виду всё работает. Да, к чему это я всё... В TechHelpe об 34h и int28h самый минимум (у меня старая версия, но русская), я представляю себе что надо делать, но я уже боюсь сломать машину, поэтому прошу... поделитесь опытом : какой алгоритм использования 34h и int28h должен быть ? Или дайте исходник, пожалуйста. |
Сообщ.
#4
,
|
|
|
Из прерывания 9 функции ДОС не должны вызываться никоим образом - достаточно выставить флаг в своем обработчике бездействия ДОС и, когда будет время, все функции спокойно исполнятся. В противном случае придется отслеживать и все остальные прерывания (несмотря на незанятость ДОС другие прерывания в этот момент могут быть активизированы и обращение к прерываниям ДОС может сильно разрушить их планы)...
|
Сообщ.
#5
,
|
|
|
Вообще-то... я случайно перепутал девятое
прерывание с восьмым. Ну то есть я хотел обработать прерывание от таймера, а получилось - от клавиатуры... Но это не важно. Я читал, что они не отличаються, то есть не в том смысле, что вообще, а в том, что одинаково приводят к краху системы... > достаточно выставить флаг в своем > обработчике бездействия ДОС и, когда будет > время, все функции спокойно исполнятся. Да, конечно..... но... КАКИМ МАКАРОМ ЭТО ОСУЩЕСТВЛЯЕТСЯ ?????????? Я больше не хочу сам ставить такие эксперименты после того, как чуть не навернул всё. ЕСТЬ ЖЕ ЗДЕСЬ НАВЕРНЯКА СВОИ ТОНКОСТИ, о которых я не знаю, ... я, конечно могу вызвать 34h, в ES:BX узнать активна ДОС или нет и всё такое..... НО малейший просчёт и... ТРУБА.... Я прошу сказать мне _точно_ как всё ЭТО оформить, и (или) если есть,то дать исходник. |