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

Gilles59
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1602
Enregistré le : 27 oct. 2010 20:46

CASIO FX-603P. Trucs en vrac

Message par Gilles59 »

J'aurai bien écrit un article complet sur la CASIO FX-603P. Ca viendra peut-être un jour si j'ai le temps,mais pas sur...
Donc quelques trouvailles en vrac ici sur cette machine jamais vraiment vendue en France :

1/ Décrypter 16 codes successifs de la RAM a partir de l'adresse saisie en entrée

Code : Tout sélectionner

Min01
 16 Min00
 1392 Min02
 LBL1
  PEEK MR01 POKE MR02
  1 M+01 M+02
 DSZ GOTO1
 ";"  MR01 
La méthode permet d'écrire quelques chose directement sur une case particulière de l'écran... (poker à partir de 1392, il faut rafraichir l'affichage ";" pour voir quelque chose...
En appuyant de nouveau sur la touche où se trouve le programme (ex P0) , on décrypte les 16 octets suivants etc.
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+ CM14 et MM12 / Alice 32
Avatar du membre
gege
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 7147
Enregistré le : 31 janv. 2008 14:24
Localisation : Banlieue Paârisienne
Contact :

Re: CASIO FX-603P. Trucs en vrac

Message par gege »

Bonjour,
Miam, on n'en parle pas beaucoup de cette machine.

Il y a largement de quoi faire un entrefilet, mais quand on voit 1/ on s'attend à voir au moins 2/...
Quand on n'est pas trop impatient ! ;-)

A te lire donc,
G.E.
Avatar du membre
zork750
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 489
Enregistré le : 29 avr. 2011 15:44
Localisation : Paris

Re: CASIO FX-603P. Trucs en vrac

Message par zork750 »

@Gilles59,

Je te remercie de nous faire part de tes découvertes sur cette sublime Casio Fx-603P.......... :D


@+
Gilles59
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1602
Enregistré le : 27 oct. 2010 20:46

Re: CASIO FX-603P. Trucs en vrac

Message par Gilles59 »

Poursuivons l'exploration (un peu décousue !) de la FX-603P grâce aux instructions PEEK et POKE de cette calculatrice, instructions très originales sur une machine de ce type.

En explorant la ram avec le programme ci-dessus, on découvre des zones mémoires intéressantes. Par exemple :

1392-1407 : Ligne haute de l'afficheur
1168-1183 : ligne basse de l'afficheur
1217-1232 : ligne basse .de l'afficheur (zone tampon ??)

On en sait assez pour trouver les codes des 255 caractères de la 603 :

Code : Tout sélectionner

255 Min00
"->"
LBL0
 MR00 POKE 1394     // 1394 = 3 ieme caractère de la ligne haute de l'afficheur
 ";"  HLT
DSZ GOTO0
Ce programme affiche le n° du caractère en bas et le caractère en haut. On y trouve par exemple les symboles des cartes de jeu :

239 : Trèfle
238 : Carreau
237 : Coeur
236 : Pique

Ainsi, le programme suivant affiche aléatoirement des symboles de cartes sur la largeur de la ligne d'affichage alpha.

Code : Tout sélectionner

" "                           // Vide l'écran alpha
LBL0
 1392 + 16 x RAN# = INT Min01 // Adresse où écrire le caractère
 236 + 4 x RAN# = INT         // Pique, coeur, carreau ou trêfle ?
 POKE MR01                    // Affiche le caractère sur l'écran
 ";"                          // Rafraichi l'affichage
GOTO0                         // Ad libitum
On peut donc afficher un caractère spécifique sur l'écran en pokant à l'adresse 1392 + position caractère. On peut aussi lire (avec PEEK), quel caractére est sur l'écran à telle position. Cela est strictement impossible avec une 602P

Par exemple le programme suivant transforme une chaine MAJUSCULE en minuscule :

Code : Tout sélectionner

"SILICIUM" PAUSE
8 Min00 1392 Min01
LBL0
 PEEK MR01 - 32 =
 POKE MR01
 1 M+01
DSZ GOTO0
SILICIUM -> silicium

Ici l'affichage n'apparait que quand toute la chaine est passée en minuscule. Comme variante,vous pouvez ajouter ";" juste avant le DSZ,cela donne une rapide animation

(à suivre ...)
Modifié en dernier par Gilles59 le 11 oct. 2014 16:28, modifié 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+ CM14 et MM12 / Alice 32
Avatar du membre
ledudu
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 5645
Enregistré le : 26 mars 2009 13:07
Localisation : Ile de France
Contact :

Re: CASIO FX-603P. Trucs en vrac

Message par ledudu »

C'est top, merci.
Avatar du membre
zork750
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 489
Enregistré le : 29 avr. 2011 15:44
Localisation : Paris

Re: CASIO FX-603P. Trucs en vrac

Message par zork750 »

@Gilles59


Merci encore pour toutes tes découvertes..... :D
C'est génial de pouvoir afficher les symboles des cartes, cela permettrait il de faire un jeu?

J'ai hate de te lire......@ bientôt
Gilles59
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1602
Enregistré le : 27 oct. 2010 20:46

Re: CASIO FX-603P. Trucs en vrac

Message par Gilles59 »

Oui, facile d'utiliser tous les caractère spéciaux dans des programmes (il y a des chiffres en exposants, en indices, des caractères grecs, des symboles divers et toute une série de katana

Continuons l'exploration avec un INPUT alphabétique et une auto modification de programme:D
Pour commencer, entrer ce programme dans une zone mémoire quelconque, par example P0 :

Code : Tout sélectionner

"Quel est ton nom?" HLT
1392 Min01 PEEK 1241 + PEEK 1242 * 256 - 12 = Min02
8 Min00
LBL0
 PEEK MR01 POKE MR02
 1 M+01 M+02
DSZ GOTO0
"Bonjour xxxxxxxx!"
Lancer P0
'ALPHA' SILICIUM
EXE

et ... étonnant non ?

Explication

Code : Tout sélectionner


"Quel est ton nom?" HLT

// Adresse de l'afficheur alpha

1392 Min01  

// Récupére l'adresse de fin du programme (16 bits) en cours d'exécution 
// et qui est stocké aux adresses 1241 et 1242
// - 12 octets pour pointer sur le premier x du code

PEEK 1241 + PEEK 1242 * 256 - 12 = 
Min02 

8 Min00
LBL0
 PEEK MR01  // Lit le nieme caractère saisi, et donc sur l'afficheur
 POKE MR02  // Remplace le caractère x concerné
 1 M+01 M+02
DSZ GOTO0
"Bonjour xxxxxxxx!"
Etonnant,non ?

Ici on change du texte,mais rien n'empêche de changer du code (avoir la liste des 'token' et une bonne dose de cachets d'aspirine avec soi)

(A suivre...)

PS : J'ai trouvé les adresses 1241 et 1242 ici : http://fx-602p.krischik.com/index.php/FX-603P/HomePage
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+ CM14 et MM12 / Alice 32
Gilles59
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1602
Enregistré le : 27 oct. 2010 20:46

Re: CASIO FX-603P. Trucs en vrac

Message par Gilles59 »

Une petite video pour continuer ;)

https://www.youtube.com/watch?v=I_y8c99P9jk&sns=em

Code : Tout sélectionner

1408 Min01 1 Min02 
LBL0 
 16 Min00
 MR02 +/- Min02
 LBL1
   255 POKE MR01
   MR02 M+01
   235 POKE MR01
   ";"
  DSZ GOTO1
GOTO0
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+ CM14 et MM12 / Alice 32
Avatar du membre
zork750
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 489
Enregistré le : 29 avr. 2011 15:44
Localisation : Paris

Re: CASIO FX-603P. Trucs en vrac

Message par zork750 »

@Gilles59,

Super fluide le déplacement en haut de l'écran, on peut imaginer le faire sur les deux écrans en formant un cercle (ecran sup : de droite à gauche puis ecran inf. de gauche à droite)

J'imaginais pas que cela puisse être possible sur cette machine, c'est juste la porte ouverte à de nombreuses animations...... :D

merci pour le lien.....n'hésite pas à poster de nouvelles choses, cela m'intéresse fortement.

@ bientôt,
Avatar du membre
ledudu
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 5645
Enregistré le : 26 mars 2009 13:07
Localisation : Ile de France
Contact :

Re: CASIO FX-603P. Trucs en vrac

Message par ledudu »

Code : Tout sélectionner

"SILICIUM" PAUSE
8 Min00 1392 Min01
LBL0
 PEEK MR01 - 32 =
 POKE MR01
 1 M+01
DSZ GOTO0
Il manquait un signe égal après "- 32".
Gilles59
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1602
Enregistré le : 27 oct. 2010 20:46

Re: CASIO FX-603P. Trucs en vrac

Message par Gilles59 »

ledudu a écrit :

Code : Tout sélectionner

"SILICIUM" PAUSE
8 Min00 1392 Min01
LBL0
 PEEK MR01 - 32 =
 POKE MR01
 1 M+01
DSZ GOTO0
Il manquait un signe égal après "- 32".
Bien vu, erreur de recopie !

@Zork:je n'ai pas trouvé comment afficher un caractère alpha sur la ligne basse. C'est peut etre possible (quand on edit un programme cette ligne contient de l'apha) mais la commande ";" (ou toute commande HLT ou PAUSE) reprend le contenu du registre numérique (codé en BCD) et le transforme en alpha (la suite de caractères qui représente le nombre) et l'affiche sur laligne basse : çà efface donc ce qui est poké là ! Il faudrait arriver à rafraichir l'écran sans passer par ";"... Ca serait top de touver çà ! En plus ça accélérerait encore l'affichage ...

En explorant la RAM on voit que les 2 lignes du registre alpha ont à voir avec l'adresse 1201 et suivantes...
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+ CM14 et MM12 / Alice 32
Gilles59
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1602
Enregistré le : 27 oct. 2010 20:46

Re: CASIO FX-603P. Trucs en vrac

Message par Gilles59 »

Un programme pour explorer la RAM :

Code : Tout sélectionner

"****:**-**-**-**"
= Min01
4 Min00 1392 Min02 1397 Min03
LBL1
 PEEK MR01 Min04
 POKE MR02 1 M+02 MR04 HEX ";" COMP
 PEEK 1182 POKE MR03 1 M+03
 PEEK 1183 POKE MR03 2 M+03
 1 M+01
DSZ GOTO1
";"
4 + ( MR01 - 4 )
Si le programme est en P0, taper l'adresse de départ puis P0. Ca explore les 4 octets à partir de cette adresse et affiche:

abcd:hh-hh-hh-hh
nnnn

abcd affiche les caractères correspondants (si ils sont affichables)
hh-hh-hh-hh correspondent la valeur des octets en hexadécimal
nnnn sur la seconde ligne est l'adresse du premier octet (en décimal)

Pour explorer les 4 octets suivants,réappuyer sur P0 etc.

On peut s'aider de ce très intéressant site http://fx-602p.krischik.com/index.php/FX-603P/MemoryMap pour explorer les zones intéressantes.

Par exemple, faire 123456789 Min05 puis 40 P0. On voit bien le codage BCD "à l'envers". Avec un poke bien placé on peut facilement changer 2 chiffres du nombre... Par exemple un POKE hexa de 99 à l'adresse 45 et MR05 devient 123459989 ;D
On obtient des trucs bizarres en pokant des valeurs incohérentes avec le BCD
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+ CM14 et MM12 / Alice 32
Gilles59
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1602
Enregistré le : 27 oct. 2010 20:46

Re: CASIO FX-603P. Trucs en vrac

Message par Gilles59 »

continuons l'exploration :D

La 603P est dotée d'un timer qui compte les secondes avec la précision d'un métronome !

Code : Tout sélectionner

LBL0
 PEEK 0883  ";"
GOTO0
Cet octet compte le nombre de secondes qui passent ...
Je n'ai pas trouvé d'octet de poids fort,on semble donc limité à 255 secondes. Le comptage est très précis.

On peut forcer ce timer sans catastrophe visible. De quoi faire un petit chronométre

Code : Tout sélectionner

0 POKE 0883 
LBL0
 PEEK 0883 / 3600 = °'"<-  ";"
GOTO0
et pour faire sauter la limte des 255 sec :

Code : Tout sélectionner

***P0
0 Min01 POKE 0883 MinF
LBL0 
 PEEK 0883 x=F GOTO0 
 MinF 1 M+01 MR01 / 3600 = °'"<- ";" GOTO0
On peut aussi contrôler une durée max de réponse après un HLT (mais < 256 sec),genre "vous avez 10 sec maxi pour répondre)

PS : j'ai trouvé cela avec un programme que j'ai écris et qui recopie les zones mémoire intéressante en RAM suivi d'un autre qui met en évidence ce qui change entre deux exécutions. Je cherchais plutôt où sont stocké les modes DEG/RAD/GRA mais suis tombé la dessus.
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+ CM14 et MM12 / Alice 32
Avatar du membre
gege
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 7147
Enregistré le : 31 janv. 2008 14:24
Localisation : Banlieue Paârisienne
Contact :

Re: CASIO FX-603P. Trucs en vrac

Message par gege »

Bonjour,
C'est génial tes trouvailles !
...encore ! (facile à dire)
Merci et bravo
G.E.
Avatar du membre
zpalm
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 2933
Enregistré le : 03 mai 2008 15:33
Localisation : Grenoble

Re: CASIO FX-603P. Trucs en vrac

Message par zpalm »

Très intéressant ! Dommage que la 603P soit aussi rare et chère...
Répondre

Retourner vers « Tous les Pockets »