Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Обработка прерываний в MS DOS




Вывод на экран в консольном приложении.

Прямая работа с видео памятью.

Функции видео BIOS.

Видео страницы (дисплейные страницы).

В текстовом режиме размер видеобуфера > размера 1 экрана.

80х25 4кбайта 4 страницы.

40х25 2кбайта 8 страниц.

Поэтому в функциях видеобиос надо указать на какой странице находится выход.

 

Представить ч/з прерывание INT 10h.

AH=0 (№ фун-ии) установить видео режим.

В AL=№ режима.

0,1-16 цвет.текст 40х25.

2,3-16 цвет.текст 80х25.

В современных ПК поддерживается текстовый режимы VESA BIOS Extention, то АН=4FH, AL=02h.

№ видеорежима задается в рг ВХ. ВХ=№ режима.

108h 80x60.

109h 132x25.

10Ah 132x43.

10Bh 132x50.

10Ch 132x60.

Другие полезные функции:

АН=2-установить позицию курсора.

ВН-страница

DН-строка.

ВL-столбец.

АН=3 – получить позицию курсора.

АН=5 – установить активную видеостраницу, т.е. ту страницу, которая отображается на экране.

AL=номер страницы.

Вывести символ в текущую позицию курсора:

1. AH=09h – с атрибутом=BL.

2. AH=0Ah – без атрибута (BL не найден).

3. AH=0Eh – в режиме телетайпа.

AL=символ. BH=страница.

В рг СХ для 1,2 записывается кол-во повторений символа.

Для 1,2 курсор не перемещается!

AH=0Fh – получить видео режим.

Выход: AL-видеорежим.

ВН-актив.видео страница.

АН-число столбцов символов на экране.

AH=11h – загрузка шрифтов.

AL=00h.

 

Для текстов видео режимов, кроме 7, видео память распологается в области начиная с адреса 0В800h:0000h. Поэтому в MS DOS любая программа может выводить на экран простой командой пересылки данных не прибегая к функциям DOS и BIOS.

На ПК обычно бывает 0 видеостран., т.е. сегмент В800 соответствует левой верхней точке экрана. Номерование столбцов идет слева направо, сверху вниз.

 

WriteConsoleA – вывод начинается с текущей позиции курсора с текущего атрибута.

SetConsoleCursorPosition – установить курсор на задан.позицию.

SetConsoleTextAttribute – установить атрибут для текста.

 

Собственный обработчик прерываний среды MS DOS пишется в след.случаях:

1. чтобы заменить стандартный обработчик (в особых случаях ошибок при выполнении программы) – деление на 0.

2. чтобы заменить стандартный обработчик MS DOS для опред.ситуаций – обработ.по Ctrl+c.

3. чтобы связать свой обработчик прерывания со стандартным обраб. и выполнить, как системный, так и собственный – прерывание от таймера.

4. чтобы обеспечить связь программы, которая остает.резидентной после завершения с другими прикладными программ.

5. чтобы обслужить прерывание не поддерживаясь стандарт.драйверами устр. MS DOS.

Для установки корректных обраб.прерываний. чтобы они не вступали в конфликт с другими, MS DOS пред-ет спец.средства – ч/з прерывание int 21h.

25h – устан.собствен.обработчик прер-я.

35h – получить указ-ль прер-я, известный системе в настоящ.время

31h – завершение программ.и остав.резидент-й.

Int 27h - завершение программ.и остав.резидентй.

Проблемы, возникающие при установке программы в резидент:

1. надо сохранить адрес старшего обработ.прер-ий.

2. проверить не находится ли наша программа в резиденте.

3. установить новые адреса обработ.прерываний.

Для определения наличия программы в памяти используются след.способы:

1. применение незадействен.прерывания или несуществен.ф-ии какого-либо прерывания.

2. с помощью мультиплексного прерывания INT 2FH, которая предназначена для взаимодействия DOS с резидент.програм.

3. применеие спецификации AMIS-альтер.спец.мультипл.прер-я – ч/з прер-е INT 20h.

 




Поделиться с друзьями:


Дата добавления: 2014-01-06; Просмотров: 498; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.008 сек.