К слову.
Все исходники пересмотрел, но, к сожалению, осилить не смог. Пришлось идти в обход.
Взял сишный исходник с википедии (http://www.google.ru/url?sa=t&rct=j&...,d.Yms&cad=rjt):
Код:
void drawLine(int x1, int y1, int x2, int y2) {
    const int deltaX = abs(x2 - x1);
    const int deltaY = abs(y2 - y1);
    const int signX = x1 < x2 ? 1 : -1;
    const int signY = y1 < y2 ? 1 : -1;
    //
    int error = deltaX - deltaY;
    //
    setPixel(x2, y2);
    while(x1 != x2 || y1 != y2) {
        setPixel(x1, y1);
        const int error2 = error * 2;
        //
        if(error2 > -deltaY) {
            error -= deltaY;
            x1 += signX;
        }
        if(error2 < deltaX) {
            error += deltaX;
            y1 += signY;
        }
    }
 
}
и скомпилил в SDCC. Как ни странно, работает замечательно, даже без правки ручками. Рисует линии с любым тангенсом и направлением. Сейчас избавлюсь от операций с индексными регистрами, и, вообще, благодать наступит.
ЗЫ. Рисую под TS-Config/16c