[TO7-70,TO8,TO9] Incompatibilité en Basic.

Tout ce qui concerne le logiciel original et sa sauvegarde avec entre autre la régénération des disquettes ou autres supports physiques.

Modérateurs : Papy.G, fneck, Carl

Xavier

[TO7-70,TO8,TO9] Incompatibilité en Basic.

Message par Xavier »

Bonjour,

En testant un programme basic issus d'Hebdogiciel, je me suis aperçu que tous programmes basic ne fonctionnaient pas sur les machines récente (TO8-TO9) de chez Thomson.

J'ai deux exemples sur le même logiciel: http://www.hebdogiciel.free.fr/hd-roms/ ... pounz2.zip

Logiciel TO7/70 sans lecteur de disquettes.
image OK
image OK
EX1.jpg (247.81 Kio) Consulté 3355 fois
1)
90 FORI=0 TO 2:LINE(2,11+I)-(7+2*I,11+I)CHR$(127),2:COLOR6,2:PRINTGR$(26)GR$(10):NEXT
Affichage erroné sur cette fonction: la commande le PRINT perd son emplacement après le LINE.
Erreur LINE
Erreur LINE
EX1B.jpg (134.79 Kio) Consulté 3355 fois
2)
Le buffer GR$ est écrasé par des informations (surement le buffer disque).
Erreur Gr$
Erreur Gr$
EX2C.jpg (108.2 Kio) Consulté 3355 fois
Nous ne pouvons pas parler d'incompatibilité systématique, mais d'un incompatibilité de programmation ou de débordement mémoire, qui peut être corrigée par la commande CLEAR.
Mais, pour ce qui est de programmes à taper "mot pour mot", cela implique des problèmes de conversion et d'interprétation.

De plus, l'utilisation de cartes mémoire désorganise le traitement des données en cas de surcharge en mémoire standard.

Donc, il est toujours utile de tester plusieurs configuration, avant d'intervenir sur un code.
Fool-DupleX
Messages : 2284
Inscription : 06 avr. 2009 12:07

Re: [TO7-70,TO8,TO9] Incompatibilité en Basic.

Message par Fool-DupleX »

D'accord, tu as lancé le programme sous BASIC 128 au lieu du BASIC 1.0. Ce n'est pas pour rien que les TO9/8/8D/9+ proposent le basic 1.0 dans leur menu de demarrage, sinon il n'y aurait que le BASIC 128 ou 512. Sur n'importe quel TO sous BASIC 1.0, Spounz2 fonctionne correctement. Il etait courant à l'époque qu'un logiciel commercial précise sur sa jaquette qu'il fallait le lancer dans l'un ou l'autre basic pour avoir un fonctionnement correct.

Maintenant il serait intéressant d'approfondir un peu la question et de comprendre ou se situe l'incompatibilité avec le BASIC 128/512. Pour le fun.
Xavier

Re: [TO7-70,TO8,TO9] Incompatibilité en Basic.

Message par Xavier »

Salut,

Oui, il est aussi à noter que sur le TO8, j'ai retirer l'extension mémoire 256k, car sinon, "Out of string" à l'initialisation des variables.
En "bricolant" sur DCmoto, j'ai aussi planté mes TO émulés avec la ROM du TO7-70, restée "montée" et ajoutée en doublon sur la machine!
:lol:
Bon... on va devenir des Pros dans les trucs qui marchent pas...

C'est de la faute à Daniel aussi !
Son émulateur est trop compliqué... pour des vieux comme nous...
:mrgreen:
Daniel
Messages : 17316
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: [TO7-70,TO8,TO9] Incompatibilité en Basic.

Message par Daniel »

En Basic "pur", les incompatibilités entre le Basic 1.0 et le Basic 512 se situent essentiellement dans la syntaxe de quelques rares commandes. En général ça se solde par une erreur à l'exécution.

Mais très souvent les programmeurs astucieux appellent en Basic des routines système, testent ou modifient des adresses en ram réservées au moniteur ou au Basic, et alors le résultat est plus vicieux car d'une machine à l'autre et d'un Basic à l'autre les adresses ne sont pas toutes les mêmes. C'est ce qui produit des anomalies ou des plantages quand le programme n'est pas exécuté avec la machine et le Basic pour lesquels il est conçu.

Bien entendu, dans ce cas, le programmeur n'est pas coupable puisqu'il ne pouvait pas prévoir l'évolution des machines. Au pire on peut lui reprocher d'avoir utilisé des méthodes pas très standard, et blâmer Thomson de ne pas avoir totalement assuré la compatibilité ascendante. Encore que, sur ce dernier point, ils n'avaient pas trop le choix s'ils voulaient faire évoluer les systèmes.
Daniel
L'obstacle augmente mon ardeur.
Fool-DupleX
Messages : 2284
Inscription : 06 avr. 2009 12:07

Re: [TO7-70,TO8,TO9] Incompatibilité en Basic.

Message par Fool-DupleX »

C'est intéressant. Les commandes graphiques genre LINE en mode caractère ne fonctionnent pas tout à fait de la bonne manière en BASIC 128/512. En BASIC 1.0, le curseur est déplacé à la fin du dernier caractère affiché par la commande graphique, ce qui est attendu (j'ai vérifié la doc). En BASIC 128/512, il n'y a plus de règle définie. Avec LINE, c'est après le premier caractère, avec BOXF, c'est après la deuxième ligne ...

C'est ainsi que Dr. Spounz 2 n'affiche pas correctement la colline dans l'image d'intro en BASIC 128/512.

Voilà déjà une différence désagréable, car il n'y a pas de raison pour cela.
__sam__
Messages : 7923
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: [TO7-70,TO8,TO9] Incompatibilité en Basic.

Message par __sam__ »

Je pense que c'est une différence entre la routine LINE du moniteur (utilisée par BASIC1), et celle de l'extra-mon (utilisée par BASIC128 et au delà).

Cela dit je ne me serais jamais basé sur la position supposée/observée du curseur à la sortie d'une telle routine. En effet quand on trace de (x,y) à (a,b), la routine pourrait choisir de partir de (x,y) ou (a,b) suivant l'optimisation. A ce moment là la notion de dernier point devient floue. Pourquoi l'auteur a-t-il fait ca ? Un LOCATE n'aurait rien couté.
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
Répondre