![]() |
|
|
![]()
|
|
| xach |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 74 Регистрация: 22.10.2004 Где: СПб Репутация: нет Всего: нет |
Привет Друзья!
Как на счёт звука (пусть даже самого простейшего) на АСМе. Можно ссылочку, но пожалуйста на русском, а то английский слишком утомительным получается. Я имею ввиду чистый код, без всяких DLL и модулей. |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 1 Всего: 454 |
В ДОсе?
Проще уж просто некуда... -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| xach |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 74 Регистрация: 22.10.2004 Где: СПб Репутация: нет Всего: нет |
Я имею ввиду хотя б простую мелодию выдать.
Не обязательно из Спикера... |
|||
|
||||
| oleg1973 |
|
|||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: 2 Всего: 34 |
xach
если не на спикер то значит на звуковуху если на звуковуху то нада знать модель, так как в досе HAL нету и подход персональный к каждой карте кстати в инете куча сорцов о програмировании SB16-32 НО современные SB1024 и позже нихренам не совместимы, сам проверял, и прямому програмирования из доса не поддаются за неимением документации -------------------- SST 465555 icq 200-512-712 |
|||
|
||||
| xach |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 74 Регистрация: 22.10.2004 Где: СПб Репутация: нет Всего: нет |
Раз всё так ужасно... Как на счёт спикера тогда уж... Возможно ли
извлечь из него мелодию, которая бы не раздражала уши? Тогда уж подскажите про спикер (там уж всё просто должно быть (я так думаю))! Именно мелодию, а не beep. |
|||
|
||||
| monax |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 125 Регистрация: 9.6.2005 Репутация: нет Всего: 4 |
Раньше никогда этим не занимался, но стало интересно и вот...
Программа играет (точнее имитирует) "-Чижик Пыжик, где ты был? -На Фонтанке водку пил" Информация о динамике взята отсюда.
Вот как это выглядит на С++
Вся идея довольно проста: зная частоту ноты и её длительность в мелодии, можно сделать некое подобие музыки. Ассемблерный код компилировал 5-м тасмом, с++ - BC 3.1. --------------------
Лаборатория программиста |
||||
|
|||||
| Mayk |
|
|||
![]() ^аВаТаР^ сообщение>> ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2616 Регистрация: 22.5.2005 Где: за границей разум а Репутация: нет Всего: 134 |
В игре Doom2D использовался спикер для воспроизведения голосовых сообщений. Качество, как у плохого телефона, но всё же. Как они это делают?
-------------------- Здесь был кролик. Но его убили. Человеки < кроликов, йа считаю. |
|||
|
||||
| oleg1973 |
|
|||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: 2 Всего: 34 |
ну так никто не запрешает через спикер прогнать wav
толко нада сначала сделать его как бы однобитным имхо тоесть там в порту спикера за звук если не путаю 1 бит только отвечает -------------------- SST 465555 icq 200-512-712 |
|||
|
||||
| xach |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 74 Регистрация: 22.10.2004 Где: СПб Репутация: нет Всего: нет |
Со спикером я воспринял)... т.е. ещё не попробовал, но обязательно сдеалаю это
Вот увидел програмку в 111 байт с 0a000h (это party). Там звук выдаётся (по заверению автора) через 220h порт... Хотя при дизассемблировании я увидел передачу в 226h и в 22ch порты...(если ошибся извините))) Просто скопировал часть кода в Фасм, а звука нет (уверен, что скопировал не то(или не всё) => не пишите, что я не то скопировал))) Лучше помогите разобраться с кодом))).. (под XP не работает(может можно через эмулятор какой-нибудь)) Присоединённый файл ( Кол-во скачиваний: 22 )
Fuzz_snd.com 0,11 Kb |
|||
|
||||
| chyapay |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 6.2.2006 Где: UA, Lviv Репутация: нет Всего: нет |
Чувак, я так понял, ты наше какую-то дребедень про СаундБластер. Я тоже когда-то этим страдал.
это старый хороший стандарт звуковых плат с портами 220h(227h, 22Fh) для восьмибитных и шестнадцатибитных Само собой, эта штука на новых звуковых проконает разве что из-под винды, которая спецыально эмулирует для досовских приложений этот интерфейс. Но и это - при большом везении. И я уверен, что ты правильно скопировал эту хрень, но, к сожалению, играть она будет разве что на старом 386 динозавре с ИСАшной звуковой. В данном случае я могу порекоммендовать только одно : ищи в интернете документацию под свою звуковуху, они обычно в формате ПДФ, типа AC97AudioController-specs.pdf, линков пока никаких дать не могу: сам этим делом страдаю, пока еще нифига не нашел. |
|||
|
||||
| 10110111 |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 28.8.2006 Где: Санкт-Петербург Репутация: 1 Всего: 1 |
Спецификация на AC97 - не проблема:
http://www.intel.com/design/chipsets/audio/ac97r22.pdf В DDK есть даже пример WDM-драйвера. Проблема вот в чем: когда я под DOS пытаюсь читать из пространства I/O Mixer'а, проц зависает; но на этом же компе Windows ME без проблем воспроизводит звук. Я уже думал, может, под DOS AC97 выключен, но отключение APM не дало никакого результата. Может, кто-нибудь знает, почему такое может быть? |
|||
|
||||
| 10110111 |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 28.8.2006 Где: Санкт-Петербург Репутация: 1 Всего: 1 |
Я написал прогу, выводящую WAVы через спикер: по знаку выборки из WAV'а
Вызывается так: <prgname> [[Path\]Filename.wav] Если параметров нет, она их запрашивает. Вот её код(извините, что без комментов - надеюсь, принцип действия очевиден. Если у без них не понятно, скажите - я поясню):
Да, компилил я её с помощью FASM 1.65 Это сообщение отредактировал(а) 10110111 - 11.11.2006, 23:38 |
|||
|
||||
| xach |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 74 Регистрация: 22.10.2004 Где: СПб Репутация: нет Всего: нет |
10110111
волшебная программа! теперь вопросы: - как происходит временная синхронизация? (я в коде узрел rdtsc, подозреваю что с помощью неё, но подробности не помешают!) - какой код отвечает за установку и сброс спикера? (и про инициализацию его тоже оч интересно) заранее мерси! |
|||
|
||||
| SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: нет Всего: 91 |
Помню была у меня такая прога, работала только в досе, а жаль, вот бы юзер обкакался запустив какой-нибудь кейген в винде ;)
|
|||
|
||||
| xach |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 74 Регистрация: 22.10.2004 Где: СПб Репутация: нет Всего: нет |
итак, со спикером я разобрался, а вот с синхронизацией - нет.
очень бы хотелось повесить перезагрузку 2-го таймера на прерывание, а как это сделать гугл не говорит...возможен, конечно следующий вариант: зная период 0-го таймера (18 с чем-то герц (при надобности легко узнать точное значение)) замерить его в тактах процессора (rdtsc) а потом ориентироваться чисто на rdtsc. получается точно, но не элегантно: прога постоянно зациклена и опрашивает tsc. В варианте же с прерыванием точность почти 100%, а затраты процессорного времени - минимальны (такую прогу можно даже резидентной сделать). З.Ы. всё, естественно под чистый dos. |
|||
|
||||
| xach |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 74 Регистрация: 22.10.2004 Где: СПб Репутация: нет Всего: нет |
кстати, таймеров-то 3, а прерывание - одно...тоже не оч понятно...
|
|||
|
||||
![]()
|
| Правила форума "Asm для Windows/DOS" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Asm для Windows/Dos | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |