Mach3 also has a Keygrabber, which I use translate the buttons of a microsoft usb game controller into key codes to jog, home and start/stop the spindle.