русс | укр

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

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

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

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


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

И С П О Л Ь З О В А Н И Е П Р Е Р Ы В А Н И Й


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


 

Многие из процедур работы с экраном не могут быть выполнены путем применения только средств Турбо Паскаля. Для реализации таких процедур, как ввод-вывод в ненулевые страницы видеопамяти, управление курсором и др., необходимо использовать функции операционной системы MS DOS. Обращение к таким функциям осуществляется через так называемые прерывания, которые представляют собой стандартные подпрограммы базовой системы ввода-вывода (BIOS) операционной системы MS DOS.

 

Обращение к программным прерываниям выполняется с помощью процедуры Intr, заголовок которой имеет вид

Intr(N:byte; Var Reg:Registers),

где N - номер программного прерывания;

Reg - запись типа Registers, через которую передаются параметры заданного прерывания.

 

Предописанный тип Registers определен в стандартном модуле Dos и представляет собой запись с вариантами:

Type Registers = record

Case integer of

0 : (AX,BX,CX,DX,BP,SI,ES,Flags : word);

1 : (AL,AH,BL,BH,CL,CH,DL,DH : byte);

end;

 

Переменная типа Registers служит для доступа к регистрам микропроцессора. Вариант 0 позволяет обращаться к 16-разрядным, а вариант 1 - к 8-разрядным регистрам.

 

Пример.

VarR1,R2 : Registers;

Begin

R1.AX:=$01FF;

R2.AL:=$CA;

............

 

Подробно прерывания описаны в техническом руководстве по операционной системе MS DOS.

 

Значения некоторых прерываний:

$5 - распечатка содержимого экрана;

$10 - управление экраном;

$12 - размер памяти;

$16 - ввод с клавиатуры;

$21 - вызов функции и т.д.

 

Прерывание $21 содержит в себе большой набор функций операционной системы. Номер функции определяется содержимым регистра AH.

Примеры функций для прерывания $21:

$5 - вывод на печатающее устройство;

$19 - задание текущего дисковода;



$2A - выбор даты;

$2C - выбор времени по таймеру;

$3D - открытие файла и т.д.

 

Пример. Составить программу, определяющую размер оперативной памяти компьютера. Для выполнения данной задачи можно использовать прерывание $12, которое проверяет оперативную память и помещает размер этой памяти в регистр AX.

 

Var Size : word;

Reg : Registers;

Begin

Intr($12,Reg);

Size:=Reg.AX;

Writeln('ПЭВМ имеет ',Size,' Кбайт оперативной памяти');

 

Для управления видеотерминалом используется прерывание $10. Функции, выполняемые этим прерыванием, также определяются содержимым регистра AH. Некоторые функции прерывания $10 приведены на следующей странице.

 

Функция AH = 2 устанавливает положение курсора в координатах 0 ..79, 0 .. 24. Для каждой страницы имеется свой закрепленный за нею курсор.

Функция AH = 5 используется для того, чтобы сделать видимой нужную текстовую страницу.

При AH = 9 и AH = 10 курсор не перемещается, а записываемый символ и его копии появляются на месте курсора и справа от него. При достижении правого края экрана организуется переход на новую строку.

Функция AH = 14 имитирует вывод на экран в режиме пишущей машинки. Именно этот режим реализуется процедурами Write и Writeln, но только для нулевой страницы.

 

Содержимое регистра АН Действие Содержимое регистров
Установить размер курсора СН - начальная линия СL - конечная линия BH - номер страницы
Установить положение курсора DH - номер строки DL - номер позиции BH - номер страницы
Установить страницу AL - номер страницы
Записать символ c атрибутами AL - символ BL - атрибуты BH - номер страницы CX - количество копий символа
Записать символ без атрибутов AL - символ BH - номер страницы CX - количество копий символа
Записать символ и сдвинуть курсор AL - символ BH - номер страницы

 

 



<== предыдущая лекция | следующая лекция ==>
ТЕКСТОВЫМ РЕЖИМОМ ЭКРАНА | У П Р А В Л Е Н И Е Ф О Р М О Й К У Р С О Р А


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


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

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

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


 


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

 
 

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

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