![]() |
|
|
![]()
|
|
| APTEM |
|
|||
|
Unregistered |
Простейшая музыкальная программа. Проблема в том, что при долгом нажатии на клавишу (музыка активируется при нажатии на z,x,c,v,b,n) звук ведет себя очень странно. Кажется переполнение буфера клавиатуры. Как можно решить эту проблему?
uses crt,graph; var ch:char; i,j:integer; ch1: byte; procedure Sound(cc: byte; i:integer;F:single); var k:word; c:byte; begin k:=round(1.193e6/f); port[$43]:=$be; port[$42]:=lo(k); port[$42]:=hi(k); setfillstyle(1,12); bar(i*50,100,(i+1)*50-5,300); c:=port[$61]; port[$61]:=c or 3; repeat until (port[$60]<>cc); port[$61]:=c and (not 3); setfillstyle(1,i); bar(i*50,100,(i+1)*50-5,300); end; begin i:=detect; initgraph(i,j,'d:\tp7');{pri zapisi na disk C:\ zamenit d:\tp7 na c:\tp7} for i:=1 to 7 do begin setfillstyle(1,i); bar(i*50,100,(i+1)*50-5,300); end; repeat ch1:=port[$60]; (* writeln(port[$60]);*) case ch1 of (44):sound(ch1,1,440); (45):sound(ch1,2,460); (46):sound(ch1,3,490); (47):sound(ch1,4,530); (4:sound(ch1,5,590); (49):sound(ch1,6,650); (50):sound(ch1,7,720); end; until ch1=27; closegraph; end. |
|||
|
||||
| Jin X |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 157 Регистрация: 5.3.2004 Репутация: 1 Всего: 1 |
Перед until поставь
--------------------
Бойся своей мечты, ибо она осуществима! |
|||
|
||||
| Lonley |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 597 Регистрация: 7.10.2003 Где: северные ворота М урманск Репутация: нет Всего: 4 |
Можно попробовать очищать буфер клавиатуры полсле вывода звука
ну подумай когда его личшу поставить
Код не мой а из книги В.Ю.Пирогова -------------------- Земную жизнь пройдя до половины, Я очутился в сумрачном лесу, Утратив правый путь во тьме долины. Каков он был, о, как произнесу, Тот дикий лес, дремучий и грозящий, |
|||
|
||||
| APTEM |
|
|||
|
Unregistered |
Jin X
Спасибо, это частично решило проблему... Попробую добить до конца... |
|||
|
||||
| YAA |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 89 Регистрация: 18.7.2004 Где: Russia< Kuzbas s->Kemerovo. Репутация: нет Всего: нет |
Странно в смысле прерывается? Так это же гудок биос!!! Можно или расширить буффер клавы, или перехватить 09h - один из обработчиков клавы (2ой).
|
|||
|
||||
| Uri |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 27.7.2004 Репутация: нет Всего: нет |
Пример _правильного_ чтения символа с клавиатуры:
|
|||
|
||||
![]()
|
| Правила форума "Asm: Общие вопросы" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Asm: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |