Most programmers refer to memory maps when they write programs for various computer and micro-controller systems. However, the HCS-II XPRESS language allows the user to ignore that stuff. But the HCS-II memory map is still important. Each I/O board/device on the HCS-II (except network modules) have a unique memory address.
While XPRESS doesn't require you to know this, knowing where I/O fits into the HCS-II memory map can be very helpful when debugging problems or configuring boards for the first time.
Note that most addresses are not back to back. They are usually far apart which can simplify HW address decoding on the expansion boards. You will note the base addresses correspond to the address you set via jumpers on most SC expansion boards.
Some of you may wonder why all the boards can be set to address blocks 0800h, 0A00h, 0C00h, and 0E00h. The original authors of XPRESS wrote it to work with othe rindustrial control systems which have other expansion capabilities and these boards live in the other address blocks. As you can see, the 0A00 block is pretty much reserved for all HCS-II boards.
|Onboard HCS-II Parallel Port||This port is used to access the onboard 8255 on the HCS-II which provides 16 input bits and 8 output bits.|
|09000h||Onboard HCS-II ADC Port||Used to access the 8 channel ADC chip on the SC board.|
|BUFIO #1 Input Ports||Each BUFIO Board has two 8255 I/O Chips. On for Input and one for Output. This address is for the input ports on the first BUFIO board|
|BUFIO #1 Output Ports||Each BUFIO Board has two 8255 I/O Chips. On for Input and one for Output. This address is for the output ports on the first BUFIO board|
|BUFIO #2 Input Ports||Each BUFIO Board has two 8255 I/O Chips. On for Input and one for Output. This address is for the input ports on the second BUFIO board|
|BUFIO #2 Output Ports||Each BUFIO Board has two 8255 I/O Chips. On for Input and one for Output. This address is for the output ports on the second BUFIO board|
|DTMF Registers||The DTMF board has 3 bytes
that are used to control the board and read status.
0A040h is the DTMF Control Register - it controls the LEDs and 4 output bits as well as the hook status of the DTMF board.
0A050h is the DTMF Status Register - this returns the status of the board, indicates incoming rings, and call progress.
0A060h is the DTMF M8888 Tone Generator/Receiver Chip
|Voice Board Registers||
0A080h is the Voice data
port used to send text to the synthesizer CPU
|0A0C0h||PLIX X-10 Port||The PLIX has one port which is used to send and receive data via a 6821 I/O chip|