Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Последние темы форума

Показать новые сообщения »

Почтовая рассылка

Подписчиков: 11642
Последний выпуск: 19.06.2015

Функции BIOS - INT 1fH: указатель графических символов

Этот вектор (0:007c) указывает на таблицу, определяющую изображения старших 128 символов (коды ASCII 128-255). Ее использует ROM-BIOS, когда выводит на экран символы в графическом (с битовой разверткой) режиме.

При запуске системы этот указатель устанавливается на F000:0000, так что старшие 128 символов в графическом режиме выдаются как случайный "мусор". команда DOS 3.x "GrafTabl" может использоваться для загрузки таблицы старших 128 символов и соответствующей переустановки данного вектора.

Вы можете создать вашу собственную RAM-резидентную таблицу, например, чтобы предоставить курсив для графики. таблица состоит из 128 групп по 8 байт в группе. Каждый байт представляет 8 точек по горизонтали, причем первый байт отвечает верхней строке точек, составляющих изображение символа. например, определение символа "Л" могло бы быть следующим:

                         г7+6+5+4+3+2+1+0¬
 смещение_в_таблице + 0: ¦  $ $ $ $ $ $  ¦ = 01111110 = 7e hex =¬
 смещение_в_таблице + 1: ¦    $ $ $ $    ¦ = 00111100 = 3c hex  ¦
 смещение_в_таблице + 2: ¦  $ $   $ $    ¦ = 01101100 = 6c hex  ¦
 смещение_в_таблице + 3: ¦  $ $   $ $    ¦ = 01101100 = 6c hex  ¦=> =¬
 смещение_в_таблице + 4: ¦  $ $   $ $    ¦ = 01101100 = 6c hex  ¦    ¦
 смещение_в_таблице + 5: ¦  $ $   $ $    ¦ = 01101100 = 6c hex  ¦    ¦
 смещение_в_таблице + 6: ¦$ $     $ $ $  ¦ = 11001110 = ce hex  ¦    ¦
 смещение_в_таблице + 7: ¦               ¦ = 00000000 = 00 hex =-    ¦
                         +-+-+-+-+-+-+-+-+                           ¦
                                                +====================+
                                                ¦
                                +===============¦=============+
8-байтовая последовательность:  7еH,3cH,6cH,6cH,6cH,6cH,ceH,00H стояла бы в
таблице по смещению, соответствующему символу "Л". так как код ASCII буквы 'Л'
равен 139, а таблица начинается для символа с кодом 128, это будет 12-я группа
из 8 байт (смещение - 88 байт от начала таблицы).

замечание:

Младшие 128 символов хранятся в ROM-таблице по адресу f000:fa6e. Это не указано в документации, но, похоже, этот адрес остается постоянным во всех IBM-версиях ROM. этот адрес жестко закодирован в кодах программы INT 10H, так что вы не можете использовать свою таблицу для младших 128 символов (если у вас не EGA , который позволяет переопределять весь набор символов).

Оставить комментарий

Комментарий:
можно использовать BB-коды
Максимальная длина комментария - 4000 символов.
 
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог