Приложения

В приложения к книге вынесены наиболее полезные таблицы: таблица ASCII-кодов символов; карта памяти, используемой видеоадаптерами CGA/EGA/VGA; значения регистров, устанавливаемые BIOS по умолчанию, список стандартных режимов видеоадаптеров с их основными параметрами. Приложение содержит также словарь терминов (глоссарий).

Таблицы ASCII-кодов символов

В ПЗУ персональных компьютеров семейства IBM PC\XT\AT расположены образы символов, отображаемых на дисплее в текстовых и графических режимах. В большинстве случаев эти символы соответствуют стандартной расширенной кодовой таблице ASCII символов.

Первые 128 символов представляют собой стандартный набор ASCII-символов, а последние 128 символов являются расширением. На следующем рисунке приведена стандартная расширенная кодовая таблица ASCII символов.

Стандартная расширенная кодовая таблица ASCII символов (номер 437)

Как видно в этой таблице полностью отсутствуют символы кириллицы. В настоящее время существуют несколько вариантов кодировки русских букв (кириллицы) для операционной системы MS-DOS - основная, альтернативная, минская и т.д. Они отличаются, в основном, расположением русских букв и символов псевдографики. Однако наибольшее распространение получила альтернативная таблица кодировки, особенно после того, как в 1989 году эта таблица была принята IBM в качестве стандартной для Советского Союза. Локализованная версия MS-DOS 4.01 содержит соответствующую кодовую страницу:

Альтернативная русская кодовая таблица ASCII символов (номер 866)

Руссификация видеоадаптеров

Как правило видеоадаптеры поддерживают стандартную расширенную таблицу ASCII символов. Эта таблица не содержит образов символов кириллицы, и ваш компьютер не может отображать их на экране. Однако в некоторых случаях стандартную таблицу символов можно перекодировать, заменив образы некоторых символов на образы символов кириллицы. В этом приложении мы рассмотрим вопрос "руссификации" видеоадаптеров CGA, EGA и VGA.

У видеоадаптера CGA таблицы знакогенератора, определяющие символы, которые можно отобразить на экране диспля в текстовых режимах находятся в ПЗУ, которое расположено вне адресного пространства процессора. Программы не имеют возможности изменить или даже считать информацию из этих таблиц. По-этому для "руссификации" текстовых режимов видеоадаптера CGA необходимо перепрограммировать ПЗУ знакогенератора. Единственной возможностью отобразить на CGA русские буквы не перепрограммируя ПЗУ являются графические режимы работы адаптера. В графических режимах вы можете сами определить образы символов с ASCII кодами от 128 до 255. Образы символов с ASCII кодами от 0 до 127 изменить не перепрограммируя ПЗУ нельзя.

Как же самим определить образы символов с кодами 128 - 255? Для этого надо составить таблицу шрифтов в которой описаны образы символов с кодами 128 - 255. Для CGA, размеры символов которого равны 8х8 пикселов описание образа каждого символа состоит из восьми байт. Первый байт описывает первую линию символа, второй - вторую и так далее. При этом когда биты байта равны единице, соответствующие пикселы на линии символа будут отображаться светлыми пикселами. Остальные пикселы будут темными.

Ниже приведе пример определения образа символа 'А':

   пикселы образа    байты описания

                     00h
           Ё Ё Ё     0Eh
         Ё     Ё     12h
       Ё       Ё     22h
       Ё Ё Ё Ё Ё     3Eh
       Ё       Ё     22h
       Ё       Ё     22h
       Ё       Ё     22h

В этом примере образ символа 'А' определяется байтами 00h, 0Eh, 12h, 22h, 3Eh, 22h, 22h, 22h.

После составления таблицы шрифтов надо записать адрес этой таблицы в векторе прерывания 1Fh. После этого можно выводить определенные вами символы на экран.

Для видеоадаптеров EGA и VGA задача руссификации облегчается, так как вы имеете доступ к таблицам шрифтов и можете изменять их.

При установке текстовых режимов работы видеоадаптеров EGA и VGA, BIOS загружает таблицы знакогенератора из ПЗУ во второй цветовой слой видеопамяти. Впоследствии эти таблицы используются при отображении символов на экране.

Благодаря этому, можно легко заменить стандартную таблицу знакогенератора своей собственной. BIOS EGA и VGA содержит специальную функцию прерывания 10h, которая управляет загрузкой шрифтов. Это функция номер 11h.

Таблица шрифтов для текстовых режимов видеоадаптеров EGA и VGA имеет тот же формат что и таблица шрифтов графических режимов для CGA за исключением того, что образ каждого символа задается не восемью байтами, а четырнадцатью для EGA и шестнадцатью для VGA.

В графических режимах вы можете полностью заменить образы всех символов, а не только имеющих ASCII коды от 128 до 255. В этом случае вместо вектора 1Fh на вашу таблицу должен указывать вектор 43h.

Теперь мы приведем небольшую резидентную программу для "руссификации" видеоадаптеров.

Эта программа активизируется при изменении прикладной программой режима работы видеоадаптера и при загрузке шрифтов из ПЗУ. В этих случаях перед возвратом в прикладную программу она заново загружает свои таблицы шрифтов.

После запуска этой программы вы можете отображать символы кириллицы как в графических, так и в текстовых режимах.

Итак текст программы:

; font_drv.asm

; Драйвер видеоадаптера, позволяет отображать на экране 
; русские символы.

TITLE   RUS_DRV

.MODEL  tiny

DOSSEG

; устанавливаем стек 256 байт
.STACK  100h

; сегмент кода
.CODE

; производим инициализацию сегментных регистров
.STARTUP

   jmp     start

; файл cga_font.inc содержит описание шрифта 8х8 пикселов
   include cga_font.inc

; файл ega_font.inc содержит описание шрифта 8х14 пикселов
      include ega_font.inc

; файл vga_font.inc содержит описание шрифта 8х16 пикселов
      include vga_font.inc


   ; информация о программе, отображается на экране при
   ; ее запуске

   hello_msg  DB  254, "  Драйвер русских букв.", 13, 10
              DB  254, "  Copyright (C) Фролов Г.В., 1992"
              DB  13, 10, "$"

   ; в следующие две переменные будет записан старый
   ; вектор прерывания 10h
      off_int_10h   DW    ?
      seg_int_10h   DW    ?

      not_clr       DB  ?

   ; начало программы
   start:

   ; получаем и сохраняем старый вектор прерывания 10h

      mov     ax,3510h
      int     21h
      mov     off_int_10h,bx
      mov     seg_int_10h,es

   ; устанавливаем новый обработчик прерывания 10h

      mov     dx,OFFSET int_10h
      mov     ax,2510h
      int     21h

   ; устанавливаем режим 3 видеоадаптера
   ; при этом сразу загружаются новые шрифты

      mov     ax,3
      int     10h

   ; выводим сообщение о программе

      mov     ah, 9h
      mov     dx, OFFSET hello_msg
      int     21h

   ; завершаем программу, при этом оставляем ее
   ; резидентной в памяти

      mov     ax,3100h
      mov     dx,OFFSET resident
      shr     dx,1
      shr     dx,1
      shr     dx,1
      shr     dx,1
      inc     dx
      int     21h

;---------------------------------------------------------
;   новый обработчик прерывания INT 10h
;---------------------------------------------------------

   int_10h:

; проверяем, вызвана ли функция установки режима адаптера

      or      ah,ah
      jz      set_mode  ; да
      jmp     char_gen  ; нет

   set_mode:

; когда вызвана функция установки режима адаптера, то
; записываем в переменную not_clr 0h, если при установке
; нового режима надо очистить видеопамять и 80h в
; противном случае

      mov     cs:not_clr,0
      test    al,80h
      jz      test_mode

      mov     cs:not_clr,80h

; сбрасываем бит D8, его содержимое находится в not_clr
      and     al,7Fh

   test_mode:

; затем сохраняем значения регистров процессора

      push    ax
      push    bx
      push    dx
      push    bp
      push    es
      push    ds

      push    cs
      pop     ds

; далее смотрим какой режим надо установить

   ; текстовые режимы 0 - 3
      cmp     al,3
      jbe     text_0_3

   ; текстовый режим 7
      cmp     al,7
      je      text_7

   ; графические режимы 4 - 0Eh
      cmp     al,0Eh
      jbe     graph_Eh

   ; графический режим 13h
      cmp     al,13h
      je      graph_13h

   ; графические режимы 0Eh - 10h
      cmp     al,10h
      jbe     graph_10h

   ; графические режимы 11h и 12h
      cmp     al,12h
      jbe     graph_12h

   ; если режим нестандартный, передаем управление BIOS
   ; для его установки и не загружаем свой шрифт

      jmp     old_int_10h

   ; текстовые режимы 0, 1, 2, 3, 7

   text_0_3:
   text_7:

   ; восстанавливаем регистр ax
      or      al,cs:not_clr

   ; вызываем старый обработчик прерывания 10h
   ; для установки нового режима

      pushf
      call    DWORD PTR cs:off_int_10h

; получаем в bx высоту символов текста в пикселах
; для установленного выше режима

; высота символов записывается BIOS при выборе нового режима
; в переменную по адресу 0000:0485

      xor     dx,dx
      mov     es,dx
      mov     bx,es:[485h]

   ; в соответствии с полученной нами высотой символа
   ; выбираем шрифт 8х8, 8х14 или 8х16 пикселов

      cmp     bx,8         ; высота символов 8 пикселов
      jne     line_14

   ; загружаем в регистр bp смещение таблицы шрифтов 8х8,
   ; таблица шрифтов 8х8 пикселов определена в файле
   ; cga_font.inc

      mov     bp,OFFSET fon8_ascii0
      jmp     set_text_font

   line_14:

      cmp     bx,14        ; высота символов 14 пикселов
      jne     line_16

   ; загружаем в регистр bp смещение таблицы шрифтов 8х14,
   ; таблица шрифтов 8х14 пикселов определена в файле
   ; ega_font.inc

      mov     bp,OFFSET fon14_ascii0
      jmp     set_text_font

   line_16:

      cmp     bx,16

   ; если полученная высота символов не равна 8, 14 и 16
   ; завершаем обработку

      jne     exit_int_10h

   ; высота символов 16 пикселов

      mov     bp,OFFSET fon16_ascii0

   set_text_font:

   ; загружаем наш шрифт в память

      mov     ax,1100h

      push    cs
      pop     es

      xchg    bl,bh

      mov     cx,256

   old_int_10h:

   ; вызываем старый обработчик прерывания 10h

      pushf
      call    DWORD PTR cs:off_int_10h

   exit_int_10h:

   ; восстанавливаем содержимое регистров процессора

      pop     ds
      pop     es
      pop     bp
      pop     dx
      pop     bx
      pop     ax

   ; завершаем обработку прерывания, возвращаем
   ; управление вызывающей программе

      iret

   ; вызывющая программа устанавливает графические режимы
   ; 4, 5, 6, 0Dh, 0Eh

   graph_Eh:
   graph_13h:

   ; вызываем старый обработчик прерывания 10h
   ; для установки нового режима

      pushf
      call    DWORD PTR cs:off_int_10h

   ; подготавливаем регистры для выбора шрифта 8х8

      mov     dx,OFFSET fon8_ascii0
      mov     bp,OFFSET fon8_ascii128
      jmp     set_gr_font

   ; вызывющая программа устанавливает графические режимы
   ; 0Fh, 10h

   graph_10h:

   ; вызываем старый обработчик прерывания 10h
   ; для установки нового режима

      pushf
      call    DWORD PTR cs:off_int_10h

   ; подготавливаем регистры для выбора шрифта 8х8

      mov     dx,OFFSET fon14_ascii0
      mov     bp,OFFSET fon14_ascii128
      jmp     set_gr_font

   ; вызывющая программа устанавливает графические режимы
   ; 11Dh, 12h

   graph_12h:

   ; вызываем старый обработчик прерывания 10h
   ; для установки нового режима

      pushf
      call    DWORD PTR cs:off_int_10h

   ; подготавливаем регистры для выбора шрифта 8х8

      mov     dx,OFFSET fon16_ascii0
      mov     bp,OFFSET fon16_ascii128

   set_gr_font:

   ; устанавливаем наши графические шрифты,
   ; изменяя векторы прерываний 1Fh и 43h

      mov     ax,2543h
      int     21h

      mov     dx,bp

      mov     ax,251Fh
      int     21h

   ; завершаем обработку прерывания
      jmp     exit_int_10h


   ; если вызывающая программа вызвала не функцию
   ; установки режима, проверяем вызвана ли функция выбора
   ; нового шрифта

   char_gen:

      cmp     ah,11h
      je      gen_func

   ; если нет, передаем управление старому обработчику

   go_int_10h:

      pushf
      call    DWORD PTR cs:off_int_10h
      iret


   gen_func:

   ; если вызывается функция установки нового шрифта, то
   ; смотрим какая вызывается подфункция

   ; вызывается подфункция загрузки шрифта 8х8 из BIOS
      cmp     al,1
      je      text_rom_8_14

   ; вызывается подфункция загрузки шрифта 8х8 из BIOS
   ; с переустановкой контроллера ЭЛТ
      cmp     al,11h
      je      text_rom_8_14

   ; вызывается подфункция загрузки шрифта 8х14 из BIOS
      cmp     al,2
      je      text_rom_8_8

   ; вызывается подфункция загрузки шрифта 8х14 из BIOS
   ; с переустановкой контроллера ЭЛТ
      cmp     al,12h
      je      text_rom_8_8

   ; вызывается подфункция загрузки шрифта 8х16 из BIOS
      cmp     al,4
      je      text_rom_8_16

   ; вызывается подфункция загрузки шрифта 8х16 из BIOS
   ; с переустановкой контроллера ЭЛТ
      cmp     al,14h
      je      text_rom_8_16

   ; если вызывается другая подфункция, то передаем
   ; управление старому обработчику прерываний

      jmp     go_int_10h

   text_rom_8_8:

   ; выбираем шрифт 8х8 пикселов

      mov     bp,OFFSET fon8_ascii0
      mov     bh,8
      jmp     set_our_text_font

   text_rom_8_14:

   ; выбираем шрифт 8х14 пикселов

      mov     bp,OFFSET fon14_ascii0
      mov     bh,14
      jmp     set_our_text_font

   text_rom_8_16:

   ; выбираем шрифт 8х16 пикселов

      mov     bp,OFFSET fon16_ascii0
      mov     bh,16

   set_our_text_font:

   ; устанавливаем свой шрифт

      and     al,0f0h
      push    cs
      pop     es

      mov     cx,256
      xor     dx,dx

   ; вызываем старый обработчик прерывания 10h

      pushf
      call    DWORD PTR cs:off_int_10h
      iret

   resident:

      END

Теперь мы приведем таблицы шрифтов с описаниями образов символов, имеющих размер 8х8, 8х14 и 8х16 пикселов. Эти таблицы содержат описания русских символов согласно cтандартной расширенной кодовой таблице ASCII символов номер 437. Символы с ASCII-кодами от 248 до 255 не соответствуют этой таблице.

; файл cga_font.inc

; таблица шрифтов 8х8 пикселов, содержащая русские символы

; каждый символ определяет восемь байтов

fon8_ascii0     DB   000h,000h,000h,000h,000h,000h,000h,000h
fon8_ascii1     DB   07Eh,081h,0A5h,081h,0BDh,099h,081h,07Eh
fon8_ascii2     DB   07Eh,0FFh,0DBh,0FFh,0C3h,0E7h,0FFh,07Eh
fon8_ascii3     DB   06Ch,0FEh,0FEh,0FEh,07Ch,038h,010h,000h
fon8_ascii4     DB   010h,038h,07Ch,0FEh,07Ch,038h,010h,000h
fon8_ascii5     DB   038h,07Ch,038h,0FEh,0FEh,07Ch,038h,07Ch
fon8_ascii6     DB   010h,010h,038h,07Ch,0FEh,07Ch,038h,07Ch
fon8_ascii7     DB   000h,000h,018h,03Ch,03Ch,018h,000h,000h
fon8_ascii8     DB   0FFh,0FFh,0E7h,0C3h,0C3h,0E7h,0FFh,0FFh
fon8_ascii9     DB   000h,03Ch,066h,042h,042h,066h,03Ch,000h
fon8_ascii10    DB   0FFh,0C3h,099h,0BDh,0BDh,099h,0C3h,0FFh
fon8_ascii11    DB   00Fh,007h,00Fh,07Dh,0CCh,0CCh,0CCh,078h
fon8_ascii12    DB   03Ch,066h,066h,066h,03Ch,018h,07Eh,018h
fon8_ascii13    DB   03Fh,033h,03Fh,030h,030h,070h,0F0h,0E0h
fon8_ascii14    DB   07Fh,063h,07Fh,063h,063h,067h,0E6h,0C0h
fon8_ascii15    DB   099h,05Ah,03Ch,0E7h,0E7h,03Ch,05Ah,099h
fon8_ascii16    DB   080h,0E0h,0F8h,0FEh,0F8h,0E0h,080h,000h
fon8_ascii17    DB   002h,00Eh,03Eh,0FEh,03Eh,00Eh,002h,000h
fon8_ascii18    DB   018h,03Ch,07Eh,018h,018h,07Eh,03Ch,018h
fon8_ascii19    DB   066h,066h,066h,066h,066h,000h,066h,000h
fon8_ascii20    DB   07Fh,0DBh,0DBh,07Bh,01Bh,01Bh,01Bh,000h
fon8_ascii21    DB   03Eh,063h,038h,06Ch,06Ch,038h,0CCh,078h
fon8_ascii22    DB   000h,000h,000h,000h,07Eh,07Eh,07Eh,000h
fon8_ascii23    DB   018h,03Ch,07Eh,018h,07Eh,03Ch,018h,0FFh
fon8_ascii24    DB   018h,03Ch,07Eh,018h,018h,018h,018h,000h
fon8_ascii25    DB   018h,018h,018h,018h,07Eh,03Ch,018h,000h
fon8_ascii26    DB   000h,018h,00Ch,0FEh,00Ch,018h,000h,000h
fon8_ascii27    DB   000h,030h,060h,0FEh,060h,030h,000h,000h
fon8_ascii28    DB   000h,000h,0C0h,0C0h,0C0h,0FEh,000h,000h
fon8_ascii29    DB   000h,024h,066h,0FFh,066h,024h,000h,000h
fon8_ascii30    DB   000h,018h,03Ch,07Eh,0FFh,0FFh,000h,000h
fon8_ascii31    DB   000h,0FFh,0FFh,07Eh,03Ch,018h,000h,000h
fon8_ascii32    DB   000h,000h,000h,000h,000h,000h,000h,000h
fon8_ascii33    DB   030h,078h,078h,030h,030h,000h,030h,000h
fon8_ascii34    DB   06Ch,06Ch,06Ch,000h,000h,000h,000h,000h
fon8_ascii35    DB   06Ch,06Ch,0FEh,06Ch,0FEh,06Ch,06Ch,000h
fon8_ascii36    DB   030h,07Ch,0C0h,078h,00Ch,0F8h,030h,000h
fon8_ascii37    DB   000h,0C6h,0CCh,018h,030h,066h,0C6h,000h
fon8_ascii38    DB   038h,06Ch,038h,076h,0DCh,0CCh,076h,000h
fon8_ascii39    DB   060h,060h,0C0h,000h,000h,000h,000h,000h
fon8_ascii40    DB   018h,030h,060h,060h,060h,030h,018h,000h
fon8_ascii41    DB   060h,030h,018h,018h,018h,030h,060h,000h
fon8_ascii42    DB   000h,066h,03Ch,0FFh,03Ch,066h,000h,000h
fon8_ascii43    DB   000h,030h,030h,0FCh,030h,030h,000h,000h
fon8_ascii44    DB   000h,000h,000h,000h,000h,030h,030h,060h
fon8_ascii45    DB   000h,000h,000h,0FCh,000h,000h,000h,000h
fon8_ascii46    DB   000h,000h,000h,000h,000h,030h,030h,000h
fon8_ascii47    DB   006h,00Ch,018h,030h,060h,0C0h,080h,000h
fon8_ascii48    DB   07Ch,0C6h,0CEh,0DEh,0F6h,0E6h,07Ch,000h
fon8_ascii49    DB   030h,070h,030h,030h,030h,030h,0FCh,000h
fon8_ascii50    DB   078h,0CCh,00Ch,038h,060h,0CCh,0FCh,000h
fon8_ascii51    DB   078h,0CCh,00Ch,038h,00Ch,0CCh,078h,000h
fon8_ascii52    DB   01Ch,03Ch,06Ch,0CCh,0FEh,00Ch,01Eh,000h
fon8_ascii53    DB   0FCh,0C0h,0F8h,00Ch,00Ch,0CCh,078h,000h
fon8_ascii54    DB   038h,060h,0C0h,0F8h,0CCh,0CCh,078h,000h
fon8_ascii55    DB   0FCh,0CCh,00Ch,018h,030h,030h,030h,000h
fon8_ascii56    DB   078h,0CCh,0CCh,078h,0CCh,0CCh,078h,000h
fon8_ascii57    DB   078h,0CCh,0CCh,07Ch,00Ch,018h,070h,000h
fon8_ascii58    DB   000h,030h,030h,000h,000h,030h,030h,000h
fon8_ascii59    DB   000h,030h,030h,000h,000h,030h,030h,060h
fon8_ascii60    DB   018h,030h,060h,0C0h,060h,030h,018h,000h
fon8_ascii61    DB   000h,000h,0FCh,000h,000h,0FCh,000h,000h
fon8_ascii62    DB   060h,030h,018h,00Ch,018h,030h,060h,000h
fon8_ascii63    DB   078h,0CCh,00Ch,018h,030h,000h,030h,000h
fon8_ascii64    DB   07Ch,0C6h,0DEh,0DEh,0DEh,0C0h,078h,000h
fon8_ascii65    DB   030h,078h,0CCh,0CCh,0FCh,0CCh,0CCh,000h
fon8_ascii66    DB   0FCh,066h,066h,07Ch,066h,066h,0FCh,000h
fon8_ascii67    DB   03Ch,066h,0C0h,0C0h,0C0h,066h,03Ch,000h
fon8_ascii68    DB   0F8h,06Ch,066h,066h,066h,06Ch,0F8h,000h
fon8_ascii69    DB   0FEh,062h,068h,078h,068h,062h,0FEh,000h
fon8_ascii70    DB   0FEh,062h,068h,078h,068h,060h,0F0h,000h
fon8_ascii71    DB   03Ch,066h,0C0h,0C0h,0CEh,066h,03Eh,000h
fon8_ascii72    DB   0CCh,0CCh,0CCh,0FCh,0CCh,0CCh,0CCh,000h
fon8_ascii73    DB   078h,030h,030h,030h,030h,030h,078h,000h
fon8_ascii74    DB   01Eh,00Ch,00Ch,00Ch,0CCh,0CCh,078h,000h
fon8_ascii75    DB   0E6h,066h,06Ch,078h,06Ch,066h,0E6h,000h
fon8_ascii76    DB   0F0h,060h,060h,060h,062h,066h,0FEh,000h
fon8_ascii77    DB   0C6h,0EEh,0FEh,0FEh,0D6h,0C6h,0C6h,000h
fon8_ascii78    DB   0C6h,0E6h,0F6h,0DEh,0CEh,0C6h,0C6h,000h
fon8_ascii79    DB   038h,06Ch,0C6h,0C6h,0C6h,06Ch,038h,000h
fon8_ascii80    DB   0FCh,066h,066h,07Ch,060h,060h,0F0h,000h
fon8_ascii81    DB   078h,0CCh,0CCh,0CCh,0DCh,078h,01Ch,000h
fon8_ascii82    DB   0FCh,066h,066h,07Ch,06Ch,066h,0E6h,000h
fon8_ascii83    DB   078h,0CCh,0E0h,070h,01Ch,0CCh,078h,000h
fon8_ascii84    DB   0FCh,0B4h,030h,030h,030h,030h,078h,000h
fon8_ascii85    DB   0CCh,0CCh,0CCh,0CCh,0CCh,0CCh,0FCh,000h
fon8_ascii86    DB   0CCh,0CCh,0CCh,0CCh,0CCh,078h,030h,000h
fon8_ascii87    DB   0C6h,0C6h,0C6h,0D6h,0FEh,0EEh,0C6h,000h
fon8_ascii88    DB   0C6h,044h,06Ch,038h,038h,06Ch,0C6h,000h
fon8_ascii89    DB   0CCh,0CCh,0CCh,078h,030h,030h,078h,000h
fon8_ascii90    DB   0FEh,0C6h,08Ch,018h,032h,066h,0FEh,000h
fon8_ascii91    DB   078h,060h,060h,060h,060h,060h,078h,000h
fon8_ascii92    DB   0C0h,060h,030h,018h,00Ch,006h,002h,000h
fon8_ascii93    DB   078h,018h,018h,018h,018h,018h,078h,000h
fon8_ascii94    DB   010h,038h,06Ch,0C6h,000h,000h,000h,000h
fon8_ascii95    DB   000h,000h,000h,000h,000h,000h,000h,0FFh
fon8_ascii96    DB   030h,030h,018h,000h,000h,000h,000h,000h
fon8_ascii97    DB   000h,000h,078h,00Ch,07Ch,0CCh,07Ch,000h
fon8_ascii98    DB   060h,060h,060h,07Ch,066h,066h,07Ch,000h
fon8_ascii99    DB   000h,000h,078h,0CCh,0C0h,0CCh,078h,000h
fon8_ascii100   DB   00Ch,00Ch,00Ch,07Ch,0CCh,0CCh,07Ch,000h
fon8_ascii101   DB   000h,000h,078h,0CCh,0FCh,0C0h,078h,000h
fon8_ascii102   DB   038h,06Ch,060h,0F0h,060h,060h,0F0h,000h
fon8_ascii103   DB   000h,000h,07Ch,0CCh,0CCh,07Ch,00Ch,0F8h
fon8_ascii104   DB   060h,060h,07Ch,066h,066h,066h,066h,000h
fon8_ascii105   DB   030h,000h,070h,030h,030h,030h,078h,000h
fon8_ascii106   DB   00Ch,000h,00Ch,00Ch,00Ch,00Ch,06Ch,038h
fon8_ascii107   DB   060h,060h,066h,06Ch,078h,06Ch,066h,000h
fon8_ascii108   DB   070h,030h,030h,030h,030h,030h,078h,000h
fon8_ascii109   DB   000h,000h,0CCh,0FEh,0FEh,0D6h,0C6h,000h
fon8_ascii110   DB   000h,000h,0F8h,0CCh,0CCh,0CCh,0CCh,000h
fon8_ascii111   DB   000h,000h,078h,0CCh,0CCh,0CCh,078h,000h
fon8_ascii112   DB   000h,000h,07Ch,066h,066h,07Ch,060h,060h
fon8_ascii113   DB   000h,000h,07Ch,0CCh,0CCh,07Ch,00Ch,00Ch
fon8_ascii114   DB   000h,000h,0DCh,076h,066h,060h,0F0h,000h
fon8_ascii115   DB   000h,000h,07Ch,0C0h,078h,00Ch,0F8h,000h
fon8_ascii116   DB   010h,030h,07Ch,030h,030h,034h,018h,000h
fon8_ascii117   DB   000h,000h,0CCh,0CCh,0CCh,0CCh,07Ch,000h
fon8_ascii118   DB   000h,000h,0CCh,0CCh,0CCh,078h,030h,000h
fon8_ascii119   DB   000h,000h,0C6h,0D6h,0FEh,0FEh,06Ch,000h
fon8_ascii120   DB   000h,000h,0C6h,06Ch,038h,06Ch,0C6h,000h
fon8_ascii121   DB   000h,000h,0CCh,0CCh,0CCh,07Ch,00Ch,0F8h
fon8_ascii122   DB   000h,000h,0FCh,098h,030h,064h,0FCh,000h
fon8_ascii123   DB   01Ch,030h,030h,0E0h,030h,030h,01Ch,000h
fon8_ascii124   DB   018h,018h,018h,000h,018h,018h,018h,000h
fon8_ascii125   DB   0E0h,030h,030h,01Ch,030h,030h,0E0h,000h
fon8_ascii126   DB   076h,0DCh,000h,000h,000h,000h,000h,000h
fon8_ascii127   DB   000h,010h,038h,06Ch,0C6h,0C6h,0FEh,000h
fon8_ascii128   DB   01Eh,036h,066h,066h,07Eh,066h,066h,000h
fon8_ascii129   DB   07Ch,060h,060h,07Ch,066h,066h,07Ch,000h
fon8_ascii130   DB   07Ch,066h,066h,07Ch,066h,066h,07Ch,000h
fon8_ascii131   DB   07Eh,060h,060h,060h,060h,060h,060h,000h
fon8_ascii132   DB   038h,06Ch,06Ch,06Ch,06Ch,06Ch,0FEh,0C6h
fon8_ascii133   DB   07Eh,060h,060h,07Ch,060h,060h,07Eh,000h
fon8_ascii134   DB   0DBh,0DBh,07Eh,03Ch,07Eh,0DBh,0DBh,000h
fon8_ascii135   DB   03Ch,066h,006h,01Ch,006h,066h,03Ch,000h
fon8_ascii136   DB   066h,066h,06Eh,07Eh,076h,066h,066h,000h
fon8_ascii137   DB   03Ch,066h,06Eh,07Eh,076h,066h,066h,000h
fon8_ascii138   DB   066h,06Ch,078h,070h,078h,06Ch,066h,000h
fon8_ascii139   DB   01Eh,036h,066h,066h,066h,066h,066h,000h
fon8_ascii140   DB   0C6h,0EEh,0FEh,0FEh,0D6h,0C6h,0C6h,000h
fon8_ascii141   DB   066h,066h,066h,07Eh,066h,066h,066h,000h
fon8_ascii142   DB   03Ch,066h,066h,066h,066h,066h,03Ch,000h
fon8_ascii143   DB   07Eh,066h,066h,066h,066h,066h,066h,000h
fon8_ascii144   DB   07Ch,066h,066h,066h,07Ch,060h,060h,000h
fon8_ascii145   DB   03Ch,066h,060h,060h,060h,066h,03Ch,000h
fon8_ascii146   DB   07Eh,018h,018h,018h,018h,018h,018h,000h
fon8_ascii147   DB   066h,066h,066h,03Eh,006h,066h,03Ch,000h
fon8_ascii148   DB   07Eh,0DBh,0DBh,0DBh,07Eh,018h,018h,000h
fon8_ascii149   DB   066h,066h,03Ch,018h,03Ch,066h,066h,000h
fon8_ascii150   DB   066h,066h,066h,066h,066h,066h,07Fh,003h
fon8_ascii151   DB   066h,066h,066h,03Eh,006h,006h,006h,000h
fon8_ascii152   DB   0DBh,0DBh,0DBh,0DBh,0DBh,0DBh,0FFh,000h
fon8_ascii153   DB   0DBh,0DBh,0DBh,0DBh,0DBh,0DBh,0FFh,003h
fon8_ascii154   DB   0E0h,060h,060h,07Ch,066h,066h,07Ch,000h
fon8_ascii155   DB   0C6h,0C6h,0C6h,0F6h,0DEh,0DEh,0F6h,000h
fon8_ascii156   DB   060h,060h,060h,07Ch,066h,066h,07Ch,000h
fon8_ascii157   DB   078h,08Ch,006h,03Eh,006h,08Ch,078h,000h
fon8_ascii158   DB   0CEh,0DBh,0DBh,0FBh,0DBh,0DBh,0CEh,000h
fon8_ascii159   DB   03Eh,066h,066h,066h,03Eh,036h,066h,000h
fon8_ascii160   DB   000h,000h,078h,00Ch,07Ch,0CCh,076h,000h
fon8_ascii161   DB   000h,03Ch,060h,03Ch,066h,066h,03Ch,000h
fon8_ascii162   DB   000h,000h,07Ch,066h,07Ch,066h,07Ch,000h
fon8_ascii163   DB   000h,000h,07Eh,060h,060h,060h,060h,000h
fon8_ascii164   DB   000h,000h,03Ch,06Ch,06Ch,06Ch,0FEh,0C6h
fon8_ascii165   DB   000h,000h,03Ch,066h,07Eh,060h,03Ch,000h
fon8_ascii166   DB   000h,000h,0DBh,07Eh,03Ch,07Eh,0DBh,000h
fon8_ascii167   DB   000h,000h,03Ch,066h,00Ch,066h,03Ch,000h
fon8_ascii168   DB   000h,000h,066h,06Eh,07Eh,076h,066h,000h
fon8_ascii169   DB   000h,018h,066h,06Eh,07Eh,076h,066h,000h
fon8_ascii170   DB   000h,000h,066h,06Ch,078h,06Ch,066h,000h
fon8_ascii171   DB   000h,000h,01Eh,036h,066h,066h,066h,000h
fon8_ascii172   DB   000h,000h,0C6h,0FEh,0FEh,0D6h,0C6h,000h
fon8_ascii173   DB   000h,000h,066h,066h,07Eh,066h,066h,000h
fon8_ascii174   DB   000h,000h,03Ch,066h,066h,066h,03Ch,000h
fon8_ascii175   DB   000h,000h,07Eh,066h,066h,066h,066h,000h
fon8_ascii176   DB   011h,044h,011h,044h,011h,044h,011h,044h
fon8_ascii177   DB   055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh
fon8_ascii178   DB   0DDh,077h,0DDh,077h,0DDh,077h,0DDh,077h
fon8_ascii179   DB   018h,018h,018h,018h,018h,018h,018h,018h
fon8_ascii180   DB   018h,018h,018h,0F8h,018h,018h,018h,018h
fon8_ascii181   DB   018h,0F8h,018h,0F8h,018h,018h,018h,018h
fon8_ascii182   DB   036h,036h,036h,0F6h,036h,036h,036h,036h
fon8_ascii183   DB   000h,000h,000h,0FEh,036h,036h,036h,036h
fon8_ascii184   DB   000h,0F8h,018h,0F8h,018h,018h,018h,018h
fon8_ascii185   DB   036h,0F6h,006h,0F6h,036h,036h,036h,036h
fon8_ascii186   DB   036h,036h,036h,036h,036h,036h,036h,036h
fon8_ascii187   DB   000h,0FEh,006h,0F6h,036h,036h,036h,036h
fon8_ascii188   DB   036h,0F6h,006h,0FEh,000h,000h,000h,000h
fon8_ascii189   DB   036h,036h,036h,0FEh,000h,000h,000h,000h
fon8_ascii190   DB   018h,0F8h,018h,0F8h,000h,000h,000h,000h
fon8_ascii191   DB   000h,000h,000h,0F8h,018h,018h,018h,018h
fon8_ascii192   DB   018h,018h,018h,01Fh,000h,000h,000h,000h
fon8_ascii193   DB   018h,018h,018h,0FFh,000h,000h,000h,000h
fon8_ascii194   DB   000h,000h,000h,0FFh,018h,018h,018h,018h
fon8_ascii195   DB   018h,018h,018h,01Fh,018h,018h,018h,018h
fon8_ascii196   DB   000h,000h,000h,0FFh,000h,000h,000h,000h
fon8_ascii197   DB   018h,018h,018h,0FFh,018h,018h,018h,018h
fon8_ascii198   DB   018h,01Fh,018h,01Fh,018h,018h,018h,018h
fon8_ascii199   DB   036h,036h,036h,037h,036h,036h,036h,036h
fon8_ascii200   DB   036h,037h,030h,03Fh,000h,000h,000h,000h
fon8_ascii201   DB   000h,03Fh,030h,037h,036h,036h,036h,036h
fon8_ascii202   DB   036h,0F7h,000h,0FFh,000h,000h,000h,000h
fon8_ascii203   DB   000h,0FFh,000h,0F7h,036h,036h,036h,036h
fon8_ascii204   DB   036h,037h,030h,037h,036h,036h,036h,036h
fon8_ascii205   DB   000h,0FFh,000h,0FFh,000h,000h,000h,000h
fon8_ascii206   DB   036h,0F7h,000h,0F7h,036h,036h,036h,036h
fon8_ascii207   DB   018h,0FFh,000h,0FFh,000h,000h,000h,000h
fon8_ascii208   DB   036h,036h,036h,0FFh,000h,000h,000h,000h
fon8_ascii209   DB   000h,0FFh,000h,0FFh,018h,018h,018h,018h
fon8_ascii210   DB   000h,000h,000h,0FFh,036h,036h,036h,036h
fon8_ascii211   DB   036h,036h,036h,03Fh,000h,000h,000h,000h
fon8_ascii212   DB   018h,01Fh,018h,01Fh,000h,000h,000h,000h
fon8_ascii213   DB   000h,01Fh,018h,01Fh,018h,018h,018h,018h
fon8_ascii214   DB   000h,000h,000h,03Fh,036h,036h,036h,036h
fon8_ascii215   DB   036h,036h,036h,0FFh,036h,036h,036h,036h
fon8_ascii216   DB   018h,0FFh,018h,0FFh,018h,018h,018h,018h
fon8_ascii217   DB   018h,018h,018h,0F8h,000h,000h,000h,000h
fon8_ascii218   DB   000h,000h,000h,01Fh,018h,018h,018h,018h
fon8_ascii219   DB   0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh
fon8_ascii220   DB   000h,000h,000h,0FFh,0FFh,0FFh,0FFh,0FFh
fon8_ascii221   DB   0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h
fon8_ascii222   DB   00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh
fon8_ascii223   DB   0FFh,0FFh,0FFh,000h,000h,000h,000h,000h
fon8_ascii224   DB   000h,000h,07Ch,066h,066h,07Ch,060h,000h
fon8_ascii225   DB   000h,000h,03Ch,066h,060h,066h,03Ch,000h
fon8_ascii226   DB   000h,000h,07Eh,018h,018h,018h,018h,000h
fon8_ascii227   DB   000h,000h,066h,066h,03Eh,006h,03Ch,000h
fon8_ascii228   DB   000h,000h,07Eh,0DBh,0DBh,07Eh,018h,000h
fon8_ascii229   DB   000h,000h,066h,03Ch,018h,03Ch,066h,000h
fon8_ascii230   DB   000h,000h,066h,066h,066h,066h,07Fh,003h
fon8_ascii231   DB   000h,000h,066h,066h,03Eh,006h,006h,000h
fon8_ascii232   DB   000h,000h,0DBh,0DBh,0DBh,0DBh,0FFh,000h
fon8_ascii233   DB   000h,000h,0DBh,0DBh,0DBh,0DBh,0FFh,003h
fon8_ascii234   DB   000h,000h,0E0h,060h,07Ch,066h,07Ch,000h
fon8_ascii235   DB   000h,000h,0C6h,0C6h,0F6h,0DEh,0F6h,000h
fon8_ascii236   DB   000h,000h,060h,060h,07Ch,066h,07Ch,000h
fon8_ascii237   DB   000h,000h,07Ch,006h,03Eh,006h,07Ch,000h
fon8_ascii238   DB   000h,000h,0CEh,0DBh,0FBh,0DBh,0CEh,000h
fon8_ascii239   DB   000h,000h,03Eh,066h,03Eh,036h,066h,000h
fon8_ascii240   DB   066h,000h,07Eh,060h,07Ch,060h,07Eh,000h
fon8_ascii241   DB   024h,000h,03Ch,066h,07Eh,060h,03Ch,000h
fon8_ascii242   DB   000h,030h,018h,00Ch,006h,00Ch,018h,030h
fon8_ascii243   DB   000h,00Ch,018h,030h,060h,030h,018h,00Ch
fon8_ascii244   DB   00Eh,01Bh,01Bh,018h,018h,018h,018h,018h
fon8_ascii245   DB   018h,018h,018h,018h,018h,0D8h,0D8h,070h
fon8_ascii246   DB   000h,018h,018h,000h,07Eh,000h,018h,018h
fon8_ascii247   DB   000h,076h,0DCh,000h,076h,0DCh,000h,000h
fon8_ascii248   DB   000h,038h,06Ch,06Ch,038h,000h,000h,000h
fon8_ascii249   DB   000h,000h,000h,000h,018h,000h,000h,000h
fon8_ascii250   DB   000h,000h,000h,038h,038h,000h,000h,000h
fon8_ascii251   DB   0F8h,006h,073h,079h,023h,0FEh,0A0h,0A0h
fon8_ascii252   DB   006h,008h,0CBh,06Bh,068h,05Bh,058h,08Ch
fon8_ascii253   DB   030h,048h,010h,020h,078h,000h,000h,000h
fon8_ascii254   DB   0FFh,081h,0BDh,0A5h,0A5h,0BDh,081h,0FFh
fon8_ascii255   DB   000h,000h,000h,000h,000h,042h,07Eh,000h
; файл ega_font.inc

; таблица шрифтов 8х14 пикселов, содержащая русские символы

; каждый символ определяет четырнадцать байтов

fon14_ascii0    DB   000h,000h,000h,000h,000h,000h,000h,000h
                DB   000h,000h,000h,000h,000h,000h
fon14_ascii1    DB   000h,000h,07Eh,081h,0A5h,081h,081h,0BDh
                DB   099h,081h,07Eh,000h,000h,000h
fon14_ascii2    DB   000h,000h,07Eh,0FFh,0DBh,0FFh,0FFh,0C3h
                DB   0E7h,0FFh,07Eh,000h,000h,000h
fon14_ascii3    DB   000h,000h,000h,06Ch,0FEh,0FEh,0FEh,0FEh
                DB   07Ch,038h,010h,000h,000h,000h
fon14_ascii4    DB   000h,000h,000h,010h,038h,07Ch,0FEh,07Ch
                DB   038h,010h,000h,000h,000h,000h
fon14_ascii5    DB   000h,000h,018h,03Ch,03Ch,0E7h,0E7h,0E7h
                DB   018h,018h,03Ch,000h,000h,000h
fon14_ascii6    DB   000h,000h,018h,03Ch,07Eh,0FFh,0FFh,07Eh
                DB   018h,018h,03Ch,000h,000h,000h
fon14_ascii7    DB   000h,000h,000h,000h,000h,018h,03Ch,03Ch
                DB   018h,000h,000h,000h,000h,000h
fon14_ascii8    DB   0FFh,0FFh,0FFh,0FFh,0FFh,0E7h,0C3h,0C3h
                DB   0E7h,0FFh,0FFh,0FFh,0FFh,0FFh
fon14_ascii9    DB   000h,000h,000h,000h,03Ch,066h,042h,042h
                DB   066h,03Ch,000h,000h,000h,000h
fon14_ascii10   DB   0FFh,0FFh,0FFh,FFh,0C3h,099h,0BDh,0BDh
                DB   099h,0C3h,0FFh,0FFh,0FFh,0FFh
fon14_ascii11   DB   000h,000h,01Eh,0Eh,01Ah,032h,078h,0CCh
                DB   0CCh,0CCh,078h,000h,000h,000h
fon14_ascii12   DB   000h,000h,03Ch,066h,066h,066h,03Ch,018h
                DB   07Eh,018h,018h,000h,000h,000h
fon14_ascii13   DB   000h,000h,03Fh,33h,03Fh,030h,030h,030h
                DB   070h,0F0h,0E0h,000h,000h,000h
fon14_ascii14   DB   000h,000h,07Fh,63h,07Fh,063h,063h,063h
                DB   067h,0E7h,0E6h,0C0h,000h,000h
fon14_ascii15   DB   000h,000h,018h,18h,0DBh,03Ch,0E7h,03Ch
                DB   0DBh,018h,018h,000h,000h,000h
fon14_ascii16   DB   000h,040h,060h,70h,078h,07Ch,07Eh,07Ch
                DB   078h,070h,060h,040h,000h,000h
fon14_ascii17   DB   000h,002h,006h,0Eh,01Eh,03Eh,07Eh,03Eh
                DB   01Eh,00Eh,006h,002h,000h,000h
fon14_ascii18   DB   000h,000h,018h,3Ch,07Eh,018h,018h,018h
                DB   07Eh,03Ch,018h,000h,000h,000h
fon14_ascii19   DB   000h,000h,066h,66h,066h,066h,066h,066h
                DB   000h,066h,066h,000h,000h,000h
fon14_ascii20   DB   000h,000h,07Fh,DBh,0DBh,0DBh,07Bh,01Bh
                DB   01Bh,01Bh,01Bh,000h,000h,000h
fon14_ascii21   DB   000h,07Ch,0C6h,60h,038h,06Ch,0C6h,0C6h
                DB   06Ch,038h,00Ch,0C6h,07Ch,000h
fon14_ascii22   DB   000h,000h,000h,00h,000h,000h,000h,0FEh
                DB   0FEh,0FEh,0FEh,000h,000h,000h
fon14_ascii23   DB   000h,000h,018h,3Ch,07Eh,018h,018h,07Eh
                DB   03Ch,018h,07Eh,000h,000h,000h
fon14_ascii24   DB   000h,000h,018h,3Ch,07Eh,018h,018h,018h
                DB   018h,018h,018h,000h,000h,000h
fon14_ascii25   DB   000h,000h,018h,18h,018h,018h,018h,018h
                DB   07Eh,03Ch,018h,000h,000h,000h
fon14_ascii26   DB   000h,000h,000h,00h,000h,018h,00Ch,0FEh
                DB   00Ch,018h,000h,000h,000h,000h
fon14_ascii27   DB   000h,000h,000h,00h,000h,018h,030h,07Fh
                DB   030h,018h,000h,000h,000h,000h
fon14_ascii28   DB   000h,000h,000h,00h,000h,000h,0C0h,0C0h
                DB   0C0h,0FEh,000h,000h,000h,000h
fon14_ascii29   DB   000h,000h,000h,00h,000h,028h,06Ch,0FEh
                DB   06Ch,028h,000h,000h,000h,000h
fon14_ascii30   DB   000h,000h,000h,00h,010h,038h,038h,07Ch
                DB   07Ch,0FEh,0FEh,000h,000h,000h
fon14_ascii31   DB   000h,000h,000h,00h,0FEh,0FEh,07Ch,07Ch
                DB   038h,038h,010h,000h,000h,000h
fon14_ascii32   DB   000h,000h,000h,00h,000h,000h,000h,000h
                DB   000h,000h,000h,000h,000h,000h
fon14_ascii33   DB   000h,000h,018h,3Ch,03Ch,018h,018h,018h
                DB   000h,018h,018h,000h,000h,000h
fon14_ascii34   DB   000h,000h,066h,66h,066h,024h,000h,000h
                DB   000h,000h,000h,000h,000h,000h
fon14_ascii35   DB   000h,000h,06Ch,6Ch,0FEh,06Ch,06Ch,06Ch
                DB   0FEh,06Ch,06Ch,000h,000h,000h
fon14_ascii36   DB   018h,018h,07Ch,C6h,0C2h,0C0h,07Ch,006h
                DB   086h,0C6h,07Ch,018h,018h,000h
fon14_ascii37   DB   000h,000h,000h,C2h,0C6h,00Ch,018h,030h
                DB   060h,0C6h,086h,000h,000h,000h
fon14_ascii38   DB   000h,000h,038h,6Ch,06Ch,038h,076h,0DCh
                DB   0CCh,0CCh,076h,000h,000h,000h
fon14_ascii39   DB   000h,000h,030h,30h,030h,060h,000h,000h
                DB   000h,000h,000h,000h,000h,000h
fon14_ascii40   DB   000h,000h,00Ch,18h,030h,030h,030h,030h
                DB   030h,018h,00Ch,000h,000h,000h
fon14_ascii41   DB   000h,000h,030h,18h,00Ch,00Ch,00Ch,00Ch
                DB   00Ch,018h,030h,00h,000h,000h
fon14_ascii42   DB   000h,000h,000h,00h,066h,03Ch,0FFh,03Ch
                DB   066h,000h,000h,000h,000h,000h
fon14_ascii43   DB   000h,000h,000h,00h,018h,018h,07Eh,018h
                DB   018h,000h,000h,000h,000h,000h
fon14_ascii44   DB   000h,000h,000h,00h,000h,000h,000h,000h
                DB   018h,018h,018h,030h,000h,000h
fon14_ascii45   DB   000h,000h,000h,00h,000h,000h,0FEh,000h
                DB   000h,000h,000h,000h,000h,000h
fon14_ascii46   DB   000h,000h,000h,00h,000h,000h,000h,000h
                DB   000h,018h,018h,000h,000h,000h
fon14_ascii47   DB   000h,000h,000h,02h,006h,00Ch,018h,030h
                DB   060h,0C0h,080h,000h,000h,000h
fon14_ascii48   DB   000h,000h,07Ch,C6h,0CEh,0DEh,0F6h,0E6h
                DB   0C6h,0C6h,07Ch,000h,000h,000h
fon14_ascii49   DB   000h,000h,018h,38h,078h,018h,018h,018h
                DB   018h,018h,03Ch,000h,000h,000h
fon14_ascii50   DB   000h,000h,07Ch,C6h,0C6h,006h,01Ch,030h
                DB   060h,0C6h,0FEh,000h,000h,000h
fon14_ascii51   DB   000h,000h,07Ch,C6h,0C6h,006h,01Ch,006h
                DB   0C6h,0C6h,07Ch,000h,000h,000h
fon14_ascii52   DB   000h,000h,00Ch,1Ch,03Ch,06Ch,0CCh,0CCh
                DB   0FEh,00Ch,00Ch,000h,000h,000h
fon14_ascii53   DB   000h,000h,0FEh,C0h,0C0h,0FCh,006h,006h
                DB   006h,0C6h,07Ch,000h,000h,000h
fon14_ascii54   DB   000h,000h,07Ch,C6h,0C0h,0C0h,0FCh,0C6h
                DB   0C6h,0C6h,07Ch,000h,000h,000h
fon14_ascii55   DB   000h,000h,0FEh,C6h,086h,004h,00Ch,018h
                DB   018h,030h,030h,000h,000h,000h
fon14_ascii56   DB   000h,000h,07Ch,C6h,0C6h,0C6h,07Ch,0C6h
                DB   0C6h,0C6h,07Ch,000h,000h,000h
fon14_ascii57   DB   000h,000h,07Ch,C6h,0C6h,0C6h,07Eh,006h
                DB   006h,0C6h,07Ch,000h,000h,000h
fon14_ascii58   DB   000h,000h,000h,00h,000h,018h,018h,000h
                DB   000h,018h,018h,000h,000h,000h
fon14_ascii59   DB   000h,000h,000h,00h,000h,018h,018h,000h
                DB   000h,018h,018h,030h,000h,000h
fon14_ascii60   DB   000h,000h,000h,0Ch,018h,030h,060h,030h
                DB   018h,00Ch,000h,000h,000h,000h
fon14_ascii61   DB   000h,000h,000h,00h,000h,0FEh,000h,0FEh
                DB   000h,000h,000h,000h,000h,000h
fon14_ascii62   DB   000h,000h,000h,30h,018h,00Ch,006h,00Ch
                DB   018h,030h,000h,000h,000h,000h
fon14_ascii63   DB   000h,000h,07Ch,C6h,0C6h,006h,00Ch,018h
                DB   000h,018h,018h,000h,000h,000h
fon14_ascii64   DB   000h,000h,000h,7Ch,0C6h,0C6h,0DEh,0DEh
                DB   0DEh,0DCh,0C0h,07Ch,000h,000h
fon14_ascii65   DB   000h,000h,038h,6Ch,0C6h,0C6h,0FEh,0C6h
                DB   0C6h,0C6h,0C6h,00h,000h,000h
fon14_ascii66   DB   000h,000h,0FCh,66h,066h,066h,07Ch,066h
                DB   066h,066h,0FCh,000h,000h,000h
fon14_ascii67   DB   000h,000h,07Ch,C6h,0C6h,0C0h,0C0h,0C0h
                DB   0C6h,0C6h,07Ch,000h,000h,000h
fon14_ascii68   DB   000h,000h,0FCh,66h,066h,066h,066h,066h
                DB   066h,066h,0FCh,000h,000h,000h
fon14_ascii69   DB   000h,000h,0FEh,66h,062h,068h,078h,068h
                DB   062h,066h,0FEh,000h,000h,000h
fon14_ascii70   DB   000h,000h,0FEh,66h,062h,068h,078h,068h
                DB   060h,060h,0F0h,000h,000h,000h
fon14_ascii71   DB   000h,000h,07Ch,C6h,0C6h,0C0h,0C0h,0CEh
                DB   0C6h,0C6h,07Ch,000h,000h,000h
fon14_ascii72   DB   000h,000h,0C6h,C6h,0C6h,0C6h,0FEh,0C6h
                DB   0C6h,0C6h,0C6h,000h,000h,000h
fon14_ascii73   DB   000h,000h,03Ch,18h,018h,018h,018h,018h
                DB   018h,018h,03Ch,000h,000h,000h
fon14_ascii74   DB   000h,000h,01Eh,0Ch,00Ch,00Ch,00Ch,00Ch
                DB   0CCh,0CCh,078h,000h,000h,000h
fon14_ascii75   DB   000h,000h,0C6h,CCh,0D8h,0F0h,0E0h,0F0h
                DB   0D8h,0CCh,0C6h,000h,000h,000h
fon14_ascii76   DB   000h,000h,0F0h,60h,060h,060h,060h,060h
                DB   062h,066h,0FEh,000h,000h,000h
fon14_ascii77   DB   000h,000h,0C6h,EEh,0FEh,0D6h,0C6h,0C6h
                DB   0C6h,0C6h,0C6h,000h,000h,000h
fon14_ascii78   DB   000h,000h,0C6h,E6h,0E6h,0F6h,0DEh,0CEh
                DB   0C6h,0C6h,0C6h,000h,000h,000h
fon14_ascii79   DB   000h,000h,07Ch,C6h,0C6h,0C6h,0C6h,0C6h
                DB   0C6h,0C6h,07Ch,000h,000h,000h
fon14_ascii80   DB   000h,000h,0FCh,66h,066h,066h,07Ch,060h
                DB   060h,060h,0F0h,000h,000h,000h
fon14_ascii81   DB   000h,000h,07Ch,C6h,0C6h,0C6h,0C6h,0C6h
                DB   0C6h,0C6h,07Ch,006h,000h,000h
fon14_ascii82   DB   000h,000h,0FCh,66h,066h,066h,07Ch,06Ch
                DB   06Ch,066h,0E6h,000h,000h,000h
fon14_ascii83   DB   000h,000h,07Ch,C6h,0C6h,060h,038h,00Ch
                DB   0C6h,0C6h,07Ch,000h,000h,000h
fon14_ascii84   DB   000h,000h,07Eh,5Ah,018h,018h,018h,018h
                DB   018h,018h,03Ch,000h,000h,000h
fon14_ascii85   DB   000h,000h,0C6h,C6h,0C6h,0C6h,0C6h,0C6h
                DB   0C6h,0C6h,07Ch,000h,000h,000h
fon14_ascii86   DB   000h,000h,0C6h,C6h,0C6h,0C6h,0C6h,06Ch
                DB   06Ch,038h,010h,000h,000h,000h
fon14_ascii87   DB   000h,000h,0C6h,C6h,0C6h,0C6h,0C6h,0D6h
                DB   0FEh,0EEh,0C6h,000h,000h,000h
fon14_ascii88   DB   000h,000h,0C6h,C6h,06Ch,07Ch,038h,07Ch
                DB   06Ch,0C6h,0C6h,000h,000h,000h
fon14_ascii89   DB   000h,000h,066h,66h,066h,066h,03Ch,018h
                DB   018h,018h,03Ch,000h,000h,000h
fon14_ascii90   DB   000h,000h,0FEh,C6h,086h,00Ch,018h,030h
                DB   062h,0C6h,0FEh,000h,000h,000h
fon14_ascii91   DB   000h,000h,03Ch,30h,030h,030h,030h,030h
                DB   030h,030h,03Ch,000h,000h,000h
fon14_ascii92   DB   000h,000h,080h,C0h,060h,030h,018h,00Ch
                DB   006h,002h,000h,000h,000h,000h
fon14_ascii93   DB   000h,000h,078h,18h,018h,018h,018h,018h
                DB   018h,018h,078h,000h,000h,000h
fon14_ascii94   DB   000h,018h,03Ch,66h,000h,000h,000h,000h
                DB   000h,000h,000h,000h,000h,000h
fon14_ascii95   DB   000h,000h,000h,00h,000h,000h,000h,000h
                DB   000h,000h,000h,0FFh,000h,000h
fon14_ascii96   DB   000h,000h,018h,18h,018h,00Ch,000h,000h
                DB   000h,000h,000h,000h,000h,000h
fon14_ascii97   DB   000h,000h,000h,00h,000h,07Ch,006h,07Eh
                DB   0C6h,0C6h,07Eh,000h,000h,000h
fon14_ascii98   DB   000h,000h,0C0h,C0h,0C0h,0FCh,0C6h,0C6h
                DB   0C6h,0C6h,0FCh,000h,000h,000h
fon14_ascii99   DB   000h,000h,000h,00h,000h,07Ch,0C6h,0C0h
                DB   0C0h,0C6h,07Ch,000h,000h,000h
fon14_ascii100  DB   000h,000h,006h,06h,006h,07Eh,0C6h,0C6h
                DB   0C6h,0C6h,07Eh,000h,000h,000h
fon14_ascii101  DB   000h,000h,000h,00h,000h,07Ch,0C6h,0FEh
                DB   0C0h,0C6h,07Ch,000h,000h,000h
fon14_ascii102  DB   000h,000h,01Ch,36h,030h,030h,078h,030h
                DB   030h,030h,078h,000h,000h,000h
fon14_ascii103  DB   000h,000h,000h,00h,000h,07Eh,0C6h,0C6h
                DB   0C6h,07Eh,006h,0C6h,07Ch,000h
fon14_ascii104  DB   000h,000h,0C0h,C0h,0C0h,0FCh,0C6h,0C6h
                DB   0C6h,0C6h,0C6h,000h,000h,000h
fon14_ascii105  DB   000h,000h,018h,18h,000h,038h,018h,018h
                DB   018h,018h,03Ch,000h,000h,000h
fon14_ascii106  DB   000h,000h,018h,18h,000h,038h,018h,018h
                DB   018h,018h,018h,0D8h,070h,000h
fon14_ascii107  DB   000h,000h,0C0h,C0h,0C0h,0CCh,0D8h,0F0h
                DB   0F8h,0CCh,0C6h,000h,000h,000h
fon14_ascii108  DB   000h,000h,038h,18h,018h,018h,018h,018h
                DB   018h,018h,03Ch,000h,000h,000h
fon14_ascii109  DB   000h,000h,000h,00h,000h,06Ch,0FEh,0D6h
                DB   0C6h,0C6h,0C6h,000h,000h,000h
fon14_ascii110  DB   000h,000h,000h,00h,000h,0FCh,0C6h,0C6h
                DB   0C6h,0C6h,0C6h,000h,000h,000h
fon14_ascii111  DB   000h,000h,000h,00h,000h,07Ch,0C6h,0C6h
                DB   0C6h,0C6h,07Ch,000h,000h,000h
fon14_ascii112  DB   000h,000h,000h,00h,000h,0FCh,0C6h,0C6h
                DB   0C6h,0FCh,0C0h,0C0h,0C0h,000h
fon14_ascii113  DB   000h,000h,000h,00h,000h,07Eh,0C6h,0C6h
                DB   0C6h,07Eh,006h,006h,006h,000h
fon14_ascii114  DB   000h,000h,000h,00h,000h,0DEh,076h,060h
                DB   060h,060h,0F0h,000h,000h,000h
fon14_ascii115  DB   000h,000h,000h,00h,000h,07Ch,0C6h,070h
                DB   01Ch,0C6h,07Ch,000h,000h,000h
fon14_ascii116  DB   000h,000h,018h,18h,018h,07Eh,018h,018h
                DB   018h,018h,01Ch,000h,000h,000h
fon14_ascii117  DB   000h,000h,000h,00h,000h,0C6h,0C6h,0C6h
                DB   0C6h,0C6h,07Eh,000h,000h,000h
fon14_ascii118  DB   000h,000h,000h,00h,000h,0C6h,0C6h,0C6h
                DB   06Ch,038h,010h,000h,000h,000h
fon14_ascii119  DB   000h,000h,000h,00h,000h,0C6h,0C6h,0D6h
                DB   0FEh,0EEh,0C6h,000h,000h,000h
fon14_ascii120  DB   000h,000h,000h,00h,000h,0C6h,06Ch,038h
                DB   038h,06Ch,0C6h,000h,000h,000h
fon14_ascii121  DB   000h,000h,000h,00h,000h,0C6h,0C6h,0C6h
                DB   06Ch,038h,030h,060h,0C0h,000h
fon14_ascii122  DB   000h,000h,000h,00h,000h,0FEh,0CCh,018h
                DB   030h,066h,0FEh,000h,000h,000h
fon14_ascii123  DB   000h,000h,00Eh,18h,018h,018h,070h,018h
                DB   018h,018h,018h,00Eh,000h,000h
fon14_ascii124  DB   000h,000h,018h,18h,018h,018h,000h,018h
                DB   018h,018h,018h,018h,000h,000h
fon14_ascii125  DB   000h,000h,070h,18h,018h,018h,00Eh,018h
                DB   018h,018h,018h,070h,000h,000h
fon14_ascii126  DB   000h,000h,062h,9Ch,000h,000h,000h,000h
                DB   000h,000h,000h,000h,000h,000h
fon14_ascii127  DB   000h,000h,000h,00h,000h,010h,038h,06Ch
                DB   0C6h,0FEh,000h,000h,000h,000h
fon14_ascii128  DB   000h,000h,01Eh,36h,066h,0C6h,0C6h,0FEh
                DB   0C6h,0C6h,0C6h,000h,000h,000h
fon14_ascii129  DB   000h,000h,0FEh,62h,060h,07Ch,066h,066h
                DB   066h,066h,0FCh,000h,000h,000h
fon14_ascii130  DB   000h,000h,0FCh,66h,066h,066h,07Ch,066h
                DB   066h,066h,0FCh,000h,000h,000h
fon14_ascii131  DB   000h,000h,0FEh,62h,062h,060h,060h,060h
                DB   060h,060h,0F0h,000h,000h,000h
fon14_ascii132  DB   000h,000h,01Eh,36h,066h,066h,066h,066h
                DB   066h,066h,0FFh,0C3h,081h,000h
fon14_ascii133  DB   000h,000h,0FEh,66h,062h,068h,078h,068h
                DB   062h,066h,0FEh,000h,000h,000h
fon14_ascii134  DB   000h,000h,0D6h,D6h,054h,054h,07Ch,054h
                DB   0D6h,0D6h,0D6h,000h,000h,000h
fon14_ascii135  DB   000h,000h,07Ch,C6h,006h,006h,03Ch,006h
                DB   006h,0C6h,07Ch,000h,000h,000h
fon14_ascii136  DB   000h,000h,0C6h,C6h,0CEh,0DEh,0F6h,0E6h
                DB   0C6h,0C6h,0C6h,000h,000h,000h
fon14_ascii137  DB   038h,038h,0C6h,C6h,0CEh,0DEh,0F6h,0E6h
                DB   0C6h,0C6h,0C6h,000h,000h,000h
fon14_ascii138  DB   000h,000h,0E6h,66h,06Ch,06Ch,078h,06Ch
                DB   06Ch,066h,0E6h,000h,000h,000h
fon14_ascii139  DB   000h,000h,01Eh,36h,066h,0C6h,0C6h,0C6h
                DB   0C6h,0C6h,0C6h,000h,000h,000h
fon14_ascii140  DB   000h,000h,0C6h,EEh,0FEh,0FEh,0D6h,0C6h
                DB   0C6h,0C6h,0C6h,000h,000h,000h
fon14_ascii141  DB   000h,000h,0C6h,C6h,0C6h,0C6h,0FEh,0C6h
                DB   0C6h,0C6h,0C6h,000h,000h,000h
fon14_ascii142  DB   000h,000h,07Ch,C6h,0C6h,0C6h,0C6h,0C6h
                DB   0C6h,0C6h,07Ch,000h,000h,000h
fon14_ascii143  DB   000h,000h,0FEh,C6h,0C6h,0C6h,0C6h,0C6h
                DB   0C6h,0C6h,0C6h,000h,000h,000h
fon14_ascii144  DB   000h,000h,0FCh,66h,066h,066h,07Ch,060h
                DB   060h,060h,0F0h,000h,000h,000h
fon14_ascii145  DB   000h,000h,03Ch,66h,0C2h,0C0h,0C0h,0C0h
                DB   0C2h,066h,03Ch,000h,000h,000h
fon14_ascii146  DB   000h,000h,07Eh,5Ah,018h,018h,018h,018h
                DB   018h,018h,03Ch,000h,000h,000h
fon14_ascii147  DB   000h,000h,0C6h,C6h,0C6h,0C6h,0C6h,07Eh
                DB   006h,0C6h,07Ch,000h,000h,000h
fon14_ascii148  DB   000h,03Ch,018h,7Eh,0DBh,0DBh,0DBh,0DBh
                DB   07Eh,018h,03Ch,000h,000h,000h
fon14_ascii149  DB   000h,000h,0C6h,C6h,06Ch,07Ch,038h,07Ch
                DB   06Ch,0C6h,0C6h,000h,000h,000h
fon14_ascii150  DB   000h,000h,0CCh,CCh,0CCh,0CCh,0CCh,0CCh
                DB   0CCh,0CCh,0FEh,006h,006h,000h
fon14_ascii151  DB   000h,000h,0C6h,C6h,0C6h,0C6h,0C6h,07Eh
                DB   006h,006h,006h,000h,000h,000h
fon14_ascii152  DB   000h,000h,0DBh,DBh,0DBh,0DBh,0DBh,0DBh
                DB   0DBh,0DBh,0FFh,000h,000h,000h
fon14_ascii153  DB   000h,000h,0DBh,DBh,0DBh,0DBh,0DBh,0DBh
                DB   0DBh,0DBh,0FFh,003h,003h,000h
fon14_ascii154  DB   000h,000h,0F8h,B0h,030h,03Ch,036h,036h
                DB   036h,036h,07Ch,000h,000h,000h
fon14_ascii155  DB   000h,000h,0C3h,C3h,0C3h,0F3h,0DBh,0DBh
                DB   0DBh,0DBh,0F3h,000h,000h,000h
fon14_ascii156  DB   000h,000h,0F0h,60h,060h,07Ch,066h,066h
                DB   066h,066h,0FCh,000h,000h,000h
fon14_ascii157  DB   000h,000h,07Ch,C6h,006h,026h,03Eh,026h
                DB   006h,0C6h,07Ch,000h,000h,000h
fon14_ascii158  DB   000h,000h,0CEh,DBh,0DBh,0DBh,0FBh,0DBh
                DB   0DBh,0DBh,0CEh,000h,000h,000h
fon14_ascii159  DB   000h,000h,03Fh,66h,066h,066h,03Eh,03Eh
                DB   066h,066h,0E7h,000h,000h,000h
fon14_ascii160  DB   000h,000h,000h,00h,000h,078h,00Ch,07Ch
                DB   0CCh,0CCh,076h,000h,000h,000h
fon14_ascii161  DB   000h,002h,006h,3Ch,060h,060h,07Ch,066h
                DB   066h,066h,03Ch,000h,000h,000h
fon14_ascii162  DB   000h,000h,000h,00h,000h,0FCh,066h,07Ch
                DB   066h,066h,0FCh,000h,000h,000h
fon14_ascii163  DB   000h,000h,000h,00h,000h,07Eh,032h,030h
                DB   030h,030h,078h,000h,000h,000h
fon14_ascii164  DB   000h,000h,000h,00h,000h,01Eh,036h,036h
                DB   066h,066h,0FFh,0C3h,0C3h,000h
fon14_ascii165  DB   000h,000h,000h,00h,000h,07Ch,0C6h,0FEh
                DB   0C0h,0C6h,07Ch,000h,000h,000h
fon14_ascii166  DB   000h,000h,000h,00h,000h,0D6h,0D6h,07Ch
                DB   054h,0D6h,0D6h,000h,000h,000h
fon14_ascii167  DB   000h,000h,000h,00h,000h,03Ch,066h,00Ch
                DB   006h,066h,03Ch,000h,000h,000h
fon14_ascii168  DB   000h,000h,000h,00h,000h,0C6h,0CEh,0D6h
                DB   0E6h,0C6h,0C6h,000h,000h,000h
fon14_ascii169  DB   000h,000h,000h,38h,038h,0C6h,0CEh,0D6h
                DB   0E6h,0C6h,0C6h,000h,000h,000h
fon14_ascii170  DB   000h,000h,000h,00h,000h,0E6h,06Ch,078h
                DB   078h,06Ch,0E6h,000h,000h,000h
fon14_ascii171  DB   000h,000h,000h,00h,000h,01Eh,036h,066h
                DB   066h,066h,066h,000h,000h,000h
fon14_ascii172  DB   000h,000h,000h,00h,000h,0C6h,0EEh,0FEh
                DB   0D6h,0D6h,0C6h,000h,000h,000h
fon14_ascii173  DB   000h,000h,000h,00h,000h,0C6h,0C6h,0FEh
                DB   0C6h,0C6h,0C6h,000h,000h,000h
fon14_ascii174  DB   000h,000h,000h,00h,000h,07Ch,0C6h,0C6h
                DB   0C6h,0C6h,07Ch,000h,000h,000h
fon14_ascii175  DB   000h,000h,000h,00h,000h,0FEh,0C6h,0C6h
                DB   0C6h,0C6h,0C6h,000h,000h,000h
fon14_ascii176  DB   011h,044h,011h,44h,011h,044h,011h,044h
                DB   011h,044h,011h,044h,011h,044h
fon14_ascii177  DB   055h,0AAh,055h,AAh,055h,0AAh,055h,0AAh
                DB   055h,0AAh,055h,0AAh,055h,0AAh
fon14_ascii178  DB   0DDh,077h,0DDh,77h,0DDh,077h,0DDh,077h
                DB   0DDh,077h,0DDh,077h,0DDh,077h
fon14_ascii179  DB   018h,018h,018h,18h,018h,018h,018h,018h
                DB   018h,018h,018h,018h,018h,018h
fon14_ascii180  DB   018h,018h,018h,18h,018h,018h,018h,0F8h
                DB   018h,018h,018h,018h,018h,018h
fon14_ascii181  DB   018h,018h,018h,18h,018h,0F8h,018h,0F8h
                DB   018h,018h,018h,018h,018h,018h
fon14_ascii182  DB   036h,036h,036h,36h,036h,036h,036h,0F6h
                DB   036h,036h,036h,036h,036h,036h
fon14_ascii183  DB   000h,000h,000h,00h,000h,000h,000h,0FEh
                DB   036h,036h,036h,036h,036h,036h
fon14_ascii184  DB   000h,000h,000h,00h,000h,0F8h,018h,0F8h
                DB   018h,018h,018h,018h,018h,018h
fon14_ascii185  DB   036h,036h,036h,36h,036h,0F6h,006h,0F6h
                DB   036h,036h,036h,036h,036h,036h
fon14_ascii186  DB   036h,036h,036h,36h,036h,036h,036h,036h
                DB   036h,036h,036h,036h,036h,036h
fon14_ascii187  DB   000h,000h,000h,00h,000h,0FEh,006h,0F6h
                DB   036h,036h,036h,036h,036h,036h
fon14_ascii188  DB   036h,036h,036h,36h,036h,0F6h,006h,0FEh
                DB   000h,000h,000h,000h,000h,000h
fon14_ascii189  DB   036h,036h,036h,36h,036h,036h,036h,0FEh
                DB   000h,000h,000h,000h,000h,000h
fon14_ascii190  DB   018h,018h,018h,18h,018h,0F8h,018h,0F8h
                DB   000h,000h,000h,000h,000h,000h
fon14_ascii191  DB   000h,000h,000h,00h,000h,000h,000h,0F8h
                DB   018h,018h,018h,018h,018h,018h
fon14_ascii192  DB   018h,018h,018h,18h,018h,018h,018h,01Fh
                DB   000h,000h,000h,000h,000h,000h
fon14_ascii193  DB   018h,018h,018h,18h,018h,018h,018h,0FFh
                DB   000h,000h,000h,000h,000h,000h
fon14_ascii194  DB   000h,000h,000h,00h,000h,000h,000h,0FFh
                DB   018h,018h,018h,018h,018h,018h
fon14_ascii195  DB   018h,018h,018h,18h,018h,018h,018h,01Fh
                DB   018h,018h,018h,018h,018h,018h
fon14_ascii196  DB   000h,000h,000h,00h,000h,000h,000h,0FFh
                DB   000h,000h,000h,000h,000h,000h
fon14_ascii197  DB   018h,018h,018h,18h,018h,018h,018h,0FFh
                DB   018h,018h,018h,018h,018h,018h
fon14_ascii198  DB   018h,018h,018h,18h,018h,01Fh,018h,01Fh
                DB   018h,018h,018h,018h,018h,018h
fon14_ascii199  DB   036h,036h,036h,36h,036h,036h,036h,037h
                DB   036h,036h,036h,036h,036h,036h
fon14_ascii200  DB   036h,036h,036h,36h,036h,037h,030h,03Fh
                DB   000h,000h,000h,000h,000h,000h
fon14_ascii201  DB   000h,000h,000h,00h,000h,03Fh,030h,037h
                DB   036h,036h,036h,036h,036h,036h
fon14_ascii202  DB   036h,036h,036h,36h,036h,0F7h,000h,0FFh
                DB   000h,000h,000h,000h,000h,000h
fon14_ascii203  DB   000h,000h,000h,00h,000h,0FFh,000h,0F7h
                DB   036h,036h,036h,036h,036h,036h
fon14_ascii204  DB   036h,036h,036h,36h,036h,037h,030h,037h
                DB   036h,036h,036h,036h,036h,036h
fon14_ascii205  DB   000h,000h,000h,00h,000h,0FFh,000h,0FFh
                DB   000h,000h,000h,000h,000h,000h
fon14_ascii206  DB   036h,036h,036h,36h,036h,0F7h,000h,0F7h
                DB   036h,036h,036h,036h,036h,036h
fon14_ascii207  DB   018h,018h,018h,18h,018h,0FFh,000h,0FFh
                DB   000h,000h,000h,000h,000h,000h
fon14_ascii208  DB   036h,036h,036h,36h,036h,036h,036h,0FFh
                DB   000h,000h,000h,000h,000h,000h
fon14_ascii209  DB   000h,000h,000h,00h,000h,0FFh,000h,0FFh
                DB   018h,018h,018h,018h,018h,018h
fon14_ascii210  DB   000h,000h,000h,00h,000h,000h,000h,0FFh
                DB   036h,036h,036h,036h,036h,036h
fon14_ascii211  DB   036h,036h,036h,36h,036h,036h,036h,03Fh
                DB   000h,000h,000h,000h,000h,000h
fon14_ascii212  DB   018h,018h,018h,18h,018h,01Fh,018h,01Fh
                DB   000h,000h,000h,000h,000h,000h
fon14_ascii213  DB   000h,000h,000h,00h,000h,01Fh,018h,01Fh
                DB   018h,018h,018h,018h,018h,018h
fon14_ascii214  DB   000h,000h,000h,00h,000h,000h,000h,03Fh
                DB   036h,036h,036h,036h,036h,036h
fon14_ascii215  DB   036h,036h,036h,36h,036h,036h,036h,0FFh
                DB   036h,036h,036h,036h,036h,036h
fon14_ascii216  DB   018h,018h,018h,18h,018h,0FFh,018h,0FFh
                DB   018h,018h,018h,018h,018h,018h
fon14_ascii217  DB   018h,018h,018h,18h,018h,018h,018h,0F8h
                DB   000h,000h,000h,000h,000h,000h
fon14_ascii218  DB   000h,000h,000h,00h,000h,000h,000h,01Fh
                DB   018h,018h,018h,018h,018h,018h
fon14_ascii219  DB   0FFh,0FFh,0FFh,FFh,0FFh,0FFh,0FFh,0FFh
                DB   0FFh,0FFh,0FFh,0FFh,0FFh,0FFh
fon14_ascii220  DB   000h,000h,000h,00h,000h,000h,000h,0FFh
                DB   0FFh,0FFh,0FFh,0FFh,0FFh,0FFh
fon14_ascii221  DB   0F0h,0F0h,0F0h,F0h,0F0h,0F0h,0F0h,0F0h
                DB   0F0h,0F0h,0F0h,0F0h,0F0h,0F0h
fon14_ascii222  DB   00Fh,00Fh,00Fh,0Fh,00Fh,00Fh,00Fh,00Fh
                DB   00Fh,00Fh,00Fh,00Fh,00Fh,00Fh
fon14_ascii223  DB   0FFh,0FFh,0FFh,FFh,0FFh,0FFh,0FFh,000h
                DB   000h,000h,000h,000h,000h,000h
fon14_ascii224  DB   000h,000h,000h,00h,000h,0DCh,066h,066h
                DB   066h,066h,07Ch,060h,0F0h,000h
fon14_ascii225  DB   000h,000h,000h,00h,000h,07Ch,0C6h,0C0h
                DB   0C0h,0C6h,07Ch,000h,000h,000h
fon14_ascii226  DB   000h,000h,000h,00h,000h,07Eh,05Ah,018h
                DB   018h,018h,03Ch,000h,000h,000h
fon14_ascii227  DB   000h,000h,000h,00h,000h,0C6h,0C6h,0C6h
                DB   0C6h,07Eh,006h,0C6h,07Ch,000h
fon14_ascii228  DB   000h,000h,000h,00h,03Ch,018h,07Eh,0DBh
                DB   0DBh,0DBh,07Eh,018h,03Ch,000h
fon14_ascii229  DB   000h,000h,000h,00h,000h,0C6h,06Ch,038h
                DB   038h,06Ch,0C6h,000h,000h,000h
fon14_ascii230  DB   000h,000h,000h,00h,000h,0CCh,0CCh,0CCh
                DB   0CCh,0CCh,0FEh,006h,006h,000h
fon14_ascii231  DB   000h,000h,000h,00h,000h,0C6h,0C6h,0C6h
                DB   07Eh,006h,006h,000h,000h,000h
fon14_ascii232  DB   000h,000h,000h,00h,000h,0D6h,0D6h,0D6h
                DB   0D6h,0D6h,0FEh,000h,000h,000h
fon14_ascii233  DB   000h,000h,000h,00h,000h,0D6h,0D6h,0D6h
                DB   0D6h,0D6h,0FEh,003h,003h,000h
fon14_ascii234  DB   000h,000h,000h,00h,000h,0F8h,0B0h,03Eh
                DB   033h,033h,07Eh,000h,000h,000h
fon14_ascii235  DB   000h,000h,000h,00h,000h,0C6h,0C6h,0F6h
                DB   0DEh,0DEh,0F6h,000h,000h,000h
fon14_ascii236  DB   000h,000h,000h,00h,000h,0F0h,060h,07Ch
                DB   066h,066h,0FCh,000h,000h,000h
fon14_ascii237  DB   000h,000h,000h,00h,000h,03Ch,066h,01Eh
                DB   006h,066h,03Ch,000h,000h,000h
fon14_ascii238  DB   000h,000h,000h,00h,000h,0CEh,0DBh,0FBh
                DB   0DBh,0DBh,0CEh,000h,000h,000h
fon14_ascii239  DB   000h,000h,000h,00h,000h,07Eh,0CCh,07Ch
                DB   06Ch,0CCh,0CEh,000h,000h,000h
fon14_ascii240  DB   000h,000h,06Ch,00h,0FEh,062h,068h,078h
                DB   068h,062h,0FEh,000h,000h,000h
fon14_ascii241  DB   000h,000h,000h,6Ch,000h,07Ch,0C6h,0FEh
                DB   0C0h,0C6h,07Ch,000h,000h,000h
fon14_ascii242  DB   000h,000h,000h,30h,018h,00Ch,006h,00Ch
                DB   018h,030h,000h,07Eh,000h,000h
fon14_ascii243  DB   000h,000h,000h,0Ch,018h,030h,060h,030h
                DB   018h,00Ch,000h,07Eh,000h,000h
fon14_ascii244  DB   000h,000h,00Eh,1Bh,01Bh,018h,018h,018h
                DB   018h,018h,018h,018h,018h,018h
fon14_ascii245  DB   018h,018h,018h,18h,018h,018h,018h,018h
                DB   0D8h,0D8h,0D8h,070h,000h,000h
fon14_ascii246  DB   000h,000h,000h,00h,018h,018h,000h,07Eh
                DB   000h,018h,018h,000h,000h,000h
fon14_ascii247  DB   000h,000h,000h,00h,000h,076h,0DCh,000h
                DB   076h,0DCh,000h,000h,000h,000h
fon14_ascii248  DB   000h,038h,06Ch,6Ch,038h,000h,000h,000h
                DB   000h,000h,000h,000h,000h,000h
fon14_ascii249  DB   000h,000h,000h,00h,000h,000h,000h,018h
                DB   018h,000h,000h,000h,000h,000h
fon14_ascii250  DB   000h,000h,000h,00h,000h,000h,000h,000h
                DB   018h,000h,000h,000h,000h,000h
fon14_ascii251  DB   000h,000h,0E0h,18h,006h,003h,0F1h,0F9h
                DB   023h,0FEh,0A0h,0A0h,000h,000h
fon14_ascii252  DB   000h,000h,000h,06h,008h,04Bh,04Bh,068h
                DB   06Bh,058h,048h,088h,000h,000h
fon14_ascii253  DB   000h,070h,0D8h,30h,060h,0C8h,0F8h,000h
                DB   000h,000h,000h,000h,000h,000h
fon14_ascii254  DB   000h,000h,000h,0FFh,081h,0BDh,0A5h,0A5h
                DB   0BDh,081h,0FFh,000h,000h,000h
fon14_ascii255  DB   000h,000h,000h,00h,000h,000h,000h,000h
                DB   000h,042h,042h,07Eh,000h,000h
; файл vga_font.inc

; таблица шрифтов 8х16 пикселов, содержащая русские символы

; каждый символ определяет шестнадцать байтов

fon16_ascii0    DB   000h,000h,000h,000h,000h,000h,000h,000h
                DB   000h,000h,000h,000h,000h,000h,000h,000h
fon16_ascii1    DB   000h,000h,07Eh,081h,0A5h,081h,081h,0A5h
                DB   099h,081h,081h,07Eh,000h,000h,000h,000h
fon16_ascii2    DB   000h,000h,07Eh,0FFh,0DBh,0FFh,0FFh,0DBh
                DB   0E7h,0FFh,0FFh,07Eh,000h,000h,000h,000h
fon16_ascii3    DB   000h,000h,000h,000h,06Ch,0FEh,0FEh,0FEh
                DB   0FEh,07Ch,038h,010h,000h,000h,000h,000h
fon16_ascii4    DB   000h,000h,000h,000h,010h,038h,07Ch,0FEh
                DB   07Ch,038h,010h,000h,000h,000h,000h,000h
fon16_ascii5    DB   000h,000h,000h,018h,03Ch,03Ch,0E7h,0E7h
                DB   0E7h,018h,018h,03Ch,000h,000h,000h,000h
fon16_ascii6    DB   000h,000h,000h,018h,03Ch,07Eh,0FFh,0FFh
                DB   07Eh,018h,018h,03Ch,000h,000h,000h,000h
fon16_ascii7    DB   000h,000h,000h,000h,000h,000h,018h,03Ch
                DB   03Ch,018h,000h,000h,000h,000h,000h,000h
fon16_ascii8    DB   0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0E7h,0C3h
                DB   0C3h,0E7h,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh
fon16_ascii9    DB   000h,000h,000h,000h,000h,03Ch,066h,042h
                DB   042h,066h,03Ch,000h,000h,000h,000h,000h
fon16_ascii10   DB   0FFh,0FFh,0FFh,0FFh,0FFh,0C3h,099h,0BDh
                DB   0BDh,099h,0C3h,0FFh,0FFh,0FFh,0FFh,0FFh
fon16_ascii11   DB   000h,000h,01Eh,006h,00Eh,01Ah,078h,0CCh
                DB   0CCh,0CCh,0CCh,078h,000h,000h,000h,000h
fon16_ascii12   DB   000h,000h,03Ch,066h,066h,066h,066h,03Ch
                DB   018h,07Eh,018h,018h,000h,000h,000h,000h
fon16_ascii13   DB   000h,000h,03Fh,033h,03Fh,030h,030h,030h
                DB   030h,070h,0F0h,0E0h,000h,000h,000h,000h
fon16_ascii14   DB   000h,000h,07Fh,063h,07Fh,063h,063h,063h
                DB   063h,067h,0E7h,0E6h,0C0h,000h,000h,000h
fon16_ascii15   DB   000h,000h,000h,018h,018h,0DBh,03Ch,0E7h
                DB   03Ch,0DBh,018h,018h,000h,000h,000h,000h
fon16_ascii16   DB   000h,080h,0C0h,0E0h,0F0h,0F8h,0FEh,0F8h
                DB   0F0h,0E0h,0C0h,080h,000h,000h,000h,000h
fon16_ascii17   DB   000h,002h,006h,00Eh,01Eh,03Eh,0FEh,03Eh
                DB   01Eh,00Eh,006h,002h,000h,000h,000h,000h
fon16_ascii18   DB   000h,000h,018h,03Ch,07Eh,018h,018h,018h
                DB   07Eh,03Ch,018h,000h,000h,000h,000h,000h
fon16_ascii19   DB   000h,000h,066h,066h,066h,066h,066h,066h
                DB   066h,000h,066h,066h,000h,000h,000h,000h
fon16_ascii20   DB   000h,000h,07Fh,0DBh,0DBh,0DBh,07Bh,01Bh
                DB   01Bh,01Bh,01Bh,01Bh,000h,000h,000h,000h
fon16_ascii21   DB   000h,07Ch,0C6h,060h,038h,06Ch,0C6h,0C6h
                DB   06Ch,038h,00Ch,0C6h,07Ch,000h,000h,000h
fon16_ascii22   DB   000h,000h,000h,000h,000h,000h,000h,000h
                DB   0FEh,0FEh,0FEh,0FEh,000h,000h,000h,000h
fon16_ascii23   DB   000h,000h,018h,03Ch,07Eh,018h,018h,018h
                DB   07Eh,03Ch,018h,07Eh,000h,000h,000h,000h
fon16_ascii24   DB   000h,000h,018h,03Ch,07Eh,018h,018h,018h
                DB   018h,018h,018h,018h,000h,000h,000h,000h
fon16_ascii25   DB   000h,000h,018h,018h,018h,018h,018h,018h
                DB   018h,07Eh,03Ch,018h,000h,000h,000h,000h
fon16_ascii26   DB   000h,000h,000h,000h,000h,018h,00Ch,0FEh
                DB   00Ch,018h,000h,000h,000h,000h,000h,000h
fon16_ascii27   DB   000h,000h,000h,000h,000h,030h,060h,0FEh
                DB   060h,030h,000h,000h,000h,000h,000h,000h
fon16_ascii28   DB   000h,000h,000h,000h,000h,000h,0C0h,0C0h
                DB   0C0h,0FEh,000h,000h,000h,000h,000h,000h
fon16_ascii29   DB   000h,000h,000h,000h,000h,028h,06Ch,0FEh
                DB   06Ch,028h,000h,000h,000h,000h,000h,000h
fon16_ascii30   DB   000h,000h,000h,000h,010h,038h,038h,07Ch
                DB   07Ch,0FEh,0FEh,000h,000h,000h,000h,000h
fon16_ascii31   DB   000h,000h,000h,000h,0FEh,0FEh,07Ch,07Ch
                DB   038h,038h,010h,000h,000h,000h,000h,000h
fon16_ascii32   DB   000h,000h,000h,000h,000h,000h,000h,000h
                DB   000h,000h,000h,000h,000h,000h,000h,000h
fon16_ascii33   DB   000h,000h,018h,03Ch,03Ch,03Ch,018h,018h
                DB   018h,000h,018h,018h,000h,000h,000h,000h
fon16_ascii34   DB   000h,066h,066h,066h,024h,000h,000h,000h
                DB   000h,000h,000h,000h,000h,000h,000h,000h
fon16_ascii35   DB   000h,000h,000h,06Ch,06Ch,0FEh,06Ch,06Ch
                DB   06Ch,0FEh,06Ch,06Ch,000h,000h,000h,000h
fon16_ascii36   DB   018h,018h,07Ch,0C6h,0C2h,0C0h,07Ch,006h
                DB   006h,086h,0C6h,07Ch,018h,018h,000h,000h
fon16_ascii37   DB   000h,000h,000h,000h,0C2h,0C6h,00Ch,018h
                DB   030h,060h,0C6h,086h,000h,000h,000h,000h
fon16_ascii38   DB   000h,000h,038h,06Ch,06Ch,038h,076h,0DCh
                DB   0CCh,0CCh,0CCh,076h,000h,000h,000h,000h
fon16_ascii39   DB   000h,030h,030h,030h,060h,000h,000h,000h
                DB   000h,000h,000h,000h,000h,000h,000h,000h
fon16_ascii40   DB   000h,000h,00Ch,018h,030h,030h,030h,030h
                DB   030h,030h,018h,00Ch,000h,000h,000h,000h
fon16_ascii41   DB   000h,000h,030h,018h,00Ch,00Ch,00Ch,00Ch
                DB   00Ch,00Ch,018h,030h,000h,000h,000h,000h
fon16_ascii42   DB   000h,000h,000h,000h,000h,066h,03Ch,0FFh
                DB   03Ch,066h,000h,000h,000h,000h,000h,000h
fon16_ascii43   DB   000h,000h,000h,000h,000h,018h,018h,07Eh
                DB   018h,018h,000h,000h,000h,000h,000h,000h
fon16_ascii44   DB   000h,000h,000h,000h,000h,000h,000h,000h
                DB   000h,018h,018h,018h,030h,000h,000h,000h
fon16_ascii45   DB   000h,000h,000h,000h,000h,000h,000h,0FEh
                DB   000h,000h,000h,000h,000h,000h,000h,000h
fon16_ascii46   DB   000h,000h,000h,000h,000h,000h,000h,000h
                DB   000h,000h,018h,018h,000h,000h,000h,000h
fon16_ascii47   DB   000h,000h,000h,000h,002h,006h,00Ch,018h
                DB   030h,060h,0C0h,080h,000h,000h,000h,000h
fon16_ascii48   DB   000h,000h,038h,06Ch,0C6h,0C6h,0D6h,0D6h
                DB   0C6h,0C6h,06Ch,038h,000h,000h,000h,000h
fon16_ascii49   DB   000h,000h,018h,038h,078h,018h,018h,018h
                DB   018h,018h,018h,07Eh,000h,000h,000h,000h
fon16_ascii50   DB   000h,000h,07Ch,0C6h,006h,00Ch,018h,030h
                DB   060h,0C0h,0C6h,0FEh,000h,000h,000h,000h
fon16_ascii51   DB   000h,000h,07Ch,0C6h,006h,006h,03Ch,006h
                DB   006h,006h,0C6h,07Ch,000h,000h,000h,000h
fon16_ascii52   DB   000h,000h,00Ch,01Ch,03Ch,06Ch,0CCh,0FEh
                DB   00Ch,00Ch,00Ch,01Eh,000h,000h,000h,000h
fon16_ascii53   DB   000h,000h,0FEh,0C0h,0C0h,0C0h,0FCh,006h
                DB   006h,006h,0C6h,07Ch,000h,000h,000h,000h
fon16_ascii54   DB   000h,000h,038h,060h,0C0h,0C0h,0FCh,0C6h
                DB   0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h
fon16_ascii55   DB   000h,000h,0FEh,0C6h,006h,006h,00Ch,018h
                DB   030h,030h,030h,030h,000h,000h,000h,000h
fon16_ascii56   DB   000h,000h,07Ch,0C6h,0C6h,0C6h,07Ch,0C6h
                DB   0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h
fon16_ascii57   DB   000h,000h,07Ch,0C6h,0C6h,0C6h,07Eh,006h
                DB   006h,006h,00Ch,078h,000h,000h,000h,000h
fon16_ascii58   DB   000h,000h,000h,000h,018h,018h,000h,000h
                DB   000h,018h,018h,000h,000h,000h,000h,000h
fon16_ascii59   DB   000h,000h,000h,000h,018h,018h,000h,000h
                DB   000h,018h,018h,030h,000h,000h,000h,000h
fon16_ascii60   DB   000h,000h,000h,006h,00Ch,018h,030h,060h
                DB   030h,018h,00Ch,006h,000h,000h,000h,000h
fon16_ascii61   DB   000h,000h,000h,000h,000h,07Eh,000h,000h
                DB   07Eh,000h,000h,000h,000h,000h,000h,000h
fon16_ascii62   DB   000h,000h,000h,060h,030h,018h,00Ch,006h
                DB   00Ch,018h,030h,060h,000h,000h,000h,000h
fon16_ascii63   DB   000h,000h,07Ch,0C6h,0C6h,00Ch,018h,018h
                DB   018h,000h,018h,018h,000h,000h,000h,000h
fon16_ascii64   DB   000h,000h,000h,07Ch,0C6h,0C6h,0DEh,0DEh
                DB   0DEh,0DCh,0C0h,07Ch,000h,000h,000h,000h
fon16_ascii65   DB   000h,000h,010h,038h,06Ch,0C6h,0C6h,0FEh
                DB   0C6h,0C6h,0C6h,0C6h,000h,000h,000h,000h
fon16_ascii66   DB   000h,000h,0FCh,066h,066h,066h,07Ch,066h
                DB   066h,066h,066h,0FCh,000h,000h,000h,000h
fon16_ascii67   DB   000h,000h,03Ch,066h,0C2h,0C0h,0C0h,0C0h
                DB   0C0h,0C2h,066h,03Ch,000h,000h,000h,000h
fon16_ascii68   DB   000h,000h,0F8h,06Ch,066h,066h,066h,066h
                DB   066h,066h,06Ch,0F8h,000h,000h,000h,000h
fon16_ascii69   DB   000h,000h,0FEh,066h,062h,068h,078h,068h
                DB   060h,062h,066h,0FEh,000h,000h,000h,000h
fon16_ascii70   DB   000h,000h,0FEh,066h,062h,068h,078h,068h
                DB   060h,060h,060h,0F0h,000h,000h,000h,000h
fon16_ascii71   DB   000h,000h,03Ch,066h,0C2h,0C0h,0C0h,0DEh
                DB   0C6h,0C6h,066h,03Ah,000h,000h,000h,000h
fon16_ascii72   DB   000h,000h,0C6h,0C6h,0C6h,0C6h,0FEh,0C6h
                DB   0C6h,0C6h,0C6h,0C6h,000h,000h,000h,000h
fon16_ascii73   DB   000h,000h,03Ch,018h,018h,018h,018h,018h
                DB   018h,018h,018h,03Ch,000h,000h,000h,000h
fon16_ascii74   DB   000h,000h,01Eh,00Ch,00Ch,00Ch,00Ch,00Ch
                DB   0CCh,0CCh,0CCh,078h,000h,000h,000h,000h
fon16_ascii75   DB   000h,000h,0E6h,066h,066h,06Ch,078h,078h
                DB   06Ch,066h,066h,0E6h,000h,000h,000h,000h
fon16_ascii76   DB   000h,000h,0F0h,060h,060h,060h,060h,060h
                DB   060h,062h,066h,0FEh,000h,000h,000h,000h
fon16_ascii77   DB   000h,000h,0C6h,0EEh,0FEh,0FEh,0D6h,0C6h
                DB   0C6h,0C6h,0C6h,0C6h,000h,000h,000h,000h
fon16_ascii78   DB   000h,000h,0C6h,0E6h,0F6h,0FEh,0DEh,0CEh
                DB   0C6h,0C6h,0C6h,0C6h,000h,000h,000h,000h
fon16_ascii79   DB   000h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h
                DB   0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h
fon16_ascii80   DB   000h,000h,0FCh,066h,066h,066h,07Ch,060h
                DB   060h,060h,060h,0F0h,000h,000h,000h,000h
fon16_ascii81   DB   000h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h
                DB   0C6h,0D6h,0DEh,07Ch,00Ch,00Eh,000h,000h
fon16_ascii82   DB   000h,000h,0FCh,066h,066h,066h,07Ch,06Ch
                DB   066h,066h,066h,0E6h,000h,000h,000h,000h
fon16_ascii83   DB   000h,000h,07Ch,0C6h,0C6h,060h,038h,00Ch
                DB   006h,0C6h,0C6h,07Ch,000h,000h,000h,000h
fon16_ascii84   DB   000h,000h,07Eh,07Eh,05Ah,018h,018h,018h
                DB   018h,018h,018h,03Ch,000h,000h,000h,000h
fon16_ascii85   DB   000h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h
                DB   0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h
fon16_ascii86   DB   000h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h
                DB   0C6h,06Ch,038h,010h,000h,000h,000h,000h
fon16_ascii87   DB   000h,000h,0C6h,0C6h,0C6h,0C6h,0D6h,0D6h
                DB   0D6h,0FEh,0EEh,06Ch,000h,000h,000h,000h
fon16_ascii88   DB   000h,000h,0C6h,0C6h,06Ch,07Ch,038h,038h
                DB   07Ch,06Ch,0C6h,0C6h,000h,000h,000h,000h
fon16_ascii89   DB   000h,000h,066h,066h,066h,066h,03Ch,018h
                DB   018h,018h,018h,03Ch,000h,000h,000h,000h
fon16_ascii90   DB   000h,000h,0FEh,0C6h,086h,00Ch,018h,030h
                DB   060h,0C2h,0C6h,0FEh,000h,000h,000h,000h
fon16_ascii91   DB   000h,000h,03Ch,030h,030h,030h,030h,030h
                DB   030h,030h,030h,03Ch,000h,000h,000h,000h
fon16_ascii92   DB   000h,000h,000h,080h,0C0h,0E0h,070h,038h
                DB   01Ch,00Eh,006h,002h,000h,000h,000h,000h
fon16_ascii93   DB   000h,000h,03Ch,00Ch,00Ch,00Ch,00Ch,00Ch
                DB   00Ch,00Ch,00Ch,03Ch,000h,000h,000h,000h
fon16_ascii94   DB   010h,038h,06Ch,0C6h,000h,000h,000h,000h
                DB   000h,000h,000h,000h,000h,000h,000h,000h
fon16_ascii95   DB   000h,000h,000h,000h,000h,000h,000h,000h
                DB   000h,000h,000h,000h,000h,0FFh,000h,000h
fon16_ascii96   DB   030h,030h,018h,000h,000h,000h,000h,000h
                DB   000h,000h,000h,000h,000h,000h,000h,000h
fon16_ascii97   DB   000h,000h,000h,000h,000h,078h,00Ch,07Ch
                DB   0CCh,0CCh,0CCh,07Ch,000h,000h,000h,000h
fon16_ascii98   DB   000h,000h,060h,060h,060h,078h,06Ch,066h
                DB   066h,066h,066h,07Ch,000h,000h,000h,000h
fon16_ascii99   DB   000h,000h,000h,000h,000h,07Ch,0C6h,0C0h
                DB   0C0h,0C0h,0C6h,07Ch,000h,000h,000h,000h
fon16_ascii100  DB   000h,000h,00Ch,00Ch,00Ch,03Ch,06Ch,0CCh
                DB   0CCh,0CCh,0CCh,07Ch,000h,000h,000h,000h
fon16_ascii101  DB   000h,000h,000h,000h,000h,07Ch,0C6h,0FEh
                DB   0C0h,0C0h,0C6h,07Ch,000h,000h,000h,000h
fon16_ascii102  DB   000h,000h,038h,06Ch,064h,060h,0F0h,060h
                DB   060h,060h,060h,0F0h,000h,000h,000h,000h
fon16_ascii103  DB   000h,000h,000h,000h,000h,07Ch,0CCh,0CCh
                DB   0CCh,0CCh,0CCh,07Ch,00Ch,0CCh,078h,000h
fon16_ascii104  DB   000h,000h,060h,060h,060h,07Ch,066h,066h
                DB   066h,066h,066h,066h,000h,000h,000h,000h
fon16_ascii105  DB   000h,000h,018h,018h,000h,038h,018h,018h
                DB   018h,018h,018h,03Ch,000h,000h,000h,000h
fon16_ascii106  DB   000h,000h,006h,006h,000h,00Eh,006h,006h
                DB   006h,006h,006h,006h,066h,066h,03Ch,000h
fon16_ascii107  DB   000h,000h,0E0h,060h,060h,066h,06Ch,078h
                DB   078h,06Ch,066h,0E6h,000h,000h,000h,000h
fon16_ascii108  DB   000h,000h,038h,018h,018h,018h,018h,018h
                DB   018h,018h,018h,03Ch,000h,000h,000h,000h
fon16_ascii109  DB   000h,000h,000h,000h,000h,0ECh,0FEh,0D6h
                DB   0D6h,0D6h,0C6h,0C6h,000h,000h,000h,000h
fon16_ascii110  DB   000h,000h,000h,000h,000h,07Ch,066h,066h
                DB   066h,066h,066h,066h,000h,000h,000h,000h
fon16_ascii111  DB   000h,000h,000h,000h,000h,07Ch,0C6h,0C6h
                DB   0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h
fon16_ascii112  DB   000h,000h,000h,000h,000h,07Ch,066h,066h
                DB   066h,066h,066h,07Ch,060h,060h,060h,000h
fon16_ascii113  DB   000h,000h,000h,000h,000h,07Ch,0CCh,0CCh
                DB   0CCh,0CCh,0CCh,07Ch,00Ch,00Ch,00Ch,000h
fon16_ascii114  DB   000h,000h,000h,000h,000h,0DCh,076h,066h
                DB   060h,060h,060h,0F0h,000h,000h,000h,000h
fon16_ascii115  DB   000h,000h,000h,000h,000h,07Ch,0C6h,060h
                DB   038h,00Ch,0C6h,07Ch,000h,000h,000h,000h
fon16_ascii116  DB   000h,000h,010h,030h,030h,0FCh,030h,030h
                DB   030h,030h,036h,01Ch,000h,000h,000h,000h
fon16_ascii117  DB   000h,000h,000h,000h,000h,0CCh,0CCh,0CCh
                DB   0CCh,0CCh,0CCh,07Ch,000h,000h,000h,000h
fon16_ascii118  DB   000h,000h,000h,000h,000h,066h,066h,066h
                DB   066h,066h,03Ch,018h,000h,000h,000h,000h
fon16_ascii119  DB   000h,000h,000h,000h,000h,0C6h,0C6h,0D6h
                DB   0D6h,0D6h,0FEh,06Ch,000h,000h,000h,000h
fon16_ascii120  DB   000h,000h,000h,000h,000h,0C6h,06Ch,038h
                DB   038h,038h,06Ch,0C6h,000h,000h,000h,000h
fon16_ascii121  DB   000h,000h,000h,000h,000h,0C6h,0C6h,0C6h
                DB   0C6h,0C6h,0C6h,07Eh,006h,0C6h,07Ch,000h
fon16_ascii122  DB   000h,000h,000h,000h,000h,0FEh,0CCh,018h
                DB   030h,060h,0C6h,0FEh,000h,000h,000h,000h
fon16_ascii123  DB   000h,000h,00Eh,018h,018h,018h,070h,018h
                DB   018h,018h,018h,00Eh,000h,000h,000h,000h
fon16_ascii124  DB   000h,000h,018h,018h,018h,018h,000h,018h
                DB   018h,018h,018h,018h,000h,000h,000h,000h
fon16_ascii125  DB   000h,000h,070h,018h,018h,018h,00Eh,018h
                DB   018h,018h,018h,070h,000h,000h,000h,000h
fon16_ascii126  DB   000h,000h,076h,0DCh,000h,000h,000h,000h
                DB   000h,000h,000h,000h,000h,000h,000h,000h
fon16_ascii127  DB   000h,000h,000h,000h,010h,038h,06Ch,0C6h
                DB   0C6h,0C6h,0FEh,000h,000h,000h,000h,000h
fon16_ascii128  DB   000h,000h,01Eh,036h,066h,0C6h,0C6h,0FEh
                DB   0C6h,0C6h,0C6h,0C6h,000h,000h,000h,000h
fon16_ascii129  DB   000h,000h,0FEh,062h,062h,060h,07Ch,066h
                DB   066h,066h,066h,0FCh,000h,000h,000h,000h
fon16_ascii130  DB   000h,000h,0FCh,066h,066h,066h,07Ch,066h
                DB   066h,066h,066h,0FCh,000h,000h,000h,000h
fon16_ascii131  DB   000h,000h,0FEh,062h,062h,060h,060h,060h
                DB   060h,060h,060h,0F0h,000h,000h,000h,000h
fon16_ascii132  DB   000h,000h,01Eh,036h,066h,066h,066h,066h
                DB   066h,066h,066h,0FFh,0C3h,081h,000h,000h
fon16_ascii133  DB   000h,000h,0FEh,066h,062h,068h,078h,068h
                DB   060h,062h,066h,0FEh,000h,000h,000h,000h
fon16_ascii134  DB   000h,000h,0D6h,0D6h,054h,054h,07Ch,07Ch
                DB   054h,0D6h,0D6h,0D6h,000h,000h,000h,000h
fon16_ascii135  DB   000h,000h,07Ch,0C6h,006h,006h,03Ch,006h
                DB   006h,006h,0C6h,07Ch,000h,000h,000h,000h
fon16_ascii136  DB   000h,000h,0C6h,0C6h,0CEh,0CEh,0D6h,0E6h
                DB   0E6h,0C6h,0C6h,0C6h,000h,000h,000h,000h
fon16_ascii137  DB   038h,038h,0C6h,0C6h,0CEh,0CEh,0D6h,0E6h
                DB   0E6h,0C6h,0C6h,0C6h,000h,000h,000h,000h
fon16_ascii138  DB   000h,000h,0E6h,066h,06Ch,06Ch,078h,078h
                DB   06Ch,06Ch,066h,0E6h,000h,000h,000h,000h
fon16_ascii139  DB   000h,000h,01Eh,036h,066h,0C6h,0C6h,0C6h
                DB   0C6h,0C6h,0C6h,0C6h,000h,000h,000h,000h
fon16_ascii140  DB   000h,000h,0C6h,0EEh,0FEh,0FEh,0D6h,0C6h
                DB   0C6h,0C6h,0C6h,0C6h,000h,000h,000h,000h
fon16_ascii141  DB   000h,000h,0C6h,0C6h,0C6h,0C6h,0FEh,0C6h
                DB   0C6h,0C6h,0C6h,0C6h,000h,000h,000h,000h
fon16_ascii142  DB   000h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h
                DB   0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h
fon16_ascii143  DB   000h,000h,0FEh,0C6h,0C6h,0C6h,0C6h,0C6h
                DB   0C6h,0C6h,0C6h,0C6h,000h,000h,000h,000h
fon16_ascii144  DB   000h,000h,0FCh,066h,066h,066h,07Ch,060h
                DB   060h,060h,060h,0F0h,000h,000h,000h,000h
fon16_ascii145  DB   000h,000h,03Ch,066h,0C2h,0C0h,0C0h,0C0h
                DB   0C0h,0C2h,066h,03Ch,000h,000h,000h,000h
fon16_ascii146  DB   000h,000h,07Eh,05Ah,018h,018h,018h,018h
                DB   018h,018h,018h,03Ch,000h,000h,000h,000h
fon16_ascii147  DB   000h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,07Eh
                DB   006h,006h,0C6h,07Ch,000h,000h,000h,000h
fon16_ascii148  DB   000h,03Ch,018h,07Eh,0DBh,0DBh,0DBh,0DBh
                DB   0DBh,07Eh,018h,03Ch,000h,000h,000h,000h
fon16_ascii149  DB   000h,000h,0C6h,0C6h,06Ch,07Ch,038h,038h
                DB   07Ch,06Ch,0C6h,0C6h,000h,000h,000h,000h
fon16_ascii150  DB   000h,000h,0CCh,0CCh,0CCh,0CCh,0CCh,0CCh
                DB   0CCh,0CCh,0CCh,0FEh,006h,006h,000h,000h
fon16_ascii151  DB   000h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,07Eh
                DB   006h,006h,006h,006h,000h,000h,000h,000h
fon16_ascii152  DB   000h,000h,0DBh,0DBh,0DBh,0DBh,0DBh,0DBh
                DB   0DBh,0DBh,0DBh,0FFh,000h,000h,000h,000h
fon16_ascii153  DB   000h,000h,0DBh,0DBh,0DBh,0DBh,0DBh,0DBh
                DB   0DBh,0DBh,0DBh,0FFh,003h,003h,000h,000h
fon16_ascii154  DB   000h,000h,0F8h,0B0h,030h,030h,03Eh,033h
                DB   033h,033h,033h,07Eh,000h,000h,000h,000h
fon16_ascii155  DB   000h,000h,0C3h,0C3h,0C3h,0C3h,0F3h,0DBh
                DB   0DBh,0DBh,0DBh,0F3h,000h,000h,000h,000h
fon16_ascii156  DB   000h,000h,0F0h,060h,060h,060h,07Ch,066h
                DB   066h,066h,066h,0FCh,000h,000h,000h,000h
fon16_ascii157  DB   000h,000h,07Ch,0C6h,006h,026h,03Eh,026h
                DB   006h,006h,0C6h,07Ch,000h,000h,000h,000h
fon16_ascii158  DB   000h,000h,0CEh,0DBh,0DBh,0DBh,0FBh,0DBh
                DB   0DBh,0DBh,0DBh,0CEh,000h,000h,000h,000h
fon16_ascii159  DB   000h,000h,03Fh,066h,066h,066h,03Eh,03Eh
                DB   066h,066h,066h,0E7h,000h,000h,000h,000h
fon16_ascii160  DB   000h,000h,000h,000h,000h,078h,00Ch,07Ch
                DB   0CCh,0CCh,0CCh,076h,000h,000h,000h,000h
fon16_ascii161  DB   000h,002h,006h,03Ch,060h,060h,07Ch,066h
                DB   066h,066h,066h,03Ch,000h,000h,000h,000h
fon16_ascii162  DB   000h,000h,000h,000h,000h,0FCh,066h,066h
                DB   07Ch,066h,066h,0FCh,000h,000h,000h,000h
fon16_ascii163  DB   000h,000h,000h,000h,000h,07Eh,032h,032h
                DB   030h,030h,030h,078h,000h,000h,000h,000h
fon16_ascii164  DB   000h,000h,000h,000h,000h,01Eh,036h,036h
                DB   066h,066h,066h,0FFh,0C3h,0C3h,000h,000h
fon16_ascii165  DB   000h,000h,000h,000h,000h,07Ch,0C6h,0FEh
                DB   0C0h,0C0h,0C6h,07Ch,000h,000h,000h,000h
fon16_ascii166  DB   000h,000h,000h,000h,000h,0D6h,0D6h,054h
                DB   07Ch,054h,0D6h,0D6h,000h,000h,000h,000h
fon16_ascii167  DB   000h,000h,000h,000h,000h,03Ch,066h,006h
                DB   00Ch,006h,066h,03Ch,000h,000h,000h,000h
fon16_ascii168  DB   000h,000h,000h,000h,000h,0C6h,0C6h,0CEh
                DB   0D6h,0E6h,0C6h,0C6h,000h,000h,000h,000h
fon16_ascii169  DB   000h,000h,000h,038h,038h,0C6h,0C6h,0CEh
                DB   0D6h,0E6h,0C6h,0C6h,000h,000h,000h,000h
fon16_ascii170  DB   000h,000h,000h,000h,000h,0E6h,06Ch,078h
                DB   078h,06Ch,066h,0E6h,000h,000h,000h,000h
fon16_ascii171  DB   000h,000h,000h,000h,000h,01Eh,036h,066h
                DB   066h,066h,066h,066h,000h,000h,000h,000h
fon16_ascii172  DB   000h,000h,000h,000h,000h,0C6h,0EEh,0FEh
                DB   0FEh,0D6h,0D6h,0C6h,000h,000h,000h,000h
fon16_ascii173  DB   000h,000h,000h,000h,000h,0C6h,0C6h,0C6h
                DB   0FEh,0C6h,0C6h,0C6h,000h,000h,000h,000h
fon16_ascii174  DB   000h,000h,000h,000h,000h,07Ch,0C6h,0C6h
                DB   0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h
fon16_ascii175  DB   000h,000h,000h,000h,000h,0FEh,0C6h,0C6h
                DB   0C6h,0C6h,0C6h,0C6h,000h,000h,000h,000h
fon16_ascii176  DB   011h,044h,011h,044h,011h,044h,011h,044h
                DB   011h,044h,011h,044h,011h,044h,011h,044h
fon16_ascii177  DB   055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh
                DB   055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh
fon16_ascii178  DB   0DDh,077h,0DDh,077h,0DDh,077h,0DDh,077h
                DB   0DDh,077h,0DDh,077h,0DDh,077h,0DDh,077h
fon16_ascii179  DB   018h,018h,018h,018h,018h,018h,018h,018h
                DB   018h,018h,018h,018h,018h,018h,018h,018h
fon16_ascii180  DB   018h,018h,018h,018h,018h,018h,018h,0F8h
                DB   018h,018h,018h,018h,018h,018h,018h,018h
fon16_ascii181  DB   018h,018h,018h,018h,018h,0F8h,018h,0F8h
                DB   018h,018h,018h,018h,018h,018h,018h,018h
fon16_ascii182  DB   036h,036h,036h,036h,036h,036h,036h,0F6h
                DB   036h,036h,036h,036h,036h,036h,036h,036h
fon16_ascii183  DB   000h,000h,000h,000h,000h,000h,000h,0FEh
                DB   036h,036h,036h,036h,036h,036h,036h,036h
fon16_ascii184  DB   000h,000h,000h,000h,000h,0F8h,018h,0F8h
                DB   018h,018h,018h,018h,018h,018h,018h,018h
fon16_ascii185  DB   036h,036h,036h,036h,036h,0F6h,006h,0F6h
                DB   036h,036h,036h,036h,036h,036h,036h,036h
fon16_ascii186  DB   036h,036h,036h,036h,036h,036h,036h,036h
                DB   036h,036h,036h,036h,036h,036h,036h,036h
fon16_ascii187  DB   000h,000h,000h,000h,000h,0FEh,006h,0F6h
                DB   036h,036h,036h,036h,036h,036h,036h,036h
fon16_ascii188  DB   036h,036h,036h,036h,036h,0F6h,006h,0FEh
                DB   000h,000h,000h,000h,000h,000h,000h,000h
fon16_ascii189  DB   036h,036h,036h,036h,036h,036h,036h,0FEh
                DB   000h,000h,000h,000h,000h,000h,000h,000h
fon16_ascii190  DB   018h,018h,018h,018h,018h,0F8h,018h,0F8h
                DB   000h,000h,000h,000h,000h,000h,000h,000h
fon16_ascii191  DB   000h,000h,000h,000h,000h,000h,000h,0F8h
                DB   018h,018h,018h,018h,018h,018h,018h,018h
fon16_ascii192  DB   018h,018h,018h,018h,018h,018h,018h,01Fh
                DB   000h,000h,000h,000h,000h,000h,000h,000h
fon16_ascii193  DB   018h,018h,018h,018h,018h,018h,018h,0FFh
                DB   000h,000h,000h,000h,000h,000h,000h,000h
fon16_ascii194  DB   000h,000h,000h,000h,000h,000h,000h,0FFh
                DB   018h,018h,018h,018h,018h,018h,018h,018h
fon16_ascii195  DB   018h,018h,018h,018h,018h,018h,018h,01Fh
                DB   018h,018h,018h,018h,018h,018h,018h,018h
fon16_ascii196  DB   000h,000h,000h,000h,000h,000h,000h,0FFh
                DB   000h,000h,000h,000h,000h,000h,000h,000h
fon16_ascii197  DB   018h,018h,018h,018h,018h,018h,018h,0FFh
                DB   018h,018h,018h,018h,018h,018h,018h,018h
fon16_ascii198  DB   018h,018h,018h,018h,018h,01Fh,018h,01Fh
                DB   018h,018h,018h,018h,018h,018h,018h,018h
fon16_ascii199  DB   036h,036h,036h,036h,036h,036h,036h,037h
                DB   036h,036h,036h,036h,036h,036h,036h,036h
fon16_ascii200  DB   036h,036h,036h,036h,036h,037h,030h,03Fh
                DB   000h,000h,000h,000h,000h,000h,000h,000h
fon16_ascii201  DB   000h,000h,000h,000h,000h,03Fh,030h,037h
                DB   036h,036h,036h,036h,036h,036h,036h,036h
fon16_ascii202  DB   036h,036h,036h,036h,036h,0F7h,000h,0FFh
                DB   000h,000h,000h,000h,000h,000h,000h,000h
fon16_ascii203  DB   000h,000h,000h,000h,000h,0FFh,000h,0F7h
                DB   036h,036h,036h,036h,036h,036h,036h,036h
fon16_ascii204  DB   036h,036h,036h,036h,036h,037h,030h,037h
                DB   036h,036h,036h,036h,036h,036h,036h,036h
fon16_ascii205  DB   000h,000h,000h,000h,000h,0FFh,000h,0FFh
                DB   000h,000h,000h,000h,000h,000h,000h,000h
fon16_ascii206  DB   036h,036h,036h,036h,036h,0F7h,000h,0F7h
                DB   036h,036h,036h,036h,036h,036h,036h,036h
fon16_ascii207  DB   018h,018h,018h,018h,018h,0FFh,000h,0FFh
                DB   000h,000h,000h,000h,000h,000h,000h,000h
fon16_ascii208  DB   036h,036h,036h,036h,036h,036h,036h,0FFh
                DB   000h,000h,000h,000h,000h,000h,000h,000h
fon16_ascii209  DB   000h,000h,000h,000h,000h,0FFh,000h,0FFh
                DB   018h,018h,018h,018h,018h,018h,018h,018h
fon16_ascii210  DB   000h,000h,000h,000h,000h,000h,000h,0FFh
                DB   036h,036h,036h,036h,036h,036h,036h,036h
fon16_ascii211  DB   036h,036h,036h,036h,036h,036h,036h,03Fh
                DB   000h,000h,000h,000h,000h,000h,000h,000h
fon16_ascii212  DB   018h,018h,018h,018h,018h,01Fh,018h,01Fh
                DB   000h,000h,000h,000h,000h,000h,000h,000h
fon16_ascii213  DB   000h,000h,000h,000h,000h,01Fh,018h,01Fh
                DB   018h,018h,018h,018h,018h,018h,018h,018h
fon16_ascii214  DB   000h,000h,000h,000h,000h,000h,000h,03Fh
                DB   036h,036h,036h,036h,036h,036h,036h,036h
fon16_ascii215  DB   036h,036h,036h,036h,036h,036h,036h,0FFh
                DB   036h,036h,036h,036h,036h,036h,036h,036h
fon16_ascii216  DB   018h,018h,018h,018h,018h,0FFh,018h,0FFh
                DB   018h,018h,018h,018h,018h,018h,018h,018h
fon16_ascii217  DB   018h,018h,018h,018h,018h,018h,018h,0F8h
                DB   000h,000h,000h,000h,000h,000h,000h,000h
fon16_ascii218  DB   000h,000h,000h,000h,000h,000h,000h,01Fh
                DB   018h,018h,018h,018h,018h,018h,018h,018h
fon16_ascii219  DB   0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh
                DB   0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh
fon16_ascii220  DB   000h,000h,000h,000h,000h,000h,000h,0FFh
                DB   0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh
fon16_ascii221  DB   0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h
                DB   0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h
fon16_ascii222  DB   00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh
                DB   00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh
fon16_ascii223  DB   0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,000h
                DB   000h,000h,000h,000h,000h,000h,000h,000h
fon16_ascii224  DB   000h,000h,000h,000h,000h,0DCh,066h,066h
                DB   066h,066h,066h,07Ch,060h,060h,0F0h,000h
fon16_ascii225  DB   000h,000h,000h,000h,000h,07Ch,0C6h,0C0h
                DB   0C0h,0C0h,0C6h,07Ch,000h,000h,000h,000h
fon16_ascii226  DB   000h,000h,000h,000h,000h,07Eh,05Ah,018h
                DB   018h,018h,018h,03Ch,000h,000h,000h,000h
fon16_ascii227  DB   000h,000h,000h,000h,000h,0C6h,0C6h,0C6h
                DB   0C6h,0C6h,07Eh,006h,006h,0C6h,07Ch,000h
fon16_ascii228  DB   000h,000h,000h,000h,03Ch,018h,07Eh,0DBh
                DB   0DBh,0DBh,0DBh,07Eh,018h,018h,03Ch,000h
fon16_ascii229  DB   000h,000h,000h,000h,000h,0C6h,06Ch,038h
                DB   038h,038h,06Ch,0C6h,000h,000h,000h,000h
fon16_ascii230  DB   000h,000h,000h,000h,000h,0CCh,0CCh,0CCh
                DB   0CCh,0CCh,0CCh,0FEh,006h,006h,000h,000h
fon16_ascii231  DB   000h,000h,000h,000h,000h,0C6h,0C6h,0C6h
                DB   0C6h,07Eh,006h,006h,000h,000h,000h,000h
fon16_ascii232  DB   000h,000h,000h,000h,000h,0D6h,0D6h,0D6h
                DB   0D6h,0D6h,0D6h,0FEh,000h,000h,000h,000h
fon16_ascii233  DB   000h,000h,000h,000h,000h,0D6h,0D6h,0D6h
                DB   0D6h,0D6h,0D6h,0FEh,003h,003h,000h,000h
fon16_ascii234  DB   000h,000h,000h,000h,000h,0F8h,0B0h,030h
                DB   03Eh,033h,033h,07Eh,000h,000h,000h,000h
fon16_ascii235  DB   000h,000h,000h,000h,000h,0C6h,0C6h,0C6h
                DB   0F6h,0DEh,0DEh,0F6h,000h,000h,000h,000h
fon16_ascii236  DB   000h,000h,000h,000h,000h,0F0h,060h,060h
                DB   07Ch,066h,066h,0FCh,000h,000h,000h,000h
fon16_ascii237  DB   000h,000h,000h,000h,000h,03Ch,066h,006h
                DB   01Eh,006h,066h,03Ch,000h,000h,000h,000h
fon16_ascii238  DB   000h,000h,000h,000h,000h,0CEh,0DBh,0DBh
                DB   0FBh,0DBh,0DBh,0CEh,000h,000h,000h,000h
fon16_ascii239  DB   000h,000h,000h,000h,000h,07Eh,0CCh,0CCh
                DB   0FCh,06Ch,0CCh,0CEh,000h,000h,000h,000h
fon16_ascii240  DB   000h,06Ch,000h,0FEh,066h,062h,068h,078h
                DB   068h,062h,066h,0FEh,000h,000h,000h,000h
fon16_ascii241  DB   000h,000h,000h,06Ch,000h,07Ch,0C6h,0FEh
                DB   0C0h,0C0h,0C6h,07Ch,000h,000h,000h,000h
fon16_ascii242  DB   000h,000h,000h,030h,018h,00Ch,006h,00Ch
                DB   018h,030h,000h,07Eh,000h,000h,000h,000h
fon16_ascii243  DB   000h,000h,000h,00Ch,018h,030h,060h,030h
                DB   018h,00Ch,000h,07Eh,000h,000h,000h,000h
fon16_ascii244  DB   000h,000h,00Eh,01Bh,01Bh,018h,018h,018h
                DB   018h,018h,018h,018h,018h,018h,018h,018h
fon16_ascii245  DB   018h,018h,018h,018h,018h,018h,018h,018h
                DB   0D8h,0D8h,0D8h,070h,000h,000h,000h,000h
fon16_ascii246  DB   000h,000h,000h,000h,018h,018h,000h,07Eh
                DB   000h,018h,018h,000h,000h,000h,000h,000h
fon16_ascii247  DB   000h,000h,000h,000h,000h,076h,0DCh,000h
                DB   076h,0DCh,000h,000h,000h,000h,000h,000h
fon16_ascii248  DB   000h,038h,06Ch,06Ch,038h,000h,000h,000h
                DB   000h,000h,000h,000h,000h,000h,000h,000h
fon16_ascii249  DB   000h,000h,000h,000h,000h,000h,000h,018h
                DB   018h,000h,000h,000h,000h,000h,000h,000h
fon16_ascii250  DB   000h,000h,000h,000h,000h,000h,000h,000h
                DB   018h,000h,000h,000h,000h,000h,000h,000h
fon16_ascii251  DB   000h,000h,000h,001h,003h,002h,006h,004h
                DB   0CCh,068h,038h,010h,000h,000h,000h,000h
fon16_ascii252  DB   000h,000h,000h,03Ch,042h,099h,0A5h,0A1h
                DB   0A5h,099h,042h,03Ch,000h,000h,000h,000h
fon16_ascii253  DB   000h,070h,0D8h,030h,060h,0C8h,0F8h,000h
                DB   000h,000h,000h,000h,000h,000h,000h,000h
fon14_ascii254  DB   0FFh,0FFh,081h,081h,0BDh,0BDh,0A5h,0A5h
                DB   0A5h,0A5h,0BDh,0BDh,081h,081h,0FFh,0FFh
fon16_ascii255  DB   000h,000h,000h,000h,000h,000h,000h,000h
                DB   000h,000h,042h,07Eh,000h,000h,000h,000h

Установка переключателей на плате EGA.

На плате видеоадаптера EGA расположены переключатели, которые в документации обозначаются DIP, определяющие тип дисплея, подключенного к адаптеру, а текже тип дополнительного адаптера (если такой имеется). Эти переключатели могут быть не на всех видеоадаптерах, кроме того, их обозначение может быть другим. Для получения конкретной информаци обращайтесь к документации на свой адаптер.

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

      4 3 2 1
     +-------+   Первичный: EGA с цветным дисплеем (40х25).
ON   |Ё     Ё|   
OFF  |  Ё Ё  |   Дополнительный: MDA.
     +-------+   


      4 3 2 1
     +-------+   Первичный: EGA с цветным дисплеем (80х25).
ON   |Ё      |
OFF  |  Ё Ё Ё|   Дополнительный: MDA.
     +-------+


      4 3 2 1
     +-------+   Первичный: EGA с улучшенным цветным дисплеем.
ON   |  Ё Ё Ё|
OFF  |Ё      |   Дополнительный: MDA.
     +-------+


      4 3 2 1
     +-------+   Первичный: EGA с улучшенным цветным дисплеем.
ON   |  Ё Ё  |
OFF  |Ё     Ё|   Дополнительный: MDA.
     +-------+


      4 3 2 1
     +-------+   Первичный: EGA с монохромным дисплеем.
ON   |  Ё   Ё|
OFF  |Ё   Ё  |   Дополнительный: CGA с цветным дисплеем
     +-------+             (40х25).


      4 3 2 1
     +-------+   Первичный: EGA с монохромным дисплеем.
ON   |  Ё    |
OFF  |Ё   Ё Ё|   Дополнительный: CGA с цветным дисплеем
     +-------+             (80х25)


      4 3 2 1
     +-------+   Первичный: MDA.
ON   |Ё Ё Ё Ё|
OFF  |       |   Дополнительный: EGA с цветным дисплеем
     +-------+             (40х25).


      4 3 2 1
     +-------+   Первичный: MDA.
ON   |Ё Ё Ё  |
OFF  |      Ё|   Дополнительный  EGA с цветным дисплеем
     +-------+             (80х25).


      4 3 2 1
     +-------+   Первичный: MDA.
ON   |Ё Ё   Ё|
OFF  |    Ё  |   Дополнительный: EGA с улучшенным цветным
     +-------+             дисплеем.


      4 3 2 1
     +-------+   Первичный: MDA.
ON   |Ё Ё    |
OFF  |    Ё Ё|   Дополнительный: EGA с улучшенным цветным
     +-------+             дисплеем.


      4 3 2 1
     +-------+   Первичный:  CGA с цветным дисплеем 40х25
ON   |Ё   Ё Ё|
OFF  |  Ё    |   Дополнительный: EGA с монохромным дисплеем.
     +-------+


      4 3 2 1
     +-------+   Первичный:  CGA с цветным дисплеем 80х25
ON   |Ё   Ё  |
OFF  |  Ё   Ё|   Дополнительный: EGA с монохромным дисплеем.
     +-------+
Кроме переключателей на плате устанаовлены три перемычки (P1, P2, P3):
   P1
   +-----+   Поддерживается улучшенный цветной дисплей
1  |--Ё--|   (640х350 пикселов, 64 цвета).
2  |--Ё--|
3  |  Ё  |
   +-----+

   P1
   +-----+   Поддерживается только цветной дисплей
1  |  Ё  |   (640х200 пикселов, 16 цветов).
2  |--Ё--|
3  |--Ё--|
   +-----+


   P2    -   Разъем для светового пера.


   P3
   +-----+   Регистры видеоадаптера доступны через порты
1  |--Ё--|   с адресами 3ххh.
2  |--Ё--|
3  |  Ё  |
   +-----+

   P3
   +-----+   Регистры видеоадаптера доступны через порты
1  |  Ё  |   с адресами (2ххh).
2  |--Ё--|
3  |--Ё--|   В этом режиме видеофункции BIOS не работают.
   +-----+   Управление видеоадаптером можно осуществлять
      только непосредственно через программирование
      регистров и доступ к видеопамяти.

Режимы работы видеоадаптеров.

Режим    Тип          Число    Разрешение  Поддерживаемые
работы   информации   цветов               дисплеи

0, 1     текстовый    16       40х25       CD, ECD, VGA,
         цветной               (8x8)       многочастотный
0*, 1*   текстовый    16       40х25       ECD, VGA,
         цветной               (8*14)      многочастотный
0+, 1+   текстовый    16       40х25       VGA,
         цветной               (9*16)      многочастотный
2, 3     текстовый    16       80х25       CD, ECD, VGA,
         цветной               (8*8)       многочастотный
2*, 3*   текстовый    16       80х25       ECD, VGA,
         цветной               (8*14)      многочастотный
2+, 3+   текстовый    16       80х25       VGA,
         цветной               (9*16)      многочастотный
4, 5     графический   4       320х200     CD, ECD, VGA,
         цветной                           многочастотный
6        графический   2       640х200     CD, ECD, VGA,
         цветной                           многочастотный
7        текстовый     2       80х25       монохромный,
         монохромный           (9*14)      VGA
7+       текстовый     2       80х25       VGA
         монохромный           (9*16)      

8,9,     используются только видеоадаптерами компьютера
0Ah      PC jr

0Bh,0Ch  зарезервированно
0Dh      графический   16      320х200     CD, ECD, VGA,
         цветной                           многочастотный
0Eh      графический   16      640х200     CD, ECD, VGA, 
         цветной                           многочастотный
0Fh      графический   2       640х350     монохромный,
         монохромный                       VGA
10h      графический   16      640х350     ECD, VGA,
         цветной                           многочастотный
11h      графический   2       640х480     VGA,
         цветной                           многочастотный
12h      графический   16      640х480     VGA,
         цветной                           многочастотный
13h      графический   256     320х200     VGA,
         цветной                           многочастотный

В поле "разрешение" таблицы стандартных режимов видеоадаптеров в скобках приведены размеры символов (в пикселах).

Режим   Разрешение               Число   Название
                                 цветов  видеосистемы

14h     80x25, 8x8,     640x200          Lava Chrome II EGA
                        640x400  16      Tecmar VGA/AD

15h     80x25, 8x14,    640x350          Lava Chrome II EGA

16h     80x25, 8x14,    640x350          Lava Chrome II EGA
                        800x600  16      Tecmar VGA/AD

17h     80x34, 8x14,    640x480          Lava Chrome II EGA
        132x25                           Tecmar VGA/AD

18h     132x44, 8x8              4       VGA-III
        132x44, 8x8              моно    Tseng Labs EVA
        80x34, 8x14,    640x480          Lava Chrome II EGA
                       1024x768  16      Tecmar VGA/AD

19h     132x25, 9x14             4       VGA-III
        132x25, 8x14             моно    Tseng Labs EVA

1Ah     132x28, 8x13             4       VGA-III
        132x28, 8x13             моно    Tseng Labs EVA
                        640x350  256     Tecmar VGA/AD

1Bh                     640x400  256     Tecmar VGA/AD

1Ch                     640x480  256     Tecmar VGA/AD

1Dh                     800x600  256     Tecmar VGA/AD

22h     132x44, 8x8              16      VGA-III
        132x44, 8x8                      Tseng Labs EVA
        132x44, 8x8                      Ahead Systems EGA2001
        132x43                           Allstar Peacock (VGA)

23h     132x25, 8x14             16      VGA-III
        132x25, 6x14                     Tseng Labs EVA
        132x25, 8x14                     Ahead Systems EGA2001
        132x25, 8x8              16      ATI EGA Wonder,ATI VIP
        132x28                           Allstar Peacock (VGA)

24h     132x28, 8x13             16      VGA-III
        132x28, 6x13                     Tseng Labs EVA
        132x25                           Allstar Peacock (VGA)

25h     80x60, 8x8,     640x480          Tseng Labs EVA, VGA-III
                        640x480  16      VEGA VGA

26h     80x65, 8x8               16      VGA-III
        80x60, 8x8                       Tseng Labs EVA
        80x60, 8x8,     640x480          Ahead Systems EGA2001
        80x60                            Allstar Peacock (VGA)

27h                     720x512  16      VEGA VGA
                        720x512  16      Genoa
        132x25, 8x8              моно    ATI EGA Wonder,ATI VIP

29h     100x37, 8x16             16      VGA-III
                        800x600  16      VEGA VGA
                        800x600  16      Orchid,STB,Genoa,Sigma
                        800x600  16      Allstar Peacock (VGA)

2Ah     100x40, 8x15             16      VGA-III
        100x40                           Allstar Peacock (VGA)
        100x40, 8x16                     Orchid Prodesigner VGA

2Dh                     640x350  256     VEGA VGA, VGA-III
                        640x350  256     Genoa,STB

2Eh                     640x480  256     VEGA VGA, VGA-III
                        640x480  256     Orchid,STB,Genoa,Sigma

2Fh                     720x512  256     VEGA VGA
                        720x512  256     Genoa

30h                     800x600  256     VEGA VGA, VGA-III
                        800x060  256     Orchid,STB,Genoa,Sigma
33h     132x44, 8x8              16      ATI EGA Wonder,ATI VIP

36h                     960x720  16      VEGA VGA
                        960x720  16      STB

37h                    1024x768  16      VEGA VGA, VGA-III
                       1024x768  16      Orchid,STB,Genoa,Sigma
        132x44, 8x8              моно    ATI EGA Wonder,ATI VIP

40h     80x25, 8x16,    640x400  2       AT&T 6300, AT&T VDC600
        80x25, 8x16,    640x400  2       Compaq Portable
        80x43                            VEGA VGA, Tecmar VGA/AD
        80x43                            Video7 V-RAM VGA
        80x43                            Tatung VGA

41h                     640x200  16      AT&T 6300
        132x25                           VEGA VGA
        132x25                           Tatung VGA
        132x25                           Video7 V-RAM VGA

42h     80x25, 8x16,    640x400  16      AT&T 6300, AT&T VDC600
        132x43                           VEGA VGA
        132x43                           Tatung VGA
        132x43                           Video7 V-RAM VGA

43h     80x60                            VEGA VGA
        80x60                            Tatung VGA
        80x60                            Video7 V-RAM VGA

44h     100x60                           VEGA VGA
        100x60                           Tatung VGA
        100x60                           Video7 V-RAM VGA

45h     132x28                           Tatung VGA
        132x28                           Video7 V-RAM VGA

46h     100x40, 8x15,   800x600  2       AT&T VDC600

47h     100x37, 8x16,   800x600  16      AT&T VDC600

48h     80x50, 8x8,     640x400  2       AT&T 6300, AT&T VDC600

49h     80x30, 8x16,    640x480          Lava Chrome II EGA

4Dh     120x25                           VEGA VGA

4Eh     120x43                           VEGA VGA

4Fh     132x25                           VEGA VGA

50h     132x25, 9x14             моно    Ahead Systems EGA2001
        80x30, 8x16,    640x480  16      Paradise EGA-480,
                                         HEGA/P-III, HEGA-III
        80x43                    моно    VEGA VGA
                        640x480  моно    Taxan 565 EGA
        80x34                            Lava Chrome II EGA

51h     80x30, 8x16                      Paradise EGA-480
                                         HEGA/P-III, HEGA-III
        80x30                            Lava Chrome II EGA
        80x34, 8x14,    640x480  16      ATI EGA Wonder
        132x25                   моно    VEGA VGA

52h     132x44, 9x8              моно    Ahead Systems EGA2001
        132x43                   моно    VEGA VGA
        94x29, 8x14,    752x410  16      ATI EGA Wonder
        80x60                            Lava Chrome II EGA

53h     100x40, 8x14,   800x560  16      ATI EGA Wonder,ATI VIP
        132x43                           Lava Chrome II EGA

54h     132x43, 8x8                      Paradise EGA-480
        132x43, 8x8              16      HEGA/P-III, HEGA-III
        132x43, 7x9              16      Paradise VGA(256k)
        132x43, 8x9              16      Paradise VGA on
               multisync (256k)
        132x43                           Taxan 565 EGA
        132x43                           AST VGA Plus
        132x43                           Hewlett-Packard D1180A
        132x43, 7x9              16      AT&T VDC600
        132x25                           Lava Chrome II EGA
        100x42, 8x14,   800x600  16      ATI EGA Wondr, VGA Wondr

55h     132x25, 8x14                     Paradise EGA-480
        132x25, 8x14             16      HEGA/P-III, HEGA-III
        132x25, 7x16             16      Paradise VGA (256k)
        132x25, 8x16             16      Paradise VGA on
               multisync (256k)
        132x25                           Taxan 565 EGA
        132x25                           AST VGA Plus
        132x25                           Hewlett-Packard D1180A
        132x25, 7x16             16      AT&T VDC600
        80x66, 8x8               16      ATI VIP (256k)
        94x29, 8x14,    752x410          Lava Chrome II EGA

56h     132x43, 8x8                      NSI Smart EGA+
        132x43, 7x9              4       Paradise VGA
        132x43, 8x9              4       Paradisk VGA on
               multisync
        132x43                   моно    Taxan 565 EGA
        132x43, 7x9              2       AT&T VDC600

57h     132x25, 8x14                     NSI Smart EGA+
        132x25, 7x16                     Paradise VGA
        132x25, 8x16             4       Paradise VGA on
               multisync
        132x25                   моно    Taxan 565 EGA
        132x25, 7x16             2       AT&T VDC600

58h     100x75, 8x8,    800x600  16      Paradise VGA (256k)
        100x75, 8x8,    800x600  16      AT&T VDC600
        80x33, 8x14              16      ATI EGA Wonder,ATI VIP
                        800x600, 16      AST VGA Plus, Compaq VGA
                        800x600, 16      Dell VGA
                        800x600, 16      Hewlett-Packard D1180A

59h     100x75, 8x8,    800x600  2       Paradise VGA
        100x75, 8x8,    800x600  2       AT&T VDC600
        80x66, 8x8               16      ATI VIP (256k)
                        800x600  2       AST VGA Plus, Compaq VGA
                        800x600  2       Dell VGA
                        800x600  2       Hewlett-Packard D1180A

5Eh                     640x400  256     Paradise VGA,VEGA VGA
                        640x400  256     AST VGA Plus
                        640x400  256     Compaq VGA, Dell VGA
        80x25, 8x16,    640x400  256     AT&T VDC600

5Fh                     640x480  256     Paradise VGA
                        640x480  256     AST VGA Plus
                        640x480  256     Compaq VGA, Dell VGA
                        640x480  256     Hewlett-Packard D1180A
        80x30, 8x16,    640x480  256     AT&T VDC600 (512K)

60h                     752x410          VEGA VGA
                        752x410  16      Tatung VGA
                        752x410  16      Video7 V-RAM VGA

61h                     720x540          VEGA VGA
                        720x540  16      Tatung VGA
                        720x540  16      Video7 V-RAM VGA
                        640x400  256     ATI VGA Wonder

62h                     800x600          VEGA VGA
                        800x600  16      Tatung VGA
                        800x600  16      Video7 V-RAM VGA
                        640x480  256     ATI VGA Wonder

63h                    1024x768  2       Video7 V-RAM VGA
                        800x600  256     ATI VGA Wonder

64h                    1024x768  4       Video7 V-RAM VGA

65h                    1024x768  16      Video7 V-RAM VGA
                       1024x768  16      ATI VGA Wonder

66h                     640x400  256     Tatung VGA
                        640x400  256     Video7 V-RAM VGA

67h                     640x480  256     Video7 V-RAM VGA
                       1024x768  4       ATI VGA Wonder

69h                     720x540  256     Video7 V-RAM VGA

6Ah                     800x600  16      VESA standard interface

71h     100x35, 8x16, 800x600   16 из 64   NSI Smart EGA+

74h                     640x400  2       Toshiba 3100 AT&T mode

7Ch                     512x512  16      Genoa

7Dh                     512x512  256     Genoa

82h     80x25                    Моно    AT&T VDC 

83h     80x25                            AT&T VDC 

86h                     640x200  Моно    AT&T VDC 


C0h                     640x400

D0h                     640x400  2       DEC VAXmate AT&T mode

В поле "разрешение", таблицы нестандартных режимов видеоадаптеров помещены разрешающая способность в текстовых режимах, затем размеры символов (в пикселах) и разрешающая способность в графических режимах.

Карта памяти CGA/EGA/VGA

Адрес       Размер      Содержание

0000:0410   1 байт      Флаги конфигурации:
                        биты D5 и D4 определяют тип
                        текущего первичного дисплея:

                        D5 D4  видеоадаптер
                        0  0        EGA
                        0  1        CGA 40х25
                        1  0        CGA 80х25
                        1  1        MDA

0000:0449   1 байт      Текущий режим работы
                        видеоадаптера

0000:044A   слово       Число символов в строке

0000:044С   слово       Размер страницы видеопамяти
                        в байтах

0000:044E   слово       Значение регистра начального
                        адреса (SAR)

0000:0450   8 слов      Координаты курсоров для
                        каждой страницы видеопамяти,
                        младший байт определяет
                        столбец, а старший строку
                        экрана в которой находится
                        курсор

0000:0460   слово       Содержимое регистров
                        начальной и конечной линии
                        курсора (CSR - старший и CER
                        - младший байты
                        соответственно)
            

0000:0462   1 байт      Номер активной страницы
                        видеопамяти

0000:0463   слово       Адрес порта контроллера ЭЛТ
                        (3B4 или 3D4)

0000:0465   1 байт      Установка регистра режима CGA
                        (регистр MCR)

0000:0466   1 байт      Установка цветовой палитры
                        CGA (регистр CSR)

0000:0484   1 байт      Число текстовых строк - 1

0000:0485   слово       Высота символов в пикселах

0000:0487   1 байт      Первый байт информации о EGA:
                            7 6 5 4 3 2 1 0
                           +-+-+-+-+-+-+-+-+
                           | |   | | | | | |
                           +-+-+-+-+-+-+-+-+
                            | L-| | | | | L-- если бит равен единице, то 
                            |  |  | | | |     разрешена эмуляция курсора CGA;
                            |  |  | | | |   
                            |  |  | | | L---- равен единице, видеоадаптер
                            |  |  | | |       подсоединен к монохрому дисплею;
                            |  |  | | |      
                            |  |  | | L------ единица в этом бите означает,
                            |  |  | |         что BIOS будет ожидать обратного
                            |  |  | |         вертикального хода луча для
                            |  |  | |         записи в видеопамять;
                            |  |  | |        
                            |  |  | L-------- бит установлен, если  первичным
                            |  |  |           видеоадаптером является EGA;
                            |  |  |
                            |  |  L---------- не используется;
                            |  |
                            |  L------------- объем видеопамяти:
                            |                 0 0 - 64К байт,
                            |                 0 1 - 128К байт,
                            |                 1 0 - 192К байт,
                            |                 1 1 - 256К байт;
                            |
                            L---------------- единица означает, что последняя
                                              операция выбора режима
                                              видеоадаптера не очистила
                                              видеопамять
   
0000:0488   1 байт      Второй байт информации о EGA:
                            7 6 5 4 3 2 1 0
                           +-------+-------+
                           |       |       |
                           +-------+-------+
                            L--T--| L--T--|
                               |       |----- положение переключателей на плате
                               |              EGA
                               |
                               L------------- значение регистра управления
                                              дополнительным устройством


0000:04A8   двойное     Адрес таблицы окружения
            слово

0000:0500   1 байт      Состояние печати экрана
                            00h - печать
                                  закончена
                            01h - экран
                                  печатается
                            0FFh - ошибка во
                                   время печати


A000:0000-FFFF          Видеопамять в графических режимах

B000:0000-7FFF          Видеопамять в монохромном текстовом
                        режиме

B800:0000-7FFF          Видеопамять в цветных текстовых режимах
                        и в графическом режиме CGA

C000:0000-3FFF          BIOS EGA/VGA

Карты портов ввода/вывода видеоадаптера CGA

Адрес  Регистр

3D4,   Регистры контроллера ЭЛТ
3D5    (CRT Controller Register's - CRT_CR)

3D8    Регистр установки режима
3D9    Регистр установки цвета
3DA    Регистр состояния 
       (Input Status Register - ISR)
3DB    Регистр очистки тригера-защелки светового пера
       (Clear Light Pen Latch Register- CLPLR)
3DC    Установка тригера-защелки светового пера
       (Set Light Pen Latch Register - SLPLR)

Карта портов ввода/вывода CGA.

Регистры контроллера ЭЛТ Motorola 6845.

Индекс  Регистр контроллера ЭЛТ

0       общая длина линии горизонтальной
        развертки
        (Horizontal Total Register - HTR)
1       длина отображаемой части горизонтальной
        развертки
        (Horizontal Displayed - HDR)
2       положение горизонтальной синхронизации
        (Horizontal Sync Position - HSR)
3       ширина горизонтального синхросигнала
        (Horizontal Sync Pulse Width Register -
        HSPWR)
4       число горизонтальных линий растра
        (Vertical Total Register - VTR)
5       выравнивание ратстра
        (Vertical Total Adjust Register - VTAR)
6       длина отображаемой части вертикальной
        развертки
        (Vertical Displayed - VDR)
7       положение вертикальной синхронизации
        (Vertical Sync Position Register -
        VSPR)
8       режим соединения
        (Interlase Mode Register - IMR)
9       высота символов текста
        (Max Scan Line Register - MSLR)
0Ah     начальная линия курсора
        (Cursor Start Register - CSR)
0Bh     конечная линия курсора
        (Cursor End Register - CER)
0Ch     старший байт начального адреса
        (Start Address Register - SAR,
        high byte)
0Dh     младший байт начального адреса
        (Start address Register - SAR,
        low byte)
0Eh     старший байт позиции курсора
        (Cursor Location Register - CLR,
        high byte)
0Fh     младший байт позиции курсора
        (Cursor Location Register - CLR,
        low byte)
10h     старший байт адреса светового пера
        (Light Pen Address Register - LPAR,
        high byte)
11h     младший байт адреса светового пера
        (Light Pen Address Register - LPAR,
        low byte)

Регистры контроллеров ЭЛТ, построенных на основе микросхемы Motorola 6845 или ее аналогов.

Карты портов ввода/вывода видеоадаптеров EGA и VGA для монохромного и цветного режимов

Адрес  Регистр

3C2    регистр определения различных режимов работы
       (Miscellaneous Output Register - MOR);
       регистр состояния 0
       (Input Status Register 0 - ISR0)

       3BA    регистр управления дополнительным устройством
       (Feature Control Register)
       регистр состояния 1
       (Input Status Register 1 - ISR1)

       3BB    регистр очистки защелки светового пера
       (Clear Light Pen Latch Register- CLPLR)

       3BC    установка защелки светового пера
       (Set Light Pen Latch Register - SLPLR)

3C4,   регистры синхронизатора
3C5    (Sequencer Register's - SR)

3B4,   регистры контроллера ЭЛТ
3B5    (CRT Controller Register's - CRT_CR)

3CA,   регистры графического контроллера
3CC,   (Graphics Controller Register's - GCR)
3CE,
3CF

3C0    регистр контроллера атрибутов
       (Attribute Controller Register - ACR)
3C3    регистр разрешения работы системы VGA
       (VGA Enable Register - VGA_ER)

3C6,   регистры цифро-аналогового преобразователя (ЦАП) VGA
3C7,   (VGA Video DAC Register - VGA_DAC_R)
3C8,
3C9

Карта портов ввода/вывода (монохромный режим).

Адрес  Регистр

3C2    регистр определения различных режимов работы
       (Miscellaneous Output Register - MOR);
       регистр состояния 0
       (Input Status Register 0 - ISR0).

3DA    регистр управления дополнительным устройством
       (Feature Control Register)
       регистр состояния 1
       (Input Status Register 1 - ISR1)

3DB    регистр очистки защелки светового пера
       (Clear Light Pen Latch Register- CLPLR)

3DC    установка защелки светового пера
       (Set Light Pen Latch Register - SLPLR)

3C4,   регистры синхронизатора
3C5    (Sequencer Register's - SR)

3D4,   регистры контроллера ЭЛТ
3D5    (CRT Controller Register's - CRT_CR)

3CA,   регистры графического контроллера
3CC,   (Graphics Controller Register's - GCR)
3CE,
3CF

3C0    регистр контроллера атрибутов
       (Attribute Controller Register - ACR)

3C3    регистр разрешения работы системы VGA
       (VGA Enable Register - VGA_ER)

3C6,   регистры ЦАП VGA
3C7,   (VGA Video DAC Register - VGA_DAC_R)
3C8,
3C9

Карта портов ввода/вывода (цветной режим).

Регистры контроллера ЭЛТ EGA/VGA8

Индекс  Регистр контроллера ЭЛТ

0       общая длина линии горизонтальной
        развертки
        (Horizontal Total Register - HTR)
1       длина отображаемой части горизонтальной
        развертки
        (Horizontal Display Enable End Register
        - HDER)
2       начало импульса гашения луча
        горизонтальной развертки
        (Start Horizontal Blank Register 
        - SHBR)
3       конец импульса гашения луча
        горизонтальной развертки
        (End Horizontal Blank Register - EHBR)
4       начало импульса горизонтального
        обратного хода луча
        (Start Horizontal Retrace Register 
        - SHRR)
5       конец импульса горизонтального
        обратного хода луча
        (End Horizontal Retrace Register 
        - EHRR)
6       число горизонтальных линий растра
        (Vertical Total Register - VTR)
7       дополнительный регистр
        (Overflow Register - OVR)
8       предварительная установка
        горизонтальной развертки
        (Preset Row Scan Register - PRSR)
9       высота символов текста
        (Max Scan Line Register - MSLR)
0Ah     начальная линия курсора
        (Cursor Start Register - CSR)
0Bh     конечная линия курсора
        (Cursor End Register - CER)
0Ch     старший байт начального адреса
        (Start Address Register - SAR,
        high byte)
0Dh     младший байт начального адреса
        (Start address Register - SAR,
        low byte)
0Eh     старший байт позиции курсора
        (Cursor Location Register - CLR,
        high byte)
0Fh     младший байт позиции курсора
        (Cursor Location Register - CLR,
        low byte)
10h     начало обратного вертикального хода
        луча
        (Vertical Retrace Start Register 
        - VRSR)
11h     конец обратного вертикального хода луча
        (Vertical Retrace End Register - VRER)
10h     старший байт адреса светового пера
        (Light Pen Address Register - LPAR,
        high byte)
11h     младший байт адреса светового пера
        (Light Pen Address Register - LPAR,
        low byte)
12h     начало гашения вертикальной развертки
        (Vertical Display End Register - VDER)
13h     логическая ширина экрана
        (Offset Register - OFR)
14h     положение подчеркивания символа
        (Underline Location Register - ULR)
15h     начало импульса гашения вертикальной
        развертки  (Start Vertical Blank
        Register - SVBR)
16h     конец импульса гашения вертикальной
        развертки
        (End Vertical Blank Register - EVBR)
17h     управление режимом
        (Mode Control Register - MCR)
18h     регистр сравнения линий
        (Line Compare Register - LCR)

Регистры синхронизатора EGA/VGA8

Индекс    Регистр синхронизаторатора
регистра

0         регистр сброса синхронизатора
          (Reset Register - RR)
1         регистр режима синхронизации
          (Clock Mode Register - CMR)
2         регистр разрешения записи цветового
          слоя
          (Color Plane Write Enable Register 
          - CPWER)
3         регистр выбора знакогенератора
          (Character Generator Select Register 
          - CGSR)
4         регистр определения структуры памяти
          (Memory Mode Register - MMR)

Регистры графического контроллера EGA/VGA

Индекс    Регистр графического контроллера
регистра  
0         регистр установки/сброса
          (Set/Reset Register - SRR)
1         регистр разрешения установки/сброса
          (Set/Reset Enable Register - SRER)
2         регистр сравнения цветов
          (Color Compare Register - CCR)
3         регистр циклического сдвига и выбора
          функции
          (Data Rotate & Function Select - DRFS)
4         регистр выбора читаемого слоя
          (Read Plane Select Register - RPSR)
5         регистр режима работы
          (Mode Register - MDR)
6         регистр смешанного назначения
          (Miscellaneous Register - MIR)
7         регистр маскирования цветовых слоев
          (Color Don't Care Register - CDCR)
8         регистр битовой маски
          (Bit Mask Register - BMR)

Регистры контроллера атрибутов EGA/VGA

Индекс   Регистры контроллера атрибутов

0 - 0Fh  регистры цветовой палитры (0-15)
         (Color Palette Register's - CPR)
10h      регистр управления режимом
         (Mode Control Register - MCR)
11h      регистр цвета рамки экрана
         (Screen Border Color Register - SBCR)
12h      регистр разрешения цветового слоя
         (Color Plane Enable Register - CPER)
13h      регистр горизонтального панорамирования
         (Horizontal Panning Register - HPR)
14h      регистр выбора цвета
         (Color Select Register - CSR)

Регистры цифро-аналогового преобразователя VGA

Адрес  Регистр

3C6h   регистр маскирования пикселов 
       (Pixel Mask Register - PMR)
3C7h   регистр состояния ЦАП (для чтения)
       (DAC State Register - DAC_SR)
3C7h   индекс читаемого регистра таблицы цветов (для
       записи)
       (Look-up Table Read Index Register - LTRIR)
3C8h   индекс записываемого регистра таблицы цветов
       (Look-up Table Write Index Register - LTWIR)
3C9h   регистр данных таблицы цветов
       (Look-up Table Data Register - LTDR)

Включаемый файл "SYSP.H"

/* SYSP.H - include-файл для примеров, приведенных в книге */


/**
*.Name      FP_MAKE
*
*.Title     Макро для составления FAR-указателя
*
*.Descr     Макро составляет FAR-указатель, пользуясь
*           значениями сегмента и смещения
*
*.Params    FP_MAKE(seg,off)
*              seg - сегмент;
*              off - смещение
*
*.Return    FAR-указатель seg:off
**/

#define FP_MAKE(seg,off) ((void far *)     \
   ((((unsigned long) (unsigned)(seg)) << 16L) |   \
   ((unsigned long) (unsigned) (off))))


/* Структура векторной таблицы связи DOS */

#pragma pack(1)

typedef struct _CVT_ {
   unsigned mcb_seg;
   void far *dev_cb;
   void far *file_tab;
   void far *clock_dr;
   void far *con_dr;
   unsigned max_btbl;
   void far *disk_buf;
   void far *drv_info;
   void far *fcb_tabl;
   unsigned fcb_size;
   unsigned char num_bdev;
   unsigned char lastdriv;
} CVT;


/* Блок управления памятью MCB */

typedef struct _MCB_ {
   unsigned char type;
   unsigned owner;
   unsigned size;
   char reserve[11];
} MCB;

/* Префикс программного сегмента PSP */

typedef struct _PSP_ {
   unsigned char int20h[2];
   unsigned mem_top;
   unsigned char reserv1;
   unsigned char call_dsp[5];
   void far *term_adr;
   void far *cbrk_adr;
   void far *crit_err;
   unsigned parn_psp;
   unsigned char file_tab[20];
   unsigned env_seg;
   void far *ss_sp;
   unsigned max_open;
   void far *file_tba;
   unsigned char reserv2[24];
   unsigned char disp[3];
   unsigned char reserv3[9];
   unsigned char fcb1[16];
   unsigned char fcb2[20];
   unsigned char p_size;
   unsigned char parm[127];
} PSP;


/* Блок управления устройством DOS */

typedef struct _DDCB_ {
   unsigned char drv_num;
   unsigned char drv_numd;
   unsigned sec_size;
   unsigned char clu_size;
   unsigned char clu_base;
   unsigned boot_siz;
   unsigned char fat_num;
   unsigned max_dir;
   unsigned data_sec;
   unsigned hi_clust;
   unsigned char fat_size;
   char reserv1;
   unsigned root_sec;
   void far *drv_addr;
   unsigned char media;
   unsigned char acc_flag;
   struct _DDCB_ far *next;
   unsigned reserv2;
   unsigned built;
} DDCB;

/* Управляющий блок DOS для файлов */

typedef struct _DFCB_ {
   unsigned handl_num;
   unsigned char access_mode;
   unsigned reserv1;
   unsigned dev_info;
   void far *driver;
   unsigned first_clu;
   unsigned time;
   unsigned date;
   unsigned long fl_size;
   unsigned long offset;
   unsigned reserv2;
   unsigned reserv7;
   unsigned reserv3;
   char reserv4;
   char filename[11];
   char reserv5[6];
   unsigned ownr_psp;
   unsigned reserv6;
   unsigned last_clu;
   char reserv8[4];
} DFCB;

/* Таблица файлов DOS */

typedef struct _DFT_ {
   struct _DFT_ far *next;
   unsigned file_count;
   DFCB dfcb;
} DFT;


/* Управляющий блок дискового буфера BCB */

typedef struct _BCB_ {
   struct _BCB_ far *next;
   unsigned char drive;
   unsigned char flag;
   unsigned sect_num;
   unsigned reserv1;
   DDCB far *ddcb;
   unsigned reserv2;
} BCB;

/* Информация о диске */

typedef struct _DINFO_ {
   char path[64];
   unsigned reserv1;
   unsigned reserv2;
   unsigned char reserv3;
   DDCB far *ddcb;
   unsigned cdir_clu;
   unsigned reserv4;
   unsigned reserv5;
   unsigned reserv6;
   unsigned char reserv7[7];
} DINFO;


/* Заголовок EXE-программы */

typedef struct _EXE_HDR_ {
   unsigned signature;
   unsigned part_pag;
   unsigned file_size;
   unsigned rel_item;
   unsigned hdr_size;
   unsigned min_mem;
   unsigned max_mem;
   unsigned ss_reg;
   unsigned sp_reg;
   unsigned chk_summ;
   unsigned ip_reg;
   unsigned cs_reg;
   unsigned relt_off;
   unsigned overlay;
} EXE_HDR;

/* таблица расположения сегментов EXE-программы */

typedef struct _RELOC_TAB_ {
   unsigned offset;
   unsigned segment;
} RELOC_TAB;

/* конфигурация дисковой подсистемы */

typedef struct _DISK_CONFIG_ {
   int  n_floppy;
   int  n_hard;
   int  t_floppy1;
   int  t_floppy2;
   int  t_hard1;
   int  t_hard2;
} DISK_CONFIG;

/* таблица параметров дискеты */

typedef struct _DPT_ {
   unsigned char srt_hut;
   unsigned char dma_hlt;
   unsigned char motor_w;
   unsigned char sec_size;
   unsigned char eot;
   unsigned char gap_rw;
   unsigned char dtl;
   unsigned char gap_f;
   unsigned char fill_char;
   unsigned char hst;
   unsigned char mot_start;
} DPT;

/* таблица параметров диска */

typedef struct _HDPT_ {
   unsigned max_cyl;
   unsigned char max_head;
   unsigned srwcc;
   unsigned swpc;
   unsigned char max_ecc;
   unsigned char dstopt;
   unsigned char st_del;
   unsigned char fm_del;
   unsigned char chk_del;
   unsigned char reserve[4];
} HDPT;

/* Элемент таблицы разделов */

typedef struct _PART_ENTRY_ {
   unsigned char flag;
   unsigned char beg_head;
   unsigned beg_sec_cyl;
   unsigned char sys;
   unsigned char end_head;
   unsigned end_sec_cyl;
   unsigned long rel_sec;
   unsigned long size;
} PART_ENTRY;

/* Главная загрузочная запись */

typedef struct _MBOOT_ {
   char boot_prg[0x1be];
   PART_ENTRY part_table[4];
   unsigned char signature[2];
} MBOOT;

/* Расширенный блок параметров BIOS */

typedef struct _EBPB_ {
   unsigned sectsize;
   char clustsize;
   unsigned ressecs;
   char fatcnt;
   unsigned rootsize;
   unsigned totsecs;
   char media;
   unsigned fatsize;
   unsigned seccnt;
   unsigned headcnt;
   unsigned hiddensec_low;
   unsigned hiddensec_hi;
   unsigned long drvsecs;
} EBPB;

/* Загрузочная запись для MS-DOS 4.01 */

typedef struct _BOOT_ {
   char jmp[3];
   char oem[8];
   EBPB bpb;
   char drive;
   char reserved;
   char signature;
   unsigned volser_lo;
   unsigned volser_hi;
   char label[11];
   char fat_format[8];
   char boot_code[450];

} BOOT;

/* Время последнего обновления файла */

typedef struct _FTIME_ {
   unsigned sec : 5, min : 6, hour : 5;
} FTIME;

/* Дата последнего обновления файла */

typedef struct _FDATE_ {
   unsigned day : 5, month : 4, year : 7;
} FDATE;

/* Дескриптор файла в каталоге */

typedef struct _FITEM_ {
   char name[8];
   char ext[3];
   char attr;
   char reserved[10];
   FTIME time;
   FDATE date;
   unsigned cluster_nu;
   unsigned long size;
} FITEM;

/* Формат трека для GENERIC IOCTL */

typedef struct _TRK_LY_ {
   unsigned no;
   unsigned size;
} TRK_LY;

/* Параметры устройства для GENERIC IOCTL */

typedef struct _DPB_ {

   char spec;
   char devtype;
   unsigned devattr;
   unsigned numofcyl;
   char media_type;

   EBPB bpb;
   char reserved[6];

   unsigned trkcnt;
   TRK_LY trk[100];

} DPB;

/* Параметры для форматирования функцией GENERIC IOCTL */

typedef struct _DPB_FORMAT_ {

   char spec;
   unsigned head;
   unsigned track;

} DPB_FORMAT;

/* Параметры для чтения/записи функцией GENERIC IOCTL */

typedef struct _DPB_WR_ {

   char spec;
   unsigned head;
   unsigned track;
   unsigned sector;
   unsigned sectcnt;
   void _far *buffer;

} DPB_WR;

/* Идентификатор BIOS */

typedef struct _BIOS_ID_ {

   char date[8];
   unsigned reserve;
   char pc_type;

} BIOS_ID;

// Состояние мыши

typedef struct _MOUSE_STATE_ {

   unsigned bottoms;
   unsigned x;
   unsigned y;

} MOUSE_STATE;

typedef struct _SYSTIMER_ {

   char hour;
   char min;
   char sec;
   unsigned year;
   char month;
   char day;
   char daylight_savings;

} SYSTIMER;

#pragma pack()

/* получить адрес векторной таблицы связи */
void far *get_cvt(void);

/* получить адрес векторной таблицы связи */
CVT  far *get_mcvt(void);

/* получить адрес первого MCB */
MCB  far *get_fmcb(CVT far *); 

/* получить адрес следующего MCB */
MCB  far *get_nmcb(MCB far *); 

/* получить адрес первого DDCB */
DDCB  far *get_fddcb(CVT far *); 

/* получить адрес следующего DDCB */
DDCB  far *get_nddcb(DDCB far *); 

/* получить адрес DDCB для диска */
DDCB  far *get_ddcb(unsigned char); 

/* получить адрес первой DFT */
DFT  far *get_fdft(CVT far *); 

/* получить адрес следующей DFT */
DFT  far *get_ndft(DFT far *); 

/* получить адрес первого BCB */
BCB  far *get_fbcb(CVT far *); 

/* получить адрес следующего BCB */
BCB  far *get_nbcb(BCB far *); 

 /* прочитать заголовок EXE */
//int get_exeh(EXE_HDR *,RELOC_TAB **, FILE *);

/* получить модель компьютера */
char unsigned pc_model(void); 

/* определить конфигурацию дисковой подсистемы */
void disk_cfg(DISK_CONFIG*);  

/* получить адрес DPT  */
DPT _far *get_dpt(void);   

/* получить адрес первой HDPT  */
HDPT _far *get_hdp1(void);      

/* получить адрес второй HDPT  */
HDPT _far *get_hdp2(void);      

/* получить адрес идентификатора BIOS */
BIOS_ID _far *getbiosi(void);   

int   ms_init(int *);               // Инициализация мыши
void  ms_on(void);                  // Включение курсора
void  ms_off(void);                 // Выключение курсора
void  ms_setcr(int, int);           // Установка курсора
int   ms_querp(MOUSE_STATE *, int); // Определение состояния
                      // мыши при нажатии на
                      // клавишу

// Задать диапазон перемещений курсора по горизонтали
void  ms_rangx(int xmin, int xmax); 

// Задать диапазон перемещений курсора по вертикали
void  ms_rangy(int ymin, int ymax); 

// определение формы курсора в графическом режиме
void  ms_gform(int xt, int yt, char _far *form); 

 // определение формы курсора в текстовом режиме
void ms_tform(int type, int mask1, int mask2);  

// определение относительного перемещения в миках
MOUSE_STATE *ms_querm(MOUSE_STATE *state);  

// установка драйвера событий
void ms_seth(int mask, void (far *hand)());  

// Системные часы реального времени

#define RTC_GET_TIME    2
#define RTC_SET_TIME    3
#define RTC_GET_DATE    4
#define RTC_SET_DATE    5
#define RTC_SET_ALARM   6
#define RTC_CLEAR_ALARM 7

// работа с часами реального времени
int timer(char, SYSTIMER *); 

// формирование задержки по таймеру
void tm_delay(int); 

// формирование тона заданнной длительности с использованием
// таймера
void tm_sound(int, int); 

// инициализация генератора случайных чисел
void rnd_set(int);   

// получение случайного числа
int rnd_get(void);   


typedef struct _AUX_MODE_ {

   union {

      struct {
         unsigned char  len : 2, // длина символа
            stop         : 1, // число стоп-битов
            parity       : 2, // контроль четности
            stuck_parity : 1, // фиксация четности
            en_break_ctl : 1, // установка перерыва
            dlab         : 1; // загрузка регистра
                        // делителя
      } ctl_word;

      char ctl;

   } ctl_aux;

   unsigned long baud;     // скорость передачи данных

} AUX_MODE;

// инициализация асинхронного адаптера
int aux_init(AUX_MODE *, int, int); 

// определение режима асинхронного адаптера
void aux_stat(AUX_MODE *, int); 

// вывод символа в асинхронный адаптер
void aux_outp(char, int);  

// ввод символа из асинхронного адаптера
char aux_inp(int); 

// Прототипы функций для работы с дополнительной
// памятью.

int ems_init(void);
int ems_stat(void);
int ems_fram(unsigned *);
int ems_page(unsigned *, unsigned *);
int ems_open(int, int *);
int ems_clos(int *);
int ems_map(int, int, int);
int ems_ver(char *);

Включаемый файл "SYSGRAPH.H"

/* SYSGRAPH.H - включаемый файл для примеров, приведенных в книге 

#pragma pack(1)

// переменные видеофункций BIOS

typedef struct _BIOS_VAR_ {
   unsigned char  equipment_flag;
   unsigned char  reserv1[0x38];
   unsigned char  video_mode;
   unsigned       columns;
   unsigned       page_length;
   unsigned       start_addr;
   unsigned       cursor_position[8];
   unsigned       cursor_shape;
   unsigned char  active_page;
   unsigned       crt_address;
   unsigned char  mode_reg_data;
   unsigned char  palette;
   unsigned char  reserv2[0x1D];
   unsigned char  rows;
   unsigned       char_height;
   unsigned char  ega_info_1;
   unsigned char  ega_info_2;
   unsigned char  reserv3[0x1f];
   void far       *environ_ptr;
} BIOS_VAR;

#pragma pack()

Включаемый файл "VGA_NEW.H"

/**
*      Включаемый файл vga_new.h
**/

// сегмент видеопамяти для режима 13h
#define VGA_SEGMENT     0a000h     


// регистр определения различных режимов работы
#define MOR  3c2h    

// адрес индексного порта синхронизатора
#define SC_INDEX   3c4h  

   // регистр разрешения записи цветового слоя
   #define CPWER   2    

   // регистр определения структуры памяти
   #define MMR     4    


// адрес индексного порта графического контроллера
#define GC_INDEX   3ceh  

   // регистр выбора читаемого слоя
   #define RPSR    4   

   // регистр режима работы
   #define MDR     5   

   // регистр смешанного назначения
   #define MIR     6   


// адрес индексного порта контроллера ЭЛТ (цветной режим)   
#define CRTC_INDEX      3d4h     

   // регистр высоты символов текста
   #define MSLR    9    

   // регистр начального адреса
   #define SAR_h   0ch  

   // регистр положения подчеркивания символа
   #define ULR     14h  

   // регистр управления режимом
   #define MCR     17h  


// режим 320х400 пикселов

// число пикселов по вертикали 
#define SCREEN_HEIGHT  400 

// число пикселов по горизонтали  
#define SCREEN_WIDTH   320 


// режим 360х480 пикселов

// число пикселов по вертикали 
#define SCREEN_HEIGHT_H 480 

// число пикселов по горизонтали 
#define SCREEN_WIDTH_H  360 

Словарь терминов

black черный
blue голубой
brightwhite интенсивно-белый
brown коричневый
CD цветной дисплей
CGA цветной графический адаптер
color look-up table таблицей цветовой палитры
color plan цветовой слой
controller контроллер
cursor курсор
cyan синий
DAC ЦАП (цифро-аналоговый преобразоваатель)
ECD улучшенный цветной дисплей
EGA улучшенный графический адаптер
gray серый
green зеленый
Hercules Геркулес
icon пиктограмма
latches регистры-защелки
light pen световое перо
lightblue светло-голубой
lightcyan светло-синий
lightgreen светло-зеленый
lightmagenta светло-малиновый
lightred светло-красный
lightyellow светло-желтый
magenta малиновый
MD монохромный дисплей
MDA монохромный дисплейный адаптер
monochrome монохромный
panning панорамирование, сдвиг
pixel пиксел, элемент изображения
red чкрасный
scrolling скроллинг, прокрутка
VGA массив видеографики
white белый
XGA расширенный массив видеографики
yellow желтый