Example (_inpd -- Read Doubleword from Input Port)
This example uses _inpd to read a doubleword value from the specified input port and return the data read.
#include <builtin.h>
#define LOWER 0 #define UPPER 65535
int Add1(int j);
static long g;
enum fruit {apples=10, bananas, cantaloupes};
int arr[] = {cantaloupes, bananas, apples};
union
{
int i;
char ch;
} un;
int main(void)
{
unsigned long l;
volatile const int c = 0;
un.i = 65534;
g = _inpd(255); /* put the data read in a global variable */
/* =========================== */
/* Types of port number passed:*/
/* --------------------------- */
l = _inpd(c); /* - constant */
l = _inpd(un.i); /* - element of union */
l = _inpd(Add1(cantaloupes)); /* - return value from a */
/* function call */
l = _inpd(_inp(arr[Add1(LOWER)])); /* - return value from a */
/* builtin function call */
/* --------------------------- */
return 0;
}
int Add1(int j)
{
j += 1;
return j;
}