It isn't that hard to find what type of printer port you have if you know the base address of the parallel port you are trying to access. This base address can be found by looking into the BIOS of the PC starting at address 0x0408 (flat 32-bit addressing mode). There may be up to three entries in this list. The other two are at 0x40A and 0x40C. The tricky part is they don't necessarily correspond to LPT1, 2, and 3 in that order! Let me know if you need to do this. Once you know the base address of the parallel port you want, to test if it's ECP capable, read the Control Reg (BaseAddress + 2) and try to read the EC Register (BaseAddress + 0x402) and compare the two. If they are equal, it is not and ECP port. But if they are not it doesn't mean it is ECP for sure, so you must place the ECP port into test mode and write a couple of bytes to the ECP test queue (BaseAddress + 0x400). Then read back from the queue and see if the test bytes match - if they do you have an ECP port for sure! If I were you, I'd stay away from EPP mode since ECP provides the same transfer rate and is a little easier to implement. To configure your PIC, have it always start in Bidir mode. Set the EC register on the PC to Bidir mode and then send a byte to the PIC to configure ot for ECP mode. Finally set the EC register back to ECP mode! If the port isn't ECP mode, do nothing (yeah)! Whew! email me with any questions! -=-=-=-=-=-=-=-=-=-=-=-= Dennis Merrill, BSEE Device Driver Engineer Embedded Systems Group Nicolet Instrument merrill@nicolet.com -=-=-=-=-=-=-=-=-=-=-=-=