Tutoriel : développez en langage C pour APPLE II

Ce tutoriel explique comment réaliser des programmes en langage C qui seront exécutés sous Apple II. Le développement se fait sur une machine moderne (PC sous Linux ou Mac dans ce tuto) et utilise le cross-compilateur cc65, ainsi que différents outils : IDE, utilitaire de gestion de disquettes, émulateur Apple II.

Le compilateur

cc65 est un outils de développement pour le microprocesseur 65(C)02, incluant un cross-compilateur en langage C, un assembleur, un éditeur de liens, des librairies et d’autres outils. Il permet de développer pour de nombreux ordinateurs basés sur ce processeur ; Apple II bien sûr, mais également les Atari 8bits, le VIC20, l’Oric Atmos, le Commodore 64, la NES, etc.

Le compilateur semble respecter la norme ANSI C, du moins jusqu’à un certain point.  Des recommandations de programmation sont explicitées dans le wiki de cc65, à cet endroit.

Installations

Les différents composants et utilitaires nécessaires à la programmation sont :

  • Un éditeur de texte ou un environnement de développement intégré ;
  • Le cross-compilateur cc65 ;
  • Un gestionnaire de disquettes Apple II, le mieux étant AppleCommander (utilisation en mode console) ;
  • Un émulateur Apple II.

La création de cet environnement de développement est détaillée sur cette page.

Mon premier programme

/* Premier exemple de programme en C sous Apple II */
#include <stdio.h>

int main(void) {
	printf("\n");
	printf("Bonjour, utilisateur APPLE 2\n") ;
	return 0;
}

Pour fabriquer l’exécutable sous Linux saisir la commande suivante dans un terminal ($ étant le prompt) :

$ cl65 -t apple2enh -O test.c  -o TEST

L’option -t spécifie la plateforme cible (ici apple2 Enhanced), -O invoque l’optimiseur du compilateur et -o permet de définir le nom du fichier exécutable (TEST). A noter que cl65 effectue à la fois la compilation et l’édition des liens.
Ensuite, pour installer l’exécutable sur une image de disquette (ici DISKTST.do formatée en DOS3.3), utilisez AppleCommander :

$ ac -d DISKTST.do TEST
$ ac -as DISKTST.do TEST < ./TEST

La première commande efface le programme TEST éventuellement présent sur l’image de la disquette. La 2ème effectue le transfert de TEST depuis le système de fichier vers l’image de la disquette. L’option -as permet d’effectuer ce transfert en tenant compte du fait que l’exécutable produit par cc65 est dans le format AppleSingle.

Il ne reste plus qu’à tester le programme avec AppleWin. Après avoir inséré la disquette dans le lecteur 1, saisir la commande :

BRUN TEST

Cette commande lance le programme exécutable.

Le classique « bonjour » en C mais pour Apple II

Remarque importante : Lorsque vous installez le programme exécutable sur la disquette, il faut au préalable éjecter la disquette du lecteur d’Applewin (cliquez à droite sur le lecteur et sélectionner ‘Eject’). Si vous ne prenez pas cette précaution, le programme ne sera pas mis à jour !