program tstkey; {проверка модуля keyboard и клавиатуры} uses keyboard; {наименования клавиш} const ss : array[1..96] of string[3] = (?Esc?,? 1 ?,? 2 ?,? 3 ?,? 4 ?,? 5 ?,? 6 ?,? 7 ?, { 8} ? 8 ?,? 9 ?,? 0 ?,? - ?,? = ?,?Bsk?,?Tab?,? Q ?, {16} ? W ?,? E ?,? R ?,? T ?,? Y ?,? U ?,? I ?,? O ?, {24} ? P ?,? [ ?,? ] ?,?Ent?,?Ctr?,? A ?,? S ?,? D ?, {32} ? F ?,? G ?,? H ?,? J ?,? K ?,? L ?,? ; ?,? ? ?, {40} ? ~ ?,?ShL?,? ?,? Z ?,? X ?,? C ?,? V ?,? B ?, {48} ? N ?,? M ?,? , ?,?pnt?,? / ?,?ShR?,? * ?,?Alt?, {56} ?Spc?,?CpL?,?F1 ?,?F2 ?,?F3 ?,?F4 ?,?F5 ?,?F6 ?, {64} ?F7 ?,?F8 ?,?F9 ?,?F10?,?NmL?,?ScL?,?Hom?,? Up?, {72} ?PUp?,?Gr-?,?Lft?,??5??,?Rgh?,?Gr+?,?End?,?Dwn?, {80} ?PDn?,?Ins?,?Del?,?APS?,?CtR?,?AlR?,?F11?,?F12?, {88} ? ?,? ?,?WlL?,?WlR?,?WA ?,? ?,? ?,? ?);{96} var i,j : integer; scr : array[0..24,0..79,0..1]of char absolute $B800:0;{Экран} s : string; procedure DrawKeys; {отображение нажатых клавиш} begin repeat for j := 0 to 5 do for i := 0 to 15 do if key[i+j*16] then begin scr[1+j*2,1+i*4-1,0] := ss[i+j*16][1]; scr[1+j*2,1+i*4 ,0] := ss[i+j*16][2]; scr[1+j*2,1+i*4+1,0] := ss[i+j*16][3]; end else begin scr[1+j*2,1+i*4-1,0] := ? ?; scr[1+j*2,1+i*4 ,0] := ?.?; scr[1+j*2,1+i*4+1,0] := ? ?; end; until key[1] and key[2]; {выход по ?Esc+1?} end; begin for j := 0 to 24 do for i := 0 to 79 do scr[j,i,0] := ? ?; {очистка экрана} write(? Для завершения программы одновременно?); writeln(? нажмите Esc и 1?); DrawKeys; SetStandardInt; {восстановление стандартного ввода} writeln(?Введите строку?); readln(s); {ввод стандартными средствами} SetMyInt; {снова собственный обработчик} write(? Для завершения программы одновременно?); writeln(? нажмите Esc и 1?); DrawKeys; end.