I hope someone finds this information useful. I spent the better part of a day with much foul language working on this problem:
We've been using a Sieg KX1 for making prototypes and the PC we use to drive it failed. The repair required a new motherboard, which naturally has no parallel port. A PCI card will work but there are 2 tasks involved. You have to use a card with 5V outputs and Mach3 has to be informed what is the IO address of the new port.
The 5V requirement is simple. Buy a card with 5V outputs. You can also buy or build a buffer board, but a 5V card will cost less then $20. How do you know if a card supports 5V? You won't know until after you buy it. I bought 3, one had a 5V output. For example a StarTech PCI1P has 3.3V outputs but a PCI-2S1P has 5V outputs. Here's a link to the product that works:
http://us.startech.com/product/PCI2S1P-2-Port-16C550-Serial-and-1-Port-EPPECP-Parallel-Slot-Saver-PCI-CardPCI Parallel Port cards install differently than a legacy motherboard port. You may recall setting the port parameters (Address, irq, type) of your motherboard. The PCI cards don't work that way. The StarTech cards, like many PCI cards, will install two parallel ports, one legacy port as LPT1 and one EPP/ECP port as LPT3. When you install the card and load the drivers you will notice (in Device Manager, Start->Control Panel->System->Hardware Tab->Device Manager) that these two ports use different system resources but they are the same physical port. In other words, Mach 3 will like one but not the other and you have to figure out which. If you enable then disable the port you should hear the mill respond. For my system the hardware responded to LPT3, which Windows Device Manager reported using address 0xE800.. In Mach3, click on Config, Ports and Pins, then look at the attahced screen shot. Fill in the address you found in Device manager. Note that Port#1 in Mach3 does NOT mean LPT1, it's simply the first logical port that Mach3 uses. When you type in the address don't worry that Mach 3 adds a 0x in front of the number. Address E800 and 0xE800 are the same thing, the "0x" just means that the address is in HEX format. Go back into this config screen again to make sure the address was saved.
That's it. It worked for me. I hope it works for you.