Comme il n'est pas possible d'accéder directement aux registres matériels sous XP. Il faut passer par une librairie, j'utilise inpout qui marche parfaitement.
Elle est téléchargeable à cette adresse:
http://www.logix4u.net/inpout32.htm

L'archive contient en plus d'une DLL, des fichiers d'exemples destinés au compilateur Borland mais ils se compilent sans modif sous DevCPP (Ne pas oublier de linker inpout32.dll).

Voici les trucs a savoir pour utiliser un port parallèle

il y a 3 registres à utiliser:

  1. Registre de données (1 adresse de lecture et 1 adresse d'écriture)
  2. Registre de status
  3. Registre de contrôle

L'adresse du port est généralement 0x378, mais ça peut changer selon la machine!

L'écriture d'une donnée se fait en 0x378 (l'adresse du port) La lecture d'une donnée se fait en 0x378 + 7

le registre de contrôle (adresse 0x378 +2)

  • bit 0 : /strobe
  • bit1 : /auto linefeed
  • bit2 : /init
  • bit3 : /select printer

le registre de status (adresse 0x378 +1)

  • bit7 : busy
  • bit6 : ack
  • bit5 : paper out
  • bit4 : select in
  • bit3 : error

Écriture des data

  1. (oup32)(0x378,toto);


Lecture des data

  1. toto = (inp32)(0x378 + 7);

pour plus d'info: www.beyondlogic.org/spp/parallel.htm