Autor Wątek: Timer КР580ВИ53 jako generator dźwięku  (Przeczytany 62732 razy)

pear

  • *****
  • Wiadomości: 5509
  • Miejsce pobytu:
    Będzin
  • Z80 only
Odp: Timer КР580ВИ53 jako generator dźwięku
« Odpowiedź #15 dnia: 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 na której jest wszystko włącznie ze schematem 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
To mi wiele nie pomoże. Mam podstawowy słuch muzyczny - słyszę, że coś gra, czasami wiem skąd ;)
« Ostatnia zmiana: 2013.06.06, 19:14:51 wysłana przez pear »
ZX/Enterprise/CPC/Robotron/C128D

Gelip

  • *****
  • Wiadomości: 765
    • Sysprep WinXP SP2 64-bit for pure UEFI with ACPI, AHCI, NVMe, USB 3.x
Odp: Timer КР580ВИ53 jako generator dźwięku
« Odpowiedź #16 dnia: 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. Nie wiem czemu jeszcze nie dodał mojego "Bajta", wysłałem mu zdjęcia jakiś czas temu i miał umieścić.
"Byte" Personal Computer
Брестское ПО средств вычислительной техники

pear

  • *****
  • Wiadomości: 5509
  • Miejsce pobytu:
    Będzin
  • Z80 only
Odp: Timer КР580ВИ53 jako generator dźwięku
« Odpowiedź #17 dnia: 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").
ZX/Enterprise/CPC/Robotron/C128D

Gelip

  • *****
  • Wiadomości: 765
    • Sysprep WinXP SP2 64-bit for pure UEFI with ACPI, AHCI, NVMe, USB 3.x
Odp: Timer КР580ВИ53 jako generator dźwięku
« Odpowiedź #18 dnia: 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 np. DivIDE :-)
"Byte" Personal Computer
Брестское ПО средств вычислительной техники

pear

  • *****
  • Wiadomości: 5509
  • Miejsce pobytu:
    Będzin
  • Z80 only
Odp: Timer КР580ВИ53 jako generator dźwięku
« Odpowiedź #19 dnia: 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.
« Ostatnia zmiana: 2013.06.06, 20:20:07 wysłana przez pear »
ZX/Enterprise/CPC/Robotron/C128D

Gelip

  • *****
  • Wiadomości: 765
    • Sysprep WinXP SP2 64-bit for pure UEFI with ACPI, AHCI, NVMe, USB 3.x
Odp: Timer КР580ВИ53 jako generator dźwięku
« Odpowiedź #20 dnia: 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 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 w załączniku plik Byte EMU.rar
« Ostatnia zmiana: 2013.06.06, 20:33:59 wysłana przez Gelip »
"Byte" Personal Computer
Брестское ПО средств вычислительной техники

pear

  • *****
  • Wiadomości: 5509
  • Miejsce pobytu:
    Będzin
  • Z80 only
Odp: Timer КР580ВИ53 jako generator dźwięku
« Odpowiedź #21 dnia: 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.
« Ostatnia zmiana: 2013.06.06, 20:49:34 wysłana przez pear »
ZX/Enterprise/CPC/Robotron/C128D

Gelip

  • *****
  • Wiadomości: 765
    • Sysprep WinXP SP2 64-bit for pure UEFI with ACPI, AHCI, NVMe, USB 3.x
Odp: Timer КР580ВИ53 jako generator dźwięku
« Odpowiedź #22 dnia: 2013.06.06, 21:15:44 »
"Byte" Personal Computer
Брестское ПО средств вычислительной техники

Gelip

  • *****
  • Wiadomości: 765
    • Sysprep WinXP SP2 64-bit for pure UEFI with ACPI, AHCI, NVMe, USB 3.x
Odp: Timer КР580ВИ53 jako generator dźwięku
« Odpowiedź #23 dnia: 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ę 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.
"Byte" Personal Computer
Брестское ПО средств вычислительной техники

steev

  • *****
  • Wiadomości: 1362
  • Miejsce pobytu:
    inode 42
Odp: Timer КР580ВИ53 jako generator dźwięku
« Odpowiedź #24 dnia: 2013.06.07, 15:24:50 »
Po pierwsze, licznik jest dwubajtowy :)
Po drugie : http://zxbyte.ru/doc/3way_byte.zip
Machines should work. People should think.

Gelip

  • *****
  • Wiadomości: 765
    • Sysprep WinXP SP2 64-bit for pure UEFI with ACPI, AHCI, NVMe, USB 3.x
Odp: Timer КР580ВИ53 jako generator dźwięku
« Odpowiedź #25 dnia: 2013.06.07, 15:42:18 »
Po pierwsze, licznik jest dwubajtowy :)
Po drugie : 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.
"Byte" Personal Computer
Брестское ПО средств вычислительной техники

steev

  • *****
  • Wiadomości: 1362
  • Miejsce pobytu:
    inode 42
Odp: Timer КР580ВИ53 jako generator dźwięku
« Odpowiedź #26 dnia: 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
« Ostatnia zmiana: 2013.06.07, 17:31:37 wysłana przez steev »
Machines should work. People should think.

Gelip

  • *****
  • Wiadomości: 765
    • Sysprep WinXP SP2 64-bit for pure UEFI with ACPI, AHCI, NVMe, USB 3.x
Odp: Timer КР580ВИ53 jako generator dźwięku
« Odpowiedź #27 dnia: 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
« Ostatnia zmiana: 2013.06.07, 19:08:01 wysłana przez Gelip »
"Byte" Personal Computer
Брестское ПО средств вычислительной техники

pear

  • *****
  • Wiadomości: 5509
  • Miejsce pobytu:
    Będzin
  • Z80 only
Odp: Timer КР580ВИ53 jako generator dźwięku
« Odpowiedź #28 dnia: 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ę 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
ZX/Enterprise/CPC/Robotron/C128D

Gelip

  • *****
  • Wiadomości: 765
    • Sysprep WinXP SP2 64-bit for pure UEFI with ACPI, AHCI, NVMe, USB 3.x
Odp: Timer КР580ВИ53 jako generator dźwięku
« Odpowiedź #29 dnia: 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 ale podobno tak nie można bo program musi działać w pamięci od adresu #100
« Ostatnia zmiana: 2013.06.08, 09:50:02 wysłana przez Gelip »
"Byte" Personal Computer
Брестское ПО средств вычислительной техники