From a quick look at your program it seems to be arranged to read properly so I don't understand your question.
What do you mean by the "oldest" and "present" byte?
With your program there will only be a tiny delay between the reading and interpreting and I don't see how that can be avoided.
Perhaps you could explain what you would like to happen.