Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- _HorizLine_NoClip:
- pop bc ; hauteur du segment
- pop hl \ pop de ; de = début du segment / hl = fin du segment
- push hl \ push de
- push bc
- or a ; a est la couleur
- sbc hl, de ; ici hl contiendra "l'orientation" du segment, s'il est positif, le segment va vers la gauche, donc on l'inverse
- jr s, +_
- add hl, de
- jr ++_
- ex de, hl
- _:
- add hl, de
- _:
- pop bc ; ici, bc contient la hauteur du segment, hl le point le plus a gauche et de le point le plus a droite
- ld b, c ; on met la hauteur dans b
- push de ;
- ld de, 320
- _:
- add hl, de
- djnz -_
- pop de ; ici, hl contient maintenant l'adresse totale du premier point (ordonnée + abcisse)
- or a
- sbc hl, de
- push hl
- pop bc ; bc contient maintenant la longueur du segment
- add hl, de
- push hl
- pop de ; de est maintenant égal a hl
- inc de ; on l'incrémente pour avoir le pixel juste a la droite
- ld (hl), a ; a contient la couleur
- ldir ; on affiche le segment
- ret
Advertisement
Add Comment
Please, Sign In to add comment