I tend to get in over my head around here while trying to help other posters, as I'm certainly not one of the forum gurus. That being said, I'll take a shot at answering your question.
As all digital devices control input/output lines in powers of 2, (i.e. 2,4,8,16) based on the number of control lines available, input/output control comes in "groups" of such sizes. This allows chip designers to quickly and easily control I/O in the form of 2 lines, or 4 lines or 8 or 16 lines at a time. These groupings of commonly controlled lines are called "ports." So it will be quicker and easier internally on the chip die (and in code) to (for example) turn on or off all pins of a given port, rather than some from one port and some from another port.
Thus you will find pins labeled C1, C2, and B1, B2, etc, that are each part of their respective port, the B or C port, and pins of a given port can be easily made to work in unison. While Rev. Ed. attempts to minimize the necessity of understanding chip architecture, still, there will be situations where it will make the code faster and easier to work with all of a given port's lines simultaneously. Thus the reason for designating the pins in their "port" format.
A high level programming language like BASIC can make knowledge of specific chip architecture (like ports) relatively transparent to the user, but it can't change that architecture and cause multiple pins of two different ports to be commanded simultaneously. Such control requires a sequence of commands that takes additional time.
Rev. Ed. has chosen to make the port nature of these pic chip's I/O lines apparent in the code in order to help knowledgeable programmers group common functions on common ports in order to simplify their code and speed up program execution if that is a requirement of their project.
I hope this long-winded response helps explain what those letter designators actually mean, and why they're available and how to use them, even if they aren't always fully explained in every section of the manuals or every sample of code. The knowledge is important to those who are trying to get the most from their code and chips, but is perhaps "too much information" for novice users.
As all digital devices control input/output lines in powers of 2, (i.e. 2,4,8,16) based on the number of control lines available, input/output control comes in "groups" of such sizes. This allows chip designers to quickly and easily control I/O in the form of 2 lines, or 4 lines or 8 or 16 lines at a time. These groupings of commonly controlled lines are called "ports." So it will be quicker and easier internally on the chip die (and in code) to (for example) turn on or off all pins of a given port, rather than some from one port and some from another port.
Thus you will find pins labeled C1, C2, and B1, B2, etc, that are each part of their respective port, the B or C port, and pins of a given port can be easily made to work in unison. While Rev. Ed. attempts to minimize the necessity of understanding chip architecture, still, there will be situations where it will make the code faster and easier to work with all of a given port's lines simultaneously. Thus the reason for designating the pins in their "port" format.
A high level programming language like BASIC can make knowledge of specific chip architecture (like ports) relatively transparent to the user, but it can't change that architecture and cause multiple pins of two different ports to be commanded simultaneously. Such control requires a sequence of commands that takes additional time.
Rev. Ed. has chosen to make the port nature of these pic chip's I/O lines apparent in the code in order to help knowledgeable programmers group common functions on common ports in order to simplify their code and speed up program execution if that is a requirement of their project.
I hope this long-winded response helps explain what those letter designators actually mean, and why they're available and how to use them, even if they aren't always fully explained in every section of the manuals or every sample of code. The knowledge is important to those who are trying to get the most from their code and chips, but is perhaps "too much information" for novice users.
Last edited: