Rien à faire, une zone programme reste désespérément inutilisée. Après avoir ajouté les petites améliorations du chapitre précédent, l’occupation mémoire ne dépasse pas les 77%. Aussi, avec ténacité j’ai cherché à remplir ce vide avec des octets, quitte à donner dans l’orgie binaire. Les divers modes de RESET du chapitre suivant vont confirmer cette boulimie où l’on dépense sans compter … tout en optimisant l’optimisation optimale du code !
Une assurance contre la collision de PILE.
C’est en maintenant actif le bouton poussoir lors du RESET que l’on obtient l’écran de la Fig.129 qui commence par nous souhaiter une journée agréable, car ce logiciel est bien éduqué. Comme il reste de la place à revendre, on en profite pour afficher la version du programme. À l’ouverture de cette option la LED triple éclaire en blanc. La sortie du mode de fait avec un clic long, alors qu’un clic court est ignoré et génère un BIP d’erreur. Surtout, la ligne du bas précise la place qui reste de disponible entre la PILE et le TAS. Pour interpréter cette information il faut impérativement lire le chapitre 17 de la Page.38 qui traite de ce sujet particulier. Toutefois, la page écran photographiée n’est plus du tout d’actualité car depuis de nombreuses fonctions et améliorations ont été apportées au logiciel d’exploitation de l’appareil. Actuellement sur ma version il reste 190 octets. Sur celle que je vous propose légèrement plus car il y a une fonction spécifique en moins. En effet, sur RESET entre les positions n°5 et n°6 j’ai ajouté un « outil de programmeur » qui ne concerne pas les futurs réalisateurs de cet ensemble qui conserve un caractère essentiellement ludique.
Rassurez-vous, une marge de 190 octets reste largement suffisante pour empiler les adresses de retour de procédure et entasser les variables dynamiques. Le logiciel est stable et fonctionne déjà sans problème depuis plusieurs jours. Dans la pratique, certains de mes logiciels ne laissaient qu’une centaine d’octets de disponibles ce qui était déjà suffisant surtout si le programme ne contient pas de procédure récursive.

La suite est ici.