j'aimerais savoir, où est ce que la ti stocke toutes les representations de son code ascii ?
Pollux
: Euh, ça c'est faux. C'était un défaut de conception classique et connu, corrigé depuis belle lurette, et bidoo n'aura aucun pb s'il n'inclut pas des headers préhistoriques...
(et même ce défaut de conception, c'est facile de le corriger, ça prend juste une 50aine d'octets dans le kernel...
en nostub, ça aura été obligatoire de tout patcher ou recompiler manuellement)
Kevin Kofler
:Pollux
: Euh, ça c'est faux. C'était un défaut de conception classique et connu, corrigé depuis belle lurette, et bidoo n'aura aucun pb s'il n'inclut pas des headers préhistoriques...
Headers "préhistoriques" qui sont livrés avec TIGCC dernière édition. Et je ne vois pas d'autre solution acceptable pour TIGCC que de supprimer carrément ces equ, vu que l'alternative n'est pas portable (PreOs/Iceberg only).
Et enfin, des programmes comme Solar utilisaient ce hack sans les macros! (Cf. mon explication pourquoi mon essai de correction dans Iceberg ne marchait pas pour Solar, il y a des adda.w #$800,%an explicits!) Donc changer le header ne servirait à rien pour Solar.
(et même ce défaut de conception, c'est facile de le corriger, ça prend juste une 50aine d'octets dans le kernel...
en nostub, ça aura été obligatoire de tout patcher ou recompiler manuellement)
Pas si on utilise les APIs documentées, c'est-à-dire DrawStr, plutôt que ce hack.
Et sinon, les APIs documentées de AMS 2 permettent aussi de récupérer proprement les adresses des fontes. Cf. la routine de Lionel Debroux (qui inclut aussi un hack pour AMS 1 et une API spéciale (qui ressemble assez à un hack, mais c'est documenté et officiel) de PedroM pour PedroM). Si vraiment tu veux récupérer les adresses des fontes, utilise la routine de Lionel!
Pollux
:Kevin Kofler
:Pollux
: Euh, ça c'est faux. C'était un défaut de conception classique et connu, corrigé depuis belle lurette, et bidoo n'aura aucun pb s'il n'inclut pas des headers préhistoriques...
Headers "préhistoriques" qui sont livrés avec TIGCC dernière édition. Et je ne vois pas d'autre solution acceptable pour TIGCC que de supprimer carrément ces equ, vu que l'alternative n'est pas portable (PreOs/Iceberg only).
Si "acceptable pour TIGCC" = "qui défavorise au max le mode kernel", tu as tout à fait raison
Et enfin, des programmes comme Solar utilisaient ce hack sans les macros! (Cf. mon explication pourquoi mon essai de correction dans Iceberg ne marchait pas pour Solar, il y a des adda.w #$800,%an explicits!) Donc changer le header ne servirait à rien pour Solar.Ah ben là c de la faute de Solar, pas du kernel...
Tout est dit. Les progs buggés sont buggés, tant pis pour eux.(et même ce défaut de conception, c'est facile de le corriger, ça prend juste une 50aine d'octets dans le kernel...
As-tu lu la discussion? Il est impossible de corriger ça dans le cas général sans gaspiller de la mémoire. (Et c'est de la RAM qu'il faut gaspiller si on ne veut pas avoir des problèmes avec la réorganisation de l'archive.)
... du grand Kevin Kofler, merci ...en nostub, ça aura été obligatoire de tout patcher ou recompiler manuellement)
Pas si on utilise les APIs documentées, c'est-à-dire DrawStr, plutôt que ce hack.
Et sinon, les APIs documentées de AMS 2 permettent aussi de récupérer proprement les adresses des fontes. Cf. la routine de Lionel Debroux (qui inclut aussi un hack pour AMS 1 et une API spéciale (qui ressemble assez à un hack, mais c'est documenté et officiel) de PedroM pour PedroM). Si vraiment tu veux récupérer les adresses des fontes, utilise la routine de Lionel!
Je vois pas pkoi qd c la routine de Lionel qui récupère les fontes, c propre, alors que si le kernel implémente une méthode similaire, c sale(méthode qui pourra évoluer avec les mises à jour d'AMS et/ou du hard, soit dit en passant...)
PpHd :
>Headers "préhistoriques" qui sont livrés avec TIGCC dernière édition. C'est bien la preuve que tigcclib est outdated.
>Et je ne vois pas d'autre solution acceptable pour TIGCC que de supprimer carrément ces equ, vu que l'alternative n'est pas portable (PreOs/Iceberg only). dit Kevin qui veut faire du nostub meme en mode kernel.
>Il y en a ici qui n'ont toujours pas compris ce qu'est une API et ce qu'est un hack... Utiliser la routine de Lionel est un hack. Utiliser les ramcalls est une API.
sinon TeOS -> plantage
Kevin Kofler
:Pollux"acceptable pour TIGCC" == "portable" != "PreOs (et forks de PreOs) only"
:Kevin Kofler
:Pollux
: Euh, ça c'est faux. C'était un défaut de conception classique et connu, corrigé depuis belle lurette, et bidoo n'aura aucun pb s'il n'inclut pas des headers préhistoriques...
Headers "préhistoriques" qui sont livrés avec TIGCC dernière édition. Et je ne vois pas d'autre solution acceptable pour TIGCC que de supprimer carrément ces equ, vu que l'alternative n'est pas portable (PreOs/Iceberg only).
Si "acceptable pour TIGCC" = "qui défavorise au max le mode kernel", tu as tout à fait raison
Je suis bien d'accord, mais du coup, je me suis fait taper dessus par les fanatiques du forum TimeToTeam parce que j'ai osé traîter un de leurs dieux d'"incompétent"...Et enfin, des programmes comme Solar utilisaient ce hack sans les macros! (Cf. mon explication pourquoi mon essai de correction dans Iceberg ne marchait pas pour Solar, il y a des adda.w #$800,%an explicits!) Donc changer le header ne servirait à rien pour Solar.Ah ben là c de la faute de Solar, pas du kernel...
Et ça ne résout quand-même pas mon problème (faire marcher Solar sur Titanium+Iceberg)...
Tout est dit. Les progs buggés sont buggés, tant pis pour eux.(et même ce défaut de conception, c'est facile de le corriger, ça prend juste une 50aine d'octets dans le kernel...
As-tu lu la discussion? Il est impossible de corriger ça dans le cas général sans gaspiller de la mémoire. (Et c'est de la RAM qu'il faut gaspiller si on ne veut pas avoir des problèmes avec la réorganisation de l'archive.)
Je vais probablement mettre ma détection des macros DoorsOS dans Iceberg (j'ai déjà la version de Iceberg qui fait ça, ne reste qu'à la tester sur un programme qui utilise ces macros et la sortir) et patcher Solar individuellement (le readme dit même explicitement qu'on a le droit de distribuer des versions modifiées, mais il n'y a quand-même pas les sources- <SARCASM>vive</SARCASM> les logiciels en théorie libres, mais qui vous obligent à modifier des binaires).
... du grand Kevin Kofler, merci ...en nostub, ça aura été obligatoire de tout patcher ou recompiler manuellement)
Pas si on utilise les APIs documentées, c'est-à-dire DrawStr, plutôt que ce hack.Il y en a ici qui n'ont toujours pas compris ce qu'est une API et ce qu'est un hack...
Et sinon, les APIs documentées de AMS 2 permettent aussi de récupérer proprement les adresses des fontes. Cf. la routine de Lionel Debroux (qui inclut aussi un hack pour AMS 1 et une API spéciale (qui ressemble assez à un hack, mais c'est documenté et officiel) de PedroM pour PedroM). Si vraiment tu veux récupérer les adresses des fontes, utilise la routine de Lionel!
Je vois pas pkoi qd c la routine de Lionel qui récupère les fontes, c propre, alors que si le kernel implémente une méthode similaire, c sale(méthode qui pourra évoluer avec les mises à jour d'AMS et/ou du hard, soit dit en passant...)
Parce que la routine de Lionel utilise des routines documentées de AMS >=2.00 pour récupérer les fontes utilisées par AMS (qui peuvent aussi être modifiés avec ROMedit ou redirigés par une FlashApp, d'ailleurs), alors que le kernel utilise un hack pour trouver les fontes du boot (pour la même raison qui cause aussi les problèmes avec la Titanium: les offsets fixes entre les fontes attendus par les programmes).
PpHd :
>PreOs fait une recherche d'une séquence de 4 octets dans la ROM et prend la première adresse contenant cette séquence (un hack).
Si seulement c'etait le hack le moins portable utilise par Preos...
void _main(void) { while (GetArgType (top_estack) != END_TAG) top_estack = next_expression_index (top_estack); top_estack--; unsigned char truc[8]= { 0b00111000, 0b01000100, 0b01000100, 0b01111100, 0b01000100, 0b01000100, 0b01000100, 0b01000100}; push_END_TAG(); long i; for(i=0;i<0x40000;i+=2) if(peek(i)==truc[0] && peek(i+1) ==truc[1] && peek(i+2)==truc[2] && peek(i+3)==truc[3] && peek(i+4)==truc[4] && peek(i+5)==truc[5] && peek(i+6)==truc[6] && peek(i+7)==truc[7])push_longint(i); push_LIST_TAG (); return; }