MicroEmacs est un éditeur de texte qui fonctionne sur de nombreux systèmes d'exploitation. En version 1.8, il était livré avec le compilateur Mark Williams C (MWC), qui faisait partie du kit de développement officiel sur l'Atari ST. Des versions plus récentes, jusqu'à la version 4.00 ont été portées, mais malheureusement elles ne fonctionnent pas parfaitement sur les Atari ST avec clavier français, à cause du fait que la touche ALTERNATE est systématiquement interprétée comme la touche spéciale.
J'ai entrepris d'essayer de rendre MicroEmacs utilisable sur les Atari ST français. J'ai récupéré l'archive de la version 4.00
Le résultat se trouve ici: https://github.com/vinz6751/microemacs-st
J'ai décidé de cross-compiler en utilisant GCC, plutôt que d'utilise le Mark Williams C, car ceci permettra de produire des versions optimisées pour différents types de processeurs, y compris le ColdFire de la FireBee. Comme cross-compilateur, j'utiliserai les outils fournis par Vincent Rivière, c'est à dire GCC 4.6.4, GEMlib pour la librairie GEM et libcmini.
J'ai du adapter le Makefile, et toutes les dépendances aux bibliothèques TOS et GEM, et les définitions qu'elles contiennent. Concernant le passage des paramètres, pas de problème car GCC tout comme le PWC passe les paramètres par la pile.
La version actuelle utilise lese fonctions du BIOS et l'émulateur VT-52 pour l'affichage, et utilise la LineA pour détecter et changer la fonte système (car il permet d'utiliser une fonte plus petite pour avoir 40 lignes au lieu de 25 en haute résolution). Pour gérer la souris, il détourne le vecteur clavier mousevec, mais n'utilise pas la convention XBRA (quelque chose à améliorer). Pour attendre les évènements, il utilise le evnt_multi de l'AES. Donc c'est un joyeux mélange de VT-52, LineA et AES, pour un éditeur qui ressemble à un programme TOS plutôt que GEM :)