//Class: Keyboard
//This class will install the new keyboard handling interrupt.
//Author: Tommy Grandefors
//Date: 961115
//Copyright 1996

#ifndef KEYBOARD_HH
	#define KEYBOARD_HH

#include "typedef.hh"

#define _KEY_BUFFER_ 	0x60  //The location of the keyboard buffer
#define _KEY_CONTROL_   0x61  //The location of the keyboard controller
#define _INT_CONTROL_	0x20  //The location of the interrupt controller
#define _KEYBOARD_INT_	0x09  //The keyboard interrupt number

class Keyboard
{
	public:
		Keyboard(void);
		~Keyboard(void);
		volatile int* InstallKeyboard(void); //Installs the new interrupts and returns
												//a pointer to the keyboard vector.
		void UnInstallKeyboard(void); //Re-installs the old keyboard interrupt.
	private:
		void SetRawISR(void);
		UBYTE keyboardIsStillInstalled; //Just a simple flag
};

#endif
