Aplib Z80
---------
T&J/GPA le 18/01/2008

Aplib est un librairie de compactage developpee par Jorgen Ibsen, et 
qui est diffusee commercialement pour des systemes et plateformes
recents. Pour une utilisation personnelle, l'usage de la librairie et
des petits outils associes est gratuit. 

Contrairement a d'autres compacteurs, il n'a pas ete developpe pour
des ordinateurs prehistoriques, mais bien pour le monde PC. Ceci
explique en partie sa relative discretion dans le monde 8 bits.
Ce, jusqu'a ce que CNGSoft adapte sur Z80 la routine de decompression
en 2006 et la diffuse sur un blog. Elle est depuis restee dans l'ombre
chez nous autres francais alors que Aplib est un des meilleurs
compacteurs existant !

C'est en lisant un sujet sur le site espagnol Amstrad.Es que je suis
tombe dessus. Pas de bol, le source mis a disposition par CNGSoft 
n'etait pas utilisable directement sous Maxam, je l'ai donc remis en
forme pour etre utilisable directement depuis un CPC.

Ce petit document vous explique comment utiliser AplibZ80 sur un CPC,
et profiter ainsi du taux de compactage impressionnant de ce logiciel.
Il se paie le luxe d'etre un poil meilleur que Exomizer, car sa routine
de decompression est plus courte et plus rapide.

L'archive contient les fichiers suivants :

APLIBZ80.TXT	: le texte que vous lisez
APLIBZ80.DSK	: image disque CPC avec le source Maxam et un exemple
                  de compactage de page ecran (Ninja Commando C64)
APLIB-0.43.ZIP	: les sources d'Aplib PC, pour que l'auteur soit content.
APPACK.EXE	: exemple de compacteur modifie par Dadman
APPacKwin.EXE	: Meme chose, mais avec une interface

Rappel, si vous diffusez commercialement vos oeuvres (on peut toujours
rever, n'est ce pas :-) , il faudra acheter le droit d'utiliser Aplib.


Sources sur le net au 18/01/08 :
********************************

Site d'Aplilb : http://www.ibsensoftware.com/
 
Source de CNGSoft : http://cngsoft.livejournal.com/268202.html

Compacteurs modifies par Dadman / CEZ - Team : 
Crees a partir des sources de l'archive APLIB-0.43, il permettent de
ne pas avoir une routine PC integree au code compacte !

http://www.amstrad.es/forum/viewtopic.php?f=6&t=974



1) Preparer un repertoire de travail
------------------------------------
Creer un repertoire APLIB sur un volume de votre disque dur.
Recopier les programmes de Dadman dans le repertoire, c'est pret.


2) Transferer sur PC le fichier a compacter
-------------------------------------------
Le plus simple est d'utiliser ManageDsk, et d'exporter le fichier binaire
SANS EN-TETE dans le meme repertoire que l'executable 


3) Compactage avec Exomizer 2
-----------------------------
Franchement, la, on ne peut faire plus simple.

Syntaxe de la commande pour le fichier BOULDER.BIN

APPACK BOULDER.BIN BOULDER.CRU

Le programme compacte et cree un fichier BOULDER.CRU qui correspond au code
compacte.


4) On transfert sur CPC le fichier compacte
-------------------------------------------
Hop, on sort ManageDsk du placard, et on fait le transfert inverse de la
phase 1.  Il faut choisir l'option "Forcer Binaire" pour l'import.


5) Compilation de la routine de decompression
---------------------------------------------
Le source Maxam est fourni dans l'archive APLIB.DSK. Il suffit de rajouter
au debut du source les adresses d'implantation memoire du code compacte dans 
HL et du code a decompacter dans DE. Compilez le source, vous obtenez un 
fichier APLIB.BIN. Il est par defaut implante en &A000 pour l'exemple choisi
sur la disquette (page ecran C64).

Concernant la routine de CNGSoft, il y a une particularite qui peut etre
interessante. Elle permet de decompacter du code "du bas en haut" de la
memoire, ou "du haut en bas" de la memoire, ce que les autres crunchers ne
font pas. Pour cela, il suffit de modifier une variable dans le source. 

Malheureusement, pour l'instant, cette option n'est pas tres exploitable,
car il ne circule pas de compacteur permettant de compacter du code 
"a l'envers". C'est theoriquement possible avec les outils fournis, en
suivant cette methode :

- inverser le contenu du fichier a compacter (debrouillez-vous !)
- compacter le fichier avec les outils de Dadman
- inverser le contenu du fichier compacte (meme remarque)

Bref, il vaut mieux harceler CNGsoft qui doit avoir un programme de ce genre
plutot que de tenter l'aventure a la main si cette option vous est utile.


6) Creation d'un petit loader Basic ou binaire
----------------------------------------------
Il ne reste plus qu'a charger en memoire le code compacte, la routine de
decompression, l'executer, puis executer le programme decompacte s'il s'agit
d'un executable.
Pour plus d'explications, je vous incite a lire la notice de la routine de 
decompactage de PUCRUNCH, sur http://tj.gpa.free.fr.

Bon crunchage !
