Sziasztok!
>Egy kis segitségek kérek: Egy ISA slotos kártyát kell vezérlenem, ami
>a &300 bá ziscimen van. Turbo Pascal alol ez nem gond:
>Port(baziscim) := output_adat;. C-ben van az inp és az outp fügvény.
>A gond az, hogy nekem C++ alatt kell megoldanom a dolgot. Ott
>milyen parancs, fügvény van? Hogyan lehet megoldani? Windows
>NT/2000 oprenszer van.
_outp( short port,int databyte);
int _inp( unsigned short port );
Vagy ASM-ben:
unsigned int w32outp( int port, int value )
{
int iRetValue;
unsigned char cvalue = value & 0xFF;
__asm
{
push dx
push ax
mov dx, WORD PTR port
mov al, BYTE PTR cvalue
out dx, al
pop ax
pop dx
}
iRetValue = cvalue;
return iRetValue;
}
//write one byte to a 80x86 hardware port
unsigned int w32inp( int port )
{
int iRetValue;
__asm
{
push dx
push ax
mov dx, WORD PTR port
xor ax, ax
in al, dx
mov WORD PTR iRetValue, ax
pop ax
pop dx
}
return iRetValue;
}
NT/W2000/XP alatt kell hasznalni a "giveio.sys" drivert,
vagy irni egy masik drivert :)).
Ha a gepen a "giveio.sys" driver el van inditva, a
programbol ahonnan a portokat akarod hasznalni a kov.
utasitas kell:
// Create handle to giveio ( inp, outp )
handle = CreateFile( "\\\\.\\giveio", GENERIC_READ, 0,
NULL,OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
if ( handle == INVALID_HANDLE_VALUE )
{
printf( "Couldn't access giveio device\n" );
return 0;
}
CloseHandle(handle);
Udv. Arpi
|
Hello ,
Anélkül, hogy tudnám mi az a Bázis cím, annyit
azért tudok, hogy ha egy c++-ba írsz egy c függvényt akkor az
kompatibilis kód. Tehát ha azt kérdezed hogyan lehet megoldani akkor
legegyszerübben úgy mint C-ben... De ha az a kérdés milyen osztályt
kell példányosítanod erre a feladatra akkor asszem fogalmam sincs :)
--
Üdvözlettel,
tozo mailto:
|