PC-01 Lviv

It is currently 28 Mar 2024, 20:16

Forum Games WEB Tape Loader Twitter RSS

All times are UTC+03:00




Post new topic  Reply to topic  [ 58 posts ]  Go to page 1 2 3 4 Next
Author Message
PostPosted: 10 Nov 2010, 19:13 
Offline
Site Admin
User avatar

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


Top
   
 Post subject:
PostPosted: 07 Dec 2010, 17:00 
Offline

Joined: 07 Dec 2010, 16:54
Posts: 227
Ну, там то как раз просто, один из битов порта С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

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


Top
   
 Post subject:
PostPosted: 08 Dec 2010, 13:34 
Offline
Site Admin
User avatar

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


Top
   
 Post subject:
PostPosted: 09 Dec 2010, 12:07 
Offline

Joined: 07 Dec 2010, 16:54
Posts: 227
да это то как раз не проблема (дизассемблер звука), он там маленький. меня в своё время заинтересовал резонанс встроенного пьезоспикера на одном из значений штатного 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 


Top
   
 Post subject:
PostPosted: 17 Dec 2010, 12:39 
Offline
Site Admin
User avatar

Joined: 24 Jul 2008, 12:05
Posts: 1070
Спасибо! А код из старых "залежей" или "свежедизассемблированный"? :)

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


Top
   
 Post subject:
PostPosted: 23 Dec 2010, 13:32 
Offline

Joined: 07 Dec 2010, 16:54
Posts: 227
свежедизассемблированный, т.к. старые залежи карандашом в тетрадке в клеточку...
в таком виде много чего осталось, чего уже не перевести в электронный вид (усилий много надо).

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


Top
   
 Post subject:
PostPosted: 05 Jan 2011, 13:29 
Offline
Site Admin
User avatar

Joined: 24 Jul 2008, 12:05
Posts: 1070
Ну, Altair, если не ошибаюсь, был единственным западным персональным компом на том же проце (i8080), поэтому бейсики и должны быть схожи... Я так думаю... :)

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


Top
   
 Post subject:
PostPosted: 05 Jan 2011, 18:44 
Offline
User avatar

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

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


Top
   
 Post subject:
PostPosted: 09 Jan 2011, 00:26 
Offline

Joined: 07 Dec 2010, 16:54
Posts: 227
2 Zelya: IDA конечно, чем же ещё.... (это уже де-факто стандарт)

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


Top
   
 Post subject:
PostPosted: 09 Jan 2011, 18:31 
Offline
User avatar

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


Top
   
PostPosted: 29 Aug 2012, 19:00 
Offline

Joined: 23 Aug 2012, 12:28
Posts: 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 - Удалил вложение со старой версией.


Last edited by ivagor on 02 Sep 2012, 19:06, edited 3 times in total.

Top
   
PostPosted: 29 Aug 2012, 19:12 
Offline
Site Admin
User avatar

Joined: 24 Jul 2008, 12:05
Posts: 1070
ivagor

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


Top
   
PostPosted: 29 Aug 2012, 20:19 
Offline

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

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


Top
   
PostPosted: 29 Aug 2012, 21:35 
Offline

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


Top
   
PostPosted: 29 Aug 2012, 22:19 
Offline
User avatar

Joined: 11 Aug 2008, 17:05
Posts: 1405
Location: Украина
Quote:
2. Для расширения кругозора домогаюсь до спикера слегка не так, как принято на Львове. В emu работает, интересно заработает ли на реале.
Поделитесь секретом, как именно домогаетесь. Возьмем на вооружение!

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

_________________
Carthago delenda est, Carthaginem delendam esse


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 58 posts ]  Go to page 1 2 3 4 Next

Forum Games WEB Tape Loader Twitter RSS

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 2 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
cron
Powered by phpBB® Forum Software © phpBB Limited