Geänderte Befehle

E-Books


DEBUG Neue DEBUG-Befehle



Das Programm DEBUG verfügt über fünf neue Befehle, wovon vier das Arbeiten mit Extended Memory ermöglichen.
Syntax:
?
xa anzahl
xm logS phyS handle
xd handle
xs
Parameter: ? Durch Eingabe von ? werden alle DEBUG-Befehle und ihre Syntax angezeigt.
EMM-Treiber Damit mit den folgenden Befehlen gearbeitet werden kann, muß ein Zusatztreiber für die Verwendung des Expansionsspeichers installiert sein (z.Bsp. EMM386.EXE), der der Version 4.0 der LIM-Spezifikation entspricht.
xa Mit Hilfe des xa-Befehls können 16-KB-Seiten (logische Seiten) im Expansionsspeicher (Expanded Memory) reserviert werden.
anzahl Anzahl der Seiten, die reserviert werden sollen. In der Mircosoft-Dokumentation wird der Parameter anzahl in eckigen Klammern angegeben, was bedeutet, daß er zusätzlich eingeben werden kann. Das ist falsch, da der xa-Befehl ohne Parameter eine Fehlermeldung erzeugt.
Kann eine Anforderung erfüllt werden, d.h. der Zusatztreiber ist installiert und die angeforderten Seiten sind verfügbar, wird eine Zugriffsnummer (Handle) zurückgegeben, die für nachfolgenden Befehle verwendet werden muß.
Können die angeforderten Seiten nicht reserviert werden, wird die
Gesamtseitenanzahl überschritten
ausgeben.
Um auf die reservierten (logischen) Seiten zugreifen zu können, müssen diese aus dem Expansionsspeicher in den Paging-Bereich (physische Seiten) des Hauptspeichers übertragen werden.
xm Diese Aufgabe wird mittels des xm-Befehls (Map Extended Memory Pages) ausgeführt, indem einzelne logische Seiten auf physische Seiten des Paging-Bereichs übertragen werden.
logS Bezeichnet eine der Seiten, die im Expansionsspeicher reserviert wurden. Die erste reservierte Seite wird über die Nummer 0 angesprochen.
phyS Bezeichnet die physische Seite im Paging-Bereich, in die die logische übertragen werden soll. Die erste physische Seite wird über die Nummer 0 angesprochen. Wie viele physische Seiten verfügbar sind, hängt von Ihrem System ab.
handle Ist die Zugriffsnummer, die vom Befehl xa zurückgegeben wurde.
Hinweis: Für eine detailierte Erklärung bringen wir ein Beispiel am Ende diese Abschnitts.
xs Der xs-Befehl wird ohne Parameter aufgerufen und gibt Statusinformationen über den Expansionsspeicher, die vergebenen Zugriffsnummern und die Lage der physischen Seiten zurück. Diese Informationen werden in unserem Beispiel näher erklärt.
xd Zugriffsnummern für den Expansionsspeicher, die nicht mehr benötigt werden, müssen mittels des xd-Befehls freigegeben werden.
handle Definiert die Zugriffsnummer (Handle) der Seiten, die freigegeben werden sollen.
Beispiel: In dem folgenden Beispiel führen wir zuerst EMM386 aus, um festzustellen, wo unser Paging-Bereich (die physische Seite 0) liegt. Das Seitenrahmensegment wird mit C000H angegeben.
Wir starten DEBUG und lassen 20H Bytes des Paging-Bereichs anzeigen. Es wird für jedes Byte FFH angezeigt, was üblicherweise bedeutet, daß an dieser Stelle kein Speicher installiert ist. Das ist auch richtig, da wir einen 386er verwenden, der in der Lage ist, über eine Adresse im 1-MB-Bereich auf einen Speicherbereich darüber zuzugreifen (Adress Mapping).
Wir fordern 5 Seiten Expansionsspeicher an, wofür wir die Zugriffsnummer 0001 zugeteilt bekommen.
Durch den Befehl xm 001 übertragen wir die logische Seite 0 in die physische Seite 0. Eine nochmalige Anzeige dieses Bereichs zeigt uns jetzt lauter Nullen. Der Prozessor hat die Adresse CC00:0000 in den erweiterten Speicher umgeleitet.
Wir laden den Boot-Sektor der Festplatte C: in die physische Seite 0. Um diese Seite in den Expansionsspeicher zu schreiben, müssen wir eine andere logische Seite in die physische Seite 0 übertragen. Dadurch sichert der Treiber für den Expansionsspeicher die logische Seite 0. Wir erreichen dies, indem wir die logische Seite 2 in die physische Seite 0 übertragen (xm 201).
Zur Sicherheit zeigen wir den Bereich bei CC00:0000 noch einmal an. Sie können erkennen, daß der Boot-Sektor nicht mehr in diesem Bereich vorhanden ist. Wir holen die logische Seite 0 wieder in die physische Seite 0, und der Boot-Sektor ist wieder verfügbar.
Mit dem xs-Befehl lassen wir uns den Status des Expansionsspeichers anzeigen. Wir haben die Anzeige der physischen Seiten verkürzt. Sie erkennen aber, daß Sie aus dieser Anzeige herausfinden können, wie viele physische Seiten verfügbar sind und bei welchen Adressen sie beginnen.
Zum Abschluß des Beispiels geben wir mit dem xd-Befehl die Zugriffsnummer 0001 zurück, wodurch auch unsere reservierten Seiten freigegeben werden.
D:\IV\ERG12: emm386
MICROSOFT Expansionsspeicher-Manager 386 Version 4.20.06X
(C) Copyright Microsoft Corporation 1986, 1991
Verfügbarer Expansionsspeicher . . . . . . . . . . . . . 4096 KB
LIM/EMS Version . . . . . . . . . . . . . . . . . . . . . . . . 4.0
Gesamtanzahl Expansionsspeicher-Seiten . . . . . . 280
Verfügbare Expansionsspeicher-Seiten . . . . . . . . . 256
Gesamtanzahl Zugriffsnummern . . . . . . . . . . . . . . 64
Aktive Zugriffsnummern . . . . . . . . . . . . . . . . . . . . 1
Seitenrahmensegment . . . . . . . . . . . . . . . . . . . . . . .CC00 H
Verfügbarer hohe Speicherbereich (Upper Memory) insgesamt 0 KB
Größter, verfügbarer Block im hohen Speicher (Upper Memory) 0 KB
Startadresse des hohen Speicherbereichs (Upper Memory) . DE00 H
EMM386 aktiv.
D:\IV\ERG12: debug
-d cc00:0 120
CC00:0000 FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF..........
CC00:0010 FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF..........
-xa 5
Zugriffsnummer zugeordnet = 0001
-xm 0 0 1
Logische Seite 00 auf physische Seite 00 abgebildet
-d cc00:0 120
CC00:0000 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00..........
CC00:0010 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00..........
-l cc00:0 2 0 1
-d cc00:0 120
CC00:0000 EB 3C 90 4D 53 44 4F 53-35 2E 30 00 02 04 01 00.<.MSDOS5.0
CC00:0010 02 00 02 00 00 F8 EE 00-11 00 0E 00 11 00 00 00..........
-xm 2 0 1
Logische Seite 02 auf physische Seite 00 abgebildet
-d cc00:0 120
CC00:0000 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00...........
CC00:0010 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00...........
-xm 0 0 1
Logische Seite 00 auf physische Seite 00 abgebildet
-d cc00:0 120
CC00:0000 EB 3C 90 4D 53 44 4F 53-35 2E 30 00 02 04 01 00.<.MSDOS5.0
CC00:0010 02 00 02 00 00 F8 EE 00-11 00 0E 00 11 00 00 00..........
-xs
Der Zugriffsnummer 0000 wurden 0018 Seiten zugeordnet
Der Zugriffsnummer 0001 wurden 0005 Seiten zugeordnet
Physische Seite 04 = Rahmensegment 4000
Physische Seite 05 = Rahmensegment 4400
1D von insgesamt 118 EMS-Seiten zugeordnet
2 von insgesamt 40 EMS-Zugriffsnummern wurde zugeordnet
-xd 1
Zugriffsnummer 0001 freigegeben
-q
D:\IV\ERG12:
(c) Jürgen Richter