flankerLe 24/03/2008 à 16:35
Grosso merdo ©, imagine que la RAM soit juste un grand bac plein de d'octets qui se baladent librement, et tu as un certain nombre de sacs à ta disposition (2000, si je me souviens bien).
Quand tu veux stocker des informations en mémoire (on va supposer que tu as besoin de 10 octets pour ça), tu fais une demande à l'AMS qui va prendre un sac numéroté, le remplir avec le bon nombre d'octets, et te le mettre de côté et finalement, l'AMS va te donner le numéro du sac.
Quand tu voudras stocker des informations, tu utilises alors les octets de 0 à 9 dans le sac que l'AMS t'a donné.
Le sac en question s'appelle un Handle.
Pour stocker le contenu d'une variable, un Handle est utilisé, et la liste des variables d'un dossier est stockée dans un autre Handle.
Si tu regardes le contenu brutal de la mémoire (il faut un éditeur hexa pour ça), tu pourras voir le contenu de ce sac/handle qui sera de la forme :
VARIABLE1....HH1..VARIABLE2....HH2..VARIABLE3....HH3..VARIABLE4....HH4..VARIABLE5....HH5
(avec quelques autres détails, genre si la variable est verrouillée)
HHx est le numéro du Handle dans lequel le contenu de VARIABLEx est inscrit.
Si VARIABLEx vaut "toto", et si tu regardes dans le sac HHx, tu pourras voir "toto".
Maintenant, chaque variable affichée dans le VAR-LINK correspond à un Handle, mais la réciproque est fausse : il y a un Handle qui contient la liste des dossiers, un handle par entrée dans l'historique, chaque dossier correspond à un handle qui contient la liste des variables de ce dossier, il y a un handle qui contient l'image actuellement affichée dans l'écran I/O, etc...