| Zeile 3: | Zeile 3: | ||
==Allgemeines== | ==Allgemeines== | ||
| − | Als erstes ein | + | Als erstes ein paar Informationen zu APM (Advanced Power Management) und diesem Tutorial. |
===Vorwort=== | ===Vorwort=== | ||
| Zeile 12: | Zeile 12: | ||
===Worum geht es in diesem Artikel?=== | ===Worum geht es in diesem Artikel?=== | ||
| − | Da ich mich selbst eine Zeit lang mit APM beschäftigt habe möchte ich euch zeigen wie | + | Da ich mich selbst eine Zeit lang mit APM beschäftigt habe möchte ich euch zeigen wie man mit diesem Standard umgeht. |
| − | man mit diesem | ||
===Was muss mein OS können, damit ich diesem Tutorial folgen kann?=== | ===Was muss mein OS können, damit ich diesem Tutorial folgen kann?=== | ||
| Zeile 25: | Zeile 24: | ||
===Was ist APM?=== | ===Was ist APM?=== | ||
| − | APM ist ein | + | APM ist ein Standard für Power-Management, der von Intel und Microsoft entwickelt wurde. |
==APM Einstieg== | ==APM Einstieg== | ||
| − | Der APM- | + | Der APM-Standard definiert 3 Schnittstellen, mit denen das Betriebssystem arbeiten kann. |
Diese Schnittstellen sind: | Diese Schnittstellen sind: | ||
| Zeile 38: | Zeile 37: | ||
Nur eine dieser Schnittstellen kann gleichzeitig genutzt werden. | Nur eine dieser Schnittstellen kann gleichzeitig genutzt werden. | ||
<br>Bevor eine dieser Schnittstellen genutzt werden kann muss das Betriebssystem kontrollieren, ob APM vorhanden ist, denn einige neue Computer unterstützen APM nicht mehr. | <br>Bevor eine dieser Schnittstellen genutzt werden kann muss das Betriebssystem kontrollieren, ob APM vorhanden ist, denn einige neue Computer unterstützen APM nicht mehr. | ||
| − | <br>Wenn APM unterstützt wird muss das | + | <br>Wenn APM unterstützt wird muss das Betriebssystem sich als nächstes mit einer Schnittstelle verbinden. Es ist eine gute Idee das Trennkommando zu senden bevor man sich mit einer Schnittstelle verbindet. |
| Zeile 64: | Zeile 63: | ||
=====Verbinden===== | =====Verbinden===== | ||
| − | Diese Funktion verbindet sich zu einer der Schnittstellen, basierend auf der | + | Diese Funktion verbindet sich zu einer der Schnittstellen, basierend auf der Variable ''interface_number'', die folgende Werte haben kann: |
01h = Real Mode Interface | 01h = Real Mode Interface | ||
02h = 16bit Protected Mode Interface | 02h = 16bit Protected Mode Interface | ||
| Zeile 76: | Zeile 75: | ||
jc APM_error ;Wenn das Carry-Flag gesetzt wurde gab es einen Fehler (APM_error eigenes Label) | jc APM_error ;Wenn das Carry-Flag gesetzt wurde gab es einen Fehler (APM_error eigenes Label) | ||
;Die Funktion war erfolgreich | ;Die Funktion war erfolgreich | ||
| − | ;Die | + | ;Die Rückgabewerte sind unterschiedlich für jede Schnittstelle |
;Die Real Mode Schnittstelle gibt nichts zurück. | ;Die Real Mode Schnittstelle gibt nichts zurück. | ||
| Zeile 104: | Zeile 103: | ||
===Geräte kontrollieren=== | ===Geräte kontrollieren=== | ||
| − | Nachdem das Betriebssystem sich mit einer Schnittstelle verbunden hat kann es anfangen Geräte zu kontrollieren aber als erstes muss es das Power Management aktivieren. | + | Nachdem das Betriebssystem sich mit einer Schnittstelle verbunden hat kann es anfangen Geräte zu kontrollieren, aber als erstes muss es das Power Management aktivieren. |
====Power Management aktivieren==== | ====Power Management aktivieren==== | ||
| Zeile 121: | Zeile 120: | ||
====Gerätezustand setzen==== | ====Gerätezustand setzen==== | ||
| − | Diese Funktion setzt alle Geräte auf den Zustand auf den Wert der | + | Diese Funktion setzt alle Geräte auf den Zustand auf den Wert der Variable ''power_state'' Korrekte Werte für ''power_state'' sind: |
01h = Standby | 01h = Standby | ||
02h = Suspend | 02h = Suspend | ||