;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;                                                                           ;;
;; MENUDEMO.TXT: Sourcecode der Hilfstextdatei fuer das Demoprogramm         ;;
;;                                                                           ;;
;; Diese Datei muss erst mit dem Hilfsprogramm GENHLP uebersetzt werden,     ;;
;; bevor sie von der Menue-Bibliothek verwendet werden kann. Der Aufruf      ;;
;; erfolgt einfach durch                                                     ;;
;;                                                                           ;;
;;   genhlp menudemo                                                         ;;
;;                                                                           ;;
;; Das Compilat erhaelt das Suffix .hlp.                                     ;;
;;                                                                           ;;
;; Zeilen, die mit einem Semikolon beginnen, werden innerhalb der Quelldatei ;;
;; als Kommentar betrachtet und von GENHLP ignoriert.                        ;;
;;                                                                           ;;
;; Beginnt eine Zeile mit einem Punkt, dann wird der Rest der Zeile als      ;;
;; Hilfstextnummer interpretiert, ueber die der folgende Text den Menue-     ;;
;; punkten zugeordnet wird.                                                  ;;
;;                                                                           ;;
;; (C) 1992 Stefan Bion                                                      ;;
;;                                                                           ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
.1
Das Menue "File"

Hier koennen Dateien in den Speicher geladen, Speicherbereiche in Dateien
geschrieben und Dateien ausgefuehrt werden.
.10
Load File

Dieser Menuepunkt ermoeglicht das Laden einer Datei an eine bestimmte
Stelle in den Haupt- oder Erweiterten Speicher. Nach Auswaehlen dieses
Menuepunktes erscheint zuerst eine Box mit dem Inhaltsverzeichnis des
aktuellen Laufwerkes, welches ueber eine entsprechende Buchstabentaste
gewechselt werden kann.

Mit den Tasten <CuUp>, <CuDn>, <PgUp> oder <PgDn> bzw. durch einfaches
Anklicken eines Eintrages mit der linken Maustaste wird der
Auswahlbalken entweder auf ein Inhaltsverzeichnis oder auf eine Datei
gesetzt. Mit <CR> oder Doppelklick wird im ersten Fall in das
Verzeichnis gewechselt, im zweiten Fall diese Datei zum Laden
ausgewaehlt. Mit <ESC> oder rechter Maustaste kann abgebrochen werden.

Durch Anklicken der unten rechts in der Dateiauswahl-Box dargestellten
Auf- und Abwaertspfeile wird dasselbe wie mit <CuUp> und <CuDn>
erreicht, und durch Anklicken der obersten und der untersten Zeile der
Box dasselbe wie mit <PgUp> und <PgDn>.

Wurde eine Datei ausgewaehlt, so erscheint eine Eingabebox zum Eingeben
der Speicheradresse, an die die Datei geladen werden soll.

Anschliessend erfolgt eine Sicherheitsabfrage, die noch ein Abbrechen
der Load-Funktion ermoeglicht. Man kann sich noch einmal in aller Ruhe
die eingegebenen Werte ansehen und dann entscheiden, ob man abbrechen
oder fortfahren will. Nach erfolgtem Ladevorgang wird die Anzahl der
tatsaechlich geladenen Bytes als Hex- und als Dezimalzahl angezeigt.
.11
Write File

Mit dieser Funktion kann ein beliebig grosser Speicherbereich
(Hauptspeicher und Erweiterter Speicher) in eine Datei geschrieben
werden. Hier erscheint zuerst eine Eingabebox, in der der Name, ggf.
mit Pfadangabe, der zu schreibenden Datei eingegeben werden soll.
Existierende Dateien werden ueberschrieben, ansonsten wird die Datei
neu erstellt. Die Eingabe kann mit <ESC> oder rechter Maustaste
abgebrochen oder mit <CR> oder Doppelklick bestaetigt werden.

Kann die Datei nicht erstellt werden, so wird dies in einer Error-Box
mit Angabe des Grundes angezeigt. Ansonsten erscheint eine weitere
Eingabebox fuer die Start- und die Endadresse des Speicherbereiches,
der in die Datei geschrieben werden soll.

Wurde dann noch die Sicherheitsabfrage ueberwunden, so wird die
Funktion ausgefuehrt und anschliessend die Anzahl der tatsaechlich
geschriebenen Bytes angezeigt.
.12
Execute File

Waehrend der Arbeit mit dem Programm kann ein anderes Programm als Child-
Prozess gestartet werden. Da das Programm mit Hilfe der Exec-Funktion
des DOS aufgerufen wird, muss es sich um eine ausfuehrbare Programmdatei
handeln. Als solche werden Dateien mit der Extension .COM oder .EXE
betrachtet. Batchdateien koennen mit der Exec-Funktion nicht gestartet
werden.

Nach Anwaehlen dieses Menuepunktes kann die zu startende Datei aus einer
Directory-Box ausgewaehlt werden. Anschliessend koennen Sie dem zu
startenden Programm Kommandozeilen-Parameter uebergeben. Sollen keine
Parameter uebergeben werden, dann braucht nur mit <CR> oder Doppelklick
bestaetigt zu werden. Die <ESC>- oder die rechte Maustaste bricht die
Funktion ab.

Sobald das aufgerufene Programm beendet ist, erscheint auf dem
Bildschirm eine Meldung, irgendeine Taste zu betaetigen, um ins
Programm zurueckzukehren. Erst dann erscheint wieder das Haupt-
Menue. Auf diese Weise kann man sich die ggf. erfolgte Bildschirm-
Ausgabe noch ansehen.


Urspruenglich hatte ich beabsichtigt, die Funktion "Execute File" mit
Hilfe des undokumentierten DOS-Interrupts 2Eh (Start a Child Process)
zu realisieren. Dies haette gegenueber der Exec-Funktion mehrere
wesentliche Vorteile gehabt: Einmal programmtechnisch (dem Interrupt
2Eh braucht lediglich ein Zeiger auf einen gueltigen Kommando-String
uebergeben zu werden); vor allem aber haetten auf diese Weise neben den
externen, ausfuehrbaren Programmen auch die internen DOS-Kommandos
aufgerufen werden koennen, ohne eine Kopie des Kommando-Interpreters in
den Speicher laden zu muessen. Ebenfalls waere es moeglich gewesen, auch
Batch-Dateien ausfuehren zu lassen. Unter DR DOS hat dies alles auch
genau so funktioniert, wie es sollte - nur MS-DOS machte da mal wieder
Probleme...

MS-DOS benutzt gegenueber DR DOS eine etwas abweichende Methode zur
Verwaltung von "residenten" Batch-Dateien. Wenn z.B. ein Parent-Prozess
aus einer Batch-Datei heraus gestartet wird und anschliessend mit Hilfe
der Exec-Funktion einen Child-Prozess aufruft, dann wird der Int-22h-
Vektor auf den dem Aufruf der Exec-Funktion folgenden Befehl gesetzt,
so dass der Parent-Prozess nach Terminieren des Child-Prozesses genau
hinter dem Aufruf der Exec-Funktion fortgesetzt wird. Wird jedoch
statt der Exec-Funktion der Interrupt 2Eh dazu verwendet, einen Child-
Prozess zu starten (oder ein internes DOS-Kommando auszufuehren), dann
werden nach dessen Beendigung zuerst die in o.g. Batch-Datei dem
Aufruf des Parent-Prozesses folgenden Batch-Befehle ausgefuehrt (sofern
noch welche folgen) und die Stapelverarbeitung damit beendet. Erst
dann wird der Parent-Prozess an der unterbrochenen Stelle fortgesetzt.

Diese unlogische Reihenfolge ist bei DR DOS nicht vorhanden, da jedoch
MS-DOS weiter verbreitet ist, habe ich von der Verwendung des Int 2Eh
abgesehen.
.13
Change Drive

Mit dem Menuepunkt "Change Drive" wird das aktuelle Laufwerk gesetzt.
Dies entspricht der Tastenkombination <ALT+D> im Hauptmenue.

In der daraufhin erscheinenden Box werden die Buchstaben der instal-
lierten logischen Laufwerke, beginnend mit Laufwerk A, dargestellt.
Das zu setzende Laufwerk kann entweder mit den Cursortasten und <CR>
oder direkt ueber eine Buchstabentaste ausgewaehlt werden. Auch ein
Doppelklick mit der linken Maustaste ermoeglicht die Auswahl. Die
<ESC>- oder die rechte Maustaste bricht die Funktion ab.

Im Falle eines Disk-I/O-Fehlers wird das alte Laufwerk wieder gesetzt
und erneut auf Eingabe gewartet.
.14
DOS Shell

Erlaubt das voruebergehende Verlassen des Programms, um auf
Betriebssystemebene DOS-Kommandos auszufuehren oder Programme zu
starten. Nach Eingabe von "EXIT" gelangt man wieder zurueck ins
Programm.
.15
Exit

Dieser Menuepunkt beendet das Programm und uebergibt die Kontrolle wieder
an den Uebergeordneten Prozess. Dasselbe kann auch direkt durch die Tasten-
kombination <ALT+X> erreicht werden. Es erfolgt keine Sicherheitsabfrage.
.2
Das Menue "Mode"

In diesem Menue kann zwischen den verschiedenen Dump-Modi und
unabhaengig davon zwischen Hex/ASCII- und Binaer-Dump gewaehlt werden.
Der aktuelle Dumpmodus wird jeweils in der Fusszeile angezeigt.
Durch die Setup-Funktion oder die Auto-Save-Option werden diese
Einstellungen gespeichert, so dass sie beim naechsten Aufruf des
Programms wieder zur Verfuegung stehen.

Einige Funktionen des File- und des Special-Menues sind nur in
bestimmten Modi wirksam (durch 'X' gekennzeichnet):


              | Base     Extended I/O      CMOS     Drive    File
  Funktion:   | Memory   Memory   Ports    RAM      Sectors
  ------------+-------------------------------------------------------
  Load File   |   X        X        -        -        -        -
  Write File  |   X        X        -        -        -        -
  Search Text |   X        X        -        -        X        X
  Find String |   X        X        -        -        X        X
  Find next   |   X        X        -        -        X        X
  Fill Memory |   X        X        -        -        -        -
  Move Memory |   X        X        -        -        -        -
  Trace MCB's |   X        -        -        -        -        -
.20
Base Memory

Hier kann der Hauptspeicher-Dumpmodus eingeschaltet werden, in dem der
1 MByte grosse Hauptspeicher von Adresse 0000:0000 bis F000:FFFF
angezeigt wird.

Falls im System ein HIMEM-Treiber installiert ist, so wird dies vom
Programm erkannt. In diesem Falle ist naemlich der sogenannte 1-MByte-
Wraparound nicht mehr wirksam. Normalerweise, wenn die Segmentadresse
FFFFh und die Offsetadresse 10h angezeigt wird, ergaebe dies die
effektive Adresse 0 (FFFF0h + 10h = 100000h, was aber ueber der
1-MByte-Grenze liegt und im Real-Mode nicht adressiert werden kann).
Wenn jedoch durch den HIMEM-Treiber die Adressleitung A20 der
Prozessoren ab dem 80286 aktiviert wird, koennen auf diese Weise
tatsaechlich die ersten 61440 Bytes des Extended Memory angesprochen
werden. In diesem Fall wird ueber dem Hex/ASCII-Dumpfenster der
absolute Offset zu 1 MByte angezeigt.

Durch Betaetigen eines in der Fusszeile angegebenen Hotkeys bzw. durch
Anklicken eines Hotkey-Symbols kann im Speicher "geblaettert" werden.
Im Position-Menue kann ueber die Funktionen "Segment" und "Offset" eine
neue Adresse eingegeben werden. Durch Anklicken des Positionierungs-
balkens kann die Dump-Position relativ zum gesamten Bereich veraendert
werden. '<' und '>' rechnen die dargestellte Adresse so um, dass sich
dass sich ein moeglichst kleiner Offset- bzw. ein glatt durch 1000h
teilbarer Segmentanteil ergibt.
.21
Extended Memory

In diesem Modus kann der Erweiterte Speicherbereich von Adresse
000000h bis FFFFFFh, also 16 MByte erkundet werden. Handelt es sich
bei dem betreffenden Rechner nicht um einen AT, dann laesst sich dieser
Modus zwar auch einschalten, jedoch wird vorher eine entsprechende
Hinweisbox mit Abbruchmoeglichkeit angezeigt.

Durch Betaetigen eines in der Fusszeile angegebenen Hotkeys bzw. durch
Anklicken eines Hotkey-Symbols kann im Speicher "geblaettert" werden.
Im Position-Menue kann ueber die Funktion "Offset" eine neue Adresse
eingegeben werden. Durch Anklicken des Positionierungsbalkens kann die
Dump-Position relativ zum gesamten Bereich veraendert werden.
.22
I/O Ports

Hier wird der Port-Dump-Modus eingeschaltet, in dem die Inhalte der
I/O-Ports von Adresse 000h bis 3FFh angezeigt werden.

Durch Betaetigen eines in der Fusszeile angegebenen Hotkeys bzw. durch
Anklicken eines Hotkey-Symbols kann "geblaettert" werden. Im Position-
Menue kann ueber die Funktion "Port Address" eine neue Adresse
eingegeben werden. Durch Anklicken des Positionierungsbalkens kann die
Dump-Position relativ zum gesamten Bereich veraendert werden.

Hinweis: Bei manchen, wahrscheinlich nicht 100% IBM-kompatiblen
Rechnern kann das Auslesen bestimmter Portadressen einen Systemabsturz
zur Folge haben.
.23
CMOS RAM

Bei ATs, die ueber einen Uhrenbaustein verfuegen, kann in diesem Modus
das 64 Byte grosse CMOS-RAM angezeigt werden. Gleichzeitig wird die
aktuelle Pruefsumme (Addition der Inhalte der Bytes 10h bis 2Dh) und
daneben die in den Bytes 2Eh und 2Fh enthaltene Pruefsumme angezeigt.
Auf diese Weise kann man den Wert in 2Eh/2Fh korrigieren, falls man
durch Editieren der CMOS-RAM-Inhalte die tatsaechliche Pruefsumme
veraendert hat. Ansonsten wuerde einen das BIOS beim naechsten Selbsttest
zur Aktualisierung der CMOS-RAM-Konfiguration auffordern.

In diesem Modus kann die Dump-Position nicht veraendert werden.
.24
Drive Sectors

Hier kann der Sektor-Dumpmodus eingeschaltet werden. Es werden die
Sektorinhalte des aktuellen Laufwerkes angezeigt, das aber mit <ALT+D>
oder Menuepunkt "Change Drive" jederzeit gewechselt werden kann. Bei
den Laufwerken handelt es sich nicht um physikalische Laufwerke
(DASDs), von denen das BIOS ausgeht, sondern um vom DOS eingeteilte
logische Einheiten (Volumes).

In der Statuszeile oberhalb des Dumpfensters werden verschiedene
Informationen angezeigt: Die aktuelle Laufwerksbezeichnung, die
Sektor- und die Cluster-Nummer. Die Nummer des Clusters beginnt dabei
allerdings erst bei 2, also mit dem Anfang des Datenbereiches des
Laufwerkes. Dies liegt darin begruendet, dass die ersten 2 Eintraege der
File-Allocation-Table (FAT), einer Tabelle, die fuer die Zuordnung der
Cluster zu einer Datei zustaendig ist, reserviert sind. Vor dem
Datenbereich befindet sich als erstes der Boot-Sektor, dann eine oder
mehrere FATs, gefolgt vom Hauptinhaltsverzeichnis (Root Directory).
Erst daran schliesst sich der Datenbereich, beginnend mit Cluster 2,
an. Im Bereich vor Cluster 2 wird in der Statuszeile statt der
Cluster-Nummer der jeweilige Bereich mit BOOT, FAT 1, FAT 2 oder ROOT
angegeben.

Durch Betaetigen eines in der Fusszeile angegebenen Hotkeys bzw. durch
Anklicken eines Hotkey-Symbols kann "geblaettert" werden. Im Position-
Menue kann ueber die Funktionen "Sector", "Cluster", "Boot Sector",
"FAT" und "Root Directory" eine neue Position auch direkt eingegeben
werden. Durch Anklicken des Positionierungsbalkens kann die Dump-
Position relativ zum gesamten Bereich veraendert werden.

<Ctrl-CR> schreibt den aktuellen Sektor in eine ggf. geoeffnete Sektor-
Datei (siehe Funktion "Sector File" im Menue "Options"). Falls das TSR-
Programm CLUSTER installiert ist, laesst sich ueber <ALT+C> der Name der
den dargestellten Cluster belegenden Datei ermitteln.

Im Falle eines Disk-I/O-Fehlers, z.B. wenn sich ein Sektor nicht lesen
oder schreiben laesst, oder sich keine Diskette im Laufwerk befindet,
erscheint eine entsprechende Error-Box, die entweder zu einer Bestae-
tigung auffordert oder auf die Auswahl eines neuen Laufwerkes wartet.
.25
File

Der Menuepunkt "File" aktiviert den Datei-Modus, in dem der Inhalt
beliebiger Dateien angezeigt werden kann. Falls dieser Modus bisher
noch nicht aktiviert wurde, muss die Datei zuerst aus einer Directory-
Box ausgewaehlt werden. Ansonsten wird die zuletzt ausgewaehlte Datei
angezeigt. Ist der Datei-Modus gerade aktiv, dann erscheint die
Directory-Box zur Auswahl einer neuen Datei auf jeden Fall.

In der Statuszeile oberhalb des Dumpfensters werden Informationen zu
der Datei angezeigt: Der Dateiname, die Groesse der Datei in Bytes
(hexadezimal) und der Zugriffsmodus auf die Datei ("Read+Write" oder
"Read Only"). Es wird zunaechst versucht, die Datei zum Lesen und
Schreiben zu oeffnen. Falls dieser Versuch fehlschlaegt, wird sie nur
zum Lesen geoeffnet. In diesem Fall kann jedoch der Inhalt der Datei
mit der Patch-Funktion nicht geaendert werden.

Durch Betaetigen eines in der Fusszeile angegebenen Hotkeys bzw. durch
Anklicken eines Hotkey-Symbols kann "geblaettert" werden. Im Position-
Menue kann ueber die Funktion "Offset" eine neue Position eingegeben
werden. Durch Anklicken des Positionierungsbalkens kann die Dump-
Position relativ zum gesamten Bereich veraendert werden.
.26
Hex/ASCII Dump

Mit diesem Menuepunkt wird der Hex/ASCII-Dumpmodus eingeschaltet, wenn
dieser vorher nicht aktiviert war. Alle angezeigten Inhalte erscheinen
hier in zwei getrennten Fenstern: Links das Hex-Fenster, in dem in
jeder Zeile 16 Hexbytes zu sehen sind, und rechts daneben das ASCII-
Fenster, das analog zum Hex-Fenster die Bytes als ASCII-Zeichen
darstellt. Steuerzeichen werden nicht einfach als Punkte ausgegeben,
sondern auch als Sonderzeichen angezeigt.
.27
Binary Dump

Hier wird vom Hex/ASCII- in den Binaer-Dumpmodus umgeschaltet. Jedes
Byte wird in Form von 8 Bits angezeigt, wobei sich Bit 7 links und Bit
0 rechts befindet. Maximal 16 Bytes sind mit aufsteigender Reihenfolge
untereinander angeordnet; insgesamt befinden sich acht solcher Spalten
nebeneinander, so dass maximal 128 Bytes in einem Fenster dargestellt
werden koennen (beim CMOS-RAM sind es z.B. nur die Haelfte). Diese
Anordnung hat den Vorteil, dass beispielsweise auch Zeichensaetze lesbar
dargestellt werden koennen. Im Binaer-Dump-Modus ist auch die Option
"High Bit" (siehe Menue "Options") wirksam.
.3
Das Menue "Position"

Im Menue "Position" koennen die Dump-Positionen in dem jeweiligen
Dumpmodus (ausser beim CMOS-RAM) direkt eingegeben werden. Erfolgt
keine oder eine fehlerhafte Eingabe, so wird die bisherige Adresse
beibehalten. Ansonsten erfolgt die Anzeige der Inhalte ab der
eingegebenen neuen Adresse. Mit <ESC> kann die Eingabe abgebrochen
werden.

Auch die aktuellen Dump-Positionen jedes einzelnen Modus mit Ausnahme
des Sektor- und des File-Modus, ob mit den Funktionen dieses Menues
oder mittels der Tasten <PgUp>, <PgDn>, <Home>, <End>, <-> oder <+>
eingestellt, werden durch die Setup-Funktion oder die Auto-Save-Option
gespeichert, so dass sie beim naechsten Aufruf des Programms wieder zur
Verfuegung stehen.
.30
Segment

Der Menuepunkt "Segment" dient zum Eingeben einer neuen Segmentadresse
im Base-Memory-Modus in Form einer bis zu 4-stelligen Hex-Zahl.
.31
Offset

Aequivalent zu "Segment" kann bei "Offset" im Base-Memory-Modus eine
neue Offsetadresse eingegeben werden.

Im Extended-Memory- sowie im File-Modus wird hier eine bis zu
6-stellige absolute Adresse eingegeben.
.32
Port Address

Ermoeglicht im Port-Dumpmodus die direkte Eingabe einer Port-Adresse
von 0 bis 3FF.
.33
Sector

Im Sektor-Dumpmodus kann hier eine Sektor-Nummer von 0 bis zur
hoechsten Sektornummer des betreffenden Laufwerkes direkt eingegeben
werden. Im Gegensatz zu "Segment", "Offset" und "Port" ist hier die
Default-Basis Dezimal! Als Hexadezimal wird eine eingegebene Zahl nur
dann interpretiert, wenn ihr eine Null vorangestellt wird.

Beispiel:

    1234  = dezimal 1234 = hexadezimal 4D2
    01234 = dezimal 4660 = hexadezimal 1234
.34
Cluster

Erlaubt die direkte Eingabe einer Cluster-Nummer. Da erst ab Cluster 2
angefangen wird zu numerieren, werden hier Werte < 2 nicht akzeptiert.
Der hoechste einzugebende Wert richtet sich nach der Anzahl der Cluster
des Laufwerkes (siehe Info-Box "Drive Parameters") und ergibt sich aus
der Anzahl + 1. Mit dem Cluster 2, der direkt hinter der letzten FAT
folgt, beginnt auch der Datenbereich des Volumes.

Hier ist die Default-Basis ebenfalls Dezimal. Als Hexadezimal werden
nur Zahlen mit einer fuehrenden Null interpretiert.
.35
Boot Sector

Erlaubt das direkte Positionieren auf den Boot-Sektor der logischen
Einheit, was dem Sektor 0 entspricht.

An erster Stelle eines Volumes befindet sich der Bootsektor, der
Informationen ueber die Struktur des Volumes sowie eine Routine
enthaelt, die beim Booten von der Diskette/Platte als erstes in den
Hauptspeicher gelesen und ausgefuehrt wird. Der Bootsektor hat
folgenden Aufbau:

    Offset  Laenge    Inhalt

    00      3 Bytes  Sprung zur Bootroutine
    03-0A   8 Bytes  OEM (Herstellername)
    0B      1 Word   Bytes pro Sektor
    0D      1 Byte   Sektoren pro FAT
    0E      1 Word   Reservierte Sektoren
    10      1 Byte   Anzahl FATs
    11      1 Word   Anz. Eintraege Hauptverz.
    13      1 Word   Gesamtzahl Sektoren
    15      1 Byte   Media Descriptor
    16      1 Word   Sektoren pro FAT
    18      1 Word   Sektoren pro Spur
    1A      1 Word   Anzahl Koepfe/Seiten
    1C      1 Word   Anzahl versteckte Sekt.
    20      1 DWord  Gesamtzahl Sektoren, falls Offset 13 = 0
                     (ab MS-DOS 4.0)
    24      1 Byte   Phys. Laufwerks-Nr. (ab MS-DOS 4.0)
    25      1 Byte   "reserviert" (ab MS-DOS 4.0)
    26      1 Byte   Signaturbyte (ab MS-DOS 4.0)
    27      1 DWord  Seriennummer (ab MS-DOS 4.0)
    2B     11 Bytes  Volume Label (ab MS-DOS 4.0)
    36      8 Bytes  "reserviert" (ab MS-DOS 4.0)
.36
FAT

"FAT" positioniert im Sektor-Dumpmodus auf die File Allocation Table.

Direkt hinter dem Bootsektor folgen eine oder mehrere identische FATs
(File Allocation Tables = Dateizuordnungstabellen). Ueber diese Tabelle
wird die Zuordnung der Daten zu den Dateien auf der Platte verwaltet.
Dabei werden ein oder mehrere Sektoren zu Clustern zusammengefasst; die
Anzahl der Sektoren pro Cluster ist dabei immer eine Zweierpotenz.
Der kleinste Bereich, den eine Datei auf einer Platte belegen kann ist
ein Cluster. Die FAT ist sozusagen ein Spiegel aller Cluster des
Datenbereiches auf der Platte: Fuer jeden Cluster ist dort ein Eintrag
vorgesehen, der besagt, ob der entsprechende Cluster noch frei ist
oder belegt. Wenn er belegt ist, dann gibt der Inhalt des korrespon-
diesenden FAT-Eintrages die Nummer des Folgeclusters der Datei an. Auf
diese Weise kann eine effizientere Verwaltung groesserer Datenmengen
erreicht werden, weil diese nicht an einem Stueck, sondern auch in
mehreren Teilen auf der Platte abgespeichert werden koennen. Da die
ersten zwei Eintraege in der FAT reserviert sind, beginnt die
Numerierung der Cluster im Datenbereich erst mit 2 statt mit 0.

Bei kleinen Laufwerken bis zu 4079 Cluster ist jeder FAT-Eintrag 12
Bit (3 Hex-Nibbles) gross, darueber 16 Bit (4 Hex-Nibbles). Die Eintraege
haben folgende Bedeutung:


  (0)000          = Freier Cluster
  (F)FF0...(F)FF6 = Reservierter Cluster
  (F)FF7          = Defekter Cluster
  (F)FF8...(F)FFF = Letzter Cluster einer Datei
  alles andere    = Nummer des Folgeclusters einer Datei


Da die FAT-Eintraege ab dem Wert (F)FF0h reserviert sind, betraegt die
groesste zulaessige Clusternummer bei 12-Bit-FATs 4079 (FEFh) und bei
16-Bit-FATs 65519 (FFEFh).

Folgendermassen werden die Cluster einer Datei zugeordnet:

1. Im Inhaltsverzeichnis-Eintrag (Word 1Ah) befindet sich die Nummer
   des 1. Clusters der Datei.

2. Dieser Wert, bei 12-Bit-FATs mit 1.5 und bei 16-Bit-FATs mit 2
   multipliziert, ergibt den Offset zur FAT, an dem die Nummer des
   naechsten Clusters der Datei steht.

3. Falls der Wert (F)FF8...(F)FFF betraegt, ist der letzte Cluster der
   Datei erreicht. Sonst weiter mit Schritt 2...
.37
Root Directory

Den FATs folgt das Hauptinhaltsverzeichnis, in dem fuer jeden
Dateieintrag 32 Bytes vorgesehen sind:

    Offset  Laenge    Inhalt

    00-07   8 Bytes  Dateiname (ASCII+Blanks)
    08-0A   3 Bytes  Erweiterung (ASCII+Blanks)
    0B      1 Byte   Attribut (w)
    0C-15   10 Bytes "reserviert"
    16      1 Word   Uhrzeit (w)
    18      1 Word   Datum (w)
    1A      1 Word   1. Cluster (w)
    1C      1 DWord  Dateigroesse (dw)


Das 1. Byte des Dateinamens (Byte 0) hat folgende Bedeutung:

    0    = Eintrag  wurde  nie  benutzt
    '.'  = Verzeichnis selbst
    '..' = Mutterverzeichnis
    ''  = Eintrag geloescht
    5    = Dateiname beginnt mit dem Zeichen '' (E5h)


Dateiattribut, Uhrzeit und Datum sind folgendermassen codiert:

    Attribut:             Uhrzeit:            Datum:

    Bit 0:R  Bit 3:Vol    Bit 0-4  :Sek./2    Bit 0-4 :Tag
    Bit 1:H  Bit 4:Dir    Bit 5-10 :Minute    Bit 5-8 :Monat
    Bit 2:S  Bit 5:A      Bit 11-15:Stunde    Bit 9-15:Jahr-1980


Hinter dem Hauptinhaltsverzeichnis folgt dann der eigentliche
Datenbereich, beginnend mit Cluster 2.
.4
Das Menue "Special"

Hier sind spezielle, Dumpmodus-Spezifische Sonderfunktionen
zusammengefasst.
.40
Patch Mode

Der Patch- oder auch Editier-Modus ist in allen sechs Dump-Modi
und sowohl bei Hex/ASCII- als auch beim Binaer-Dump verfuegbar. Nach
Anwaehlen dieses Menuepunktes erscheint nach Ausgabe eines kurzen
Hilfstextes mit Abbruchmoeglichkeit ein blinkender Cursor im Dump-
Fenster, der mit den Cursortasten oder mit der Maus positioniert
werden kann. Die angezeigten Werte koennen durch einfaches
Ueberschreiben geaendert werden.

Mittels der <TAB>-Taste kann im Hex/ASCII-Dumpmodus zwischen den
entsprechenden Bytes des Hex- und des ASCII-Fensters umgeschaltet
werden.

Im Binaer-Modus kann jedes Bit einzeln ein- und ausgeschaltet werden.
Dabei bewirken die Tasten <+> und <-> ein Setzen und Loeschen des-
jenigen Bits, auf dem der Cursor gerade steht. Der Cursor behaelt in
diesem Fall seine Position bei. Die Tasten <1> und <0> bewirken im
Prinzip dasselbe, jedoch mit dem Unterschied, dass der Cursor hier
jedesmal um ein Bit weiter nach rechts gesetzt wird.

Zum "Blaettern" stehen die in der Fusszeile angegebenen Tasten <PgUp>,
<PgDn>, <Home> und <End> sowie der Positionierungsbalken zur
Verfuegung. Im Sektor- und im File-Modus wird dabei vor dem Einlesen
eines neuen Sektors oder beim Beenden des Patch-Modus gefragt, ob der
geaenderte Sektor zurueckgeschrieben werden soll. Dies kann zusaetzlich
jederzeit mit <ALT+W> erreicht werden.

Um den Patch-Modus zu beenden und wieder in den normalen Dump-Modus
zurueckzukehren, ist die <ESC>-Taste zu druecken.
.41
Search for Text

Speicher oder Laufwerk koennen hier nach Textpassagen durchsucht
werden. Als solche werden Sequenzen von aufeinanderfolgenden Bytes mit
Werten von 20h (Blank) bis 7Ah ('z') angesehen. Die minimale Anzahl
von Bytes, die zur Identifikation von Textstellen noetig sind, kann
vorher in einer Box eingegeben (oder mit <CR> oder Doppelklick
bestaetigt) werden.

Ob Text gefunden wurde oder nicht, wird anschliessend in einer Box
angezeigt. In diesem Fall wird die Dump-Position auf den Beginn der
gefundenen Textpassage gesetzt.

Wenn diese Funktion einmal aufgerufen worden ist, dann kann mittels
Funktionstaste <F3> oder Menuepunkt "Find next" ohne erneute Eingabe
wiederholt gesucht werden (Weitersuchen).
.42
Find String

Dieser Menuepunkt erlaubt das Aufspueren von ASCII-Strings und
Bytefolgen in Speicher Laufwerk oder Datei.
Dazu wird als erstes ein
Suchstring eingegeben, der folgendes Format haben muss:

    "String",X

ASCII-Strings muessen also zwischen Gaensefuesschen gesetzt werden. Das X
steht fuer ein Hex-Byte. Es koennen beliebig viele Strings und Hex-Bytes
eingegeben werden, die jedoch durch Kommas voneinander getrennt werden
muessen. Die Maximallaenge des gesamten Suchstrings ist auf 72 Zeichen
begrenzt. Ein Beispiel fuer einen gueltigen String waere z.B.:

    "Ich bin der String",d,a,"der gesucht werden soll",d,a,1a

Entspricht die Syntax nicht diesem Format, dann wird dies durch eine
entsprechende Error-Box angezeigt. Ansonsten beginnt die Suche, die
mit der <ESC>-Taste jederzeit abgebrochen werden kann.

Ob der String gefunden wurde oder nicht, wird anschliessend in einer
Box angezeigt. Im ersten Fall wird bei Memory-Dump die Dump-Position
auf den Beginn des gefundenen Strings im Speicher gesetzt, bei Sektor-
Dump dagegen nur der Sektor, in dem der String gefunden wurde,
angezeigt und zusaetzlich der Offset des gefundenen Strings ausgegeben.

Wenn einmal ein Suchstring eingegeben worden ist, dann kann dieser
mittels Taste <F3> oder Menuepunkt "Find next" ohne erneute Eingabe
wiederholt gesucht werden (Weitersuchen).
.43
Find next

Entspricht der Funktionstaste <F3> und ermoeglicht das Weitersuchen
nach dem zuletzt eingegebenen Suchausdruck ab der aktuellen Dump-
Position.

Falls vorher die Funktion "Search Text" aufgerufen wurde, dann wird
nach der folgenden Textpassage gesucht.

Wurde zuvor die Funktion "Find String" aufgerufen, dann wird nach dem
hier eingegebenen Suchstring weitergesucht.
.44
Ignore Case

Die Stellung des Schalters "Ignore Case" bestimmt, ob beim Suchen
von ASCII-Strings mit der Funktion "Find String" die Unterscheidung
zwischen Gross- und Kleinschreibung unterdrueckt wird oder nicht. Ist
dieser Schalter eingeschaltet, dann wird Gross- und Kleinschreibung
ignoriert, sonst wird exakt gesucht.

Falls nach Hexbytes gesucht werden soll, empfiehlt es sich, diesen
Schalter auszuschalten, da sonst die den Buchstaben entsprechenden
ASCII-Zeichen entsprechend der Bedeutung des Schalters konvertiert
werden wuerden.
.45
Fill Memory

Hier kann ein beliebig grosser Speicherbereich mit Werten gefuellt
werden, demzufolge ist diese Funktion auch nur im Base- und im
Extended-Memory-Modus verfuegbar. Die Werte, mit denen der
Speicherbereich gefuellt werden soll, sind zuerst in Form eines
Fuellstrings einzugeben, der dasselbe Format wie der oben angefuehrte
Suchstring besitzen muss. Es koennen also ASCII-Strings und Hex-
Bytefolgen eingegeben werden.

Ist dies geschehen, so muss noch Anfangs- und Endadresse des
Speicherbereiches, der mit dem String gefuellt werden soll, eingegeben
werden.

Zuletzt erscheint noch die Sicherheits-Abfrage "Last Chance", die die
Moeglichkeit des Abbruchs dieser Funktion mittels <ESC> oder deren
Ausfuehrung, was mit <CR> zu bestaetigen ist, bereitstellt.
Verabschiedet sich Ihr Rechner daraufhin ins Nirwana, dann war der
Speicherbereich wohl doch wichtig...
.46
Move Memory

Ermoeglicht das Kopieren eines Speicherbereiches an eine andere
Adresse. Zuerst wird in einer Eingabebox die Anfangs- und die
Endadresse des zu kopierenden Speicherbereiches eingegeben (Source
Memory Area), und dann die Anfangsadresse im Speicher, an die der
Speicherbereich kopiert werden soll (Destination Memory Area).

Nach Bestaetigen der "Last Chance"-Box wird die Funktion dann
ausgefuehrt.
.47
Trace MCB's

Diese Funktion ist nur im Base-Memory-Modus wirksam und ermoeglicht das
Verfolgen und gleichzeitige Anzeigen der vom DOS anhand der Memory-
Control-Blocks zugeteilten Speicherbereiche. Zu jedem der
Speicherbereiche wird unter dem Dump-Fenster die Nummer des MCBs,
dessen Segmentadresse und die PSP-Adresse angezeigt.

Zu jedem der Speicherbereiche wird unter dem Dump-Fenster die Nummer
des MCBs, die Groesse des allokierten Speicherblocks in Paragraphs und
die PSP-Adresse angezeigt. Weitere Informationen ueber den
Speicherblock, also ob es sich um einen PSP oder ein Environment
handelt, oder den Namen des Owners, kann man ggf. direkt aus diesem
Speicherbereich entnehmen, der dazu jeweils im Dump-Fenster
dargestellt wird.

Mit der Taste <CR> gelangt man zum folgenden MCB. Ist der letzte MCB
erreicht, dann wird der MCB-Trace-Modus beendet und zum normalen
Dumpmodus zurueckgekehrt. Mit <ESC> kann der MCB-Trace-Modus ebenfalls
jederzeit beendet werden.
.48
Call Interrupt

Hier koennen zu Testzwecken beliebige Interrupts aufgerufen werden. In
einer Eingabe-Box werden dazu zuerst die Aufruf-Parameter (Int-Nummer,
Register und Flags) eingegeben. In Eingabefelder, die nur mit <CR>
bestaetigt werden, wird eine 0 eingesetzt. <ESC> ermoeglicht den Abbruch
der Eingabe. Vor Aufruf des Interrupts erfolgt noch eine
Sicherheitsabfrage. Anschliessend werden die Return-Parameter in einer
Box angezeigt.

Diese Funktion sollte besonders vorsichtig und nur mit genauer
Kenntnis ueber den betreffenden Interrupt verwendet werden.
.5
Das Menue "Info"

Unter diesem Menue sind verschiedene Systeminformationen in uebersicht-
licher Darstellung zusammengefasst.
.50
Memory Map

Erstellt anhand der MCBs einen uebersichtlichen Speicherbelegungsplan
mit Adresse, Groesse, Inhalt (DOS, PSP, Environment, frei) und Name des
jeweiligen Programms und gibt alle Interruptvektoren an, die auf
diesen Bereich zeigen. Dies kann zum Beispiel fuer das Aufspueren von
TSR- Programmen (auch "ungebetenen Gaesten") dienen.

Ein Fragezeichen hinter dem Inhalt ENV oder PSP bedeutet, dass der
betreffende Speicherblock nicht eindeutig, d.h. nur teilweise, als
Environment bzw. PSP identifiziert werden konnte.

Die einem Pfeil hinter dem Inhalt eines Speicherblocks folgende Zahl
verweist auf einen zugehoerigen anderen Block, z.B. auf das zu einem
PSP gehoerige Environment.
.51
Port Addresses

Zeigt eine Liste der Standard-Portbelegung bei PC/XT und AT, die
jedoch keinen Anspruch auf Vollstaendigkeit erhebt.
.52
CMOS RAM Information

Gibt eine Uebersicht ueber die Funktion und Bedeutung der einzelnen
Bytes des 64 Byte grossen CMOS-RAM und zeigt den aktuellen Inhalt
folgender 4 Bytes:

    Byte 0Eh (Diagnostic Status Byte)
    Byte 14h (Equipment Byte)
    Byte 10h (FDD Type)
    Byte 12h (HDD Type)

Die Bytes 19h-2Dh des CMOS-RAM sind i.d.R. als "reserviert" gekenn-
zeichnet. Zumindest das AMI-BIOS verwendet diesen Bereich zum Spei-
chern der Parametertabelle erweiterter Festplattentypen wie folgt:

  19-1A Typ          1D    Koepfe         21-22 LZone
  1B-1C Zylinder     1E-1F WPcomp        23    Sektoren

Der Wert fuer den Festplattentyp in Byte 12h enthaelt bei einem
erweiterten Typ den Wert Fh.
.53
DOS Control Block

Zeigt den Inhalt des DCB von Offset -4h bis 21h. Der DOS Control Block
(auch DIB = DOS Info-Block genannt) ist eine interne Tabelle des
Betriebssystems, in der verschiedene Parameter und vor allem die
Anfangsadressen wichtiger Speicherbereiche, die in Form von verkette-
ten Listen organisiert sind, verzeichnet sind. Dazu zaehlt z.B. auch
die Segmentadresse des ersten MCB, die bei Offset -2 des DCB zu finden
ist.

Direkt hinter dem DCB, also ab Offset 22h, befindet sich ab DOS-
Version 3.x der Header des ersten Geraetetreibers, des NUL-Treibers.
Bei DOS-Version 2.x ist der NUL-Driver bereits bei Offset 17h zu
finden, da hier der DCB noch nicht laenger war.

Im Base-Memory-Modus erscheint in der Box ein Balken, mit dessen Hilfe
direkt auf die Speicherbereiche positioniert werden kann. Mit den
Cursortasten oder durch einfaches Anklicken wird der Balken gesetzt,
<CR> oder Doppelklick uebernehmen die Adresse. <ESC> oder rechte
Maustaste brechen ab.
.54
System Configuration

Ermittelt die Konfiguration dieses Rechners bezueglich CPU, BIOS,
Speichergroesse, DOS, Schnittstellen, Video-Modus und Anzahl der
logischen Laufwerke.

Die in dieser Info-Box ermittelte CPU-Taktfrequenz (LM) ist nur als
relativer Vergleichswert zu betrachten. Es wird hier lediglich die
Anzahl der Durchlaeufe einer Befehlsfolge innerhalb 1/18 Sekunde
gezaehlt und dieser Wert entsprechend umgerechnet.
.55
Drive Parameters

Zeigt verschiedene Parameter des aktuellen Laufwerkes an, wie
Speicherkapazitaet, freier Speicherplatz, Sektoren, Cluster, Spuren
usw.
.56
Partition Table

Falls eine oder mehrere Festplatten installiert sind, werden deren
Partitionstabellen (physikalischer Sektor 0) ausgelesen und die
Partitionen mit Start- und Endwerten von Kopf, Zylinder und Sektor
sowie relativer Sektornummer des ersten Sektors der Partition und
Anzahl der Sektoren in dieser Partition ausgegeben.

Der System-Indicator zeigt an, ob es sich um einen primaeren DOS-
Bereich (P), einen erweiterten DOS-Bereich (E) oder um einen
unbekannten Typ (?) handelt.

Ein Sternchen hinter der fortlaufenden Nummer (links) weist auf eine
aktive, d.h. bootfaehige Partition hin.

Info:

Festplatten koennen in mehrere Volumes, sogenannte Partitionen, einge-
teilt sein. Jede Partition besitzt dabei ihren eigenen Bootsektor, so
dass auf einer Platte mehrere Betriebssysteme gehalten werden koennen,
von denen aber immer nur eins bootfaehig sein kann. Zur Verwaltung
dieser Partitionen befinden sich im physikalischen Sektor Null vier
Partitionstabellen, denen ein Master-Boot-Record, also eine Ur-Boot-
routine vorangeht. Diese Routine wird beim Booten von der Festplatte
an die Speicheradresse 0:7C00 geladen und ausgefuehrt. Anschliessend
verschiebt sie sich selbst an die Adresse 60:0 und ermittelt dann
anhand der Eintraege in den Partitionstabellen, welche der maximal vier
Partitionen als bootfaehig gekennzeichnet ist. Dieser Bootsektor wird
an die Adresse 0:7C00 geladen und ausgefuehrt. Das betreffende
Betriebssystem wird daraufhin geladen...

Die vier Partitionstabelle liegen direkt hintereinander ab Offset 1BEh
des physikalischen Sektor 0 und haben alle den gleichen Aufbau:


  Offset  Laenge   Inhalt

     0    Byte    Boot Indicator
     1    Byte    Kopfnummer des ersten physikalischen Sektors
     2    Byte    Erster physikalischer Sektor
     3    Byte    Erster Zylinder (Spur)
     4    Byte    System Indicator
     5    Byte    Kopfnummer des letzten physikalischen Sektors
     6    Byte    Letzter physikalischer Sektor
     7    Byte    Letzter Zylinder (Spur)
     8    DWord   Relative Sektornummer des 1. Sektors der Partition
    12    DWord   Anzahl Sektoren der Partition


Der Boot Indicator bei Offset 0 einer Partitionstabelle zeigt an, ob
die betreffende Partition aktiv, also bootbar ist (Wert 80h) oder
nicht (Wert 0).

Die Felder "Sektor" und "Zylinder" (Offsets 2 und 6 bzw. 3 und 7) sind
folgendermassen zusammengefasst:

    7   Sektor    0   7  Zylinder   0
   +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
   +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
    +++ +----+----+   +------+------+
     |       |               +-------- untere 8 Bit der Zylindernummer
     |       +------------------------ 6-Bit-Nummer des Sektors
     +-------------------------------- obere 2 Bit der Zylindernummer

Dies entspricht genau dem Format, das auch die BIOS-Funktionen des
Disketteninterrupts 13h erwarten.

Der System Indicator bei Offset 4 sagt aus, um was fuer eine Art von
Partition es sich handelt:

    0 = Unbekannter Typ
    1 = Primaerer DOS-Bereich mit 12-Bit-FAT
    4 = Primaerer DOS-Bereich mit 16-Bit-FAT
    5 = Extended DOS-Partition


Die Einteilung einer Festplatte in Partitionen wird vom DOS-Dienst-
programm FDISK vorgenommen.
.57
Device Drivers

Listet alle Geraetetreiber mit Namen, Attribut und Adressen von Header,
Strategie- und Interrupt-Routine auf. Das Geraeteattribut hat folgenden
Aufbau:


  Bit  0 = 1: STDIN (Treiber ist Standard-Eingabegeraet)
  Bit  1 = 1: STDOUT (Treiber ist Standard-Ausgabegeraet)
  Bit  2 = 1: NUL (Treiber ist NUL-Geraet)
  Bit  3 = 1: CLOCK (Treiber ist Uhrtreiber)
  Bit  4..10: "reserviert"
  Bit 11 = 1: ORCM (Treiber unterstuetzt OPEN DEVICE, CLOSE
              DEVIVE und Ueberpruefung auf REMOVABLE MEDIA)
  Bit 12 = 1: NETWORK (Treiber fuer Netzwerk-Geraet)
  Bit 13 = 1: NONIBM (Treiber fuer Nicht-IBM-Platte)
  Bit 14 = 1: IOCTL (Treiber unterstuetzt IOCTL-Funktionen)
  Bit 15 = 1: CHR (Zeichentreiber, 0 = Blocktreiber)
.6
Das Menue "Options"

Unter diesem Menuepunkt sind verschiedene andere Funktionen
zusammengefasst.
.60
High Bit

Erlaubt die Umschaltung des Zeichens, mit dem im Binaer- Dumpmodus ein
gesetztes Bit dargestellt wird (kleines oder grosses Kaestchen). Das
1. Zeichen eignet sich z.B. besser zum Anzeigen von Pegelzustaenden der
Ports, das 2. Zeichen zur Darstellung des BIOS-Zeichensatzees.
.61
Sector File

Dieser Menuepunkt beinhaltet drei Funktionen, die sich auf ein sog.
"Sector File" beziehen. Dabei handelt es sich um eine Datei, in die
beliebige Sektoren des aktuellen Laufwerkes hineingeschrieben werden
koennen, was z.B. fuer das Retten von wichtigen Daten, die sich in
"verlorenen" Clustern befinden, hilfreich sein kann. Durch Betaetigen
der Tastenkombination <Ctrl-CR> wird im Sektor-Dumpmodus der jeweils
dargestellte Sektor an die Datei angehaengt.
.100
Open File

Mit "Open File" muss zuerst eine Datei erstellt werden, bevor diese
Funktion angewendet werden kann. Dazu wird der Dateiname eingegeben.
Existierende Deteien gleichen Namens werden ueberschrieben. Ein bereits
geoeffnetes Sector-File wird zuvor geschlossen.
.101
Close File

Duch "Close File" kann die Sektor-Datei jederzeit geschlossen werden.
Bei Beenden des Programms geschieht dies automatisch.
.102
Show Filename

An den Namen des aktuell geoeffneten Sector-Files erinnert der
Menuepunkt "Show Filename".
.62
Colors

Hier kann die Farbeinstellung des Programms geaendert werden. Es er-
scheint zunaechst ein weiteres Pulldown-Menue, in dem die Namen der 11
Farben des Programms aufgefuehrt sind.

Um eine Farbe zu aendern, wird diese angewaehlt, woraufhin in einer
Farbauswahl-Box 256 verschiedenenfarbige Buchstaben X erscheinen. Das
X mit der aktuellen Farbe ist eingerahmt.

Mit den Cursortasten oder der Maus kann der Rahmen um ein anders-
farbiges X gesetzt werden. <CR> oder ein Doppelklick uebernehmen die
ausgewaehlte Farbe, die daraufhin sofort sichtbar wird. Mit <ESC> oder
der rechten Maustaste kann abgebrochen werden.
.63
Mouse Speed

Dieser Menuepunkt dient zum Einstellen der Mausgeschwindigkeit. Der
Bereich geht von 1 bis 9, wobei 1 die langsamste und 9 die schnellste
Geschwindigkeit ist. Mit <CR> oder Doppelklick wird der neben dem
Menuetitel dargestellte Wert erhoeht; die veraenderte Geschwindigkeit
ist sofort wirksam. Mit "Save Options" kann die aktuelle Einstellung
gespeichert werden.
.64
Suppress "Snow"

Um eine moeglichst grosse Geschwindigkeit bei der Bildschirmausgabe zu
erreichen, schreibt das Programm direkt ins Video-RAM. Bei einigen CGA-,
manchmal auch bei VGA-Karten, entsteht jedoch bei gleichzeitigem Zu-
griff der CPU und des Video-Controllers auf das Video-RAM ein Flackern
auf dem Bildschirm. Dies kann unterbunden werden, indem vor jedem
Schreiben eines Zeichens der horizontale Ruecklauf des Elektronen-
strahls des Monitors abgewartet wird.

Mit diesem Schalter kann eventuelles Flackern unterbunden werden.
Allerdings verringert sich dadurch die Geschwindigkeit der
Bildschirmausgabe.
.65
Bell

Wem der "Sound" des Programms nicht gefaellt, der kann diesen mittels
Menuepunkt "Bell" ausschalten. Das Zeichen - hinter diesem Menuepunkt
bedeutet "ausgeschaltet", ein Haekchen dagegen "eingeschaltet".
.66
Sorted Directory

Bestimmt, ob die Verzeichnis- und Dateieintraege der Directory-Box
bei "Load File" und "Execute File" sortiert oder unsortiert
angezeigt werden.
.67
Auto Save

Ist dieser Schalter eingeschaltet, so wird bei Programmende oder bei
Aufruf der "DOS Shell" bzw. eines Programms mittels "Execute File"
automatisch die nun folgende Funktion "Save Options" ausgefuehrt.
.68
Save Options

Speichert den momentanen Dumpmodus mit den gerade angezeigten Adressen
(ausser der Sektornummer im Drive-Modus und der Offsetadresse im File-
Modus) einschliesslich der mit <ALT+G> gespeicherten Adressen, die
Stellungen aller Schalter, die eingegebene Anzahl von Bytes bei der
Funktion "Search for Text" im Menue "Special" sowie die im Menue
"Options" eingestellten Parameter (High Bit, Colors, Mouse Speed, ...),
so dass diese Einstellungen beim naechsten Aufruf des Programms
sofort wieder zur Verfuegung stehen.
