void line(hword Xa, hword Ya, hword Xb, hword Yb, hword color) {
 hword x, y;

 int j = Ya;
 int e = 0;
 for(x = Xa; x < Xb; x++) {
  draw_point(x, j, color);
   e = e + (Yb-Ya);
   if((Xb-Xa)< e) {
    e = e - (Xb - Xa);
    j = j + 1;
    }
   }
  }

このメソッドがどのように動いて斜線を引いているか分かり易く教えていただけないでしょうか?

draw_pointメソッドは指定された(x,j)座標にcolorで指定した色のドットを表示するメソッドです。
斜線の範囲は(Xa, Ya)から(Xb, Yb)です。