Честно говоря не очень вкурил что как и зачем сравнивается ) . Когда переделывал линзу для BGE, понадобилась прога для линии (встроенная не пришлась по душе )) ), правда скорость была не на первом месте по важности. Отыскал в нете алгоритм брезенхейма и состряпал что-то такое :
Код:
LINE
        ; Bresenham's line algorithm
        ; de - first pixel , hl - last pixel

.lineB  call .plot  ; вывод начальной точки
.lineN
        push hl
        or a
        sbc hl,de         ; проверяем на нулевую длину
        pop hl
       ret z

.noequ        ; de - y0x0 , hl - y1x1

        ld a,l
        ld l,#1C   ; inc e
        sub e      ;dx x1-x0
       jr nc, 1F
        neg
        inc l      ; l=#1D - dec e : dx<0  (.Xstep)
1
        ld b,a       ; b = |x1-x0|   (.dX)

        ld a,h
        ld h,#14   ; inc d
        sub d      ; dy y1-y0
       jr nc, 1F
        neg
        inc h     ; h=#15 - dec d : dy<0   (.Ystep)
1
        ld c,a     ; c =  |y1-y0|    (.dY)

        cp b        ; dx > dy ведём линию по X , dy > dx ведём линию по Y
       jr c,1F
        ld c,b      ; меняем местами X и Y
        ld b,a
        ld a,h
        ld h,l
        ld l,a
        ld a,c
1
        ld (.dERR),a
        ld a,b
        ld (.dM),a
        ld a,l
        ld (.Step1),a
        ld a,h
        ld (.Step2),a


        ld hl,0     ; err- проверка ; de - y0x0
.loopln
        push bc

.Step1   inc e       ;Xstep x=x+1  / x=x-1 / y=y+1 / y=y-1
         ld bc,0

.dERR  EQU $-2        ;dERR   dY or dX
         add hl,bc    ; err=err+dY or err+dX
1
         ld bc,0
.dM EQU $-2           ; dX or dY
        bit 7,h
       jr nz,1F
        push hl
         add hl,hl
         or a
         sbc hl,bc
        pop hl
       jr c,1F      ; if (err*2 < dM) goto 1F
        sbc hl,bc   ; err = err-dM
.Step2  inc d       ;Ystep y=y+1  / y=y-1 / x=x+1 / x=x-1
1
        call .plot
        pop bc
      djnz .loopln
        ret

.plot                      ; вход de: e=x , d=y
        push hl,de,bc
        call PLOT_SNP      ; вывод точки меняется от условий
.plotADR EQU $-2
        pop bc,de,hl
        ret
Может кому и сгодиться на что-нибудь. Прогу вывода точек не привожу, это не существенно, там разные варианты использовались.