Nº159 (7/2003)
Download :
|
Voici le 3e gros mag de l'année ! Et pourtant, malgré le dévouement d'une dizaine de personnes qui ont mis la main à la pâte pour vous, rien ne s'est passé comme prévu.D'abord, je n'ai pas pu participer à la Visu.Ensuite, je n'ai toujours pas reçu le courrier qui m'était adressé et notamment le CD avec les photos de la Visu (Ah ! La Poste !). Pour des raisons impérieuses, j'ai donc été amené à remettre à septembre une partie de ce qui aurait dû se trouver dans ce mag d'été.J'en suis bien désolé. A+ André |
|
Compte-Rendu de la Visu Les 20 ans de l'Oric Le Debugger de Fabrice Francès La fonction F11 d'Euphoric Récupération K7 Le Général N'oubliez pas de visiter régulièrement le site du CEO <http://ceo.oric.org/>
|
|
|
|
|
|
sommaire
|
Adresses CEO / Sommaire / Editorial |
|
Page 2 |
Courrier Oricien / Petites Annonces / Bonnes Adress |
|
Page 3-5 |
Compte-Rendu de la Visu Les 20 Ans de l'Oric |
|
Page 6-9 |
RipDOS v2.9 : XtraDOS |
|
Page 10-12 |
Listing Mystère |
|
Page 13-14 |
Initiation à l'Assembleur (1) |
|
Page 15-20 |
Banc d'Essai : Manic Miner |
|
Page 26 |
Banc d'Essai : Quitac |
|
Page 27-28 |
Banc d'Essai : Le Debugger d'Euphoric |
|
Page 29-31 |
Visitons la Rom Monitoring (3) |
|
Page 32-36 |
Récupération K7 : 'Le Général' de Loriciels |
|
Page 41-42 |
Banc d'Essai : Mcp2bmp.exe |
|
Page 43-44 |
Aide 'Meurtres en Série' (7) |
|
Page 46 |
Des Trucs pour Tricher : 'La Flûte Inca' (1) |
|
Page 47-49 |
Aide 'Meurtres en Série' (8) |
|
Page 50-51 |
Divertissements |
|
Page 52-55 |
Brèves : Video Attributes / Souris Oric / Oric on the Net |
|
Page 56-57 |
Réponses (31) : Dépannage Telestrat et autres sujets |
|
Page 58-61 |
Shoot Again (53) : Ultima Zone |
|
Page 62-63 |
Nostalgie... Nostalgie... : Le Modem Tonic |
|
Page 64 |
Aide New Sokobac |
|
Page 65-66 |
Nouveaux Problèmes Rush Hour |
|
Page 67 |
La Librairie Oric (44) : Manuels Microtan 65 |
|
Page 68 |
Abonnement / Subscription |
|
Page 69-70 |
|
Euphoric : Le Debugger
par André Chéramy, révisé et complété par Fabrice Francès
Vous ne le savez peut-être pas, mais un Moniteur est incorporé Ã Euphoric. Fabrice m'a indiqué : «J'ai dû parler des fonctions du debugger dans le fichier historique.txt, mais c'est vrai que je n'ai pas trop fait de publicité, pas le temps... :-) Je me sers constamment du debugger, c'est le genre de truc que j'aurais dû faire en premier, j'aurais gagné du temps par la suite...».
Et en effet, il n'en fait pas mention dans le mode d'emploi 'Manuel.htm'. Toutefois, la touche F11 est belle et bien signalée dans le menu F1.
Voici donc les lignes que Fabrice consacre au 'debugger' dans son 'Historique.txt' : «Les débuts d'un débogueur, pas encore stable... il n'est pas fini, il y a des bugs, alors vous êtes prévenus... la suite viendra avec la version suivante (oui, oui, Mike, il y aura le support pour les symboles utilisateurs ;-) Pour l'instant, vous pouvez entrer/sortir du mode débogueur avec la touche F11, faire du pas-Ã -pas (F2), ou du pas-Ã -pas sans rentrer dans les routines (F3), basculer vers/depuis l'écran Oric (F4) (pas très fiable...), lancer l'exécution (F5), stopper l'exécution (F12), positionner une adresse de point d'arrêt avec B xxxx (une seule pour l'instant), visualiser des données mémoire (D xxxx), scroller la fenêtre page zéro (flèches haut/bas) ou la fenêtre données mémoire (PgUp/PgDn)...».
A ces informations, Fabrice avait ajouté à mon intention : «Pour surveiller un boot, il y a aussi une nouvelle option -v pour la ligne de commande. F5 lance l'exécution jusqu'au point d'arrêt défini par B adr. F6, F7, F8 font les resets habituels.» Et plus récemment : «Il y a juste un petit problème que je n'ai pas élucidé, je pense que les passages dans le Bios y sont pour quelque chose: l'utilisation répétée de la touche F4 pour afficher l'écran de l'Oric provoque souvent des blocages, dans la pratique j'évite de m'en servir. Il faudra que je regarde de plus près quand j'aurais un moment, parce que les entrées et sorties dans le debugger avec F11 ne posent pas le même problème... Il y a une fonctionnalité que tu auras peut-être plus de mal à tester, mais elle est très pratique pour les développeurs, c'est le mode symbolique: si tu fournis un fichier de symboles (couples symboles/valeurs), les désassemblages utilisent ces symboles et tu peux utiliser un symbole à la place des adresses pour les commandes D, U, B, etc.»
Mode d'emploi
J'utilise depuis longtemps ce debugger, mais un peu au pif. Comme je le trouve pratique, je l'ai récemment exploré de façon plus systématique afin de pouvoir vous en parler et vous inciter à l'utiliser vous aussi. Lancez Euphoric et entrez dans le debugger en pressant la touche F11. Voici ce que vous voyez (avec en rouge la dernière valeur qui a été modifiée):
1) Le cadre '6502' vous informe sur l'état des registres du microprocesseur (accumulateur A, index X, index Y, compteur de programme PC, indicateur d'état P et pointeur de pile S).
Dans l'exemple PC=C5E8, c'est l'adresse du code à exécuter (ici la routine en Rom 'Prendre un caractère au clavier'). Vous pouvez d'ailleurs voir ce code dans la fenêtre 'Code' en haut à droite.
Pour l'indicateur d'états P on peut lire '-V1B—Z-', soit 8 caractères, correspondant aux 8 drapeaux (à zéro si représentés par un tiret et à un si représentés par une lettre) : N (Négatif), V (oVerflow = débordement), 1(non significatif), B (Break = interruption), D (Décimal), I (Inhibition d'interruption), Z (Zéro) et C (Carry = retenue).
2) Le cadre 'Stack' montre l'état de la pile au pointeur S.
3) Le cadre 'Zéro Page' affiche la page zéro, que l'on peut faire défiler dans la fenêtre avec les flèches haut & bas.
4) Le cadre 'Commande Entry' vous invite à taper une commande. Les valeurs doivent être fournies en hexadécimal sans # ou $ par-devant. Les lettres minuscules sont acceptées. J'ai repéré les syntaxes suivantes:
a) B xxxx fixe un Break à l'adresse indiquée. Cette adresse est rappelée dans le cadre 'Break Conditions'.
b) D xxxx, dump la mémoire à partir de l'adresse indiquée. Le dump s'affiche dans le cadre 'Data Watch' et peut défiler avec les touches 'Page Up' et 'Page Down'.
Si cette adresse est en Rom (C000 Ã FFFF), les adresses sont curieusement affichées entre 0000 et 3FFF. Je suppose qu'il est possible de dumper la Ram Overlay, lorsque celle-ci est validée.
c) N, V, B, D, I, Z et C force l'état du drapeau correspondant (la touche bascule entre zéro et un). Le résultat est immédiatement visible dans le cadre '6502'.
d) A, X ou Y plus un octet, force la valeur du registre correspondant. Particulièrement pratique pour tester une routine. La nouvelle valeur s'affiche dans le cadre '6502'.
e) PC plus deux octets d'adresse, fixe un nouveau point d'exécution. Cette adresse est visible dans le cadre '6502' et le listing correspondant dans le cadre 'Code'.
f) S plus un octet, fixe une nouvelle valeur au pointeur de pile. Cette valeur est visible dans le cadre '6502' et la zone correspondante de la pile dans le cadre 'Stack'.
g) U plus deux octets d'adresse, désassemble le code présent à l'adresse indiquée. Le résultat est immédiatement visible dans le cadre 'Code'.
Notez que le point d'exécution n'est pas affecté. Si après avoir lu le code désassemblé dans le cadre 'Code', vous pressez F2, l'exécution se fera non à l'adresse indiquée par U, mais à celle indiquée par PC dans le cadre '6502'.
h) E xxxx zz, Ecrit l'octet zz à l'adresse xxxx. Le résultat apparaît dans le cadre 'Data Watch', correctement positionné par une commande D appropriée.
5) Nous avons déjà vu que le cadre 'Break Conditions' affiche l'adresse du seul break disponible.
6) Le cadre 'FDC' (Floppy Disk Controlleur) nous informe sur l'état du lecteur de disquette, notamment sur la piste, le secteur et le registre de données.
7) Nous avons déjà vu que le cadre 'Code' affiche le listing au point d'exécution PC ou à l'adresse de désassemblage fixée par U.
8) Le gros cadre '6522' fournit toutes les informations possibles et imaginables sur l'état du VIA.
9) Et enfin, nous avons déjà parlé du cadre 'Data Watch' qui affiche le dump et peut être scrollé avec les flèches 'Page Up' et 'Page Down'.
Les touches de fonction.
F1 est inopérante.
F2 exécution pas à pas du code à l'adresse PC.
F3 idem, mais ne trace pas les sous-programmes et passe directement à l'instruction qui suit les JSR (attention aux routines qui ne reviennent pas, elles sont nombreuses dans les différents DOS de l'Oric. Idem pour les BRK du Telestrat).
F4 Bascule entre l'écran d'Euphoric et celui du debugger. Cette fonction est très pratique pour suivre l'effet des tests effectués sous debugger et je l'ai souvent utilisée dans une ancienne configuration. Mais actuellement avec Euphoric 1.0 sous Windows 98, ça plante sévère. On peut contourner avec F11, mais j'espère que Fabrice va revoir la question, car F11 laisse repartir l'exécution.
F5 Lancer l'exécution à partir de l'adresse PC. On arrête avec F12.
F6 Hard Reset habituel
F7 Soft Reset habituel
F8 Plante Euphoric
F9 Save State, marche bien, comme d'habitude.
F10 Quitte tout : debugger et Euphoric.
F11 Quitte le debugger et retourne à l'écran d'Euphoric.
F12 Arrête l'exécution lancée par F5
Recopie de l'écran du debugger
Il faut passer en mode fenêtre avec Alt/Enter, faire une copie de la fenêtre avec Alt/PrntScrn et la copier dans un logiciel de retouche tel que Photoshop, Paint Shop Pro etc.
Le mode symbolique
Ce mode avait été introduit à la demande de Mickaël, pour les développeurs principalement, mais il peut aussi servir à ceux qui souhaitent mettre un nom sur des adresses en Rom ou dans Sedoric, etc.
Pour les développeurs, la plupart des assembleurs sont capables de générer une « cross-reference table » ou table des symboles. Même si l'on développe en C, le code intermédiaire est de l'assembleur, et donc la dernière passe d'assemblage permet d'obtenir les symboles utilisés dans le programme C.
Au démarrage d'Euphoric, le debugger cherche donc un fichier nommé symbols.txt contenant des suites de symboles précédés de leur valeurs (hexadécimales), par exemple :
0035 BUFFER
0735 _printf
07EA _main
0812 _message
Les valeurs et les symboles peuvent être séparés par n'importe quel caractère blanc (espaces, tabulations, sauts de lignes), certains assembleurs tels que le Frankenstein (qui est toujours utilisé dans certaines configurations du compilateur lcc) mettent plusieurs couples de valeurs/symboles par ligne, c'est parfaitement accepté.
Une fois chargé, ce fichier sert à la traduction des symboles vers les adresses correspondantes lors des entrées utilisateurs (par exemple «Â D _message », « B _main » ou « U _printf »), et à la traduction inverse (adresses remplacées par des symboles) dans les désassemblages affichés dans le cadre de code.
Le mode assembleur
Oups, jamais content ! Ce mode ne semble pas encore implémenté. Mais puisqu'il y a un désassembleur, l'assembleur ne devrait pas être bien loin (même rustique, en mode immédiat pour corriger deux ou trois lignes). Je ne voudrais pas être à la place de Fabrice, avec tous ces Oriciens pendus à ses basques, qui aboient à qui mieux-mieux pour en avoir toujours plus...
[NDLR : réponse de Fabrice : « Au moins, ça dénote un intérêt pour le produit :-) Bon, et une commande Code, une… »]. |
|
|
|
|
BROWSE
NUMEROS
[164] - [163] - [162] - [161] - [159] - [158] - [157] - [156] - [155] - [154] - [153]
YEAR
2013 - 2012 - 2011 - 2010 - 2009 - 2008 - 2007 - 2006 - 2005 - 2004 - 2003 - 2002 - 2001 - 2000 - 1999 - 1998 - 1997 - 1996 - 1995 - 1994 - 1993 - 1992 - 1991 - 1990
|