Lowlevel
Lowlevel => Lowlevel-Coding => Thema gestartet von: JG am 28. February 2005, 15:54
-
Hallo,
wie kann ich im PM den Rechner neustarten und ausschalten?
Danke schon mal!
-
hm... also rebooten fällt mir nur 1 ein: doublefault erzeugen und den handler schrottig machen=>tripplefault=>reboot :lol:
-
gibts dafür nich biosints? wenn ja, einfach in rm zurückschalten und ausführen...
-
Moin, hier mal ein Auszug aus meinem Kernelcode
MOV AX,0x5300 ;APM powerdown
XOR BX,BX
INT 0x15
MOV AX,0x5304
XOR BX, BX
INT 0x15
MOV AX,0x5301
XOR BX, BX
INT 0x15
MOV AX,0x5307
MOV BX,1
MOV CX,3
INT 0x15
MOV AX, 0040h ;cold reboot
MOV ES, AX
MOV WORD [ES:00072h], 0h
JMP 0FFFFh:0000h
MOV AX, 0040h ;warm reboot
MOV ES, AX
MOV WORD [ES:00072h], 01234h
JMP 0FFFFh:0000h
Allerdings denke ich, dass dir der Code im PMode nicht viel nützen wird
-
Da du nach nem Reboot (nach dem Ausschalten sowieso) den PMode eh neu laden musst, kannst du wie bereits vorgeschlagen in den RM zurückschalten und die BIOS-Ints benutzen... So mach ich das auf jeden Fall...
-
ja, danke
-
Man könnte es auch ganz einfach über den Tastaturcontroller machen. Der ist nämlich dafür auch da. Gibt einen extra Befehl der die Reset-Leitung der CPU setzt. Viel Spass beim Suchen^^
Doublefault ist relativ unelegant, und in den RM zurückschalten ist auch Speicherverschwendung, da man ja die ganze Zeit die BIOS-Bereiche nicht verändern darf und mitschleifen muss.
-
Ind wo such ich da amm besten?
-
Hab einfach mal gegoogelt Keyboard reboot 0x60 (Der keyboard port)
und tada gefunden. So einfach ist das, nichtmal ne Minute;)
Zitat:
Command 0xfe: System reset
Pulse bit 0 of the output port P2 of the keyboard controller. This will reset the CPU.
also einfach 0xfe als Command an das Keyboard schicken und wir haben einen Reboot
-
Man könnte es auch ganz einfach über den Tastaturcontroller machen. Der ist nämlich dafür auch da. Gibt einen extra Befehl der die Reset-Leitung der CPU setzt. Viel Spass beim Suchen^^
Doublefault ist relativ unelegant, und in den RM zurückschalten ist auch Speicherverschwendung, da man ja die ganze Zeit die BIOS-Bereiche nicht verändern darf und mitschleifen muss.
naja, die bereiche sin meinstens ROMs und da rumzufuchteln: Ne, danke. die lass ich lieber, wie sie sin. ich finde doublefault am besten und einfachsten. das mit dem tastaturdings is aber am schönsten ;-)
-
Dannke und giibt es auch was zum Herunterfahren?
-
Oben im Code den Block wo APM powerdown dransteht nehmen :roll:
-
Was meinst du mit Herunterfahren? Das ist jedem System überlassen, wie es das handhabt. Bei DOS kann man den PC aus der Konsole abschalten. Bei den meisten Multitasking-OS müssen mindestens die Geräte (Festplatte etc.) deaktiviert werden, dass es keine Schäden gibt, sonst kannst du den PC wann immer du willst aussschalten.
-
@ICC: Ich will aber nicht extra in den rm schalten...
@elfish_rider: Ich meine, das sich das System abschaltet und man nicht auf den schalter drücken muss