/* Main program entry point. This routine contains the overall program flow, including initial setup of all components and the main program loop.  */
int main(void)
/* Main program entry point. This routine contains the overall program flow, including initial setup of all components and the main program loop.  */
int main(void)
{
	SetupHardware();
	for (uint8_t Buffer = 0; Buffer < TOTAL_TRACKS; Buffer++)
	  BitBuffer_Init(&TrackDataBuffers[Buffer]);
	GlobalInterruptEnable();
	for (;;)
	{
		if (Magstripe_GetStatus() & MAG_CARDPRESENT)
		  ReadMagstripeData();
		HID_Device_USBTask(&Keyboard_HID_Interface);
		USB_USBTask();
	}
}