Shutdown aus Real-Mode: BIOS-Interrupt?
-
Hallo,
ich programmiere in Assembler im Real Mode, und möchte gerne eine Funktion einbauen, in dem der Computer herunterfährt.
Theoretisch müsste das nicht schwer sein, dafür müsste es doch ein BIOS-Interrupt geben, oder?
Vor allem aus dem Real-Mode sollte das nicht so schwer sein.
Erste Anlaufstelle ist natürlich das osdev-wiki:
http://wiki.osdev.org/ShutdownDa steht was von APM und ACPI, ich weiß nicht, welches von den beiden ich brauche.
In dem Artikel wird auch gesagt, dass das Bios-Interrupt zum Ausschalten 03h wäre...http://en.wikipedia.org/wiki/BIOS_interrupt_call#Interrupt_table
Hier steht aber unter 03h was anderes.
Und könnte mir Bitte jemand erklären, was das im osdev-Wiki angesprochene "Real Mode interface" ist?
Ich versteh das alles noch nicht so ganz
-
Naja, bei deiner Anlaufstelle warst du schon richtig, du hast dich nur verlesen. Das 0x03 ist nicht der Interrupt, sondern der Power-State, in den du die Devices setzen musst. Ich persoenlich hab bisher weder mit APM noch mit ACPI gearbeitet, aber fuer APM ist die Schrittfolge ja ausfuehrlich beschrieben. Im Prinzip kannst du alles hiervon kopieren, und dann im letzten Beispiel einfach
mov cx, [powerstate]
durch
mov cx, 03h ; Off
ersetzen.
-
Danke!