Wie meinst Du das, welche Adresse ist "günstiger"?
Darum geht es nicht. Die Ports haben eine bestimmte Bedeutung. Müßte jetzt lügen, wie es beim LPT war, aber wenns genauso wie beim IDE-Controller ist, sind diese PORTS prinzipiell mit Registern verknüpft (ich meine nicht die Register der CPU, sondern im Chipsatz bzw. im LPT-Controller, der ja via ISA-Bridge am PCI-Bus hängt).
Folglich gibt es Befehlsregister, Statusregister und Datenregister. Jedes hat seine spezifische Aufgaben. Ich denke mal, da kann ein alter DOS-Hase mit Hardwareerfahrung mehr zu sagen.
Auf jeden Fall ist es nicht egal, welchen Port Du ansprichst.
___________________________________
Bearbeitet.........................
___________________________________
So, hab mich mal schlau gemacht.
Zunächt schematisch zur Hardware (Connector), guckst Du hier:
www.tarigon.de/tramp/epp-ecp.html
...
So, hab mal ein wenig gegoogelt und ein klein wenig Infos zusammengetragen:
LPT1 -> 0x0378 - 0x037F (in Delphi $0378 - $037F)
LPT2 -> 0x0278 - 0x027F (in Delphi $0278 - $027F)
So, und wie schon zuvor zu lesen, gibt es diese drei Registerarten: Status- , Befehls- und Datenregister.
Zunächst zum Befehlsregister: es ist beschreibbar, und übernimmt den Befehl (lesen, schreiben, initialisieren, etc.)
Das Datenregsietr kann sowohl beschreiebn als auch gelesen werden, abhängig davon, ob man Daten über den LPT ausgeben (= beschreiben) oder einlesen (= lesen) möchte.
Das Statusregister kann nur gelesen werden und enthält den Statsu der letzten Operation (Ready, Error, Busy...). Dieses Register ist nach JEDER Operation auszulesen, egal, ob Init, Datenausgabe oder einlesen. Sollte das Statusregister nach einem Lesebefehl nämlich einen Fehler melden, sind die daten im Datenregister nur einen Müll wert. Für weitere Fragen mal im Delphi-Forum, bei Delphi-Praxis oder bei Google suchen.
So. Hoffe, das hilft weiter...