Hey Brian, I'm just looking at what you put earlier as your results: > Here are the results:) > On boot up: > Base address ( 0x378) = 7F04 > Base +1 (0x379) = CC7F > Base +2 (0x37A) = CCCC > > While the LPT program was running:) > Base address ( 0x378) = 7FFF > Base +1 (0x379) = E37F > Base +2 (0x37A) = E3E3 > > After the LPT program:) > Base address ( 0x378) = 7F04 > Base +1 (0x379) = DC7F > Base +2 (0x37A) = DCDC > > Now, If I run the LPT program and it exits properly (it has now set all > bits on the port to outputs) I can run my 'C' program and read the port > correctly but, if I just reboot my PC and try to read the port, it does >not > work. I have set the three registers to 7FFF for the base address, and > E37F for Base + 1 and E3E3 for base + 3. My only guess now is that the > LPT program does more than setting up these three registers. Can anybody > tell me exactly what is needed (step by step) to initialize the parallel > port? Brian, these three registers are EIGHT bits long. You seem to be reading/writing sixteen bit values to them. How are you reading/writing to them? Is the routine using an input byte or input word instruction? In "standard" C, you should use the "inp"/"outp" functions only. In most PCs that I have seen, the actual I/O bus is eight bits wide, when a sixteen bit read/write instruction is encountered, there are actually two reads/writes with the processor in "Hold" while this is happening; eight bits from the address PLUS another operation on the next register address. The hardware combines these into a sixteen bit value. This makes a word (16 bit) I/O access the same to the hardware as two eight bit I/O accesses. And, if you look at your results, you'll see that this is exactly what is happening (note that the low byte of the next address is the same as the high byte of the current address). NEVER do sixteen bit I/O operations on a PC unless you know *exactly* what you are doing (even then it's not recommended). Good luck, myke "In this life we all get an equal share of ice. The rich get it in the summer, the poor get it in the winter." - Bat Masterson's last words