Je voudrais savoir comment peut on déterminer la taille d'un handle dont on connait le numéro?
Ah ok bon je vais me débrouiller autrement alors.
Je n'est pas trouver dans la doc de tigcc la fonction qui permet de sauvegarder une zone de l'écran.
Cette fonction existe t elle?
Alors comment il fait un pour bouger un handle ou le redimensionner ? Il prend une taille un peu supérieure pour être sûr de pas se planter ?
C'est ce que j'avais remarqué en regardant la taille de la structure WINDOW_AMS1 je ne savais pas pourquoi ca taille était de 40octets alors qu'elle en occupait 42.
oui, exact, car le bus fait 16 bits, et qu'il faut fatalement 2 accès. Menfin bon.
sur le gestionnaire de mémoire d'AMS, ils en font quoi des 2 bits de poids faibles non utilisés par l'alignement sur 32 bits?
Il y a beaucoup d'architectures de processeur qui ne peuvent écrire des types de n octets de large qu'à des adresses multiples de n, parce que les autres accès n'ont pas été implémentés dans le matériel du processeur (pour des questions de simplicité et de vitesse: il faut éventuellement découper les accès en plusieurs morceaux).
Mais c'est bien deux sur le 68k, pas 4, non ?!? (je parle évidemment pas des octets seuls)
Ils ont utilisé les émulateurs Line1010 et Line1111 pour leurs propres utilisations, donc non, ce n'est pas du tout compatible avec les 680x0 supérieurs.
Ces vecteurs sont utilisés par le proc dans les séries suivantes tu veux dire ?
Oui, la fonction exit utilisait ça dans les anciennes versions de TIGCCLIB. Ça a été changé, non pas pour virer ce hack (même si ça a été un des effets de la modification), mais parce que ça nécessitait de faire de l'unwinding et donc d'avoir un frame pointer dans toutes les fonctions.
c'est quoi l'unwinding ? où est le problème à avoir un frame pointer global au programme et commun à toutes les fonctions ?
Le stack unwinding, c'est le fait de dépiler un par un les espaces de travail des fonctions. C'est "impossible" sans frame pointer dans _toutes_ les fonctions (puisqu'il faut remonter toutes les frames une par une).
Si tu as un frame pointer dans _main et si tes autres fonctions ne touchent pas à %fp, c'est-à-dire %a6, l'ancien exit marche encore, mais un des buts d'éviter le frame pointer est justement de libérer le registre.
Un autre problème de l'ancien exit était que certains registres n'étaient pas restaurés.
Avec le nouvel exit, la valeur de %sp est restaurée depuis une variable globale et tous les registres sont restaurés depuis la pile, donc ce problème est résolu.
Ok, mes programmes marchent pareil.
Ah les gars franchement vous métonnerait toujours tant de connaissance sur le 68k!!!
Je me demande comment vous avez accumulé toute cette culture! Surement après de nombreuses années d'utilisation de la Ti?!