150

>comptes pas?
>skrnklib < ttstart. Certes, mais sizeof(shrnklib)>0.

je resumerai:
0<shrnklib<ttstart<<ttstart*nombre de programes utilisant un lanceur comme c'est le plus souvent le cas

avatar

151

Kevin Kofler a écrit :
Le mieux, c'est de toujours optimiser en taille. On n'est pas à 1 ms près.


Quand on a entendu ça déjà le débat s'arrête sur les librairies jeux/graphismes. Tout le monde ne fait pas que des Backgammon comme toi, Kevin, ou des jeux de plateaux comme la TICT. Ce n'est pas une critique envers ces jeux, mais certaines personnes veulent faire des jeux de plate-forme, d'action, ou autre, et parfois il est nécessaire de gagner de la vitesse pour pouvoir ajouter des fonctionnalités.

Ensuite comme PpHd le rappelle à chaque fois qu'il y a ce débat, le mode kernel permet de rajouter une couche qui permet de protéger les programmes des incompatibilités liées à ces *** d'ingénieurs de TI. Les programmes de la TICT sont chacun 15 version pour les mettre à jour tout le temps, dès qu'il y a quelque chose de nouveau, sans augmenter les fonctionnalités, juste pour les maintenir en état de marche, comme le prouve la dernière news sur le site de la TICT "I have released various maintenance updates for TICT programs". Au lieu de mettre à jour chaque programme (il faut penser que la plupart des utilisateurs n'ont pas 1 heure à passer par semaine sur leur TI, ils mettent quelques jeux, quelques programmes, quelques cours, et ça leur fait plusieurs mois), seul le kernel est à changer.
avatar
;)

152

>Ben, s'il n'y a pas de raison, c'est du fanatisme... Ce n'est pas bien.
Certes. Mais je ne l'exporte pas.

>>Entre 1 et l'infini, il y a de la marge, tu ne crois pas ? Et 2, 4 ou 5 ? Ou meme 10 ?
>Franchement, vu la taille du jeu moyen qui utilise genlib, 1 est beaucoup plus proche
>de la réalité que 10 dans le cas de genlib (comme l'a déjà dit XDanger, d'ailleurs).
Et 2 ?

>>Pas forcement. Elle peut etre tres bien codee mais n'avoir qu'un seul fichier objet.
>Non. C'est une erreur de conception que d'utiliser un seul fichier objet pour une librairie statique. Mais il est vrai j'aurais probablement dû être plus précis et mettre "conçue correctement" plutôt que "codée correctement".
On peut ne pas pouvoir faire autrement. Surtout si on fait du self modifyng code pour accellerer les fonctions.

>>Quand je pense qu'il y a 6 appels de routines successifs (3 par vous, 3 par AMS)...
>>qui ne font juste que changer la position des parametres. C'est halucinant, meme si
>>ces routines sont bien lentes.
>Pour les appels explicits, il y a un seul wrapper dans TIGCCLIB (__BC).
>Pour les appels implicits, il y a 3 appels, mais un est un "sibling call" (un bra, pas un >bsr), donc ce n'est pas un vrai appel de fonction. Et les 2 appels à l'intérieur de >TIGCCLIB sont PC-relatifs.
>Et donc: oui, fadd(x,y) donnera du code légèrement plus efficace que x+y si x et y sont des nombres à virgule flottante.
De toute facon, c'est si lent.

>>Je voudrais connaitre les fois ou ca pourrait etre plus grand, selon toi.
>Par exemple dans le cas où une cinquantaine de fonctions est implémentée en termes
>d'une même fonction de base. Mais ce ne sont que des cas exceptionnels.
Tout a fait.

>Certes, mais sizeof(shrnklib)>0.
Oué ! top

>>J'ai optimise en vitesse lorsque c'etait necessaire. En taille, ailleurs.
>>Il me semble que c'est le mieux non ?
>Le mieux, c'est de toujours optimiser en taille. On n'est pas à 1 ms près.
1ms par unite graphique, ca peut faire beaucoup a la fin.

>>Je ne comprends pas ta reflexion. Enfin si je la comprends, mais je ne comprends
>pas pourquoi tu me reponds cela.
>C'est un exemple pour montrer qu'une librairie statique bien optimisée en taille ne
>prend pas nécessairement plus de place qu'une librairie dynamique qui n'est pas
>optimisée en taille au maximum, même si on l'utilise en même temps dans 2
>programmes différents, contrairement à ce que tu avais dit.
Ca me parait evident ton affaire. Enfin bon.

>>Tu n'as jamais fait de programmation oriente temps reel a ce que je vois.
>Vu qu'on n'a pas besoin d'effacer l'écran très souvent, le nombre de fps ne changera
>pratiquement pas en fonction de la vitesse de la routine d'effaçage de l'écran.
Mais 5% c'est deja ca de gagner !

>>Pourquoi ne resete-t-il pas tout de suite alors ?
>>Pourquoi afficher une fenetre suceptible de faire tout planter irremediablement ?
>Là, tu n'as pas tord. Mais au moins il fait l'effort de détecter la condition
>problématique.
Je croyais que tu reseter ineluctablement ta calc.
Et ca me parait insuffisant aussi.

>>Parce que le format nostub est trop limite. Le format kernel est bien plus evolue et flexible.
>Traduction: le format kernel est bien plus complexe et lourd.
Traduction: Flexible == lourd.

>Et puis il y a quoi qui est plus flexible? Tout ce qu'un programme kernel peut faire, un
>programme _nostub peut le faire également. La preuve: le kernel est un programme
>_nostub.
Oui mais c'est plus facile a faire. Et on peut intercepter les appels.

>>1. Le programme ne devient plus "autonome". Il y a 2 fichiers.
>Il est "autonome" dans le sens qu'il peut être lancé directement sans qu'il y ait besoin d'installer quoi que ce soit avant.
Donc tu dois dire aussi que certains fichiers kernels sont autonomes (auto-installation).

>>2. Combien de personnes ont grace a cela, plusieurs lanceurs de fichiers type 'ttstart' ? Des milliers ? Surement.
>Et le problème est où? Ils ont le droit de trouver ça plus pratique. Si tu n'aimes pas, personne ne t'empêche de n'utiliser que ttstart ou TICTEX.
Le problème ? Une perte de place manifeste.

>>Je n'ai jamais pretendu que le kernel etait pour les noeudnoeuds.
>C'est une des choses que je critique le plus. Ça représente une attitude élitiste et un manque de respect pour l'utilisateur.
As-tu deja eu des utilisateurs t'avertir par mail de leur reponse ?
Il faut EDUQUER les utilisateurs pour qu'ils fassent un MINIMUM.
Ensuite, reste le debat sur comment les eduquer.

>> Mais je suis sur qu'on peut trouver des personnes capables de vouloir lancer le PPG
directement.
>Évidemment. Il y en a aussi qui ne savent pas lancer un programme BASIC.
Oué !

153

Kevin Kofler a écrit :
Ne t'inquiète pas, j'édite rarement des fichiers on-calc. (Je ne fais presque plus de BASIC.) Et je n'utilise cette précaution-là que si je n'ai pas une copie récente sur PC, ce qui est rarement le cas.

Mais les autres ? Et GTC ?

Bah, si tu appelles tios::EM_twinSymFromExtMem, c'est normal que ça ne compile pas pour Fargo. grin
Mais beaucoup de programmes Fargo peuvent être compilés pour DoorsOS et compatibles avec pas ou très très peu de changements.

Non. Y'a aussi SYM_ENTRY.sizeof qui n'est pas defini dans Fargo, par exemple.
La limite des 32K aussi.
Des fonctions manquantes aussi. DrawCharXY

C'est de l'émulation parce que les fonctionnalités compatibles sont implémentées en grande partie en temps d'exécution.

1. "Implantées".
2. Heu... Dans ce cas, on peut dire que AMS 2.05 est une emulation d'AMS 1.01. Tu t'enfonces la.

Et même si le mode kernel n'est pas tout à fait de l'émulation Fargo (parce que, comme tu l'as fait remarquer, ce n'est pas compatible de manière binaire), c'est de l'émulation d'une plateforme imaginaire qui lui ressemble beaucoup. C'est pour ça que je parle d'émulation Fargo. Et je dis que c'est de l'émulation d'une plateforme parce que le kernel utilise son propre format d'exécutables, pas celui du système d'exploitation, et que c'est une plateforme imaginaire parce qu'il n'existe pour l'instant (en attendant la sortie officielle de Pedrom) aucun système d'exploitation qui utilise ce format d'exécutables nativement.

Bin. Et les executables windows 3.1, de son temps ?
Ils etaient des executables d'une plateforme imaginaire (Rappel Windows 3.1 n'est pas un OS) ?
Soyons serieux !

N'empêche que ça montre que PlusShell avait été écrit avec comme but la compatibilité avec Fargo.

On s'ecarte du sujet. Et PlusShell oui, si ca te fait plaisir.
Les versions suivantes non. (Par exemple, _exit qui n'est pas supporte par fargo).

Pas du tout. Ça dépend de si:
sizeof(librairie plus petite) + sizeof(librairie plus grande compressée par la librairie plus petite) < sizeof(librairie plus grande non compressée)
ou pas. Je ne pense pas que ça ait de bonnes chances d'être le cas.

Qui te permets de l'affirmer ? Il faut tester !

Lui aussi jamais sorti de l'état de "Demo Release". genlib m'a l'air de ne pas être une librairie pour jeux, mais une librairie pour bêtas éternelles. grin

Que veux-tu ? Je n'aime pas les versions 1.00 ultra-bugguees.
Et je pardonne aux versions <1.0x leurs bugs.

C'est du vaporware parce que ce n'est pas sorti officiellement.

De facon publique, non. Mais peut-on qualifier ca de vaproware, une distribution restreinte ?

rotfl
"ne consommant pas de ressources pour rien" ne veut pas forcément dire "dépassé" ni "qui manque de fonctionnalités". Le DOS est dépassé et manque de fonctionnalités par rapport à Windows ou Linux. Le _nostub n'est pas du tout dépassé et ne manque pas du tout de fonctionnalités par rapport aux alternatives (DoorsOS, FlashApps).

Tu peux ecrire en DOS TOUTES les fonctionnalites qui te manquent pour faire un windows like ou un linux like.

154

Kevin Kofler a écrit :
confus what
Il est lourd en quoi??? Il est très léger! C'est le format kernel qui est lourd!

Mauvais mot.
Plutot imparfait, redondant.

Ben, Sebastian et moi, on travaille sur un linkeur, donc ça nous concerne quand-même un peu. smile
Personnellement, j'avais très envie de supprimer le support pour le format kernel avec TIGCC 0.95. Mais pour te calmer: Sebastian l'a déjà implémenté maintenant.

Depuis quand tu penses au confort du programmeur ?

Si, le dérelogement peut toujours être une source d'ennuis supplémentaire. Je retiens qu'il vaut mieux avoir une source d'ennuis possible de moins qu'une de plus.

Exemples ?

Tu n'as peut-être pas tord, mais le "startup code" de TIGCC n'est lui aussi utilisé que pour les programmes en C. smile

Oui.

Je te signale que c'est déjà nettement mieux que ce qui est fait d'habitude dans les compilateurs C sur PC: ils incluent toujours tout le "startup code", même celui qui ne sert à rien, et il y a rarement un moyen de le désactiver. Nous, on vous laisse le choix de désactiver notre "startup code".

J'aurais aime : une fonctionnalite == un define (ou plutot un include car les include contrairement aux define ne sont pas soumis aux aleas de l'ecriture).
Plutot qu'une fonctionnalite == un retrait parfois.

La logique est que, si c'est un ajout indispensable pour éviter un plantage dans certains cas, il est mis par défaut. J'aurais d'ailleurs mis SET_FILE_IN_USE_BIT, et peut être aussi EXECUTE_IN_GHOST_SPACE, par défaut également puisqu'ils remplissent aussi ce critère. Mais Sebastian était contre pour la raison que ces 2 directives prennent beaucoup de place et ne sont nécessaires que rarement. Quant au support pour exit et fonctions liées, il est mis par défaut parce qu'il ne prend presque pas de place et qu'il est nécessaire pour faire fonctionner certaines fonctions de la librairie C standard.

C'est pas illogique non plus c'est vrai. Mais le porbleme des erreurs de detection des erruers de syntaxe ?
Et aussi, j'aurais aime que par defaut, ca compile pour 89/92+/v200.

Il n'était pas nécessaire de corriger ça dans le kernel parce que c'est déjà corrigé dans TIGCC.

Et les programmes deja existant ? Ils font comment ?

Je considère le fait que le Doors Explorer ne marque pas sa variable comme en utilisation (cachée) lui-même comme un bogue grave, vu que ça permet les appels récursifs, qui peuvent facilement être source d'ennuis. TICTEX a toujours marqué ses variables comme étant en utilisation. Bref, les explorateurs codés correctement n'ont jamais été victimes du problème en question.

Tu detournes le probleme la. Ce n'est pas bien de boter en touche.

Il suffit de rajouter le "startup code" en question au début, et de rajouter l'offset dans les entrées de la table des relogements. Un patch pour cela est tout à fait faisable. Si suffisamment de personnes y voient un intérêt réel, je peux faire un "startup code adder" automatique, capable de rajouter automatiquement des patches comme SET_FILE_IN_USE_BIT, EXECUTE_IN_GHOST_SPACE, ENABLE_ERROR_RETURN, vérification de la version de AMS et du modèle et même SAVE_SCREEN.

Ca sera toujours bien plus complique que de le faire en kernel.

En fait, il n'y en a pas tellement. Certaines étaient déjà là avant (SAVE_SCREEN, EXECUTE_GHOST_SPACE qui est géré par h220xTSR). Un qui me vient à l'esprit: Vérification du modèle. Il y a d'autres kernels qui ne font pas ça. TeOS par exemple. Mais bon, il est vrai que tu n'as pas vraiment copié ça sur nous. Et aussi l'émulateur Line1111.

SaveScreen: C'est unios qui l'a mis pour faire plaisir a PenPen.
GhostSpace: Inutile en kernel.
Verification du modele: C'est normal dispo depuis la 2nd version du kernel...
Line1111: Bien avant vous !

C'est encore cette attitude-là. Nous sommes pour la compatibilité, nous. Je trouve que c'est du manque de respect pour l'utilisateur de demander un kernel très spécifique. Il n'y a pas de fonctionnalités vraiment indispensables parmi celles que tu as rajoutées. (Je t'ai déjà dit ça plusieurs fois.)

Mais pour toi il n'y a pas de raisons au kernel, donc ton avis n'a que peu de valeur.
Et je ne vois pas en quoi c'est un manque de respect...
Pour l'instant, nous maintenons la compatibilité avec tous les kernels, et nous ne rajoutons rien qui est incompatible avec les anciens kernels.

Ben un MIN_KERNEL/NO_KERNEL_DETECT assurerait a la fois la compatibilite et les ajouts, non ? grin

155

Kevin Kofler a écrit :
Encore des trucs du côté du linker. Personnellement, je déteste ça. Et à l'époque, on n'avait pas de système de linking auquel on peut rajouter des trucs du genre facilement. Maintenant, avec le nouveau linker de Sebastian, c'est peut-être faisable. Tu peux le lui suggérer si tu veux.

Moi non. J'aime bien que le nostub traine ses lacunes comme un boulet grin

Mais ça aurait été très difficile à implémenter, surtout avec l'infrastructure de l'époque.

Petits joueurs. Tout le code en mode kernel aurait pu etre reemploye pour le faire.

Tiens, tu viens de dire que les librairies dynamiques pour le partage du code sont un désavantage là. smile C'est la première fois que je t'entends dire cela. grin

Je m'etais place de ton point de vue, pas du mien.

Parce qu'il n'y avait:
- pratiquement pas de ROM_CALLs

A la rigueur. Mais les rom_calls c'est pas genial. Elles sont en general pas bien concues.
Au niveau SDK.

- pas de linker supportant les librairies statiques

Tu crois que c'etait difficile pour lui de rajouter ce support grin
La premiere version supportait deja l'importation de plusieurs fichiers objets separees !

Les librairies dynamiques étaient donc la seule solution pour rajouter des fonctions indispensables. Maintenant:
- les ROM_CALLs sont exportés et documentés.
- on a un linker supportant les librairies statiques.
Donc les librairies dynamiques ne sont plus nécessaires.

Les romcalls n'offrent pas toutes les fonctionnalites necessaires.
Les libs statiques existaient depuis tres longtemps avec Fargo.

J'ai déjà expliqué plusieurs fois ce que je voulais dire. Et ici, j'ai bien dit "émulation du fonctionnement de Fargo", pas "émulation de Fargo". Je pense que ce que je voulais dire est clair ici.
Et bonne chance pour l'émulation binaire de Fargo. grin Tu en auras besoin. smile

Tu crois que c'est si difficile ? Je ne penses pas.
J'ai deja plus ou moins fait ca car le nouveau format kernel sera ...
du fargo remanie. Plus de fichiers ASM, mais des fichiers PRGM grin

Ah, parce que ça arrive si souvent que ça que TI sort une nouvelle variante de la
machine avec les touches à un endroit différent. roll

Ca arrive. La preuve.

Il n'y a eu que 2 telles mises à jour depuis la sortie de la TI-92+:
- TI-89 (1998). Et il n'aurait pas suffi de changer les touches dans ta libraire pour que les programmes soient compatibles, vu qu'il y a aussi l'écran qui est plus petit.
- Voyage 200 (2002, 4 ans plus tard).
Statistiquement, la prochaine mise à jour avec un changement important des touches n'est à attendre qu'en 2006.

Oui mais je suis pret moi smile

Mais alors là pas du tout. Avec un fichier de données de type personnalisé, tu obtiens rapidement un pointeur sur les données (avec les ROM_CALLs de vat.h - ça prend 4 lignes de C avec les vérifications de non-nullité), et tu peux faire tout le reste avec des x(an). Si tu n'arrives pas à te rappeller des offsets, utilise des equates. Tu as aussi besoin d'equates pour les "libs read-only" de toute façon.

1. Ca prend : 0 lignes en C et en ASM.
2. Ca s'eneleve tout seul lorsque tu n'importes plus rien.
3. Pas besoin d'EQUate pour les libs en RO.
4. Ca consomme aucun registres.

Tu appelles ça "transparent" d'avoir des fichiers de données avec une extension "ASM"? Pas moi. L'extension "ASM" est faite pour les programmes lançables directement. Les DLLs kernel sont déjà un abus du format, et si on commence par les utiliser pour des fichiers de données, c'est encore pire.

Je connais ton point de vue. Mais c'est trop tard. Elles sont deja lancees dans la nature.
Pourrais-tu développer? Parce que là, je ne vois pas du tout pourquoi on en aurait besoin.

Pretraiter un grand Back-Buffer que l'on affichera apres en clippes.

156

Kevin Kofler a écrit :
Soit tu utilises memmove, soit tu écris une valeur réservée par dessus. Soit encore tu fais 2 tableaux: un tableau de données et un tableau de pointeurs, et tu laisses les données dans le tableau de données, et tu fais un memmove (ou un remplacement par NULL) dans le tableau des pointeurs.

C'est loin d'etre aussi simple !

Je ne vois pas le rapport avec la phrase que tu as citée. Je parlais de structures dans la phrase citée, pas de tableaux. Mais j'ai déjà répondu ci-dessus.

Moi aussi.

Je connais suffisamment le système de handles des TI-89/92+/V200 pour savoir que les longues listes chaînées sont totalement inadaptées à cette plateforme.

Oui. Tout a fait. C'est le pourquoi de genalib.

Ben, moi je présuppose que le programmeur est une personne intelligente, renseignée et diligente. smile Toi, tu as l'air de présupposer cela même de l'utilisateur, donc le fait que tu ne présupposes pas cela du programmeur m'étonne un peu.

Tout est une question de niveaux et de mesure. Ce n'est pas si simple, il me semble de se renseigner la dessus.

C'est pire qu'un ajout au format, c'est un ajout du côté du linkeur.

Pourquoi pire ?

Tu peux en parler à Sebastian. Le problème est que ça ne marche qu'avec les constantes. Mais pour la plupart de compat.h, ça devrait en effet marcher.

Oui ca ne marche qu'avec les constantes. Et oui c'est utile.

Évidemment, on peut aussi utiliser _rowread directement, mais c'est compliqué, alors que _keytest est très simple.

Mais lourd.

Ben, il y a quand-même une solution simple: on ne change pas les noms, ou alors on supporte les 2 (un #define en C ou un equate en assembleur suffisent pour cela).

Certes. Mais tu solutionnes pas vraiment le probleme.

DLL = librairie dynamique. C'est la même chose. Même si on sous-entend souvent "DLL" = DLL _nostub et "librairie dynamique" = DLL kernel, ce n'est pas strictement compris dans le sens des mots.

DLL = WINDOWS = MERDE.
Non j'aime vraiment pas ce mot de DLL.

Parce que c'est un abus du format. Et parce qu'une DLL _nostub est toujours copiée en RAM (il n'y a pas de flag "read-only"), et qu'il serait donc vraiment stupide de faire cela.

C'est un fichier lies dynamiquement aux programmes. Donc voila. Et tu reponds toi meme aux deux questions.

Ben, alors, comment l'implanterais-tu (sans changer le linker radicalement - ce n'était pas possible de manière pratique quand le format DLL _nostub a été introduit)?

Utiliser les LIBS kernels et passer en mode kernel only grin

Si on ne lit pas la documentation ou si on s'appelle TiMad et veut faire exprès d'embêter le monde, alors oui. Mais sinon, non. La documentation dit clairement qu'il ne faut pas faire ça.

On n'est pas obblige de suivre la documentation.

Mais je me dis quand-même qu'on aurait vraiment dû mettre la restriction que le programme et la DLL doivent tous les 2 être >32 KO. Sebastian et Zeljko étaient contre, malheureusement.

Difficile a faire. Et ca ne resoud pas le probleme.

On ne t'accuse pas d'avoir abusé du format, mais juste de ne pas avoir compris l'intérêt. Tu n'as pas l'air d'avoir lu la documentation. Et puis, il faudra m'expliquer ce qui est "bâtard" dans le format.

J'ai compris l'interet. Et je dis que vos moyens sont indaptes a vos interets.

157

>Les programmes de la TICT sont chacun 15 version pour les mettre à jour tout le temps, dès qu'il y a quelque chose de nouveau, sans augmenter les fonctionnalités, juste pour les maintenir en état de marche, comme le prouve la dernière news sur le site de la TICT "I have released various maintenance updates for TICT programs".
Ca n'est pas notre faute si des trucs sont breakés par TI...
Et puis, je voudrais t'y voir, toi, à updater tous ces programmes, avec aussi peu de temps...

> Moi non. J'aime bien que le nostub traine ses lacunes comme un boulet
Pitoyable. Même nous, qui n'aimons pas le kernel, te faisons des suggestions (notamment pour l'amélioration de ces RAM_CALLs de fonts qui sont actuellement implémentés n'importe comment: très lent, pas sûr...)
avatar
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Co-admin de TI-Planet.

158

pssssssssssssssss qu'est ce qu'on entend pas comme conn***...

Genre les dll.. on en fait ce qu'on veut.. si ca vous plait pas tant mieux!!
De toute maniere si je devais sortir une nouvelle version de XLib se serait pas dans ce format la ... (quoi que si pour vous faire ch***)

heu Xlib est de loin plus facile que Extgraphlib...
comparons les codes:
XOn()
a=XNewGPlan();
XGPlanc(a);
XGMSprite(1,1,blabla);
XWait(Enter);
XOff();

equivalent:
if (GrayOn())
{
if (a=malloc(2*LCD_SIZE))
{

afichietrucmuchsprite(1,1,mon sprite,16,a);
afichietrucmuchsprite(1,1,mon sprite,16,a+LCD_SIZE);// scuse connais pas ces fonctionssmile mais il me semble qu'il n'y a pas de fonction maskée... de toute maniere là n'est pas le prob..
free(a);
}

GrayOff();
}

heu .. ouai vous etes bien braves....(XVersion 1.0 compatiblesmile )
XLib v1.00 Powerrrrrrrrrrrrrrrrrrrr!

159

>Pourquoi d1 ? Parce que le trap #1 le détruit, je suppose.

Je voulais dire : "alors que le trap #1 ne le détruit pas " smile

160

grin

Kevin > C'est de toute façon le seul compilateur C sérieux disponible pour TI-89/92+/V200 actuellement.

Non. Il y aura bientôt un compilateur sérieux. TIGCC est un compilo TRES sérieux wink
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.

161

Uther Lightbringer
a écrit : Attends la sortie de GTC avant de supprimer le support du Kernel s'il te plait.

De toute façon, il restera au moins pour la version 0.95, et probablement encore beaucoup plus longtemps. (Maintenant qu'il est supporté par le nouveau linker, on n'a plus vraiment de raison de le supprimer.)
De toute facon si jamais il sort une version de TIGCC sans kernel je garderai l'ancienne.

Si tu veux garder tous les bogues, tant pis pour toi.
C'est quand même trop si d'ici la des programmeur ont disparu, on est bon pour convertir les programme a coup d'éditeur hexadécimal voire completement dans la merde si les modifications sont plus importantes. et puis ca peut serir a corriger des bogue aussi

Je me demande si on ne devrait pas mettre TIGCCLIB sous LGPL. Ça obligerait les programmeurs de faire en sorte qu'on puisse recompiler/relinker le programme pour mettre à jour TIGCCLIB, c'est-à-dire de distribuer soit les sources, soit les fichiers objet (*.o). Comme ça, le problème de la disparition des programmeurs serait règlé.

Le problème est que pour que la mise à jour avec les fichiers .o seuls soit vraiment effective, il faudrait remplacer nos macros par des fonctions, et ça pessimiserait pas mal le code. sad Ce problème concerne d'ailleurs aussi les librairies dynamiques. Il n'y a pas mal de macros dans les headers de genlib (même dans le header assembleur).

Et c'est la faute des programmeurs s'ils ne distribuent ni leurs sources ni leurs fichiers objet. Ce n'est pas la faute du système des librairies statiques, mais du fait que les programmeurs ne s'y adaptent pas.
Tu ne fais pas beaucoup de jeux avancés, moi je vais sans doute m'en servir pour un projet que j'ai encore au fond d'un placard. Ca peut par exemple servir a faire des scrollings simplement(dans certain cas particuliers).

Mais on peut toujours exprimer ces mêmes scrollings en utilisant un écran de taille normale et des routines de sprites clippées.
Vu le nombre de question auquel tu réponds tu devrais savoir que ce n'est pas le cas

grin
je resumerai: 0<shrnklib<ttstart<<ttstart*nombre de programes utilisant un lanceur comme c'est le plus souvent le cas

C'est le plus souvent le cas pour ceux qui trouvent ça plus pratique et qui s'en fichent de la consommation d'archive. Mais dans ce cas, c'est leur problème, et il ne faut pas compter ça dans le décompte de la taille (vu que ce n'est pas nécessaire pour utiliser le programme).
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é

162

BiHi
a écrit : Quand on a entendu ça déjà le débat s'arrête sur les librairies jeux/graphismes. Tout le monde ne fait pas que des Backgammon comme toi, Kevin, ou des jeux de plateaux comme la TICT. Ce n'est pas une critique envers ces jeux, mais certaines personnes veulent faire des jeux de plate-forme, d'action, ou autre, et parfois il est nécessaire de gagner de la vitesse pour pouvoir ajouter des fonctionnalités.

Même dans un jeu de plateau, on n'est pas à 1 ms près. Si ton Mario ou Sonic met 1 ms de plus pour un saut, personne ne le remarquera.

Et d'ailleurs même un jeu de plateforme très lent, par exemple un Mario en BASIC, peut être jouable. (J'ai essayé personnellement.)
Ensuite comme PpHd le rappelle à chaque fois qu'il y a ce débat, le mode kernel permet de rajouter une couche qui permet de protéger les programmes des incompatibilités liées à ces *** d'ingénieurs de TI. Les programmes de la TICT sont chacun 15 version pour les mettre à jour tout le temps, dès qu'il y a quelque chose de nouveau, sans augmenter les fonctionnalités, juste pour les maintenir en état de marche, comme le prouve la dernière news sur le site de la TICT "I have released various maintenance updates for TICT programs". Au lieu de mettre à jour chaque programme (il faut penser que la plupart des utilisateurs n'ont pas 1 heure à passer par semaine sur leur TI, ils mettent quelques jeux, quelques programmes, quelques cours, et ça leur fait plusieurs mois), seul le kernel est à changer.

C'est n'importe quoi. Déjà, je n'ai vu aucun programme TICT qui ait eu 15 "maintenance releases" ou plus seulement pour la compatibilité avec les nouvelles versions de AMS. Il n'y en avait certainement pas plus que 3 ou 4, et cela pendant des années. Et ensuite, les mises à jour les plus récentes étaient nécessaires parce que que le lanceur personnalisé ne marchait plus. Ça concerne exactement de la même manière les programmes pour kernel compressés avec ExePack. Les programmes _nostub eux-mêmes n'ont présenté aucune incompatibilité depuis la sortie de AMS 2.04, et une seule depuis la sortie de AMS 2.00, qui:
- se présente très rarement. (Un seul programme était concerné.)
- est due à la suppression de OSVRegisterTimer et OSVFreeTimer par AMS
- concerne aussi le mode kernel. Les kernels n'ont rien fait pour résoudre ce problème. Cette histoire de "il suffit de mettre à jour le kernel" est un mensonge courant, mais quand-même un mensonge. C'est très loin de la réalité.
- peut être résolue par une simple recompilation sans aucun changement des sources
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é

163

> Si ton Mario ou Sonic met 1 ms de plus pour un saut, personne ne le remarquera.
C'est n'importe quoi. Il faut multiplier ta milliseconde par le nombre de frames affichées pendant le saut.

> Et d'ailleurs même un jeu de plateforme très lent, par exemple un Mario en BASIC, peut être jouable.
C'est n'importe quoi. C'est beaucoup plus agréable à jouer quand c'est rapide. Tu crois que CounterStrike, par exemple, se vendrait s'il était à 2 FPS triso Ca serait insupportable à regarder.
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.

164

Thibaut a écrit :
> Si ton Mario ou Sonic met 1 ms de plus pour un saut, personne ne le remarquera. C'est n'importe quoi. Il faut multiplier ta milliseconde par le nombre de frames affichées pendant le saut.

Parce que tu penses qu'en optimisant en taille, on pert une milliseconde entière par frame? On est plutôt dans l'ordre de grandeur de quelques microsecondes par frame.
> Et d'ailleurs même un jeu de plateforme très lent, par exemple un Mario en BASIC, peut être jouable. C'est n'importe quoi. C'est beaucoup plus agréable à jouer quand c'est rapide.

J'ai dit "jouable", pas "le plus agréable à jouer". smile
Tu crois que CounterStrike, par exemple, se vendrait s'il était à 2 FPS triso Ca serait insupportable à regarder.

CounterStrike n'est pas un jeu de plateau. C'est un jeu multijoueur où le temps de réaction compte beaucoup. C'est totalement différent.

Et puis, pour n'importe quel jeu, au-delà d'une dizaine ou au maximum une vingtaine de FPS (au-delà de 10 FPS selon Thomas Nussbaumer), plus personne ne remarque la différence.
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é

165

blablablab...
N'importe quoi... ca devient pathetique...
XLib v1.00 Powerrrrrrrrrrrrrrrrrrrr!

166

As-tu des arguments qui te permettent de dire que c'est du "blablablab" et du "n'importe quoi"???
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é

167

bein deja tu dis que Extgraphlib est plus simple d'utilisation alors que c'est faux...
XLib v1.00 Powerrrrrrrrrrrrrrrrrrrr!

168

Euh... pour le fps, je t'arrètes tous de suite. GBS sur 92+ ou sur 89, la différence de vitesse, tu la sent plus que nécessairesgrin
45-46fps sur 89 contre une dizaine de moins sur 92+ (35-36, donc).
avatar
Membre fondateur de la Ligue Anti-MacIntoc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Un expert est quelqu'un qui en sait de plus en plus sur de moins en moins
de choses, jusqu'à ce qu'il connaisse absolument tout à propos de rien.

169

PpHd a écrit :
>Ben, s'il n'y a pas de raison, c'est du fanatisme... Ce n'est pas bien. Certes. Mais je ne l'exporte pas.

rotfl
On ne dirait pas en te lisant. grin
>>Entre 1 et l'infini, il y a de la marge, tu ne crois pas ? Et 2, 4 ou 5 ? Ou meme 10 ?
>Franchement, vu la taille du jeu moyen qui utilise genlib, 1 est beaucoup plus proche
>de la réalité que 10 dans le cas de genlib (comme l'a déjà dit XDanger, d'ailleurs). Et 2 ?

Peut-être, mais genlib prend plus de 2 fois plus de place que les fonctions de TIGCCLIB (gray.h) et ExtGraph utilisées habituellement.
>>Pas forcement. Elle peut etre tres bien codee mais n'avoir qu'un seul fichier objet.
>Non. C'est une erreur de conception que d'utiliser un seul fichier objet pour une librairie statique. Mais il est vrai j'aurais probablement dû être plus précis et mettre "conçue correctement" plutôt que "codée correctement". On peut ne pas pouvoir faire autrement. Surtout si on fait du self modifyng code pour accellerer les fonctions.

Au lieu de mettre un pointeur en auto-modifiant, tu le prélèves dans un paramètre comme le fait ExtGraph. Ce n'est pratiquement pas plus lent. Et ça donne du code plus petit dans ta librairie.
>>J'ai optimise en vitesse lorsque c'etait necessaire. En taille, ailleurs.
>>Il me semble que c'est le mieux non ?
>Le mieux, c'est de toujours optimiser en taille. On n'est pas à 1 ms près. 1ms par unite graphique, ca peut faire beaucoup a la fin.

Mais une simple optimisation de taille ne fera certainement pas perdre 1 ms par unité graphique.
>>Tu n'as jamais fait de programmation oriente temps reel a ce que je vois.
>Vu qu'on n'a pas besoin d'effacer l'écran très souvent, le nombre de fps ne changera
>pratiquement pas en fonction de la vitesse de la routine d'effaçage de l'écran. Mais 5% c'est deja ca de gagner !

Tu fais trop de calculs de vitesse dans un ordre de grandeur qui est de toute façon négligeable. Déjà, tes 5% sont très probablement une surestimation, et puis on n'est pas à 5% près.
>>Pourquoi ne resete-t-il pas tout de suite alors ?
>>Pourquoi afficher une fenetre suceptible de faire tout planter irremediablement ?
>Là, tu n'as pas tord. Mais au moins il fait l'effort de détecter la condition
>problématique. Je croyais que tu reseter ineluctablement ta calc.

Moi oui, mais pas tout le monde qui utilise un anti-crash.
Et ca me parait insuffisant aussi.

Je suis sûr que Greg Dietsche accepte les conseils d'amélioration. Maile-lui. smile
>>Parce que le format nostub est trop limite. Le format kernel est bien plus evolue et flexible.
>Traduction: le format kernel est bien plus complexe et lourd. Traduction: Flexible == lourd.

Non. Ce que tu toi, tu appelles "flexible" est tout simplement lourd. J'ai déjà dit dans ce topic pourquoi le format kernel est en fait moins flexible que le format _nostub.
>Et puis il y a quoi qui est plus flexible? Tout ce qu'un programme kernel peut faire, un
>programme _nostub peut le faire également. La preuve: le kernel est un programme
>_nostub. Oui mais c'est plus facile a faire. Et on peut intercepter les appels.

On peut aussi intercepter les appels à un programme _nostub. Il suffit de modifier un peu le hook du trap #11 de h220xTSR. Tu peux même rajouter un "trampoline" en changeant quelques adresses, ce qui te permet de détecter aussi quand le programme a fini l'exécution.
>>1. Le programme ne devient plus "autonome". Il y a 2 fichiers.
>Il est "autonome" dans le sens qu'il peut être lancé directement sans qu'il y ait besoin d'installer quoi que ce soit avant. Donc tu dois dire aussi que certains fichiers kernels sont autonomes (auto-installation).

Mais c'est un hack. Si un programme non-TSR installe un TSR, c'est un hack. C'est même un leak de mémoire.
>>2. Combien de personnes ont grace a cela, plusieurs lanceurs de fichiers type 'ttstart' ? Des milliers ? Surement.
>Et le problème est où? Ils ont le droit de trouver ça plus pratique. Si tu n'aimes pas, personne ne t'empêche de n'utiliser que ttstart ou TICTEX. Le problème ? Une perte de place manifeste.

Je répète: Si tu n'aimes pas, personne ne t'empêche de n'utiliser que ttstart ou TICTEX. Si d'autres utilisateurs préfèrent l'autre solution, c'est leur problème, et tu n'as pas à t'en mêler. Les programmes compressés avec ExePack permettent à l'utilisateur de choisir la solution qu'il préfère.
>>Je n'ai jamais pretendu que le kernel etait pour les noeudnoeuds.
>C'est une des choses que je critique le plus. Ça représente une attitude élitiste et un manque de respect pour l'utilisateur. As-tu deja eu des utilisateurs t'avertir par mail de leur reponse ?

Désolé, je n'ai pas compris ta question là.
Il faut EDUQUER les utilisateurs pour qu'ils fassent un MINIMUM. Ensuite, reste le debat sur comment les eduquer.

C'est ton point de vue. Le mien est qu'il est tout simplement impossible d'"éduquer" les utilisateurs, et qu'un programme doit prévoir toutes les c*nneries qu'un utilisateur pourrait faire. Un programme bien utilisable est un programme qui peut être utilisé même par le pire des idiots.
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é

170

PpHd
a écrit : Mais les autres ?

Ils n'ont pas leur archive pleine à 95% ou plus normalement. smile
Et GTC ?

Les TI-89/92+/V200 ne sont pas une bonne plateforme "host" (par opposition à "target") pour le développement en C.
Non. Y'a aussi SYM_ENTRY.sizeof qui n'est pas defini dans Fargo, par exemple. La limite des 32K aussi.

Mais c'est tout dans l'autre sens que dans celui duquel je parle. smile
Des fonctions manquantes aussi. DrawCharXY

Il y a un header de compatibilité Fargo qui définit tios::.DrawCharXY equ userlib::DrawCharXY (qui n'est qu'un wrapper autour de DrawChar).
2. Heu... Dans ce cas, on peut dire que AMS 2.05 est une emulation d'AMS 1.01. Tu t'enfonces la.

Ce n'est pas une émulation, mais de la compatibilité antérieure, parce que c'est le même format.
Bin. Et les executables windows 3.1, de son temps ? Ils etaient des executables d'une plateforme imaginaire (Rappel Windows 3.1 n'est pas un OS) ?

Windows 3.1 est un OS complet implémenté par dessus un autre OS. La différence entre Windows 3.1 et le format kernel est qu'un programme Windows 3.1 n'appelle (normalement) pas les appels DOS alors qu'un programme kernel TI-89/92+/V200 appelle les ROM_CALLs de AMS.
On s'ecarte du sujet. Et PlusShell oui, si ca te fait plaisir.

Ben, PlusShell et les premières bêtas de DoorsOS sont quand-même les premiers kernels, et donc la motivation derrière ces 2 kernels est la motivation derrière le système de kernels en général.
Les versions suivantes non. (Par exemple, _exit qui n'est pas supporte par fargo).

Ce sont des ajouts d'ordre mineur. Ça ne change rien à l'idée de base derrière le format.
Qui te permets de l'affirmer ?

Les taux moyens de compression de ttpack et shrnklib. La taille est multipliée par 2/3 environ, ce qui n'est pas suffisant pour que l'inéquation soit vraie. Et les librairies plus petites auront très probablement un taux de compression encore moins favorable.
Il faut tester !

Ben, fais-le alors.
Que veux-tu ? Je n'aime pas les versions 1.00 ultra-bugguees.

Solution: corriger les bogues. smile Les versions 1.00 des logiciels de la TICT ne sont pas ultra-bogués. Je ne dis pas qu'il n'y a pas de bogues (un logiciel sans bogues est quelque chose de pas très réalisable en pratique), mais entre "aucun bogue" et "ultra-bogué", il y a une marge.
Et je pardonne aux versions <1.0x leurs bugs.

Si seulement tout le monde faisait ça... Avec le nombre de flames en public qu'on a eu au sujet de bogues dans TIGCC 0.9x, on est très loin de ça. sad
De facon publique, non. Mais peut-on qualifier ca de vaproware, une distribution restreinte ?

Si c'était annoncé publiquement, oui.
Tu peux ecrire en DOS TOUTES les fonctionnalites qui te manquent pour faire un windows like ou un linux like.

En théorie oui, mais bonjour la taille de ton programme. smile

Alors qu'un programme _nostub peut remplir toutes les fonctionnalités d'un programme kernel avec au maximum 5 KO de plus (parce que le kernel est un programme _nostub de 5 KO). Et ce qui rend le tout intéressant, c'est que normalement, un programme _nostub a besoin de nettement moins de 5 KO pour remplir lui-même les fonctionnalités offertes par le kernel.
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é

171

LOOOOOOOOOOOOOOOOOOOOOOOOOOL
Un sujet vieux comme le monde, et déjà 170 Posts... pas possibles, on a les meilleurs grin
avatar

172

PpHd a écrit :
Mauvais mot. Plutot imparfait, redondant.

Le mode _nostub n'est pas "imparfait" (certes, rien n'est vraiment parfait, mais le mode _nostub est très bien fait). Et pourrais-tu détailler "redondant"? Parce que je ne vois pas la redondance dans le format (sauf si tu parles de ce qui permet d'éviter le dérelogement - si c'est ça, il y a une raison, donc ce n'est pas une redondance).
Depuis quand tu penses au confort du programmeur ?

1. TIGCC a toujours été codé en pensant au confort du programmeur qui l'utilisera.
2. Je ne vois pas le rapport entre "support du mode kernel" et "confort du programmeur".
3. Ce n'est pas moi qu'il faut remercier pour le maintien du support pour le format kernel, mais Sebastian.
>Si, le dérelogement peut toujours être une source d'ennuis supplémentaire. Je retiens qu'il vaut mieux avoir une source d'ennuis possible de moins qu'une de plus. Exemples ?

Ben, si on oublie de déreloger. grin
J'aurais aime : une fonctionnalite == un define (ou plutot un include car les include contrairement aux define ne sont pas soumis aux aleas de l'ecriture). Plutot qu'une fonctionnalite == un retrait parfois.

J'ai déjà dit pourquoi ce n'est pas le cas.
C'est pas illogique non plus c'est vrai.

En effet.
Mais le porbleme des erreurs de detection des erruers de syntaxe ?

Pour les #defines mal tapés, je ne vois pas comment on devrait résoudre ce problème-là. Utiliser un #include n'est pas une bonne idée. Ça ralentit et alourdit la compilation et ça oblige à rajouter des headers supplémentaires, tout ça pour très peu de gains. Et puis, les headers de TIGCC suivent les conventions 8.3, donc execute_in_ghost_space.h est trop long.
Et aussi, j'aurais aime que par defaut, ca compile pour 89/92+/v200.

Ce n'est pas possible pour la compatibilité avec les très vieux programmes, qui ne mettent aucun #define, mais des short _ti89; pour sélectionner les modèles.
Et les programmes deja existant ? Ils font comment ?

Project / Build.
Tu detournes le probleme la.

Je ne trouve pas. Le problème n'existerait pas si Doors Explorer était codé correctement.
Ca sera toujours bien plus complique que de le faire en kernel.

addstupc toto.89z inuse.bin
C'est très simple.
SaveScreen: C'est unios qui l'a mis pour faire plaisir a PenPen.

Je sais bien. J'ai déjà dit que ce n'est pas toi qui l'as mis.
GhostSpace: Inutile en kernel.

Grâce à h220xTSR (ou HW2Patch). J'ai déjà dit ça.
Verification du modele: C'est normal dispo depuis la 2nd version du kernel...

Mais pas toujours implémenté.
Line1111: Bien avant vous !

Bon, d'accord.

Mais tu as quand-même "copié" SET_FILE_IN_USE_BIT. smile
Mais pour toi il n'y a pas de raisons au kernel, donc ton avis n'a que peu de valeur. Et je ne vois pas en quoi c'est un manque de respect...

Parce que ça le force à changer de kernel, ce qui est un travail supplémentaire qu'il n'est pas forcément capable de fournir.
Ben un MIN_KERNEL/NO_KERNEL_DETECT assurerait a la fois la compatibilite et les ajouts, non ? grin

Aucune des nouvelles fonctionnalités est suffisamment importante pour justifier l'effort de maintenance supplémentaire. Et puis, USE_KERNEL n'est supporté que pour permettre de compiler les vieux programmes qui l'utilisent. On ne compte pas y rajouter quoi que ce soit.
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é

173

zZz²&zZz²...
Ca devient comique...
XLib v1.00 Powerrrrrrrrrrrrrrrrrrrr!

174

De toute façon, il restera au moins pour la version 0.95, et probablement encore beaucoup plus longtemps. (Maintenant qu'il est supporté par le nouveau linker, on n'a plus vraiment de raison de le supprimer.)

Tu me rassures la.
Si tu veux garder tous les bogues, tant pis pour toi.

Je suis pret a parier que les versions a venir auront plein de nouveau bogues aussiwink
Je me demande si on ne devrait pas mettre TIGCCLIB sous LGPL. Ça obligerait les programmeurs de faire en sorte qu'on puisse recompiler/relinker le programme pour mettre à jour TIGCCLIB, c'est-à-dire de distribuer soit les sources, soit les fichiers objet (*.o). Comme ça, le problème de la disparition des programmeurs serait règlé.

Bah tu trouvera toujours du monde qui ne respectera pas ca! C'est pas vraiment une solution et perso j'aime pas trop le LGPL.
Mais on peut toujours exprimer ces mêmes scrollings en utilisant un écran de taille normale et des routines de sprites clippées.

Dans mon cas précis(absolument pas général) ca serait beaucoup se compliquer la tache et perdre de la place pour rien
C'est le plus souvent le cas pour ceux qui trouvent ça plus pratique et qui s'en fichent de la consommation d'archive. Mais dans ce cas, c'est leur problème, et il ne faut pas compter ça dans le décompte de la taille (vu que ce n'est pas nécessaire pour utiliser le programme).

Plein de gens ne se posent meme pas la question ppg ou non: ils utilisent le lanceur sans chercher a savoir.
Même dans un jeu de plateau, on n'est pas à 1 ms près. Si ton Mario ou Sonic met 1 ms de plus pour un saut, personne ne le remarquera.

1ms + 1ms +... peut donner un programme vraiment lent.
On ne dirait pas en te lisant.

Si on fait le concourt du plus grand exportateur fanatique Kevin est de loin le roi!
Peut-être, mais genlib prend plus de 2 fois plus de place que les fonctions de TIGCCLIB (gray.h) et ExtGraph utilisées habituellement.

Compare ce qui est comparable: Genlib ne sutilise pas dans le memes condition qu'extagraph et encore moins que TIGCCLIB.
avatar

175

3. Ce n'est pas moi qu'il faut remercier pour le maintient du support pour le format kernel, mais Sebastian.

Et bien alors un gran merci a Sébastian
avatar

176

PpHd a écrit :
Moi non. J'aime bien que le nostub traine ses lacunes comme un boulet grin

Tu es vraiment un égoïste. rage
Je ne pensais pas que tu étais égoïste à ce point-là.
Petits joueurs. Tout le code en mode kernel aurait pu etre reemploye pour le faire.

Tu n'as pas compris ce que j'ai voulu dire. Le problème est le découpage automatique en morceaux de 64 KO. C'est ça la partie dure.
A la rigueur. Mais les rom_calls c'est pas genial. Elles sont en general pas bien concues. Au niveau SDK.

Le problème est où?
Les fonctions les plus importantes d'un runtime C sont toutes dans la ROM: malloc, free, sprintf, ... Les fonctions graphiques essentielles comme l'effaçage d'écran et le tracé de texte, de lignes et d'autres objets géométriques y sont aussi. Il y a très peu de fonctions qui manquent dans la ROM. À part les niveaux de gris, ce sont tous des trucs implémentables assez facilement en termes de ROM_CALLs, comme c'est fait dans tigcc.a. Et les niveaux de gris sont implémentés en un seul KO dans tigcc.a.
Tu crois que c'etait difficile pour lui de rajouter ce support grin La premiere version supportait deja l'importation de plusieurs fichiers objets separees !

Il faut quand-même une infrastructure pour le linking sous demande (c'est-à-dire pour ne linker que les fichiers objets réellement utilisés).
Les romcalls n'offrent pas toutes les fonctionnalites necessaires.

Avec les TI-92 peut-être. Avec les TI-89/92+/V200, pratiquement tout y est.
Les libs statiques existaient depuis tres longtemps avec Fargo.

Non. Cf. quelques lignes plus haut.
Tu crois que c'est si difficile ? Je ne penses pas.

Moi oui.
J'ai deja plus ou moins fait ca car le nouveau format kernel sera ...
du fargo remanie. Plus de fichiers ASM, mais des fichiers PRGM grin

C'est un abus du format!!! Pourquoi utiliser des PRGM pour des programmes en assembleur???
Et TI-Connect ne transfèrera très probablement pas tes fichiers.
Oui mais je suis pret moi smile

Nous aussi. smile
1. Ca prend : 0 lignes en C et en ASM.

Ben, si tu es trop paresseux pour taper 4 lignes (ou une douzaine en ASM), on se demande pourquoi tu programmes. roll
2. Ca s'eneleve tout seul lorsque tu n'importes plus rien.

Ça arrive si souvent qu'on arrête d'utiliser un fichier de données où on l'utilisait à un moment? Dans les rares cas où ça arrive, est-il vraiment si dur de retirer 4 lignes ou de les mettre sous #if 0 (ou ifne 0)???
3. Pas besoin d'EQUate pour les libs en RO.

Tu appelles tes variables malib@1234, toi? grin Si c'est le cas, alors 5678(a3) est tout aussi clair.
4. Ca consomme aucun registres.

Les 12 registres sont là pour être utilisés.
Je connais ton point de vue. Mais c'est trop tard. Elles sont deja lancees dans la nature.

Si on a implémenté une fonctionnalité et qu'on se rend compte que ce n'est pas une bonne idée, mais qu'on n'ose pas la supprimer pour des raisons de compatibilité, le minimum à faire est de déconseiller son utilisation, pas de la conseiller.
Pretraiter un grand Back-Buffer que l'on affichera apres en clippes.

On peut toujours exprimer ça en termes d'écrans de taille normale et de routines clippées.
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é

177

PpHd a écrit :
<< Soit tu utilises memmove, soit tu écris une valeur réservée par dessus. Soit encore tu fais 2 tableaux: un tableau de données et un tableau de pointeurs, et tu laisses les données dans le tableau de données, et tu fais un memmove (ou un remplacement par NULL) dans le tableau des pointeurs. >> C'est loin d'etre aussi simple !

confus Mes solutions marchent toutes.
Oui. Tout a fait. C'est le pourquoi de genalib.

C'est un hack qui tourne autour du problème au lieu de le résoudre à sa base.
Tout est une question de niveaux et de mesure. Ce n'est pas si simple, il me semble de se renseigner la dessus.

Ben, dans ce cas, c'est que les documentations sont insuffisantes. En d'autres mots, envoie ce que tu as trouvé à Doc@tigcc.ticalc.org (c'est Sebastian qui lit cette adresse) s'il te plaît.
Pourquoi pire ?

Ça nous fait encore plus de travail, pour quelque chose qui n'apporte aucune fonctionnalité nouvelle (compat.h de TIGCCLIB marche très bien comme c'est).
Oui ca ne marche qu'avec les constantes. Et oui c'est utile.

Ça n'apporte aucune fonctionnalité supplémentaire par rapport à (TI89?xx:xx).
<< Évidemment, on peut aussi utiliser _rowread directement, mais c'est compliqué, alors que _keytest est très simple. Mais lourd.

confus
Ça ne fait qu'appeler _rowread.
<< Ben, il y a quand-même une solution simple: on ne change pas les noms, ou alors on supporte les 2 (un #define en C ou un equate en assembleur suffisent pour cela). >> Certes. Mais tu solutionnes pas vraiment le probleme.

Si.
DLL = WINDOWS = MERDE. Non j'aime vraiment pas ce mot de DLL.

Mais c'est une abbréviation valable pour dire "librairie dynamique".
C'est un fichier lies dynamiquement aux programmes.

Le terme "librairie" vient de "function library" ("bibliothèque de fonctions"). Un fichier de données n'est pas une librairie.
On n'est pas obblige de suivre la documentation.

Dans ce cas-là, on est un emm*rdeur. Et je sais déjà que TiMad est un emm*rdeur, pas la peine de me le dire.
Difficile a faire.

Au contraire, c'est très simple à faire. Il suffit de vérifier les octets de taille.
Et ca ne resoud pas le probleme.

Si, on ne peut pas faire une DLL de 8 KO si ce test est là. Oui, on peut forker les routines, mais on pouvait déjà faire son propre support de DLLs avant le support dans TIGCC. Mais bon, en effet, les emm*rdeurs se contenteraient de forker nos routines, c'est pour ça que Sebastian et Zeljko ont décidé de ne pas mettre ce test.
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é

178

XDanger a écrit :
> Moi non. J'aime bien que le nostub traine ses lacunes comme un boulet Pitoyable. Même nous, qui n'aimons pas le kernel, te faisons des suggestions (notamment pour l'amélioration de ces RAM_CALLs de fonts qui sont actuellement implémentés n'importe comment: très lent, pas sûr...)

Entièrement d'accord.
TiMad
a écrit : pssssssssssssssss qu'est ce qu'on entend pas comme conn***...

Ce n'est pas parce que tu n'est pas d'accord que c'est une c*nnerie.
Genre les dll.. on en fait ce qu'on veut.. si ca vous plait pas tant mieux!!

Traduction: Tu es un emm*rdeur.
heu Xlib est de loin plus facile que Extgraphlib...
comparons les codes:
XOn()
a=XNewGPlan();
XGPlanc(a);
XGMSprite(1,1,blabla);
XWait(Enter);
XOff();

equivalent:
if (GrayOn())
{
if (a=malloc(2*LCD_SIZE))
{

afichietrucmuchsprite(1,1,mon sprite,16,a);
afichietrucmuchsprite(1,1,mon sprite,16,a+LCD_SIZE);// scuse connais pas ces fonctionssmile mais il me semble qu'il n'y a pas de fonction maskée... de toute maniere là n'est pas le prob..
free(a);
}

GrayOff(); }

Ton code ExtGraph est mal écrit, soit par ignorance, soit exprès.
Voilà l'équivalent ExtGraph de ton code XLib, codé correctement:
if (!GrayOn()) return;
ClearGrayScreen();
GraySprite16_MASK(1,1,blabla,blabla+16,blabla+32,blabla+32,
                  GrayGetPlane(LIGHT_PLANE),GrayGetPlane(DARK_PLANE));
ngetchx();
GrayOff();

C'est plus court. Seul l'appel GraySprite16_MASK est un peu plus long, mais c'est pour plus de flexibilité, et pour éviter de devoir faire l'équivalent de PortSet ou de XGPlanc.
TiMad
a écrit : bein deja tu dis que Extgraphlib est plus simple d'utilisation alors que c'est faux...

Ben non, comme tu vois, c'est vrai. tongue Par exemple, ici, on n'a pas besoin d'allouer un double-plan, on peut utiliser celui alloué automatiquement par le support des niveaux de gris.
Thibaut a écrit :
Kevin > C'est de toute façon le seul compilateur C sérieux disponible pour TI-89/92+/V200 actuellement.

Non. Il y aura bientôt un compilateur sérieux. TIGCC est un compilo TRES sérieux wink

rotfl
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é

179

MacIntoc a écrit :
Euh... pour le fps, je t'arrètes tous de suite. GBS sur 92+ ou sur 89, la différence de vitesse, tu la sent plus que nécessairesgrin 45-46fps sur 89 contre une dizaine de moins sur 92+ (35-36, donc).

La différence que tu sens n'est probablement pas une différence de FPS, mais de vitesse des mouvements. Il suffit de sauter des frames sur TI-92+ pour que ce soit équivalent, et de le faire de manière régulière (pas sauter 10 frames d'un coup, évidemment).
Uther Lightbringer
a écrit : Tu me rassures la.

As-tu une bonne raison d'utiliser USE_KERNEL? Parce qu'en principe, tout ce qui est possible avec TIGCCLIB en mode kernel est aussi possible en mode _nostub?
Je suis pret a parier que les versions a venir auront plein de nouveau bogues aussiwink

Tu risques de perdre ton pari. smile Les bogues corrigés sont beaucoup plus nombreux que ceux qu'il nous arrive de rajouter en rajoutant des nouvelles fonctionnalités. Beaucoup de bogues reportés récemment sont en fait de vieux bogues qui sont juste passés inobservés. Et puis, les bogues nouveaux ne concernent pratiquement toujours que des fonctionnalités nouvelles.
Bah tu trouvera toujours du monde qui ne respectera pas ca!

Ben, il suffirait d'envoyer des cease-and-desist menaçant une action légale, parce que ça serait illégal.
C'est pas vraiment une solution et perso j'aime pas trop le LGPL.

Tu as le droit de ne pas aimer, mais ça serait une solution au problème des programmeurs qui disparaissent sans laisser de quoi mettre à jour leurs programmes.

Mais de toute façon, je ne pense vraiment pas que la licence de TIGCCLIB va changer. Le problème des programmeurs "disparus" n'est pas si grand qu'il justifierait une licence restrictive. Les programmes écrits avec TIGCC marchent tous (ou presque (?)) même sur V200 AMS 2.08 (éventuellement avec v200exep).
Dans mon cas précis(absolument pas général) ca serait beaucoup se compliquer la tache et perdre de la place pour rien

Pourrais-tu expliciter ton cas? Ça apporterait bien plus au débat si c'était explicité d'une manière qui nous permet de comprendre pourquoi c'est le cas.
Plein de gens ne se posent meme pas la question ppg ou non: ils utilisent le lanceur sans chercher a savoir.

Ben, tant mieux pour eux s'ils peuvent lancer le programme sans se casser la tête! Ce que tu présentes comme un inconvénient est en fait un avantage! Trouves-tu vraiment qu'il faut forcer les utilisateurs à économiser de la place sur leur calculatrice??? Moi, je ne trouve pas ça du tout!
1ms + 1ms +... peut donner un programme vraiment lent.

Mais quand on est dans l'ordre de grandeur des millisecondes (et plus des microsecondes), on a déjà fait la somme!
Si on fait le concourt du plus grand exportateur fanatique Kevin est de loin le roi!

rotfl
Compare ce qui est comparable: Genlib ne sutilise pas dans le memes condition qu'extagraph et encore moins que TIGCCLIB.

Si, genlib et ExtGraph+gray.h sont utilisées dans exactement les mêmes conditions: quand on a besoin d'une librairie pour l'affichage graphique.
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é

180

Ce n'est pas à partir de 10 fps qu'on ne distingue plus la différence de fluifité, mais plutôt 24.