★ CODING ★ CLASSEURS WEKA ★ Comment exploiter toutes les ressources et augmenter les performances de votre AMSTRAD CPC ★ |
9/2.3 - Le debugger | Coding Classeurs Weka |
9/2.3 - Le debuggerQu'est-ce qu'un debugger ? Ce mot vient du mot anglais « bug » qui signifie erreur en français. Un debugger est un outil qui permet de faciliter la mise au point des programmes écrits en assembleur. C'est un complément indispensable aux programmes précédents : désassembleur et assembleur. Nous allons créer un debugger écrit dans le langage assembleur Z80 le moins complexe mais le plus complet possible. Les fonctions minimum d'un tel programme sont :
Les fonctions que nous venons d'énumérer sont accessibles par un menu affiché en début de programme et après chaque commande. Une fonction est activée en tapant la lettre du menu correspondante (par exemple L pour Lecture, X pour exécution, etc.). Passez en mode CAPS LOCK pour que le debugger fonctionne correctement. Si vous tapez une option que le debugger ne comprend pas, le menu est réaffiché et aucune autre action n'est effectuée. Les fonctions du debugger sont développées dans le programme assembleur qui suit. Nous allons les examiner en détail. I. Lecture d'un programme objet Les actions réalisées par cette option sont les suivantes : – saisie du nom du programme à lire : Pour cela, nous avons créé une routine de lecture (SAINOM) qui permet de lire une chaîne alphanumérique quelconque de longueur maximum 12 caractères qui se termine par le caractère CR (Carnage Return). La chaîne est stockée dans un buffer de lecture (BUFF). La routine de lecture suit la logique suivante : – ouverture du fichier : L'ouverture du fichier se fait en utilisant la macro du Firmware qui se trouve à l'adresse #BC77 et qui a pour nom CAS IN OPEN. A noter que cette macro est utilisable sur les trois CPC 464, 664 et 6128). – lecture de l'adresse d'implantation : Cette lecture est précédée de l'affichage du message "A implanter à l'adresse : __ ". La lecture de l'adresse d'implantation est faite en utilisant une autre routine que SAINOM pour rendre automatique le retour chariot en fin de saisie. En effet, le nombre de caractères saisis est invariablement quatre. Le code ASCII de chaque caractère est stocké séquentiellement dans la zone BUFF. La logique de la routine SP1 créée à cet effet est la suivante : – Lecture du fichier ouvert en lecture : La lecture du fichier se fait en utilisant la macro du Firmware située à l'adresse #BC83quia pour nom CAS IN DIRECT. A noter que cette routine est identique sur les trois systèmes CPC. Sur les modèles 664 et 6128, la lecture se fait cependant sur disquette. – Fermeture du fichier ouvert en lecture : La fermeture du fichier se fait en utilisant la macro du Firmware située à l'adresse #BC7A qui a pour nom CAS IN CLOSE. A noter que cette routine est identique sur les trois systèmes CPC. II. Sauvegarde d'un programme objet ou d'une zone mémoire
III. Exécution d'un programme
L'organigramme suivant décrit l'enchaînement des opérations de conversion et d'affichage :
IV. Affichage du contenu d'une mémoire
V. Affichage d'une zone mémoire : fonction DUMP
VI. Retour au BASIC Le programme debugger étant activé sous BASIC, il suffit d'une instruction RET pour y retourner. C'est ce que réalise l'option B du menu.
1e méthode Vous pouvez utiliser l'assembleur décrit dans cet ouvrage ou un autre assembleur pour entrer le programme « debugger ». Voici le listing commenté du programme en page 7.
Une fois le programme saisi et assemblé, vous sauvegarderez la zone mémoire comprise entre #8000 et #8543. Le programme BASIC suivant permettra d'activer le debugger : 2e méthode Si vous préférez saisir le programme debugger sous BASIC, il vous faudra procéder en deux étapes : 1 ) Saisie d'un programme qui contient les codes HEXA du programme debugger et, qui fabrique le programme binaire DEBUG.BIN (Cf. programme page suivante). 2) Activation du debugger par le même programme BASIC que celui décrit page suivante.
|