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

Тема в разделе "Общие вопросы по С и С++", создана пользователем Viriat, 10 янв 2010.

  1. Viriat

    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 не получается. Очень Вас прошу подскажите в чем проблема.
     
  2. Maxx

    Maxx Гость

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

Поделиться этой страницей