Собственно сабж - хочется чтоб при нажатой клавише печаталось больше символов в единицу времени. В моем распоряжении только порты ввода\вывода.
Вобщем, поменять делей у меня получилось, но эта операцию вызывает другую проблему - почему-то отказывается после неё работать клавиатура - блокируется мби? Если так, то я пытался разблокировать её через 61h порт, но безупешно. Bochs даже не фиксирует в логах записать в порт о_О. С чем это связано?
Код (Text): ;ожидание готовности контроллера keyb_sett: in al, 0x64 test al, 00000010b jnz keyb_sett ;посылка кода команды mov al, 0xF3 out 0x60, al ;опять ожидание keyb_settw: in al, 0x64 test al, 00000010b jnz keyb_settw ;посылка значения для команды mov al, 00100100b ;бит 7 зарезерв и 0, 01=500 мс пере вкл биты 5-6, 00100 = 20 символов \ секунду out 0x60, al ;попытка разблокать клаву in al, 0x61 or al, 1 out 0x61, al ret Собсно бокс пишет какуюто лабуду : kbd_enQ(0xfa) kbd_enQ: putting scancode 0xfa in internal buffer а дальше пишет, что делей поменял успешно...
Vilco Код (Text): ;ожидание готовности контроллера keyb_sett: in al, 0x64 test al, 00000010b jnz keyb_sett ;посылка кода команды mov al, 0xF3 out 0x60, al ; ждем ACK wait_ack: in al, 0x64 test al, 1 jz wait_ack in al, 0x60 ; читаем ACK ; посылка значения для команды mov al, 00100100b out 0x60, al ; попытка разблокать клаву in al, 0x61 and al, 0x7F out 0x61, al ret
Хм, спасибо. Откуда выдержка? Неужто мануалы? Только единственное, что пришлось Код (Text): wait_ack: in al, 0x64 test al, 1 jz wait_ack in al, 0x60 ; читаем ACK дважды делать (второй раз после посылки rate\delay байта)