home *** CD-ROM | disk | FTP | other *** search
/ Energy 2 / Energy_2_1996_Taquart_pl_Side_E_a.atr / tmc111.arc / TMC1.DOC < prev    next >
Text File  |  1988-09-01  |  25KB  |  2 lines

  1. ---------------------------------------¢¢      Instrukcja obs ugi programu:¢¢      Theta Music Composer v. 1.11¢¢                cze③⇨ 1¢¢---------------------------------------¢¢¢    Theta Music Composer (w skrcie:¢TMC) to program muzyczny maj⇧cy (w¢zamierzeniu autora) wykorzystywa⇨ w jak¢najwi❎kszej cz❎③ci rozszerzenie kompu-¢terw 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
  2. ¢¢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, ktry 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.¢④TMCPLAY2.ASM -wersja skrcona playera,¢ dzia aj⇧ca nieco szybciej od oryginal-¢ nego, narzucaj⇧ca jednak pewne ograni-¢ czenia podczas komponowania muzyczki.¢④*.TMC -przyk adowe muzyczki.¢¢    Program obs uguje poprawnie takie¢rozszerzenia, w ktrym dost❎p do dru-¢giego POKEY-a otrzymuje si❎ przy poda-¢niu adresw z zakresu $d210-$d21f.¢Je③li tak nie jest, to dzia anie prog-¢ramu b❎dzie identyczne jak na kompute-¢rze bez rozszerzenia.¢¢    Przy pisaniu tej instrukcji przyj⇧-¢ em za oəenie, əe uəytkownik programu¢biegle pos uguje si❎ systemem szesnast-¢kowym (ktry niepodzielnie panuje w¢ca ym programie) oraz zna (przynajmniej¢pobieənie) takie programy muzyczne jak:¢CMC i MPT, ktre by y dla mnie wzorem.¢Ponadto uzna em, əe wi❎kszo③⇨ rozs⇧d-¢nych uəytkownikw 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,¢ktrego 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¢komrka AUDCTL ($d208) ma chyba pewn⇧¢zw ok❎ w odbieraniu sygna u, gdyə je③li¢na prawym kanale nie uəywamy d♪wi❎kw¢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❎, ktra ma dob-¢rze brzmie⇨ rwnieə 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 filtrw¢to na lewym nie musisz tego robi⇨).¢¢    Wyja③ni❎ teraz kilka za oəe odno③-¢nie programu. Po pierwsze, dlaczego¢Theta? Niektrzy moəe znaj⇧ program¢muzyczny Delta Music Composer, ktrego¢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. Rwnieə reszta parametrw¢jest podwojeniem Delty: 128 patternw i¢64 instrumenty. Doda em tutaj rwnieə¢(w celu zwi❎kszenia jako③ci d♪wi❎kw)¢moəliwo③⇨ wywo ywania playera do czte-¢rech razy na ramk❎, to znaczy, əe pro-¢cedura odgrywaj⇧ca jest wywo ywana od¢50 do 200 razy na sekunde. Dlatego teə¢nie naleəy si❎ spodziewa⇨ od playera¢(chociaəby z powodu jako③ci d♪wi❎kw,¢ilo③ci trackw 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¢sposb, əe s⇧ sobie cztery tracki i¢g o③no③ci d♪wi❎kw 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 rwnieə, əe jest sobie osiem¢trackw 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 generatorw 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).¢Rwnieə nie zrobi em tak jak radzili mi¢to niektrzy, to znaczy, nie  ⇧cz❎ tra-¢ckw tak aby np: 2 d♪wi❎ki by y stereo,¢2 na lewym i 2 na prawym kanale.¢Po prostu mj program moəe by⇨ kaədym z¢tych typw. To jak brzmi⇧ d♪wi❎ki nie¢zaleəy od jakiego③ dziwnego ustawienia¢znacznikw,ktry track  ⇧czy⇨ z ktrym,¢ale od samych d♪wi❎kw. 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 rwnieə 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 konfliktw. Jeəeli¢wstawimy w 8 trackw same d♪wi❎ki¢stereo to b❎dziemy musieli 16 obwiedni¢wsadza⇨ do 8 generatorw obu POKEY-w.¢Konflikt ten rozwi⇧zywany jest w sposb¢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 uəyte¢domy③lnie (o ile uəytkownik nie poda¢w asnego) podczas najbliəszej operacji¢wej③cia-wyj③cia. W kaədej nast❎pnej¢operacji za urz⇧dzenie domy③lne b❎dzie¢przyjmowane te ostatnio uəyte w opera-¢cji tego samego typu. Program ma 3 bu-¢fory nazw, a co za tym idzie 3 zwi⇧zane¢z nimi urz⇧dzenia domy③lne, do 3 typw¢operacji: odczytu/zapisu muzyczki b⇧d♪¢zapisu playera, odczytu directory,¢odczytu/zapisu instrumentu.¢Uwaga! W przeciwiestwie do Quick¢Assemblera i innych tego typu progra-¢mw, TMC prawid owo rozpoznaje, əe¢zosta  wczytany z ramdysku. (W wi❎kszo-¢③ci przypadkw.)¢¢    Program  aduje si❎ od adresu $8000¢do $bc00 oraz pod ROM. Na dane muzyczki¢oraz bufor directory uəywa pami❎ci od¢$2800 do $8000. Naleəy jednak uwaəa⇨,¢gdyə nie sprawdza przepe nienia, tak¢wi❎c mimo iə s⇧ to 22kB, to moəna, pi-¢sz⇧c piekielnie d ug⇧ muzyczk❎, zawie-¢si⇨ w ten sposb 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) powrci⇨ 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 gry jest tytu  programu. W¢lewym oknie opcje po ktrych moəna¢porusza⇨ si❎ kursorem. W prawym ukazuje¢si❎ spis directory, po ktrym rwnieə¢moəemy porusza⇨ si❎ kursorem. Poniəej¢znajduje si❎ w⇧ska linia informacji, w¢ktrej program pokazuje swoje komunika-¢ty. Normalnie w linii tej znajduje si❎¢29 znakowa informacja, ktra 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¢poszczeglne 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 opcj❎)¢④Composer [C]- przej③cie do drugiej¢ cz❎③ci programu.¢④Informacja [F]- wpisywanie w linii¢ informacjii 29 bajtw 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 rznicy).¢④Load Music [L]- wczytywanie muzyczki.¢ Po podaniu nazwy, jeəeli nie zawiera a¢ ona rozszerzenia to domy③lnie przyjmo-¢ wane jest .TMC. Jeəeli zawiera a znaki¢ * lub ?, to zostaje wywo ana opcja¢ directory. Po wybraniu nazwy pliku¢ zostaje on odczytany, a nast❎pnie¢ sprawdzona jest struktura tego pliku.¢ Jeəeli nie odpowiada ona strukturze¢ pliku .TMC, wy③wietlany jest b ⇧d.¢④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⇧,¢ ktr⇧ cyfr❎ adresu b❎dziemy podawa⇨,¢ Return to zatwierdzenie, Esc to powrt¢ 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.¢④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. Jest ono wstawiane od¢ razu zamiast rozszerzenia w nazwie¢ ostatnio zapisywanej muzyczki. W prze-¢ ciwiestwie do innych procedur odczytu¢ lub zapisu, podana nazwa pliku nie¢ jest nigdzie zapisywana. Po skoczonej¢ operacji znika bezpowrotnie.¢④Directory [D]- spis plikw na dysku.¢ Wybrana nazwa zostanie wpisana do¢ bufora nazwy dla muzyczki.¢④Instruction [I]- skrtowa instrukcja¢ programu, g wnie klawiszologia cz❎③ci¢ drugiej, ktrej pe ny opis znajduje¢ si❎ w pliku TMC2.DOC. Stron❎ instruk-¢ cji wybieramy klawiszami , . Return¢ b⇧d♪ Esc to powrt 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 powrt¢ do Menu.¢④Exit [E]- powrt do DOS-a. Takəe tutaj¢ program zapyta czy jeste③my tego¢ pewni.¢¢    Cztery spo③rd 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 znakw. 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 powrt 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 ktre-¢ 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.¢ Podanie na pocz⇧tku bufora nazwy urz⇧-¢ dzenia spowoduje wpisanie go jako¢ urz⇧dzenia domy③lnego dla nast❎pnych¢ operacji. Jeəeli nie chcemy zmienia⇨¢ typu urz⇧dzenia, a jedynie jego numer,¢ to wystarczy poda⇨ ten numer przed¢ znakiem dwukropka.¢④Directory- wed ug podanego szablonu¢ odczytywana jest lista plikw, ktra¢ ukazuje si❎ w oknie directory. Moəemy¢ po niej porusza⇨ si❎ kursorem za pomo-¢ c⇧ klawiszy , . Esc powoduje powrt¢ 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 prbie odczytu,¢ odczytany zostanie plik, o nazwie:¢ MUSICS:WANTED.TMC.¢¢    Cz❎③ci⇧ sk adow⇧ tego fragmentu¢programu, aczkolwiek wywo ywan⇧ z¢cz❎③ci drugiej: Composera, jest zapis i¢odczyt pojedyczego instrumentu. Post❎-¢powanie tutaj jest podobne jak w innych¢opcjach. Najpierw podaje si❎ nazw❎. Je-¢əeli zawiera a ona znaki * lub ?, to¢wywo ane zostanie directory. Domy③lnym¢rozszerzeniem jest tutaj .INS. Do zapi-¢sywanego d♪wi❎ku (80 bajtw) dodawany¢jest na pocz⇧tku 20 bajtowy nag wek.¢Jest on sprawdzany podczas odczytu.¢¢    Jeəeli podczas operacji wej③cia-¢-wyj③cia nast⇧pi  b ⇧d, to na ekranie¢podawana jest informacja o typie b ❎du.¢Jeəeli program nie przewiduje takiego¢b ❎du, to zamiast informacji podawany¢jest tylko jego numer, wyj⇧tkowo w¢systemie dziesi❎tnym. Jest to ③wiadoma¢moja niekonsekwencja. Po prostu numery¢b ❎dw 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 muzykw, ale znacznie bardziej¢dla koderw. Opis wywo ywania playera.¢Na pierwszy ogie idzie player orygi-¢nalny.¢¢    Pe ny plik ♪rd owy playera znajdu-¢je si❎ w pliku TMCPLAY.ASM, tak wi❎c¢kaədy szanuj⇧cy si❎ koder b❎dzie mg ¢go sam przeanalizowa⇨ i zrozumie⇨ jego¢obs ug❎. Niniejszy tekst jest wi❎c¢przeznaczony dla leniuchw. Doda em ten¢plik rwnieə dlatego, əe wielu muzykw¢nie korzysta z pe nych moəliwo③ci prog-¢ramw muzycznych i dzi❎ki temu kaədy¢koder b❎dzie mg  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 skokw. 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❎kw 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 rwnieə 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❎-¢kw, 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 ktrych wywo ywa-¢ny jest player oraz odpowiadaj⇧ca¢warto③⇨ komrki 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 komrki¢PLAYER+9. 15 to g o③no③⇨ maksymalna, 0¢to pe ne ③ciszenie.¢¢e) Warto③ci z tych komrek s⇧ bezpo③-¢rednio wsadzane do rejestrw 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 komrek POKEY-w.¢¢g) Z powodw wyja③nionych wcze③niej w¢akapicie dotycz⇧cym d♪wi❎kw 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❎kw graj⇧cych na danym generatorze¢naleəy wykona⇨ rzecz nast❎puj⇧c⇧:¢    LDX #0¢    LDY KANAL,X¢W ten sposb 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 ktrych trackw pochodz⇧¢d♪wi❎ki graj⇧ce na danych generatorach.¢¢h) Po wykonaniu dwch 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ə wwczas z tablicy cz❎stotliwo③ci¢pobierana jest warto③⇨ 0 (baaardzo wy-¢soki d♪wi❎k) i wsadzana do POKEY-a.¢¢i) W podobny sposb jak w poprzednim¢podpunkcie moəemy si❎ tutaj dowiedzie⇨¢jaki numer d♪wi❎ku gra na danym genera-¢torze.¢¢j) I znowu w podobny sposb dowiadujemy¢si❎ o tym, ktre bity komrki AUDCTL¢ustawia dany d♪wi❎k.¢¢k) Jest tutaj juə zORowana warto③⇨,¢wsadzana do komrki $d208.¢¢l) A ta warto③⇨ do komrki $d218.¢¢m) 256-bajtowa tablica uəywana do ③ci-¢szania, jednakəe sugerowa bym jej uəy-¢wanie rwnieə 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¢sposb jest krtszy, ale jeəeli b❎dzie-¢my zmienia⇨ komrk❎ FAZA co 16, to od-¢padnie nam 8 linii dotycz⇧cych rotacji¢bitw w komrce FAZA dla pierwszego¢sposobu.¢¢n) Z tej tablicy na podstawie warto③ci¢z komrek AKTWYS pobierana jest warto③⇨¢wpisywana nast❎pnie do POKEY-w. S⇧ to¢w a③ciwie 4 tablice. Pierwsza s uəy dla¢d♪wi❎kw 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❎kw¢dwukana owych ($10 lub 8 w AUDCTL)¢i jest wsadzana do generatora o numerze¢o 1 mniejszym niə generator na ktrym¢ten d♪wi❎k odgrywamy. 2 najstarsze bity¢komrkek AKTWYS s⇧ tutaj ignorowane.¢¢p) Podobnie jak poprzednio, ale ta¢warto③⇨ jest wsadzana dok adnie do tego¢generatora na ktrym gra d♪wi❎k. Wszys-¢tkie tablice cz❎stotliwo③ci s⇧ identy-¢czne jak w programie MPT.¢¢    A teraz pora na opis playera w wer-¢sji skrconej. Zawarty jest on w pliku¢TMCPLAY2.ASM. Od oryginalnego rəni si❎¢wieloma rzeczami. Po pierwsze podczas¢pisania muzyczki trzeba zwraca⇨ uwag❎¢na pewne ograniczenia: nie moəna uəywa⇨¢obwiedni dodatkowej d♪wi❎ku (player nie¢zwraca na ni⇧ w ogle uwagi) i nie moə-¢na uəywa⇨ basw dwukana owych. Znacznie¢wi❎ksze rənice dotycz⇧ jednak obs ugi¢playera. Nie ma tutaj əadnych skokw¢na pocz⇧tku programu. Naleəy skaka⇨¢bezpo③rednio pod odpowiednie etykiety:¢PLAY- raz na ramk❎, (patrz punkt b)¢SOUND- stosownie do muzyczki (patrz c)¢INIT- uruchamia odgrywanie muzyczki.¢  Y=m odszy adres muzyczki, X=starszy.¢STOP- zatrzymuje odgrywanie.¢Nie ma teə əadnych udost❎nionych kom-¢rek. Kto chce moəe przeanalizowa⇨¢player i uəywa⇨ czego tylko zechce.¢Ten player to wersja szcz⇧tkowa orygi-¢na u, zawieraj⇧ca wy ⇧cznie to, co jest¢do grania potrzebne. Kto potrzebuje¢czego③ wi❎cej, bedzie musia  sobie to¢sam dopisa⇨, korzystaj⇧c co najwyəej z¢z procedur w playerze oryginalnym.¢¢    Jak wida⇨ player jest do③⇨ prymity-¢wny. Jednak te oszcz❎dno③ci powoduj⇧¢znaczne (ok. 30%) skrcenie czasu pracy¢playera. To chyba wystarczy aby co¢odwaəniejsi zacz❎li uəywa⇨ go w demach?¢¢    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ə mwi 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❎ komrk❎. To¢ jest informacja dla Ciebie!¢④$20-$5f -m odsze bajty adresw instr.¢④$60-$9f -starsze bajty. Jeəeli po¢ zORowaniu daj⇧ 0, to znaczy, əe d♪wi❎k¢ jest pusty.¢④$a0-$11f -m odsze bajty adresw patte-¢ rnw.¢④$120-$19f -starsze bajty.¢④$1a0-.... -dane songu. Kaəda pozycja w¢ songu zajmuje 16 bajtw. Jest to kole-¢ jno: transpozycja tracku 8, nr.patter-¢ nu graj⇧cego na tracku 8, nast❎pnie¢ jest podawany track 7 itd.¢④....-.... -dane instrumentw. S⇧ one¢ w formacie:¢  -21 razy trjka bajtw:¢    $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 bajtw transpozycji,¢  -9 bajtw parametrw d♪wi❎ku.¢ W sumie 80 bajtw.¢④....-.... -dane patternw. 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¢   ktrej 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. Najkrtszy pattern¢   (pattern pusty) sk ada si❎ tylko z¢   tego bajtu. Pattern najd uəszy  acz-¢   nie z tym bajtem ma 257 bajtw d u-¢   go③ci.¢¢    I to tyle na temat oglnej obs ugi¢programu. W pliku TMC2.DOC znajdziesz¢dok adny opis drugiej cz❎③ci programu.¢