ПК-01 ЛЬВОВ

форум о ПК-01,02 "Львов"
Текущее время: 30 сен 2020, 08:31

Forum Games WEB Tape Loader Twitter RSS

Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 58 сообщений ]  На страницу 1 2 3 4 След.
Автор Сообщение
 Заголовок сообщения: Программирование звука
СообщениеДобавлено: 10 ноя 2010, 19:13 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 24 июл 2008, 12:05
Сообщения: 1025
Интересует сабж. В "руководстве" он не описан. Единственный способ, который я, пока, знаю - это вызов подпрограммы (той же, которую использует родной бейсик). Как можно использовать звук попроще?


Вернуться к началу
 Заголовок сообщения:
СообщениеДобавлено: 07 дек 2010, 17:00 
Не в сети

Зарегистрирован: 07 дек 2010, 16:54
Сообщения: 225
Ну, там то как раз просто, один из битов порта С2 выведён на магнитофон (он-же - звук).
Код:
   Назначение бит порта 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

отсюда и проблема... (фича)


Вернуться к началу
 Заголовок сообщения:
СообщениеДобавлено: 08 дек 2010, 13:34 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 24 июл 2008, 12:05
Сообщения: 1025
Спасибо! Еще бы дизассемблер SOUND'а :roll: Хотя, что мешает самому "подглядеть" :)


Вернуться к началу
 Заголовок сообщения:
СообщениеДобавлено: 09 дек 2010, 12:07 
Не в сети

Зарегистрирован: 07 дек 2010, 16:54
Сообщения: 225
да это то как раз не проблема (дизассемблер звука), он там маленький. меня в своё время заинтересовал резонанс встроенного пьезоспикера на одном из значений штатного sound (такой резкий дребезжащий звук, очень сильно отличается от смежных, да и от остальных тонов вообще).
Код:
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 


Вернуться к началу
 Заголовок сообщения:
СообщениеДобавлено: 17 дек 2010, 12:39 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 24 июл 2008, 12:05
Сообщения: 1025
Спасибо! А код из старых "залежей" или "свежедизассемблированный"? :)

upd.
09/02/2012: Ответы вынесены в отдельную тему.


Вернуться к началу
 Заголовок сообщения:
СообщениеДобавлено: 23 дек 2010, 13:32 
Не в сети

Зарегистрирован: 07 дек 2010, 16:54
Сообщения: 225
свежедизассемблированный, т.к. старые залежи карандашом в тетрадке в клеточку...
в таком виде много чего осталось, чего уже не перевести в электронный вид (усилий много надо).

кстати, я видел в сети альтаировский бейсик (тот самый, от билла гейтса и его товарища), со львовским он имеет много общего, когда-то сравнивал.


Вернуться к началу
 Заголовок сообщения:
СообщениеДобавлено: 05 янв 2011, 13:29 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 24 июл 2008, 12:05
Сообщения: 1025
Ну, Altair, если не ошибаюсь, был единственным западным персональным компом на том же проце (i8080), поэтому бейсики и должны быть схожи... Я так думаю... :)

А чем, кстати, дизассемблировали?


Вернуться к началу
 Заголовок сообщения:
СообщениеДобавлено: 05 янв 2011, 18:44 
Не в сети
Аватара пользователя

Зарегистрирован: 11 авг 2008, 17:05
Сообщения: 1405
Откуда: Украина
Ненавязчиво вмешаюсь в разговор. По поводу звука - наиболее изощренный (по меркам "Львова", конечно) саунд был реализован в игре "Star Raiders". И игра, кстати, давала неплохие заделы по играбельности, а по меркам "Львова" почти в шедевры выходила. С генерацией звука стало значительно лучше, после выхода в свет книги "Как написать игру на ассемблере для Zx-Spectrum", где были продемонстрированы кое-какие практические подходы. Но в целом "Львов" был практически нем. Хотя... Со звуком можно припомнить эксперименты разве что в муз.редакторе "Mozart". Однако этот действительно интересный продукт явно требовал доработки, которой, к сожалению, не последовало. А возможность адаптации "Wham! The Music Box" со Спекки Алексей Мамонтов серьезно рассматривать не стал, насколько я помню.

Но мой вопрос не о том. А существуют ли какие-нибудь действительно эффективные кросс-ассемблеры для К580? Знаю, для Z80 наработки присутствуют, но это все-таки другой процессор.


Вернуться к началу
 Заголовок сообщения:
СообщениеДобавлено: 09 янв 2011, 00:26 
Не в сети

Зарегистрирован: 07 дек 2010, 16:54
Сообщения: 225
2 Zelya: IDA конечно, чем же ещё.... (это уже де-факто стандарт)

2 liberation: а вот кросс-ассемблеры для КР580 .... мне в своё время попадались исходники микрософтовского M80/L80 для РС, но навскидку адреса не подскажу.
разве что вот, нагуглил - http://www.msxpro.com/download/m80l80pc.zip - бинарный порт


Вернуться к началу
 Заголовок сообщения:
СообщениеДобавлено: 09 янв 2011, 18:31 
Не в сети
Аватара пользователя

Зарегистрирован: 11 авг 2008, 17:05
Сообщения: 1405
Откуда: Украина
Цитата:
разве что вот, нагуглил - http://www.msxpro.com/download/m80l80pc.zip - бинарный порт
Спасибо! Это - "тот самый слон, тот самый чай". Удобная вещь для разработки, приятно сейчас пересмотреть файл с говорящим названием MANUAL.TXT :)


Вернуться к началу
 Заголовок сообщения: Re: Программирование звука
СообщениеДобавлено: 29 авг 2012, 19:00 
Не в сети

Зарегистрирован: 23 авг 2012, 12:28
Сообщения: 123
Есть такой редактор биперной музыки 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 - Удалил вложение со старой версией.


Последний раз редактировалось ivagor 02 сен 2012, 19:06, всего редактировалось 3 раза.

Вернуться к началу
 Заголовок сообщения: Re: Программирование звука
СообщениеДобавлено: 29 авг 2012, 19:12 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 24 июл 2008, 12:05
Сообщения: 1025
ivagor

Красота-то какая! Вот бы wilderness из golden axe там "покрутить" :roll:


Вернуться к началу
 Заголовок сообщения: Re: Программирование звука
СообщениеДобавлено: 29 авг 2012, 20:19 
Не в сети

Зарегистрирован: 23 авг 2012, 12:28
Сообщения: 123
Цитата:
Красота-то какая!
Да, впечатляет как музыканты даже с использованием простого движка умудряются создавать интересные вещи.

Перезалил архив, добавил еще один (третий) пример.


Вернуться к началу
 Заголовок сообщения: Re: Программирование звука
СообщениеДобавлено: 29 авг 2012, 21:35 
Не в сети

Зарегистрирован: 29 мар 2012, 21:35
Сообщения: 115
Цитата:
2. Для расширения кругозора домогаюсь до спикера слегка не так, как принято на Львове. В emu работает, интересно заработает ли на реале.
Чё бы оно не работало. Вполне документированная для ВВ55 команда.
Цитата:
3. Для (мизерного) ускорения и сокращения программы (а также просто для удовольствия) используется недокументированная команда.
Откроешь секрет? :)


Вернуться к началу
 Заголовок сообщения: Re: Программирование звука
СообщениеДобавлено: 29 авг 2012, 22:19 
Не в сети
Аватара пользователя

Зарегистрирован: 11 авг 2008, 17:05
Сообщения: 1405
Откуда: Украина
Цитата:
2. Для расширения кругозора домогаюсь до спикера слегка не так, как принято на Львове. В emu работает, интересно заработает ли на реале.
Поделитесь секретом, как именно домогаетесь. Возьмем на вооружение!

p.s.
Эх, ребята, где же вы все были в начале 90-х, когда подобные знания действительно были на вес золота? :cry:

_________________
Carthago delenda est, Carthaginem delendam esse


Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 58 сообщений ]  На страницу 1 2 3 4 След.

Forum Games WEB Tape Loader Twitter RSS

Часовой пояс: UTC+03:00


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
cron
Создано на основе phpBB® Forum Software © phpBB Limited
Русская поддержка phpBB