Quelques petits programmes pour l'ordinateur Squale de la société Apollo 7, un micro-ordinateur français sorti en 1985. Elle sont inspirées de la démonstration MO5.com de Jean-François DEL NERO. Etant donné que je n'ai pas réussi à recompiler cette démo (écrite en C), ces démos sont écrits en assembleur 6809 et assemblés avec le c6809 de Pulsdemos
texte.rom: affichage texte (utiliser les flèches pour agrandir/rétrécir le texte)temps_pourri.rom: en hommage à l'origine bretonne du Squaleolipix.rom: en hommage à un fan des ordinateurs obscures
Pour lancer sur l'émulateur MAME:
- Lancer le noyau Squale
- Appuyez sur Arrêt Défil (ou Del sur macOS) pour activer les raccourcis clavier MAME
- Appuyez sur Tab pour lancer le menu
- File Manager / cartridge
- Sélectionnez le fichier .rom désiré
Le Squale a comme processeur graphique le Thomson EF 9365, qui ne permet que d'afficher que du texte et des lignes - aucune bitmap (voire la section API). L'image de base a été convertie en données binaires par l'utilitaire bmp2vect. Elle est encodée comme une série de vecteurs horizontaux, chaque ligne de l'image étant composée d'un ou plusieurs vecteurs.
La routine DRAW_BITMAP dessine l'image à l'écran. C'est une conversion en assembleur 6809 de la function C display_vectsprite(). L'effet de transparence est obtenu comme çi: lorsqu'une ligne noire doit être dessinée, le programme regarde alors la hauteur Y de la ligne. Si cette dernière est à $80, $70 ou $50 (la hauteur des lignes du fond), la ligne est dessinée en bleu au lieu de noir.
Documents:
La cartouche est générée par buildrom.py et contient deux parties:
- Un loader (0x0000-0x0100)
- Le programme même (0x0100-0x8000)
Le Loader est chargé par le Squale à l'adresse $C100 en mémoire. Son but est de copier le reste du contenu de la cartouche à l'adresse $0000 (la cartouche n'est pas accessible directement, mais en lisant continuellement l'adresse $F048). Un fois l'opération terminée, il exécute le code à l'adresse $0000.

