Je croyais que tu étais en prépa ?
Que veux-tu, tout le monde n'est pas un boss en math comme toi

Ceci dit je ne voulais pas faire de l'amalgamme (hum hum personne n'est visé
)
de toute façon à la compilation tu peux compresser tes ressources (sprites, maps, texte, et même éventuellement programmes...) et il les décompressse dès que tu en as besoin 


Uther Lightbringer
a écrit : Comme je l'ai déjà dit, une notation a partir d'un tableau est une maivaise idée car aucune note ne pourra vraiment représenter la réalité. Mais les commentaire a l'intérieur du tableau sont bons et représentent a peu près tous les avantages et inconvéniants. de chaque méthode.
La c'est vrai mais une DLL Nostub n'est vraiment pas si simple a utiliser qu'une lib dynamique kernel
C'est un gros avantage du kernel: c'est 64K/64K/64K pour tous les programmes y compris Nostub !
Mais rien ne te permet d'affirmer que le kernel est dépassé. C'est une idée bien personelle sans véritable fondement.
Volées sur un format prétendu dépassé mais qui a été bien plus visionnaire vu qu'il les gère depuis des années.
Argument qui ne vaut pas le Kernel fait plus que l'anti crash de Kerno. Si tu fait la somme de tout ce que je t'ai cité comme TSR pour s'approcher du format kernel, tu le dépasse.
gaspillage de place pour les multiples launchers
et pour le code réemployé plusieurs fois. On en revient au même.
TiMad a écrit :
MDR.
Mon affirmation est tout a fait juste, c'est un axiome des Ti68K, donc amuse toi a demontrer sons contraire.
LOL, un axiome!
Thibaut a écrit :![]()
> Parle à Pollux de certaines techniques d'optimisation de GCC et il ne saura même pas ce que c'est...
Ce n'est pas parcequ'il ne connait pas les termes qu'il n'a pas eu l'idée d'intégrer les optimisations qu'ils désignent![]()
J'ai bien codé un algo d'extraction de racines carrées sans savoir que ça s'appelait une recherche dichotomique, par exemple. C'est bien beau d'avoir de la culture (informatique), Kevin, mais je trouve que c'est bien mieux d'être capable de construire des algos.
Pen^2 a écrit :
oui, oui. de toutes façons c un boss Pollux
XDanger a écrit :
> Les routines de sprites de TIGCCLIB ne sont pas si lentes que ça. Vrai, mais elles sont plus lentes que celles d'ExtGraph (qui vont, je le répète encore une fois, être améliorées dans une des prochaines versions). C'est inhérent aux tests dûs à la gestion des trois modes dans la même routine.
>>>Ah, je vois (c'est dans le ZIP de Pedrom que tu m'as envoyé pour le problème avec A68k ). Il y a pas mal de trucs qui pourraient nous intéresser (pour la documentation de TIGCC) dans ton Note.txt.
>>C'est fait pour
>Mais il faudra que quelqu'un (probablement moi, ou peut-être Lionel) traduise tout ça du Français raccourci à l'Anglais complet.![]()
Probablement toi, en effet. Il serait improbable que j'aie du temps pour faire autre chose que le strict minimum pour TICT, avant les grandes vacances. En revanche, toi, tu nous démontres brillamment dans ce topic que tu as du temps... Et bien sûr, il ne faut pas oublier de remercier PpHd pour ce boulot de documentation qu'il fait.
> Et puis, "programmer en _nostub" ne veut pas forcément dire "programmer seulement pour AMS". La preuve: Backgammon marche très bien sous Pedrom Oui, mais programmer spécifiquement pour PedROM veut dire programmer pour une petite minorité de gens...
PpHd a écrit :
>Il est non seulement tout à fait possible de coder des programmes mathématiques en C sous AMS, ça permet aussi de faire plein de choses qu'on ne peut pas faire en BASIC. Par exemple, rechercher des sous-expressions d'un certain type dans une expression et faire des manipulations sur les sous-expressions trouvées.
On ne dit pas que c'est impossible. Mais plus difficile qu'en basic, pour un avantage pas si evident que ca.
// Traverse the current expression to find all subexpressions of the form (...)!
// and expand the contents of (...). This is done because AMS will simplify
// (2n+2)!/(2n)!, but not (2(n+1))!/(2n)! for some reason.
// Binomial sums such as gosper89(4^k/nCr(2k,k),k,0,n-1) would fail without this
// function, and this is unacceptable since binomial sums are the main use of
// the Gosper algorithm.
void expand_factorial_contents(ESI p)
{
ESI o=p,q=next_expression_index(p);
while (p>q) {
if (*p==FACTORIAL_TAG) {
ESI newq=top_estack;
push_between(q,next_expression_index(p));
ESI newp=top_estack;
push_expand(--p,NULL,0);
push_between(p,o);
o=top_estack;
p=newp;q=newq;
} else if (is_variable(p)||*p==USERFUNC_TAG
||(*p>=ARB_REAL_TAG&&*p<=STR_TAG)) {
p=next_expression_index(p);
} else if (*p==EXT_TAG||*p==EXT_INSTR_TAG||*p==EXT_SYSTEM_TAG) {
p-=2;
} else p--;
}
push_internal_simplify(top_estack);
}
>Mais il n'y a quand-même pas de fortes chances que sprintf change de manière imprévue.
Une simple recompilation en changeant les flags suffira a casser votre hack
>Mais bonjour la taille des routines qui permettent cela [stdin, stdout, stderr]... Je suis sur que tu es capable de le faire en moins de 500 octets.
>De toute façon, la compatibilité binaire parfaite est illusoire. Par exemple, les kernels ont été incapables de garantir la compatibilité binaire entre AMS 1 et 2, il y a eu besoin de changements dans les kernels et de recompilations, de réassemblages, voire de portages assez complexes pour les programmes. Les programmes accedaient a des variables absolus.
Le format du kernel a bien evolue depuis.
>Alors que les premiers programmes _nostub (on les comptait sur les doigts d'une main à l'époque) n'avaient pas besoin de portage du tout d'ailleurs (sauf pour basiclib qui utilisait des adresses absolues toutes les 3 lignes ). C'est surtout parce qu'ils ne faisaient rien et qu'ils se comptaient sur les doights d'une main.
>Ça ne veut pas dire qu'il n'est pas dépassé! Comme j'ai déjà dit: il y a toujours des nostalgiques pour faire évoluer les systèmes totalement dépassés! Pour qu'il soit depassee, il faudrait qu'il soit technologiquement inferieur au nostub. Ce qui est absolument le contraire. Technologiquement parlant, le kernel est bien superieur au nostub. La preuve est simple : EX_patch en _nostub, seul suffit. Un kernel de 3Ko (Et bien etudie en taille) est necessaire et suffit pour le mode kernel.
>Le format de base ne change pas parce qu'il n'a pas besoin de changer. Il est très bien comme il est. Et il y a des évolutions à l'intérieur de ce format de base. Par exemple le format de commentaires et autres données qui est en développement.
Ca ne fera jamais parti du format _nostub. Le format _nostub c'est : SIZE + CODE + TABLE_DE_RELOGEMENT + TAG
>- Même si c'est le cas, ce n'est pas une raison à elle toute seule de ne pas utiliser les librairies statiques. Déjà, les librairies statiques ont aussi leur manière d'économiser de la taille (ne pas linker les fonctions inutilisées). Et ensuite, même dans le cas très improbable où la librairie statique prendrait plus de place, les avantages des librairies statiques justifient nettement le sacrifice minimal en taille.
Je connais une lib statique qui s'appelle allegro. Et qui meme lorsqu'on ne fait appel qu'aux fonctions d'initialisation/quit prend 400Ko sur ton programme... Elle est ou l'economie ?
Souvent, les développeurs développent ces libraires en ne pensant qu'au linkage dynamique, et voici le résultat. Commence par leur envoyer un bug report (avec un titre de style "Improper separation of functions for static linking". Sévérité: "Serious").
>- impossible de lancer un programme sans installation préalable d'un programme tiers. Le programme tiers peut l'installer lui-meme.
>- gaspillage de place en utilisant une surcouche d'émulation par dessus AMS (pour une estimation de la place gaspillée, comparez la taille de PreOs avec celle de KerNO).
+KerNO: 2949 bytes. PreOS: 6657 bytes. (3706 bytes)
+KerNO: Diamond+ON turns off. PreOS: No. AMS does the job.
+KerNO:Fixes (removes) the slowdown that happens in some games when the calc is turned back on after being turned off during game play PreOS: No. It is a buggy feature !
$600003 -W ($FF) Bus waitstates
The TI89 hardware needs no waitstates. AMS messes with this port on
startup for compatibility with the TI92, but the battery checker will reset it to $FF within one second.
+KerNO:Checks the heap PreOS: Useless.
>- complique la vie aux développeurs d'outils de développement à cause de son format difficile à gérer pour le linker. On en a deja parler. Et c'est de la mauvaise foi.
>C'est à ça que servent les masques. Ils sont aussi plus flexibles. Mais consomment plus en memoire.
XDanger a écrit :
> PreOS: Can call any program at any-time by pressing SHIFT+ON (Even tictex). Sans jamais faire de bugs avec le bit in_use ou des trucs comme ça, quand on lance SHIFT+ON quand on édite un texte dans l'éditeur de texte, [je demande de l'info] ?
). Mais je ne pense pas que ça pose problème.
PpHd a écrit :
>> PreOS: Can call any program at any-time by pressing SHIFT+ON (Even tictex).
>Sans jamais faire de bugs avec le bit in_use ou des trucs comme ça, quand on lance SHIFT+ON quand on édite un texte dans l'éditeur de texte, [je demande de l'info] ? Si tu veux des bugs, c'est tres simple. Prend un programme qui modifie l'EStack par un HS_popEStack, et ca plantera (un ER_throw).
PpHd a écrit :
>Tu ne le respectes pas. Déjà, tu n'utilises pas la table de relogements prévue par le format. Et ensuite, tu mets des trucs dans le fichier sans mettre du code pour les gérer, juste un stub pour appeler un TSR (le "kernel"), dans l'espoir qu'il soit installé. S'il ne l'est pas, ça ne marche pas. Ce n'est pas ce que j'appelle "respecter le format natif". En quoi ne pas utiliser la table de relogements du format n'est pas le respecter ? Il existe des _nostub qui ne l'utilisent pas aussi.
En quoi faire appel a une fonction externe non-documentee n'est pas respecte le format d'AMS ?
>CC utilise un nombre excessif de relogements absolus! Il y a beaucoup trop de variables globales partagées entre plusieurs fichiers source. Un programme conçu spécifiquement pour TI-89/92+/V200 n'utilisera jamais autant de relogements.
>Et puis, CC n'utilisait aucune librairie dynamique, donc ça n'a aucun rapport avec les librairies dynamiques ou statiques. C'est juste une question de relogements. Et alors ? Justement, cela prouve le caractere technologiquement depasse de ce format.
>1. C'est tout bête. Il suffit de mettre #define EXECUTE_IN_GHOST_SPACE.
Et cette astuce foirera lorqsue TI mettra plus de 256Ko de RAM. Remarque, ce sera pas les seuls programmes a ne pas fonctionner.
>2. Cette "astuce" n'est nécessaire que si on programme un shell ou un programme de ce style. Pour tous les autres programmes (jeux, programmes mathématiques, ...), on n'a besoin d'aucune "astuce". Et en kernel, on n'en a besoin d'aucune.
>Tu appelles 9 KO "pas tant de place"? Et pas toi ?
>J'avais dit cela de manière totalement objective. Ça ne sert à rien parce que au moins 95% des jeux sur TI-89/92+/V200 n'ont aucune difficulté à atteindre les 10 fps nécessaires pour obtenir la fluidité. ExtGraph est suffisamment rapide. 10fps sont LA limite a ne pas franchir. Pour avoir un bon confort d'utilisation, il faut etre a plus de 20 au moins.
>- le b*rdel que ça va être pour le programmeur (ou pour l'utilisateur) de choisir les bonnes DLLs parmi la centaine disponible pour son pack archive, alors que pour les librairies statiques, le linker s'occupe de cela pour lui. Faux. Les includes headers mettront cela de maniere transparente, et la lib complete est distribuee sous la forme d'une pack.
>Donc c'est une très mauvaise idée (en plus d'être un hack ). Ce n'est pas un hack.
>Comment veux-tu pouvoir choisir la DLL à laquelle appartient la fonction que tu veux appeler si tu charges plusieurs DLLs en même temps et que tu ne les numérotes pas? Faire une base commune et lors du loading, on charge dans la base commune l'ensemble des adresses.
>Donc plus de kernel en développement? Non. J'ai un remplacant.
>Dans ce cas, il suffira que TI sorte une mise à jour qui empêche à PreOs et Universal OS de fonctionner, Meme AMS 2.07 n'a pas empecher Preos de fonctionner sans changement des sources.
Seul hw2tsr posait probleme![]()
Les kernels survivront ne serait-ce que grace a toi
>Mais "Extended Assembly file" ne veut rien dire. Contrairement à toi, nous n'aimons pas les néologismes. Je sais. Tres terre, a terre. Mais avoue que DLL est un TRES MAUVAIS CHOIX de nom, pour ce qu'elles sont censees faire.
>Pourquoi? Il y a juste une rangée à redessiner plutôt que l'écran entier, et je pense bien que le scrolling lui-même soit plus rapide que de réafficher l'écran entier, vu qu'il y a beaucoup moins de calculs à faire. En matiere de lecture/ecriture, y'a autant de lectures / ecritures dans l'un que dans l'autre.
>Non. Dans les 2 cas, il y a juste une paire de coordonnées par plan à changer. C'est exactement la même chose. Mais ta double boucle for sera bien plus lente que put_plane !
>Pourquoi? Je ne fais qu'appliquer la définition du scrolling différentiel. Ben je crois que l'on n'a pas la meme definition.
>Aucun intérêt. TI réussira certainement à détruire les choses beaucoup plus que ce que je pourrais imaginer.
On change de processeur. Ou mieux. On installe un vecteur a la con en $30.l
>Comment ça? En changeant le code du programme? On peut faire la même chose en _nostub.
Ca serait totalement transparent en mode kernel
>Comme la taille horizontale a diminué dans mon exemple, ça ne donnera rien de lisible. L'int se chargerait de reduire la ligne.
>Probablement non. Et je parie que tu as encore oublié de compter la taille du kernel.
Et toi tu as oublie que le kernel de ma calc est en ROM
>Il n'y a aucun problème justement. Chaque programme utilise la version pour laquelle il est prévu. Il n'y a aucun conflit! Et lorsqu'on ne sait meme pas laquelle il faut utiliser ?
>N'importe quoi. Ton attitude "si les fonctions sont inutilisées, le programmeur n'a qu'à les utiliser" est arrogante et stupide. Si les fonctions ne lui servent pas, pourquoi devrait-il les utiliser juste pour qu'elles soient utilisées?
1. C'est en dynamique parce que ca permet de centraliser toutes les versions en une seule, d'ou une simplicite de mise a jour pour l'utilisateur qui n'est pas dependant du bon vouloir du programmeur.
2. Donc ces fonctions que le programmeur le veuille ou non, y sont.
3. Pourquoi ne pas rajouter alors un petit bonus pas trop gros qui les utilise ? C'est un 'Pourquoi pas', pas un 'n'a qu'a'.
PpHd a écrit :
> Et tout ceci alors que la solution au problème est très simple: utiliser une librairie statique, comme ça, quand le programmeur n'utilise pas certaines fonctions, l'espace mémoire sera économisé. Ton "Mais elles y sont !" est exactement le problème, auquel tu n'as pas donné de solution parce qu'il n'y en a pas en restant dans le domaine des librairies dynamiques. Il n'y a aucun probleme si les libs dynamiques sont a jour. Et en plus, c'est tres facile maintenant de les avoir a jour.
>Tu as bien réussi à te passer de code auto-modifiant dans PedRom! Bien obblige, non ?
Mais :
1. La plupart des constantes sont vraiment constantes. 2. Le reste, c'est des vars globales.
>En d'autres mots, tu es trop paresseux pour faire de l'allocation de registres. Dans ce cas, utilise un compilateur, il s'occupera de ça pour toi. GCC compile mal. Je passe beaucoup de temps a lui expliquer mon code C de telle facon qu'il est traduit de maniere optimale.
>Mais ce n'est pas du tout dans ton esprit "le kernel gère tout",
Le format est bien evoultif puisqu'il autorise a autoriser ttpack
> ce n'est pas pratique. Totalement transparent au niveau utilisateur.
> et shrnklib compresse nettement moins bien que ttpack Pas tant que ca. Et elle decompresse bien plus vite.
Ce qui est plus important.
>En le compilant en une librairie dynamique? Thomas va te tuer si tu fais ça. Pourquoi ? La licence me l'interdit ?
>Ce qui n'est pas vraiment le cas pour les programmes pour TI-89/92+/V200 normalement. J'aimerais le faire. Mais Tigcc m'en empeche.
>Et ne me ressors pas la blague des packs archive avec une DLL par fonction, j'ai déjà montré que ça ne tient pas du tout la route. Tu n'as rien demontre du tout. Au contraire, tu parlais de quelques inconvenients mineurs, mais en aucun cas que ca ne pouvait pas marcher.
>Tout le monde ne connaît pas par cœur les numéros de la centaine de fonctions de genlib. Je pense d'ailleurs que même toi, tu ne les connais pas par cœur. Je n'ai jamais dit que c'etait facile. Mais lisible.
), je sais ce que c'est.
>Et pourquoi? Un nom est suceptible de changer a cause de la langue (TI-basic),
ou de mises en conformite sur ce que fait reellement la fonction.
>Parce que chez nous, la discussion n'est plus entre _nostub et kernel, mais entre _nostub et FlashApps.
Je sais. C'est bien ce que je disais. Franchement kernel rulez ! kernel >> nostub >> FlashApps
>Il n'y a pas que les jeux genlib à être "concus pour etre beaus, riches et complexes", et pourtant les autres ont bien réussi à sortir des versions 1.00 (TI-Chess, Duke68k, ...). Ti-Chess est un jeu d'echec, donc les graphismes c'est a part.
What a great game of chess. There's nothing more to it than that. This latest version features an improved menu, some of the best graphics on a calc
, and an unbeatable AI (for me at least). For its time, this program is unbeatable.
>Ce n'était pas le seul problème qu'il avait. Il y avait pas mal de bogues. Il a toujours fallu avoir la dernière version de genlib pour chaque version de Total Destruction. Et ou est le probleme ? Faire une mise a jour est elle une operation si difficile ?
>2. Quand j'en suis déjà au handle, je m'attends à ce que tout le travail sur les HSym et SYM_ENTRY ait déjà été fait, et EM_twinSymFromExtMem en fait partie. Quelle idée que de passer un bloc archivé à une fonction d'exécution! kernel::exec ne devrait pas accepter cela (je sais, c'est trop tard pour changer etc., pas la peine de me dire ça). La méthode propre est d'appeler EM_twinSymFromExtMem avant d'essayer d'obtenir le handle. Pourquoi ? C'est a elle de se rendre compte que le fichier est archive et necessite un traitement particulier.
>Donc tes jeux ne sont pas si complexes que tu prétends.
Je code en ASM de maniere optimise (en taille et en vitesse).
Et eux en C,
>Bon, je répète en accentuant la locution importante: "Ils ont retiré quelques fonctions isolées (une douzaine), mais en général, ils rajoutent des fonctions, ils n'en retirent pas." Et que fais-tu de ceux retires ?
>Ou que l'offset ne change pas. Il n'y a que 8 instructions devant celle qui nous intéresse, et elles ont toutes peu de chances de changer à moins que TI ne se mette à utiliser l'équivalent de -fomit-frame-pointer.
Moi qui est fait un sprintf avec gcc, je suis obblige de rajouter a la main 2 'nop', pour que ca marche
PpHd a écrit :
>Il suffit de le mettre dans ttstart. Puis on recompile un nouveau lanceur personnalisé à partir de la mise à jour de ttstart et c'est bon.
Et ttstart deviendrait un kernel non-installable
>Bah, j'ai codé *scanf (source de 11 KO, routine de 1 KO) en assembleur GNU et je n'ai pas trouvé ça si lourd que ça. Peut etre, mais a t'entendre, un peu quand meme.
), mais maintenant, j'ai pris l'habitude et ça ne me dérange plus du tout. Et puis, je te rappelle qu'il y a toujours --register-prefix-optional.
Par ailleurs, il faudrait verifier si le code que j'ai fait de lecture des nombres reels (PedroM / EStack.asm) ne permettrait pas de reduire encore la taille du code (Plus d'appel a Atof).
>>>C'est justement ça ton erreur, à mon avis.
>>Tu veux donc un exemple ou c'est impossible de faire autrement ?
>Si tu en as un, poste-le. On parle de quoi ?
>Est-il si grave que les 3 ou 4 programmes (je ne pense pas qu'il y en ait plus que ça) qui utilisent les 3 RAM_CALLs maintenant reçoivent un mélange de fontes du boot et de fontes de la ROM?
Je perdrais mon honneur
>Pourquoi en aurait-il besoin puisque, vu qu'il utilise la version actuelle, le programme doit forcément être adapté à la vitesse de la version actuelle? Laisse au programmeur le soin d'en decider.
>>>Les jeux avec FAT Engine ou d'autres techniques 3D tournent souvent autour des 10 FPS. Les jeux en 2D ont des framerates nettement plus élevés.
>>Ils sont plus interressants aussi.
> Hein ? Ben le FAT engine, ca va 2s.
>Ah tiens, tout d'un coup. Sur un jeu de 33 KO ou plus, les routines de niveaux de gris font 3% ou moins. Donc si tu n'es pas à 3% près, arrête de te plaindre du fait qu'ils utilisent les routines de niveaux de gris en librairie statique. Oué, sauf que ca me pose des problemes pour faire fonctionner des vieux jeux nostub qui utilisent vos vieilles routines de gray, qui marchent pas sur PedroM ! Et y'a pas les sources !
>Quelle idée stupide!
>Crois-tu vraiment qu'un nag screen de style shareware au début de chaque programme juste pour parler de ttstart à l'utilisateur soit une idée intelligente? Oui, sans aucune hesitation.
>Je n'ai pas le temps d'essayer, mais je pense bien que CF ou SMA pourraient très bien fonctionner avec ExtGraph.
>Et SMA est trop rapide de toute façon.
Ok. Tu as les sources de SMA en plus
>Non, il faut installer un kernel, donc on ne peut pas les lancer directement. Une fois installe PreOS, tout se lance directement.
>Mais non! C'est quoi cette arrogance de vouloir toujours imposer son choix à l'utilisateur?
ET LES LIBS STATIQUES C'EST PAS UN TRUC IMPOSE A L'UTILISATEUR ! Et si l'utilisateur a envie de mettre a jour son programme favori pour quelques corrections de bogues, il peut facilement mettre a jour la lib externe sans attendre le bon vouloir du programmeur !
>(i) C'est un effet artificiel, pas beau.
>(ii) Les masques sont là pour ça. Et c'est un moyen plus flexible. Par exemple, en codant son propre masque, on peut choisir soi-même la largeur du halo. Plus de memoire consommee.
>Pour le clavier, tu as _keytest, _keytest_optimized et _rowread dans TIGCCLIB. C'est mieux le joypad.
>Pour le link, les ROM_CALLs marchent très bien si on les utilise correctement. Je dis pas le contraire. C'est juste plus rapide.
>Il suffit d'utiliser OSContrastUp et OSContrastDn pour avoir des "effets de lumière". Et pour avoir des sources de lumieres ponctuelles ?
>Mais [les effets d'ondulation par tables DHZ/HDZ] c'est juste un effet spécial dont on peut très bien se passer. Et y a-t'il d'autres personnes que toi à utiliser ça? Oué.
>Si. Il y a bien des jeux "temps réel" codés avec ExtGraph! Entre "jeux temps reel" et "jeux d'actions". Il y a une marge importante.
>Bonne change pour le faire signer par TI.
Pourquoi le faire signer par TI ? Pas besoin
>Partout dans les discussions kernel vs. _nostub précédentes. Je n'ai jamais ete convaincus par ces calculs, surtout qu'avec la base tigcclib commune, beaucoup de programmes partagent les memes routines.
>2. Comme dit plus haut, il n'y a pas tellement de fonctions utiles qui n'y sont pas. DrawFace ?
>1. On peut aussi mettre à jour ExtGraph pour d'autres machines. Il suffit de relinker.
>2. Si la taille d'écran change radicalement, le programme devra de toute façon être porté A condition d'avoir les sources.
>Ça dépend de la librairie. Dans userlib et graphlib, il y en a plein qui le sont, ou devraient l'être puisqu'elles sont déjà dans AMS: userlib::idle_loop, graphlib::clr_scr etc. Elles sont utilisees par des programmes.
>Et puis, tu fais comment en cas d'erreur? Tu appelles exit dans genaux_init? Et si le programme a alloué de la mémoire avant, il fait quoi? Obligé d'utiliser atexit? C'est tout sauf pratique. Il fait quoi ? Il utilise l'ancienne methode, c'est tout.
>Si. Ce n'est même pas un facteur 3/2! C'est loin d'etre negligeable.
>Parce que tu utilises des lignes et des cercles plutôt que des sprites pour tes personnages. Faux. J'utilise des sprites pour mes personnages.
>Solution plus simple: sors tes sources, comme ça on pourra les recompiler s'il y a un problème. Si tu ne veux absolument pas les publier, envoie-les à une personne de confiance et qui reste dans la communauté. C'est loin d'etre plus simple.
>Je sens que Thomas ne va pas aimer. Et moi non plus d'ailleurs. Le format PPG est là pour être respecté! En quoi c'est de l'irrespect du format PPG ? Il n'a rien a voir la dedans.
>Le standard de commentaires _nostub est plus propre et mieux défini que le "standard" imposé par l'usage des kernels. Je vois pas en quoi ca peut etre plus propre et mieux definis.
>Et si le standard de commentaires _nostub est du vaporware, PedROM, c'est quoi ? Je n'ai jamais donne de date de sortie.
>En effet. Allez voir les comments du thread qui parle de CC sur TI-Net, avant qu'il y en ait un qui se rende compte qu'il y a une version _nostub... Il y a des trucs du genre "I'm not going to put an evil shell on my calculator just for that" (écrit tel quel si je ne me suis pas trompé; le 'evil shell' est écrit, en tout cas), ce qui est somme toute assez clair... Oui. C'est un extremiste qui ne connait pas ce que le mot 'diable' signifie et qui l'utilise a tord et a travers.
Ou qui ne connait que Doorsos.
>Ca n'est pas sale. Ca fait gagner beaucoup de RAM, par contre... Du reste, XPort (un autre shell en grayscale), décharge aussi la plus grosse partie quand un programme est exécuté. C'est pas tres propre.
>Oui, mais programmer spécifiquement pour PedROM veut dire programmer pour une petite minorité de gens...
Et ? De toute facon, pour le moment c'est impossible de programmer specifiquement pour lui.
>Et puis ça serait trop bête de se limiter aux AMS 2.xx, sur lesquelles un certain nombre de programmes kernel-based ne fonctionne pas du tout... Tiens ? Tu t'interresses a la compatibilite AMS 1.0x. Je croyais etre le seul.
XDanger a écrit :
> Par ailleurs, il faudrait verifier si le code que j'ai fait de lecture des nombres reels (PedroM / EStack.asm) ne permettrait pas de reduire encore la taille du code (Plus d'appel a Atof).
Tu penses vraiment que le support pour PedROM sera ajouté dans TIGCC (à part peut-être pour détecter PedROM et ne pas exécuter le programme le cas échéant, autrement dit alourdir le code de startup pour un truc dont la majorité des personnes n'ont rien à faire) ? Moi, je ne suis pas dans la TIGCC Team, je n'ai pas pouvoir de décision là-dessus, mais ça m'étonnerait. Et en tout cas, je ne suis pas spécialement favorable à un tel ajout.
>>Et si le standard de commentaires _nostub est du vaporware, PedROM, c'est quoi ?
>Je n'ai jamais donne de date de sortie. A ma connaissance, personne n'a donné de date de sortie pour le standard de commentaires _nostub.
>>Oui, mais programmer spécifiquement pour PedROM veut dire programmer pour une petite minorité de gens...
>Et ? De toute facon, pour le moment c'est impossible de programmer specifiquement pour lui. Ca veut dire que ça va le devenir ? Incompatibilité power !
PpHd
a écrit : Mais ca sera facile de corriger les kernels pour faire fonctionner le reste.
Mais est-ce necessaire ?
Mais non. Y'aura les kernels pour rajouter une couche d'emulation
Uther Lightbringer
a écrit : c'est déjà ca! Imagine le gain de place si tigcclib était une lib dynamique .
>Ben si, on peut aussi faire un jeu qui utilise ExtGraph sans savoir comment fonctionne genlib. L'inverse est aussi vrai!
Oui mais les 5% de jeux qui restent valent plus que tes 95% de jeux restants
PreOS est open-source non? N'importe qui d'assez doué pourra faire les modification nécéssaires.
Les derniers experts pro-kernel (PpHd par exemple) quittent la communauté petit à petit.
>Peut-être, mais la différence de taille ne vient pas de là. Bien sur le kernel permet bien plus de chose.
tant pis dans le cas d'un écran plus petit(ce dont je doute fortement), il faudrait tronquer. Et en Nostub il faudrait rajouter un patch ou une des nombreuses TSR qu'il faut ajouter pour "approcher le format du kernel.
XDanger a écrit :
> Mais est-ce necessaire ? Peu de programmeurs les utiliseront. Mais le but, c'est d'être une doc complète, la plus complète possible par les descriptions de fonctions et par le nombre de fonctions/variables. TIGCCLIB est très au-dessus de tiams.h/TIFS/la doc de TIFS là-dessus (sauf pour des topics qui n'intéressent presque personne dans TIGCC, notamment les FlashApps).
PpHd
a écrit : Marche pas sur AMS 1.0x
L'avant-derniere version de PreOs supporte l'auto installation du kernel.
Tu es plus fou que je pensais...
Il te faut vraiment faire des cours d'utilisabilité, et rapidement! Commence par lire ça et ça.
What a great game of chess. There's nothing more to it than that. This latest version features an improved menu, some of the best graphics on a calc
, and an unbeatable AI (for me at least). For its time, this program is unbeatable.
)
Littleboy
a écrit : Et j'aimerais savoir pour quelles raisons exactes (pas d'arguments d'autorité s'il te plait) l'auto-installation d'un kernel est un leak de mémoire ?
Justement non, PpHd s'amuse à mettre du "No" partout dans _nostub avec un "but ..." en dessous. Alors que ça devrait être "Yes because", pas "No but". Ça rend les commentaires très subjectifs.
N'importe quoi. Tu connais les lanceurs?
compatibilité avec les vieux programmes pour des kernels pour d'autres calculatrices. En l'occurence avec les programmes pour Fargo. Ça n'a plus beaucoup d'importance, vu le nombre de programmes natifs à être développés.Le fait d'être compatible est être dépase
alors TIGCC est complètement dépassé puisse qu'il est compatible avec les vieilles ROM
> Volées sur un format prétendu dépassé mais qui a été bien plus visionnaire vu qu'il les gère depuis des années.
Et les kernels l'ont copié sur Fargo. Et franchement, notre système est mieux fait que celui des kernels: il permet tout type de données, pas seulement les commentaires. Et il est extensible: on peut rajouter toutes sortes de types de données.
Parce que ces TSRs sont séparés, pas unifiés. Prends PreOs et supprime le support pour le format kernel et tu verras que tu auras gagné rapidement 2 KO ou presque.C'est bien ce que je dis on gagne a rassembler dans le kernel.
>> Et puis, "programmer en _nostub" ne veut pas forcément dire "programmer seulement pour AMS". La preuve: Backgammon marche très bien sous Pedrom
>Oui, mais programmer spécifiquement pour PedROM veut dire programmer pour une petite minorité de gens... En effet. Je ne pense même pas à programmer exclusivement pour Pedrom.
> Uther Lightbringer a écrit :ne serais ce que gray.h stdio.h que l'on retrouve dans un nombre énorme de programmes, feraient gagner pas mal de place
c'est déjà ca! Imagine le gain de place si tigcclib était une lib dynamique . Il ne faut pas rêver. Les programmes TIGCC utilisent en général très peu de routines dans tigcc.a. TIGCCLIB est avant tout une collection de déclarations de ROM_CALLs.
J'en doûte. ExtGraph est nettement plus facile à utiliser que genlib.Et ExtraGraph est aussi bien plus limité. Genlib possède pas mal de fonction que tu n'a pas a réaliser toi même.
Il permet une seule chose de plus: le format kernel. C'est cela qui bouffe toute la place que PreOs a en plus par rapport à KerNO!Tu est de mauvaise fois. Je te referais pas toute la liste de tout ce que permet le PreOS parceque ca y est plusieurs fois déja dans ce topic. Et de toute façon le support du format kernel jutifie cela a lui tout seul amplement je plus cela ce grepropement dans un seul TSR permet de gagner de la place. cf plus haut
> Tu es plus fou que je pensais...
Il te faut vraiment faire des cours d'utilisabilité, et rapidement!
Commence par lire ça et ça. Pour quelqu'un qui se plaignait du mépris de certains utilisateurs de ce forum, c'est pas mal...
cf ci-dessus
Littleboy a écrit :
Et j'aimerais savoir pour quelles raisons exactes (pas d'arguments d'autorité s'il te plait) l'auto-installation d'un kernel est un leak de mémoire ?
Parce que la mémoire libre avant l'exécution du programme est x, et la mémoire libre après l'exécution du programme est x-(taille du kernel). D'où un leak de (taille du kernel) octets de RAM.
