Les RAM_CALLs de fonts ne sont pas sales, non, en effet (je parle bien entendu des kernels, PedroM n'est pas concernée)... Faut-il que je me répète encore une fois sur tous leurs défauts ? J'en ai déjà mis une couche de façon implicite par mini-message...
> Je te parle du caractere technologique, pas de la qualite, ni du reste
J'ai déjà dit que le kernel avait des trucs que le _nostub n'avait pas... Mais pour la technologie, ça dépend des trucs. Les RAM_CALLs de fonts sous les kernels sont faits de façon très peu technologique, brute-force, très lente, et ils ne respectent même pas le choix possible de l'utilisateur (bon, OK, c'est plus ou moins dans la spécification du truc, mais ça n'est pas bon à mon avis).
> C'etait parfaitement valable si ca ne devait fonctionner que sous AMS 1.00.
Oui, mais comme Kevin l'a bien dit, il était impensable qu'il n'y ait pas d'updates...
> Et la plupart des kernels des autres calcs font +/- la meme chose.
Peut-être, mais ça n'est pas pour ça que c'est bien, sûr, propre. Il n'y a qu'à voir ce qui s'est passé en 1999, quand on est passé à AMS 2.xx.
Et puis Kevin a dit que ça n'était pas exactement la même chose, que c'était mieux fait et plus sûr sur d'autres machines.
>> En sachant que ce CAS n'aurait un intérêt réel que s'il était plus performant que celui d'AMS, au niveau de celui de la HP-49 par exemple (bon courage...)
> On peut reprendre les sources de celui de la 49
Ils sont disponibles ?
>> Dans le genre, utilisation d'adresses absolues pour des trucs aussi simples que MainHandle ou HomeHandle
> Adresses absolues? Sûr? Si je me rappelle bien, ce sont des numéros de handles constants, pas des adresses absolues, qui sont utilisées. Mais le résultat est le même.
Sûr. Je posterai un extrait d'une documentation ©ACZ 1999 en édit (je poste d'abord, car je n'ai pas envie de perdre le message, et j'ai l'impression que mon PC va planter).
[EDIT: mon PC n'a d'ailleurs pas manqué de planter...]
L'extrait est ci-dessous. Je trouve qu'ils ont été laxistes, ne serait-ce que parce qu'ils auraient très bien pu se rendre compte que le handle de la EStack et l'adresse de début du handle de la EStack étaient à proximité de top_estack, et mettre des adresses absolues pour ces variables aussi... Et il y a bien d'autres trucs dont ils auraient pu se rendre compte, qu'ils auraient transformés en adresses absolues, avec des résultats catastrophiques...
;******************************************
;TI-89 equates and macros
;Assembly Coder's Zenith 1999
;******************************************
LCD_MEM equ $4c00 ;ends $5aff
_LCD_MEM equ $4c00
main_lcd equ $4c00
globals equ $4c00
_APD_INIT equ $5b10 ;.l, initial APD value
_APD_TIMER equ $5b14 ;.l, current APD value
_APD_FLAG equ $5b42 ;set if APD terminated
MaxHandles equ $7578
TopHeap equ MaxHandles+$a
Heap equ MaxHandles+$16
GETKEY_CODE equ MaxHandles+$1e
kb_globals equ $759e
kb_vars equ kb_globals
KEY_PRESSED_FLAG equ kb_globals+$1c
ST_flags equ $75a6
HomeEntryHandle equ $7708
ReturnValue equ $770e
FolderListHandle equ $7a18
MainHandle equ $7a16
DefTempHandle equ $7a14
_ram_call_000 equ $7ba4
_ram_call_02f equ $7474
_ram_call_109 equ $76fc
_ram_call_10b equ $6554
_ram_call_10c equ $6558
_ram_call_2a3 equ $7444
> Je te rappelle qu'il y a d'autres méthodes encore plus propres sur AMS 1.
Oui, c'est vrai... En revanche, à ma connaissance, il n'y en a pas de plus propre pour d'autres champs de pSymPG.
>>Grossièrement faux... Tu donnes des nombres qui sont n'importe quoi.
99,99%, ça veut dire 9999 ROM_CALLs sur 10000. Il n'y en a que 0x607=1543, et il y a bien plus d'un ROM_CALL d'AMS 2.xx qui est utilisé à grande échelle ou qui va l'être à assez court terme (quelques mois).
>Ok j'exagere. 99% des fonctions utilisees.
Eh non. Kevin a fait une liste de 23 ROM_CALLs sur moins de 700, c'est à dire un peu moins de 3%. Ajoutons les ROM_CALLs que j'utilise dans tthdex, qui seront bientôt utilisés dans TIGCCLIB (fonctions de FlashApps pour les fonts sous AMS 2.xx...) et on arrive à plus de 30 ROM_CALLs. ExtendeD utilise dans FlapHider plusieurs autres ROM_CALLs de FlashApps dont on ne connaît pas le nom. primary_tag_list est utilisé par d'autres programmes, un a été posté récemment sur notre forum. Ajoutons à cela l'utilisation de fonctions de Progress Bars, un programme qui les utilise a été releasé aujourd'hui sur ticalc.org.
A moyen terme, des fonctions void(void) qui par exemple pushent juste l'entier 0, 1, -1 sur la EStack, seront utilisées aussi. C'est plus petit que toute autre méthode. On peut même le faire en F-Line sans souci, vu que la plupart des programmes de CAS nécessitent AMS 2.04+ de toute façon.
Tu es convaincu, ou faut-il qu'on en rajoute encore et que tu t'enfonces un peu plus dans ta mauvaise foi ?
>>>Il y a au moins trois fonctions de FlashApps dans la nouvelle version du support de fonts - pour être compatible avec toutes les versions d'AMS, sans faire des trucs lents et pas sûrs (sous AMS 2.xx, une recherche de sprite ne reflète pas le choix possible de l'utilisateur qui peut redéfinir les fonts).
>>Hum. DrawStr fonctionne tres bien.
>Pour une fois, on est d'accord. (Pourquoi réimplémenter les ROM_CALLs dans les programmes?)
Pour avoir plus de vitesse quand on en a besoin, au détriment bien entendu de la taille. Tu avais dit toi-même que la réimplémentation était envisageable si on allait 10 à 100 fois plus vite, ce qui est le cas sous AMS 2.xx.
>>>Citons aussi certains ROM_CALLs de la Flash qui seront utilisées par l'un ou l'autre des file-explorers, notamment le ROM_CALL qui renvoie le début de l'archive - ça va remplacer un gros bloc de code lourd qui fait la même chose ou même moins (le bloc peut ne pas tenir compte des FlashApps et donner un résultat erroné, par exemple). Et c'est parfaitement intégré dans le système, parfaitement propre, l'appeler prend moins de 10 octets...
>>Super utile.
>Ben oui, c'est utile.
PpHd, ça n'est pas parce qu'à toi, ça paraît complètement saugrenu, que ça n'est pas utile. Je me sers de cette fonction dans ttcinfo, ça marche parfaitement. Ca a remplacé un bloc de plus de 200 octets qui en plus, je l'ai su quand AMS 2.08 a été releasé, ne supportait pas AMS 2.08 et 2.09 89. Il me semble qu'il ne supportait pas les FlashApps non plus. A comparer avec les moins de 10 octets nécessaires pour l'appeler, surtout si on utilise des ROM_CALLs en F-Line.
