[hp48]un petit convertisseur d'euro/franc

Posez vos questions sur le RPL-Système ici

Modérateur: Modérateurs prog.

[hp48]un petit convertisseur d'euro/franc

Messagede nico » 24/04/2002 15:27

Voila le code source (j'espère que c'est le dernier qui fonctionne): ( :!: ne fonctionne pas sur la 49! Je ne sais pas pourquoi. :( )
Attention: Sauvegarder le contenu de votre calculatrice avant de lancer le programme (compilé)

bug connu: problème avec la touche drop

amélioration prévu(/possible): ajouter la possibilté de calcul (+,-,*,/)
fichier conv
Code: Tout sélectionner
::
INCLUDE Keydef
CK0NOLASTWD
*affichage
ClrDA1IsStat
CLEARLCD

"0"
%0
FALSE
* devise: E->F=#0 , F->E=#1
#0
FALSE
{
LAM V1
LAM V2
LAM dec
LAM Dev
LAM Exit?
} BIND

' ::
CLEARLCD
"Convertisseur V3b1"
#1 #2
Disp5x7

* teste de la devise en cours pour l'afficher
LAM Dev
::
DUP #0 #= casedrop
* INCLUDE E2F
   :: LAM V1
    DUP 
    $ "_Euro"
    &$ NEWLINE$&$ SWAP
    DOSTR>
    % 6.55957
    %*    %2
   RNDXY
    a%>$
    $ "_Fr"
    &$
    &$
   ;

DUP #1 #= casedrop
*INCLUDE F2E
:: LAM V1  DUP 
    $ "_Fr"
    &$ NEWLINE$&$ SWAP
    DOSTR>
    % 6.55957
    %/ %2
   RNDXY
    a%>$
    $ "_Euro"
    &$
    &$ ;
;

*affiche
#3 #2
Disp5x7
DispMenu.1
;
* test touche
' ::
#1 #=casedrop
   ::
DUP#<7 casedrpfls
kzero ?CaseKeyDef :: TakeOver LAM V1 "0" &$ DOSTR> a%>$ ' LAM V1 STO  ;
kun  ?CaseKeyDef :: TakeOver LAM V1 "1" &$ DOSTR> a%>$ ' LAM V1 STO  ;
kdeux  ?CaseKeyDef :: TakeOver LAM V1 "2" &$ DOSTR> a%>$ ' LAM V1 STO  ;
ktrois  ?CaseKeyDef :: TakeOver LAM V1 "3" &$ DOSTR> a%>$ ' LAM V1 STO  ;
kquatre  ?CaseKeyDef :: TakeOver LAM V1 "4" &$ DOSTR> a%>$ ' LAM V1 STO  ;
kcinq  ?CaseKeyDef :: TakeOver LAM V1 "5" &$ DOSTR> a%>$ ' LAM V1 STO  ;
ksix  ?CaseKeyDef :: TakeOver LAM V1 "6" &$ DOSTR> a%>$ ' LAM V1 STO  ;
ksept  ?CaseKeyDef :: TakeOver LAM V1 "7" &$ DOSTR> a%>$ ' LAM V1 STO  ;
khuit  ?CaseKeyDef :: TakeOver LAM V1 "8" &$ DOSTR> a%>$ ' LAM V1 STO  ;
kneuf  ?CaseKeyDef :: TakeOver LAM V1 "9" &$ DOSTR> a%>$ ' LAM V1 STO  ;
kpoint ?CaseKeyDef :: TakeOver LAM dec NOT IT :: TRUE ' LAM dec STO LAM V1 "." &$ ' LAM V1 STO ; ;
kdrop ?CaseKeyDef :: TakeOver LAM V1 DUP SUB$1# CAR$ CHR># #2E #<> SWAP DUPLEN$ #1 #> OR
               ITE :: DUPLEN$ 1_#1-SUB$ DOSTR> DUP %FP %0 %=
                     IT :: FALSE ' LAM dec STO ; DO>STR ; :: DROP "0" ; ' LAM V1 STO  ;
kdel ?CaseKeyDef :: TakeOver "0" ' LAM V1 STO FALSE ' LAM dec STO ;
kcOn ?CaseKeyDef  :: TRUE ' LAM Exit? STO ;
kclshifht #=casedrpfls DROP 'DoBadKeyT
    ;
2DROP 'DoBadKeyT
;
TrueTrue
* menu
{ { "E->F"  :: TakeOver #0 ' LAM Dev STO ; }
{ "F->E" :: TakeOver #1 ' LAM Dev STO ; }
NullMenuKey
NullMenuKey
NullMenuKey
{ "Quit" :: TakeOver TRUE ' LAM Exit? STO ; } }
ONE
FALSE
' LAM Exit?
'ERRJMP
ParOuterLoop
RECLAIMDISP
ClrDAsOK
;


fichier KeyDef
Code: Tout sélectionner
::
* definition des touches pour 48 (jazz)
DEFINE kun #29
DEFINE kzero  #2E
DEFINE kdeux  #2A
DEFINE ktrois  #2B
DEFINE kquatre  #24
DEFINE kcinq  #25
DEFINE ksix  #26
DEFINE ksept  #1F
DEFINE khuit  #20
DEFINE kneuf  #21
DEFINE kplus #31
DEFINE kmoins #2C
DEFINE kmul #27
DEFINE kdiv #22
DEFINE kpoint #2F
DEFINE kdrop #1D
DEFINE kdel #1C
DEFINE kcOn #2D
DEFINE kclshifht #24
;
nico
Modérateur
 
Messages: 37
Inscription: 05/02/2002 22:29
Gender: homme

Retourner vers RPL-Système

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité

cron