DIM kUser AS STRING DIM kType AS STRING, kShow AS STRING DIM kCode AS INTEGER CLS PRINT "Press any key..." DO kUser = INKEY$ SELECT CASE LEN(kUser) CASE 1 kType = "Standard ASCII" kCode = ASC(kUser) SELECT CASE kCode CASE 8 kShow = "Backspace" CASE 9 kShow = "Tab" CASE 13 kShow = "Enter" CASE 27 kShow = "Escape" CASE 32 kShow = "Space" CASE ELSE kShow = kUser END SELECT CASE 2 kType = "Extended Character" kCode = ASC(RIGHT$(kUser, 1)) RESTORE dataScanCode FOR i% = 1 TO kCode READ kShow NEXT i% END SELECT IF LEN(kUser) THEN CLS PRINT "Type: " + kType PRINT "Code:"; kCode PRINT " Key: " + kShow END IF LOOP UNTIL (kShow = "Escape") dataScanCode: DATA "Escape", "1", "2", "3", "4", "5", "6", "7", "8", "9" DATA "0", "Minus", "Equal", "Backspace", "Tab", "Q", "W", "E", "R", "T" DATA "Y", "U", "I", "O", "P", "Left Backet", "Right Bracket", "Enter", "Control", "A" DATA "S", "D", "F", "G", "H", "J", "K", "L", "Semicolon", "Quote" DATA "Tilde", "Left Shift", "Backslash", "Z", "X", "C", "V", "B", "N", "M" DATA "Comma","Period","Slash","Right Shift","Multiply","Alt","Space","Caps Lock","F1","F2" DATA "F3", "F4", "F5", "F6", "F7", "F8", "F9", "F10", "Num Lock", "ScrollLock" DATA "Home", "Up", "Page Up", "","Left", "", "Right", "Plus", "End", "Down" DATA "Page Down", "Insert", "Delete", "", "", "", "", "", "", "" DATA "", "", "", "", "", "", "", "", "", "" DATA "", "", "", "", "", "", "", "", "", "" DATA "", "", "", "", "", "", "", "", "", "" DATA "", "", "", "", "", "", "", "", "", "" DATA "", "", "F11", "F12"