CASIO FX-603P. Trucs en vrac
Modérateur : Politburo
- ledudu
- Fonctionne à 14400 bauds

- Messages : 5600
- Inscription : 26 mars 2009 14:07
- Localisation : Ile de France
- Contact :
Re: CASIO FX-603P. Trucs en vrac
y'a-til moyen de créer une fonction inkey ?
- Xerxes
- Fonctionne à 300 bauds

- Messages : 291
- Inscription : 02 avr. 2007 13:41
- Localisation : Allemagne
- Contact :
Re: CASIO FX-603P. Trucs en vrac
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.
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.
Re: CASIO FX-603P. Trucs en vrac
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.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.
Not really an INKEY function but try thisSo far I was not able to find anything regarding INKEY.
Code : Tout sélectionner
***P9
LBL0 PEEK 0883 ";" PAUSE GOTO0
***P0
"-> P0 KEY" GSBP9
***P1
"->P1 KEY" GSBP9
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 GOTO0Ca 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 GOTO0EDIT2 :
L'histoire des nombres "mals formés" est une fausse piste .... 20.20.20.20 affiche la même chose que 20.202020
Si vous remplacez 'x' parLBL0 x POKE 9987 GOTO0
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+
Re: CASIO FX-603P. Trucs en vrac
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?)
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

- Messages : 2086
- Inscription : 13 mars 2006 16:39
- Localisation : Issy
- Contact :
Re: CASIO FX-603P. Trucs en vrac
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
sur Windows, Linux, OS X et Android
Available now on the Google Play Store and the Apple Store
- Xerxes
- Fonctionne à 300 bauds

- Messages : 291
- Inscription : 02 avr. 2007 13:41
- Localisation : Allemagne
- Contact :
Re: CASIO FX-603P. Trucs en vrac
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.
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.
Re: CASIO FX-603P. Trucs en vrac
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..Xerxes a écrit :Interesting details on POKE 9987, merci.
En effet :Salut remy,
PEEK and POKE are only in the range of 0000-9999 and apparently no way to access the ROM.
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+
- Xerxes
- Fonctionne à 300 bauds

- Messages : 291
- Inscription : 02 avr. 2007 13:41
- Localisation : Allemagne
- Contact :
Re: CASIO FX-603P. Trucs en vrac
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.htmGilles59 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...
No, but my own work on the FX-603P looks very similar.http://fx-602p.krischik.com/index.php/FX-603P/MemoryMap
(Xerxes are you the creator of this excellent web site ?)
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 GOTO0Re: CASIO FX-603P. Trucs en vrac
Ce programme calcule le temps d'exécution d'un programme.
Il suffit de remplacer GSBPx par le programme à tester :
La précision est de 18,7 Hz soit 0,0535 sec.
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"
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+
