ok, donc apparemment, tu bosses en 8 bits donc 8 plans
si ça te gave de lire mon baratin, voici du code qui doit marcher à peu près
a0 = adresse de base de l'écran
d0 = X
d1 = Y
d2 = numéro de couleur
je suppose que tu travailles en 320x200
alors allons-y
mulu.w #320,d1
lea (a0,d1.l), a0 ; on se place sur la bonne ligne
move.w d0,d1
and.w #$fff0,d0
add.w d0,a0 ; on se place sur le début du bloc de 16 pixels qui correspond à x
and.w #$f,d1
moveq #15,d0
sub.w d1,d0 ; on a le numéro du bit (big endian)
moveq #1,d1
lsl.w d0,d1 ; calcule le masque
moveq #8-1,d0 ; 8 bits = 8 plans
.set_pixel:
lsl.b #1,d2
bcs.s .pixel_on
.pixel_off:
not.w d1
and.w d1,(a0)+
not.w d1
dbf d0,.set_pixel
bra.s .done
.pixel_on:
or.w d1,(a0)+
dbf d0,.set_pixel
.done: