Помощь - Поиск - Пользователи - Календарь
Полная версия: Delay
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
[da_smag]
Доброго времени суток. Пришла мне в голову мысль написать прогу-пищалку.
Изначально писал вот так на фри паскале(на турбо тоже самое):
 
uses crt;
begin sound(15000); delay(5000);nosound;end.

В результате чего пищало не 5 сек, а гораздо меньше(меньше 1 сек)
Потом Altair посоветовал использовать код, приведенный в этой теме: Помогите с Delay()
В результате получилась тестовая программа такого типа:

procedure Stop(Wait: word); assembler;
asm
mov ah,86h
mov dx,word ptr Wait
mov cx,word ptr Wait+2
int 15h
end;
begin
writeln('1');
Stop(50000);
writeln('2');
readln;
end.

Задержки перед выводом 2 не было совсем, то есть Stop или вообще не работает, или криво работает вместе с delay'ем
Подскажите, что сделать что бы заработало так, как нужно(что бы были задержки)?
volvo
Я где-то выкладывал вот такой "заменитель" Delay:
procedure my_delay(ms: longint);
var start, finish: longint;
begin
start := MemL[$0040:$006c];
repeat
finish := MemL[$0040:$006c];
until (finish - start) > trunc(ms / 1000 * 18.2);
end;
(для TP, на FPC работать не будет...)
[da_smag]
спасибо, помогло))
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.