Enfin on va pouvoir la faite ronronner cette machine virtuelle ! Pour tester le mode RUN nous allons utiliser le petit Programme Utilisateur n°55 puisque le barillet de la machine est déjà conditionné. Et puis si on désire que le LM puisse descendre vers le sol sélène, il faut absolument circulariser l’orbite. Imaginez-vous dans la cabine exigüe du module de commande. Sur le petit clavier de l’ordinateur de bord vous invoquez la procédure de circularisation orbitale :
MANIPULATIONS :
1) Cliquer sur « c » pour rechercher la bonne procédure.
2) Dans la liste on voit que le Programme Utilisateur n°55 est en emplacement n°5 :
Invoquer l’emplacement n°5 par validation de « 5« .
3) Commande « r » de la zone 3 sur la Fig.3 en page 3.
– Glups … mais on a rien vu !
– Ben oui, l’Arduino à circularisé en 248 cycles d’HORLOGE ce qui n’a pris que 6 centièmes de seconde. Sur la machine réelle il aurait fallu 13 minutes et 52 secondes.
La mémorisation de la configuration du BARILLET.
Matériellement il est impossible sur la machine électromécanique de mémoriser la situation de départ. La seule façon d’en avoir une trace c’est de la noter sur un morceau de papier, ou d’utiliser la configuration indiquée dans la petite fiche de l’algorithme. En revanche, sur la version Silicium de la Machine de Turing nous pouvons à tout moment visualiser l’aspect du carrousel réel et celui de la configuration initiale :
MANIPULATIONS :
1) Cliquer sur « a » pour Afficher l’état initial qui n’existe plus sur la machine réelle.
2) Cliquer sur « v » pour Voir le résultat d’un traitement.
Nous pouvons à tout moment alterner entre ces deux présentations du BARILLET virtuel. Sur un RESET le BARILLET du carrousel est dans le même état que celui initialisé, car il n’y a pas eu d’exécution. Du reste, pour le vérifier effectuer un RESET puis cliquer sur « v » puis sur « a« . Vous noterez que s’il s’agit de l’état mémorisé ce n’est pas précisé, alors que si c’est le BARILLET virtuel qui est montré il y a le texte « Résultat d’un traitement« .
Comme c’est le cas sur la machine matérielle, il est possible de faire tourner MANUELLEMENT le carrousel à notre convenance vers la gauche ou vers la droite avec les deux commandes « < » et « >« . Bien que ces deux commandes soient mentionnées dans la zone 5 du MENU de base, elles concernent le BARILLET virtuel après exécution d’un algorithme.
MANIPULATIONS :
1) Cliquer sur « a » pour Afficher l’état initial qui n’existerait plus sur la machine réelle.
2) Cliquer sur « < » et valider plusieurs fois. La première action est un peu troublante, car on saute de l’état initial à l’état du BARILLET qui vient de tourner d’une position à gauche.
3) Cliquer sur « > » et validez plusieurs fois pour faire tourner le plateau vers la droite. Comme avoir à « Shifter » n’est vraiment pas commode, utiliser de préférence « & » qui est transcodé en « >« .
Par ces quelques commandes très simples, on pourra à tout moment initialiser le BARILLET, faire exécuter un programme, puis visualiser le résultat en décalant à notre guise le plateau vers la droite ou vers la gauche. Dans l’exemple qui précède ce n’est pas vraiment utile, mais plus avant nous allons découvrir le réel intérêt de ces deux commandes.
Pour conclure ce chapitre, vous constaterez que l’axe le plus faible a été ramené au nombre de pions du grand axe, et que pour mieux le situer il est symbolisé par des « 0« .
Le RUN en mode « Aveugle ».
C’est celui par défaut sur un RESET, donc celui que nous avons utilisé. Par définition, le programme est déroulé à vitesse maximale sans aucun affichage qui ralentirait le processus. Avant de passer en revue les possibilités d’intervenir durant l’exécution, pour le plaisir on va relancer la circularisation d’une orbite, mais avec le petit axe = 20 et le grand axe = 25 sur le carrousel :
MANIPULATIONS :
1) Frapper la commande « i » pour initialiser le BARILLET et accepter avec « o« .
2) Pour l’origine on va proposer 10. (Et ainsi « placer la visualisation vers la gauche ».)
3) Placer la Tête de L/E au même endroit : Indiquer 10,
4) Pour le pion de gauche on précise également 10. (Trois fois 10 pour simplifier.)
5) Puis frapper 11111111111111111111b1111111111111111111111111 sans erreur !
6) déclencher l’exécution avec « r« .
Cette fois l’algorithme du PGM n°55 fait tourner 1374 fois la came fictive d’HORLOGE et prendrait
1 HEURES 7 Minutes 23 Secondes sur la machine réelle. Sur la carte Arduino il ne faut que 0,25 secondes. C’est grâce à cette rapidité fulgurante que l’on élimine définitivement l’abandon de données trop « étendues » qui dans la pratique prendraient des durées déraisonnables. Du coup on peut utiliser vraiment l’étendue complète du carrousel virtuel ce qui est rare sur le prototype.
MANIPULATIONS (Suite) :
Pour tester les nombreuses possibilités du mode « Aveugle » le programme n°55 ne nous laisse pas le temps de réagir. Aussi, pour pouvoir prendre tout notre temps et bien observer ce qui se passe sur l’écran, nous allons charger le programme du premier emplacement en EEPROM spécialement prévu à cet effet. Il se contente, à partir d’un BARILLET vierge, de le saturer avec des « 1« , puis avec des « B« . Il ne comporte pas de « F » mais actuellement l’opérateur n’en sera pas averti.
7) Faire un RESET pour repartir sur un BARILLET rempli de « B« .
8) Commande « c » suivie de 1 pour charger le programme envisagé.
9) Commande « r » pour déclencher l’exécution. Un « O » s’affiche mais vous n’en tenez pas compte.
Le logiciel affiche « Exécution du programme. (Caractères …)« , puis l’écran de l’ordinateur devient inerte. Sans que vous ne le sachiez, à chaque rotation de la came d’HORLOGE fictive le logiciel allume la LED bleue durant 50µs ce qui ne ralentit pratiquement pas la rapidité du traitement. En revanche, la LED bleue semble allumée en permanence. C’est cette clarté qui témoigne du fait que le processeur ne se tourne pas les pouces et qu’il « cavale ventre à terre ».
10) Frapper « p » et valider.
Immédiatement le programme passe en mode PAUSE et liste la dernière ligne exécutée. Chaque fois que vous validez « à vide », une ligne de plus est réalisée avec attente d’une commande.
11) Quand on est en PAUSE, chaque « validation à vide » exécute une instruction de plus. Pour montrer que le programme n’est plus « déroulé », la LED bleue n’est plus allumée. Par ailleurs, la LED rouge clignote pour inciter l’opérateur à proposer une nouvelle commande.
12) Frapper « p » et valider pour reprendre le mode aveugle. Le mode PAUSE est suspendu, mais pas le LISTAGE. Ce dernier ralentit le processus. Du coup, la LED bleue est à nouveau allumée signalent que « ça tourne », mais elle est nettement moins lumineuse étant éteinte durant l’affichage.
13) Proposer la commande « l » qui est une bascule de type OUI/NON pour le Listage. Tester plusieurs fois cette possibilité et observer la LED bleue et l’écran. Puis stopper le listage pour revenir au mode aveugle le plus rapide. (La LED bleue éclaire au maximum.)
14) Cliquer sur « v » qui a pour effet de Visualiser le BARILLET.
15) Comme ça défile un peu trop rapidement, Cliquer sur « r » pour Ralentir le déroulement à la cadence d’une instruction par demi-seconde. Frappez à nouveau sur « r« .
16) Proposer maintenant la commande « t » pour passer en « Temps réel« . Cette fois la LED bleue éclaire au maximum et le déroulement du programme devient lamentablement lent. Dans la pratique il fonctionne exactement à la cadence de la Machine électromécanique. Pour quitter ce mode il suffit de frapper une deuxième fois « t » sachant que la prise en compte ne sera effective que lorsque le cycle en cours sera achevé ce qui peut prendre environ quatre secondes.
17) Revenir au mode PAS à PAS avec « p » pour constater que « l » et « v » ont des effets « cumulatifs ». Pour le vérifier alterner plusieurs fois ces possibilités tout en imposant de faire des pas.
18) Toujours en PAS à PAS et uniquement avec la visualisation du BARILLET proposer la commande « g » qui fait passer l’affichage « en mode Graphique ».
MANIPULATIONS (Suite) :
19) Comme pour le MENU de BASE et le Menu des OPTIONS on peut à tout moment obtenir le rappel des options durant l’exécution du programme en frappant la touche « ? » ou mieux, la virgule.
Remarquer que tout caractère frappé durant le RUN est affiché entre crochet à titre d’information pour l’opérateur. Si le caractère n’est pas valide une alerte sonore et textuelle est générée.
Mise à part la commande « q » nous avons expérimenté toutes les possibilités de commandes durant le mode « RUN« . Toutes ces commandes peuvent se « cumuler » et l’on peut rendre actifs ou annuler chaque choix potentiel. Noter au passage que les items qui seront resté actif quand on sort de l’exécution du programme resteront actifs dans les OPTIONS ce que l’on va constater dans le chapitre qui suit.
20) Suspendre le mode PAS à PAS et valider le Listage ainsi que la Visualisation du BARILLET en mode Graphique. Validez le fonctionnement en temps réel avec « t« . Pendant que l’écran liste lentement toutes les informations, frapper « q » et valider pour sortir de l’exécution du programmes. (Le « temps réel » peut engendrer un délai de réactions jusqu’à quatre secondes.)
La sortie imposée du déroulement de l’algorithme fait afficher les informations du type de celles de la Fig.13 et le logiciel attend une nouvelle commande de l’opérateur. Nous allons à ce stade passer en revue les possibilités offertes par les OPTIONS.
La suite est ici.