1
J'aimerais que quelqu'un m'explique quelle est la capacité de la pile (stack).
D'après TI, c'est 400 octets. A plusieurs endroits, j'ai constaté que l'on en déduisait qu'elle pouvait contenir 25 valeurs de 16 bits. C'est là que je ne comprends pas. 400 octets, pour moi, ça fait 200 valeurs de 16 bits.
2
Il y a quelqu'un qui confond bits et octets là. 25*16=400, mais il faut tenir compte des unités là.
avatarMes 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
TI écrit 400 bytes. byte = octet.
4
Je sais. Donc, soit c'est TI qui écrit n'importe quoi (ça arrive grin), soit ce sont ceux qui ont fait les calculs qui se sont trompés. Je pense que la pile fasse plutôt 400 octets que 400 bits (50 octets), mais je ne connais pas les TI-83+ suffisamment pour te répondre à coup sûr.
avatarMes 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
Je sais que tu sais... smile
6
Bon, après recherche, la pile des TI 83+ fait 400 octets au maximum, répartis en 200 valeurs de 16 bits (8+8 bits) chacune. On les stocke dans des registres doubles de 16 bits de long, comme hl, de, et un autre que j'ai oublié.

C'est tout ce que je sais pour le moment.

En gros, t'as pas fait d'erreur en calculant smile
7
Merci. Il va falloir que je trouve une autre explication à mon problême...
8
J'ai une nouvelle question !
La pile est-elle une structure particulière ou est-ce simplement une zone de mémoire que l'on nomme ainsi ?
Si c'est simplement une zone de mémoire, on pourrait alors déplacer le stack dans une saferam en changeant la valeur du registre SP.
9
oui on peut modifier la valeur du stack pointer SP, regarde cette routine de patrick davison pour phoenix) :

;############## Clears screen buffer

clear_buffer:
ld (smc_savesp+1),sp
ld hl,0
ld sp,GFX_AREA+1024
ld b,63
loop_super_clear:
push hl
push hl
push hl
push hl
push hl
push hl
push hl
push hl
djnz loop_super_clear
smc_savesp:
ld sp,0

******************************
ce que d'autres programmeurs font, c'est que avant de véritablement lancer le programme ils sauvegardent SP, puis, quand tu veux quitter le programme, SP est restauré ce qui fait que tu peux quitter même quand t'as "pushé" à fond.