Действительно, клевое и качественное. Очень рада возможности узнать, как оно работает изнутри. Даже интерес к ассемблеру AVR появился.![]()
Примеров в сети на Си полно, но тут случай особый.
А сканкоды клавиш "встроенных" (вне таблицы), любой желающий может изменить на свой вкус прямо в блокноте.
Нужно всего лишь список сигнатур составить по лист-файлу, для возможности правки hex файла.![]()
И совсем необязательно разработчика (caro) из за такой мелочи беспокоить.
- - - Добавлено - - -
Вот простой пример.
Открываем в блокноте файл orion_kb.hex и ищем сигнатуру "5F3529F4". Меняем сканкод "5F" клавиши "Scroll Lock" на любой желаемый из таблицы AT Keyboard Scan Codes (Set 3). При замене сканкода 5F (Scroll Lock) на сканкод 62 (Pause), получим измененную сигнатуру "523629F4". Хотя, блин придется еще контрольную сумму блока пересчитать.Но эту проблему решает avr-objcopy, надо батник написать для простого использования, не требующего никаких знаний.
![]()
Подробности на ASM
Код:;Reversed by Trol73 .equ KEY_SCROLLLOCK = 0x5F ... C:000062 355f cpi r21, KEY_SCROLLLOCK C:000063 f429 brne check_code_6[свернуть]
- - - Добавлено - - -
Это делается вот так.
Код:avr-objcopy -I ihex -O binary orkb_021.hex orkb_021.binУтилиту avr-objcopy можно скачать например тут, в составе ардуино студии. Или в составе продуктов Atmel. Ну или если совсем лень, то вот avr-objcopy.exe.zip.Первая и последняя строки несут служебную информацию. Наличие первой строки необязательно. Система AVR Studio при трансляции программы всегда добавляет в hex-файл первую строку именно такого содержания. Последняя строка — это стандартный конец для любого hex-файла.![]()





wtf
Ответить с цитированием
Размещение рекламы на форуме способствует его дальнейшему развитию 
