Лабораторная работа: Организация ввода-вывода

{

d=getch();

printf("\nРасширенный код: 0, %i = '%c''', d, d);

}

else

printf(["\nAscci-код: %i = '%c''', с, с);

if( !getch())

getch();

}

Вопрос. Как напечатать на экране графическое представление управляющих символов.

Ответ: Печать управляющих символов реализует их функциональное назначение. Например, символ Tab, имеющий код '\t'=9, равносилен нескольким пробелам. Так действуют все функции вывода. Для графического представления подобных символов нужно поместить их код непосредственно в видеобуфер.

Для цветного графического адаптера видеобуфер начинается с абсолютного адреса 0хВ80001. На символ отводится 2 байта: первый - для asccii-кода, второй - для атрибутов. Этот метод называется отображением в память. Строки экрана располагаются в буфере последовательно.

#include <conio.h>

#include <stdio.h>

#include <dos.h>

void main()

{

char *pc = (char *)0xB80000001 + 2*( 80*(wherey()-l) +

wherex()-l);

pc[0] = '\t';

pc[1] = 7; // Обычный атрибут

//лучше использовать функцию записи по указанному

//адресу ОЗУ

//poke(0xB800, 2*( 80*(wherey()-l) + wherex() -l), 0x700 +

//'А');

// числа типа int записываются в ОЗУ наоборот : две

//старшие 16-е цифры - в младшем (правом) байте,

//младшие цифры - в старшем (левом) байте

if(!getch()) getch();

К-во Просмотров: 492
Бесплатно скачать Лабораторная работа: Организация ввода-вывода