3

I try to find out how to access a parallel port for writing some bits on a Windows7 machine. This parallel port ist located on a PCI-Card, and is automatically installed by Windows7 and can be monitored as LPT2. The adresses assigned to the Port are E800-E807 and E480-E487 . This looks to me like non-pyhsical adresses. I already tried different methods to write on the port like using inpout32.dll from http://www.logix4u.net/inpout32.htm or parport.dll as a Java solution. To free these ports I installed Userport but I think with this app it's only possible to free real physical ports. So, how can i either change the port adress to e.g. 378, or get my app writing on a virtual adress with inpout32.dll?

I already tried some google-found-advices like disabling the 378-adress in BIOS so it is 'free' for beeing used by the PCI-Card. Or like switching between assingement to LPT1, LPT2, LPT3 but nothing seems to work.

EDIT: Maybe someone knows a specific driver for this PCI-Card, so that I don't need to use the default one? It's: http://www.delock.de/produkte/gruppen/IO+Karten/1x_Parallel_UND_2x_Seriell_-_PCI_Karte_89004.html

Ghita
  • 4,465
  • 4
  • 42
  • 69
Milla Well
  • 3,193
  • 3
  • 35
  • 50
  • Just to make sure, are you using 32 bit or 64 bit Win 7 ? – user957902 Oct 06 '11 at 11:30
  • 64 bit Win 7. AMD Athlon II X3 455 Processor 3.30 GHz. – Milla Well Oct 06 '11 at 11:34
  • 1
    I am thinking that the 64bit os is your issue. The dll drivers you have been using are 32bit and are talking to the wow64 layer and not to the physical hardware. I would suspect that the 64bit address space is different. – user957902 Oct 06 '11 at 11:48
  • So if i change to 32bit, I would be able to write to the real 378-default-port address, but will I also be able to write to this strange E800... address space? – Milla Well Oct 06 '11 at 18:41

1 Answers1

0

E800-E807 and E480-E487 are 16-bit I/O addresses. So, you can use a toolkit like WinIO to read/write them. Note that because it is a PCI device, the I/O addresses are assigned dynamically at bootup, and may change at any time. A well-written program will ask Windows what the I/O address of the card is and use that instead of hard-coding it.

myron-semack
  • 6,259
  • 1
  • 26
  • 38