IPB
ЛогинПароль:

> Правила раздела!

1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!

> Буфер клавиатуры
сообщение
Сообщение #1


Гуру
*****

Группа: Пользователи
Сообщений: 1 117
Пол: Мужской
Реальное имя: Богдан

Репутация: -  11  +


Решил даром не флудить.
Что представляет с себя буфер клавиатуры? Где он хранится и каковой его размер?
И как вот этот код
Цитата

while keypressed do readkey;


или


repeat
readkey
until not keypressed;


его очищает?


--------------------
Лао-Цзы :
Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


N337
****

Группа: Пользователи
Сообщений: 737
Пол: Мужской

Репутация: -  26  +


Разбирайся wink.gif
program Code;

uses
Crt;

var
KStart: Word absolute $40:$1A;
{ адрес начала (откуда считывается) очереди данных клавиатуры }
KEnd: Word absolute $40:$1C;
{ адрес конца (куда записывается) очереди данных клавиатуры }
KBuf: array[0..15] of Word absolute $40:$1E;
{ собственно, буфер - 16 записей по 2 байта (ASCII-, Scan-код) }

{ - если очередь пуста, то KStart = KEnd }
{ - если очередь переполнена, то KEnd указывает на запись перед KStart }

var
i, is, ie: Integer;

begin
ClrScr;
repeat
is := (KStart - Ofs(KBuf)) shr 1;
ie := (KEnd - Ofs(KBuf)) shr 1;
GotoXY(1, 1);
Writeln('ASCII':14, ' Scan');
Writeln;
for i := 0 to 15 do
begin
if i = ie then
Write('KEnd -> ')
else if i = is then
Write('KStart ->')
else
Write(' ');
Writeln(Lo(KBuf[i]):4, Hi(KBuf[i]):4);
end;
until Lo(KBuf[(ie - 1) and $F]) = 27;
end.


--------------------
The idiots are winning.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 20.04.2024 11:31
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name