Document fait avec Nvu Document made with Nvu

Les instructions sont présentées de la manière suivante:

  • les paramètres d'entrée pris sur la pile des données sont en vert (une absence de paramètre est signalé par le caractère "-"),
  • le nom de l'instruction est en rouge,
  • les paramètres de sortie placés sur la pile des données sont en bleu (une absence de paramètre est signalé par le caractère "-"),
  • la description de l'instruction est en noir et en italique.

Tous les paramètres sont des nombres de 32 bits sauf "flottant" représentan un nombre réel codé en IEEE double précision (64 bits, le mot de poid faible est empilé en premier). Lorsque plusieurs paramètres sont indiqués, ils sont séparés par une virgule. Le paramètre le plus à gauche est le premier déposé dans la pile et celui le plus à droite constitue le sommet de la pile.


n DUP n, n

Empilement de la copie du nombre au somme de la pile


n DROP -

Suppression du nombre au sommet de la pile


n SWAB m

Permutation des 16 bits de poids faibles avec les 16 bits de poids forts de n


n 1, n 2 NIP n 2

Suppression du deuxième nombre de la pile


n 1, n 2 TUCK n 2, n 1, n 2

Empilement de la copie du nombre au somme de la pile au troisième niveau


n 1, n 2 SWAP n 2, n 1

Permutation des 2 nombres au sommet de la pile


n 1, n 2 OVER n 1, n 2, n 1

Empilement de la copie du nombre se trouvan au 2ième rang de la pile


n 1, n 2, n 3 ROT n 2, n 3, n 1

Rotation des 3 nombres au sommet de la pile


profondeur PICK n

Empilement de la copie du nombre à la profondeur donnée au sommet de la pile
"1 PICK" équivalent à "DUP"
"2 PICK" équivalent à "OVER"


valeur, profondeur POKE -

Modification du nombre à la profondeur donnée dans la pile avec la valeur donnée


profondeur ROLL -

Rotation des nombres au sommet de la pile selon la profondeur donnée
"2 ROLL" équivalent à "SWAP"
"3 ROLL" équivalent à "ROT"


n ?DUP n ou n,n

Empilement de la copie du nombre au somme de la pile s'il n'est pas nu


n >R -

Transfert du sommet de la pile des données vers la pile de retour
(INTERDIT en mode interprétation)


- R> n

Transfert du sommet de la pile de retour vers la pile des données
(INTERDIT en mode interprétation)


- R@ n

Empilement de la copie du sommet de la pile de retour sur la pile des données


adresse 2@ n

Lecture du mot de 32 bits pointé par adresse


adresse @ n

Lecture du mot de 16 bits pointé par adresse
Les 16 bits de poids forts de n prennent la valeur du bit de poids fort du mot lu


adresse C@ n

Lecture de l'octet (8 bits) pointé par adresse
Les 24 bits de poids forts de n prennent la valeur du bit de poids fort de l'octet lu


numéro CW@ n

Lecture du mot d'extension (16 bits) pointé par numéro.
Les 16 bits de poids forts de n prennent la valeur du bit de poids fort du mot lu


n, adresse 2! -

Ecriture du mot n (32 bits) dans adresse


n, adresse ! -

Ecriture du mot n (16 bits de poids faibles) dans adresse


n, adresse C! -

Ecriture de l'octet n (8 bits de poids faibles) dans adresse


n, numéro CW! -

Ecriture de la valeur n (16 bits de poids faibles) dans le registre d'extension pointé par numéro


n 1, n 2 + (n 1 + n 2)

Addition


n NEGATE -n

Valeur opposée (complémen à 2)


n 1, n 2 - (n 1 - n 2)

Soustraction


n 2* n*2

Multiplication rapide par 2


n 4* n*4

Multiplication rapide par 4


n 2/ n/2

Division rapide par 2


n 4/ n/4

Division rapide par 4


n 1, n 2 < booléen

Test si nombre 1 est strictement inférieur à nombre 2 en signé


n 1, n 2 = booléen

Test si nombre 1 est égal à nombre 2


n 1, n 2 > booléen

Test si nombre 1 est strictement supérieur à nombre 2 en signé


n 0< booléen

Test si nombre est négatif


n 0= booléen

Test si nombre est nul


n 0> booléen

Test si nombre est strictement positif


n 1, n 2 U< booléen

Test si nombre 1 est inférieur à nombre 2 en non signé


n NOT booléen

Equivalent à 0=


n 1, n 2 U* (n 1 * n 2)

Multiplication non signée
Le résultat ne doit pas dépasser le format de 32 bits


n 1, n 2 * (n 1 * n 2)

Multiplication
Le résultat ne doit pas dépasser la format de 32 bits


n 1, n 2 U/MOD reste(n 1 / n 2), quotient(n 1 / n 2)

Reste et quotient de la division entière non signée de nombre 1 par nombre 2
Le résultat intermédiaire de la multiplication es sur 64 bits


n 1, n 2, n 3 U*/MOD reste((n 1 * n 2)/ n 3), quotient((n 1 * n 2)/ n 3)

Reste et quotient de la division entière non signée par nombre 3 de la multiplication non signée de nombre 1 par nombre 2
Le résultat intermédiaire de la multiplication es sur 64 bits


n 1, n 2, n 3 */MOD reste((n 1 * n 2)/ n 3), quotient((n 1 * n 2)/ n 3)

Reste et quotient de la division entière par nombre 3 de la multiplication de nombre 1 par nombre 2
Le résultat intermédiaire de la multiplication es sur 64 bits


n 1, n 2 /MOD reste(n 1 / n 2), quotient(n 1 / n 2)

Reste et quotient de la division entière de nombre 1 par nombre 2


n 1, n 2 / (n 1 / n 2)

Division avec arrondi


n 1, n 2 MOD reste(n 1 / n 2)

Reste de la division entière de nombre 1 par nombre 2


n 1, n 2, n 3 */ (n 1 * n 2)/ n 3

Division entière par nombre 3 de la multiplication de nombre 1 par nombre 2
Le résultat intermédiaire de la multiplication es sur 64 bits


n SQRT m

Racine carrée du nombre n toujours considéré comme positif sur 32 bits


n 1, n 2 MAX max(n 1, n 2)

Maximum des nombres 1 et 2


n 1, n 2 MIN min(n 1, n 2)

Minimum des nombres 1 et 2


n ABS abs(n)

Valeur absolue


n 1, n 2 AND (n 1 and n 2)

ET logique


n 1, n 2 OR (n 1 or n 2)

OU logique


n 1, n 2 XOR (n 1 xor n 2)

OU Exclusif logique


n, d ASH m

Décalage arithmétique de n d fois à gauche si d est positif et à droite dans le cas contraire


n, d LSH m

Décalage logique de n d fois à gauche si d est positif et à droite dans le cas contraire


n, d ROL m

Rotation de n d fois à gauche si d est positif et à droite dans le cas contraire


n COM m

Inversion bit à bit (complémen à 1)


n, adresse +C! -

Addition du mot n au mot pointé par adresse sur 8 bits


n, adresse -C! -

Soustraction du mot n au mot pointé par adresse sur 8 bits


n, adresse +! -

Addition du mot n au mot pointé par adresse sur 16 bits


n, adresse -! -

Soustraction du mot n au mot pointé par adresse sur 16 bits


n, adresse +2! -

Addition du mot n au mot pointé par adresse sur 32 bits


n, adresse -2! -

Soustraction du mot n au mot pointé par adresse sur 32 bits


adresse, n, octet FILL -

Remplissage de la mémoire avec n fois la valeur octet à partir de adresse


a 1, a 2, n CMOVE -

Copie de n octets (8 bits) de l'adresse 1 vers l'adresse 2


a 1, a 2, n MOVE -

Copie de n mots de 16 bits de l'adresse 1 vers l'adresse 2


a 1, a 2, n 2MOVE -

Copie de n mots de 32 bits de l'adresse 1 vers l'adresse 2


- INTERRUPT_VECTORS adresse

Adresse des vecteurs d'interruption


- S_WORD adresse

Adresse du tampon ASCII géré par l'instruction "WORD"


- S_FORMAT adresse

Adresse du tampon ASCII géré par les instructions de sortie formattée


- S_TAMPON adresse

Adresse du tampon ASCII de l'interpréteur/compilateur


- S_STRING adresse

Adresse du tampon ASCII géré par l'instruction "STRING"


- M_SOURIS adresse

Adresse du tampon de mémorisation de la zone pointée par la souris


- INPUT_FILE adresse

Adresse de la file d'entrée du terminal


- OUTPUT_FILE adresse

Adresse de la file de sortie du terminal


- RS232_RECEIVE_FILE adresse

File de réception du lien série


- RS232_TRANSMIT_FILE adresse

File d'émission du lien série


- KEYBOARD_FILE adresse

File de mémorisation des touches du clavier


- PAD adresse

Variable contenant l'adresse du fichier ASCII en cours de compilation (instruction "LOAD")


- >IN adresse

Variable contenant l'index de compilation du fichier ASCII précédent


- MEM_DEPTH adresse

Variable gérée par l'instruction "DEPTH"


- MEM_HERE adresse

Variable contenant la valeur de "HERE"


- ADR_CREATE adresse

Variable gérée par l'instruction "CREATE"


- START adresse

Variable contenant l'adresse de la dernière instruction compilée


- TEMPS adresse

Variable contenant la valeur d'un compteur tournant (32 bits) incrémenté toutes les millisecondes par le noyau temps réel


- TACHE adresse

Adresse du début de la liste chaînée des tâches du noyau temps réel


- 68681_IT+ adresse

Adresse du vecteur permettant de compléter le programme d'interruption du circuit d'interface 68681


- FPGA_IT+ adresse

Adresse du vecteur permettant de compléter le programme d'interruption du FPGA


- MEMOIRE_ADRESSE adresse

Adresse du début de la mémoire allouable dynamiquement.
Cette variable est réservée au système


- MEMOIRE_INDEX adresse

Adresse utilisée dans la gestion de la mémoire allouable dynamiquement.
Cette variable est réservée au système


- MEMOIRE_TELEC adresse

Variable contenant l'adresse du tampon de téléchargement


- MEMOIRE_FLASH adresse

Variable donnant l'adresse du contenu du bloc initial en mémoire vive


- FENETRE adresse

Variable donnant l'adresse de la liste chaînée des descripteurs Variable giving the address of the list chained of window descriptors de fenetres


- MOTIF_SOURIS adresse

Variable donnant l'adresse du motif de la souris dans la fenetre active


- FOND_SOURIS adresse

Variable donnant l'adresse du motif couran de la souris


- TAPISSE adresse

Variable donnant l'adresse du programme d'affichage du fond de l'écran


- FICHIER_CHEMIN adresse

Variable donnant l'adresse de la chaine de caractères contenant chemin courant en mémoire vive


- STOP_FORTH adresse

Variable donnant l'adresse d'un programme d'arrêt de processus FORTH (ABORT par exemple)


- SYSTEMES_FICHIERS adresse

Variable donnant l'adresse de la liste des descripteurs des systèmes de fichier installés


- EOLN adresse

Variable indiquant si elle est différente de 0 que l'instruction "WORD" a rencontré un caractère de fin de ligne


- EOF adresse

Variable indiquant si elle est différente de 0 que l'instruction "WORD" a rencontré un caractère de fin de fichier


- BASE adresse

Variable contenant la valeur de la base numérique courante


- STATE adresse

Variable indiquant si elle est différente de 0 que l'on se trouve en mode compilation (sinon interpétation)


- ERROR adresse

Variable pointant le descriptif des erreurs de compilation


- T_SUSPEND adresse

Variable permettant de suspendre le noyau temps réel (si différente de 0)


- PRIORITE adresse

Variable indiquant le niveau de priorité courant au noyau temps réel


- ECRAN adresse

Adresse pointant les limites de l'écran graphiques en 16 bits.
Exemple pour écran VGA de 640x480: 0,0,639,479


- LIMITES adresse

Adresse pointant les limites de la zone d'affichage en 16 bits.
Ces coordonnées sont toujours bornées par celles de ECRAN, exemple: 10,45,300,249


- G_SUSPEND adresse

Variable permettant de suspendre l'affichage graphique (si différente de 0)


- X_SOURIS adresse

Variable contenant l'abcisse de la souris


- Y_SOURIS adresse

Variable contenant l'ordonnée de la souris


- COPIE_IMR adresse

Variable interne réservée aux instructions de gestion du circuit d'interface 68681


- I2C_OCCUPE adresse

Variable interne réservée aux instructions de gestion du lien I2C


- FLASH_OCCUPE adresse

Variable contenant l'état d'occupation de la mémoire FLASH


- FLASH_ECRITURE adresse

Variable indiquant si un fichier est en cours d'écriture


- TEMPS_TELEC adresse

Variable interne réservée à la gestion du téléchargement


- DATA_STACK adresse

Adresse de la pile des données


- RETURN_STACK adresse

Adresse de la pile de retour


- DICTIONNAIRE adresse

Adresse de la table d'index des instructions (classement par ordre alphabétique)


- DEPTH profondeur

Empilement de la profondeur de la pile des données


- RDEPTH profondeur

Empilement de la profondeur de la pile de retour


- HERE adresse

Dépose sur la pile l'adresse de compilation


adresse >HERE -

Initialise l'adresse de compilation


n C, -

Compilation de l'octet n (8 bits)
L'adresse de compilation ("HERE") est incrémentée de 1
ATTENTION: il faut toujours maintenir "HERE" pair
ajoutez une instruction de ce type avec la valeur "0" si leur nombre est impair


n , -

Compilation du mot n (16 bits)
L'adresse de compilation ("HERE") est incrémentée de 2


n 2, -

Compilation du mot n (32 bits)
L'adresse de compilation ("HERE") est incrémentée de 4


n IF - instructions

- THEN -

Les instructions entre "IF" e "THEN" sont exécutées si n est différen de 0

n IF - instructions 1

- ELSE - instructions 2

- THEN -

Si n est différent de 0, seules les instructions 1 sont exécutées, sinon ce sont les instructions 2 qui sont exécutées


n CASE -

m OF - instructions 1

- ENDOF -

instructions 2

- ENDCASE -

Si m est égal à n , seules les instructions 1 sont exécutées, sinon ce son les instructions 2 qui sont exécutées. Plusieurs séquences "OF", "ENDOF" peuvent être enchaînées.


- BEGIN - instructions

n UNTIL -

Les instructions entre "BEGIN" et "UNTIL" sont réexécutées tan que n est nul

- BEGIN - instructions 1

n WHILE - instructions 2

- REPEAT -

Les instructions 1 et 2 sont entre "BEGIN" et "REPEAT" sont réexécutées tan que n est différent de 0


valeur max, valeur min DO - instructions

- LOOP -

Structure permettant exécutant les instructions à chaque incrémentation d'un indice initialisé à la valeur min et autant de fois qu'il est strictement inférieur à la valeur max
L'indice est incrémenté et testé par l'instruction "LOOP"

valeur max, valeur min DO - instructions

n +LOOP -

Structure permettant exécutant les instructions à chaque incrémentation d'un indice initialisé à la valeur min et autant de fois qu'il est strictement inférieur à la valeur max
L'indice est incrémenté par la valeur n et testé par l'instruction "+LOOP"
Les instructions "I", "J", "K" e "LEAVE" sont aussi utilisables dans cette structure.


n LITERAL -

Compilation du nombre n (32 bits) dans la definition d'une instruction


- I indice

Dépose sur la pile des données la valeur courante de l'indice de la structure "DO ... LOOP"


- J indice

Dépose sur la pile des données la valeur courante de l'indice d'une structure "DO ... LOOP" de deuxième niveau


- K indice

Dépose sur la pile des données la valeur courante de l'indice d'une structure "DO ... LOOP" de troisième niveau


- LEAVE -

Initialise l'indice de la structure "DO ... LOOP" à la valeur max afin de forcer la sortie de la boucle à la prochaine exécution de l'instruction "LOOP"


- EXIT -

Cette instruction, inutilisable dans les structures de boucles de type "DO ... LOOP" ou "DO ... +LOOP" permet de sortir de l'exécution d'une instruction


caractère EMIT -

Emission du caractère


- CR -

Passage à la ligne suivante


- BELL -

Emission d'un bip sonore


- SPACE -

Emission d'un espace
Equivalent à "1 SPACES"


n SPACES -

Emission de n espaces


adresse, n TYPE -

Emission des n caractères pointés par adresse


adresse COUNT adresse+1, n

Extraction du nombre de caractère d'une chaîne ASCII (255 maximum)


adresse, n 1 -TRAILING adresse, n 2

Calcul du nombre de caractères d'une chaîne ASCII après avoir les éventuels espaces placés à la fin de celle-ci


- BIN -

Force le système en base binaire (2 dans "BASE")


- OCTAL -

Force le système en base octale (8 dans "BASE")


- DECIMAL -

Force le système en base décimale (10 dans "BASE")


- HEX -

Force le système en base hexadécimale (16 dans "BASE")


n 1, adresse 1 CONVERT n 2, adresse 2

Conversion dans la base numérique courante du nombre codé en ASCII dans adresse 1 avec la valeur initiale n 1
Le résultat est n 2 et adresse 2 pointe le premier caractère non convertible


n <# signe, abs(n)

Début de conversion d'un nombre en code ASCII dans la base courante


caractère HOLD -

Insertion d'un caractère dans la chaîne du nombre converti


n 1 # n 2

Conversion d'une unité du nombre en code ASCII et division de ce dernier par la base courante


n #S 0

Relance de l'instruction "#" jusqu'à ce que n soit nul


signe, n SIGN signe, n

Insertion d'un caractère "-" si signe n'est pas nul


signe, n 1 #> adresse, n 2

Fin de la conversion d'un nombre en code ASCII
Laisse sur la pile l'adresse de la chaîne de caractères résultante et le nombre de caractères


n . -

Affichage de n dans la base courante
Equivalent à "<# #S SIGN #> TYPE"


adresse ? -

Affichage du mot de 16 bits pointé par adresse
Equivalent à "@ ."


n U. -

Affichage de n dans la base courante en non signé
Equivalent à "<# >R DROP 0 R> #S #> TYPE"


caractère WORD adresse

Extraction d'un mot se terminant par caractère à partir du tampon d'entrée et dépô sur la pile de l'adresse ou est stocké ce mot


adr1,nbc1,adr2,nbc2 STRCMP b

Comparaison de 2 chaînes de caractères adr1 avec nbc1 caractères et adr2 avec nbc2 caractères.
b est nul lorsque les 2 chaînes sont identiques, positif lorsque adr1 est supérieure alphabétiquement à adr2 et négatif dans le cas inverse


adr_c,adr_ DICO_CHERCHE adr_t',b

Recherche du pointeur adr_t' dans la table adr_t tel que le contenu de la chaîne de caractères adr_c soit le plus proche ou égal à celle pointée par adr_t' (recherche dichotomique)
b est nul lorsque les 2 chaînes sont identiques, positif lorsque adr1 est supérieure alphabétiquement à adr2 et négatif dans le cas inverse


- DICO_INIT -

Création ou mise à jour de la table de classement par ordre alphabétique des instructions du dictionnaire


- DLIST -

Liste le contenu du dictionnaire epar ordre alphabétique


- ' "nom" adresse

Dépose sur la pile l'adresse de l'entête de l'instruction "nom"


- FIND "nom" adresse

Dépose sur la pile l'adresse d'exécution de l'instruction "nom"


- [ -

Passage en mode interprétation


- ] -

Passage en mode compilation


- : "nom" -

Création de l'entête d'une nouvelle instruction (passage en mode compilation)


- ; -

Fin d'une nouvelle instruction (retour en mode interprétation)


- TACHE: "nom" -

Entête de définition d'une tâche, le mot suivant cette instruction donne le nom de la tâche
Cette définition sera terminée avec l'instruction ";"
ATTENTION: une tâche doit laisser la pile dans le même état avant et après son exécution (ce qui ne l'empêche pas de l'utiliser)
Lorsque la tâche est appelée par son nom, elle ne retourne que l'adresse d'exécution


tâche T_EXECUTE -

Exécution de la tâche spécifiée (utilisé pour mise au point)


niveau, tâche T_AJOUTE -

Ajout de la tâche spécifiée dans la table des tâches avec le niveau de priorité spécifié (1 à 65535)


millisecondes, tâche T_ACTIVE -

Activation de la tâche spécifiée dans le nombre de millisecondes spécifié (1 à 8192)


millisecondes, tâche T_PERIODE -

Activation périodique de la tâche spécifiée dans le nombre de millisecondes spécifié (1 à 8192)


tâche T_RETIRE -

Retrait de la tâche spécifiée de la table des tâches


- TLIST -

Liste les tâches gérées par le noyau en indiquant leur niveau de priorité et leur état d'activité


- COMPILE "nom" -

Permet la compilation de l'instruction "nom" à l'exécution


- [COMPILE] "nom" -

Force la compilation d'une instruction immédiate "nom"


adresse EXECUTE -

Exécution du programme pointé par adresse


- " "chaîne de caractères" adresse

Création d'une chaîne de caractères terminée par " (255 au maximum)


- ECHO" "chaîne de caractères" -

Affichage d'une chaîne de caractères terminée par " (255 au maximum)


- ." "chaîne de caractères" -

Compilation d'une chaîne de caractères terminée par " (255 au maximum) qui sera affichée à l'exécution de l'instruction


- ( -

Passage en mode commentaire jusqu'à la rencontre du caractère ")"


- .S -

Liste le contenu de la pile des données en commançant par le haut de la pile


- IMMEDIATE -

Force, lorsque utulisé seul, l'exécution de l'instruction en mode compilation (l'instruction est inutilisable en mode interprétation).
L'usage combiné de "DIRECT" et "IMMEDIATE" force l'exécution de l'instruction en mode interprétation ET en mode compilation


- DIRECT -

Force, lorsque utulisé seul, la compilation du code exécutable de l'instruction (à n'utiliser que pour les instructions codées en assembleur et très courtes pour ne pas saturer la mémoire)


n ALLOT -

Réservation de n mot de 16 bits initialisés à zéro


adresse LOAD -

Lance l'interpréteur/compilateur sur le texte pointé par "adresse"


- CREATE -

Création d'une zone de programme

- DOES> -

Définition du pointeur sur la zone de programme créée par "CREATE" et à exécuter
Pour exemple, voici les définitions des instructions "VARIABLE" et "CONSTANT":
: VARIABLE : CREATE , 0 , DOES> ;
: CONSTANT : CREATE 2, DOES> 2@ ;


n VARIABLE "nom" -

Création d'une variable 32 bits initialisée par la valeur n sur 16 bits


n CONSTANT "nom" -

Création d'une constante 32 bits initialisée par la valeur n sur 32 bits


adresse STRING "nom" -

Compilation de la chaîne de caractères dont l'adresse est spécifiée


- VLIST -

Liste le contenu du dictionnaire en commançan par la dernière instruction déclarée et en finissant par la première


- KEY caractère

Même fonction que "KEYBOARD" mais en attendant que le clavier soit activé


- INKEY caractère

Relecture du dernier caractère à partir du clavier


- KEYBOARD caractère

Lecture d'un caractère à partir du clavier (le caractère est nul si le clavier est inactif)


adresse, n EXPECT -

Lecture de n caractères qui seron stockés dans adresse


adresse MEMOIRE_LIBERE b

Libération d'un bloc mémoire.
b est nul si l'opération s'est effectuée correctement


- QUIT -

Relance de l'interpréteur FORTH


- ABORT -

Interruption logicielle et relance de l'interpréteur FORTH


- MEMOIRE_PROBLEME -

Procédure d'arrêt du système après détection d'une anomalie dans la liste chaînée.
Cette instruction est réservée au système


- T_MEMOIRE_CONTROLE adresse

Tâche de contrôle de la liste chaînée.
Cette tâche est gérée par le système


adresse,taille MEMOIRE_INITIALISE b

Initialisation de la mémoire à allocation dynamique.
b est nul si l'opération s'est effectuée correctement.
Cette instruction est réservée au système


taille MEMOIRE_ALLOUE adresse

Allocation d'un bloc mémoire ayan la taille précisée.
L'adresse est nulle si l'allocation est impossible


- MLIST -

Liste les blocs de mémoire en indiquan leur état d'occupation, leur taille et leur adresse.


- 68681_MRA adresse

- 68681_SRA adresse

- 68681_CRA adresse

- 68681_RHRA adresse

- 68681_ACR adresse

- 68681_ISR adresse

- 68681_CTU adresse

- 68681_CTL adresse

- 68681_MRB adresse

- 68681_SRB adresse

- 68681_CRB adresse

- 68681_RHRB adresse

- 68681_IVR adresse

- 68681_IPR adresse

- 68681_SOPBC adresse

- 68681_ROPBC adresse

Adresses des différents registres (octets) du circuit d'interface 68681


- 68681_IT adresse

Adresse du programme d'interruption du circui d'interface 68681


- 68681_TABLE adresse

Adresse d'une table de translation pour programmation de la vitesse detransfert des liens séries du circuit d'interface 68681


- CW_PA numéro

- CW_PR numéro

- CW_PNTT numéro

- CW_PNTR numéro

- CW_CE numéro

- CW_SA numéro

- CW_SPA numéro

- CW_SPR numéro

- CW_SCE numéro

- CW_TIMER numéro

- CW_UART_BAUD numéro

- CW_UART_CTRL numéro

- CW_UART_DATA numéro

- CW_DATA_STACK numéro

- CW_RETURN_STACK numéro

Numéros des différents registres d'extension (mots de 16 bits) du coeur FORTH.


- FLASH_ORIGINE adresse

Constante donnant l'adresse de débu de la zone de mémoire FLASH contenant le système de fichiers


- FPGA_IT adresse

Adresse du programme d'interruption du FPGA


vitesse,nbbits,nbstop,parité,rts/cts RS232_INIT -

Initialisation pour le lien série A du circuit d'interface 68681 :
vitesse en nombre de bits par seconde (toutes les vitesses normalisée entre 50 et 19200 bauds),
nbbits compris entre 5 et 8,
nbstop compris entre 1 et 2,
parité : 0 sans, 1 forcée à "0", 2 impaire, 3 paire, 4 forcée à "1",
rts/cts activés si différent de "0"


octet RS232_EMET -

Emission d'un octet sur le lien série A du circuit d'interface 68681


- RS232_RECOIT octet

Réception d'un octet depuis le lien série A du circuit d'interface 68681


n TEMPO -

Exécute une temporisation de n millisecondes


- I2C_START -

Envoi de la condition "START" au lien I2C
ATTENTION : le noyau temps réel sera figé jusqu'à l'envoi de la condition "STOP"


valeur à écrire,nbbits I2C_ECHANGE_BITS valeur lue

Echange de bits (1 à 32) sur le lien I2C
Cette instruction écrit chaque bit en partant du poids fort (selon le nombre de bits) et renvoie la valeur présente lorsque SCL est au niveau haut. Pour lire une valeur, il suffi de mettre tous les bits à "1"


- I2C_STOP -

Envoi de la condition "STOP" au lien I2C


- 68681_INIT -

Initialisation du circuit d'interface 68681


- SWI_IT adresse

- OP_IT adresse

- DS_IT adresse

- RS_IT adresse

Constantes donnant les adresses des programmes d'interruption (vecteurs)


- FPGA_INIT -

Initialisation du FPGA


num_bloc,adr FLASH_BLOC_LIT erreur

Lecture du bloc de 512 octets numéro num_bloc à l'adresse adr.
erreur est nul lorsque la lecture est correcte


adr,num_bloc FLASH_BLOC_ECRIT erreur

Ecriture du bloc de 512 octets numéro num_bloc à partir de l'adresse adr.
erreur est nul lorsque l'écriture est correcte


num_sec FLASH_SECTEUR_EFFACE erreur

Effacement du secteur de 64 Kilo Octets numéro num_sec.
erreur est nul lorsque l'effacement est correct


x[n],adr_biquad BIQUAD y[n]

Calcul de la sortie y[n] du filtre biquad décrit par adr_biquad et dont la valeur d'entrée est x[n]:
- x[n] est l'échantillon d'entrée,
- adr_biquad est l'adresse des paramètres du filtre,
adr_biquad --> N a2<<N b2<<N w[n-2] a1<<N b1<<N w[n-1] a0<<N
- y[n] est l'échantillon de sortie calculé comme suit,
w[n] = [x[n]<<N + b1<<N*w[n-1] + b2<<N*w[n-2]]>>N
y[n] = [a0<<N*w[n] + a1<<N*w[n-1] + a2<<N*w[n-2]]>>N
w[n-2] = w[n-1]
w[n-1] = w[n]


- CW_VGA numéro

Numéros du registre d'extension (mots de 16 bits) de l'interface VGA du coeur FORTH.


limites,teinte,x1,y1,x2,y2 TRACE_REC limites

Tracé d'un rectangle:
limites: pointeur sur xmin,ymin,xmax,ymax decrivant la zone d'affichage,
teinte: teinte du pixel ou inversion video si > 255 ,
x1,y1,x2,y2: coordonnees des coins en absolu par rapport a l'ecran.


limites,dx,dy,teinte,x,y,adr_motif TRACE_MOTIF limites,dx,dy,teinte,x,y

Tracé d'un motif défini par une matrice:
limites: pointeur sur xmin,ymin,xmax,ymax decrivant la zone d'affichage,
dx,dy: largeur et hauteur de la matrice en nombre de points (dx <= 16),
teinte: teinte du pixel,
x,y: coordonnees absolues du coin superieur gauche du motif,
adr_motif : adresse de la matrice du motif.


limites,teinte,gen_car,x0,y0,adr,nbc TRACE_CHAINE limites,teinte,gen_car,x0,y0,adr

Tracé d'une chaine de caractères:
limites: pointeur sur xmin,ymin,xmax,ymax decrivant la zone d'affichage,
teinte: teinte du pixel,
gen_car: adresse du générateur de caractères,
x0,y0: coordonnees absolues du coin superieur gauche du premier caractère,
adr: adresse de la chaîne de caractères,
nbc: nombre de caractères.


limites,image,x1,y1,x2,y2 TRACE_LIGNE limites

Tracé d'une ligne:
limites: pointeur sur xmin,ymin,xmax,ymax decrivant la zone d'affichage,
teinte: teinte du pixel ou inversion video si > 255 ,
x1,y1,x2,y2: coordonnees des coins en absolu par rapport a l'écran des extrémités.


limites,image,x0,y0 ECRIT_REC limites

Ecriture d'une image rectangulaire:
limites: pointeur sur xmin,ymin,xmax,ymax decrivant la zone d'affichage,
image: pointeur sur le contenu de l'image
dx sur 2 octets
dy sur 2 octets
teinte1 sur 1 octet
...
teinteN sur 1 octet avec N = dx*dy,
x0,y0: coordonnées du coin en haut et a gauche en absolu par rapport a l'écran.


limites,image,x0,y0 LIT_REC limites

Lecture d'une image rectangulaire:
limites: pointeur sur xmin,ymin,xmax,ymax decrivant la zone d'affichage,
image: pointeur sur le contenu de l'image
dx sur 2 octets
dy sur 2 octets
teinte1 sur 1 octet
...
teinteN sur 1 octet avec N = dx*dy,
x0,y0: coordonnées du coin en haut et a gauche en absolu par rapport a l'écran.


- AF_SOURIS -

Affichage de la souris.


- EF_SOURIS -

Effacement de la souris.


- FENETRE: "nom" -

Création de l'entête d'une nouvelle fenêtre (passage en mode compilation)


code,adr F_EXECUTE -

Execution du programme lié à la fenêtre pointée par adr et avec le paramètre code


adr,rouge,vert,bleu TRAMAGE_RVB adr

Génération d'une matrice de 8x8 pixels 256 couleurs à l'adresse adr pour simulation d'une couleur 24 bits


- VGA_INIT -

Initialisation de l'interface graphique.


flottan FNEGATE -flottant

Valeur opposée (inversion de S)


flottan FABS abs(flottant)

Valeur absolue (mise à 0 de S)


exposant,n* NORM flottant

Normalisation de la mantisse d'un nombre
*: n occupe 2 niveaux de la pile en IEEE double précision


flottant1,flottant2 F+ flottant1+flottant2

Addition


flottant1,flottant2 F- flottant1-flottant2

Soustraction


flottant1,flottant2 F* flottant1*flottant2

Multiplication


flottant1,flottant2 F/ flottant1/flottant2

Division


flottan INT n

Conversion flottant vers entier signé (32 bits)


n UFLOAT flottant

Conversion entier signé (32 bits) vers flottant


- FORTH -

Liste le descriptif du noyau FORTH


- FORGET "nom" -

Destruction de toutes les instructions créées à partir de "nom"


- T_RS232_CONNECTE adresse

Tâche effectuant la connexion entre le lien série et les entrées/sorties de l'interpréteur FORTH (instructions "KEY", "INKEY", "KEYBOARD" et "EMIT")


- T_VOYANT adresse

Tâche gérant le clignotemen du voyant de la carte (250 ms allumé et 250 ms éteint)


- TELECHARGEMENT -

Instruction de telechargement avec compilation du fichier texte en provenance d'une liaison terminale


- DEMARRAGE -

Réinitialisation complète du système (RESET logiciel)


- FUNIX adresse

- FFLASH adresse

Adresse pointant le programme associé à la gestion du système de fichier correspondant.
Utilisation de ces adresses:
0,adresse EXECUTE adr_mem,erreur --> installation du système "adresse",
1,adresse EXECUTE - --> formattage du système "adresse",
adr_chaine,lec/ecr,2,adresse EXECUTE desc,taille/erreur --> ouverture d'un fichier du système "adresse",
adr_mem,nbc,lec/ecr,desc,3,adresse EXECUTE nbc',taille/erreur --> accès au fichier "desc" du système "adresse",
desc,4,adresse EXECUTE erreur --> fermeture du fichier "desc" du système "adresse",
adr_chaine,5,adresse EXECUTE erreur --> création d'un répertoire dans le système "adresse",
adr_chaine,6,adresse EXECUTE erreur --> suppression d'un répertoire dans le système "adresse",
adr_chaine,7,adresse EXECUTE adr_mem,erreur --> description d'un répertoire dans le système "adresse".


n [IF] - instructions

- [THEN] -

Les instructions entre "[IF]" e "[THEN]" sont interprétées/compilées si n est différent de 0

n [IF] - instructions 1

- [ELSE] - instructions 2

- [THEN] -

Si n est différent de 0, seules les instructions 1 sont interprétées/compilées, sinon ce sont les instructions 2


- [LABEL] "nom" -

- [GOTO] "nom" -

"[GOTO] nom" force l'interprétation/compilation des instructions qui suivent "[LABEL] nom"


- [VARIABLE] "nom" adresse

"[VARIABLE]" crée, si elle n'existe pas encore, ou donne l'adresse d'une variable 32 bits "nom"


- V_BOUTON_GAUCHE adresse

Variable donnant l'état du bouton gauche de la souris (actionné si différente de 0)


- V_BOUTON_MILIEU adresse

Variable donnant l'état du bouton du milieu de la souris (actionné si différente de 0)


- V_BOUTON_DROIT adresse

Variable donnant l'état du bouton droit de la souris (actionné si différente de 0)


- V_DX_SOURIS adresse

Variable pour la gestion du déplacemen en abcisse de la souris


- V_DY_SOURIS adresse

Variable pour la gestion du déplacemen en ordonnée de la souris


- T_BIP adresse

Tâche gérant le la génération du bip sonnore


durée,fréquence BIP -

Emission d'un bip sonnore avec la durée en millisecondes et la fréquence en Hertz


- T_RHM_CONNECTE adresse

Tâche effectuant la connexion entre le clavier, la souris et les entrées/sorties de l'interpréteur FORTH
(instructions "KEY", "INKEY", "KEYBOARD","EMIT"...)


- CW_PORT numéro

Numéros du registre d'extension (mots de 16 bits) du port parallèle du coeur FORTH.


- T_VOYANT adresse

Tâche gérant le clignotemen du voyant de la carte


- VOYANT_INIT -

Initialisation du clignotement du voyan de la carte.


- V_NPA adresse

Variable contenant le nombre pseudo aléatoire courant (32 bits)


- NPA nombre

Nouvelle itération du nombre pseudo aléatoire (32 bits)


- TABLE_SIN adresse

Adresse de la table de sinus pour calcul en B.A.M.


- TABLE_ATAN adresse

Adresse de la table de l'arctangeante pour calcul en B.A.M.


n SIN sin(n)

Calcul du sinus de n en B.A.M.


n COS sin(n)

Calcul du cosinus de n en B.A.M.


n ASIN arcsin(n)

Calcul de l'arcsinus de n en B.A.M.


n ACOS arccos(n)

Calcul de l'arccosinus de n en B.A.M.


n,m ATAN arctan(n/m)

Calcul de l'arctangeante de n en B.A.M.


flottant,n PUISSANCE flottant^n

Elévation du flottant à la puissance n


flottant1,flottant2 F/MOD flottant1-(n*flottant2),n

Calcul du reste et du quotient (entier signé 32 bits) de la division de 2 flottants


flottant,adresse FCONVERT flottant',adresse'

Conversion de la chaîne de caractère pointée par adresse en nombre flottant jusqu'au premier caractère non convertible


- S_PINFINI adresse

Chaine de caractere contenant "+infini"


- S_ZERO adresse

Chaine de caractere contenant "0"


- S_MINFINI adresse

Chaine de caractere contenant "-infini"


flottan <##F#> adresse,n

Conversion d'un flottant en chaîne de n caractères pointée par adresse
6 chiffres significatifs en simple précision et 12 en double précision


flottan F. -

Affichage d'un flottant sur la sortie terminal


flottan FSQRT flottant'

Extraction de la racine carrée d'un flottant


flottan FEXP0 flottant'

Calcul de l'exponentielle d'un flottant par développement limité


flottan FLN0 flottant'

Calcul du logarithme népérien d'un flottant par développement limité


flottan FEXP flottant'

Calcul de l'exponentielle d'un flottant


flottan FLN flottant'

Calcul du logarithme népérien d'un flottant


- FPI flottant

Constante PI


flottan FATAN0 flottant'

Calcul de l'arc-tangente d'un flottant par développement limité


arc,y,x,ki,fatan(ki) AJUSTEXY arc',y',x'

Sous programme pour calcul de la tangente de l'angle moitié


flottan FTANU flottant'

Calcul de la tangente de l'angle moitié


flottan FTAN flottant'

Calcul de la tangente


flottan FSIN flottant'

Calcul du sinus


flottan FCOS flottant'

Calcul du cosinus


flottan FATAN flottant'

Calcul de l'arc-tangente


flottan FASIN flottant'

Calcul de l'arc-sinus


flottan FACOS flottant'

Calcul de l'arc-cosinus


r1,v1,b1,...,rn,vn,bn,n,dx,dy,mode DEGRADE_- adresse

Création d'une image concaténée avec plusieurs couleurs dégradées (horizontal) à utiliser avec ECRIT_REC.
r1,v1,b1,...,rn,vn,bn: teinte rouge, verte et bleue de chaque couleur, 1 est la couleur depuis la droite
n: nombre de couleurs, la valeur minimale est 2
dx,dy: largeur et hauteur de l'image en nombre de pixels, la valeur minimale est 1
mode: 0 pour des lignes, autre valeur pour pastel
adresse: localisation de la mémoire de l'image, elle doi être libérée avec MEMOIRE_LIBERE si non utilisée.


r1,v1,b1,...,rn,vn,bn,n,dx,dy,mode DEGRADE_| adresse

Création d'une image concaténée avec plusieurs couleurs dégradées (vertical) à utiliser avec ECRIT_REC.
r1,v1,b1,...,rn,vn,bn: teinte rouge, verte et bleue de chaque couleur, 1 est la couleur depuis le bas
n: nombre de couleurs, la valeur minimale est 2
dx,dy: largeur et hauteur de l'image en nombre de pixels, la valeur minimale est 1
mode: 0 pour des lignes, autre valeur pour pastel
adresse: localisation de la mémoire de l'image, elle doi être libérée avec MEMOIRE_LIBERE si non utilisée.


r1,v1,b1,...,rn,vn,bn,n,dx,dy,mode DEGRADE_\ adresse

Création d'une image concaténée avec plusieurs couleurs dégradées (diagonal /) à utiliser avec ECRIT_REC.
r1,v1,b1,...,rn,vn,bn: teinte rouge, verte et bleue de chaque couleur, 1 est la couleur depuis le bas à droite
n: nombre de couleurs, la valeur minimale est 2
dx,dy: largeur et hauteur de l'image en nombre de pixels, la valeur minimale est 1
mode: 0 pour des lignes, autre valeur pour pastel
adresse: localisation de la mémoire de l'image, elle doi être libérée avec MEMOIRE_LIBERE si non utilisée.


r1,v1,b1,...,rn,vn,bn,n,dx,dy,mode DEGRADE_/ adresse

Création d'une image concaténée avec plusieurs couleurs dégradées (diagonal \) à utiliser avec ECRIT_REC.
r1,v1,b1,...,rn,vn,bn: teinte rouge, verte et bleue de chaque couleur, 1 est la couleur depuis le bas à gauche
n: nombre de couleurs, la valeur minimale est 2
dx,dy: largeur et hauteur de l'image en nombre de pixels, la valeur minimale est 1
mode: 0 pour des lignes, autre valeur pour pastel
adresse: localisation de la mémoire de l'image, elle doi être libérée avec MEMOIRE_LIBERE si non utilisée.


- XMODEM_TAMPON adresse

Adresse du tampon d'émission/réception de 128 octets


- XMODEM_ETAT adresse

Variable pour gestion du transfert


- XMODEM_BLOC adresse

Variable contenant le numéro de bloc en cours de transfert


- XMODEM_TEMPO adresse

Variable pour gestion des temporisations liées au protocole


- XMODEM_SOMME adresse

Variable pour calcul de la somme de vérification


- INPUT_FILE? nbr_octets

Instruction donnant le nombre d'octets disponibles dans INPUT_FILE


- RS232_RECEIVE_FILE? nbr_octets

Instruction donnant le nombre d'octets disponibles dans RS232_RECEIVE_FILE


- RS232_TRANSMIT_FILE? nbr_octets

Instruction donnant le nombre d'octets disponibles dans RS232_TRANSMIT_FILE


- OUTPUT_FILE? nbr_octets

Instruction donnant le nombre d'octets disponibles dans OUTPUT_FILE


- T_XMODEM_CONNECTE adresse

Tâche de gestion XMODEM (remplace T_RS232_CONNECTE pendant la durée du transfert)


rec/emi XMODEM_OUVRE erreur

Ouverture d'un transfert XMODEM en émission si rec/emi est nul et en réception sinon.
erreur est nul lorsque l'opération est correcte


- XMODEM_OCTET_RECOIT octet,erreur

Réception d'un octet.
erreur est nul si l'octet est valide, sinon la réception est terminée


octet XMODEM_OCTET_EMET erreur

Emission d'un octet.
erreur est nul si l'émission est correcte


- XMODEM_FERME -

Fin du transfert en émission ou en réception


adresse XMODEM_RECOIT longueur

Réception d'un fichier à l'adresse spécifiée sur la longueur (en octets) indiquée en fin de transfert


adresse,longueur XMODEM_EMET -

Emission d'un fichier situé à l'adresse et sur la longueur (en octets) spécifiées


- S_NOM_FLASH adresse

Chaine de caractere contenant "Systeme_de_fichier_FLASH" qui est son nom par défaut


- FLASH_BLOC_ALLOUE numéro/erreur

Réquisition d'un bloc de 512 octets.
Si le numéro est nul, c'est qu'il n'y a plus de bloc disponible.
Si le numéro est négatif, il s'agit d'un code d'erreur


numéro FLASH_BLOC_LIBERE -

Restitution d'un bloc de 512 octets avec son numéro.


numéro FLASH_BLOC_ETAT état

Retourne 0 si le bloc numéro est libre.


adr_tampon FLASH_FICHIER_LIT taille/erreur,octet

Lecture séquentielle d'un octet du fichier ouvert avec adr_tampon.
taille/erreur peut avoir les valeur suivantes:
taille restante du fichier si lecture correcte (>=0)
-1 si une erreur est survenue pendant la lecture
-2 si adr_tampon ne correspond à aucun fichier en cours de lecture


octet,adr_tampon FLASH_FICHIER_ECRIT taille/erreur

Ecriture séquentielle d'un octet dans le fichier ouvert avec adr_tampon.
taille/erreur peut avoir les valeur suivantes:
>0 si écriture correcte, la valeur étant le nombre d'octets écrits (taille)
-10 si une erreur est survenue pendant l'écriture
-11 si le système de fichier est saturé
-12 si adr_tampon ne correspond à aucun fichier en cours d'écriture


adr_tampon FLASH_FICHIER_FERME erreur

Fermeture du fichier ouvert avec adr_tampon.
erreur peut avoir les valeur suivantes:
0 si fermeture correcte
code de l'erreur survenue pendant les opérations précédantes
-20 si une erreur est survenue pendant l'écriture
-21 si le système de fichier est saturé
-22 si adr_tampon ne correspond à aucun fichier en cours d'utilisation


- FLASH_FORMATE -

Formatage du système de fichier en mémoire FLASH


adr_chemin/nom,lec/ecr FLASH_FICHIER_OUVRE adr_tampon,taille/erreur

Ouverture d'un fichier décrit par la chaîne de caractères adr_chemin/nom en écriture si lec/ecr est nul sinon en lecture.
adr_tampon est l'adresse du descripteur du fichier ouvert.
taille/erreur peut avoir les valeur suivantes:
taille du fichier si ouverture en lecture correcte (0 si le fichier n'existe pas)
0 ou taille du fichier déjà existant si ouverture en écriture correcte
-40 si il est impossible de lire un bloc
-41 si la mémoire est insuffisante pour réaliser l'ouverture
-42 si le chemin du fichier est inconnu
-43 si une écriture de fichier est déjà en cours alors qu'une écriture est demandée
-44 si le fichier ouvert est un répertoire


- FLASH_INSTALLE erreur

Installation du système de fichier en mémoire FLASH.
erreur est nul si correcte, sinon:
-30 si le système de fichier est indéchiffrable
-31 si la mémoire est insuffisante pour formater
-32 si la mémoire est insuffisante pour l'installation


- FICHIER_CHEMIN? adresse

Alloue de la mémoire pointée par adresse et contenant une chaine de caractères avec le chemin courant.
La mémoire allouée devra être restituée (MEMOIRE_LIBERE) après utilisation.
Retourne 0 s'il ny a plus de mémoire disponible ou que le système de fichier n'est pas fonctionnel


adr_nom,nbc CHEMIN_CONCATENE adr_mem

Alloue de la mémoire pointée par adr_mem et contenant la chaîne de caractère résultante de la concaténation du chemin courant et de la chaîne pointée par adr_nom de longueur nbc.
La mémoire allouée devra être restituée (MEMOIRE_LIBERE) après utilisation.
Retourne 0 s'il ny a plus de mémoire disponible ou que le système de fichier n'est pas fonctionnel


fadr FMOUNT -

Installation du système de fichier "fadr"


fadr FUNMOUNT -

Suppression du système de fichier "fadr"


- FINIT -

Initialisation avec installation des système de fichiers intégrés


adr_chemin/nom,lec/ecr FOPEN adr_desc,taille/erreur

Ouverture d'un fichier décrit par la chaîne de caractères adr_chemin/nom en écriture si lec/ecr est nul sinon en lecture.
adr_desc est l'adresse du descripteur du fichier ouvert.
taille/erreur peut être:
la taille du fichier si ouverture en lecture correcte (0 si le fichier n'existe pas)
0 ou taille du fichier déjà existant si ouverture en écriture correcte
une erreur si la valeur est négative


adr_mem,nbc,adr_desc FREAD nbc'/erreur

Lecture de nbc octets du fichier ouvert décri par adr_desc à l'adresse adr_mem.
nbc'/erreur donne le nombre de caractères lus ou une erreur si négatif


adr_mem,nbc,adr_desc FWRITE erreur

Ecriture de nbc octets depuis l'adresse adr_mem dans le fichier ouvert décrit par adr_desc.
erreur est nul si l'écriture est correcte


adr_desc FCLOSE erreur

Fermeture du fichier ouvert décri par adr_desc.
erreur est nul si la fermeture est correcte


adr_chemin/nom MKDIR erreur

Création du répertoire décri par la chaîne de caractères adr_chemin/nom.
erreur est nul si la création est correcte


adr_chemin/nom RMDIR erreur

Suppression du répertoire décri par la chaîne de caractères adr_chemin/nom.
erreur est nul si la suppression est correcte


adr_chaine/nom LDIR adr_mem,erreur

Alloue de la mémoire qui contiendra la description du répertoire pointé par la chaîne de caractères adr_chaine/nom.
adr_mem, si différent de 0 et erreur nul, pointe la séquence suivante:
nombre de fichiers/dossiers sur 4 octets
taille du fichier/dossier 1 sur 4 octets
type fichier (1), dossier (2) ou inconnu (0) 1 sur 4 octets
numéro de création du fichier/dossier 1 sur 4 octets
nombre de modifications du fichier/dossier 1 sur 4 octets
Chaîne de caractère avec nom du dossier/fichier 1 sur n*4 octets
taille du fichier/dossier 2 sur 4 octets
...
Chaîne de caractère avec nom du dernier dossier/fichier sur n*4 octets
0 pour fin de la liste sur 4 octets
La mémoire allouée devra être restituée (MEMOIRE_LIBERE) après utilisation.


- FORMATE -

Programme de gestion de l'effacement des systèmes de fichiers


adr_nom REPERTOIRE_LISTER adr_mem,erreur

Alloue de la mémoire qui contiendra la description du répertoire pointé par la chaîne de caractères adr_nom.
adr_mem, si différent de 0 et erreur nul, pointe la séquence suivante:
nombre de fichiers/dossiers sur 4 octets
taille du fichier/dossier 1 sur 4 octets
type fichier (1), dossier (2) ou inconnu (0) 1 sur 4 octets
numéro de création du fichier/dossier 1 sur 4 octets
nombre de modifications du fichier/dossier 1 sur 4 octets
Chaîne de caractère avec nom du dossier/fichier 1 sur n*4 octets
taille du fichier/dossier 2 sur 4 octets
...
Chaîne de caractère avec nom du dernier dossier/fichier sur n*4 octets
0 pour fin de la liste sur 4 octets
La mémoire allouée devra être restituée (MEMOIRE_LIBERE) après utilisation.


adr_nom,nbc,adr_mem,taille_max FICHIER_LIRE erreur

Lecture d'un fichier à l'adresse adr_mem sur une taille maximale taille_max et dont le chemin/nom est pointé par la chaîne de caractères adr_nom de longueur nbc.
erreur est nul si tout s'est bien déroulé


adr_mem,taille,adr_nom,nbc FICHIER_ECRIRE erreur

Ecriture d'un fichier à partir de l'adresse adr_mem sur une longueur taille et dont le chemin/nom est pointé par la chaîne de caractères adr_nom de longueur nbc.
erreur est nul si tout s'est bien déroulé


- PWD -

Commande affichant les caractéristiques du système de fichier et le chemin courant


- CD" chemin" -

Commande permettant de se déplacer dans les système de fichier


- LS" chemin" -

Affichage du contenu du répertoire "chemin"


- MKDIR" chemin/nom" -

Création du répertoire "chemin/nom"


- RM" chemin/nom" -

Suppression du fichier "chemin/nom"


- RMDIR" chemin/nom" -

Suppression du répertoire "chemin/nom"


- MORE" chemin/nom" -

Affichage sur l'écran du fichier de texte "chemin/nom"


adr_nom,nbc CF -

Routine commune à CF" et BINAIRE_CHARGE


- CF" chemin/nom" -

Compilation du fichier source FORTH "chemin/nom"


- CP" chemin1/nom1 chemin2/nom2" -

Copie de fichier


- MV" chemin1/nom1 chemin2/nom2" -

Déplacement de fichier


- XMODEM_RECOIT" chemin/nom" -

Réception du fichier "chemin/nom" sous protocole XMODEM


- XMODEM_EMET" chemin/nom" -

Transmission du fichier "chemin/nom" sous protocole XMODEM


- BINAIRE_INDEX adresse

Variable contenant l'adresse de chargemen du fichier "LANCE.BIN"


- S_BINAIRE adresse

Chaine de caractere contenant "./BINAIRES/LANCE.BIN"


- BINAIRE_CREE -

Création du fichier "LANCE.BIN"


- BINAIRE_CHARGE -

Chargement du fichier "LANCE.BIN"


- S_LANCE adresse

Chaine de caractere contenant "./LANCE"


- LANCE -

Chargement du fichier "LANCE" pour démarrage du système


- CARACTERES_GRAPHIQUES adresse

Adresse du générateur de caractères alphanumériques avec une matrice de 7x10 (10 mots de 16 bits par caractères)


limites,dx,dy,teinte,x,y,adr_motif TRACE_MOTIF_RELIEF limites,dx,dy,teinte,x,y

Tracé d'un motif défini par une matrice avec effet 3D:
limites: pointeur sur xmin,ymin,xmax,ymax decrivant la zone d'affichage,
dx,dy: largeur et hauteur de la matrice en nombre de points (dx <= 16),
teinte: teinte du pixel,
x,y: coordonnees absolues du coin superieur gauche du motif,
adr_motif : adresse de la matrice du motif.


limites,teinte,gen_car,x0,y0,adr,nbc TRACE_CHAINE_RELIEF limites,teinte,gen_car,x0,y0,adr

Tracé d'une chaine de caractères avec effet 3D:
limites: pointeur sur xmin,ymin,xmax,ymax decrivant la zone d'affichage,
teinte: teinte du pixel,
gen_car: adresse du générateur de caractères,
x0,y0: coordonnees absolues du coin superieur gauche du premier caractère,
adr: adresse de la chaîne de caractères,
nbc: nombre de caractères.


- COINS adresse

Adresse d'un générateur de caractères spécifiques pour l'instruction TRACE_CONTOUR


limites,teinte,x1,y1,x2,y2,enf/rel TRACE_CONTOUR limites

Tracé d'un contour biseauté rectangulaire (3 pixels):
limites: pointeur sur xmin,ymin,xmax,ymax decrivant la zone d'affichage,
teinte: teinte du fond,
x1,y1,x2,y2: coordonnees des coins en absolu par rapport a l'ecran,
enf/rel: choix de l'aspect enfoncé ou relaché du contour.


x1,y1,x2,y2 TRACE_CADRE x1,y1,x2,y2

Tracé d'un cadre rectangulaire (3 pixels) en vidéo inversée.
Cette routine est utilisée par l'Interface Utilisateur Graphique pour les manipulations des fenêtres:
x1,y1,x2,y2: coordonnees des coins en absolu par rapport a l'ecran.


limites,teinte,x1,y1,x2,y2,position,taille,total,fond TRACE_POTAR_V limites

Affichage d'un potentiomètre rectiligne vertical:
limites: pointeur sur xmin,ymin,xmax,ymax decrivant la zone d'affichage,
teinte: teinte du potentiomètre,
x1,y1,x2,y2: coordonnees des coins en absolu par rapport a l'ecran,
position: position du curseur (0 à total),
taille: taille du curseur (0 à total),
total: hauteur du potentiomètre,
fond: teinte de l'empreinte du potentiomètre.


limites,teinte,x1,y1,x2,y2,position,taille,total,fond TRACE_POTAR_H limites

Affichage d'un potentiomètre rectiligne horizontal:
limites: pointeur sur xmin,ymin,xmax,ymax decrivant la zone d'affichage,
teinte: teinte du potentiomètre,
x1,y1,x2,y2: coordonnees des coins en absolu par rapport a l'ecran,
position: position du curseur (0 à total),
taille: taille du curseur (0 à total),
total: hauteur du potentiomètre,
fond: teinte de l'empreinte du potentiomètre.


- PRESSE_PAPIER adresse

Adresse du tampon pour copier et coller


- FOND_ECRAN adresse

Adresse du programme appelé lorsqu'il y a action sur un bouton de la souris dont le curseur est sur le fond de l'écran


- ACTION_UTILISATEUR adresse

Variable utilisée par la gestion du mode économiseur d'écran


- SOURIS dx,dy

Routine donnant le déplacement de la souris en x et y.
Ce déplacement est remis à zéro pour l'appel suivant


- BOUTON_GAUCHE enf/rel

Routine donnant l'état du bouton gauche de la souris (variable V_BOUTON_GAUCHE):
enf/rel: 0 si pas d'action utilisateur


- BOUTON_MILIEU enf/rel

Routine donnant l'état du bouton du milieu de la souris (variable V_BOUTON_MILIEU):
enf/rel: 0 si pas d'action utilisateur


- BOUTON_DROIT enf/rel

Routine donnant l'état du bouton droi de la souris (variable V_BOUTON_DROIT):
enf/rel: 0 si pas d'action utilisateur


- SYMBOLES_MENU adresse

Adresse du générateur des symboles du coins des fenêtres en haut à droite


- GRAPHIQUES_16 adresse

Adresse d'un générateur de caractères graphiques avec une matrice de 16x16 (16 mots de 16 bits par caractères).
Ce générateur est utilisé par l'Interface Graphique Utilisateur du système


- GRAPHIQUES_12 adresse

Adresse d'un générateur de caractères graphiques avec une matrice de 12x12 (12 mots de 16 bits par caractères).
Ce générateur est utilisé par l'Interface Graphique Utilisateur du système


x1,y1,x2,y2,adr_f,index_f SPF_RETRACE x1,y1,x2,y2,adr_f,index_f'

Routine récursive de F_RETRACE:
x1,y1,x2,y2: coordonnees des coins en absolu par rapport a l'ecran,
adr_f: adresse de description de la fenêtre supérieure
index_f,index_f': index des fenêtres raffraichies.


x1,y1,x2,y2,adr_f F_RETRACE -

Routine raffraichissant le contenu de l'écran graphique dans la zone indiquée:
x1,y1,x2,y2: coordonnees des coins en absolu par rapport a l'ecran,
adr_f: si nul alors raffraichissement de toute la zone
sinon raffraichissement de seulement la partie visible
de la fenêtre possédant l'adresse de description correspondante.


x0,y0,adr_f F_POSITION -

Initialisation de la position initiale d'une fenêtre:
x0,y0: coordonnees du coin en haut à gauche de la fenêtre en absolu par rapport a l'écran,
adr_f: adresse de description de la fenêtre.


dx,dy,adr_f F_TAILLE -

Initialisation de la taille initiale d'une fenêtre:
dx,dy: largeur et hauteur initiales en pixels,
adr_f: adresse de description de la fenêtre.


dxmin,dymin,dxmax,dymax,adr_f F_LIMITES -

Initialisation des tailles minimales et maximales d'une fenêtre devenant ainsi redimensionnable:
dxmin,dymin: largeur et hauteur minimales en pixels,
dxmax,dymax: largeur et hauteur maximales en pixels,
adr_f: adresse de description de la fenêtre.


adr_f F_ACTIVE -

Activation d'une fenêtre:
adr_f: adresse de description de la fenêtre.


adr_f F_AJOUTE -

Ajout du descripteur d'une nouvelle fenêtre et activation de celle-ci:
ATTENTION: ne peut être utilisé que lorsque tous les paramètres de la fenêtre sont initialisés,
adr_f: adresse de description de la fenêtre.


adr_f F_RETIRE -

Suppression d'une fenêtre:
adr_f: adresse de description de la fenêtre.


x0,y0,dx,dy,adr_f F_MODIFIE -

Déplacement et redimensionnement d'une fenêtre:
x0,y0: coordonnées du coin en haut à gauche de la fenêtre en absolu par rapport a l'écran,
dx,dy: largeur et hauteur en pixels,
adr_f: adresse de description de la fenêtre.


x,y F_SELECTION adr_f

Recherche du descripteur de la fenêtre supérieure aux coordonnées x et y:
x,y: coordonnées en absolu par rapport à l'écran,
adr_f: adresse de description de la fenêtre ou 0 si fond de l'écran


- FLIST -

Liste les fenêtres en indiquant leurs coordonnées et leurs dimensions


- T_CONTROLE adresse

Tâche de gestion de l'Interface Graphique Utilisateur


adr_s DIALOGUE_MESSAGE -

Boîte de dialogue pour affichage d'un message:
adr_s: adresse de la chaîne de caractères du message.


adr_prgm,adr_s DIALOGUE_EXECUTE -

Boîte de dialogue pour indiquer l'exécution d'un programme:
adr_prgm: adresse du programme à exécuter,
adr_s: adresse de la chaîne de caractères du commentaire.


b,adr_s DIALOGUE_OUI/NON b'

Boîte de dialogue pour poser une question avec réponse oui ou non:
b: réponse par défaut (0 pour non),
adr_s: adresse de la chaîne de caractères de la question,
b': réponse de l'utilisateur.


n,adr_s DIALOGUE_CHOIX n'

Boîte de dialogue pour demander le choix parmi plusieurs options:
n: numéro de la ligne du choix par défaut,
adr_s: adresse de la chaîne de caractères des options (un retour chariot sert de séparateur),
n': numéro de la ligne correspondant au choix de l'utilisateur.


n,base,adr_s DIALOGUE_NOMBRE n'

Boîte de dialogue pour demander un nombre entier:
n: valeur initiale du nombre,
base: base d'affichage du nombre,
adr_s: adresse de la chaîne de caractères du commentaire,
n': valeur finale du nombre.


adr_t,nbc_max,adr_s DIALOGUE_TEXTE nbc

Boîte de dialogue pour demander une chaîne de caractères:
adr_t: adresse de la chaîne de caractères,
nbc_max: nombre maximum de caractères,
adr_s: adresse de la chaîne de caractères du commentaire,
nbc: nombre final de caractères.


- DIALOGUE_BOUTON_GAUCHE -

Gestion du curseur de la souris pendant l'action sur son bouton gauche (utilisé par l'Interface Graphique utilisateur).


adr_nom,lec/ecr DIALOGUE_FICHIER adr'_nom

Boîte de dialogue pour naviguer dans le système de fichier:
adr_nom: adresse de la chaîne de caractères contenan le chemin et le nom du fichier initial,
lec/ecr: demande de lecture ou écriture du fichier (0 pour écriture),
adr'nom: adresse de la chaîne de caractères contenan le chemin et le nom du fichier choisi.
adr'nom est égal à -1 si l'utilisateur a choisi d'annuler l'action ou si un problème d'accès au système de fichiers s'est produit.


teinte,adr_s DIALOGUE_PALETTE teinte'

Boîte de dialogue pour demander une couleur sur 8 bits:
teinte: couleur par défaut,
adr_s: adresse de la chaîne de caractères du commentaire,
teinte': couleur finale (-1 si opération annulée par l'utilisateur).


rouge,vert,bleu,adr_s DIALOGUE_RVB rouge',vert',bleu',b

Boîte de dialogue pour demander une couleur sur 24 bits:
rouge,vert,bleu: couleur par défaut,
adr_s: adresse de la chaîne de caractères du commentaire,
rouge',vert',bleu': couleur finale,
b: différent de 0 si opération annulée par l'utilisateur.


f,adr_s DIALOGUE_FLOTTANT f'

Boîte de dialogue pour demander un nombre à virgule flottante:
f: valeur initiale du nombre,
adr_s: adresse de la chaîne de caractères du commentaire,
f': valeur finale du nombre.


- F_FORTH adresse

Adresse du descripteur de la fenêtre FORTH


- T_FORTH adresse

Tâche de gestion de la fenêtre FORTH


- A_FORTH -

Programme de lancement de l'Interface Graphique Utilisateur


- INSTALLE_FOND_ECRAN -

Programme de gestion du fond d'écran


- CALCULETTE -

Application calculatrice en nombres à virgule flottante (64 bits)


- BECANE -

Application calculatrice en nombres entiers (32 bits)


- MEM_EDIT -

Application édition du contenu de la mémoire du système


- TXT_EDIT -

Application édition de texte


- XMD_EDIT -

Application de transfert sous protocole XMODEM


n1h,n1l,n2h,n2l ++ (n1+n2)h,(n1+n2)l

Adition au format 32 bits


n1h,n1l,n2h,n2l -- (n1-n2)h,(n1-n2)l

Soustraction au format 32 bits


- IDLE -

Désactivation de l'horloge du processeur


- SLEEP -

Désactivation de toutes les horloges


- ITRX1 adresse

Adresse d'un programme de remplacement pour l'interruption de réception de l'UART1 (2 mots de 16 bits)


- TELEC adresse

Adresse de la durée en milliseconde avant la fin d'un téléchargement


- CNTITP adresse

Adresse d'un compteur d'interruptions parasites initialisé à 0 au RESET


- MEM_PRGHERE adresse

Adresse de la valeur de "PRGHERE" (2 mots de 16 bits)


- PRG_PNT adresse

Adresse d'une variable de 32 bits contenant le pointeur du bloc de mémoire FLASH en cours de modification


- PRGHERE adrh,adrl

Dépose sur la pile l'adresse de compilation


adrh,adrl >PRGHERE -

Initialise l'adresse de compilation


adrh,adrl PRG@ nh,nl

Lecture d'un mot de 24 bits de la mémoire FLASH


nh,nl,adrh,adrl PRG! -

Ecriture d'un mot de 24 bits dans la mémoire FLASH


nh,nl PRG, -

Compilation d'un mot de 24 bits
L'adresse de compilation (PRGHERE) est incrémenté de 2


adrh,adrl EEP@ n

Lecture d'un mot de 16 bits de la mémoire EEPROM
UNIQUEMENT POUR PIC24F ET dsPIC30F


n,adrh,adrl EEP! -

Ecriture d'un mot de 16 bits dans la mémoire EEPROM
UNIQUEMENT POUR PIC24F ET dsPIC30F


- TIMER1_UART1_INIT -

Initialisation du TIMER1 et de l'UART1


- SEQUENCE adr

Adresse des variables utilisées par la gestion des séquences

- IT1MS adr

Adresse de stockage du vecteur d'interruption 1 ms

adrh,adrl IT1MS!! -

Ecriture du vecteur d'interruption 1 ms


- SEQ_BEGIN[ -

Début d'une table de séquences

deb_per,nbr_per SEQ_ADD "nom" -

Insertion d'une séquence dans une table de séquences:
"nom" est le nom du mot FORTH qui doit être exécuté
deb_per indique le numéro de la première période d'éxécution
nbr_per indique l'intervalle entre 2 exécutions


- SEQ_END] -

Fin d'une table de séquence


- SEQ_LIST -

Liste de la table de séquence en activité