В приложения к книге вынесены наиболее полезные таблицы: таблица ASCII-кодов символов; карта памяти, используемой видеоадаптерами CGA/EGA/VGA; значения регистров, устанавливаемые BIOS по умолчанию, список стандартных режимов видеоадаптеров с их основными параметрами. Приложение содержит также словарь терминов (глоссарий).
В ПЗУ персональных компьютеров семейства 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 расположены переключатели, которые в документации обозначаются 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
В поле "разрешение", таблицы нестандартных режимов видеоадаптеров помещены разрешающая способность в текстовых режимах, затем размеры символов (в пикселах) и разрешающая способность в графических режимах.
Адрес Размер Содержание 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
Адрес Регистр 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.
Индекс Регистр контроллера ЭЛТ 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 или ее аналогов.
Адрес Регистр 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
Карта портов ввода/вывода (цветной режим).
Индекс Регистр контроллера ЭЛТ 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)
Индекс Регистр синхронизаторатора регистра 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)
Индекс Регистр графического контроллера регистра 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)
Индекс Регистры контроллера атрибутов 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)
Адрес Регистр 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 - 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 - включаемый файл для примеров, приведенных в книге #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 **/ // сегмент видеопамяти для режима 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 |
желтый |