1

Désolé, je n'aime pas faire semblant de savoir.

Dans plusieurs topics je vois l'expression "enter_ghost_space", souvent associée à un nombre : 0x40000.

En tant que bon newbie je demande "a quoi servent ces deux trucs" ?
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.

2

À passer à travers la protection des HW2 AMS 2 si on veut exécuter un autre programme en assembleur ou C à partir d'un programme en assembleur ou C (ou n'importe quoi en RAM qui ne se trouve pas dans l'espace d'exécution du programme).

enter_ghost_space est la fonction de TIGCCLIB à utiliser pour déprotéger l'espace fantôme. Ensuite, il suffit d'ajouter $40000 à toutes les adresses que l'on exécute pour éviter tout plantage.

D'ailleurs, l'astuce qui consiste à ajouter $40000 est aussi utile pour écrire dans la table des vecteurs sans "protected memory violation".
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é

3

Ouep il me semble que la memoire recommence à cette adresse ?
LinuX Powa (:

4

Exact. Et c'est pour cela que l'on l'appelle "espace fantôme" (ghost space). La mémoire semble continuer, mais en fait ce n'est qu'une sortie de "copie" des premiers 256 KO (0x40000 octets).
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é

5

C pas une copie !
C que le decodeur d'adresse RAM ne decode pas le bit, c tout.

6

Merci beaucoup PpHd et Kevin smile

Mais comment fait la calto pour savoir qu'un programme en lance un autre ?
Parceque le lancement se fait via le TIOS ?
Alors si on le lance soi-même avec un jsr (+ relocations "manuelles"), le problème n'est plus ?
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.

7

La détection se fait au niveau hardware, par le controleur mémoire je crois. Il découpe la mémoire en blocs de 4 Ko, dont certains peuvent être protégé en exécution. Dasn le cas d'un accès illégal, il plante tout, sans passer une quelqconque interruption logicielle. Il se trouve que si l'adresse du PC est supérieure à 256 ko (soit 0x40000), cet idiot ne détecte rien smile.
(voilà en gros, les pros me pardonneront)

8

Donc quand le TIOS (donc un kernel ?) lance un prog, le TIOS indique au contrôleur quels intervalles sont "légales" pour le PC ?
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.

9

>PpHd: C pas une copie !

C'est pour ça que j'ai mis "copie" entre guillemets. Peut-être que "mirage" conviendrait mieux comme métaphore. Et ça donne aussi l'idée de "fantôme" (ghost space).

>Blue_Z: Il se trouve que si l'adresse du PC est supérieure à 256 ko (soit 0x40000), cet idiot ne détecte rien smile

C'est plus subtil que cela! "Cet idiot" (la puce qui est responsable des plantages forcés) considère l'espace $40000-$1fffff comme une partie du dernier bloc ($3f000-$3ffff).

>Thibaut: Donc quand le TIOS [...] lance un prog, le TIOS indique au contrôleur quels intervalles sont "légales" pour le PC ?

Exact. Et il le fait à travers la fonction $f du trap #$b.

>Thibaut: (donc un kernel ?)

Non, justement, lui, il ne fait pas.
Mais il y a aussi d'autres raisons pour lesquelles les kernels ne tournent pas sans le HW2Patch. Notamment qu'il s'agit de TSRs.

Pour tout TSR, le problème est que, même s'ils sont installés dans l'espace fantôme, celui-ci peut être protégé. Il est protégé si et seulement si le dernier bloc est protégé, et AMS protège ce bloc quand il déprotège d'autres blocs, et il est aussi protégé (comme tout le reste de la RAM, sauf une zone bien précise) lors d'un changement des piles.
Je n'ai pas envie de décrire ici en détail ce que fait mon HW2 AMS 2 TSR support sauf si on me le demande.
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é

10


Les interruptions automatiques que l'on fait nous-même (4grays, au hazard) ne nécessitent pas de déclarer leur espace (car le code est copié dans un handle locké) comme "légal" !?
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.

11

>Thibaut: Les interruptions automatiques que l'on fait nous-même (4grays, au hazard) ne nécessitent pas de déclarer leur espace (car le code est copié dans un handle locké) comme "légal" !?

Les routines d'interruptions des niveaux de gris de TIGCCLIB se trouvent à l'intérieur de ton programme, donc dans l'espace d'exécution autorisé.

Pour les librairies dynamiques, l'appel de la librairie dynamique lui seul nécessite le HW2Patch ou un appel par enter_ghost_space et ajout de 0x40000 à l'adresse (comme le fait FAT Engine, la première et pour l'instant la seule librairie dynamique en _nostub).
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é

12

Oui mais je me suis déjà amusé à faire un TSR qui était lancé par l'AI5... Sans avoir à déclarer comme "légal" le bloc dans lequel le code était copié roll
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.

13

Pour un TSR, c'est différent!
Je suppose que tu avais utilisé le HW2Patch.
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é

14

oui. Sans ça plante ?
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.

15

Oui, c pour ca qu'HW2PActh est genial :
pas de enter_ghost_space ou d'ajout a la noix.
Ca fait les choses plus proprement.

16

Et en plus l'acces a $40000 est dangereux, ca tios s'en sert aussi pour les HW1.

17

Ça a un effet sur HW1 seulement quand la protection Flash est désactivée!
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é