+++ /dev/null
-Line:
- push hl
- push de
- ld a,d
- cp h
- jr c,LineOrdered
- ex de,hl
-LineOrdered:
- ld b,d
- ld c,e
- push hl
- push bc
- call FindPixel
- pop bc
- pop de
-ConnectedLine:
- push hl
- ld h,c
- ld c,a
- ld a,d
- sub b
- ld b,a
- ld a,e
- jr nz,LineNotPoint
- cp h
- jr nz,LineNotPoint
- pop hl
- jr DoneLine
-LineNotPoint:
- sub h
- ld de,16
- jr nc,LinePositiveY
- neg
- ld de,-16
-LinePositiveY:
- cp b
- jr nc,SteepLine
- add a,a
- ld (Line2sm+1),a
- ld h,a
- xor a
- sub b
- add a,a
- ld (Line1sm+1),a
- ld a,h
- sub b
- pop hl
-LineLoopGentle:
- push af
- ld a,(hl)
- or c
- ld (hl),a
- rrc c
- jr nc,$+3
- inc hl
- pop af
- jp m,Line2sm
-Line1sm add a,0
- add hl,de
-Line2sm add a,0
- djnz LineLoopGentle
-DoneLine:
- ld a,(hl)
- or c
- ld (hl),a
- pop de
- pop hl
- ret
-
-SteepLine:
- ld h,a
- neg
- add a,a
- ld (Line3sm+1),a
- ld a,b
- add a,a
- ld (Line4sm+1),a
- sub h
- ld b,h
- pop hl
-LineLoopSteep:
- push af
- ld a,(hl)
- or c
- ld (hl),a
- add hl,de
- pop af
- jp m,Line4sm
-Line3sm add a,0
- rrc c
- jr nc,$+3
- inc hl
-Line4sm add a,0
- djnz LineLoopSteep
- jr DoneLine