/**************************************************************************************
$Id: pit.c,v 1.10 2002/04/20 02:59:46 reddawg Exp $


**************************************************************************************/

#include <ubixos/io.h>
#include <ubixos/pit.h>

void init_pit(float h, unsigned char channel) {
  unsigned int temp=0;
  temp = 1193180/h;
  outportb(TMR_CTRL, (channel*0x40) + TMR_BOTH + TMR_MD3);
  outportb((0x40+channel), (unsigned char) temp);
  outportb((0x40+channel), (unsigned char) (temp>>8));
  }

unsigned int pit_getchannel(unsigned char channel) {
  unsigned int x=0;
  outportb(TMR_CTRL, (channel*0x40) + TMR_LATCH);
  x = inportb(0x40+channel);
  x += (inportb(0x40+channel) << 8);
  return x;
  }