Manual PCI-DIO-24DH
18
Programming Example (C)
The following program fragment in C language illustrates the foregoing:
const BASE_ADDRESS 0x300;
outportb(BASE_A3, 0x89); /*This instruction sets the mode to Mode 0, ports A and
B as output, and port C as input. Since bit D7 is high, the
output buffers are set to tristate condition. See item b.
above.*/
outportb(BASE_ADDRESS,0);
outportb(BASE_1,0); /*These instructions set the initial state of ports A and B
to all zeroes. Port C is not set because it is configured as
an input. See item c. above.*/
outportb(BASE_A3, 0x09); /*Enable the tristate output buffers by using the same
control byte used to configure the PPI, but now set bit
D7 low. See item d. above.*/
Programming Example (Basic)
The following example in BASIC is provided as a guide to assist you in developing your working software.
In this example, the card base address is 2D0 hex and the I/O lines of group 0 are to be setup as follows:
Port
A
=
Input
Port
B
=
Output
Port C Hi
=
Input
Port C Lo
=
Output
The first step is to configure the control register. Configure bits of the control register as:
D7 1 Active
Mode
Set
D6 0 Mode
0
D5 0 Mode
0
D4 1 Port A = input
D3 1 Port C Hi = input
D2 0 Mode
0
D1 0 Port B = output
D0 0 Port C Lo -= output
This corresponds to 98 hex. If the card address is 2D0 hex, use the BASIC OUT command to write to the
control register as follows:
10
BASEADDR=&H2D0
20
OUT
B3,&H98
To read the inputs at Port A and the upper nybble of Port C:
30
X=INP(BASEADDR)'Read Port A
40
Y=INP(B2)/16'Read Port C Hi
To set outputs high (1) at Port B and the lower nybble of Port C:
50
OUT B1,&HFF'Turn on all Port B bits
60
OUT B2,&HF'Turn on all bits of Port C lower nybble