Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование видеоадаптеров EGA, VGA и SVGA.doc
Скачиваний:
138
Добавлен:
01.05.2014
Размер:
4.51 Mб
Скачать

Функция putch

Функция выполняет запись символа на консоль без буферизации. Прототип функции:

int putch( int ch );

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

Функция putch возвращает код ASCII записанного символа, или, в случае возникновения ошибки, константу EOF.

При использовании функции putch необходимо включить в программу файл CONIO.H, который содержит ее спецификацию.

Функция cputs

Функция выполняет запись строки символов, оканчивающихся нулем, на консоль. В отличие от функции puts курсор не переводится на новую строку.

Приведем прототип функции cputs:

int cputs( char *string );

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

При использовании функции cputs необходимо включить директивой include файл CONIO.H, содержащий спецификацию этой функции.

Функция cprintf

Функция обеспечивает вывод на экран монитора строк, отдельных символов и чисел в различных форматах непосредственно на консоль. Для вывода отдельных символов используется функция putch.

Приведем прототип функции cprintf:

int cprintf( char *format [,argument]... );

Ее параметры соответствуют параметрам функции printf, описанной выше. Единственное отличие состоит в том, что она не преобразует символ перевода строки в пару символов - возврат каретки, перевод строки.

Функция cprintf возвращает количество напечатанных символов или отрицательную величину в случае ошибки.

Литература

1. Richard Wilton, "Programmer's Guide to PC Video Systems", Second Edition, Microsoft Press, 1987.

2. Richard Wilton, "Programmer's Guide to PC & PS/2 Video Systems", Microsoft Press, 1987.

3. George Sutty, Steve Blair, "Programmer's Guide to the EGA/VGA", New York, 1988.

4. Bradley Dyck Kliewer, "EGA/VGA A Programmer's Reference Guide", New York, 1988.

5. Michael Abrash, "VGA color paging", Programmer's Journal 7.5, 1989.

6. Michael Abrash, "Still-higher 256-color VGA resolutions", Programmer's Journal 7.5, 1989.

7. Michael Abrash, "Higher 256-color resolutions on the VGA ", Programmer's Journal 7.1, 1989.

8. А. В. Фролов, Г. В. Фролов. Библиотека системного программиста. Тома 11-13. Операционная система Microsoft Windows 3.1 для программиста. Часть 1-3. Москва, "Диалог-МИФИ", 1994

9. А. В. Фролов, Г. В. Фролов. Персональный компьютер - шаг за шагом. Том 2. Операционная система Microsoft Windows 3.1. Москва, "Диалог-МИФИ", 1994

10. А. В. Фролов, Г. В. Фролов. Персональный компьютер - шаг за шагом. Том 4. Что вы должны знать о своем компьютере, "Диалог-МИФИ", 1994

11. А. В. Фролов, Г. В. Фролов. Библиотека системного программиста. Том 10. Компьютер IBM PC/AT, MS-DOS и Windows. Вопросы и ответы. Москва, "Диалог-МИФИ", 1994

12. А. В. Фролов, Г. В. Фролов. Библиотека системного программиста. Том 3. Программирование видеоадаптеров CGA, EGA и VGA. Москва, "Диалог-МИФИ", 1992

Оглавление

Аннотация 1

Введение 1

Как связаться с авторами 2

Благодарности 2

Замечания 2

1. Видеоподсистема компьютера 2

Мониторы 5

2. Режимы работы видеоадаптеров 7

Режимы 0 и 1 9

Режимы 0*, 1* 10

Режимы 0+, 1+ 10

Режимы 2 и 3 10

Режимы 2*, 3* 11

Режимы 2+, 3+ 11

Режимы 4 и 5 11

Режим 6 11

Режим 7 11

Режим 7+ 11

Режимы 8, 9, 0Ah 12

Режим 0Dh 12

Режим 0Eh 12

Режим 0Fh 12

Режим 10h 12

Режим 11h 13

Режим 12h 13

Режим 13h 13

3. Архитектура видеоадаптеров EGA и VGA 13

Монитор 14

Видеопамять 15

Текстовый режим 15

Видеопамять в графических режимах 23

Графический контроллер 29

Последовательный преобразователь 31

Контроллер атрибутов 31

Контроллер ЭЛТ 32

Синхронизатор 33

4. Регистры видеоадаптеров EGA, VGA и SVGA 34

Краткий обзор 34

Внешние регистры 36

Регистр определения различных режимов работы (Miscellaneous Output Register - MOR) 36

Регистр управления дополнительным устройством (Feature Control Register - FCR) 37

Регистр состояния 0 (Input Status Register 0 - ISR0) 37

Регистр состояния 1 (Input Status Register 1 - ISR0) 39

Регистр разрешения работы системы VGA (VGA Enable Register - VGA_ER) 41

Регистр сброса триггера-защелки светового пера (Light Pen Latch Reset Register - LPLRR) 42

Регистр установки триггера-защелки светового пера (Light Pen Latch Set Register - LPLSR) 42

Регистры контроллера ЭЛТ 42

Общая длина линии горизонтальной развертки (Horizontal Total Register - HTR) (индекс 0) 45

Длина отображаемой части горизонтальной развертки (Horizontal Display Enable End Register - HDER) (индекс 1) 45

Начало импульса гашения луча горизонтальной развертки (Start Horizontal Blank Register - SHBR) (индекс 2) 45

Конец импульса гашения луча горизонтальной развертки (End Horizontal Blank Register - EHBR) (индекс 3) 46

Начало импульса горизонтального обратного хода луча (Start Horizontal Retrace Register - SHRR) (индекс 4) 46

Конец импульса горизонтального обратного хода луча (End Horizontal Retrace Register - EHRR) (индекс 5) 46

Число горизонтальных линий растра (Vertical Total Register - VTR) (индекс 6) 47

Дополнительный регистр (Overflow Register - OVR) (индекс 7) 47

Предварительная установка горизонтальной развертки (Preset Row Scan Register - PRSR) (индекс 8) 47

Высота символов текста (Max Scan Line Register - MSLR) (индекс 9) 48

Начальная линия курсора (Cursor Start Register - CSR) (индекс 0Ah) 48

Конечная линия курсора (Cursor End Register - CER) (индекс 0Bh) 49

Регистры начального адреса 51

Регистры, определяющие положение курсора 51

Начало обратного вертикального хода луча (Vertical Retrace Start Register - VRSR) (индекс 10h) 52

Конец обратного вертикального хода луча (Vertical Retrace End Register - VRER) (индекс 11h) 53

Регистр адреса светового пера (Light Pen Address Register - LPAR) 53

Завершение отображения вертикальной развертки (Vertical Display End Register - VDER) (индекс 12h) 53

Логическая ширина экрана (Offset Register - OFR) (индекс 13h) 53

Положение подчеркивания символа (Underline Location Register - ULR) (индекс 14h) 54

Начало импульса гашения вертикальной развертки (Start Vertical Blank Register - SVBR) (индекс 15h) 56

Конец импульса гашения вертикальной развертки (End Vertical Blank Register - EVBR) (индекс 16h) 56

Управление режимом (Mode Control Register - MCR) (индекс 17h) 57

Регистр сравнения линий (Line Compare Register - LCR) (индекс 18h) 57

Регистры синхронизатора 61

Регистр сброса синхронизатора (Reset Register - RR) (индекс 0) 61

Регистр режима синхронизации (Clock Mode Register - CMR) (индекс 1) 62

Регистр разрешения записи цветового слоя (Color Plane Write Enable - CPWE) (индекс 2) 62

Регистр выбора знакогенератора (Character Generator Select Register - CGSR) (индекс 3) 63

Регистр определения структуры памяти (Memory Mode Register - MMR) (индекс 4) 64

Регистры графического контроллера 64

Регистр установки/сброса (Set/Reset Register - SRR) (индекс 0) 66

Регистр разрешения установки/сброса (Set/Reset Enable Register - SRER) (индекс 1) 66

Регистр сравнения цветов (Color Compare Register - CCR) (индекс 2) 67

Регистр циклического сдвига и выбора функции (Data Rotate & Function Select - DRFS) (индекс 3) 68

Регистр выбора читаемого слоя (Read Plane Select Register - RPSR) (индекс 4) 69

Регистр режима работы (Mode Register - MDR) (индекс 5) 69

Регистр смешанного назначения (Miscellaneous Register - MIR) (индекс 6) 71

Регистр маскирования цветовых слоев (Color Don't Care Register - CDCR) (индекс 7) 71

Регистр битовой маски (Bit Mask Register - BMR) (индекс 8) 72

Регистры контроллера атрибутов 73

Регистры цветовой палитры (0-15) (Color Palette Register's - CPR) 73

Регистр управления режимом (Mode Control Register - MCR) (индекс 10h) 74

Регистр цвета рамки экрана (Screen Border Color Register - SBCR) (индекс 11) 74

Регистр разрешения цветового слоя (Color Plane Enable Register - CPER) (индекс 12) 75

Регистр горизонтального панорамирования (Horizontal Panning Register - HPR) (индекс 13) 75

Регистр выбора цвета (Color Select Register - CSR) (индекс 14) 80

Регистры цифро-аналогового преобразователя VGA 80

Регистр маскирования пикселов (Pixel Mask Register - PMR) 81

Регистр состояния ЦАП (DAC State Register - DAC_SR) 81

Индекс читаемого регистра таблицы цветов (Look-up Table Read Index Register - LTRIR) 81

Индекс записываемого регистра таблицы цветов (Look-up Table Write Index Register - LTWIR) 82

Регистр данных таблицы цветов (Look-up Table Data Register - LTDR) 82

Нестандартные режимы видеоадаптера VGA 86

Организация видеопамяти 86

Режим 320х400 пикселов, 256 цветов 87

Режим 360х480 пикселов, 256 цветов 94