Страница 1 из 1

Команды в порт клавиатуры.

Добавлено: 19 дек 2004, 21:35
Wormkeeper
Объясните, пожалуйста, как на паскале можно работать с клавиатурой. Вроде она имеет порты $60 и $64. И по идее введение в последний из них команд клавиатуре должно сказываться на ней. Например $ED должно обращаться к светодиодам. А следующий байт 0, 1 или 2 зажигать их. Но ничего не получаеться. Клавиатура вообще не реагирует на команды, вводимые в этот порт. Помогите разобраться.

Добавлено: 20 дек 2004, 12:42
Eugie
Wormkeeper, ты все-таки определись, как хочешь работать с клавиатурой: на Паскале или через порты :) Для второго случая у нас есть специальный форум, называется "Ассемблер"

Если серьезно, см. например http://newww.mycomputer.ua/text/4887;js ... DE157110F0
Имей в виду, что предполагается работа в реальном режиме (т.е. из-под DOS)

Добавлено: 20 дек 2004, 15:18
Wormkeeper
Вообще то я имел в имду как раз на Паскале. Там вроде есть на это команды port[] и portw[]. Только с ними ничего не получаеться. А в ассемблере я пока не очень разбираюсь :cry: на эту страничку я как-то раз выходил. Видно у меня паскаль другой версии. Может я что-то туплю. А из Паскаля точно нельзя?

Добавлено: 20 дек 2004, 15:37
Eugie
port[] и portw[] - это не команды, а массивы для прямого доступа к портам. Можно, конечно, работать и через них. Есть еще стандартные функции KeyPressed, ReadKey (определены в Crt) для посимвольного чтения из буфера.
Ты ссылку-то посмотри, там как раз то, что тебе нужно.

Добавлено: 20 дек 2004, 21:45
Wormkeeper
Спасибо огромное! Я кажеться понял, что у меня с компом(или с виндой) глюк. Я пробовал раньше писать на паскале - ноль результата. Сейчас попробовал прогу написать из указанного места. Сначала подумал, что опять не работает результата, а потом понял, что сотояние клавиатуры(caps lock, num lock, insert) перещёлкиваеться, только лампочкой это не отображаеться :( . Хотя при нажатии кнопки лампочка загораеться.

Re: Команды в порт клавиатуры.

Добавлено: 01 авг 2009, 00:43
navis
;) тоже когда-то не мог понять в чём дело. оказалось всё дело в винде. из-под доса или биоса всё работает.

прописываеш на паскале

var ncs_lock_status: byte absolute $40:$17;

4 bit - scroll lock
5 bit- num lock
6 bit- caps lock
и все возможные комбинации.
также можно читать отсюда инфу о состоянии клавиш (ctrl, alt, shift и выше упомянутых).

или так:

mem[$40:$17]:= 32; {загорится num lock, если ты не в винде}

Команды в порт клавиатуры

Добавлено: 25 авг 2009, 13:24
JedGeokE
Собственно.. Нужно, чтобы прога нажимала кнопку клавиатуры.

Делал через keybd_event - работает, но не везде.. Например, в графическом приложении да че там - в игре; d3d ноль эмоций на крутящиеся в цикле "нажатия".

Есть ли способ "пониже"?
кстати не хочу казаться неудачником умоляю кто-нибудь помогите как играть в ************* - это непонятная космическая браузерная стратегия, что на что давить, хочу захватить галактику только как как это сделать?

уж не ради ли этой ссылки весь пост? ссылку убил. ИА