SDFN Packer
A. SFDN PACKER?
Jest to paker napisany z myślą o pakowaniu 4-bitowych próbek (lub jak ktoś woli sampli). Jednak później okazało się, że pakuje on także niektóre obrazki w trybie 9 (OS), niektóre fonty oraz bardzo rzadko obrazki w trybie 8 (OS).
B. JAK SPAKOWAĆ PRÓBKĘ...
Wczytać paker, jeżeli chcesz poczytać info w języku angielskim, możesz wcisnąć
Podczas pakowania możemy oglądać różne cyferki poprzedzone magicznymi literami, więc powiem co one oznaczają:
U - Unpacked - długość niespakowanego
P - Packed - długość spakowanego
L - Left - ile jeszcze pozostało
Gain - Zysk podany w bajtach...
Po spakowaniu pliku program wyświetli zysk w procentach. Gdy zobaczymy komunikat: "Done, Rate xx%", to możemy być pewni, że wszystko poszło pomyślnie.
No dobrze, próbkę spakowaliśmy, ale jak to teraz rozpakować?
Na początek przydałby się depacker. Możemy go uzyskać na dwa sposoby:
Po wczytaniu pakera używamy opcji "C" (compile), podajemy adres używając klawiszy "strzałka w górę", "strzałka w dół" (wciśnięte z
zwiększają adres o $10). Po ustaleniu adresu depackera zostaniemy zapytani o komórki na stronie zerowej, które może wykorzystywać depacker. Postępujemy podobnie jak w poprzednim przypadku. Jeszcze tylko nazwa pod jaką zapisać depacker i mamy go na dysku... Po wczytaniu pakera używamy opcji "Save SouRCe" i po podaniu nazwy możemy zapisać źródłówkę depackera na dysk. Potem tylko odpalamy "Quicka" i asemblujemy depackera gdzie tylko chcemy i gotowe...
Gdy już posiadamy depacker, możemy przystąpić do rozpakowania pliku... Aby rozpakować dane, należy wczytać spakowany plik do pamięci, a potem utworzyć tabelę z adresami:
tab dta a(skąd),a(gdzie)
potem ładujemy adres tablicy do rejestrów X i Y...
ldx <tab ldy >tab
Teraz wykonujemy skok to depackera: (gdzie "depack" jest adresem, pod który zrelokowaliśmy depacker!):
jsr depack
i możemy czekać, aż skompresowane dane zostaną rozpakowane...
C. UWAGI
Spakowane dane należy umieszczać tak, aby rozpakowane dane nie zniszczyły aktualnie rozpakowywanych danych, np. jeżeli spakowane dane umieścimy od adresu $2000, a rozpakowywać będziemy na adres $1f00, to jest duże prawdopodobieństwo (whops! Ale długi wyraz), że nastąpi przepełnienie... Postaram się to dokładniej wyjaśnić:
- Dane rozpakowywane
. Spakowane dane, już pobrane
* Dane spakowane, jeszcze nie pobrane
Krok 1. -----....***** - OK!
Krok 2. -------..***** - OK!
Krok 3. -----------*** - Przepełnienie!
# Tu były dane do
rozpakowania, lecz
rozpakowane dane
zniszczyły ten
obszar...
Jak widać depacker ten rozpakowuje "od przodu", więc najlepiej spakowane dane umieszczać jak najwyżej się da, a rozpakowywać jak najniżej... Mówiąc prościej: między rozpakowywanymi danymi, a spakowanymi powinna zostać "dziura" - wielkość tej dziury zależy od stopnia kompresji sampla...
Było to trochę skomplikowane, ale myślę, że wszyscy zrozumieli...
Używajcie więc tego programu, jeśli chcecie lub nie... Jest on na dysku z "Barymagiem"...
Przypominam tylko, że jest to program typu "SHAREWARE" - jeżeli go będziecie używać to przyślijcie parę groszy na mój adres, jeżeli nie macie ochoty na przysyłanie pieniędzy, to chociaż napiszcie w swym programie, że użyliście tego packera, jeżeli nie napiszecie, to może zechcecie przysłać mi swój program, ale jeżeli nie odpowiada wam żadna z tych możliwości, to trudno...