Auf den (ersten) Parallel-Por kann man über die I/O Ports 0x378 (Datenregister), 0x379 (Statusregister) und 0x37A (Kontrollregister) zugreifen.
Über die Assembler Befehle IN bzw. OUT kann man auf diese Ports zugreifen.
Auch mit QBasic / DOS ist das sehr leicht möglicht. Unter Windows NT+ braucht man dafür einen Treiber, der im Kernelmodus läuft. Mit Linux ist der Zugriff auf den Parallel Port soweit ich weiß auch sehr leicht.

Hier ist ein Tutorial, wie der Parallel Port aufgebaut ist:
http://www.nondot.org/sabre/os/files...n/parallel.txt

Die LEDs kannst du mit entsprechenden Widerständen einfach an die Pins anschließen.