[VG5000] Utilitaire PC pour créer des cassettes
Modérateurs : Papy.G, fneck, Carl
[VG5000] Utilitaire PC pour créer des cassettes
Bonjour,
ayant découvert DCVG5K il y a quelques temps, je suis retombé en enfance, et je me suis remis à étudier cette machine. Merci Daniel !
En passant, j'ai créé un petit outil (linux) qui permet de convertir un fichier binaire (assembleur ou C) en un fichier k7 chargeable via CLOAD: https://github.com/ovalenti/mkk7
Il y a un petit exemple de "hello world" qui utilise SDCC (http://sdcc.sourceforge.net/).
Bien cordialement,
Olivier
ayant découvert DCVG5K il y a quelques temps, je suis retombé en enfance, et je me suis remis à étudier cette machine. Merci Daniel !
En passant, j'ai créé un petit outil (linux) qui permet de convertir un fichier binaire (assembleur ou C) en un fichier k7 chargeable via CLOAD: https://github.com/ovalenti/mkk7
Il y a un petit exemple de "hello world" qui utilise SDCC (http://sdcc.sourceforge.net/).
Bien cordialement,
Olivier
Re: [VG5000] Utilitaire PC pour créer des cassettes
Bonjour,
Ca fait toujours plaisir de voir des anciens utilisateurs se remettre à faire vivre la machine .
Ce petit outil est intéressant. Ce serait pas mal d'avoir la même chose mais pour un fichier Basic car pour de longs listings, utiliser la fonction de lecture de DcVG5k est un peu fastidieux (ça laisse le temps de se faire un petit café ).
Ca fait toujours plaisir de voir des anciens utilisateurs se remettre à faire vivre la machine .
Ce petit outil est intéressant. Ce serait pas mal d'avoir la même chose mais pour un fichier Basic car pour de longs listings, utiliser la fonction de lecture de DcVG5k est un peu fastidieux (ça laisse le temps de se faire un petit café ).
- Mokona
- Messages : 1041
- Inscription : 17 déc. 2016 22:01
- Localisation : Nord Est des Yvelines
- Contact :
Re: [VG5000] Utilitaire PC pour créer des cassettes
Cool l'utilitaire, j'irai voir ça de plus près.
Pour la transformation en BASIC directement, si ça peut aider pour base, j'avais fait un k7 -> txt avec décodage de BASIC. C'est ici.
Pour la transformation en BASIC directement, si ça peut aider pour base, j'avais fait un k7 -> txt avec décodage de BASIC. C'est ici.
Re: [VG5000] Utilitaire PC pour créer des cassettes
C'est faisable, en particulier grâce au code de Mokona qui fait exactement l'opération inverse. Cependant, ça nécessite un parser lexical et une petite phase de syntaxe. Si je ne m'abuse, c'est essentiellement faire la correspondance entre les verbes BASIC et leur octet correspondant (table des pointeurs dans la ROM à 0x2000 avec l'index divisé par deux pour le code de l'instruction).
Il faut détecter les erreurs de syntaxe avant de faire la K7.
Re: [VG5000] Utilitaire PC pour créer des cassettes
Ah effectivement, il y a cette problématique qui complexifie pas mal la chose. Ca serait pourtant pratique .
- Mokona
- Messages : 1041
- Inscription : 17 déc. 2016 22:01
- Localisation : Nord Est des Yvelines
- Contact :
Re: [VG5000] Utilitaire PC pour créer des cassettes
Le BASIC Microsoft ne va pas si loin dans l'encodage, en tout cas dans sa version VG5000 (mais probablement dans les autres de la même époque, pareil).
Dès qu'il y un une suite de caractères qui est dans sa liste (à l'exclusion de ce qui est dans une chaîne de caractères entre guillemets), il l'encode par son token. La liste est en en $209e.
Ainsi, si on tape :
On aura en mémoire (hors information de chaînage et de numéro de ligne) :
(c'est-à-dire le token de GOTO suivi de TRUC en quatre octets)
puis
(le token GOTO suivi du marqueur de codage de numéro de ligne (OE), suivi du codage en entier 16 bits de la ligne... ce codage est une particularité que je n'ai pas retrouvé sur tous les BASIC Microsoft, mais qui existe en tout cas sur le VG5000 pour les instructions GOTO et GOSUB).
Le "tokeniser" ne fait pas de vérification de syntaxe. Il encode très bêtement. Il ne fait même pas de vérification de contexte. Si on tape 30 ABSENT, en mémoire, on a : C5 4E 54, soit le token de ABS() suivi de ENT. Bien entendu, une fois que l'interpréteur est lancé, tout ça se passe très mal Car lui, vérifie.
Et effectivement, les tokens sont des index dans la table qui se trouve en $2000 (seuls le 7 bits faibles comptent)
Dès qu'il y un une suite de caractères qui est dans sa liste (à l'exclusion de ce qui est dans une chaîne de caractères entre guillemets), il l'encode par son token. La liste est en en $209e.
Ainsi, si on tape :
Code : Tout sélectionner
10 GOTOTRUC
20 GOTO1000
Code : Tout sélectionner
88 54 52 55 43
puis
Code : Tout sélectionner
88 0E E8 03
Le "tokeniser" ne fait pas de vérification de syntaxe. Il encode très bêtement. Il ne fait même pas de vérification de contexte. Si on tape 30 ABSENT, en mémoire, on a : C5 4E 54, soit le token de ABS() suivi de ENT. Bien entendu, une fois que l'interpréteur est lancé, tout ça se passe très mal Car lui, vérifie.
Et effectivement, les tokens sont des index dans la table qui se trouve en $2000 (seuls le 7 bits faibles comptent)
Re: [VG5000] Utilitaire PC pour créer des cassettes
Du coup, il doit y avoir moyen d'ajouter une option "BASIC input" à mkk7!
Markerror: est-ce que tu pourrais me fournir un exemple de listing, stp?
Autre question: certains préféreraient-ils avoir un utilitaire Windows?
Markerror: est-ce que tu pourrais me fournir un exemple de listing, stp?
Autre question: certains préféreraient-ils avoir un utilitaire Windows?
Re: [VG5000] Utilitaire PC pour créer des cassettes
Bonjour,
Les fichiers texte contenant du Basic VG 5000, il y en a dans un bon paquet de homebrew sortis sur la machine. On a aussi tapé ou archivé les listings de la majorité des livres édités sur la machine. Après, pour être exhaustif, il faudrait aussi un listing contenant l'intégralité des commandes Basic, y compris celles non utilisées mais connues dans l'interpréteur (Fred72 s'en sert par exemple dans Le manoir du Dr Genius).
Quelques exemples :
http://vg5000bazar.free.fr/zip/games/island_vg5000.zip (un long listing pour une machine 32ko)
http://vg5000bazar.free.fr/zip/games/machaon_vg5000.zip
http://vg5000bazar.free.fr/zip/listings ... hilips.zip
Une interface Windows, pourquoi pas, mais ce n'est pas une fin en soit. Après, avoir le programme compilé quelque part, là, je suis pour Github, c'est bien, mais pour tester un programme rapidement, rien ne vaut un archive avec l'exécutable.
Les fichiers texte contenant du Basic VG 5000, il y en a dans un bon paquet de homebrew sortis sur la machine. On a aussi tapé ou archivé les listings de la majorité des livres édités sur la machine. Après, pour être exhaustif, il faudrait aussi un listing contenant l'intégralité des commandes Basic, y compris celles non utilisées mais connues dans l'interpréteur (Fred72 s'en sert par exemple dans Le manoir du Dr Genius).
Quelques exemples :
http://vg5000bazar.free.fr/zip/games/island_vg5000.zip (un long listing pour une machine 32ko)
http://vg5000bazar.free.fr/zip/games/machaon_vg5000.zip
http://vg5000bazar.free.fr/zip/listings ... hilips.zip
Une interface Windows, pourquoi pas, mais ce n'est pas une fin en soit. Après, avoir le programme compilé quelque part, là, je suis pour Github, c'est bien, mais pour tester un programme rapidement, rien ne vaut un archive avec l'exécutable.
Re: [VG5000] Utilitaire PC pour créer des cassettes
Salut,
Dans ma série des "Tokens"... "ZxToken", "CpcToken", "DragonToken", "Trs80Token", "HectorToken", "OricToken", "Pc1500Token" ou "X07Token"...
Pas de "TO7", ni de "VG5K" ... "...Token".
Pour la simple et bonne raison que la solution "Dc" (DcVg5000 et DcMoto), était rapide, fiable et plus pratique pour le débogage.
Avec une possibilité rapide de sortir un listing ASCII en fichier imprimante.
Ajout de lignes à la volée...
Donc, pas de "VG5KToken" ou "ToToken", même si ces deux projets ont été partiellement créés, ils ne me semblaient ni justifiés, ni pertinents.
Un tel logiciel est justifié si les émulateurs ne prennent pas, ou très mal les caractères Ascii clavier ce qui n'est pas la cas de ces deux émulateurs.
Dans ma série des "Tokens"... "ZxToken", "CpcToken", "DragonToken", "Trs80Token", "HectorToken", "OricToken", "Pc1500Token" ou "X07Token"...
Pas de "TO7", ni de "VG5K" ... "...Token".
Pour la simple et bonne raison que la solution "Dc" (DcVg5000 et DcMoto), était rapide, fiable et plus pratique pour le débogage.
Avec une possibilité rapide de sortir un listing ASCII en fichier imprimante.
Ajout de lignes à la volée...
Donc, pas de "VG5KToken" ou "ToToken", même si ces deux projets ont été partiellement créés, ils ne me semblaient ni justifiés, ni pertinents.
Un tel logiciel est justifié si les émulateurs ne prennent pas, ou très mal les caractères Ascii clavier ce qui n'est pas la cas de ces deux émulateurs.
Dernière modification par Xavier_ le 01 nov. 2021 09:19, modifié 1 fois.
Re: [VG5000] Utilitaire PC pour créer des cassettes
Version du code Windows32: (binaire et sources)
Il faut donc assembler ou posséder un fichier Basic Microsoft compilé pour les exécuter.
Cf le Read.me inclus dans le fichier zippé. (© Olivier V.)
Ce code encapsule un fichier binaire ou texte (brute) dans une structure de fichier K7.Il faut donc assembler ou posséder un fichier Basic Microsoft compilé pour les exécuter.
Cf le Read.me inclus dans le fichier zippé. (© Olivier V.)
Re: [VG5000] Utilitaire PC pour créer des cassettes
Merci pour la version Windows
Je précise juste que cet utilitaire prend du binaire Z80 et sort un fichier K7 qui boot directement quand on charge celle-ci. Je ne sais pas exactement ce que signifie "fichier texte brut" (ça me plairait d'avoir fait qqchose sans m'en rendre compte, mais j'en doute)
Pour la question du chargement rapide d'un listing, avec tous les éléments données ici, j'ai l'impression que la solution K7 n'apporterait pas grand chose.
Y a-t-il une fonctionnalité "avance rapide" dans dcvg5000?
Je précise juste que cet utilitaire prend du binaire Z80 et sort un fichier K7 qui boot directement quand on charge celle-ci. Je ne sais pas exactement ce que signifie "fichier texte brut" (ça me plairait d'avoir fait qqchose sans m'en rendre compte, mais j'en doute)
Pour la question du chargement rapide d'un listing, avec tous les éléments données ici, j'ai l'impression que la solution K7 n'apporterait pas grand chose.
Y a-t-il une fonctionnalité "avance rapide" dans dcvg5000?
Re: [VG5000] Utilitaire PC pour créer des cassettes
Oui : "Avance" dans Outils/Magnétophone.
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
Re: [VG5000] Utilitaire PC pour créer des cassettes
Importer dans DcVg5k un long listing Basic avec la fonction "Simuler le clavier" prend pas mal de temps (quelques minutes pour un gros fichier). Il faut ensuite sauvegarder le fichier.
Un petit outil qui lit un fichier texte et l'encode directement en fichier Basic au format .K7 est pour moi utile, même si jusqu'à maintenant, on a réussi à vivre sans.
Un petit outil qui lit un fichier texte et l'encode directement en fichier Basic au format .K7 est pour moi utile, même si jusqu'à maintenant, on a réussi à vivre sans.
Re: [VG5000] Utilitaire PC pour créer des cassettes
Je n'ai pas accès au code dans l'immédiat, mais je suppose que cette fonction exécute l'émulateur en n'attendant plus là sortie son. Il serait possible (peut-être est-ce déjà le cas) d'entrer dans ce mode lorsqu'on simule l'entrée d'un listing au clavier ?
Re: [VG5000] Utilitaire PC pour créer des cassettes
Avance rapide est la fonction permettant de dérouler rapidement la cassette pour positionner l'index plus loin. Aucun rapport avec la vitesse de simulation du clavier.
La simulation du clavier par un fichier est lente car le système interprète chaque caractère. Il faut un certain nombre de cycles du processeur. On peut aller un peu plus vite en augmentant la fréquence du processeur dans les options, mais le gain de temps n'est pas énorme. La lenteur est due aux traitements effectués par le VG5000. La même fonction sur Thomson va entre 5 et 10 fois plus vite.
Quand j'ai programmé la simulation du clavier, j'ai essayé d'envoyer les données à une fréquence plus élevée, mais il y avait alors des pertes de caractères. Je suis revenu en arrière en prenant une petite marge de sécurité.
La simulation du clavier par un fichier est lente car le système interprète chaque caractère. Il faut un certain nombre de cycles du processeur. On peut aller un peu plus vite en augmentant la fréquence du processeur dans les options, mais le gain de temps n'est pas énorme. La lenteur est due aux traitements effectués par le VG5000. La même fonction sur Thomson va entre 5 et 10 fois plus vite.
Quand j'ai programmé la simulation du clavier, j'ai essayé d'envoyer les données à une fréquence plus élevée, mais il y avait alors des pertes de caractères. Je suis revenu en arrière en prenant une petite marge de sécurité.
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.