Problème avec Basic 128
Modérateurs : Papy.G, fneck, Carl
Problème avec Basic 128
Bonjour,
J'ai tapé un programme issu du magazine Theophile N°20, sur une machine MO5NR émulée avec DCMOTO. Il tourne parfaitement en Basic 1.0, mais plante en Basic128. Par contre, quand je le lance en mode trace, il tourne très bien.
Quelqu'un pourrait-il m'aider s'il vous plaît ?
J'ai tapé un programme issu du magazine Theophile N°20, sur une machine MO5NR émulée avec DCMOTO. Il tourne parfaitement en Basic 1.0, mais plante en Basic128. Par contre, quand je le lance en mode trace, il tourne très bien.
Quelqu'un pourrait-il m'aider s'il vous plaît ?
-
- Messages : 7986
- Inscription : 18 sept. 2010 12:08
- Localisation : Brest et parfois les Flandres
[THOMSON] Re: Problème avec Basic 128
Je vois mal pourquoi le mode trace de l'émulateur changerait le fonctionnement du programme Basic. Quel est précisément ce programme basic au juste ?
Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
Re: Problème avec Basic 128
Pour signaler un bug, il faut donner le moyen de le reproduire. D'abord la version de l'émulateur et les paramètres sélectionnés. Ensuite les fichiers utilisés (MEMO5, k7, fd, sd, source Basic, etc.). Enfin la procédure à suivre pour mettre en évidence le bug.
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
Re: Problème avec Basic 128
Je ne vois pas très bien non plus, mais c'est pourtant le cas, et ce, que je lance TRON en mode direct ou en l'insérant dans le programme.Je vois mal pourquoi le mode trace de l'émulateur changerait le fonctionnement du programme Basic
Il s'agît d'un programme éducatif paru dans Theophile N°20.
Je l'ai tapé sur une machine MO5NR, et l'ai enregistré sur une image de disquette et une image de cassette.
- Contrôleur de disquette externe: CD90-640
- Extension mémoire 64Ko
Je suis sous Xubuntu 18.04. DCMOTO version 2021.05.08 tournant sous Wine.
Je joint au post l'image de la cassette, ainsi que le listing du programme.
- Pièces jointes
-
- paris.zip
- (1.12 Mio) Téléchargé 50 fois
-
- Messages : 7986
- Inscription : 18 sept. 2010 12:08
- Localisation : Brest et parfois les Flandres
Re: Problème avec Basic 128
Ah "TRON" , la commande BASIC. Pardon je pensais que tu parlais de la trace (langage machine) dans l'émulateur. Ca n'a rien à voir et j'avais même oublié que cette commande du basic existait: qui débug en basic autrement qu'avec des PRINT "toto" ?
Alors bon avec cette instruction du BASIC peut-être que tu es tombé sur un bug du BASIC 128 lui-même, je ne saurais le dire.
Alors bon avec cette instruction du BASIC peut-être que tu es tombé sur un bug du BASIC 128 lui-même, je ne saurais le dire.
Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
Re: Problème avec Basic 128
Avec DCMOTO en BASIC 128 le programme plante en exécutant la commande LINE INPUT R$ à la ligne 2050.
La même erreur se produit avec le MO5NR, le MO6 et l'Olivetti Prodest PC128.
C'est une erreur subtile. L'instruction LINE INPUT R$ n'est pas forcément en cause, car on peut l'essayer dans un petit programme de test et elle fonctionne. Il y a peut-être un écrasement de mémoire, ou de pile, ou autre chose.
A l'occasion je sortirai un MO6 pour tester avec la vraie machine.
La même erreur se produit avec le MO5NR, le MO6 et l'Olivetti Prodest PC128.
C'est une erreur subtile. L'instruction LINE INPUT R$ n'est pas forcément en cause, car on peut l'essayer dans un petit programme de test et elle fonctionne. Il y a peut-être un écrasement de mémoire, ou de pile, ou autre chose.
A l'occasion je sortirai un MO6 pour tester avec la vraie machine.
Dernière modification par Daniel le 05 nov. 2021 18:27, modifié 1 fois.
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
Re: Problème avec Basic 128
Bien, merci pour l'aide, dans ce cas, je vais essayer avec une autre machine.
La commande TRON est pourtant très utile pour savoir à quelle ligne se situe l'erreur.
Que veux-tu dire sam, en parlant de debugger avec des PRINT "toto" ?
La commande TRON est pourtant très utile pour savoir à quelle ligne se situe l'erreur.
Que veux-tu dire sam, en parlant de debugger avec des PRINT "toto" ?
Re: Problème avec Basic 128
J'ai fait le test sur TO7/70, TO8, TO8D, TO9 et TO9+.
Toutes les machines plantent, que ce soit en BASIC 128 ou 512. Seule différence pour le TO8,
il me fait une initialisation programme.
Toutes les machines plantent, que ce soit en BASIC 128 ou 512. Seule différence pour le TO8,
il me fait une initialisation programme.
Re: Problème avec Basic 128
J'ai essayé le jeu avec une vraie machine (un MO6 avec une ROM de PC128). En BASIC 128 Il plante exactement au même endroit.
D'après l'article de TEO c'est un programme en BASIC 1.0, donc rien d'étonnant à ce qu'il ne fonctionne pas en BASIC 128.
D'après l'article de TEO c'est un programme en BASIC 1.0, donc rien d'étonnant à ce qu'il ne fonctionne pas en BASIC 128.
Par contre il devrait fonctionner avec les quatre machines citées en BASIC 1.0. Sinon il y a peut-être une erreur dans le listing, ou une erreur de saisie.TEO a écrit :Ce programme en basic 1.0 fonctionne donc sur TO7/70, MO5, MO6, TO9.
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
Re: Problème avec Basic 128
Essai avec DCMOTO en BASIC 1.0 :
- Le programme fonctionne sans erreur avec tous les MO (MO5, MO5E, MO5NR, MO5N, MO6, PC128)
- Il y a une erreur en ligne 55 (un espace superflu dans la chaîne de caractères entre LA et SO). Sur MO elle n'est pas détectée, sur TO elle provoque une erreur: ?FC Error In 55. Après correction de cette erreur le programme fonctionne bien avec tous les TO à partir du TO7/70 (TO7/70, TO9, TO8, TO8D, TO9+).
C'est donc conforme à la description de TEO.
Le portage en BASIC 128 et en BASIC 512 est une autre histoire. C'est sûrement possible mais il faudrait commencer par trouver la cause du plantage à la ligne 2050. Ce n'est pas évident.
- Le programme fonctionne sans erreur avec tous les MO (MO5, MO5E, MO5NR, MO5N, MO6, PC128)
- Il y a une erreur en ligne 55 (un espace superflu dans la chaîne de caractères entre LA et SO). Sur MO elle n'est pas détectée, sur TO elle provoque une erreur: ?FC Error In 55. Après correction de cette erreur le programme fonctionne bien avec tous les TO à partir du TO7/70 (TO7/70, TO9, TO8, TO8D, TO9+).
C'est donc conforme à la description de TEO.
Le portage en BASIC 128 et en BASIC 512 est une autre histoire. C'est sûrement possible mais il faudrait commencer par trouver la cause du plantage à la ligne 2050. Ce n'est pas évident.
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
Re: Problème avec Basic 128
OK. Sur les autres machines citées, je n'ai pu le tester qu'en Basic 128 ou 512.
Que ce soit sur disquette 3.5" ou 5.25" ou sur cassette, je ne parviens pas à le charger
en Basic 1.0.
La machine ne semble pas reconnaître le support. En tout cas elle reste sur le message.
Sur disquette pourtant, le fichier est bien visible dans l'exploitation de fichier (TO8 et TO9),
mais le contenu de la cassette ne s'affiche pas.
Que ce soit sur disquette 3.5" ou 5.25" ou sur cassette, je ne parviens pas à le charger
en Basic 1.0.
La machine ne semble pas reconnaître le support. En tout cas elle reste sur le message
Code : Tout sélectionner
Searching
Sur disquette pourtant, le fichier est bien visible dans l'exploitation de fichier (TO8 et TO9),
mais le contenu de la cassette ne s'affiche pas.
Re: Problème avec Basic 128
En BASIC 1.0 il faut d'abord charger le DOS pour pouvoir accéder à la disquette.
Quand le DOS est chargé il n'y a plus assez de place pour charger le programme.
Il n'est donc pas possible de l'utiliser à partir d'une disquette.
Quand le DOS est chargé il n'y a plus assez de place pour charger le programme.
Il n'est donc pas possible de l'utiliser à partir d'une disquette.
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
-
- Messages : 7986
- Inscription : 18 sept. 2010 12:08
- Localisation : Brest et parfois les Flandres
Re: Problème avec Basic 128
Pour savoir où une erreur a lieue en basic 128 je fais juste "LIST ." (avec un point), ce qui affiche la ligne en question et même l'instruction en cause avec un caractère en inverse vidéo.
Et bien le grand classique de mettre des tas de PRINT dans le programme pour savoir où il est et ce qu'il fait. Bref du TRON, sans TRON du coupQue veux-tu dire sam, en parlant de debugger avec des PRINT "toto" ?
Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
Re: Problème avec Basic 128
Je viens de faire une cassette TO, elle se charge sans aucun problème en BASIC 1.0 avec le TO8 ou le TO8D.
Tu as peut-être essayé de lire une cassette MO avec un TO ?
(Les cassettes MO sont incompatibles avec les TO, et réciproquement).
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
Re: Problème avec Basic 128
Je ne connaissait pas cette méthode. Merci pour le tuyau.Pour savoir où une erreur a lieue en basic 128 je fais juste "LIST ."
Je suis effectivement au courant, mais je pensais le problème limité aux MO et TO7.(Les cassettes MO sont incompatibles avec les TO, et réciproquement).
Par contre, je ne sais pas comment procéder pour créer une cassette TO.