Comment créer/charger une cassette virtuelle vierge ?

Couvre tous les domaines de l'émulation ou de la virtualisation ainsi que les discussions sur les divers outils associés.

Modérateurs : Carl, Papy.G, fneck

Daniel
Messages : 10261
Enregistré le : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: Comment créer/charger une cassette virtuelle vierge ?

Message par Daniel » 18 oct. 2017 10:37

Lionel a écrit :
17 oct. 2017 05:43
j'avais vu que le langage Basic lui-même n'était même pas répertorié comme de la programmation. Cette volonté de le supprimer est irrespectueux car cela ne considère pas chaque niveau. Je sais que le BASIC est très limité..
C'est faux. Le BASIC n'est pas un mauvais langage, il est encore utilisé de nos jours. L'émulateur VB Hector en est un exemple.
Par contre nous n'utilisons pas le BASIC pour programmer des jeux sur les ordinateurs Thomson à cause de la lenteur de l'interpréteur. Il y a eu des tentatives pour créer des compilateurs, par exemple Speedy Wonder. Malheureusement ce n'est qu'une ébauche inutilisable dans la pratique.
Un autre défaut de l'implémentation sur les micro-ordinateurs des années 1980 est l'obligation d'utiliser des numéros de ligne, ce qui ne facilite pas la programmation structurée.

Le BASIC peut toutefois être utilisé comme programme principal à condition d'utiliser des sous-programmes en langage machine pour toutes les fonctions dont la durée d'exécution est critique : affichage de dessins et d'animations, scrutation du clavier, etc. Il y a des exemples très connus dans la logithèque Thomson, comme L'Aigle d'Or ou Le Temple de Quauhtli.

Il faut être bien conscient que le niveau du programmeur a un impact très important sur les performances. D'abord dans le choix des variables : ne pas utiliser la virgule flottante si on peut utiliser des entiers, éviter les divisions et encore plus les formules trigonométriques. Ensuite avoir bien conscience de la façon dont le BASIC traite les chaînes de caractères : la modification de longueur d'une chaîne entraîne automatiquement une réallocation de mémoire très coûteuse en temps. Pire, quand on arrive au bout de l'espace alloué, cet espace est réorganisé et toutes les chaînes déjà définies sont déplacées. S'il y en a beaucoup ça peut prendre plusieurs secondes. Il y a de bonnes pratiques pour définir la chaîne une fois pour toute à sa longueur maximale, et travailler uniquement en modification sans aucune réallocation. On pourrait ajouter beaucoup d'autres recettes, mais nous avons déjà un peu trop dévié du sujet de ce fil de discussion. En plus j'ai l'impression que Lionel est reparti, nous le reverrons peut-être l'année prochaine...
Modifié en dernier par Daniel le 18 oct. 2017 20:38, modifié 2 fois.
Daniel
L'obstacle augmente mon ardeur.

jasz
Messages : 337
Enregistré le : 05 oct. 2016 20:05
Localisation : Quelque part dans le 31

Re: Comment créer/charger une cassette virtuelle vierge ?

Message par jasz » 18 oct. 2017 20:32

Daniel a écrit :
18 oct. 2017 10:37
Le BASIC peut toutefois être utilisé comme programme principal à condition d'utiliser des sous-programmes en langage machine pour toutes les fonctions dont la durée d'exécution est critique : affichage de dessins et d'animations, scrutation du clavier, etc. Il y a des exemples très connus dans la logithèque Thomson, comme L'Aigle d'Or ou Le Temple de Quauhtli.
Il est clair qu'en terme d'affichage le BASIC est relativement lent. :( Pour les jeux cités (de JL ROQUES) ce n'est pas tant le test clavier qui prenait du temps mais le déplacement du Sprite avec tout les tests collisions et autres en LM. Un exemple tout en LM; Green Beret est un monstre de lenteur. :roll:

[edit] Certes on dévie du sujet initial et puis tant pis si Lionel ne repond plus. Cela peut servir à d'autre ;)

Répondre