forum speccy.pl

ZX Spectrum => MUZYKA => Wątek zaczęty przez: Gelip w 2013.06.04, 17:01:19

Tytuł: Timer КР580ВИ53 jako generator dźwięku
Wiadomość wysłana przez: Gelip w 2013.06.04, 17:01:19
Czy komuś mówi coś nagłówek MESCA a raczej stopka umieszczona w kodzie programu dla systemu CP/M? Chcę wyciąć dane muzyczne z pewnego programu WW.COM (w załączniku). Muzyka odgrywana jest na 3-kanałowym syntezatorze dźwięku КР580ВИ53 (Intel 8253). Pewności co do danych muzycznych nie ma ale na 90% są to właśnie dane muzyczne :-). Temat poruszyłem również tutaj. (http://zx-pk.ru/showpost.php?p=606963&postcount=10)

Chcę uzyskać coś takiego (http://zxbyte.ru/video/ww.flv) na komputerze "Bajt" który jest zgodny sprzętowo z "Bajt-01" jeśli chodzi o rozdzielczość ekranu i chip VI53 (również porty I/O). Obrazek już rozszyfrowałem :-), został mi tylko dźwięk.
Tytuł: Odp: Timer КР580ВИ53 jako generator dźwięku
Wiadomość wysłana przez: pear w 2013.06.04, 17:38:17
Intel 8253 to nie syntezator tylko programowalny 3-kanałowy timer.
Do generowania muzyki dość oryginalne zastosowanie, bo możliwości ma takie jak 3-kanałowy beeper :)

Może to jednak jakiś inny układ, bo opis rejestrów się nie zgadza. Inna możliwość, to albo jest błąd rosyjskiej wikipedii, albo rosyjska wersja 8253 jest zupełnie niekompatybilna na poziomie rejestrów.
Tytuł: Odp: Timer КР580ВИ53 jako generator dźwięku
Wiadomość wysłana przez: pear w 2013.06.04, 17:52:57
Dobra, doczytałem.
Rzeczywiście w Bajcie układ 8253 jest wykorzystany jako generator dźwięku. Nadal podtrzymuję, że to oryginalne zastosowanie.

W takim razie te czwórki wartości mogą być wartościami czasów dla tych 3 timerów (zwłaszcza, że czwarta wartość w czwórce to 0).
Częstotliwość zapisu do rejestrów wynika zapewne z pętli w programie (?)
Tytuł: Odp: Timer КР580ВИ53 jako generator dźwięku
Wiadomość wysłana przez: Gelip w 2013.06.04, 18:07:03
W takim razie te czwórki wartości mogą być wartościami czasów dla tych 3 timerów (zwłaszcza, że czwarta wartość w czwórce to 0).
Częstotliwość zapisu do rejestrów wynika zapewne z pętli w programie (?)
Mógłbyś to rozwinąć bo mi wyszło iż trzecia wartość to określenie nuty w oktawie choć wartości na tej pozycji nie zgadzają się z wartościami z tabeli w tej (http://zxbyte.ru/doc/3way_byte.zip) instrukcji. Jakby te dane można było użyć w kodzie maszynowym w BASIC'u i uruchomić player przez RANDOMIZE USR tylko właśnie skąd wziąć player :-)
Może ktoś zna się na IDA i disassemblacji. Jak coś to w tym (http://zx-pk.ru/showthread.php?t=21405) temacie jest baza danych IDA (idb) i wydobyty kod assemblera programu WW.COM.
Tytuł: Odp: Timer КР580ВИ53 jako generator dźwięku
Wiadomość wysłana przez: pear w 2013.06.04, 18:34:08
Przeglądam kod. Na razie znalazłem taki kawałek:
; =============== S U B R O U T I N E =======================================


sub_80C: ; CODE XREF: sub_218+15Cp sub_218+162p ...
ld a, 36h ; '6'    ; wybór timera 0 w rejestrze sterującym
out (0EEh), a
ld c, 8Eh ; 'Ž'    ; ustawienie adresu portu rejestru timera 0
out (c), l             ; wysłanie do rejestru timera 0 wartości z L
out (c), h            ; i zaraz potem z H - dwa kolejne zapisy ładują 16-bitową wartość do licznika
ld hl, 150h       ; ustawienie licznika pętli

loc_819: ; CODE XREF: sub_80C:loc_819j
; sub_80C+12j
djnz $
dec hl
ld a, h
or l
jp nz, loc_819  ; i sama pętla opóźniająca
ld a, 3Ah ; ':'    ; zatrzymanie timera 0
out (0EEh), a
ret
; End of function sub_80C

Odwołanie do portu 0xEE jest jeszcze tylko w jednym miejscu i wygląda na generowanie stałego tonu.
Wychodzi na to, ze wykorzystany jest tylko jeden kanał, bo nie znalazłem żadnych innych odwołań poza tą jedną procedurą.
Z całej czwórki bajtów użyteczne zostają więc 2 środkowe (czasy dla liczników), nadające właściwe tony dla generatora fali prostokątnej.

Nie znalazłem też żadnej pętli, która z użyciem tej procedury odgrywałaby coś z pamięci.
Tytuł: Odp: Timer КР580ВИ53 jako generator dźwięku
Wiadomość wysłana przez: Gelip w 2013.06.04, 18:48:17
Widzę, że dobry jesteś w te klocki z kodem :-). Faktycznie port #EE to port I/O timera którego używa "Bajt"
Cytuj
Wychodzi na to, ze wykorzystany jest tylko jeden kanał, bo nie znalazłem żadnych innych odwołań poza tą jedną procedurą.
Jeśli możliwe jest aby kilka dźwięków (nut) brzmiało jednocześnie przy użyciu tylko jednego kanału to pewnie masz rację. Jeśli wsłuchać się w demo to raczej kilka dźwięków brzmi jednocześnie :-) - tak sądzę.
Tytuł: Odp: Timer КР580ВИ53 jako generator dźwięku
Wiadomość wysłana przez: pear w 2013.06.04, 18:54:37
Widzę, że dobry jesteś w te klocki z kodem :-). Faktycznie port #EE to port I/O timera którego używa "Bajt"
Jeśli możliwe jest aby kilka dźwięków (nut) brzmiało jednocześnie przy użyciu tylko jednego kanału to pewnie masz rację. Jeśli wsłuchać się w demo to raczej kilka dźwięków brzmi jednocześnie :-) - tak sądzę.
Jeszcze całkiem nie zardzewiałem ;)

Jest możliwe uzyskanie złudzenia kilku dźwięków jednocześnie na jednym kanale.
Przynajmniej na zwykłym beeperze z ZX się da, to tym bardziej na sprzętowym powinno się dać taki efekt uzyskać, ale na muzyce to ja się nie znam :)

Nie wiem jak dokładnie jest zbudowany Bajt. Dźwięk jest generowany tylko przez układ 8253, czy jest oprócz tego odpowiednik jednobitowego beepera ?
Tytuł: Odp: Timer КР580ВИ53 jako generator dźwięku
Wiadomość wysłana przez: Gelip w 2013.06.04, 19:04:18
Nie znalazłem też żadnej pętli, która z użyciem tej procedury odgrywałaby coś z pamięci.
Chcesz powiedzieć iż procedura ta nie odczytuje danych np. tych niby muzycznych z offsetu 1FB5 ?
Nie wiem jak dokładnie jest zbudowany Bajt. Dźwięk jest generowany tylko przez układ 8253, czy jest oprócz tego odpowiednik jednobitowego beepera ?
W komputerach "Bajt" i "Bajt-01" jest też oczywiście odpowiednik BEEP'era ZX Spectrum.
Tytuł: Odp: Timer КР580ВИ53 jako generator dźwięku
Wiadomość wysłana przez: pear w 2013.06.04, 19:20:35
Chcesz powiedzieć iż procedura ta nie odczytuje danych np. tych niby muzycznych z offsetu 1FB5 ?
Z tego co przeszukałem w dostępnym zdebugowanym źródle, to niestety nie ma nic co by czytało serię danych z pamięci i posyłało na 8253.

W komputerach "Bajt" i "Bajt-01" jest też oczywiście odpowiednik BEEP'era ZX Spectrum.
Sprzętowo może być generowany jeden dźwięk, a na beeperze (na przerwaniach) drugi ?
Tytuł: Odp: Timer КР580ВИ53 jako generator dźwięku
Wiadomość wysłana przez: Gelip w 2013.06.06, 13:05:29
Przyjrzałem się jeszcze raz, dokładniej danym w offsecie 1FB5. Okazuje się, wartość na 4 pozycji też jest ważna i inna - nie tylko 00 jak wstępnie podałem. Wartość ta jest stała dla kilku kolejnych danych.
Chip 8253 jest używany w "Bajcie" w trybie 3 (Mode 3 - Square Wave Generator)
Teraz zapoznaje się z tym (http://www.sharpmz.org/mz-700/8253ovview.htm) i faktycznie dobrze wyłuskałeś kod z assemblera. W linku w sekcji Mode 3 Square Wave Generator jest instrukcja assemblera podobna do tej:
ld a, 36h ; '6'    ; wybór timera 0 w rejestrze sterującym
Komputer Sharp MZ-700 z CPU Z80 również używa chipu 8253 jako generator dźwięku w trybie 3. Na stronie www.sharpmz.org (http://www.sharpmz.org) w sekcji MZ-700 jest bardzo dokładnie opisane jak generuje dźwięk :-) co może być pomocne w zrozumieniu działania chipu również odnośnie "Bajta" ;-)
Tytuł: Odp: Timer КР580ВИ53 jako generator dźwięku
Wiadomość wysłana przez: pear w 2013.06.06, 17:46:59
Różnica między Sharpem a Bajtem jest według tego opisu z linku tylko taka, że układ 8253 jest aktywowany innym sygnałem sterującym procesora.
W Sharp MZ-700 wygląda, że jest to MREQ i wtedy rejestry timera są w obszarze pamięci, a odwołania są poprzez instrukcje LD.
W Bajt odpowiednio będzie to sygnał IORQ i rejestry timera dostępne są przez instrukcje OUT/IN.
Tytuł: Odp: Timer КР580ВИ53 jako generator dźwięku
Wiadomość wysłana przez: Gelip w 2013.06.06, 18:14:37
Żebym wiedział jak zinterpretować te dane to bym sobie nawet ręcznie przerobił tę muzyczkę w BASIC'u za pomocą komend OUT ;-)
Tytuł: Odp: Timer КР580ВИ53 jako generator dźwięku
Wiadomość wysłana przez: pear w 2013.06.06, 18:44:02
Te dane - jeśli rzeczywiście jest to zapis zawierający muzykę - można spróbować zinterpretować, ale do tego potrzebny byłby schemat Bajta.
Jeśli te dane dotyczą muzyki, to są to wartości dzielników częstotliwości dla timera 0. Żeby wiedzieć jaka będzie wynikowa częstotliwość (ton) trzeba wiedzieć co jest przypięte do wejścia CLK timera 0 (sygnał zegarowy o jakiej częstotliwości ?).
Nie mam schematu Bajta, więc nie wiem jak to jest dokładnie zorganizowane, ale gdybym miał, to mogę pokombinować.

PS. Znajomy ma Bajta takiego jak na tym zdjęciu (to taki ?). Czekam aż się zdecyduje go pozbyć, bo nie bardzo wie co z nim zrobić  :D
(http://zxspectrum48.i-demo.pl/clones_pliki/Byte_black.jpg)
Tytuł: Odp: Timer КР580ВИ53 jako generator dźwięku
Wiadomość wysłana przez: steev w 2013.06.06, 18:56:01
Może to pomoże :)
http://zxbyte.ru/byte18.htm (http://zxbyte.ru/byte18.htm)
Tytuł: Odp: Timer КР580ВИ53 jako generator dźwięku
Wiadomość wysłana przez: Gelip w 2013.06.06, 19:00:56
Kolego - wywal to zdjęcie z forum bo tylko zaśmieca - to nie ten "Bajt" :-). Zechciej rzucić okiem na mój awatar. Mój "Bajt" posiada własną website (http://zxbyte.ru) na której jest wszystko włącznie ze schematem (http://zxbyte.ru/doc/byte_scheme.zip) w wysokiej jakości w PDF wykonanym (prawdopodobnie w AutoCAD) przez Prusak'a  - właściciela strony.
Co do twojego pytania to, VI53 jest oznaczony na schemacie jako DD68 - z prawej strony procesora Z80.

P.S. Dowiedziałem się właśnie co to za melodia :-). Okazuje się iż to znana stara francuska piosenka z 1935 roku pod tytułem: Tout va très bien madame la marquise (http://www.youtube.com/watch?v=rdLUV0hhYZY)
Tytuł: Odp: Timer КР580ВИ53 jako generator dźwięku
Wiadomość wysłana przez: pear w 2013.06.06, 19:07:22
Kolego - wywal to zdjęcie z forum bo tylko zaśmieca - to nie ten "Bajt" :-).
Spokojnie to tylko link :)
Czy mam rozumieć, że wewnątrz tego modelu ze zdjęcia, to również zupełnie inny komputer i wystąpiła tylko zbieżność nazw ?
Mój "Bajt" posiada własną website (http://zxbyte.ru) na której jest wszystko włącznie ze schematem (http://zxbyte.ru/doc/byte_scheme.zip) w wysokiej jakości w PDF wykonanym (prawdopodobnie w AutoCAD) przez Prusak'a  - właściciela strony.
Bukwy jeszcze zdzierżę, ale za jaką krzywdę schemat jest w notacji niemieckiej normy DIN ? Tak wiem, w Rosji tak się przyjęło. Ale za co ? :P
P.S. Dowiedziałem się właśnie co to za melodia :-). Okazuje się iż to znana stara francuska piosenka z 1935 roku pod tytułem: Tout va très bien madame la marquise (http://www.youtube.com/watch?v=rdLUV0hhYZY)
To mi wiele nie pomoże. Mam podstawowy słuch muzyczny - słyszę, że coś gra, czasami wiem skąd ;)
Tytuł: Odp: Timer КР580ВИ53 jako generator dźwięku
Wiadomość wysłana przez: Gelip w 2013.06.06, 19:16:12
Czy mam rozumieć, że wewnątrz tego modelu ze zdjęcia, to również zupełnie inny komputer i wystąpiła tylko zbieżność nazw ?
Dokładnie, jest to zupełnie inna konstrukcja. Klonów o nazwie "BYTE" było co najmniej kilka :-). Popatrz u Yerzmyey'a na stronie: zxspectrum48.i-demo.pl/clones.html (http://zxspectrum48.i-demo.pl/clones.html). Nie wiem czemu jeszcze nie dodał mojego "Bajta", wysłałem mu zdjęcia jakiś czas temu i miał umieścić.
Tytuł: Odp: Timer КР580ВИ53 jako generator dźwięku
Wiadomość wysłana przez: pear w 2013.06.06, 19:46:38
"Bajt" [...] ma nietypowe złącze krawędziowe w rastrze 2.5mm
Tak przy okazji ciekawostka, bo może nie każdy wie skąd się wziął raster 2,5mm.
W czasach Żelaznej Kurtyny z powodu embarga na technologię wiele zachodnich rozwiązań było bezobcesowo kopiowanych.
Począwszy od całej serii SN74 układów TTL, przez CD4000 CMOS, aż po układy mikroprocesorowe Intela i Ziloga.
Kopie były wykonane przez odtworzenie działania oryginalnego układu (re-engineering).
Dlatego nie są to identyczne układy i w niektórych specyficznych sytuacjach mogą się zachowywać inaczej (jak na przykład NRD-owski U880).
Kuriozum był również niedokładnie skopiowany raster (kolejna ciekawostka -  tego słowa nie ma w słowniku języka polskiego w odniesieniu do rozstawu, czy gęstości :) ).
Rozstaw pinów w układach zmierzono metryczną miarką. W związku z tym wyszło 2,5mm zamiast imperialnego 2,54mm.
Kiedyś spotkałem się z polską nazwą "cal wschodnioeuropejski" (25mm) (sic!).
Właśnie w rastrze 2,5mm były produkowane wszystkie układy scalone w krajach RWPG.
Nie było problemu dopóki układ miał nie więcej niż 24 piny, ale już zachodnie układy w obudowach DIP28 nie pasowały do wschodnich podstawek (też były, a jakże) i odwrotnie. Podstawki precyzyjne nie pasowały przy jeszcze mniejszej liczbie pinów (nigdy nie widziałem podstawki precyzyjnej w wykonaniu "wschodnim").
Tytuł: Odp: Timer КР580ВИ53 jako generator dźwięku
Wiadomość wysłana przez: Gelip w 2013.06.06, 19:52:48
"Bajt" [...] ma nietypowe złącze krawędziowe w rastrze 2.5mm

Właśnie, ch....ra, weź bądź mądry człowieku i podłącz teraz do tego (http://yarek.com/forum/index.php?PHPSESSID=53772f4870f5782302a548e8704caca4&topic=203.0) np. DivIDE :-)
(http://obrazki.elektroda.pl/8039598800_1330859985_thumb.jpg) (http://obrazki.elektroda.pl/8039598800_1330859985.png)
Tytuł: Odp: Timer КР580ВИ53 jako generator dźwięku
Wiadomość wysłana przez: pear w 2013.06.06, 20:12:56
Jeśli nie zależy Ci na "oryginalności" swojego egzemplarza - i wcale nie kpię, bo rozstaw 2,5mm jest jak najbardziej poprawny dla "epoki" :) - to można wymienić złącze w komputerze na takie z imperialnym rastrem 2,54mm.
W złączu końcówki są długie to się ten milimetr czy dwa na końcach dognie :)

PS. Tak przy okazji w SAM'ie Coupe jest podobne złącze i nasunęła mi się dygresja (http://speccy.pl/forum/index.php/topic,1052.0.html).
Tytuł: Odp: Timer КР580ВИ53 jako generator dźwięku
Wiadomość wysłana przez: Gelip w 2013.06.06, 20:24:43
Na oryginalności mi nie zależy ale mam tylko jeden egzemplarz "Bajta" i boję się iż mogę coś spi......ć więc raczej z wymianą złącza nie będę się bawił.

Ale wróćmy do tematu. Na tym (http://zx-pk.ru/showthread.php?s=e13405a8870d0ecf485e4c18b078254c&t=20158&page=2) forum rozmawiałem z b2m na temat VI53 w "Bajcie". Chciałbyś to liczyć z tego wzoru jakoś?:
high for ( n + 1 ) / 2 and low for ( n - 1 ) / 2
P.S. Gościu b2m jest właścicielem emulatora rosyjskich klonów także ze wsparciem VI53. Dodał także po części emulację "Bajta" z VI53 tylko odtwarzanie jest nieco za szybko. Może rzucił byś na to okiem jak to poprawić w konfiguracji emulatora? Emulator skonfigurowany przeze mnie pod "Bajta" jest tutaj (http://zx-pk.ru/showpost.php?s=e13405a8870d0ecf485e4c18b078254c&p=547032&postcount=25) w załączniku plik Byte EMU.rar
Tytuł: Odp: Timer КР580ВИ53 jako generator dźwięku
Wiadomość wysłana przez: pear w 2013.06.06, 20:39:45
Dokładnie z tego wzoru:

n=fi divided by fout.
fi = input clock frequency, fout = output frequency, n = value to be loaded.

W przypadku Twojego Bajta: fi = 3,5 MHz = 3,5 x 106 Hz.
Dla odmiany w danych nie masz fout tylko wartości n dla timera.
Przeliczając n na fout można spróbować uzyskać częstotliwości i transskrybować na zapis nutowy - w ten sposób przekonasz się, czy to rzeczywiście muzyka, czy marsz turecki :)

fout = fi / n

[EDIT] Zastanawiam się tylko, czy w trybie 3 nie trzeba jeszcze fout podzielić przez 2, ale najwyżej muzyka zagra o oktawę wyżej.
Tytuł: Odp: Timer КР580ВИ53 jako generator dźwięku
Wiadomość wysłana przez: Gelip w 2013.06.06, 21:15:44
Pokombinuję, ale na razie słucham tego: Ray Ventura - Tout Va Tres Bien, Madame La Marquise.mid (http://chansons.awardspace.com/midi/Ray%20Ventura%20-%20Tout%20Va%20Tres%20Bien,%20Madame%20La%20Marquise.mid) :-)

Koniecznie przez Winamp, odtwarzacz MIDI - DirectMusic / Microsoft Synthesizer (with output) + 44100Hz, Reverb, Chorus i plik gm.dls (http://savepic.org/3578640.png)
Tytuł: Odp: Timer КР580ВИ53 jako generator dźwięku
Wiadomość wysłana przez: Gelip w 2013.06.07, 14:22:07
Próbuję obliczyć częstotliwość fout ale wychodzą mi głupoty. Pierwsza porcja danych to 10 46 36 00 HEX, użyteczne to 46 i 36 czyli po zamianie na DEC odpowiednio n=70 i n=54
Liczę: fout=3 500 000Hz / 70 = 50 000Hz = 50kHz
Liczę: fout=3 500 000Hz / 54 = 64 815Hz = 65kHz

Co to za nuty wyszły? Znalazłem tabelkę (http://www.sengpielaudio.com/calculator-notenames.htm) zamiany częstotliwości na nuty ale nie ma tam tak wysokich wartości i słusznie bo ludzkie ucho ma zakres max. 20kHz

Nawet po podzieleniu przez 2 wciąż za wysokie wartości.
Tytuł: Odp: Timer КР580ВИ53 jako generator dźwięku
Wiadomość wysłana przez: steev w 2013.06.07, 15:24:50
Po pierwsze, licznik jest dwubajtowy :)
Po drugie : http://zxbyte.ru/doc/3way_byte.zip (http://zxbyte.ru/doc/3way_byte.zip)
Tytuł: Odp: Timer КР580ВИ53 jako generator dźwięku
Wiadomość wysłana przez: Gelip w 2013.06.07, 15:42:18
Po pierwsze, licznik jest dwubajtowy :)
Po drugie : http://zxbyte.ru/doc/3way_byte.zip (http://zxbyte.ru/doc/3way_byte.zip)
Wiem że licznik jest dwubajtowy. Co do linku który podałeś to nie jest to takie proste - też początkowo myślałem, że te dane z pliku WW.COM odpowiadają liczbom z tabelki ale niestety to nie to. Tabelka wraz z artykułem pochodzi z rosyjskiego czasopisma Radiolubitiel. Od niej zacząłem interpretację danych. Artykuł mam nawet przetłumaczony na polski włącznie z uzupełnioną tabelką o wartości HEX.
Tytuł: Odp: Timer КР580ВИ53 jako generator dźwięku
Wiadomość wysłana przez: steev w 2013.06.07, 17:25:21
Po pierwsze, licznik jest dwubajtowy :)
Wiem że licznik jest dwubajtowy.
To dlaczego w obliczeniach powyżej, dzielisz przez wartość jednobajtową?
To mnie zmyliło...

BTW, czy ten rar zawierał na pewno wszystko?
Bo widzę w kodzie odwołania do nakładki ww.ovr
Tytuł: Odp: Timer КР580ВИ53 jako generator dźwięku
Wiadomość wysłana przez: Gelip w 2013.06.07, 18:50:35
To dlaczego w obliczeniach powyżej, dzielisz przez wartość jednobajtową?
To mnie zmyliło...
Czyli mam rozumieć iż jako wartość n mam użyć dane jako słowo maszynowe (Word) np. 7054 lub 5470 ??
BTW, czy ten rar zawierał na pewno wszystko?
Bo widzę w kodzie odwołania do nakładki ww.ovr
Jeśli chodzi o WW.OVR jest to o prostu ROM ZX Spectrum 48. W załączniku zawartość dwóch dyskietek systemowych CP/M. W obu jest program WW.COM. ROM ZX48 jest uruchamiany po wybraniu z menu opcji 3
Tytuł: Odp: Timer КР580ВИ53 jako generator dźwięku
Wiadomość wysłana przez: pear w 2013.06.07, 21:42:02
Próbuję obliczyć częstotliwość fout ale wychodzą mi głupoty. Pierwsza porcja danych to 10 46 36 00 HEX, użyteczne to 46 i 36 czyli po zamianie na DEC odpowiednio n=70 i n=54
Liczę: fout=3 500 000Hz / 70 = 50 000Hz = 50kHz
Liczę: fout=3 500 000Hz / 54 = 64 815Hz = 65kHz

Co to za nuty wyszły? Znalazłem tabelkę (http://www.sengpielaudio.com/calculator-notenames.htm) zamiany częstotliwości na nuty ale nie ma tam tak wysokich wartości i słusznie bo ludzkie ucho ma zakres max. 20kHz

Nawet po podzieleniu przez 2 wciąż za wysokie wartości.
Powinno być n = 0x4636 h = 17974 d
 fout=3 500 000Hz / 17974 =  195 Hz (to mniej więcej G3 lub G2, jeśli to dzielić jeszcze na 2)

Inne źródło tabelki (http://www.phy.mtu.edu/~suits/notefreqs.html)
Tytuł: Odp: Timer КР580ВИ53 jako generator dźwięku
Wiadomość wysłana przez: Gelip w 2013.06.08, 09:18:34
Początek melodii jest monofoniczny i zaczyna się na pewno od nut: F D C Bb co słychać i można również zobaczyć w edytorze MIDI po przepuszczeniu pliku WAV przez konwerter WAV na MIDI. Tobie wyszło G3 więc te dane albo nie są muzyczne albo jednak jakiś inny wzór do przeliczenia potrzebny. W sekwencerze MIDI widać iż jest to F4 czyli powinno być 349Hz. Akurat znam się na MIDI i wiem, że programy sekwencerowe różnie numerują klawisze więc może to być również F3 lub F5 - 174 lub 698Hz

Jeśli bez obliczeń przyjąć że wartość HEX 36 to nuta F to kolejne 3 wartości odpowiadają układowi klawiatury muzycznej i wychodzi dokładnie te cztery nuty co napisałem.
| 10 46 36 00 | 10 43 33 00 | 10 41 31 00 | 10 3B 2B 00 |
|-------F-----|-------D-----|-------C-----|-------Bb----|

Jeśli byłaby to melodyjka monofoniczna to byłoby po problemie, niestety jest to polifonia i w kodzie w pewnym momencie są jakieś inne dane - nie dotyczące częstotliwości np.
| 20 00 00 00 |

Jeśli udałoby się wyciąć kod odtwarzacza - który wie co z tymi danymi zrobić to byłoby OK a tak to chyba nic z tego dobrego nie wyjdzie :-(. Próbowałem zrobić tak (http://zx-pk.ru/showpost.php?p=606912&postcount=8) ale podobno tak nie można bo program musi działać w pamięci od adresu #100
Tytuł: Odp: Timer КР580ВИ53 jako generator dźwięku
Wiadomość wysłana przez: pear w 2013.06.08, 11:11:19
Wpadłem na pomysł, że może pierwsza wartość to czas trwania nuty, 2. i 3. to dzielnik (0 może oznaczać ciszę, czyli pauzę), a 4. to numer generatora.
Nadal nie mam pomysłu jak powiązać wartość dzielnika z tonem.
Tytuł: Odp: Timer КР580ВИ53 jako generator dźwięku
Wiadomość wysłana przez: pear w 2013.06.08, 11:16:06
Jeśli udałoby się wyciąć kod odtwarzacza - który wie co z tymi danymi zrobić to byłoby OK a tak to chyba nic z tego dobrego nie wyjdzie :-(. Próbowałem zrobić tak (http://zx-pk.ru/showpost.php?p=606912&postcount=8) ale podobno tak nie można bo program musi działać w pamięci od adresu #100
Programy w CP/M ładowane są do pamięci pod adres 0x100, więc pomysł masz dobry, tylko offset musisz sobie zmienić, np. +0x8000 i przeliczyć wszystkie adresy bezwzględne.
Program będziesz miał wtedy od adresu 0x8100 (33024 dziesiętnie).

Zauważyłem, że często mylisz adresy DEC i HEX - zwracaj na to uwagę, bo niepotrzebnie stracisz sporo czasu :)
Tytuł: Odp: Timer КР580ВИ53 jako generator dźwięku
Wiadomość wysłana przez: Gelip w 2013.06.08, 12:13:48
Programy w CP/M ładowane są do pamięci pod adres 0x100, więc pomysł masz dobry, tylko offset musisz sobie zmienić, np. +0x8000 i przeliczyć wszystkie adresy bezwzględne.
Program będziesz miał wtedy od adresu 0x8100 (33024 dziesiętnie).
Tak właśnie zrobiłem tylko od adresu 40000 zamiast 33024. Czytałeś ten (http://zx-pk.ru/showpost.php?p=606912&postcount=8) post? Na forum zx-pk.ru user jerri napisał mi:
Cytuj
here is a system absent
some function calls to Dxxx and #00xx (http://zx-pk.ru/showpost.php?p=606997&postcount=11)

Czyli, że bez systemu CP/M nie da rady? Przecież próbuję uruchomić nie cały program WW.COM tylko jakiś podprogram z niego (SUBROUTINE)

P.S. Udało mi się uruchomić system CP/M 2.2 na ZX Spectrum 48 z rozszerzeniem LEC Memory Extension w emulatorze ZXMAK2 i wczytać plik WW.COM z taśmy ale niestety nie chce działać. Inne programy z dyskietki "Bajta-01" działają po części, np. menu programu SYS.COM. W załączniku SYS.COM na emulatorze + LEC i SYS.COM na prawdziwym "Bajcie-01" dla porównania :-)
Tytuł: Odp: Timer КР580ВИ53 jako generator dźwięku
Wiadomość wysłana przez: steev w 2013.06.08, 14:39:00
Odtwarzacz jak sądzę zaczyna się od adresu $1f96...
Tytuł: Odp: Timer КР580ВИ53 jako generator dźwięku
Wiadomość wysłana przez: Gelip w 2013.06.08, 15:25:21
Odtwarzacz jak sądzę zaczyna się od adresu $1f96...
Całkiem możliwe ale po wstawieniu WW.COM do pamięci RAM w adres 40000 i uruchomieniu RANDOMIZE USR 47830 (1F96 - 100 = 1E96h = 7830dec) w emulatorze Spectaculator ROM resetuje się, także po wcześniejszym wykonaniu CLEAR 47829

Działanie programu WW.COM:

1. Załadowanie obrazka wielkości 6912 bajtów z offsetu 0x2404 na ekran 256x192
2. Odtwarzanie muzyki
3. Po wciśnięciu dowolnego klawisza pokazuje się menu systemowe

Czy ten offset 1F96 to według Ciebie sam odtwarzacz czy podprogram ładowania obrazka na ekran?
Tytuł: Odp: Timer КР580ВИ53 jako generator dźwięku
Wiadomość wysłana przez: steev w 2013.06.08, 15:32:52
Przecież tak nie można.
Primo, kod nie jest relokowalny, musisz albo ręcznie pozmieniać w binarce adresy albo wyczyścić ASMa i skompilować od nowa,
secundo jak już ktoś mówił odwołuje się do funkcji CPM, co trzeba też jakoś uwzględnić...

IMO to wejście do procedury odtwarzającej (może wymagać jakiegoś parametru, nie wiem)
Tytuł: Odp: Timer КР580ВИ53 jako generator dźwięku
Wiadomość wysłana przez: Gelip w 2013.06.08, 15:45:16
Czyli tak jak wcześniej pisałem - bez CP/M nie da rady. No nic będę musiał poczekać w takim razie aż autor ZXMAK2 doda emulację "Byte-01" - obiecał, że doda, ale kiedy to nastąpi to nie wiadomo :-(. W tej chwili działa emulacja zwykłego "Bajta" ale bez VI53 (Intel 8253). Jedyny znany mi emulator który potrafi emulować po części "Bajta" i chip 8253 to EMU 1.01 (Башкирия-2М).

P.S. W ubiegłym roku rozmawiałem z autorem innego emulatora E3000 - i też obiecał dodać emulację "Bajta". Prusak przesłał mu nawet materiały do emulacji ale niestety do dziś nic nie wiadomo :-(
Tytuł: Odp: Timer КР580ВИ53 jako generator dźwięku
Wiadomość wysłana przez: Gelip w 2013.06.09, 08:35:48
Piszę ponieważ dosłownie przypadkiem znalazłem ciekawą rzecz. Otóż znalazłem dosłownie ten sam kawałek kodu z pliku WW.COM w pliku Art Studio.tzx - wersja z kasety zwykłego "Bajta" w którym na początku odgrywana jest melodia Lambada za pomocą VI53 :-). Ten kod jest właściwie dopiero dostępny po rozpakowaniu któregoś bloku w pamięci emulatora ponieważ nie mogę znaleźć go w żadnym bloku pliku Art Studio.TZX. Jak to zrobiłem. Ponieważ emulator EMU 1.01 nie obsługuje zabezpieczenia "Bajta" Cerikopik musiałem skorzystać z wersji Art Studio odbezpieczonej oraz usunąć blok w pliku TZX zawierający krótką rosyjską instrukcję obsługi. Tak przygotowany plik nazwałem: Art_no_cer.tzx
1. Wczytałem plik Art_no_cer.tzx w emulatorze EMU 1.01
2. W momencie pojawienia się pędzla i spray'a zapisałem szybko stan emulatora do pliku .emu zmieniając później nazwę na Lambada.emu
3. Otworzyłem sobie ten plik w WinHEX i przypadkiem znalazłem ciąg |Puşn i od razu skojarzyłem, że taki sam widziałem w kodzie WW.COM przed danymi muzycznymi - i bardzo dobrze skojarzyłem, ch....a dobrą mam pamięć wzrokową :-)
4. Otworzyłem w WinHEX również plik WW.COM i proszę bardzo, ten sam ciąg i jeszcze kilka bajtów wstecz identyczne. Po ciągu |Puşn są też jakieś dane - zapewne muzyczne ale jakoś nie podobne do tych z WW.COM :-(. Link (http://zx-pk.ru/attachment.php?attachmentid=37846&d=1350835916) do emulatora "Bajta". Po rozpakowaniu Byte EMU.rar można otworzyć po prostu plik Lambada.emu aby zobaczyć jak gra VI53.
Tytuł: Odp: Timer КР580ВИ53 jako generator dźwięku
Wiadomość wysłana przez: Gelip w 2013.06.09, 09:28:39
Dane po ciągu |Puşn są na 100% danymi muzycznymi dla chipu VI53. Zrobiłem test z plikiem Lambada.emu i wstawiłem w WinHEX kilka zer i po otworzeniu pliku w emulatorze EMU 1.01 pojawia się cisza w pewnym momencie odgrywania melodii Lambada :-)
I tak np. w offsecie 359C jest prędkość odtwarzania domyślnie 19h, po zmianie na np. 05h muzyka odtwarzana jest za szybko. Patrz plik 359C.emu w załączniku.
Tytuł: Odp: Timer КР580ВИ53 jako generator dźwięku
Wiadomość wysłana przez: Gelip w 2015.05.22, 22:14:07
Offset 359C - pozycja w pliku .emu w hex edytorze
Offset 6E5E - pozycja w debugerze w emulatorze EMU 1.0.1

Niższa wartość = szybsze odtwarzanie
Wyższa wartość = wolniejsze odtwarzanie

P.S. Po zmianie wartości w debugerze trzeba odczekać aż melodia zostanie odtworzona ponownie, dopiero wtedy zmiany odniosą skutek.
Wciskając i przytrzymując klawisz F9 w emulatorze można przyspieszyć prędkość emulacji procesora.
Tytuł: Odp: Timer КР580ВИ53 jako generator dźwięku
Wiadomość wysłana przez: Gelip w 2021.05.29, 04:09:34
Wpadłem na jeszcze jeden pomysł. Czy jakby w czasie działania programu ww.com pod systemem CP/M na komputerze Bajt-01 zatrzymać jakoś działanie, zrzucić pamięć RAM do pliku to czy dałoby się przerobić ten plik jakoś na dane, które można wczytać za pomocą LOAD "" CODE w Basic'u na zwykłym Bajcie (klonie ZX Spectrum)?
Tytuł: Odp: Timer КР580ВИ53 jako generator dźwięku
Wiadomość wysłana przez: steev w 2021.05.30, 21:21:13
Muzyka z WW.COM
playAY.tzx - dla ZX 48/128 z AYgrekiem
playI.tzx - dla emulatora z intelem (nie startuje sam, trzeba dać RANDOMIZE USR 32768)
Źródełko dla AY załączone.
(nie,w Lambada jest inny player. Nieco podobny, ale bardziej rozbudowany i zdaje się grający na przerwaniach)
Tytuł: Odp: Timer КР580ВИ53 jako generator dźwięku
Wiadomość wysłana przez: Gelip w 2021.05.30, 22:18:20
Muzyka z WW.COM
steev - dzięki wielkie, to działa :D
Wrzuciłem to do mojego Bajta, który ma klona Intel 8253 i po RANDOMIZE USR 32768 gra  :) :)
Wprawdzie za szybko ale gra. Oczywiście gra też w emulatorze EMU 1.01 z inną prędkością.

Jak to zrobiłeś? Wypakowałeś player i dane muzyczne z ww.com czy tylko dane muzyczne a player napisałeś sam?
Tytuł: Odp: Timer КР580ВИ53 jako generator dźwięku
Wiadomość wysłana przez: steev w 2021.05.30, 22:39:26
Zdezasemblowałem (jak to się poprawnie pisze po polsku? :) ) WW.COM , wyłapałem player po portach i wywaliłem resztę kodu.
Potem najtrudniejsze - zrozumieć co on robi i po co.
Reszta była już 'prosta' - zamienić odwołania do 8253 na odwołania do 8910 (plus drobne przeróbki związane z klawiaturą)
Więc player jest w zasadzie oryginalny, dodałem jedynie obsługę AY i push-popy żeby ładnie wracało do systemu.

Ciekawe czy był/jest do tego jakiś tracker.
Oba playery (WW i lambada) mają wspólną część danych (tablicę częstotliwości) ale na oko format zapisu muzyki jest już inny.
Część kodu playera też jest identyczna, ale różnice są i tak spore...
Tytuł: Odp: Timer КР580ВИ53 jako generator dźwięku
Wiadomość wysłana przez: Gelip w 2021.05.30, 23:10:38
Zdezasemblowałem (jak to się poprawnie pisze po polsku? :) ) WW.COM , wyłapałem player po portach i wywaliłem resztę kodu.
Potem najtrudniejsze - zrozumieć co on robi i po co.
Kurczę, naprawdę jesteś dobry  :o

Ten program ww.com oprócz muzyki wyświetla jeszcze reklamę AKDI. Udało mi się dodać obrazek i wyszło prawie to samo co ww.com na CP/M tylko zastosowałem LOAD ""SCREEN$  ;D
Tytuł: Odp: Timer КР580ВИ53 jako generator dźwięku
Wiadomość wysłana przez: Gelip w 2021.06.03, 15:23:09
Ciekawe czy był/jest do tego jakiś tracker.
Intel 8253 to zdaje się PC Speaker w komputerach PC więc może jakiś tracker dla PC Speaker'a.

Albo trzeba by pewnie przerobić jakiś tracker ZX Spectrum dla AY zmieniając porty dla 8253. Sam zrobiłeś wersję muzyczki z ww.com dla AY i dla 8253  :)
Tytuł: Odp: Timer КР580ВИ53 jako generator dźwięku
Wiadomość wysłana przez: steev w 2021.06.03, 18:26:22
Myślałem od innej strony.
Tracker oznaczałby zestaw utworów do odtwarzania, jakiś zestaw standardowych odtwarzaczy i zdefiniowane formaty modułów.
Tytuł: Odp: Timer КР580ВИ53 jako generator dźwięku
Wiadomość wysłana przez: Gelip w 2021.06.03, 19:32:51
Reszta była już 'prosta' - zamienić odwołania do 8253 na odwołania do 8910 (plus drobne przeróbki związane z klawiaturą)
Więc player jest w zasadzie oryginalny, dodałem jedynie obsługę AY i push-popy żeby ładnie wracało do systemu.
Z tego wynika iż kod odtwarzacza i danych muzycznych jest ten sam dla 8253 oraz AY i wystarczy tylko zmienić odwołania. Zdaje się iż AY i 8253 mają 3 kanały dźwiękowe. Czyli jeśli np. taki Sound Tracker 1.1 gra na 3 kanałach AY to pewnie wystarczy zmienić te odwołania z AY na 8253.

Ja niestety się na tym nie znam ale Ty jak widzę bez problemu umiesz wyłapać w kodzie porty jakiegoś urządzenia. Wiem iż trzeba uruchomić np. w emulatorze w Sound Trakerze odtwarzanie muzyki przez AY i w tym momencie włączyć debuger. Później pewnie zmiana wartości w kilku miejscach w pamięci za pomocą POKE memory i np. zapis stanu do pliku .z80
Tytuł: Odp: Timer КР580ВИ53 jako generator dźwięku
Wiadomość wysłana przez: steev w 2021.06.03, 20:44:59
Z tego wynika iż kod odtwarzacza i danych muzycznych jest ten sam dla 8253 oraz AY i wystarczy tylko zmienić odwołania. Zdaje się iż AY i 8253 mają 3 kanały dźwiękowe. Czyli jeśli np. taki Sound Tracker 1.1 gra na 3 kanałach AY to pewnie wystarczy zmienić te odwołania z AY na 8253.
Tak i nie.
Jeśli znajdziesz / napiszesz w trackerze dla AY utwór który nie korzysta z generatora szumu, obwiedni i regulacji głośności (czyli korzysta jedynie z generatorów dźwięku) to można pokusić się o jego konwersję na 8253. W każdym innym przypadku trzeba przerabiać utwór.
Tytuł: Odp: Timer КР580ВИ53 jako generator dźwięku
Wiadomość wysłana przez: damik w 2021.06.03, 22:07:22
Tak może trochę OT, ale zastanawiałem się na tym czy jest gdzieś dostępne jakieś repozytorium utworów na 8253 ?
Czy jest też opisany format tych plików muzycznych ?

Bo przyszedł mi do głowy szalony pomysł by zrobić jakiś port playera dla komputera Meritum, bo jak wiadomo to większość jego wersji jest fabrycznie przystosowana do zamontowania układu 8253 jako generatora dźwięku, ale nigdy nie słyszałem aby ktoś to kiedyś sensownie oprogramował (poza jakimś prostym programem typu organki napisanym w Basic'u) ... i tu otwierają się spore możliwości wykorzystania tego ficzera w tych komputerkach.  :)

A zrobienie do tego jeszcze jakiegoś edytora plików dzwiękowych 8253 byłoby pełnią szczęścia :D
Tytuł: Odp: Timer КР580ВИ53 jako generator dźwięku
Wiadomość wysłana przez: Gelip w 2021.06.03, 22:30:37
Tak i nie.
Jeśli znajdziesz / napiszesz w trackerze dla AY utwór który nie korzysta z generatora szumu, obwiedni i regulacji głośności (czyli korzysta jedynie z generatorów dźwięku) to można pokusić się o jego konwersję na 8253. W każdym innym przypadku trzeba przerabiać utwór.
Na początek dobre by było i to :)
Tak może trochę OT, ale zastanawiałem się na tym czy jest gdzieś dostępne jakieś repozytorium utworów na 8253 ?
Czy jest też opisany format tych plików muzycznych ?
Z 8253 było trochę klonów ZX Spectrum ale chyba niewiele. Ja przynajmniej nie znalazłem na razie żadnego repozytorium utworów.

Wiem, że na rosyjski klon Вектор-06Ц powstało wiele gier z muzyką graną właśnie przez КР580ВИ53:
Вектор-06Ц, звук в играх со стандартным синтезатором ВИ53 (Vector 06c, Sound VI53 Games) (https://www.youtube.com/watch?v=9Lxo2NIVpiQ)
Вектор-06Ц, демка Lyra II-3 (Vector 06c, Lyra II-3 demo) (https://www.youtube.com/watch?v=TAAVWmTTgSA) - to nawet fajna muzyczka w połączeniu z AY :)

Za pomocą Вектор-06Ц i КР580ВИ53 odtwarzają nawet zwykły dźwięk PCM: Вектор-06Ц, цифровой звук через ВИ53 (Vector-06C, PWM Digital Sound) (https://www.youtube.com/watch?v=DCwcQM6EPxk)
Tytuł: Odp: Timer КР580ВИ53 jako generator dźwięku
Wiadomość wysłana przez: steev w 2021.06.05, 01:58:08
Jeśli znajdziesz / napiszesz w trackerze dla AY utwór który nie korzysta z generatora szumu, obwiedni i regulacji głośności (czyli korzysta jedynie z generatorów dźwięku) to można pokusić się o jego konwersję na 8253. W każdym innym przypadku trzeba przerabiać utwór.
Tja.
Dwa utwory grane przez przepisywanie na żywca tylko częstotliwości generatorów.
Brzmi tak sobie, w porównaniu z AY :)
(inna sprawa że player przerobiony na kolanie, więc nie ma gwarancji że odtwarza prawidłowo...)
Najwygodniej się to mi odpalało na emu.exe z konfiguracją СОВМЕСТ
Tytuł: Odp: Timer КР580ВИ53 jako generator dźwięku
Wiadomość wysłana przez: Gelip w 2021.06.05, 07:35:07
Dwa utwory grane przez przepisywanie na żywca tylko częstotliwości generatorów.
Brzmi tak sobie, w porównaniu z AY :)
(inna sprawa że player przerobiony na kolanie, więc nie ma gwarancji że odtwarza prawidłowo...)
Najwygodniej się to mi odpalało na emu.exe z konfiguracją СОВМЕСТ
To nie są proste utwory ale działa na moim Bajcie  :D
Emulator EMU nie emuluje idealnie 8253 ale od biedy dobre i to. Według mnie w porównaniu do Bajta odtwarza za szybko.

Dużo roboty z tymi częstotliwościami? Dałbyś radę zrobić konwerter ay to 8253?

Tutaj gość zrobił emulator AY na 8253 dla komputera Вектор-06Ц - tam piosenki brzmią ładnie:
Эмулятор AY-3-8910 на КР580ВИ53 (http://sensi.org/scalar/ware/788/)
Tytuł: Odp: Timer КР580ВИ53 jako generator dźwięku
Wiadomość wysłana przez: steev w 2021.06.05, 16:06:14
Dużo roboty z tymi częstotliwościami? Dałbyś radę zrobić konwerter ay to 8253?
Przesunąć pięć bitów w lewo :)
To co gra w tych pliczkach, to oryginalny player PT3, tylko dane dla generatorów są przesuwane i wrzucane na porty 8253.
Wystarczy podstawić mu inny moduł i tyle.

Tutaj gość zrobił emulator AY na 8253 dla komputera Вектор-06Ц - tam piosenki brzmią ładnie:
Эмулятор AY-3-8910 на КР580ВИ53 (http://sensi.org/scalar/ware/788/)
Zassałem, zerknę.
Tytuł: Odp: Timer КР580ВИ53 jako generator dźwięku
Wiadomość wysłana przez: Gelip w 2021.06.05, 17:41:18
playI.tzx - dla emulatora z intelem (nie startuje sam, trzeba dać RANDOMIZE USR 32768)
Czy mógłbyś skompilować plik playI.tzx aby były w nim oddzielne moduły odtwarzacza i danych muzycznych? Chciałbym poeksperymentować z konwersją muzyki do formatu 8253 a player przydałby się do odtwarzania. Czy playerem PT3, który zamieściłeś (совмест.zip) można też odtworzyć dane muzyczne z pliku playI.tzx ?
Tytuł: Odp: Timer КР580ВИ53 jako generator dźwięku
Wiadomość wysłana przez: steev w 2021.06.05, 19:13:11
Dla PT3:
Ładujesz dowolną muzyczkę z tych dwóch które wrzuciłem, przerywasz program.
Pod adresem $8000 jest odtwarzacz, pod adres $9000 wgrywasz swój własny moduł PT3.
Potem RANDOMIZE USR 32768 albo GOTO 110
W załączniku - te trzy bloki osobno.
Można odtwarzać tylko PT3.

Z 'play_I' jest taki problem, że ten odtwarzacz służy do odtwarzania tylko jednego konkretnego formatu.
Który jest nieco szurnięty ;)
W załączniku źródełko odtwarzacza, zawiera też dane muzyczne z krótkim opisem.
Tytuł: Odp: Timer КР580ВИ53 jako generator dźwięku
Wiadomość wysłana przez: Gelip w 2021.06.05, 21:28:46
Dla PT3:
Ładujesz dowolną muzyczkę z tych dwóch które wrzuciłem, przerywasz program.
Pod adresem $8000 jest odtwarzacz, pod adres $9000 wgrywasz swój własny moduł PT3.
Potem RANDOMIZE USR 32768 albo GOTO 110
W załączniku - te trzy bloki osobno.
Można odtwarzać tylko PT3.
Ja wymyśliłem coś takiego: https://zx-pk.ru/threads/33388-treker-kr580vi53-(intel-8253).html?p=1119443&viewfull=1#post1119443 (https://zx-pk.ru/threads/33388-treker-kr580vi53-(intel-8253).html?p=1119443&viewfull=1#post1119443)
i wychodzi iż Twoim playerem 8253 tym z pliku b_cygan.tap można odtwarzać dowolne formaty (nie tylko .pt3) po wyeksportowaniu z programu Vortex Tracker II do formatu .tap Wystarczy w pliku b_cygan.tap podmienić dwa ostatnie bloki na te ostatnie dwa z pliku eksportowanego w VTII

Oczywiście nie każdy format gra dobrze i zależy to też od aranżacji utworu  8)
Np. ładnie zaczyna grać utwór Karboflex
Tytuł: Odp: Timer КР580ВИ53 jako generator dźwięku
Wiadomość wysłana przez: steev w 2021.06.05, 23:07:02
i wychodzi iż Twoim playerem 8253 tym z pliku b_cygan.tap można odtwarzać dowolne formaty (nie tylko .pt3) po wyeksportowaniu z programu Vortex Tracker II do formatu .tap Wystarczy w pliku b_cygan.tap podmienić dwa ostatnie bloki na te ostatnie dwa z pliku eksportowanego w VTII
Przypuszczam, że VT przy eksporcie do TAP po prostu zmienia format modułu na PT3, bo odtwarzacz który przerobiłem innych formatów nie obsługuje :)
Tytuł: Odp: Timer КР580ВИ53 jako generator dźwięku
Wiadomość wysłana przez: Gelip w 2023.03.21, 14:10:13
@steev
Dałbyś radę wypakować dane muzyczne Lambady z rosyjskiej wersji programu Art Studio (plik Art_no_cer.tzx lub stan emulatora w pliku Lambada.emu.rar) tak aby dało się odtwarzać Twoim playerem? Potrzebne dane masz w poście #37 (https://www.speccy.pl/forum/index.php?topic=1048.msg12612#msg12612)
Tytuł: Odp: Timer КР580ВИ53 jako generator dźwięku
Wiadomość wysłana przez: steev w 2023.03.21, 19:58:39
@steev
Dałbyś radę wypakować dane muzyczne Lambady z rosyjskiej wersji programu Art Studio (plik Art_no_cer.tzx lub stan emulatora w pliku Lambada.emu.rar) tak aby dało się odtwarzać Twoim playerem? Potrzebne dane masz w poście #37 (https://www.speccy.pl/forum/index.php?topic=1048.msg12612#msg12612)
Wątpię.
Jak już pisałem wcześniej, to zupełnie inny player.
Znaczy wyciąć dane się da, ale grać na tym playerze nie będzie.
Tytuł: Odp: Timer КР580ВИ53 jako generator dźwięku
Wiadomość wysłana przez: Gelip w 2023.03.21, 20:16:39
@steev
OK, rozumiem.

Czy zerkałeś na kod emulatora AY na VI53 (http://sensi.org/scalar/ware/788/)? Czy dało by się go skompilować dla Bajta aby słuchać muzyczek stworzonych na AY przez VI53?
Tytuł: Odp: Timer КР580ВИ53 jako generator dźwięku
Wiadomość wysłana przez: steev w 2023.03.21, 21:26:51
Owszem.
Miks asemblera 8080 i 8085, krojony pod konkretna maszynę.
Część skoków jest absolutna (bo tak), część playera w ogóle jest podana jako binary blob (i nie wiem czy to kod czy dane czy co).
Tytuł: Odp: Timer КР580ВИ53 jako generator dźwięku
Wiadomość wysłana przez: Gelip w 2023.03.21, 21:39:43
Próbuję odpalić cokolwiek (grę, demo) w emulatorze Вектор-06Ц (EMU 1.01) ale za ch....ę nic mi nie wychodzi  :(
Tutaj jest wszystko - oprogramowanie, gry, dokumentacja, schematy: http://sensi.org/scalar/categories/ (http://sensi.org/scalar/categories/)
Mam obraz dyskietki robocop.fdd, ładuję i nic się nie dzieje. Po resecie zgłasza się zawsze MicroDOS a jak robię dir to są tam inne pliki niż w załadowanym obrazie dyskietki - nie czaję tego  ::)
Obraz dyskietki można podejrzeć w programie SteinBlume i widać iż są tam pliki gry np. robocop.com

Pobrałem też obraz dyskietki z Real Music Player (http://sensi.org/scalar/ware/609/index.html) aby posłuchać czegoś ale jak załadować dyskietkę to nie wiem  :-\
Tytuł: Odp: Timer КР580ВИ53 jako generator dźwięku
Wiadomość wysłana przez: Gelip w 2023.03.21, 23:16:08
Aby posłuchać muzyczek w emulatorze Vector 06c wystarczy przeciągnąć na niego pliki  :)
Łyka takie:
Вектор-06Ц (Vector06c): vec, rom, r0m, stc, zxs, rmp.
Вектор-06Ц (Vector06c-Z80): pt2, pt3, stp, sqt. (https://www.old-games.ru/wiki/EMU_%D0%B4%D0%BB%D1%8F_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D0%B5%D0%B9#.D0.97.D0.B0.D0.BF.D1.83.D1.81.D0.BA_.D0.BF.D1.80.D0.BE.D0.B3.D1.80.D0.B0.D0.BC.D0.BC)
Pliki rmp można wypakować programem SteinBlume.

Aby odpalić obraz dyskietki .fdd trzeba uruchomić emulator w trybie Vector06-romdisk, kliknąć ikonę dyskietki 1 i wybrać plik .fdd po czym kliknąć przycisk Reset (ikona czerwone kółko)

Ooo.. coś dla mnie. Znalazłem link z grami lub demami dla VI53: Категория vi53-music (http://sensi.org/scalar/categories/75/index.html) - wystarczy przeciągnąć plik .rom na emulator w wersji zwykłej lub romdisk  ;D

Jakby to wyciąć i odpalić na Bajcie to by było za......e  :)

P.S. Aby posłuchać przykładów emulatora AY na VI53 też wystarczy przeciągnąć pliki .ROM na emulator (najpierw wypakować gdzieś z AYVI53.zip\examples)
Tytuł: Odp: Timer КР580ВИ53 jako generator dźwięku
Wiadomość wysłana przez: steev w 2023.03.22, 00:25:17
I teraz, dla rpm.fdd :
Na obrazie dyskietki nie ma plików systemowych, więc 'dir' nie działa.
Ale wystarczy wklepać rpm i dać enter, żeby się odpalił player.
Inne polecenia na tej dyskietce to 're', 'rpm2' i 'rpm-hdd'
(żaden z emu nie dał u mnie pod linuksem rady, ale mame zadziałało jak zawsze niezawodnie :) )
Tytuł: Odp: Timer КР580ВИ53 jako generator dźwięku
Wiadomość wysłana przez: Gelip w 2023.03.22, 01:18:00
Dzięki ale już wiem jak odpalać w EMU 1.01 na Windows - zobacz mój poprzedni post bo chyba przegapiłeś.
Tytuł: Odp: Timer КР580ВИ53 jako generator dźwięku
Wiadomość wysłana przez: Gelip w 2023.03.24, 19:10:51
Czy zerkałeś na kod emulatora AY na VI53 (http://sensi.org/scalar/ware/788/)? Czy dało by się go skompilować dla Bajta aby słuchać muzyczek stworzonych na AY przez VI53?
Owszem.
Miks asemblera 8080 i 8085, krojony pod konkretna maszynę.
Część skoków jest absolutna (bo tak), część playera w ogóle jest podana jako binary blob (i nie wiem czy to kod czy dane czy co).

Pod linkiem jaki dałem (sensi.org) jest stara wersja 0.1 emulatora AY na VI53 pod komputer Vector.
Tymczasem niedawno pojawiła się nowsza wersja 0.2 która powoduje iż muzyczki są odtwarzane trochę lepiej: AY VI53 0.2 (https://zx-pk.ru/threads/34149-emulyatsiya-ay-s-ispolzovaniem-vi53.html?p=1162225&viewfull=1#post1162225)

Natomiast dzisiaj ivagor z zx-pk.ru dodał wsparcie dla mojego klona "Bajt" i teraz mogę słuchać muzyczek RMP z AY na VI53  :) - wszystko w temacie Эмуляция AY с использованием ВИ53 (https://zx-pk.ru/threads/34149-emulyatsiya-ay-s-ispolzovaniem-vi53.html?p=1175418&viewfull=1#post1175418) - AYVI53v02_1.zip

Loader RMPLOAD.tzx:
   5 CLEAR 24575
  10 LOAD ""CODE
  20 RANDOMIZE USR 24576

RMPPLAY.tap to dane binarne - sklejony RMPPlayer.bin+plik RMP:
copy /b RMPPlayer.bin+%1 RMPplay.bin
bin2tap -c RMPplay.bin RMPPLAY.tap RMPPLAY 24576

bin2tap wersja tutaj: https://vtrd.in/pcutilz/BIN2TAP.zip (https://vtrd.in/pcutilz/BIN2TAP.zip) (wymaga MS VC++ 2010 (https://www.microsoft.com/en-us/download/details.aspx?id=26999))
Tytuł: Odp: Timer КР580ВИ53 jako generator dźwięku
Wiadomość wysłana przez: Gelip w 2023.03.28, 08:50:02
A zrobienie do tego jeszcze jakiegoś edytora plików dzwiękowych 8253 byłoby pełnią szczęścia :D
Też mnie interesuje chip VI53. Ostatnio testowałem odtwarzanie WAV tym chipem ale na komputerze Вектор-06Ц (emulatorze Emu80) - normalnie kopara mi opadła jak czysto brzmi WAV na VI53  :)
https://zx-pk.ru/threads/11029-vektor-06ts-emulyatsiya-kr580vi53.html?p=1175636&viewfull=1#post1175636 (https://zx-pk.ru/threads/11029-vektor-06ts-emulyatsiya-kr580vi53.html?p=1175636&viewfull=1#post1175636)
Znalazłem też to wideo - interesujący fragment od około 11 minuty:
VI TRACKER (https://www.youtube.com/watch?v=Yf_A16VorHk&t=671s)
z którego wynika iż jest jakiś tracker VI53 ale na komputer Радио-86РК i/lub Апогей БК-01 co mozna przetestować w emulatorze Emu80

Autor wideo ma pliki źródłowe trakera od niejakiego Kakos Nonos (https://kakosnonos.bandcamp.com/) - napisałem w komentarzu aby udostępnił te pliki.

Na wideo autor pokazuje jak przekonwertować muzyczkę z Beepola na format VI53 aby posłuchać w komputerze Апогей БК-01.
Tytuł: Odp: Timer КР580ВИ53 jako generator dźwięku
Wiadomość wysłana przez: damik w 2023.03.30, 22:51:54
Trzymam kciuki  8)
Bo to ciekawy temat do zaimplementowania w komputerze Meritum2 jaki ma fabrycznie miejsce w górnym PCB na taki układ VI53/8253 do generowania dźwięku :)
Tytuł: Odp: Timer КР580ВИ53 jako generator dźwięku
Wiadomość wysłana przez: Gelip w 2023.03.31, 09:23:40
Znalazłem jakiś Muzyczny redaktor VI53 dla komputera Радио-86РК ale on chyba wymaga dorobienia chipu VI53 - wszystko było opisane w rosyjskim czasopiśmie Radio. Edytor jest napisany w BASIC.
Tutaj można pobrać skan artykułu z kodem źródłowym BASIC i instrukcją używania a także link do źródeł (asembler) i skompilowany edytor, który można uruchomić w emulatorze Emu80: Музыкальный редактор для компьютера Радио-86РК (https://zx-pk.ru/threads/13270-radio-86rk-po-stranitsam-zhurnala-quot-radio-quot/page8.html)
Tutaj też o tym pisali i jest schemat jak podłączyć VI53 do komputera Radio-86 RK bo ten chyba nie miał VI53:
http://www.nedopc.org/forum/viewtopic.php?f=39&t=10517&start=15#p130525 (http://www.nedopc.org/forum/viewtopic.php?f=39&t=10517&start=15#p130525)
Natomiast kompatybilny komputer Апогей БК-01 miał już chyba VI53 więc oprogramowanie chyba można używać zamiennie między Апогей БК-01 a Радио-86РК - nie wiem bo wszystko jest po rosyjsku - trzeba by poczytać na Wiki:
Opis komputera Радио-86РК (https://ru.wikipedia.org/wiki/%D0%A0%D0%B0%D0%B4%D0%B8%D0%BE-86%D0%A0%D0%9A)
Opis komputera Апогей БК-01 (https://ru.wikipedia.org/wiki/%D0%90%D0%BF%D0%BE%D0%B3%D0%B5%D0%B9_%D0%91%D0%9A-01)
W załączniku skan artykułu po rosyjsku oraz pliki źródłowe i gotowy do uruchomienia edytor w pliku 06.rka
Tytuł: Odp: Timer КР580ВИ53 jako generator dźwięku
Wiadomość wysłana przez: Gelip w 2023.04.03, 08:24:36
Autor wideo ma pliki źródłowe trakera od niejakiego Kakos Nonos (https://kakosnonos.bandcamp.com/) - napisałem w komentarzu aby udostępnił te pliki.
Autor wideo norduk (https://zx-pk.ru/members/7688-norduk.html) jest na forum zx-pk.ru ale nieaktywny jakiś rok (oznaczony jako R.I.P). Napisałem na forum w temacie gdzie daje linka do swojego wideo, może ktoś swego czasu pobrał ten plik soft.zip i udostępni:
Статья: Написать демо для Радио-86РК (https://zx-pk.ru/threads/34138-statya-napisat-demo-dlya-radio-86rk.html?p=1176117&viewfull=1#post1176117)
To samo w formie artykułu: Написать демо для Радио-86РК (https://zx-pk.ru/content/518-Napisat-demo-dlia-Radio-86RK)

P.S. Napisałem też priva do Kakos Nonos na zx-pk.ru ale coś nie odpowiada a widać iż się logował tydzień temu  :-\
Tytuł: Odp: Timer КР580ВИ53 jako generator dźwięku
Wiadomość wysłana przez: Gelip w 2023.04.03, 12:23:58
Kakos Nonos odpisał na priva i udostępnił pliki i mogę je umieszczać tutaj na forum:
Cytat: Kakos_nonos
Cytat: Gelip
Спасибо. Могу ли я поместить файл на форуме speccy.pl? Я хотел бы преобразовать трекер в Байт 48
Да, конечно. Если кто-то захочет продолжить разработку, то буду рад.
Napisał iż traker nie jest dokończony. Przetestowałem w Emu80 i działa  :P
https://www.youtube.com/watch?v=aqCgLN-L2ME (https://www.youtube.com/watch?v=aqCgLN-L2ME)

Test2 - to jest dobre  8) :)
https://www.youtube.com/watch?v=-n9T1gdaSj8 (https://www.youtube.com/watch?v=-n9T1gdaSj8)
Tytuł: Odp: Timer КР580ВИ53 jako generator dźwięku
Wiadomość wysłana przez: Gelip w 2023.04.03, 20:49:23
Dostałem klawiszologię do edytora. Kakos pisze iż zapisywanie nie działa lub działa źle. Sprawdziłem i po zapisaniu kilku nut zapisywanie działa w emulatorze EMU 1.01 i mogę zapisać piosenkę do pliku .rk no ale to może dlatego iż tylko kilka nut.

Po przetłumaczeniu instrukcji wyszło mi tak:
"Zapis nie został jeszcze wdrożony. Coś się zacina, pojawia się jakiś błąd, nie mogłem od

razu go rozwiązać, odłożyłem na później i tak już zostało."

Edycja paternów:

Strzałki - nawigacja po paternie
z,x,c,v.. q,w,e,r.. - nuty
~ - R-- (znacznik wyłączenia nuty)
Backspace - usuwa nutę
Shift+0..9 - AUTOINC (co ile wsawiać nutę)
Shift+q,w - cykl melodii - górna wartość -> xx . (ustaw kropkę)
Shift+e - włącz/wyłącz przewijanie paternu w czasie odtwarzania SCROLL PATTERN NO/YES
F1/PgUp (Numpad 8,9) - zmniejsz/zwiększ oktawę
F2/F3 (Numpad 1,2) - lewo/prawo w paternie
Esc/F4 (Numpad 3,.) - zmniejsz/zwiększ dolną wartość w paternie
Home (Numpad 7)- wejdź do edytora instrumentów
Enter - odtwarzanie muzyki od bierzącej pozycji
Prawy Ctrl (Delete) - odtwarzanie paternu w pętli
Tab - odtwarzanie muzyki od początku

Edytor instrumentów:

Strzałki - przesuwanie kursora
F1/PgUp (Numpad 8,9) - zmniejsz/zwiększ oktawę
F2/F3 (Numpad 1,2) - zmniejsz/zwiększ wartość
Esc/F4 (Numpad 3,.) - wybór instrumentu od A do Z
Home (Numpad 7) - wejdź do edytora paternów
Shift+q,w - ustaw cykl (usuń/dodaj gwiazdkę)
z,x,c,v.. q,w,e,r.. - graj nuty
Prawy Crtl (Delete) - ustaw M
Backspace - ustaw .
Tab - ustaw D

W edytorze instrumentów są dwie kolumny: w pierwszej są odchylenia półtonów i polecenia a w

drugiej mniejsze odchylenia.

D - szum, ma 191 wartości -96 do -1, 1 do 96 druga kolumna naprzeciw
M - cisza, druga kolumna nie ma znaczenia
. - nie zmieniaj częstotliwości w półtonach, zmiana tylko w drugiej kolumnie
Tytuł: Odp: Timer КР580ВИ53 jako generator dźwięku
Wiadomość wysłana przez: damik w 2023.04.03, 20:58:43
Muszę przyznać że gra to całkiem przyzwoicie, jestem pozytywnie zaskoczony.
W sumie od dawna zastanawiałem się czego tam można się spodziewać po tym układzie timera 8253/КР580ВИ53 i czy warto brnąć tą drogą.
Tytuł: Odp: Timer КР580ВИ53 jako generator dźwięku
Wiadomość wysłana przez: Gelip w 2023.04.05, 17:15:54
@steev
Próbuję skompilować ze źródeł sam odtwarzacz i muzykę ale mi nie wychodzi.

Plan jest taki:
P.S. Jak ivagor przerabiał emulator AY VI53 na Bajta to dodał kilka linii w kodzie asemblera i działa więc w tym przypadku to chyba też nie jest dużo roboty.

Możesz zobaczyć co da się zrobić? Źródła są w załączniku w poście #71 (vi tracker.zip/vitracker-m)
PLAYER.ASM jest kompilowany jako include z pliku VIT.ASM
Jest tam też narzędzie BIN2RKU.EXE które zamienia plik BIN ma format RKU a tu by trzeba było odwrotnie czyli zamienić plik RK na BIN aby wczytać w Bajcie jako LOAD ""CODE

Dałem pause w pliku compile.bat aby skopiować plik FILE.BIN i porównałem plik BIN z RKU:

FILE.BIN - 8282 bajty

FILE.RKU - 8291 bajty

Różnica 9 bajtów 8291 - 8282 = 9

Porównanie w WinHex:

W pliku RKU są dodane 4 bajty na początku 00 00 20 59

i 5 bajtów na końcu 00 00 E6 A5 F9

Więc plik FILE.RKU (VI TRACKER) to dane binarne z dodanym nagłówkiem i stopką dla emulatora

W pliku RK zapisanym przez VI TRACKER jest podobnie - na końcu 6 bajtów tylko nie wiem jak początek.

Przykładowa muzyka z trackera jest w pliku 1234.rk w folderze ze źródłami

P.S. Komputer Apogey BK-01C nie ma żadnego systemu operacyjnego tylko monitor z którego uruchamia się programy z taśmy:
Имеет ПЗУ объемом 4 Кб с программой Монитор, которая позволяет загружать/сохранять программы, просматривать/изменять оперативную память и в общем отлаживать компьютер.

PL Ma 4 -KB ROM z programem monitorującym, który umożliwia ładowanie/zapisywanie programów, przeglądanie/zmienianie pamięci RAM i ogólnie na debugowanie komputera. (https://zx-pk.ru/wiki/%D0%90%D0%BF%D0%BE%D0%B3%D0%B5%D0%B9_%D0%91%D0%9A-01)

Tutaj opis i linki np. do instrukcji komputera:
Апогей БК-01 na emuverse.ru (http://www.emuverse.ru/wiki/%D0%90%D0%BF%D0%BE%D0%B3%D0%B5%D0%B9_%D0%91%D0%9A-01)