Problème avec Basic 128

Cette catégorie traite de développements récents pour nos vieilles machines, applications, jeux ou démos... Amis programmeurs, c'est ici que vous pourrez enfin devenir célèbres!

Modérateurs : Papy.G, fneck, Carl

Neelix
Messages : 15
Inscription : 04 nov. 2021 23:16

Problème avec Basic 128

Message par Neelix »

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 ?
__sam__
Messages : 7923
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

[THOMSON] Re: Problème avec Basic 128

Message par __sam__ »

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
Daniel
Messages : 17316
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: Problème avec Basic 128

Message par Daniel »

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.
Neelix
Messages : 15
Inscription : 04 nov. 2021 23:16

Re: Problème avec Basic 128

Message par Neelix »

Je vois mal pourquoi le mode trace de l'émulateur changerait le fonctionnement du programme Basic
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.

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
__sam__
Messages : 7923
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: Problème avec Basic 128

Message par __sam__ »

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.
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
Daniel
Messages : 17316
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: Problème avec Basic 128

Message par Daniel »

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.
Dernière modification par Daniel le 05 nov. 2021 18:27, modifié 1 fois.
Daniel
L'obstacle augmente mon ardeur.
Neelix
Messages : 15
Inscription : 04 nov. 2021 23:16

Re: Problème avec Basic 128

Message par Neelix »

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" ?
Neelix
Messages : 15
Inscription : 04 nov. 2021 23:16

Re: Problème avec Basic 128

Message par Neelix »

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.
Daniel
Messages : 17316
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: Problème avec Basic 128

Message par Daniel »

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.
TEO a écrit :Ce programme en basic 1.0 fonctionne donc sur TO7/70, MO5, MO6, TO9.
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.
Daniel
L'obstacle augmente mon ardeur.
Daniel
Messages : 17316
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: Problème avec Basic 128

Message par Daniel »

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.
Daniel
L'obstacle augmente mon ardeur.
Neelix
Messages : 15
Inscription : 04 nov. 2021 23:16

Re: Problème avec Basic 128

Message par Neelix »

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

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.
Daniel
Messages : 17316
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: Problème avec Basic 128

Message par Daniel »

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.
Daniel
L'obstacle augmente mon ardeur.
__sam__
Messages : 7923
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: Problème avec Basic 128

Message par __sam__ »

Neelix a écrit : 05 nov. 2021 18:25 La commande TRON est pourtant très utile pour savoir à quelle ligne se situe l'erreur.
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.
Que veux-tu dire sam, en parlant de debugger avec des PRINT "toto" ?
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 coup :)
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
Daniel
Messages : 17316
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: Problème avec Basic 128

Message par Daniel »

Neelix a écrit : 05 nov. 2021 21:12 Que ce soit sur disquette 3.5" ou 5.25" ou sur cassette, je ne parviens pas à le charger
en Basic 1.0.
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.
Neelix
Messages : 15
Inscription : 04 nov. 2021 23:16

Re: Problème avec Basic 128

Message par Neelix »

Pour savoir où une erreur a lieue en basic 128 je fais juste "LIST ."
Je ne connaissait pas cette méthode. Merci pour le tuyau.
(Les cassettes MO sont incompatibles avec les TO, et réciproquement).
Je suis effectivement au courant, mais je pensais le problème limité aux MO et TO7.

Par contre, je ne sais pas comment procéder pour créer une cassette TO.
Répondre