This is still an on-going thing for the LinuxCNC project (which mostly follows Mach3 in using a Parallel port interface to drive a CNC controller).