Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Система";
Текущий архив: 2002.03.11;
Скачать: [xml.tar.bz2];

Вниз

Speaker   Найти похожие ветки 

 
wHammer   (2001-11-30 13:05) [0]

Можно ли с ним работать из под Windows?


 
AlexKniga   (2001-11-30 13:13) [1]

Да. Добывай исходники CRT.


 
wHammer   (2001-11-30 13:20) [2]

Имеется ввиду исходники модуля CRT в Turbo Pascal?


 
Dimka Maslov   (2001-11-30 15:27) [3]

procedure Sound(Frequency, Duration: Integer);
asm
cmp Win32Platform, VER_PLATFORM_WIN32_NT
jne @@9X
push edx
push eax
call Windows.Beep
ret
@@9X:
push ebx
push edx
mov bx, ax
mov ax, 34DDh
mov dx, 0012h
cmp dx, bx
jnc @@2
div bx
mov bx, ax
in al, 61h
test al, 3
jnz @@1
or al, 3
out 61h, al
mov al, 0B6h
out 43h, al
@@1:
mov al, bl
out 42h, al
mov al, bh
out 42h, al
call Windows.Sleep
in al, 61h
and al, 0FCh
out 61h, al
@@2:
pop ebx
end;


 
wHammer   (2001-11-30 15:53) [4]

to Dimka Maslov ©
Огромнейшее спасибо, сейчас начну клепать DLL с этой функцией.


 
Dimka Maslov   (2001-11-30 16:20) [5]

>wHammer
DLL для этой функции не нужен, он будет только мешать, поскольку в Dll желательно указывать формат вызова stdcall, а эта функция работает только при формате вызова register, по-этому просто вставь её в основную программу.


 
wHammer   (2001-12-03 08:52) [6]

to Dimka Maslov ©
Да нет, дело в том что я в данный момент работаю с 1С: Предприятие, а там мне необходимо было подкорректировать процесс передачи сообщений меж пользователями. Программы на Delphi здесь были не актуальны. Были некоторые глюки, исправил, но загорелся снабдить полученное сообщение звуковыми сигналами, чтобы бухгалтер, экономист и т.п. при получении системного сообщения на закрытие 1С получали звуковой сигнал, и в установленное время (1 минута) корректно завершили свою работу и выходили из программы. Но DLL уже создал, подключил как внешнюю компоненту (терминология 1С), всё работает, поэтому еще раз БОЛЬШОЕ СПАСИБО!


 
wHammer   (2001-12-03 16:23) [7]

Да, может кто-нибудь еще поможет и подкинет какую простую мелодию на спикере (частоты и длительность), как на мобильниках например.


 
Adder   (2001-12-03 17:00) [8]

hm=66;
//частоты
hzm:array[1..hm] of word=(
82,82,78,82,
87,82,73,65,
62,65,62,55,
110,104,110,124,
110,104,110,124,0,
131,124,110,104,
124,110,110,98,
93,82,98,87,
82,98,87,82,
73,65,62,55,
55,0,
131,124,110,104,
124,110,110,98,
87,82,98,87,
82,98,87,82,
73,0,
65,62,55,55,0
);
//длительности
dtm:array[1..hm] of word=(
240,240,250,250,
250,750,250,250,
250,250,250,750,
500,250,250,250,
250,250,250,750,250,
250,250,250,250,
250,750,250,250,
250,250,250,750,
500,250,250,250,
250,250,250,250,
500,250,
250,250,250,250,
250,750,250,250,
250,250,250,750,
500,250,250,250,
250,10,
250,250,250,500,250
);


 
Wizard_Ex   (2001-12-04 08:12) [9]

Только под NT ассемблер не пойдет
Так что будьте осторожны, грабли где-то рядом


 
wHammer   (2001-12-04 09:26) [10]

На Win2000 работает, только частоты не совпадают, да выдает ошибку после сигнала "Privileged Instruction".


 
wHammer   (2001-12-04 09:44) [11]

Исправил в dll формат вызова register, какие-либо ошибки пропали, под NTServer также протестировал - работает.


 
wHammer   (2001-12-04 09:48) [12]

to Adder ©
Спасибо за мелодию, может быть есть еще какие-нибудь.


 
Adder   (2001-12-04 14:37) [13]

h=88;
hz:array[1..h] of word=(294,262,233,233,262,233,175,147,156,
156,196,175,147,175,233,262,294,294,294,262,233,262,
294,262,262,294,262,233,233,262,233,175,147,156,
175,196,175,147,175,233,262,294,349,349,294,233,262,
294,262,233,294,349,294,349,349,
294,349,294,349,311,392,311,392,392,
311,392,311,392,466,466,349,349,
294,294,262,233,262,294,349,392,
349,294,233,262,294,262,233,0);
dt:array[1..h] of word=(125,125,250,125,125,125,125,125,125,
125,125,125,125,250,125,125,250,250,125,125,125,125,
250,250,250,125,125,250,125,125,125,125,125,125,
125,125,125,125,250,125,125,250,250,125,125,125,125,
250,250,500,125,250,125,250,250,
125,250,125,500,125,250,125,250,250,
125,250,125,500,250,250,250,250,
250,250,250,125,125,125,250,125,
125,125,125,125,250,250,250,250);


 
Harlan   (2001-12-06 08:45) [14]

Помнится, когда-то видел функцию расчёта частоты по номеру ноты. Может кто-нибудь её знает? Киньте, пожалуйста.
Ля 1 октавы - 440Гц
Ля 2 октавы - 880Гц
Ля 3 октавы - 1760Гц
А вот как остальные ноты в октаве вычислить?


 
Digitman   (2001-12-06 09:38) [15]

Звуковые частоты в полутоновом интервале равномерно темперированного строя находятся в отношении "корень двенадцатой степени из двух", интервалов в октаве - 12 . Вот и вся "формула". Отсюда и "пляши".


 
Dimka Maslov   (2001-12-06 11:23) [16]

Функция, приведённая выше иногда вызывала Ассess Violation, из-за непрвильной работы со стеком. Здесь этот дефект исправлен.

procedure Sound(Frequency, Duration: Integer);
asm
cmp Win32Platform, VER_PLATFORM_WIN32_NT
jne @@9X
push edx
push eax
call Windows.Beep
ret
@@9X:
push ebx
push edx
mov bx, ax
mov ax, 34DDh
mov dx, 0012h
cmp dx, bx
jnc @@2
div bx
mov bx, ax
in al, 61h
test al, 3
jnz @@1
or al, 3
out 61h, al
mov al, 0B6h
out 43h, al
@@1:
mov al, bl
out 42h, al
mov al, bh
out 42h, al
call Windows.Sleep
in al, 61h
and al, 0FCh
out 61h, al
jmp @@3
@@2:
pop edx
@@3:
pop ebx
end;


 
wHammer   (2001-12-07 08:44) [17]

to Dimka Maslov ©
Спасибо еще раз!



Страницы: 1 вся ветка

Форум: "Система";
Текущий архив: 2002.03.11;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.004 c
7-32591
Dmitry V. Averuanov
2001-09-24 14:22
2002.03.11
Как выключить компьютер по Windows 2000


14-32569
ev
2002-01-26 14:11
2002.03.11
Операционная система


3-32413
Vadim
2002-02-11 12:03
2002.03.11
Обновление поля PATH в иерархической таблице


7-32595
Bob5
2001-12-04 07:52
2002.03.11
Помогите пожалуйста!


1-32459
b00ts0
2002-02-22 23:01
2002.03.11
ламерский вопрос относительно чата для локальной сети





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский