AZap - Manuel de référence AboutThisDoc Ce manuel décrit la version 2.10 de l'utilitaire AZap. Ce programme est (c)1992-1993 par Denis GOUNELLE, toute utilisation commerciale ou vente sans autorisation écrite est strictement interdite. Vous pouvez copier et diffuser ce programme aux conditions suivantes : - l'ensemble des fichiers doit être fourni - aucun fichier ne doit avoir été modifié - vous ne devez pas demander plus de 40FF pour cela Malgré de nombreux tests, je ne peux garantir que AZap ne contient aucune erreur. VOUS UTILISEZ CE PROGRAMME A VOS RISQUES ET PERILS. Je ne pourrai en aucun cas être tenu pour responsable de tout dommage, direct ou indirect, résultant de l'utilisation de AZap. Introduction AZap est un éditeur binaire "nouvelle génération", capable d'éditer aussi bien un fichier que la mémoire, ou encore une disquette (même s'il n'offre pas d'outils pour vous aider à récupérer une disquette endommagée). AZap peut ouvrir plusieurs fenêtres d'édition en même temps et dispose de nombreuses fonctions, comme l'impression d'un bloc, le remplissage d'un bloc, la recherche d'une chaine, etc... NOTE IMPORTANTE : Il est interdit de se servir de ce programme pour modifier des indications de copyright, ou pour toute autre usage contraire à la loi. De plus, je déconseille vivement aux utilisateurs non expérimentés d'utiliser ce programme : vous risquez de rendre des programmes inutilisables, ou de perdre toutes les informations stockées sur votre disque dur !  Vos critiques et suggestions sur ce programme seront toujours les bienvenues. N'hésitez pas à m'écrire, à l'adresse suivante : M. GOUNELLE Denis Boite 71 6, rue des cailloux 92110 CLICHY - FRANCE Vous pouvez également m'adresser un message à l'adresse Internet "gounelle@alphanet.ch". Notez qu'il s'agit d'une boite à lettre mise à ma disposition par un ami, aussi veuillez n'envoyer que de courts messages. De plus, n'ayant pas accès directement à mes messages, n'espérez pas avoir une réponse avant une dizaine de jours. Merci à Pierre ARDICHVILI et à Jean-Yves PROUX pour leurs suggestions. En France, la dernière version de ce programme est disponible auprès de Serge HAMMOUCHE, 3 rue Anatole France, 13220 Chateauneuf-les-Martigues. Pour recevoir le catalogue complet, il vous suffit d'envoyer deux timbres à cette adresse. Installation AZap utilise la bibliothèque "reqtools.library" (version 2.0C ou supérieure), que vous devez copier dans votre répertoire "LIBS:", si ce n'est déjà fait. La bibliothèque "reqtools.library" est (c)1990-1993 par Nico FRANCOIS. AZap est désormais localisé, c'est-à-dire qu'il peut s'adapter à la langue par défaut si vous avez le système 2.1 ou plus. Il vous faudra alors copier le fichier catalogue désiré dans le répertoire correspondant à votre langue par défaut. Par exemple, s'il s'agit du français, copiez le fichier "français.catalog" dans le répertoire "SYS:Locale/Catalogs/Français", sous le nom "AZap.catalog" Appel_depuis_le_CLI AZap se détache automatiquement du CLI. Les arguments acceptés sont les suivants : WBENCH Normalement, AZap ouvre son propre écran. Cette option permet de travailler sur l'écran Workbench. LACE Si cette option est présente, AZap ouvre un écran entrelacé au lieu d'un écran normal. Notez que cette option est ignorée si vous avez indiqué l'option WBENCH. FONT nom Par défaut, AZap utilise une police interne de 6x9. Vous pouvez cependant demander à utiliser une autre police : "nom" doit être sous la forme (par exemple "courier9"). AZap refusera si la police est proportionnelle, ou si elle est trop grande pour pouvoir afficher un bloc de 512 octets. MEMORY Au démarrage, AZap ouvre une fenêtre d'édition de la mémoire. DEVICE nom Au démarrage, AZap ouvre une fenêtre d'édition pour l'unité "nom". N'oubliez pas les deux-points (":") à la fin du nom. Tout autre argument est considéré comme un nom de fichier à ouvrir. Vous pouvez indiquer plusieurs noms de fichiers, mais seuls les huit premiers seront pris en compte. Il est bien évidemment possible d'indiquer à la fois des noms de fichiers, l'option MEMORY, et l'option DEVICE. Si aucun argument n'est indiqué, une requête de fichier apparait (voir Le_menu_Projet) pour que vous puissiez sélectionner le fichier à éditer. Appel_depuis_le_Workbench Vous pouvez indiquer les arguments suivants, dans le champ "TOOL TYPES" de l'icône de AZap : OPTIONS=WBENCH ou OPTIONS=LACE Voir description des options WBENCH et LACE au chapitre Appel_depuis_le_CLI. FONT=nom Voir description de l'option FONT au chapitre précédent Appel_depuis_le_CLI. Au démarrage, une requête de fichier apparait (voir Le_menu_Projet) pour que vous puissiez sélectionner le fichier à éditer. La_fenêtre_d'édition La partie gauche de l'affichage montre le contenu du bloc en hexadécimal, par groupe de 4 octets. La partie droite montre l'équivalent en caractères, les codes non imprimables étant remplacés par un point ("."). En bas et à droite sont affichées quelques informations : l'adresse du bloc (relative au début, en hexadécimal), le déplacement dans le bloc (en hexadécimal), le numéro de bloc (relatif au début, en décimal), et le type de bloc. Cette dernière information n'a de sens que quand vous éditez une unité DOS. Quand les données du bloc ont été modifiées, une étoile ("*") est affichée à droite de la première ligne. Si la somme de contrôle du bloc est valide, le caractère "V" est affiché à droite de la seconde ligne (n'a de sens que quand vous éditez une unité DOS). A l'ouverture de la fenêtre, le permier bloc est affiché, et le curseur est positionné sur le premier caractère de la partie droite. La position correspondante dans l'autre partie est montrée par un affichage dans une couleur différente. Vous pouvez vous déplacer à l'aide des touches du curseur. Pour passer de la partie droite à la partie gauche (et inversement) utilisez la touche de tabulation. Vous pouvez également vous positionner n'importe où à l'aide de la souris. Pour modifier les données, tapez simplement les nouvelles valeurs. Dans la partie gauche, seuls les caractères "0" à "9", "a" à "f" et "A" à "F" sont acceptés. AZap garde en mémoire les 32 dernières modifications. Tant que vous n'avez pas changé de bloc, vous pouvez annuler ces changements en sens inverse, à l'aide de la touche . Les touches suivantes sont également reconnues : ctrl-haut va en début de fichier ctrl-bas va en fin de fichier ctrl-gauche va au bloc précédent ctrl-droit va au bloc suivant shift-haut va sur la première ligne shift-bas va sur la dernière ligne shift-gauche va au début de la ligne shift-droit va en fin de ligne La rangée de boutons en bas de la fenêtre offre les fonctions suivantes (de gauche à droite) : aller au premier bloc, aller au bloc précédent, écriture des modifications, aller au bloc suivant, aller au dernier bloc. Le bouton tout à droite (GOTO) provoque l'apparition d'une boite de requête. Vous êtes alors invité à entrer une adresse, sous une des formes suivantes : nbr saut à l'adresse 'nbr' §nbr saut au bloc 'nbr' @nbr saut à l'adresse contenue dans le long mot à l'adresse 'nbr' (utilisable seulement en édition de mémoire) #nbr saut à la zone mémoire numéro 'nbr' (utilisable seulement en édition de mémoire) Dans tous les cas, 'nbr' est une expression entière, dont la syntaxe est décrite au chapitre "Syntaxe_des_expressions". L'ascenseur en bas de la fenêtre permet également le déplacement. Notez que, dans tous les cas, si vous changez de bloc sans sauvegarder vos modifications, elles seront perdues ! Pour fermer la fenêtre d'édition, il vous suffit de cliquer sur son gadget de fermeture. Si le bloc a été modifié mais non sauvé, AZap vous demandera confirmation. Le programme s'arrête automatiquement quand vous fermez la dernière fenêtre. Le_menu_Projet Ouvre fichier... Permet d'éditer un fichier : une requête de fichier apparait, sélectionnez le fichier désiré. AZap ouvre alors une fenêtre supplémentaire d'édition. Si vous avez sélectionné "RAM:", la fenêtre sera une fenêtre d'édition de la mémoire. Si vous avez sélectionné un nom d'unité (par exemple "DH0:" ou "Work:"), AZap ouvrira une fenêtre d'édition d'unité. Ouvre mémoire Ouvre une fenêtre supplémentaire, permettant l'édition de la mémoire. Ouvre unité Un sous-menu vous permet de sélectionner l'unité à éditer. AZap ouvre alors une fenêtre supplémentaire d'édition. Palette... Vous permet de modifier les couleurs de l'écran (une requête de couleur apparait). Sauve prefs Vous permet de sauvegarder la configuration de AZap : les couleurs de l'écran et la police de caractères. Les options de la fenêtre courante sont également enregistrées comme options par défaut. Le nom du fichier de configuration est "S:AZap.Config". A propos... Affiche des informations sur le programme. Quitte Termine l'exécution de AZap. Le programme vous demandera confirmation. Le_menu_Edite Annule Relit le bloc courant. Ceci permet d'annuler toutes les modifications, tant que vous ne les avez pas enregistrées. Revient Chaque fois que vous vous déplacez avec les boutons "aller au premier bloc", "aller au dernier bloc", ou "GOTO", l'ancienne position est conservée en mémoire, et cette commande vous permet d'y revenir par la suite. L'ancienne position est également mémorisée dans ce cas, ce qui peut être utile si vous travaillez toujours sur les deux mêmes blocs. Bloc suivant Lorsque vous éditez une unité DOS, cette commande vous permet d'aller soit au premier bloc de données (si vous êtes sur une entête de fichier), soit au bloc suivant (si vous êtes sur un bloc de données d'une disquette en OFS). Bloc parent Lorsque vous éditez une unité DOS et que le bloc courant est une entête de fichier (ou un répertoire), cette commande vous permet d'aller au bloc de type "répertoire" correspondant au répertoire père de ce fichier (ou répertoire). Bloc racine Lorsque vous éditez une unité DOS, cette commande vous permet de vous positionner directement sur le bloc racine de cette unité. Bloc d'entête Lorsque vous éditez une unité DOS, cette commande vous permet de vous positionner sur le bloc d'entête (de fichier ou de répertoire) suivant. Dans les quatre cas précédents, l'ancienne position est mémorisée afin que vous puissiez y revenir avec la commande "Revient" (voir chapitre "Le_menu_Edite"). Le_menu_Outils Infos Affiche les caractéristiques de ce que vous éditez (fichier/mémoire/unité). Examine Lorsque vous éditez une unité DOS et que le bloc courant est un bloc d'entête, cette commande vous permet d'afficher les mêmes informations que la commande "Infos" sur le fichier ou répertoire correspondant à ce bloc d'entête. Imprime... Vous permet d'imprimer un ou plusieurs blocs à partir du bloc courant. Une boite de requête apparait pour vous permettre éventuellement d'envoyez la sortie vers un fichier, plutôt que vers l'imprimante ("PRT:"). AZap vous demandera ensuite le nombre de bloc à imprimer. Conversion Fait apparaitre une fenêtre supplémentaire, avec quatre gadgets, qui vous permet d'effectuer des conversions entre nombres binaires, décimaux, hexadécimaux et chaines de caractères. Toute valeur saisie, c'est-à-dire une expression complête pour les gadgets "BIN", "DEC", et "HEX" ou une chaine de caractères pour le gadget "ASC", est convertie dans les autres unitées. Notez que cette fenêtre ne bloque pas les fenêtres d'édition. Sauve bloc Vous permet de sauver le contenu d'un ou de plusieurs blocs à partir du bloc courant. Une requête de fichier apparait pour vous permettre d'indiquer le fichier où sauver les blocs. AZap vous demandera ensuite le nombre de bloc à sauver. Remplit bloc... Vous permet de mettre tous les octets du bloc courant à la même valeur. Une boite de requête apparait, entrez la valeur désirée : soit 'c' pour remplir avec le caractère "c", soit un nombre qui indique le code ASCII du caractère (précédé par "0x" pour une valeur hexadécimale). Le_menu_Recherche Cherche... Vous permet de commencer une recherche. Une boite de requête apparaît, entrez la valeur à chercher : soit une valeur hexadécimale (précédée par "0x", attention à donner un nombre pair de chiffres), soit une chaine de caractère (recherche ASCII). Pour chercher une chaine commençant par "0x", mettez toute la chaine entre guillemets. Cherche texte... Vous permet de chercher des suites de caractères affichables. Cela peut être utile par exemple pour chercher une zone de textes. Une boite de requête apparaît, entrez le nombre minimal de caractères que doit avoir une suite pour être prise en compte. Une valeur inférieure à 4 n'est en général pas très intéressante. Cherche suivant Vous permet de poursuivre la recherche à partir de la position courante. Dans les trois cas précédents, si la valeur que vous avez entrez est trouvée, AZap se positionne automatiquement à l'endroit correspondant. L'ancienne position est mémorisée afin que vous puissiez y revenir avec la commande "Revient" (voir chapitre "Le_menu_Edite"). Il est possible d'interrompre la recherche, et AZap est capable de trouver une chaine à cheval sur deux blocs. Cherche fichier Vous permet de vous positionner directement sur le bloc d'entête d'un fichier ou d'un répertoire. Une requête de fichier apparait, pour que vous puissiez sélectionner le fichier à chercher. AZap ouvre alors une fenêtre d'édition sur l'unité correspondante, et se place sur le bloc d'entête du fichier. Le_menu_Options Notez que les options sont locales à chaque fenêtre : changer une option n'affectera que la fenêtre courante. Lorsque vous ouvrez une nouvelle fenêtre, elle hérite des options de la fenêtre courante. Somme de contrôle Vous permet d'indiquer à AZap quand il doit recalculer les sommes de contrôle des blocs (ceci n'est pris en compte que si vous éditez une unité). Les choix sont : "Recalcule" (AZap recalcule la somme de contrôle pour *TOUS* les blocs), "Demande" (AZap vous posera la question à chaque écriture), "Blocs 0 & 1" (seulement pour le bloc d'amorçage) et "Automatique" (seulement si la somme de contrôle était correcte à la lecture). Sauveg. auto AZap sauvegarde automatiquement tout bloc modifié dès que vous demandez à changer de bloc. Lecture seule AZap interdit toute modification des données. min = MAJ Indique si les majuscules et les minuscules seront différenciées ou non lors des recherches. Copie de sauveg. Indique si AZap doit créer une copie de sauvegarde des fichiers édités. Si cette option est sélectionnée, à la prochaine tentative d'écriture, une boite de requête apparaitra pour vous demander le nom de la copie à créer. AZap fera alors une copie du fichier, avant d'enregistrer vos modifications. En cas d'erreur pendant la copie, la boite de requête réapparaitra, pour vous permettre d'indiquer un autre nom. Si vous cliquez sur "Cancel", aucune copie ne sera faite mais les modifications seront enregistrées quand même. Syntaxe_des_expressions AZap est capable de calculer des expressions entières. La base par défaut est soit le décimal pour la saisie des adresses (gadget "GOTO") soit la base correspondant au gadget pour la fenêtre de conversion. Il est possible de préciser la base, en préfixant un nombre par "%" pour le binaire, "#" pour le décimal, et "$" ou "0x" pour l'hexadécimal. Les opérateurs connus sont : + addition - soustraction | "ou" logique & "et" logique * multiplication / division entière % reste de la division entière < décalage à gauche > décalage à droite Normalement, les opérateurs "*", "/", "%", "<" et ">" sont plus prioritaires que les autres, mais vous pouvez utiliser des parenthèses. En cas d'erreur de syntaxe, le résultat d'une expression sera égal à -1. Remarques_importantes Lors du démarrage du programme, AZap consulte la structure ExecBase pour connaitre votre configuration mémoire. Seules les zones indiquées dans les listes de gestion de mémoire peuvent être éditées. Sauf lors des recherches, AZap considère ces zones comme contigües et passe automatiquement de l'une à l'autre. Utilisez la commande "Infos" (voir chapitre "Le_menu_Outils" pour avoir la liste des zones mémoires. Notez que la lecture et l'écriture des blocs mémoire se fait après blocage temporaire du multi-tâches, afin d'éviter des conflits d'accès. Lorsque vous ouvrez une fenêtre d'édition sur une unité, AZap est capable de détecter son type. Certaines opérations seront impossibles sur une unité non AmigaDOS (commandes "bloc suivant", "bloc père" et "bloc racine", voir chapitre "Le_menu_Edite"), mais pensez à désactiver le recalcul de la somme de contrôle ! Le programme sait reconnaitre le système de fichier utilisé (OFS = Old File System, FFS = Fast File System) et gérer ces deux systèmes. Historique AZap a été écrit principalement en langage C, sur un Amiga 3000 UNIX-1 (10 Mo de mémoire, lecteur de disquettes interne HD, disque interne de 100 Mo, lecteur SyQuest externe de 88 Mo, lecteur de disquettes externe, moniteur 1960 et imprimante Star LC24-10) connecté par un cable null-modem à un A500 avec 1 Mo de mémoire. v1.00 14-Oct-92, 36084 octets (Fish #759) o Première version diffusée v1.01 16-Oct-92, 36084 octets o Bug corrigé: ne marchait pas si l'écran public par défaut faisait moins de 648 pixels de large v1.10 15-Nov-92, 36960 octets o Ajout des commandes "Bloc d'entête" et "Examine" o Après une requête de fichier, ouvre une fenêtre mémoire si on a choisi "RAM:" ou une fenêtre d'unité si on a choisi un nom d'unité (e.g. "DH0:") v1.11 21-Nov-92, 36976 octets o Bug corrigé: ne comprenait plus la forme "§n" pour le GOTO. v1.20 25-Dec-92, 40000 octets o Compilé avec le SAS/C 6.1 o Ajout de la fonction "Cherche fichier" o La requête de la commande "GOTO" conserve l'ancienne valeur saisie o Si une recherche de chaine échoue, affiche un message "toto non trouvé" o Les unités peuvent être désignées par leur nom logique (à l'appel et dans la requête de fichier, sauf RAM:) v1.30 02-Jan-93, 40612 octets o Ajout de la fonction "Sauve bloc" o La fonction "Imprime" demande le nombre de blocs à imprimer o La fonction "Infos" donne le type de disque (OFS/FFS/NDOS) o Fonctions de recherche regroupées dans un nouveau menu o Fonction "Remplit bloc" déplacée dans le menu "Outils" o Quelques erreurs corrigées dans la gestion de la police par défaut, et de l'écran WorkBench v2.00 07-Feb-93, 42116 octets o Compilé avec le SAS/C 6.2 o Entièrement localisé v2.01 21-Feb-93, 41768 octets o Gestion de la requête de fichier améliorée o Quelques erreurs corrigées dans la gestion des options des fenêtres v2.02 13-Mar-93, 42264 octets o Plus de gourous avec un 68000 (quelques pointeurs mal alignés) o Se détache à nouveau du CLI o La fenêtre "A propos..." a un gadget de fermeture v2.03 15-Apr-93, 42292 octets o Quelques erreurs corrigées dans l'évaluation des expressions o Erreur corrigé: oubliait parfois de remettre à zéro l'indicateur "bloc modifié" quand on changait de bloc v2.04 24-Apr-93, 42468 octets (Fish #875) o Indique le nom complet des fichiers dans le titre de la fenêtre et dans la fenêtre "info" o Reconnait tous les systèmes de fichiers de l'OS 3.0 o Quelques erreurs corrigées dans la gestion des menus v2.05 10-May-93, 42604 octets o Plusieurs erreurs corrigées dans la fonction de recherche (hexa et chaine) v2.06 18-May-93, 42692 octets o Quelques erreurs corrigées dans la fonction de convertion (bin/dec/hex/asc) v2.07 03-Jul-93, 43548 octets o Compilé avec le SAS/C 6.3 v2.08 29-Jul-93, 43580 octets o En cas d'erreur de lecture sur une disquette ou un disque, fait flasher l'écran et affiche un secteur à zéro. v2.10 15-Sep-93, 44200 octets o Ajout d'un ascenseur en bas de la fenêtre o Utilise les nouvelles versions des fonctions GetDefaultTextFont() et OuvreEcran()