Syntax: OUT Port, Wert
Typ: Anweisung
Kategorie: Hardware
OUT schreibt ein Byte an einen Ausgabeport (Hardware).
- 'Port' ist die Adresse (16 Bit) des Ausgabeports.
- 'Wert' ist der Ausgabewert (8 Bit)
Direkte Portzugriffe sind unter Windows NT, 2000, XP und Vista ohne einen speziellen Systemtreiber nicht möglich. Ab FreeBASIC v0.15b wird vom FreeBASIC-Compiler ein 3KB großer Systemtreiber in die erstellte EXE integriert. Diese Systemtreiber wird nur ausgeführt, wenn das Programm unter Administrator-Rechten gestartet wurde. Danach können auch Programme, die nicht unter Administrator-Rechten laufen, auf diesen Treiber zugreifen. Nach jedem Neustart des Betriebssystems ist ein erneuter Aufruf des Systemtreibers unter Administrator-Rechten erforderlich.
Windows NT und dessen Nachfolger verwenden dies als Sicherheitsmaßnahme, da der Büronutzer selbstverständlich nicht im schlimmsten Falle die Hardware zerstören soll. Man sollte daher wissen was man tut, wenn man diesen Befehl anwendet.
Der von FBC aktuell integrierte Treiber wird nicht auf Linux angewandt. Daher muss beim Zugriff unter Linux mit Root-Rechten gearbeitet werden, andernfalls findet keine Ausführung statt. Unter allen anderen Betriebssytemen, welche FreeBASIC unterstützt, ist dies nicht nötig.
Unterschiede zu früheren Versionen von FreeBASIC:
- Bis FreeBASIC v0.14 emuliert OUT den VGA-Grafik-Port. Der Befehl wird verwendet, um die Einträge der VGA-Pallette zu bearbeiten. Die einzigen funktionierenden Ports sind &h3C7, &h3C8 und &h3C9. Sie werden diesen Befehl normalerweise nicht benötigen; zur Farbmanipulation dient der Befehl PALETTE.
- Ab FreeBASIC v0.15b werden Zugriffe auf den VGA-Port immer noch emuliert, wie in FreeBASIC v0.14. Wenn der Zugriff auf den Port fehlschlägt, wird ein Laufzeit-Fehler erzeugt.
Unterschiede zu QB:
OUT ist auf die Emulation des VGA-Ports begrenzt; nur die Ports &H3C7, &H3C8 und &H3C9 funktionieren.
Siehe auch: PALETTE, PALETTE GET, INP, WAIT