void line (int xl,  int yl, int xl1, int yl1)
{
    int xz,yz,Px,Py;
    float P,Pz;
    Px=xl1-xl;              // расчет разници х
    Py=yl1-yl;              // расчет разници у 
      
 PutPixel(xl,yl);           // начальная точка линии
 
  if ((Px&32767)>=(Py&32767))     //если разница xx>=yy
  {
    P=Py;P=P/Px;            // смещение по у на еденицу х
    Pz=yl;
    xz=xl;                  //начальное значения точки  х
    if(xl1>xl)
     { 
       for (;xz<xl1;) 
        {xz++;
	Pz+=P;
        PutPixel (xz,Pz);
	}
     }
    if(xl1<xl)
     {  
       for (;xz>xl1;) 
        {xz--;
	 Pz-=P;
        PutPixel (xz,Pz);
	}
     }
  }
  else                         //если разница yy>xx
  {
    P=Px;P=P/Py;               // смещение по х на еденицу у
    Pz=xl;
    yz=yl;                  //начальное значения точки  у
    
    if(yl1>yl)
     {
       for (;yz<yl1;) 
        {yz++;
	Pz+=P;
        PutPixel (Pz,yz);
	}
     }
    if(yl1<yl)
     {
       for (;yz>yl1;) 
        {yz--;
	 Pz-=P;
        PutPixel (Pz,yz);
	}
     }
  }   
};