Nombre de messages : 2394 Date d'inscription : 28/05/2007
Sujet: Naissance de Crocodile Basic Sam 14 Avr 2018 - 16:06
Il y a quelques jours, Fredisland m'a donné l'idée d'adapter Panoramic pour qu'il ressemble à Locomotive Basic, le Basic des Amstrad des années 80. Le but est d'avoir un Basic compatible sous Windows mais avec les possibilités des PC d'aujourd'hui et qui serait utilisé par les amoureux d'Amstrad qui développent encore aujourd'hui sous ce Basic.
Je me suis documenté sur ce Basic des années 80 et je me suis amusé à sortir une version à peine montrable.
Comme nom, je l'ai appelé Crocodile Basic car le crocodile était la mascotte d'Amstrad.
REM Hello World DIM LIGNE$ LIGNE$=STRING$(13,CHR$(206)) LOCATE 10,10:PRINT LIGNE$ LOCATE 10,11:PRINT CHR$(206)+" "+CHR$(206) LOCATE 10,12:PRINT CHR$(206)+" Bonjour ! "+CHR$(206) LOCATE 10,13:PRINT CHR$(206)+" "+CHR$(206) LOCATE 10,14:PRINT LIGNE$
Code:
REM affiche DIM I FOR I=1 to 10 PRINT "LIGNE "+STR$(I) NEXT I
Code:
DIM N FOR N=32 TO 87:PRINT CHR$(N);:NEXT N:PRINT FOR N=88 TO 143:PRINT CHR$(N);:NEXT N:PRINT FOR N=144 TO 199:PRINT CHR$(N);:NEXT N:PRINT FOR N=200 TO 255:PRINT CHR$(N);:NEXT N:PRINT
Code:
REM danseur DIM I,J FOR I=1 to 40 LOCATE 10,10 PRINT CHR$(248+J):J=J+1:IF J=4 THEN J=0 WAIT 400 NEXT I
Comme vous pouvez le constater, je n'ai pas encore codé les fonctionnalités graphiques ou sonores. J'ai adapté quelques commandes et fonctions existant dans Panoramic, auxquelles j'ai ajouté: PAPER, INK, PEN, LOCATE, FIX, et j'y ai aussi codé la police de caractères de l'Amstrad.
Ce que je présente n'est en fait qu'une étude de faisabilité.
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
Sujet: Re: Naissance de Crocodile Basic Sam 14 Avr 2018 - 17:41
Bonne idée Jack. Ca me rappelle bien des souvenirs...
Par contre la police elle pique bien les yeux. Je me souviens que je programmais dans un mode 80 colonnes beaucoup plus agréable !
Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
Sujet: Re: Naissance de Crocodile Basic Sam 14 Avr 2018 - 18:17
Houla !
Je viens de rajeunir de 33 ans.
Cela peut peut être utile pour ceux qui aurait gardé des codes de l'époque.
A+
Fredisland
Nombre de messages : 261 Date d'inscription : 30/03/2018
Sujet: Re: Naissance de Crocodile Basic Sam 14 Avr 2018 - 20:53
Jack a écrit:
Il y a quelques jours, Fredisland m'a donné l'idée d'adapter Panoramic pour qu'il ressemble à Locomotive Basic, le Basic des Amstrad des années 80.
Ah, trop cool !
Je suis en train de coder l'éditeur pour ce que tu as appelé CROCODILE BASIC. Il est en pur PANORAMIC, sans DLL aucune, et je n'en suis qu'au début. Il est mono-fichier pour reprendre les codes de de l'époque, sera visuel, facile à prendre en main, sera fun à utiliser, mais l'essentiel sera sous le moteur. Qui plus est, les paramètres seront sauvegardés automatiquement (pour l'instant, seul le dernier fichier, les dimensions et positions de la fenêtre sont sauvegardés, pour reprendre immédiatement la session).
Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
Sujet: Re: Naissance de Crocodile Basic Sam 14 Avr 2018 - 21:08
L'aspect de ton éditeur est très sympa !
Vivement les premiers tests !
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 Sam 14 Avr 2018 - 21:12
Bon, je me vois revenir aux années 1980, quand j’étais animateur du club « Jeunes et Sciences » section informatique avec 8 micros (4 CPC 64 et 4 CPC 128) pour 16 étudiant(e)s.
@Fred Tous mes encouragements pour toi pour continuer cette lourde tâche que tu es en train de réaliser. Suggestion : tu veux bien mettre l’image entre les balises SPOILER car cette image est trop large pour le Forum et ça nuit à la bonne navigation ?
Bonne continuation !
Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
Sujet: Re: Naissance de Crocodile Basic Sam 14 Avr 2018 - 21:15
C'est sure qu'avec un éditeur, ça va être sympa. Mais où trouver des listings au format .txt ou .bas ???
A+
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 15 Avr 2018 - 1:19
En attendant, tu peux visionner ceci
Francis-mr
Nombre de messages : 186 Date d'inscription : 26/11/2012
Sujet: Re: Naissance de Crocodile Basic Dim 15 Avr 2018 - 9:29
Que de souvenirs tu fais resurgir Papydall ! Le premier ordinateur que j’ai acheté pour faire découvrir l’informatique à mes enfants, avec ce jeu sur disquette.
Fredisland
Nombre de messages : 261 Date d'inscription : 30/03/2018
Sujet: Re: Naissance de Crocodile Basic Dim 15 Avr 2018 - 9:45
Francis-mr a écrit:
Que de souvenirs tu fais resurgir Papydall ! Le premier ordinateur que j’ai acheté pour faire découvrir l’informatique à mes enfants, avec ce jeu sur disquette.
Sur Facebook la communauté des utilisateur de l'AMSTRAD CPC est très nombreuse est se répartit sur plusieurs groupes. Les sites consacrés au CPC sont encore plus nombreux, et la machine est l'objet de spéculations féroces.
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 15 Avr 2018 - 17:34
Qui se rappelle du jeu Lagaf : Les aventures de Moktar ? Les jeunes peut-être non ; les mois jeunes peut-être oui !
Pour les nostalgiques (et les autres), voici ce que je vous propose :
Code:
rem ============================================================================ rem Lagaf : Les aventures de Moktar rem ============================================================================ label Choix dim url$, WB%, res%, i ' full_space 0 width 0,800 : height 0,700 dll_on "kgf" : ' <---------------------------------- Adapter le chemin !!!
button 1 : top 1, height_client(0)-40 : left 1,10 : font_bold 1 font_name 1,"tahoma" : caption 1,"Etapes :" for i = 2 to 16 button i : top i, height_client(0)-40 : left i,50+30*i : font_bold i width i,20 : font_name i,"tahoma" : caption i,"&" + str$(i-1) on_click i,Choix next i button 20 : top 20,height_client(0)-40 : left 20,left(16) + 50 : font_bold 20 font_name 20,"arrial" : caption 20,"&Quitter" : on_click 20,choix
alpha 30 : top 30,10 : left 30,200 : font_bold 30 : font_name 30,"comic sans ms" font_color 30,100,50,20 : font_size 30,24 : caption 30, "Les aventures de Moktar"
end rem ============================================================================ Choix:
select number_click - 1
case 01 : url$ = "https://www.youtube.com/watch?v=BOUblYodKA0" case 02 : url$ = "https://www.youtube.com/watch?v=JKagcCV6A3c" case 03 : url$ = "https://www.youtube.com/watch?v=e7H67cSEEeI" case 04 : url$ = "https://www.youtube.com/watch?v=IQRVE3t-vW8" case 05 : url$ = "https://www.youtube.com/watch?v=rNJlvGjG9Ho" case 06 : url$ = "https://www.youtube.com/watch?v=N_ITbu08FUU" case 07 : url$ = "https://www.youtube.com/watch?v=bMJ5Gl1ruuw" case 08 : url$ = "https://www.youtube.com/watch?v=vwUtwjUfFHo" case 09 : url$ = "https://www.youtube.com/watch?v=Vr0V8yAC7SI" case 10 : url$ = "https://www.youtube.com/watch?v=kqHDvh0y7BY" case 11 : url$ = "https://www.youtube.com/watch?v=nJL2V10aLAk" case 12 : url$ = "https://www.youtube.com/watch?v=DDm_iYSdP1c" case 13 : url$ = "https://www.youtube.com/watch?v=wtLxXfhOplQ" case 14 : url$ = "https://www.youtube.com/watch?v=lg4mJSd-Sjs" case 15 : url$ = "https://www.youtube.com/watch?v=ioj-fYytxhU" case 19 : terminate end_select res% = dll_call2("WB_Url",WB%,adr(url$)) return rem ============================================================================
jjn4
Nombre de messages : 2747 Date d'inscription : 13/09/2009
Sujet: +++ Dim 15 Avr 2018 - 17:57
En effet, ça rappelle bien des vieux souvenirs ! Ca peut être intéressant...
jean_debord
Nombre de messages : 1266 Age : 70 Localisation : Limoges Date d'inscription : 21/09/2008
Sujet: Re: Naissance de Crocodile Basic Mar 23 Avr 2019 - 9:25
J'ai essayé de retrouver ce programme mais le lien ne fonctionne plus.
Je me demandais si, dans le cadre de l'évolution de FBPano, il ne serait pas possible de créer un "compilateur" de Crocodile BASIC (En fait un traducteur de Crocodile Basic en FreeBasic)
La police de caractères risque de créer des difficultés avec les caractères semi-graphiques.
Je vais devoir me redocumenter sur ce BASIC. J'ai eu un Amstrad 6128 dans les années 80 mais j'ai tout oublié.
EDIT : J'ai retrouvé le programme sur le WebDav de papydall (merci !)
Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
Sujet: Re: Naissance de Crocodile Basic Mar 23 Avr 2019 - 11:18
Nombre de messages : 2394 Date d'inscription : 28/05/2007
Sujet: Re: Naissance de Crocodile Basic Jeu 25 Avr 2019 - 7:04
Sortir ce Basic m'avait amusé il y a un an. J'avais un peu continué à le développer, mais je n'ai pas diffusé les versions suivantes pour la même raison que pour beaucoup de choses dont j'ai suspendu le développement: le peu d'intérêt des forumeurs. Je pensais il y a un an que Fredisland allait l'utiliser et soit développer des choses,, soit proposer de nouvelles fonctionnalités mais celui-ci a disparu du forum. Il était pourtant très actif sur le forum et intervenait plusieurs fois par jour.
Je pensais même qu'en cas de succès, je développerai d'autres Basics pour d'autres machines disparues: Apple II, TRS 80, Oric, ZX81, etc. Ce système a, à mon sens, plus d'avantages qu'un émulateur. Un émulateur est limité par la vitesse, par la capacité mémoire et par les instructions basic de la machine, car il est sensé reproduire fidèlement la machine qu'il émule, alors que mon système de recréation d'un langage pour machines disparues permet: - d'avoir une vitesse d'exécution sans commune mesure avec la machine d'origine, - de se passer de la limitation de mémoire, - de faire évoluer le langage à la demande des utilisateurs en créant de nouvelles commandes/fonctions pour cette machine.
Encore faut-il qu'il y ait des personnes intéressées...
Nombre de messages : 1266 Age : 70 Localisation : Limoges Date d'inscription : 21/09/2008
Sujet: Re: Naissance de Crocodile Basic Jeu 25 Avr 2019 - 9:24
Je suis entièrement d'accord avec les arguments de Jack !
Personnellement je suis intéressé par la "compilation" de ces différents langages. C'est un très bon test pour le traducteur que j'essaie de mettre au point.
En effet il ne s'agit que de manipuler du texte. Donc si on peut traduire FBPano on doit pouvoir traduire d'autres langages (en tenant compte des spécificités de chacun, qui peuvent nécessiter la mise au point de procédures spécifiques).
J'ai 2 questions sur "Crocodile Basic" :
1) Quelle police de caractères faut-il utiliser pour avoir les caractères graphiques ?
2) Il semble que dans "Crocodile Basic" la déclaration des variables simples par DIM soit obligatoire, alors qu'elle ne l'est pas dans le Basic Amstrad. Faut-il garder cette obligation ?
Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
Sujet: Re: Naissance de Crocodile Basic Jeu 25 Avr 2019 - 11:47
Bonjour à tous,
Bien que peu dans un esprit de programmeur actuellement, ce sujet m'intéresse.
Je comprends les arguments de Jack, qui a bien du travail, de ne pas perdre son temps pour 1 ou 2 utilisateurs potentiels. Par contre si Jean Debord se sent la force de nous faire un compilateur pour le langage Basic Amstrad, je m'en servirai certainement. Je ne connais pas les contraintes et les difficultés, mais je pense qu'il faudrait s'approcher au plus prêt du BASIC AMSDOS tel qu'il est décrit dans le manuel du CPC6128.
A+
jean_debord
Nombre de messages : 1266 Age : 70 Localisation : Limoges Date d'inscription : 21/09/2008
Sujet: Re: Naissance de Crocodile Basic Ven 26 Avr 2019 - 9:07
Oui il faut s'approcher autant que possible du Basic Amstrad mais aussi respecter la syntaxe du Crocodile Basic pour que le compilateur et l'interpréteur puissent utiliser les mêmes sources.
Dans le cas du Crocodile Basic, j'ai aussi noté que :
1) Les numéros de ligne ne sont pas acceptés
2) La boucle WHILE/WEND ne semble pas fonctionner
3) Le symbole d'exponentiation (flèche vers le haut) entraîne une erreur
Exemple de programme qui marche (avec un tableau) :
Code:
dim a$(6), i%
for i% = 1 to 6 a$(i%) = a$(i% - 1) + chr$(i% + 64) print a$(i%) next i%
Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
Sujet: Re: Naissance de Crocodile Basic Ven 26 Avr 2019 - 9:51
Jean a écrit:
Dans le cas du Crocodile Basic, j'ai aussi noté que :
1) Les numéros de ligne ne sont pas acceptés
Hé oui ! donc impossible d'utiliser GOSUB car dans AMSDOS il n'y a pas de label mais que des numéros de ligne. Ex: GOSUB 80
Cela fait bien du travail pour imiter ce langage.
A+
jean_debord
Nombre de messages : 1266 Age : 70 Localisation : Limoges Date d'inscription : 21/09/2008
Sujet: Re: Naissance de Crocodile Basic Ven 26 Avr 2019 - 11:00
Pas de problème pour le compilateur ! Il suffit de remplacer le numéro de ligne par une étiquette :
Code:
gosub L80 .... L80: ... return
Le gosub sera remplacé par un "vrai" sous-programme en freeBASIC.
Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
Sujet: Re: Naissance de Crocodile Basic Ven 26 Avr 2019 - 13:13
Oui, mais du coup il faut déclarer le label et ce label doit commencer par une lettre. De plus ce code provoque un message d'erreur.
Et si on place un END avant L80: l'instruction n'est pas reconnue.
Comme Jack n'a codé que peu de mots-clés AMSDOS dans Crocodile Basic, nos essais sont vains.
Jack a écrit:
Comme vous pouvez le constater, je n'ai pas encore codé les fonctionnalités graphiques ou sonores. J'ai adapté quelques commandes et fonctions existant dans Panoramic, auxquelles j'ai ajouté: PAPER, INK, PEN, LOCATE, FIX, et j'y ai aussi codé la police de caractères de l'Amstrad.
Ce que je présente n'est en fait qu'une étude de faisabilité.
A+
silverman
Nombre de messages : 970 Age : 52 Localisation : Picardie Date d'inscription : 18/03/2015
Sujet: Re: Naissance de Crocodile Basic Ven 26 Avr 2019 - 14:21
@Jean Claude Je pense qu'il manque un "RETURN" à la fin du programme puisque c'est une procédure gosub/return Tu peux placer ta procédure gosub/return au début du programme et passer par dessus avec un goto, ça devrait marcher je pense
Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
Sujet: Re: Naissance de Crocodile Basic Ven 26 Avr 2019 - 16:33
Bonjour Silverman,
Le RETURN est bien en place dans ce code d'essai, sert-toi de ta molette...
Ton astuce, de placer le sous-programme en début de code juste après les déclarations DIM et LABEL et de l’appeler par un GOTO, fonctionne.
A noter que, dans ce code, le RETURN du sous-programme L10 provoque une erreur s'il n'est pas en commentaire, ce qui est contraire au principe d'un sous-programme en basic.