CODING ★ ADES UN ASSEMBLEUR D'ENFER ★

Assembleur ACPC n°10: ADES un assembleur d'enfer

Dans notre grande série l'Utilitaire du mois, j'ai invité pour vous le dernier né de chez Esat Software, ce sympathique éditeur bordelais (pourquoi les Bordelais sont-ils si laids alors que leurs femmes sont girondes ?), que vous tous et vous toutes, j'en suis aussi sûr que persuadé, connaissez déjà.

Mais si, vous le connaissez. Allez, réfléchissez un peu. Bon, si je vous dis, par exemple, EchoSoft, ça vous rappelle quelque chose ? C'était un soft qui permettait de digitaliser du son sans interface hard, directement par le magnéto du 464. Pas mal, non ?

AS : TES RISQUES

Et hop ! Encore un jeu de mots que Sined n'aura pas pour son initiation mensuelle. Yerk. yèrk. yerk. Or donc, et comme le laisse supposer à l'évidence le titre de cet article, Ades est un assembleur Z80, un de plus me direz-vous. Certes, après Dams et Pyradev, que Sined (encore lui) et moi-même vous conseillons sans cesse, on peut se demander si Ades a encore une chance de se frayer une place dans le cœur des bidouilleurs. Eh bien, évacuons d'emblée tous les doutes : oui. Ades possède pas mal de qualités, quelques défauts aussi, certes, mais surtoui pas mal de qualités. Quelques défauts aussi, mais des qualités quand même. Enfin, rien n'est parfait. Il existe trois versions de Ades, une pour chaque modèle de CPC existant ou ayant pu exister (464, 664 et 6128). Un menu permet ensuite de choisir entre l'éditeur de textes (pour écrire les programmes), l'assembleur (pour les assembler, eh oui madame) et le moniteur (pour vérifier que tout fonctionne bien comme on voudrait que).

AS : TICOT

L'éditeur est très proche de celui du Basic, on ne se sent donc pas dépaysé. Il possède en plus quelques commandes internes, qui facilitent son utilisation : L pour lister le texte, N pour effacer le texte en mémoire, ou encore R pour le renuméroter. Oui. les numéros de ligne sont obligatoires, mais la fonction A agit de la même manière que l'instruction Auto du Basic. Manque plus que E pour Edit (on est obligé de se retaper la ligne entière à chaque fois). Si une commande n'est pas comprise par l'éditeur, celui-ci affichera Erreur de syntaxe en bonne et due forme, et attendra de l'utilisateur qu'il corrige son entrée. Notez qu'à l'écriture du programme, il n'est pas obligatoire de mettre des espaces pour différencier les champs d'une ligne (label, instruction., opérande et commentaire), mais l'éditeur en placera automatiquement lors d'un listing. De plus, si l'imprimante est connectée et en ligne, le listing sortira automatiquement à la fois à l'écran et sur imprimante. Pour le reste, ma foi, rien de bien extraordinaire à dire.

AS : SOCIE

L'assembleur, comme beaucoup d'autres, agit en deux passes : la première pour remplacer les labels et les constantes par leur valeur, la seconde pour générer le code assembleur proprement dit. Il comprend sept (c'est moi !) directives d'assemblage, qui sont : ORG (définit l'adresse d'assemblage), LOAD (définit l'adresse de chargement). ENT (définit l'adresse d'exécution), EQU (définit une constante) et DB. DW et DS (initialisation de zones de mémoire).

Deux erreurs, ou plutôt deux oublis, sont impardonnables : premièrement, il est impossible d'entrer des valeurs binaires (ou alors, j'ai pas trouvé comment, et comme la doc ne dit rien à ce sujet...) ; et deuxièmement, l'assembleur ne connaît pas l'astérisque ou le dollar qui normalement, représentent l'adresse courante, très utiles lors du calcul d'adresses (même remarque que plus haut concernant la doc). Les valeurs calculées sont, elles, acceptées (par exemple : LD HL, Label+&10). La vitesse d'assemblage est suffisamment élevée pour éviter la traditionnelle tasse de café (ou la chope de bière, ne soyons pas antialcooliques primaires). De plus, Ades permet d'assembler n'importe où en mémoire, que ce soit dans les vecteurs système ou dans la mémoire écran (sauf sur lui-même ou sur le texte source, faut quand même pas exagérer).

AS: A IRA, ÇA IRA

Troisième partie d'Ades, le moniteur. Les ignorants seront certainement contents d'apprendre qu'un moniteur est un programme permettant de suivre pas à pas l'exécution d'un autre programme, en vérifiant' les valeurs des registres et des flags du processeur. Bref, c'est un outil à la fois très puissant et précieux. Comme l'éditeur, il possède quelques commandes qui lui sont propres, et qui permettent le désassembîage de la mémoire, l'exécution d'un programme pas à pas, donc, copie et remplissage de zones mémoire, etc. Du banal pour un moniteur digne de ce nom.

Le désassembleur, le mode trace, le dump, et le "créateur de source" {désassemblage en fichier texte pour un réassemblage ultérieur) permettent d'aller voir ce qui se passe en Ram aussi bien qu'en ROM. Là encore, si l'imprimante est présente et prête à recevoir, zou !, elle prend tout dans la tronche en même temps que l'écran. Pour les plus bidouilleurs. des points d'arrêt sont possibles, qui interrompent l'exécution du programme dès que le PC atteint une adresse définie à l'avance. Alors là, Sined a repéré le plus gros bug qu'un moniteur puisse posséder, que même moi je l'avais pas vu, c'est vous dire. La commande N du moniteur permet de désassembler la mémoire et de sauvegarder le résultat du désassemblage sur disque, en vue d'une modification et d'un réassemblage ultérieur. Eh bien, tenez-vous bien (tenez-vous mieux, s'il vous plaît !) cette option est inutilisable. Texplique : d'une part, le désassembleur ne met pas le signe "&" devant les nombres hexadécimaux (et comme il ne désassemble qu'en hexa, voyez le problème), ce qui génère des erreurs de type "label inconnu" à l'assemblage. D'autre part, il ne génère pas d'étiquettes, donc tous les branchements du type JP, JR, CALL et DJNZ sont aux fraises ! Blurps. Comme je crois l'avoir dit plus haut. A des possède malgré tout quelques qualités, mais aussi quelques défauts. Parmi les qualités les plus appréciées, je citerai seulement la résidence en mémoire : l'assembleur est toujours là, on peut retourner sous Basic et le rappeler comme on veut, quand on veut (enfin presque, parce qu'il faut remettre la disquette originale, qui, en plus, est protégée contre la copie, à cause d'un accès disque étrange). C'est sympathique, et ça sert plus souvent qu'on pourrait le penser. Le plus gros défaut, à mon humble avis, est que les trois logiciels ne sont pas réunis en un seul, comme dans Dams : il faut passer obligatoirement par le menu pour accéder à l'éditeur, puis à l'assembleur, enfin au moniteur. Ça, c'est pas toujours rigolo, mais on s'y habitue, à force.

DEBUGG. DEBUGG. OUI MAIS DES...

Les heureux possesseurs d'un 6128 constateront avec joie que sur la deuxième face de la disquette se trouve un programme délicatement patronyme Debugg, qui ne fonctionne donc que sur 6128, et qui porte bien son nom, dans la mesure où c'est un debugger aussi puissant qu'utile et sympathique. Sans vouloir être trop méchant pour l'assembleur, si Esat avait vendu Debugg avec Ades en prime au lieu du contraire, cela n'aurait pas été plus mal pour son image de marque... "Qu est-ce donc qu'un debugger ?", me direz-vous. C'est une excellente question, je ne vous remercie pas de me l'avoir posée. En gros et pour simplifier, Il s'agit d'un moniteur comme celui inclus dans Ades, mais quand même vachement gonflé au niveau des possibilités, t'vois.

Premier bon point pour Debugg, il se charge dans les 64 ko supplémentaires du 6128, et laisse donc le champ libre pour tester n'importe quel programme résidant dans les premiers 64 ko. Ça n'a l'air de rien, dit comme ça, mais, en fait, c'est super pratique. Deuxième bon point, il est entièrement autonome, c'est-à-dire qu'il n'utilise pas les routines système (sauf pour les accès disque, quand même). Cela lui permet de ne pas se retrouver aux fraises dès qu'un petit malin détourne les vecteurs. Troisième bon point, il connaît toutes les instructions du Z80, même les officieuses, qu'on ne trouve pour ainsi dire dans aucun bouquin. Encore une fois, les petits malins l'ont dans l'os. Quatrième et dernier bon point, il sauvegarde l'écran de travail avant de s'afficher lui-même, le restaure lorsqu'on quitte et le modifie au besoin. Je vois d'ici la tête des bidouilleurs fous : "chouette, en le chargeant avant mon jeu préféré, je pourrai suivre son exécution et me mettre des vies infinies les doigts dans le nez." Que nenni : Debugg n'est pas appelable par appui sur une touche, mais par une commande Basic. "DEBUGG" en l'occurrence (sans la barre verticale caractéristique des RSX... Comme quoi, le type qui a fait ce soft connaissait bien sa machine.)

Une fois qu'il a pris la main. Debugg offre tout un tas de possibilités, dont les plus intéressantes sont : désassemblage en hexa ou décimal, dump hexa et ASCII de la mémoire avec possibilité d'édition, opérations logiques avec des zones de mémoire (AND, OR, XOR et NOT), exécution pas à pas ou en ralenti d'un programme avec points d'arrêt, déplacements de blocs mémoire, lecture et écriture d'un fichier binaire ou d'un ou plusieurs secteurs de la disquette en rnémoire, et formatage d'une ou plusieurs pistes. Mais là où Sined est resté bouche bée, c'est quand il a vu : "affichage et modification du contenu des registres du CRTC et du Gate Array." Bref, de la belle ouvrage, qui à elle seule justifie amplement l'achat d'Ades tout entier.

Septh , A100% n°10 p82-83

Page précédente : Assembleur ACPC n°10 - Initiation : Les decalages
★ AMSTRAD CPC ★ DOWNLOAD ★

Files:
» ADES  v1.3DATE: 2014-07-30
DL: 697
TYPE: ZIP
SiZE: 47Ko
NOTE: Extended DSK/40 Cyls
.HFE: Χ

» Amsoft  devpacDATE: 2006-08-02
DL: 1529
TYPE: ZIP
SiZE: 17Ko
NOTE: Extended DSK/40 Cyls
.HFE: Χ

» Zenith  2  DecompacterDATE: 2011-02-17
DL: 1119
TYPE: ZIP
SiZE: 8Ko
NOTE: 40 Cyls
.HFE: Χ

Adverts/Publicités:
» ESAT  SOFTWARE-Zenith  2-Silipack-ADES-Ulysse-Bourse  2000-Hercule  2-Translock  2-Echosoft    FRENCHDATE: 2015-01-08
DL: 662
TYPE: image
SiZE: 533Ko
NOTE: w1215*h1751
 
» Zenith  Software-Z-PackDATE: 2015-01-08
DL: 368
TYPE: image
SiZE: 62Ko
NOTE: w460*h309

Covers/Packages:
» Amsoft-HiSoft-Devpac    ENGLISHDATE: 2015-01-08
DL: 434
TYPE: image
SiZE: 275Ko
NOTE: w807*h1032

» ESAT  SOFTWARE-ADES    (Release  DISC)    FRENCHDATE: 2014-07-30
DL: 193
TYPE: image
SiZE: 541Ko
NOTE: Scan by Loic DANEELS ; w2133*h1090
 

Type-in/Listing:
» ZENSUREN    GERMANDATE: 2012-12-18
DL: 898
TYPE: ZIP
SiZE: 7Ko
NOTE: 40 Cyls
.HFE: Χ

Dump disquette (version commerciale):
» Ades  v1.3    FRENCHDATE: 2017-05-03
DL: 521
TYPE: ZIP
SiZE: 47Ko
NOTE: Uploaded by CPCLOV ; Extended DSK/40 Cyls
.HFE: Χ

Manuel d'utilisation & doc:
» Ades    FRENCHDATE: 2014-07-30
DL: 796
TYPE: PDF
SiZE: 4023Ko
NOTE:

★ AMSTRAD CPC ★ A voir aussi sur CPCrulez , les sujets suivants pourront vous intéresser...

Lien(s):
» Littérature » Las posibilidades del Amstrad PC
» Applications » Sistemas de Unidades
» Coding » Bidouilles ACPC n°15 - Les secrets du GATE ARRAY (2/2)
» Coding » Assembleur ACPC n°49: Assemblez vos vumetres
» Coding » Assembleur ACPC n°20 - Convertion numerique
» Coding » Assembleur ACPC n°30 - L'homme du scroll mignon
Je participe au site:
» Vous avez des infos personnel, des fichiers que nous ne possédons pas concernent ce programme ?
» Vous avez remarqué une erreur dans ce texte ?
» Aidez-nous à améliorer cette page : en nous contactant via le forum ou par email.

CPCrulez[Content Management System] v8.7-desktop/c
Page créée en 265 millisecondes et consultée 3247 fois

L'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent  du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko.