UNIT Keyboard;
INTERFACE
function MKeyPressed:boolean;
function MReadKey:byte;
function MReadKeyP:byte;
procedure ClBuf;
const
{Скан-коды наиболее часто используемых клавиш}
Esc=1;
_1 = 2;
_2 = 3;
_3 = 4;
_4 = 5;
_5 = 6;
_6 = 7;
_7 = 8;
_8 = 9;
_9 = 10;
_0 = 11;
Minus=12;
Equal=13;
BackSpace=14;
Tab=15;
Enter=28;
Space=57;
Up=72;
Down=80;
Left=75;
Right=77;
Ins=82;
Del=83;
F1=59;
F2=60;
F3=61;
F4=62;
F5=63;
F6=64;
F7=65;
F8=66;
F9=67;
F10=68;
Page_Up = 73;
Page_Down = 81;
_Home = 71;
_End = 79;
Alt_Q = 16;
Alt_W = 17;
Alt_E = 18;
Alt_R = 19;
Alt_T = 20;
Alt_Y = 21;
Alt_U = 22;
Alt_I = 23;
Alt_O = 24;
Alt_P = 25;
Alt_A = 30;
Alt_S = 31;
Alt_D = 32;
Alt_F = 33;
Alt_G = 34;
Alt_H = 35;
Alt_J = 36;
Alt_K = 37;
Alt_L = 38;
Alt_Z = 44;
Alt_X = 45;
Alt_C = 46;
Alt_V = 47;
Alt_B = 48;
Alt_N = 49;
Alt_M = 50;
Gray_Plus = 78;
Gray_Minus = 74;
IMPLEMENTATION
function MKeyPressed:boolean;
begin
asm
mov @Result,0
xor ax,ax
inc ah
int 16h
jz @end
mov @Result,1
@end:
end;
end;
function MReadKey:byte;
begin
asm
mov @Result,0
xor ax,ax
inc ah
int 16h
jz @end
xor ax,ax
int 16h
mov @Result,ah
@end:
end;
end;
function MReadKeyP:byte;
begin
asm
mov @Result,0
xor ax,ax
int 16h
mov @Result,ah
end;
end;
procedure ClBuf;
var
b1:Byte absolute $0040:$001A;
b2:Byte absolute $0040:$001C;
begin
b2:=b1;
end;
end.
{
Esc=1; I=23; Z=44; F7=65;
1=2; O=24; X=45; F8=66;
2=3; P=25; C=46; F9=67;
3=4;
4=5; [=26; V=47; F10=68;
5=6; ]=27; B=48;
6=7; Enter=28; N=49;
7=8; Ctrl=29; M=50; Num_Lock=69;
8=9; A=30; ,=51; Scroll_Lock=70;
9=10; S=31; .=52; Home=71;
0=11; D=32; /=53; Up=72;
-=12; F=33; Правый Shift=54; PgUp=73;
=13; G=34; Print Screen=55; Серый -=74;
Backspace=14; H=35; Alt=56; Left=75;
Tab=15; J=36; Space=57; 5 на цифр. клав.=76;
Q=16; K=37; Caps_Lock=58; Right=77;
W=17; L=38; F1=59; Серый +=78;
E=18; ; =39; F2=60; End=79;
R=19; Апостроф=40; F3=61; Down=80;
T=20; ~=41; F4=62; PgDn=81;
Y=21; Левый Shift=42; F5=63; Ins=82;
U=22; \=43; F6=64; Del=83;
}
Модуль клавиатуры |