So , got the optiplex 980. Set up Windows 7 32 bit Professional , loaded latest intel chipset drivers. All peripherals detected, no external drivers needed.
On board printerport set to ECP mode in bios and locked to 0x3BC
- Dataman 48LV programmer works ( even though they claim you need a hardware change to be compatible with windows xp, it works fine on windows 7 )
- EEtools Topmax programmer works
- Agilent Logicwave logic analyser works
Tried :
PCIx printerport : does not work
PCI mos9008 : does not work
PCI Sunix 400x : does not work
PCI Startech with hardware switches to lock address to 378 278 or 3bc : does not work
Loaded the "legacy " windows driver and hard coded to an lpt address : does not work.
so i kept digging further
- install virtual pc , load windows XP : same story , onboard port works, plugin boards don't
So did a bit more digging :
the root problem is the translation of PCIx to PCI.
Modern computers do not have true PCI ports anymore. The root hub is a PCIx hub. A translation happens from PCIx to PCI. That translation does not pass the old ISA address space to PCI.
Even though PCI in itself can map the old ISA ports , the root hub does block it. So no matter what you try : the data simply does not arrive at the endpoint.
The on-board LPT does work because it does not sit on the PCI or PCIx hub : it sits on the LPC bus , which is the old-school ISA bus with data and address time multiplexed over reduced pins. The LPC super i/o chip (in case of the optiplex a SMSC device)
converts that back to full ISA and has the things like PS/2 , floppy, printer, serial and other legacy stuff. This conversion is pure hardware.
It may be possible that even older hardware that does not have PCIx could work with plugin cards but i am not going to try. Those machines are so old it is not worth it.
If you get a machine to drive old school programmers and equipment : check that there is an on-board printerport driven from an i/o controller that sits on the LPC bus. They work.
So now i have to find an old-school switch. Or make my own and use analog bus switches like TI's SN74CBT16212 that have enough channels. i can add additional ESD protection on the ports. make a 1 to 4 switch , or even a 1 to 6 , room for expansion...