Stalker писал(а):
Есть самопальное ядро, работает клавиатура, загружается через граб
На инглише пишет без проблем, а как сделать русские буквы cp866 или KOI8-8x16
Есть сам шрифт (.fnt) как запихнуть его в ядро
Хотелось бы чтото типа такого
http://gazette.linux.ru.net/rus/article ... oy-os.html И можно ли вообще сделать такое в сишном ядре
Файлы с расширением .fnt могут иметь разный формат. Как я понял, речь все-таки идет о текстовом режиме экрана. Можно и на Си.
Если файл содержит только битовую карту шрифта 8x16, то для загрузки шрифта в знакогенератор тебе прежде всего нужно знать следующее:
Цитата:
Load font bitmap into video memory plane 2 in the sequential accessing address mode (some graphics and sequencer registers need to reprogram) taking into account that each character's bitmap occupies 32 bytes (i.e. load 16 bytes and pass over 16 bytes for font 9x16 to get next position for loading).
Цитата:
Font loading:
graph[0x05] = 0x00 (bit 4 = 0)
graph[0x06] = 0x0C (bit 1 = 0)
seq[0x02] = 0x04 (0100b)
seq[0x04] = 0x06/0x07 (bit 2 = 1)
Characters and attributes writing (normal mode):
graph[0x05] = 0x10 (bit 4 = 1)
graph[0x06] = 0x0E (bit 1 = 1)
seq[0x02] = 0x03 (0011b)
seq[0x04] = 0x02/0x03 (bit 2 = 0)
Источник:
New fonts (graph и seq - это отдельные группы регистров vga).
Для Си данные из файла нужно конвертировать в массив констант - для этого есть спец. утилиты. Или можно загрузить непосредственно из файла во время выполнения.