home *** CD-ROM | disk | FTP | other *** search
-
- Das Programm MCBLIST zeigt diverse Informationen zur Speicherbelegung
-
- Tastenfunktionen :
- F1 - diesen Text anzeigen
- F2 - Memory Control Blocks anzeigen (Default)
- F3 - Interrupt Vektoren anzeigen
- F4 - Speicherkonfiguration anzeigen
- F5 - Anzeige der Gerätetreiber
- F6 - Anzeige der Datei C:\CONFIG.SYS
- F7 - alle Fenster schließen
- F8 - Erweiterte Information zu den MCBs
- F9 - Memory- Dump (HEX / ASCII)
- F10 - Ändern Anzeigemodus für MCB- Größe
- ( mehr mit Cursor abwärts )
- Alt Esc - Programmende ( egal, wieviele Fenster offen sind )
- Shift F1 oder <Esc> - das oberste Fenster schließen
- Shift F5 - Restaurieren der Interrupt- Vektoren aus File MCBLIST.SAV und
- Freigabe der über Save Interrupts gelegenen MCBs
- Shift F6 - wie Shift F5, mit Abschalten des Maus Event
- Shift F9 - Speichern der Interrupt Vektoren in MCBLIST.SAV
-
- Alt F5 - wie Shift F5 unter Umgehung der Mutterprozess- Sperre
- Alt F6 - wie Shift F6 unter Umgehung der Mutterprozess- Sperre
- Alt F5 / Alt F6 sind nur als absolute Notfall- Lösung zu verwenden !
-
- Mit den Cursortasten kann im aktuellen Fenster gescrollt werden
- (wenn möglich auch horizontal)
- Mit Control-Cursortasten kann die Lage,
- mit Alt-Cursortasten die Größe der Fenster verändert werden.
-
- MCBLIST.EXE darf nicht umbenannt werden !
-
- Mausbedienung :
- ═══════════════
- Wenn ein Maustreiber neueren Datums vorhanden ist, ist ein Mauscursor zu
- sehen. Dann können in den oberen 2 Bildschirmzeilen die Funktionstasten
- mit einem Mausklick aktiviert werden.
- Im aktiven Fenster sind die Rahmen '═' Scrollbalken zum auf- bzw. abwärts
- Scrollen (linke Taste) und rechts/links Scrollen (rechte Taste).
- Das Zeichen '╒' hat die HOME- Funktion, '╛' die END- Funktion.
- Weitere Buchstaben, die als Tasteneingabe interpretiert werden sind '+-'.
- Die rechte und linke Maustaste zusammen haben die Funktion der <Esc>- Taste.
- Im DUMP- Fenster können HEX- Werte durch anklicken mit der Maus eingegeben
- werden. ( Linke Taste = Segment, rechte Taste = Offset der Dump- Adresse,
- mittlere Taste oder Shift- linke Taste = Segment und Offset ).
- Bei Werten, die byteweise angezeigt werden ( im DUMP- Fenster 2-stellig ),
- muß entsprechend der INTEL Low/High- Notation des Prozessors das Lowbyte
- angeklickt werden.
- Das DUMP- Fenster wird automatisch aktiviert, wenn auf einem HEX- Digit ein
- Mausklick erfolgt.
-
- Kommandozeilenparameter :
- ═════════════════════════
- Parameter können mit oder ohne führendem '-' oder '/' eingegeben werden,
- Groß- Kleinschreibung ist nicht relevant.
- MCBLIST ? = Anzeige dieses Textes
- MCBLIST M = Anzeige Interrupt- Vektoren
- MCBLIST S = Speichern Interrupt- Vektoren
- MCBLIST R = Restaurieren Interrupt- Vektoren
- MCBLIST RM = wie MCBLIST R mit Abschalten des Maus- Event- Interrupt
- MCBLIST R, RM oder S läßt sich auch aus Batchfiles benutzen.
-
- Interrupt Vektoren speichern :
- ══════════════════════════════
- Mit diesem Kommando werden die Interrupt- Vektoren $00..$CF im File
- MCBLIST.SAV im Directory von MCBLIST.EXE gespeichert.
- Zusätzlich wird der letzte MCB (ggf. auch über dem Video- Adapter)
- gespeichert - diese Adresse wird in der Liste mit
- <───── save Interrupts ─────> bzw.
- <───── save Interrupts (jenseits) ─────> markiert.
- Residente Programme, die hinter dieser Marke geladen sind, können
- durch Restaurieren der Interrupt- Vektoren aus dem Speicher entfernt
- werden.
- Soll ein Programm entfernt werden, das den Maus- Event- Interrupt nutzt
- (z.B. ein Mausmenü- Programm), muß UNBEDINGT der Maus- Event deaktiviert
- werden ! ( MCBLIST RM oder <Shift-F6> statt <Shift-F5> )
- Der Maus- Event- Vektor ist für MCBLIST leider nicht immer sichtbar.
-
- Interrupt Vektoren restaurieren :
- ═════════════════════════════════
- Die Interruptvektoren können nur restauriert und die Programme nach SAVE
- INTERRUPS freigegeben werden, wenn bei diesem Vorhaben nicht der Mutter-
- prozess von MCBLIST betroffen ist. Der Mutterprozess könnte z.B. ein
- nach dem SAVE INTERRUPTS geladener COMMAND oder NORTON COMMANDER sein.
-
- Nach Freigabe von MCBs sind diese bis zum Verlassen des Programms
- noch vorhanden und auch auf dem Bildschirm zu sehen.
- Nach Beenden des Programms räumt MSDOS aber mit ihnen auf.
-
- Anzeige der Memory Control Blocks :
- ═══════════════════════════════════
- Unter MCB wird die Adresse des MCB angezeigt, unter PSP die Adresse des
- Programm Segment Prefix, zu dem der MCB gehört.
- Mehrere MCBs können auf einen PSP verweisen.
- Im Allgemeinen existiert für jedes Programm ein MCB für das Environment
- und ein MCB für das Programm selbst.
- Der Environment- MCB hat nur wenige Bytes Länge - abhängig von der Größe
- der ENVIRONMENT- Variablen und seines eigenen Programmnamens ( incl.
- Suchpfad). Im Environment kann der Programmname gefunden werden, im PSP
- die Kommandozeile.
- Ausnahmen bilden Environments für Batchfiles (meistens 48 Bytes groß).
- Ein Programm kann auch sein Environment freigeben, dann wird dies
- vom Environment des nächsten geladenen Programms überschrieben.
- Außerdem kann ein Programm zusätzliche MCBs anfordern, für dynamisch
- verwaltete Treiber oder Pufferspeicher. (Ächt ätzend)
-
- Der vom DOS belegte Speicherplatz besitzt keinen MCB.
- Der MCB mit PSP- Adresse 8 markiert den Speicherplatz, der von CONFIG.SYS
- für Buffer, Stacks, FCBs und SYS- Files belegt wird.
- Bei Nutzung des Speichers hinter dem Video- Adapter können eventuell auch
- 2 MCBs mit PSP- Adresse 8 existieren.
- Der letzte MCB markiert den freien Speicher.
- Bei Nutzung des Speichers hinter dem Video- Adapter ist natürlich auch vor
- dem Video- Adapter freier Speicher zu sehen.
- Der MCB vor dem freien Speicher enthält das aktuelle Environment und somit
- den Pfad und Programmnamen von MCBLIST.EXE
- Weiterhin existiert ein Ur- Environment mit der Größe, die im SHELL =
- Kommando in CONFIG.SYS angegeben wurde.
- Der erste COMMAND.COM (falls mehrere existieren ist das interessant) ist
- mit '<1>' gekennzeichnet.
-
- Ist PSP = 0, ist der Zugehörige Speicherblock freigegeben, das ist
- auch mit Videoattribut Dunkelgrau markiert.
- Bei Environments wird der Programmname angezeigt.
- Bei PSPs wird die Kommandozeile eingeschlossen in '≥≤' angezeigt
- Die Anzeige '≥φ≤' zeigt eine ungültige Kommandozeile an.
- Mit '≡' wird ein Batchfile markiert
- Die hellen Zahlen sind die aktuellen Interrupt- Vektor- Nummern (HEX), die
- in den entsprechenden Speicherblock zeigen.
- Blau unterlegt sind Unterschiede zum gespeicherten Zustand und grün mit
- schwarzem Hintergrund sind die Vektoren beim Speichern.
-
- Der SHUTDOWN- Pointer wird als 'SDP' angezeigt.
- Der MODE- Vektor wird als 'MODE' angezeigt.
- Der MODE- Vektor wird vom residenten MODE.COM zur Ausgabeumleitung benutzt
- Programme, die den MODE- Vektor auf sich umgeleitet haben, sollten nicht
- freigegeben werden !
-
- Nach der Länge wird eingeschlossen in '[]' ein eventuell vorhandener Text
- angezeigt, der im MCB gefunden wurde.
-
- Die Anzeige !!!!! im letzten MCB fehlen nnn Bytes !!!!! weist darauf hin,
- daß sich ein Programm am Ende des Speichers versteckt hat - Vorsicht !
- Bei Speicher <= 640k Bytes wird eine Warnung gegeben, wenn die Speicher-
- größe kein ganzzahliges Vielfaches von 64k Bytes ist, immer, wenn die
- Speichergröße kein ganzzahliges Vielfaches von 32k- und 16k Bytes ist;
- in diesem Fall vermute ich ein verstecktes Virus.
- Die Meldung !!!!! Speichergröße ist kein Vielfaches von 64k !!!!! ist bei
- PS/2- Systemen und bei einigen Plattencontrollern normal, solange kein
- SAVE- File existiert, weil diese immer Speicherplatz vom Systemspeicher
- abzweigen. Erscheint diese Warnung trotz bestehenden SAVE- Files, ist wirk-
- lich etwas faul !
-
- Interrupt Vektoren Anzeigen :
- ═════════════════════════════
- Hintergrund Blau : seit Save veränderte Vektoren
- Schrift Dunkelgrau : Vektor = NIL
- Schrift Hellgrau : Vektor zeigt ins BIOS
- andere Farben dienen nur zur Unterscheidung ungleicher aufeinander-
- folgender Adressen.
- ! hinter dem Vektor markiert, daß er auf IRET zeigt.
- * hinter dem Vektor zeigt an, daß er vom BIOS als illegaler Interrupt
- behandelt wird ( falls diese Anzeige funktioniert ).
-
- Bei Nutzung von Speicher über dem Video- Adapter ist es bei den meisten
- NEAT BIOS Varianten möglich, im Segment F000 32k Speicher zu verwenden.
- Trotzdem haben die Interrupt- Vektoren das Segment F000 !
-
- Speicherbelegung Anzeigen :
- ═══════════════════════════
- Die Speicherbelegungsanzeige zeigt bei Nutzung von Speicher oberhalb des
- Video- Adapters als (BIOS) einen höheren Wert als (SETUP).
-
- Ist ein HIMEM- Treiber installiert, wird angezeigt :
- HMA - der Speicher über 1 MB, der im REAL-MODE verfügbar ist.
- XMA - Extended Memory, das für den HIMEM- Treiber verfügbar ist
- (hier sind schon die Werte für RAMDISK, CACHE und ähnliches abgezogen).
- UMA - Speicherbereich in den Segmenten $0A000..$0F000
- ( falls der Treiber diese Funktion unterstützt ).
-
- Bei vorhandenem EMS- Treiber werden die Version, die Pageframe- Adresse,
- der gesamte und der verfügbare EMS- Speicher angezeigt.
-
- Die Anzeige des Extended RAM zeigt den über INT 15H ermittelten Wert; der
- Wert kann bei vorhandenem HIMEM- Treiber manchmal 0 sein, obwohl Extended
- RAM frei ist. In jedem Fall sind eventuell vorhandene RAMDISKs und CACHE-
- Speicher vom Totalen Extended RAM abgezogen.
-
- MCBLIST kann keine Adresskonflikte im Extended RAM erkennen !
-
- Die Anzahl verfügbare File- Handles kann 20 nicht überschreiten, auch wenn
- andere Programme bei FILES = >20 in CONFIG.SYS eventuell mehr Filehandles
- verwalten können.
-
- Die Speicherbelegung A000..F000 zeigt in 16-k Blocks an, wo in diesem
- Speicherbereich RAM, BIOS- EPROMs und die EMS- Pageframe erkannt wurden.
- Bei NEAT- Boards kann BIOS auch im RAM liegen; RAM wird natürlich nur dort
- erkannt, wo der Schreibzugriff erlaubt ist.
- 'undefin.' zeigt an, daß an dieser Adresse kein definierter Wert aus dem
- Speicher gelesen werden kann.
-
- Es werden auch Informationen zum evtwl. vorhandenen Maustreiber angezeigt.
-
- Noch einige kleine Hinweise :
- MCBLIST braucht SEHR viel Speicher - wenn alle Fenster offen sind,
- deutlich über 200k Bytes.
- Wenn Sie MCBLIST neu compilieren, fügen Sie anschließend mit
- ADDTEXT MCBLIST MCBLIST.HLP
- das Helpfile an MCBLIST.EXE an, dann muß MCBLIST.HLP nicht auf demselben
- Directory wie MCBLIST.EXE sein.
- Wenn Sie MCBLIST.HLP verändern, werden die Änderungen natürlich auch nur
- nach dem ADDTEXT angezeigt.
- Zum Compilieren von MCBLIST müssen alle UNITs im FAR- Model compiliert
- werden - den ersten Absturz wegen nichtberücksichtigung dieser Tatsache
- habe ich schon hinter mir.
-
- --- diesen Text nicht länger als 249 Zeilen machen ! ---