PpHd (./90) :
Installe le alors avec preos("strict_calculator")Il sera strict sur la variable CALCULATOR.
Du coup on ne peut plus du tout lancer les anciens programmes, même s'ils n'ont pas besoin d'être patchés, et même si on les patche avec
GhostBuster (parce que
GhostBuster ne peut pas mettre le flag
_ti89ti à cause du problème du prochain paragraphe).
Martial Demolins (./89) :
et que le test se résumait souvent à tst.b CALCULATOR / bpl machin
Justement, tu viens de soulever un autre problème là. Le test est normalement un
bne dans les programmes prédatant
PreOs 0.70, pas un
bpl.
PreOs utilise donc
CALCULATOR==0 pour les programmes qui n'ont pas le flag Titanium et
CALCULATOR==-1 pour ceux qui l'ont. Du coup ça empêche de mettre le flag dans un patcheur comme
GhostBuster. Cette définition est aussi inconsistente avec celle de TIGCC (du coup TIGCCLIB est obligé de traduire* la valeur de
CALCULATOR en mode kernel

) et des premiers kernels pour la Titanium (
TitaniK et
Iceberg). De plus,
CALCULATOR a toujours été non signé dans TIGCC, donc la valeur
-1 n'a aucun sens.
Mais ça fait longtemps que je dis tout ça à PpHd (depuis
PreOs 0.70 au moins, même avant sa sortie officielle si je me rappelle bien) et il n'a pas tenu compte de mes remarques.
* traduire comme ça:
/* PreOs 0.70 says CALCULATOR is -1 on the Titanium. We don't. */
#define CALCULATOR ((signed char)_CALCULATOR[0]>0?_CALCULATOR[0]:0)
Heureusement que GCC est capable d'optimiser les tests les plus courants (
if (CALCULATOR),
if (!CALCULATOR),
if (CALCULATOR==constante)).