11546
UTILITY -> Other
© _Shareware_ (2008)
 
 
 
Aplib Z80
cpc
 
 

Last Update : Sunday 22 February 2015 at 21 h 34

MANUAL n° 1

235.72 Ko
Manual in ZIP format
sources d'Aplib PC 0.43 + aPPackWin.exe + appack.exe

Manual n° 2

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 !

Manual n° 3

; Aplib decrunching routine ; (c) CNGSOFT ; Maxam source by T&J/GPA - 01/18/2008 ; Nothing changed, except thy damned hidden opcodes ; and a new variable for Maxam ( 13+8*0 = 0 for Maxam ) ORG &A000 NOLIST WRITE "APLIB.BIN" ; Attention, cette routine contient un assemblage conditionnel. ; Si Aplib8flag = 0, le code decompacte est ecrite du bas de la ; memoire vers le haut de la memoire. C est ce que font par defaut ; les programmes modifies par Dadman/CEZ - Team (APPACK.EXE et ; aPPackWin.exe. ; Si Aplib8flag = 1, le code decompacte est ecrit du haut de la ; memoire vers le bas de la memoire. Le code compacte doit bien ; evidemment etre organise en consequence. aplib8flag equ &0 ; = DEC &00 pour INC flagdecde equ aplib8flag*8 ; for Maxam compatibility ; En entree, on a : ; HL = implantation du code compacte ; DE = implantation du code decompacte Start DI LD HL,&4000 LD DE,&C000 CALL boot JP &000F Boot PUSH HL ; used for EX HL,(SP) PUSH HL POP IX DB &FD,&26,&80 ; LD IYh,&80 aplib8literal LD A,(IX+ &00) DB &DD,&23 + flagdecde ; INC IX/DEC IX LD (DE),A DB &13 + flagdecde ; INC DE/DEC DE DB &FD,&2E,&02 ; LD IYl,&2 aplib8nexttag CALL aplib8getbit JR NC, aplib8literal LD BC,&0000 CALL aplib8getbit JR NC, aplib8codepair LD H,B CALL aplib8getbit JR NC, aplib8shortmatch DB &FD,&2E,&02 ; LD IYl,2 INC C ; bc LD L,&10 aplib8getmorebits CALL aplib8getbit RL L JR NC, aplib8getmorebits JR NZ, aplib8domatch LD A,L LD (DE),A DB &13+ flagdecde ; INC DE/DEC DE JR aplib8nexttag aplib8codepair CALL aplib8getgamma DB &FD,&4D ; LD C,IYl SBC HL,BC JR NZ, aplib8normalcodepair CALL aplib8getgamma LD B,H JR aplib8domatch_lastpos aplib8normalcodepair DEC L LD H,L LD L,(IX + &00) DB &DD,&23+ flagdecde ; INC IX/DEC IX PUSH HL CALL aplib8getgamma LD B,H POP HL LD A,H CP 125 ; cmp eax,32000 JR NC, aplib8domatch_with_2inc CP &05 JR NC, aplib8domatch_with_inc AND A JR NZ, aplib8domatch_new_lastpos LD A,L ADD A JR C, aplib8domatch_new_lastpos aplib8domatch_with_2inc INC BC aplib8domatch_with_inc INC BC aplib8domatch_new_lastpos EX (SP),HL aplib8domatch_lastpos POP HL PUSH HL DB &FD,&2E,&01 ; LD IYl,1 aplib8domatch if aplib8flag ; LDIR/LDDR ADD HL,DE LDDR else AND A EX DE,HL SBC HL,DE EX DE,HL ADD HL,DE EX DE,HL LDIR endif JR aplib8nexttag aplib8shortmatch LD L,(IX+&00) DB &DD,&23+ flagdecde ; INC IX/DEC IX SRL L JR Z, aplib8donedepacking RL C JR aplib8domatch_with_2inc aplib8getbit DB &FD,&7C ; LD A,IYh ADD A JR NZ,aplib8getbit_ LD A,(IX + &00) DB &DD,&23+ flagdecde ; INC IX/DEC IX ADC A aplib8getbit_ DB &FD,&67 ; LD IYh,A RET aplib8getgamma LD HL,&0001 aplib8getgamma_ CALL aplib8getbit ADC HL,HL CALL aplib8getbit JR C, aplib8getgamma_ LD C,L RET aplib8donedepacking POP HL ; used for EX HL,(SP) PUSH IX POP HL RET ; Warning, A might not be 0!


Goto Top
CPC-POWER/CPCSOFTS, programming by Kukulcan © 2007-2019 all rights reserved.
Reproduction forbidden without any express authorization. All the game titles used belong to their respective owners.
Hébergement Web, Mail et serveurs de jeux haute performance