MMBC

_HorizLine_NoClip (don't work)

Aug 1st, 2017
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. _HorizLine_NoClip:
  2.     pop bc ; hauteur du segment
  3.     pop hl \ pop de ; de = début du segment / hl = fin du segment
  4.     push hl \ push de
  5.     push bc
  6.     or a ; a est la couleur
  7.     sbc hl, de ; ici hl contiendra "l'orientation" du segment, s'il est positif, le segment va vers la gauche, donc on l'inverse
  8.     jr s, +_
  9.     add hl, de
  10.     jr ++_
  11.     ex de, hl
  12. _:
  13.     add hl, de
  14. _:
  15.     pop bc ; ici, bc contient la hauteur du segment, hl le point le plus a gauche et de le point le plus a droite
  16.     ld b, c ; on met la hauteur dans b
  17.     push de ;
  18.     ld de, 320
  19. _:
  20.     add hl, de
  21.     djnz -_
  22.     pop de ; ici, hl contient maintenant l'adresse totale du premier point (ordonnée + abcisse)
  23.     or a
  24.     sbc hl, de
  25.     push hl
  26.     pop bc ; bc contient maintenant la longueur du segment
  27.     add hl, de
  28.     push hl
  29.     pop de ; de est maintenant égal a hl
  30.     inc de ; on l'incrémente pour avoir le pixel juste a la droite
  31.     ld (hl), a ; a contient la couleur
  32.     ldir ; on affiche le segment
  33.     ret
Advertisement
Add Comment
Please, Sign In to add comment