15Fermer17
deephLe 24/08/2013 à 18:39
Génial, merci ! grin

Enfaite il y a toujours du mouvement sur ton site, j'avais pas fait gaffe ! sorry

À mon avis il vaudrait mieux fusionner le blog avec les news du site, parce que là on passe un peu à côté.

Il me semble que tu avais un peu travaillé avec les programmeurs de z88dk, non ? Parce qu'on dirait, sauf erreur de ma part, que les programmes 83+ sont mal générés (les deux octets de l'header qui spécifient pour quelle calc c'est sont mal choisis, ça donne ceux de la 83, du coup ça bug sur wabbitemu mais pas sur vti/tilem). Et puis ce serait sympa d'ajouter quelques fonctions à leur compilo assembleur ('$' pour le SMC, macro asm etc... Mais si vraiment c'est pas possible je vais essayer d'adapter le fichier source généré pour spasm).

Autrement j'ai commencé à porter des add-in casio (qui sont tous en C et rarement en C++ apparemment), mais il me manque encore quelques routines, notamment celle qui s'appelle RTC_getticks() qui n'est autre qu'un timer à partir de minuit qui s'incrémente 128 fois par seconde. Or seules les 84+SE ont une horloge donc j'ai pensé utiliser les interruptions (qui s'exécutent environs 200 fois par secondes). J'ai pas testé mais ça donnerai quelque chose comme ça :
#if defined TL_TIMER #asm interruption_start: di exx defb 21 ; ld hl, timer: defw 0 inc (hl) exx ei ret interruption_end: #endasm #define interrupt_jump_table 0x9900 #define interrupt_offset 0x9a9a void TL_start_timer(void){ #asm start_timer: di ld hl,interrupt_jump_table ld (hl),$9a ld bc,256 ld a,h ld d,h ld e,b ldir ld hl,interruption_start ld de,interrupt_offset ld bc,interruption_end-interruption_start ldir ld i,a im 2 ei #endasm } #define reset_timer(); asm("xor a\nld (timer),a"); void TL_get_ticks(void){ #asm ld hl,(timer) #endasm } #endif

Le seul souci avec cette méthode c'est que le timer se reset toutes les 5.46 mn (65536/200=327.68 s) et qu'on ne pourra pas se servir des interruptions pour autre chose (installer un thread...). Enfin en pratique étant donné qu'on s'en sert pour calculer des fps je ne pense pas que ça pose autant problème que ça (sauf si dans un calcul le premier tick donne 65536 et le deuxième 0 sorry).

Vous en pensez quoi ?

(Tiens d'ailleurs je viens de penser qu'il faudra faire des routines de link, sans doute avec Bell).

Bref y'a encore du boulot cheeky