We've amanged from a PIC (16C57) into a PC parallel port in standard mode. We use 5 input lines (including 1 IRQ line) and 2 output, though I forget which preceise lines we use. We have a simple protocol: 1. PIC places 4 bits on input lines to PC. 2. PIC raises IRQ line 3. PC IRQ handler takes 4 bits of data and raises an output line (we call it a strobe line) 4. PIC sees strobe line rise, places other 4 bits on input lines and clears IRQ line 5. PC sees IRQ line drop, takes next 4 bits, clears strobe line, ends IRQ processing We use the second output line to test for PIC presence on the port: if the PIC sees that line go high, it sends a couple of test bytes to the PC. Our application is complex and code cannot be shared: our PIC is gathering data full time in a time critical operation and communicates with the PC in limited time during certain phases of the operation. I can get the LPT line names we use tomorrow when I'm back in the office if anyone needs them.