Hi
ich hab ein problem mit dem A20-Gate.
Meine Procedure, die das Gate activiert funktioniert zwar in DOS
aber bei beim booten hangt sie sicht auf.
könnt ihr mir vieleich sagen wo mein fehler ist?
ich hab ein problem mit dem A20-Gate.
Meine Procedure, die das Gate activiert funktioniert zwar in DOS
aber bei beim booten hangt sie sicht auf.
Code: [Auswählen]
CLI ;Disable Interrupts
CALL Enable_A20
STI ;Enable Interrupts
JC A20_Error
Code: [Auswählen]
Enable_A20 PUSH AX
.1 IN AL, 0x64 ;Wait until KBC is ready for 0xD0 command
Test AL, 0x03
JNZ .1
MOV AL, 0xD0
OUT 0x64,AL
.2 IN AL, 0x64
TEST AL, 0x01 ; Wait until KBC has data
JZ .2
IN AL, 0x60
OR AL, 0x02
PUSH AX
.3 IN AL, 0x64 ; Wait until KBC is ready for Command
TEST AL, 0x02
JNZ .3
MOV AL, 0xD1
OUT 0x64,AL
.4 IN AL, 0x64 ; Wait until KBC is ready for Data
TEST AL, 0x02
JNZ .4
POP AX
OUT 0x60,AL
;Check
.5 IN AL, 0x64
Test AL, 0x03
JNZ .5
MOV AL, 0xD0
OUT 0x64,AL
.6 IN AL, 0x64
TEST AL, 0x01
JZ .6
IN AL, 0x60
SHR AL, 0x2 ;A20-Gate Bit to CF
JC .NoError ;CF Invertieren
STI
JC .Exit
.NoError CLI
.Exit POP AX
RETkönnt ihr mir vieleich sagen wo mein fehler ist?

Übersicht
Wiki
Hilfe
Suche
Einloggen
Registrieren
Drucken

Gespeichert

