Всем привет ещё раз. В DOS светодиоды не реагируют, в VMware всё ok. Что не так-то? Помнится, давным давно (где-то в конце 90-х, начале 00-х) делал такое, всё работало, сейчас не хочет. Код (ASM): SetLEDState PROC PASCAL State:BYTE pushf cli xor cx,cx @@1: in al,64h test al,2 loopnz @@1 ; ожидаем готовность к приёму команды mov al,0EDh ; команда управления светодиодами out 60h,al xor cx,cx @@2: in al,64h test al,2 loopnz @@2 ; ожидаем готовность к приёму команды mov al,State ; состояние светодиодов out 60h,al popf ret SetLEDState ENDP
Jin X, Так у вас клаву этот порт не обслуживает, либо его нет вовсе Она у вас походу usb-ная или беспроводная.
Клава USB-шная. Но как не обслуживает? Что же, порт на чтение работает, а на запись – нет? Я же читаю из 60-го сканы, делаю сброс IRQ1 через 61-й (не вызывая BIOS'овский обработчик int 9 вообще), через 64-й успешно перезагружаю камень (посылая 0FEh). При записи в 60-й, кстати, получаю эхо (генерится IRQ1) в виде скан-кода, но только не 0FAh, а 0FEh. Что бы это могло значить?
Накидал прогу, которая непрерывно показывает скан-коды из порта 60h. Скан-код 0FEh отображается после нажатия на Caps/Num/Scroll Lock. Так что, видимо, эхо 0FEh – это нормально.