fully operational PLC with old pc using parallel port for inputs and outputs
You need an extension to the OS, c: alled real time kernel. In windows world it's called intervalzero, Linux has many others: RT-Linux, RTAI, preeemption POSIX,...Then you need a software or C code running in the real time kernel. This is Codesys, but also some free source like Matplc (however I don't know if still alive), ClassicLadder,..