Befehle unter MS-DOS 5.0

E-Books


Der Treiber EMM386.EXE



Der Expanded Memory Manager, der im Lieferumfang von MS-DOS 5.0 enthalten ist, heißt EMM386.EXE. Im folgendem stellen wir Ihnen die Optionen vor, die bei der Installation dieses Treibers verwendet werden können.
Da der EMM386.EXE nur auf einem PC mit einem 386/486-Prozessor installiert werden kann, wird der Treiber nicht installiert, wenn der PC mit einem anderen Prozessor ausgerüstet ist, und es wird während des Ladevorgangs des Betriebssystems folgende Fehlermeldung ausgegeben:

EMM386-Treiber nicht installiert

Um EMM386.EXE installieren zu können, muß zuerst der Zusatztreiber für die Verwaltung des Erweiterungsspeichers (Extended Memory) HIMEM.SYS installiert sein, d.h. die DEVICE-Anweisung für HIMEM.SYS muß in der Konfigurationsdatei vor der für den EMM386.EXE stehen.
Die Syntax für die Installation des EMM386.EXE-Treibers sieht folgendermaßen aus:
DEVICE= [pfad] emm386.exe[on|off|auto] [Speicher][w=on|w=off]
[mx|frame=adresse|/pmmmm][pn=adresse][x=mmmm-nnnn]
[i=mmmm-nnnn][b=adresse][l=minex][a=reg]
[h=handles][d=nnn][ram][noems]
Parameter: Pfad Gibt an, auf welchem Laufwerk und in welchem Verzeichnis die Datei EMM386.EXE gefunden werden kann.
[on|off|auto] Legt fest, in welchem Modus der Treiber gestartet wird:
on Aktiviert die Simulation von Expanded Memory. Programme können in diesem Modus auf den Expansionsspeicher zugreifen.
off Deaktiviert die Simulation von Expanded Memory. Der UMB-Bereich kann trotzdem für die Auslagerung von Zusatztreibern und speicherresidenter Programme verwendet werden.
auto Die Simulation von Expanded Memory wird nur aktiviert, wenn es von einem Programm angefordert wird.
Speicher Definiert die Größe des Speichers (in KB), der EMM386.EXE zugewiesen werden soll. Da in diesem Wert der UMB-Bereich nicht eingeschlossen ist, legt es hauptsächlich die Größe des Expanded Memories fest.
Die Voreinstellung beträgt 256 KB; Werte im Bereich von 16 bis 32768 sind zulässig.
W=on|off Schaltet die Unterstützung für den Weitek-Koprozessor ein bzw. aus.
mx Der Seitenrahmen für die Seiten des Expanded Memories muß im UMB-Bereich definiert werden. Da auch andere Zusatzkarten ihren eigenen Speicher über die Adressen dieses Bereichs ansprechen, muß es möglich sein, die Lage des Seitenrahmens zu definieren, um Konflikte zu vermeiden.
Für die Nummer des Segments, in dem der Seitenrahmen liegen soll, sind 14 Möglichkeiten vorgesehen, wovon eine durch den Wert x ausgewählt werden kann:
1 C000 8 DC00
2 C400 9 E000
3 C800 10 8000
4 CC00 11 8400
5 D000 12 8800
6 D400 13 8C00
7 D800 14 9000
frame Anstelle der Definition von x kann auch über frame die Segementnummer für den Seitenrahmen definiert werden, die als Hexadezimalwert angegeben wird. Für adresse sind folgende Werte möglich:
8000 bis 9000
C000 bis E000

In diesen Bereichen sind alle Segmentnummern in Schritten von 400h möglich.
/p Ist eine weitere Möglichkeit für die Festlegung der Lage des Seitenrahmens. Für die Segmentnummer mmmm gelten die gleichen Voraussetzungen wie für den Wert von adresse beim Parameter frame.
pn Durch diesen Parameter können die Segmentnummern für zusätzliche Seiten im UMB-Bereich festgelegt werden, über die Informationen aus dem Expanded Memory angesprochen werden können.
Die Seiten im Seitenrahmen werden mit P0 bis P3 bezeichnet. Diese Seiten können mit diesem Parameter nicht auf eine neue Adresse gelegt werden, wenn durch eine der Optionen mx, frame oder /pmmmm die Lage des Seitenrahmens festgelegt werden.
Der Bereich für n ist 0 bis 255.
Für den Wert adresse gelten die gleichen Voraussetzungen wie für adresse beim Parameter frame.
x Durch die Angabe dieses Parameters können Speicherbereiche definiert werden, die nicht mit Seiten aus dem Expanded Memory belegt werden dürfen. Der Bereich für >mmmm und nnnn ist mit A000H bis FFFFH festgelegt.
i Die Werte mmmm und nnnn legen einen Bereich fest, in den Seiten aus dem Expanded Memory übertragen werden können oder der als zusätzlicher Arbeitsspeicher verwendet werden kann. Der Wertebereich für mmmm und nnnn beträgt A000H bis FFFFH, wobei in 4-KB-Schritten nach unten abgerundet wird.
Werden die beiden Optionen x und i angegeben, hat x den Vorrang.
b Gibt die niedrigste Adresse für das Auslagern von EMS-Speicherseiten an. Die Voreinstellung ist 4000H, Werte für adresse können im Bereich von 1000H bis 4000H liegen.
l Der Wert minex legt fest, wieviel Extended Memory nach der Aktivierung von EMM386.EXE noch verfügbar sein muß. Die Voreinstellung ist 0, d.h. der gesamte verfügbare Erweiterungsspeicher wird als Expanded Memory verwaltet.
Es ist zu beachten, daß Extended Memory, das vor der Installation von EMM386.EXE bereits vergeben wurde (z.Bsp. für eine RAM-Disk), nicht als Expanded Memory verwendet wird.
a Für Multitasking-Systeme verwendet der EMM-Treiber schnelle Wechselregister,wovon jedes ca. 200 Bytes Speicher benötigt. Standardmäßig sind 7 Register definiert. Der Wert für reg kann im Bereich von 0 bis 254 liegen.
h Definiert die maximale Anzahl von Handles, die für den Zugriff auf Seiten des Expanded Memory vergeben werden können. Für jeden Block von Seiten, der von einem Programm angefordert wird, erhält das Programm eine Zugriffsnummer (Handle), die für weitere Zugriffe verwendet werden muß.
Die vorgegebene Maximalzahl ist 64. Sie kann im Bereich von 2 bis 255 neu festgelegt werden.
d Definiert die Größe eines Speicherbereichs (in KB) der für den direkten Datentransfer (Direct Memory Access bzw. DMA) vom und zum Hauptspeicher reserviert werden soll. Per Voreinstellung werden 16 KB reserviert. Erlaubte Werte für nnn sind 16 bis 256.
ram Durch diese Option wird der Zugriff auf Expanded Memory und dem UMB-Bereich ermöglicht.
noems Ermöglicht den Zugriff auf den UMB-Bereich, unterbindet aber die Verwendung von Expanded Memory.
(c) Jürgen Richter