Reductor
--------
Auteur : Herve Monchatre
Publie dans AMSTAR & CPC numero 38 * octobre 1989
Valable pour CPC 464, 664, 6128
Reductor est un compacteur d'ecrans dedies aux ordinateurs Amstrad de la serie
CPC. Comme il n'est pas seul dans sa categorie, il se devait de proposer plus
que ses concurrents, et, vous allez le voir, il dispose de caracteristiques
tout a fait interessantes, voire nouvelles.
Ce programme a ete concu sur un cpc 6128, mais il devrait tourber sans
difficulte sur les cpc 464 avec drive et 664.
Dans un premier temps, nous allons nous interesser a la technique meme du
compactage, puis nous passerons en revue les possibilites du programme.
UN PEU DE TECHNIQUE
-------------------
Reductor utilise une technique de compactage classique. La routine de compactage
recherche des suites de plus de 2 octets de meme valeur dans la zone memoire
ecran, et code ces suites sous la forme de 3 octets :
- le 1er est l'octet de reconnaissance (valeur qui signifie que les 2 octets
qui suivent sont du code compacte).
- le 2eme octet est la valeur de l'octet de la suite (compris entre 0 et 255).
- le 3eme est la longueur de la suite (comprise entre 3 et 255).
Pour l'instant, rien de revolutionnaire. Mais a cette routine de compactage sont
associees deux routines qui recherchent le meilleur octet de reconnaissance pour
chaque ecran, ceci afin de reduire le plus possible la longueur de l'ecran
compacte.
La technique de compactage decrite ci-dessus n'est pas parfaite, car quand le
compacteur rencontre dans l'ecran non compacte l'octet de reconnaissance, il
est oblige de le coder avec trois octets,d'ou perte de place...
Nous avons donc interet a rechercher un octet de reconnaissance qui apparait
le moins possible dans l'ecran non compacte, c'est en fait la premiere routine.
En general, elle en trouve une.
Si cette recherche se traduit par un echec, le programme appelle la 2eme
routine. Cette seconde routine recherche une valeur pour l'octet de reconnais-
sance qui apparait le moins possible dans l'ecran non compacte.
Attention !!!! Elle prend plus de temps que la precedente, il faut compter de
1 a 3 minutes...
Apres avoir vu succintement la methode de compactage, nous allons passer a
l'utilisation proprement dite du logiciel.
UTILISATION DU LOGICIEL
-----------------------
Une fois que vous avez tape et charge REDUCTOR, un message vous demandera
d'introduire une disquette et d'appuyer sur une touche. Puis, le catalogue
s'affichera et le programme vous demandera le nom de l'ecran 17ko a compacter.
Le programme va charger le fichier, le compacter, afficher les caracteristiques
di code compacte (longueur en octets, taille sur la disquette, gain de taille
en %, adresse d'implantation).
Arrive a ce stade, REDUCTOR va vous proposer de configurer le decompacteur de
l'ecran (qui est integre au fichier compacte) selon vos besoins. Nous allons
aborder en detail chacune des options qui vous sont proposees.
Chargement en memoire ecran
---------------------------
Reductor vous permet de charge un ecran compacte dans la zone memoire ecran
et de le decompacter sans "toucher" a la RAM reservee au Basic. Tout se
passe entre &C000 et &FFFF.
Utilite ? Cela permet par exemple de charger un ecran apres avoir charge un
programme occupant la RAM basic.
Il faut preciser que le decompacteur est transfere par un LDIR en &BE80.
Attention a ne rien mettre a cette adresse, sinon, vous risquez d'avoir des
surprises.
Si vous avez choisi cette option alors que le compactage de l'ecran a
necessite la recours a la 2eme routine de recherche, un message vous demandera
si vous voulez tester la validit du compactage. Je ne vais pas vous expliquer
le pourquoi du risque d'erreur dans le cas present, faites ce test (laisser
le disque dans le lecteur) qui charge l'ecran non compacte, decompacte
l'ecran compacte et les compare.
Si le logiciel vous repond que le decompactage est errone, ne pas utiliser
cette option. Sinon, pas de probleme.
Decompactage en &6000
---------------------
Cette option vous permet de decompacter un ecran en &6000 (il n'apparait donc
pas a l'ecran) pour utiliser par exemple des presentations speciales, sujet
que nous allons aborder par la suite.
Sachez qu'il vous faudra charger l'ecran compacte en &2000.
Nouvelle adresse d'execution
----------------------------
Cette option permet de redefinir l'adresse d'execution de l'ecran compacte.
Cette adresse est par defaut &6000. Cela rend possible le chargement de
plusieurs ecrans en memoire, par exemple.
Nouveau nom de fichier
----------------------
Je pense qu'il n'est pas necessaire d'expliciter cette option. Le programme
vous demande ensuite la confirmation de la sauvegarde.
Voila, j'espere que REDUCTOR n'aura plus de secret pour vous, et qu'il
vous aura seduit. Tout au long de cette notice, j'ai essaye d'etre le plus
clair possible...