Interpréteur Lisp pour VG5000

Cette catégorie traite de développements récents pour nos vieilles machines, applications, jeux ou démos... Amis programmeurs, c'est ici que vous pourrez enfin devenir célèbres!

Modérateurs : Papy.G, fneck, Carl

Répondre
joaopa
Messages : 512
Inscription : 14 sept. 2013 12:17

Interpréteur Lisp pour VG5000

Message par joaopa »

Bonjour,

[EDIT: Liens pour l'interpréteur ]
WAV
https://docs.google.com/uc?export=downl ... vvF-dDDEk7
K7
https://docs.google.com/uc?export=downl ... wUwsj1T1Rq
Chargeur.z80
https://docs.google.com/uc?export=downl ... lJHVWRXdHc
8KLISP.z80
https://docs.google.com/uc?export=downl ... b2Tlx-jLs0

voici un premier essai d'interpréteur Lisp pour VG5000. C'est une conversion de 8KLISP d'Alexander Burger qui tourne sous CP/M.
Comme le VG5000 ne possède pas (encore ??) de lecteur de disquettes, les routines fichiers utilisent le lecteur de cassettes. Sur DCVG5K, elles fonctionnent parfaitement. N'ayant pas mon VG5000 sous la main, quelqu'un peut-il les essayer sur une vraie machine.
Voici la démarche à suivre:
charger le wav 8KLISP (soit avec un lecteur MP3, soit transférer le fichier wav sur une vraie cassette pour utiliser le magnétophone).
Ensuite retirer la cassette 8KLISP pour mettre celle contenant le fichier essai.
Taper la première commande: (in essai)
Relancer le magnétophone.
Si tout se passe bien les lignes
->(essai)
-> carre
-> cube
devraient s'afficher.
Puis taper toutes les autres instructions de la capture d'écran. Si vous obtenez les mêmes résultats que la capture d'écran, c'est génial (sinon c'est la grosse mer...de pour lire un fichier avec cet interpréteur)

Si tout se passe comme prévu, il ne me restera plus qu'à gérer l'impression sur imprimante, ajouter un écran d'accueil, nettoyer le fichier source et le VG5000 possédera un nouveau logiciel qui le fera entrer dans la cours des grands :mrgreen:

Merci d'avance
Image
Pièces jointes
8klisp.zip
(155.58 Kio) Téléchargé 37 fois
Dernière modification par joaopa le 07 janv. 2023 02:58, modifié 4 fois.
Markerror
Messages : 2121
Inscription : 31 oct. 2011 19:21
Localisation : Orléans
Contact :

Re: Interpréteur Lisp pour VG5000

Message par Markerror »

Bonsoir,

Je viens de faire le test avec la première machine qui m'est tombée sous la main, un Philips Basic 1.0 avec extension 5216.
Le chargement de l'interpréteur ne pose pas de problème.
Par contre, après avoir tape la commande (in essai), ça charge mais se termine avec un message :

de unbound error

Lors de mon premier essai, j'avais fait une faute de frappe et avait étrangement eu le même résultat...
joaopa
Messages : 512
Inscription : 14 sept. 2013 12:17

Re: Interpréteur Lisp pour VG5000

Message par joaopa »

C'est ce que je craignais. En fait, le programme interprète à la volée le caractère envoyé par le magnétophone. Mais la routine d'interprétation est trop longue par rapport à la vitesse du magnétophone. Autrement dit, certains octets ne sont pas envoyés au programme.

Ce qui m'étonne c'est qu'avec dcvg5k, ca fonctionne alors que je pensais que la vitesse d 'envoi des octets était plus rapide qu'avec la vraie machine.

Il faut que je trouve une solution à ce problème.
Daniel
Messages : 17316
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: Interpréteur Lisp pour VG5000

Message par Daniel »

Dans dcvg5k les octets sont lus "à la demande". En l'absence d'ordre de lecture aucun octet est envoyé. La vitesse de lecture est donc imposée par le programme. Elle peut être extrêmement lente ou extrêmement rapide, les octets ne sont jamais perdus.

Avec le vrai magnétophone, au contraire, la bande ne s'arrête pas et les octets sont toujours envoyés à la même cadence. Si le programme n'est pas assez rapide pour les lire, ils sont perdus.
Daniel
L'obstacle augmente mon ardeur.
Markerror
Messages : 2121
Inscription : 31 oct. 2011 19:21
Localisation : Orléans
Contact :

Re: Interpréteur Lisp pour VG5000

Message par Markerror »

Pensées du matin :-).

Même si ça limiterait de fait la mémoire utilisable pour les datas de l'interpréteur, tu ne pourrais pas tout "bêtement" charger d'abord en mémoire tes datas et les analyser ensuite ? Ou faire un chargement par bloc et stocker ça dans le buffer vidéo temporairement ? (ok, là, c'est un peu violent comme technique, je vais déposer un brevet dessus :-) ).
Avatar de l’utilisateur
Papy.G
Modérateur
Messages : 3047
Inscription : 10 juin 2014 13:40
Localisation : Haute-Garonne/Gers

Re: Interpréteur Lisp pour VG5000

Message par Papy.G »

Que fait cet interpréteur de si compliqué au chargement des fichiers? Il compile à la volée? :shock:

Est-ce possible de charger avec une routine rom, ou semblable assez rapide, et une fois le chargement fichier fini, libérer la place prise au fur et à mesure, en tamponnant vers la mémoire du VDP, ce sera lent, mais ça permet d'utiliser un max de mémoire. :?

C'est intéressant le LISP, c'est un langage, auto-constructible? (comme le Forth, par exemple) 8)

Il serait intéressant, avec tous ces développements récents, d'avoir enfin accès à des supports de masse sur VG5000, genre un CH370 en cartouche, ou un lecteur de SD sur port série. :mrgreen:
Soyez exigeants, ne vous contentez pas de ce que l'on vous vend.
Demandez-en plus, ou faites-le vous-même.
joaopa
Messages : 512
Inscription : 14 sept. 2013 12:17

Re: Interpréteur Lisp pour VG5000

Message par joaopa »

@Daniel Merci pour l'explication.

@Markerror. Je pense que c'est la seule solution viable. Je chargerai les données dans le heap. Je ne veux pas utiliser le buffer video. J'y ai mis une partie du programme pour gagner les 2000 octets et avoir plus de 6000 octets utilisables (4000 :( sinon)

@Papyg; Utiliser l'EF9345 comme réserve de mémoire est une bonne idée pour le VG5000 de base. Mais c'est perdre les capacités supplémentaires si on a un VG5000 avec extension 16k ou 32k.
Pour l'interpréteur, il a été écrit pour CP/M, donc présence cd lecteur de disquettes. Il lit 128 octets de la disquettes, les met dans un buffer les interprète puis lit 128 autres octets etc etc.
Comme expliqué par Daniel, ce n'est pas possible avec un magnétophone.
joaopa
Messages : 512
Inscription : 14 sept. 2013 12:17

Re: Interpréteur Lisp pour VG5000

Message par joaopa »

Bonjour,
voici la version finale (il y aura des corrections si on trouve des bugs :wink: ) de 8KLISP.
Les fichiers sont à télécharger dans le premier message.

Comme déjà dit c'est une version adapté de 8KLISP d'Alexander Burger pour CP/M. Les enregistrements se font ici sur cassettes.
Comme tout interpréteur, on peut enregistrer tout l'environnement de travail (fonction save). Mais j'ai gardé une facilité de cet interpréteur. Sur CP/M, on peut charger des fichiers texte, obtenus par exemple en utilisant l'éditeur de texte ED de CP/M. Sur VG5000, on peut charger des fichiers textes rédigés avec l'utilitaire FICHIER.

J'ai retiré toutes les fonctions relatives à la gestion des fichiers sur disquettes (era, rename..) qui n'ont pas de raison d'être avec un magnétophone. Mais j'ai rajouté les fonctions IF et WHEN à 8KLisp qui est vraiment utile. Buger l'avait prévue mais ne l'a pas mise pour rester sous la barre des 8K.



Image
Image
Dernière modification par joaopa le 17 juin 2021 08:04, modifié 2 fois.
joaopa
Messages : 512
Inscription : 14 sept. 2013 12:17

Re: Interpréteur Lisp pour VG5000

Message par joaopa »

Correction d'un petit bug (pas trouvé par moi...). Les fichiers sont à télécharger dans le premier message.
__sam__
Messages : 7923
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: Interpréteur Lisp pour VG5000

Message par __sam__ »

Tiens je ne vois pas les images.
Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
Avatar de l’utilisateur
hlide
Messages : 3469
Inscription : 29 nov. 2017 10:23

Re: Interpréteur Lisp pour VG5000

Message par hlide »

Reste à adapter la lecture/écriture de fichiers avec VY-5040 :D. Là ça devrait mieux marcher qu'avec la magnéto.
Avatar de l’utilisateur
rendomizer
Messages : 413
Inscription : 17 juin 2016 21:00
Contact :

Re: Interpréteur Lisp pour VG5000

Message par rendomizer »

Ou est le fichier (in essai ) ???
Je ne suis qu'un utilisateur pas un pro
joaopa
Messages : 512
Inscription : 14 sept. 2013 12:17

Re: Interpréteur Lisp pour VG5000

Message par joaopa »

Mes meilleurs vouex à tous pour cette nouvelle année.


>Ou est le fichier (in essai ) ???

Dans la pièce jointe 8KLisp.zip

On m'a rapporté un bug dans la fonction COND. Bug fixé. La nouvelle version est téléchargeable dans le premier message.


@Markerror > Peux-tu mettre à jour le site VG5000Bazar avec ce nouveau fichier?
Merci d'avance
Markerror
Messages : 2121
Inscription : 31 oct. 2011 19:21
Localisation : Orléans
Contact :

Re: Interpréteur Lisp pour VG5000

Message par Markerror »

Bonjour Joaopa,

Bonne année !

Ca fait plaisir de voir que tu n'as pas définitivement laissé tomber le VG 5000 :-).

J'ai mis à jour l'archive sur le site, après avoir fait une petite modification. Dans le fichier readme, la correction que tu as apportée était datée de 2016. Au début, j'ai cru que je n'avais pas le bon zip. Du coup, sur vg5000 bazar, j'ai mis une belle date au 06/01/2023 dans le texte.
Dernière modification par Markerror le 08 janv. 2023 17:48, modifié 1 fois.
Avatar de l’utilisateur
Carl
Modérateur
Messages : 13253
Inscription : 08 avr. 2007 13:21
Localisation : http://www.doledujura.fr
Contact :

Re: Interpréteur Lisp pour VG5000

Message par Carl »

Bonjour Joaopa,
Merci pour cette correction...
As tu eu le temps de regarder les nouveautés dans le monde du VG5000 tant au niveau matériel que logiciel...
Carl
Répondre