Specifications
CARROLL TOUCH Chapter 3 - General Programming Issues
Touch System Programmer’s Guide 3-9
HBC I/O Registers
Overview
The HBC communicates with the PC through the PC bus via three 
consecutive I/O registers. The base address of these I/O registers is set 
by the I/O address jumpers on the HBC board, and may be set in 
increments of 16 to any I/O address between 200H and 3F0H inclusive. 
The three I/O registers are defined in Table 3-1.
The touch controller may be used in polling mode or in interrupt mode. 
In polling mode, the application software must check the Status 
Register before sending or receiving data. In interrupt mode, the 
application software must check the Status Register when sending data 
to the touch controller, but may install an interrupt handler to receive 
data from the touch controller. The interrupt number used is set by the 
interrupt number jumpers on the HBC board, as described in the HBC 
installation instructions. When using polling mode, set these jumpers to 
none to prevent the HBC from generating any interrupts.
Sending a Touch Command to the HBC 
The procedure used to send a touch command to the HBC is the same 
for both interrupt mode and polling mode.
Before sending a command to the touch controller, you must first 
perform an I/O read of the Status Register (Base Address + 1). Bit 0 of 
the Status Register indicates whether the touch controller is ready to 
Table 3-1. HBC I/O Registers
I/O Address Name
Read/
Write
Description
I/O Base
Address
Data Register R/W Used to send commands to 
and receive reports from 
the touch controller.
I/O Base
Address + 1
Status 
Register
R Used to check the touch 
controller communications 
status (i.e. ready to receive 
commands, reports 
available).
I/O Base
Address +2
Hardware 
Reset Register
W Used to reset the touch 
controller.










