User`s manual
ENDAT-D2550 USERS MANUAL 
UNICORN COMPUTER CORP. 
21 
Sample code for input (using Turbo C/C++ 3.0) 
#define input_port 0x4f // Digital input data port 
Unsigned char read_data; 
 outportb(0x4e,0x87); //Unlock register 
 outportb(0x4e,0x87); //Unlock register 
  outportb(0x4e,0x07);  //set Logic Device number pointer 
  outportb(0x4f,0x07);   //set Logic Device number 
  outportb(0x4e,0x2A);  //set GOIP Function 
 outportb(0x4f,0xFC); //set GP10~GP17 
  outportb(0x4e,0x30);  //set Device Active 
  outportb(0x4f,0x01);   // set Bit 1 = Active; 0=Disable 
  outportb(0x4e,0xF0);  // set GPIO Output / Input Port 
 outportb(0x4f,0xC3);  // 0=Output/ 1=Input 
     //Bit 2~5 DIO-O4~ DIO-O7. 
 //Bit 0,1,6,7 DIO-I4~DIO-I7. 
 outportb(0x4e,0xF1);  //Read DIO-Input register. 
  outportb(0x4f,0xnm);  //Bit 2~5 DIO-O4~ DIO-O7. 
 //Bit 0,1,6,7 DIO-I4~DIO-I7..(Read Only) 
read_data=inportb(input_port); // Read digital input data 
printf("DIO-Input=%02X\n",read_data);  //Show digital input data on screen 
Sample code for input (using Turbo C/C++ 3.0): 
bit No 7 6 5 4 3 2 1 0 
Map 
NA NA DIO-O7 DIO-O6 DIO-O5 DIO-O4 NA NA 
Sample code for output (using Turbo C/C++ 3.0) 
 outportb(0x4e,0x87); //Unlock register 
 outportb(0x4e,0x87); //Unlock register 
  outportb(0x4e,0x07);  //set Logic Device number pointer 
  outportb(0x4f,0x07);   //set Logic Device number 
 outportb(0x4e,0x2A); //set GOIP Function 
 outportb(0x4f,0xFC); //set GP10~GP17 
 outportb(0x4e,0x30); //set Device Active  
  outportb(0x4f,0x01);   // set Bit 1 = Active; 0=Disable 
  outportb(0x4e,0xF0);  // set GPIO Output / Input Port 
 outportb(0x4f,0xC3);  // 0=Output/ 1=Input 
     //Bit 2~5 DIO-O4~ DIO-O7. 
 //Bit 0,1,6,7 DIO-I4~DIO-I7. 
 outportb(0x4e,0xF1);  //Read DIO-Input register. 
  outportb(0x4f,0xnm);  // Bit 2~5 DIO-O4~ DIO-O7. 
 //Bit 0,1,6,7 DIO-I4~DIO-I7..(Read Only)










