| 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 Sam 27 Avr 2019 - 10:55 | |
| Pour le compilateur, on peut garder les numéros si l'on veut. Le traducteur les transformera soit en étiquettes soit en noms de sous programmes.
P. ex. :
"GOTO 10" en Crocodile Basic pourrait devenir "GOTO _LABEL_10" en FreeBASIC
"GOSUB 20" en Crocodile Basic pourrait devenir "CALL _SP_20" en FreeBASIC
Le tout est de trouver des noms suffisamment biscornus pour qu'ils n'interfèrent pas avec les variables de l'utilisateur.
| |
|
| |
Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: Naissance de Crocodile Basic Sam 27 Avr 2019 - 12:08 | |
| Bonjour à tous !
La renaissance d'un ancien système suscite une grande curiosité de la part de tous, jeunes et moins jeunes. C'est une idée très sympa. Je vois les jeunes qui m'entourent aimer découvrir ce monde d'antan, jusqu'à installer divers émulateurs pour pouvoir jouer avec des anciens jeux aux graphismes rudimentaires.
Donc je pense que refaire un basic genre CPC-6128 est une excellente idée.
Le vintage à le vent en poupe !
Bravo et bonne continuation à tous ! | |
|
| |
jean_debord
Nombre de messages : 1266 Age : 70 Localisation : Limoges Date d'inscription : 21/09/2008
| Sujet: Re: Naissance de Crocodile Basic Lun 29 Avr 2019 - 9:22 | |
| Merci Marc pour tes encouragements J'ai fait un début de compilateur (en fait une extension de FBPano) mais il est encore trop rudimentaire pour être montré. Les mots-clés suivants du BASIC Amstrad sont reconnus (avec quelques petites modifications signalées en note) : - Code:
-
dim erase data read restore and not or xor int fix round cint creal mod min max (1) abs sgn sqr exp log log10 cos sin tan atn pi rnd randomize instr len val asc chr$ left$ mid$ right$ space$ string$ lower$ upper$ str$ bin$ hex$ (2) input cls locate print spc tab using if then else for to next step while wend time (3) end sleep (4)
(1) Ces fonctions n'acceptent que 2 arguments, alors qu'elles en acceptent plusieurs dans le BASIC Amstrad
(2) Le signe $ peut être omis pour ces fonctions
(3) Résultat en secondes (avec des décimales), contre 300ième de seconde dans le BASIC Amstrad
(4) Fonction de FreeBASIC servant à interrompre le programme
Il n'y a pas de GOTO/GOSUB, ni de fichiers, graphismes ou sons ! L'ajout de toutes ces options n'est pas évident et demande réflexion. Les caractères graphiques par exemple : la police Amstrad précédemment conseillée n'en contient pas. J'ai trouvé sur le site http://pelulamu.net/unscii/ une police de caractères qui contient des caractères graphiques mais ils ne recoupent pas totalement ceux de l'Amstrad et puis c'est une police Unicode donc les codes sont différents. | |
|
| |
jean_debord
Nombre de messages : 1266 Age : 70 Localisation : Limoges Date d'inscription : 21/09/2008
| Sujet: Re: Naissance de Crocodile Basic Mar 30 Avr 2019 - 10:54 | |
| Voici l'aspect de l'éditeur prévu pour le futur compilateur de Crocodile Basic (c'est un dérivé de l'éditeur FBPano) : Ce compilateur sera fourni sous la forme d'une extension de FBPano, ce dernier devant être installé auparavant. | |
|
| |
Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Naissance de Crocodile Basic Mar 30 Avr 2019 - 11:51 | |
| Bravo Jean ! Ce sera bien mieux qu'un émulateur. Je ferais des tests dès qu'une version exploitable sera en place. J'ajoute que c'est une très bonne idée de prendre les exemples du manuel du CPC618 et d'en donner le numéro de page. A+ | |
|
| |
Froggy One
Nombre de messages : 598 Date d'inscription : 06/01/2012
| Sujet: Re Mer 1 Mai 2019 - 12:10 | |
| C'est génial ! youpi ! et voilà. | |
|
| |
jean_debord
Nombre de messages : 1266 Age : 70 Localisation : Limoges Date d'inscription : 21/09/2008
| Sujet: Re: Naissance de Crocodile Basic Sam 4 Mai 2019 - 10:47 | |
| Une première version 0.1 est disponible. Cette version est soumise aux limitations décrites dans mon message du 29 avril. Pour tester cette version : 1) Si ce n'est déjà fait : installer FBPano (Sur mon WebDav, dossier FBPano : setup_037.exe) 2) Sur mon WebDav, dossier FBCroco : prendre l'installateur setup_01.exe 3) Lancer cet installateur ; choisir comme dossier d'installation celui de FBPano (par défaut C:\FBPano) 4) Lancer FBCroco, soit en fin d'installation, soit par le raccourci créé sur le bureau. 5) Le logiciel ouvre 2 fenêtres : celle de l'éditeur et une fenêtre de commande Windows ; ces 2 fenêtres se recouvrant partiellement, il est conseillé de les placer côte à côte : 6) Dans l'éditeur : taper Ctrl-M pour avoir la liste des exemples : 7) Cliquer sur un exemple : le code apparaît dans l'éditeur 8 ) Taper F9 pour lancer la compilation et l'exécution du programme : le résultat apparaît dans la fenêtre de commande 9) Dans l'éditeur, taper F1 pour avoir des précisions supplémentaires | |
|
| |
Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Naissance de Crocodile Basic Sam 4 Mai 2019 - 13:03 | |
| Bonjour à tous, J'ai téléchargé, ça marche. J'ai testé tous les exemples: ça rappelle des souvenirs.... Par contre, il manquerait bien le fichier d'aide "croco...", la touche F1 envoie un message d'erreur. J'ai hâte de voir la suite. A+ | |
|
| |
Froggy One
Nombre de messages : 598 Date d'inscription : 06/01/2012
| Sujet: Re Sam 4 Mai 2019 - 18:58 | |
| Moi aussi j'ai testé et je suis !!! bravo, merci et bon courage ! | |
|
| |
papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Naissance de Crocodile Basic Dim 5 Mai 2019 - 1:57 | |
| | |
|
| |
jean_debord
Nombre de messages : 1266 Age : 70 Localisation : Limoges Date d'inscription : 21/09/2008
| Sujet: Re: Naissance de Crocodile Basic Lun 6 Mai 2019 - 10:23 | |
| Merci pour vos tests et vos encouragements Le bug avec la touche F1 sera corrigé dans la prochaine version. En attendant, vous pouvez consulter directement le fichier d'aide : start_fbcroco.htm qui se trouve dans le sous-répertoire fbcroco (par défaut C:\FBPano\fbcroco) | |
|
| |
Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Naissance de Crocodile Basic Lun 6 Mai 2019 - 17:42 | |
| salut a tous ! Elle est bien cette idée de ressuscité le basic Amstrad ! Mais là, je ne reconnais pas l’écran de sortie, qui serai à mon avis le point de départ crucial pour cette expérience. A moins que cela ne soit prévu pour la suite. Donc wait and see... | |
|
| |
jean_debord
Nombre de messages : 1266 Age : 70 Localisation : Limoges Date d'inscription : 21/09/2008
| Sujet: Re: Naissance de Crocodile Basic Mar 7 Mai 2019 - 9:41 | |
| L'écran de l'Amstrad est un écran graphique. C'est beaucoup plus difficile à programmer ! La première étape consiste à créer les caractères sous forme de sprites. En effet on doit pouvoir les modifier avec l'instruction SYMBOL. Chaque caractère est défini par 8x8 petits carrés dont on pourra faire varier la taille. Voici un exemple avec des carrés de 3x3 pixels : Je n'ai pas encore créé tous les caractères ! Ensuite il faudra créer une instruction PRINT appropriée, gérer les modes graphiques (MODE), les fenêtres (WINDOW) etc. Tout cela prendra du temps et nécessitera qu'on se mette d'accord sur les choix qui devront être faits. | |
|
| |
Froggy One
Nombre de messages : 598 Date d'inscription : 06/01/2012
| Sujet: Re Mer 8 Mai 2019 - 9:23 | |
| Deux mots : courage, et respect ! comme dirait Mindstorm, may the Force be with you... ah ! les WINDOW#9... | |
|
| |
Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Naissance de Crocodile Basic Mer 8 Mai 2019 - 10:24 | |
| Merci pour cette précision jean_debord ! En tous cas je serai attentif et très intéressé par ton projet. Je te souhaite bon courage et j'attends la suite avec impatience... | |
|
| |
jean_debord
Nombre de messages : 1266 Age : 70 Localisation : Limoges Date d'inscription : 21/09/2008
| Sujet: Re: Naissance de Crocodile Basic Jeu 9 Mai 2019 - 9:06 | |
| Merci encore pour vos encouragements Si j'ai bien compris la documentation, il y a 3 modes graphiques : 0, 1 et 2. Les 3 modes ont la même résolution (640 x 400 pixels) et peuvent afficher 25 lignes comptant respectivement 20, 40 ou 80 caractères. Comme la largeur totale de l'écran est constante, la taille des caractères doit s'adapter : 32x16 en mode 0, 16x16 en mode 1 et 8x16 en mode 2. Les images suivantes montrent les 3 possibilités (j'ai volontairement agrandi l'espace entre les lignes). Mode 0 : Mode 1 : Mode 2 : Les caractères sont des sprites constitués d'une matrice de 8x8 éléments, la taille de chaque élément étant de 4x2 pour le mode 0, 2x2 pour le mode 1 et 1x2 pour le mode 2. Je mettrai sans doute des paramètres optionnels dans l'instruction MODE pour pouvoir agrandir la taille de l'écran et celle des caractères. | |
|
| |
Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: Naissance de Crocodile Basic Jeu 9 Mai 2019 - 10:12 | |
| Bonjour à tous ! Merci Jean ! La progression est rapide Quant aux modes graphiques 0,1 et 2, c'est tout à fait ça. J'ai remarqué 3 petites anomalies de conception sur trois caractères : - le 41 (&H29) : il manque 2 blocs pour finir la parenthèse fermante. - le 177 (&HB1) : 2 blocs en trop, en bas à gauche. - le 186 (&HBA) : le centre du caractère est erroné. La documentation comporte une erreur au niveau du caractère 122 (&H7A), la lettre z minuscule est dessinée une ligne trop haute, mais je vois que tu l'as déjà rectifiée lors de sa conception. Encore bravo et bonne continuation !
Dernière édition par Marc le Ven 10 Mai 2019 - 12: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 10 Mai 2019 - 10:15 | |
| Merci Marc pour ta vigilance... et pour ton oeil d'aigle Voici les caractères corrigés (et agrandis) : | |
|
| |
jean_debord
Nombre de messages : 1266 Age : 70 Localisation : Limoges Date d'inscription : 21/09/2008
| Sujet: Re: Naissance de Crocodile Basic Sam 11 Mai 2019 - 9:07 | |
| J'ai apporté quelques compléments à l'instruction MODE : 1) Ajout d'un paramètre optionnel : le titre de la fenêtre MODE 1, "Graphique en mode 1" Si le paramètre est omis la fenêtre n'aura pas de titre. 2) Ajout d'un mode personnalisé : le mode 3 (ou supérieur) qui permet de choisir la taille de l'écran et des caractères : MODE 3, Titre, w, h, w1, h1 avec : (w, h) = largeur et hauteur de la fenêtre en pixels (w1, h1) = largeur et hauteur d'un élément de caractère en pixels (chaque caractère est constitué de 8x8 éléments) Exemple : MODE 3, "Mode personnalisé", 850, 100, 4, 10 Ces paramètres sont optionnels, leurs valeurs par défaut étant celles du mode 1 (soit 640, 400, 2, 2) | |
|
| |
Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Naissance de Crocodile Basic Sam 11 Mai 2019 - 12:11 | |
| Merci Jean, C'est un BASIC AMSTRAD super amélioré que tu nous concocte... , super A+ | |
|
| |
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) | |
|
| |
Contenu sponsorisé
| Sujet: Re: Naissance de Crocodile Basic | |
| |
|
| |
| Naissance de Crocodile Basic | |
|