810

Arg. Fait gaffe

811

Je rappelle aussi que le timing de l'int 5 est variable selon les calcs (90 Hz, 270Hz).

812

813

PpHd
: Je rappelle aussi que le timing de l'int 5 est variable selon les calcs (90 Hz, 270Hz).

Ce n'est pas insurmontable, il suffit de le rerègler à 270 Hz pour toutes les calcs et de n'appeler l'interruption de genlib qu'une fois sur 3 pour faire 90 Hz. smile
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é

814

pk 270 Hz ?

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

815

Un tiers de l'écran par interruption (gris HW2/HW3), donc 3 fois la fréquence de rafraîchissement de l'écran.
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é

816

>Je pourais éviter certains problèmes avec l'int1?
Oui!!!

817

818

819

On ne peut pas. Tu es obligé de sauvegarder la vraie taille quelque part, comme en C standard.
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é

820

La doc TIGCC est mal tournee. HeapSize retourne la taille du bloc que tu as le droit de modifier, ce qui peux etre plus que ce que tu as demande (En gros c'est max(8, (size+1)&~1))

821

Ah! Donc, si je veux la taille d'un handle dont je dois recopier le contenu, il n'y a pas de problème...
avatar
Maintenant j'ai la flemme de garder une signature à jour sur ce site. Je n'ai même plus ma chaîne Exec sous la main.

822

Quoique je me demande si c'est pas +2. Verifie (printf("S=%lu\n", HeapSize(HeapAlloc(100))); )

823

824

HeapAlloc(n) t'alloue un bloc de p octets, avec p >= n.. Il faut aussi p >= 6 car il a besoin de 6 octets pour faire le HeapFree, mais je crois que qu'il peut aussi t'allouer plus quand la distance entre ton bloc et le bloc suivant est inférieure à 8o et qu'il ne veut pas bouger le bloc suivant.
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

825

Martial Demolins
: oui, je dois recopier des groupes de 24 octets, donc une fois que j'ai la taille, je recopie par 24 octets, et je m'arrête à peu près au bout.

attention Attention, danger!!! attention
"je m'arrête à peu près au bout", ça sent le buffer overflow à une distance de 100 km! grin
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é

826

827

Donc des buffer overflow happy
avatar
Que cache le pays des Dieux ? - Forum Ghibli - Forum Littéraire

La fin d'un monde souillé est venue. L'oiseau blanc plane dans le ciel annonçant le début d'une longue ère de purification. Détachons-nous à jamais de notre vie dans ce monde de souffrance. Ô toi l'oiseau blanc, l'être vêtu de bleu, guide nous vers ce monde de pureté. - Sutra originel dork.

828

829

830

Mais utilise les features du linker! Compile avec toutes les optimisations activées, c'est nettement mieux, et la probabilité d'erreur est de zéro (0) depuis que j'ai implémenté les relogements inoptimisables (elle était très faible avant, mais là elle est exactement nulle).

Mais voilà ce que c'est:
						// *** Move Optimization ***
						// Optimize LEA(.L) var.L,reg into
						// LEA(.L) var.W(%PC),reg.
						// Optimize PEA(.L) var.L into PEA(.L) var.W(%PC).
						// Optimize MOVE.x var.L,reg/(reg)/(reg)+ into
						// MOVE.x var.W(%PC),reg/(reg)/(reg)+.
						// Optimize MOVE.x var.L,-(reg) into
						// MOVE.x var.W(%PC),-(reg).

Tout est dans les sources du linker, il suffit de les regarder...
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é

831

832

833

Tu peux parfaitement remettre SR a 0 apres genlib::init. Meme en laissant l'int d'AMS.

C'est mieux de desactiver les ints, mais en pratique ca marche sans (Car les ints ne sont pas inter-dependantes).

834

835

d0<<2 ? Ça me paraît bizarre. Enfin pas avec a68k en tout cas. C'est possible qu'un autre assembleur sache le traiter (comme un lsl.w #2,d0).
Sinon, avec a68k il est possible d'utiliser l'opérateur '<<' dans les expressions numériques, mais pas sur les registres. a<<b signifie "a décalé de b bits vers la gauche".

Le BCD est un codage binaire différent du code naturel, et dont certaines opérations sont disponibles nativement sur TI (addition et soustraction [et peut-être que j'en oublie]). Le principe consiste à stocker un chiffre décimal sur 4 bits de ton BCD. Ainsi sur un octet, tu stockes des nombres de 0 à 99.

Sur TI il y a aussi une structure qui s'appelle bcd (en minuscules), c'est celle utilisée pour représenter les nombres réels. Elle permettrait de stocker avec plus de précisions les nombres que la représentation IEEE754. Je te renvoie à la doc pour plus d'informations : http://tigcc.ticalc.org/doc/timath.html#bcd
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

836

837

838

839

840

tu viens de trouver une feature, je suppose cheeky (à ne surtout pas confondre avec un bug !)
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant