Le tesseract est un cube à 4 dimension, mais cet article ne traite pas de géométrie. Car Beyond the tesseract est le titre d’un jeu d’aventure mathématique de David Lo, publié la première fois en 1983 sous la forme d’un programme BASIC pour TRS-80. Le jeu a par la suite été porté en langage C, sur différents systèmes tel que MS-DOS, Atari ST, ou UNIX.
Dans cet article, vous trouverez une adaptation pour Apple II, avec cc65 comme compilateur. Normalement, une simple recompilation aurait été suffisante, mais la mémoire d’un Apple II étant limitée, des modifications importantes du code source ont été nécessaires.

Une nouvelle version
Le programme TESS est disponible en version 2.2. Je suis parti de la version 2.0p téléchargeable sur IFDB (archive tess.tar.gz). mais il existe également une version 2.1p que je n’ai pas trouvée.
La version 2.2 fonctionne dans les environnements suivants : Linux avec le compilateur gcc, Windows avec gcc, et Apple II avec cc65. Il fonctionne très probablement sous d’autres systèmes et d’autres compilateurs C, le code étant très standard. Voici le code source, l’archive étant format tar :
Sous Linux
Linux avec le compilateur gcc. Pour compiler sous Linux et lancer le programme , utilisez tout simplement les commandes :
make
./tess
Sous Windows
il faut utiliser le fichier make_win :
make -f make_win
tess.exe
Pour Apple //e et //c
Il est nécessaire d’installer et d’utiliser le compilateur cc65 sur votre ordinateur. Il existe un tutoriel ici, qui vous expliquera comment. Pour compiler :
make a2
Puis, copier l’exécutable sur le fichier de disquette TESS.do :
make install_a2
La “disquette” peut ensuite être lue par un émulateur comme AppleWin. Le jeu s’affiche en 80 colonnes ce qui nécessite de l’exécuter sur un Apple //c ou Apple //e “enhanced”.
Une fois l’Apple II démarré, tapez la commande :
]BRUN TESS
L’écran d’intro du jeu s’affiche au bout d’un moment.
Les adaptations effectuées
La grande difficulté a été de réduire l’empreinte mémoire du programme afin qu’il puisse s’exécuter sur un Apple II. Voici les modifications apportées :
- Reprise en profondeur du parser (
parser.c) afin de ne plus utiliser librairiestring.h, ceci permettant de réduire l’empreinte mémoire du programme. - Remplacement de la fonction
rand()par une fonctionpseudo_rand()de façon à ne plus utiliser la librairiestdlib.h, l’objectif étant toujours de limiter la taille du programme. - Dans la variante Apple II, il n’est plus possible de sauvegarde (
SAVE) ni de restaurer la partie (LOAD). Ceci fonctionne sous Linux ou Windows. - Remplacement de l’utilisation du type
intpar des des types de variables moins gourmandes en mémoire. Le typet_usi(pour les entiers non signés) est en réalité ununsigned charqui utilise un seul octet en mémoire. Les variables de ce type peuvent donc prendre des valeurs entre 0 et 255, mais cette limitation reste compatible avec le programme TESS. Les types de données utilisées comportent une sémantique, comme par exemplet_object_idpour les identificateurs d’objets. - Reprise de l’organisation des fichiers constituant le programme : création du fichiers d’include
tess_data.hqui contient la description des objets et des lieux. - Pour la variante Apple II, utilisation de la librairie
<conio.h>afin d’afficher en 80 colonnes et d’améliorer l’affichage du texte. La fonction permettant de passer en 80 colonnes estvideomode(VIDEOMODE_80COL);
Les ressources
De nombreuses ressources relatives à Beyond the Tesseract sont disponibles sur internet :
- Une page wikipedia dédiée
- Une page sur IFDB, où vous trouverez le code source d’où je suis parti (
tess.tar.gz) - Internet Archive où la version 2.0p pour DOS est jouable en ligne grâce à l’émulateur DOSBOX
- Solution Archive avec une carte et de quoi tricher…
- La page personnelle de David Lo, créateur du jeu.
Il me reste à vous souhaiter une très bon moment avec ce jeu d’aventure mathématique abstrait et très original.
