HCS-II Memory Map
Where all the boards live

Last Updated: Sunday, 09-Jul-2000 15:01:03 EDT
by Mike Baptiste.

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.

Address
Function
Description
08000h-
08003h
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.
0A000h-
0A003h
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
0A010h-
0A013h
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
0A020h-
0A023h
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
0A030h-
0A033h
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
0A040h-
0A060h
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
0A080h-
0A0A0h
Voice Board Registers

0A080h is the Voice data port used to send text to the synthesizer CPU
0A090h is the Voice status port which indicates the progress of speech on the board

0A0A0h is the Voice reset port

0A0C0h PLIX X-10 Port The PLIX has one port which is used to send and receive data via a 6821 I/O chip