CASIO FX-603P. Trucs en vrac

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

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

Re: CASIO FX-603P. Trucs en vrac

Message par ledudu » 12 oct. 2014 21:14

Bravo pour l'horloge !

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

Re: CASIO FX-603P. Trucs en vrac

Message par ledudu » 12 oct. 2014 21:45

y'a-til moyen de créer une fonction inkey ?

Avatar de l’utilisateur
Xerxes
Fonctionne à 300 bauds
Fonctionne à 300 bauds
Messages : 291
Inscription : 02 avr. 2007 13:41
Localisation : Allemagne
Contact :

Re: CASIO FX-603P. Trucs en vrac

Message par Xerxes » 14 oct. 2014 16:38

Salut Gilles,
merci for discovering the usefull seconds counter at 0883. Inspired by your work, I was able to find a 16 bit counter
at 0885/0886. Normally it starts counting from 65535 to 0 with about 18.7 Hz, when the "Low Battery!" message appears, to
shut down the calculator after about 1 hour, independently of the auto power off function. To use this in own programs,
just write the starting value in 0885/0886 and set the low battery status with 1 POKE 0884 to start the counter and 0 POKE 0884
to stop it.

Two other things are the opcode 253, that has the same function as BST in RUN Mode, and POKE 9987, that has something to do
with the display refresh, but in a abnormal way. I'm not sure, if it's a usefull command.

So far I was not able to find anything regarding INKEY.

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

Re: CASIO FX-603P. Trucs en vrac

Message par Gilles59 » 14 oct. 2014 21:32

Xerxes a écrit :Salut Gilles,
(...)To use this in own programs,
just write the starting value in 0885/0886 and set the low battery status with 1 POKE 0884 to start the counter and 0 POKE 0884
to stop it.
Hi Xerxes ! Thanks ! 884, 885,886 bytes are _very_cool ! So now we know about the bytes 883 to 886... The puzzle begins to be solved.
So far I was not able to find anything regarding INKEY.
Not really an INKEY function but try this

Code : Tout sélectionner

***P9
LBL0 PEEK 0883 ";" PAUSE GOTO0

***P0
"-> P0 KEY" GSBP9

***P1
"->P1 KEY" GSBP9
Push P9,then play with the P0 ,P1 key ;D

P9 does its job, and P0 and P1 works like INKEY

With this idea (it works also with the 602p). I wrote a kind of "space invader" on the 602 long ago. (P0 : Go left / P1 : Fire / P2 : Go right)

@ledudu : In my opinion, I think a 'real' INKEY is not possible because I guess that there is no keyboard scan (except AC key) during execution mode (except PAUSE). but who knows? .... And perhaps it is possible to change the duration of the PAUSE command ?

EDIT :

"POKE 9987, that has something to do with the display refresh"

Très curieux en effet... / very curious indeed....

Code : Tout sélectionner

LBL0 .12345 POKE 9987 GOTO0
affiche du texte sur la partie basse de l'écran (normalement numérique exclusivement) sans avoir à forcer le rafraichissement. Il semble que le POKE sur cette adresse n'est pas vraiment un poke mais autre chose....

Ca semble interpréter la séquence de chiffres (même malformé genre .123.33.12 devant le POKE. Exemple :

Code : Tout sélectionner

LBL0 .20.20.20.20 POKE 9987 GOTO0
affiche (en bas) s s s . :O

EDIT2 :
L'histoire des nombres "mals formés" est une fausse piste .... 20.20.20.20 affiche la même chose que 20.202020
LBL0 x POKE 9987 GOTO0
Si vous remplacez 'x' par

1.1 -> b (et en point s'affiche sur la ligne basse)
2.1 -> c
...
9.1 -> j
1.2 -> r
2.2 -> s
...
9.2 -> z

Attention pas de variable, ni de = avant le poke sinon çà affiche la valeur normale...

xxx.3 affiche les lettres majuscules (comme les minuscules)
etc pour les symboles

Bref c'est très bizarre ...

EDIT3 :

haha ! Voilà qui devient plus intéressant (et encore plus étrange !)

1234.1111 -> bcde
1234.3333 -> BCDE

74118.31222 -> Herry (désolé il me manque encore les 'l' et les 'o' )

EDIT4

Comparer ce qui se passe ci dessus et çà :
http://fx-602p.krischik.com/index.php/FX-603P/Font

Herry = 37h 14h 21h 21h 28h

On comprend pourquoi 1.1 -> b ou 7.6 -> ² et aussi pourquoi les caractères de k..p ne sont pas affichables de cette façon (il faudrait entrer des nombres genre 'b.3' pour afficher 'L'... )
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 : 1428
Inscription : 27 oct. 2010 20:46

Re: CASIO FX-603P. Trucs en vrac

Message par Gilles59 » 15 oct. 2014 22:28

Continuons l'exploration (au risque de méchants plantages )

1 POKE 9995 retourne le message "RAM OK"

1 POKE 9996 est un test du clavier => taper sur les touches en commencant par SHIFT puis 2ndF etc. un code s'affiche.Une fois toutes les touches appuyées "KEY OK" s'affiche; Codes intéressants si on trouve un jour une zone INKEY ?

1 POKE 9997 teste l'affichage (vierge puis tout noir y compris indicateurs, puis 2 niveaux de "gris"). Ram conservée

Méfiez-vous de l'addresse 9990 ! un poke ici vire tous les programmes de P0 à P6 et les remplace par des POKE qui vont bien pour tester la machine (?) ( 9996, 9997, 9995, 9992, 9991, 9994 et 9993). Un genre de menu de service ? un manuel technique doit sans doute expliquer cela. Pas compris ce que font les POKE 9992 9991 9994 et 9993 (test imprimante et périphériques que je n'ai pas?)
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+

remy
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 2086
Inscription : 13 mars 2006 16:39
Localisation : Issy
Contact :

Re: CASIO FX-603P. Trucs en vrac

Message par remy » 15 oct. 2014 22:59

Dites moi, ces PEEK , ils ne concernent que la RAM ? paceque si la ROM est lisible ....
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 de l’utilisateur
Xerxes
Fonctionne à 300 bauds
Fonctionne à 300 bauds
Messages : 291
Inscription : 02 avr. 2007 13:41
Localisation : Allemagne
Contact :

Re: CASIO FX-603P. Trucs en vrac

Message par Xerxes » 16 oct. 2014 17:48

Interesting details on POKE 9987, merci.

More about the test POKEs:

POKE 9990: load system test calls in P0-P6
POKE 9991: printer test
POKE 9992: rs-232 test
POKE 9993: var ram test
POKE 9994: prepare var ram test
POKE 9995: complete ram test
POKE 9996: key test
POKE 9997: display test


Salut remy,
PEEK and POKE are only in the range of 0000-9999 and apparently no way to access the ROM.

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

Re: CASIO FX-603P. Trucs en vrac

Message par Gilles59 » 16 oct. 2014 18:51

Xerxes a écrit :Interesting details on POKE 9987, merci.
Interessant mais très étrange....Ca permet déjà d'afficher quelques caractères alpha sur la ligne basse de l'afficheur mais çà cache un fonctionnement plus subtil. Je ne désespère pas de pouvoir afficher toute séquence de caractère en bas..
Salut remy,
PEEK and POKE are only in the range of 0000-9999 and apparently no way to access the ROM.
En effet :
http://fx-602p.krischik.com/index.php/FX-603P/MemoryMap
(Xerxes are you the creator of this excellent web site ?)

La RAM va de 1 à 8191 (8 ko)
8192 à 9979 ne génère pas d'erreur mais ne font rien
"Never specify 9980 to 9998 because doing so will destroy memory contents" dit la doc ;D
9999 : envoie l'octet poké vers le port Centronics
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
Xerxes
Fonctionne à 300 bauds
Fonctionne à 300 bauds
Messages : 291
Inscription : 02 avr. 2007 13:41
Localisation : Allemagne
Contact :

Re: CASIO FX-603P. Trucs en vrac

Message par Xerxes » 16 oct. 2014 19:27

Gilles59 a écrit :Interessant mais très étrange....Ca permet déjà d'afficher quelques caractères alpha sur la ligne basse de l'afficheur mais çà cache un fonctionnement plus subtil. Je ne désespère pas de pouvoir afficher toute séquence de caractère en bas...
POKE 9987 remainds me to the hidden command "SYSTEM CHR$ (code)" on the PB-2000C. More on that: http://www.pisi.com.pl/piotr433/pb2000be.htm
http://fx-602p.krischik.com/index.php/FX-603P/MemoryMap
(Xerxes are you the creator of this excellent web site ?)
No, but my own work on the FX-603P looks very similar.

I'll make some further tests with POKE 9980-9989...

EDIT
The examination of the execution times shows that the POKEs 9984,9985,9986 and 9998 do something.

Code : Tout sélectionner

LBL0 POKE 9984 GOTO0
causes a kind of flicker on the LCD.

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

Re: CASIO FX-603P. Trucs en vrac

Message par Gilles59 » 10 nov. 2014 13:05

Ce programme calcule le temps d'exécution d'un programme.
Il suffit de remplacer GSBPx par le programme à tester :

Code : Tout sélectionner

P19**

255 POKE 0885 POKE 0886         // Initialise point fort et faible du timer
1 POKE 0884                     // Démarrer chrono
GSBPx                           // Lancer le programme à tester
0 POKE 0884                     // Stopper chrono
255 - PEEK 0885 + 
( 255 - PEEK 0886 ) * 256
- 1 =                           // Pour corriger le temps d'appel du GSB

/ 67320 =                       // compteur à 18,7 Hz et calcul en hh.xxxxx

"Temps exec :"
°'"<-                           // Affiche le temps d'exécution en sexagésimal   hh°mm'ss.ss"
La précision est de 18,7 Hz soit 0,0535 sec.
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 »