SysFn55/ru: Difference between revisions
Jump to navigation
Jump to search
(Created page with ''''Подфункция 55 - начать проигрывать данные на встроенном спикере.''' ''Параметры:'' * eax = 55 - номер фу...') |
mNo edit summary |
||
(12 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
''' | '''Функция 55''' - аудио сервис. | ||
---- | |||
=== Подфункция 55 - начать проигрывать данные на встроенном спикере. === | |||
* eax = 55 - номер функции | Параметры: | ||
* ebx = 55 - номер подфункции | :* eax = 55 - номер функции | ||
* esi = указатель на данные | :* ebx = 55 - номер подфункции | ||
:* esi = указатель на данные | |||
Возвращаемое значение: | |||
:* eax = 0 - успешно | |||
* eax = 0 - успешно | :* eax = 55 - ошибка (спикер отключён или занят) | ||
* eax = 55 - ошибка (спикер отключён или занят) | Данные - это массив элементов переменной длины. | ||
Формат каждого элемента определяется первым байтом: | Формат каждого элемента определяется первым байтом: | ||
:* 0 = конец данных | |||
:* 1..0x80 = задаёт длительность звучания в сотых долях секунды ноты, определяемой непосредственным значением частоты | |||
::* следующее слово (2 байта) содержит делитель частоты; | |||
:::частота определяется как 1193180/divider | |||
:* 0x81 = invalid | |||
:* 0x82..0xFF = нота, определяемая октавой и номером: | |||
::* длительность в сотых долях секунды = (первый байт)-0x81 | |||
::* присутствует ещё один байт; | |||
::* (второй байт)=0xFF - пауза | |||
::* иначе он имеет вид a*0x10+b, где b=номер ноты в октаве от 1 до 12, a=номер октавы (считая с 0) | |||
Замечания: | |||
:* Пищание спикером может быть запрещено/разрешено подфункцией 8 [[SysFn18/ru|функции 18]]. | |||
:* Функция возвращает управление, сообщив куда следует информацию о запросе. Само проигрывание идёт независимо от программы. | |||
:* Данные должны сохраняться в памяти по крайней мере до конца проигрывания. | |||
'''Константы для регистров:''' | |||
::eax - SF_SPEAKER_PLAY (55) | |||
{{System_functions}} | |||
[[Category: SysCalls]] | |||
Latest revision as of 19:07, 17 January 2016
Функция 55 - аудио сервис.
Подфункция 55 - начать проигрывать данные на встроенном спикере.
Параметры:
- eax = 55 - номер функции
- ebx = 55 - номер подфункции
- esi = указатель на данные
Возвращаемое значение:
- eax = 0 - успешно
- eax = 55 - ошибка (спикер отключён или занят)
Данные - это массив элементов переменной длины. Формат каждого элемента определяется первым байтом:
- 0 = конец данных
- 1..0x80 = задаёт длительность звучания в сотых долях секунды ноты, определяемой непосредственным значением частоты
- следующее слово (2 байта) содержит делитель частоты;
- частота определяется как 1193180/divider
- 0x81 = invalid
- 0x82..0xFF = нота, определяемая октавой и номером:
- длительность в сотых долях секунды = (первый байт)-0x81
- присутствует ещё один байт;
- (второй байт)=0xFF - пауза
- иначе он имеет вид a*0x10+b, где b=номер ноты в октаве от 1 до 12, a=номер октавы (считая с 0)
Замечания:
- Пищание спикером может быть запрещено/разрешено подфункцией 8 функции 18.
- Функция возвращает управление, сообщив куда следует информацию о запросе. Само проигрывание идёт независимо от программы.
- Данные должны сохраняться в памяти по крайней мере до конца проигрывания.
Константы для регистров:
- eax - SF_SPEAKER_PLAY (55)
|