@engine: Leider kann ich das nicht benutzen. Du hast damals offensichtlich schon die DOS-Funktionen benutzt (spezieller Int und vorher Register mit Funktionsindex und Parameter laden). Da du kein IN/OUT in deinem Beispiel nutzt, bringt es erstmal nix. Danke trotzdem für deine Mühe.
Zitat von
omata:
Zitat von
omata:
Mir persönlich reicht dieses Ansteuern des Parallelport nicht. Ich finde diese gute alte Schnittstelle vorallem deshalb so interresant, weil man über sie einen Interrupt im System auslösen kann.
Zitat von
Mephistopheles:
Ich kenne das mit (Hardware)Interrupts exakt umgekehrt. Sie werden ausgelöst, nämlich durch Ereignisse an der Hardware. Klär mich mal auf. Worauf du hinauswillst.
ja, so wie du es verstanden hast, habe ich es auch gemeint.
System stand hier für Betriebssystem. Über den Parallelport kann von einer Hardware ausserhalb des Rechners ein Interrupt im Rechner ausgelöst werden. Das war genau, was ich gemeint habe.
Sorry, wenn ich mich nicht klar ausgedrückt habe.
Okay. Dann ist klar, daß es einen eigenen Treiber braucht (Dongles z.B.).
Zitat von
omata:
Oder wie willst du diese Portzugriff konkret realisieren? Welche Delphibefehle benutzen?
API-Funktionen
... DeviceIoControl oder die entsprechenden Native APIs. Muß ich noch sehen, wie es besser und schneller geht.
Genaugenommen ist es kein direkter Portzugriff, sondern Benutzung der Möglichkeiten, die schon vom Standard-LPT-Treiber seit mind. NT 3.51 zur Verfügung gestellt werden. Im Grunde machen das die DLLs der generischen Porttreiber auch nicht anders, obwohl es da auch diejenigen Treiber gibt, die direkt den Opcode für IN/OUT verwenden (schlecht!), was tabu ist - und jene die READ_PORT_*() benutzen (gut!). Um von der
DLL oder einem Programm "direkt" auf einen Treiber zuzugreifen, braucht man sowieso IOCTLs, also DeviceIoControl() - oder eben Ersatzfunktionen.
Danke erstmal. Ich schaue mir das an