But :

ArrayForth (au début) demande une certaine gymnastique intellectuelle pour se servir de son éditeur. De plus il faut pour rendre l’apprentissage plus simple avoir un clavier QWERTY… Nous allons découvrir comment pouvoir transformer la vie des utilisateurs (ou futurs) pour aborder enfin la programmation du processeur GA144. En effet maintenant plus d’excuse, nous pouvons éditer le code dans un simple éditeur ! Un outil permet de réaliser cette prouesse.

 

1)  Récupérer le fichier source d’ArrayForth

Dans ArrayForth, pour sauver l’intégralité des blocs (jusqu’au bloc 1440) sans compression (page 19 de la documentation « arrayForth user’s manual »), il faut taper la commande :

0 !back

Le fichier OkadBack.cf est  alors sauvegardé et contient les 1440 blocs.

 

   2) Transformer le fichier source

 

Les programmes sont écrits en langage Python disponibles à l'adresse :

http://unternet.net/src/clusterFix/

Les fichiers nécessaires sont :

 

 

 

 

Sous Python pour effectuer la conversion vers le mode texte du fichier OkadBack.cf, il faut lancer le programme cf2f.py avec comme arguments :

Le fichier source (OkadBack.cf) et le fichier destination (OkadBack.f).

Le fichier obtenu est lisible par un simple éditeur pour le langage Forth (gedit)

Un exemple de code source, les blocs 858 et 860

Le Bloc 858 dans ArrayForth:

La conversion:

Le Bloc 860 dans ArrayForth:

La conversion:

 

Pour effectuer l’inverse de la conversion, de code Forth vers Arrayforth, sous python il faut lancer le programme f2cf avec comme arguments:

                Le fichier source (OkadBack.f) et le fichier destination (OkadWork.cf).

 

Pour vérifier que la conversion a réussie,  nous pouvons regarder si nous trouvons des différences entre le fichier  source (OkadBack.cf) et le nouveau fichier (OkadWork.cf). Sous windows il existe la commande fc, similaire à la commande cmp -bl sous Linux.

 

3) Quelques commandes d’ArrayForth

ArrayForth regorge de quelques commandes assez utiles :

            - sauvegarder les 1440 blocs avec compression :  save

                        le fichier sauvegardé sera par défaut OkadWork.cf

            - changer le nom du fichier de sauvegarde (back) :  bnamed (_)

                        Exemple :        bnamed okad.cf

- recharger le fichier okadback.cf a la volée :   @back (n)

                        Exemple :        0 @back

            -comparer  le fichier OkadWork.cf et le fichier okadback.cf :

                        Exemple :        audit load check all

Si une différence est trouvée, Arrayforth va éditer le bloc,

la touche [F] permet de basculer du bloc du fichier OkadWork.cf et okadback.cf (les blocs sont copiés à partir du bloc 10000).

pour poursuivre la recherche [barre espace] et [G]

et recommencer la recherche [barre espace] et all

 

4) Et si on simplifiait ArrayForth  ?

 

Mais le plus simple est d’automatiser par le biais d’un simple menu toutes ces fonctions.

Le programme suivant « Ga144_menu » permet de lancer ArrayForth, de lancer un éditeur « Gedit », d’automatiser le transfert « okadback.cf » vers « okadback.f » et vice-versa, mettre à jour le fichier dans ArrayForth, et d’envoyer les commandes de son choix (par exemple compile, host load talk ….).

 Ce programme est écrit en langage python pour le système Linux, il est nécessaire d’installer les outils suivants :

- pour l’editeur : gedit

- pour automatiser la saisie du clavier : xdotool   

- les fichiers suivants   cfword

) dont cf2f légèrement modifié qui devient cf2fHack :

-          Le programme ArrayForth  « Okad2-42c-pd.exe »

-          Le programme Python (version 2.7)

 

Dans un simple terminal il suffit de lancer le programme  « Ga144_menu » par la commande

 python    Ga144_menu.py pour voir apparaitre le menu suivant.

  

Dans un premier temps il faut lancer ArrayForth, commande 1

La fenêtre « colorforth » apparait

 

Au début  il faut initialiser ArrayForth, c'est-à-dire sauver le fichier « okadback.cf » en mode non compressé (commande 8).

Dans le répertoire nous obtenons le fichier okadback.cf qui contient les 1440 blocs.

 

La commande 3 permet de transformer ce fichier en mode « lisible » par un simple éditeur (« gedit »), un second fichier va voir le jour « okadback.f ». C’est sur ce fichier que l’on pourra modifier le code pour le GA144.

 

La commande 2 permet de lancer l’éditeur gedit avec en paramètre le fichier « okadback.f ».

Une fois que l’on a fait toutes les modifications dans « okadback.f », il faut sauvegarder le fichier dans l’éditeur, et lancer la commande 3 pour retransformer le fichier vers « okadback.cf » compréhensible par ArrayForth.

 

La commande 5 permet de mettre à jour les données sans devoir redémarrer ArrayForth.

 

Quant au choix  6, on peut envoyer vers ArrayForth différentes commandes en ligne :

Par exemple : «  host load talk »   , pour communiquer avec le GA144

Attention il ne faut pas oublier les espaces après les mots, en effet « un espace » valide la commande dans ArrayForth.

 Bien sur rien n’empêche de prendre la main dans le soft ArrayForth selon sa convenance.

 Voilà un simple outil pratique qui je suis sur permettra de se passer « presque » de l’éditeur ArrayForth.