General Sound: Porovnání verzí

Smazaný obsah Přidaný obsah
General Sound v emulátorech ZX Spectra, frekvence přehrávání samplů, reference
Rozšíření popisu hardware zařízení
Řádek 4:
 
Interface umožňuje přehrávání [[MOD|hudebních modulů]] počítačů [[Amiga]]. Podporuje veškeré příkazy programu [[ProTracker]], kromě příkazů ''E01'' a ''EFX''.<ref>[http://8bit.yarek.pl/interface/zx.generalsound/index.html General Sound : ZX Spectrum] na 8bit.yarek.pl</ref> Také je možné přehrávání samostatných samplů. Interface umožňuje také podmíněné přehrávání samplů, kdy je tento přehrán pouze v případě, že je k dispozici volný kanál, nebo je na některém z kanálů přehráván sampl s nižší prioritou, než jakou má sampl, který má být přehrán.
 
V roce [[2011]] byl vyvinut podobný hudební interface [[SID-Blaster/ZX]] pro přehrávání hudeb hudebním čipem [[SID (zvukový generátor)|SID]].<ref>http://zxbyte.ru/sid_blaster_en.htm</ref>
 
Přehrávání hudby pomocí General Soundu může být na ZX Spectru emulováno programovým emulátorem využívajícím hudebního čipu [[AY-3-8912]], možné je i využití hudebního interface [[Turbo Sound]].<ref>{{Citace periodika
Řádek 24 ⟶ 22:
| issn =
}}</ref> General Sound je emulován v [[emulátor počítače ZX Spectrum|emulátoru ZX Spectra]] [[UnrealSpeccy]].<ref>[http://omegahg.com/emul.htm ZX Spectrum Emulator] {{en}} na omegahg.com</ref><ref>[http://zxaaa.untergrund.net/EMUL.html Emulator's ZX Spectrum] {{ru}} na zxaaa.[[untergrund.net]]</ref>
 
V roce [[2011]] byl vyvinut podobný hudební interface [[SID-Blaster/ZX]] pro přehrávání hudeb hudebním čipem [[SID (zvukový generátor)|SID]].<ref>http://zxbyte.ru/sid_blaster_en.htm</ref>
 
== Technické informace ==
Řádek 33:
 
=== Používané porty ===
General Sound používá ke své činnosti dva porty počítače, ke kterému je připojen:<ref>{{Citace periodika
| příjmení =
| jméno =
Řádek 76:
| issn =
}}</ref> tudíž tato dvě zařízení nelze použít současně.
 
=== Vnitřní procesor Z80 ===
Protože interface obsahuje více paměti, než je adresový rozsah jeho procesoru Z80, je nutné paměť [[stránkování paměti|stránkovat]]:
{|
|+ Schéma stránkování vnitřní paměti {{Malé|(stránky paměti RAM jsou číslovány od 1, nikoliv od 0, při 512 KiB RAM není možné přistránkovat stránku 16)}}
| || {{Malé|65535<br>49152}} || rowspan="2" style="border-style: solid; border-width: 1px; border-color: black;" | ROM || rowspan="2" style="border-style: solid; border-width: 1px; border-color: black;" | RAM 1 || rowspan="2" style="border-style: solid; border-width: 1px; border-color: black;" | RAM 2 || rowspan="2" style="border-style: solid; border-width: 1px; border-color: black;" | RAM 3 || rowspan="2" style="border-style: solid; border-width: 1px; border-color: black;" | RAM 4 || ... || rowspan="2" style="border-style: solid; border-width: 1px; border-color: black;" | RAM 15
|-
| || {{Malé|49151<br>32768}} ||
|-
| || {{Malé|32767<br>16384}} || style="border-style: solid; border-width: 1px; border-color: black;" | spodní polovina RAM 1 || || || || || ||
|-
| || {{Malé|16383<br>0}} || style="border-style: solid; border-width: 1px; border-color: black;" | spodní polovina ROM || || || || || ||
|}
 
Vnitřní procesor interface používá ke své činnosti následující porty:
 
{| class="wikitable"
|- style="text-align: center;"
| desítkově || šestnáctkově || význam
|- style="text-align: right;"
| 0 || 00 || style="text-align: left;" | číslo stránky RAM v adresovém prostoru od 32768 (stránka č. 0 = ROM)
|- style="text-align: right;"
| 1 || 01 || style="text-align: left;" | čtení obsahu příkazového registru (registru BB z pohledu počítače)
|- style="text-align: right;"
| 2 || 02 || style="text-align: left;" | čtení obsahu datového registru (registru B3 z pohledu počítače)
|- style="text-align: right;"
| 3 || 03 || style="text-align: left;" | zápis obsahu datového registru (registru B3 z pohledu počítače) - odeslání dat do ZX Spectra
|- style="text-align: right;"
| 4 || 04 || style="text-align: left;" | stavový registr<BR>{{Malé|bit 7 - datový bit, bit 0 - příznak toho, že příkazový registr obsahuje nový příkaz od ZX Spectra}}
|- style="text-align: right;"
| 5 || 05 || style="text-align: left;" |zápisem jakékoliv hodnoty na port dojde k vynulování bitu D0 stavového registru (port 04/port BB)
|- style="text-align: right;"
| 6 || 06 || style="text-align: left;" | nastavení hlasitosti kanálu A
|- style="text-align: right;"
| 7 || 07 || style="text-align: left;" | nastavení hlasitosti kanálu B
|- style="text-align: right;"
| 8 || 08 || style="text-align: left;" | nastavení hlasitosti kanálu C
|- style="text-align: right;"
| 9 || 09 || style="text-align: left;" | nastavení hlasitosti kanálu D
|- style="text-align: right;"
| 10 || 0A || style="text-align: left;" | nastavení bitu D7 stavového registru na nerovný hodnotě bitu D0 portu 0
|- style="text-align: right;"
| 11 || 0B || style="text-align: left;" | nastavení bitu D0 stavového registru na rovný hodnotě bitu D5 portu 6
|}
 
D/A převodníky jsou připojeny do adresového prostoru procesoru 6000h - 7FFFh paralelně k paměti. Do D/A převodníku jsou data posílána při čtení z paměti,<ref>{{Citace periodika
| příjmení =
| jméno =
| autor = PSB/Halloween
| odkaz na autora =
| spoluautoři =
| titul = Прямое программирование General Sound
| periodikum = Adventurer
| odkaz na periodikum = Adventurer (časopis)
| rok = 2002
| měsíc = март
| ročník =
| číslo = 13
| strany =
| url = http://zxpress.ru/article.php?id=10031
| issn =
}}</ref> při zápisu do paměti data do D/A převodníků zapisována nejsou.
 
{| class="wikitable"
|- style="text-align: center;"
| od adresy || do adresy || D/A převodník
|- style="text-align: right;"
| 6000<BR>6100<BR>6200<BR>6300 || 60FF<BR>61FF<BR>62FF<BR>63FF || D/A převodník kanálu A<BR>D/A převodník kanálu B<BR>D/A převodník kanálu C<BR>D/A převodník kanálu D
|- style="text-align: right;"
| 6400<BR>6500<BR>6600<BR>6700 || 64FF<BR>65FF<BR>66FF<BR>67FF || D/A převodník kanálu A<BR>D/A převodník kanálu B<BR>D/A převodník kanálu C<BR>D/A převodník kanálu D
|- style="text-align: center;"
| ... || ... || ...
|- style="text-align: right;"
| 7C00<BR>7D00<BR>7E00<BR>7F00 || 7CFF<BR>7DFF<BR>7EFF<BR>7FFF || D/A převodník kanálu A<BR>D/A převodník kanálu B<BR>D/A převodník kanálu C<BR>D/A převodník kanálu D
|}
 
== Reference ==