30

spectras :
Quid de cette méthode pour resetter ? On suppose être en mode superviseur.
move #2700,%sr
clr.l d0
...
clr.l d7
clr.l a0
...
clr.l a6
move.l 0,a7
move.l 4,a7@-
move a0,usp
reset
rts
Les clr sont pas réellement nécessaires, vu que l'initialisation de TI n'utilise pas le fait que les registres soient à 0 après un reset.

Sur une ti, pas gd chose (deja l'instruction reset)
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

31

oui ma normalement ca fai koi??

32

Ca fait un reset, et c'est pas facile à détourner. Si tu remplaces
move.l 0,a7
Par l'adresse codée en dur, c'est même impossible à détourner (mais un poil moins portable).
Euh note que le rts à la fin ne rebd ps la main à l'appelnt, mais appelle le vecteur d'initialisation de TI, hein.

C'est l'exact contraire de ce que tu veux, en somme... tongue

EDIT: un précision ne justfiant pas un nouveau post wink

33

lol super

34

**ERROR SPOTED**

move.l 0,a7

Met le contenu de l'addresse 0 dans a7 (pointeur de pile superviseur en plus pasque t en superviseur la)

Tout faux !

move.l 0,a7 <-- Je met le contenue de l'addresse 0 dans a7
move.l 4,a7@- <-- ??? ce n'est pas un assembly valide :|
move a0,usp <-- a0, si on suit le code au dessus contient 0, donc on met le pointeur de pile utilisateur a l'addresse 0 ???? #triso#
reset <-- cf ci dessous
rts <-- risque de tout faire planter car les registres on tous eté initialisé n'importe comment (ou presque)


alors


RESET
Remise a zéro des circuits externes
(instruction privilégié)

Opération :
Si "Etat superviseur", alors : validation de la sortie RESET. Sinon, exception "Violation de privilege".

Syntaxe :
RESET

Opérande : Aucune

Description :
La ligne RESET est validée, afin de remettre à zéro les circuits externes. L'état du processeur n'est pas modifié, excepté le PC, qui permet que l'exécution se poursuive à l'instruction suivante en séquence.

Format :
 15| 14| 13| 12| 11| 10| 09| 08| 07| 06| 05| 04| 03| 02| 01| 00|
----------------------------------------------------------------
 0 | 1 | 0 | 0 | 1 | 1 | 1 | 0 | 0 | 1 | 1 | 1 | 0 | 0 | 0 | 0 |


Indicateurs :
Non affectés.
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

35

- Oui, je sais ce qu'est l'instruction reset, merci.

- move.l 4,a7@- => dsl, c'est pace que c'était de l'asm gnu. Ca veut dire move.l 4,-(a7)
on met le pointeur de pile utilisateur a l'addresse 0 ????
oui. Le code d'initialisation est responsable de son initialisation justement, et usp est initialisé à 0
risque de tout faire planter car les registres on tous eté initialisé n'importe comment (ou presque)

Si tu le fais proprement, tous les registres sont à 0 (regarde mon code) sauf SSP.

36

spectras :
- Oui, je sais ce qu'est l'instruction reset, merci.

A priori non puisque tu propose un code qui utilise "reset" poru "reseter" la ti triso
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

37

mais ce code ne fait pas un reset de la TI ! il fait tout au plus un reset HW. il la fait juste planter

le reset de la TI est carrément plus compliqué, il refait un heap valide, il réinitialise les app flash, récupère les variables dans l'archive, fait différents trucs avec la protection de l'archive...
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

38

Godzil> L'instruction reset sert à réinitialiser les périphériques externes au processeur, ce qui fait partie de la procédure d'initialisation de la TI.

Flanker> l'os TI prend la main juste après le rst. Et là il exécute le heap validation et les applications, etc, etc. Ma fonction ne retourne JAMAIS à l'appelant (normal, c'est un reset après tout).

=> mon code ramène le processeur et les périphériques dans l'état exact où ils se trouvent quand tu viens de remettre des piles dans ta TI. Vérifie dans ta doc Motorola.

39

Avec commentaires :
move #2700,%sr		; Désactivation des interruptions
move.l 0,a7		; Chargement de l'adresse de pile superviseur
move.l 4,-(a7)		; On met dans la pile l'adresse du point d'entrée de l'os
reset			; Réinitialisation des périphériques externes (genre le link, etc)
rts			; On lance l'exécution du point d'entrée de l'os

Notez que je recommenderais quand même de mettre les registres à zéro, quoique ça ne soit pas nécessaire.

40

* ton code ne marche pas, je viens d'essayer
a priori c'est que tu n'es pas en superviseur
* c'est pas move.w #2700,sr mais move.w #$2700,sr qu'il faut mettre
* je ne vois toujours pas l'intérêt par rapport à OSReset()
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

41

en faite ma question au depart c'estai pas ca lol c'etai comment desctiver le rester et le reactiver

42

Flanker> j'ai précisé qu'il fallait être en mode superviseur avant d'appeler mon code.
=> oui, exact j'avais effacé le $ en recopiant. Désolé.

Pour l'intérêt ? Ben :
1) c'est moi qui l'ai fait, ce qui est ++fun
2) ça marche quel que soit l'os tant que c'est un 680x0 / CPU32
3) tu peux pas le détourner, si je remplace la troisième ligne par l'adresse du point d'entrée codé en dur.

cerede2000> ben de toutes façons, à moins d'aller sauvagement modifié l'OS en flash, tu ne peux pas empècher le reset après avoir enlevé les 5 piles, puisque la ram n'est plus maintenue dans ce cas.

43

ouai mai pour reactiver le reste sans reseter la ti commen faire??

44

Euh, tu commences par ne pas modifier l'os en flash, parce que ce serait MAL (et en plus y'a ptet des checksum qui de toute façon vont te peter à la figure, après t'auras gagné le droit de flasher ta caltos, voire de l'amener à ti pour qu'il te la flashent, si t'as pas de chance).

Après, ben la question ne se pose plus. Si t'as pas empèché, t'as pas besoin de remettre tongue
Et puis de toutes façons, tu connais beaucoup de gens qui vont essayer d'enlever toutes les piles et attendre 30 secondes (hors du forum je veux dire) ? Déjà 2nd + < + > + ON, je pense pas que y'en ai beaucoup.

45

g un truc pour bloquer 2nd + < + > + ON mai apres je veut un truc pour le debloker apres

46

tu fait l'inverse que pour bloquer neutral
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

47

lol ouai mai ya pas dinverse c la mon prob et mon post wink

48

clr.l an n'existe pas.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

49

Je sais pas, mais perso:
trap #12
move.l 4.w,a0
jmp (a0)
marche tres bien pour reseter et est amplement suffisant...

Mettre a 0 les registres: inutile, le boot ne suppose rien.
Mettre a jour la pile: inutile, le boot le fait avant que la pile ne soit utilisee.
Mettre a jour le SR: inutile, c'est la premiere instruction executee (sauf sur HW2, ou c'est la 2nd). Il suffit d'etre en mode superviseur.
Faire un RESET: inutile, le boot le fait.

50

Mettre a 0 les registres: inutile, le boot ne suppose rien.
Je suis d'accord, d'ailleurs il me semble pas que le proc initialise les registres à l'allumage.
Mettre a jour la pile: inutile, le boot le fait avant que la pile ne soit utilisee.
Mettre a jour le SR: inutile, c'est la premiere instruction executee (sauf sur HW2, ou c'est la 2nd). Il suffit d'etre en mode superviseur. Faire un RESET: inutile, le boot le fait.
Oui, mais le faire te permet de réutiliser le même code sur d'autres systèmes que sur des TI, quitte à perdre peut-etre 20 octets.

51

mai j'ai toujour pas de reponse a ce que je voulait en faite. je voulais donc bloquer le reste par les touches ca c bon. mai aussi debloquer le reste pasr les touches et ca je c pas!!
en sachant que pour bloquer j'usilise ca

*(unsigned short*)(*(unsigned long**)0x40078 = HeapAllocPtr(2) +0x40000) = 0x4e73;

52

faudrait peut-être sauver la précédente valeur du vecteur à 0x78 pour pouvoir la restaurer après gol
tu as compris ce que faisait le code ?
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

53

et faudrait aussi libérer la zone de mémoire allouée...

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

54

d'ailleurs je vois pas l'intérêt d'allouer un bloc de 2o ...
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

55

./20: Si un systeme est dependant de ca, c'est que le boot est vraiment mal fait...

56

Le bout de code en C est quelque chose que j'avais posté il y a assez longtemps sur le forum de la TICT (cerede2000 , je sais pas si c'est toi qui avait ouvert le topic que je retrouve plus, tu persistes encore ?)
Il n'est pas fait pour être désinstallé, et le bloc alloué sert à quelque chose...

57

Il n'est pas fait pour être désinstallé, et le bloc alloué sert à quelque chose...

pas dans son programme ...
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

58

Je persiste, c'est mon bout de code et il marche tongue

59

je persiste, dans son programme (celui de cerede 2000) ça ne sert à rien d'allouer un bloc de 2o. tongue
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

60

ExtendeD
: Il n'est pas fait pour être désinstallé, et le bloc alloué sert à quelque chose...

Bah oui, mais apparemment il a envie de le faire :
mai aussi debloquer le reste pasr les touches et ca je c pas!!

donc à ce moment-là il faut stocker l'adresse du bloc ^^

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)