Модуль клавиатуры
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;

}