Autor Thema: Zugriff auf erweiterten Speicher mit einem 8086 ?  (Gelesen 3326 mal)

bscreator

  • Gast
Gespeichert
« am: 29. February 2008, 09:22 »
Hallo,
Ich hab gehört, dass man mit einem 8086-Prozessor ebenfalls auf einen kleinen Bereich (die ersten 65 KB) über 1 MB zugreifen kann.
Dadurch muss man jedoch das A20-Gate aktivieren. Ich hab zwar vom Internet nen Code, der das bewerkstelligt, allerdings keine Ahnung, was der genau tut.
Könnt ihr mir sagen, was man zu tun hat, wenn man das A20-Gate aktivieren will ?
« Letzte Änderung: 29. February 2008, 09:28 von bscreator »

bluecode

  • Beiträge: 1 391
    • Profil anzeigen
    • lightOS
Gespeichert
« Antwort #1 am: 29. February 2008, 10:59 »
Unser wiki hat dazu einen Artikel. Auch das osdev.org wiki hat einen Artikel dazu. Hoffe es hilft. Es gibt evtl. noch andere Möglichkeiten (nicht über den Keyboard controller) das A20-Gate zu aktivieren.

Ich würde dir trotzdem raten dich mit dem protected/long-mode auseinanderzusetzten, aber ich glaube dass habe ich dir mittlerweile auch schon einige male geraten...
lightOS
"Überlegen sie mal 'nen Augenblick, dann lösen sich die ganzen Widersprüche auf. Die Wut wird noch größer, aber die intellektuelle Verwirrung lässt nach.", Georg Schramm

bscreator

  • Gast
Gespeichert
« Antwort #2 am: 29. February 2008, 18:39 »
Da hast du wohl recht und andere habens auch schon versucht. Aber wenn man nunmal die Abwärtskompatibilität bis runter zum 8086 aufrechterhalten will, kommt man leider nunmal um den Real-Mode nicht herum, da es den "RICHTIGEN" Protected Mode nunmal erst mit dem 80386 gab.
Aber da werd ich dir wohl nichts neues erzählen.
Jedenfalls danke, hab leider selber im WIKI nur allgemeine Sachen übers A20 gefunden, aber nicht wie man es einschaltet.
Mit diesen Artikeln jedenfalls kann ich arbeiten, danke


bluecode

  • Beiträge: 1 391
    • Profil anzeigen
    • lightOS
Gespeichert
« Antwort #3 am: 29. February 2008, 19:03 »
Hast du wirklich noch so ne Maschine rumstehen und willst denn dann mit deinem OS drauf als Desktop-PC nutzen? Oder verfolgt dein OS eher einen spezielleren Zweck (kA, evtl. irgendwas selber zusammengelötet)?
Ich hätte noch nichtmal mehr so ne Maschine rumstehen... Das älteste was bei uns im Haus rumsteht ist ein 500MhZ P3...

Zitat
Aber da werd ich dir wohl nichts neues erzählen.
Wäre traurig, wenn du mir jetzt was neues erzählt hättest :-P
lightOS
"Überlegen sie mal 'nen Augenblick, dann lösen sich die ganzen Widersprüche auf. Die Wut wird noch größer, aber die intellektuelle Verwirrung lässt nach.", Georg Schramm

Svenska

  • Beiträge: 1 792
    • Profil anzeigen
Gespeichert
« Antwort #4 am: 21. March 2008, 23:33 »
Hallo,

Der HMA (die 64K-16 oberhalb von 1MB) liegt nicht im Adressraum des 8086.
Nur durch die komische Adressierung mit Segment:Offset ist es möglich, mehr zu adressieren, als der Adressraum eigentlich groß ist. Damit adressiert man aber gewisse Bereiche doppelt. Und auf dem 8086 liegt der HMA halt in den ersten 64 KB des RAM.

Und dort ein A20 einzuschalten ist relativ schwierig, weil der 8086 nur A00-A19 hat... erst der 80286 besaß ein A20, und darum gibt es den HMA erst ab dort.

Kompatiblität zum 8086 ist eh nur vernünftig auf BIOS-Ebene gegeben, weil die I/O-Ports, IRQs und DMAs ganz anders sind, du sowieso keinen XT-Festplattentreiber schreiben möchtest - und Zugriffe über das BIOS im RM keine Zeit kosten.

Ab dem 80286 ist alles anders. Und der wurde von Intel behindert, als AMD&Co auch welche produzieren durften; Rechner damit sind relativ selten. Also kannst du dich gleich auf den 80386 beziehen. *g*

Gruß,
Svenska

 

Einloggen