Previous
Next
Table of Contents
Le système est au départ en CAPS ON: l'interpréteur comprend aussi bien les minuscules que les majuscules.
Pour sauver une application dans un fichier .COM, faites BYE, lisez les adresse dddd et ffff de début et de fin, et sauvez votre application par:
SAVE "MONFORTH.COM", A#dddd, E#ffff, AUTO
Pour revenir au FORTH après une escapade en HYPER-BASIC (ou en BASIC) ou TELE-ASS - par exemple pour utiliser les commandes des DOS STRATSED ou SEDORIC - faites CALL #904 sur TELESTRAT, CALL #504 sur ATMOS.
En cas de plantage, le bouton RESET retourne au FORTH mais les tampons sont vidés et un fichier est ouvert par défaut. Il en est de même sur une instruction BRK (versions ATMOS).
Les fichiers PRINTER2.FTH (version TELESTRAT) et PRINTER.FTH (versions ATMOS) permettent d'ajouter des fonctions annexes au vocabulaire PRINTER telles que driver français/anglais des caractères, types de polices de caractères, espacements, soulignage, gras, listing des écrans en simple ou double, formatages. Ces mots doivent être adaptés à votre imprimante.
Ce vocabulaire sert de fourre-tout pour des mots qui encombreraient le glossaire FORTH usuel. Il contient les mots servant au désassembleur et au décompilateur qui n'apparaissent ainsi dans FORTH que sous DESAS et SEE. Il serait fastidieux d'en faire l'index. Sachez toutefois que vous pouvez y trouver des mots utiles notamment dans la gestion des tableaux. Le vocabulaire TOOLS est créé la première fois dans DESAS: il faut le définir avant de compiler une application qui l'utilise si le désassembleur n'est pas compilé.
Le F83 du CP/M ou MS-DOS offre les view-fields et les écrans SHADOW qui gardent dans la définition d'un mot le site de définition de ce mot et doublent les écrans de définitions avec des écrans de commentaires. Malgré son coté attrayant pour voir le source d'un mot, ce dispositif est trop rigide, encombre le dictionnaire, divise par deux la mémoire de masse disponible, fait double emploi avec des structures plus souples (décompilateur, écrans d'aide), oblige à de lourdes procédures de compression-décompression des fichiers etc...
Pour toutes ces raisons ayant engagé une polémique et pour la raison que le TELESTRAT et l'ATMOS sont de petites machines, il n'a pas été compilé de view-fields. Ceci n'a aucune incidence sur l'utilisation et la compatibilité du F83. Quant aux écrans SHADOW, on peut toujours en proposer et les lister en vis-à-vis. C'est ce qui a été fait avec ASSEMBLER.
- les vocabulaires sont indépendants. Le concept ONLY ALSO permet de chaîner jusqu'à cinq vocabulaires de recherche.
- CONTEXT est une pile de un à cinq vocabulaires.
- les vocabulaires ne sont pas immédiats.
- WORDS remplace VLIST et ne liste qu'un seul vocabulaire.
- DEFER et IS introduisent le concept des mots vectorisés notamment utilisés pour les entrées-sorties.
- la mémoire de masse est gérée en fichiers compatibles avec le SED hôte et non plus en accès direct de blocs.
- les blocs FORTH sont de même taille que les écrans. Les tampons de blocs sont gérés dynamiquement par des pointeurs de tampons dans une zone séparée des tampons. Ceux-ci n'ont plus de zéro séparateurs entre blocs.
- la compilation des branchements est en adressage mémoire absolu au lieu d'un adressage relatif au pointeur d'interprétation.
- la structure DO ... LOOP est améliorée. La primitive (DO) empile l'adresse de fin de boucle sur la pile de retour ce qui permet à ?DO, LEAVE et ?LEAVE de sortir directement d'une boucle en cours d'exécution.
- le chaînage des mots dans un vocabulaire est direct de LINK à LINK et non plus imbriqué LINK-NAME-LINK-NAME.
- les recherches dans un vocabulaire sont encore accélérées par le tissage de chaque vocabulaire en quatre brins: un mot est chaîné dans un des quatre brins par hash-code sur la première lettre de son nom.
- ' (tick) renvoie le cfa d'un mot et non son pfa. C'est un mot non immédiat. Le litéral d'un cfa est compilable par ['].
- la division entière répond aux principes mathématiques de la division plancher.
- VARIABLE n'est pas à précéder d'une valeur d'initialisation; celle-ci est toujours zéro.
- les booléens sont 0 (FALSE = faux) et -1 (TRUE = vrai).
- CREATE crée un en-tête sans pfa. Le cfa par défaut est celui d'une variable.
- les mots de définitions utilisent une structure CREATE ... DOES> optimisée avec renvoi direct du code exécutif depuis le cfa du mot défini vers la partie exécution du mot définisseur.
- l'interprétation utilise des mots séparés pour l'exécution ou la compilation. Cette séparation détaille les processus généraux pour permettre des méta-processus ultérieurs.
- les structures de contrôle de compilation utilisent des primitives de couplage (<MARK, <RESOLVE, >MARK, >RESOLVE).
- la gestion du clavier admet l'exécution immédiate de codes de contrôle. Ces commandes sont vectorisées dans une ou plusieurs tables.
- le sommet de la pile est indicé à partir de zéro (PICK).
- les conversions entre les différents champs de l'en-tête d'un mot ont des noms non ambigus d'une désignation explicite (>BODY, >NAME, N>LINK, BODY>, etc.. . Le lfa est compilé avant le nfa lequel précède le cfa.
- ." ne s'utilise qu'en compilation. Il faut utiliser .( en exécution.
- la compilation des chaînes est généralisée (.", ,").
Previous
Next
Table of Contents