Hollosi Information eXchange /HIX/
HIX CODER 2216
Copyright (C) HIX
2005-02-20
Új cikk beküldése (a cikk tartalma az író felelőssége)
Megrendelés Lemondás
1 Re: [C++] ISA port kezeles (mind)  74 sor     (cikkei)
2 re: [C++] ISA port kezeles (mind)  11 sor     (cikkei)

+ - Re: [C++] ISA port kezeles (mind) VÁLASZ  Feladó: (cikkei)

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
+ - re: [C++] ISA port kezeles (mind) VÁLASZ  Feladó: (cikkei)

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:

AGYKONTROLL ALLAT AUTO AZSIA BUDAPEST CODER DOSZ FELVIDEK FILM FILOZOFIA FORUM GURU HANG HIPHOP HIRDETES HIRMONDO HIXDVD HUDOM HUNGARY JATEK KEP KONYHA KONYV KORNYESZ KUKKER KULTURA LINUX MAGELLAN MAHAL MOBIL MOKA MOZAIK NARANCS NARANCS1 NY NYELV OTTHON OTTHONKA PARA RANDI REJTVENY SCM SPORT SZABAD SZALON TANC TIPP TUDOMANY UK UTAZAS UTLEVEL VITA WEBMESTER WINDOWS