MUZYKA W PRZERWANIACH

Dzięki wiadomościom zawartym w "Bajtku" przestałem bać się przerwań i napisałem program w języku maszynowym, który jest wykonywany co 1/50 sekundy w czasie przerwania synchronizacji pionowej.

Opracowana przeze mnie procedura może wykonywać proste melodie (do 93 nut), lecz nie przeszkadza w normalnej pracy Basica. Można więc wykorzystać ją do uzyskania podkładu muzycznego we własnym programie, zaś przy pisaniu programu może ona umilić pracę.

Dla uzyskania takiego efektu trzeba wpisać zamieszczony program i uruchomić go. Program ten jest potem zbędny i można go skasować instrukcją NEW. Przerwanie pracy programu następuje po naciśnięciu klawisza RESET lub po wpisaniu POKE 548, 138: POKE 549, 194. Ponowne włączenie muzyki uzyskuje się po wpisaniu POKE 548, 0: POKE 549, 6. Jeśli chcemy uzyskać inną melodię, to trzeba wpisać do komórki 1541 liczbę nut pomnożoną przez 2 (maksymalnie 186), a do komórki 1582 wielkość pauzy między nutami (maksymalnie 255). Teraz jest to odpowiednio liczba 132 w wierszu 90 i trzecia liczba 0 w wierszu 100. Następnie trzeba zmienić zawartość instrukcji DATA od wiersza 120. Kolejno trzeba tam wpisać dla każdej nuty wysokość dźwięku (wartości takie jak w instrukcji SOUND) i czas jego trwania. Na końcu w wierszu 70 wpisujemy graniczną wartość pętli FOR/NEXT odpowiednią dla liczby nut wprowadzonych do instrukcji DATA. Dla Czytelników zainteresowanych programowaniem w języku maszynowym podaję dodatkowo źródłowy wydruk procedury w asemblerze MAC/65.

Maciej Rempiński{(lat 15)}