Linuxtrent: Re: Parallela Bidirezionale

  • From: Daniele Nicolodi <daniele@xxxxxxxxxx>
  • To: linuxtrent@xxxxxxxxxxxxxxxxx
  • Date: Thu, 1 Feb 2001 14:58:51 +0100

On Thu, Feb 01, 2001 at 07:15:13AM +0100, Guido Brugnara wrote:

> Quello che vuoi fare non =E8 utilizzare la parallela attraverso il driver=
>  del kernel, ma leggere e scrivere in memoria I/O; =E8 una cosa diversa.
> Se non sbaglio, scusa di kernel non sono esperto, ci dovrebbe essere un m=
> odulo che permette di mappare spazi I/O all'utente in modo che si possa f=
> are operazioni di lettura scrittura, altrimenti protetti.
> Cos=EC fa ad esempio dosemu, ma solo se lo spazio IO non =E8 occupato da =
> un driver; se hai parport installato quest'ultimo di alloca come riservat=
> o il segmento I/O della parallela; vedi se con un'istruzione iocontrol pu=
> oi leggere e scrivere ...

Questo e` appunto quello che sto facento io adesso:

#define BASE_ADDRESS 0x378

ioperm(BASE_ADDRESS, 3, 1)

outb(data, BASE_ADDRESS)

outb(4, BASE_ADDRESS + 2);      
low_nibble = inb(BASE_ADDRESS + 2); 
hight_nibble = inb(BASE_ADDRESS + 1); 
low_nibble = low_nibble & 0x0F;      /* 00001111 */
hight_nibble = hight_nibble & 0xF0;  /* 11110000 */
data_byte = low_nibble | hight_nibble;
data_byte = data_byte ^ 0x8B;        /* 10001011 */

ioperm(BASE_ADDRRESS, 3, 0)

Io vorrei usare i piedini corrispondenti a BASE_ADDRESS (dal 2 al 9) sia
come ingressi che come uscite. Questo e` possibile configurando la parallela
come bidirezionale o EPP e ECP.
Il mio problema e` che non so come utilizzare la parallela in modo EPP:
l'ho settata nel bios ma provando a utilizzarla normalmente come sopra
ovviamente non funziona.
Ho fatto svariate ricerche ma non ho ancora trovato nulla.

Ciao
-- 
Daniele
                    --- http://www.grinta.net ---

-- 
Per iscriversi  (o disiscriversi), basta spedire un  messaggio con SOGGETTO
"subscribe" (o "unsubscribe") a mailto:linuxtrent-request@xxxxxxxxxxxxxxxxx


Other related posts: