Курсовая работа: Програма Txtprintcom - резидентна програма для швидкого і зручного друкування виборчого тексту

Iснують i iншi ситуацiї, коли зручнiше було б використовувати функцiї DOS. Отже, треба навчитися перемагати нереентабiльнiсть DOS. Для цього iснує багато можливостей.

Почнем з того, що існує простий (хоча й недокументований) спосiб запобiгнути конфлiктiв з операційною системою. При активiзацiї програма може перевiрити байтовий прапорець активнiстi DOS i, якщо вiн вiдмiнний вiд нуля (сервiс DOS недоступний), повернутись до пасивного стану. Адресу цього прапорця повiдомляє функцiя DOS 34H.


Функція 34H. Дає адресу прапорця активністі DOS

Виклик: AH = 34H

Повертає: ES:BX- адреса прапорця

Нажаль, якщо вибрати цей путь, така резидентна программа, скоріше за все, взагалі буде не взмозі стартувати. Це пов`язано з тим, що COMMAND.COM та багато інших програм проводять багато часу в очикуванні ввода строки з клавіатури посредством функції DOS 0AH, і, отже, прапорець активністі DOS майже завжди взведений. Ця обставина використовується у диспетчері функцій DOS, який може мати вигляд на зразок цього:


Int_21h PROC far

sti

pushf

cmp ah,0Ah ; якщо номер функції не рівний 0ah,

jnzExec ; то приступити к виконанню.

Fn0Ah:

pushax ; якщо функція 0ah, то затримати

movah,0bh ; її виповнення до тіх пір, поки у

int 21h ; буфері клавіатури не з`явиться

cmpal,0 ; хочаб один символ.

pop ax

jnz Exec

push cx

mov cx,4000h

Delay: loop Delay ; зробити паузу

pop cx

jmp short Fn0Ah ; і повторити перевірка буфера.

Exec:

or byte ptr cs:DOS_busy,01h ; встановити признак

; зайнятості DOS.

Popf ; визвати початковий обробник.

pushf

call dword ptr cs:[Int_21h_vect]

К-во Просмотров: 606
Бесплатно скачать Курсовая работа: Програма Txtprintcom - резидентна програма для швидкого і зручного друкування виборчого тексту