Also dein Code den du verwendest funktioniert sowieso nicht auf allen PCs. Bei manchen geht er und bei manchen hängt der PC sich auf. Unter DOS geht es und beim Booten nicht? Ein und der selbe PC? Könnte vielleicht daranliegen das in DOS sowieso das A20 aktiviert wird (falls nicht geändert). Du meinst jetzt auch das echte DOS? Also dann wird der Code vielleicht bei deinem PC nicht funktionieren. Bei mir hat er bei 3 von 4 funktioniert. Beim 4 hat der PC sich aufgehangen. Ich habe jetzt den Code verkleinert wie er auch in vielen Tutorials zu finden ist. Da funktioniert er bis jetzt auf allen PCs die ich damit hab laufen lassen. Hier:
;set A20-Gate
Empty8084 ;macro
mov al,0D1h ;command write
out 64h,al
Empty8084 ;macro
mov al,0DFh ;enable A20 (Bit 1 gesetzt)
out 60h,al
Empty8084 ;macro
...
macro Empty8084
{
local Empty8084Adr
Empty8084Adr:
in al,64h
test al,00000010b ;2
jnz Empty8084Adr
}
Ich hoffe mal der funst bei dir auch. So wie ich es mitbekommen habe, sollte der auf den gängigsten PCs funktionieren. Ich habe aber gehört das es keine aktivierung des A20 gibt die auf allen PCs funktioniert. Selbst M$ hatte unter DOS Probleme damit. Die Testen in ihrer Himem.sys auf sämtliche PCs um dann dementsprechend zu aktivieren. Aber den genauen Code kennt wohl nur M$ und evt. IBM.
bitmaster