Misez p'tit Optimisez n°90 : Bibi or not Bibi

Ici, on fait dans le petit, le LCD qui déchire sa race, on y cause même calculatrices quand on est en manque !

Modérateur : Politburo

Répondre
Gilles59
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1290
Inscription : 27 oct. 2010 20:46

Misez p'tit Optimisez n°90 : Bibi or not Bibi

Message par Gilles59 » 28 mai 2019 20:52

Le système bi-bi-binaire (ou système Bibi) a été inventé par Boby Lapointe (celui que sa Cathy a quitté) en 1968. Il s'agit d'un mode de représentation phonétique des chiffres hexadécimaux. En Bibi on ne dit plus « cent dix-neuf plus cent trente-sept égale deux cent cinquante-six » mais plus poétiquement « bibi plus koka égale hahoho ». Ce système est tout à fait opérationnel.
Image
Vous le trouverez joliment décrit sur la page de Nicolas Graner ici :
http://graner.net/nicolas/nombres/bibibinaire.php

Vous vous en doutez, votre défi est d'écrire avec votre poquette préféré doté de possibilités alphanumériques même basiques (une Casio FX602P par exemple), le plus court programme possible pour transformer un vulgaire nombre en base 10 en joli Bibi.

Nota: Les fonctions natives de conversion hexadécimale sont ici proscrites.
Casio FX-502P /602P / 603P / FX180P+ / FX4000P / TI57 / TI66 / TI74 Basicalc / TI95 Procalc / HP12C / HP15C LE / DM41L / HP 30B / HP39GII / HP 48SX USA / 49G / 49G+ / 50G / 50G NewRPL / HP Prime / Oric 1 / Amstrad CPC 6128+

Avatar de l’utilisateur
ledudu
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 4741
Inscription : 26 mars 2009 14:07
Localisation : Ile de France
Contact :

Re: Misez p'tit Optimisez n°90 : Bibi or not Bibi

Message par ledudu » 28 mai 2019 23:07

Merci pour ce MPO, Gilles.
J'ajoute le lien vers le sommaire des MPO.

Gilles59
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1290
Inscription : 27 oct. 2010 20:46

Re: Misez p'tit Optimisez n°90 : Bibi or not Bibi

Message par Gilles59 » 28 mai 2019 23:30

ledudu a écrit :
28 mai 2019 23:07
Merci pour ce MPO, Gilles.
J'ajoute le lien vers le sommaire des MPO.
Merci !
Un peu de Boby ;D
https://www.youtube.com/watch?v=SusUjq5Pow4

Indice : Certes il y de l’hexadecimal dans le système Bibi mais il y aussi une dose de « quaternaire ». En fait c’est plus qu’un simple système hexadécimal. C’est ce qui en fait le charme bien que ce soit rarement perçu dans les articles qui décrivent le Bibibinaire.
Casio FX-502P /602P / 603P / FX180P+ / FX4000P / TI57 / TI66 / TI74 Basicalc / TI95 Procalc / HP12C / HP15C LE / DM41L / HP 30B / HP39GII / HP 48SX USA / 49G / 49G+ / 50G / 50G NewRPL / HP Prime / Oric 1 / Amstrad CPC 6128+

Avatar de l’utilisateur
C.Ret
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 2018
Inscription : 31 mai 2008 23:43
Localisation : N 49°22 E 6°10

Re: Misez p'tit Optimisez n°bake: Bibi or not Bibi

Message par C.Ret » 29 mai 2019 19:15

Comme la tactique du russe blanc, qui est déjà noir dans la chanson, a fait choux-blanc...

Je préfère, dans ce bar draguer une grand-mère japonaise, un peu âgée d'ailleurs, en lui montrant ce que je fais avec mon SHARP BOKIKI:

Code : Tout sélectionner

1:CLEAR :INPUT Z:X=INT ABS Z,U=22,W=1/4
2:U=U-2,Y=X-4*INT WX,V$="O":IF YLET V$="A":IF Y>1LET V$="E":IF Y>2LET V$="I"
3:A$(U)=V$,Y=WX,X=INT WY,Y=INT Y-4X,V$="H":IF YLET V$="B":IF Y>1LET V$="K":IF Y>2LET V$="D"
4:A$(U-1)=V$:IF XGOTO 2 
5:PRINT A$;B$;C$;D$;E$;F$;G$;H$;I$;J$;K$;L$;M$;N$;O$;P$;Q$;R$;S$;T$;"=";Z:GOTO 1

MEM 1178STEPS 147MEMORIES  Utilise les registres de A à Z et 244 octets de programme
Permet de convertir tout nombre entier positif de H0 à HEBABOHOKIDEBOHOHI exactement.
Au-delà les résultats peuvent être approchés.
Une erreur 4...… indique un nombre trop élevé (comme 16E12 par exemple)

Il y a encore moyen d'économiser des pas et de MPOiser ce code.
Soit en abaissant la limite maximale, soit en jouant de plus d'astuces, soit en utilisant les deux simultanément.
SHARP PC-1211 + CE-121 + CE-122. | VIC 20 Commodore 128D + Printer P-803+ sd2iec. | TI-57 LCD | TI-74 BasiCalc | TI-92 II | HP-28S + HP82240A | HP-41C + (2 memory + stat + IR) modules. | HP Prime Wireless Graphing Calculator |HP-15C | CASIO fx-602p + FA-1. .Sommaire des M.P.O.. . Sommaire du P.C.T.M. .

Gilles59
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1290
Inscription : 27 oct. 2010 20:46

Re: Misez p'tit Optimisez n°90 : Bibi or not Bibi

Message par Gilles59 » 29 mai 2019 21:48

Ma version pour Casio fx-HEBAKE-P en 84 pas pardon BABO pas et HE (2) registres.
Ca tourne aussi sur les Casio HEBAKA et HEBAKI-P :

Code : Tout sélectionner

 ***P5  024 Steps
 0 x=F ";H"
 1 x=F ";B"
 2 x=F ";K"
 3 x=F ";D" 

Code : Tout sélectionner

***P6  024 Steps
 0 x=F ";O"
 1 x=F ";A"
 2 x=F ";E"
 3 x=F ";I" 

Code : Tout sélectionner

 ***P7  007 Steps
 * 4 - INT MinF = X<>Y 

Code : Tout sélectionner

 ***P0  029 Steps
 "➔"
 X<>Y
 1 MinF 0 Min00
 X<>Y
LBL1
 ISZ / 16 = 
x>=F GOTO1
LBL2
 GSBP7 GSBP5 X<>Y 
 GSBP7 GSBP6 X<>Y 
DSZ GOTO2
 ";"
Usage par exemple : 2019 P0 -> BIDEHI

Je sais désormais que suis né en l'an bikeki et que nous sommes le mercredi hada/ba/bidehi
Casio FX-502P /602P / 603P / FX180P+ / FX4000P / TI57 / TI66 / TI74 Basicalc / TI95 Procalc / HP12C / HP15C LE / DM41L / HP 30B / HP39GII / HP 48SX USA / 49G / 49G+ / 50G / 50G NewRPL / HP Prime / Oric 1 / Amstrad CPC 6128+

Gilles59
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1290
Inscription : 27 oct. 2010 20:46

Re: Misez p'tit Optimisez n°bake: Bibi or not Bibi

Message par Gilles59 » 29 mai 2019 21:57

C.Ret a écrit :
29 mai 2019 19:15
Comme la tactique du russe blanc, qui est déjà noir dans la chanson, a fait choux-blanc...

Je préfère, dans ce bar draguer une grand-mère japonaise, un peu âgée d'ailleurs, en lui montrant ce que je fais avec mon SHARP BOKIKI:
Il faudra que je me trouve un SHARP BOKIKI un de ces 4 ! mdr :D
Quant au SHARP BOKOKO, il aurait mérité d'exister ;D
Casio FX-502P /602P / 603P / FX180P+ / FX4000P / TI57 / TI66 / TI74 Basicalc / TI95 Procalc / HP12C / HP15C LE / DM41L / HP 30B / HP39GII / HP 48SX USA / 49G / 49G+ / 50G / 50G NewRPL / HP Prime / Oric 1 / Amstrad CPC 6128+

Avatar de l’utilisateur
C.Ret
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 2018
Inscription : 31 mai 2008 23:43
Localisation : N 49°22 E 6°10

Re: Misez p'tit Optimisez n°90 : Bibi or not Bibi

Message par C.Ret » 29 mai 2019 23:12

Comme je ne comprends plus rien à vos comptes, j'ai écri ce programme pour fx-HEBAKE-p qui permet de faire les conversions dans les deux sens:


Préparer l'overlay suivant :

Code : Tout sélectionner

┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃   H     B     K     D   bbbi→n      ┃
┃ ┌───┐ ┌───┐ ┌───┐ ┌───┐ ┌───┐ ┌───┐ ┃
┃ └───┘ └───┘ └───┘ └───┘ └───┘ └───┘ ┃
┃   O     A     E     I   n→bbbi      ┃
┃ ┌───┐ ┌───┐ ┌───┐ ┌───┐ ┌───┐ ┌───┐ ┃
┃ └───┘ └───┘ └───┘ └───┘ └───┘ └───┘ ┃
┃                                     ┃
┃ ┌───┐ ┌───┐ ┌───┐ ┌───┐ ┌───┐ ┌───┐ ┃
┃ └───┘ └───┘ └───┘ └───┘ └───┘ └───┘ ┃
┃                                     ┃
┇
P4 Converti le nombre saisi au clavier en code bibi-binaire: Par exemple 1211 (P4) affiche BOKIKI.

P9 (c'est à dire INV-P4) fait l'inverse : INV-P4 affiche une flèche à gauche de l'écran. Le code bi-bi-binaire est saisi à l'aide des touches indiquées par l'overlay (c'est à dire P5(H) P0 (O) P6 (B) P1 (A) P7 (K) P3 (E) P8 (D) et P3 (I)
A tout moment une pression sur la touche (=) permet d'afficher la valeur numérique du code bibi-binaire qui peut être complété. P9 (INV-PA) permet en fait de réinitialiser la conversion. La touche P4 permet de réécrire le code bi-bi-binaire.

Code : Tout sélectionner

P0                =      ";O"                                                                     005
P1      +  1      = MinF ";A"                                                                     008
P2      +  2      = MinF ";E"                                                                     008
P3      +  3      = MinF ";I"                                                                     008
P4      Min01 LN ÷ 16 LN = INT Min02 GSBP9                                                        010
   LBL0 MR01 x=F? GOTO9 ÷ 16 x^y MR02 - 16 x MRF = INT Min03 ÷ 4 + 5 = INT Min00 MRF IND GSB(0)   037
        MR03 Min00 MRF IND GSB(0) 1 M-02 GOTO0                                                    045
   LBL9 ";←"                                                                                      050
P5      × 16           = MinF ";H"                                                                009
P6      × 16 +  4 M-03 = MinF ";B"                                                                012
P7      × 16 +  8 M-03 = MinF ";K"                                                                012
P8      × 16 + 12 M-03 = MinF ";D"                                                                013
P9      0 MinF "→"                                                                                005 Ttl 140
SHARP PC-1211 + CE-121 + CE-122. | VIC 20 Commodore 128D + Printer P-803+ sd2iec. | TI-57 LCD | TI-74 BasiCalc | TI-92 II | HP-28S + HP82240A | HP-41C + (2 memory + stat + IR) modules. | HP Prime Wireless Graphing Calculator |HP-15C | CASIO fx-602p + FA-1. .Sommaire des M.P.O.. . Sommaire du P.C.T.M. .

Avatar de l’utilisateur
zpalm
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 2499
Inscription : 03 mai 2008 15:33
Localisation : Grenoble

Re: Misez p'tit Optimisez n°90 : Bibi or not Bibi

Message par zpalm » 29 mai 2019 23:35

Je vois que les Sharp et Casio sont bien représentés, voici une petite version pour HP Prime:

Code : Tout sélectionner

EXPORT Bibi(N)
BEGIN
 LOCAL k,l,s:="";
 l:={{"a","e","i","o"},{"b","k","d","h"}};
 REPEAT 
  s:=l(k:= NOT k,irem(N,4))+s; N:=iquo(N,4);
 UNTIL (N+k)==0;
 RETURN s;
END;

Gilles59
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1290
Inscription : 27 oct. 2010 20:46

Re: Misez p'tit Optimisez n°90 : Bibi or not Bibi

Message par Gilles59 » 29 mai 2019 23:41

C.Ret a écrit :
29 mai 2019 23:12
Comme je ne comprends plus rien à vos comptes, j'ai écri ce programme pour fx-HEBAKE-p qui permet de faire les conversions dans les deux sens:

Préparer l'overlay suivant :

Code : Tout sélectionner

┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃   H     B     K     D   bbbi→n      ┃
┃ ┌───┐ ┌───┐ ┌───┐ ┌───┐ ┌───┐ ┌───┐ ┃
┃ └───┘ └───┘ └───┘ └───┘ └───┘ └───┘ ┃
┃   O     A     E     I   n→bbbi      ┃
┃ ┌───┐ ┌───┐ ┌───┐ ┌───┐ ┌───┐ ┌───┐ ┃
┃ └───┘ └───┘ └───┘ └───┘ └───┘ └───┘ ┃
┃                                     ┃
┃ ┌───┐ ┌───┐ ┌───┐ ┌───┐ ┌───┐ ┌───┐ ┃
┃ └───┘ └───┘ └───┘ └───┘ └───┘ └───┘ ┃
┃                                     ┃
┇
Top le coup de l'overlay ;D
J'avais bien pensé à la conversion dans l'autre sens mais sans pouvoir saisir de caractères je n'ai pas réfléchi plus loin sur comment faire avec une 602P. Je comptais le faire sur la 603P mais ta méthode avec le calcul "au fil de l'eau" est bien meilleure : Chapeau pour l'idée !

EDIT : je vois que la 602P n'a plus de secret pour toi, adressage indirect de sous-programme etc. Mais que viennent faires les logarithmes népérien dans ton programme (que je n'ai pas encore testé) ???
Dernière édition par Gilles59 le 30 mai 2019 00:13, édité 5 fois.
Casio FX-502P /602P / 603P / FX180P+ / FX4000P / TI57 / TI66 / TI74 Basicalc / TI95 Procalc / HP12C / HP15C LE / DM41L / HP 30B / HP39GII / HP 48SX USA / 49G / 49G+ / 50G / 50G NewRPL / HP Prime / Oric 1 / Amstrad CPC 6128+

Gilles59
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1290
Inscription : 27 oct. 2010 20:46

Re: Misez p'tit Optimisez n°90 : Bibi or not Bibi

Message par Gilles59 » 29 mai 2019 23:52

zpalm a écrit :
29 mai 2019 23:35
Je vois que les Sharp et Casio sont bien représentés, voici une petite version pour HP Prime:

Code : Tout sélectionner

EXPORT Bibi(N)
BEGIN
 LOCAL k,l,s:="";
 l:={{"a","e","i","o"},{"b","k","d","h"}};
 REPEAT 
  s:=l(k:= NOT k,irem(N,4))+s; N:=iquo(N,4);
 UNTIL (N+k)==0;
 RETURN s;
END;
L'affec_ta_ tion "à la volée" de valeurs aux variables permet une belle concision !
Dernière édition par Gilles59 le 30 mai 2019 00:32, édité 1 fois.
Casio FX-502P /602P / 603P / FX180P+ / FX4000P / TI57 / TI66 / TI74 Basicalc / TI95 Procalc / HP12C / HP15C LE / DM41L / HP 30B / HP39GII / HP 48SX USA / 49G / 49G+ / 50G / 50G NewRPL / HP Prime / Oric 1 / Amstrad CPC 6128+

Avatar de l’utilisateur
zpalm
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 2499
Inscription : 03 mai 2008 15:33
Localisation : Grenoble

Re: Misez p'tit Optimisez n°90 : Bibi or not Bibi

Message par zpalm » 30 mai 2019 00:10

Gilles59 a écrit :
29 mai 2019 23:52
L'affection "à la volée" de valeurs au variables permet une belle concision !
J'ai beaucoup d'affection pour mon HP Prime mais dans les programmes je préfère l'affectation des valeurs aux variables, l'affection ne suffit pas encore à faire marcher un programme. Peut-être un jour avec l'IA.... :wink:

Avatar de l’utilisateur
C.Ret
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 2018
Inscription : 31 mai 2008 23:43
Localisation : N 49°22 E 6°10

Re: Misez p'tit Optimisez n°BAKE : Bibi or not Bibi

Message par C.Ret » 30 mai 2019 07:46

Gilles59 a écrit :
29 mai 2019 23:41
[…] Mais que viennent faires les logarithmes népérien dans ton programme ?
Les logarithmes servent à la même chose que la boucle LBL1 ISZ … GOTO1 de ton code. L'affichage alphanumérique ne se faisant que de gauche à droite, il faut commencer à décoder par les hautes puissances de 4². j'aurai pu utiliser les logarithmes décimaux, cela ne change rien.

Quand à l'idée de l'overlay, elle est venue à postériori. Je n'avais pas pensé à utiliser comme toi un test pour afficher les lettre AOEI ou HBKD (alors que je le fais sur mon SHARP !).
C'est en essayant mon premier programme dont chaque zone programme affichait une lettre que je me suis dit que le calcul pouvait être fait au fur et à mesure de la saisie.
Comme je n'arrêtais pas de faire des erreurs et pour me souvenir plus facilement de la position des lettres sur les touches Prgrm (et perturbé par les lettres A B C D E inscrites sous P0 P1 P2 P3) qu'est venue l'idée d'un overlay.

Je prévois d'ailleurs d'utiliser un overlay également sur mon SHARP-BOKIKI et mon HP-HEKA-C


En attendant, voici une version permettant les conversions dans les deux sens sur SHARP PC-BABAHO qui doit aussi fonctionner sur la pluspart des SHARP compatibles BABOBE,

Code : Tout sélectionner

 1 " " AREAD BI$:A$="HBKD",B$="OAEI",N= VAL BI$: IF N GOTO 5                                      42
 2 FOR I=1 TO LEN BI$ STEP 2: N=16*N: FOR J=0 TO 3                                                28
 3 N=N+J*(4*( MID$ (BI$,I,1)= MID$ (A$,1+J,1))+( MID$ (BI$+"O",1+I,1)= MID$ (B$,1+J,1)))          68
 4 NEXT J: NEXT I                                                                                 18
 5 X=N,BI$=""                                                                                     23
 6 BI$= MID$ (A$,1+(X/4 AND 3)+ MID$ (B$,1+(X AND 3),1)+BI$,X= INT (X/16): IF X GOTO 6            65
 7 PRINT N;BI$: END                                                                               21  Total:265 octets
Usage: la détection du sens de la conversion est automatique ainsi que les codes bibi-binaires erronés. Il n'y a donc pas besoin d'overlay.

Saisir directement le nombre ou le code à l'aide des touches alphanumériques du pocket et afficher la conversion par (DEF)(SPC)
Dernière édition par C.Ret le 30 mai 2019 16:11, édité 1 fois.
SHARP PC-1211 + CE-121 + CE-122. | VIC 20 Commodore 128D + Printer P-803+ sd2iec. | TI-57 LCD | TI-74 BasiCalc | TI-92 II | HP-28S + HP82240A | HP-41C + (2 memory + stat + IR) modules. | HP Prime Wireless Graphing Calculator |HP-15C | CASIO fx-602p + FA-1. .Sommaire des M.P.O.. . Sommaire du P.C.T.M. .

Avatar de l’utilisateur
C.Ret
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 2018
Inscription : 31 mai 2008 23:43
Localisation : N 49°22 E 6°10

Re: Misez p'tit Optimisez n°90 : Bibi or not Bibi

Message par C.Ret » 30 mai 2019 15:59

Pour HP-HEKA-C : version longue pour un MPO (je compte sur les ingénieux motivés pour optimiser un peu tout cela) mais qui fait les conversions dans les deux sens :

Code : Tout sélectionner

001 LBL A  XEQ 00  GTO 11                                                    062 LBL 00   1   0  "~O"  GTO 09
004 LBL a  XEQ 05  GTO 11                                                    067 LBL 01   1   1  "~A"  GTO 09
007 LBL B  XEQ 01  GTO 11                                                    072 LBL 02   1   2  "~E"  GTO 09
010 LBL b  XEQ 06  GTO 11                                                    077 LBL 03   1   3  "~I"  GTO 09 
013 LBL C  XEQ 02  GTO 11                                                    082 LBL 05  16   0  "~H"  GTO 09
016 LBL c  XEQ 07  GTO 11                                                    087 LBL 06  16   4  "~B"  GTO 09
019 LBL D  XEQ 03  GTO 11                                                    092 LBL 07  16   8  "~K"  GTO 09
022 LBL d  XEQ 08  GTO 11                                                    097 LBL 08  16  12  "~D"    
025 LBL E  STO 01  LN  16  LN  /  INT  16  X<>Y  y^x  STO 02  XEQ 10         101 LBL 09  ST- 03   X<>Y RCL Z  *  +  RTN 
037 LBL 04  RCL 01  x=y?  GTO 11  RCL 02  /  RCL Y  16  ST/ 02  *  -  INT    108 LBL 10  16  ENTER^  ENTER^  0  CLA  RTN 
049 STO 03  4  /  5  +  INT  X<>Y  XEQ IND Y  XEQ IND 03  GTO 04             115 LBL 11  AVIEW  STOP  AOFF 
059 LBL e  XEQ 10  GTO 11                                                    119 END

Usage :

Préparer un overlay :

Code : Tout sélectionner

┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃   H o    B a    K e    D i  bbb↔n   ┃
┃ ┌────┐ ┌────┐ ┌────┐ ┌────┐ ┌────┐  ┃
┃ └────┘ └────┘ └────┘ └────┘ └────┘  ┃
┃                                     ┃
┃ ┌────┐ ┌────┐ ┌────┐ ┌────┐ ┌────┐  ┃
┃ └────┘ └────┘ └────┘ └────┘ └────┘  ┃
┇                                     ┇
En mode USER les labels locaux sont activés et permettent comme pour la CASIO fx-HEBAKE-p de saisir les code bibi-binaires :
O A E I avec respectivement les touches USER directe (S+) (1/x) (/x) (LOG) correspondant aux labels locaux A B C D
H B K D avec respectivement les touches USER shiftées (S-) (y^x) (x²) (10^x) correspondant aux labels locaux a b c d

Les labels locaux E et e (respectivement touche USER directe (LN) et shiftée (e^x)) servent pour les transformations n <-> bibi-binaire
  • Saisir le nombre et presser la touche USER directe (LN) correspondant au label local E pour obtenir sa transcription en bibi-binaire.
  • Presser la touche USER shiftée (e^x) puis saisir le code bibi-binaires avec les touches indiquées ci-dessus. A tout moment la valeur numérique du code bibi-binaire affiché peut être obtenue en pressant (R/S) (ou une fois la touche Alpha). Le code bibi-binaire peut être complété, il reste visible dans le registre alpha.

Nous somme aujourd'hui HAHIBOHABABOHE
SHARP PC-1211 + CE-121 + CE-122. | VIC 20 Commodore 128D + Printer P-803+ sd2iec. | TI-57 LCD | TI-74 BasiCalc | TI-92 II | HP-28S + HP82240A | HP-41C + (2 memory + stat + IR) modules. | HP Prime Wireless Graphing Calculator |HP-15C | CASIO fx-602p + FA-1. .Sommaire des M.P.O.. . Sommaire du P.C.T.M. .

Avatar de l’utilisateur
zpalm
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 2499
Inscription : 03 mai 2008 15:33
Localisation : Grenoble

Re: Misez p'tit Optimisez n°90 : Bibi or not Bibi

Message par zpalm » 30 mai 2019 16:24

C.Ret a écrit :
30 mai 2019 15:59
Pour HP-HEKA-C : version longue pour un MPO (je compte sur les ingénieux motivé pour optimiser un peu tout cela) mais qui fait les conversion dans les deux sens :
Voici ma version courte n->bibi pour 41CX ou 41C/CV avec module X-Functions :

Code : Tout sélectionner

01 LBL "BIBI
02 CLA
03 LBL 09 0 XEQ 08 4 XEQ 08 X#0? GTO 09 PROMPT GTO "BIBI
12 LBL 08 RCL Y 4 MOD + XEQ IND X XTOA CLX ALENG 1 - AROT R^ 4 / INT RTN
29 LBL 00 79 RTN 
32 LBL 01 65 RTN
35 LBL 02 69 RTN
38 LBL 03 73 RTN
41 LBL 04 72 RTN
44 LBL 05 66 RTN
47 LBL 06 75 RTN
50 LBL 07 68
52 END
Entrer le nombre à convertir puis XEQ" BIBI"
pour les conversations suivantes il suffit d'entrer le nombre suivi de R/S

EDIT: la version bibi->n:

Code : Tout sélectionner

01 LBL "BIBIN
02 0 x<>y
04 LBL 10 x<>y 4 * ATOX XEQ IND X RCL Z + ALENG x#0? GTO 10 RDN RTN
17 LBL 79
18 LBL 72 0 RTN
21 LBL 65
22 LBL 66 1 RTN
25 LBL 69
26 LBL 75 2 RTN
29 LBL 73
30 LBL 68 3
32 END
Entrer le code bibi en Alpha puis lancer BIBIN pour récupérer la valeur numérique dans X.
On peut donc enchainer BIBI suivi de BIBIN pour convertir un nombre en code bibi puis le reconvertir en nombre.

Gilles59
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1290
Inscription : 27 oct. 2010 20:46

Re: Misez p'tit Optimisez n°90 : Bibi or not Bibi

Message par Gilles59 » 31 mai 2019 18:12

zpalm a écrit :
30 mai 2019 16:24

Voici ma version courte n->bibi pour 41CX ou 41C/CV avec module X-Functions :
Le code est très compact, bravo ! ;D

Je suis une bille en HP41/42. Que fait le XEQ 08 ? Ca exécute le SP au LBL08?
Et les 79,65,69 etc. sont les codes des caractères à afficher ?
Casio FX-502P /602P / 603P / FX180P+ / FX4000P / TI57 / TI66 / TI74 Basicalc / TI95 Procalc / HP12C / HP15C LE / DM41L / HP 30B / HP39GII / HP 48SX USA / 49G / 49G+ / 50G / 50G NewRPL / HP Prime / Oric 1 / Amstrad CPC 6128+

Répondre

Revenir vers « Tous les Pockets »