>Ton include utilise des hacks assez bizarres. Je te les ai signalés, mais tu as refusé d'en corriger quelques uns.
Oui.
>Par exemple, pourquoi ton hack pour le support pour exit? Le code de tipatch.lib marche très bien! Et même mieux, parce que ton code ne permet pas NO_EXIT_SUPPORT.
Ben dans ce cas tu utilises tigcclib.
>D'ailleurs, tu risques d'avoir des ennuis quand le code de tipatch.lib sera changé en "startup sections" dans le nouveau linker de Sebastian.
Tant pis ! On verra alors.
>Dis-moi comment on était censés implémenter le découpage lors du linking avec un système de linking en 2 étapes: ld ne peut sortir qu'un .o, obj2ti ne reçoit qu'un seul fichier .o. Ce découpage sera réalisable (mais pas nécessairement réalisé) avec ld-tigcc (TIGCC 0.95), mais il ne l'était pas du tout quand le support des DLLs a été introduit.
Je crois qu'on s'est mal compris des le debut. Je parle de maintenant.
>>push_internal_simplify par exemple.
>Et ton problème est où? C'est accessible à partir de AMS 1.01:
Ce N'EST PAS dans l'API d'AMS 1.0x !
C'est un Hack pour y avoir acces sur AMS 1.0x
>Les fonctions que tu juges "inutiles" ne le sont pas nécessairement. Certaines fonctions utiles manquent, mais les APIs parfaites n'existent pas.
CustomOn ? CustomOff ? Tres utiles si on peut pas definir nous meme le custom.
Et on peut y acceder quand meme pas un NG_execute bien place.
(NG qui signifie d'ailleurs ?)
>Il y a des fonctions Fopen et liées qui ressemblent à du C ANSI, mais ne le sont pas vraiment, dans AMS 2.
Elles ne ressemblent pas vraiment.
>Mais de toute façon, fopen est implémentable en assez peu d'octets en termes de vat.h, comme on l'a fait dans tigcc.a.
Tu veux savoir en combien d'octets je reimplemente toute les fonctions de la VAT d'AMS
1Ko.
>Pour printf: il y a vcbprintf dans la ROM, et cette fonction fait presque tout le travail de printf et permet au printf de tigcc.a d'être très compact.
Cette fonctions 'vcbprintf' n'est pas exporte dans l'API d'AMS. Merci de me le rapeller.
>Ça ne fait pas vraiment partie des fonctions les plus importantes.
Pour toi. Et ce ne sont pas des fonctions.
>AMS != OpenGL
>Il y a FillTriangle, ça suffit largement. De toute façon, le texture mapping avec la vitesse de AMS serait inutilisable.
Bof. Pas tellement plus lent que DrawIcon je pense.
Et puis depuis quand tu t'interresses a la vitesse ?
>Au fait, je traînais depuis longtemps l'idée de mettre un lanceur de style ttstart en Exec et de cacher le vrai programme dans le début du PRGM. Mais je n'ai jamais essayé de la réaliser, parce que je trouve ça vraiment abusé que de mettre de l'assembleur dans un PRGM.
huhu. Tu verras.
>Et moi, je pense que non. Il rejette normalement les fichiers "corrompus" (par exemple les chaînes de caractère qui n'en sont pas).
Sauf que si on l'envoie sur la calc par un autre moyen, puis qu'on le recupere avec graphlink, la ca marche.
>C'est trop demander que de demander aux auteurs de recompiler leur programme une fois tous les 4 ans? Ben moi, je trouve que non.
Ils oublient leur programme en 4 ans.
>En tout cas, _keytest et tous les #defines de compat.h sont prêts pour un nouveau modèle.
Cool.
>Et d'ailleurs, un troisième type de modèle totalement différent f**trait aussi la m*rde en mode kernel et obligerait donc aussi de recompiler pas mal de programmes:
>- Beaucoup de programmes (entre autres ceux compilés avec TIGCC, mais pas seulement - cf. TxtRider, ziplib, ...) choisissent des constantes en fonction du résultat de tst.w CALCULATOR. Le kernel n'a aucun moyen de rajouter une troisième possibilité sans que le programme soit recompilé.
Je me debrouillerais alors. En choisissant le CALCULATOR le plus proche du resultat qu'il faudra produire.
>- Les EXTRA_RAM_CALLS cesseront eux aussi de fonctionner en présence d'un troisième modèle radicalement différent des 2 autres (parce qu'il n'y a que le choix entre 2 valeurs - c'est d'ailleurs un bon argument contre l'utilisation des EXTRA_RAM_CALLS dans TIGCC: ils ne sont pas du tout conçus de manière extensible, donc on fait quoi quand un nouveau modèle arrive?).
Je croyais qu'il etait prevu pour 2006 ?
Et bien pour les programmes ne possedant pas le bit de la machine, je mettrais l'extraramcall la plus adapte, et sinon je ferais evolue le format des extra-ramcalls.
Satisfait ?
>D'ailleurs, déjà pour la V200, si un programme avait utilisé des EXTRA_RAM_CALLS pour choisir entre 0x2xxxxx et 0x4xxxxx, il n'aurait plus fonctionné.
Tres peu probable, car de telles choses dependent plus d'AMS que de CALCULATOR.
>C'est bien ça: tu es paresseux.
Pas toi ? Je suis tellement paresseux que je tape 400Ko de code source en ASM pour rien.
>Ça explique aussi pourquoi tu te plains des quelques #defines à mettre si tu veux désactiver le code d'initialisation de TIGCC.
Aussi c'est vrai.
>[Ctrl]+[F]SymFindPtr[ENTER]
Et dans plusieurs fichiers ? Non, je ne dis pas que ca soit difficile. C'est plus long c'est tout.
>Si c'est vraiment un problème, il suffit d'utiliser une indirection supplémentaire.
D'ou du temps et des octets de perdu.
>Sauf que ce sont 16, pas 12. Désolé, j'ai raté cette erreur en me relisant. Mais tu ne l'as pas remarquée, toi non plus.
Pas tout a fait. 16 - (d0-d2/a0-a1 + a7/a6) = 9 registres globals libres. Si on fait appel souvent aux romcalls. 14 si on n'y fait pas appels.
En fait, ca depend du contexe.
>C'est justement ça que je te reproche.
Tant pis.
>On n'utilise pas de BackBuffer.
C'est parfois plus rapide.
>Et puis le fait de permettre à la taille de l'écran d'être variable ralentit et agrandit pas mal les routines graphiques. Cf. BitmapPut. La dernière fois que j'ai regardé, genlib n'avait pas l'air de supporter les écrans 400×300 non plus...
Certes mais je n'ai jamais voulu que genlib soit archi-hyper flexible.
Et BitmapPut est lent, mais pas a cause de la taille de l'ecran varaible (Cf Pedrom\BitmapPut).
>C'est un hack parce que tu implémentes un système d'allocation totalement différent par dessus celui du système d'exploitation.
Ou est le probleme ? J'alloue normalement un grand Handle que la librarie gere elle meme.
Cela n'a rien d'un hack.
>N'empêche que tu tournes autour du problème alors qu'il suffirait d'adapter les programmes pour utiliser des stratégies d'allocation plus adaptées à la plateforme.
Mais pas du tout ! On est parfois obbliger d'avoir recours a des allocations dynamiques. Souvent tres souvent. Dans ce cas, je deconseille d'utiliser malloc. Utilise genalib c'est fait pour.
>Et as-tu des résultats documentables? Si tu sais pourquoi une combinaison est mieux qu'une autre, documente-le. Sinon, ben tant pis.
Je crois que ca sera tant pis alors

Rien de documentable.
>Le problème est que c'est beaucoup de travail pour quelque chose qui n'est ni une correction de bogue, ni vraiment une addition de fonctionnalité.
Pas tant que ca si son linkeur est bien ecrit.
>Mais je ne dis pas du tout que la réponse définitive sera "non". Il faut suggérer l'amélioration à Sebastian, il demandera mon avis et éventuellement celui de Zeljko, et puis on prendra une décision. Alors: comptes-tu suggérer ça à Sebastian ou dois-je le faire?
Heu... Je prefererais que ca soit moi. sebastian@tigcc.ticalc.org nan ?
>Est-ce vraiment une fonctionnalité (surtout vu que ça donne du code "plus compact, plus rapide, plus petit" seulement en mode kernel)?
Tout depend de ta definition de fonctionnalite.
>DLL = dynamically linked library. C'est exactement la même chose que le terme "librairie dynamique".
DLL = WINDOWS systeme = de la merde.
>Je ne sais plus. Mais en tout cas, on ne parle pas de "library" pour des données normalement.
qu'est ce que du code que des donnees ayant un sens ?
>Ben non. Thomas Nussbaumer est un auteur qui agit de manière responsable et altruiste. Il met toujours à jour ses programmes quand il y a des problèmes. Tous les programmeurs devraient suivre son exemple.
J'attends depuis 2 mois la nouvelle version de tictex avec les modifs que je les ai file (et qui corrige quelques bugs).
>Depuis quand?
Dans le code d'inialisation oué

Content.
>Non. Ça prend la mauvaise fonte si on utilise ROMedit ou Font Installer Demo.
Ca prend la fonte du boot, ce qui est prevu.
>Pour _RAM_CALL_00E oui. Pour les autres absolument pas. Et rien ne t'empêche de rajouter un autre RAM_CALL pour tios::font_medium (maintenant que le problème de tios::font_small et tios::font_large définis en ses termes est résolu), et de renommer _RAM_CALL_00E en tios::boot_fonts.
Tu veux que je rajoutes 3 autres RAM_CALLS ?
Ok, mais c'est toi qui me les a demande alors.
>Parce que tes suggestions sont soit irréalisables, soit extrèmement difficilement réalisables.
mais interressantes
>Il y a 6 lignes seulement parce que j'ai été obligé de couper l'appel à GraySprite16_MASK en 2 lignes à cause de la largeur limite du forum. Il était en 5 lignes avant.
Mais cette ligne compte double vu sa longeur
>genalib pourrait très bien exister en statique. Ce n'est que parce que toi, tu refuses de faire une version statique qu'elle ne marche qu'en mode kernel.
Parce que je compte faire une mise a jour qui double la vitesse. Il me reste a la debogguer de maniere saine.
>Entre les forcer à rester ignorants et les forcer à apprendre, il y a une grosse marge.
Qu'on appelle education.
>À part toi, qui utilise ça?
Bonne question. Mais c'est tres utile lorsqu'on comprend.
>Il faut déjà une journée pour avoir une idée vague de son fonctionnement. C'est beaucoup trop compliqué.
Arg. Je suis sur que d'autres ont compris plus rapidement que toi.
>Oui, mais toi, tu fais exprès. 96 missiles à la fois
C'est ce qu'on appelle la demesure. C'est du fun !
>Un moteur 3D est un cas bien particulier. Oui, chaque FPS compte en 3D
Pourquoi ?
>void *a;
>if (!(a = malloc(7680)) || !GrayOn())
> {
> ST_helpMsg("Not enough memory");
> return;
> }
Sauf que tu oublies parfois de desallouer a...
>Sinon, ça n'a rien à voir, mais mon prof de physique m'a dit que la persistance rétinienne de l'oeil est de 100 ms, ça signifie que lorsqu'on regarde une image, elle reste pendant 100 ms dans notre vue, donc il faut que le fps soit d'au moins 10 fps pour qu'on ait une impression de fluidité, théoriquement.
Theoriquement oui. Mais pas des images statiques.
>Mais bon, moi je trouve que c'est mieux à 20 fps quand même.
Oué parce que cf au dessus.
> filelib
>Je ne toucherai certainement pas à tes programmes.
>filelib est boguée, sale, et inutile. Utilise vat.h directement!
Elle a ete corrigee depuis. Mais bon je ne garantis rien puisque c'est pas moi qui l'ai ecrite.
>Pour shrnklib, utilise ttpack à la place.
Plus lent.
>Pour ta librairie personnelle, recompile-la en statique.
Ils l'utilisent surement pour autre chose.
>Et hop, plus besoin de USE_KERNEL.
Mais non.
>On est très rarement "juste" dans un jeu/programme 2D. Les seuls cas où les 10 FPS étaient vraiment difficiles à atteindre que j'ai vus étaient des jeux 3D.
Tu veux que je te cites des exemples de programme 2D qui rament ? Regarde la serie des Ultima par exemple. Meme sur un P200 Ultima8 saccade.
>Mais alors pas du tout. Elle n'est pas moins efficace ni moins adaptée que genlib.
Mais si ! Elle est moins efficace car ils manquent les fonctions clippées, et ils manquent les fonctions planes. Mais elle va bien pour faire un shell.