Travailler sur émulateur et dump de la ROM VG5000µ

Précédemment, j'ai commencé à parler d'une chaîne d'assemblage pour développer un programme depuis un ordinateur actuel vers une machine ancienne, le VG5000µ qui est l'ordinateur qui nous suit depuis le début de ces articles.

Un des avantages d'utiliser une machine de développement différente de la machine cible est de ne pas souffrir des erreurs, plantages et reboot provoquées par des erreurs. Imaginez, développer sur la machine que l'on programme elle-même, à une époque où le système d'exploitation ne protège rien du tout : une erreur, un reboot et si vous n'avez pas sauvé, il faut recommencer. Et si vous avez sauvé, les temps de chargements et de sauvegardes sont assez long, surtout sur une machine qui n'a pour mémoire externe qu'un magnétophone à cassettes !

Bref, développer sur une machine annexe et envoyer sur la machine cible, c'est plus simple, cela permet de profiter d'outils modernes mais... ça reste lent dans la …

Lire la suite →

Joyeuses fêtes en haute résolution

Puisque la fin de l'année approche et que les fêtes dites de fin d'années ainsi que le nouvel an sont d'actualités, j'ai ressorti mon convertisseur d'image vers le VG5000µ publié ici et décrit ici pour une image « haute résolution » sur la machine.

L'astuce pour que la compression passe bien a été de positionner le maximum de motifs identiques sur une grille. Pour les dates et l'adresse du site, j'ai ajouté dans le programme BASIC à la main l'affichage en texte.

91 J$="22001177--22001188"
92 CURSORX15:CURSORY17:TX6,3:PRINTJ$
93 CURSORX15:CURSORY18:TX6,3:PRINTJ$
95 CURSORX23:CURSORY23:TX6,0:PRINT"TRICERAPROG.FR"

On y voit que pour écrire en double hauteur, il faut doubler l'affichage sur la ligne suivante. Et pour écrire en largeur, il faut doubler les lettres à afficher. Le tout en précisant 3 en second paramètre de l'instruction TX.

Le dithering qu'effectue la conversion malheureusement n'a …

Lire la suite →

Les différents VG5000µ

Depuis le début de la création de ce site, la majorité des articles a été consacré à du développement sur VG5000µ. Les programmes sont testés sur du matériel réel, même si je les mets au points sur un ordinateur moderne. Les captures d'écrans sont aussi faites sur un vrai VG5000µ, en sortie sur un moniteur récent grâce à un adaptateur Peritel vers HDMI.

Le VG5000µ a cette particularité d'exister sous différentes marques : Philipps, Schneider et Radiola. Plus de détails peuvent se trouver sur des sites plus détaillés dans l'histoire de cette machine, comme je l'indiquais dans un billet en début d'année.

En attendant la suite des articles sur les outils pour programmer cette machine en assembleur, voici une petite photo de famille.

Photo de 4 VG5000µ

Lire la suite →

Des outils pour programmer en assembleur sur VG5000µ

La dernière fois, j'avais évoqué le logiciel d'assemblage, ou assembleur comme étant le programme permettant de passer d'un programme sous sa forme source, c'est-à-dire écrite sous forme lisible par un humain, dans une forme binaire, qui sera plus exactement nommée forme objet. C'est cette forme qui pourra être exécutée par la machine.

Pour programmer, quel que soit la forme que revêt cette programmation, on a besoin d'outils. Les outils primaires peuvent être une table de référence, des manuels, un stylo, des feuilles et beaucoup de patience. Rapidement, le besoin d'outils pour effectuer les tâches automatiques et répétitives qui forment la transformation d'un programme source en programme objet se fait sentir. Et quoi de mieux pour traier des tâches automatiques et répétitives de transformation qu'un... ordinateur.

Le problème de la poule et de l'œuf n'est pas le sujet ici. Le principal est qu'à l'heure de l'écriture de cet article, il y …

Lire la suite →

Cross Chase, un défi multiplateforme

Des jeux vidéo récents sur des vieilles machines, il en sort régulièrement. Ainsi que des portages de jeux d'une de ces machines vers une autre de la même époque, qui n'avait pas eu sa version. Ou bien encore des versions améliorées.

CROSS-CHASE est un jeu développé par Fabrizio Caruso dont l'idée est un peu différente. Le défi est de développer un jeu vidéo sur l'ensemble des machines 8 bits. Le défi n'est pas terminé mais déjà bien avancé : Jupiter ACE, Apple II, Aquarius, Oric Atmos, C64, CPC, VIC20, VG5000µ,...

L'enjeu est donc de trouver un gameplay assez simple qui pourra être supporté par toutes ses machines, et programmer de manière à minimiser l'effort de portage sur chacun de ces hardwares.

Le joueur contrôle un personnage qui doit fuir des cercles en s'en débarassant par collision sur des X. C'est fun et rapide, jouable, dans l'esprit de l'époque. Il y a …

Lire la suite →