Forum: PC-Programmierung Eigener Bootloader- Power Interrupts


von Alf R. (bitbit)


Lesenswert?

Ich habe mir einen primitiven Bootsektor zusammengeschrieben.
1
test:
2
      jmp test
3
 
4
      times 512-($-$$) db 0
5
      db 0x55
6
      db 0xAA
Nun würde ich gerne das Ausschalten bzw. Rebooten in diesen Bootsektor 
integrieren. Also der Bootsektor wird von Diskette geladen und der pc 
schaltet sich aus bzw. beginnt erneut mit dem Laden des Bootsektors von 
der Diskette.
Wie realisiere ich das?

Mfg bitbit

von Skua C. (skua)


Lesenswert?

Mit POST:
JMP FAR F000h:FFF0h
Ohne:
INT 19h

von Alf R. (bitbit)


Lesenswert?

>>JMP FAR F000h:FFF0h
liefert:
>>kernel.asm:1: error: symbol `F000h' undefined.
Soll das den Computer ausschalten?
Reboot mit INT 19h funktioniert.

von Skua C. (skua)


Lesenswert?

Alf R. schrieb:
>>>JMP FAR F000h:FFF0h
> liefert:
>>>kernel.asm:1: error: symbol `F000h' undefined.

Versuch mal JMP FAR 0F000h:0FFF0h
oder
DB 0EAh,0F0h,0FFh,00h,0F0h

> Soll das den Computer ausschalten?
Nein das ist der Resetvector.

> Reboot mit INT 19h funktioniert.

von Skua C. (skua)


Lesenswert?

Google mal nach atxoff.com
und ralph brown interrupt Liste.

von Bartli (Gast)


Lesenswert?

>>>kernel.asm:1: error: symbol `F000h' undefined.

Hexadezimalkonstanten welche mit einem Buchstaben beginnen brauchen eine 
vorangestellte 0, sonst kann sie der Assembler nicht von Bezeichnern 
unterscheiden: 0f000h sollte gehen.

Ob NASM deinen far jump so dann versteht, weiss ich auch nicht. Im 
Ernst, lies halt das Manual, es ist ja nicht so dass NASM nicht 
exzellent dokumentiert wäre...

von Alf R. (bitbit)


Lesenswert?

>DB 0EAh,0F0h,0FFh,00h,0F0h
..funktioniert.
was geschieht da genau?

Und wie schalte ich den gesamten pc aus?

von Skua C. (skua)


Angehängte Dateien:

Lesenswert?

Alf R. schrieb:
>>DB 0EAh,0F0h,0FFh,00h,0F0h
> ..funktioniert.
> was geschieht da genau?

Das ist JMP FAR 0F000h:0FFF0h

> Und wie schalte ich den gesamten pc aus?
Habe ich nicht getestet.
1
debug atxoff.com
2
-u
3
0CD8:0100 33DB          XOR  BX,BX                              
4
0CD8:0102 B80153        MOV  AX,5301                            
5
0CD8:0105 CD15          INT  15                                 
6
0CD8:0107 33DB          XOR  BX,BX                              
7
0CD8:0109 B90201        MOV  CX,0102                            
8
0CD8:010C B80E53        MOV  AX,530E                            
9
0CD8:010F CD15          INT  15                                 
10
0CD8:0111 B80753        MOV  AX,5307                            
11
0CD8:0114 B90300        MOV  CX,0003                            
12
0CD8:0117 BB0100        MOV  BX,0001                            
13
0CD8:011A CD15          INT  15                                 
14
0CD8:011C C3            RET                                     
15
0CD8:011D 56            PUSH  SI                                 
16
0CD8:011E 65            DB  65                                 
17
0CD8:011F 7273          JB  0194                               
18
-q

Erklärungen:
http://www.ctyme.com/rbrown.htm

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.