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

 
 Ответить  Открыть новую тему 
> Помогите написать бильярд
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 6
Пол: Мужской
Реальное имя: Alexander Rodin

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


Пишу бильярд.
Нужно узнавать, сколько времени была нажита клавиша (пробел).

Помогите, а то я не знаю, как перехватывать прерывания.
(В архиве ничего толком не нашел mad.gif )
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Я ж дал тебе ссылку! Ты там читал? Что "толком" тебе надо? Готовый код? А вопрос ты где разместил? В Теоретических? Сам виноват...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гость






Цитата(Nezhny_Vampir @ 10.02.2006 19:39) *
Нужно узнавать, сколько времени была нажита клавиша (пробел)...
а то я не знаю, как перехватывать прерывания.

Вот так:
uses dos, crt;
var
lastscan, scan: byte;
old_09h: pointer;

space_pressed, space_released: boolean;

{$f+}
procedure new_int_09h; interrupt;
begin
scan := port[$60];
inline($ff/ $1e/ >old_09h);
end;
{$f-}

function GetTime: LongInt;
Var h, m, s, ms: Word;
begin
Dos.GetTime(h, m, s, ms);
GetTime := longint(ms) + 100 * (s + 60 * (m + 60 * h));
end;

var
T, T2: longint;

begin
getintvec($09, old_09h);
setintvec($09, @new_int_09h);

space_pressed := false;
space_released := false;

scan := 128;
writeln('press ESC to exit...');

repeat
if not space_pressed then
repeat until scan < 128;

if scan = $39 then begin
T := gettime;
repeat until scan > 128;
T2 := gettime;
writeln('time = ', (T2 - T):15);
end;

while keypressed do readkey;

lastscan := scan; scan := 128;
until lastscan = 1;

setintvec($09, old_09h);
end.

Жмешь пробел, держишь его... Потом отпускаешь, и смотришь, сколько он был нажат. Для выхода - Escape...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4





Группа: Пользователи
Сообщений: 6
Пол: Мужской
Реальное имя: Alexander Rodin

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


СПАСИБО!!!
smile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 





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