30

Me too. Mais je crois que Monsieur Kevin aime bien imposer ses idées... non
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

31

Ce ne sont pas que mes idées, on a décidé ça ensemble, Sebastian et moi (c'est d'ailleurs Sebastian qui a fait ça de sa propre initiative, même si je lui aurais conseillé de faire comme ça s'il ne l'avait pas déjà fait lui-même), et Sebastian a certainement demandé l'avis de Zeljko, qui n'a pas objecté non plus. Désolé, nous sommes l'équipe de TIGCC, pas vous! Et Thomas Nussbaumer n'a pas objecté non plus, et c'est en fait lui qui avait fait en premier du code pour détecter la calculatrice et empêcher l'exécution si ce n'est pas la bonne (sa macro traîne encore dans ExtGraph 1.00).

Et tant qu'il y a des #defines pour changer les options, ne râlez pas. Ces #defines sont aussi documentés. Si les programmeurs ne lisent pas notre documentation, on n'y peut rien.

Et au fait: nous, pour cette décision, on est surtout partis du principe qu'un programmeur fasse soit une version compatible on-calc (auquel cas aucune calculatrice ne sera refusée), soit une version TI-89 et une version TI-92+/V200 (auquel cas il est tout à fait raisonnable de refuser l'exécution si l'utilisateur a choisi la mauvaise version). Si les auteurs refusent de supporter un modèle, plaignez-vous chez eux, pas chez nous.
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é

32

c simple, à chaque nouvelle version de TIGCC, je rajoute deux define pour empécher que la taille de mes programmes ne grossise à mort grin
(ou alors, j'en supprimer deux grin)
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

33

Si les programmeurs ne lisent pas notre documentation, on n'y peut rien.
C'est quand même un peu planqué dans la doc, et peu de monde la relis à chaque d/l d'une nouvelle version.

Et le chapître s'appelle Advanced Options of TIGCC, ça risque de repousser plus d'un newbie grin

34

squale92 a écrit :
c simple, à chaque nouvelle version de TIGCC, je rajoute deux define pour empécher que la taille de mes programmes ne grossise à mort grin
(ou alors, j'en supprimer deux grin)


On n'y peut rien si le fait de corriger des bogues prend de la place. Les #defines qui désactivent ces corrections de bogues pour économiser la place sont déjà un compromis! Pour moi, un programme qui plante s'il est exécuté sous une version d'AMS insuffisante est inacceptable! (Je suis content qu'on a enfin règlé le problème des TI-92+ AMS 1.00 avec MIN_AMS.)

ExtendeD a écrit :
Si les programmeurs ne lisent pas notre documentation, on n'y peut rien.
C'est quand même un peu planqué dans la doc, et peu de monde la relis à chaque d/l d'une nouvelle version.

Et le chapître s'appelle Advanced Options of TIGCC, ça risque de repousser plus d'un newbie grin


C'est normal. Les programmeurs qui ne savent pas exactement ce qu'ils font ne sont pas censés désactiver nos corrections de bogues.
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é

35

Est-ce que ca vaut vraiment le coup pour 1 utilisateur sur 1000 qui a encore l'AMS 1.00?
Mettre explicitement dans le read-me l'AMS minimum requis suffit (en tout cas pour l'AMS 1.01).

36

Je crois que "_detect_calc_" de tipatch.lib peut être optimisée pour gagner quelques octets, en transformant :
move.w #1,%d0 en un moveq (2 octets)
and.l #0x600000,%d1 / cmp.l #0x400000,%d1 / jbeq __calc_in_d0__ en un andi.l #0x400000,d1 / jbne __calc_in_d0__ (6 octets)
et move.w %d0,__calculator en lea calculator(pc),a1 / move.w %d0,(%a1) (4 octets).
(donc 12 octets de sauvés).

37

Je crois que je vais me faire mon propre header de programme C si ca continue smile
Un truc du genre.
xdef _main
xdef _save_sp // Label a verifier
xdef _exit_call // Label a verifier
_main:
movem.l d3-d7/a2-a6,-(a7)
move.l s7,_save_sp
bsr main
_exit_call:
movel.l _save_sp(pc),a7
movem.l (a7)+,d3-d7/a2-a6
rts
_save_sp dc.l 0
end

Et en C, un bon :
int main() {

}
grin

38


Tout d'abord, il faut reconnaître que ces directives sont assez planquées dans l'aide.

Mais bon, un programmeur sérieux devrait le voir dans l'historique de TI-GCC, et un débutant devrait jeter un coup d'oeil à toute les rubriques. Je sais, vu que moi on m'ennuie aussi avec des documentations, je suis plutôt du côté de ceux qui les écrivent :-)

Enfin, je pense que l'équipe TIGCC a eu raison d'inclure ces patchs par défaut, même si ce n'est pas flagrant. Ca permet de corriger certains problèmes, et vu que c'est d'après tout le monde difficile d'accès, personne ne les incluerait s'ils n'étaient pas par défaut. Et ça ne rajoute pas une place dingue dans chaque programme...

39

FL
a écrit : Et ça ne rajoute pas une place dingue dans chaque programme...


Malheureusement la plupart des _nostubiens pensent comme toi (ie une lib statique ou un patch qui prend pas trop de place dans un porgramme, c'est bien). Mais si par exemple on regarde ces valeurs (j'utilise TIGCC 0.94 beta 11, et j'espère ne pas m'être planté dans le calcul):
routines de gray : 948 octets
enter_ghost_space : 120 ocets
exit_support : 24 octets
save_screen : 48 octets
AMS_check : 48 octets
calc_detect : 32 octets
push/pop des registres smile : 8 octets

Si on imagine maintenant une calc avec:
10 routines de gray
5 enter_ghost_space
20 exit_support
20 save_screen
25 AMS_check (si c'est pas le cas maintenant ça le sera bientôt)
20 calc_detect (pareil, mais en enlevant les progs compatibles on-calc)
30 push/pop des registres

-> 13600 octets perdus un peu pour rien. Même si tout est compressé, à ce prix là, on peut s'offrir PreOS (en tout cas l'argument de la taille n'est plus vraiment un argument pour les nostubiens).

Je sais bien que les nombre de routines sont peut-être un peu surestimées (quoiqu'il doit bien y avoir des calcs qui ont cette tête), et que dans /C ont pourra que me taper dessus, mais une centralisation des patchs ne feraient quand même pas de mal. Enfin, moi je constate. Si on ne laisse pas le programmeur activer lui-même les patchs qu'il veut, on risque bientôt de voir des listes comme ça de plus en plus longues.
(Kevin, je veut pas de rouge dans tes posts smile Je suis pas contre le nostub de toute façon).

40

ExtendeD
a écrit : Malheureusement la plupart des _nostubiens pensent comme toi (ie une lib statique ou un patch qui prend pas trop de place dans un porgramme, c'est bien). Mais si par exemple on regarde ces valeurs (j'utilise TIGCC 0.94 beta 11, et j'espère ne pas m'être planté dans le calcul):


Bon, on y va (je recompte tout à la main, j'espère que je ne me trompe pas):

>routines de gray : 948 octets

J'ai compté 932 octets.

>enter_ghost_space : 120 ocets

J'ai compté 112 octets.

>exit_support : 24 octets

Si tu comptes le push/pop des registres à part (cf. ci-dessous), ça ne prend que 6 (code) + 4 (reloc) = 10 octets.
Et même avec le push/pop, on n'en est qu'à 18 octets.

>save_screen : 48 octets

Là, c'est bon, je trouve la même chose.

>AMS_check : 48 octets

C'est bon, je trouve 22 (code) + 26 (message) = 48 octets.

>calc_detect : 32 octets

D'où sors-tu ça? De ton implémentation optimisée? Moi, je trouve 46 (code) + 24 (message) = 70 octets dans le meilleur des cas.

>push/pop des registres smile : 8 octets

Oui.

Et il manque: "complex_main" (jbsr _main et rts au lieu de jmp _main): 2 octets (pour le rts).
Si on imagine maintenant une calc avec:
10 routines de gray
5 enter_ghost_space
20 exit_support
20 save_screen
25 AMS_check (si c'est pas le cas maintenant ça le sera bientôt)
20 calc_detect (pareil, mais en enlevant les progs compatibles on-calc)
30 push/pop des registres
-> 13600 octets perdus un peu pour rien.


Moi, je trouve 12980 (en rajoutant les 2 octets du complex_main au push/pop des registres).

Et calc_detect concerne aussi les programmes compatibles on-calc puisque c'est utilisé pour calculer CALCULATOR. Mais il faut aussi tenir compte du fait que ces programmes contiendraient de toute façon le code de détection, et même à plusieurs endroits, alors que là, il n'y est plus qu'une seule fois.
Même si tout est compressé, à ce prix là, on peut s'offrir PreOS (en tout cas l'argument de la taille n'est plus vraiment un argument pour les nostubiens).


1. Déjà, à part enter_ghost_space, tout se compresse avec ExePack, qui réduit la taille à 2/3 environ, donc on n'est plus qu'à (12980-5*112)*2/3+5*112=8840 octets.
2. Tu oublies les 50 octets minimum pris par le header des kernels dans chaque programme: ça fait déjà 50*30=1500 octets, donc la différence n'est plus que de 7340 octets.
3. Tu oublies aussi le stub des programmes pour kernel qui prend lui aussi 44 octets dans chaque programme (sauf si on n'affiche pas de message d'erreur "Kernel needed", ce qui est est vraiment une saleté): ça fait déjà 44*30=1320 octets, donc la différence n'est plus que de 6020 octets.
4. Rajoute la taille de graphlib, sans laquelle tu ne peux pas légitimement compter les routines de niveaux de gris intégrées comme du gaspillage: ça fait 2565 octets (gray4lib ne fait que rediriger vers graphlib, et genlib est encore plus grosse, donc c'est le plus petit que je pouvais compter), donc la différence n'est plus que de 3455 octets.
5. Or, PreOs prend 5317 octets, donc le _nostub a épargné 1862 octets.
Je sais bien que les nombre de routines sont peut-être un peu surestimées (quoiqu'il doit bien y avoir des calcs qui ont cette tête), et que dans /C ont pourra que me taper dessus, mais une centralisation des patchs ne feraient quand même pas de mal.


Tu veux les "centraliser" où???
Enfin, moi je constate. Si on ne laisse pas le programmeur activer lui-même les patchs qu'il veut, on risque bientôt de voir des listes comme ça de plus en plus longues.


Ça prend toujours moins de place que le mode kernel. Cf. mes calculs ci-dessus.
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é

41

lol

42

erf...
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

43

Moi aussi je vais compter grin

Je ne prends pas en compte Exepack, puisqu'on peut exepacker tout (Kernel ou nostub). Je ne tiens pas en plus du code de gestion des DLL nostub qui risque d'étre consequent aussi smile

Primo, avec tes trucs, Kevin, et compte tenu de ta remarque sur calc-detec, j'obtiens :
13750 octets.

Kernel: Moi je comptes 40 octets pour le header + 10 pour le lanceur, soit 50*30 = 1500 octets.
+ graphlib = 2565 octets
+ preos = 4045 (Soit hw1, soit hw2 patche, mais le choix est contestable).

En compant Exepack a 2/3, on obtient :
Nostub: (13750 - 5*112)*2/3 = 9354 octets.
Kernel: 1500*2/3+2565+4045= 7610 octets.

Je precise que j'ai pu faire des erreurs, et mon choix de chosir preos non-hw2tsr est aussi un choix. Mais alors on me rajoute 5 programmes nostub avec lecture de libraries. Et en plus l'anti-crash , et la protection de pertes de memoire, et la table de relocation nostub qui prend 2x fois plus alors. (30*50*2 = 3000 octets de plus smile).
...

44

Ca me fait penser que ce serait bien si on pouvait ExePack-er les librairies pour kernel.

45

Ca arrive smile Laissez moi le temps de souffler.

46

oué, ça serait pas mal !!!
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

47

smile

48

cool exepacker genlib ne ferait pas de mal!
avatar

49

oué.
(mais ça serait lent à charger... deux secondes grin)
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

50

C koi expacker!!! confus

51

la technologie ExePack est celle utilisée par TIGCC pour générer les PPG
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

52

Et celle utilisée par Einstein pour décompresser les PPG sans avoir besoin de laucher, il suffit de cliquer sur les PPG bisoo
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.