MSX Village forum

La Place des Développeurs Compilateur BASIC

DataPro Membre non connecté

Villageois

Rang

Avatar

Inscrit le : 14/06/2011 à 10h12

Messages: 978

Le 19/03/2024 à 14h56
Bonjour à tous,

Je suis toujours en réflexion face à mon Philips NMS8255 muni de sa Carnivore2.
J'ai déjà optimisé pas mal de choses qui me facilitent l'usage de l'ordinateur et le lancement de jeux.
J'ai diverses façons de procéder entre SofaRun, Multimente (associé à C2RAMLDR et EMUFILE) et MGlunch qui utilise SOFAROM.

De mon côté j'ai développé un menu batch pour lancer rapidement mes jeux favoris classés par catégories.

Cependant, l'exécution du batch n'est pas très rapide, l'affichage des commandes avec ECHO est lent.
https://msxvillage.fr/forum/topic-4297+batch-sous-msx-dos.php

Déjà, j'ai pu constater que la command DIR du DOS est lente alors que la commande DI.COM (https://msxhub.com/DI) qui affiche les noms longs est extrèmement rapide.
J'imagine que la seconde est mieux programmée.

Ainsi je m'interroge et cherche à savoir si je réalisais mon menu en BASIC et que je le compilais ensuite, j'aurai certainement un résultat beaucoup plus rapide qu'un batch DOS. Le BASIC me permettrait de simplifier le programme en évitant les redondances et peut-être, qui sait, d'afficher des vignettes des jeux (on peut rêver !)


Je n'ai pas encore beaucoup creusé la question et j'espère que certains villageois pourront m'éclairer de leur expérience.

Mes recherches m'orientent vers le MSX Basic-Kun v2.1 mais je n'ai pas trop saisi comment s'opérait la compilation et surtout quel type de fichier exécutable j'obtiens en sortie. https://zx-pk.ru/threads/30182-traktat-o-x-basic-e.html
Car j'aimerai obtenir un programme très simple et rapide à lancer, idéalement un .COM

Une autre piste m'oriente vers le Solid vBasic (VBC) : Solid vBasic MSX info
Cependant il semblerai que le programme soit inachevé et buggé et son auteur décédé.
Edité par DataPro Le 19/03/2024 à 15h50


MSX1: Yeno DPC-64 - Sanyo PHC-28S - Sanyo PHC-28L - Canon V20 - Sony HB-75F - Yeno MX-64
MSX2: Panasonic FS-A1F 128Ko RAM 128 Ko VRAM + Gotek + Gotek / Philips NMS 8255 Azerty
Carnivore 2 : 8Mb FlashROM ° 1024Ko RAM ° IDE ° FM-PAC(MSX Music)° SCC+
Wozblaster
   
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10731

Le 19/03/2024 à 16h12
le MSX Basic-Kun v2.1 compile directement en mémoire et ne crée pas d'exécutable


:noel
Site web    
aoineko Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : Shoutbox

Inscrit le : 02/01/2011 à 21h17

Messages: 2904

Le 19/03/2024 à 17h04
Tu veux pas faire du C par hasard ? :p

Sinon, j'ai vu passer sur MRC et Twitter/X un nouveau compilateur BASIC : CVBASIC.

Apparemment c'est pas du BASIC pur, mais plutôt un language original basé sur la syntaxe BASIC. Je ne sais pas ce que ça vaut. Edité par aoineko Le 19/03/2024 à 17h05


On est toujours ignorant avant de savoir.
Github    
popolon Membre non connecté

Villageois

Rang

Avatar

Groupe : Shoutbox

Inscrit le : 28/07/2010 à 22h07

Messages: 357

Le 19/03/2024 à 17h18
et un autre compileur, BACON de HRA :
https://github.com/hra1129/msx_basic_compiler


tout, tout, tout, vous saurez tout sur la zizi...que
Site web    
VieuxBouz1 Membre non connecté

Villageois

Rang

Avatar

Inscrit le : 13/05/2023 à 09h12

Messages: 260

Le 19/03/2024 à 18h47
^^
Un vrai compilateur Basic :hum
Très intéressé je suis.

Basic kun a certes de très grandes qualités mais ne génère pas un exécutable stand alone. C'est bien dommage. Et certaines instructions sont inopérantes (play par exemple).

Passer au C :hum , le graal ou presque; les fols dingos y préférant l'assembleur; pas aisé et un investissement chronophage...
Qui ne fait pas d'effort, n'a pas de résultat... Mais une moulinette magique qui compilerai ZE Basic Microsoft de nos bébêtes :top

Question transverse :
Y aurait pas de grosses similitudes entre notre basic et celui qui équipe les Thomson ?


Pourquoi s'évertuer à voler avec des aigles quand on travaille avec des dindes...
   
DataPro Membre non connecté

Villageois

Rang

Avatar

Inscrit le : 14/06/2011 à 10h12

Messages: 978

Le 20/03/2024 à 09h45
aoineko :
Tu veux pas faire du C par hasard ? :p
Je n'ai hélas pas le temps d'apprendre.

Mon idée de base est de faire un menu très simple. Après si le projet intéresse plusieurs villageois et que l'un de vous me code le squelette en C, je pense pouvoir me débrouiller.
En BASIC çà se limitera à un truc du style "ON KEY GOSUB"... avec des prints pour l'affichage... le tout dans un .COM pour le lancer directement sous Nextor.

Le menu ultime serait d'arriver à çà, avec une petite vignette mais j'ai peur que çà ne soit pas assez rapide. Je cherche vraiment la vitesse.
pocket_games Edité par DataPro Le 20/03/2024 à 09h47


MSX1: Yeno DPC-64 - Sanyo PHC-28S - Sanyo PHC-28L - Canon V20 - Sony HB-75F - Yeno MX-64
MSX2: Panasonic FS-A1F 128Ko RAM 128 Ko VRAM + Gotek + Gotek / Philips NMS 8255 Azerty
Carnivore 2 : 8Mb FlashROM ° 1024Ko RAM ° IDE ° FM-PAC(MSX Music)° SCC+
Wozblaster
   
DataPro Membre non connecté

Villageois

Rang

Avatar

Inscrit le : 14/06/2011 à 10h12

Messages: 978

Le 20/03/2024 à 14h05
J'ai fait un petit menu en basic :
10 CLS
40 FOR N=1 to 4:READ A$:PRINT N;:PRINT"......."+A$:NEXT N
50 PRINT" 5 .......Exit"
60 INPUT" YOUR CHOICE";ch
70 ON ch go to 100,200,300,400,500
100 _SYSTEM ("SROM /D14 /Q A:\GAMES\NEMESIS.ROM")
200 _SYSTEM ("SROM /D14 /Q A:\GAMES\SALAMAND.ROM")
300 _SYSTEM ("SROM /D14 /Q A:\GAMES\MGALIOUS.ROM")
400 _SYSTEM ("SROM /D14 /Q A:\GAMES\FIREBIRD.ROM")
500 END
900 DATA Nemesis,Salamander,Maze of Galious,Firebird


Cà donne un embryon de programme. Sauf que je bloque sur le lancement de SROM.COM depuis le Basic. Est-ce possible ? Edité par DataPro Le 21/03/2024 à 10h11


MSX1: Yeno DPC-64 - Sanyo PHC-28S - Sanyo PHC-28L - Canon V20 - Sony HB-75F - Yeno MX-64
MSX2: Panasonic FS-A1F 128Ko RAM 128 Ko VRAM + Gotek + Gotek / Philips NMS 8255 Azerty
Carnivore 2 : 8Mb FlashROM ° 1024Ko RAM ° IDE ° FM-PAC(MSX Music)° SCC+
Wozblaster
   
popolon Membre non connecté

Villageois

Rang

Avatar

Groupe : Shoutbox

Inscrit le : 28/07/2010 à 22h07

Messages: 357

Le 20/03/2024 à 14h39
oui en démarrant d'abord en MSX DOS 2 avec un AUTOEXEC.BAT qui retourne sur ton programme
puis pour rapeller SROM depuis le Basic, tu crée un fichier batch SROM.BAT qui renferme SROM.COM
et tu apelle le fichier batch par CALL SYTEM (SROM.BAT)

ça reste basique après faut voir comment adapter aux options de SROM


tout, tout, tout, vous saurez tout sur la zizi...que
Site web    
DataPro Membre non connecté

Villageois

Rang

Avatar

Inscrit le : 14/06/2011 à 10h12

Messages: 978

Le 20/03/2024 à 15h35
Si je lis ce qu'écrit Grauw ici: https://www.msx.org/forum/msx-talk/development/start-dos-program-basic-long-name
il n'y aurait pas besoin de batch. L'appel peut se faire en direct avec les paramètres dans la chaine.
Je n'ai pas encore testé.
Edité par DataPro Le 20/03/2024 à 15h35


MSX1: Yeno DPC-64 - Sanyo PHC-28S - Sanyo PHC-28L - Canon V20 - Sony HB-75F - Yeno MX-64
MSX2: Panasonic FS-A1F 128Ko RAM 128 Ko VRAM + Gotek + Gotek / Philips NMS 8255 Azerty
Carnivore 2 : 8Mb FlashROM ° 1024Ko RAM ° IDE ° FM-PAC(MSX Music)° SCC+
Wozblaster
   
popolon Membre non connecté

Villageois

Rang

Avatar

Groupe : Shoutbox

Inscrit le : 28/07/2010 à 22h07

Messages: 357

Le 20/03/2024 à 17h37
:top


tout, tout, tout, vous saurez tout sur la zizi...que
Site web    
DataPro Membre non connecté

Villageois

Rang

Avatar

Inscrit le : 14/06/2011 à 10h12

Messages: 978

Le 21/03/2024 à 09h33
J'ai fait un essai sous OpenMSX avec ma configuration Panasonic FS-A1F (Nextor) et le listing fonctionne après correction.
SROM -> SROM.COM

Code :
10 CLS
20 R$="SROM.COM /D14 /Q ":D$="SRI.COM /Q /C "
40 FOR N=1 to 4:READ A$:PRINT N;:PRINT"......."+A$:NEXT N
50 PRINT" 5 .......Exit"
60 INPUT" YOUR CHOICE";ch
70 ON ch go to 100,200,300,400,500
100 C$=R$+"A:\GAMES\ROMS\KONAMI\742NMS.ROM":GOTO 499
200 C$=R$+"A:\GAMES\ROMS\KONAMI\758SALAM.ROM":GOTO 499
300 C$=R$+"A:\GAMES\ROMS\KONAMI\749MGAL2.ROM":GOTO 499
400 C$=D$+"A:\GAMES.SR\DSK\SDSNATCH.DSK":GOTO 499
499 _SYSTEM(C$)
500 END
900 DATA Nemesis,Salamander,Maze of Galious,SD Snatcher

Reste à savoir si je peux le compiler... Edité par DataPro Le 21/03/2024 à 10h32


MSX1: Yeno DPC-64 - Sanyo PHC-28S - Sanyo PHC-28L - Canon V20 - Sony HB-75F - Yeno MX-64
MSX2: Panasonic FS-A1F 128Ko RAM 128 Ko VRAM + Gotek + Gotek / Philips NMS 8255 Azerty
Carnivore 2 : 8Mb FlashROM ° 1024Ko RAM ° IDE ° FM-PAC(MSX Music)° SCC+
Wozblaster
   
VieuxBouz1 Membre non connecté

Villageois

Rang

Avatar

Inscrit le : 13/05/2023 à 09h12

Messages: 260

Le 21/03/2024 à 12h29
:top
Merci pour ce partage.


Pourquoi s'évertuer à voler avec des aigles quand on travaille avec des dindes...
   
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10731

Le 21/03/2024 à 14h29
Citation :
Reste à savoir si je peux le compiler...


pourquoi compiler un programme aussi court ?


:noel
Site web    
DataPro Membre non connecté

Villageois

Rang

Avatar

Inscrit le : 14/06/2011 à 10h12

Messages: 978

Le 21/03/2024 à 14h46
Je voudrais un exécutable sous DOS.
...mais bon, je peux toujours faire un M.BAT qui contiendrait l'instruction "BASIC MENU.BAS"

Le programme ne sera pas si court quand j'aurai étoffé un peu le contenu avec des sous-menus.
Si la première version fonctionne, j'essaierai de faire une sélection par curseur. Et peut-être ensuite l'affichage de vignettes.

Il y a des exemples de menu ici : https://www.msx.org/forum/msx-talk/software-and-gaming/disk-menus?page=0
mais je ne comprends pas ce que font tous les pokes. J'ai l'impression que l'exemple de NYYRIKKI scan les disques pour trouver les fichiers .BAS, et constituer le menu, ce qui n'est pas utile dans mon cas.
L'exemple de Guiseve écrit dans le buffer du clavier la commande DOS, ce dont je n'ai pas besoin puisque je suis sous Nextor et que _SYSTEM prend les paramètres.

Je peux encore optimiser. J'aimerai stocker le nom du jeu sélectionné pour afficher "LOADING" Nom du jeu. Edité par DataPro Le 21/03/2024 à 15h25


MSX1: Yeno DPC-64 - Sanyo PHC-28S - Sanyo PHC-28L - Canon V20 - Sony HB-75F - Yeno MX-64
MSX2: Panasonic FS-A1F 128Ko RAM 128 Ko VRAM + Gotek + Gotek / Philips NMS 8255 Azerty
Carnivore 2 : 8Mb FlashROM ° 1024Ko RAM ° IDE ° FM-PAC(MSX Music)° SCC+
Wozblaster
   
popolon Membre non connecté

Villageois

Rang

Avatar

Groupe : Shoutbox

Inscrit le : 28/07/2010 à 22h07

Messages: 357

Le 21/03/2024 à 20h27
souvenirs ^^
dans mes disquettes de compilations de megaroms de l'époque y'avais un menu basic assez simple
MEGAROM4.zip




tout, tout, tout, vous saurez tout sur la zizi...que
Site web    
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie