Linee interfaccia Centronics
PIN	NOME	DIREZIONE	INDIRIZZO ED USO	
	________		890   OUT 890,1   0V	
1	STROBE	USCITA	         OUT 890,0   5V	
2	DATA1	USCITA		
3	DATA2	USCITA		
4	DATA3	USCITA		
5	DATA4	USCITA	OUT 888,N	
6	DATA5	USCITA	per	
7	DATA6	USCITA	 0   N  255	
8	DATA7	USCITA		
9	DATA8	USCITA		
10	ACK	INGRESSO	B3  (64)  SE ALTO	

11	_____
BUSY	
INGRESSO	  
B4 (128) SE BASSO 	
12	PAPER OUT	INGRESSO	B2  (32)  SE ALTO	
13	SELECTED	INGRESSO	B1  (16)  SE ALTO	

14	__________
AUTOFEED	
USCITA	
890 OUT 890,2 0V	
15		INGRESSO	B0  ( 8 )  SE ALTO	
16	INIZIALIZE PRINTER	USCITA	890 OUT 890,4 5V	

17	_____________
SELECT INPUT	
USCITA	
890 OUT 890,8 0V	
25	GND			

Le linee di uscita DATA8...DATA1, di indirizzo 888 (378 esadecimale),  situate tra i pin 9....2, sono memorizzate.

indirizzo 888 :
linee 	DATA8	DATA7	DATA6	DATA5	DATA4	DATA3	DATA2	DATA1	
Pin 	9	8	7	6	5	4	3	2	

L’interfaccia Centronics possiede 5 linee di ingresso all’indirizzo 889 (379 esadecimale) con i seguenti valori e logiche di funzionamento:
______
BUSY  		(pin 11) 	vale 128 se è al livello basso 	(logica negativa).
ACK 		(pin 10) 	vale 64 se è al livello alto 	(logica positiva).
PAPER OUT 	(pin 12) 	vale 32 se è al livello alto 	(logica positiva).
SELECTED	(pin 13) 	vale 16 se è al livello alto 	(logica positiva).
ERROR	(pin 15) 	vale 8 se è al livello alto 	(logica positiva).

indirizzo 889:
linee 		ACK	PAPER OUT	SELECTED	ERROR	1	1	1	
Pin 	11	10	12	13	15	 	 	 	

I rimanenti 3 bit meno significativi del byte di ingresso non sono accessibili sul connettore e sono poste, internamente all’interfaccia,  al livello alto (1112 = 710 ).
Avendo a disposizione 5 bit (32 combinazioni) è possibile acquisire, nella variabile A valore compresi tra 0 e 31.
Ciò si realizza con i seguenti passaggi:

A = A XOR 128 (per complementare il bit applicato su BUSY);
A = A - 7           (per azzerare i tre bit meno significativi : operazione, comunque, non necessaria);
A = A/8             (per lo scorrimento a destra di 3 posizioni).

L'algoritmo di acquisizione in linguaggio QBASIC risulta, pertanto:

A = ((INP(889) XOR 128) - 7 ) / 8

In questo modo la parola di ingresso A assume un valore compreso tra 0 e 31.

L’indirizzo Centronics 890 (37A esadecimale) rende disponibile in uscita altri 4 bit di cui tre attivi in logica negativa ed una in logica positiva :
___      _______ 
STB = STROBE      		(pin 1)                     	 vale 1 se è al livello basso (logica negativa).
__     __________
AF = AUTOFEED 	 	(pin 14)                     	 vale 2 se è al livello basso (logica negativa).

IP = INIZIALIZE PRINTER  	(pin 16)	 		 vale 4 se è al livello alto (logica positiva).
__    _____________
SI = SELECT INPUT  		(pin 17)                	 vale 8 se è al livello basso (logica negativa).

IRQE = ABILITA INTERRUPT              		 	vale 16  se è al livello alto (logica positiva) ma non 
                                                               	 	è disponibile fisicamente.

indirizzo 890	bit 7	bit 6	bit 5	bit 4	bit 3	bit 2	bit 1	bit 0	

linee 	
			
IRQE	__
SI	
IP	__
AF	___
STB	
Pin             					17  	16	14	1	
	                                                                                                 	
Se si intende trasmettere una parola a 4 bit con valore compreso tra 0 e 15 e con i bit attivi in logica positiva, occorre commutare (XOR con 1 logico) i bit  e lasciare inalterato (XOR con zero logico) il bit IP :
OUT(890), A XOR 11 

A3	A2	A1	A0	
A nel PC	
1	0	1	1	11	
				
A XOR 11	
A3	A2	A1	A0	A in uscita	

Procedura per dichiarare di ingresso la porta all'indirizzo 888.
Se l'interfaccia Centronics è impostata come EPP (Enhanced Parallel Port) è possibile effettuare l'input di un byte all'indirizzo 888 purché  si imposti ad 1 il bit 5 dell'indirizzo 890.
Impostando a 0 il bit 5 dell'indirizzo 890, il byte DATA8...DATA1 all'indirizzo 888 ritorna a funzionare come byte di output.
Si riporta un semplice listato di test in QBASIC (facilmente modificabile in un altro linguaggio di programmazione) per provare la Centronics all'indirizzo 888 come canale di input a 8 bit.
Con un semplice spezzone di cavo telefonico (quello usato per collegamenti su bread-board) si collega il pin 2 (DATA1) al pin 25 (GND) del connettore (femmina) a 25 poli posto sul retro del PC e si prova il programma ottenendo sul monitor la stampa continua del numero 254 fino alla pressione di un tasto qualsiasi sulla tastiera. Portando il filo sul pin 3, 4, ecc. tenendo l'altro capo del filo sempre a massa, si può verificare che effettivamente il dato in lettura si modifica in funzione del pin collegato a massa. È  superfluo dire che le linee DATA8 ... DATA1 posti sui pin 9...2 sono da ritenersi allo stato 1 se tenute aperte.
N.B. Per impostare l'interfaccia Centronics come EPP si va nel BIOS SETUP e si  imposta la stampante come EPP anziché come SPP.
	OUT 890, 32
DO
PRINT INP(888)
LOOP WHILE INKEY$=""
END