289Fermer291
geogeoLe 04/11/2003 à 20:01
La voici:
;C prototype: void DrawScreen2 (void *sprt, void *dest);
;
;void DrawScreen2 (register long *sprt asm("%a0"),
;		 register void *dest asm("%a1"));


	section ".data"
	xdef DrawScreen2

DrawScreen2:
	movem.l	d3/a2,-(a7)
	lea	322(a1),a1
	lea	8000(a1),a2
	movea.l	a0,a3
	moveq.l	#11,d2

\rep:
	moveq.l	#15,d3

;Sprite totale	
\b0:
	move.l	(a0)+,d1
	moveq.l	#5,d0
;Gris clair
\s1:
	move.l	d1,(a1)+
	dbf	d0,\s1
	;16 pixels
	move.b	-4(a0),(a1)
	
	move.l 	(a0)+,d1
	moveq.l	#5,d0
;Gris foncé
\s2:	
	move.l	d1,(a2)+
	dbf	d0,\s2
	;16 pixels
	move.b	-4(a0),(a2)
	
	lea	16(a1),a1
	lea	16(a2),a2
	dbf	d3,\b0
	
	movea.l	a3,a0
	dbf	d2,\rep

	movem.l	(a7)+,d3/a2
	rts