3121
Игры нашего форума / Сказка про Гордона Фримена
« : 06 Октябрь 2006, 19:20:37 »
и очнулся в травмпункте на растяжках весь...
В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.
#include
main(){
for(;;){
l1:_asm{
mov ah, 0x12 //klava 102 knopki
int 0x16 //poluchit rezultat
test al, 2 //test 2go bita (leviy shift)
jnz l2 //esli nazhata to.. vashi deystviya na l2
jmp l1 //ne nazhata?? nu togda na l1
}
l2:{
printf(" \t\t Shift nazhat!!!\n");
return 0;
}
}
}
какой код у клавишы shift
INT 16h, AH = 02h, 12h, 22h — Считать состояние клавиатуры
Ввод: АН = 02h (83/84-key), 12h (101/102-key), 22h (122-key)
Вывод: AL = байт состояния клавиатуры 1
АН = байт состояния клавиатуры 2 (только для функций 12h и 22h)
Байт состояния клавиатуры (этот байт всегда расположен в памяти по адресу 0000h:0417h):
Бит 7: Ins включена
Бит 6: CapsLock включена
Бит 5: NumLock включена
Бит 4: ScrollLock включена
Бит 3: Alt нажата (любая Alt для функции 02h, часто только левая Alt для 12h/22h)
Бит 2: Ctrl нажата (любая Ctrl)
Бит 1: Левая Shift нажата
Бит 0: Правая Shift нажата
Винда вот, наскока я знаю, не может работать с диска
Bootable CD Wizard
Особенно нравилась деревня дураков.
Где в интернете!