#include "vga.h"

/* floats, mathematisch */
void putpixel(int x, int y)
{
   graph_mem[x+y*320]=15;
   printf("%d,%d  ",x,y);
}

void drawline(int x1, int y1, int x2, int y2)
{
   float x,y,dx,dy,m;
   dx=x2-x1;
   dy=y2-y1;
   if (abs(dx)>abs(dy))
     {
	if (x1>x2)
	  {
	     drawline(x2,y2,x1,y1);
	     return;
	  }
	m=dy/dx;
	for(x=x1;x<x2;x++)
	  {
	     y=m*(x-x1)+y1;
	     putpixel(x,y);
	  }
     }
   else
     {
	if(y1>y2)
	  {
	     drawline(x2,y2,x1,y1);
	     return;
	  }
	m=dx/dy;
	for(y=y1;y<y2;y++)
	  {
	     x=m*(y-y1)+x1;
	     putpixel(x,y);
	  }
     }
}

void main(void)
{
   vga_setmode(G320x200x256);
   drawline(10,10,40,100);
   sleep(3);
   drawline(10,10,100,40);
   sleep(3);
   drawline(310,190,270,100);
   sleep(3);
   drawline(310,190,210,160);
   sleep(3);
}
