https://wiki.kolibrios.org/api.php?action=feedcontributions&user=Gotosee&feedformat=atomKolibriOS wiki - User contributions [en]2024-03-28T08:47:18ZUser contributionsMediaWiki 1.35.7https://wiki.kolibrios.org/index.php?title=SysFn55/ru&diff=3316SysFn55/ru2011-07-29T10:43:22Z<p>Gotosee: </p>
<hr />
<div>'''Функция 55 - аудио сервис.'''<br />
<br />
=== Подфункция 0 - загрузить данные для SB16. ===<br />
<br />
''Параметры:''<br />
<br />
* eax = 55 - номер функции<br />
* ebx = 0 - номер подфункции<br />
* ecx = указатель на данные (копируется 64 килобайта, используется столько, сколько установлено подфункцией 2)<br />
<br />
''Возвращаемое значение:''<br />
<br />
* функция не возвращает значения<br />
<br />
''Замечания:''<br />
<br />
* Формат и размер данных устанавливаются подфункцией 2.<br />
<br />
=== Подфункция 1 - начать проигрывать данные на SB16. ===<br />
<br />
''Параметры:''<br />
<br />
* eax = 55 - номер функции<br />
* ebx = 1 - номер подфункции<br />
<br />
''Возвращаемое значение:''<br />
<br />
* функция не возвращает значения<br />
<br />
''Замечания:''<br />
<br />
* Предварительно данные должны быть загружены подфункцией 0 и определён их формат подфункцией 2.<br />
* [http://www.antivirus-reviews.us/ antivirus review]<br />
* Функция возвращает управление, когда началось проигрывание данных; после этого проигрывание идёт независимо от приложения (и вообще не требует загрузки процессора).<br />
* Предварительно должны быть определены базовый порт SB16 (подфункцией 4 функции 21) и канал DMA(подфункцией 10 функции 21).<br />
<br />
=== Подфункция 2 - установить формат данных SB16. ===<br />
<br />
''Параметры:''<br />
<br />
* eax = 55 - номер функции<br />
* ebx = 2 - номер подфункции<br />
* ecx = 0 - установить разрядность<br />
** edx = 1 - 8бит моно<br />
** edx = 2 - 8бит стерео<br />
* ecx = 1 - установить размер данных<br />
** edx = размер в байтах<br />
* ecx = 2 - установить частоту проигрывания<br />
** edx = частота<br />
<br />
''Возвращаемое значение:''<br />
<br />
* функция не возвращает значения<br />
<br />
''Замечания:''<br />
<br />
* При загрузке системы устанавливаются следующие параметры по умолчанию: разрядность - 8 бит моно, размер - 64 Кб, частота 44100 Гц. Тем не менее рекомендуется явно устанавливать необходимые значения, поскольку они могли быть переустановлены какой-нибудь программой.<br />
<br />
=== Подфункция 55 - начать проигрывать данные на встроенном спикере. ===<br />
<br />
''Параметры:''<br />
<br />
* eax = 55 - номер функции<br />
* ebx = 55 - номер подфункции<br />
* esi = указатель на данные<br />
<br />
''Возвращаемое значение:''<br />
<br />
* eax = 0 - успешно<br />
* eax = 55 - ошибка (спикер отключён или занят)<br />
<br />
'''Данные''' - это массив элементов переменной длины.<br />
Формат каждого элемента определяется первым байтом:<br />
<br />
* 0 = конец данных<br />
* 1..0x80 = задаёт длительность звучания в сотых долях секунды ноты, определяемой непосредственным значением частоты<br />
** следующее слово (2 байта) содержит делитель частоты; частота определяется как 1193180/divider<br />
* 0x81 = invalid<br />
* 0x82..0xFF = нота, определяемая октавой и номером:<br />
** длительность в сотых долях секунды = (первый байт)-0x81<br />
** присутствует ещё один байт;<br />
** (второй байт)=0xFF - пауза<br />
** иначе он имеет вид a*0x10+b, где b=номер ноты в октаве от 1 до 12, a=номер октавы (считая с 0)<br />
<br />
''Замечания:''<br />
<br />
* Пищание спикером может быть запрещено/разрешено подфункцией 8 функции 18.<br />
* Функция возвращает управление, сообщив куда следует информацию о запросе. Само проигрывание идёт независимо от программы.<br />
* Данные должны сохраняться в памяти по крайней мере до конца проигрывания.<br />
<br />
{{System_functions}}<br />
[[Category: SysCalls]]</div>Gotosee