[VG5000] Ajouter des commandes au BASIC ?

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

Avatar de l’utilisateur
Mokona
Messages : 1040
Inscription : 17 déc. 2016 22:01
Localisation : Nord Est des Yvelines
Contact :

Re: [VG5000] Ajouter des commandes au BASIC ?

Message par Mokona »

Ajouter des commandes au BASIC était une question plutôt théorique. Et potentiellement, cela peut permettre d'ajouter un peu de rapidité pour des jeux écrits essentiellement en BASIC. Mais... ça reste ultra lent.

J'ai fait un petit test pour montrer à quel point, j'ai fais des vidéos sur émulateur, mais je voudrais les refaire sur matériel pour en faire une version montrable. Même code en BASIC, en BASIC aidé de petites routines en assembleurs et tout assembleur. C'est dans cet ordre de vitesse.

De mon point de vue, débuter en BASIC (en fait, il m'arrive même de démarrer l'idée sur PC avec du Python avec de le passer en BASIC) permet de tester ses idées rapidement (c'est l'itération qui est rapide). Ensuite, on peut passer à la version plus optimisée et là... le langage d'assemblage est presque obligatoire.

Avoir une version entre-deux, surtout si les routines sont les mêmes, ça permet peut-être une étape intermédiaire. Je n'ai pas encore essayé "en vrai".
Avatar de l’utilisateur
Papy.G
Modérateur
Messages : 3047
Inscription : 10 juin 2014 13:40
Localisation : Haute-Garonne/Gers

Re: [VG5000] Ajouter des commandes au BASIC ?

Message par Papy.G »

Carl a écrit : 18 déc. 2020 18:13Papy, et la carte son et la synthèse vocale...
Il y en a tant que je n'ai pas pensé à toutes! :oops:
rendomizer a écrit : 19 déc. 2020 15:57tres tres intéressent cependant Daniel m'a vivement reproché d'utiliser le BASIC et la il semble que ça passe ...
Pour les choses avancées que tu projetais de faire, le Basic risque de te brider en terme de rapidité et de choses juste impossibles à obtenir via les commandes existantes.
L'ajout de commandes au BASIC pourrait y remédier, mais j'ai peur que la place soit un peu juste.

Edit: Oups, la question elle était déjà répondue. :oops:
Soyez exigeants, ne vous contentez pas de ce que l'on vous vend.
Demandez-en plus, ou faites-le vous-même.
Avatar de l’utilisateur
Dominique
Messages : 828
Inscription : 09 mars 2010 13:37
Localisation : Limoges
Contact :

Re: [VG5000] Ajouter des commandes au BASIC ?

Message par Dominique »

@Mokona,

Quand tu parles de la SD avec le Forth tu parles de la VY5040 ?
Avatar de l’utilisateur
Mokona
Messages : 1040
Inscription : 17 déc. 2016 22:01
Localisation : Nord Est des Yvelines
Contact :

Re: [VG5000] Ajouter des commandes au BASIC ?

Message par Mokona »

Oui tout à fait.
Avatar de l’utilisateur
Dominique
Messages : 828
Inscription : 09 mars 2010 13:37
Localisation : Limoges
Contact :

Re: [VG5000] Ajouter des commandes au BASIC ?

Message par Dominique »

J'en avais parlé avec Fred (Fred_72) le mois dernier.

Aucun problème bien entendu pour mettre le Fichier binaire Forth dans le DISK qui se lancera automatiquement par DISK RUN depuis le Basic.

L'intérêt était de mettre également les SCREENS qui sont les programmes qui se rajoutent au Forth.
Les screens du Forth ne sont que des fichiers ASCII au format binaire que le Forth compile en les lisant.
L'avantage est qu'on édite et modifie ces screens avec n'importe quel éditeur de texte (Notepad ++ va très bien) avant de les mettre au Format BIN.
Il y a juste à respecter les normes Forth de fin de fichier.
Il suffit de mettre le fichier en adresse haute (j'ai choisi $B000) et de lancer la commande Forth LOAD

En fait deux solutions pour profiter de la carte SD avec le Forth.

1 - Comme les routines d'impression du VxDOS et du Forth ne sont pas compatibles, il fallait intercepter ces routines; C'était possible dans l'espace de mémoire RAM libre $FB00 - $FFFF que Fred nous a laissé; Il y avait aussi le problème des DI et EI qui gênaient vu que Forth est en DI intégralement.
Mais sincèrement je n'étais pas favorable à l'idée de modifier quoi que ce soit sur son système qui est parfait sur tous les points.

2 - J'ai donc préféré retravailler le compilateur et la commande Forth BYE qui nous ramène au Basic.
De là toutes les commandes du VxDOS sont disponibles; On peut sauvegarder et charger tous les fichiers comme habituellement.
Ensuite on retourne "à chaud" au Forth où on retrouve le compilateur tel qu'on l'avait laissé avant BYE et les Screens chargés par DISK LOAD sont compilables par le LOAD du Forth.

J'ai pensé mettre à disposition ce FIG FORTH début 2021. Je suis en train d'écrire les notices, de peaufiner des SCREENS (Graphisme, FORTH 79, Editeur historique Forth, assembleur, Forth 80 colonnes, jeux etc..)
Avatar de l’utilisateur
Mokona
Messages : 1040
Inscription : 17 déc. 2016 22:01
Localisation : Nord Est des Yvelines
Contact :

Re: [VG5000] Ajouter des commandes au BASIC ?

Message par Mokona »

Ah c'est une bonne nouvelle !
Merci pour les précisions.
Avatar de l’utilisateur
Dominique
Messages : 828
Inscription : 09 mars 2010 13:37
Localisation : Limoges
Contact :

Re: [VG5000] Ajouter des commandes au BASIC ?

Message par Dominique »

L'idée est venue d'ici :

http://galileo.phys.virginia.edu/classe ... htm#struct

Le point 3 explicite BYE


3. The structure of Forth
In the Win32Forth window, now type
BYE <cr>
The Win32Forth window immediately closes.

What just happened? Forth is an interactive programming language con-
sisting entirely of subroutines, called words in Forth jargon.

Interactive means you type things in at the keyboard and the machine
responds. We will see some details of how it does this below.

A word is executed (interactively) by naming it. We have just seen
this happen: BYE is a Forth subroutine meaning “exit to the operating
system”. So when we typed BYE <cr> BYE was executed, and the system re-
turned control to Windows.
Répondre