I'm sorry to say that you have some problems which many of us have noticed. You tell us you're an expert and a teacher but your statements, your code, and your behavior (here and on your site) tell us another story.
It's pretty obvious that you don't understand XOR logic and you're unable or unwilling to use the MPLAB simulator (or paper and pencil) to study it and learn it.
I get 2,000 per day looking at my content (2.3GB) and no-one has yet asked about the complex program you presented. Maybe they understand it fully. And yet they are asking about my simple code.
Are you talking about my Up/Down Counter program that you copied onto your site without my permission? The first program of mine that you copied and that you refuse to remove as I have asked? If so, you've got some nerve suggesting that I "presented" it. That's yet another example of your very disturbing behavior.
What do those 2,000 visitors per day ask you about your "simple code" Colin? Do they ask why you don't always use the SFR labels and bit labels? Or why your Up/Down Counter program won't assemble as listed without errors? That's sloppy and shoddy work and I would prefer you spend your time cleaning it up instead of copying my programs and criticizing them on your web site for being "too complex" (in your expert opinion).
You have got to remember that only a miniscule number of people understand the level at which you are delivering code. As soon as you write one single instruction that they don't understand, you have lost them.
It seems more likely to me that as soon as I write one single instruction that you don't undertsand, I've lost you. And then you copy my programs without my permission and display them on your web site and criticize them as being too complex (for you).
What you don't seem to understand Colin is that there are plenty of people with the ability, motivation, and willingness to learn something from my code examples. You just don't seem to be one of them...