Skip to content

thlg057/mo5_template

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🕹️ Thomson MO5 Project Template

Ce dépôt est un modèle (template) pour le développement de logiciels et de jeux pour le Thomson MO5 en langage C.
Il automatise l'installation de l'environnement, la gestion du SDK et la création d'images disques bootables.

📁 Structure du Projet

  • src/ : Contient le code source de votre application (ex: main.c).
  • tools/ : Répertoire généré contenant le SDK (bibliothèques et headers) ainsi que les utilitaires de conversion.
  • bin/ : Contient l'exécutable .BIN après compilation.
  • output/ : Contient les images disquettes finales au format .fd et .sd.

🛠️ Prérequis

  • CMOC : Le compilateur C pour processeur 6809.
  • Git : Requis pour cloner les outils de dépendance lors de l'installation.
  • Python 3 / Pillow : Requis pour les scripts de conversion (fd2sd.py et png2mo5.py).

📦 Installation sur GitHub Codespaces

Si vous utilisez GitHub Codespaces, vous pouvez installer automatiquement tous les prérequis avec :

make setup-codespace

Cette commande installe :

  • flex (requis pour lwtools)
  • Pillow (bibliothèque Python pour la conversion d'images)
  • lwtools (assembleur 6809)
  • CMOC (compilateur C pour 6809)
  • Python 3 / Pillow : Requis pour le script de traitement d'image png2mo5.py.

🚀 Configuration et Compilation

1. Personnalisation

Ouvrez le fichier Makefile à la racine du projet et modifiez la variable suivante pour définir le nom de votre programme :

PROGRAM := MYAPP

(Remplacez MYAPP par le nom souhaité.)

2. Installation de l'environnement

Avant de compiler pour la première fois, lancez la commande suivante pour configurer le SDK et les outils système :

make install

Cette commande :

3. Compilation du projet

Pour générer votre programme et les images disques, utilisez simplement :

make

Cette action va compiler votre code source, le lier à la bibliothèque SDK et créer les fichiers de stockage dans le dossier output/.

📖 Utilisation du SDK

Le SDK mo5_sdk s'appuie sur le code helper du projet sdk_mo5, qui regroupe un ensemble de fonctions que j’ai développées pour simplifier et accélérer le développement sur Thomson MO5.

Pour utiliser ces fonctions dans votre code, incluez les fichiers d'en-tête exportés :

#include <mo5_stdio.h>
#include <mo5_defs.h>

Le Makefile s'occupe automatiquement d'inclure les chemins (-Itools/include) et de lier la bibliothèque statique (tools/lib/libsdk_mo5.a) lors de la compilation.

🎨 Conversion d'Images PNG en Sprites

Le projet inclut un script Python qui transforme une image PNG en fichier .h contenant la définition C du sprite correspondant.

Pour convertir une image :

make convert IMG=./assets/sprite.png

Cette commande :

  • Analyse l'image PNG et détecte automatiquement les couleurs (2 couleurs par groupe de 8 pixels)
  • Génère automatiquement le fichier include/assets/sprite1.h avec la définition du sprite
  • Crée les répertoires nécessaires si besoin
  • Préserve la structure de dossiers (ex: ./assets/perso/hero.png./include/assets/perso/hero.h)

Le fichier généré contient :

  • Les données de FORME (bitmap 1 bit/pixel)
  • Les données de COULEUR (attributs par groupe de 8 pixels)
  • Les commentaires avec visualisation ASCII du sprite

Vous pouvez ensuite inclure le fichier généré dans votre code :

#include "assets/sprite1.h"

🧹 Nettoyage

  • make clean : Supprime les fichiers de build du projet (fichiers objets, binaires et images disques).
  • make clean-all : Supprime tout le projet ainsi que le dossier tools/ (SDK et outils inclus).

About

C template for mo5 developments

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published