Суть такая. Хочется написать такую процедурку, которая будет вызываться сразу после нажатия любой клавиши, и будет крутить цикл, пока клавиша не будет отпущена. Вроде просто, но чета не выходит...
Подскажите?
Вид для печати
Суть такая. Хочется написать такую процедурку, которая будет вызываться сразу после нажатия любой клавиши, и будет крутить цикл, пока клавиша не будет отпущена. Вроде просто, но чета не выходит...
Подскажите?
делай два вызова, один крутится пока что-то ненажалось, второй крутится когда что-то нажато
надеюсь про xor a; in a,(#fe) + отброс ненужных битов ты знаешьКод:loop1 call keys
jr nz,loop1
loop2 call keys
jr z,loop2
иногда отсутствие такого варианта реально бесит.
например в R-TYPE для выбора клавиш управления надо нажать в меню ENTER,
если последняя выбранная кнопка (смена оружия) будет ENTER
игра её назначит, быстро выйдет в меню и снова будет переход в режим выбора клавиш
Все эти беды от "дребезга" клавиатуры, нужен "антидребезг" или deBounce по буржуйски, типо того что в ПЗУ :) Я пользуюсь таким, из z88dk Вложение 63248
Нужно только настроить параметры под себя KeyDebounce, KeyStartRepeat, KeyRepeatPeriod
Полноценный обработчик клавиш с антидребезгом.
Для ZX-клавиатуры. https://github.com/salextpuru/sdcc-n...bsrc/libzxkbd/
Для PS/2-клавиатуры. https://github.com/salextpuru/sdcc-n.../libsrc/libps2
там все на АСМе в основном, но фронтенд на С.
Если подойдёт, конечно. Там нет обработки одновременного нажатия нескольких клавиш. Только капсы и шифты.
Раскладка KOI8-R. Таблички легко поменять.
Примеры-тесты рядом:
https://github.com/salextpuru/sdcc-n...pps/test-zxkbd
https://github.com/salextpuru/sdcc-n...ps/test-ps2kbd