Le logo HP Invent est propriete de Hewlett-Packard. Le site HP-Network n'a rien a voir avec la societe Hewlett-Packard

 


Francais : version originale
Translate this page in American/English

HOME

NEWS
TEST
Progs
Jeux
AIDE
Debutants
Docs
Programmer Gruges
Nouvelles HPs
La HP 49G +
Les Modèles
CONTACT

Forum
Team
Liens

HP 40G
 

Jeux
Graphismes
Sources

Library
Astuces

PROJETS

HP Worms
Treize II
Street Fighter
QVGDM
Counter S.
YODA
SebOS

Hardware
Download
Interviews
Galerie d'art

 




 

 

Tutoriaux ASM

 

 

 

Conversion ASM

Ce tutorial peut être utilise par tous les utilisateurs HP, mais une petite connaissance en programmation est tout de même necessaire. En effet, cette documentation a pour but de vous expliquer comment convertir un programme en assembleur prevu pour la HP 48 ou la HP 49 vers la HP 40. Mais elle peut aussi servir à convertir de la HP 48 à la HP 49. Pour realiser cela vous aurez besoin d'un certain nombre de programmes qui vous seront donnes à telecharger ci-dessous. Alors en premier, toutes les explications seront donnees pour la HP 49 car on ne peut programmer sur la HP 40. Et en ce qui concerne la HP 48 vous pouvez utiliser  Jazz qui realise toute la conversion

.

Recommandations :

-        Mettez vous en RPN

-        Utilisez la Rom 1.19-5

-        Faites une sauvegarde de votre memoire

-        Envoyez moi un e-mail en cas de probleme (neo)             

JE VOUS ANNONCE QUE TOUS LES PROGRAMMES CITES SONT A TELECHARGER DANS CE PAQUETAGE.

Utilitaires

I.                   La source

Tout d'abord, pour convertir un programme, il vous faut les sources. Pour cela deux moyens: le plus simple est de demander à l'auteur lui-même les sources, en cherchant un peu on trouve facilement leurs e-mails ou une adresse où les trouver. Deuxieme technique, il faut decompiler le programme à l'aide d'un desassembleur. Si vous possedez la source vous pouvez directement aller au II.

1.  Comment desassembler un programme:

En premier lieu, il faut attacher le menu de developpement integre à la HP 49. Pour cela, mettez vous en mode RPN et tapez 257 ATTACH.

Ensuite envoyez sur votre HP tous les programmes et les librairies que je vais vous citer ci-apres. Tout d'abord, il vous faut CQIF et Xasm qui sont les desassembleurs. Ensuite il faut Objfix et pour finir Extable, mais il y a trois Extables (HP 48, HP 49 ET HP 40) donc choisissez celui qui correspond au programme que vous allez desassembler et non à votre calculatrice.

Ensuite envoyez sur votre HP le jeu pour HP 48 ou HP 49, s'il est pour HP 48 vous aurez   besoin de Objfix pour obtenir un programme lisible sur HP 49. Donc, une fois que votre programme est sur la pile, executez Objfix (surtout n'executez pas le programme de HP 48 sous peine de perte de toute la memoire)

Apres avoir installe CQIF qui integre pour moi le meilleur desassembleur et extable qui correspond à votre type de prog en l'occurrence HP 48, pensez à desactiver le Flag 71 en allant dans MODE et FLAGS de façon à ne pas avoir les adresses dans votre source.


Ensuite, mettez sur votre pile le programme: pour cela, taper sur VAR et NEXT jusqu'à ce que vous voyiez votre programme dans les menus et taper sur SHIFT et sur F1..F6 (ce qui correspond à votre prog).

Puis tapez ->S3, ainsi CQIF va decompiler tout votre programme (RPL et ASM). Apres quelques minutes de travail, vous obtenez une source sur la pile, sauvegardez la sous le nom de votre choix. Si votre programme est un fichier CODE et non un programme vous allez être oblige d'utiliser la commande xASM-> de CQIF.

II.                Modification de la source

Dans cette partie, je vais vous expliquer les differentes modifications à effectuer sur les sources pour obtenir un programme qui se compile sur toutes les calculatrices.

                                               

1.  Gestion des touches:

Il faut savoir que pour la conversion de la HP 48 à la HP 49, il faut  changer toutes les valeurs OUT/IN du clavier de la calculatrice (utiliser le fichier keybit.zip). Pour la conversion de la HP 49 à la HP 40 cela est inutile car elles ont les mêmes adresses pour les touches du clavier.

Voici quelques exemples:

HP 48

 %|DROP|010|0|     DROP (il faut changer les out et les in du clavier)

LC 010

OUT=C

GOSBVL "CINRTN"

 ?CBIT=0.0 SKIPYES

  {

    GOSUBL wait_no_touche

    GOTO INTRO

  }

HP 49

   %|DROP|001|6|     DROP (le 010 devient 001 pour les out et le 0.0 devient  0.6 (IN))

LC 001

OUT=C

GOSBVL "CINRTN"

 ?CBIT=0.6 SKIPYES

  {

    GOSUBL wait_no_touche

    GOTO INTRO

  }

HP 40

   %|DROP|001|6|     DROP (pas de changement entre la 49 et la 40)

LC 001

OUT=C

GOSBVL "$jCINRTN"

 ?CBIT=0.6 SKIPYES

  {

    GOSUBL wait_no_touche

    GOTO INTRO

  }

2.  Gestion des GOSBVL et des GOVLNG:

La seconde chose à changer est uniquement  pour la conversion de HP 49 à HP 40: il faut rajouter $j devant  le nom des entries des GOSBVL (et non GOSUBL) ainsi que devant  le nom des entries des  GOVLNG, sauf exception.

Voici quelques exemples:

HP 48 (On ne change rien)

GOSBVL "SAVPTR"        

GOSBVL "DisableIntr"  

HP 49 (On ne change rien)

GOSBVL "SAVPTR"        

GOSBVL "DisableIntr"   

HP 40

GOSBVL "$jSAVPTR"    (on ajoute $j devant l'adresse)         

GOSBVL "DisableIntr"    c'est la seule où on ne met pas de $j (oublie de l'ACO)

Attention les GOVLNG ont aussi besoin du $j

III.             Compilation

Pour compiler, nous allons utiliser MASD : pour cela, il faut verifier que le kit de developpement est installe sur votre calculatrice comme auparavant: taper 257 ATTACH en mode RPN. Ensuite, il faut savoir que la commande ASM compile la source, que la commande ER debug votre source et que la commande ASM2 realise la compilation et le debuggage en même temps.


                        1. Compilation pour HP 49:

Pour compiler pour une HP 49 vous aurez besoin de l'extable HP 49.

Donc, une fois que la librairie extable 49 est installee sur votre port 2, mettez votre source HP49 sur la pile  et tapez ASM2, Masd va assembler et debugger  votre programme en utilisant les adresses de l'extable. Si tout s'est bien passe, vous obtenez un programme ou "Code" sur votre pile, sinon, verifiez votre source en corrigeant les erreurs que vous annonce masd.

Sauvegardez le sous le nom de votre choix. Voila, l'operation est terminee pour les programmes HP 49, sachez que si vous travaillez sur HP 48 avec Jazz vous aurez besoin d'effectuer un Objfix une fois que vous enverrez votre programme sur la HP 49.

            2. Compilation pour HP 40

Pour compiler pour une HP 40 vous aurez besoin de l'extable HP 40.

Donc, une fois que la librairie extable 40 est installee sur votre port 2, mettez votre source HP40 sur la pile  et tapez ASM2, Masd va assembler et debugger  votre programme en utilisant les adresses de l'extable. Si tout s'est bien passe, vous obtenez un programme ou "Code" sur votre pile; sinon verifiez votre source en corrigeant les erreurs que vous annonce masd.
 

Sauvegardez sous le nom Conv.39 et non pas sous le nom de votre choix, car une fois le programme compile, on a besoin de creer une applet. Pour cela, il faut envoyer le fichier code Conv.39 sur l'ordinateur et à l'aide de l'applet convertor creer l'applet. Cette partie est expliquee dans le IV.

IV.            Utilisation de l'applet convertor pour HP 40

Pour que votre programme compile (Conv.39) sur HP 49 fonctionne sur une HP 40 il est necessaire de le mettre dans une applet.

Donc, dezippez le fichier Applet convertor.zip et effectuez les modifications suivantes qui correspondent à votre programme:

 

Tout d'abord, il faut renommer l'applet donc à la ligne 23 du fichier  conv.s

modifiez le titre (conversion) par le nom de votre prog et le nombre de lettres du nom de votre prog (size of the name) (10). Il faut noter que le N° de librairie est inutile.

Ensuite il faut ouvrir le fichier conv.m et modifier uniquement le titre (title) par le nom de votre programme.

Vous devez renommer votre programme Conv.39 (c'est imperatif !) et le placer dans le même repertoire que le fichier make.bat. Maintenant, vous pouvez executer make.bat qui va transformer votre prog en applet.

A la fin, vous obtenez 5 fichiers. Recuperez alors Conv0000.000, renommez-le si vous le desirez et envoyez-le sur votre calculatrice HP 40. En principe cela devrait fonctionner si ce n'est pas le cas reessayer.

V.               Future modification

En fait, ce tutorial n'est pas totalement termine, je compte ajouter la gestion des interruptions sur HP 48, HP 49 et HP 40. Pour cela toute aide est la bienvenue.

      Je compte aussi ajouter une explication pour casser les librairies. Car, une librairie est assez difficile à decompiler.

      Je desire aussi inserer des captures d'ecran pour ameliorer la comprehension et ajouter des exemples de source à compiler.(Pour l'instant il y a Jezz-Pack )

Toutes suggestions, questions ou appreciations sont les bienvenues.

Pierre Podgorski

1, rue Emile Heraud

83510 Lorgues

Neo@hp-network.com

VI.            Remerciements

Tout d'abord, je desire remercier la societe HP (Hewlett Packard) qui m'a fourni le materiel necessaire à la realisation de cette documentation.

Ensuite, je voudrais remercier tous les auteurs des programmes que je cite et ils sont nombreux!

Je remercie egalement mes potes (HP-Network.com), ainsi que tous les membres de l'ACO.

Et pour finir Lilian Pigallio sans qui cette doc n'aurait pas existe.

Accueil