Is there a reason for GET/GET$/INKEY/INKEY$ and elsewhere to use constructions like this? do { ch=emulate_get() & 0xFF; } while (ch==0); It means that Ctrl-@ is never passed back to the caller.