Programmation en SysRPL Pour Hp49-50
Programmation en SysRPL Pour Hp49-50
Programmation en SysRPL Pour Hp49-50
t le langage utilisateur.
Pour programmer dans ce langage il faut utiliser la bibliothque 256, intgr dans la
calculatrice, MASD, qui sert aussi programmer en assembleur Saturn et ARM.
Pour attach une bibliothque il faut la redmarrer en appuyant simultanment sur [ON] e
t [F3].
Taper alors 256 MENU [ENTER], vous avez accs cette bibliothque.
La documentation peut tre tlcharge 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 franais sur le site. Tous la partie
ARM n'y figure donc pas. (Note : librery se traduit par bibliothque pas par libr
ery)
Taper { + } 1 GET [ENTER] , vous dposer la commande + sur la pile. Voil une mthode
pour dposer une commande sur la pile sans l'valuer. Pour l'valuer vous pouvez utili
ser [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 caractres "external". Ds que vous voyez ce mot, vous avez affaire du sys
RPL, et alors soyez prudent, vous risquez le "Try to recovery memory". Traductio
n (libre): mmoire effac.
Faite ->PRG , vous obtenez le code en sysRPL de +. Vous pouvez mettre 1 aux ni
veaux 2 et 3, puis presser [EVAL], vous obtenez 2.
De manire gnrale, l userRPL est cod en sysRPL qui est cod en assembleur.
Le sysRPL est semblable au userRPL mais avec deux grandes diffrences:
-Les instructions ne sont pas systmatiquement testes, il y a des commandes
spcifiques pour le faire. Consquence: si il ni a pas d'argument sur la pile et qu
e vous faites une addition, vous risquez de perde vos donn.
-Il y a des instructions spcifiques pour chaque types d'arguments (Entier
s, dcimaux, entiers systme, chaine de caractre, GROB pour les dessins...). Il y a a
insi plusieurs "+", "-"...
Une instruction en userRPL est en faite une d'instructions en sysRPL cohr
ente 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 so
urce avec la commande ->S2.
Si vous faite maintenant avec la commande "+" en sysRPL on obtient un rsu
ltat un peu illisible.
A peu prs:
"!NO CODE
!RPL
::
PTR 26305
# 11
PTR 3035F
... (Je saute)
;
@"
Cependant si vous utilisez la commande ASM, vous obtenez de ce fichier le progra
mme en sysRPL.
Dans la partit III, nous allons expliquer comment rendre plus lisible. Pour l'in
stant dcryptons juste un peu le programme.
!RPL indique le mode sysRPL, !ASM pour programmer en assembleur Saturn,
rgles gnrales
Un shift droit permet l'usage des variables locales sans nom et un shift gauche
de variable locales dont le nom est perdu la compilation.
Dans le dernier cas la structure est:
{{ }} // Mettez vos variable Var1 Var2 ...
ABND
3) La troisime option, permet les boucles. Toute condition provoque un des deux e
xternal TRUE ou FALSE. Un de ces externale doit tre sur la pile avant un test (sa
ut conditionnelle, boucle...)
La boucle que j'utilise tout le temps est:
BEGIN // Dbut de la boucle
...
// code