30

l'opération échoue parce que trap #B considère qu'elle n'a pas été correctement appelée
C'est la 16è fonction de trap #$B (d3.l = 15) qui gère les ports de la limitation matérielle. On lui donne une adresse et elle permet l'exécution dans une fenêtre de 12/28 ko (selon qu'AMS limite à 8 ou 24 ko) commençant à cette adresse (modulo 4 ko). Pour que cette fonction ne soit pas appelée par inadvertance, ce qui planterait la TI, cette fonction de trap #$B teste d'abord si elle a été correctement appelée. Et justement, trap #4 ne l'appelle pas corretement.

est-ce que le M68k vide son cache lors de la survenu d'une interruption, ou bien il continue l'instruction en cours PUIS celle qui était en cache, avant de sauter ?
Le CPU termine d'exécuter l'instruction en cours et déclenche l'interruption.

31

Ok, elle vide la cache.

Je n'ai toujours pas compris POURQUOI le trap #4 n'appelle pas correctement la 16ème fonction du trap #B.

Sinon j'ai découvert un truc très chiant : toute lecture du port $60001B le réinitialise à zéro sad
Si j'y accède "indirectement", c'est à dire en lisant l'adresse inférieure sur un mot ($60001A.w), va-t-il détecter que j'y accède ?
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

32

arf, c'est rarement voulu un bug grin

toute lecture du port $60001B le réinitialise à zéro
je savais pas
va-t-il détecter que j'y accède ?
oui

33

Remarque, pour "toute lecture du port $60001B le réinitialise à zéro" je ne suis plus très sûr.
A mon avis c'est plutôt le stockage d'un mot en $600018 qui est impossible mourn en clair, une écriture ne fait rien d'autre qu'appeller l'AI2, elle n'affecte pas la valeur du registre.

Et je suis dans la merde fou


Il me faudrait un moyen de lire l'un de ces ports (n'importe lequel, je m'en fout) puis restaurer la valeur un peu plus tard couic
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

34

>> arf, c'est rarement voulu un bug
Tu ne sais pas comment le trap #4 fait pour détecter qu'un kernel est présent ?
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

35

JM
a écrit : Il est plus prudent de tout désinstaller pour changer les piles, mais ce n'est pas obligatoire (sauf pour Universal OS et tous les autres programmes détournant trap #4)

... ou EV_hook!!!
On ne peut pas lancer un programme au rallumage (pour appeler le trap #11) sans que plusieurs évènements soient déclenchés (à moins de détourner le trap #4, mais alors on est dans le cas ci-dessus)!
JM
a écrit : Pour que cette fonction ne soit pas appelée par inadvertance, ce qui planterait la TI, cette fonction de trap #$B teste d'abord si elle a été correctement appelée.

Je pense plutôt que c'est pour nous empêcher de nous en servir pour passer outre leurs limites. Mais on y arrive quand-même (merci Zeljko). tongue
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é

36

Tu ne sais pas comment le trap #4 fait pour détecter qu'un kernel est présent ?
Où tu as vu que trap #4 détectait la présence d'un kernel ?

37

C'est pas le kernel qui est à l'origine du plantage ?
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

38

Non, je l'ai dit : c'est un bug d'AMS et j'ai donné un exemple de plantage qui ne fait pas intervenir de kernel.

39

Pourtant il intervient quand on a installé un kernel, c'est bien ça !!!!?
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

40

oui, et ?

j'aurais dû faire un rappel sur la limitation matérielle moi embarrassed

41

NON !

regarde l'exemple qu'iol donne dans le post #1

exec "4E444E75000" sans kernel et sans tsr, ni autre
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.

42

JM : Voilà : d'où ma question du post #26 :
Le truc du kernel que le TIOS n'aime pas rt qui fait planter la calc quand on change les piles, y'a pas moyen de le "rendre invisible" à chaque extinction de la calc, puis de le restaurer à l'allumage ?
Ceci, en détournant le trap #4 bien sûr.
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

43

Non.
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é

44

Haa quand même smile il aura fallu 16 posts pour avoir une réponse bisoo
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

45

Thibaut: TAIS TOI !

JM: C fait
Kevin: Seulement dans la version hw2patch de preos. Mise a jout du programme uninstal qui se demerde pour savoir si trap #4~de preos ou d'un autre.

>Attention, ne mets ça que si le HW2Patch en ROM est détecté!

>Avec le HW2Patch en RAM, ça ne marchera pas de toute façon,
Je sais pas. A voir.


Sinon c pas un bug d'AMS. Si on appelle tios:embarrassedff ca marchera correctement a mon avis. Mais pas asm("trap #4"). Cool, je connais enfin la difference entre off(); et asm("trap #4") wink-

46

Sinon c pas un bug d'AMS. Si on appelle tios: off ca marchera correctement a mon avis

Pourquoi ? confus

47

>Extended: Reflechis.
move.l USP,a0
move.l $10(a0),a0
cmp.l #....,a0
bcs.s fatal
cmp.l #....,a0
bcc.s fatal

48

[nosmile]Si on appelle tios:embarrassedff ca marchera correctement a mon avis.
Faux. Il faudrait d'abord que tios:embarrassedff alloue autant d'octets sur la pile que la routine qui appelle la 16è fontion de trap #11 (pour savoir si elle a été correctement appelé, elle analyse la pile utilisateur). Et même si c'était le cas, il faudrait toujours appeler tios:embarrassedff en mode utilisateur.

49

PpHd : hé on a le droit de poser des questions non ?
Ce topic est réservé à l'3133t ?
Maintenant on fait des films, et on les envoie par ondes. Par ondes ? par waves ! par radio-waves !

Euh comment on l’envoie ? Par des feeling ! Electricité ! (...) Mais dans une compression tout à fait plate !
Ca devient du feeling ! Et le feeling c’est l’amour ! Et l’amour se dit aware !

Jean-Claude Van Damme

50

avec le HW2Patch en RAM, ça ne marchera pas de toute façon
En effet, il n'y a absolument aucune solution dans ce cas. Il faudrait relancer à chaque fois le code de déprotection de la calculatrice et modifier les ports.
La technique utilisée par HW2Patch en RAM consiste à éviter définitivement que les ports de la limitation matérielle soient à nouveau modifiés, en détournant trap #11. Malheureusement, lors d'un changement de piles, ces ports sont réinitialisés par du code qui ne peut pas être détourné.

51

JM: G pas teste. Merde smile

52

Pour détecter si le HW2Patch en ROM est présent, c'est tout simple. Extrait de la source de h220xTSR (pour 3 lignes, même pas besoin de me demander la permission de les utiliser smile):
 ROM_CALL2 EX_stoBCD
 tst.w 92(a4) ;check for HW2Patch (ROM resident)
 beq patched ;if it is installed, refuse installation


Ça ne coûte vraiment rien de faire ce test avant d'essayer de hooker le trap 4.
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é

53

PpHd tu aurais pas moyen en stoquank qq pars dans se que met le kernel en ram de stoquer la valeur du hook du trap #11 et a chaque fois que un pro est lancé tu test si le trap a pas été détourné, si c le cas tu le remet a sa valeur "normale" anti protection

Quoi t'en pense ? (j'parle ptet un peu gol la j'suis fatigué)
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.

54

confus
Je n'ai rien compris là.
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é

55

Alors pour expliciter un peu :

Au lancement du kernel tu recup la valeur de trap #11 (normale détourné par HW2Patch avant puisqu'il faut l'installer avant preos) et tu le met bien au chaud qq pars dans la ram de la TI

Ensuite, a chaque fois qu'un prog ASM est lancé (le kernel est solicité que je sache dans se cas nan ?) tu test si la valeur actuelle en 0xAC (c bien 0xAC trap #11 nan ? ou j'me plante ?) est egale a la valeur que ta mis au chaud dans la ram, si c pas le cas tu remet 0xAC a la valeur que ta recup dans la Ram au chaud

En gros tu obtiens :

Installation du kernel :

T11Old = 0xAC

Au démarage du prog :

(0xAC == T11Old) ? : 0xAC=T11Old

T11Old représente la case qq pars au chaud dans la ram
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.

56

Je ne vois pas du tout à quoi ça servirait.
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é

57

a sa :

avec le HW2Patch en RAM, ça ne marchera pas de toute façon
En effet, il n'y a absolument aucune solution dans ce cas. Il faudrait relancer à chaque fois le code de déprotection de la calculatrice et modifier les ports.
La technique utilisée par HW2Patch en RAM consiste à éviter définitivement que les ports de la limitation matérielle soient à nouveau modifiés, en détournant trap #11. Malheureusement, lors d'un changement de piles, ces ports sont réinitialisés par du code qui ne peut pas être détourné.
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.

58

Et ben, tu n'as rien compris de l'explication de JM...
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é

59

C'est bien, on est 2 alors triso
Maintenant on fait des films, et on les envoie par ondes. Par ondes ? par waves ! par radio-waves !

Euh comment on l’envoie ? Par des feeling ! Electricité ! (...) Mais dans une compression tout à fait plate !
Ca devient du feeling ! Et le feeling c’est l’amour ! Et l’amour se dit aware !

Jean-Claude Van Damme

60

Si le pbm c aussi la valeur des ports,

On peut remettre ses port a leur "bonne" valeur (pour déproteger) si on détecte que

0xAC et T11Old
sont !=
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.