hola, no es que sea experto en el cuento, pero, si desde el lenguaje que uses, tiene aceso a las api de windows, puedes usar el recurso del timer, consigues las librerias que dice manonline para gestionarlo, el puerto lpt no?, entonces, le das un timeout al timer que crees, y cuando se cumpla, revisas el puerto para ver si ha cambiado de estado, para mas información acerca de como usar el timer revisa este documento
aqui, busca en el indice timers, esta en ingles pero se puede trabajar, ah, si lo hace desde vb, mucho mas facil, por que el control ya está creado, no es si no insertarlo y listo!, cuidense, me comenta cualquier cosa...