or a reversed stop pattern since the bar code may have been read and entered in a direction opposite to the normal reading direction if a match for one of these patterns is found a check for the adversary pattern at the opposite end of the data sequence is undertaken at an address location a known number of addresses away from the first check if still no start or stop pattern is recognized the ram pointer is incremented for example by two address locations and the search procedure is again undertaken if still no match can be found the program exits and the data is not further processed if the start and stop patterns are found in proper sequence the intervening data is decoded as described below if the patterns are found in reverse sequence meaning the bar code was read backwards the midpoint of the data sequence is located and the sequence is transposed or 34 pivoted 34 about the midpoint so that it is now in correct reading sequence decoding of the message carrying data is undertaken using the limit values described above to sort the data at each ram address as logical zeros and ones the binary sequences thus obtained are then each compared to a table of library binary sequences representing alphanumeric characters if no match with any value in the library table is found the ram pointer is incremented and the search routine is begun again if a match with a table value is found a.