2 ; MASM macro definition for Bresenham line-drawing routine
7 INCAX equ 40h ; for Self-Modifying Code
13 ; lineproc linename, pixelname
15 ; where linemane is the name you want for the proc, and pixelname is the
16 ; name of the routine that linename is to call to set pixels
19 lineproc macro linename, pixelname
51 jb i21 ; go iterate y's
57 mov byte ptr cs:yinc1,DECBX
60 mov byte ptr cs:yinc1,INCBX
64 mov byte ptr cs:xinc1,INCAX
67 mov byte ptr cs:xinc1,DECAX
74 xinc1: inc ax ; may become inc or dec
79 yinc1: inc bx ; may become inc or dec
90 mov byte ptr cs:xinc2,INCAX
93 mov byte ptr cs:xinc2,DECAX
97 mov byte ptr cs:yinc2,DECBX
100 mov byte ptr cs:yinc2,INCBX
107 yinc2: inc bx ; may become inc or dec
112 xinc2: inc ax ; may become inc or dec
114 call near ptr pixelname