Mini calculatrice RPN

un pet, un vic, un 64...

Modérateur : Politburo

Répondre
Avatar de l’utilisateur
Ben
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 874
Inscription : 21 août 2016 19:04

Mini calculatrice RPN

Message par Ben » 17 mars 2017 18:41

Salut,

Je me suis lancé dans le développement d'une mini calculatrice 4 opérations en RPN. Les points lors de l'affichage doivent être remplacé par les caractères graphiques du C128. Ca fait juste un cadre autour de l'affichage de la pile.

Voici le premier jet:

Code : Tout sélectionner

10 FAST
20 M=4:DIM S(M):E%=0:F%=0:D%=0:P%=0
30 GOSUB 220
40 GOSUB 330
50 GET N$
60 IF N$="" THEN 50
70 IF N$>="0" AND N$<="9" AND F%=1 THEN GOSUB 170:GOSUB 330:F%=0
80 IF N$>="0" AND N$<="9" AND E%=1 THEN S(1)=0:E%=0
90 IF N$>="0" AND N$<="9" AND D%=0 THEN S(1)=S(1)*10+VAL(N$):GOSUB 330
100 IF N$>="0" AND N$<="9" AND D%=1 THEN P%=P%-1:S(1)=S(1)+VAL(N$)*10^P%:G
OSUB 330
110 IF N$="+" OR N$="-" OR N$="*" OR N$="/" THEN GOSUB 390:GOSUB 330:E%=1:
F%=1:D%=0:P%=0
120 IF N$="." THEN D%=1
130 IF N$=CHR$(13) THEN GOSUB 170:GOSUB 330:E%=1:D%=0:P%=0
140 IF N$="C" THEN S(1)=0:GOSUB 330:D%=0:P%=0
150 GOTO 50
160 REM MANUPULATION DU STACK
170 FOR I=M-1 TO 1 STEP -1
180 S(I+1)=S(I)
190 NEXT I
200 RETURN
210 REM ****AFFICHAGE DE LA CALCULATRICE *****
220 SCNCLR
230 PRINT "CALCULATRICE RPN"
240 PRINT "................"
250 PRINT "................."
260 PRINT ".T.             ."
270 PRINT ".Z.             ."
280 PRINT ".Y.             ."
290 PRINT ".X.             ."
300 PRINT "................."
310 RETURN
320 REM **** AFFICHAGE DU STACK ET DU REGISTRE ****
330 FOR I=1 TO M
340 CHAR 1,3,7-I,"          "
350 CHAR 1,3,7-I,STR$(S(I))
360 NEXT I
370 RETURN
380 REM ***** OPERATION  *****
390 IF N$="+" THEN S(1)=S(2)+S(1)
400 IF N$="*" THEN S(1)=S(2)*S(1)
410 IF N$="-" THEN S(1)=S(2)-S(1)
420 IF N$="/" THEN S(1)=S(2)/S(1)
430 FOR I=2 TO M-1:S(I)=S(I+1):NEXT I
440 S(M)=0
450 RETURN
J'attends vos remarques sur l'utilisation de la pile :-)

Ben

Avatar de l’utilisateur
Miskatonic91
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 382
Inscription : 27 août 2016 17:28
Localisation : Valdemarnie

Re: Mini calculatrice RPN

Message par Miskatonic91 » 17 mars 2017 19:51

Très intéressant!
Le programme est-il transposable facilement sur d'autres Basic (je n'ai pas de C128)? :wink:
Casio: fx-180pv, fx-702p, fx-795p, fx-4000p, fx-7000g, fx-7700g, pv-s460, graph-25 // Psion: Series 5 // Sharp: pc-1246s, pc-1403 // TI: 57, 57-LCD, 57-II, 62 Galaxy, 66, 82 Stats.fr, 83 Plus.fr, 89, 92 II, 92 Plus, 95 Procalc, Voyage 200 // HP: 17BII,48G, 95LX, 100LX (et un 200LX hs)

Avatar de l’utilisateur
Ben
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 874
Inscription : 21 août 2016 19:04

Re: Mini calculatrice RPN

Message par Ben » 18 mars 2017 10:38

Miskatonic91 a écrit :Très intéressant!
Le programme est-il transposable facilement sur d'autres Basic (je n'ai pas de C128)? :wink:
Je pense bien, c'est du basic tout à fait classique. Si tu hésites sur une instruction, n'hésite pas.

Je vais le convertir sur le PC1246 (j'adore ce petit sharp)

Avatar de l’utilisateur
rogeroge
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 2742
Inscription : 14 mai 2010 21:41
Localisation : Entre Nancy et Bercy : à Torcy

Re: Mini calculatrice RPN

Message par rogeroge » 18 mars 2017 11:57

Ben a écrit :..........

Je vais le convertir sur le PC1246 (j'adore ce petit sharp)
Alors tu vas adorer aussi le Sharp PC-1247.
Il faut être fou pour venir sur ce site mais encore plus fou pour ne pas y revenir !

Avatar de l’utilisateur
Miskatonic91
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 382
Inscription : 27 août 2016 17:28
Localisation : Valdemarnie

Re: Mini calculatrice RPN

Message par Miskatonic91 » 18 mars 2017 12:03

Ben a écrit : Si tu hésites sur une instruction, n'hésite pas.
Je n'hésite donc pas! Que font les instructions FAST et CHAR?
Merci de ta réponse! :wink:
EDIT: je suppose que FAST est un mode plus rapide (mais pourquoi?). CHAR doit positionner le curseur à un emplacement spécifique de l'écran en mode texte?
Ben a écrit : Je vais le convertir sur le PC1246 (j'adore ce petit sharp)
Bonne idée, je vais pouvoir l'adapter plus facilement sur mon PC-1403! :wink:
Casio: fx-180pv, fx-702p, fx-795p, fx-4000p, fx-7000g, fx-7700g, pv-s460, graph-25 // Psion: Series 5 // Sharp: pc-1246s, pc-1403 // TI: 57, 57-LCD, 57-II, 62 Galaxy, 66, 82 Stats.fr, 83 Plus.fr, 89, 92 II, 92 Plus, 95 Procalc, Voyage 200 // HP: 17BII,48G, 95LX, 100LX (et un 200LX hs)

Avatar de l’utilisateur
Ben
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 874
Inscription : 21 août 2016 19:04

Re: Mini calculatrice RPN

Message par Ben » 18 mars 2017 14:51

Miskatonic91 a écrit :Je n'hésite donc pas! Que font les instructions FAST et CHAR?
Comme tu l'as deviné. Fast est pour passer le processeur en mode 2Mhrz, par défaut, il est à 1Mhrz.
Char, imprime une chaîne de caractère à la position X,Y sur l'écran.
rogeroge a écrit :Bonne idée, je vais pouvoir l'adapter plus facilement sur mon PC-1403
Je te tiens au courant quand je l'ai adapté. :-)

Avatar de l’utilisateur
Ben
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 874
Inscription : 21 août 2016 19:04

Re: Mini calculatrice RPN

Message par Ben » 18 mars 2017 19:33

rogeroge a écrit :
Ben a écrit :..........

Je vais le convertir sur le PC1246 (j'adore ce petit sharp)
Alors tu vas adorer aussi le Sharp PC-1247.
Je n'ai pas encore de PC-1247 ;-)

Par contre, j'ai un petit souci. L'instruction INKEY$ du sharp efface l'écran lors de son exécution.

Avatar de l’utilisateur
rogeroge
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 2742
Inscription : 14 mai 2010 21:41
Localisation : Entre Nancy et Bercy : à Torcy

Re: Mini calculatrice RPN

Message par rogeroge » 18 mars 2017 19:41

Ben a écrit :
rogeroge a écrit :
Ben a écrit :..........

Je vais le convertir sur le PC1246 (j'adore ce petit sharp)
Alors tu vas adorer aussi le Sharp PC-1247.
Je n'ai pas encore de PC-1247 ;-)

Par contre, j'ai un petit souci. L'instruction INKEY$ du sharp efface l'écran lors de son exécution.
Je regarde ça mais pour l'instant, j'ai à faire avec La Gazette et il me faut retrouver ce petit Sharp probablement
bien dissimulé dans mon Big Bazar.
Il faut être fou pour venir sur ce site mais encore plus fou pour ne pas y revenir !

Avatar de l’utilisateur
Ben
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 874
Inscription : 21 août 2016 19:04

Re: Mini calculatrice RPN

Message par Ben » 18 mars 2017 19:47

Merci rogeroge :)

Voici un petit programme de test sur le PC-1246

Code : Tout sélectionner

900 WAIT 10
905 PRINT V
910 N$=INKEY$
915 IF N$="" THEN 910
920 V=V*10+VAL(N$)
930 GOTO 905
J'ai dû mettre 10 au WAIT pour apercevoir quelque sur l’écran lorsque je tape des chiffres

Avatar de l’utilisateur
Ben
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 874
Inscription : 21 août 2016 19:04

Re: Mini calculatrice RPN

Message par Ben » 18 mars 2017 22:12

Je viens d'essayer avec un PC-1500, ça fonctionne bien :?

Avatar de l’utilisateur
badaze
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 6352
Inscription : 12 févr. 2007 19:36
Localisation : Pas très loin de Lyon
Contact :

Re: Mini calculatrice RPN

Message par badaze » 18 mars 2017 23:51

Ben a écrit :Je viens d'essayer avec un PC-1500, ça fonctionne bien :?
Ce sujet avait été abordé il y a un peu de 6 ans !!! Dont ma version pour PC 1500.

viewtopic.php?f=46&t=23928&hilit=rpn&start=15
Tout est bon dans le pocket.
Moi j'aime tout.... Casio, HP, Sharp, TI et les autres sauf que les TI semblent ne pas m'aimer :(
http://www.emmella.fr
Mes Casio - HP - Sharp - TI
Homme invisible.

Avatar de l’utilisateur
Ben
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 874
Inscription : 21 août 2016 19:04

Re: Mini calculatrice RPN

Message par Ben » 19 mars 2017 15:53

J'avoue que je n'ai pas vraiment fait de recherche sur le site.

Avatar de l’utilisateur
Ben
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 874
Inscription : 21 août 2016 19:04

Re: Mini calculatrice RPN

Message par Ben » 19 mars 2017 19:10

Voici ma version PC-1500. Sur la version C-128, la variable M permet d'augmenter la taille de la pile. Ici, elle est de 4.

Code : Tout sélectionner

5 WAIT 0
10 DIM S(4): E=0:F=0:D=0:P=0
40 PRINT S(1)
50 N$=INKEY$
60 IF N$="" then 50
70 IF N$>="0" AND N$<="9" AND F=1 GOSUB 170:PRINT S(1):F=0:GOTO 150
80 IF N$>="0" AND N$<="9" AND E=1 LET S(1)=0:E=0:GOTO 150
90 IF N$>="0" AND N$<="9" AND D=0 LET S(1)=S(1)*10+VAL(N$):PRINT S(1):F=0:GOTO 150
100 IF N$>="0" AND N$<="9" AND D=1 LET P=P-1:S(1)=S(1)+VAL(N$)*10^P:PRINT S(1):F=0:GOTO 150
110 IF N$="+"OR N$="-"OR N$="*"OR N$="/" GOSUB 390:PRINT S(1):E=1:F=1:D=0:P=0:GOTO 150
120 IF N$="." LET D=1:GOTO 150
130 IF N$=CHR$ (13) GOSUB 170:PRINT S(1):E=1:D=0:P=0:GOTO 150
140 IF N$="C" LET S(1)=0:PRINT S(1):D=0:P=0
150 GOTO 50
170 FOR I=3 TO 1 STEP -1
180 S(I+1)=S(I)
190 NEXT I
200 RETURN
390 IF N$="+" LET S(1)=S(2)+S(1)
400 IF N$="*" LET S(1)=S(2)*S(1)
410 IF N$="-" LET S(1)=S(2)-S(1)
420 IF N$="/" LET S(1)=S(2)/S(1)
430 FOR I=2 TO 3:S(I)=S(I+1):NEXT I
440 S(4)=0
450 RETURN
@Miskatonic91: Si tu veux voir si ça fonctionne sur le PC-1401 :-)

Ben

Avatar de l’utilisateur
Miskatonic91
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 382
Inscription : 27 août 2016 17:28
Localisation : Valdemarnie

Re: Mini calculatrice RPN

Message par Miskatonic91 » 19 mars 2017 23:49

Ben a écrit : @Miskatonic91: Si tu veux voir si ça fonctionne sur le PC-1401 :-)
Ben
Faut déjà que je remette des piles dedans... :lol:
A l'occasion, c'est promis, dès que j'ai un moment...
Casio: fx-180pv, fx-702p, fx-795p, fx-4000p, fx-7000g, fx-7700g, pv-s460, graph-25 // Psion: Series 5 // Sharp: pc-1246s, pc-1403 // TI: 57, 57-LCD, 57-II, 62 Galaxy, 66, 82 Stats.fr, 83 Plus.fr, 89, 92 II, 92 Plus, 95 Procalc, Voyage 200 // HP: 17BII,48G, 95LX, 100LX (et un 200LX hs)

Répondre

Revenir vers « Commodore 8bits »