Hi, It seems that there have been a rash of key-press questions popping up again (must be the weather:) so I've prepared the following for those of you who are still struggling with it. If you don't wish to use the integer version then I've also sent the string version in the mesage fGetKey$. The variable constants below represent all the 2byte key codes and are in PB v3+ format. They can be quickly changed with a search and replace. If you're using Q*Basic then you'll want to: replace " : %" with ", " replace "%" with "CONST" replace "_" with "." ' or replace "_" with "" ' At the bottom of the file are 3 versions of the fGetKey% function; one for PB3.2, one for FirstBASIC and one for the Q*BASICs. %HOME_key = &h4700 : %UP_key = &h4800 : %PGUP_key = &h4900 %LEFT_key = &h4B00 : %GREY5_key = &h4C00 : %RIGHT_key = &h4D00 %END_key = &h4F00 : %DOWN_key = &h5000 : %PGDN_key = &h5100 %INS_key = &h5200 : %DEL_key = &h5300 %CTRL_HOME = &h7700 : %CTRL_UP = &h8D00 : %CTRL_PGUP = &h8400 %CTRL_LEFT = &h7300 : %CTRL_GREY5 = &h8F00 : %CTRL_RIGHT = &h7400 %CTRL_END = &h7500 : %CTRL_DOWN = &h9100 : %CTRL_PGDN = &h7600 %CTRL_INS = &h9200 : %CTRL_DEL = &h9300 %ENTER_key = &h000D : %CTRL_ENTER = &h000A %ESC_key = &h001B : %ALT_ESC = &h0100 %BKSPC_key = &h0008 : %ALT_BKSPC = &h0E00 : %CTRL_BKSPC = &h007F %TAB_key = &h0009 : %SHIFT_TAB = &h0F00 %F01_key = &h3B00 : %F02_key = &h3C00 : %F03_key = &h3D00 %F04_key = &h3E00 : %F05_key = &h3F00 : %F06_key = &h4000 %F07_key = &h4100 : %F08_key = &h4200 : %F09_key = &h4300 %F10_key = &h4400 : %F11_key = &h8500 : %F12_key = &h8600 %ALT_F01 = &h6800 : %ALT_F02 = &h6900 : %ALT_F03 = &h6A00 %ALT_F04 = &h6B00 : %ALT_F05 = &h6C00 : %ALT_F06 = &h6D00 %ALT_F07 = &h6E00 : %ALT_F08 = &h6F00 : %ALT_F09 = &h7000 %ALT_F10 = &h7100 : %ALT_F11 = &h8B00 : %ALT_F12 = &h8C00 %CTRL_F01 = &h5E00 : %CTRL_F02 = &h5F00 : %CTRL_F03 = &h6000 %CTRL_F04 = &h6100 : %CTRL_F05 = &h6200 : %CTRL_F06 = &h6300 %CTRL_F07 = &h6400 : %CTRL_F08 = &h6500 : %CTRL_F09 = &h6600 %CTRL_F10 = &h6700 : %CTRL_F11 = &h8900 : %CTRL_F12 = &h8A00 %SHIFT_F01 = &h5400 : %SHIFT_F02 = &h5500 : %SHIFT_F03 = &h5600 %SHIFT_F04 = &h5700 : %SHIFT_F05 = &h5800 : %SHIFT_F06 = &h5900 %SHIFT_F07 = &h5A00 : %SHIFT_F08 = &h5B00 : %SHIFT_F09 = &h5C00 %SHIFT_F10 = &h5D00 : %SHIFT_F11 = &h8700 : %SHIFT_F12 = &h8800 %ALT_0 = &h8100 : %ALT_1 = &h7800 : %ALT_2 = &h7900 : %ALT_3 = &h7A00 %ALT_4 = &h7B00 : %ALT_5 = &h7C00 : %ALT_6 = &h7D00 : %ALT_7 = &h7E00 %ALT_8 = &h7F00 : %ALT_9 = &h8000 : %ALT_A = &h1E00 : %ALT_B = &h3000 %ALT_C = &h2E00 : %ALT_D = &h2000 : %ALT_E = &h1200 : %ALT_F = &h2100 %ALT_G = &h2200 : %ALT_H = &h2300 : %ALT_I = &h1700 : %ALT_J = &h2400 %ALT_K = &h2500 : %ALT_L = &h2600 : %ALT_M = &h3200 : %ALT_N = &h3100 %ALT_O = &h1800 : %ALT_P = &h1900 : %ALT_Q = &h1000 : %ALT_R = &h1300 %ALT_S = &h1F00 : %ALT_T = &h1400 : %ALT_U = &h1600 : %ALT_V = &h2F00 %ALT_W = &h1100 : %ALT_X = &h2D00 : %ALT_Y = &h1500 : %ALT_Z = &h2C00 %ALT_ESC = &h0100 : %ALT_MINUS = &h8200 : %ALT_F_SLASH = &h3500 %ALT_TAB = &hA500 : %ALT_EQUAL = &h8300 : %ALT_L_QUOTE = &h2900 %ALT_BKSPC = &h0E00 : %ALT_COMMA = &h3300 : %ALT_R_BRACKET = &h1B00 %ALT_ENTER = &h1C00 : %ALT_PERIOD = &h3400 : %ALT_L_BRACKET = &h1A00 %ALT_TILDE = &h2800 : %ALT_B_SLASH = &h2B00 : %ALT_SIMICOLON = &h2700 %CTRL_2 = &h0300 : %CTRL_6 = &h001E : %CTRL_A = &h0001 %CTRL_B = &h0002 : %CTRL_C = &h0003 : %CTRL_D = &h0004 %CTRL_E = &h0005 : %CTRL_F = &h0006 : %CTRL_G = &h0007 %CTRL_H = &h0008 : %CTRL_I = &h0009 : %CTRL_J = &h000A %CTRL_K = &h000B : %CTRL_L = &h000C : %CTRL_M = &h000D %CTRL_N = &h000E : %CTRL_O = &h000F : %CTRL_P = &h0010 %CTRL_Q = &h0011 : %CTRL_R = &h0012 : %CTRL_S = &h0013 %CTRL_T = &h0014 : %CTRL_U = &h0015 : %CTRL_V = &h0016 %CTRL_W = &h0017 : %CTRL_X = &h0018 : %CTRL_Y = &h0019 %CTRL_Z = &h001A %CTRL_TAB = &h9400 : %CTRL_MINUS = &h001F %CTRL_BKSPC = &h007F : %CTRL_R_BRACKET = &h001D %CTRL_B_SLASH = &h001C : %CTRL_L_BRACKET = &h001B %ALT_GREYMINUS = &h4A00 : %CTRL_GREYMINUS = &h8E00 %ALT_GREYPLUS = &h4E00 : %CTRL_GREYPLUS = &h9000 %ALT_GREYSLASH = &hA400 : %CTRL_GREYSLASH = &h9500 %ALT_GREYSTAR = &h3700 : %CTRL_GREYSTAR = &h9600 %ALT_GREYENTER = &hA600 ' PowerBASIC v3.0+ FUNCTION fGetKey%() LOCAL PUBLIC LOCAL G$ WHILE NOT INSTAT : WEND G$ = INKEY$ IF LEN(G$) = 1 THEN FUNCTION = ASCII( G$ ) ELSE FUNCTION = CVI( G$ ) END IF END FUNCTION ' FirstBASIC and Older versions of PowerBASIC FUNCTION fGetKey%() LOCAL PUBLIC LOCAL G$, L% DO G$ = INKEY$ L% = LEN( G$ ) LOOP UNTIL L% > 0 IF L% = 1 THEN fGetKey% = ASC( G$ ) ELSE fGetKey% = CVI( G$ ) END IF END FUNCTION 'Q*BASIC FUNCTION fGetKey% DO G$ = INKEY$ L% = LEN( G$ ) LOOP UNTIL L% > 0 IF L% = 1 THEN fGetKey% = ASC( G$ ) ELSE fGetKey% = CVI( G$ ) END IF END FUNCTION