Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Структура информации о видеорежиме.



 

type ModeInfoBlock = record

       ModeAttributes : word;

       WinAAttributes : byte;

       WinBAtrributes : byte;

       WinGranularity : word;

       WinSize      : word;

       WinASegment : word;

       WinBSegment : word;

       WinFuncPtr : pointer;

       BytesPerScanLine : word;

       XResolution : word;

       YResolution : word;

       XCharSize : byte;

       YCharSize : byte;

       NumberOfPlanes : byte;

       BitsPerPixel : byte;

       NumberOfBanks : byte;

       MemoryModel : byte;

       BankSize  : byte;   

       NumberOfImagePages : byte;

       Reserved    : byte;

       DC             : array[1..9] of byte;

       Other          : array[1..216] of byte;

  end;                     

 

Описание полей информационной структуры.

 

ModeAttributes : аттрибуты видеорежима.

WinAAttributes и WinBAttributes : аттрибуты, описывающие схему доступа к кадровому буферу, а так же расположение в нем окон.

WinASegment и WinBSegment : сегменты адресного пространства процессора, в которых расположены окна.

WinGranularity : наименьший размер окон в килобайтах, которые могут быть расположены в памяти кадрового буфера.

WinSize : размер окна в килобайтах.

WinFuncPtr : указатель на оконную функцию.

XResolution и YResolution : для графического режима определяет ширину и высоту кадрового буфера в пикселях, для текстового – в символах.

XCharSize и YCharSize : размер символа в пикселях.

NumberOfPlanes : количество страниц, доступных в данном видеорежиме для программ (для стандартного 16 цветного VGA режима равно 4).

BitsPerPixel : количество битов на пиксел.

MemoryModel : определяет основной тип организации памяти в данном видеорежиме

                                           00h = текстовый режим

                                           01h = CGA

                                           02h = Hercules

                                      03h = постраничный

                                           04h = упакованное хранение пиксела

                                           05h = 4 и 256 цветный      

                                           06h = Direct Color     

                                           07h = YUV

                                           08h-0Fh = зарезервировано

                                           10h-FFh = определено производителем видеоадаптера

NumberOfBanks : количество банков , в которые сгруппированы сканлинии (для режимов 0Dh-13h равно 1).

BankSize : размер банка в килобайтах.

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

Dc : набор атрибутов, определяющих цветовую модель.

 

8. Прерывание 12 – определить размер памяти в АХ –объём памяти в КБайтах.

 

9. Прерывание 13 – работа с дисками и дискетами, зависит от AH.

10. Прерывание 14 – работа с COM портом, зависит от АН: АН = 0 – инициализация порта, в AL – требуемый параметр, в DX – номер используемого канала.

возврат из прерывания: АН – статус управления, AL – статус модемов.

АН = 1 – передать символ: AL – символ, DX – номер канала, возврат такой же как и в предыдущем.

AH = 2 – прочитать символ, DX – номер канала.

Возврат: АН –статус управления AL – символ.

 

11. Прерывание 16 – работа с клавиатурой.

От АН:

0 – считать символ. Возврат: AL – код символа, АН – код сканирования.

1 – тест на наличие символа. Возврат: флаг равенства 0, ZF = 1. AL, AH – аналогично предыдущему случаю.

2 – прочитать статус клавиатуры поразрядно. Если в 1 установлен 0-й разряд, то нажат правый Shift.

1-й разряд – левый Shift.

2-й – Ctrl

3-й – Alt

4-й – Scroll Lock

5-й – Num Lock

6-й – Insert

 

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

4 – установить щелчок при нажатии на клавишу

5 – записать символ в буфер: CL – код символа, СН – код сканирования.

Возврат из прерывания: AL = 0 – символ записан успешно, если 1 – ошибка.

Прерывание 17h – работа с принтером

Функция 00h – вывод на принтер

На входе: AH 00h
  AL Символ
  AX Должен быть обнулен(00h)
Возврат: AH Статус принтера        0 - таймаут        1,2 – не используется        3 – ошибка передачи        4 – занято        5 – нет бумаги        6 – подтверждение        7 – не готов

Функция 01h – инициализировать принтер

На входе: AH 01h
  DX 00h
Возврат: AH Аналогично предыдущему

Функция 02h – считать статус принтера

Возврат: аналогично предыдущему

Прерывание 18h –      работа с принтером (вызов подзадачи)

Прерывание 19h –      начальная загрузка (перезагрузить компьютер)


Поделиться:



Последнее изменение этой страницы: 2019-04-19; Просмотров: 173; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.017 с.)
Главная | Случайная страница | Обратная связь