Introduction Le sysRPL est un langage intermédiaire entre l'assembleur et l'use

Introduction Le sysRPL est un langage intermédiaire entre l'assembleur et l'userRPL (langage de l’utilisateur des calculatrice hp), dans laquelle est programmé le système de la calculatrice. C'est un compromis entre langage de haut niveau et plus rapide que l'userRPL. L'assembleur restant toujours le plus rapide langage. Il utilise la notation polonaise inversé (RPN). I La notation polonaise inversé (RPN) Dans tout le guide il est supposé que la calculatrice est réglée sur le mode RPN, par opposition au mode algébrique. Pour passer de l'un à l'autre, il suffi de presser la touche [MODE] puis sur "CHOOSE" (touche [F2]). Vu que ce mode est essentiel pour la programmation en sysRPL, je vais rapidement expliquer ce mode de saisie des commandes. Essayions de calculer 2+3. Le résultat est connue, 5, mais pour cela suivre mes instruction. Tout d'abord taper 2 [ENTER] 3 [ENTER]. Sur les deux lignes du bas vous avez: 2: 2 1: 3 Cela signifie que vous avez 2 au niveau 2 de la pile et 3 au niveau 1. Qu'est-ce la pile? C'est quelque chose de fondamentale pour la notation RPN. Il s’agit d’un espace de mémoire sur lesquelles les opérations sont faites. Par exemple l'addition (la soustraction, la division, la multiplication...) demande deux arguments, l'appui sur la touche [+] va additionner les deux premiers niveaux de la pile. Essayiez. Vous obtenez 5 au niveau 1 de la pile. Réessayer, un message d'erreur apparait, il n'y a rien au niveau 2 de la pile. Appuyiez deux fois sur [ENTER], vous obtenez 5 aux trois premiers niveaux de la pile. La touche [ENTER] est un raccourcit vers la commande DUP qui copie le niveau 1 de la pile. Appuyiez sur [+], vous avez 10 au niveau 1 et 5 au niveau 2. Quelques règles générales: * La pile n'est limité que par la mémoire, seul 7 niveau sont visible par défaut, mais un appui sur la flèche du haut permet de les voir tous. * Lorsqu'on pose un élément sur la pile, il passe au niveau un de la pile, l'élément au niveau 1 va niveau 2... * Toutes les opérations se font sur la pile. * Un appui sur une touche, comme [+], [UPDIR], un répertoire, va tout de suite exécuter la commande. (Contrairement au mode algébrique ou il faut presser [ENTER]) *Il existe des commandes spécifiques pour manipuler la pile. DUP, en userRPL, permet de copier le niveau 1 de la pile, SWAP inverse les niveaux 1 et 2… Pourquoi un système pouvant paraitre un peu compliqué? * Historiquement, c'est plus facile à programmer. * Ensuite, par comptabilité, les habituer ayant du mal à s'en passer. * Ce mode économise des parenthèses, parfois illisible sur certaine calculatrices. Par exemple, pour taper (2+x) / (y-3) on tape: 2 x + y 3 - / Ce mode est à connaitre si on veut programmer en sysRPL. En effet, les instructions sont en RPN. II Essai sur la calculatrice, compréhension du sysRPL Le sysRPL (Revish Polonaise Language système - par opposition au userRPL, soit le langage habituelle en mode RPN - est un langage intermédiaire entre l'assembleur et le langage utilisateur. Pour programmer dans ce langage il faut utiliser la bibliothèque 256, intégré dans la calculatrice, MASD, qui sert aussi à programmer en assembleur Saturn et ARM. Pour attaché une bibliothèque il faut la redémarrer en appuyant simultanément sur [ON] et [F3]. Taper alors 256 MENU [ENTER], vous avez accès à cette bibliothèque. La documentation peut être téléchargée sur le site hp-calc.org à cette adresse: http://www.hpcalc.org/hp49/docs/programming/masddocs.zip Une version plus ancienne a été (mal) traduite en français sur le site. Tous la partie ARM n'y figure donc pas. (Note : librery se traduit par bibliothèque pas par librery) Taper { + } 1 GET [ENTER] , vous déposer la commande + sur la pile. Voilà une méthode pour déposer une commande sur la pile sans l'évaluer. Pour l'évaluer vous pouvez utiliser [EVAL]. Avec + au niveau 1 de la pile, tapé COMP-> (où "->" le signe shift-droit + [0] de la hp). Vous obtenez 53 au niveau 1 de la pile. La pile a 54 niveaux, la plupart remplit avec des caractères "external". Dès que vous voyez ce mot, vous avez affaire à du sysRPL, et alors soyez prudent, vous risquez le "Try to recovery memory". Traduction (libre): mémoire effacé. Faite ->PRG , vous obtenez le code en sysRPL de +. Vous pouvez mettre 1 aux niveaux 2 et 3, puis presser [EVAL], vous obtenez 2. De manière générale, l’userRPL est codé en sysRPL qui est codé en assembleur. Le sysRPL est semblable au userRPL mais avec deux grandes différences: -Les instructions ne sont pas systématiquement testées, il y a des commandes spécifiques pour le faire. Conséquence: si il ni a pas d'argument sur la pile et que vous faites une addition, vous risquez de perde vos donné. -Il y a des instructions spécifiques pour chaque types d'arguments (Entiers, décimaux, entiers système, chaine de caractère, GROB pour les dessins...). Il y a ainsi plusieurs "+", "-"... Une instruction en userRPL est en faite une d'instructions en sysRPL cohérente pour avoir une version de la commande "+" sur et polyvalente. A partir du code en sysRPL au niveau 1 de la pile, on obtient le code source avec la commande ->S2. Si vous faite maintenant avec la commande "+" en sysRPL on obtient un résultat un peu illisible. A peu près: "!NO CODE !RPL :: PTR 26305 # 11 PTR 3035F ... (Je saute) ; @" Cependant si vous utilisez la commande ASM, vous obtenez de ce fichier le programme en sysRPL. Dans la partit III, nous allons expliquer comment rendre plus lisible. Pour l'instant décryptons juste un peu le programme. !RPL indique le mode sysRPL, !ASM pour programmer en assembleur Saturn, et !ARM pour l'assembleur ARM. !NO CODE, pour ça, j'avoue mon ignorance. Il me semble qu'il faut le mettre pour le sysRPL, pas pour l'assembleur. :: commence un bloc, et ; le termine, en sysRPL, indispensable. @ conclue le programme. Le caractère # indique un entier système, un type d'objet spécifique à la programmation en sysRPL. Le caractère Z désigne un entier classique, % pour les décimaux. Un nombre non précédé de caractère est, à priori entier système. Pour les commentaires, il y a deux possibilité: soit les parenthèses, comme : ( Ceci est un commentaire). Ce commentaire peut être multilingues, soit un signe "*" en début de ligne. * Ceci est un commentaire. * Il finit à la fin de la ligne. III Pour programmer sérieusement Il est possible de programmer avec des PTR 26305, mais se n'est pas pratique à retenir. Il est possible de rajouter une bibliothèque qui permet d'avoir des noms de commandes comme SWAP, % +, #*... plus humainement compréhensible. Comme je suis fainéant, je vous proposerai un programme qui offre une documentation sur les commandes. Mon rôle pourra se contenter de présenter le programme et donner des règles de syntaxe. Le programme s'appelle Emacs comme le bien connu éditeur de texte Unix. Il est téléchargeable sur hpcalc.org à l'adresse suivante: http://www.hpcalc.org/hp49/apps/editors/emacs211a.zip 3.1 Installation d' Emacs 3.1.a Installation d’une bibliothèque – règles générales (Pour eux qui l'ignore) Pour installer une bibliothèque mettez au niveau 2 de la pile la bibliothèque et au niveau 1 le port où vous voulez l'installer, puis utilisez la commende STO. Il y a 3 ports (espace mémoire autre que HOME et dépendance): le port 0 partage le même espace mémoire que HOME, si vous plantez la calculatrice et perdez les données de HOME vous perdez ceux qu'il y a dans ce port. Le port 1 est en RAM. Le plus grand, le port 2 est en FLASH. De préférence choisissez le port 2. Une fois qu'une bibliothèque est dans un port, elle doit être attaché en la redémarrant la calculatrice avec pressant simultanément [ON] et [F3]. Si une bibliothèque bloque le démarrage, (cas d'une bibliothèque (personnelle :-) mal faites) la touche [DEL] (la flèche <- pas la flache gauche) permet de ne pas attacher les bibliothèques. 3.1.b Installer Emacs Pour installer Emacs c'est simple. Si vous avez une hp4g installez la bibliothèque EMACS.49G . Pour les autres modèles (hp50g, hp48gII, hp49g+) prenez la version EMACS.49GP . C'est l'éditeur de texte proprement dit. Pour la doc, si vous ne voulez pas ou ne pouvez pas utiliser la carte SD (modèles hp49g et hp48gII) installez la bibliothèque SDIAG.49G. Vous n'avez qu'un résumé de la documentation possible. Si vous souhaitez utilisez la carte SD, (recommandé) installez la bibliothèque SDIAG.49GP sur votre calculatrice et copier le répertoire SDIAG sur la racine de votre carte SD. Pour remplacer les PTR xyz par des commandes lisible prenez la bibliothèque external2.lib. Une bibliothèque, nosy, téléchargeable sur hpcalc.org permet de d'obtenir le programme source des commandes et peut interagir avec emacs. 3.2 Présentation d'emacs Après avoir tout installer, appuyiez sur [APPS] et choisissez emacs. Vous avez trois options, choisissez la premier (la touche [F1]); vous entrez dans l'éditeur emacs. Par défaut, sur l’éditeur, vous avez déjà du texte déjà uploads/Industriel/ programmation-en-sysrpl-pour-hp49-50.pdf

  • 26
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager