There was a problem when you drew a line from (x0,y0) to (x1,y1) and
these points met following conditions: y0 = y1 and x0 > x1. The viewport
was set incorrectly to start from (x0,y1) when it should start from
(x1,y0) since x1 is lower in this case.
(x1,y1) would be also OK since y0 = y1.