sexta-feira, 5 de junho de 2009

Dev-C++ - outportb & inportb

Para quem utiliza o Dev-C++ para acesso a Porta Paralela, existem duas possibilidades:

- Usar a inpout.dll

- Usar rotinas ASM para realizar o acesso.

Neste último caso, ressalta-se as diferenças entre o asm dos compiladores Borland e do compilador utilizado no ambiente em questão. A partir de informações coletadas na www, foi testada e disponibilizada a biblioteca abaixo que permite o uso das funções outportb e inportb. No WinXP é necessário que esteja sendo usado o USERPORT para desta forma liberar a LPT aos aplicativos.

Segue o código das rotinas em ASM para uso no Dev-C++ e controle da LPT.

// ------- inportb para dev c++ ---------------------------
unsigned char inportb(unsigned int port) {
unsigned char ret;
asm volatile("inb %%dx,%%al":"=a" (ret):"d"(port));
return ret;
}

// -------- outportb para dev c++ ----------------------------
inline void outportb(unsigned int port, unsigned char value) {
asm volatile("outb %%al,%%dx": :"d"(port),"a" (value));
}


Nenhum comentário:

Postar um comentário