120

Bah non, ça peut être utile dans certains cas. Mais le problème, c'est que c'est utilisé à tort et à travers.
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é

121

Et trois en après, le bugfix est backporté dans upstream, et on peut enfin avoir des macros correctes ? cheeky

122

Bon, ya un truc que je capte vraiment pas :

Quand je fais ça :
truc = (peek_bit (Ptr[offset] , 7));
Ca me renvoie toujours truc == 0
Quand je fais ça :
truc = Ptr[offset];
Ca me renvoie 0 ou 0x80, suivant cas.

Sachant que Ptr est un char*, qui pointe dans un tableau fait de 0x80 et de 0x00.

Kékya qui va pas ?

123

peek_bit prend une adresse, pas une valeur. Essaie:
truc = (peek_bit (&Ptr[offset] , 7));
ou (ce qui revient au même):
truc = (peek_bit (Ptr + offset , 7));
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é

124

han triso J'arrête tout, je repasse au TI-Basic trioui

Merci ^^

125

De toutes façons pourquoi utiliser peekbit quand tu peux faire le joli masque & toi-même ? embarrassed
avatar
Le scénario de notre univers a été rédigée par un bataillon de singes savants. Tout s'explique enfin.
T'as un problème ? Tu veux un bonbon ?
[CrystalMPQ] C# MPQ Library/Tools - [CrystalBoy] C# GB Emulator - [Monoxide] C# OSX library - M68k Opcodes

126

Lire un bit est plus rapide que copier un char ? Faut que je vérifie ce que ça donne.
Je me demande pourquoi ce genre de macro n'est pas faite en asm

127

Le compilateur optimise ça en un btst normalement.
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é

128

Très bien. smile

129

Etant donné qu'on m'a toujours aps rendu mon bouquin de C, je me pose une question sur ce qu'on pourrait appeler les priorités :
Avec un tel code :
			if (CharX % 16 <= 8)
			{
				if (peek_bit (TilesDataPtr + Block , CAN_CROSS))
					SpeedY = -140;
			}
			else if (peek_bit (TilesDataPtr + Block , CAN_CROSS) || peek_bit (TilesDataPtr + Block + 2 , CAN_CROSS))
				SpeedY = -140;

La paire d'accolade est-elle indidpensable ? ie est-ce que le else serait appliqué au premier ou au second if sans ça ? Est-ce défini ?

(et me parlez pas de l'optimisation du code, je viens de me rendre compte que c'est très simplifiable, mais là n'est pas la question cheeky)

130

Oui les accolades sont nécessaires tongue
avatar
Le scénario de notre univers a été rédigée par un bataillon de singes savants. Tout s'explique enfin.
T'as un problème ? Tu veux un bonbon ?
[CrystalMPQ] C# MPQ Library/Tools - [CrystalBoy] C# GB Emulator - [Monoxide] C# OSX library - M68k Opcodes

131

Il vaut beaucoup mieux un excès de parenthèses qu'un défaut de parenthèses. De plus, même si ça ne s'applique pas ici, il me semble qu'il y a de légères différences de priorités entre certains dialectes de C.
=> c'est très mal d'avoir un code dépendant de la priorité des opérateurs grin
avatar
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Co-admin de TI-Planet.

132

On parlait d'accolades et pas de parenthèses cheeky
En plus le if n'est pas un opérateur mais une structure de contrôle, pas pareil non
(Enfin c'est surtout que du coup y'a pas d'histoires de priorité ou autres)
avatar
Le scénario de notre univers a été rédigée par un bataillon de singes savants. Tout s'explique enfin.
T'as un problème ? Tu veux un bonbon ?
[CrystalMPQ] C# MPQ Library/Tools - [CrystalBoy] C# GB Emulator - [Monoxide] C# OSX library - M68k Opcodes

133

Folco (./129) :
La paire d'accolade est-elle indidpensable ? ie est-ce que le else serait appliqué au premier ou au second if sans ça ? Est-ce défini ?
Oui, le comportement est défini (et heureusement, sinon la grammaire serait ambigüe) : un else se rapporte toujours au dernier if déclaré pour lequel il n’y a pas encore de else. Donc les accolades sont bien nécessaires wink
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. »

134

Ok, merci. smile

Autre truc, pour pouvoir optimiser : Est-ce que les évaluations des &&/|| sont paresseuses, et effectuées dans l'ordre du source ? Si c'est le cas, il y a pas mal à optimiser en organisant correctement les booléens.

135

En C, les évaluations sont paresseuses oui
avatar
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Co-admin de TI-Planet.

136

Yep ! Merci. happy

137

Ya un moyen pour compiler un fichier de données en C ? Je vois pas comment m'y prendre... Je n'ai rien trouvé dans la doc à ce sujet, bien que je croyais qu'il en était question qqpart confus

138

C'est quoi un fichier de données pour toi ?

139

Oui, tu veux compiler quoi au juste ?
avatar
« Le bonheur, c'est une carte de bibliothèque ! » — The gostak distims the doshes.
Membrane fondatrice de la confrérie des artistes flous.
L'univers est-il un dodécaèdre de Poincaré ?
(``·\ powaaaaaaaaa ! #love#

140

Un .incbin ?
avatar
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Co-admin de TI-Planet.

141

Un fichier qui aura une extension OTH et qui contiendra que des données, pas le moindre code.

142

ttbin2oth.exe ou un truc du genre ? (tu veux un fichier externe ou l'inclure dans le programme ?)

143

Je ne sais pas si à partir d’un fichier .o obtenu à partir d’un .c on peut utiliser ces trucs là.
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. »

144

Pkoi tu parles d'un fichier .o ? J'avoue que j'ai du mal à comprendre ce qu'il veut vraiment grin

145

Je crois qu’il veut définir des données en C et pouvoir en faire un fichier TI.
Quand on compile du C, on obtient un fichier objet (.o). Donc il faudrait pouvoir transformer ce fichier .o en un fichier TI.
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. »

146

Si c'est ça, à mon avis1, il a plus vite fait de coder un programme PC qui écrit le binaire sur lequel il ferait tourner ttbin2oth hehe (oui non mais je sais qu'on obtient un fichier objet, quand même grin)

1 mais mon avis ne vaut à peu près rien, ça fait un moment que j'ai arrêté de regarder ce qui se fait du côté des TI cheeky

147

Oui je pense pareil, un programme PC qui dumpe les données dans un fichier PC, et ensuite une conversion en fichier TI avec les outils ttmachin...
edit : en fait j'ai eu à faire un truc similaire, le plus simple pour le faire en une étape est plutôt de récupérer bin2oth.c dans les tt tools et d'utiliser la fonction y définie DataBuffer2OTHBuffer ^^
avatar
« Le bonheur, c'est une carte de bibliothèque ! » — The gostak distims the doshes.
Membrane fondatrice de la confrérie des artistes flous.
L'univers est-il un dodécaèdre de Poincaré ?
(``·\ powaaaaaaaaa ! #love#

148

(mon avis vaut peut être quelque chose alors ? trilove)

149

Autrement dit, si tes données sont dans data.h, tu te fais un petit datadump.c qui contient ceci :
#include "data.h"
extern unsigned char* DataBuffer2OTHBuffer(int            calctype,
					   char*          folder,
					   char*          varname,
					   char*          extension,
					   unsigned int   inlength,
					   unsigned char* indata,
					   unsigned int*  outlength);
plus un main (attention, pas un _main) qui passe ton tableau de données en argument à cette fonction et dumpe le résultat dans un fichier, et hop. Ensuite tu n'as plus qu'à compiler séparément bin2oth.c et linker ton datadump.o avec le bin2oth.o ainsi obtenu, tu lances le programme et il te générera le fichier.
(N.B. compiler avec gcc, pas avec tigcc grin)
avatar
« Le bonheur, c'est une carte de bibliothèque ! » — The gostak distims the doshes.
Membrane fondatrice de la confrérie des artistes flous.
L'univers est-il un dodécaèdre de Poincaré ?
(``·\ powaaaaaaaaa ! #love#

150

Sinon, il y a aussi le hack qui se nomme ttextract. Mais un compilateur C est vraiment le mauvais outil pour générer un pur fichier de données, la méthode du programme qui écrit les données est bien plus propre.
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é