Ready/Run

Takie sobie archiwum listingów ze starych magazynów komputerowych


Perkusja
  • Język programu: Basic
  • Platforma: ZX Spectrum
  • Kod zamieszczono w Bajtek 7/1989
  • Autor listingu: Michał Sobieszuk
  • Listing nadesłał: Faust

Stan listingu:

1
Listing przepisany - zawiera błędy, nieuruchamia się na emulatorach lub realnej platformie

Amstrad, po przejęciu firmy Sinclaira, nie tytko utrzymał produkcję ZX Spectrum 128, ale wprowadził na rynek dwa nowe modele ZX Spectrum oznaczone +2 i +3, zgodne ze starym 128 KB, a nawet wyposażone w tryb emulacji Spectrum 48.


Te trzy komputery różnią się od swoich młodszych braci nie tylko pamięcią, ale i układem do generacji dźwięku. „Gumiak“ nigdy nie miał zbyt wielkich możliwości dźwiękowych, ale już w ZX Spectrum 128 wprowadzono trójkanałowy generator AY 3—8910, który wcześniej zastosowany był w ośmiobitowych maszynach Amstrada.
Zwiększone możliwości muzyczne Spectrum wykorzystywane są w wielu grach, powstałych w 1987 roku i później. Istnieje także kilka programów muzycznych (ja miałem do czynienia na razie z trzema — The Music Box 128, Music Studio 128 i Mozart).
Po takim wstępie chciałbym zaprezentować procedurę, która może przydać się tym wszystkim, którzy w swoich programach chcieliby wykorzystywać dźwięki z generatora a zwykła instrukcja PLAY już im nie wystarcza. Po uruchomieniu programu otrzymujemy do dyspozycji dziesięć dźwięków o perkusyjnym brzmieniu. Większa jego część jest napisana w kodzie maszynowym lecz do prawidłowej pracy potrzebny jest choć fragment programu w Basicu — co najmniej od linii 200. Pomysł został zaczerpnięty z programami MICRORYTHM i jest to jego najbardziej uproszczona wersja. Opis programu:
5—80  przepisanie  do  pamięci kodu maszynowego 
100—130  przepisanie do  pamięci kodu dźwięków
200—210 odtwarzanie dźwięków
220 wyłączenie generatora
250 kody dźwiękowe
300 graficzne odwzorowanie aktualnego dźwięku
Najważniejszą częścią programu jest kod maszynowy, umieszczony w dwóch niezbyt odległych od siebie miejscach pamięci. Ze względu na takie rozmieszczenie konieczne jest użycie instrukcji skoku. Z tego powodu kod nie jest relokowalny.
Program „Perkusja“ może być uruchomiony także na Spectrum 48 z dołączonym generatorem dźwięków i dlatego dźwięk wyłączany jest instrukcjami OUT a nie PLAY.
W linii 50 umieszczamy cyfry od 0 do 9 — dane dla perkusji. Trzeba jednak pamiętać, by na jej końcu znajdowała się liczba 255 i cyfr nie było więcej niż 280. Potem można już uruchomić procedurę instrukcją RUN. Komputer zamilknie na kilka chwil, by wczytać kod maszynowy.
Przy prawidłowym przepisaniu procedury, w lewym górnym rogu ekranu powinno pojawić się słowo ZAPIS. Oznacza to, że komputer przystąpił do przepisywania kodów dźwięków. Czas wykonywania tej operacji zależny jest od ilości cyfr w linii 250. Następnie, także w lewym górnym rogu pojawi się napis ODTW, oznaczający rozpoczęcie odtwarzania zapisanych dźwięków. Ponadto na środku ekranu pojawią się cyfry od 0 do 9 i czarny pas, który będzie wskazywał numer dźwięku odtwarzanego w danym momencie.
Program jest tylko propozycją wykorzystania zwiększonych możliwości komputera ZX Spectrum 128 i od niedawna, również 48. Jego rozbudowę pozostawiam Czytelnikom. Chciałbym jednocześnie zachęcić Was do eksperymentów z tym komputerem. Często ich efekty są zadziwiające. Posłuchajcie tylko muzyki z takich gier jak TURBO BOAT czy PROFESIONAL BMX SIMULATOR i spróbujcie ułożyć podobne. Życzę powodzenia.