Suivez-nous sur X

|
|
|
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,
ALL
|
|
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
|
|
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
|
|
A propos d'Obligement
|
|
David Brunet
|
|
|
|
Test de Devpac 2
(Article écrit par Charles Vassallo et extrait d'A-News (Amiga News) - avril 1989)
|
|
Devpac Amiga est la version Amiga d'un assembleur commercialisé par la firme anglaise HiSoft. La version précédente était composée
d'un éditeur plein écran (Genam) intégré à un assembleur (Genim) et d'un débogueur symbolique (Monam) séparé. En plus de diverses
améliorations, la nouvelle version Devpac 2 intègre les trois produits et cela change tout !
Les assembleurs Amiga
Il y a une bonne douzaine d'assembleurs commerciaux disponibles pour l'Amiga ; quelques-uns sont intégrés à un éditeur,
mais je m'étonne que si peu d'entre eux contiennent aussi un débogueur intégré. A ma connaissance, il n'y en a que trois :
le bon vieux K-Seka, Projimat de Micro Application (produit similaire à l'AssemPro américain ?), et maintenant Devpac 2.
Cette intégration assure pourtant un tout autre confort d'utilisation ! Je trouve la mise en oeuvre du Macro-Assembler de
MetaComCo affreuse. A l'opposé, j'ai déjà chanté les louanges de K-Seka dans les
colonnes d'A-News. Bien sûr, les performances de K-Seka
en tant que pur assembleur pour l'Amiga sont un peu limitées ; par exemple, pas de directive "SECTION" pour éclater le code
objet selon les différents segments offerts par AmigaDOS. Autre limitation, un éditeur plutôt primitif...
Mais quelle rapidité ! Et qu'on m'excuse d'y revenir encore mais le débogueur est une nécessité pour un programmeur en
assembleur et K-Seka l'offre. Au risque de faire sursauter les vrais programmeurs, je considère Devpac 2 comme une sorte
de K-Seka qui serait devenu un vrai outil professionnel. Dans une session de travail normale, on charge un programme (source)
dans l'éditeur. On complète le programme ou on le modifie. Deux ou trois pressions de touches pour l'assembler. S'il n'y
a pas d'erreur, un "Amiga-D" et on se retrouve dans le débogueur, où on peut vérifier pas à pas (ou plus vite) que tout se
passe bien comme prévu. Un problème ? Un "Ctrl-C" et on retourne à l'éditeur. C'est la même philosophie que K-Seka, mais tout
est ici bien plus complet.
Présentation
Devpac 2 se présente sous la forme de deux disquettes non protégées et d'une documentation dans un classeur à feuilles perforées.
La première disquette est essentiellement un Workbench 1.2 dans lequel on a fait un peu de ménage pour loger quatre
fichiers : genam2, genim2, monam2 et arp.library (90 koctets en tout). Le tout peut également se transférer sur une disquette
Workbench 1.3.
La deuxième disquette contient essentiellement les fichiers "include", BLink et sa documentation. Un reproche : il n'y a pas d'index.
Plusieurs revendeurs proposent Devpac 2 pour 790 FF.
L'éditeur (genam2)
Suivez le guide ! L'éditeur est un vrai éditeur plein écran avec des menus et un curseur pilotable par la souris. L'ensemble
est quelque peu hybride, une partie de menus, une partie de séquences "Ctrl-lettre" ou "Amiga-lettre" ou encore de touches
de fonctions. La notice du programme explique qu'on a essayé de rester dans la logique de l'éditeur de l'AmigaBasic et des
séquences de commande de Wordstar, mais il fallait oser proposer "Ctrl-C" pour changer de page... La touche "Help" rappelle fort
à propos tout ce qu'on peut faire avec les touches de fonction, en gros tout ce qui tourne autour du couper-coller. On peut
notamment prendre un bloc en mémoire et l'insérer dans d'autres fichiers.
On a aussi des fonctions très commodes pour chercher et modifier des chaînes de caractères. Pour les opérations sur disquette,
on passe par une fenêtre de requête de fichier très "up to date" puisqu'il s'agit de la fenêtre de requête de Charlie Heath
(est-ce la seule raison de la présence de la arp.library à côté de ce programme ?). Bref, un éditeur qui demande peut-être un
(tout léger) apprentissage, mais qui paraît raisonnablement complet.
L'assembleur (genim2)
Pressons "Amiga-A" pour assembler. Une fenêtre de requête apparaît, détaillant les principales options possibles : code
exécutable ou liable ? Doit-on distinguer majuscules et minuscules ? Doit-on adjoindre une information pour le débogage ?
Doit-on produire un fichier listing et où (écran, mémoire, disque) ? Sortie du fichier compilé en mémoire, sur disque ou
nulle part ? Assemblage rapide (plus gourmand en mémoire) ou lent ? La grande nouveauté par rapport à K-Seka est la compatibilité :
à une ou deux broutilles près, le programme accepte d'assembler les programmes qui ont été écrits pour les produits classiques
du style Macro-Assembler. Cela tient à l'adoption des mêmes directives, de la même syntaxe pour les macros, et surtout de
l'acceptation des fichiers "include".
Devpac est capable de lire les fichiers "include" de provenance Commodore, mais on conseille plutôt d'utiliser des fichiers
"includé" prédigérés proposés avec le programme, pour aller plus vite (On donne aussi un petit utilitaire pour faire cette
prédigestion avec les fichiers "include" à venir avec les futures révisions du système). Pour ma part, je crois qu'on peut
aller encore plus vite sans fichier "include". C'était la solution imposée par K-Seka et une fois pour toutes, j'ai compilé
tous les "include" en ma possession avec le Macro-Assembler. Depuis, je sais par exemple que dans la structure IntuiMessage,
on a im_Class=$14, im_Code=$18, etc. (tout cela se trouve dans la disquette PD "Basic+ASM") et je ne consulte plus les fichiers
"include" que pour les commentaires qu'ils contiennent. J'attends qu'on me persuade qu'il s'agit d'une mauvaise habitude ;
en attendant, mes assemblages sont bougrement plus rapides !
Enfin, comme tous les gens sérieux utilisent ces fichiers, il était normal qu'un produit sérieux puisse les compiler, et
Devpac est manifestement un produit sérieux. Bien sûr, s'il y a des erreurs d'écriture (erreurs de syntaxe, symboles non
définis, etc.) Devpac vous en fournit la liste. Il fait mieux encore, puisqu'il vous renvoie sur l'éditeur, et plus précisément
sur la première ligne litigieuse. Vous irez ensuite d'erreur en erreur en pressant "Amiga-J". Après avoir tout corrigé, vous
réassemblez. S'il n'y a plus d'erreurs, c'est que votre code a un sens pour le 68000 - pas forcément celui que vous croyez, mais
ce sera l'affaire du débogueur.
Si vous faites de très gros programmes, vous les ferez sans doute par petits bouts que vous lierez entre eux. Un autre cas
de figure peut-être plus courant : vous avez fait un programme qui réclame ses arguments au moment de l'appel, soit par le
CLI, soit par le Workbench. Dans ce cas, vous ferez souvent un "link" entre votre programme et un fichier "startup", si vous
n'avez pas le courage d'écrire vous-même le code correspondant. Il faut donc un programme pour faire ces liens : Devpac
propose tout simplement BLink, un programme du domaine public qui a bien meilleure presse que le ALink originel de MetaComCo.
Je ne peux pas vous livrer une opinion mieux fondée, mon apprentissage avec K-Seka m'ayant maintenu à l'écart de problèmes.
Le débogueur (motam2)
Signalons au passage que l'assembleur et le débogueur peuvent s'appeler individuellement à partir du CLI. Le débogueur
fonctionnera en débogueur symbolique pour tout fichier chargeable par AmigaDOS et contenant une section (hunk) "symboles".
Le fichier qui vient d'être créé par l'assembleur n'est qu'un cas particulier. L'écran se partage en trois fenêtres. La
première donne l'état des registres, ainsi que les premiers octets pointés par ces registres. La deuxième est le désassembleur,
ou vous retrouvez votre programme avec vos symboles (ou seulement des adresses en hexa s'il n'y a pas de section "symboles" dans
le fichier) ; une flèche vous indique où est la prochaine instruction à exécuter. La troisième fenêtre indique le contenu
de la mémoire et on peut la verrouiller sur une adresse donnée.
Les fenêtres 2 et 3 peuvent être dédoublées. Une commande "zoom" permet à chaque fenêtre de remplir tout l'écran - mais on
n'a alors plus accès à tout le jeu de commandes. A tout instant, on peut modifier le contenu des registres et de la mémoire.
Tout se passe par séquences de commande au clavier. La souris est complètement hors course (combien de fois ai-je cliqué dans
une fenêtre pour l'activer, alors qu'il faut taper sur la touche "Amiga", puis sur le numéro de la fenêtre !).
Comme pour l'éditeur, ces séquences sont logiques... en partie. Comme on n'a que 26 lettres à mettre après les touches
"Ctrl" ou "Amiga", on va retrouver certaines des séquences de l'éditeur, avec des significations tout à fait différentes.
Par exemple, le "Ctrl-C" revient à son sens classique d'arrêt de programme. Chacun fera son apprentissage, et plus d'un
gardera la doc ouverte à la page récapitulative des diverses commandes du débogueur (pourquoi diable n'y a-t-il pas une page
analogue pour l'éditeur ?).
Les chevronnés du K-Scka ne se sentiront pas trop dépaysés. Il faudra simplement qu'ils prennent l'habitude de désigner
les points d'arrêt avant de lancer le programme. Mais on a maintenant beaucoup plus de souplesse. On peut décider de ne
s'arrêter sur un point d'arrêt qu'au 31e passage, ou au 88e si cela vous arrange mieux. En mode trace, Devpac
offre une commande "Ctrl-Z" pour le pas à pas ordinaire, mais aussi un "Ctrl-T" qui traite les JSR comme un pas unique,
c'est-à-dire que vous retrouvez instantanément sur l'instruction qui suit le JSR dans votre source. Cela évite de se perdre dans les
méandres des fonctions du système ; aussi dans celles de vos routines dont vous êtes sûrs du fonctionnement.
L'amateur d'assembleur pour le BASIC appréciera aussi la possibilité de sauvegarder tout ou partie du code chargé dans
le débogueur pour constituer des fichiers binaires purs (Cf. la commande "wi" du K-Seka). Si votre programme ouvre un
écran de son cru, vous pourrez aussi aller voir ce qui s'y passe, par une commande "V". Mais si vous y activez quelque chose
(en cliquant sur un gadget ou dans une fenêtre), vous devrez retourner au débogueur par la longue route des gadgets de profondeur
ou... vous vous retrouverez piégé si vous avez ouvert une belle fenêtre plein écran sans ce type de gadget. Mais peut-on faire mieux ?
Compatibilité
Un appendice de la documentation est consacré aux problèmes de compatibilité avec les autres assembleurs du marché. A quelques
détails près, les programmes écrits pour le macro-assembleur passent sans modifications. Les programmes écrits sous K-Seka
demandent à peine plus de retouches ; il ne m'a guère fallu plus de dix minutes pour charger et faire tourner ceux que j'avais écrits.
Conclusion
Il y a quelques mois, Amazing Computing avait publié une étude comparative entre plusieurs assembleurs disponibles sur le
marché américain, et Devpac 1.2 (la version précédente), avec une conclusion fort élogieuse, à peine voilée par quelques
critiques qui trouvent maintenant une réponse dans la nouvelle version.
Le Devpac 2 est encore un peu plus rapide, et le débogueur est intégré. Que réclame le peuple ?
Nom : Devpac 2.
Éditeur : HiSoft.
Genre : assembleur.
Date : 1989.
Configuration minimale : Amiga OCS, 68000, 512 ko de mémoire.
Licence : commercial.
Prix : 790 FF.
|
|