hex code iline ( x1 y1 x2 y2 --- ) \ y2 ! x2 ! y1 ! x1 ! sp )+ y2 l#) long move sp )+ x2 l#) long move sp )+ y1 l#) long move sp )+ x1 l#) long move \ x2 @ x1 @ - \ x2-x1 x2 l#) d0 long move x1 l#) d0 long sub \ dup 0> if 1 else -1 then xdir ! \ abs 1 # d0 word cmp >= if 0 # xdir l#) byte move else 1 # xdir l#) byte move d0 word neg then \ y2 @ y1 @ - \ y2-y1 y2 l#) d1 long move y1 l#) d1 long sub \ dup 0> if 1 else -1 then ydir ! \ abs 1 # d1 word cmp >= if 0 # ydir l#) byte move else 1 # ydir l#) byte move d1 word neg then \ x1 @ y1 @ color @ plot color l#) d2 long move \ **************** >fb l#) a0 long move a0 a1 long move gr_x_select gr_update + l# a0 adda gr_y_select gr_update + l# a1 adda x1 l#) a0 adda y1 l#) a1 adda a1 ) byte tst \ select y d2 a0 ) byte move \ update x \ dx @ dy @ < if d1 d0 word cmp < if \ xdir ydir exch xdir l#) d3 byte move ydir l#) xdir l#) byte move d3 ydir l#) byte move d0 d1 word exg a0 d3 long move a1 a0 long move d3 a1 long move then \ dy @ 2* \ dy<<1 d1 d3 word move 1 # d3 word asl \ dup incr1 ! \ d3 incr1 l#) word move \ dx @ - d ! d0 d3 word sub d3 d l#) word move \ dy @ dx @ - 2* incr2 ! d1 d3 word move d0 d3 word sub 1 # d3 word asl d3 incr2 l#) word move begin \ x1 @ x2 @ - while 1 d0 word subq 0>= while \ xdir @ x1 +! xdir l#) byte tst 0= if 1 a0 long addq else 1 a0 long subq then \ d @ 0< if d l#) d3 word move 0< if \ incr1 @ d +! incr1 l#) d3 word add d3 d l#) word move else \ incr2 @ d +! incr2 l#) d3 word add d3 d l#) word move \ ydir @ y1 +! ydir l#) byte tst 0= if 1 a1 long addq else 1 a1 long subq then then \ x1 @ y1 @ \ color @ plot a0 ) byte tst \ select y d2 a1 ) byte move \ update x repeat c; \ ======================================================================== ' iline is line decimal .( Done.) cr