Nº255 (7/2011)







  Download :
Pour des raisons de disponibilité personnelle, je ne serais pas en mesure d'inclure le compte-rendu et les photos de la Visu dans ce numéro. Ce sera donc pour celui de septembre. Vous avez entre les mains le très gros Ceo-Mag de juillet-Août. Cette période est en effet l'occasion de publier les articles un peu longs. Cependant, même si vous n'êtes pas passionné par ces grosses bêtes, je pense que vous trouverez à lire et à vous occuper avec le reste du mag. N'hésitez pas à me faire un retour avec vos désirs et remarques. A+ André

Visu! Samedi 25 Juin 2011 de 14 à 18 H, 17 r. des Petits Hôtels, Paris 10e BasiX! Atelier: Amplibus Décodeur Transfert & Shoot Again: Titan! J. de Transferts : de Août 2010 à Avril 2011! Euphoric: Le Debugger!

sommaire

Adresses CEO / Sommaire / Editorial   Page 2
Courrier Oricien   Page 3-6
Petites Annonces & Bonnes Adresses   Page 6
Vu sur eBay : Contrôleur et lecteur de disquettes Jasmin 2   Page 7
Rush Hour Supplément n°10 (1/3 & 2/3)   Page 8-11
Divertissements Mathématiques et Logiques   Page 12-13
Le Coin Sudoku Oric : Les Grilles 1 à 12 de Juin   Page 14-15
Pour Quelques Octets de Plus (Transfert de Titan, 2/3)   Page 16-18
Listing Basic : Obstacle Course   Page 19
Les Alimentations Electriques Oric (3/3) : Telestrat   Page 20-21
De l'Amplibus-Décodeur à la Carte Multicoloric (4)   Page 22-29
Listings Basic : Reaction & Reports   Page 30
BasiX : Analyse d'une eXtension au Langage Basic   Page 31-32
Carte-Test 8 LED/Sorties pour Amplibus-Décodeur   Page 33-37
Journal de Transfert : Août 2010 à Avril 2011   Page 38-39
Shoot Again (71) : Une adaptation Joystick pour Titan   Page 40-42
Euphoric, DosBox et Lancement par Clic sur Tap & Dsk   Page 43-49
Le Debugger de Euphoric   Page 50
Dino : Dictons, Devinettes, etc.   Page 3, 8, 9, 10, 11 & 49


Le Debugger d’Euphoric
par Yann L. et Fabrice F.

(Voir aussi le mode d’emploi du Debugger dans le Ceo-Mag n°159, pages 29-31.)

De Yann L. [03/06/11]: Salut Fabrice, désolé de devoir te reparler du Debugger d’Euphoric, mais j’ai vraiment besoin que tu m’expliques comment réaliser du mode pas à pas (touche F2 ou F3) tout en restant en mode Rom. En effet, lorsque mes routines en L/M font appel à des sous programmes en Rom, le Debugger accède systématiquement à la Ram Overlay et plante mes tests. D’ailleurs, dans la version dont je dispose, tout repositionnement du pointeur PC sur une adresse supérieure à #C000 me donne fatalement accès à la Ram Overlay (voir exemple en image ci-dessous pour la commande Basic ‘PING’ située normalement en #FA9F et qui pointe ici sur la fin de la commande Sedoric ‘OPEN’). Pour info, j’utilise la version 1.005 d’Euphoric sous Windows XP SP3. En te remerciant pour tes explications.
De Fabrice F. [06/06/11]: Salut Yann, les deux points que tu soulèves sont tous les deux liés à la gestion des banques mémoire d’Euphoric... Une petite explication tout d’abord du fonctionnement des touches F2 et F3 :
- La touche F2 permet d’exécuter une instruction (celle pointée par le registre PC), à la suite de ça l’affichage du debugger est mis à jour.
- La touche F3 permet de la même façon d’exécuter une instruction, sauf si l’instruction pointée par le registre PC est un JSR : Dans ce cas, l’adresse de point d’arrêt est initialisée avec PC+3 (ce qui pointe donc sur l’instruction suivant le JSR), et l’exécution est lancée comme avec la touche F5. L’affichage du debugger est mis à jour et on a la main pour taper une nouvelle commande quand l’exécution arrive à l’adresse de point d’arrêt.
Maintenant, les problèmes que tu rencontres :
- Quand tu exécutes pas-à-pas avec F3, le debugger s’arrête parfois en ram overlay alors que tu traçais du code en rom, ou inversement (ça arrive aussi si tu traces du code en ram overlay, tu peux t’arrêter en rom...) : Cela vient du fait qu’à un moment donné, alors que tu étais en train d’exécuter un sous-programme, le registre PC arrive à la valeur du point d’arrêt. Cela arrive quand on debugge les sous-programmes en Rom, et qu’ils vont chercher des paramètres supplémentaires au moyen de la routine en $00E2 (ou $00E8) : Sedoric modifie cette routine, elle fait appel à des routines en Ram overlay, et du coup quand le registre PC tombe sur la même valeur que la valeur du point d’arrêt, ça s’arrête... mais on le voit facilement, le petit chiffre à gauche sur le cadre MEMORY DUMP est passé à 0, ce qui indique qu’on est à l’adresse de point d’arrêt demandée, mais en Ram Overlay. On peut faire F5 pour continuer, l’exécution reprend alors à nouveau jusqu’à l’adresse de point d’arrêt demandée (ça sera peut-être à nouveau en Ram overlay, ou en Rom (chiffre 1)).
- Le repositionnement du registre PC : là aussi c’est dû au fait qu’une même adresse de PC existe dans plusieurs banques de mémoire. Pour le Telestrat, c’est facile : Le chiffre que l’on voit sur le cadre MEMORY DUMP et qui indique dans quelle banque on se trouve correspond aux banques 0 à 7 du Telestrat. Pour l’Oric : les banques sont numérotées de la façon suivante, 0 pour la ram overlay, 1 pour la Rom, et 9 pour l’eprom Microdisc. Du coup, pour positionner le PC et la banque en même temps, il faut rajouter $4000 par banque. Donc si on fait un PC=FA9F, c’est dans la banque 0 (ou Ram Overlay), et si on fait un PC=13A9F ça correspond à FA9F en banque 1 (ou Rom). ($FA9F+1x$4000=$13A9F). Oui, j’avoue ce n’est pas hyper-pratique, mais il n’est pas courant qu’on affecte le registre PC manuellement pour dérouter l’exécution normale...
De Fabrice F. [06/06/11]: Oups, j’ai répondu de mémoire, mais trop vite... Après vérification, j’ai apparemment changé la saisie des adresses, parce qu’il n’est plus possible de changer la banque mémoire...
Donc pour le deuxième point, on ne peut changer le PC qu’en restant dans la banque courante, il ne faut pas rentrer d’adresses supérieures à $FFFF...
Mais encore une fois, je vois mal pourquoi on chercherait à modifier le PC manuellement, à part peut-être si on a plusieurs routines à tester, et qu’on n’a pas écrit de programme principal qui enchaîne ces routines... A mon avis, si tu cherchais à modifier le PC, c’est parce que tu pensais qu’Euphoric buggait sur le premier point (qu’il n’exécutait pas ce qu’il fallait), et que tu essayais de le faire repartir sur le bon chemin... maintenant que tu sais pourquoi l’exécution s’arrête dans Sedoric quand tu positionnes un point d’arrêt entre $C000 et $FFFF, tu sais que tu peux l’éviter en faisant un QUIT avant de lancer ton programme...


BROWSE

NUMEROS
 [260] - [259] - [258] - [257] - [255] [254] - [253] - [252] - [251] - [250] - [249] 

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



Hosted By oric.org server www.oric.org V 2.6 CNIL ID : 872370 Write to Webmaster © 2000-2024 Built in 0.08 Seconds