1

Je comprend mal le sens de
#define USE_TIxx

Je pensait qu'a la compilation le préprocesseur remplacait simplement toutes les macros du genre LCD_WIDTH par la valeur correspondante à la calculatrice, et que quand on met :

#define USE_TI89
#define USE_TI92PLUS

il faisait deux versions du programme dans lesquelles les macros ont été remplacés par des constantes.
En fait j'ai lu dans le doc que ce sont des pseudos constantes et que si l'on compile pour deux modèles, dans les prorgammes, ce ne sont pas des constantes.
En effet, je constate que la taille du prog augmente de 2000 octets !!

Donc en fait, je vois pas l'interêt, autant faire une compilation avec #define USE_TI89 seulement, puis avec #define USE_TI92PLUS seulement, ça gagne de la place en mémoire, ce qui est crucial.
Mon site :
[TI68k] Space Dementia I : Version 0.8
[TI68k] Space Dementia II, mod arena : Version 0.3 avec IA
[OpenGL] Environment Mapping 3ds Viewer : version 1.0
[OpenGL] Programmation d'une simulation de voiture avec le moteur physique Tokamak

2

ça fait pareil dans le fichier compilé, sauf qu'il le compile pour 89 et pour 92+ smile
Non-Webmaster et non-programmeur du site. .Pour tout probleme ou question ,débrouillez vous avec les Webmasters .

«- Pas Moo ! ^^

3

Est ce que un programme 89z peut être exécuté sur une TI-92+ ??
Si oui, je comprends mieux.
Mais alors vaut il mieux avoir deux version du programme ou une seule qui marche sur les deux modèles en tenant compte des différences, mais qui est plus grosse ?
Mon site :
[TI68k] Space Dementia I : Version 0.8
[TI68k] Space Dementia II, mod arena : Version 0.3 avec IA
[OpenGL] Environment Mapping 3ds Viewer : version 1.0
[OpenGL] Programmation d'une simulation de voiture avec le moteur physique Tokamak

4

il n'y a que TRES peu de programmes qui tournent sur 89 et sur 92+ en plein écran avec le même exécutable.
il me semble que txtrider en fait parti...
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

5

Ça, c'est à toi de voir. Personnellement, je préfère la compatibilité on-calc.

Et attention: n'oublie pas les Voyage 200!
Donc:
* utilise la bêta la plus récente de TIGCC. Les anciennes versions (y compris 0.93) ne supportaient pas ou mal la V200. (Pour la version 0.93, elle était censée la supporter, mais j'ai fait une erreur dans le code de détection, donc ça ne marche pas.)
* mets aussi #define USE_V200 partout où tu mets #define USE_TI92PLUS!
Ceci est valable à la fois si tu choisis la compilation séparée et si tu choisis la compatibilité on-calc.

Pour la compilation séparée, dans le cas général, tu ne gagneras rien si tu fais des versions séparées pour TI-92+ et pour V200. Exceptions:
* tu définis un layout de touches spécial (plus adapté) pour les V200 (C'est nécessaire dans certains cas, vu que certaines touches ont été déplacées.) OU
* tu utilises la pseudo-constante ROM_base (ou d'autres trucs qui retournent une valeur différente sur V200 que sur TI-92+) à plusieurs endroits.


Et pour répondre à ta question d'origine:
* Si ton programme supporte un seul modèle (ou s'il supporte seulement TI-92+ et V200, pour lesquelles presque toutes les pseudo-constantes ont la même valeur), les pseudo-constantes seront automatiquement optimisées en constantes en temps de compilation, et dans la bêta actuelle, un test sera rajouté au début du programme pour éviter que le programme soit exécuté sur les modèles pour lesquels il n'est pas prévu.
* S'il supporte plusieurs modèles, les pseudo-constantes resteront des pseudo-constantes, dont la valeur effective sera déterminée en temps d'exécution seulement.
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é

6

squale92> c de la compatibilté oncalc ca .. faut juste utiliser le HARDWARE_PARAM_BLOCK .... enfin, je suppose wink

7

Donc tu conseille une version TI89, et une version TI92+/V200, sachant que vour la version TI92+/V200, il faut faire quelques tests pour le clavier qui seront éxecutés pendant l'éxecution du programme ?
Mon site :
[TI68k] Space Dementia I : Version 0.8
[TI68k] Space Dementia II, mod arena : Version 0.3 avec IA
[OpenGL] Environment Mapping 3ds Viewer : version 1.0
[OpenGL] Programmation d'une simulation de voiture avec le moteur physique Tokamak

8

la compatibilité on calc est surtout utile quand on veut envoyer le prgm d'une 92+ à une 89 sans se soucier de tout.

Sinon compile une fois en USE_89
compile une fois en 92PLUS
et en V200 ...

en fait déclarer USE_89 et USE_92+ va seulement faire un prgm pour 89 et un autre pour 92+, avec un test au tt début du prog comme Kevin l'a dit.
Non-Webmaster et non-programmeur du site. .Pour tout probleme ou question ,débrouillez vous avec les Webmasters .

«- Pas Moo ! ^^

9

Pim89
a écrit : en fait déclarer USE_89 et USE_92+ va seulement faire un prgm pour 89 et un autre pour 92+, avec un test au tt début du prog comme Kevin l'a dit.

Ce n'est pas très clair là... Plus clairement:
* déclarer USE_TI89 et USE_TI92PLUS et USE_V200 donnera un programme compatible on-calc.
* déclarer USE_TI89 ou USE_TI92PLUS et/ou USE_V200 donnera un programme optimisé pour un modèle spécifique.
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é

10

Et si on met les 2, il n'y aura pas du tout 2 programmes séparés mis dans le même exécutable! Il y aura un seul programme qui, à chaque fois qu'il aura besoin d'une pseudo-constante, regardera la valeur de la variable __calculator initialisée par le code de détection au début du programme et retournera la valeur appropriée pour la pseudo-constante.
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é

11

Au fait, l'installation de TIConnect sur mon pc (Win NT) à transformé toutes mes extentions de programmes TI en : Fichier TI73..92+, d'ou plus aucun moyen de différencier un programme TI89 d'un programme TI92+ (ou même TI86...)
rage merci TI !

Une solution ?
Mon site :
[TI68k] Space Dementia I : Version 0.8
[TI68k] Space Dementia II, mod arena : Version 0.3 avec IA
[OpenGL] Environment Mapping 3ds Viewer : version 1.0
[OpenGL] Programmation d'une simulation de voiture avec le moteur physique Tokamak

12

Kevin Kofler a écrit :
Et si on met les 2, il n'y aura pas du tout 2 programmes séparés mis dans le même exécutable! Il y aura un seul programme qui, à chaque fois qu'il aura besoin d'une pseudo-constante, regardera la valeur de la variable __calculator initialisée par le code de détection au début du programme et retournera la valeur appropriée pour la pseudo-constante.


D'ou la taille plus grande du fichier...
Mon site :
[TI68k] Space Dementia I : Version 0.8
[TI68k] Space Dementia II, mod arena : Version 0.3 avec IA
[OpenGL] Environment Mapping 3ds Viewer : version 1.0
[OpenGL] Programmation d'une simulation de voiture avec le moteur physique Tokamak

13

moitib a écrit :
Au fait, l'installation de TIConnect sur mon pc (Win NT) à transformé toutes mes extentions de programmes TI en : Fichier TI73..92+, d'ou plus aucun moyen de différencier un programme TI89 d'un programme TI92+ (ou même TI86...)
rage merci TI !
Une solution ?

Tu dis à l'explorateur Windows d'afficher l'extension des fichiers (dans les options).
moitib
a écrit : D'ou la taille plus grande du fichier...

Oui, mais si on mettait carrément 2 programmes dans le même exécutable comme semblait l'impliquer le message de Pim89, ça serait encore pire (la taille se verrait doublée)!
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é

14

Kevin Kofler
a écrit : Tu dis à l'explorateur Windows d'afficher l'extension des fichiers (dans les options).

Merci ca marche smile
Mon site :
[TI68k] Space Dementia I : Version 0.8
[TI68k] Space Dementia II, mod arena : Version 0.3 avec IA
[OpenGL] Environment Mapping 3ds Viewer : version 1.0
[OpenGL] Programmation d'une simulation de voiture avec le moteur physique Tokamak

15

moitib a écrit :
Au fait, l'installation de TIConnect sur mon pc (Win NT) à transformé toutes mes extentions de programmes TI en : Fichier TI73..92+, d'ou plus aucun moyen de différencier un programme TI89 d'un programme TI92+ (ou même TI86...)
rage merci TI !
Une solution ?


Moi, je copie la registré (bon mot?), et puis, quand quelque chose se change, je remets ce que j'ai copié dans la registré. Mais, ton problém me semble quelque chose que TiLP fait.

16

la registré est incorrect, je ne vois pas ce que tu veux dire. Base de registres ?

Moi, dans ce cas, je supprime simplement ce type de fichier (dans les options des dossiers -> types de fichiers)

17

désolé. En anglais, c'est "the registry". On peut le changer avec le programme "regedit".

18

Oui, donc c'est bien la base de registres smile

19

Kevin Kofler a écrit :
Tu dis à l'explorateur Windows d'afficher l'extension des fichiers (dans les options).
moitib a écrit :
Merci ca marche smile

!!eek
Ca alors, y'a encore des newbies qui n'affichent pas les extensionswhat
Et en plus t'es fort en C, donc T pas un Newbieconfus

Aussi, on se demande pourquoi:
1- L'option de asquage des extension existeroll
2- Elle esty toujours sélectionnée par défaut angry

Vraiment, quand je vais sur un PC, même si ce n'est pas le mien , mon premier réflexe est de la désactiver, cette option, c'est la plaie du monde, et n'importe qui peut d'envoyer quelques bitmaps avec dedans un exécutable vicieux avec une icone trompeuse!
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.

20

Moi, je préfère carrément que les extensions soient masquées.

21

moi, je les affiche tout le temps.
dès que je lance l'explorateur à l'IUT, je dé-masque les extensions, et je coche afficher tous les fichiers
(obligé de le faire à chaque fois que j'ai ouvert ma session sad)
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

22

Ben t'as pas de chance squale...
A mon lycée, coup de bol, les paramètres restent...

Jackiechan>Je n'ai rien pour le moment pour faire un programme avec un icone, mais si quelqu'un voit ce topic il pourrait avoir envie de te montrer combien tu as tort...black
Alors méfie-toiattention
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.

23

Link a écrit :
!!eek
Ca alors, y'a encore des newbies qui n'affichent pas les extensionswhat
Et en plus t'es fort en C, donc T pas un Newbieconfus

Aussi, on se demande pourquoi:
1- L'option de asquage des extension existeroll
2- Elle esty toujours sélectionnée par défaut angry
Vraiment, quand je vais sur un PC, même si ce n'est pas le mien , mon premier réflexe est de la désactiver, cette option, c'est la plaie du monde, et n'importe qui peut d'envoyer quelques bitmaps avec dedans un exécutable vicieux avec une icone trompeuse!


ok, mais quand les extentions sont cachées, si tu laisse ta souris sur le fichier il te dit ce que c'est, donc t'as un moyen de voir (mais mon pb c'etait que là y me dit Fichier TI73..92+). Et puis moi personne que je connais m'envoie des exe vicieux cachés au milieu de bitmaps grin.
Et puis je peux etre fort en C (encore que je m'avancerais pas à dire ça) et ne pas connaitre tous les trucs d'un pc.
Mon site :
[TI68k] Space Dementia I : Version 0.8
[TI68k] Space Dementia II, mod arena : Version 0.3 avec IA
[OpenGL] Environment Mapping 3ds Viewer : version 1.0
[OpenGL] Programmation d'une simulation de voiture avec le moteur physique Tokamak

24

Link à cpôté de ça, g une connexionnde rève
=> je v pas raler pr un détail qui prend 10 secondes à régler
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

25

Kevin Kofler a écrit :
* mets aussi #define USE_V200 partout où tu mets #define USE_TI92PLUS! Ceci est valable à la fois si tu choisis la compilation séparée et si tu choisis la compatibilité on-calc.

Je veux bien, mais comment je teste le programme après vu que j'ai pas de V200 ? grin
VTI émule pas la V200, je pense :
Donc est ce que y'en a qui ont des V200 et qui pourraient tester ?
C'est nécessaire dans certains cas, vu que certaines touches ont été déplacées

D'ailleurs je sais même pas comment sont placées les touches sur une V200... confus
Sinon niveau software tout marche exactement pasreil entre le TI92+ et la V200 ??
Mon site :
[TI68k] Space Dementia I : Version 0.8
[TI68k] Space Dementia II, mod arena : Version 0.3 avec IA
[OpenGL] Environment Mapping 3ds Viewer : version 1.0
[OpenGL] Programmation d'une simulation de voiture avec le moteur physique Tokamak

26

Sinon, comment fait-to en ASM pour NE PAS obtenir autant d'executables que de calculatriceswhat J'ai beau chercher dans l'imposante doc, je ne trouve pas où on règle cette option!confus
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.

27

moitib> ExtendeD avait sorti un pack avec la ROM2.07 et ce qu'il fallait pr l'utiliser sur VTI
(la 2.07 étant une ROM spécifique aux V200 => ça permettait d'muler une V200)
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

28

moitib
a écrit : Sinon niveau software tout marche exactement pasreil entre le TI92+ et la V200 ??

Une V200 AMS 2.08 marche presque exactement comme une TI-92+ AMS 2.08 au niveau logiciel. Il n'y a que la taille et l'adresse de la FlashROM qui changent.
Link a écrit :
Sinon, comment fait-to en ASM pour NE PAS obtenir autant d'executables que de calculatriceswhat J'ai beau chercher dans l'imposante doc, je ne trouve pas où on règle cette option!confus

Tu supprimes les xdef dont tu n'as pas besoin.
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é

29

Comprends pas, tu parlais dans ce même topic d'un seul exe mrchant pourles deux, comment je l'obtiens en asm?
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.

30

Voilà le code de détection utilisé par TIGCC (attention, c'est de l'assembleur GNU):
| Get the address of the jump table (needed a few times).
	move.l 0xC8,%a0
	/* Calculator Detection */
| At first, assume TI-92 Plus.
| It takes less space to write the values into %d0 first and then check whether they are correct.
	moveq #1,%d0
| Move the address of the jump table to %d1.
	move.l %a0,%d1
	and.l #0x400000,%d1
| Now %d1 is 0 on a TI-89 or V200, or 0x400000 on a TI-92+.
	jbne __calc_in_d0__
| Otherwise, assume TI-89.
	clr.w %d0
| Get the address of the ScrRect variable into a1.
	move.l (%a0,0x2F*4),%a1 /* ScrRect */
| If ScrRect+2 (x2) is less than 200, it is a TI-89.
	cmp.b #200,2(%a1)
	jbcs __calc_in_d0__
| Otherwise, it is a V200.
	moveq #3,%d0
__calc_in_d0__:
| Fill __calculator now, since __calc_is_OK__ may be located at different places.
	lea __calculator(%pc),%a1
	move.w %d0,(%a1)

avec:
	.xdef __calculator
	.even
__calculator:
	.word -1


Mets ce code au début de ton programme (et la variable en un endroit approprié), puis:
tst.w __calculator ;beq TI-89, bne TI-92+/V200
cmp.w #1,__calculator ;beq TI-92+
cmp.w #3,__calculator ;beq V200
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é