# include "stephead.h"
# include <windows.h>
# include <stdio.h>
# include <conio.h>

int  lock (int addr)
{
 _outp(addr,0x01);
 return(0x01);
}

void unlock (int addr)
{
 _outp(addr,0);
}

int  rot_uni_right (int addr,int value)
{
 int actual;
 if (value == 0x01)
  {
   actual=0x08;
  }
 else
  {
   actual=value>>1;
  }
 _outp(addr,actual);
 return actual;
}

int  rot_uni_left  (int addr,int value)

{
 int actual;
 if (value == 0x08)
  {
   actual=0x01;
  }
 else
  {
   actual=value<<1;
  }
 _outp(addr,actual);
 return actual;
}


int turn_angle (int addr,int value,float dps,float dangle,char sense,int dt)
{
 unsigned char n,ppn;

 ppn = dangle/dps;

 if (sense)
  {
   for (n=0; n<ppn; n++)
    {
     value = rot_uni_right(addr,value);
	 sleep(dt);
    }
  }

 if (!sense)
  {
   for (n=0; n<ppn; n++)
    {
	 value = rot_uni_left(addr,value);
	 sleep(dt);
    }
  }
 return (value);
}

