With the LPT port solution, the CNC software controls the stepper motors by toggling the pins (step & direction) for each axis according to the needs of the desired toolpath (G-code).
A problem of the LPT port is the undefined state and behavior of some pins during the boot sequence of the computer. If your CNC mill is already activated, this might result in undesired motion of the CNC mill. In order to prevent this behavior, some stepper motor controllers have a built-in charge pump. This charge pump requires a defined squarewave signal at a specific LPT pin to enable the stepper motor controller. If this charge pump signal is missing the stepper motor driver won’t perform any motion (steps). The signal is only generated when the CNC software (here LinuxCNC) is running properly and no emergency stop condition is met.
HAL tweaks in the post