What is the variable b for?
If it can only be either 0 or 1 then
if (keycode==359) GUIOn (1);
would never be true since you reset the keycode variable in both instances.
If it can only be either 0 or 1 then
if (keycode==359) GUIOn (1);
would never be true since you reset the keycode variable in both instances.