다른일을 하다가 찾은 것입니다.
NT의 하드웨어는 직접 제어가 안되기 때문에 giveio라는 드라이버를 로드 한 다음.
제어를 수행합니다.
볼랜드에서는 없어서 어셈으로 outportb와 inportb를 함수를 만들고
직접 하드웨어의 주소로 접근합니다.
그래서 필요시 마다 찾아서 하드웨어 주소를 찾아서 쓰셔야 해요.
제거 사용한 주소는
PC내부 사운드 0x61 소스에 있음.
프린트 포트 제어는
#define LPT1 0x3bc
#define LPT2 0x378
#define LPT3 0x278
로 선언을 하고 다음과 같은 사용할 포트를 찾습니다. 안그러면 시스템의 하드웨어 정보에서 주소를 찾아서 쓰셔도 되구요. (제 PC는 LPT1이 0x378 더군요. 좀 허접하지요. --;)
short cjtag::OpenLPT()
{
outportb(LPT1,0x55) ;
if(inportb(LPT1) == 0x55 ) return LPT1 ;
outportb(LPT2,0x55) ;
if(inportb(LPT2) == 0x55 ) return LPT2 ;
outportb(LPT3,0x55) ;
if(inportb(LPT3) == 0x55 ) return LPT3 ;
return 0 ;
}
|