Address Lines and Ports
Address Lines and Ports
Address Lines and Ports
Each
of them carries a bit of information, the same as a data line. A group of address lines is called an
address bus. Just as with data, a bit can be on or off, and addresses can be represented on paper
as a series of ones and zeros.
Addresses are seldom represented in binary, however. They are almost always shown in HEX
with the 0x prefix. An exception is in the schematic diagram. Individual lines are often drawn
and labeled with abbreviations using the capital A -- A0, A1, A2, etc.
Any time a variable or constant is accessed in the C language, the appropriate address lines are
activated. This is not readily apparent since variables and constants are almost always referenced
by name. It's a lot easier to work with words than with obscure memory addresses. There is a
way to more directly access address space in C. It's through the powerful concept of pointers. We
are concerned here with another use of address lines.
The PC actually has two memory systems. One deals with variables and constants as noted
above. The other addresses what are called ports. Ports provide access to outside-world devices.
The printer, serial communications, disk drives and sound cards, among others, all use ports for
monitoring and control. A typical PC uses A0 through A9 as the bases for addressing ports, with
A9 always high. That means that the range of port addresses is 0X200 through 0X3FF:
A9 A8 A7 A6 A5 A4 A3 A2 A1 A0
1 0 0 0 0 0 0 0 0 0 = 0X200 minimum port address
A9 A8 A7 A6 A5 A4 A3 A2 A1 A0
1 1 1 1 1 1 1 1 1 1 = 0X3FF maximum port address
The board used in the examples is capable of using all of these addresses in 64 byte blocks.
Subdivisions within each block allow access to several sub-systems on the board. All of them
will be covered in detail in the hardware and experiments sections.
Port read or write status depends on the state of the Input/Output Read and Write lines, which
are dedicated to port activities. The appropriate line must be low. If both are high, then port I/O
will not take place. The Input/Output Read line is abbreviated IOR, and the Input/Output Write
line is abbreviated IOW . In addition to IOR or IOW, a line called Address Enable (AEN) must
be low for port access.