5Fermer7
chickendudeLe 30/01/2013 à 20:19
Par exemple, je viens d'écrire ce petit morceau de code (mais qui seulement fonctionne avec des coordonnées X qui sont des multiples de huit) :
;b = # columns
;c = # rows
;d = starting x
;e = starting y
rectangle_filled2:
	ld a,d		;a = starting x coord
	ld l,e		;ld hl,e
	ld h,0		; ..
	ld d,h		;set d = 0
	add hl,de	;starting y * 12
	add hl,de	;x3
	add hl,hl	;x6
	add hl,hl	;x12
	rra			;a = x coord / 8
	rra			;
	rra			;
	and %00011111	;starting x/8
	ld e,a		;
	add hl,de	;add x
	ld de,gbuf
	add hl,de	;offset in gbuf
	ld a,b			;b = no columns
	rra
	rra
	rra
	and %00011111	;no. columns / 8
	ld b,a
	ld a,12
	sub b
	ld e,a
	ld d,0
rectangle_loop_y:
	push bc
rectangle_loop_x:
		ld (hl),$FF
		inc hl
		djnz rectangle_loop_x
	pop bc			;restore c (# columns)
	add hl,de		;move down to next row
	dec c
	 jr nz,rectangle_loop_y
rectangle_end:
	ret
Demain je peut l'améliorer un peu. La routine que tu utilises c'est bon si tu vas utiliser les autres routines (getpixel, V_line, etc.) mais je crois que tu n'auras pas besoin de tout ça.