Побитовое чтение символа из таблицы символов в Biose

  • Автор темы Viriat
  • Дата начала
V

Viriat

Гость
#1
Уважаемые программисты помогите решить следующую проблему: нужно побитово считать символ 8х8 из таблицы символов в БИОСе и побитово вывести изображение (из 0 и 1) на консоль. Мною написана следующая функция:
C++:
include <iostream.h>
include <dos.h>

void Blit_Char(char c)
{
char far *font=(char far *) MK_FP(0xF000, 0xFA6E+(8*c));
unsigned char mask;

for(int y=0; y<8; y++)
{
mask=0x80;

for(int x=0; x<8; x++)
{
if(font[y]&mask) cout << "1";
else cout << "0";
mask>>=1;
}
cout << "\n";
}
}
Вроде как таблица символов 8x8 в БИОСе начинается с адреса 0xF000:0xFA6E, а смещение на нужный символ 0xFA6E+(8*c), но в итоге изображение нужного символа из 0 и 1 не получается. Очень Вас прошу подскажите в чем проблема.
 
M

Maxx

Гость
#2
1. в строке char far *font=(char far *) MK_FP(0xF000, 0xFA6E+(8*c); не хватает скобки
2. для MK_FP и cout необходимо включить соответствующие *.h файлы
3. программа, которая использует эту функцию, должна компилироваться под DOS и запускаться под чистым DOS'ом или в DOS-окне Windows
если эти условия выполняются, то функция должна выводить битовую маску символов