Jeśli dobrze to kminię to program po pierwszym NEXT A wraca do pętli w linii 100 po czym napotyka RETURN dla którego nie ma stosie adresu powrotnego. Przebuduj ten program. najlepiej kolejne wartości dźwięków zapisz jako liczby w instrukcji DATA a potem czytaj je komendą READ. Będzie przejrzyściej i zaoszczędzisz sporo pamięci.
Takie spaghetti chyba nie zadziała - nie wiem jak dokładnie BASIC to zinterpretuje (pewnie mono zaraz przyjdzie i wyjaśni), ale posłuchaj urborga. Rozwiązanie z kolejnymi nutkami w liniach DATA to idiomatyczna metoda brzdękania w BASIC.
Logiczniej byłoby w linii 10 umieścić pętlę FOR a instrukcję SOUND w linii do której skaczesz z użyciem GOSUB. Pomiędzy kolejnymi GOSUB wystarczyłoby tylko zmieniać wartość zmiennej A. Na przykład doczytując kolejną wartość z linii DATA poleceniem READ.
Skakanie do różnych linii w celu grania różnych dźwięków to zły pomysł, bo czym linia dalej, tym dłużej to zajmuje. Kiedyś napisałem pochód świętych, jak byłem jeszcze świeżakiem i strasznie się dziwiłem, że gra coraz wolniej... Musiałem korygować pętle opóźniające. Wyglądało to tak: 10 SOUND 0,x,y,z 20 FOR I=1 TO 100 30 NEXT I 40 SOUND ...
3 linijki urborga są genialne - działają idealnie - tylko proszę o odpowiedź na moje ostatnie pytania? :) I jeszcze jedno gdy wstawiam w DATA 0,0 by zrobić pauzy w melodii - z głośnika słychać "pyk, pyk" jak to ominąć?
Cieszę się że zadziałało. Pisałem z głowy bez sprawdzania a ponieważ nie programowałem w Basicu od wielu lat nie byłem pewny czy coś nie pomyliłem. READ przy pierwszym użyciu odczytuje pierwszą daną z linii DATA. Przy drugim kolejną itd. Gdy użyje się więcej razy niż jest danych to wyskoczy błąd więc trzeba uważać. Jak się domyślam jest jakiś wskaznik który element należy odczytać. Można było jakoś ten wskaźnuk przestawiać i odczytać konkretny element ale już dokładnie nie pamiętam jak. Może przez READ z parametrem w nawiasie? Trzeba by sięgnąć do literatury.
A dźwięk pyka bo w liniach data masz parametry wysokości dźwięku a nie głośności.
Sprawdziłem. Ustawianie linijki DATA z której nastąpi odczyt ustawia się instrukcją RESTORE. POKE 182,N zaś ustawia wskaźnik odczytu na element N.
To i ja się przyłącze skoro temat o muzyczkach w Basic-u ;) Kiedyś dawno temu za dzieciaka miałem takie muzyczki na Atari zrobione w Basicu Nie byłem ich autorem i nie pamiętam kto był ale było ich całkiem sporo Czy na AOL znajdę gdzieś takie do pobrania?
Edit: Co pamiętam: - Amorada - Digi Loo - Beverly Hills Cop (IMHO najlepsza wersja gliniarza jaką kiedykolwiek zrobiono na Atari, i jeszcze wersja Tomka Liebicha w demie Axel), - Oxygene
z muzyczkami w basicu jest problemik w asma, ale teraz będzie łatwiej - kiedyś zrobiłem dla Mikera 2 muzyczki Kuby H. z basica do wrzucenia do asmy - Miker zgrał z altirry sap type-r a ja napisałem programik, który to depakował i odgrywał. Teraz jest zdaje się jakiś toolkit do kompresji i releasów sap type-r, więc możnaby szybko stare basicowe utworki pozgrywać.