[Z80]Utiliser calcsys.

Voir le sujet précédent Voir le sujet suivant Aller en bas

[Z80]Utiliser calcsys.

Message par nikitouzz le Mer 8 Mai - 19:26

Ce cours est inspiré du tutoriel de MDR1 disponible a cette adresse :
Code:
http://www.siteduzero.com/tutoriel-3-327059-1-calcsys.htm


Calcsys est une application compatible avec tous les modèles de calculatrice compris entre la TI-83 et la TI-84 pocketSE.

Si vous voulez aller explorer votre TI dans ses moindres recoins et manipuler toutes vos données qu'elles soient protégées ou non, cette application est faite pour vous.

Tout d'abord téléchargez et envoyez-la sur votre calculatrice grâce à un logiciel de transfert, puis lancez-la.


Au premier abord, on remarque une interface très simple avec un système de menu qui rappelle ceux faits en TI-Basic, ce qui permet de bien comprendre cette application et de facilement la manipuler.
On remarque dans les deux menus disponibles en appuyant sur [6], (soit "more"), 10 fonctions différentes :

Hex Editor :

Fonction qui permet de voir combien vaut chaque octet contenu dans la calculatrice.

Disassembler :

Fonction qui permet de passer de l’état d'octet à l'état d'assembleur.

Port Monitor :

Fonction qui permet de changer les valeur des ports.

System Flags :

Fonction qui permet de changer et de voir l'etat des flags de la calculatrice, les flags etant :

Console :

Fonction qui comme son nom l'indique est une console pour faire des tests d'instructions, des opérations hexadécimales ...

VAT :

Fonction extrêmement pratique qui permet d'afficher tout le contenu de la calculatrice, un peu comme quand vous allez sur le menu de la mémoire avec les touches [2nd] [mem] [2] [1] , sauf que l'on peut voir toutes les informations sur ces données et en changer certaines, c'est un outil d'une grande utilité.

Character Set :

Pas très utile, on entre une valeur en hexa et il nous l'affiche en tokens ou de façon assembleur.

Key Values :

Fonction qui nous affiche le code de la touche que l'on presse.

Link Console :

Je ne connais pas assez cette fonction pour vous l'expliquer.

___________________________________________________________________________________________________________

Hex Editor

Voici un petit screenshoot :

[Vous devez être inscrit et connecté pour voir cette image]

Cela permet d'explorer le contenu de la mémoire. La partie à gauche correspond à l'adresse de ce qu'il y a juste à droite. Les octets sont exprimés en hexadécimal et à chaque fois il y a juste en-dessous le token qui correspond au code.

Les touches haut et bas servent à reculer ou à avancer de 4 octets. Les touches gauche et droite servent à avancer ou à reculer d'un octet.

Si vous désirez sauter toute une page, donc 16 octets, rien de plus simple, pressez [2nd] [<-] ou [->]. Et pour sauter de $100 octets, pressez [ ] pour aller en avant, et [-] pour aller en arrière, enfin, pour sauter de 1000$ octets, pressez
[*] pour aller en avant et [/] pour aller en arrière.

Mais l'éditeur hexadécimal ne permet pas de faire que ça ! Très Content

Apprenons à faire des recherches et nous finirons par apprendre comment modifier les valeurs.

[ALPHA] [F] : trouve dans la mémoire l'octet suivant le plus proche dont la valeur est celle que l'on tape.
[ALPHA] [E] : trouve dans la mémoire le mot suivant le plus proche dont la valeur est celle que l'on tape.
[ALPHA] [G] : aller à une adresse précise (utile pour la suite).
[ALPHA] [R] : changer de page.
[ON] [1]-[9] : Marquer une page. Attention ! Il faut presser les touches en même temps !
[1]-[9] : revenir au marque-page correspondant. S'il n'y en a pas, revient à l'adresse mémoire $0000.
[ALPHA] [D] : passer de l'hexa Editor au disassembler

Pour changer la valeur d'un octet, il suffit simplement d'appuyer sur entrer et de rentrer la nouvelle valeur hexadécimale entre 0 et 255 que l'on veut remplacer. attention cela ne marche pas entre les adresses $8000 et $FFFF (là ou il y a la RAM).

Disassembler

Un petit Screenshots :

[Vous devez être inscrit et connecté pour voir cette image]

Il y a moins de possibilités de navigation qu'avec l'éditeur hexadécimal, par exemple, les touches "multiplier", "-", " " et "diviser" n'ont aucun effet, mais la plupart des autres fonctions sont disponibles.

Ce qui est difficile à comprendre, c'est qu'une instruction ne faisant pas toujours le même nombre d'octets, l'appui sur la touche "bas" va bien à l'instruction suivante, tandis que la touche "haut" ne remonte que d'un octet. L'octet juste au-dessus est pris comme une instruction d'un octet ce qui peut donner un résultat erroné. Il faudra donc bien souvent appuyer plusieurs fois.

Port Monitor

[Vous devez être inscrit et connecté pour voir cette image]

Diverses informations sont fournies :

le numéro du port (ici, "01")
et l'octet renvoyé par le port, lu grâce à in en décimal, hexadécimal et binaire ici, "255", "FF" et "11111111"
une description brève (key ici)

Pour changer de port, presser les touches "haut" ou "bas", et pour sauter de 5 en 5, presser "gauche" ou "droite".
Si vous voulez envoyer un octet au port, vous pressez "ENTER". Note: il faut exprimer la valeur en hexadécimal.

System Flags

Calcsys nous permet également de vérifier l'état des flags qui est une valeur binaire pouvait valoir vrai ou faux, destiné à déclencher un comportemen​t lors de la détection d'un évènement, Screenshot :

[Vous devez être inscrit et connecté pour voir cette image]

Les chiffres à gauche correspondent à la touche à presser pour sélectionner une option. À droite, vous pouvez voir l'offset à IY correspondant au flag mentionné par la description au milieu lorsqu'il y en a une. Lorsqu'il n'y a pas de description, cela affiche des points d'interrogation.

Ne changez pas l'état des flags dont vous ne connaissez pas la signification, cela pourrait aboutir à un RAM CLEARED qui est assez embêtant.

Console

Au début, elle ressemble un peu à l'écran principal, même s'il y a des différences. Par exemple, pour effacer l'écran, il faut taper à l'écran "CLR" puis valider avec ENTER.

Voici les instructions que vous pouvez exécuter avec la console :

-CLR

Action : Efface l'écran.

-QUIT

Alternative : Q
Action : Quitte la console.

-INFO

Action : Permet d'afficher des informations sur la calculette : la mémoire libre (RAM), la version de la calculatrice, le contraste, la taille du VAT, le pointeur sur la table des programmes, et la page courante (ouverte).

-HELP

Action : Affiche les arguments que l'on peut mettre pour la commande suivante.

-HELP (commande)

Action : Affiche de l'aide sur la commande spécifiée, sachant que "Alt" signifie "Alternative" lorsqu'il y a une deuxième façon d'exécuter la commande.


--Commandes en rapport avec la mémoire de la calculette


-BCALL (NNNN)

Syntaxe alternative : BC (NNNN)
Action : charge la valeur des registres virtuels dans les vrais registres, exécute la ROM-call dont l'adresse est celle spécifiée (en hexadécimal), puis charge dans les registres virtuels la valeur des vrai registres.

-CALL (NNNN)

Syntaxe alternative : C (NNNN)
Action : charge la valeur des registres virtuels dans les vrais registres, appelle la routine dont l'adresse est celle spécifiée (en hexadécimal), puis charge dans les registres virtuels la valeur des vrai registres.

-EXEC (NN ...)

Syntaxe alternative : X (NN ...)
Action : charge les valeurs hexadécimales spécifiées dans une adresse mémoire, charge la valeur des registres virtuels dans les vrais registres, appelle l'adresse mémoire avec "call" (vous devriez donc terminer les valeurs par un C9 si vous voulez retourner à la console, car cela correspond à l'instruction "ret" ), puis charge dans les registres virtuels la valeur des vrais registres.

-JUMP (NNNN)

Syntaxe alternative : J (NNNN)
Action : charge la valeur des registres virtuels dans les vrais registres, saute à l'adresse mémoire spécifiée (toujours en hexadécimal), puis charge dans les registres virtuels la valeur des vrais registres.

-RUN (programme)

Syntaxe alternative : R (programme)
Action : charge la valeur des registres virtuels dans les vrais registres, exécute le programme assembleur dont le nom est spécifié (s'il n'existe pas, l'erreur ERR: ARCHIVED est retournée), puis charge dans les registres virtuels la valeur des vrais registres.

-SEARCH (NN ...)

Action : cherche dans la mémoire la chaîne d'octets spécifiée, et affiche les endroits trouvés. Plus puissant qu'avec l'éditeur hexadécimal puisque vous pouvez mettre autant d'octets que vous voulez et il peut y avoir plusieurs résultats.


Commandes de gestion des registres virtuels :


-SET (registre de 1 octet, NN) ou (registre de 2 octets, NNNN) ou (NNNN, NN...)

Syntaxe alternative : ST (registre de 1 octet, NN) ou (registre de 2 octets, NNNN) ou (NNNN, NN...)
Action : permet de charger des valeurs dans les registres virtuels, ou dans des zones mémoires. Vous pouvez charger une valeur dans un registre virtuel de un octet, en spécifiant en premier argument le registre (A, B, C, D, E, H ou L) puis en deuxième la valeur en hexadécimal. Vous pouvez faire de même avec les registres de 2 octets (AF, BC, DE, HL ou IX) puis la valeur de 2 octets (toujours en hexa !). Vous pouvez aussi charger une chaîne d'octets dans une adresse mémoire, il suffit pour cela d'indiquer en premier argument l'adresse du premier octet vers lequel le chargement va s'effectuer, donc 2 octets, puis une chaine d'octets, non séparés par la virgule.

-SHOW (registre ou NNNN)

Syntaxe alternative : SH (registre ou NNNN)
Action : Affiche le registre virtuel spécifié ou l'octet pointé par la valeur NNNN (en hexadécimal), si aucun argument n'est présent, affiche la valeur de tous les registres virtuels.


Opération hexadécimales


-ADD (NNNN, NNNN)

Action : Affiche le résultat de l'addition des deux nombres spécifiés, en hexadécimal (toujours et encore).

-SUB (NNNN, NNNN)

Action : Affiche le résultat de la soustraction des deux nombres spécifiés.

-MUL (NNNN, NNNN)

Action : Affiche le résultat de la multiplication des deux nombres spécifiés. Ignore les octets les plus significatifs des deux nombres.

-DIV (NNNN , NNNN)

Action : Donne le quotient et le reste de la division des deux nombres spécifiés. Ignore l'octet le plus significatif du deuxième nombre

Character Set

Cette section permet d'afficher les caractères correspondant aux valeurs hexadécimales que vous entrez.
Les options que vous pouvez choisir sont les suivantes :

Font : affiche le caractère en grand et en petit selon la valeur entrée
Token : affiche le token dont vous avez donné la valeur hexadécimale. Si le token ne fait qu'un octet, vous devez mettre comme valeur "00" pour le premier octet

Key Values

Cette section permet quand à elle d'afficher la valeur hexadécimale des touches que vous pressez.
Il y a trois possibilités :

Getkey : affiche la valeur hexadécimale renvoyée par _Getkey
Getcsc : affiche la valeur hexadécimale renvoyée par _Getcsc
Direct Input : affiche le numéro du groupe auquel appartient la touche ainsi que la valeur renvoyée par le port en l'activant

Parlons de la fonctions vat Content

tout d'abord ouvrer calcsys puis ouvrer la fonctions VAT...

la, vous pouvez voir cinq sous-fonctions :
-prog/list vat : liste de tout ce qui se trouve dans la Vat, c'est a dire les programmes, les listes...
-symbol vat : même chose que le premier mais presentant la liste à l'envers
-applications : même chose que predemment mais pour les applications
-hex progptr : ouvre l'editeur d'hexadécimal à l'endroit où sont stockés les programmes, listes..
-hex symtable : ouvre l'editeur d'hexadécimal à l'endroit où sont stockés les autres variables.

Nous, nous ne nous occuperons, pour la première partie, que de "prog/list vat".

Ouvrez la sous-fonction "prog/list vat", la vous voyer encore une liste (rassurez vous c'est la derniere ) avec le nom des différents éléments des programmes et listes et des applications variables.
Sortez de calcsys et créez un programme qui s'apelle... hum... FILMA
Créez ce programme et laissez le vide, retournez ensuite dans le menus de "prog/list vat" et cherchez le programme que vous avez créé dans la liste. et appuyer sur le numero qui se trouve devant le nom de votre programme.

A partir de la, plusieurs infos sont affichées :
-le type de l'element, ici programme
-le nom de l'element, ici FILMA
-vat loc : l'adresse où le nom est stocké
-data loc : adresse où le contenu du programme est stocké
-la taille de l'élément en octets
-et la place que prend l'élément

A partir de ce menu, avec toutes ces informations, on peut faire plein de choses :
-protéger/déprotéger le programme en appuyant sur [alpha]+[P]
-accéder au dissasembler à partir de l'emplacement du programme avec [alpha]+[D]
-accéder à l'éditeur d'hexadécimal grâce à [alpha]+[H]
-accéder à l'éditeur d'hexadécimal où est stocké le nom du programme avec [alpha]+[V]

on va faire une petite manipulations intéressante Content

appuyer a partir du menu de votre programme "FILMA" et retenez le numéro a cote de "vat loc :", moi il correspond a FA1A ne vous inquiétez pas il est différent pour tout le monde, appuyer ensuite successivement sur [alpha] et [H] pour accéder a l’éditeur d’hexadécimal, taper ensuite la combinaison [alpha] + [G] pour choisir une adresse, tapez celle que vous avez retenu...

appuyer ensuite deux fois sur la touche haut et la vous découvrez votre noms de programme écrit...a l'envers... car la VAT de votre calculatrice est lue a l'envers, ne me demander pas pourquoi mais c'est comme sa.

jouer avec les touches gauche droite haut et bas pour faire en sorte que la lettre "A" se retrouve en haut a gauche, appuyer sur [entrer] et entrer les nombre 2 et 0, ce nombre 20 en hexadécimal correspond a un espace.

quittez calcsys et allez vérifier votre programme il ne s'appelle plus "FILMA" mais "FILM".

---avec cette fonction on peut jouer avec les caractère hexadécimal et faire de grande chose---
___________________________________________________________________________________________________________

Ce tutoriel n'est évidemment pas terminé Content

_________________
[Vous devez être inscrit et connecté pour voir cette image]
Invité née le 0 a aujord'huis 0 ans et a posté 11 messages... je suis derrière vous

2x2x2 : 2.18 secondes / 2x2x2 une main : 21.15 secondes / 2x2x2 yeux bandés : 47.59
3x3x3 : 5.97 secondes / 3x3x3 une main : 49.86 secondes
4x4x4 : 1.49 minutes / 4x4x4 une main : 6.50 minutes
5x5x5 : 4.10 minutes / 5x5x5 une main : 18.02 minutes
6x6x6 : 8.10 minutes
7x7x7 : 16.03 minutes
9x9x9 : 58.26 minutes

3x3x1 : 0.73secondes / 3x3x2 : 30.55secondes / 3x3x3 : 5.97secondes / 3x3x4 : 1.09minutes / 3x3x5 : 1.46minutes / 3x3x6 : 2.06minutes

megaminx : 5.59 minutes / pyraminx : 7.91 secondes / square-one : 1.07

nikitouzz
Platinum 1
Platinum 1

Sexe : Masculin
Age : 21
Messages : 1834
Date d'inscription : 16/01/2011
Points Forum : 7
Points Concours : 6
Langages :
  • - TI-Basic Z80
  • - ASM TI-83+ / TI-84+
  • - Axe Parser
  • - TI-Basic 68K
  • - TI-Basic Nspire
Calculatrices :
  • - TI-73
  • - TI-76.fr
  • - TI-82 Stats.fr
  • - TI-83+
  • - TI-84+
  • - TI-92
  • - TI-Nspire
  • - TI-Nspire CX

TI-84+ SE


Revenir en haut Aller en bas

Merci !

Message par Invité le Sam 8 Juin - 17:17

Merci pour ton tutoriel, je ne comprenais rien à CalcSys !

Invité
Invité


Revenir en haut Aller en bas

Re: [Z80]Utiliser calcsys.

Message par nikitouzz le Sam 8 Juin - 18:00

Ce n'est qu'une adaptation de tutoriel mais merci Content

_________________
[Vous devez être inscrit et connecté pour voir cette image]
Invité née le 0 a aujord'huis 0 ans et a posté 11 messages... je suis derrière vous

2x2x2 : 2.18 secondes / 2x2x2 une main : 21.15 secondes / 2x2x2 yeux bandés : 47.59
3x3x3 : 5.97 secondes / 3x3x3 une main : 49.86 secondes
4x4x4 : 1.49 minutes / 4x4x4 une main : 6.50 minutes
5x5x5 : 4.10 minutes / 5x5x5 une main : 18.02 minutes
6x6x6 : 8.10 minutes
7x7x7 : 16.03 minutes
9x9x9 : 58.26 minutes

3x3x1 : 0.73secondes / 3x3x2 : 30.55secondes / 3x3x3 : 5.97secondes / 3x3x4 : 1.09minutes / 3x3x5 : 1.46minutes / 3x3x6 : 2.06minutes

megaminx : 5.59 minutes / pyraminx : 7.91 secondes / square-one : 1.07

nikitouzz
Platinum 1
Platinum 1

Sexe : Masculin
Age : 21
Messages : 1834
Date d'inscription : 16/01/2011
Points Forum : 7
Points Concours : 6
Langages :
  • - TI-Basic Z80
  • - ASM TI-83+ / TI-84+
  • - Axe Parser
  • - TI-Basic 68K
  • - TI-Basic Nspire
Calculatrices :
  • - TI-73
  • - TI-76.fr
  • - TI-82 Stats.fr
  • - TI-83+
  • - TI-84+
  • - TI-92
  • - TI-Nspire
  • - TI-Nspire CX

TI-84+ SE


Revenir en haut Aller en bas

Re: [Z80]Utiliser calcsys.

Message par neuronix le Sam 28 Nov - 14:16

Merci pour ton tuto.
Je tiens juste à signaler que j'ai suivi le tuto de MDR1 pour retrouver ses programmes après un RAM Cleared utilisant Calcsys mais cela n'a jamais marché.
Donc si quelqu'un arrive à faire marcher le tuto, qu'il me le dise et qu'il m'explique.
Merci d'avance

neuronix
Argent 3
Argent 3

Age : 14
Messages : 31
Date d'inscription : 22/07/2014
Points Forum : 4
Points Concours : 0
Langages :
  • - TI-Basic Z80
  • - ASM TI-82 Stats / TI-83
  • - ASM TI-83+ / TI-84+
  • - Axe Parser
  • - xLib
  • - BBC Basic
  • - Grammer
  • - TI-Basic 68K
  • - ASM 68K
  • - TI-Basic Nspire
  • - Lua Nspire
  • - Ndless Nspire
Calculatrices :
  • - TI-Collège
  • - TI-81
  • - TI-82
  • - TI-82 Stats
  • - TI-82 Stats.fr
  • - TI-83
  • - TI-83+
  • - TI-83+.fr
  • - TI-83+ SE
  • - TI-84+
  • - TI-84 Pocket.fr
  • - TI-84+ SE
  • - TI-89
  • - TI-92
  • - TI-Voyage
  • - TI-Nspire
  • - TI-Nspire CAS
  • - TI-Nspire CX
  • - Casio Collège
  • - Casio Graph

TI-84+ SE


https://tiplanet.org/

Revenir en haut Aller en bas

Re: [Z80]Utiliser calcsys.

Message par Contenu sponsorisé Aujourd'hui à 2:24


Contenu sponsorisé


Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum