PB - 1000
 

 

Site Home

PB-1000 Home

Informations

Les codes ASM

La mémoire

Le Désassembleur

Les programmes

Le "Hardware"

 

INFORMATIONS

Premiere chose à faire:

- Il est fortement recommendé de se procurer le livre "Technical Reference" sur le PB+1000. Il etait possible (1991) de le demander à la société NOBLET (distributeur de CASIO en France):

NOBLET
1 Bd Charles de Gaulle
92 707 Colombes Cedex
Tel : 01 47 60 40 40
SVC INFO CASIO : 08 36 68 33 44 ( Warning 2F23 / min !)

Ce document "Technical Reference" est normalement photocopie gratuitement par cette societe (en 1991). Il contient quelques information utiles (Mapping de la Rom, quelques adresses de routines,...) mais curieusement, il semble très incomplet ! C'est à partir de ce livre que j'ai pu commencer mes recherches.

 

Description de la démarche

- Pour identifier les routines en mémoire morte (ROM) utiles, il fallait posséder un désassembleur.
- J'en ai donc ecrit un en BASIC tournant sur le PB-1000. Le problème était le suivant : Trop volumineux (30 KO) et un peu trop lent (0.5 seconde pour désassembler une instruction).
- J'ai donc modifié ce programe pour le faire trourner sur PC. Mais il fallait pouvoir avoir le source de la ROM du PB-1000 sur PC. Sachant que l'interface FA-7 ne permet que de transférer des fichier ASCII, il fallait que ce source soit un fichier ASCII et non pas BINAIRE. J'ai donc écrit un programme. qui convertit le contenu de la ROM du PB-1000 en son équivalent ASCII (lisible depuis un éditeur de texte). Pour des raisons de rapidité d éxécution, ce programe est en assembleur.

LIEN VERS LE CONVERTISSEUR de ROM

Avec ces deux programes, Il est donc possible de désassembler la ROM du PB-1000 depuis un PC ! Sachant qu'il existe un certain nombre de codes NON DOCUMENTES (codes ND), il faut malheureusement desassembler ligne par ligne et voir si le code obtenu semble cohérent. Si un code ND est rencontre, le programe le signale (par ??? à la place d'un mnémonique) , il faut ensuite trouver la prochaine adresse valide ou commencer le désassemblage (le code ND peut etre codé sur plusieurs octets).Tout ceci est prévu dans le programme.

Mais il restait le problème énervant des codes non documentés. Pour tenter d'identifier un certain nombre de ces codes j'ai développé un petit programe en ASSEMBLEUR.

LIEN VERS CE PROGRAMME

qui montre l'état des registres avant et juste apres l'éxécution d'un code inconnu à indiquer. En comparant la différence, on peut avoir une idée de la signification de ce code. Il est bien évidemment possible de choisir les valeurs des registres en entrée. Ceci m'a permis de découvrir un certain nombre de codes ND dont je vous propose la liste et leur signification. Ces codes et leur mnémonique (inventé) sont reconnus par le désassembleur propose plus haut.

 


Airbug.two 2002