Logicielsmoto.com
http://www.logicielsmoto.com/phpBB/

Liste des tokens du BASIC
http://www.logicielsmoto.com/phpBB/viewtopic.php?f=3&t=518
Page 1 sur 1

Auteur:  PulkoMandy [ 15 Mar 2015, 08:22 ]
Sujet du message:  Liste des tokens du BASIC

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.

Auteur:  gilles [ 15 Mar 2015, 09:22 ]
Sujet du message:  Re: Liste des tokens du BASIC

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...

Auteur:  Bentoc [ 12 Aoû 2020, 08:20 ]
Sujet du message:  Re: Liste des tokens du BASIC

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 ...

Auteur:  Samuel Devulder [ 12 Aoû 2020, 09:35 ]
Sujet du message:  Re: Liste des tokens du BASIC

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 ?

Auteur:  Daniel Coulom [ 12 Aoû 2020, 10:29 ]
Sujet du message:  Re: Liste des tokens du BASIC

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

Auteur:  Samuel Devulder [ 12 Aoû 2020, 11:59 ]
Sujet du message:  Re: Liste des tokens du BASIC

Tiens "NET$" ! Je ne connais pas ce mot clef.

Auteur:  Daniel Coulom [ 12 Aoû 2020, 15:45 ]
Sujet du message:  Re: Liste des tokens du BASIC

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.

Auteur:  Bentoc [ 12 Aoû 2020, 17:10 ]
Sujet du message:  Re: Liste des tokens du BASIC

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 ...

Auteur:  Daniel Coulom [ 12 Aoû 2020, 19:20 ]
Sujet du message:  Re: Liste des tokens du BASIC

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.

Auteur:  Bentoc [ 12 Aoû 2020, 19:36 ]
Sujet du message:  Re: Liste des tokens du BASIC

excellent, merci beaucoup !

Page 1 sur 1 Heures au format UTC + 1 heure
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/