avec donc 3 paramètres : x (abcisse) , y (ordonné), et h (hauteur ou longueur de la ligne)
drawline c vraiment merdik en rapidité, et extgraph ca ne me suffit pa non plus (trop lent)
jy conné rien en asm
merci !

void DrawVert(short x asm("d0"), short y asm("d1), short len asm("d3"), void
*screen asm("a0"));
// C'est len+1 la vrai hauteur
DrawVert: xdef DrawVert
add.w d1,d1
move.w d1,d2
lsl.w #4,d2
sub.w d1,d2
moveq #7,d1
and.w d0,d1
move.b table(Pc,d1.w),d1
lsr.w #3,d0 ;x/8
add.w d2,d0
add.w d0,a0
moveq #30,d0
loop or.b d1,(a0)
adda.l d0,a0
dbf d3,loop
rts
table dc.b $80,$40,$20,$10,$08,$04,$02,$01


mais PHP .. c du C ...

void DrawVert(short x asm("d0"), short y asm("d1), short len asm("d3"), void
*screen asm("a0"));
// C'est len+1 la vrai hauteur
DrawVert: xdef DrawVert
add.w d1,d1
move.w d1,d2
lsl.w #4,d2
sub.w d1,d2
moveq #7,d1
and.w d0,d1
move.b table(Pc,d1.w),d1
lsr.w #3,d0 ;x/8
add.w d2,d0
add.w d0,a0
moveq #30,d0
loop or.b d1,(a0)
adda.l d0,a0
dbf d3,loop
rts
table dc.b $80,$40,$20,$10,$08,$04,$02,$01
void DrawVert(short x asm("d0"), short y asm("d1), short len asm("d3"), void
*screen asm("a0"));
// C'est len+1 la vrai hauteur
DrawVert: xdef DrawVert
add.w d1,d1
move.w d1,d2
lsl.w #4,d2
sub.w d1,d2
moveq #7,d1
and.w d0,d1
move.b table(Pc,d1.w),d1
lsr.w #3,d0 ;x/8
add.w d2,d0
add.w d0,a0
move.w d3,d1
lsr.w #3,d3
loop:
or.b d1,(a0)
or.b d1,30(a0)
or.b d1,60(a0)
or.b d1,90(a0)
or.b d1,120(a0)
or.b d1,150(a0)
or.b d1,180(a0)
or.b d1,210(a0)
add.w #240,a0
dbf d3,loop
and.w #7,d1
tst.w d1
beq.s fin
loop2:
or.b d1,(a0)
adda.l d0,a0
dbf d1,loop2
fin:
rts
table dc.b $80,$40,$20,$10,$08,$04,$02,$01


;=====================================================
;= HLINE Input :: al=col, bx=x1, dx=x2, cx=y =
;=====================================================
draw_hline:
cmp bx,dx
jle .skipit
xchg bx,dx
.skipit:
sub dx,bx
shl cx,6
mov di,cx
add cx,cx
add cx,cx
add di,cx
add di,bx
push word 0a000h
pop es
mov ah,al ;extends color to a Word
mov bx,ax
rol eax,16 ;swap eax
mov ax,bx
mov si,dx
add si,di
inc si
shr dx,2
.loop:
mov [es:di],eax
add di,4
dec dx
jnz .loop
.loop2:
mov [es:di],al
inc di
cmp si,di
jnz .loop2
ret
.skipit:
sub dx,bx
shl cx,6
mov di,cx
add cx,cx
add cx,cx
add di,cx
add di,bx
push word 0a000h
pop es
mov ah,al ;extends color to a Word
mov bx,ax
rol eax,16 ;swap eax
mov ax,bx
mov bx,dx
add bx,di
inc bx
shr dx,2
.loop:
mov [es:di],eax
add di,4
dec dx
jnz .loop
sub bx,di
mov cx,4
sub cx,bx
shl cx,3
shr eax,cl
mov [es:di],eax
ret
;=====================================================
;= VLINE Input :: al=col, bx=y1, dx=y2, cx=x =
;=====================================================
draw_vline:
cmp bx,dx
jle .skipit
xchg bx,dx
.skipit:
sub dx,bx
shl bx,6
mov di,bx
add bx,bx
add bx,bx
add di,bx
add di,cx
push word 0a000h
pop es
inc dx
mov cx,dx
shr dx,2
.loop:
mov [es:di],al
mov [es:di+320],al
mov [es:di+640],al
mov [es:di+960],al
add di,1280
dec dx
jnz .loop
and cx,3
.loop2:
mov [es:di],al
add di,320
dec cx
jnz .loop2
ret
