Uživatelské nástroje

Nástroje pro tento web


lnxspectrum:lnxtracker

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Obě strany předchozí revizePředchozí verze
Následující verze
Předchozí verze
lnxspectrum:lnxtracker [2019/05/17 16:23] – [Assembler] lanexlnxspectrum:lnxtracker [2019/05/17 16:52] (aktuální) lanex
Řádek 11: Řádek 11:
 Tato hudební rutina má velikost kolem 2 KB, a umí ovládat 2xAY a SAA čip, a to i současně. Pokud se použije jen ta část pro AY, část SAA se nebude do projektu kompilovat, stejně tak naopak. Pokud se použije jen SAA, AY části nebudou použity. Tato hudební rutina má velikost kolem 2 KB, a umí ovládat 2xAY a SAA čip, a to i současně. Pokud se použije jen ta část pro AY, část SAA se nebude do projektu kompilovat, stejně tak naopak. Pokud se použije jen SAA, AY části nebudou použity.
  
-Ovládání je jednoduché. Hudbu inicializujeme zavoláním příkazu **mus.load_play**zastavíme ji zavoláním **mus.stop**. Důležité je, aby každém přerušení (50x za sekundu) byla zavolána obsluhujicí rutina **mus.int**, a to i v případě, že se zrovna hudba nepřehrává. Je to zvukový engine, který musí být stále aktivní.+Základní ovládání je jednoduché. Hudbu inicializujeme vložením adresy naší skladby do registru DE, a zavoláním příkazu **mus.load_play**. Přehrávanou hudbu zastavíme zavoláním **mus.stop**. Důležité je, aby při každém přerušení (50x za sekundu) byla zavolána rutina **mus.patterns**, která se stará o přehrávání hudby, a rutina **mus.int**, která má na starosti přehrávání vzorků na čipech. Volány musí být i v případě, že se zrovna hudba nepřehrává. Je to zvukový engine, který musí být stále aktivní. Zvukový engine (verze 3.4) potřebuje většinu registrů procesoru. Jsou to HL, DE, BC, AF, HL', DE', BC', IX.
  
-**mus.int** máme několik druhů, podle použití:+^mus.int máme několik druhů, podle použití:^^
 |mus.int_ay |pro přehrávání jen jedním AY čipem, standartní pro ZX Spectrum 128.| |mus.int_ay |pro přehrávání jen jedním AY čipem, standartní pro ZX Spectrum 128.|
 |mus.int_ts |pro přehrávání dvou AY čipů, tzv. TurboSound.| |mus.int_ts |pro přehrávání dvou AY čipů, tzv. TurboSound.|
Řádek 19: Řádek 19:
 |mus.int_all |pro použití všech předchozích variant.| |mus.int_all |pro použití všech předchozích variant.|
  
- +Ukázkový základní kód pro přehrávání hudby na SAA:
- +
  
  ; LnxSpectrum ASM editor (www.ilnx.cz) 17.5.2019  ; LnxSpectrum ASM editor (www.ilnx.cz) 17.5.2019
   
- org 32768+ org 32768
   
- ld de,Music1 + ; Inicializace hudby 
- call mus.load_play+  
 + ld de,Music1 
 + call mus.load_play
   
-Sound routine called each interrupt (50x per sec). +Simulace přerušení, rutinu zavoláme 50x za sekundu 
- ; Interrupt simulation: +  
- + ei
- ei+
  interrupt call mus.Patterns ;Music control  interrupt call mus.Patterns ;Music control
- call mus.int_SAA ;Sound engine+ call mus.int_SAA ;Sound engine
   
- halt + halt 
- jr interrupt+ jr interrupt
   
- include "LnxTrackerEngine.slb"+ ; Tady připojíme přehrávací rutinu pro LnxTracker 
 +  
 + include "LnxTrackerEngine.slb" 
 +  
 + ; Tady připojíme naší hudbu vyexportovanou z LnxTrackeru 
 +  
 + Music1 include "shadow of the beast 3.bin" 
 + 
  
- Music1 include "shadow of the beast 3.bin" 
lnxspectrum/lnxtracker.txt · Poslední úprava: 2019/05/17 16:52 autor: lanex

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki