Hi Darrel,
Thought I’d pick up where you left off here.

Quote Originally Posted by Darrel Taylor
I have so many more functions available to me now because I write with the intention of not having to do it again. So the next program I write, if I need to do the same thing again, it's already there. Just include it and go.

But the question now is, have I really extended it, or am I just using the available features that allow re-usable code? Am I really just using PBP the way it was intended from the beginning?
Nothing has really been added, even though you have portable code usable by PBP. Call them extensions if you want. Or macros. I like “code modules”, since it seems most accurate. Just because someone has portable code snippets in individual files, that can be added to programs using the INCLUDE command, does not mean these are now PBP Extensions. These do not really “ increase the scope, meaning, or application of” PBP. It just means they have efficiently managed their work, and can recycle already produced code easily into new projects. This is “using PBP the way it was intended.”

Quote Originally Posted by Darrel Taylor
Let's say I had a way to buffer serial data so that the processor didn't need to twiddle it's thumbs waiting for the USART to send/receive something. Since PBP can't buffer serial data, does this Extend the capabilities of PBP even though you can't use HSERIN anymore? Or, is it just another example of using PBP as intended.
This, I don't think is really an extension either (in a narrow view of the word), since you are actually using an alternate means to accomplish the task. Could the same code be used apart for PBP? Let's take the case of an assembly interrupt routine to buffer incoming USART. If the guts of this code could be used in any PIC programming software that allowed inline assembly instructions (or just a straight assembly program), and not just PBP, then it has not extended PBP, but actually circumvented it.

But, in a wink I’d give you this one. These do “ increase the scope, meaning, or application of” PBP. They just do it independent of the original.

Quote Originally Posted by Darrel Taylor
Now, what if you could tap into the data streams of HSERIN/OUT LCDIN/out etc. and create buffers for them? Would that be an extension, since PBP doesn't allow that to happen normally?
This sounds like a true extension of PBP. Without the PBP compiler, the code would mean nothing, since it is based on PBP’s native commands. Also, it takes PBP, and its associated commands, to a higher level of usability with enhanced features and capabilities. This is especially so if the basic commands remain intact, with changes and additions only to accommodate the new features. Also, it should easily integrated into any PBP program.
This would be really cool!

JMO FWIW
Steve