Obligement - L'Amiga au maximum

Lundi 27 mars 2017 - 20:24  

Translate

En De Nl Nl
Es Pt It Nl


Rubriques

 · Accueil
 · A Propos
 · Articles
 · Galeries
 · Glossaire
 · Hit Parade
 · Liens
 · Liste jeux Amiga
 · Quizz
 · Téléchargements
 · Trucs et astuces


Articles

 · Actualité (récente)
 · Actualité (archive)
 · Comparatifs
 · Dossiers
 · Entrevues
 · Matériel (tests)
 · Matériel (bidouilles)
 · Points de vue
 · En pratique
 · Programmation
 · Reportages
 · Tests de jeux
 · Tests de logiciels
 · Tests de compilations
 · Articles divers

 · Articles in english
 · Articles in other languages


Twitter

Suivez-nous sur Twitter




Liens

 · Sites de téléchargements
 · Associations
 · Pages Personnelles
 · Moteurs de recherche
 · Pages de liens
 · Constructeurs matériels
 · Matériel
 · Autres sites de matériel
 · Réparateurs
 · Revendeurs
 · Presse et médias
 · Programmation
 · Développeurs logiciels
 · Logiciels
 · Développeurs de jeux
 · Jeux
 · Autres sites de jeux
 · Scène démo
 · Divers
 · Informatique générale


Jeux Amiga

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Trucs et astuces

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Glossaire

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Partenaires

Annuaire Amiga

Amedia Computer

Relec

Hit Parade


Soutien

N'hésitez pas à soutenir le projet Obligement



Contact

David Brunet

Courriel

 


Test de PowerPacker 4.0a
(Article écrit par Xavier Leclercq et extrait d'Amiga News - février 1992)


Compression

PowerPacker est, comme son nom l'indique, un UCD (utilitaire de compression de données). Le profane me posera la question suivante : "A quoi sert un UCD ?". L'UCD applique une série de traitements à un fichier pour en réduire le volume (une réduction de moitié n'est pas rare !). Conséquence pratique : les données en question prennent moins de place et vous pouvez donc stocker plus de fichiers. En clair, et sans décodeur, vous bénéficiez d'un potentiel de stockage qui pour le cas d'un disque dur A590 de 20 Mo pourra passer à 30 Mo.

Pour les curieux qui se demandent comment un tel miracle est possible, je ne peux que conseiller de relire cet article où la compression de données est traitée. La méthode utilisée par Nico François (auteur belge de PowerPacker) est une variante de la compression Lempel-Ziv-Welsh.

Boîte, disquette et contenu

Au départ, le logiciel était dans le domaine public, ce qui explique en partie sa grande popularité. Nico, au cours des dernières versions commerciales, a beaucoup travaillé et la version 4.0a n'a plus beaucoup de points communs avec la version 2.3b (que tout le monde possède) issue du domaine public (la première version commerciale étant la v3.0a).

PowerPacker

Le paquetage fait très professionnel, mais une fois la jolie boîte ouverte. Oh, surprise ! Une seule malheureuse disquette s'ennuie bêtement se demandant pourquoi on ne lui a pas donné la compagnie d'un manuel...

Passons au contenu de cette disquette. Les programmes sont accessibles via le Workbench, outre les deux PowerPacker (l'un pour 1.3, l'autre 2.0), on trouve plusieurs scripts d'installation, de la documentation en allemand et en anglais et trois répertoires : Tools, Libraries et Bonus.

"Tools" contient tout ce qui, à mon avis, fait la force de PowerPacker : la pléiade d'utilitaires destinés à utiliser les fichiers compactés. En plus des traditionnels PPmore, PPshow, PPanim (revus, corrigés et fonctionnant sous AmigaOS 2.0), on trouve deux petits nouveaux : PPtype qui imprime les fichiers compactés et PPloadseg (voir plus loin).

Dans "Libraries", Nico François nous parle des bibliothèques nécessaires à l'UCD et, chose intéressante, il existe deux archives contenant une foule de documentations, renseignements, sources, pour celui qui souhaite coder des programmes le gérant.

Enfin, le répertoire "Bonus" contient deux utilitaires : PowerSnap et RemapInfo.

Présentation de PowerPacker 4.0a

Passons maintenant aux choses sérieuses : PowerPacker 4.0a. Je vous rappelle qu'il existe deux versions, une pour le Kickstart 2.0, l'autre pour le 1.3. Sous 2.0, la version 1.3 fonctionne correctement mais une fenêtre de requête vous préconise l'emploi de l'autre version.

Le menu "Project" contient toujours les traditionnels "Load File", "Save File", "Save To", la possibilité d'effacer un fichier. Il existe également une option permettant de lire des fichiers textes utilisant PPmore (Read). Le menu "Prefs" constitue tout ce qui fait les préférences du programme, avec toujours la possibilité de sauvegarde des paramètres sélectionnés.

PowerPacker

Il y a également moyen de compacter n'importe quel programme chargé par la fonction LoadSeg(), grâce à la fonction "LoadSegFile". Ainsi, la combinaison de cette option et da l'utilitaire PPLoadSeg vous permet la compression des bibliothèques, devices, polices, etc.

Vous pouvez également changer les couleurs de fond et du texte, utiliser les différents modes du système 2.0, optimiser la taille du tampon mémoire du programme, définir l'efficacité et la vitesse de compression, mettre une alarme qui vous indiquera que la compression est terminée...

Améliorations

Une série de petits détails a été revue par rapport à la dernière version 3.0b rendant de ce fait le logiciel plus convivial. Citons :
  • Un ajustement automatique de l'écran de PowerPacker à la taille de l'écran Workbench (possibilité d'ouvrir PowerPacker en mode Productivity et de définir son propre jeu de caractères si vous êtes équipé d'une ROM 2.0).
  • Une meilleure gestion des requêtes (nouvelle reqtools.library).
  • Possibilité de recompression de fichiers comprimés avec Imploder (v1.0 à 4.0).
  • Une gestion du 68040.
  • Et la grande nouveauté apportée par la version 4.0a : la gestion complète d'ARexx.
ARexx est la version Amiga du langage REXX conçu par IBM il y a quelques années. Il s'agit en résumé d'un interpréteur de commandes (style interpréteur BASIC mais les commandes traitées sont du niveau du CLI/Shell, le CLI étant lui-même un interpréteur de commandes mais beaucoup moins évolué). PowerPacker 4.0a permet l'utilisation d'ARexx pour piloter directement le logiciel à partir d'une source ARexx. En clair, tout ce qui est possible de faire avec les menus déroulants de PowerPacker, vous pourrez le réaliser à partir de commandes ARexx. Par exemple, pour charger un fichier, il suffit de lancer la commande "Load NomDeFichier". Si le fichier est un fichier compressé par PowerPacker, certaines variables (les variables sont sans "type" particulier sous ARexx) seront initialisées. "Gainpercentage", par exemple, contiendra le gain en pourcentage affecté au fichier.

Voici un exemple de programme ARexx appliqué au PowerPacker 4.0a :

PowerPacker

Rappel : pour que ces commandes soient correctement interprétées, il vous faut lancer RexxMast (Workbench 2.0, répertoire "Utilities"), puis vous placer dans le répertoire "Rexxc:", exécuter PowerPacker 4.0a, et enfin la commande CLI "RX NomDuFichierSource.rx".

Les personnes qui ont la chance de posséder un A500+/A3000 possèdent également ARexx qui est livré en standard. Les autres peuvent le commander à Bill Hawes, Whishful Thinking Developement Corp., P.O. Box 308 Maynard MA, 01754 (États-Unis). Prix : 50 $.

PowerPacker ou Imploder

Cédric Beust vous a déjà exposé les qualités d'un autre compresseur/décompresseur du nom de Imploder. En fait, c'est vrai qu'Imploder affiche de très bonnes performances mais le PowerPacker se défend pas mal en réalisant des taux de compression quasi identiques et semble-t-il avec une vitesse parfois très supérieure (même si ce n'est pas évident dans tous les cas car il faut toujours tenir compte de la nature des données mais aussi de l'efficacité de la compression qui peut être sélectionnée). Cependant, en cas de gros fichiers, Imploder sort vainqueur d'une (très) courte tête.

En fait, la grande différence est que PowerPacker a tout un environnement qu'Imploder ne possède pas. Cette série d'utilitaires (PPtype, PPmore, PPanim, PPshow, PPlib) fait la force du programme. De plus, les possibilités et options sont beaucoup plus vaste avec PowerPacker (un exemple : la possibilité de réaliser des scripts de compressions/décompressions).

Notez que la version 4.0a de PowerPacker que j'ai testée améliore le taux de compression de 10% (fichiers de commandes uniquement) par rapport à l'avant-dernière version du logiciel (v3.0b).

PPLoadSeg

Par contre, il faut bien l'avouer, les dernières versions de PowerPacker ont été inspirées d'Imploder. Vous pouvez maintenant compresser des polices, des bibliothèques, des pilotes d'imprimantes, des fichiers "keymaps", et même des "handlers" !

Ce qui est vraiment incroyable, c'est de constater que cette merveille de programmation ne prendra "que 480 octets" de votre mémoire (à ceci s'ajoutera la taille de la bibliothèque de PowerPacker en cas de décompression).

Comment cela marche ?

Simple, comme son nom l'indique, l'utilitaire va prendre à son compte un vecteur stratégique du système : LoadSeg - 50(dosbase). En fait, il s'agit de "la bibliothèque interne" d'AmigaOS, c'est-à-dire celle qui est utilisée par pratiquement toutes vos commandes CLI/Shell.

Deux mécanismes se mettent en marche lorsque vous tentez par exemple de charger une commande. Le premier est la fonction de bibliothèque LoadSeg qui permet de charger à n'importe quel endroit de la mémoire de votre Amiga un programme qui, a priori, pourrait très bien se placer à l'adresse absolue $50000 ou bien $250000. Le second est l'instruction qui construit ce bout de programme qui n'est plus inerte (on dit que son "mot d'état" évolue). Pour être exact, il s'agit non d'une nouvelle tâche mais d'un nouveau processus. Le processus possède sa propre pile et la fonction qui est à son origine est "CreateProc" de la bibliothèque "dos interne" [CreateProc - 138(dosbase)].

Comme vous le comprenez, l'implantation physique d'un programme à un endroit précis n'est pas concevable sur une machine qui se veut multitâche... Pour permettre quand même une certaine souplesse de programmation, ce n'est pas le concepteur de l'application qui devra penser à respecter un adressage relatif mais le système lui-même qui se chargera (sans jeu de mots voulu) de placer le programme en mémoire en préservant son état fonctionnel.

Le "chargeur"

Pour les personnes qui ne comprennent pas très bien le propos, j'en profite pour parler un peu de la méthode de chargement adoptée sur Amiga. Pour ceux d'entre vous qui ont pris plaisir au contact d'un ordinateur 8 bits (C64, C128, Spectrum, ZX, Alice...), ils doivent se souvenir qu'il n'était jamais très difficile de comprendre le chargement d'un programme : celui-ci était toujours présent au même emplacement en mémoire, et son exécution débutait toujours, par conséquent, à une adresse fixée à l'avance.

Sur Amiga, la chose n'est plus concevable simplement du fait que le contexte n'est plus mono utilisateur et mono tâche mais est étendu aux concepts de multi-utilisateurs et programmes résidents (attribut "pure") en multitâche. Cette multiprogrammation implique qu'une application ne doit plus être tributaire de son emplacement en mémoire. Pour ce faire AmigaOS possède dans ses ROM un "chargeur". Le chargeur est un programme capable de convertir un programme prévu d'origine pour une adresse xxxxxx et capable de translater le code pour "qu'il tourne" à une adresse yyyyyy. Cette exploit n'est possible que grâce au type de microprocesseur utilisé par Amiga : la famille Motorola 680x0 qui connaissent l'adressage relatif.

Clairement, le code machine permet de dire "je travaille à l'adresse de base xx + offset xx" au lieu de "je travaille à l'adresse yy". Si les références sont toujours réalisées à partir d'un offset on peut donc toujours changer l'adresse de base pour travailler à n'importe quel endroit de la mémoire.

Maintenant si le super-méga-génial programme que vous venez de réaliser ne tient pas compte de cette possibilité d'adressage mais contient la référence à une adresse absolue, que faire ? C'est là que le chargeur Amiga entre en action. Lors de la sauvegarde l'adresse rebelle a été sauvegardée dans une table que l'on connaît sous le nom barbare de "hunks". Bref, c'est cette adresse qui sera modifiée par le chargeur... Le code ainsi produit est dit "relogeable".

Tout ceci pour expliquer que PPLoadSeg utilise le chargeur à son profit. Cela permet donc de décompacter à peu près n'importe quel fichier, que ce soit des données ou des commandes.

Avec le système 2.0, les choses évoluent quelque peu car ce n'est plus LoadSeg mais NewLoadSeg qui est utilisé par AmigaOS. Mais l'auteur (qui a la chance d'avoir à sa disposition un A3000 et donc le système 2.0) a prévu cette nouveauté et PPloadSeg marche parfaitement en 2.0.

J'oubliais presque de vous signaler que PPLoadSeg doit être lancé à partir de votre startup-sequence, ce qui fait un utilitaire de plus pour votre fichier script, mais quels avantages !

Conclusion

Je regrette un peu que Nico François n'ai pas prévu une option archivage ou du moins une compatibilité avec les fameux Lharc et Zoo. Je pense que cela intéresserait pas mal d'utilisateurs de pouvoir disposer de cette facilité.

Je n'ai pas remarqué d'énormes bogues ; toutefois quelques programmes refusent de marcher lorsqu'ils sont compactés, mais j'évalue cette situation à une fois sur cinquante, aussi, prévoyez une copie de sauvegarde de vos exécutables, même si les risques d'un tel accident sont minimes.

Ceux d'entre vous qui utilisent régulièrement la version 2.3b du domaine public peuvent acheter cette version 4.0a sans hésiter : ils ne pourront qu'apprécier. Quant à la catégorie de personnes qui hésitent à faire la mise à jour, et dans le cas où elles comptent bientôt acheter un A500+ (qui est donc équipé du 2.0), la version 4.0a de PowerPacker répondra parfaitement à l'exigence de leur système 2.0. Bref, en trois mots comme en un article : un bon logiciel.

Merci à TH. Maquer pour ses conseils et pour m'avoir prêté son logiciel (acheté au salon de Cologne 1991) le temps du test.

Annexe : le faux PowerPacker

Attendez, je n'ai pas encore terminé avec PowerPacker ! Ou plutôt je vais vous parler d'un faux PowerPacker version 3.2. Il s'agit d'une version comprimée en Lzh destinée au BBS.

Ce fichier, une fois décompressé, dévoile un cheval de Troie qui est peu ordinaire car s'attaquant aux programmes de transmission ! Donc c'est particulièrement les utilisateurs de modems qui sont ici visés. Mais attention, le faux PowerPacker 3.2 tente aussi d'écrire sur les partitions DH0: et DH1: de votre éventuel disque dur !

faux PowerPacker 3.2

Mettons les points sur les "i" de suite : ce cheval de Troie n'a absolument rien à voir avec la version commerciale du programme. Heureusement pour nous il existe une faille dans la mécanique. Avant d'aller plus loin dans ces recherches, ce cheval de Troie va simplement tester si la tâche Amiga du nom de "SnoopDos" est présente en mémoire. Si le test se révèle positif alors le cheval de Troie n'ira pas plus loin (ouf !). Donc pour s'en protéger, il suffit tout simplement de créer une tâche du même nom qui sera lancée à partir de la startup-sequence.

Ce programme est très simple : il rajoute une tâche du nom de "SnoopDos" au système. Cette tâche teste alors en continu si un programme résident est en mémoire. C'est par exemple le cas du Saddam Hussein Virus qui dévie le "kicktagptr". Dans ce cas une réinitialisation détruira l'indésirable... Le but du jeu reste bien entendu la seule création de la tâche SnoopDos qui permet de se protéger du cheval de Troie issu du faux PowerPacker.

PowerPacker
PowerPacker

Nom : PowerPacker 4.0a.
Développeur : Nico François.
Éditeur : UGA.
Genre : compresseur.
Date : 1991.
Configuration minimale : Amiga OCS, 68000, 512 ko de mémoire.
Licence : commercial.
Prix : 165 FF.


[Retour en haut] / [Retour aux articles]