Языки и шрифты в Kolibri 0.5.2

Internal structure and you change requests/suggestions
  • В 0530 сборке в исходниках в папке boot лежит файл RU.INC в нем находится вторая половина таблицы шрифтов. В нем и можешь поменять на нужные символы.
  • xGibrit
    Для этого нужно заставить Халявина выложить наконец-то где-нибудь программу для конвертации шрифтов :)

    Андрей: Если она отличается от моей CONVERT.COM только тем, что в CHAR2.MT добавлен байт ширины для каждого символа, то я могу переделать свою. С другой стороны, если твоя имеет графический интерфейс - почему бы не выложить её...
  • Только тем, что добавлен байт ширины для каждого символа.
    Кажется я как раз твой convert.com и изменял для конвертации (куда его у себя сохранил - не помню) ;).
  • В 0530 сборке в исходниках в папке boot лежит файл RU.INC в нем находится вторая половина таблицы шрифтов. В нем и можешь поменять на нужные символы.
    А как менять? Там одни 0x?? написаны, что с ними делать?
  • Представь себе, что каждый символ представляется набором бит. Приведу пример, в RU.INC написано:

    Code: Select all

     db  0x00, 0x00, 0x1E, 0x36, 0x66, 0xC6, 0xC6, 0xFE, 0xC6, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, 0x00
    Это шестнадцатеричные числа, на каждую букву - 16 чисел. Представим их в двоичном виде и вынесем каждое число в новую строку:

    Code: Select all

    00000000
    00000000
    00011110       oooo
    00110110      oo oo
    01100110     oo  oo
    11000110    oo   oo
    11111110    ooooooo
    11000110    oo   oo
    11000110    oo   oo
    11000110    oo   oo
    11000110    oo   oo
    00000000
    00000000
    00000000
    00000000
    Eсли приглядеться, то можно распознать букву "А". Надеюсь, идея ясна
  • Всё понял. Спасибо. :D
  • Следующая проблема ...

    Многие буквы расположенны на клавишах цифр. Что нужно изменить в ru.inc чтобы вместо цифр выводились буквы, а когда нажимаешь alt, выводились цифры?
  • РАЗРАБОТЧИКИ, ПОЖАЛУЙСТА, ОТВЕТЬЕ НА МОЙ ВЫШЕ ЗАДАННЫЙ ВОПРОС!!!
  • если не ошибаюсь то в файле ru.inc хранятся только русские буквы остальные хранятся где-то в другом месте (скорее всего в знакогенераторе)
  • xGibrit
    В ru.inc находятся шрифты, которые выводятся в синем загрузочном экране. К твоей проблеме, по-моему, это отношение совсем не имеет.
    Alt в текущем варианте системы заблокирован для функции 2. Он используется для приложения @PANEL для обрабатывания горячих комбинаций. А отключение для функции 2 я сделал, для того, чтобы в текстовом редакторе или другом приложении не выводился мусор при нажатии горячих комбинаций.
    В текущем варианте имеются следующие горячие комбинации:
    Ctrl+Alt+Del <- работает на уровне ядра.
    Остальные работают за счет @PANEL
    Сtrl+Shift <-переключение раскладки клавиатуры
    Shif+Shift <- переключение языка системы
    Alt+Win - запуск приложения MENU
    Alt+Ctrl+F12 - запуск приложения END
    Alt+F4 - завершение активного приложения.
    Для изменения кодирования клавиш тебе нужно изменить кодировку символов в приложении SETUP.
    alt_general:

    ; db ' ',27
    ; db ' @ $ {[]}\ ',8,9
    ; db ' ',13
    ; db ' ',0,' ',0,'4',0,' '
    ; db ' ',180,178,184,'6',176,'7'
    ; db 179,'8',181,177,183,185,182
    ; db 'ABCD',255,'FGHIJKLMNOPQRSTUVWXYZ'
    ; db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
    ; db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
    ; db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'


    en_keymap:

    db '6',27
    db '1234567890-=',8,9
    db 'qwertyuiop[]',13
    db '~asdfghjkl;',39,96,0,'\zxcvbnm,./',0,'45 '
    db '@234567890123',180,178,184,'6',176,'7'
    db 179,'8',181,177,183,185,182
    db 'AB<D',255,'FGHIJKLMNOPQRSTUVWXYZ'
    db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
    db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
    db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'


    en_keymap_shift:

    db '6',27
    db '!@#$%^&*()_+',8,9
    db 'QWERTYUIOP{}',13
    db '~ASDFGHJKL:"~',0,'|ZXCVBNM<>?',0,'45 '
    db '@234567890123',180,178,184,'6',176,'7'
    db 179,'8',181,177,183,185,182
    db 'AB>D',255,'FGHIJKLMNOPQRSTUVWXYZ'
    db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
    db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
    db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'


    fr_keymap:

    db '6',27
    db '&О"',39,'(-Н_УР)=',8,9
    db 'azertyuiop^$',13
    db '~qsdfghjklmТ',0,0,'*wxcvbn,;:!',0,'45 '
    db '@234567890123',180,178,184,'6',176,'7'
    db 179,'8',181,177,183,185,182
    db 'AB<D',255,'FGHIJKLMNOPQRSTUVWXYZ'
    db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
    db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
    db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'



    fr_keymap_shift:


    db '6',27
    db '1234567890+',8,9
    db 'AZERTYUIOPХФ',13
    db '~QSDFGHJKLM%',0,'ЦWXCVBN?./',0,'45 '
    db '@234567890123',180,178,184,'6',176,'7'
    db 179,'8',181,177,183,185,182
    db 'AB>D',255,'FGHIJKLMNOPQRSTUVWXYZ'
    db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
    db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
    db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'


    fr_keymap_alt_gr:


    db '6',27
    db 28,'~#{[|Ш\^@]}',8,9
    db 'azertyuiop^$',13
    db '~qsdfghjklmТ',0,0,'*wxcvbn,;:!',0,'45 '
    db '@234567890123',180,178,184,'6',176,'7'
    db 179,'8',181,177,183,185,182
    db 'AB<D',255,'FGHIJKLMNOPQRSTUVWXYZ'
    db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
    db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
    db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'




    fi_keymap:

    db '6',27
    db '1234567890+[',8,9
    db 'qwertyuiop',192,'~',13
    db '~asdfghjkl',194,193,'1',0,39,'zxcvbnm,.-',0,'45 '
    db '@234567890123',180,178,184,'6',176,'7'
    db 179,'8',181,177,183,185,182
    db 'AB<D',255,'FGHIJKLMNOPQRSTUVWXYZ'
    db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
    db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
    db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'


    fi_keymap_shift:

    db '6',27
    db '!"#П%&/()=?]',8,9
    db 'QWERTYUIOP',200,'~',13
    db '~ASDFGHJKL',202,201,'1',0,'*ZXCVBNM;:_',0,'45 '
    db '@234567890123',180,178,184,'6',176,'7'
    db 179,'8',181,177,183,185,182
    db 'AB>D',255,'FGHIJKLMNOPQRSTUVWXYZ'
    db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
    db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
    db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'



    ge_keymap:

    db '6',27
    db '1234567890?[',8,9
    db 'qwertzuiop',203,'~',13
    db '~asdfghjkl',194,193,'1',0,39,'yxcvbnm,.-',0,'45 '
    db '@234567890123',180,178,184,'6',176,'7'
    db 179,'8',181,177,183,185,182
    db 'AB<D',255,'FGHIJKLMNOPQRSTUVWXYZ'
    db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
    db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
    db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'


    ge_keymap_shift:

    db '6',27
    db '!"#$%&/()=',197,']',8,9
    db 'QWERTZUIOP',195,'~',13
    db '~ASDFGHJKL',202,201,'1',0,'*YXCVBNM;:_',0,'45 '
    db '@234567890123',180,178,184,'6',176,'7'
    db 179,'8',181,177,183,185,182
    db 'AB>D',255,'FGHIJKLMNOPQRSTUVWXYZ'
    db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
    db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
    db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'

    ru_keymap:

    db '6',27
    db '1234567890-=',8,9
    db 'йцукенгшщзхъ',13
    db 0,"фывапролджэ"
    db 0xf1, '-/'
    db "ячсмитьбю",'.-','45 '
    db '@234567890123',180,178,184,'6',176,'7'
    db 179,'8',181,177,183,185,182
    db 'AB<D',255,'FGHIJKLMNOPQRSTUVWXYZ'
    db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
    db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
    db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'



    ru_keymap_shift:

    db '6',27
    db '!"N;%:?*()_+',8,0
    db "ЙЦУКЕНГШЩЗХЪ",13
    db 0,"ФЫВАПРОЛДЖЭ"
    db 0xf0, '-\'
    db "ЯЧСМИТЬБЮ",',-','45 '
    db '@234567890123',180,178,184,'6',176,'7'
    db 179,'8',181,177,183,185,182
    db 'AB>D',255,'FGHIJKLMNOPQRSTUVWXYZ'
    db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
    db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
    db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'

    Как видишь, Alt я приравнял к обычной раскладке, закомментировав его данные.
    Но это не все как я уже описывал выше, в самом ядре заблокирован вывод комбинаций с Alt для функции 2.
    Вместо таких комбинаций выдается 0.
    Конечно, это не лучший выход, но я не разработчик Тинипадов и нужен был какой то выход для борьбы с мусором. А игнорировать 0 значение гораздо проще, чем отлавливать все комбинации с Alt.
    Вот такие дела. Возможно, для тебя есть выход сделать две раскладки, переключая которые можно вводить недостающие символы. Но опять же могут возникнуть проблемы.
  • Mario79

    Жалко, что alt не работает ... Ну ладно, сделаю 2 рескладки.

    Другая проблема, в ru.inc не использовано 16 символов, т.е. с 80 до 96 символа там храняться нули. Если я их изменю, то нужно сделать, чтобы использовать их? Причём вместо "1" пишет, к примеру символ "Х".
  • xGibrit
    На данный вопрос я тебе не могу ответить. Экспериментируй, может чего и получиться.
  • Mario79
    ru.inc - это шрифты для реального режима. А где храняться шрифты для защищённого?
  • char*.mt
  • Who is online

    Users browsing this forum: No registered users and 19 guests