#include	"compiler.h"
typedef struct {
	UINT16	key;
	UINT16	bit;
} KEYBIND;
static const KEYBIND keybind[10] = {
			{'X',			ADVKEY_A},
			{'Z',			ADVKEY_B},
			{'A',			ADVKEY_SELECT},
			{'S',			ADVKEY_START},
			{VK_RIGHT,		ADVKEY_RIGHT},
			{VK_LEFT,		ADVKEY_LEFT},
			{VK_UP,			ADVKEY_UP},
			{VK_DOWN,		ADVKEY_DOWN},
			{'W',			ADVKEY_R},
			{'Q',			ADVKEY_L}};
// ----
void advkey_initialize(void) {
	*REG_KEYINPUT = 0xffff;
}
void advkey_keydown(UINT16 key) {
const KEYBIND	*kb;
	UINT		r;
	kb = keybind;
	r = NELEMENTS(keybind);
	do {
		if (key == kb->key) {
			*REG_KEYINPUT &= ~kb->bit;
			break;
		}
		kb++;
	} while(--r);
}
void advkey_keyup(UINT16 key) {
const KEYBIND	*kb;
	UINT		r;
	kb = keybind;
	r = NELEMENTS(keybind);
	do {
		if (key == kb->key) {
			*REG_KEYINPUT |= kb->bit;
			break;
		}
		kb++;
	} while(--r);
}
RetroPC.NET-CVS <cvs@retropc.net>