energy.scene.pl

Popularny magazyn na ośmiobitowe Atari

Wybierz muzykę:

Energy 1: 1 2 3 4 5
Energy 2: 1 2 3 4 5 6 7 8 9 10 11 12
Player MPT - krótszy od najkrótszego

Fox
autor: fox

W poprzednim numerze "Energy" kol. Jaskier zaprezentował dwa playery muzyki w formacie MPT. Ja nie będę taki hojny i podzielę się z wami tylko jednym.

Player ten powstał przeszło rok temu na potrzeby takiego interka... Jak ono się nazywało? Hmmm... chyba miało coś wspólnego z warcabami.

Ale - wracając do tematu - tak naprawdę, to playera nie napisałem sam, a tylko okroiłem (i trochę zoptymalizowałem) player Jaskiera. Okroiłem do tego stopnia, że odgrywa tylko jedną muzyczkę, ale za to nie wymaga inicjalizacji.


A teraz Zalety, Wady i Obsługa w skrócie:


Z., W. i O.


;-) A tak na poważnie to:


Zalety:

- wykorzystuje 12 bajtów na stronie 0

- jest prosty w obsłudze

- jest krótszy od "wersji najkrótszej" Jaskiera

- jest szybszy od playerów Jaskiera

- ustawia rejestry Pokeya na początku procedury, a nie na końcu. Jest to jedyny znany mi player, który naprawdę gra 50 razy na sekundę, równiutko niezależnie od użytych instrumentów.


Wady:

- nie odgrywa sampli

- nie jest w 100% kompatybilny z playerem Jaskiera, ponieważ wprowadziłem pewne modyfikacje. Wydaje mi się, że nie powinny one mieć wpływu na jakość muzyki - jeśli jest inaczej, daj mi znać! ("Player plays good or money back")

- odgrywa tylko jedną muzyczkę, zawsze od początku


Obsługa:

- asemblując player należy ustawić adres muzyczki, jej tempo oraz długość paternu. Może ktoś uzna za kłopotliwe przepisywanie tych parametrów z MPT, ale przecież i tak zazwyczaj trzeba odpalić MPT, żeby przestawić adres muzyczki. Chyba nie będzie skomplikowane przepisanie dwóch liczb więcej?

- jeśli chcemy słyszeć muzykę, musimy co ramkę wywoływać player

- warto jednak najpierw (na początku programu) wpisać 3 do $d20f

- chcąc przywrócić ciszę należy przestać wywoływać player i wyzerować komórki $d200-$d208

Aby nie było wątpliwości, oto przykład:

 lda #3
 sta $d20f
loop lda 20
 cmp 20
 beq *-2
 jsr player
 lda #8
 and $d20f
 bne loop
 ldx #8
 sta $d200,x
 dex
 bpl *-4

I to wszystko: żadnych procedur inicjujących, nie trzeba pamiętać, że w Y ma być młodszy bajt adresu itd.


Można przerabiać ten player do woli. Jeśli go wykorzystasz, wspomnij o mnie w creditsach...


Plik do ściągnięcia:
MPTPLFOX.ASM


Poprzednia strona: Odtwarzanie muzyki CMC i MPT
Następna strona: Lekcja asemblera cz. 1