Ne laissons pas mourrir le PC-1211

Vous ne possédez pas l'original ? Découvrez la machine via l'émulation !

Modérateur : Politburo

Avatar du membre
C.Ret
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 3404
Enregistré le : 31 mai 2008 23:43
Localisation : N 49°22 E 6°10

Re: Ne laissons pas mourrir le PC-1211

Message par C.Ret »

ChocolatCroissant a écrit : 08 déc. 2020 13:59...on peut employer un nombre comme premier opérande au début, mais aussi après les opérations arithmétiques. Exemple : 3AB+3AC fonctionne.
Le nombre n'est pas nécessairement un nombre entier, toutes les formes suivantes fonctionnent et certaines sont souvent utilisées car économisent quelques octets (comme diviser A par 100000 en quatre caractères). J'utilise le symbole € pour le E gras marquant l'exposant décimal :
3A
.625A
-3.254A
5.123€3A
7.23B
15.23A(17)
1€6A
€60A
€-6A
€123456789A qui renvoi la valeur de Ax(10^89) comme le fait aussi €12345678901234567890123456789A (seuls les deux derniers chiffres e l'exposent sont pris en compte).
etc.

Il peut y avoir plusieurs registres collés, mais pas plus de 8 multiplications consécutives :
Fonctionnent:
A
AB
ABC
ABCD
ABCDE
ABCDEF
ABCDEFG
ABCDEFGH
ABCDEFGHI
3ABCDEFGH
ABCDEFGHI/AWERTYIO
ABCDEFGHI*JKLMNOPQ*RSTUVWXY*Z
A(1)A(2)A(3)A(4)A(5)A(6)A(7)A(8)A(9)
ABCDEA(15)FGH
A(1)BCDEFA(12)GH
∏∏∏∏∏∏∏∏∏


Ne fonctionnent pas (erreur 1..............):
ABCDEFGHIJ
3ABCDEFGHI
32.452€-31236548ABCDEFGHIJKL (le curseur après retour d'erreur par la flèche vers la droite clignote sur le I )
ABCDEFGHIJK/AWERTYIOPQ (le curseur après retour sur l'erreur est sur le J)
ABCDEFGHIJK/AWERTYIOPQ (le curseur après retour sur l'erreur est sur le J)
ABCDEFGHI/QWERTYIOPQ (le curseur après retour sur l'erreur est sur le P )
A(1)A(2)A(3)A(4)A(5)A(6)A(7)A(8)A(9)A(10) - Le curseur au retour d'erreur est sur la parenthèse ouvrante de A(10)
ABCDEA(15)FGHI - Le curseur au retour d'erreur est sur le I -
A(1)BCDEFA(12)GHI - Le curseur au retour d'erreur est sur le I -
∏∏∏∏∏∏∏∏∏∏∏∏∏∏∏∏ - Le curseur est sur le 10ième symbole de PI -

3ABOQPHIER/3[PI]R^2=3QBC (le curseur est bloqué sur le R - ou toute lettre qui serait à cet endroit pour la même raison que ci-dessus)

Les trucs dzarby :
1.2.3.4.5.6.7.8.9. renvoi 1.23456789
€ renvoi 1.
€€€€€€€€€€€€€€€ renvoi 1.
12€.......3....... renvoi 12000.
12€+.......3....... renvoi 12000.
12€-.......3....... renvoi 0.012
12€.-.......3..... renvoi 11.7

€2€3€4 renvoie 1.€ 34
€F renvoie la valeur de 1xF
€ABCDEFGH renvoie la valeur de AxBxCxDxExFxGxH (si on ajoute une lettre erreur 1.... trop long)
€€€€€€€€€€€€FZ renvoie la valeur de 1xFxZ
€-FZ ou €+FZ renvoient aussi la valeur de 1xFxZ

€-3F donne F/1000
€-3∏ donne PI/1000
Modifié en dernier par C.Ret le 09 déc. 2020 08:53, modifié 1 fois.
SHARP PC-1211 PC-1360 EL-5150 PC-E500 | Commodore C=128D | Texas Instruments Ti-57LCD Ti-74BASICalc Ti-92II Ti-58c Ti-95PROCalc Ti-30XPROMathPrint | Hewlett-Packard HP-28S HP-41C HP-15C HP-Prime HP-71B | CASIO fx-602p | NUMWORKS | Graphoplex Rietz Neperlog | PockEmul | Sommaire des M.P.O. | Ma...dov'il sapone.
remy
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 2218
Enregistré le : 13 mars 2006 15:39
Localisation : Issy
Contact :

Re: Ne laissons pas mourrir le PC-1211

Message par remy »

Je savais pouvoir compter sur toi C.Ret :-)

Je passe tous tes tests à part parfois le positionnement du curseur en cas d'erreur. En effet mon analyseur étant récursif, c'est assez compliqué à gérer.

Mais bon, je plutôt content de moi :-)
PockEmul, Emulateur de pocket Sharp, Canon, Casio, HP, TI, NEC, Panasonic, Sanco, Seiko, General, National, ....
sur Windows, Linux, OS X et Android
Available now on the Google Play Store and the Apple Store
Avatar du membre
C.Ret
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 3404
Enregistré le : 31 mai 2008 23:43
Localisation : N 49°22 E 6°10

Re: Ne laissons pas mourrir le PC-1211

Message par C.Ret »

Programmer le parseur des PC-1211 avec un algo récursif, tu prends des risques !! Mais bon c'est toi qui voit comment charpenter ton simulateur.
Mais si la charpente devient dangereuse, n'oublie pas de mettre tes EPI et surtout ton harnais et de t'attacher.

Ce n'est pas à toi que je vais expliquer à quel point le retour du curseur après d'erreur est un truc important et apprécié des SHARPistes.

Avec une approche récursive, je vois arriver les ennuis lorsque le curseur reviendra sur une ligne partiellement "analysée" par le PC-1211.

En effet, nous avons vu comment fonctionne la multiplication implicite.
Mais il y a aussi ce qui se passe lorsque l'on saisi une expression contenant des fonctions.

Pour les exemples suivant, mon PC-1211 est en DEGREE et j'ai initialisé X=45

Code : Tout sélectionner

[CL] + Saisie + [ENTER]	Résultat			Retour ligne commande [ <- ] ou [ -> ]
DEGREE			|>                       |	>
X=45			|                     45.|	X=45
							^¨¨¨¨          	Le ^ indique la position
TAN(3.0€000*X		|                     -1.|	TAN (3.0€000*X	  du curseur clignotant
							^   ¨¨¨¨¨¨¨¨¨¨¨  Les ¨ indiquent les positions 
TAN(3X			|                     -1.|	TAN (3X		  possibles du curseur
							^   ¨¨¨¨
TAN3X)			|       1................|	TAN 3X)
							¨   ¨¨^¨
TAN3X			|                     -1.|	TAN 3X
							^   ¨¨¨
3TANX			|       1................|	3TAN X
							¨^   ¨¨
XTAN3			|       1................|	XTAN 3
							¨^   ¨¨
TAN3*X			|             2.358350068|	TAN 3*X
							^   ¨¨¨¨
TANX			|                      1.|	TAN X
							^   ¨¨
TAN2X			|       1................|	TAN 2X_		Le curseur vide ne clignote pas.
							¨   ¨¨¨
TAN2X+5			|       1................|	TAN 2X+5	Le curseur clignotant sur le +
							¨   ¨¨^¨¨ 	
SHARP PC-1211 PC-1360 EL-5150 PC-E500 | Commodore C=128D | Texas Instruments Ti-57LCD Ti-74BASICalc Ti-92II Ti-58c Ti-95PROCalc Ti-30XPROMathPrint | Hewlett-Packard HP-28S HP-41C HP-15C HP-Prime HP-71B | CASIO fx-602p | NUMWORKS | Graphoplex Rietz Neperlog | PockEmul | Sommaire des M.P.O. | Ma...dov'il sapone.
remy
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 2218
Enregistré le : 13 mars 2006 15:39
Localisation : Issy
Contact :

Re: Ne laissons pas mourrir le PC-1211

Message par remy »

Tes exemples avec la fonction tangente font émerger un problème.
La librairie math.h que j'utilise calcule la trigonométrie en radian, il est donc impossible d'avoir un TAN 90 produisant une erreur car je dois convertir 90 en radian et PI/2 ne peut jamais être représenté en réel :-(

Le PC-1211 produit bien une erreur sur TAN 90 et aussi sur TAN(PI/2) d'ailleurs. Comment fait-il ?
PockEmul, Emulateur de pocket Sharp, Canon, Casio, HP, TI, NEC, Panasonic, Sanco, Seiko, General, National, ....
sur Windows, Linux, OS X et Android
Available now on the Google Play Store and the Apple Store
Avatar du membre
ledudu
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 5631
Enregistré le : 26 mars 2009 13:07
Localisation : Ile de France
Contact :

Re: Ne laissons pas mourrir le PC-1211

Message par ledudu »

Tu as le même problème avec SIN 90 et COS 90 du coup.
remy
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 2218
Enregistré le : 13 mars 2006 15:39
Localisation : Issy
Contact :

Re: Ne laissons pas mourrir le PC-1211

Message par remy »

ledudu a écrit : 09 déc. 2020 15:25 Tu as le même problème avec SIN 90 et COS 90 du coup.
SIN 90 me donne bien 1 mais j'ai le soucis avec COS 90 qui me retourne 6.1232339957E-17 :D
Modifié en dernier par remy le 09 déc. 2020 17:23, modifié 1 fois.
PockEmul, Emulateur de pocket Sharp, Canon, Casio, HP, TI, NEC, Panasonic, Sanco, Seiko, General, National, ....
sur Windows, Linux, OS X et Android
Available now on the Google Play Store and the Apple Store
Avatar du membre
C.Ret
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 3404
Enregistré le : 31 mai 2008 23:43
Localisation : N 49°22 E 6°10

Re: Ne laissons pas mourrir le PC-1211

Message par C.Ret »

remy a écrit : 09 déc. 2020 14:09 ...
Le PC-1211 produit bien une erreur sur TAN 90 et aussi sur TAN(PI/2) d'ailleurs. Comment fait-il ?
Je confirme :
DEGREE
TAN 90
1...............
RADIAN
TAN .5∏
1...............
GRAD
TAN 100
1...............


Comment fait-il ?

Bien j'en sais rien. ce qui est sûr c'est que c'est un formidable instrument pédagogique. Il m'a accompagné et a participé à mon éducation pendant toute ma scolarité jusqu'à la maitrise.
Ce qui est notable aussi c'est qu'il n'est pas rapide lors des calculs. Il n'est pas fait pour être rapide. Il l'est par nature car calculer une tangente avec un PC-1211 va plus vite que d'aller chercher le Handbook de Physique-Chimie qui en annexe a toute sorte de tables numériques pour toute une variété de fonctions trigonométriques et autres.

Il est aussi plus précis et pratique que la règle à calculer de papa, même si celle-ci est une Graphoplex avec les échelles S, T et S&T car le PC-1211 donne facilement plus de 5 ou 6 décimales fiables.

A mon avis, le PC-1211 (comme les SHARP EL-5100 et SHARP EL-5150 ) est bien capable, pour des raisons pédagogiques (et de sérieux de la marque - c'est pas une CASIO ou une Ti College hein !??) de tester pour chaque argument, et dans les trois modes trigo, que l'argument est bien dans son intervalle de définition.

En fait, le PC-1211 ne tombe jamais sur une erreur, il la voit venir et en informe immédiatement l'utilisateur.

N'oublions pas que juste avant lui SHARP avait mis sur le marché les SHARP EL-5100 et 5150 qui sont bien aussi du style à vérifier ce qu'elles affichent dans les trois modes proposés !!

C'est pas une HP prime hein ... si vous voyez ce que je veux dire. A 1200.00 F (H.T.) la calculette , en 1981, on évitait en ces temps révolus de se f...tre de la g...le des clients. (En fait, je crois que cette expression n'existait pas (encore) à l'époque.

Si on annonçait, trois modes trigonométrique, on fournissait réellement trois modes indépendant avec chacun une qualité irréprochable.
Pas un bricolage approximatif comme les médiocres machines actuelles dont même le mode examen est buggé.

Il es bien capable d'avoir une sous-routine différente pour chaque fonction dans les trois mode.
Ou, ce qui est peut-être plus court (la ROM est limité) il calcule en interne en mode trigonométrique 'binaire' ou 'octal' ou je ne sais quelle astuce qui simplifie l'implémentation du Cordic sur ces deux micropross. et a donc pour chacun des trois modes classiques un 'convertisseur'


Pour en avoir le cœur net, j'ai fais les petits tests suivants :

Code : Tout sélectionner

1 "D" DEGREE : A=90,E=1:GOTO 10
2 "F" RADIAN : A=.5∏,E=1:GOTO 10
3 "G" GRAD : A=100,E=1:GOTO 10
10 E=.1E,B=A-E:PAUSE B,TAN B:GOTO 10
DEF D boucle neuf fois est affiche 10: 1...... lorsque E=1.€-9 et B=90.
DEF G boucle neuf fois est affiche 10: 1...... lorsque E=1.€-9 et B=100.
DEF F boucle à l'infini, le registre B ne contient jamais une valeur suffisamment proche de ∏/2 même avec une E aussi petit que 1.€-24

Code : Tout sélectionner

1 "D" DEGREE : A=90,E=1,N=0:GOTO 10
2 "F" RADIAN : A=.5∏,E=1,N=0:GOTO 10
3 "G" GRAD : A=100,E=1,N=0:GOTO 10
10 N=N+1,E=.5E,B=A-E:PAUSE B,TAN B:GOTO 10
14 "V" RADIAN : E=1,N=0:GOTO
20 N=N+1,E=.5E:PAUSE .5∏-E,TAN (.5∏-E:GOTO 20
DEF D boucle 28 fois est affiche 10: 1...... lorsque E=3.725290305€-9 et B=90.
DEF G boucle 28 fois est affiche 10: 1...... lorsque E=3.725290305€-9 et B=100.
DEF F boucle à l'infini, le registre B ne contient jamais une valeur suffisamment proche de ∏/2
DEF V boucle 37 fois est affiche 20: 1...... lorsque E=7.275957635€-12

Remarquable aussi sont les valeurs successive des TANgentes avec le sous-programme 20:
1.070796327 1.830487722 E=.5
1.32796327 3.916317365
1.445796327 7.958289866
1.508296327 15.97916124
1.539546327 31.98958265
1.555171327 63.99479157
1.562983827 127.9973957
1.566890077 255.9986976
1.568843202 511.999346 E=0.001953125
1.569819764 1023.999669
1.570308046 2047.999826
1.570552186 4096.000042
1.570674256 8191.99962
1.570735292 16383.9993
1.570765809 32768.008
1.570781068 65538.01602 qui suputait un Cordic des maisons en mode binaire. Combien de bits fait le cercle trigo d'un PC-1211 ?
1.570788697 131072.032
1.570792512 262144.0641
1.570794419 524288.1282 E=1.907348634€-06
1.570795373 1048585.852
1.57079585 2097210.085
1.570796088 4194420.169
1.570796208 8388840.339
1.570796267 16777680.68
1.570796297 33545538.36
1.570796312 67091076.71
1.570796319 134182153.4
1.570796323 268994270.
1.570796325 535474574.9
1.570796326 1081052444.
1.570796326 2122065908. E=4.65661283€-10
1.570796327 4407367655. E=2.328306442€-10
1.570796327 9549296586. E=1.164153221€-10
1.570796327 1.90985€ 10 E=5.820766105€-11
1.570796327 5.72957€ 10 E=2.910383053€-11
1.570796327 5.72957€ 10 E=1.455191527€-11
20: 1.................. E=7.275957635€-12 en appuyant sur la flèche [ ↑ ], le curseur clignote sur les : entre le E et le GOTO de la ligne 20:


En attendant que ma soupe chauffe, je continu mon exploration : Image
Un certains nombre de machine calcule la tangente en effectuant le rapport du sinus par le cosinus, voyons si nos observations coïncide avec cette hypothèse:

Code : Tout sélectionner

29: " " RADIAN :E=1,N=0
30:N=N+1,E=.5E:PRINT SIN(.5∏-E,COS(.5∏-E:GOTO 30
8.77582€-01 4.79425€-01 E=.5
9.68912€-01 2.47403€-01
9.92197€-01 1.24674€-01
9.98047€-01 6.24593€-02
9.99511€-01 3.12449€-02
9.99877€-01 1.56243€-02
9.99969€-01 7.81242€-03
9.9992€-01 3.90624€-03 E=0.00390625
9.9998€-01 1.95312€-03
9.99999€-01 9.76562€-04
9.99999€-01 4.88281€-04
9.99999€-01 2.44140€-04
9.99999€-01 1.22070€-04
9.99999€-01 6.10351€-05 E=6.103515625€-05 N=14
9.99999€-01 3.05175€-05
9.99999€-01 1.52587€-05
1. 7.62939€-06 E=7.629394535€-06 N=17
1. 3.81469€-06
1. 1.90734€-06
1. 9.53665€-07
1. 4.76823€-07
1. 2.38411€-07 E=2.384185793€-07
1. 1.19205€-07
1. 5.96029€-08
1. 2.98102€-08
1. 1.49051€-08 E=1.490116122€-08 N=26
1. 7.45255€-09
1. 3.71755€-09
1. 1.86750€-09
1. 9.25024€-10
1. 4.71238€-10
1. 2.26892€-10
1. 1.04719€-10
1. 5.23598€-11 E=5.820766105€-11 N=34
1. 1.74532€-11 E=2.910383053€-11 N=35
1. 1.74532€-11 E=1.455191527€-11 N=36
1. 0. E=7.275957635€-12 N=37
1. 0.
Etc ...

Donc, l'erreur en calculant TAN vient bien du COS qui s'annule.


Pour simuler cela, il suffira de vérifier les intervalles et les valeur minimales/maximale à partir desquels s'arrête un PC-1211.
On devrait avoir un comportement conforme (ou très très proche) à partir d'une bibliothèque actuelle de calcul. Il faut juste bien ajuster les filtres dans chacune des trois mode trigo.
SHARP PC-1211 PC-1360 EL-5150 PC-E500 | Commodore C=128D | Texas Instruments Ti-57LCD Ti-74BASICalc Ti-92II Ti-58c Ti-95PROCalc Ti-30XPROMathPrint | Hewlett-Packard HP-28S HP-41C HP-15C HP-Prime HP-71B | CASIO fx-602p | NUMWORKS | Graphoplex Rietz Neperlog | PockEmul | Sommaire des M.P.O. | Ma...dov'il sapone.
Avatar du membre
gege
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 7141
Enregistré le : 31 janv. 2008 14:24
Localisation : Banlieue Paârisienne
Contact :

Re: Ne laissons pas mourrir le PC-1211

Message par gege »

Bonjour,
Je pense que les valeurs de tangente ressemblant à des puissances de 2 sont seulement dues à ta façon de construire les arguments :
tan(pi/2 - 2^-n) = cos 2^-n / sin 2^-n ~ 2^n

Par ailleurs en CORDIC je crois qu'en général la tangente est calculée directement sans passer par sin eet cos.
Mais comme tu dis on n'est pas à l'abri d'un gars un peu créatif.
G.E.
Avatar du membre
C.Ret
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 3404
Enregistré le : 31 mai 2008 23:43
Localisation : N 49°22 E 6°10

Re: Ne laissons pas mourrir le PC-1211

Message par C.Ret »

gege a écrit : 09 déc. 2020 23:08Je pense que les valeurs de tangente ressemblant à des puissances de 2 sont seulement dues à ta façon de construire les arguments :
Je pense que tu as raison. Par contre , sur le coup en lisant ton message j'ai cru que tu avais inversé les SIN et COS dans ta formule.
Une petite révision s'impose donc pour moi:
Image
Ce que je ne trouvais plus était :
Image
Les fonctions sin et cos sont déphasées de PI/2 :)

Et donc effectivement, on a bien :
Image

Ouf !
SHARP PC-1211 PC-1360 EL-5150 PC-E500 | Commodore C=128D | Texas Instruments Ti-57LCD Ti-74BASICalc Ti-92II Ti-58c Ti-95PROCalc Ti-30XPROMathPrint | Hewlett-Packard HP-28S HP-41C HP-15C HP-Prime HP-71B | CASIO fx-602p | NUMWORKS | Graphoplex Rietz Neperlog | PockEmul | Sommaire des M.P.O. | Ma...dov'il sapone.
Répondre

Retourner vers « Emulateurs »