Kīopoty z odtwarzaniem moduīów Protracker'a, czyli co jest przyczynā moczenia nocnego amokoderów. Jak powszechnie wiadomo, moduīy ProTracker'a odtwarzane za pomocā amosowej komendy Track Play majā tendencjė do faīszowania. Z pewnoōciā niejeden amokoder spėdziī wiele czasu próbujāc rozwiāzaź ten problem. Ostatnio udaīo mi siė znaleśź wyjōcie z tej sytuacji. Bardzo pomocnā rzeczā jest tu program o nazwie "OctaMED" i jego biblioteka "medplayer.library". Jak to siė robi??? To bardzo proste. Wgrywamy "OctaMED'a", nastėpnie wgrywamy nim moduī ProTracker'a i nagrywamy go na dysk w formacie MMD1 (format moduīów OctaMED'a). Nastėpnie wgrywamy AMOS'a (Pro oczywiōcie). Potem wgrywamy moduī w formacie MMD1 komendā 2Med Load6 (skīadnia: Med Load "nazwa moduīu",numer banku) i odtwarzamy komendā Med Play (skīadnia: Med Play numer banku). Niestety to rozwiāzanie ma wiele wad: 1) Po uūyciu komendy Erase odtwarzanie zostaje przerwane. 2) Moduī musi znajdowaź siė na dysku w formacie MMD1, nie moūe byź spakowany. Temu teū moūna zaradziź. Naleūy wykorzystaź bibliotekė medplayer.library bezpoōrednio z poziomu naszego programu. Oto rozpiska biblioteki w skróconej formie: Funkcja: GetPlayer Wejōcie: ----- Wyjōcie: jeūeli d0 jest róūne od zera nastāpiī bīād Offset: -$1e / -30 Opis: funkcja rezerwuje pewnā iloōź pamiėci na potrzeby biblioteki. Powinna byź wywoīana po otwarciu biblioteki, a przed wywoīaniem innych funkcji. Funkcja: FreePlayer Wejōcie: ----- Wyjōcie: ----- Offset: -$24 / -36 Opis: funkcja zwalnia pamiėź zarezerwowanā przez GetPlayer. Musi byź wywoīane przed zamkniėciem biblioteki. Funkcja: PlayModule Wejōcie: a0 - adres moduīu Wyjōcie: ----- Offset: -$2a / -42 Opis: odtwarza moduī znajdujācy siė pod podanym adresem. Moduī musi byź wczytany funkcjā LoadModule lub moūe byź wczytany w inny sposób, ale musi zostaź potraktowany funkcjā RelocateModule. Funkcja: ContModule Wejōcie: ----- Wyjōcie: ----- Offset: -$30 / -48 Opis: kontynuuje odtwarzanie moduīu, jeōli zostaīo przerwane. Funkcja: StopPlayer Wejōcie: ----- Wyjōcie: ----- Offset: -$36 / -54 Opis: przerywa odtwarzanie moduīu. Funkcja: DimOffModule Wejōcie: d1 - czas wyciszania moduīu. Wyjōcie: ----- Offset: -$3c / -60 Opis: wyciszanie moduīu odbywajāce siė w podanym czasie. (Jeszcze nie uūywaīem tej funckji, zatem nie wieszajcie na mnie psów jeōli nie bėdzie īaziīo). Funkcja: SetTempo Wejōcie: d1 - nowe tempo Wyjōcie: ----- Offset: -$42 / -66 Opis: ustala nowe tempo odtwarzania moduīu. (Takūe nie uūywaīem tej funkcji). Funkcja: LoadModule Wejōcie: a0 - adres pod którym znajduje siė nazwa moduīu zakoļczona zerem (chodzi o znak Chr$(0)). Wyjōcie: d0 - adres moduīu, który musimy potem uūyź przy PlayModule Offset: -$48 / -72 Opis: wczytuje moduī o podanej nazwie. Funkcja: UnLoadModule Wejōcie: a0 - adres, jaki otrzymaliōmy po uūyciu funkcji LoadModule. Wyjōcie: ----- Offset: -$4e / -78 Opis: usuwa z pamiėci moduī znajdujācy siė pod podanym adresem. Musi byź uūyte przed wywoīaniem FreePlayer. Funkcja: GetCurrentModule Wejōcie: ----- Wyjōcie: d0 - adres aktualnie odtwarzanego moduīu. Offset: -$54 / -84 Opis: podaje adres aktualnie odtwarzanego moduīu. Funkcja: ResetMidi Wejōcie: ??? Wyjōcie: ??? Offset: -$5a / -$90 Opis: ??? (Nigdy nie widziaīem efektów dziaīania tej funkcji). Funkcja: SetModNum Wejōcie: d1 - numer moduīu Wyjōcie: ----- Offset: -$60 / -96 Opis: wybiera moduī do odtwarzania z pliku nagranego jako "MultiModule". Funkcja: RelocateModule Wejōcie: a0 - adres, pod który zostaī wczytany moduī Wyjōcie: ----- Offset: -$66 / -102 Opis: funkcja, która umoūliwia uūywanie moduīów, które wczytano w inny sposób niū za pomocā LoadModule. Uff!! To juū koniec czėōci czysto teoretycznej. Teraz pora na maīy przykīad. Lib Open 1,"medplayer.library",0 ' teraz wgrywamy moduī, ewentualnie go rozpakowujemy ' zaīóūmy, ūe moduī znajdzie siė w banku nr. 5 X=Lib Call(1,-$1e) Areg(0)=Start(5) : X=Lib Call(1,-$66) X=Lib Call(1,-$2a) ' i nasz moduī jest odtwarzany ' teraz chcemy zakoļczyź odtwarzanie X=Lib Call(1,-$36) Areg(0)=Lib Call(1,-$54) : X=Lib Call(1,-$4e) X=Lib Call(1,-$24) Lib Close 1 Dziaīajācy programik nazywa siė MedPlayer.AMOS i znajduje siė na tym dysku. Ūyczė powodzenia wszystkim chcācym zgīebiź sekrety "medplayer.library". Iceman / Sector 5