русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Рекомендации по использованию видеосервиса BIOS


Дата добавления: 2014-11-27; просмотров: 976; Нарушение авторских прав


1. Программы, выполняемые в операционной среде DOS, используют по умолчанию текстовый режим 3, страницу 0.

2. Программы более широкого назначения должны запрашивать текущий видеорежим и страницу (функция 0Fh, int 10h) с последующим их применением в используемых функциях BIOS.

.......

Mov ah,0Fh ;Запрос текущего режима

Int 10h

Mov v_mode, al ;Сохраним режим

Mov current_page, bh ;Сохраним строку

3. Если программа выводит изображение на разные страницы, то последовательность действий с каждой страницей может быть следующей (предполагается режим по умолчанию с "0" – страницей):

– установка страницы функцией 05h;

– установка позиции курсора функцией 02h;

– построчное форматирование текста BIOS или DOS.

В дальнейшем может быть организован циклический просмотр содержания страниц путём их переключения функцией 05h, int 10h. При выходе из программы обязательно восстанавливаем искомую "0"-страницу. Сделать это, к примеру, можно так.

..........

continue:

..........

;Анализ буфера клавиатуры функцией DOS 06h int 21h с целью её завершения нажатием ;произвольной клавиши

mov ah,06h ;Функция ввода без ожидания

mov dl,0FFh ;Ввод

int 21h

jnz out_program ;zf=0, есть символ, на выход

jmp continue ;zf=1, символа нет, продолжим работу

out_program: ;Восстановим страницу функцией 05h, int 10h

..........

exit: mov ax,4C00h ;Вызов функции завершения программы

int 21h

End start

Страницы видеобуфера могут быть последовательно отформатированы и способом непосредственного программирования памяти. Выбор страниц при этом осуществляется соответствующей инициализацией сегментного регистра ES (см. п. 2.2). Просмотр содержимого страниц также может быть выполнен путём их последовательного переключения с помощью функции 05h, int 10h.



4. Структура демонстрационной программы, исследующей функцию "мерцание – яркость фона" (функция 10h, подфункция 03h, int 10h).

;Очистка экрана

..........

;Инициализация 2-х локальных окон, каждое со своим атрибутом и текстом. При задании

;атрибутов цвета старший (7-ой по номеру) бит выбран равным "1".

.........

continue: ;Включим мерцание

mov ah,10h

mov al,03h

mov bl,1 ;Мерцание

int 21h ;

;Введём задержку на 3 сек

.........

;Включим повышенную яркость

.........

;Введём задержку на 3 сек

.........

;Анализ буфера клавиатуры функцией DOS 06h int 21h с целью её завершения нажатием

;произвольной клавиши

.........

jnz out_program ;zf=0, есть символ, на выход

jmp continue ;zf=1, символа нет, продолжим работу

out_program: ;Восстановим мерцание (по умолчанию)

..........

exit: mov ax,4C00h ;Вызов функции завершения программы

.........

5. Если в программе организован бесконечный цикл вывода данных на экран функциями BIOS (09h, 0Ah, 0Eh, 13h), то его нельзя будет аварийно прервать с помощью нажатия клавиш Ctrl+C (т.е. выйти из программы, как это можно сделать при использовании соответствующих функций DOS). Чтобы можно было это сделать, включите в тело цикла функцию 0Bh прерывания Int 21h.

 



<== предыдущая лекция | следующая лекция ==>
Прерывание int 10h. Видеофункции BIOS | Прерывание int 16h


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

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