--------------------------------------- Instrukcja obs ugi programu: Theta Music Composer v. 1.00 czeÅÙ 1 --------------------------------------- Theta Music Composer (w skrcie: TMC) to program muzyczny majÃcy (w zamierzeniu autora) wykorzystywaÙ w jak najwi¿kszej cz¿Åci rozszerzenie kompu- terw ATARI XL/XE, jakim jest wbudowa- nie w niego drugiego uk adu muzycznego. PoniewaÀ jednak autor nie jest muzykiem (chociaÀ kiedyÅ tak mu si¿ wydawa o) to b¿dzie szczerze wdzi¿czny za wszel- kie listy z uwagami, na adres: Marcin Lewandowski Jaskier/Taquart ul.WyszyÜskiego 15/22 87-100 TORUß e-mail: jaskier@mat.uni.torun.pl Program tworzy ca oÅÙ z nast¿pujÃ- cymi plikami: TMC.COM -program, TMC1.DOC -ta instrukcja, TMC2.DOC -cz¿ÅÙ 2 instrukcji, TMCPLAY.ASM -player, ktry odgrywa muzyczki w TMC. JeÅli chcesz, moÀesz go dowolnie przerabiaÙ, aby uÀyÙ w swoim programie, ale nie radz¿ wsadzaÙ tego przerobionego playera do TMC za- miast standardowego, chyba Àe poszuku- jesz nowych moÀliwoÅci zawieszenia systemu. Program obs uguje poprawnie takie rozszerzenia, w ktrym dost¿p do dru- giego POKEY-a otrzymuje si¿ przy poda- niu adresw z zakresu $d210-$d21f. JeÅli tak nie jest to dzia anie progra- mu b¿dzie identyczne jak na komputerze bez rozszerzenia. Przy pisaniu tej instrukcji przyjÃ- em za oÀenie, Àe uÀytkownik programu biegle pos uguje si¿ systemem szesnast- kowym (ktry niepodzielnie panuje w ca ym programie) oraz zna (przynajmniej pobieÀnie) takie programy muzyczne jak: CMC i MPT, ktre by y dla mnie wzorem. Ponadto uzna em, Àe wi¿kszoÅÙ rozsÃd- nych uÀytkownikw pod Ãcza standardowe- go POKEY-a na kana lewy, a dodatkowego na prawy. W komputerach bez rozszerzenia wszystkie odwo ania do POKEY-w b¿dà zawsze trafiaÙ do tego samego uk adu, poniewaÀ zaÅ najpierw wstawiane sà wartoÅci prawego, a nast¿pnie lewego kana u, wydawaÙ by si¿ mog o, Àe po prostu b¿dzie s yszalny tylko lewy kana . Niestety tak nie jest. Mimo iÀ pomiedzy obydwoma wpisami mijajà tylko 4 cykle,wyra nie s yszalny jest terkot, ktrego g oÅnoÅÙ roÅnie wraz z g oÅno- Åcià prawego kana u. Na szcz¿Åcie nie jest to jednak taki wielki problem. Znacznie gorszà sprawà jest to, Àe komrka AUDCTL ($d208) ma chyba pewnà zw ok¿ w odbieraniu sygna u, gdyÀ jeÅli na prawym kanale nie uÀywamy d wi¿kw filtrowanych, a na lewym tak, to zapom- nijmy o tym, Àe je us yszymy. Genera- tory wydadzà z siebie taki charkot, Àe trzeba zatykaÙ uszy. Dlatego pami¿taj! JeÀeli piszesz muzyczk¿, ktra ma dob- rze brzmieÙ rwnieÀ na mono, to jeÀeli w AUDCTL standardowego POKEY-a usta- wiasz jakieÅ bity, to musisz je teÀ ustawiÙ w POKEY-u dodatkowym (ale jeÀeli na prawym kanale uÀywasz filtrw to na lewym nie musisz tego robiÙ). WyjaÅni¿ teraz kilka za oÀeÜ odnoÅ- nie programu. Po pierwsze, dlaczego Theta? Niektrzy moÀe znajà program muzyczny Delta Music Composer, ktrego autorem jest najlepszy koder na ATARI. Delta jest czwartà literà alfabetu gre- ckiego i program gra na czterech kana- ach, Theta jest sma i gra na oÅmiu kana ach. RwnieÀ reszta parametrw jest podwojeniem Delty: 128 patternw i 64 instrumenty. Doda em tutaj rwnieÀ (w celu zwi¿kszenia jakoÅci d wi¿kw) moÀliwoÅÙ wywo ywania playera do czte- rech razy na ramk¿. Z tego teÀ powodu nie naleÀy si¿ spodziewaÙ od playera (chociaÀby z powodu jakoÅci d wi¿kw, iloÅci trackw i wywo aÜ na ramk¿) jakiejÅ rewelacyjnej pr¿dkoÅci. Procedura odgrywajÃca d wi¿ki zajmuje w maksimum 4000 cykli, a procedura prze- szukujÃca pattern i song 2500. Tak wi¿c ca oÅc moÀe zajmowaÙ nawet 18500 cykli. No cÀ. Ten program nie powsta do tego aby go umieszczaÙ w demach, od tego jest Delta. WyjaÅni¿ teraz jak w moim programie robione jest stereo. Jak si¿ juÀ pewnie domyÅli eÅ nie jest to robione w ten sposb, Àe sà sobie cztery tracki i g oÅnoÅci d wi¿kw na nich si¿ znajdu- jÃcych sà w cz¿Åci wsadzane do lewego kana u, a w cz¿Åci do prawego. Ale nie jest tak rwnieÀ, Àe jest sobie osiem trackw i d wi¿ki znajdujÃce si¿ na pierwszych czterech wsadzane sà do le- wego kana u, a z czterech nast¿pnych do prawego. Obydwa te rozwiÃzania majà pewne wady. W pierwszym z nich nie moÀ- na korzystaÙ w pe ni z dobrodziejstw oÅmiu osobnych generatorw POKEY-w, a w drugim d wi¿ki sà rozmieszczane albo na prawym, albo na lewym kanale, a umieszczenie ich pomi¿dzy kana ami jest znacznie utrudnione (ale moÀliwe). RwnieÀ nie zrobi em tak jak radzili mi to niektrzy, to znaczy, nie Ãcz¿ tra- ckw tak aby np: 2 d wi¿ki by y stereo, 2 na lewym i 2 na prawym kanale. Po prostu mj program moÀe byÙ kaÀdym z tych typw. To jak brzmià d wi¿ki nie zaleÀy od jakiegoÅ dziwnego ustawienia znacznikw,ktry track ÃczyÙ z ktrym, ale od samych d wi¿kw. JeÀeli w tracku wstawimy 4 d wi¿ki stereo, to b¿dzie to program pierwszego typu, jeÀeli zaÅ 8 mono, to drugiego. OczywiÅcie moÀliwe jest rwnieÀ kaÀde rozwiÃzanie poÅred- nie. Sprawa jest bowiem bardzo prosta. KaÀdy d wi¿k ma 2 obwiednie. Podstawowà (zwanà niekiedy g wnÃ) i dodatkowà (zwanà niekiedy przeciwnÃ). JeÀeli d wi¿k jest umieszczony na lewym kanale to obwiednia podstawowa gra na kanale lewym, a dodatkowa na prawym. Oczywi- Åcie jednà z nich moÀna zostawiÙ pustà i wtedy d wi¿k b¿dzie gra mono. JeÀeli b¿dzie to obwiednia dodatkowa to d wi¿k umieszczony na lewym kanale b¿dzie gra mono na kanale lewym, a jeÀeli podstawowa, to na kanale prawym. OczywiÅcie umieszczajÃc d wi¿k na pra- wym kanale odwracamy sytuacj¿. KtoÅ mÃdry na pewno juÀ zauwaÀy , Àe moÀe tutaj dochodziÙ do konfliktw. JeÀeli wstawimy w 8 trackw same d wi¿ki stereo to b¿dziemy musieli 16 obwiedni wsadzaÙ do 8 generatorw obu POKEY-w. Konflikt ten rozwiÃzywany jest w sposb nast¿pujÃcy: pierwszeÜstwo ma obwiednia podstawowa. Proste nie? Zajmijmy si¿ teraz obs ugÃ. ZaleÀ- nie od uÀywanego systemu robimy wszyst- ko,aby wczytaÙ program TMC.COM. Podczas adowania adnie nam on si¿ przedstawi i przy okazji sprawdzi z jakiego urzÃ- dzenia (i o jakim numerze) jest on wczytywany. To urzÃdzenie b¿dzie odtÃd zawsze domyÅlnie uÀywane (o ile uÀyt- kownik nie poda w asnego) podczas wszelkich operacji wejÅcia-wyjÅcia. Uwaga! W przeciwieÜstwie do Quick Assemblera i innych tego typu progra- mw, TMC prawid owo rozpoznaje, Àe zosta wczytany z ramdysku. Program aduje si¿ od adresu $8800 do $bc00 oraz pod ROM. Na dane muzyczki oraz bufor directory uÀywa pami¿ci od $2800 do $8800. NaleÀy jednak uwaÀaÙ, gdyÀ nie sprawdza przepe nienia, tak wi¿c mimo iÀ sà to 24kB, to moÀna, pi- szÃc piekielnie d ugà muzyczk¿, zawie- siÙ w ten sposb program. Aczkolwiek program uÀywa pami¿ci z zakresu $bd00- $bfff (pami¿Ù ekranu), to zosta on tak napisany, Àe moÀna swobodnie przejÅÙ do DOS-a, a nast¿pnie (o ile nie zmienia- liÅmy nic w pami¿ci powyÀej $2800, poza tym co robi system, czyli pami¿cià ek- ranu) powrciÙ do programu komendà RUN. Program dzieli si¿ na dwie cz¿Åci: Menu -opisane w tej cz¿Åci instrukcji, Composer -opisany w cz¿Åci nast¿pnej. Po wczytaniu programu widzimy ekran Menu. U gry jest tytu programu. W lewym oknie opcje po ktrych moÀna poruszaÙ si¿ kursorem. W prawym ukazuje si¿ spis directory, po ktrym rwnieÀ moÀemy poruszaÙ si¿ kursorem. PoniÀej znajduje si¿ wÃska linia informacji, w ktrej program pokazuje swoje komunika- ty. Normalnie w linii tej znajduje si¿ 29 znakowa informacja, ktra dodawana jest do zapisywanej muzyczki, a przy jej odczytywaniu natychmiast jest tu umieszczana. Nieco niÀej znajduje si¿ okno z moim adresem, a na dolnej ramce umieszczone sà klawisze uaktywniajÃce poszczeglne opcje. Po oknie opcji moÀemy poruszaÙ si¿ kursorem za pomocà klawiszy , , a uaktywniamy je klawi- szem Return lub naciÅni¿ciem klawisza przypisanego tej opcjii. Opcje Menu to: (w nawiasach kwadra- towych klawisz uaktywnijÃcy opcje) Composer [C]- przejÅcie do drugiej cz¿Åci programu. Informacja [F]- wpisywanie w linii informacjii 29 bajtw dodawanych do zapisywanej muzyczki. Klawisz Delete powoduje cofni¿cie kursora, Ctrl Esc, to znak (p) (published). WyjÅcie kla- wiszem Return bÃd Esc (bez rznicy). Load Music [L]- wczytywanie muzyczki. Nie radz¿ wczytywaÙ plikw nie stwo- rzonych przez TMC, chyba Àe chcesz zawiesiÙ system. Po podaniu nazwy, jeÀeli nie zawiera a ona rozszerzenia to domyÅlnie przyjmowane jest .TMC. JeÀeli zawiera a znaki * lub ?, to zostaje wywo ana opcja directory. Po wybraniu nazwy pliku zostaje on odczy- tany. Save Music [S]- zapisywanie muzyczki. Jest ona zapisywana w formacie akcep- towalnym przez DOS-a. Najpierw program pyta o adres adowania pliku. Na ekra- nie widniejà wtedy 3 liczby: poczÃtek adresu adowania, koniec oraz d ugoÅÙ pliku. Adres podajemy w systemie szes- nastkowym. Klawisze ,  wybierajÃ, ktrà cyfr¿ adresu b¿dziemy podawaÙ, Return to zatwierdzenie, Esc to powrt do Menu. Nast¿pnie podajemy nazw¿ pli- ku. JeÀeli nie zawiera a rozszerzenia, to domyÅlnym jest .TMC. JeÀeli podana nazwa zawiera a znaki * lub ? to wywo- ywana jest opcja directory. Po wybra- niu nazwy pliku muzyczka zostanie za- pisana zamiast dotychczasowego pliku o tej nazwie. Save Player [P]- zapisywanie programu odgrywajÃcego dane muzyczki. Procedura przebiega podobnie jak przy opcji Save Music z tym, Àe domyÅlnym rozszerze- nime jest .REP. Directory [D]- spis plikw na dysku. Instruction [I]- skrtowa instrukcja programu, g wnie klawiszologia cz¿Åci drugiej, ktrej pe ny opis znajduje si¿ w pliku TMC2.DOC. Stron¿ instruk- cji wybieramy klawiszami , . Return bÃd Esc to powrt do Menu. New [N]- czyÅci dane muzyczki. Program zapyta si¿, czy jesteÅmy tego pewni. NaciÅni¿cie klawisza Y powoduje wyko- nanie czynnoÅci. KaÀdy inny to powrt do Menu. Exit [E]- powrt do DOS-a. TakÀe tutaj program zapyta czy jesteÅmy tego pewni. Cztery spoÅrd tych opcji: Load Music, Save Music, Save Player i Direc- tory wywo ujà dwie waÀne procedury: pobranie nazwy oraz wypis directory. Oto opis tych procedur. Pobranie nazwy- bufor nazwy moÀe mieÙ do 128 znakw. PoniewaÀ ca oÅc nie moÀe byÙ naraz widoczna na ekranie, to okno informacji pokazuje tylko ostat- nie 24 znaki z tego bufora. Pierwszy znak za wyrazem "File" wskazuje na stan tego okna. JeÀeli jest to ":", to bufor nazwy ma nie wi¿cej niÀ 24 znaki czyli okno jest nie przesuni¿te, nato- miast jeÀeli jest to strza ka w lewo, to znaczy, Àe okno jest tak przesuni¿- te aby pokazywaÙ ostatnie 24 znaki. Podczas wyboru klawisz Delete powoduje cofni¿cie kursora, Return to zatwier- dzenie nazwy, zaÅ Esc to powrt do Menu. KaÀdy inny klawisz za wyjÃtkiem spacji powoduje pojawienie si¿ danego znaku w buforze na pozycji kursora. JednakÀe zaraz na poczÃtku procedura oczekuje na naciÅni¿cie w aÅnie ktre- goÅ z klawiszy Delete, Return, Esc, zaÅ naciÅni¿cie kaÀdego innego powodu- je wyczyszczenie bufora nazwy i wpisa- nie tego klawisza w pierwsze pole. Directory- wed ug podanego szablonu odczytywana jest lista plikw, ktra ukazuje si¿ w oknie directory. MoÀemy po niej poruszaÙ si¿ kursorem za pomo- cà klawiszy , . Esc powoduje powrt do Menu, zaÅ Return zatwierdzenie wyb- ranej nazwy. Program w aÅciwie obs u- guje podkatalogi w SpartaDOS-ie i MyDOS-ie 4.5, to znaczy, Àe wybrana nazwa wpisywana jest do bufora nazwy za ostatnim znakiem "\" bÃd ":", to znaczy, Àe jeÅli podamy nazw¿: MUSICS:W*.TMC i wybierzemy nazw¿: WANTED.TMC, to przy prbie odczytu, odczytany zostanie plik, ze stacji z ktrej zosta wczytany TMC, o nazwie: MUSICS:WANTED.TMC. JeÀeli podczas operacji wejÅcia- -wyjÅcia nastÃpi b Ãd, to jego numer wypisywany jest na ekranie wyjÃtkowo w systemie dziesi¿tnym. Jest to Åwiadoma moja niekonsekwencja. Po prostu numery b ¿dw funkcjonujà w ca ej literaturze w aÅnie w takiej formie i podawanie ich podobnie jak wszystkich innych liczb w systemie szesnastkowym by oby niewygod- ne dla uÀytkownika. Teraz cz¿ÅÙ nieco mniej interesujÃ- ca dla muzykw, ale znacznie bardziej dla koderw. Opis wywo ywania playera. Pe ny plik rd owy playera znajdu- je si¿ w pliku TMCPLAY.ASM, tak wi¿c kaÀdy szanujÃcy si¿ koder b¿dzie mg go sam przeanalizowaÙ i zrozumieÙ jego obs ug¿. Niniejszy tekst jest wi¿c przeznaczony dla leniuchw. Doda em ten plik rwnieÀ dlatego, Àe wielu muzykw nie korzysta z pe nych moÀliwoÅci prog- ramw muzycznych i dzi¿ki temu kaÀdy koder b¿dzie mg napisaÙ player spec- jalnie przeznaczony dla danej muzyczki. PoczÃtek playera wyglÃda nast¿pujÃ- co: ORG PLAYER a) JMP INIT b) JMP PLAY c) JMP SOUND d) MAXVOL DTA B(15) e) VOLUME DTA D' ' f) FREQEN DTA D' ' g) KANAL DTA D' ' h) AKTWYS DTA D' ' i) NUMDZW DTA D' ' j) AUDCTL DTA D' ' k) AUD1 DTA B(0) l) AUD2 DTA B(0) m) VOLUME 256 bajtowa tablica n) FRQTAB 256 bajtowa tablica o) BASSLO 64 bajtowa tablica p) BASSHI 64 bajtowa tablica a) Skok do procedury inicjalizujÃcej. Skacze si¿ tutaj tylko wtedy, gdy chce si¿ powiadomiÙ player co ma robiÙ. Parametry przekazuje si¿ w A, X i Y: A=$00 X-numer muzyczki -graj song. Player przeszukuje song w poszukiwa- niu komend stopu i skokw. Po znale- zieniu si¿ za tà o numerze podanym w X ustawia si¿ w linii zaraz za niÃ. Nie odnawiana jest tutaj wartoÅÙ te- mpa. Trzeba to zrobiÙ najpierw. A=$10 X-pozycja w songu -graj song. Player ustawia si¿ na danej pozycji, ale podobnie jak poprzednio nie usta- wia tempa. A=$20+numer kana u (0-7) X-wysokoÅÙ d wi¿ku Y-nr.instrumentu -graj inst- rument o danym numerze, kanale i wy- sokoÅci (C-1=$1, C#1=$2 itd.), nie jest zmieniana g oÅnoÅÙ, trzeba to zrobiÙ najpierw nast¿pnà opcjÃ. A=$20+numer kana u X=$00 Y-g oÅnoÅÙ - -zmiana g oÅnoÅci d wi¿kw na kanale. starsze 4 bity to g oÅnoÅÙ obwiedni g wnej, 4 m odsze to dodatkowej. A=$30 X-tempo -zmiana tempa. Jest to wartoÅÙ o 1 mniejsza od tej w CMC i MPT, to znaczy, Àe tempo 5 oznacza odgrywanie co 6 ramek. A=$40 -skoÜcz graÙ (i to natychmiast). A=$50 -przerwij (z wyciszeniem). A=$60 -kontynuuj (od poprzedniego przerwania odgrywania). A=$70 X-starszy bajt adresu muzyczki Y-m odszy bajt -inicjacja playera. Jest tutaj robiona rwnieÀ inicjacja tempa, wi¿c jeÀeli chcemy rozpoczÃÙ granie muzyczki od poczÃtku songu, wystarczy wywo aÙ opcj¿ kontynuuj. b) Skok do procedury przeszukujÃcej song i patterny. NaleÀy wywo ywaÙ jà raz na ramk¿. Opcja "przerwij" blo- kuje wykonywanie w aÅnie tej cz¿Åci procedury, dlatego teÀ d wi¿ki mogà swobodnie wybrzmiewaÙ. Zaraz po zakoÜ- czeniu si¿ tej cz¿Åci procedury wywo- ywana jest procedura odgrywania d wi¿- kw, dzi¿ki temu jeÀeli mamy muzyczk¿ napisanà do wywo ywania raz na ramk¿, to nie musimy juÀ wywo ywaÙ procedury nast¿pnej. c) Skok do procedury odgrywajÃcej d wi¿ki. NaleÀy jà wywo ywaÙ o jeden raz na ramk¿ mniej niÀ wywo aÜ na ramk¿ wymaga dana muzyczka. Z powodu d ugiego czasu dzia ania tej procedury naleÀy uwaÀaÙ aby nast¿pna procedura nie za- czyna a si¿ jeszcze wtedy, gdy nie sko- Üczy a si¿ procedura poprzednia. Aby muzyczka gra a moÀliwie najbardziej zgodnie z jej brzmieniem w Composerze, player naleÀy wywo ywaÙ w tych samych momentach, jak jest to w programie. Oto numery linii ekranu w ktrych wywo ywa- ny jest player oraz odpowiadajÃca wartoÅÙ komrki VCOUNT ($d40b): razy na ramk¿ -> 1 2 3 4 linia ekranu $d40b 8 8 - - - + 32 20 - - + - 88 48 - + - + 144 76 - - + - 168 88 - - - + - = nic. + = wywo anie procedury SOUND. Na przerwaniu VBLANK naleÀy zawsze wywo ywaÙ procedur¿ PLAY (PLAYER+3, patrz punkt b.) d) Player pozwala na p ynne matematy- czne podg aÅnianie i Åciszanie muzyczki w 16 fazach. Robi si¿ to przez wpisanie odpowiedniej wartoÅci do komrki PLAYER+9. 15 to g oÅnoÅÙ maksymalna, 0 to pe ne Åciszenie. e) WartoÅci z tych komrek sà bezpoÅ- rednio wsadzane do rejestrw POKEY-w. Starsze 4 bity to zniekszta cenie, a m odsze 4 to g oÅnoÅÙ d wi¿ku. f) Cz¿stotliwoÅÙ d wi¿ku. WartoÅÙ wsa- dzana bezpoÅrednio do komrek POKEY-w. g) Z powodw wyjaÅnionych wczeÅniej w akapicie dotyczÃcym d wi¿kw stereo, moÀe si¿ zdarzyÙ, Àe d wi¿k np.z tracku drugiego moÀe graÙ na kanale prawym, co prawda na generatorze drugim, ale jego g oÅnoÅÙ w tablicy VOLUME b¿dzie tym samym na pozycji piÃtej (liczy si¿ tu od zera). Aby prawid owo pobraÙ dane d wi¿kw grajÃcych na danym generatorze naleÀy wykonaÙ rzecz nast¿pujÃcÃ: LDX #0 LDY KANAL,X W ten sposb dowiadujemy si¿ z jakiego tracku pochodzi d wi¿k grajÃcy na zerowym generatorze (pierwszym genera- torze standardowego POKEY-a). Zmienia- jÃc liczb¿ w pierwszej linii dowiaduje- my si¿ z ktrych trackw pochodzà d wi¿ki grajÃce na danych generatorach. h) Po wykonaniu dwch powyÀszych inst- rukcji oraz nast¿pnej: LDA AKTWYS,Y, moÀemy dowiedzieÙ si¿ jakà nut¿ gra d wi¿k na danym generatorze. WartoÅÙ t¿ naleÀy zANDowaÙ wartoÅcià $3f, gdyÀ najwyÀsze bity oznaczajà tutaj numer tablicy cz¿stotliwoÅci. WartoÅc 1 to nuta C-1, 2 to C#1 itp. WartoÅc 0 lepiej, Àeby si¿ tutaj nie pokazywa a, gdyÀ wwczas z tablicy cz¿stotliwoÅci pobierana jest wartoÅÙ 0 (baaardzo wy- soki d wi¿k) i wsadzana do POKEY-a. i) W podobny sposb jak w poprzednim podpunkcie moÀemy si¿ tutaj dowiedzieÙ jaki numer d wi¿ku gra na danym genera- torze. j) I znowu w podobny sposb dowiadujemy si¿ o tym, ktre bity komrki AUDCTL ustawia dany d wi¿k. k) Jest tutaj juÀ zORowana wartoÅÙ, wsadzana do komrki $d208. l) A ta wartoÅÙ do komrki $d218. m) 256-bajtowa tablica uÀywana do Åci- szania, jednakÀe sugerowa bym jej uÀy- wanie rwnieÀ w innych przypadkach. Cz¿stokroÙ nie chcemy gwa townie poka- zywaÙ jakiegoÅ obrazka, tylko powoli go rozjaÅniamy. Dzi¿ki tej tablicy moÀemy zrobiÙ to p ynnie w 16 fazach. PoniewaÀ tablica jest symetryczna moÀemy to zro- biÙ na dwa sposoby: ASL FAZA LDA KOLOR ASL FAZA TAY ASL FAZA ASL @ ASL FAZA ASL @ LDA KOLOR ASL @ TAY ASL @ AND #15 ORA FAZA ORA FAZA TAX TAX TYA TYA AND #$F0 AND #$F0 ORA PLAYER+60,X ORA PLAYER+60,X STA $2C4 STA $2C4 LSR FAZA LSR FAZA LSR FAZA LSR FAZA WydawaÙ by si¿ mog o, Àe ten drugi sposb jest krtszy, ale jeÀeli b¿dzie- my zmieniaÙ komrk¿ FAZA co 16, to od- padnie nam 8 linii dotyczÃcych rotacji bitw w komrce FAZA dla pierwszego sposobu. n) Z tej tablicy na podstawie wartoÅci z komrek AKTWYS pobierana jest wartoÅÙ wpisywana nast¿pnie do POKEY-w. Sà to w aÅciwie 4 tablice. Pierwsza s uÀy dla d wi¿kw o zniekszta ceniach A i E, dwie nast¿pne dla zniekszta ceÜ C, a ostatnia dla 2, przy wy Ãczonym dla danego generatora dzielniku cz¿stotli- woÅci (wartoÅÙ $20 lub $40 w AUDCTL). o) Ta tablica jest uÀywana podobnie jak poprzednia, ale w przypadku d wi¿kw dwukana owych ($10 lub 8 w AUDCTL) i jest wsadzana do generatora o numerze o 1 mniejszym niÀ generator na ktrym ten d wi¿k odgrywamy. 2 najstarsze bity komrkek AKTWYS sà tutaj ignorowane. p) Podobnie jak poprzednio, ale ta wartoÅÙ jest wsadzana dok adnie do tego generatora na ktrym gra d wi¿k. Wszys- tkie tablice cz¿stotliwoÅci sà identy- czne jak w programie MPT. PoniewaÀ moÀe si¿ to okazaÙ przyda- tne, przedstawi¿ jeszcze dok adny for- mat pliku muzyczki. 0-28 -bajty informacyjne. 29 -musi byÙ tu zawsze spacja ($20). 30 -tempo, jak juÀ mwi em, jest to wartoÅÙ o jeden mniejsza niÀ w CMC, MPT lub Delcie. 31 -cz¿stotliwoÅÙ odtwarzenia na ramk¿ Player nie zwaÀa na t¿ komrk¿. To jest informacja dla Ciebie! $20-$5f -m odsze bajty adresw instr. $60-$9f -starsze bajty. JeÀeli po zORowaniu dajà 0, to znaczy, Àe d wi¿k jest pusty. $a0-$11f -m odsze bajty adresw patte- rnw. $120-$19f -starsze bajty. $1a0-.... -dane songu. KaÀda pozycja w songu zajmuje 16 bajtw. Jest to kole- jno: transpozycja tracku 8, nr.patter- nu grajÃcego na tracku 8, nast¿pnie jest podawany track 7 itd. ....-.... -dane instrumentw. Sà one w formacie: -21 razy trjka bajtw: $ab, $cd ,$ef ,gdzie: a- zniekszta cenie d wi¿ku, b- g oÅnoÅÙ obwiedni podstawowej, c- typ akcentu, d- g oÅnoÅÙ obwiedni dodatkowej, ef- parametr akcentu, -8 bajtw transpozycji, -9 bajtw parametrw d wi¿ku. W sumie 80 bajtw. ....-.... -dane patternw. Nast¿pujÃce bajty oznaczajÃ: -0 -zmiana g oÅnoÅci d wi¿ku, nast¿- pujÃca za nim wartoÅÙ jest negacjà (EOR #$FF) g oÅnoÅci uÀywanej w TMC. -1-$3f -graj nut¿ o tym numerze i ustalonym wczeÅniej instrumencie. Nast¿puje po tym bajt g oÅnoÅci. -$40 -nowy parametr, jeÀeli ten bajt ma ustawiony najwyÀszy bit, to nas- t¿puje jeszcze za nim bajt zmiany g oÅnoÅci. -$41-$7f -graj nut¿ o numerze zANDo- wanym liczbà $3f i ustalonym instru- mencie. Nast¿puje za tym bajt para- metru z ustawionym najwyÀszym bitem oraz bajt g oÅnoÅci. -$80-$bf -zmiana aktualnego instrume- ntu. UÀywana przed rozkazem grania nuty tylko przy faktycznej zmianie instrumentu w patternie. -$c0-$ff -linie puste w patternie. $c0 to 1 linia pusta, $ff to puste 64 linie, czyli innymi s owy koniec danych patternu, gdyÀ dowolnie na ktrej pozycji dotychczas si¿ znaj- dowaliÅmy dodanie do niej 64 powodu- je wyjÅcie poza d ugoÅÙ patternu. KaÀdy pattern koÜczy si¿ tym bajtem, nawet jeÀeli na ostatniej pozycji coÅ si¿ znajduje. Najkrtszy pattern (pattern pusty) sk ada si¿ tylko z tego bajtu. Pattern najd uÀszy acz- nie z tym bajtem ma 257 bajtw d u- goÅci. I to tyle na temat oglnej obs ugi programu. W pliku TMC2.DOC znajdziesz dok adny opis drugiej cz¿Åci programu.