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

8. Использование функций ms-dos для управления видеоадаптерами

Операционная система MS-DOS предоставляет программистам всего несколько функций для работы с видеоподсистемой компьютера.

Вывод символов - функция 02h

Вывод символа на экран через стандартный поток вывода.

На входе:

AH

02h

DL

ASCII-код выводимого символа

На выходе:

Не используются

Данная функция обрабатывает нажатие комбинации клавиш <Ctrl+Break>.

Вывод строки на экран монитора - функция 09h

Выводит строку на экран монитора. Строка отображается, начиная с текущей позиции курсора. Строка должна оканчиваться символом '$' (код ASCII 24h). Строка может включать управляющие символы.

На входе:

AH

09h

DS:DX

Адрес отображаемой строки

На выходе:

Не используются

Данная функция обрабатывает нажатие комбинации клавиш <Ctrl+Break>.

9. Стандартные функции вывода языка Си

В главе рассмотрены основные стандартные функции вывода текстовых данных на экран (через стандартный выходной поток и через консоль). К ним относятся функции putc, putchar, putch, puts, cputs, printf и cprintf.

Несмотря на то, что эти функции не входят в определение языка Си, по причинам совместимости их формат одинаков для всех трансляторов с языка Си.

Функции putchar и putc

Эти функции помещают один символ в текущую позицию выходного потока. Прототипы функций представлены ниже:

int putc( int ch, FILE *stream ); int putchar( int ch );

Функция putc отличается от putchar наличием второго аргумента, который определяет выходной поток, в который помещается символ. Она может использоваться и для записи символов в открытый файл и для записи в стандартные потоки ввода-вывода. В частности, если второй аргумент функции равен константе stdout, то она эквивалентна функции putchar и выводит символ в стандартный выходной поток. Этот поток может идти на экран монитора или в файл, если используется свойство переназначения потока. Фактически функция putchar является макроопределением:

#define putchar(_c) putc((_c),stdout)

Первые параметры обеих функций совпадают по смыслу и задают ASCII-код выводимого символа (не смотря на то, что переменная ch целого типа, используется только ее младший байт). Функции обрабатывают управляющие символы. Список управляющих символов приведен в следующей таблице:

Символ

Код ASCII

Значение

\a

07h

Звуковой сигнал

\b

08h

Перемещение назад

\f

0Ch

Переход к новой странице

\n

0Ah

Новая строка

\r

0Dh

Возврат каретки

\t

09h

Горизонтальная табуляция

\v

0Bh

Вертикальная табуляция

\'

27h

Символ кавычки

\"

22h

Двойная кавычка

\\

5Ch

Обратный слеш

\%

25h

Знак процента

Функции возвращают ASCII-код выведенного на экран символа, а в случае ошибки возвращают константу EOF. Чтобы конкретизировать ошибку можно воспользоваться функцией ferror.

Программа PUTCHAR (листинг 9.1) демонстрирует использование функции putchar.

Листинг 9.1. Файл PUTCHAR.C

// Использование функции putchar #include <stdio.h> void main(void) { char *ptr, out_str[] = "\aputchar\nputc\a"; for(ptr = out_str; *ptr; putchar(*(ptr++)) ); }

Включаемый файл STDIO.H содержит спецификации функций putchar и putc. Следовательно, этот файл необходимо включать во все программы, использующие данные функции.