Introduction

Ce document

Ce document est une documentation du Forth pour le Hector HRX. Il est basé sur la documentation de HRX/Hector, mais aussi sur des exemples de code trouvés dans des magazines de l'époque, ainsi que sur le code de la ROM.

Contrairement à beaucoup de manuels de programmation, ce document ne commence pas par les bases des concepts de fonctionnement de l'ordinateur. Il part du principe que vous avez déjà connaissance de la représentation interne des données, de ce qu'est un octet, ce que sont les bases de numération,... Et que vous avez de l'expérience de programmation.

Forth

Dans la galaxie des langages de programmation, Forth est un langage à part. C'est un langage basé sur le concept de pile et de mots, où l'on navigue entre interprétation et compilation, et où le concept de développement itératif est très poussé.

Son concepteur Charles H. Moore l'a créé initialement comme une boite à outils pour ces propres besoins. Son utilisation s'est ensuite propagée dans le monde de l'informatique embarquée, des systèmes temps réel et des systèmes où la mémoire est limitée.

Forth est à la fois un langage bas niveau où vous avez accès à machine (ou ce que vous en laisse voire le système) et un langage haut niveau où vous pouvez créer des abstractions complexes.

Le Forth du Hector HRX se nomme « FORTH PAMPUK » et est conforme à la norme « 79 Standard », avec des inclusions du standard FIG.

Démarrage

Lors de l'allumage de l'ordinateur Hector HRX, le menu de démarrage vous propose de passer en mode Forth. Pour cela, il suffit de taper sur la touche 1. Après un reset, une nouvelle option retour au mode Forth est disponible et permet de revenir dans le mode Forth sans le réinitialiser.

Attention, passer en mode Hector 1 peu effacer les données du Forth.

À propos

  • Auteur de ce manuel de référence : Sylvain Glaize
  • Licence : CC BY-NC-SA 4.0
  • Exception : les listings présent dans les Listings additionnels venant d'autres sources, comme des magazines, ne sont pas couvert par cette licences. La source et les auteurs sont donnés pour chaque listing. Les commentaires ajoutés par ce manuel sont mis dans le domaine public.

  • Merci à Dominique Contant pour son commentaire de la ROM Forth et ses nombreux renseignements sur le Forth dans le forum System-Cfg ainsi que ses contributions à ce manuel.

  • Merci à Stevan Rankovic qui a entré les listings « sauver des mots » et « espace libre » que je reprends ici.

Sources

Les sources de ce manuel sont disponibles sur GitLab.

Les requêtes de modifications, corrections, ajouts, etc. y sont les bienvenues.

Historique des modifications

2025 08 06

  • Ajout de la documentation de DPL. (*)
  • Ajout de la documentation de ?TERMINAL. (*)
  • Précision ajoutée sur SDROP. (*)
  • Affinage de la documentation de CASE. (*)
  • Ajout d'un exemple alternatif à CASE, CASE:. (*)
  • Correction de l'exemple POW pour les puissances 0 et 1.

2025 08 03

  • Ajout d'une section pour l'explication de la création de mots de définition en langage machine avec CREATE ... ;CODE, ainsi que d'un exemple détaillé dans la section exemples. Le mot ;CODE est aussi documenté. (*)
  • Ajout de documentation sur les mots CSP, !CSP et ?CSP. (*)
  • Précisions sur l'utilisation de SMUDGE. (*)
  • Documentation de ENCLOSE. (*)
  • Ajout du mot SNULL pour créer des chaînes de caractères terminée par 0. (*)
  • Ajout dans les exemples du mot POW pour mettre un nombre à la puissance.

2025 07 27

2025 07 24

  • Ajout d'un vocabulaire de chaînes de caractères dans les exemples, ainsi que l'explication de tous les mots et un résumé. (*)
  • Des corrections et précisions variées. (*)

2025 07 17

(*) Contributions de Dominique Contant