Well, since you're a programmer, let me explain it in these terms.
G-Code is rather like postscript. It is an abstraction layer which allows a movement to be described in generic terms. During the setup of your controller program, you tell it how many steps there are in an inch...that sort of thing, and then the controller program does the calculations. G code simply says "move the X axis 1 inch clockwise" and the program translates that into the necessary number of output pulses for *your* machine.
Now, g-code is treated as an interpreted language...it exists as a simple ASCII text file, and is interpreted by a program we refer to as the controller. TurboCNC is a shareware controller program which is quite good.
TurboCNC (and all the other programs) will interpret each line, and output instructions by outputting a bit pattern through the parallel port directly. Consequently nearly all of them run under DOS or LINUX...direct parallel access under Windows is rather difficult.
Now, the hardware interface. Basically, it takes 2 pins to control a motor. One signals the driver circuit to make the motor take a step...the other changes state (0 or 1) to tell it which direction. Depending on your setup, the pins can signal a step by going high or going low...which is required depends on your driver circuit.
Unless you intend to build your own circuitry, which many people choose to do, you need only treat it as a "black box" interface that needs to be wired up. Pulse in one side, stepper drive signals out the other.
-- Chuck Knight |