Malheureusement, le code d'affichage de message, de log, de timing, et tout, est mélangé au code de calcul, et ça, ce n'est pas bon.
Je me pose une quetion. Typiquement, en assembleur, je me tape des trucs comme ça :
pea.l StrDefaultConfig(pc) ; File used pea.l StrDefaultConfigFile(pc) ; Disp that we use a default file bsr Print2Stdout addq.l #8,sp lea.l StrDefaultConfigSymStr(pc),a0 ; Default config file bra.s \Next ; And search for it
Donc sur 6 lignes de code, il y en a 4 "efficaces", les 4 autres servant à gérer une sortie. En clair, ça fait dégueulasse à l'oeil (déjà j'aime pas, j'aime bien le code "beau"), puis c'est le bordel opur relire, maintenir, corriger etc...
La question : Qu'y a-t-il comme solution ?
J'ai pensé à utiliser un trap :
moveq.l #OUTPUT_012,d0 trap #14
Et en fonction de OUTPUT_xyz, on va pousser la chaine format qui va bien, la sous-chaine truc et l'entier bidule pour afficher ce qu'on veut.
Maintenant, j'aimerais asvoir comment on fait dans un vrai beau programme écrit par un bon codeur ? J'ai pratiquement aucune expérience de ce côté en fait

Une macro peut-être, pour gagner en lisiblité ? Parce que j'ai aussi pensé à une autre solution, basée sur l'int 1 et une pile FIFO :
PRINT Chaine1, chaine2, entier1
Avec PRINT une macro qui fout les données voulues dans un buffer servant à l'int 1, qui va dépiler et ajuster le pointeur de pile. PRINT met aussi un numéro dans un derigstre (au pif, d7), pour savoir qu'elle a du boulot, qu'elle doit reagrder sa pile et bosser. Puis elle refout d7 à 0 à la fin. (inconvénient : lors des romcalls ^^)