PORTS Forum

Ports and Interfaces => Parallel Port => Topic started by: zamar38 on August 26, 2010, 11:20:35 pm

Title: Changing Parallel Port I/O Address for a PCI Parallel Port Card
Post by: zamar38 on August 26, 2010, 11:20:35 pm
I have to use a Win XP application to JTAG a device connected to a Parallel Port on an add-on PCI Card. The problem is well known: the application uses legacy port address, but the system assigns to the port I/O Address above legacy range at boot up, since its on a PCI card. Nothing is reflected or can be changed in BIOS because the port is on PCI Card. Port I/O address can't be changed in Win Device Manager in XP or newer OS.

How can I use this port? Any system utility allows to change I/O address and assign IRQ to the port? In the card's .inf file I see such records:
[caa]
ConfigPriority=HARDRECONFIG
IOConfig=8@100-ffff%fff8(3ff:: )
IRQConfig=S:3,4,5,7,9,10,11,12,14,15

[laan]
ConfigPriority=HARDRECONFIG
IOConfig=8@100-3ff%fff8(3ff:: )
IRQConfig=3,4,5,6,7,8,9,10,11,12,13,14,15


This translates into the port's I/O Range E880-E887 in Win Device Manager.

What these records [caa] and [laan] mean? How I can change them to get a legacy range 378h-37Fh in the Device Manager?

Anything else I can do to make it work?
Title: Re: Changing Parallel Port I/O Address for a PCI Parallel Port Card
Post by: Jan Axelson on August 27, 2010, 09:31:35 am
You could try going to the system BIOS and disabling the motherboard port at 378h if there is one. (The motherboard may have a port even if there is no connector.) That might free up the address for use by the PCI card. No guarantee it will work.

Jan
Title: Re: Changing Parallel Port I/O Address for a PCI Parallel Port Card
Post by: zamar38 on August 27, 2010, 10:24:05 am
Thanks Jan,

There is no physical Parallel Port on the Mobo, and no controls for such port in the BIOS at all. There is only one control for a Serial Port (which is physically present on the Mobo with no connector on the PC's back panel), but that control allows no changes.

Even if there was a Parallel Control in BIOS, freeing a legacy address of an on-board port would not probably result in assigning it to the PCI Parallel Port, since the card maker must assign I/O Addresses (apparently via .inf file at driver install) that are above legacy ISA addresses to comply with PCI standards.

Can you suggest, how to change these addresses in .inf to get a legacy PCI Parallel Port and PCI-to-Parallel Adapter addresses in Device Manager? I also probably need to assign IRQ 7 to the Adapter and Port. Are these I/O Addresses written in Little Endian in the .inf? Is there an Online or other Converter for Endian-to-from-Binary (if 378h-37Fh is a binary address)?

Also, when I select "Use any interrupt assigned to the port" in Properties, it reverts to "Never use interrupts" on the next Device Manager start. Why, and how to fix permanently? May be it depends on whether any device is actually connected to the port, since the chipset is said to auto choose a Port Mode (SPP / EPP / ECP) after Handshacking with the Device.

[attachment deleted by admin]
Title: Re: Changing Parallel Port I/O Address for a PCI Parallel Port Card
Post by: Jan Axelson on August 27, 2010, 10:33:03 am
I don't know of any way to get the card to use 378h.

Jan
Title: Re: Changing Parallel Port I/O Address for a PCI Parallel Port Card
Post by: zamar38 on August 27, 2010, 10:44:49 am
Could you explain, why it can't be done via changing .inf driver file?

Also, what does "Enable Legacy PnP Detection" actually mean? Does it mean intercepting legacy addresses and re-mapping them to the card's address by its chipset or driver?

[attachment deleted by admin]
Title: Re: Changing Parallel Port I/O Address for a PCI Parallel Port Card
Post by: Jan Axelson on August 27, 2010, 12:39:58 pm
It's possible the INF file is describing the capabilities of the adapter. If you edit the INF file, it will no longer be digitally signed, which can affect the driver that Windows assigns.

I believe "Enable Legacy PnP Detection" means that the software will look for legacy PnP ports.

Jan