PC-01 Lviv http://pc01.lviv.ua/forum/ |
|
Программирование звука http://pc01.lviv.ua/forum/viewtopic.php?f=3&t=15 |
Page 1 of 4 |
Author: | Zelya [ 10 Nov 2010, 19:13 ] |
Post subject: | Программирование звука |
Интересует сабж. В "руководстве" он не описан. Единственный способ, который я, пока, знаю - это вызов подпрограммы (той же, которую использует родной бейсик). Как можно использовать звук попроще? |
Author: | sadfsdfsdaf [ 07 Dec 2010, 17:00 ] |
Post subject: | |
Ну, там то как раз просто, один из битов порта С2 выведён на магнитофон (он-же - звук). Code: Назначение бит порта C (C2H ): ┌───┬───┬───┬───┬───┬───┬───┬───┐ │ 7 │ 6 │ 5 │ 4 │ 3 │ 2 │ 1 │ 0 │ └───┴─┬─┴───┴─┬─┴───┴─┬─┴─┬─┴─┬─┘ AC ЧМЛ SC │ ЗМЛ BUSY STROBE └───── VIDEO ГОТОВ ПЕЧАТЬучитывая, что в системном пзу не всегда корректно переключают видеорежимы, в ходе работы периодически издаётся звук разной тональности и щелчки (бейсиковские LOCATE, PAINT и т.д.) там есль по дизассемблятине посмотреть, то будет либо MVI A,2 OUT C2 либо MVI A,FF OUT C2 отсюда и проблема... (фича) |
Author: | Zelya [ 08 Dec 2010, 13:34 ] |
Post subject: | |
Спасибо! Еще бы дизассемблер SOUND'а Хотя, что мешает самому "подглядеть" |
Author: | sadfsdfsdaf [ 09 Dec 2010, 12:07 ] |
Post subject: | |
да это то как раз не проблема (дизассемблер звука), он там маленький. меня в своё время заинтересовал резонанс встроенного пьезоспикера на одном из значений штатного sound (такой резкий дребезжащий звук, очень сильно отличается от смежных, да и от остальных тонов вообще). Code: DE94 DE94 ; ███████████████ S U B R O U T I N E ███████████████████████████████████████ DE94 DE94 ; Выдача звука. DE94 ; DE94 ; параметры: DE94 ; 1) в L "частота" (длительность полуволны) DE94 ; 2) в D длительность звукового сигнала DE94 ; DE94 ; кодирование условное, т.к. частота DE94 ; задаётся в формате 0x00??, а длительность в 0x??FF DE94 ; соответственно количество полупериодов в заданной DE94 ; длительности это отношение одного к другому или: DE94 ; 256 * (T + 1) - 1 - F DE94 ; где T время, а F условная "частота" DE94 DE94 SOUND: ; CODE XREF: seg000:F81Ej DE94 mvi h, 0 DE96 mvi e, 0FFh DE98 DE98 pause_cycle: ; CODE XREF: SOUND+28j DE98 mov b, h ; bc = hl DE99 mov c, l ; т.е. это, фактически, DE99 ; частота (длительность полупериода) DE9A mvi a, 0FFh ; 1 ===> SPEAKER DE9C out 0C2h DE9E DE9E pause_tick1: ; CODE XREF: SOUND+13j DE9E dcx d ; do { DE9F mov a, d ; if (--de == 0) exit; DEA0 ora e DEA1 rz DEA2 nop DEA3 nop DEA4 dcx b ; } while (--bc); DEA5 mov a, b DEA6 ora c DEA7 jnz pause_tick1 ; do { DEAA mvi a, 0FEh ; 0 ===> SPEAKER DEAC out 0C2h DEAE mov b, h ; bc = hl DEAF mov c, l ; т.е. это, фактически, DEAF ; частота (длительность полупериода) DEB0 DEB0 pause_tick2: ; CODE XREF: SOUND+25j DEB0 dcx d ; do { DEB1 mov a, d ; if (--de == 0) exit; DEB2 ora e DEB3 rz DEB4 nop DEB5 nop DEB6 dcx b ; } while (--bc); DEB7 mov a, b DEB8 ora c DEB9 jnz pause_tick2 ; do { DEBC jmp pause_cycle ; bc = hl DEBC ; End of function SOUND DEBC |
Author: | Zelya [ 17 Dec 2010, 12:39 ] |
Post subject: | |
Спасибо! А код из старых "залежей" или "свежедизассемблированный"? upd. 09/02/2012: Ответы вынесены в отдельную тему. |
Author: | sadfsdfsdaf [ 23 Dec 2010, 13:32 ] |
Post subject: | |
свежедизассемблированный, т.к. старые залежи карандашом в тетрадке в клеточку... в таком виде много чего осталось, чего уже не перевести в электронный вид (усилий много надо). кстати, я видел в сети альтаировский бейсик (тот самый, от билла гейтса и его товарища), со львовским он имеет много общего, когда-то сравнивал. |
Author: | Zelya [ 05 Jan 2011, 13:29 ] |
Post subject: | |
Ну, Altair, если не ошибаюсь, был единственным западным персональным компом на том же проце (i8080), поэтому бейсики и должны быть схожи... Я так думаю... А чем, кстати, дизассемблировали? |
Author: | liberation [ 05 Jan 2011, 18:44 ] |
Post subject: | |
Ненавязчиво вмешаюсь в разговор. По поводу звука - наиболее изощренный (по меркам "Львова", конечно) саунд был реализован в игре "Star Raiders". И игра, кстати, давала неплохие заделы по играбельности, а по меркам "Львова" почти в шедевры выходила. С генерацией звука стало значительно лучше, после выхода в свет книги "Как написать игру на ассемблере для Zx-Spectrum", где были продемонстрированы кое-какие практические подходы. Но в целом "Львов" был практически нем. Хотя... Со звуком можно припомнить эксперименты разве что в муз.редакторе "Mozart". Однако этот действительно интересный продукт явно требовал доработки, которой, к сожалению, не последовало. А возможность адаптации "Wham! The Music Box" со Спекки Алексей Мамонтов серьезно рассматривать не стал, насколько я помню. Но мой вопрос не о том. А существуют ли какие-нибудь действительно эффективные кросс-ассемблеры для К580? Знаю, для Z80 наработки присутствуют, но это все-таки другой процессор. |
Author: | sadfsdfsdaf [ 09 Jan 2011, 00:26 ] |
Post subject: | |
2 Zelya: IDA конечно, чем же ещё.... (это уже де-факто стандарт) 2 liberation: а вот кросс-ассемблеры для КР580 .... мне в своё время попадались исходники микрософтовского M80/L80 для РС, но навскидку адреса не подскажу. разве что вот, нагуглил - http://www.msxpro.com/download/m80l80pc.zip - бинарный порт |
Author: | liberation [ 09 Jan 2011, 18:31 ] |
Post subject: | |
Quote: разве что вот, нагуглил - http://www.msxpro.com/download/m80l80pc.zip - бинарный порт
Спасибо! Это - "тот самый слон, тот самый чай". Удобная вещь для разработки, приятно сейчас пересмотреть файл с говорящим названием MANUAL.TXT
|
Author: | ivagor [ 29 Aug 2012, 19:00 ] |
Post subject: | Re: Программирование звука |
Есть такой редактор биперной музыки http://freestuff.grok.co.uk/beepola/help/intro.html Он поддерживает несколько движков, в т.ч. парочку простых http://freestuff.grok.co.uk/beepola/hel ... e-msd.html и http://freestuff.grok.co.uk/beepola/hel ... e-tmb.html. Первый из них (потому что он не так страшно фальшивит при изменении задержек и т.п.) я кое-как адаптировал на 580ВМ80. Приложил пару примеров из комплекта Beepola. Сам я тоже слегка пощупал этот редактор - мне он понравился (набрал в нем детскую песенку). В общем можно писать несложную музычку на Львов ПК-01 в кроссредакторе. Комментарии по плееру. 1. Он еще нуждается в ускорении. Пока что тон пониже, чем нужно и темп я немного почитил. 2. Для расширения кругозора домогаюсь до спикера слегка не так, как принято на Львове. В emu работает, интересно заработает ли на реале. 3. Для (мизерного) ускорения и сокращения программы (а также просто для удовольствия) используется недокументированная команда. 02.09.2012 - Удалил вложение со старой версией. |
Author: | Zelya [ 29 Aug 2012, 19:12 ] |
Post subject: | Re: Программирование звука |
ivagor Красота-то какая! Вот бы wilderness из golden axe там "покрутить" |
Author: | ivagor [ 29 Aug 2012, 20:19 ] |
Post subject: | Re: Программирование звука |
Quote: Красота-то какая!
Да, впечатляет как музыканты даже с использованием простого движка умудряются создавать интересные вещи.Перезалил архив, добавил еще один (третий) пример. |
Author: | b2m [ 29 Aug 2012, 21:35 ] |
Post subject: | Re: Программирование звука |
Quote: 2. Для расширения кругозора домогаюсь до спикера слегка не так, как принято на Львове. В emu работает, интересно заработает ли на реале.
Чё бы оно не работало. Вполне документированная для ВВ55 команда.Quote: 3. Для (мизерного) ускорения и сокращения программы (а также просто для удовольствия) используется недокументированная команда.
Откроешь секрет?
|
Author: | liberation [ 29 Aug 2012, 22:19 ] |
Post subject: | Re: Программирование звука |
Quote: 2. Для расширения кругозора домогаюсь до спикера слегка не так, как принято на Львове. В emu работает, интересно заработает ли на реале.
Поделитесь секретом, как именно домогаетесь. Возьмем на вооружение!p.s. Эх, ребята, где же вы все были в начале 90-х, когда подобные знания действительно были на вес золота? |
Page 1 of 4 | All times are UTC+03:00 |
Powered by phpBB® Forum Software © phpBB Limited https://www.phpbb.com/ |