| Naissance de Crocodile Basic | |
|
+14Pedro jdebord Froggy One Marc silverman Ouf_ca_passe jean_debord jjn4 Francis-mr papydall Fredisland Jean Claude Minibug Jack 18 participants |
|
Auteur | Message |
---|
jean_debord
Nombre de messages : 1266 Age : 70 Localisation : Limoges Date d'inscription : 21/09/2008
| Sujet: Re: Naissance de Crocodile Basic Jeu 16 Mai 2019 - 10:35 | |
| Une nouvelle version sera proposée sous peu avec l'ajout des mots-clés suivants : - GOTO / GOSUB - INKEY$ - MODE - PRINT en mode graphique - SYMBOL Concernant ces différents mots-clés, il y aura effectivement des extensions mais aussi des restrictions : GOTO / GOSUB ------------ Ils fonctionnent avec des étiquettes (labels), comme en Panoramic. La seule différence est que la déclaration des labels n'est pas obligatoire. Par ailleurs, la syntaxe suivante n'est pas acceptée : - Code:
-
IF <condition> THEN <label>
Il faut écrire l'une des deux formes suivantes : - Code:
-
IF <condition> THEN GOTO <label> IF <condition> GOTO <label>
Pour GOSUB, l'instruction GOSUB XXX doit précéder la définition du sous-programme XXX, soit : - Code:
-
.... GOSUB XXX .... END XXX: .... RETURN
mais pas : - Code:
-
XXX: .... RETURN ... GOSUB XXX ...
Pour les GOTO, ils ne peuvent fonctionner qu'à l'intérieur d'un bloc. Par exemple, pas question d'entrer dans un sous-programme par un GOTO : cela provoquera une erreur. INKEY$ ------ Cette fonction retourne une chaîne de caractères correspondant à la touche frappée. Les caractères alphanumériques sont retournés tel quels, par exemple : - Code:
-
IF INKEY$ = "O" THEN ...
Pour les touches "spéciales" (touches de fonction, flèches etc.) la chaîne retournée est la description de la touche suivant les conventions de FBPano (voir l'aide de FBPano : graph2.htm dans le sous répertoire doc). - Code:
-
IF INKEY$ = "F1" THEN ... ' Touche de fonction IF INKEY$ = "DOWN" THEN ... ' Flèche vers le bas IF INKEY$ = "ESCAPE" THEN ... ' Touche Echap
MODE ---- Permet d'entrer dans le mode graphique, comme décrit précédemment. Le mode par défaut reste le mode texte (console). PRINT ----- Fonctionne en mode graphique, mais autrement qu'en mode texte. La syntaxe complète est celle de l'instruction FB_PRINT de FBPano, soit : - Code:
-
PRINT txt$, x, y
txt$ est le texte à imprimer ; (x, y) définissent la position en pixels Les paramètres x et y sont optionnels ; s'ils sont absents la position est définie par LOCATE en terme de ligne et colonne. L'existence des paramètres x et y rend inutiles les instructions TAG et TAGOFF qui ne sont donc pas implémentées. Remarquez que le texte à imprimer doit être contenu dans une chaîne unique. L'opérateur & peut être utilisé pour concaténer des chaînes et des nombres sans passer par STR$ : les 2 instructions suivantes sont équivalentes : - Code:
-
print a$ & i% print a$ + STR$(i%)
D'autre part, les PRINT USING, PRINT SPC et PRINT TAB ne fonctionnent pas en mode graphique. SYMBOL ------ Cette instruction permet de redéfinir un caractère, comme décrit dans le manuel Amstrad. L'instruction SYMBOL AFTER n'est plus nécessaire et n'est donc pas implémentée. | |
|
| |
Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Naissance de Crocodile Basic Jeu 16 Mai 2019 - 11:52 | |
| Merci Jean, Cela prends forme.... J'espère que tu as prévu une aide ou liste pour les mots-clés avec leur syntaxe et exemple, comme tu viens de le faire dans ton message. Reste plus qu'à patienter. A+ | |
|
| |
Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Naissance de Crocodile Basic Jeu 16 Mai 2019 - 17:25 | |
| Bravo jean_debord ! Je vois que ça avance bien. Par contre je me pose une question... Sera-t-il possible de faire tourner les 'vrais' codes Amstrad avec tous ces changements ? Car pour moi c'est tout l'intérêt, sinon à quoi bon reprendre un langage aussi ancien ? Bon, après tout ça nous donnera la possibilité de créer un programme qui pourra convertir le vrai basic Amstrad en pseudo basic Amstrad ! | |
|
| |
Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Naissance de Crocodile Basic Jeu 16 Mai 2019 - 20:15 | |
| Salut Minibug - Citation :
- Sera-t-il possible de faire tourner les 'vrais' codes Amstrad avec tous ces changements ?
Car pour moi c'est tout l'intérêt, sinon à quoi bon reprendre un langage aussi ancien ? Sans vouloir répondre à la place de Jean, je pense qu'il faudra les adapter car vu les explications qu'à donné Jean ce ne sera pas possible de faire un copier/coller du code. Déjà, il n'y a plus de numéros de ligne, ensuite Jean à dit: Pour les GOTO, ils ne peuvent fonctionner qu'à l'intérieur d'un bloc. Par exemple, pas question d'entrer dans un sous-programme par un GOTO : cela provoquera une erreur.. A+ | |
|
| |
jean_debord
Nombre de messages : 1266 Age : 70 Localisation : Limoges Date d'inscription : 21/09/2008
| Sujet: Re: Naissance de Crocodile Basic Ven 17 Mai 2019 - 9:13 | |
| Bien sûr il faudra adapter les anciens programmes Amstrad.
C'est bien pour cela que le projet s'appelle "Crocodile Basic" et non "Locomotive Basic".
Et oui, je prépare des fichiers d'aide pour les mots-clés. On pourra les appeler directement depuis l'éditeur (mais ce n'est pas encore au point, l'une des difficultés est de s'assurer qu'ils sont bien compatibles avec les possibilités d'affichage de l'objet HVIEWER de FLTK) | |
|
| |
Froggy One
Nombre de messages : 598 Date d'inscription : 06/01/2012
| Sujet: Re Ven 17 Mai 2019 - 10:13 | |
| - Jean Claude a écrit:
- C'est un BASIC AMSTRAD super amélioré que tu nous concocte... , super
J'enfonce une porte ouverte (c'est très facile) mais je crois qu'on a deux projets très différents, l'un consistant à partir de ce que jean_debord a déjà créé, l'autre qui serait "juste" de concocter un éditeur / traducteur de code AMSTRAD... vertigineux ! Ce qui est certain, c'est que je vais fouiller mon grenier pour rechercher ma vieille doc, par pure curiosité teintée de nostalgie... et en tous les cas , encore une fois, moi, j'admire... | |
|
| |
jean_debord
Nombre de messages : 1266 Age : 70 Localisation : Limoges Date d'inscription : 21/09/2008
| Sujet: Re: Naissance de Crocodile Basic Ven 17 Mai 2019 - 10:48 | |
| Merci Froggy One Moi j'ai perdu toute ma documentation de l'époque (Suite à l'achat de mon premier PC, j'avais donné l'Amstrad et toute sa documentation à un étudiant). Heureusement il y a le site des anciennes revues informatiques : https://www.abandonware-magazines.org/ainsi que le site suivant, qui contient plein de livres scannés : https://acpc.me/#ACME | |
|
| |
jean_debord
Nombre de messages : 1266 Age : 70 Localisation : Limoges Date d'inscription : 21/09/2008
| Sujet: Re: Naissance de Crocodile Basic Sam 18 Mai 2019 - 9:02 | |
| La nouvelle version est disponible sur mon WebDav (Dossier FBCroco, fichier setup_011.exe)
Programmes exemples :
- Démos de GOTO, GOSUB, SYMBOL
- Adaptation des 2 exemples de Jack : "Danseur" et "Hello World" | |
|
| |
Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: Naissance de Crocodile Basic Sam 18 Mai 2019 - 9:28 | |
| Merci Jean !
Je télécharge de suite !
Merci aussi pour les deux liens de ton post précédent (cf. le 17 mai 2019 10:48) qui sont une mine d'or !
Bonne continuation ! | |
|
| |
Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: Naissance de Crocodile Basic Sam 18 Mai 2019 - 11:08 | |
| @Jean
J'ai fait quelques tests. Bravo pour cette belle avancée !
Question rapidité, c'est impressionnant : sur mon PC, le danseur fait 500 000 pas de danse en moins de 7 secondes !
L'éditeur me pose quelques problèmes : si je modifie le programme du danseur, lors de l'appui sur F9, c'est l’exécution de l'ancien source qui s'affiche dans la fenêtre de sortie. Il y a peut-être quelque chose que je n'ai pas compris...
Bonne continuation ! | |
|
| |
jean_debord
Nombre de messages : 1266 Age : 70 Localisation : Limoges Date d'inscription : 21/09/2008
| Sujet: Re: Naissance de Crocodile Basic Lun 20 Mai 2019 - 9:10 | |
| Merci Marc pour les tests Normalement dans l'éditeur l'appui sur F9 déclenche les événements suivants : - sauvegarde du code source - appel de fbcroco.exe (situé dans c:\FBPano\fbcroco) qui effectue la traduction et appelle à son tour le compilateur FreeBASIC fbc.exe (situé dans C:\FBPano\fbc) - lancement du programme compilé Si cela ne marche pas tu peux procéder manuellement : - sauvegarde par Ctrl+E - compilation par Ctrl+F9 : l'exécutable doit apparaître dans le répertoire du code source - lancement par Shift+F9 On peut aussi compiler en ligne de commande : - Code:
-
cd \FBPano\exemples\fbcroco \FBPano\fbcroco\fbcroco.exe danseur.bas danseur.exe
| |
|
| |
Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Naissance de Crocodile Basic Lun 20 Mai 2019 - 9:58 | |
| Bonjour Jean et tous, Je viens de tester les exemples, ça évolue ... J'ai remarqué un problème de coloration syntaxique de l’instruction sleep A+ PS: Chez moi, j'ai bien la sauvegarde du code source en faisant F9. Marc, tu devrais tenter une réinstallation de FbPano ??? | |
|
| |
jean_debord
Nombre de messages : 1266 Age : 70 Localisation : Limoges Date d'inscription : 21/09/2008
| Sujet: Re: Naissance de Crocodile Basic Mar 21 Mai 2019 - 9:01 | |
| Effectivement, certains mots-clés comme SLEEP ou SYMBOL échappent à la coloration syntaxique ! Ce sera corrigé dans la prochaine version. Et à propos de SYMBOL, voici un petit programme tiré d' "Amstrad Magazine" qui vous permettra d'avoir des chiffres de type "calculatrice" : - Code:
-
SYMBOL 48,24,36,36,0,36,36,24,0 SYMBOL 49,0,4,4,0,4,4,0,0 SYMBOL 50,24,4,4,24,32,32,24,0 SYMBOL 51,24,4,4,24,4,4,24,0 SYMBOL 52,0,36,36,24,4,4,0,0 SYMBOL 53,24,32,32,24,4,4,24,0 SYMBOL 54,24,32,32,24,36,36,24,0 SYMBOL 55,24,4,4,0,4,4,0,0 SYMBOL 56,24,36,36,24,36,36,24,0 SYMBOL 57,24,36,36,24,4,4,24,0
MODE 1
LOCATE 1, 2 : PRINT "0123456789"
WHILE INKEY$() = "" : WEND
| |
|
| |
Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Naissance de Crocodile Basic Mar 21 Mai 2019 - 10:10 | |
| Bonjour jean_debord, Ça avance bien à ce que vois ! Maintenant il va falloir se replonger dans l'utilisation des mots clé et le fonctionnement des codes Amstrad. Pourrais tu nous donner une liste complète des mots clés déjà activés pour chaque avancement, ou bien une option dans l'éditeur Croco-basic afin de savoir ce qu'il est possible de faire... Bravo et bon courage... | |
|
| |
Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: Naissance de Crocodile Basic Ven 24 Mai 2019 - 0:26 | |
| Bonjour Jean, Suite à ma remarque : - Citation :
- L'éditeur me pose quelques problèmes : si je modifie le programme du danseur, lors de l'appui sur F9, c'est l’exécution de l'ancien source qui s'affiche dans la fenêtre de sortie. Il y a peut-être quelque chose que je n'ai pas compris...
J'ai compris ce qu'il se passe. Je suis coupable ! En détail : - j'ouvre le programme "Danseur.bas" ; - j'appuie sur F9, le programme se lance et s'affiche ; - je modifie le code-source et je crée (involontairement) une erreur de syntaxe ; - j'appuie sur F9, c'est le source précédent avant modification qui s’exécute. Je n'avais pas prêté attention aux messages d'erreur en bas de la fenêtre de l'éditeur. Une erreur de syntaxe n’empêche pas le lancement de l'exe existant sur le disque dur. Encore merci et bonne continuation !
Dernière édition par Marc le Lun 27 Mai 2019 - 11:03, édité 1 fois | |
|
| |
jean_debord
Nombre de messages : 1266 Age : 70 Localisation : Limoges Date d'inscription : 21/09/2008
| Sujet: Re: Naissance de Crocodile Basic Ven 24 Mai 2019 - 8:53 | |
| Effectivement, si le code source n'a pas pu être compilé, mais qu'un ancien exécutable existe, c'est ce dernier qui sera lancé. Par ailleurs, voici une nouvelle version du programme exemple using1.bas qui montre toutes les possibilités : - Code:
-
' Demonstration de PRINT USING pour les nombres ' D'apres un exemple Quick Basic
cls
print using "Nombre decimal : ##.##"; .78 print using "Arrondi : ###.##"; 987.654
print
print "Espaces a la fin : "; using "##.## "; 10.2; 5.3; 66.789; .234 print "Signe au debut : "; using "+##.## "; -68.95; 2.4; 55.6; -.9 print "Signe a la fin : "; using "##.##- "; -68.95; 22.449; -7.01 print "Asterisques au lieu d'espaces : "; using "**#.# "; 12.39; -0.9; 765.2
print
print using "Signe dollar : $$###.##"; 456.78 print using "Asterisques et signe dollar : **$##.##"; 2.34 print using "Separateur des milliers : ####,.##"; 1234.5 print using "Exposant 2 chiffres : ##.##^^^^"; 234.56 print using "Signe et exposant 2 chiffres : +.##^^^^"; 123 print using "Exposant 2 chiffres et signe : .####^^^^-"; -888888 print using "Exposant 3 chiffres : +.##^^^^^"; 123 print using "Caractere non modifie : _!##.##_!"; 12.34 print using "Format trop petit : ##.##"; 111.22 print using "Format trop petit : .##"; .999
PS. La documentation est en cours d'écriture. | |
|
| |
Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: Naissance de Crocodile Basic Sam 25 Mai 2019 - 5:15 | |
| | |
|
| |
jean_debord
Nombre de messages : 1266 Age : 70 Localisation : Limoges Date d'inscription : 21/09/2008
| Sujet: Re: Naissance de Crocodile Basic Sam 25 Mai 2019 - 10:28 | |
| Merci Marc, belle contribution ! Je comprends pourquoi tu étais si attentif à la forme de mes caractères La police s'installe bien sous Windows mais elle n'est pas reconnue par FLTK, et donc par l'éditeur FBPano. Serait-il possible de la transformer en TTF ? | |
|
| |
Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: Naissance de Crocodile Basic Dim 26 Mai 2019 - 17:20 | |
| Merci Jean !
Je suis désolé, je n'ai pas trouvé de solution pour passer en TTF, en dehors de la norme Unicode qui nous prive du segment &h80 à &hA0.
Je continue mes recherches.
Bonne soirée !
| |
|
| |
jean_debord
Nombre de messages : 1266 Age : 70 Localisation : Limoges Date d'inscription : 21/09/2008
| Sujet: Re: Naissance de Crocodile Basic Lun 27 Mai 2019 - 8:57 | |
| Je n'ai rien trouvé non plus de mon côté ! Pour mon système j'ai ajouté les caractères 0 à 31. Ce sont surtout des caractères de contrôle mais ils ont aussi une version imprimable. Voici ce que cela donne : | |
|
| |
Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: Naissance de Crocodile Basic Lun 27 Mai 2019 - 10:53 | |
| Bonjour Jean !
Le segment 0-31 est une bonne idée ! Effectivement, dans certains anciens Basic cette plage était exploitée.
Pour ce qui est de l'éditeur sous FLTK, je viens de constater qu'il n'était pas possible d'entrer les caractères avec la touche ALT.
Voilà qui nous prive la possibilité de visualiser un caractère graphique dans l'éditeur.
Bonne continuation !
| |
|
| |
jean_debord
Nombre de messages : 1266 Age : 70 Localisation : Limoges Date d'inscription : 21/09/2008
| Sujet: Re: Naissance de Crocodile Basic Mar 28 Mai 2019 - 9:08 | |
| On y arrive avec une police unicode, mais il faut faire du copier-coller : | |
|
| |
jean_debord
Nombre de messages : 1266 Age : 70 Localisation : Limoges Date d'inscription : 21/09/2008
| Sujet: Re: Naissance de Crocodile Basic Sam 1 Juin 2019 - 9:10 | |
| Voici les couleurs de l'Amstrad, avec les noms que je leur ai donné (noms tirés du manuel) : Ces couleurs sont générées en prenant, pour chaque couleur R, G, B, 3 niveaux (0%, 50%, 100%) ce qui nous donne 3^3 = 27 possibilités. Ces couleurs sont là pour la compatibilité. On pourra bien sûr utiliser toutes les combinaisons RGB grâce à l'instruction COLOR de FreeBASIC. | |
|
| |
Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Naissance de Crocodile Basic Sam 1 Juin 2019 - 11:04 | |
| Bonjour Jean, Bravo pour ta ténacité. Pour les couleurs: Numéro 13: j'aurais plutôt choisi CL_GRIS et du coup CL_BLANC_BRILLANT deviens CL_BLANC. Numéro 12: CL_JAUNE hum... ça ressemble plus à du vert (vert-jaune) Si tu cherches des noms qui parlent, regarde ici => https://fr.wikipedia.org/wiki/Liste_de_noms_de_couleur#ListeA+ | |
|
| |
jean_debord
Nombre de messages : 1266 Age : 70 Localisation : Limoges Date d'inscription : 21/09/2008
| Sujet: Re: Naissance de Crocodile Basic Lun 3 Juin 2019 - 9:22 | |
| J'ai pris les noms des couleurs dans la documentation Amstrad mais je ne vois pas d'inconvénient à les changer
Si j'ai bien compté, la page Wikipédia propose 206 couleurs.
On pourrait les ajouter aux 27 existantes, pour un total de 233 couleurs.
On a droit à un maximum de 256 couleurs de base. En effet dans le Basic Amstrad il y a un mécanisme qui permet de coder la couleur des caractères à l'intérieur d'une chaîne à l'aide d'un caractère de contrôle ; or le code d'un caractère est compris entre 0 et 255.
Bien sûr on peut toujours définir une couleur quelconque avec l'instruction FreeBASIC COLOR | |
|
| |
Contenu sponsorisé
| Sujet: Re: Naissance de Crocodile Basic | |
| |
|
| |
| Naissance de Crocodile Basic | |
|