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.