Пытаюсь загрузить таблицу кириллических символов для знакогенератора. размер 8x16. начиная с 192 символа ('A'). всего в таблице 1024 байт (64 символа с кода 192, 16 байт на символ). Таблица имеет вид: Код (Text): szSymbolTable db 000h,000h,03Eh,066h,0C6h,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,0C6h,000h,000h,000h,000h ; A db 000h,000h,0FEh,0C0h,0C0h,0C0h,0FCh,0C6h,0C6h,0C6h,0C6h,0FCh,000h,000h,000h,000h ; Б ... etc Предварительно пишу ее во 2й и 3й секторы Далее в коде выполняю: Код (Text): ... mov dx, 0x80 ; чтение с диска mov cx, 2 ; 2й сектор mov ax, 0x202 ; чтение 2 секторов (1024 байт) mov bx, 0x1000 ; адрес буфера int 0x13 mov ax, 0x1100 ; загрузить пользовательский шрифт mov bp, 0x1000 ; указатель на таблицу mov cx, 0x40 ; число изменяемых символов mov dx, 0xC0 ; начиная с кода 0С0h ('A') mov bx, 0x1000 ; число байт в образце символа int 0x10 ... и в итоге получаю закорючки-иероглифы. подскажите пожалуйста, что за беда такая?
Так 1100 - это EGA-фонт. Он бывает 8х8 и 8х14, ну и разрешения экрана другие. Наверно для VGA нужно что-то другое.
valterg 1100 это загрузка пользовательского шрифтв + я же в bh указываю его размер. кто-нибудь сталкивался с такой проблемой? уж и не знаю в чем может быть беда
бле, мужыки. кто поможет - 100 вмз награда. дело то несложное вроде как. или у меня руки из жопы, или "в запятой" где-то ошибся. срочно нужно, горит
sideX Наиболее вероятно, что на винте в тех двух секторах просто нет таблицы. Выложили бы код, было бы быстрее. Но если горит, то поиск по форуму по слухам помогает.
sideX Не то, чтобы я не верил, но в теме по ссылке автор тоже собственноручно писал. Оказалось, не туда. В любом случае рабочий пример у Вас теперь есть. Сравнивайте.
Я и говорю: в той справке, что я нашел, нет размера 8х16. Понимаешь, было время когда VGA не было, а БИОС и шрифты были. Поэтому и просят у тебя код - можно точнее все проверить.
прилагаю исходники и бинарники. на виртуалке пускаем testing.exe и перезапускаемся http://www.sendspace.com/file/sg470g
Ты "пользовательский" шрифт грузишь, поэтому видеорежим нужно устанавливать до загрузки шрифта, а не после.
К слову, для текстового режима лучше использовать кодировку, не разрушающую псевдографику (по крайней мере в диапазоне 0C0h-0DFh), к примеру CP866, а если не хочешь разрывать ряд малых букв, можно поменять местами диапазоны символов 0B0h-0BFh и 0E0-0EFh и написать макрос для трансляции в эту кодировку из utf8 в исходниках, типа: Код (Text): vb 13,10,"Привет!",32,0