Instalando
um driver no windows NT/2000 ou XP para rodar programas que
acessem a Porta Paralela.
Para
seguir os passos abaixo certifique-se de que tenha logado no windows NT,
2000 ou XP como administrador, ou no mínimo ter privilégios
para instalar programas no sistema.
SIGA OS PASSOS ABAIXO PARA INSTALAR O DRIVER:
1) Descompacte
o arquivo UserPort.zip;
2) Copie o Driver UserPort.sys para a seguinte pasta:
Nas versões do windows NT ou 2000
C:\WINNT\system32\drivers
Na versão do windows XP Service Pack (SP1 e SP2)
C:\WINDOWS\system32\drivers
3)
Rode o programa UserPort.exe,
selecione os endereços padrão e use o botão Remove
para remove-los, conforme a figura abaixo:
Figura 1
4) Agora vamos entrar como os endereços que pretendemos, para isso digite na caixa de edição o endereço inicial e final, assim: 378-37A, depois é só clicar no botão Add, conforme mostra a figura abaixo:
Figura
2
5) Para ativar o driver e fechar o programa, clique nos botões: Update, Start e por fim no Exit.
Pronto,
agora poderemos executar qualquer programa que acesse a Porta Paralela, ou
mesmo compilar nossos fontes usando as funções outportb() e
inportb() para rodar no windows NT/2000 ou XP sem nenhuma restrição.
Pode-se acessar a porta paralela em C/C++, C++Builder, Delphi, Pascal, Assembler
etc., usando as funções disponíveis em cada compilador,
ou implementando-as conforme a linguagem que estiver utilizando.
Para acessar a Porta Paralela no C++BUILDER utilize os modelos das funções abaixo:
//--------------------------------------------------------------------------------------
//Recebe um byte da porta
unsigned char inportb(short int EndPorta)
{
unsigned char Valor;
asm
{
mov dx, EndPorta
in al, dx
mov Valor, al
}
return Valor;
}
//--------------------------------------------------------------------------------------
//Envia um byte para a porta
void outportb(short int EndPorta, unsigned char valor)
{
asm
{
mov dx, EndPorta
mov al, valor
out dx, al
}
}
OU
//--------------------------------------------------------------------------------------
//Envia um byte para a porta
void outportb(short int EndPorta, unsigned char ByteValor)
{
_DX = EndPorta;
_AL = ByteValor;
__emit__( 0xEE );
}
//--------------------------------------------------------------------------------------
//Recebe um byte da porta
unsigned char inportb(short int EndPorta)
{
_DX = EndPorta;
__emit__ (0xEC);
return(_AL);
}
OU
//--------------------------------------------------------------------------------------
//Envia um byte para a porta
void outportb(UINT EndPorta,
BYTE Valor)
{
__asm mov edx, EndPorta
__asm mov al, Valor
__asm out dx, al
}
//--------------------------------------------------------------------------------------
//Recebe um byte da porta
BYTE inportb(UINT EndPorta)
{
unsigned char Valor;
__asm mov edx, EndPorta
__asm in al, dx
__asm mov Valor, al
return Valor;
}
Para acessar a Porta Paralela no DELPHI utilize os modelos das funções abaixo:
procedure
outportb(EndPorta : integer; Valor : BYTE);
function inportb(portid : integer) : byte;
procedure outportb(EndPorta : integer; Valor : BYTE);
Begin
asm
mov edx, EndPorta
mov al, Valor
out dx,al
end;
end;
function
inportb(EndPorta : integer) : byte;
Var Valor : byte;
Begin
asm
mov edx, EndPorta
in al,dx
mov Valor, al
end;
inportb := Valor;
end;