• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

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

    Запись на курс до 25 апреля. Получить промодоступ ...

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

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

Viriat

Уважаемые программисты помогите решить следующую проблему: нужно побитово считать символ 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

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

Обучение наступательной кибербезопасности в игровой форме. Начать игру!