Logicielsmoto.com

Nous sommes le 28 Mar 2024, 21:31

Heures au format UTC + 1 heure




Poster un nouveau sujet Répondre au sujet  [ 10 messages ] 
Auteur Message
 Sujet du message: Liste des tokens du BASIC
MessagePosté: 15 Mar 2015, 08:22 
Hors ligne

Inscription: 24 Juil 2010, 16:08
Messages: 454
Localisation: France
J'ai commencé une documentation des tokens et du format de fichier utilisé par le BASIC. Le but est de fournir un "compilateur" pour convertir un fichier ASCII en BASIC, et inversement, de façon à pouvoir utiliser du code BASIC dans des projets en développement croisé.

Cette liste est incomplète: j'ai pour le moment listé uniquement les tokens utilisés dans le jeu "1000 bornes" (qui est écrit en BASIC). Je n'ai pas vérifié si les tokens sont les mêmes sur TO, et dans les BASIC étendus.

La liste: http://pulkomandy.tk/wiki/doku.php?id=d ... _internals

Et un outil qui convertit un fichier BASIC en ASCII (avec de la coloration des mots clés): http://pulkomandy.tk/projects/thomson/b ... bastok.cpp

Est-ce qu'une liste complète des tokens existe déjà? Sinon, je continue à tester bastok avec d'autres programmes BASIC pour compléter ma liste.


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Liste des tokens du BASIC
MessagePosté: 15 Mar 2015, 09:22 
Hors ligne

Inscription: 21 Avr 2010, 10:59
Messages: 253
Xavier, un gars de silicium avait un projet similaire (pour la saisie des listings hebdogiciel), il doit y avoir de bonnes infos à reprendre ici:

http://dskcenter.free.fr/TO7/

sinon il me semble que la liste des tokens est plus ou moins en clair dans la rom basic. en 1 ou 2 tables. Il doit même exister un vieil ouvrage décrivant la structure du basic (orienté TO7).

[edith]
ceci dit dans cette version Xavier mettait sans doute à profit le mode "ASCII" du basic thomson SAVE"",,A car je ne vois pas beaucoup de tokens dans son code VB...

_________________
http://www.alternative-system.com


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Liste des tokens du BASIC
MessagePosté: 12 Aoû 2020, 08:20 
Hors ligne

Inscription: 21 Avr 2019, 21:48
Messages: 433
Localisation: Var
Grâce aux infos de PulkoMandy sur l'encodage d'un fichier basic, j'ai pu compléter la liste.
Dispo ici : https://www.bento8.fr/?p=54

J'ai écrit un fichier .bas avec tous les tokens possibles et fait un LIST pour obtenir les instructions correspondantes.

Ma liste vaut pour le Basic512 sur TO8 ... je ne sais pas comment a été gérée la compatibilité entre les différentes versions ...


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Liste des tokens du BASIC
MessagePosté: 12 Aoû 2020, 09:35 
Hors ligne

Inscription: 21 Aoû 2006, 09:06
Messages: 1802
Localisation: Brest
Tiens '*' est présent en $C9 et $EC. Est-ce la même opération où l'un serait-il une version optimisée (et cachée) de l'autre, ou est-ce juste pour la compatibilité ascendante avec les anciens basics ?

_________________
Good morning, that's a nice Tnetennba


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Liste des tokens du BASIC
MessagePosté: 12 Aoû 2020, 10:29 
Hors ligne
M. DCMOTO

Inscription: 06 Juin 2004, 08:23
Messages: 681
Localisation: Provence (France)
Voici les tables utilisées par mes programmes de conversion :

Code:
//BASIC 1.0 MO5
char token[][12] = {
"END","FOR","NEXT","DATA","DIM","READ","????","GO",                //$00-$07
"RUN","IF","RESTORE","RETURN","REM","'","STOP","ELSE",             //$08-$0f
"TRON","TROFF","DEFSTR","DEFINT","DEFSNG","????","ON","TUNE",      //$10-$17
"ERROR","RESUME","AUTO","DELETE","LOCATE","CLS","CONSOLE","PSET",  //$18-$1f
"MOTOR","SKIPF","EXEC","BEEP","COLOR","LINE","BOX","????",         //$20-$27
"ATTRB","DEF","POKE","PRINT","CONT","LIST","CLEAR","DOS",          //$28-$2f
"????","NEW","SAVE","LOAD","MERGE","OPEN","CLOSE","INPEN",         //$30-$37
"PEN","PLAY","TAB","TO","SUB","FNS","SPC","USING",                 //$38-$3f
"USR","ERL","ERR","OFF","THEN","NOT","STEP","+",                   //$40-$47
"-","*","/","^","AND","OR","XOR","EQV",                            //$48-$4f
"IMP","MOD","@",">","=","<","DSKINI","DSKO$",                      //$50-$57
"KILL","NAME","FIELD","LSET","RSET","PUT","GET","VERIFY",          //$58-$5f
"DEVICE","DIR","FILES","WRITE","UNLOAD","BACKUP","COPY","CIRCLE",  //$60-$67
"PAINT","DRAW","RENUM","SWAP","????","????","????","????",         //$68-$6f
"????","????","????","????","????","????","????","????",           //$70-$77
"????","????","????","????","????","????","????","????"};          //$78-$7f
char tokenff[][20] = {
"SGN","INT","ABS","FRE","SQR","LOG","EXP","COS",                   //$00-$07
"SIN","TAN","PEEK","LEN","STR$","VAL","ASC","CHR$",                //$08-$0f
"EOF","CINT","CSNG","CDBL","FIX","HEX$","OCT$","STICK",            //$10-$17
"STRIG","GR$","LEFT$","RIGHT$","MID$","INSTR","VARPTR","RND",      //$18-$1f
"INKEY$","INPUT","CSRLIN","POINT","SCREEN","POS","PTRIG","DSKF",   //$20-$27
"CVI","CVS","????","MKI$","MKS$","????","LOC","LOF",               //$28-$2f
"SPACE$","STRING$","DSKI$","????","NET$","????","????","????",     //$30-$37
"????","????","????","????","????","????","????","????",           //$38-$3f
"????","????","????","????","????","????","????","????",           //$40-$47
"????","????","????","????","????","????","????","????",           //$48-$4f
"????","????","????","????","????","????","????","????",           //$50-$57
"????","????","????","????","????","????","????","????",           //$58-$5f
"????","????","????","????","????","????","????","????",           //$60-$67
"????","????","????","????","????","????","????","????",           //$68-$6f
"????","????","????","????","????","????","????","????",           //$70-$77
"????","????","????","????","????","????","????","????"};          //$78-$7f

//BASIC 512 TO8
char token[][12] = {
"END","FOR","NEXT","DATA","DIM","READ","LET","GO",                 //$00-$07
"RUN","IF","RESTORE","RETURN","REM","'","STOP","ELSE",             //$08-$0f
"TRON","TROFF","DEFSTR","DEFINT","DEFSNG","DEFDBL","ON","TUNE",    //$10-$17
"ERROR","RESUME","AUTO","DELETE","LOCATE","CLS","CONSOLE","PSET",  //$18-$1f
"MOTOR","SKIPF","EXEC","BEEP","COLOR","LINE","BOX","UNMASK",       //$20-$27
"ATTRB","DEF","POKE","PRINT","CONT","LIST","CLEAR","INTERVAL",     //$28-$2f
"KEY","NEW","SAVE","LOAD","MERGE","OPEN","CLOSE","INPEN",          //$30-$37
"PEN","PLAY","TAB","TO","SUB","FN","SPC(","USING",                 //$38-$3f
"USR","ERL","ERR","OFF","THEN","NOT","STEP","+",                   //$40-$47
"-","*","/","^","AND","OR","XOR","EQV",                            //$48-$4f
"IMP","MOD","@",">","=","<","DSKINI","DSKO$",                      //$50-$57
"KILL","NAME","FIELD","LSET","RSET","PUT","GET","VERIFY",          //$58-$5f
"DEVICE","DIR","FILES","WRITE","UNLOAD","BACKUP","COPY","CIRCLE",  //$60-$67
"PAINT","RESET","RENUM","SWAP","*","WINDOW","PATTERN","DO",        //$68-$6f
"LOOP","EXIT","INMOUSE","MOUSE","CHAIN","COMMON","SEARCH","FWD",   //$70-$77
"TURTLE","?$79?","?$7a?","?$7b?","?$7c?","?$7d?","?$7e?","?$7f?"}; //$78-$7f
char tokenff[][20] = {
"SGN","INT","ABS","FRE","SQR","LOG","EXP","COS",                   //$00-$07
"SIN","TAN","PEEK","LEN","STR$","VAL","ASC","CHR$",                //$08-$0f
"EOF","CINT","CSNG","CDBL","FIX","HEX$","OCT$","STICK",            //$10-$17
"STRIG","GR$","LEFT$","RIGHT$","MID$","INSTR","VARPTR","RND",      //$18-$1f
"INKEY$","INPUT","CSRLIN","POINT","SCREEN","POS","PTRIG","DSKF",   //$20-$27
"CVI","CVS","CVD","MKI$","MKS$","MKD$","LOC","LOF",                //$28-$2f
"SPACE$","STRING$","DSKI$","FKEY$","MIN(","MAX(","ATN","CRUNCH(",  //$30-$37
"MTRIG","EVAL","PALETTE","BANK","HEAD","ROT","SHOW","ZOOM",        //$38-$3f
"TRACE","!$41!","!$42!","!$43!","!$44!","!$45!","!$46!","!$47!",   //$40-$47
"!$48!","!$49!","!$4a!","!$4b!","!$4c!","!$4d!","!$4e!","!$4f!",   //$48-$4f
"!$50!","!$51!","!$52!","!$53!","!$54!","!$55!","!$56!","!$57!",   //$50-$57
"!$58!","!$59!","!$5a!","!$5b!","!$5c!","!$5d!","!$5e!","!$5f!",   //$58-$5f
"!$60!","!$61!","!$62!","!$63!","!$64!","!$65!","!$66!","!$67!",   //$60-$67
"!$68!","!$69!","!$6a!","!$6b!","!$6c!","!$6d!","!$6e!","!$6f!",   //$68-$6f
"!$70!","!$71!","!$72!","!$73!","!$74!","!$75!","!$76!","!$77!",   //$70-$77
"!$78!","!$79!","!$7a!","!$7b!","!$7c!","!$7d!","!$7e!","!$7f!"};  //$78-$7f


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Liste des tokens du BASIC
MessagePosté: 12 Aoû 2020, 11:59 
Hors ligne

Inscription: 21 Aoû 2006, 09:06
Messages: 1802
Localisation: Brest
Tiens "NET$" ! Je ne connais pas ce mot clef.

_________________
Good morning, that's a nice Tnetennba


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Liste des tokens du BASIC
MessagePosté: 12 Aoû 2020, 15:45 
Hors ligne
M. DCMOTO

Inscription: 06 Juin 2004, 08:23
Messages: 681
Localisation: Provence (France)
J'ai eu la même réaction en relisant la liste. Il n'y a pas de trace de cette instruction dans la documentation. Je ne sais plus ou j'ai trouvé cette liste de tokens, c'est très vieux (plus de 20 ans) et j'ai oublié.
Il est sûr que NET$ ne figure pas dans le Basic 1.0 de la ROM du MO5. J'ai cherché dans le 3'5 Basic DOS 1.0 mais elle ne semble pas y être. J'offre une forte récompense à qui trouvera d'où elle vient.


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Liste des tokens du BASIC
MessagePosté: 12 Aoû 2020, 17:10 
Hors ligne

Inscription: 21 Avr 2019, 21:48
Messages: 433
Localisation: Var
L'instruction NET$ permet d'envoyer une consigne au travers du nanoreseau depuis le BASIC
http://nanoreseau.net/lib/exe/fetch.php?media=mt_nr_chap1.pdf
A lire : page 66

La doc complète : http://nanoreseau.net/doku.php?id=documentation_officielle
Avec le doc sur les primitives qui recense toutes les consignes que l'on peut transmettre sur le nanoreseau.

Je n'ai jamais utilisé ce système ...


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Liste des tokens du BASIC
MessagePosté: 12 Aoû 2020, 19:20 
Hors ligne
M. DCMOTO

Inscription: 06 Juin 2004, 08:23
Messages: 681
Localisation: Provence (France)
Ah oui ! Merci ! La mémoire me revient : A l'époque je travaillais sur l'émulateur du nanoréseau et sur les logiciels, et j'avais besoin du token NET$ pour lister les programmes BASIC.
J'avais promis une forte récompense, mais c'était très exagéré.
La voici :
Fichier(s) joint(s):
dcmotobasic_20200812.zip [9.92 Kio]
Téléchargé 451 fois

Entre autres fonctions ce programme sait décrypter les programmes BASIC protégés et lister les lignes de plus de 255 octets.


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Liste des tokens du BASIC
MessagePosté: 12 Aoû 2020, 19:36 
Hors ligne

Inscription: 21 Avr 2019, 21:48
Messages: 433
Localisation: Var
excellent, merci beaucoup !


Haut
 Profil  
Répondre en citant le message  
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 10 messages ] 

Heures au format UTC + 1 heure


Qui est en ligne

Utilisateurs parcourant ce forum: Bing [Bot] et 48 invités


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages
Vous ne pouvez pas joindre des fichiers

Rechercher:
Aller à:  
cron
Développé par phpBB® Forum Software © phpBB Group
Traduction par phpBB-fr.com