Article View: de.comp.os.misc
Article #26Re: Problem: MS-DOS/A20-Leitung/DR-DOS
From: Andreas Westfeld
Date: Tue, 12 Jan 1993 11:10
Date: Tue, 12 Jan 1993 11:10
76 lines
3970 bytes
3970 bytes
In article <1ica61INNmis@irz401.inf.tu-dresden.de>, ss5@irz402.inf.tu-dresden.de (Steffen Schwigon) writes: >Path: irz401!irz402.inf.tu-dresden.de!ss5 >From: ss5@irz402.inf.tu-dresden.de (Steffen Schwigon) >Newsgroups: de.comp.os.misc >Subject: Problem: MS-DOS/A20-Leitung/DR-DOS >Date: Tue, 5 Jan 93 16:40:49 MET >Organization: Dept. of Computer Science, TU Dresden, Germany >Lines: 33 >Distribution: world >Message-ID: <1ica61INNmis@irz401.inf.tu-dresden.de> >Reply-To: ss5@irz402.inf.tu-dresden.de (Steffen Schwigon) >NNTP-Posting-Host: irz402.inf.tu-dresden.de > > >Hallo Leute. > >Folgendes Problem: > >Ich habe einen relativ alten 486/25 (DX, kein SX ! Ja, so etwas gab es mal !), >das BIOS ist von 1990 (Award). > Was genau ist diese A20-Leitung. Klingt irgendwie nach 'Adresse' und '20 Bit'. > Ich hab auch schon gehoert, dass dieses Problem angeblich oefters bei diversen > alten 386ern auftauchen soll. A20 (Adressleitung 20) ist ein Phaenomen, welches ab dem AT auftaucht. Der XT und frueher hat einen maximalen Adressraum von 1 MB. Das sind 2^20 Bytes. Dazu braucht der Rechner genau 20 Adressleitungen (A0...A19). Ein 80286 kann aber 16 MB adressieren, wofür 4 weitere Adressleitungen (A20...A23) benoetigt werden. Nun gibt es einen incompatiblen Effekt zwischen 8086 und 80286 (im real mode): Eine Adresse wird aus Segment und Offset gebildet (jeweils 16 bit). Die Adresse berechnet sich 16*Segment+Offset. Es gibt mehrere Möglichkeiten auf ein und die selbe Adresse zuzugreifen: z. B.: 0040:006C=0000:046C=0046C usw. Aber: Beim 8086 bedeutet die Adresse FFFF:0010 das selbe wie 0000:0000 nämlich 00000. Beim 80286 bedeutet FFFF:0010 die Adresse 100000. Diese Adressierungsart macht sich HIDOS.SYS von DR DOS zunutze, um im real mode auf den sog. unteren Zusatzspeicher zuzugreifen. Dorthin wird der Systemkern ausgelagert, so daß knappe 64 kB mehr zur Verfügung stehen (unterhalb der 640 kB Grenze). Um beide Rechner kompatibel zu machen, wird die A20 einfach abgeschaltet, so daß im erwähnten Beispiel 100000 ebenfalls zu 00000 wird (alle Adressen hexadezimal!). Bei meinem 80286 läßt sich diese Leitung über eine I/O-Portadresse schalten. DOS muß nun, wenn der Kern in das Segment FFFF ausgelagert wird, dafür sorgen, das die A20 eingeschaltet bleibt. Dafür gibt es verschiedene Möglichkeiten (maschinenabhängig). Ich hatte z. B. ein Problem, wenn ich auf der RAM-Disk gearbeitet habe während KEYB GR hochgeladen war. Der Sache bin ich auf den Grund gegangen: VDISK.SYS verwendet eine BIOS-Funktion des INT 15 (67) , um Blöcke aus dem Zusatzspeicher zu holen. Dazu schaltet mein BIOS in den protected mode, A20 an, kopiert, hot-reset (zurück in den real mode), A20 aus (!!). Und bevor HIMEM.SYS die A20 wieder einschalten kann, habe ich wahrscheinlich einen Keyboard-Interrupt ausgelöst (int 9). Der int 9-vector zeigt aber in das Segment FFFF, also wenn die A20 ausgeschaltet ist in die Interrupt-Vektor-Tabelle am Seicheranfang. Dort stehen natürlich keine vernünftigen Befehle und schon garnicht zur Tastaturbehandlung. Es gibt zwei Lösungen des Problems: BIOS wechseln KEYB GR nicht hochladen Ich habe eine dritte Variante gewählt und einen Treiber geschrieben (ca. 600 Bytes), der die Funktion 67 des int 15 ersetzt und die A20 am Ende nicht (!) ausschaltet. -- Andreas Westfeld äöüß=aeoeuesz
Technical Details
Message-ID:
<1iu8uaINN7d9@irz401.inf.tu-dresden.de>Path:
arc1-ca.pugleaf.net!sparky!uunet!math.fu-berlin.de!ira.uka.de!fauern!irz401!irz407.inf.tu-dresden.de!aw4References:
<1ica61INNmis@irz401.inf.tu-dresden.de>Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!sparky!uunet!math.fu-berlin.de!ira.uka.de!fauern!irz401!irz407.inf.tu-dresden.de!aw4 From: aw4@irz407.inf.tu-dresden.de (Andreas Westfeld) Newsgroups: de.comp.os.misc Subject: Re: Problem: MS-DOS/A20-Leitung/DR-DOS Date: 12 Jan 1993 11:10:02 GMT Organization: Dept. of Computer Science, TU Dresden, Germany Lines: 76 Distribution: world Message-ID: <1iu8uaINN7d9@irz401.inf.tu-dresden.de> References: <1ica61INNmis@irz401.inf.tu-dresden.de> Reply-To: westfeld@freia.inf.tu-dresden.de NNTP-Posting-Host: irz407.inf.tu-dresden.de