1

Il semble que quand on appelle DrawClipRect avec B_DOUBLE, le rectangle extérieur soit tracé 1 pixel à l'extérieur des coordonnées fournies avec PedroM, tandis qu'il l'est à l'intérieur avec AMS.
Je vois ça avec ce code :
	short x0 = (LCD_WIDTH-Width)/2 + 1;
	short y0 = (LCD_HEIGHT-Height)/2;
	short x1 = (LCD_WIDTH+Width)/2 - 2;
	short y1 = (LCD_HEIGHT+Height)/2;
	SCR_RECT FilledRect = {{(char)x0,(char)y0,(char)x1,(char)y1}};
	WIN_RECT FrameRect = {x0,y0,x1,y1};
	const short TitleX = ((LCD_WIDTH - DrawStrWidth(Title, F_4x6))/2);

	ScrRectFill(&FilledRect,&ScreenClip,A_REVERSE);
	DrawClipRect(&FrameRect,&ScreenClip,A_NORMAL+B_DOUBLE);
	FilledRect.xy.y1 = FilledRect.xy.y0 + 8;
	ScrRectFill(&FilledRect,&ScreenClip,A_NORMAL);
	DrawStr(TitleX,FilledRect.xy.y0+2,Title,A_REVERSE);

Le rectangle touche les bords de l'écran sous PedroM, tandis qu'il est décalé de 1 pixel vers l'intérieur sous AMS.

2

Si tu veux un test-case compilé, dis-le moi, je te mail le projet.

Précision : tel qu'il est écrit, mon code dessine un rectangle touchant les bords droit et gauche de l'écran sous PedroM, mais pas sur AMS.

3

Graph.asm :
	btst.l	#6,d2
	beq.s	\End
		subq.w	#1,d0
		subq.w	#1,d1
		addq.w	#2,d4
		addq.w	#2,d5
		jsr	DrawRect

Faudrait inverser les addq et subq pour être AMS-like. smile

Mais encore une fois, la doc ne précise rien quant au comportement attendu. Mais le comportement de AMS semble plus logique.

4

Tu as essayé ton patch ? Si oui, je le commite de suite smile

5

Pas encore, ça semblait couler de source ^^

Je recompile PedroM, j'installe ce qu'il faut (ma Fedora 10 est assez fraiche). Par contre, A68k me fait des erreurs pour les moveq #$FFFFFFFF et moveq #$FFFFFFFE confus Ca semblerait marcher avec des #-1 et #-2 confus
(yen a dans Heap.asm et Flash.asm)

6

J'arrive pas à recompiler, tout du moins j'ai une erreur :
Dans sld.asm (dernières sources de PreOS), ya un bls.s \Quit qui semble ne pas passer (ligne 892)
Trace : Pedrom2.asm -> Kernel.asm -> sld.asm

Même les sources sont en alpha ? cheeky

rage Et A68k refait le con avec des #$FFFFFFxx dans le source de PreOS, et là on va diner ^^

7

Erf, si tu compiles en 10 secondes, vla un binaire pour tester : avec le patch, le rectangle devrait être séparé du bord de l'écran de 1 pixel à droite et à gauche, sur AMS et PedroM : http://www.mirari.fr/Nmk0
Compatible 89 et 92.

J'essaye d'attaquer la compilation de PreOS ce soir.

8

Folco (./6) :
Dans sld.asm (dernières sources de PreOS), ya un bls.s \Quit qui semble ne pas passer (ligne 892)
Trace : Pedrom2.asm -> Kernel.asm -> sld.asm

Même les sources sont en alpha ? mod.gif


Il y a un sld.asm.bz2 sur le site de la T3 corrigé pour fonctionner avec PedroM 0.82 alpha smile

Après je t'apprendrai comment faire un beau patch à envoyer à l'auteur wink

9

Bon, je me suis encore fait chier avec le saut de PreOS qui allait pas et les moveq #-78,d0 (ça fait beau comme code, hein), mais ça finit par compiler.

J'ai testé avec mon code, et ça marche, j'ai bien le résultat attendu. smile

!call Kevin Kofler
--- Call : Kevin Kofler appelé(e) sur ce topic ...


Pourquoi tout ce bordel avec A68k ? J'utilise le dernier dispo pour Fedora 10, toujours sur ton repo...

10

PpHd (./8) :
Il y a un sld.asm.bz2 sur le site de la T3 corrigé pour fonctionner avec PedroM 0.82 alpha

Ah merde gni (ah oué ok, je viens de voir ^^ Ya un bug corrigé, ou juste le coup du saut trop court ? C'est toujours le même sld poru PreOS et PedroM j'espère ?)
PpHd (./8) :
Après je t'apprendrai comment faire un beau patch à envoyer à l'auteur

lol grin Je demande pas mieux que d'apprendre effectivement grin

11

Folco (./10) :

Ah merde gni.gif (ah oué ok, je viens de voir ^^ Ya un bug corrigé, ou juste le coup du saut trop court ? C'est toujours le même sld poru PreOS et PedroM j'espère ?)


Le saut trop court. Ca reste le même.

12

Merci. smile

Et mon cours de patch ? grin

13

diff -u Graph.asm~ Graph.asm

14

Ah, ok. smile

15

Je viens de voir un truc :
; Contrary to Tios, DrawStr returns a char* (The first non-printed char).
; Usefull if you use DrawStrMax !
; Since you can easily displayed a long String:
;	while (*str)
;		str = DrawStrMax(x, y, str, Attr, Xmax), y+=8;

;char *DrawStrMax(short x, short y, const char *str, short Attr, short Xmax);

C'était documenté où ça ? confus Jamais vu !!! C'est génial en tout cas love

16

Folco (./15) :

C'était documenté où ça ? confus.gif Jamais vu !!! C'est génial en tout cas love.gif


Dans le code voyons ! grin

17

Ah oui au fait :
--- Graph.asm~	2008-09-07 11:15:01.000000000 +0200
+++ Graph.asm	2009-05-02 23:21:03.000000000 +0200
@@ -2120,10 +2120,10 @@
 	jsr	DrawRect
 	btst.l	#6,d2
 	beq.s	\End
-		subq.w	#1,d0
-		subq.w	#1,d1
-		addq.w	#2,d4
-		addq.w	#2,d5
+		addq.w	#1,d0
+		addq.w	#1,d1
+		subq.w	#2,d4
+		subq.w	#2,d5
 		jsr	DrawRect
 \End	movem.l	(a7)+,d3-d5
 	lea	CLIP_TEMP_RECT,a0	; Restore Clip Area

tripo

18

Déposer dans le gestionnaire de versions

19

Folco (./9) :
Pourquoi tout ce bordel avec A68k ?

Peut-être parce que tu es en 64 bits (et que le code a été écrit pour du 16 bits grin)?
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

20

Indeed ^^ Ca se résoud pas d'une manière ou d'une autre ça ? Aller hop, au boulot le mainteneur hehe

21

Il doit y avoir un long quelque part où il faut un int dans le code.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité