+
+ case 0x01A1: // HID GET_REPORT
+ #ifdef UART_DEBUG
+ print("GET_REPORT - ");
+ printHex( setup.wIndex );
+ print(NL);
+ #endif
+ // Search through descriptors returning necessary info
+ for ( list = usb_descriptor_list; 1; list++ )
+ {
+ if ( list->addr == NULL )
+ break;
+ if ( list->wValue != 0x2200 )
+ continue;
+ if ( setup.wIndex == list->wIndex )
+ {
+ data = list->addr;
+ datalen = list->length;
+ goto send;
+ }
+ }
+ endpoint0_stall();
+ return;
+
+ case 0x0A21: // HID SET_IDLE
+ #ifdef UART_DEBUG
+ print("SET_IDLE - ");
+ printHex( setup.wValue );
+ print(NL);
+ #endif
+ USBKeys_Idle_Config = (setup.wValue >> 8);
+ USBKeys_Idle_Count = 0;
+ goto send;
+
+ case 0x0B21: // HID SET_PROTOCOL
+ #ifdef UART_DEBUG
+ print("SET_PROTOCOL - ");
+ printHex( setup.wValue );
+ print(" - ");
+ printHex( setup.wValue & 0xFF );
+ print(NL);
+ #endif
+ USBKeys_Protocol = setup.wValue & 0xFF; // 0 - Boot Mode, 1 - NKRO Mode
+ goto send;
+
+ // case 0xC940:
+ default:
+ #ifdef UART_DEBUG_UNKNOWN
+ print("UNKNOWN");
+ #endif