Argument passed and returned as R0 If argument is non-zero, i.e. negative or greater than 127 Return 3 If argument is a control character, i.e. less than 32 or DEL Return 2 If argument is a punctuation character Return 1 If argument is an alphanumeric Return 0 Steps Main1) If argument < 0, branch to Return3 Main2) If argument > 127, branch to Return3 Main3) If argument = 127, branch to Return2 Main4) If argument > 32, branch to Return2 Main5) If argument >= 64, branch to LetRan1 Main6) If argument < '0', branch to Return1 Main7) If argument > '9', branch to Return1 Main8) Return0 LetRan1) Upcase R0 by clearing bit 5 LetRan2) If argument < 'A', branch to Return1 LetRan3) If argument > 'Z', branch to Return1 LetRan4) Return0