Les commandes secrètes de la HP48GX
Vous trouverez sur cette page consacrée à la calculatrice HP-48GX des dizaines de Syseval, d'objets, ou encore d'adresses d'External. Les logiciels pour transférer les objets de votre HP vers votre PC sont également disponibles en libre téléchargement, ainsi que des programmes RPL prêts à l'emploi pour explorer la mémoire de votre HP et les objets qui y sont présents en ROM. De plus je vous livre ici toutes les commandes secrètes de la HP (c'est-à-dire les commandes non documentées) que j'ai découvertes en décompilant les librairies internes de ma HP48GX. Enfin, en bas de cette page, vous trouverez un programme vous permettant d'utiliser votre HP48 comme une télécommande infrarouge, ainsi que les schémas électroniques pour vous réaliser une alimentation ou un câble de transfert. Bonne découverte ! :-) |
Logiciels PC pour HP48GX :
Description
du téléchargement
|
Nom du
fichier
|
Type
|
Taille
|
Kit de connexion
: permet de sauvegarder et de restaurer les objets de la HP sur votre
PC
Fonctionne sous Windows 98 et Windows XP |
1,6 Mo
|
||
Link48 : permet
de sauvegarder et de restaurer les objets de la HP sur votre PC
Fonctionne sous Windows 3.1 (ça existe encore ??) et Windows 95 |
224 ko
|
||
Emulateur
de HP48GX : retrouver sous Windows toutes les fonctionnalités de
votre HP48GX
|
320 ko
|
Les instructions secrètes de la HP48GX :
J'appelle "instructions secrètes" les commandes ou opérateurs non documentés, qui ne sont pas accessibles depuis les menus de la HP. Pour utiliser ces commandes, il faut les taper en toutes lettres. En voici 19, dont certaines que j'ai personnellement découvertes en décompilant les librairies intégrées n°2, n°171 et n°1792 de ma HP48GX :
Commande |
Description |
SYSEVAL |
Évalue
un objet à l'adresse mémoire donnée sous forme d'un
entier binaire au niveau 1 de la pile. Faites attention avec cette commande,
car les adresses de mémoire aléatoires altéreront
certainement la mémoire et bloqueront la calculatrice. |
LIBEVAL |
Évalue
un Nom XLib dont l'adresse est au niveau 1 de la pile sous forme d'un
entier binaire. Faites attention avec cette commande, car les adresses
aléatoires altéreront certainement la mémoire et
bloqueront la calculatrice. |
XLIB |
Qui connaît
la syntaxe exacte de la commande XLIB ??? |
RULES |
Renvoie
sous forme de mots-croisés les prénoms des concepteurs du
code de la HP48 |
TEACH |
Crée
le répertoire EXAMPLES dans Home, contenant des programmes d'exemple |
CLTEACH |
Supprime
le répertoire EXAMPLES dans Home, contenant des programmes d'exemple |
VERSION |
Renvoie
la version exacte de la HP (HP48-A, HP48-B, etc.. HP48-Z) |
WSLOG |
Renvoie
4 chaînes décrivant les 4 dernières interruptions |
DIR |
Crée
un objet répertoire (type 15) et le place sur la pile. La syntaxe
de DIR est : DIR nom1 contenu1 nom2 contenu2 ... où nom1 et nom2
sont les noms des variables contenues dans le répertoire à
créer. |
CLVAR |
Supprime
toutes les variables dans le répertoire courant |
CLUSR |
Supprime
toutes les variables dans le répertoire courant |
RATIO |
Forme littérale
de la fonction division (dont la forme algébrique est /) |
MERGE |
Fusionne
la mémoire RAM de port avec la mémoire RAM principale |
FREE |
Libère
la mémoire RAM fusionnée |
GROB |
Crée
un objet graphique vide : GROB x y |
PREDV |
Renvoie
la valeur de la variable dépendante en fonction de la valeur de
la variable indépendante (x) |
C$ |
Permet
d'extraire sous forme de chaîne de caractères un morceau d'un objet |
C# |
Permet
de créer des entiers binaires longs |
@ |
Permet
d'intégrer un commentaire dans un programme. Tous les caractères
compris entre 2 @ sont ignorés par la HP. Le caractère @
s'obtient par : touche alpha + touche shift droit + touche enter |
Exemple d'utilisation de la commande LIBEVAL :
Le jeu du démineur
(commande MINEHUNT) est en fait l'objet n°51 de la librairie n°231.
Pour lancer le démineur, il suffit donc de lancer le XLib 231 51.
Mais comment lancer le XLib 231 51 à partir de la commande LIBEVAL, sachant
que LIBEVAL attend sur la pile un seul entier binaire ? Pour cela il faut convertir
en hexadécimal le numéro de la librairie (ici 231) et le numéro
de l'objet (ici 51) :
231 donne #E7h en hexa, et 51 donne #33h en hexa. On multiplie ensuite le numéro
de la librairie par #1000h (ce qui revient à lui ajouter 3 zéros),
puis on lui ajoute le numéro de l'objet visé : #E7h x #1000h
+ #33h = #E7033h
Voilà, c'est fini ! Il n'y a plus qu'à mettre l'entier binaire #E7033h sur la pile, puis à taper la commande LIBEVAL : le démineur se lancera !
Autre exemple : la commande TEACH qui crée le répertoire EXAMPLE fait appel au XLib 232 45 :
232 s'écrit #E8h
en hexa, avec 3 zéros il devient #E8000h
45 s'écrit #2Dh en hexa, qu'il suffit d'additionner à #E8000h
Pour lancer la commande TEACH en utilisant l'instruction LIBEVAL, on pourra faire #E802Dh LIBEVAL
Exemple d'utilisation de la commande DIR :
Pour créer un objet répertoire (type 15) vide sur la pile, tapez DIR suivi de Enter. Pour enregistrer ce répertoire sous le nom de TOTO, mettez le nom 'TOTO' sur la pile puis appuyez sur STO. La commande DIR sans paramètres permet donc de créer un répertoire vide. Mais comment créer un répertoire contenant 2 variables A et B ? Pour cela, tapez DIR A 25 B "Bonjour" puis validez par Enter : vous venez de créer sur la pile un répertoire contenant 2 objets : un nombre entier A (de type 0) et une chaîne de caractères B (de type 2). Pour enregistrer ce répertoire sous le nom de TOTO, mettez le nom 'TOTO' sur la pile puis appuyez sur STO. Remarquez que dans la syntaxe de la commande DIR, le nom des variables (ici A et B), à créer dans le nouveau répertoire, ne sont pas entre guillemets.
Exemple d'utilisation de la commande C$ :
Pour créer un objet chaîne de caractère à partir des 3 premiers caractères du réel 123456 tapez C$ 3 123456 : on obtient alors 2 objets sur la pile : la chaîne "123" au niveau 2 et le réel 456 au niveau 1.
Autre exemple : C$ 4 "ABCDEF" crée une chaîne contenant "ABC (les 4 premiers caractères dont le caractère double quote) puis "dépose le reste" sur la pile. On obtient alors 3 objets sur la pile :
3: ""ABC"
2: 'DEF'
1: ""
Un dernier exemple : C$ 12 Linked Array donne la chaîne "Linked Array" (12 caractères)
Remarque : le caractère $ s'obtient par la touche alpha + touche shift gauche + touche 4
Les autres "commandes secrètes" :
Pour utiliser les commandes RULES, TEACH, CLTEACH, VERSION ou WSLOG, il suffit de taper leur nom suivi de Enter, sans leur passer de paramètres. Ces commandes se contentent d'afficher une information à l'écran, à l'exception de TEACH qui crée le répertoire EXAMPLES dans le répertoire Home, et de CLTEACH qui l'efface. Ce répertoire EXAMPLES contient plusieurs exemples de programmes RPL, de courbes prêtes à être tracées (courbes paramétriques, fonctions y=f(x), courbes surfaciques, etc.), ou encore d'expressions algébriques.
Quant à la commande SYSEVAL, qu'on ne présente plus, il s'agit de loin de la commande la plus intéressante des 7 "commandes secrètes", puisque c'est elle qui va nous permettre de nous plonger au coeur de la HP, pour retrouver toutes sortes d'objets dans la ROM, mais aussi pour programmer la HP en RPL-Système. La commande SYSEVAL attend au niveau 1 de la pile un entier binaire représentant une adresse mémoire, et va évaluer l'objet se trouvant à cette adresse, c'est-à-dire :
Premier exemple d'utilisation de la commande SYSEVAL : vous connaissez la chaîne de caractères vide ? Il s'agit de "" (2 guillemets doubles, sans aucun caractère entre les deux guillemets) qu'il est très facile de créer. Mais connaissez-vous le nom vide ? Oui, en effet il s'agit de '' (2 guillemets simples, sans aucun caractère entre les deux guillemets) mais comment le créer ?? Je vous laisse 10 secondes de réflexion, et surtout de test sur votre HP ...
Cette fois-ci, comme vous pouvez le constater sur votre HP, on ne peut pas créer le nom vide aussi facilement que la chaîne vide. Pourtant le nom vide existe dans votre HP : il est situé à l'adresse #15777h de la mémoire. Pour le déposer sur la pile, tapez #15777h suivi de SYSEVAL. Mais oui, la commande SYSEVAL vient de vous donner le nom vide ! ! Ceci n'est qu'un exemple d'application de SYSEVAL parmi des milliers d'autres. Oui, j'ai bien dit des milliers d'autres : votre HP renferme dans sa ROM plusieurs milliers d'objets et de routines extraordinaires, qui deviennent enfin accessibles grâce à la commande SYSEVAL, et qui, il faut bien le dire, ne sont pas tous accessibles par les menus standards. Mais avant de passer en revue toutes les adresses intéressantes de la HP, il faut bien connaître les différents objets qu'elle sait manipuler, et c'est justement ce que nous allons voir dans les paragraphes suivants.
Une fonctionnalité intéressante de la HP :
Une possibilité intéressante et peu connue de la HP est l'application de la fonction OBJ-> à une chaîne de caractères : il en résulte "le débalage" sur la pile du contenu de la chaîne de caractères, suivi de l'évaluation des objets ainsi obtenus. Exemples :
"56" OBJ-> met le réel 56 sur la pile
"2 3 +" OBJ-> met 2 sur la pile, met 3 sur la pile puis additionne les deux nombres : on obtient le réel 5 au niveau 1 de la pile
On constate qu'une chaîne de caractères à qui on applique OBJ-> peut se comporter comme (et remplacer) un programme.
La possibilité qui vient alors tout de suite à l'esprit est de pouvoir mettre dans un programme les instructions qui se tapent directement et qui ne supportent pas d'être dans un programme RPL. Exemple :
"DIR" OBJ-> créer un répertoire vide sur le pile
"C$ 3 123456" OBJ-> convertie en chaîne de caractères les 3 premiers caractères du réel 123456.
"GROB 1 10 ABCDEF1234567890ABCD" OBJ-> crée un objet graphique de taille 1x10 dont le contenu est indiqué pixel par pixel dans la chaîne de caractères.
En utilisant ce principe de fabrication d'objets graphiques il est possible de créer des objets quelconques de la HP à partir du leur codage en hexadécimal. Par exemple, le codage d'une liste vide est A7A20B2130. Voici comment fabriquer de toute pièce une liste vide :
1 - on met la chaîne de caractères "GROB 1 5 A7A20B2130" sur la pile
2 - on applique OBJ-> ce qui donne un objet graphique de taille 1x5
3 - on extrait le 4 ème élément de l'objet graphique, en considérant qu'il s'agit d'un objet composé. Pour cela on met l'entier système <4h> sur la pile puis on applique le SYSEVAL #56B6h
4 - on efface l'External du niveau 1 et on fait un NEWOB : on obtient alors une liste vide tout à fait valide, que nous venons de fabriquer à partir de son codage en mémoire.
De la même manière il est possible de fabriquer n'importe quel objet de la HP, des objets les plus courants jusqu'aux objets les plus exotiques, simplement à partir de leur codage en mémoire (prologue+contenu+épilogue). C'est ce principe qui est utilisé dans la version RPL du programme ->OBJ disponible en téléchargement plus bas dans cette page.
Une dernière application de l'extraction des chaînes de caractères est la possibilité d'intégrer des commentaires dans des programme RPL de la HP. Si on met un commentaire entre deux @ dans un programme (entre << et >>) ce commentaire est immédiatement ignoré par la HP dès la validation du programme et ne sera pas enregistré dans le programme RPL. Une solution consiste à mettre le commentaire dans une chaîne de caractères et à lui appliquer OBJ->. Exemple :
<< 2 "@ceci est un commentaire@" OBJ-> 3 + >>
Lors de l'extraction de la chaîne de caractères, le commentaire sera immédiatement ignoré sans laisser de trace sur la pile.
Bien sûr, le programme suivant aurait donné le même résultat, mais aurait été sensiblement plus lent :
<< 2 "ceci est un commentaire" DROP 3 + >>
Les objets de la HP48GX :
Il existe 28 types d'objets différents dans la HP48. Le tableau ci-dessous contient, pour chacun des types d'objets, son nom, son prologue (sur 5 quartets), et son type (le numéro renvoyé par l'instruction TYPE). Certains types d'objets vous sont déjà familiers, alors que d'autres vous paraîtront plus exotiques :
Nom du
type
|
Prologue
|
Type
|
Nombre
réel
|
#02933h
|
0
|
Nombre
complexe
|
#02977h
|
1
|
Chaîne
de caractères
|
#02A2Ch
|
2
|
Tableau
réel
|
#029E8h
|
3
|
Tableau
complexe
|
#029E8h
|
4
|
Liste
|
#02A74h
|
5
|
Nom
global
|
#02E48h
|
6
|
Nom
local
|
#02E6Dh
|
7
|
Programme
|
#02D9Dh
|
8
|
Expressions
|
#02AB8h
|
9
|
Entier
binaire
|
#02A4Eh
|
10
|
Objet
graphique
|
#02B1Eh
|
11
|
Objet
taggué
|
#02AFCh
|
12
|
Objet
unité
|
#02ADAh
|
13
|
Nom
XLib
|
#02E92h
|
14
|
Répertoire
|
#02A96h
|
15
|
Librairie
|
#02B40h
|
16
|
Objet
backup
|
#02B62h
|
17
|
Fonction
intégrée
|
#02D9Dh
|
18
|
Commande
intégrée
|
#02D9Dh
|
19
|
Entier
système
|
#02911h
|
20
|
Réel
long
|
#02955h
|
21
|
Complexe
long
|
#0299Dh
|
22
|
Linked
array
|
#02A0Ah
|
23
|
Caractère
|
#029BFh
|
24
|
Objet
code
|
#02DCCh
|
25
|
Library
data
|
#02B88h
|
26
|
Ext1
|
#02BAAh
|
27
|
Ext2
|
#02BCCh
|
27
|
Ext3
|
#02BEEh
|
27
|
Ext4
|
#02C10h
|
27
|
External
|
..................
|
27
|
La ROM de votre HP renferme
plusieurs exemplaires de chacun de ces objets. Voici une liste d'adresses contenant
certains objets, du plus courant au plus exotique. Attention : les adresses
entre #C0000h et #FFFFFh donnée dans le tableau ci-dessous sont en ROM
non standard, et non couverte si vous n'avez pas de carte mémoire supplémentaire
dans la HP. Ces objets sont donc accessibles par un simple SYSEVAL seulement
si vous n'avez pas de carte mémoire supplémentaire dans
votre HP (sinon la ROM est couverte ...).
De plus, je précise que j'ai trouvé expérimentalement ces
adresses en fouillant la ROM de ma HP qui est une HP48GX version R.
A l'adresse
|
se trouve
un objet de type
|
#514EBh
|
Nombre
réel |
#D379Eh
|
Nombre
complexe |
#C2483h
|
Chaîne
de caractères
|
#D3741h
|
Tableau
réel
|
#CD7BFh
|
Tableau
de chaîne de caractères
|
#C3207h
|
Tableau
de XLib
|
#F44E4h
|
Tableau
de Nom Global
|
#5EDE4h
|
Tableau
de External
|
#C31DCh
|
Liste
|
#CE177h
|
Nom
global
|
#54A2Ah
|
Nom
local
|
#54A42h
|
Expressions
|
#C4B63h
|
Entier
binaire
|
#CEECAh
|
Objet
graphique
|
#C2479h
|
Objet
unité
|
#CCA9Fh
|
Librairie
|
#71BBDh
|
Objet
backup
|
#62136h
|
Entier
système
|
#C7D07h
|
Réel
long
|
#52BECh
|
Complexe
long
|
#C0F96h
|
Linked
array
|
#EAEABh
|
Caractère
|
#CB93Ch
|
Objet
code
|
#CEFCEh
|
Library
data
|
Utilisation de ce tableau : vous voulez voir un Linked Array ? C'est très simple : vous mettez l'entier binaire #C0F96h sur la pile (l'adresse du Linked Array), puis vous tapez SYSEVAL.
Rappel : je ne peux pas garantir que toutes ces adresses fonctionnent sur toutes les HP (notamment les HP48G et les HP49). Ce sont des adresses que j'ai moi-même constatées sur ma propre HP48GX, qui ne contient aucune carte mémoire additionnelle.
Les programmes de base, en version RPL, pour explorer les objets de la HP48 :
Description
du téléchargement
|
Nom du
fichier
|
Type
|
Taille
|
->STRING
: convertit un objet en chaîne de caractères, représentant
le codage en mémoire de l'objet
|
Programme
RPL |
148
octets |
|
->OBJ
: crée un objet à partir d'un chaîne de caractères
représentant le codage en mémoire de l'objet (permet de
reconvertir en objets les chaînes obtenues par le programme ->STRING,
ou de créer des objets exotiques)
|
Programme
RPL |
131
octets |
|
->ADR
: renvoie l'adresse en mémoire d'un objet
|
Programme
RPL |
118
octets |
|
->EXT
(première version) : crée des structures RPL faisant appel
à des adresses non standards de la HP (External) à partir
d'une liste de points d'entrée
|
Programme
RPL |
387
octets |
Le programme ->EXT attend au niveau 1 de la pile une liste contenant des entiers binaires, chaque entiers binaires représentant l'adresse d'une routine à exécuter (un SYSEVAL). Exemple : le SYSEVAL #30794h renvoie la version exacte de la HP (HP48-A, HP48-B, etc.. HP48-Z). Si on met l'entier binaire #30794h sur la pile, puis qu'on tape SYSEVAL, on exécute la routine qui se trouve à l'adresse #30794h, et qui nous renvoie la version de la HP. Mais pour exécuter ce SYSEVAL #30794h on peut aussi utiliser le programme ->EXT : on met sur la pile une liste contenant l'adresse #30794h (la liste est { #30794h }, et elle ne contient qu'un seul élément), et on lance le programme ->EXT, qui convertit la liste en une structure RPL (type 8) représentée sur la pile par le mot External. Cet "External" fait exactement la même chose que le SYSEVAL #30794h : il renvoie la version de la HP. La structure RPL renvoyée par ->EXT est alors équivalente au programme RPL suivant (<< et >> symbolisent les guillemets sur la HP) :
<< #30794h SYSEVAL >>
Mais on peut aussi passer à ->EXT des listes bien plus grandes, contenant des dizaines d'entiers binaires, représentant chacun une adresse interne de la HP (un SYSEVAL). On obtiendra alors des structures RPL (des External) faisant appel directement aux adresses interne de la HP : c'est ce qu'on appelle des programmes en RPL-Système, un juste milieu entre le RPL standard qui se limite aux seules instructions présentent dans les menus, et l'assembleur. Les programmes du paragraphe suivant sont écrits en RPL-Système, et sont distribués sous forme de listes d'entiers binaire à passer au programme ->EXT.
Les programmes avancés en External pour programmer et explorer les objets de la HP48 :
Description
du téléchargement
|
Nom du
fichier
|
Type
|
Taille
|
->EXT
(deuxième version) : crée des structures RPL faisant appel
à des adresses non standards de la HP (External) à partir
d'une liste de points d'entrée
|
Liste
|
244
octets |
|
EXT->
: fait le contraire de ->EXT : recrée une listes de points d'entrées
à partir d'un External
|
Liste
|
336
octets |
Ces deux programmes
sont distribués ici sous forme d'une liste d'entiers binaires à
appliquer au programme ->EXT lui-même, afin d'obtenir la structure
RPL correspondante (l'"External"). Mais il faut noter que :
- la deuxième version de ->EXT sera créé grâce
à la première version (version RPL) de ->EXT
- le programme EXT-> sera créé grâce à
la deuxième version (version External) de ->EXT
- à partir de maintenant, dès que je parlerai du programme ->EXT,
il s'agira de la version External (la deuxième version) et non plus de
la première version RPL
Les deux programmes suivants, distribués ici sous forme de liste d'entiers binaires à appliquer à ->EXT, vous permettrons de réaliser des tableaux "exotiques". Grâce à eux, vous pourrez créer et utiliser des tableaux de type quelconques : tableau de nom, tableau de programmes RPL, tableau de chaînes de caractères, tableau d'External, etc ...
Description
du téléchargement
|
Nom du
fichier
|
Type
|
Taille
|
->VEC
convertit une liste d'objets en tableau à une dimension
|
Liste
|
543
octets |
|
VEC->
: fait le contraire de ->VEC : convertit un tableau à une dimension
en liste
|
Liste
|
335
octets |
Le programme ->VEC convertit une liste en tableau à une dimension (donc en vecteur), et le programme VEC-> reconvertit le tableau en liste. Exemple :
Remarque : pour que le programme ->VEC puisse convertir une liste en vecteur, il faut que TOUS les objets de la liste soit du même type.
Les SYSEVAL indispensables sur la HP48GX :
Conversion
de types
|
|
SYSEVAL
|
Description
|
#543F9h | Convertit un Réel en Entier binaire |
#18CD7h | Convertit un Réel en Entier système |
#5435Dh | Convertit un Entier binaire en Réel |
#5A03h | Convertit un Entier binaire en Entier système |
#18DBFh | Convertit un Entier système en Réel |
#59CCh | Convertit un Entier système en Entier binaire |
#5B15h | Convertit une chaîne (string, type 2) en Nom global (type 6) |
#57004h | Convertit un Nom global (type 6) en chaîne de caractères (type 2) |
#7E76h | Convertit une instruction (type 18 ou 19) en un Nom XLib (type 14) |
#7E99h | Convertit un Nom XLib (type 14) en instruction (type 18 ou 19) (+ VF Ext) |
#5AB3h | Convertit l'objet du niveau 2 de la pile en un objet dont le prologue est au niveau 1 sous forme d'un entier système. |
#F075h | Convertit une chaîne de caractères (type 2) en un objet unité (type 13) de partie scalaire égale à 1 (+ VF Ext) |
+ VF Ext signifie : Renvoie en plus VRAI ou FAUX sous forme d'un External au niveau 1 de la pile.
Renvoie
d'une information
|
|
SYSEVAL
|
Description
|
#15777h | Renvoie le caractère nul |
#15CBBh | Renvoie le type d'un objet sous forme de chaîne : "Program" |
#3C64h | Renvoie
le prologue d'un objet sous forme d'un entier système Exemple : <2D9Dh>, ou renvoie <0h> si l'objet n'est pas reconnu |
#219E0h | Renvoie le numéro d'une librairie |
#30794h | Renvoie la version de la HP : "HPHP48-R" (différent de l'instruction secrète VERSION) |
#D2A3h | Renvoie 4 chaînes décrivant les 4 dernières interruptions (instruction secrète WSLOG) |
#20A7Dh | Renvoie
sous forme de mots-croisés les prénoms des concepteurs du code de la HP48 (instruction secrète RULES) |
Comment utiliser votre HP48 comme une télécommande infrarouge, pour commander votre télévision ou votre magnétoscope (ou les 2 ! ) ?
Votre HP possède un émetteur et un récepteur infrarouge. Elle a donc tout pour se transformer en super-télécommande infrarouge, qui pourra enregistrer, mémoriser, et restituer les commandes de plusieurs appareils différents, telle une télécommande universelle ! Pour cela vous avez besoin de 2 objets CODE (type 25) que j'appellerai REC.IR et PLAY.IR
Les 2 programmes REC.IR et PLAY.IR sont téléchargeables ici sous forme de chaînes de caractères qu'il faudra appliquer au programme ->OBJ pour construire réellement les objets CODE.
Description
du téléchargement
|
Nom du
fichier
|
Type
|
Taille
|
REC.IR
: permet d'enregistrer une séquence infrarouge
|
Chaîne
|
195
octets |
|
PLAY.IR
: permet d'émettre une séquence infrarouge
|
Chaîne
|
175
octets |
Vérification et construction des objets CODE :
Vous pouvez vérifier la somme de contrôle et la taille de tout objet sur la HP grâce à la commande BYTES du menu MEMORY.
Vérification des chaînes de caractères après le transfert sur votre HP :
Construction des objets CODE :
Pour construire l'objet CODE REC.IR,
vous devez appliquer la chaîne REC.CH au programme ->OBJ.
Pour construire l'objet CODE PLAY.IR, vous devez appliquer la chaîne
PLAY.CH au programme ->OBJ.
Dernière vérification des objets CODE avant de les lancer :
Utilisation des objets CODE REC.IR et PLAY.IR :
Conseil : si vous n'arrivez pas à émettre correctement une séquence infrarouge, vous pouvez augmenter la taille de la chaîne de 1000 espaces que vous avez utilisée pour l'enregistrement avec REC.IR : vous pouvez par exemple utiliser une chaîne de 2000 espaces. Mais n'oubliez pas que plus cette chaîne de caractères est longue, plus fidèle sera la reproduction de la séquence infrarouge, mais en même temps l'émission de la commande durera plus longtemps, et donc, usera plus de piles ... Inversement, avec certaines télécommandes une chaîne de 500 caractères (voire moins) peut suffire, ce qui sera plus économique en énergie lors de l'émission. La longueur de la chaîne de caractères dans laquelle vous enregistrez votre séquence infrarouge dépend aussi de la distance à laquelle vous voudrez émettre la commande plus tard.
Génération automatique de tous les programmes de base présentés ci-dessus :
Le programme RPL creer.rpl permet de générer automatiquement les 10 programmes de base présentés ci-dessus (7 programmes pour explorer les objets de la HP, et 3 programmes pour utiliser la HP comme une télécommande infrarouge universelle).
Ce programme creer.rpl recrée un par un chaque programme de base, et ce :
Description
du téléchargement
|
Nom du
fichier
|
Type
|
Taille
|
CREER
: génère dans le répertoire courant les 10 programmes
de base
|
Programme
RPL |
3
100
octets |
L'algorythme de ce programme CREER est le suivant :
Le programme CREER a généré automatiquement les 10 programme suivants, tous placés dans le répertoire courant :
Alimentation et câble pour la HP48 :
Et voici pour terminer tous les schémas électroniques nécessaires pour vous réaliser une alimentation et un câble de transfert pour votre calculatrice HP :
Description
du téléchargement
|
Nom du
fichier
|
Type
|
Taille
|
Schéma
électronique pour réaliser une alimentation secteur permettant
d'alimenter la HP en permanence :
fini le fameux message Warning: LowBat ( ) ! |
73
ko
|
||
Schéma
pour réaliser tous les câbles pour transférer des
fichiers entre votre HP et votre PC, ou des objets entre 2 HP
|
35
ko
|