69. Ignoring shift/caps lock ~~~~~~~~~~~~~~~~~~~~~~~~ Simple routines which GET a character from the keyboard can be defeated by the CAPS and SHIFT LOCK settings. For example, if you are supposed to be answering "Y" or "N" to a question, then a "y" or "n" may confuse matters. Alternatively, if you are selecting from a menu, and should be entering a number from "1" to "5", then "!" or "%" will not do. If you have Wordwise, try using the main menu with the SHIFT LOCK set, and you'll see what I mean. You could overcome this by setting the required shift, from inside the program, with *FX202. A better way is to use AND and OR to ignore the effect of any binary bits which alter with the shift settings. This exploits the fact that "A" in binary ASCII is 01000001 and "a" is 01100001, and so on. Only the 3rd most significant bit is different, (bit 5), and we need to make sure it is always 0. The binary number 11011111 is DF in Hex, so, instead of A$=GET$ to get a "Y" or "N" answer, use A$=CHR$(GET AND &DF), which will always return capital letters. This can conveniently be used in a Function; ie A$=FNget, where the Function is defined as DEFFNget:=CHR$(GET AND &DF). In a similar fashion, a "1" in binary ASCII is 00110001, and a "!" is 00100001. Only bit 4 differs, and this time we want to make sure it is always a 1, and 00010000 is 10 in Hex. So, for numbers, instead of using A=VAL(GET$) or A=GET-48, you can use A=(GET OR &10)-48. Again, it is handy to use a Function; ie A=FNnum, which is defined as DEFFNnum:=(GET OR &10)-48. Letters (capitals) - DEF FNget:=CHR$(GET AND &DF) Numbers (digits) - DEF FNnum:=(GET OR &10)-48