
  ###########################################################################
  ###########################################################################                                      [8Bit ASCII, CP437/850, 77 Zeichen/Zeile]


                                             "Mehrheiten zementieren das
                                             Bestehende; Fortschritt ist
                                             nur ber Minderheiten mglich."
                                             Bertraud Russel (1872-1970),
                                             engl. Mathematiker u. Philosoph





   N     N  W     W  DDDDD      OOO     SSSSSS          TTTTTTT  I  PPPPPP
   NN    N  W     W  D    D    O   O   S                   T     I  P     P
   N N   N  W     W  D     D  O     O  S                   T     I  P     P
   N  N  N  W     W  D     D  O     O   SSSSS   #######    T     I  PPPPPP
   N   N N  W     W  D     D  O     O        S             T     I  P
   N    NN   W W W   D    D    O   O         S             T     I  P
   N     N    W W    DDDDD      OOO    SSSSSS              T     I  P      s








                     Tips & Tricks rund um Novell DOS 7,
                    mit Blick auf undokumentierte Details,
                             Bugs und Workarounds







                              von Matthias Paul




                                                                             
  ###########################################################################
  ###########################################################################


   NWDOSTIP.TXT             Version 3  Ausgabe 155

                       Copyright (C) 05/1994-05/1997 bei

                                Matthias Paul
                                Ubierstrae 28
                                D-50321 BRHL
                                DEUTSCHLAND

                  Dieses Werk ist urheberrechtlich geschtzt.
                           Alle Rechte vorbehalten!

   EMail:             <Matthias.Paul@post.rwth-aachen.de>
                      (<Paul-Ma@reze-1.rz.rwth-aachen.de>)

   Letzte nderung:             1997-05-13 -mp

  ---------------------------------------------------------------------------

   Diese stndig aktualisierte Datei enthlt Hinweise, die fr die Benutzer
   von Novell DOS 7 (bis Update 15, Januar 1996) und Caldera OpenDOS 7.01,
   sowie fr Personal NetWare 1.0 (bis Update 5, inklusive VLM-Update 4,
   NWDLL Update 2 und WINDR Update 3 und VLM-Kit 1.21), aber in vielen
   Dingen auch fr Benutzer anderer DOS-Betriebssysteme und ganz allgemein
   fr DOS-/Windows-Programmierer interessant sein drften.

   Dabei wird auch auf evtl. bestehende Kompatibilittsprobleme und deren
   Beseitigung, sowie auf Optimierungsmglichkeiten in Verbindung mit
   bestimmten Anwendungen, lteren DR DOS-Versionen und den Alternativ-
   Kommandoprozessoren 4DOS/NDOS eingegangen. Auerdem werden Lsungen
   vorgestellt, wie man in Batchjobs und eigenen Programmen die zustzlichen
   Funktionen von Novell DOS mglichst so ausnutzen kann, da dabei keine
   problematischen Wechselwirkungen mit anderen DOS-Systemen (wie MS-DOS/
   PC-DOS) auftreten (und umgekehrt). Weitere Hinweise zu Novell DOS finden
   sich u.a. in der Datei NWDOS7UN.TXT.

   Obwohl es sicherlich (wie in jeder Software) auch in Novell DOS 7 einige
   Bugs gibt (die meisten wurden in der Zwischenzeit im Rahmen von Updates
   gefixt), wurden in manchen Bchern auch angebliche Systemfehler be-
   schrieben, die eigentlich nur auf eine falsche Konfiguration zurck-
   zufhren sind. Deshalb soll dieses Dokument auch mit einigen Vorurteilen
   aufrumen und zeigen, wie man Novell DOS zu Dingen berreden kann, die
   (nicht nur fr MS-DOS Benutzer) nicht unbedingt offensichtlich sind und
   die teilweise weit ber die Mglichkeiten der Konkurrenz hinausgehen.

   Bis auf ganz wenige Ausnahmen gelten die hier wiedergegebenen Fakten auch
   fr den am 1997-02-03 freigegebenen Nachfolger von Novell DOS 7, fr
   Caldera OpenDOS 7.01; insofern behlt dieser Text weiterhin Aktualitt!
   Da ein Groteil dieses Textes unter Novell DOS 7 entstanden ist, wird
   derzeit meist noch nicht explizit auf Caldera OpenDOS 7.01 verwiesen.
   Soweit bisher untersucht, knnen Sie dies jedoch in 99% aller Flle
   einfach stillschweigend annehmen!


  ---------------------------------------------------------------------------

   Die in diesem Dokument wiedergegebenen Fakten und Ansichten basieren
   zum weitaus grten Teil auf unabhngigen eigenen Nachforschungen und
   Erfahrungen mit dem Betriebssystem, die hier und da durch ergnzende
   Hinweise aus der Fachliteratur, Zeitschriften oder anderen Quellen
   vervollstndigt und durch vielfltige Versuche, bermittelte Erfahrungs-
   berichte und Diskussionen abgesichert wurden. Einige Hinweise fuen auch
   nur auf unbesttigten Vermutungen (darauf wird an den entsprechenden
   Stellen hingewiesen). Es gibt also noch verschiedene Lcken zu schlieen
   und ich bin fr jede Mithilfe dankbar (besonders durch die Verffent-
   lichung der Quelltexte der ehemaligen Digital Research Betriebssystem-
   palette werden sich die noch verbliebenen Fragen und Ungenauigkeiten in
   naher Zukunft definitiv beantworten lassen knnen).

   Diese Datei stellt kein offizielles Dokument der Hersteller dar.

    HAFTUNGSAUSSCHLUSS:

     DIE ANWENDUNG DER TIPS GESCHIEHT AUSDRCKLICH AUF IHRE EIGENE
     GEFAHR UND IHR RISIKO! MIT DIESEN DOKUMENTEN WERDEN KEINE HARD-
     ODER SOFTWARE-EIGENSCHAFTEN ZUGESICHERT.
     ICH (DER AUTOR) BERNEHME KEINERLEI GEWHR, GARANTIE ODER
     VERANTWORTUNG FR DIE RICHTIGKEIT DER INFORMATIONEN, FR DIE
     TAUGLICHKEIT AUF BESTIMMTEN SYSTEMEN, FR RECHTLICHE FRAGESTELLUNGEN,
     NOCH FR IRGENDETWAS ANDERES, WEDER EXPLIZIT NOCH IMPLIZIT!
     ICH HAFTE AUCH NICHT FR VERLUSTE ODER SCHDEN JEGLICHER ART, DIE
     DURCH DIE ANWENDUNG DIESER INFORMATIONEN ENTSTEHEN KNNTEN, NOCH
     GEHE ICH IRGENDEINE VERPFLICHTUNG IHNEN GEGENBER EIN!
     GEGEN MICH KNNEN KEINERLEI ANSPRCHE GELTEND GEMACHT WERDEN!

   Auch Novell oder Caldera werden Ihnen i. allg. keinen Support etc.
   bei Verwendung undokumentierter Details geben, nichtsdestotrotz sind
   diese Details manchmal sehr interessant und ntzlich.

   Bitte beachten Sie weitere Hinweise in der Datei README.1ST, denn wenn
   Sie weiterlesen, erklren Sie sich automatisch mit diesen Bestimmungen
   einverstanden!

   Verwendete Warenzeichen etc. sind Eigentum der jeweiligen Eigentmer.


  ---------------------------------------------------------------------------

   Die kostenfreie Weitergabe der unvernderten Datei zu nicht kommerziellen
   Zwecken ist ausdrcklich erlaubt, sofern dies in Form der unvernderten
   Original-Distribution MPDOSTIP.ZIP geschieht. Jede andere Form der
   Weitergabe oder bersetzung (auch auszugsweise oder in modifizierter oder
   bearbeiteter Form gleich welcher Art), sowie eigenstndige nderungen
   sind nicht gestattet, es sei denn, ich habe dazu vorher meine ausdrck-
   liche schriftliche Zustimmung gegeben.
   Die Verffentlichung dieser Informationen (auch ausschnittsweise oder
   in vernderter Form) in anderen Listen, Bchern, Zeitschriften, auf
   CD-ROMs, in Online-Dokumenten o.., bzw. als Beilage oder Werbung fr
   irgendein Produkt (z.B. Rechner- oder Software-Verkauf) erfordert
   meine vorherige schriftliche Zustimmung.
   Bei Nichtbeachtung behalte ich mir rechtliche Schritte vor!
   Alle Rechte vorbehalten!

   Sollten Sie diese Datei nicht kostenlos erhalten haben oder sollte bei
   Ihnen der Eindruck erzeugt worden sein, es handele sich hierbei um eine
   Ersatzdokumentation oder zum Lieferumfang irgendeines Produkts zugehrig,
   teilen Sie mir dies bitte mit. Ich mchte verhindern, da, wenn ich
   aus dem Projekt *in dieser Form* schon keinen finanziellen Gewinn ziehen
   mchte, es andere versuchen. Schlielich stecken einige tausend Arbeits-
   stunden in der Erarbeitung und Aufbereitung des Materials.

   Ich habe mich bemht, die Informationen so vollstndig, eindeutig und
   korrekt wie nur mglich darzustellen. Trotzdem bin ich mir sicher, da
   dieses Dokument noch sachliche oder anderweitige Fehler enthlt (nicht
   zuletzt aufgrund der Tatsache, da ein Groteil dieses Textes zu stark
   vorgerckter Stunde entstanden ist...). Deshalb:
   Fr Hinweise auf Fehler, unverstndliche Formulierungen oder weitere
   Tips und Tricks bin ich jederzeit dankbar. Auch andere Rckmeldungen
   sind sehr willkommen.

   Regelmige Updates meiner Tips & Tricks Dokumente zu Novell DOS,
   DR DOS, MS-DOS/PC-DOS und verschiedenen Anwendungsprogrammen,
   sowie die in diesem Text erwhnten FreeWare-Utilities gibt es
   entweder direkt auf meiner WWW-Seite oder z.B. auf dem FTP-Server
   der Uni Stuttgart:

    URL: http://www.rhrz.uni-bonn.de/~uzs180/mpdokger.html
                                    [^ hier steht eine Tilde, ASCII-126]

    URL: ftp://ftp.uni-stuttgart.de/...
                               ...pub/systems/msdos/util/system/mpdostip.zip

   Weitere Bezugsquellen entnehmen Sie bitte der beiliegenden Datei
   README.1ST.

                                                                             
  ###########################################################################
  ###########################################################################

  I. EINFHRUNG:
  ==============

  ---------------------------------------------------------------------------

  I.1. Inhalt: [97-04-13]
  =======================

   i. Vorbemerkungen:
   ------------------

   Diese Datei hat ber die Jahre riesige Ausmae angenommen. U.U. ist Ihr
   Editor/Textbetrachter nicht einmal mehr in der Lage, die komplette Datei
   einzuladen: Novells EDIT, der <F3>-Betrachter des Norton Commanders (NC),
   aber auch Editore wie SemWares TSE oder die von RIT Labs' DOS Navigator
   (DN) oder Borland Pascals BP 7.0 haben hier normalerweise keine Probleme
   (einige Randbedingungen vorausgesetzt); leider ist EDIT von MS-DOS bis
   einschlielich 6.22 nicht in der Lage, Dateien mit solchen Ausmaen zu
   bearbeiten; mit MS-DOS 7 hatten die Entwickler wohl in Einsehen, denn
   nun untersttzt auch MS-DOS EDIT grere Dateien... ;-)

   Fr den Notfall liegt meinem Tips & Tricks Paket ein kleiner, wenn auch
   spartanischer Public-Domain-ASCII-Textbetrachter namens SEE.COM bei,
   der auch problemlos beliebig groe Dateien anzeigen kann.

   Ein Ausdruck wrde einige hundert Seiten beanspruchen (derzeit ca.
   400 DIN/A4-Seiten). Deshalb stelle ich - stellvertretend fr Sie -
   die wichtigste Frage zuerst:

   "Mu ich mir das wirklich antun, all dies durchzulesen...?"

   Als Autor dieses Textes kann meine Antwort natrlich nur sein:

   "Ja, falls Sie sich noch zu den DOS Benutzern zhlen oder (im Idealfall)
    sogar Novell DOS, Caldera OpenDOS oder DR DOS einsetzen..." ;-)

   Wenn Sie diese Datei nicht lesen, entgehen Ihnen mit Sicherheit eine
   unglaubliche Flle bisher nirgendwo sonst verzeichneter undokumentierter
   Informationen sowie eine Vielzahl Tips und Tricks rund um Novell DOS
   inklusive vieler allgemeingltiger Hinweise, die sich auch Benutzer
   von MS-DOS/PC-DOS zu Gemte fhren sollten.

   Allerdings mu ich auch zugeben, da nicht alle Informationen jeden
   Leser interessieren werden. In der blichen Literatur wird hufig eine
   80/20 Regelung angestrebt (d.h. 80% allgemein interessante Themen sollen
   abgehandelt werden; der 20% Themenanteil 'fr Spezialisten' fllt unter
   den Tisch). Dies sind aber meist die Punkte, wo die Probleme anfangen
   und die Praxislsungen schmerzlich vermit werden (nicht nur von den
   Spezialisten). (Schon oft habe ich mich ber tausendseitige Wlzer
   gergert, die dann, wenn man wirklich konkrete Ausknfte sucht, immer
   noch keine brauchbaren Hinweise geben und sich in Oberflchlichkeiten
   ergehen...).
   In diesem Dokument habe ich deshalb auf keinerlei derartige Faustregel
   Rcksicht genommen, sondern - eher im Gegenteil - versucht, die dadurch
   entstandenen Dokumentationslcken durch eigene Recherchen zu schlieen
   (soweit ich sie schlieen konnte...). Ehrlich gesagt, auch ich habe mich
   schon manches Mal gefragt, ob dies an der einen oder anderen Stelle nicht
   doch etwas in Pedanterie ausartet, andererseits habe *ich* diese Details
   whrend der tglichen Arbeit oft schmerzlich vermit, so da es anderen
   Benutzern vielleicht hnlich geht, wenn sie ein Betriebssystem wirklich
   bis zum Letzten ausnutzen wollen/mssen.
   Manchem mag diese Form der Dokumentation auch wieder nur bruchstckhaft
   vorkommen (was auch stimmt), aber man nehme sich einfach das DOSBOOK oder
   die auf dem Buchmarkt vorhandene Literatur und schlage ein beliebiges
   Kapitel auf. In den meisten Fllen werden sich die Informationen
   ergnzen, nicht aber berschneiden.
   Das Standardverhalten und offensichtliche Eigenschaften sind in der
   einschlgigen Literatur (und im DOSBOOK) ausfhrlichst dokumentiert;
   dies braucht nicht ein weiteres Mal wiederholt zu werden. Nur an Stellen,
   wo es mir auch um eine 'geschlossene' Darstellung eines Themas ging, habe
   ich auch das dokumentiert, was eigentlich fr den einigermaen erfahrenen
   Benutzer (und Leser der offiziellen Dokumentation) als bekannt voraus-
   gesetzt werden kann.

   Dieser Text befat sich mit der Benutzerseite des Betriebssystems.
   Auf die API-Ebene und interne Datenstrukturen wird nur sehr begrenzt
   eingegangen; hierfr sei auf die von Ralf Brown gepflegte umfangreiche
   Interrupt-Liste INTERxx verwiesen, z.B. zu beziehen ber:

    URL: http://www.pobox.com/~ralf/files.html
    URL: ftp://cs.cmu.edu/afs/cs.cmu.edu/user/ralf/pub/inter*.zip
    URL: ftp://ftp.uni-stuttgart.de/pub/systems/msdos/util/interxx/*.*
    URL: ftp://ftp.leo.org/pub/comp/platforms/pc/msdos/doc/interrupt/*.*
    URL: http://www.leo.org/pub/comp/platforms/pc/msdos/doc/

   Eine Ausnahme hiervon ist die Struktur der Verzeichniseintrge
   bei DELWATCH und PASSWORD (in Kapitel II.4. und II.21.), um hier
   ein fr allemal die ber die gesamte Literatur herrschende Konfusion
   zu beenden, was besonders im Hinblick auf DR DOS 6.0 Owner-IDs,
   OS/2 Extended Attributes und MS-DOS 7 neues ACCDATE= und den
   Long-Filename-Support wichtig ist, damit neue Implementierungen auf
   Novell DOS/DR DOS Rcksicht nehmen knnen...
   Andere Ausnahmen sind die quantitativen Bemerkungen zum Aufbau der
   DOS-Datenstrukturen (wichtig fr Optimierungen in CONFIG.SYS) und
   insbesondere der CONFIG.SYS Vorab-Umgebung (in Verbindung mit SET=
   und meinem Utility SETENV.COM), auerdem Hinweise zur CDS (in Ver-
   bindung mit LASTDRIVE= und Lademglichkeiten von NWCDEX in CONFIG.SYS
   mit meinem INSTCDEX.EXE Utility).

   Sollten in diesem Text Funktionen der DOS-Versionen verschiedener
   Hersteller gegenbergestellt werden, so bezieht dabei sich die Angabe
   "MS-DOS" ohne explizite Angabe der Versionsnummer i. allg. auf MS-DOS
   bis einschlielich 6.22. (Zumindest bis einschlielich MS-DOS 5 gilt
   dies auch fr die PC-DOS Version, danach knnen Differenzen auftreten.)
   Der MS-DOS 7 Anteil aus MS Windows95 hat - obwohl als Ganzes eher stark
   beschnitten - eine ganze Reihe der sinnvollen internen Erweiterungen
   des Kernels von Novell DOS 7 adaptiert (zum Zeitpunkt der Auslieferung
   von Novell DOS 7 waren MS-DOS 6.0 und 6.20 aktuell). Daher weicht
   MS-DOS 7 in recht vielen Punkten von seinen Vorgngern ab und mu
   hufig gesondert betrachtet werden (was aber nur begrenzt Thema dieser
   Datei ist). Ist von unterschiedlichen Novell DOS 7 Updates die Rede,
   bezieht sich die Angabe eines Updates bei der Beschreibung eines be-
   stimmten Verhaltens, sofern nicht ausdrcklich anders angegeben, meist
   auch auf alle vorherigen Updates, d.h. die Angabe soll nur ausdrcken,
   da ich das Verhalten mit (oder bis zu) einem bestimmten Update ber-
   prft habe.

   Bitte betrachten Sie das folgende Inhaltsverzeichnis mit Vorsicht.
   Es liegt in der Natur einer Tips & Tricks Liste, da viele Tips ber
   das gesamte Dokument verstreut sind und nicht immer unbedingt an der
   Stelle auftauchen, an der Sie anhand des Inhaltsverzeichnisses danach
   suchen. Einige der Unterkapitel sind so umfangreich, da eine weitere
   Unterteilung den Rahmen des Inhaltsverzeichnisses um Grenordnungen
   gesprengt htte. Insofern gibt das Verzeichnis in seiner derzeitigen
   Form nur einen verzerrten Eindruck vom wahren Inhalt dieser Datei. Auf
   ein Stichwortverzeichnis und eine Seitennummerierung wurde zugunsten
   der Aktualitt verzichtet. Es empfiehlt sich daher, immer das komplette
   Dokument nach einem Schlsselwort abzusuchen, um einen mglichst
   vollstndigen Eindruck zu bekommen (teilweise gibt es dadurch auch
   Mehrfacherwhnungen und Querverweise). Zur Erleichterung fr Leser,
   die nach bestimmten Informationen suchen, habe ich mich bemht,
   einigermaen sinnvolle Stichworte zu vergeben.

   Damit Sie auch bei stndiger Aktualisierung Notiz von Neuigkeiten
   nehmen knnen, ohne jedesmal das gesamte Dokument durchlesen zu mssen,
   erscheint ab sofort jeweils nach der Kapitelberschrift das letzte
   Aktualisierungsdatum [in eckigen Klammern], sofern grere Neuerungen
   eingearbeitet wurden.

   Zustzlich sind im folgenden Inhaltsverzeichnis einige Kapitel mit
   Attributen versehen:

   [i] =  Fr Schnelleser: Ein mglichst guter Einstieg in die
          wichtigsten Zusatzinformationen und Tips, die man als
          Anwender von Novell DOS 7 wissen sollte.
   [u] =  Enthlt Hinweise auf undokumentierte Eigenschaften des Systems

                                                                             
   ii. bersicht:
   --------------

   I.    EINFHRUNG

            1. Inhalt
                  i. Vorbemerkungen
                 ii. bersicht
            2. Novell DOS 7 Updates                                      [i]
                  i. Bezugsquellen
                 ii. Derzeit aktuelle Updates
                iii. Entpacken der Updates
                 iv. Hinweise zu den einzelnen Novell DOS 7 Updates
                  v. Weitere Hinweise
            3. Novell DOS 7 Bug-Reporte/Feedback/Diskussionsforen
                  i. Bug-Reporte Personal NetWare (Novell)
                 ii. Bug-Reporte DR DOS/Novell DOS/Caldera OpenDOS (Caldera)
                iii. Diskussionsforen
            4. Novell DOS 7 - eine (persnliche) Kurzkritik - mit Grabrede
            5. Caldera OpenDOS 7.01 - erste Erfahrungen                \ [i]

   II.   ALLGEMEINES

            1. SwitChar-Support                                          [u]
                  i. SwitChar - Was ist denn das?
                 ii. bersicht ber unterschiedliche SwitChar-Untersttzung
            2. Konfigurationsdateien CONFIG.SYS und AUTOEXEC.BAT umgehen [i]
            3. CD-ROMs und Cache                                         [i]
            4. Undokumentierte Eigenschaften externer Kommandos          [iu]
            5. Undokumentierte Mglichkeiten von DEBUG                   [iu]
                  i. Inkompatibilitten zu MS-DOS DEBUG
                 ii. Grundstzliche Verbesserungen
                iii. Undokumentierte Kommandos und Optionen
                 iv. Weitere Hinweise und spezielle Mglichkeiten
            6. STACKER beim Booten nicht laden                           [u]
            7. STACKER auf Version 4 updaten
            8. Rechnerkopplung ber Punkt-zu-Punkt-Verbindungen          [i]
            9. Erweiterte Kommandozeilen-Syntax am Prompt                [iu]
           10. Gemischte DOS-Systeme
           11. Interne Kommandos und Optionen von COMMAND.COM            [iu]
                  i. Aufrufoptionen
                 ii. Hinweise fr Kommando-Syntax interner Kommandos
                iii. Hinweise zu internen Kommandos
           12. Hinweise zum Editieren am COMMAND.COM Prompt
           13. Patchen der US-Version auf deutsche Ja/Nein-Abfragen
           14. Hinweise zu VERIFY                                        [i]
           15. Unter Novell DOS 7 lauffhige MS-DOS 6.22 Kommandos
           16. Landessprachliche Untersttzung                           [iu]
                  i. Einrichtung von Codeseiten
                 ii. Tips zum 'Nachrsten' fehlender Gerte oder Codeseiten
                iii. Landescodes und Keyboard-Krzel
                 iv. Codeseiten
                  v. Internationale Batchjobs
           17. Zgerlicher Platten-/Diskettenzugriff unter Novell DOS/DR DOS
           18. Mit STACKER Hauptspeicher 'virtuell' verdoppeln...
           19. Einstellungen in Novell DOS 7 .INI-Dateien                [iu]
           20. Nicht erlaubte Zeichen in Dateinamen
           21. Physik der Verzeichniseintrge unter Novell DOS           [iu]

   III.  CONFIG.SYS

            1. Undokumentierte Direktiven und Eigenschaften              [iu]
                  i. Allgemeine Einstellungen
                 ii. Laden von Gertetreibern und TSR-Programmen
                iii. Kommentare, Meldungen, Bildschirmsteuerung
                 iv. Benutzereingaben, Zeitsteuerung, Default-Verhalten
                  v. Konfigurationsmens, Verzweigungen, Blockbildung
                 vi. Fehlermanagement
            2. Undokumentierte Mglichkeiten von LASTDRIVE=              [iu]
            3. Verhalten von ECHO=
            4. Hinweise zu DEVICE=/DEVICEHIGH=                           [u]
            5. Mglichkeiten von INSTALL=                                [iu]
            6. Hinweise zur Vorab-Umgebung in Verbindung mit 4DOS
            7. Novell DOS Boot-Mens aus der Sicht von MS-DOS
                  i. [MENU], [COMMON], MENUITEM=, MENUDEFAULT=
                 ii. INCLUDE=
                iii. SUBMENU=
                 iv. MENUCOLOR=

   IV.   AUTOEXEC.BAT UND BATCHJOBS

            1. Bug in ECHO. (behoben)
            2. Fehler bei Abfrage von Variablen, die mehrere Parameter
               enthalten (behoben)
            3. Abfrage von geladenen Gertetreibern                      [iu]
            4. Novell DOS Kompatibilitt unter 4DOS erhhen              [i]
            5. MEM /FREE und /MODULE bei Novell DOS nachrsten
            6. Batchjobs und Umleitungen                                 [i]
            7. Spezielle Umgebungsvariablen von Novell DOS/DR DOS        [iu]
            8. Novell DOS aus Batchjobs heraus erkennen                  [i]
                  i. Novell DOS COMMAND.COM als Master-Kommandoprozessor
                 ii. Novell DOS Kernel unter 4DOS 5.0+
                iii. Sekundres 4DOS unter Novells COMMAND.COM

   V.    SPEICHER-MANAGEMENT

            1. Bessere Speicherausnutzung durch Option /USE bei HIMEM/EMM386
                  i. HIMEM.SYS                                         \ [iu]
                 ii. EMM386.EXE
            2. Zustzliche Optionen von EMM386.EXE                       [u]
            3. Zustzliche Optionen von HIMEM.SYS                        [u]
            4. Bessere Speicherausnutzung mit selbsthochladenden Programmen
            5. Hinweise zu LH/LOADHIGH/HILOAD                            [u]
            6. Video-Speicher fr Programme nutzen                       [iu]
                  i. Erweiterung des konventionellen Speichers (MEMMAX +V)
                 ii. Erweiterung des UMB-Speichers (MEMMAX +U)
                iii. Kombinationen/Beispiele
            7. UMB-Region-Support                                        [iu]
            8. Tuning-Tips fr 4DOS-Benutzer

   VI.   NETZWERK

            1. Netzwerk-Hardware                                         [i]
            2. PNW-Software-Einrichtung                                  [i]
            3. Mehrere PNW-Server in einem Netz                          [u]
            4. PNW Login-Skripte in Multi-Konfigurationen
            5. NETWARS als Netzanalyse-Werkzeug
            6. PNW und Dateiattribute
                  i. PNW und Dateiattribute von DOS
                 ii. Mit PNW Systemdateien ber's Netz lschen
            7. Tips fr Pawrter                                        [i]
            8. PNW ohne Novell DOS 7 installieren                        [i]
            9. Hinweise zu NET.EXE                                       [u]
           10. Hinweise zur Universal Naming Convention (UNC)            [i]
           11. PNW-Server und Sharing von Wechselmedien
           12. NET.CFG Parameter                                         [u]

   VII.  MULTITASKING UND PROZESSUMSCHALTUNG

            1. Fehlverhalten von TASKMGR mit lteren Maustreibern (behoben)
            2. Undokumentierte Einstellungen fr den TASKMGR             [iu]
                  i. Multitasker
                 ii. Prozeumschalter
            3. Novell DOS TASKMGR und 4DOS kombinieren                   [i]
            4. TASKMGR Multitasker in Verbindung mit 4DOS aus Batchjobs  [i]
               aktivieren
            5. TASKMGR & Multiuser-Betrieb                               [u]
            6. TASKMGR und LOCK
            7. Tastaturprobleme unter dem multitaskenden TASKMGR

   VIII. NOVELL DOS 7 UND MS WINDOWS 3.xx

            1. Novell DOS und MS Windows 3.xx kombinieren                [i]
                  i. Der AARD-Code - eine peinliche 'Historie'
                 ii. Modifikationen am Windows-System durch Novell DOS SETUP
                iii. Netzwerk (PNW) Einrichtung fr Windows
                 iv. Weitere Hinweise
            2. Novell DOS, MS Windows 3.xx und Genius-Maustreiber 10.20
            3. Novell DOS und MS Windows 3.xx Netzinstallation           [i]
            4. Windows-Maus in DOS-Boxen im Fenster benutzen             [iu]

   IX.   LITERATUR

            1. Novell DOS 7 Handbuch
            2. Das groe Buch zu Novell DOS 7 (Data Becker)
            3. Novell DOS 7 - Das Kompendium (Markt & Technik)           [u]
            4. Novell DOS 7 und Personal NetWare (Addison Wesley)        [u]
            5. Novell DOS 7 - Networking, Multitasking, Systemoptimierung [u]
            6. Undocumented DOS (Addison Wesley)                         [u]
            7. DOS 5 fr Programmierer (Addison Wesley)                  [u]
            8. Weitere Literatur
            9. c't/iX Artikel                                            [u]
           10. Andere Zeitschriftenartikel
           11. Interessante Web-Sites bezglich Novell DOS               [i]


   Weitere Tips (besonders zu COMMAND.COM internen Befehlen) finden sich
   auch in NWDOS7UN.TXT, z.B. ber:

   -  COMMAND Hilfesystem
   -  Sprachumfang in Batchjobs
   -  CD-ROM-Einbindung
   -  VIEWMAX (ein GEM-konformer Desktop) auf hhere Video-
      Auflsungen konfigurieren und in Verbindung mit TASKMGR
      zu graphischer Multitasking-Oberflche kombinieren

                                                                             
  ---------------------------------------------------------------------------

  I.2. Novell DOS 7 Updates: [97-05-05]
  =====================================

   Stichworte: NWDOS, PNW, VLM, Updates, Tutorials, FTP, NetWire, WWW,
               FaxBack, INSTALL, SETUP, SETUP2, PNUNPACK, UNSECURE,
               YESCHAR=, History, DPMS, MEMMAX, Bugs

   Jeder lizensierte Besitzer von Novell DOS darf bei Novell kostenlos
   Updates downloaden, die kostenlos weiterverteilt werden drfen,
   sofern sie nicht modifiziert werden. Beachten Sie die Hinweise,
   die beim Entpacken der Archive angezeigt werden, sowie die dort
   beiliegenden Textdokumente.

   Als Angehriger einer Ausbildungssttte, Student oder Schler,
   aber auch als Angehriger einer von Caldera anerkannten religisen
   und caritativen Einrichtung knnen Sie nun auch bei Caldera den
   Nachfolger von Novell DOS 7, Caldera OpenDOS 7.01 downloaden und
   kostenlos benutzen (nheres siehe Kapitel I.3.).

   i. Bezugsquellen:
   -----------------

   Die Updates zu Novell DOS sind z.B. im Internet ber FTP zu finden:

    Primrquellen (ndos7 bedeutet hier "Novell DOS", nicht etwa NDOS):

     URL: http://support.novell.com/home/desktop/nd7/*.*
                                             .../pnw/*.*
                                             .../nwl/*.*
                                             .../dr6/*.*
                                .../home/client/doswin/*.*
     URL: ftp://ftp.novell.de/pub/updates/dsktop/ndos7/*.*
                                             .../pn10/*.*
                                             .../nwl11/*.*
                                             .../drdos60/*.*
     URL: ftp://ftp.novell.com/pub/updates/...

    Sekundrquellen:

     URL: ftp://ftp.uni-paderborn.de/msdos/novell/public/dsktop/...
     URL: ftp://ftp.uni-stuttgart.de/pub/systems/msdos/util/novell/...
     URL: ftp://ftp.leo.org/pub/comp/platforms/pc/???
     URL: http://www.leo.org/pub/comp/platforms/pc/???

    Der Durchsatz beim US-Server ftp.novell.com ist paradoxerweise
    besonders nachmittags und nachts sehr viel hher als beim deutschen
    ftp.novell.de, der ganz allgemein als sehr langsam eingestuft werden
    kann!!! Extrem schnell ist allerdings der Server der Uni Paderborn,
    der einen Novell-Mirror enthlt, der offenbar ca. einmal jhrlich
    aktualisiert wird (05/1996, und daher im Moment ausgesprochen
    aktuelle Dateien enthlt). Der Server der Uni Stuttgart, auch
    sehr schnell, verfgt ebenfalls derzeit (05/1996) ber aktuelle
    Novell DOS 7 und PNW Updates.

    User-Login bei FTP: ANONYMOUS
    Pawort bei FTP   : Ihre EMail-Adresse

   ber Gopher

    <gopher.novell.com>

   oder ber WWW:

    URL: http://www.novell.de/            (Deutschland)
    URL: http://netwire.novell.de/        (Deutschland)
    URL: http://www.novell.com/           (USA)
    URL: http://support.novell.com/home/  (USA)
    URL: http://netwire.novell.com/       (USA)

   Die Updates liegen an unterschiedlichen Stellen, befinden sich
   jedoch grtenteils in der Netwire-Sektion 1 oder in der Update-ra
   und heien

    D70xyy.EXE   Novell DOS Update.
    P10xyy.EXE   Personal NetWare Update (siehe Hinweise weiter unten!!!)
    VLMUPy.EXE   VLM-Update und Client-Software (auch fr PNW)
    WINDRy.EXE   Notwendige Updates fr Windows-Support nach VLM-Update
    NWDLLy.EXE   mit  x =  g (Deutschland)  s (Spanien)
                           u (USA)          i (Italien)
                           f (Frankreich)
                           j (Japan, habe ich aber bisher noch nie gesehen,
                             zumindest eine japanische PNW-Ausgabe soll es
                             aber wirklich geben...)
                     yy =  Update-Nummer

   Um sich ber die Verfgbarkeit von Updates zu informieren, knnen Sie
   im Internet auch Suchdienste wie Archie in Anspruch nehmen
   (z.B. <archie.th-darmstadt.de>) oder auf den WWW-Seiten bei Novell USA
   eine entsprechende Suchanfrage nach der jeweiligen Datei aufgeben
   (URL: http://netwire.novell.com/FileUpdt).

   Es ist jeweils nur das letzte Update notwendig, das im allg. alle
   vorherigen Updates enthlt. Allerdings kam es schon mehrfach vor,
   da Dateien 'vergessen' wurden. Daher sollten Sie in jedem Fall die
   HISTORY.TXT Dateien der einzelnen Updates aufbewahren und beim Update
   vergleichen. Nur so knnen Sie sicherstellen, da Sie nicht versehentlich
   ein altes Update lschen, obwohl es Dateien enthlt, die im Nachfolge-
   Update nicht enthalten sind.

   Seit P10x05.EXE wird zustzlich noch VLMUPx.EXE, u.U. auch noch
   WINDRx.EXE und NWDLLx.EXE erwartet. Ein DPMS-Update gibt es auch
   einzeln unter dem Namen DPMSUP.EXE, allerdings ist dieses Paket
   nicht so aktuell wie das Novell DOS 7 Update. Normalerweise wird
   fr PNW das sehr umfangreiche 'Novell Client Kit for DOS & Windows'
   (6 Disketten) nicht bentigt, da die wichtigsten Dateien fr DOS,
   Windows und PNW auch in den schon angesprochenen Updates enthalten
   sind. Im Einzelfall mag es dennoch sinnvoll sein, das komplette
   Client Kit zu besorgen (ehemals VLMKT1.EXE - VLMKT6.EXE fr VLM-
   Stufe 1.20B, seit 11/1996 nun VLM121_1.EXE - VLM121_6.EXE fr
   VLM-Stufe 1.21, fr TCP/IP mit PNW auch noch TCP16.EXE).
   Dort finden sich z.B. auch Message-Dateien in anderen Sprachen,
   Codeseiten-Dateien fr andere Lnder, ein paar VLMs mehr, etwas neuere
   RPL-Treiber, sehr viel mehr MLID-Treiber, auch fr SLIP und PPP.
   Achtung: Teilweise sind in den neueren Paketen aber auch Treiber
   weggefallen, z.B. findet sich der Treiber SLIP_PPP.COM in VLMKT6.EXE,
   nicht aber mehr im VLM121_?.EXE Paket.
   Derzeit (02/1997) ist das Client Kit bereits auf dem VLM-Stand 1.21
   (wie bei IntranetWare und NetWare 4.11), whrend VLMUP4.EXE auf dem
   VLM-Stand 1.20B war.

   Das recht neue Client32 Paket fr DOS/Windows (8 Disketten, z.B. in
   DWDEU_N2.EXE und DWDEU_L2.EXE - nicht zu Verwechseln mit dem bereits
   einige Monate lnger existierenden Produkt fr MS Windows95) enthlt
   eine Reihe zustzlicher Unicode-Dateien und allerhand DOS- und Windows-
   Netztreiber in erheblich neueren Versionen als noch in P10x05.EXE (z.B.
   LSL.COM, VNETWARE.386, usw.); gegenber VLM121_?.EXE scheint es aber
   keine aktuelleren Dateien mehr zu geben.
   Mchte man diese Treiber verwenden, sollte man sie allerdings unbedingt
   manuell mit NWUNPACK/PNUNPACK entpacken und installieren, da das bei-
   liegende INSTALL-Programm natrlich den neuen, wirklich sehr speicher-
   platzschonenden Client auf der Basis von NIOS.EXE installiert.
   Leider kann dieser sich bis auf 2 - 5 KByte auslagernde 32Bit-Client
   (ODI32/NIOS+NLMs) aber auer NetWare 2.xx, 3.xx und 4.xx nicht auch mit
   PNW 1.0 verwendet werden. Auf einem reinen Client-Rechner fehlt eine
   passende LOGIN-Mglichkeit auf einen PNW-Server, da PNWs NET.EXE nur
   mit VLM.EXE luft, VLM.EXE und VLMs aber nicht mit dem neuen NIOS.EXE;
   andere Tools erwarten PNW.VLM, das damit natrlich ebenfalls nicht zur
   Verfgung steht...
   Die Verwendung einzelner aktualisierter Dateien, sofern sie schon bei
   PNW 1.0 existierten, scheint hingegen auch mit einem Client auf der
   Basis von ODI/VLM+VLMs unproblematisch zu sein. Vielleicht hat ja jemand
   schon ausfhrliche Erfahrungen hiermit gesammelt?

   Jedenfalls lt Novell in diesem Bereich dem Benutzer nach wie vor
   viel Spielraum fr 'Experimente', welche Dateien aus welchen Paketen
   denn jetzt am besten zusammenpassen. ;-)

   Meistens funktioniert's trotzdem, aber eben nicht immer. Achten Sie
   also unbedingt auf das Dateidatum und besser die interne Versionsnummer
   (da das Datum teilweise nicht stimmt). Zur Ausgabe der internen
   Versionsnummern knnen Sie z.B. VERSION.EXE verwenden.


   ii. Derzeit aktuelle Updates:
   -----------------------------

   D70G15.EXE und P10G05.EXE sind die letzten Updates zu Novell DOS 7 bzw.
   Personal NetWare 1.0. Zustzlich brauchte man frher fr PNW VLMUP4.EXE,
   mit Windows auch noch WINDR3.EXE und NWDLL2.EXE. Mittlerweile sollte man
   stattdessen das Client-Kit VLM121_1.EXE - VLM121_6.EXE (VLM-Stand 1.21)
   verwenden, die wesentlich aktueller sind.

   Das Update D70G11.EXE sollten Sie trotzdem aufbewahren, da hier Dateien
   enthalten sind, die in spteren Updates wieder fehlen.

   P10G05.EXE (Januar 1995) enthlt einige Dateien (DPMS.EXE), die durch
   sptere Novell DOS Updates mittlerweile vllig berholt sind. Achten
   Sie darauf, da Sie die entsprechenden Dateien aus jngeren Novell DOS
   Updates nicht berschreiben.
   Mittlerweile gibt es auch von der Datei P10G05.EXE unterschiedliche
   Versionen: Die ltere Version enthielt das komplette Update-Paket,
   die mir bekannten aktuelleren Versionen (die offenbar keine neuen
   Fixes enthalten) sind erheblich kleiner (nur 200 - 300 KByte, statt ber
   500 KByte) und sollten daher ber das amerikanische Update P10U05.EXE
   installiert werden, das nach wie vor in vollem Umfang ausgeliefert wird.
   Am besten vergleichen Sie die Dateigre von P10U05.EXE und P10G05.EXE
   direkt beim Download; sollten sie sich um mehr als vielleicht 150 KByte
   voneinander unterscheiden, sollten Sie die einzelnen Dateien genauer
   untersuchen.

   Alternativ dazu gibt seit 1995 statt P10G05.EXE und den anderen
   NetWare Updates auch speziell fr PNW vorbereitete englischsprachige
   'automatisierte' Updates (PNWUPD.EXE fr DOS und PNWUPW.EXE fr
   Windows), sowie einen speziellen NET.EXE-Fix fr XTs (PNXTFX.EXE).
   Diese Pakete waren ursprnglich noch auf dem Stand von VLMUP2.EXE
   (spter VLMUP3.EXE), die derzeit erhltlichen Versionen sind aber
   bereits auf VLMUP4.EXE upgedatet worden. PNWUPD.EXE (04/1996) enthlt
   zwar einerseits eine mittlerweile uralte Version von DPMS.EXE (aus
   P10U05.EXE), andererseits aber auch eine neuere Version von NET.EXE
   (v1.05 statt v1.03, wie noch in P10U05.EXE), und erste Hinweise
   bezglich des Zusammenspiels mit MS Windows95!
   Offenbar werden die P10xyy.EXE Archive also nicht mehr weiter gepflegt.

   Zur Analyse von Kommunikationsproblemen in Netzen gibt es ein Paket
   namens COMCHK.EXE, das ein Analysewerkzeug enthlt.

   Fr Remote Program Load (RPL) (Booten von Diskless-Workstations) gibt es
   seit einiger Zeit auch noch ein Archiv namens RPLKT3.EXE (03/1996), das
   die Dateien ersetzt, die z.B. bei DR DOS 6.0 und Novell DOS 7/PNW 1.0
   beilagen. Auch die Dokumentation dazu ist etwas umfangreicher, wenn auch
   immer noch nichts fr Laien...

   Offenbar werden alle diese Dateien (ohne eigene Versionsnummer) still-
   schweigend upgedatet, so da man alle paar Monate berprfen sollte, ob
   es vielleicht eine neuere Version der Archive gibt. Dabei ist problema-
   tisch, da das Dateidatum auf den FTP-Servern in der Regel das Upload-
   Datum ist, das nicht unbedingt dem Erzeugungsdatum entsprechen mu.

   Novells Konventionen sind ber die letzten Jahre hinweg in einigen
   Punkten inkonsistent gewesen (neuere Dateidaten mit alten Dateiinhalten,
   gleiche Treiberdateien mit unterschiedlichem Datum, unterschiedliche
   Namenskonventionen, unterschiedliche Versionen auf unterschiedlichen
   FTP-Servern, Unterschiede zwischen landessprachlichen Versionen), so
   da ich hier nur 'ad hoc'-Erfahrungswerte mitteilen kann.

   Novell gibt auch eine eigene Sammlung von Tips & Tricks heraus, die
   ursprnglich dem FaxBack-System (Telefon-Nr. +1 (800) 228-9960 oder
   +1 (801) 429-3239) von Novells BBS entstammten, aber nun auch im
   Internet verfgbar sind:

    ND7TID.EXE
    PNWTID.EXE
   (DR6TID.EXE und NWLTID.EXE fr DR DOS 6.0 und NetWare Lite)

   Auch diese Archive werden ab und zu aktualisiert (was aber jetzt schon
   lange nicht mehr geschehen ist), sobald neue Dokumente verfgbar werden.
   Im Groen und Ganzen sind diese Archive uerst empfehlenswert, da sie
   von einfachen Fragestellungen (etwa: "Was ist DOS?", "Der Aufbau eines
   PCs", "Die verschiedenen Standards zur Speicherausnutzung") ber
   Beispielkonfigurationen und Antworten auf hufig gestellte Fragen bis
   hin zu ausfhrlichen Leitfden (etwa zur Kombination von Novell DOS 7 mit
   IBM OS/2 2.x+ (funktioniert bis auf systembedingte Einschrnkungen), fr
   Remote Booting von Diskless Workstations mit PNW, oder der Koexistenz von
   Novell DOS 7/PNW mit MS Windows95) sehr viele Problemstellungen rund um
   das gesamte System abdecken. Das Spektrum der ber WWW online abzu-
   rufenden TID-Reporte ist derzeit (05/1996) sehr viel umfangreicher, als
   die obigen Download-Pakete.
   In diesem Zusammenhang bietet Novell USA ber WWW die Mglichkeit, auch
   *selbst* TID-Reporte fr Novell zu verfassen. Novell gibt als Begrndung
   dafr an, da (auch) sie bemerkt htten, da manche Anwenderprobleme mit
   ihrer Software auch einfach an fehlender oder irrefhrender Dokumentation
   liegen, oder da manche Problemlsung sich ganz einfach den blichen
   Dokumentationsmglichkeiten entzieht, d.h. nur von den Benutzern in der
   Praxis gefunden werden kann...

   Zu Novell DOS 7 gibt es wohl noch eine ganze Reihe einfhrender Tutorials
   zu verschiedenen Themengebieten (MEM_TUT.EXE, STAC_TUT.EXE, TMGR_TUT.EXE,
   NWCH_TUT.EXE, DOPT_TUT.EXE, SEC_TUT.EXE, FLNK_TUT.EXE). Diese knnen per
   Modem von Novells BBS (USA) geordert werden (+1 (801) 221-5197 oder
   +1 (801) 225-4444), und sind anscheinend nicht auf den FTP-Servern im
   Internet zu finden.

   Auch zu PNW gibt es zwei Tutorials (DOSTUTOR.EXE und WINTUTOR.EXE), die
   auf einer Zusatzdiskette zu PNW liegen. Die blicherweise in Deutschland
   ausgelieferten Novell DOS 7 Original-Pakete (7 Disketten, etwa von Mail
   Elektronik) enthalten diese Diskette aber nicht, in OEM-Versionen (etwa
   von DataExpert) sind sie jedoch auf einer achten Diskette zu finden.
   Falls Sie diese Tutorials haben mchten, wenden Sie sich bitte an Ihren
   Novell-Hndler, der Sie Ihnen hchstwahrscheinlich kostenlos besorgen
   knnen wird.
   Seit 1997-02-03 knnen Sie die Tutorials zu PNW jedoch auch bei Caldera
   downloaden (PNWTUTOR.EXE):

    URL: http://www.caldera.com/dos/

   Seit einiger Zeit gibt es auch ein Paket, das aus den 3,5" Original-
   Installationsdisketten von Novell DOS 7 ein SETUP fr PNW ohne Novell DOS
   generiert. Dieses Paket heit:

    D72PNW.EXE     (sprich: "DOS 7 to PNW")

   und ist damit eine sehr kostengnstige Mglichkeit, an eine Personal
   NetWare Lizenz zu kommen (da Novell DOS 7 + PNW 1.0 inklusive Handbuch
   und Tutorial teilweise schon fr DM 15,- in Aktionsverkufen ber den
   Ladentisch geht.) Das gleichwertige separate Produkt PNW 1.0 war (und
   ist) gegenber dem Bundle mit Novell DOS 7 paradoxerweise schon immer
   teurer...
   Mit Caldera OpenDOS 7.01 erhalten Sie als Angehriger einer Ausbildungs-
   einrichtung, Student oder Schler jedoch Personal NetWare 1.0 kostenlos
   (siehe Kapitel I.3.).


   iii. Entpacken der Updates:
   ---------------------------

   Diese Archive sind selbstentpackend, was normalerweise besonders
   praktisch ist. Andererseits gibt es nicht wenige DOS-Rechner, die
   nicht genug freien Platz auf der Festplatte haben, um 'mal eben'
   ein paar MegaByte zur Ablage bereitzustellen. Oder es stellt sich die
   Situation, da Sie nur ganz bestimmte Dateien aus dem Update bentigen,
   etwa wenn Sie zum Vergleich der Sprachen eine Datei aus allen landes-
   sprachlichen Updates bentigen. Kein Problem: Rufen Sie die .EXE-Datei
   mit Option /? auf! Es erscheint ein Hilfeschirm, der alle Optionen des
   integrierten Archivprogramms erlutert.

   Um es kurz zu machen, ein Beispiel:

    D70G15.EXE -e -s c:\tmp command.com

   entpackt nur die Datei COMMAND.COM nach C:\TMP (evtl. statt -e auch -x
   angeben, siehe auch GETD70.BAT in Kapitel II.16.).

   Mchten Sie mit ARJ arbeiten, knnen Sie die .EXE-Datei auch einfach zu
   .ARJ umbenennen. ARJ kann darin enthaltene Dateien mit den blichen
   Optionen entpacken (innerhalb des Norton Commanders ist dies allerdings
   wegen des anderen Dateikopfes nicht mglich).


   iv. Hinweise zu den einzelnen Novell DOS 7 Updates:
   ---------------------------------------------------

   Bei Update 11 (1995-01-31) von Novell DOS liegen auch die Dateien
   INSTALL.EXE, SETUP.EXE und SETUP2.EXE dem Paket bei. Im Update 12
   (D70U12.EXE) und spter fehlen diese Dateien wieder, d.h. man sollte
   eine Kopie dieses Updates oder dieser Dateien aufbewahren (allerdings
   funktionierte auf meinem Testsystem die neue Fassung von SETUP2.EXE
   nicht, wenn man sie ber SETUP aufruft). Das Update 11 bringt alle
   Updates und Patches bis Anfang 1995 zusammen.

   Mit Update 12 (1995-02-17) wurden eine Reihe Schnheitsfehler beseitigt
   und die Speichermanager nochmals berarbeitet.

   Bei Update 13 (1995-05-08) wurde der Speichermanager nochmals ber-
   arbeitet (besonders im Hinblick auf DOS-Extender nutzende Applikationen
   wie Borland IDEs). Dieses Update ermglicht uerst stabil laufende
   Systeme. Mit diesem Update wurde auch eine berarbeitete Fassung von
   MEMMAX ausgegeben, mit der es auch wieder mglich ist, die Aktivierung
   der drei Speicherbereiche auch unter 'Sekundr'-Shells wie 4DOS.COM /P
   (ber COMMAND.COM /P) zu ndern (diese Mglichkeit war aufgrund damals
   bestehender Schwierigkeiten in einem frheren Update (9???) entfernt
   worden).

   Update 14 (1995-08-11, Englisch) bringt recht massive berarbeitungen
   aller Speichermanager und Utilities. EMM386 untersttzt nun auch
   Memory-Backfilling (zumindest bis in den Video-Speicher; AST EEMS
   wird aber wohl weiterhin nicht untersttzt, aber das gilt auch fr
   die allermeisten anderen DOS-Speichermanager) und UMB-Regions. Die
   Mglichkeiten fr Video-UMBs wurden erweitert.
   Leider stellten sich auf verschiedenen Systemen mit der aktuellen
   Version von DPMS 1.42 verschiedene Probleme ein, so da ich empfehle,
   diese Version nicht zu verwenden und stattdessen die alte aus Update 13
   weiter zu verwenden (oder Update 15 zu verwenden).
   Die Probleme zeigten sich z.B. auf verschiedenen Systemen (zwei alte
   286er ohne UMBs, aber mit Extended Memory (und HMA), und ein 486er)
   durch Absturz whrend der Initialisierungsphase.
   Auf zwei anderen Rechnern (386er) gab es EMM386-Schutzfehler whrend
   des Einloggens ins PNW-Netz oder spter.
   Dieses Paket enthlt noch die aktualisierten Dateien PRINT.COM,
   SETFIFO.EXE, TREE.EXE, XDEL.EXE und XDIR.EXE, die (wohl versehentlich)
   in der ersten Version des folgenden Updates 15 fehlen. Daher sollte
   man dieses Update aufbewahren, falls Sie nicht bereits das Update 15
   aus dem Januar 1996 haben.

   Update 15 (1995-12-05, 984.594 Bytes) lst die DPMS-Probleme durch
   ein weiteres Update (1.43) dieses Treibers. Ansonsten wurden einige
   nderungen an den Speichermanagern vorgenommen (EMM386 3.1 -
   eigentlich sollte es besser 3.10 heien -) und einige Fixes (z.B.
   SwitChar und <F5>/<F8>-Handling) und Grenoptimierungen in den
   Kernel-Dateien (IBMBIO.COM und COMMAND.COM) bewerkstelligt. Dabei
   wurde hhere Kompatibilitt zu MS-DOS angestrebt (DIR untersttzt
   jetzt auch Tausender-Separatoren, Medien-Seriennummer werden
   untersttzt). Das Update 15 ist durchweg zu empfehlen, mal davon
   abgesehen, da die Dateien PRINT.COM, SETFIFO.EXE, TREE.EXE, XDEL.EXE
   und XDIR.EXE aus unerfindlichen Grnden fehlen (und aus Update 14
   entnommen werden sollten).

   Es gibt mittlerweile auch eine Version von D70G15.EXE vom 1995-12-21 bis
   1996-03-01 (1.046.550 Bytes), die diese fehlenden Dateien und noch einige
   weitere Fixes (FCBs) enthlt. Da Novell in 07/1996 "DR DOS" an Caldera
   bergeben hat, drfte dies auch das letzte Update zu Novell DOS 7 sein,
   das von Novell zu erwarten war. Zwar sind selbst in dieser Release noch
   einige (meist reichlich an den Haaren herbeigezogene) Bugs enthalten
   (*Setzen* des undefinierten Landescodes 0 fhrt zum Absturz, UpCase von
   Zeichenketten der Lnge 0 fhrt zum Absturz u..), aber mir sind keine
   ernsthaften Praxisprobleme mit dieser Version bekannt (wenn, dann wrde
   ich in dieser Datei an den entsprechenden Stellen darauf hinweisen).
   Also eine runde Sache und sehr zu empfehlen.
   Caldera hat u.a. auch angekndigt, weiterhin Detailpflege an Nachfolge-
   produkten von Novell DOS zu betreiben und Caldera OpenDOS 7.01 wurde
   am 1997-02-03 freigegeben; nheres dazu in den Kapiteln I.3., I.4., I.5.
   und IX.11.


   v. Weitere Hinweise:
   --------------------

   INSTALL.EXE und SETUP.EXE sind bei Novell DOS identisch; je nachdem, wie
   die Datei genannt wird, erfllt sie aber einen andere Funktion:
   Heit die Datei INSTALL.EXE, so wird entweder ein System von den
   Installationsdisketten auf die Festpatte installiert oder es besteht die
   Mglichkeit, Boot-Disketten zu erzeugen, auch ohne, da man dafr unter
   Novell DOS gebootet haben mte.
   Dabei wird u.a. eine Datei SETUP2.EX_ als SETUP2.EXE auf die Festplatte
   kopiert und dort entpackt. Diese Datei wird dann spter aufgerufen.
   Durch INSTALL wird zwar das gesamte System (je nach Wahl mit PNW und
   Windows-Tools) installiert, jedoch nur sehr rudimentr eingerichtet.
   Leider kann man die Windows-Programme nicht installieren, wenn man kein
   Windows-Verzeichnis angibt. Auerdem mu man anscheinend zustzlich PNW
   installieren.
   INSTALL.EXE wird whrend der Installation in SETUP.EXE umbenannt.
   Nach der Installation mit INSTALL mu man den Rechner neu booten und
   kann dann durch Aufruf von SETUP mit der Feineinstellung fortfahren
   (das Security-System, PNW-Initialisierung und STACKER lassen sich nur
   ber SETUP aktivieren). Auch spter kann man SETUP zum ndern von
   Systemeinstellungen verwenden.

   Auf die Harddisk brauchen Sie also nur SETUP.EXE und SETUP2.EX_ zu
   kopieren. Fr den Fall einer Installation von den Original-Disketten
   bewahren Sie die neue Version von INSTALL.EXE auf. Die Datei
   SETUP2.EX_ ist noch gepackt und lt sich leider auch nicht mit
   EXPAND (von MS-DOS etc.) entpacken. Hierfr wird das Programm PNUNPACK
   von der Installationsdiskette 1 bentigt (Hilfe erhalten Sie mit
   PNUNPACK /?). Um das System zu vervollstndigen, knnen Sie bei dieser
   Gelegenheit die Dateien PNUNPACK.EXE und UNSECURE.EXE auch direkt auf
   die Harddisk kopieren (UNSECURE wird bentigt, wenn Sie wieder auf ein
   abgesichertes System zugreifen wollen - insofern ist es auf der Platte
   eigentlich unntz, aber auf diese Weise wird ein vollstndiges Backup
   des Systems erleichtert).

   Mchten Sie nur den PNW-Teil von Novell DOS 7 installieren, reicht
   es aus, die Novell DOS 7 Disketten auf die Festplatte zu kopieren
   und die Datei SETUP2.EX_ entsprechen obiger Prozedur zu entpacken
   und in SETUP.EXE umzubenennen. Nach dem Aufruf kann man PNW ohne
   Novell DOS 7 installieren (denn SETUP2 bernimmt die Feineinstellung
   und die Installation einzelner Features wie PNW, Security etc.,
   wohingegen INSTALL das Grundsystem bootfhig macht). Seit kurzem
   gibt es von Novell auch eine offizielle Lsung fr dieses Unterfangen.
   Nheres siehe Kapitel VI.8.

   Noch ein Hinweis: In einigen Computerzeitschriften wurden bestimmte
   Interrupts reklamiert, die Novell DOS 7, obwohl es sich vom API her
   als 6.0 ausgibt, noch nicht untersttzt. Einen groen Teil dieser Dinge
   habe ich mit Update 13-15 nachvollzogen und dabei herausgefunden, da
   zumindest jetzt ein Groteil dieser fehlenden Funktionen untersttzt
   wird (abgesehen von manchen proprietren APIs, die nur bestimmte
   Dienstprogramme betreffen und eigentlich nur vom jeweiligen Programm
   selbst sinnvoll genutzt werden knnen). Hier sind kaum Kompatibilitts-
   einschrnkungen zu erwarten, bzw. Applikationen, die auf solchen Dingen
   basieren, kann man getrost als 'nicht vollstndig kompatibel' zu DOS
   bezeichnen. Im Zweifelsfall sollte man die Interrupt-Liste von Ralf Brown
   in einer aktuellen Version zu Rate ziehen (s.o.).

                                                                             
  ---------------------------------------------------------------------------

  I.3. Novell DOS 7 Bug-Reporte/Feedback/Diskussionsforen: [97-04-23]
  ===================================================================

   Stichworte: Bugs, Reports, Novell European Support Center (ESC), EMail,
               CompuServe, Maiser, NOVELL-DE

   i. Bug-Reporte Personal NetWare (Novell):
   -----------------------------------------

   Der folgende Absatz bezieht sich nach der bernahme des ehemaligen DR DOS
   (zu dem auch Novell DOS zhlt) durch Caldera nur noch auf Personal
   NetWare, und nicht mehr auf Novell DOS 7 (fr Bug-Reporte zu Novell DOS
   beachten Sie bitte Abschnitt ii.):

   Wenn Sie selbst Bugs entdecken, schreiben Sie sie bitte auf und schicken
   Sie sie an die Administratoren der obigen Novell FTP-Server (eine bessere
   Anlaufstelle fr Bug-Reporte ist mir jedenfalls nicht bekannt). Die
   Informationen werden von dort weitergeleitet - zumindest habe ich
   meine bisherigen Reporte an diese Adresse geschickt und die jngsten
   Updates lassen erkennen, da meine Informationen tatschlich ihr Ziel
   erreicht haben... ;-)  Also z.B.:

    <ftp@ftp.novell.com>

    - Die Texte mssen hierfr natrlich in Englisch verfat werden.
    - Ca. seit Anfang des Jahres 1996 bekommt man offenbar bei dieser
      Adresse keine Empfangsbesttigung mehr (wie dies frher blich war),
      Reporte kommen aber auch nicht zurck und verschwinden hoffentlich
      nicht im 'Black Hole'...
      Ob es eine neue und bessere Anlaufstelle gibt, ist noch unklar.

   ber CompuServe und MSN soll es mglich sein, Bug-Reporte folgendermaen
   abzusetzen:

    GO NODESKTOP     in Library 1 des Novell Forums gehen
    Formular SPR.ZIP ausfllen und abschicken (evtl. auch GO NETWIRE).

   Wahrscheinlich kann man Bug-Reporte auch ber die "Kommentar"-Adressen
   der jeweiligen Web-Seiten absetzen, berprft habe ich dies noch nicht.

   Zumindest in den USA gibt es auch eine Mglichkeit, ber Novells BBS
   in Kontakt mit Entwicklern zu treten. Nheres ist unbekannt.

   Und was machen, wenn Sie keinen Zugang zu elektronischer Post haben?
   (soll's ja noch geben...)

   Fr dringende Probleme sollten Sie sich an den Novell European Support
   Center (ESC) in Dsseldorf wenden, die Adresse ist (Stand 06/1994):

    Novell Deutschland
    Monschauer Strae 12
    D-40549 Dsseldorf
    DEUTSCHLAND

    Tel.: +49 (211) 5631-0

   In den USA und Kanada gibt es einen interaktiven "Ask Novell" Service
   fr registrierte Benutzer, der aber wohl nicht fr Bug-Reporte zustndig
   ist. Man erreicht ihn ber die folgende Nummer:

    Tel.: +1 (800) 768-9771  (dort Option "3" fr PNW
                             oder Option "4" fr Novell DOS whlen)

   Mehr oder weniger durch Zufall habe ich auf dem Rckdeckel des
   Novell DOS 7-Handbuches die Adresse der Hauptniederlassung von
   Novell USA gefunden. Ich denke, notfalls ist auch diese Adresse
   eine Anlaufstelle:

    Novell, Inc.
    122 East 1700 South
    Provo, Utah 84606
    USA

    +1 (801) 429-7000  (Diese in den USA kostenlosen Servicenummern sind von
    +1 (800) 453-1267  Deutschland aus nur manuell ber einen Operator einer
                       US-Telefongesellschaft erreichbar und von hier aus
                       alles andere als kostenlos! Dies gilt auch fr die
                       andere 800 und 801 Nummern in diesem Kapitel!)

   Sie knnen die Bug-Reporte auch an mich senden, ich werde sie weiter-
   leiten, sofern sie mir aussagekrftig genug erscheinen.


   ii. Bug-Reporte DR DOS/Novell DOS/Caldara OpenDOS (Caldera):
   ------------------------------------------------------------

   Bug-Reporte fr Novell DOS 7, Caldera OpenDOS (auch im Zusammenspiel
   mit Personal NetWare) mssen in Zukunft an die ebenfalls in Provo
   ansssige Caldera Inc., der Firma von Bryan Sparks (der vorher ma-
   geblich an der Entwicklung des Personal NetWare 1.0 Servers beteiligt
   war) und Novell-Mitbegrnder Raymond J. Noorda (Novells CEO zu deren
   'DR DOS Zeiten' (1991-1994)), statt an Novell geschickt werden, da
   Novell nach immerhin 15 greren Updates (teilweise mit mehreren
   Sub-Updates) Anfang 1996 endgltig die Pflege von Novell DOS 7 ein-
   gestellt hat.

   Caldera Inc. (die auch einen kommerzielle Abkmmling des FreeWare-Unix-
   Betriebssystems Linux anbieten) haben in 07/1996 von Novell smtliche
   Rechte an den ehemaligen Digital Research Betriebssystemen bernommen
   und haben angekndigt, ein um Internet-Fhigkeiten und eine Reihe
   anderer Funktionen erweitertes 'Novell DOS' inklusive Personal NetWare
   unter dem neuen Namen Caldera OpenDOS wieder auf den Markt bringen zu
   wollen. Als erster Spro dieser Familie wurde das mit Novell DOS 7
   praktisch identische Caldera OpenDOS 7.01 am 1997-02-03 freigegeben
   und kann - fr Angehrige von Ausbildungssttten sowie fr Studenten und
   Schler kostenlos (!) - im Internet bezogen werden. Nachdem am 1997-04-21
   der unabhngigen DJGPP/OpenDOS-Entwicklergruppe eine Vorabversion der
   Quelltexte der OpenDOS-Systemdateien zur Ansicht gestellt wurde, folgte
   die offizielle Ausgabe der Quelltexte am 1997-05-05.
   Angefangen mit den Quellen des System-Kernels sollen Stck fr Stck
   smtliche Quelltexte von Caldera OpenDOS gefolgt von smtlichen
   vorherigen Digital Research Betriebssystemen im Internet ffentlich
   zugnglich gemacht werden, so da sich jeder (Firmen als auch Privat-
   personen) an der Weiterentwicklung von DOS beteiligen kann. Eine CD-ROM
   Fassung ist ebenfalls verfgbar. Nheres hierzu in der beiliegenden Datei
   OPENDOS.ANN, auf meinen Web-Seiten, sowie in Kapitel I.5. und IX.11.

   Auerdem hat Caldera die Antitrust-Prozesse gegen Microsoft wieder-
   aufgerollt, da Digital Research & Novell laut Calderas Aussagen einen
   Marktanteil von ber 20% im DOS-Bereich htten erzielen knnen, wenn
   der Monopolist Microsoft nicht, so die Anwlte der Caldera Inc.,
   "durch ungesetzliche Handlungen und ruberische Praktiken dem Wett-
   bewerb, dem Verbraucher und der Innovation" geschadet htte.

   Man darf gespannt sein... ;-)

   Nhere Hinweise hierzu und rund um Caldera OpenDOS finden sich auf:

    URL: http://www.caldera.com/         Startseite, auch Linux
    URL: http://www.caldera.com/dos/     speziell Caldera OpenDOS
    URL: http://www.caldera.co.uk/       UK Development Centre
    URL: http://caldera.co.uk/                   ""

    URL: http://www.delorie.com/opendos/ "DJ's OpenDOS stuff" enthlt
                                         eine inoffizielle FAQ von
                                         Alaric B. Williams
                                         <alaric@abwillms.demon.co.uk>
                                         und andere Hintergrund-Infos,
                                         die von DJ Delorie
                                         <dj@delorie.com>,
                                         dem Entwickler von DJGPP,
                                         zusammengestellt wurden.
    URL: http://www.deltasoft.com/       Inoffizielle OpenDOS-Homepage
                                         von Marek 'Mark' Habersack
                                         <grendel@ananke.amu.edu.pl>.
    URL: http://null.musc.edu/opendos/   "OpenDOS known bug list"
                                         von Paul W. Brannan
                                         <brannanp@musc.edu>.
    URL: http://www.pipo.com/plug/COD.html  Kommentare des franzsischen
                                         Clubs PLUG zu OpenDOS von
                                         Frdric Renet <fred@waw.com>
                                         und Vincent Renardias
                                         <vincent@waw.com>.
    URL: http://www.naf.cz/arachne/english.htm  ARACHNE, der zuknftige
                                         Web-Browser 'WebSpyder' fr
                                         OpenDOS der xChaos SoftWare
                                         von Michael Polak
                                         <xchaos@main.naf.cz>.

   Anlaufstellen u.a. fr Caldera OpenDOS, Novell DOS und DR DOS sind:

    <info@caldera.com>         Allgemeine Infos und Kontaktaufnahme
    <dos.support@caldera.com>  Support speziell fr OpenDOS
    <techinfo@caldera.com>     u.a. fr Hinweise bzgl. OpenDOS FAQ
    <bugs@caldera.com>         Bug-Reporte
    <comments@caldera.com>     Kommentare

    URL: http://www.caldera.com/problem_form.html Formular fr Bug-Reporte

   Wie schon frher, gilt auch jetzt noch mein privates Angebot, als
   Sammelstelle fr (ernsthafte und detaillierte) Bug-Reporte zu dienen,
   die ich dann weiterleiten werde. Weiterhin schwebt mir etwas wie eine
   'Caldera OpenDOS User & System Designer Group' vor, vielleicht hat ja
   jemand Anregungen...

   Auf meinen Web-Seiten finden Sie weitere aktuelle und interessante Links,
   z.B. zu anderen FreeWare-Programmen fr OpenDOS und Novell DOS.


   iii. Diskussionsforen:
   ----------------------

   Ein Diskussionsforum fr offene Fragen finden Sie evtl. in der deutschen
   Novell Mailing-Liste (die sich allerdings hauptschlich mit NetWare und
   nur am Rande mit anderen Novell Produkten beschftigt und sich wohl auch
   nicht mehr fr Calderas OpenDOS zustndig fhlen wird). Der derzeitige
   Moderator ist Klaus Arpe <Klaus.Arpe@etech.fh-hamburg.de>.

   Wenn Sie in dieser (weitestgehend deutschsprachigen) Mailing-Liste
   Novell DOS- oder Personal NetWare-Spezifisches diskutieren, verwenden
   Sie bitte als Subjekt-Krzel ein vorangestelltes "ND7:" bzw. "PNW:".
   Durch diese Konvention knnen die einzelnen Themen besser auseinander-
   gehalten werden und die Wahrscheinlichkeit ist grer, da Ihre Anfrage
   nicht in der Masse der anderen Anfragen untergeht.

   Bei der Mailing-Liste kann man sich folgendermaen anmelden:

    Mail-Adresse: maiser@pool.uni-mannheim.de
    Subject:
    Text: SUBSCRIBE NOVELL-DE

   Das Abmelden funktioniert wie folgt:

    Mail-Adresse: maiser@pool.uni-mannheim.de
    Subject:
    Text: UNSUBSCRIBE NOVELL-DE

   Die eigentliche Diskussion luft ber eine *andere* Mail-Adresse (was
   viele Newcomer immer wieder bersehen...), nmlich:

    Mail-Adresse: NOVELL-DE@pool.uni-mannheim.de
    Subject: ND7: Thema... (Beispiel)
    Text: ...

   Ein aus dieser Liste zusammengestelltes FAQ (Frequently Asked Questions)
   betreut Thomas Demmer <demmer@lstm.ruhr-uni-bochum.de> (enthlt derzeit
   allerdings keine Novell DOS- oder PNW-spezifischen Fragen):

    URL: http://www.lstm.ruhr-uni-bochum.de/nwfaq/faq.html
    URL: ftp://ftp.lstm.ruhr-uni-bochum.de/pub/netware/faq/faq.ps

   Fr das FIDOnet hat Stefan Braunstein (<sbraunst@t-online.de>,
   <sbaunst@aol.com>, FIDOnet 2:2476/709) ein FAQ zusammengestellt,
   das einige Novell DOS-/PNW- und NetWare Lite-Tips enthlt (etwa
   zur Kombination von PNW/NetWare Lite mit Windows 3.xx, WfW 3.11,
   Windows95 oder OS/2 2.xx und Warp 3):

    nwft_jmm.arj ist die ASCII-Version (J=letzte Jahresziffer, MM=Monat)
    nwfx_jmm.arj ist eine EXE-Version

    URL: ftp://allegro.biblio.etc.tu-bs.de/pub/novell/nwf?_???.arj
    URL: ftp://fnovbzs.tu-graz.ac.at./pub/novell/faq/nwf?_???.arj

   Dieses FAQ wurde von Jrg Napp <j.napp@hsp.owl.de> zu einem
   HTML-Dokument konvertiert und wird online angeboten:

    URL: http://royal.owl.de/~joerg/novell/faq

   Auch fr die amerikanische Novell Mailing-Liste gibt es ein FAQ von
   Floyd Maxwell <floyd@direct.ca>, das allerdings noch keine Novell DOS
   Themen enthlt (offenbar ist diese Adresse nicht mehr gltig (02/1997)):

    URL: ftp://netlab2.usu.edu/misc/faq.txt
    URL: ftp://ftp.salford.ac.uk/network/misc/novell.faq

   Zu Caldera OpenDOS existieren ebenfalls verschiedene Mailing-Listen.
   Zunchst die offizielle Mailing-Liste von Caldera:

    URL: http://www.caldera.com/mailing-lists/index.html
                                          .../Caldera-OpenDOS-Info.html

   Man kann sich dort wie folgt anmelden:

    Mail-Adresse: Caldera-OpenDOS-Request@caldera.com
    Subject:
    Text: SUBSCRIBE

   Das Abmelden funktioniert wie folgt:

    Mail-Adresse: Caldera-OpenDOS-Request@caldera.com
    Subject:
    Body: UNSUBSCRIBE

   Die eigentliche Diskussion luft in englischer Sprache auch hier ber
   eine andere Adresse ab, nmlich:

    Mail-Adresse: Caldera-OpenDOS@caldera.com
    Subject: Thema...
    Body: ...

   Weiterhin gibt es noch drei 'inoffizielle' Mailing-Listen zum Thema,
   gewartet von DJ Delorie <dj@delorie.com> (frher von Gene Buckle
   <geneb@wa.net>). Die Anmeldung erfolgt wie folgt:

    Mail-Adresse: listserv@delorie.com
    Subject: OpenDOS mailing list
    Body: SUBSCRIBE opendos
    oder  SUBSCRIBE opendos-developer
    oder  SUBSCRIBE opendos-support

   Die Abmeldung geschieht analog. Die Diskussion selbst luft ber
   <opendos@delorie.com>, <opendos-developer@delorie.com>, bzw.
   <opendos-support@delorie.com> ab. Die Zustellung ist auch in
   tglichen oder wchentlichen Intervallen mglich, hierzu gibt
   es auch ein praktisches Anmeldungsformular:

    URL: http://www.delorie.com/opendos/archives/subscribe.html

   Eine offizielle OpenDOS FAQ wird von Caldera herausgegeben:

    URL: http://www.caldera.com/tech-ref/opendos/faq/faq.html

   Diverse inoffizielle FAQs wurden oben schon erwhnt.

   Auerdem sind die englischsprachigen Usenet-Newsgroups wie z.B.
   URL: news:comp.os.msdos.programmer, URL: news:comp.os.msdos.misc oder
   URL: news:comp.os.msdos.applics sicherlich gute Anlaufstellen fr Frage-
   stellungen rund um jedes DOS, auch im Zusammenspiel mit Hardware, Windows
   und teilweise auch mit Netzen. Weitere Hinweise finden sich vereinzelt
   auch ber die blichen WWW-Suchdienste. Eigene Newsgroups fr OpenDOS
   sind geplant.

                                                                             
  ---------------------------------------------------------------------------

  I.4. Novell DOS 7 - eine (persnliche) Kurzkritik - mit Grabrede:
  ====================================================[97-04-12]===

   Stichworte: ber den Autor, Konzept DOS, Grenzen, Alternativen, Zukunft,
               Philosophie

   Vorbemerkung: Durch die jngsten, uerst interessanten Entwicklungen
                 bezglich der Zukunft von Novell DOS werden einige Passagen
                 dieses 'Stogebetes' im positiven Sinne etwas relativiert.
                 Durch die Ankndigungen von Caldera fhle ich mich in
                 meiner Meinung voll besttigt. Eine grndliche ber-
                 arbeitung dieser 'einsamen Predigt' wird vorgenommen,
                 sobald die Wnsche wirklich erhrt und Versprechen
                 eingelst wurden...
                 Sollte die Grabrede verfrht gewesen sein? ;-)    (09/1996)

   "Der Verfasser einer solch' gewaltigen Tips & Tricks Sammlung
   wird sich sicherlich etwas bei seiner Arbeit gedacht haben",

   werden Sie jetzt vermuten... ;-)

   Ganz recht. Aber trotzdem bin ich mit Novell in keiner Weise involviert,
   d.h. all dies ist aus rein persnlichem Interesse an einer mglichst
   leistungsfhigen DOS-Umgebung entstanden (quasi als entsprechend aufbe-
   reitetes 'Abfallprodukt' einer internen Dokumentation von Fragen und
   Antworten, die whrend meiner Arbeit mit dem System auftraten). Durch
   die Verffentlichung mchte ich meine Erfahrungen mit Ihnen teilen und
   bin auch auf Ihr 'Input' gespannt. Damit Sie sich ein grobes Bild machen
   knnen, ein paar Anmerkungen...

   Als hardware-orientierter 'Power-User' (oder eher 'Systemprogrammierer')
   und Netzwerkbetreuer (im Nebenjob) habe ich im Laufe der Jahre mit so
   ziemlich allen MS-DOS, PC-DOS und DR DOS Versionen auf unterschiedlich-
   sten Rechnern Erfahrungen gesammelt. Ich zhle zu den Unverbesserlichen,
   die eine komfortable Kommandozeile und trickreiche Mglichkeiten weit
   mehr schtzen als eine graphische Oberflche mit Maussteuerung, ganz
   einfach deshalb, weil ich die meisten Dinge damit viel prziser und
   schneller erledigen kann (zugegeben - nicht alles). Nicht, da Sie mich
   miverstehen: Graphische Oberflchen haben auch unbestrittene Vorteile,
   aber viele Bedienungsablufe in den 'real existierenden' Oberflchen sind
   derart unergonomisch in der Handhabung, da ich lieber ein paar (von mir
   aus auch kryptische, aber irgendwann doch gelufige) Befehle am Prompt
   tippe und der Computer dann meinen Anweisungen folgt, anstatt umgekehrt
   die permanente Entmndigung durch eine Oberflche zu ertragen, die einem
   aufzwingt, auf die Fenster zu *reagieren*, statt im ursprnglichen Sinne
   zu *agieren*. Das Beste wre ein ausgewogener Mittelweg: eine Fenster-
   oberflche fr graphische Anwendungen und Anfnger, ein leistungsstarker
   Prompt fr Profis und vor allem: mglichst hohe Performance auch auf
   leistungsschwcheren Rechnern...


   Nun aber zurck zum Thema:

   Natrlich darf man nicht bersehen, da das 'Konzept DOS' von seiner
   Basis her schon seit etlichen Jahren vllig ausgereizt scheint (z.B. die
   eigentlich irrwitzigen Mechanismen zur Minderung der akuten Speichernot
   unter DOS - fr DOS-Benutzer eine 'perverse' Selbstverstndlichkeit),
   genauso wie die zugrundeliegende Hardware-Architektur, die noch in der
   'Home-Computer-ra' entstand und alle seine absurden Versuche, sie auf
   den heutigen Bedarf aufzubohren. Kompatibilitt ber alles!

   Es gibt heute wesentlich bessere Konzepte im Hard- und Software-Bereich,
   allerdings sind sie bisher gegenber DOS/Windows basierten x86-PCs immer
   noch Nischenlsungen geblieben. Fr die DOS-Kommandozeile und fr viele
   der abertausend Programmlsungen gibt es bei Weitem noch keine Allround-
   Entsprechung in den neueren, auf den PC-Markt abzielenden Betriebs-
   systemen:

   - MS Windows 3.xx/ Bisher keine eigene Kommandozeile und damit fast
     MS Windows95     indiskutabel als Ersatz, hchstens als Ergnzung.
                      Dies hat sich mit MS Windows95, trotz mancher
                      Detailverbesserungen, bis auf den START-Befehl
                      eigentlich nicht gendert. Die DOS-Wurzeln wurden
                      zwar kaschiert (z.B. LOGO=1), sind aber nach wie
                      vor sehr deutlich erkennbar. MS Windows95 ist bei
                      Weitem noch kein vollstndiges 32Bit-Betriebssystem.
                      Auch die Realisierung des Multitaskings ist nicht
                      State-of-the-Art, obwohl es mit MS Windows95 schon
                      etwas besser als bisher geworden ist.
                      Die DOS-Box selbst hat zwar gegenber der von
                      MS Windows 3.xx zugelegt, andererseits ist das
                      integrierte MS-DOS 7 vom Leistungsumfang gegenber
                      MS-DOS 6.22 reichlich beschnitten. Eine der wenigen
                      Innovationen ist die durch die Ausfhrung unter
                      MS Windows95 mgliche Verlagerung mancher besonders
                      speicherfressenden Treiber in den Protected Mode und
                      etwas verbesserte Hochlade-Mglichkeiten; alles Dinge,
                      die Benutzer von Novell DOS 7 schon lange kennen (und
                      dort auch ganz ohne den Zwang zu Windows realisiert
                      sehen). Auerdem hufig recht labil und - immer noch -
                      konzeptionell undurchsichtig.
   - IBM OS/2 Warp    Wie MS Windows95 recht hohe Hardware-Anforderungen,
                      aber dafr gut durchdachtes Konzept, sauberes pre-
                      emptives Multitasking und mittlerweile sehr stabil.
                      Neben OS/2-Applikationen knnen auch Windows 3.xx
                      Anwendungen problemlos auf demselben Desktop ausge-
                      fhrt werden (auch mit Win32s). Bietet eigene
                      Kommandozeile plus gute DOS-Emulation sowie die
                      Mglichkeit, gleichzeitig beliebige 'echte' DOS-
                      Versionen (auch Novell DOS) unter OS/2 zu booten.
                      Ist zwar multiplattformfhig, aber derzeit sind alle
                      auer der Intel-PC-Version auf Eis gelegt. Die brand-
                      neue Version 4 "Merlin" vollzieht die neusten Er-
                      weiterungen von MS Windows95 nun nicht mehr auf
                      Binrcodeebene nach und geht jetzt eigene Wege (vgl.
                      DAPIE alias Open32), leider mit ungewisser Zukunft.
   - MS Windows/NT    Hochentwickeltes und ernstzunehmendes, aber auch sehr
                      leistungshungriges Betriebssystem mit Zukunft (Die
                      Release-Version 4 ist allerdings ab einer sinnvollen
                      Speicherbestckung sogar schneller als MS Windows95).
                      Technologisch zwar durchdachter als die anderen
                      Windows-Versionen, aber in manchen Punkten (z.B. WPS)
                      immer noch hinter IBM OS/2 angesiedelt und leider
                      vergleichsweise schlechte DOS-Emulation. Wird zwar
                      fr verschiedene Rechnerplattformen angeboten, aber
                      auch hier liegen einige Versionen auf Eis.
   - Linux            Offenes FreeWare-Unix-System, sehr interessant
                      und mittlerweile sehr ausgereift. Hat mit dem
                      Kernel 2.0 eigentlich alle Nachteile herkmmlicher
                      monolithischer Unix-Systeme in der Praxis berwunden
                      und die diesbezglichen Vorurteile widerlegt.
                      Bietet eine recht fortgeschrittene PC-Emulation
                      (DOSEMU) fr DOS, einen noch rudimentren Windows-
                      Emulator (WINE) und ist absolut multiplattformfhig
                      (die Urversion war allerdings nur fr 386er und hher
                      geplant, die uerst effektiv ausgereizt werden).
                      Multitasking-/Multiuser-Fhigkeiten und ein X-Window-
                      System sind fr Unix inzwischen selbstverstndlich.
                      Extrem flexible und umfangreiche Treiberuntersttzung.
                      Durch hohes Engagement der weltweiten aktiven Ent-
                      wickler- und Benutzergemeinde kurze Antwortzeiten
                      bezglich Erweiterungen, Fixes, etc.
                      Konzeptionelle Umgewhnung ist notwendig, aber fr
                      einen echten 'Massenmarkt' wohl noch etwas zu um-
                      stndlich in der Handhabung. In jngster Zeit haben
                      sich aber auch hier einschneidende Fortschritte
                      fr den Otto-Normal-Benutzer ergeben, auch gerade
                      durch den kommerziellen Linux-Abkmmling Caldera
                      OpenLinux bzw. dessen Vorlufer Caldera Network
                      Desktop der Caldera Inc., die in 07/1996 auch die
                      Rechte an DR DOS etc. von Novell bernommen haben.
                      Das geplante Caldera OpenLinux soll neben Suns WABI
                      (einer weitentwickelten Windows-Emulation) ber
                      DOSEMU auch OpenDOS, den Nachfolger von Novell DOS,
                      enthalten. Wird zunehmend zu einer ernsthaften
                      'Bedrohung' fr andere etablierte Systeme werden -
                      mit Recht.

   DOS in seiner bisherigen Form ist schon lange 'tot' - aber es wird uns
   in der einen oder anderen Art und Weise noch etliche Jahre begleiten.

   Allgemein akzeptiert ist die Tatsache, da die Entwicklung von MS-DOS -
   entgegen offiziellen Verlautbarungen - sptestens seit der Version 5 zu
   groen Teilen nur noch durch den Konkurrenzdruck durch DR DOS/Novell DOS
   fortgeschritten ist. Die meisten konzeptionellen Erweiterungen waren
   seitdem zuerst in DR DOS zu finden und wurden in leicht abgewandelter
   Form vom bermchtigen MS-DOS adaptiert.

   Hier ein uerst grober zeitlicher berblick:

     Datum:     Version:      Einfhrung verschiedener neuer Features:

     1984-1986  DOSPlus 1.2, 2.1x
     1987-1989  DR DOS 3.4x   ROMable; Festplatten > 32 MByte
                              (bis 512 MByte); GEM; INSTALL=; Pawrter;
                              Ganzseiten-Editor EDITOR; OEM-Versionen;
                              DBCS-Support vorbereitet
     04/1988    MS-DOS 4.0x   Festplatten > 32 MByte (2 GByte, FAT16);
                              INSTALL=; DBCS-Support
     08/1990    DR DOS 5.0    Hochlademglichkeiten (HIDOS=ON) inklusive
                              CDS; Kernel, einige Tools und ein Groteil
                              der DOS-Datenbereiche knnen sogar in die
                              HMA geladen werden; VIEWMAX; DBCS-Support;
                              Festplatten bis 2 GByte (FAT16); usw.
     03/1991                  Beginn der Arbeiten an DR DOS 'Buxton'
     06/1991    MS-DOS 5.0    ROMable; gegenber DR DOS vergleichsweise
                              eingeschrnkte Hochlademglichkeiten
                              (DOS=HIGH etc.); begrenzte Nutzung der HMA;
                              Prozeumschalter (nur in Verbindung mit
                              DOS-Shell); funktionsfhiges FAT16
     09/1991    DR DOS 6.0    Datenkompression (SUPERSTOR); NetWare Lite;
                              CONFIG.SYS SET= und andere Erweiterungen;
                              Boot-Mens; Prozeumschalter (TASKMAX),
                              *auch* in Kombination mit VIEWMAX; FILELINK;
                              usw.
     06/1992                  Beginn der Arbeiten an DR DOS 'Panther'
     10/1992    MS WfW 3.1    MS Windows for Workgroups 3.1
     03/1993    DR DOS 6.0    "Business Update" fr Windows 3.1; u.a. echte
                              CDS
     04/1993    MS-DOS 6.0    Datenkompression (DBLSPACE); CONFIG.SYS SET=;
                              Boot-Mens; INTERLINK
     Ende 1993  Novell DOS 7  US-Ausgabe; Personal NetWare; DPMS (DOS
                              Protected Mode Services) inklusive 32Bit-
                              Untersttzung, eigener DPMI-Server unter DOS;
                              preemptives Multitasking (TASKMGR+EMM386),
                              sogar bei gleichzeitigem Betrieb mehrerer
                              DOS-Extender-Applikationen; NWCACHE mit
                              adaptivem Cache; LASTDRIVE=32; fortge-
                              schrittene Datenkompression (STACKER), usw.
        1994    MS-DOS 6.2    Verbesserter SMARTDRV und sicherer DBLSPACE;
                              Wegfall vieler DOS-Utilities
     03/1994    Novell DOS 7  Deutsche Ausgabe des Betriebssystems
     03/1994    MS-DOS 6.21   ohne DBLSPACE
     05/1994    Update 4      Novell DOS 7
     08/1994    MS-DOS 6.22   nun mit DRVSPACE
     12/1994    Update 10     Novell DOS 7
     01/1995    Update 11     Novell DOS 7
     04/1995    Update 12     Novell DOS 7
     05/1995    Update 13     Novell DOS 7
     08-09/1995 Update 14     Novell DOS 7
     10/1995    MS Windows95  MS-DOS 7; endlich Hochlademglichkeiten von
                              CDS und ebenfalls Protected Mode DOS-Treiber,
                              allerdings nur unter Windows95; LASTDRIVE=32;
                              Long-Filenames; stark eingeschrnkter Code-
                              page-Support; Wegfall aller Zukufe und
                              vieler traditioneller DOS-Utilities
     12/1995    Update 15     erste Version des Update 15 zu Novell DOS 7
     01/1996    Update 15/2   letztes Update zu Novell DOS 7
     1996-07-23               Caldera bernimmt Novell DOS, DR PalmDOS,
                              DR DOS, DR Multiuser DOS, GEM und CP/M von
                              Novell.
     1996-09-10               Caldera kndigt OpenDOS an und will spter
                              auch die Quelltexte verffentlichen.
     1997-02-03  OpenDOS 7.01 Caldera gibt die englische Version
                              von Caldera OpenDOS 7.01 offiziell frei,
                              die allerdings noch fast identisch mit
                              Novell DOS 7 ist. Die Benutzung ist fr
                              Ausbildungssttten, Studenten, Schler sowie
                              fr Angehrige von caritativen oder religisen
                              Einrichtungen kostenlos!
     1997-05-05  OpenDOS 7.01 Offizielle Ausgabe der Kernel-Quelltexte
                              (M.R.S.) (Stand der Quellen von 12/1994,
                              damit kurz vor dem Novell DOS 7 Update 11)

   Gerechterweise mu man auch sagen, da es auch einige kleinere neue
   MS-DOS Features gibt, die Novell DOS leider nicht aufweist - wie die
   seit MS-DOS 6.22 und 7 bessere Multilingual-Untersttzung und einige
   gute Anstze im Ergonomiebereich - aber da hatte Novell DOS schon lnger
   die Nase vorn. Gut so. Konkurrenzdruck scheint das einzige Mittel zu
   sein, da kommerzielle Anbieter sich nicht auf ihren Lorbeeren ausruhen.
   Da es auch anders geht (nmlich mit Idealismus), zeigt das Linux-Projekt
   (und vielleicht bald das ebenfalls unter der "GNU General Public License"
   stehende FreeDOS, in Zukunft noch untersttzt durch Caldera OpenDOS,
   denn Caldera-Reprsentaten sehen in FreeDOS die grte 'noch lebende'
   Entwicklergemeinschaft fr hochkartige DOS-Betriebssystemtechnik und
   wollen von daher auch mit dem FreeDOS-Team zusammenarbeiten).
   Aus diesem Grund ist es auch uerst wichtig, da es auch zu Windows
   (und sei es noch so 'gut') eine starke Konkurrenz gibt. Dies erfordert
   meines Erachtens auch einen Bewutseinswandel bei den zustndigen
   Entscheidungstrgern, nmlich nicht nur kurzsichtig den vermeintlichen
   'Standard' zu sehen, sondern auch aktiv die Konkurrenz von Monopolisten
   zu untersttzen, um damit zum Vorteil aller Entwickler und Anwender einen
   wirklichen, d.h. stabilen und dokumentierten Standard und eine Weiter-
   entwicklung zu sichern. Was glauben Sie, wre aus MS-DOS geworden, htte
   es Digital Research und DR DOS nie gegeben (abgesehen davon, da MS-DOS
   1.xx sowieso ein in einigen interessanten Punkten erweiterter Clone von
   Digital Researchs CP/M war)? Oder: Knnen Sie (als Software-Entwickler,
   versteht sich) von sich behaupten, die Interna von MS Windows wirklich
   zu verstehen? (Falls ja: Wo haben Sie die Dokumentation her? Falls nein:
   Und warum nicht?)

   Dieses Problem wurde berdeutlich bei der Akzeptanz von DR DOS/
   Novell DOS. Jeder sprach davon; die Einfhrung von Novell DOS 7
   lste eine regelrechte Euphoriewelle aus: "Endlich eine echte
   Konkurrenz zum in den Dornrschen-Schlaf verfallenen MS-DOS, mit
   vielen zukunftsweisenden Ideen". Obwohl Novell DOS (im Gegensatz
   zu den Vorgngern zum ersten Mal) sogar auf recht breiter Basis
   in ffentlichen Einrichtungen und Instituten akzeptiert wurde (wohl
   auch wegen der NetWare-Anbindung) und ganz offensichtlich auf dem
   Wege war, MS-DOS in Zukunft starke Konkurrenz zu bieten, wurde die
   Weiterentwicklung schon recht bald nach diesem 'Aufbumen' einge-
   stellt (Bugfixes, Updates und die Auslieferung wurden endgltig erst
   im Frhjahr 1996 nach immerhin 15 greren Updates gestoppt). Dieses
   'Kippen' von NWDOS 7 geschah einerseits im Rahmen des schon ange-
   deuteten Managementwechsels bei Novell (der Novell-Mitbegrnder
   Raymond J. Noorda verlie Novell, um sich in 10/1994 an der Grndung
   von Caldera zu beteiligen, sein Nachfolger Robert J. Frankenberg trat
   in 08/1996 nach etlichen Turbulenzen in Novells Kursstrategie als CEO
   und Prsident zurck und ist nun von Joseph Marengi als Prsident und
   von Eric Schmidt als CEO abgelst), nach Insider-Infos aber auch in einer
   stillen bereinkunft mit Microsoft, die sich im Gegenzug weitestgehend
   aus dem Netzwerkbereich heraushalten wollten (wobei sich jeder selbst
   seinen Teil dazu denken mag).

   Obwohl Novell DOS 7 bei Weitem noch nicht als das 'ideale' DOS gelten
   kann, ist es meiner persnlichen Meinung nach auf gutem Wege gewesen,
   die beste Alternative zu werden. Die Kompatibilitt ist (im Vergleich
   zu DR DOS) nochmals stark verbessert worden, allerdings wurden
   zumindest in den ersten ausgelieferten Versionen noch nicht alle
   der neuen Systemaufrufe von MS-DOS untersttzt - aber selbst dies
   war fr die berwiegende Mehrzahl der Programme vllig unkritisch.
   Viele der Novell DOS 7 angelasteten Fehler waren bereits beim Er-
   scheinen der deutschen Ausgabe (einige Monate nach der US-Ausgabe)
   korrigiert.
   Das Erscheinungsbild machte auf mich zunchst einen uerst homogenen
   Eindruck, der erst im Laufe der Zeit etwas dadurch getrbt wurde,
   da bei der Einbindung von Fremd-Utilities und in der - trotzdem sehr
   guten - Dokumentation wohl doch unter groem Zeitdruck kleinere
   Nachlssigkeiten (bezglich der Konfigurationsdateien und des Benutzer-
   Interfaces) begangen wurden. Eine hypothetische Revision (etwa 7.1)
   htte solche kosmetischen Feinheiten beseitigen und sehr leicht einige
   der neusten 'oberflchlichen' Erweiterungen von MS-DOS 6.22 (und 7)
   (verbesserte landessprachliche Untersttzung, neue Codeseiten, neue
   KEYB Mglichkeiten, Untersttzung fr einige neue Druckertypen) der
   Vollstndigkeit halber hinzufgen knnen (interne Korrekturen sind im
   Rahmen der Updates mittlerweile weit gediehen), aber diese Chance wurde
   von Novell nicht genutzt. Ansonsten steht NWDOS 7 in seiner internen
   Realisierung meiner Meinung nach auf wesentlich sicheren Fen als
   MS-DOS (auch auerhalb der Bereiche Multitasking und NetWare), wie
   kleine Details (zum Beispiel in dieser Datei) immer wieder zeigen.
   Gleichzeitig ergibt es sich durch (sinnvolle) Abweichungen zwangslufig,
   da nicht jedes noch so unwichtige Detail zu 100% nachgebildet wurde.

   Es gab in den ersten Ausgaben wohl teilweise Probleme mit einigen ernst-
   haften Bugs und Inkompatibilitten, sowie einige Performance-Probleme mit
   seriellen Schnittstellen, dem Floppy- und CD-ROM-Zugriff und damit, da
   manche wirklich extrem unsauberen Applikationen (wie etwa manche Spiele)
   als ungerechter Kompatibilittstest herhalten muten. Eigentlich sind
   diese Applikationen im Sinne von DOS-Standards nicht 'bug-frei' - und da
   sie unter MS-DOS laufen, liegt eigentlich mehr an der jeweiligen Test-
   plattform der Entwickler (eben MS-DOS), als an Fehlern in Novell DOS.
   Zumindest potentiell steht solchen Programmen jedenfalls nichts im Wege,
   um unter Novell DOS 7 ausgefhrt zu werden. Jedenfalls bildet Novell DOS
   auch die undokumentierten Systemstrukturen des Kernels von MS-DOS zu
   95% und die API-Funktionen der Version 6 zu vielleicht 90% nach (je nach
   Standpunkt und Sichtweise etwas mehr oder gar mehr) und unterscheidet
   sich vom Original nur minimal in der Handhabung dieser Strukturen und
   Routinen (meist durch sinnvolle Erweiterungen). Diese Abweichungen sind
   nicht wesentlich grer als sie auch zwischen den einzelnen MS-DOS
   Versionen selbst existieren (als Extrembeispiele seien MS-DOS 4 und
   MS-DOS 7 genannt), daher liegen Kompatibilittsprobleme daran, da manche
   Entwickler einfach unzulssige Annahmen bezglich des Systems machen und
   ihre Software nur unter einer DOS-Version testen. Gleiches galt fr die
   Probleme mit frhen Versionen des DPMI-Supports, ganz einfach deshalb,
   weil die DPMI-Spezifikation 0.9 hier vieles offen lt und Novell es
   eben anders realisiert hatte als Microsoft). Auch zum gegenwrtigen
   Zeitpunkt gibt es noch vereinzelte Ungereimtheiten.
   Aber: Wieso fragt eigentlich niemand, warum MS-DOS keine der vielen
   zustzlichen Systemaufrufe von DR DOS/Novell DOS untersttzt?

   Meiner Meinung nach liegt vieles auch an der oben beschriebenen Ignoranz
   der restlichen Software-Industrie gegenber der internen Realisierung
   der Sonderfunktionen von DR DOS/Novell DOS, wie etwa Pawrter (manche
   Utilities meckern selbst in aktuellen Versionen immer noch angebliche
   Fehler in der Festplattenstruktur an, akzeptieren keine mit Semikolon
   eingeleiteten Pawrter in ihren Dateieingabemasken oder begrenzen Pfade
   auf maximal 67 Zeichen (wie unter MS-DOS von jeher und nun mit der
   Einfhrung der MS-DOS-typischen CDS auch bei Novell DOS 7) - eigentlich
   sehr peinlich fr deren Hersteller und nicht fr Novell, schlielich
   existieren Pawrter und berlange Pfade sptestens ab DR DOS 3.40 von
   1987), die Lschverfolgung (dto.), das Multitasking (Probleme mit
   alternativen Kommandoprozessoren); alles Dinge, die eigentlich relativ
   einfach in den Griff zu bekommen wren, wenn nur der entsprechende Wille
   dahinter stnde (mit der entsprechenden Erfahrung mchte ich sogar
   behaupten, da der dazu notwendige Aufwand sogar leicht von einigen
   enthusiastischen Hobbyprogrammierern erbracht werden knnte - in
   Ermangelung der Quelltexte bis zur bernahme von DR DOS durch Caldera
   aber leider unmglich...)

   Es stnden noch eine Reihe von Verbesserungen auf dem Wunschzettel des
   Power-Users und DOS-Fans. Im Rahmen des Multitaskings und Speicher-
   managements, als auch der Kommandozeilenflexibilitt lassen sich gerade
   durch die bisherigen Erweiterungen noch viele andere Dinge erahnen,
   wenn bereits angedachte Konzepte konsequent ber das ganze System
   durchgezogen wrden. Manchmal habe ich den Eindruck, da gerade die
   Umgehung der Mngel auf kuriosem Weg - unter DOS Gang und Gebe - trotz
   Beschrnkung der zugrundeliegenden Mittel und Mglichkeiten den DOS-
   Benutzer zum echten 'Fan' machen kann...
   Die Einlsung in irgendeinem anderen DOS ist wohl kaum noch zu erwarten,
   auer vielleicht im derzeit noch sehr rudimentren, aber schnell heran-
   wachsenden FreeDOS (dort wird auch ber einen multitaskenden Protected
   Mode DOS 32Bit-Kernel nachgedacht, der die einzelnen Treiber und
   Programme in virtuellen Maschinen laufen lassen knnte), denn ohne
   Konkurrenz wird sich wohl auch MS-DOS nur noch auf die Version 7 als
   Kompatibilittsbox unter MS Windows95 gerettet haben. Schade.

   Meiner Meinung nach ist auch heute noch trotz der massiven Verbreitung
   der Betriebssysteme mit graphischen Oberflchen der Markt fr DOS da
   und es besteht ein echtes Bedrfnis nach einer grndlich in allen Be-
   langen berarbeiteten 'Version 8', die vor allem in Richtung Flexibi-
   litt des Benutzer-Interfaces aufgewertet werden mte: Erweiterte
   Kommandozeile  la 4DOS und mit REXX-Support (und sei es auch als
   Ergnzung einer graphischen Benutzeroberflche), mehr Detail-Featurismus
   der Betriebssystem-Utilities, weiter verbesserte Landesuntersttzung
   (Qualitt und Quantitt), neue Netzwerkfunktionen besonders in Verbindung
   mit 'Plug-In' Datei-Systemen (HPFS, NTFS, VFAT, FAT32, etwas wie 'UNC'
   zum Navigieren im Internet und in lokalen Archiven), erweiterter
   Hardware-Support (z.B. hohe Textmodi auch mit Codeseitenumschaltung,
   Untersttzung fr neuere Drucker)...
   Es gibt einfach Milliarden PC-kompatibler Rechner in aller Welt, davon
   ein Groteil nicht leistungsfhig genug, um die neuen Ressourcenfresser
   zufriedenzustellen, aber prinzipiell leistungsfhig genug, um damit die
   tglichen Aufgaben zu erledigen. Ein Teil davon wird nur deshalb nicht
   mehr benutzt, weil mittlerweile passend aktualisierte Betriebssysteme
   und Anwendungen fehlen, aber nach aktuellen Umfragen sind auch heute
   noch (1997) 'zig Millionen 'alter' Rechner im harten Einsatz. Dies
   gilt erst recht fr die Lnder abseits unserer schnellebigen Industrie-
   nationen.

   Dies besttigt auch die starke Nachfrage nach Calderas OpenDOS 7.01,
   wo alleine in den ersten drei Tagen nach der Freigabe angeblich
   19.000 Downloads verzeichnet wurden, und dies, obwohl es in der
   Anfangszeit noch arge Probleme gab, da Calderas Internet-Server unter
   der Last fast zusammengebrochen wre.

   Das DOS irgendwann einmal nicht mehr weiterentwickelt werden wrde, ist
   absolut einsichtlich. Fr meine Begriffe ist Novells Entscheidung zum
   Kippen des noch bis in die CP/M-Zeit (1976) traditionell verankerten
   NWDOS 7 aber wenigstens eine komplette Major-Release zu frh gekommen.
   Vermutlich stehe ich mit dieser Ansicht unter den berzeugten NWDOS 7
   Benutzern nicht alleine da...

   [Und nun lesen Sie ruhig in Kapitel I.5. und IX.11. weiter... ;-) ]

                                                                             
  ---------------------------------------------------------------------------

  I.5. Caldera OpenDOS 7.01 - Erste Erfahrungen: [97-02-14]
  =========================================================

   Stichworte: Caldera OpenDOS, Update von Novell DOS 7, NWCACHE, PNUNPACK,
               NETWARS, NWDRAW, MLID-Treiber, Versionsnummernpolitik

   An dieser Stelle mchte ich - ganz kurz - erste Erfahrungen mit
   dem neuen Caldera OpenDOS 7.01 wiedergeben. Diese Version ist mit
   Novell DOS 7 praktisch identisch, so da Sie nahezu alle Fakten aus
   diesem Dokument auch auf dieses System anwenden knnen!

   Dabei wurden in Caldera OpenDOS 7.01 bereits die nderungen einiger
   Novell DOS 7 Updates eingearbeitet. Caldera OpenDOS 7.01 ist derzeit
   irgendwo auf dem Niveau vor Update 11 (von Januar 1995), d.h. die
   teilweise durchaus signifikanten nderungen und Erweiterungen, die
   bis zum Novell DOS 7 Update 15/2 (Januar 1996) 'unter's Volk gebracht'
   wurden, sind in Caldera OpenDOS 7.01 leider noch nicht enthalten
   (siehe Kapitel I.3.)!

   Wenn Sie ein gut gewartetes Novell DOS 7 System haben, gibt es also
   derzeit keinen Grund zum Wechsel auf Caldera OpenDOS, was sich aber
   sptestens dann ndert, wenn Caldera die restlichen Patches bernommen
   hat und - wie angekndigt - damit beginnt, neue Funktionen in Caldera
   OpenDOS einzubauen.

   Caldera OpenDOS 7.01 entspricht vom Lieferumfang dem englischen
   Novell DOS 7 System inklusive Novells Personal NetWare 1.0 (wobei
   hier bezglich der Updates hnliches gilt), mit STACKER und all den
   anderen praktischen Tools, allerdings ohne Search & Destroy von Fifth
   Generation und Fast-Backup von Fifth Generation/Symantec. Ansonsten
   liegen neue Fassungen von NWCACHE (siehe unten!) und PNUNPACK, sowie
   eine stark erweiterte Fassung von NETWARS und ein Konstruktions-Tool
   fr eigene Raumschiffe bei.
   Die MLID-Treiber der mitgelieferten Personal NetWare berschneiden sich
   erstaunlich wenig mit den Treibern aus aktuellen Novell-Updates (z.B.
   VLM121_?.EXE), die allerdings durch die Bank weg sehr viel aktueller
   sind. Falls Sie auf der Suche nach einem exotischen MLID-Treiber sind,
   sollten Sie also in jedem Fall das jeweils andere Paket durchforsten.

   uere nderungen bestehen lediglich aus Feinheiten wie genderten
   Namen ("Caldera OpenDOS" statt "Novell DOS"), neuen Variablen (etwa
   %OPENDOSCFG% statt %NWDOSCFG%), genderten Dateien (wie OPENDOS.INI
   statt NWDOS.INI oder OPENDOS.386 statt NWDOS.386) und einem anderen
   Installationsverzeichnis (C:\OPENDOS\ statt C:\NWDOS\).

   Die VER-Ausgabe und die COMMAND.COM Startmeldung melden

    "Caldera OpenDOS 7.01"

   wobei das ".01" hier lediglich hinten angehngt wurde (siehe bei VER
   in Kapitel II.11.).

   Vom API-Level unterscheidet sich diese erste OpenDOS-Version nicht
   von Novell DOS 7, d.h. sie enthlt nach wie vor den CP/M-BDOS-Kernel
   114 (72h) und entspricht der DOS-API-Ebene 6.0.

   Fr Benutzer anderer DOS-Betriebssysteme lohnt sich der Umstieg auf
   Caldera OpenDOS 7.01 mit Sicherheit, da auch die Novell DOS 7 Updates
   unter Caldera OpenDOS 7.01 laufen, wenn man zustzlich Variablen
   wie %NWDOSCFG% einrichtet und Dateien wie NWDOS.INI bereitstellt.

   Daher empfehle ich derzeit allen Umsteigern nach der Installation von
   Caldera OpenDOS 7.01 das Novell DOS 7 Update 15/2 D70U15.EXE oder
   D70G15.EXE (beide von Januar 1996), sowie das Personal NetWare Update 5
   P10U05.EXE (bei der deutschen Version P10G05.EXE in jedem Fall ber
   das englische Update 5 P10U05.EXE installieren!) plus VLM121_1.EXE
   bis VLM121_6.EXE einzusetzen. Diese Archive knnen Sie auf Novells
   Servern kostenlos beziehen, sofern Sie ber eine Novell DOS 7 oder
   Personal NetWare 1.0 Lizenz verfgen (siehe Kapitel I.2.). Nach dem
   Einrichten der oben erwhnten Variablen und Konfigurationsdateien, die
   einige der Novell DOS 7 Programme aus den Updates referenzieren,
   funktionieren diese Updates problemlos. Allerdings sollten Sie
   nicht die COMMAND.COM Versionen beider Betriebssysteme im laufenden
   Betrieb wechseln (etwa mit EXIT), dies kann zum Absturz fhren.

   Benutzer von Novell DOS 7, die vorerst noch nicht umsteigen wollen,
   knnen natrlich auch Calderas neue Versionen von NWCACHE (siehe
   unten!), PNUNPACK und NETWARS unter Novell DOS nutzen.

   Die Zukunft von DOS liegt so oder so mit Sicherheit bei Caldera OpenDOS!

   Es folgt eine bersicht ber den Stand der Versionsnummern vom
   englischen Caldera OpenDOS 7.01 (vom 97-02-03) mit einem optimal ge-
   warteten deutschen Novell DOS 7 System mit Update 15/2 (Januar 1996).
   Ein '+' gibt an, welche Datei aktueller ist (sofern man davon ausgehen
   kann, da die Versionsnummern inklusive aller Seitenlinien bezglich
   der Novell DOS 7 Patches nachgehalten wurden, was aber offenbar zumindest
   fr NWCACHE nicht gilt). Interessant ist, da derzeit nur NETWARS und
   evtl. auch PNUNPACK bei Caldera OpenDOS 7.01 in funktional neueren
   Versionen als noch bei Novell DOS 7 Update 15/2 vorliegen, aber sehr
   viele Programme aus den lteren Novell DOS Updates den Caldera OpenDOS
   Programmen noch um einige Unterversionsnummern voraus sind. Zu NWCACHE
   ist anzumerken, da die Version von Caldera OpenDOS 7.01 zwar die hhere
   Versionsnummer 1.02 trgt, aber immer noch den kleinen Fehler in der
   Statistikausgabe enthlt, der bei Novell DOS mit dem Update auf Version
   1.01 beseitigt wurde. Andere 'Verbesserungen' konnte ich derzeit noch
   nicht ausmachen: NWCACHE 1.02 kann nach wie vor keine CD-ROMs cachen
   (siehe Kapitel II.4.).
   Hier scheint sich also ein Wildwuchs der Versionsnummern anzubahnen,
   dem hoffentlich noch vor der nchsten Release von Caldera OpenDOS
   Einhalt geboten wird. Sonst wre das Chaos vorprogrammiert...

   Tabelle:

    Programm:            Novell DOS 7:  Caldera OpenDOS 7.01:
                         (Update 15/2)

     APPEND.EXE               1.00          1.00
     ASSIGN.COM               1.05 +        1.04
     ATTRIB.EXE               1.44          1.44
     BACKUP.COM               1.09          1.09
     CHKDSK.EXE               1.21 +        1.2
     CHOICE.COM               1.00          1.00
     COMP.COM                 1.07          1.07
     CREATE.COM               3.10          3.10
     CURSOR.EXE               1.01          1.01
     DEBUG.EXE                1.42 +        1.40
     DELPURGE.EXE             1.02 +        1.00
     DELWATCH.EXE             2.1           2.1
     DISKCOMP.COM             2.04 +        2.03
     DISKCOPY.COM             2.04 +        2.03
     DISKMAP.EXE              1.00          1.00
     DISKOPT.EXE              2.00          2.00
     DOSBOOK.EXE              2.00          2.00
     DOSKEY.EXE               0.01          0.01
     DPMI.EXE                 1.00          1.00
     DPMS.EXE                 1.43 +        1.3
     DRIVER.SYS               2.00          2.00
     EDIT.COM                 2.01 +        2.00
     EMM386.EXE               3.10/3.1 +    3.06
     EMMXMA.SYS               1.3           1.3
     EXE2BIN.EXE              1.01 +        1.00
     FASTOPEN.COM             1.00          1.00
     FC.COM                   1.03          1.03
     FDISK.COM                1.76 +        1.75
     FILELINK.EXE             3.01 +        3.00
     FIND.EXE                 1.47          1.47
     FORMAT.COM               2.06 +        2.05
     GRAFTABL.COM             1.01          1.01
     GRAPHICS.COM             1.01          1.01
     HIMEM.SYS                2.32 +        2.3
     JOIN.EXE                 1.00          1.00
     KEYB.COM                 2.12 +        2.09
     LABEL.COM                1.34          1.34
     LOCK.EXE                 2.01          2.01
     MEM.EXE                  1.11 +        1.08
     MEMMAX.COM               2.01 +        2.0
     MODE.COM                 1.27          1.27
     MORE.COM                 --            --
     MOVE.EXE                 1.03          1.03
     NETWARS.EXE              2.06          2.0  + (wohl eher 3.0!!!)
     NLSFUNC.EXE              3.03 +        3.02
     NWCACHE.EXE (1.01.1)     1.01 +        1.02 + ??? (siehe oben!!!)
     NWCDEX.EXE               2.81 +        2.50
     PASSWORD.EXE             2.00          2.00
     PNUNPACK.EXE             2.00          3.00 +
     PRINT.COM                1.21          1.21
     RECOVER.COM              1.02          1.02
     RENDIR.EXE               1.00          1.00
     REPLACE.EXE              1.47          1.47
     RESTORE.COM              2.02          2.02
     SCRIPT.EXE               1.04          1.04
     SECURITY.OVL/NWLOGIN.EXE 1.02          1.02
     SERNO.EXE                0.01          0.01
     SETFIFO.EXE              1.00 +        --
     SETVER.EXE               1.00          1.00
     SHARE.EXE                2.04 +        2.02
     SORT.EXE                 1.36          1.36
     SUBST.EXE                1.03 +        1.02
     SYS.COM                  1.37 +        1.36
     TASKMGR.EXE              2.02          2.02
     TOUCH.EXE                1.44          1.44
     TREE.COM                 1.61          1.61
     UNDELETE.EXE             2.01 +        2.00
     UNFORMAT.COM             1.01          1.01
     UNINSTAL.EXE             2.00          2.00
     XCOPY.EXE                1.52          1.52
     XDEL.EXE                 1.46          1.46
     XDIR.EXE                 2.06          2.06

     SERVER.EXE               1.23 +        1.20

                                                                             
  ###########################################################################
  ###########################################################################

  II. ALLGEMEINES:
  ================

  ---------------------------------------------------------------------------

  II.1. SwitChar-Support: [97-03-25]
  ==================================

   Stichworte: SwitChar, SWITCHAR=, Interrupts, PROMPT, Unix, AMIS, 4DOS

   i. SwitChar - Was ist denn das?
   -------------------------------

   Normalerweise mssen Parameter unter DOS mit '/' eingeleitet werden,
   viele Programme erlauben jedoch zustzlich noch '-' (oder '+', '\').
   Unter Unix werden Parameter normalerweise mit '-' eingeleitet, Pfadnamen
   enthalten dagegen '/' statt des unter DOS blichen '\'.
   Manche Programme weisen diese Parametereinleitungszeichen jedoch zurck
   und verwenden entweder festverdrahtet '/' oder - besser - eine interne
   Systemvariable namens SwitChar, die normalerweise ebenfalls '/' angibt.
   ber diese Funktion ist es mglich, das Parametereinleitungszeichen zu
   ndern und den individuellen Vorlieben oder der Aufruf-Syntax der
   Applikation anzupassen.

   Im Gegensatz zu den heutigen MS-DOS-Versionen untersttzt Novell DOS 7
   (wie auch FreeDOS, OS/2, DR DOS 3.41-6.0, Caldera OpenDOS 7.01, PTS/DOS,
   S/DOS und MS-DOS 2.00-4.xx) nach wie vor die sog. SwitChar-Funktion
   (INT21h/AX=3700h). Bei MS-DOS 2.00 gab es einmal (und bei PTS/DOS alias
   S/DOS gibt es noch) eine zugehrige CONFIG.SYS Direktive SWITCHAR=.
   CCI Multiuser DOS 7.22 Gold untersttzt die SwitChar-Funktion nicht.

   ber ein kleines Utility, das die Einstellung von SwitChar ndert, kann
   das System auf eine andere Behandlungsweise umgeschaltet werden (typisch
   fr solche Utilities ist z.B. das beiliegende SWITCHAR.COM).

   Auch bei MS-DOS 5.00+ kann man die SwitChar-Funktionalitt wieder nach-
   rsten, indem man ein spezielles TSR (ebenfalls namens SWITCHAR) von
   Ralf Brown <ralf@pobox.com> (aus dem Demopaket zu seiner AMIS-
   Spezifikation, z.B. URL: http://www.pobox.com/~ralf/files.html) ldt.

   Die aktuelle Einstellung kann man z.B. bei 4DOS mit SETDOS oder bei
   Novell DOS 7 COMMAND.COM (und DR DOS 5.0/6.0 COMMAND.COM, nicht aber
   bei DR DOS 3.41) ber einen Trick mit CD abfragen und mit der ermittelten
   Einstellung zur weiteren Verwendung eine Umgebungsvariable belegen
   (siehe auch MEM.BAT):

    SWC.BAT (siehe auch die beiliegende Datei, die evtl. aktueller ist):

     @ ECHO off > \dev\nul
       REM -----------------------------------------------------------------
       REM SWC.BAT  v2.07  Copyright (C) 1995-1997 by Matthias Paul
       REM Evaluates current SwitChar setting from system or %switchar%
       REM environment variable, using, if available, special features of
       REM DR DOS 6.0, Novell DOS 7, and Caldera OpenDOS COMMAND.COM and/or
       REM 4DOS/NDOS, if available. Returns result in environment variable
       REM %switch%. Should run on any DOS 3.3+. If SWC.BAT cannot determine
       REM the current SwitChar, it returns default SwitChar '/'.
       REM Last edit: 1997-04-11 -mp [Matthias.Paul@post.rwth-aachen.de]
       REM -----------------------------------------------------------------
       FOR %%x IN (swc.btm SWC.BTM) DO IF "%%x"=="%0" GOTO rename
       GOTO start
       :rename
       ECHO Warning: "SWC.BAT" must not be renamed to "%0"! Exiting...
       GOTO end
       :start
       IF ""=="%tmp%" SET tmp=%Temp%> \dev\nul
       IF NOT ""=="%tmp%" IF NOT EXIST %tmp%\nul MD %tmp% > \dev\nul
       BREAK on > \dev\nul
       IF EXIST %tmp%\swc.btm ECHO Warning: "%tmp%\swc.btm" is locked ...
                                 ... by another task. Waiting for release...
       :wait
       IF EXIST %tmp%\swc.btm GOTO wait
       BREAK off > \dev\nul
       IF NOT "4"=="%@Eval[2 + 2]%" GOTO no4dos
       ECHOS `SET `> %tmp%\swc.btm
       SETDOS | @ CALL FIND "SWITCH=" >> %tmp%\swc.btm
     @ CALL %tmp%\swc.btm > \dev\nul
       DEL %tmp%\swc.btm > \dev\nul
       FOR %%x IN (on ON On off OFF Off) DO IF "%%x"=="%batdbg%" ...
                                               ... BREAK %batdbg% > \dev\nul
       GOTO end
       :no4dos
       REM Check for undocumented feature of Caldera OpenDOS 7.01,
       REM Novell DOS 7, DR DOS 6.0 COMMAND.COM: If current SwitChar
       REM is not '/', the 1st '\' from CD/CHDIR and PROMPT $p path
       REM output is replaced by '/'. Since DR DOS 6.0 COMMAND.COM prior
       REM to updates 1992 did copy files with zero length, this should
       REM not be enabled for original DR DOS 6.0 COMMAND.COM of 1991.
       REM IF "DRDOS"=="%Os%" IF "6.0"=="%Ver%" GOTO drdos6
       IF NOT "NWDOS"=="%Os%" IF NOT "OPENDOS"=="%Os%" GOTO end
       :drdos6
       CD | CALL FIND "/" > %tmp%\swc.btm
       IF NOT EXIST %tmp%\swc.btm GOTO end
       BREAK on > \dev\nul
       IF EXIST %tmp%\swc.$$$ ECHO Warning: "%tmp%\swc.$$$" is locked ...
                                 ... by another task. Waiting for release...
       :wait2
       IF EXIST %tmp%\swc.$$$ GOTO wait2
       BREAK off > \dev\nul
       IF EXIST %tmp%\swc.btm COPY %tmp%\swc.btm %tmp%\swc.$$$ > \dev\nul
       IF EXIST %tmp%\swc.btm DEL %tmp%\swc.btm > \dev\nul
       IF EXIST %tmp%\swc.$$$ IF ""=="%switchar%" SET switch=-> \dev\nul
       IF NOT EXIST %tmp%\swc.$$$ SET switch=> \dev\nul
       IF EXIST %tmp%\swc.$$$ DEL %tmp%\swc.$$$ > \dev\nul
       :end
       IF ""=="%switch%" SET switch=%switchar%> \dev\nul
       IF ""=="%switch%" SET switch=/> \dev\nul
       REM To avoid a parsing bug in an older MS-DOS COMMAND.COM release
       REM

   Sobald ein anderes Zeichen als '/' eingestellt ist (blicherweise ein
   '-', mglich ist aber jedes beliebige Zeichen), signalisiert der PROMPT
   von Novell DOS 7 und DR DOS 5.0 & 6.0 COMMAND.COM (nicht aber DR DOS
   3.41) dies durch einen vernderten Schrgstrich in seinem $p Token,
   statt dem blichen

    c:\nwdos>

   fr ein PROMPT $p$g nun also

    c:/nwdos>

   (d.h. das erste Zeichen nach der Laufwerksangabe ist '/'). Die gleiche
   Vernderung zeigt sich auch bei Ausgaben des Befehls CD/CHDIR (z.B. wenn
   man CD ohne Parameter aufruft) und kann hier sogar sinnvoll fr eine
   automatische Erkennung in Batchjobs (wie oben) verwendet werden, da sich
   die Ausgabe von CD umleiten und mit FIND auswerten lt.

   Einen verdrehten Schrgstrich kann der Benutzer also als visuelle
   Erinnerung interpretieren, da Novell DOS COMMAND.COM nun neben '\' in
   Pfadangaben auch '/' zult. Mglich wird dies dadurch, da '/' nun
   eben nicht mehr als Parametereinleitungszeichen verwendet wird. (Auf
   API-Ebene ist diese Unterscheidung nicht notwendig. Pfade knnen von
   jeher sowohl mit '/' als auch mit '\' angegeben werden).
   Gleichzeitig mssen aber alle Parameter mit dem nun eingestellten
   Parametereinleitungszeichen beginnen. Falls also SwitChar auf '-'
   eingestellt ist, mssen alle Parameter mit '-', statt mit '/' anfangen.

   Soweit bisher getestet, untersttzen nahezu alle externen Novell DOS 7
   Programme (zumindest die wichtigen und hufig verwendeten, bis auf
   EXE2BIN und MEMMAX, und ab Update 15 auch alle COMMAND.COM-internen
   Kommandos) diese Umschaltung und ndern bis auf wenige Ausnahmen
   (eben z.B. die internen Befehle) sogar die entsprechende Ausgaben
   der Hilfeschirme (die bei SwitChar=- natrlich mit -? aufgerufen
   werden. ;-)
   Problematisch ist es nur, wenn der SwitChar zwar untersttzt wird,
   aber ein bestimmter Parameter dadurch mehrdeutig wird (etwa XDIR,
   XCOPY mit dem -H Parameter, der versteckte Dateien ausschlieen soll,
   in Verbindung mit SwitChar=- aber mit -H fr Hilfe kollidiert).
   In solchen Fllen mssen Sie entweder genau darauf achten, wo der
   Parameter steht (ein Hilfeparameter sollte an erster Position stehen,
   andere Parameter hinten), oder man mu auf SwitChar=/ zurckschalten.
   Siehe die Befehlsbersicht weiter unten. (Bei DR DOS honorieren die
   meisten externen Utilities ebenfalls SwitChar, jedoch COMMAND.COM
   offenbar nicht.)

   Anscheinend wurde die Mglichkeit des variablen SwitChar ausgerechnet
   bei COMMAND.COM selbst 'vergessen'. In der Aufruf-Syntax von COMMAND.COM
   wurde der SwitChar-Support integriert, aber die Hilfeschirme aller
   internen Befehle von COMMAND.COM mssen weiterhin mit /? aufgerufen
   werden, auch wenn der SwitChar verstellt ist (getestet mit Update 15).
   Andererseits wrde es auch neue (lsbare) Probleme aufwerfen, wenn auch
   die Hilfeschirme SwitChar-abhngig wren.

   Diese undokumentierte Mglichkeit kann fr manche Belange (insbesondere
   fr an die Unix-Konventionen Gewhnte) praktisch sein, da aber nicht alle
   Fremdprogramme diese Mglichkeit untersttzen, ist der Nutzen begrenzt.

   Aufruf an alle Programmierer:

   Bitte untersttzen Sie in Ihren Programmen die SwitChar-Funktion, indem
   Sie den entsprechenden Interrupt nach der aktuellen Einstellung abfragen,
   oder wenigstens die gngigsten Alternativen ('/' und '-') untersttzen.


   ii. bersicht ber unterschiedliche SwitChar-Untersttzung:
   -----------------------------------------------------------

   Da die einzelnen Novell DOS Kommandos leider hchst unterschiedlich
   auf einen vernderten SwitChar reagieren, hier eine bersicht...

   Symptome:

    -  (1) Akzeptiert 'festverdrahtet' nur '/' als Parametereinleitung
    +  (2) Akzeptiert immer '-' und '/' als Parametereinleitung
    +  (3) Pat sich exakt an den aktuellen SwitChar an
    ++ (4) Pat sich an einen SwitChar an, akzeptiert aber immer auch
           noch '-' und '/' (Abweichungen mglich, z.B. beliebige Zeichen,
           oder auch gar kein SwitChar)
    -  (5) Hilfeschirm nur mit /? (andernfalls siehe oben)
    -  (6) Hilfeschirm zeigt immer '/' an (Schnheitsfehler, unkritisch)
    +  (7) Hilfeschirm pat sich teilweise an aktuellen SwitChar an
    ++ (8) Hilfeschirm pat sich komplett an den aktuellen SwitChar an
    +  (9) Konfliktfreie Doppeldeutigkeiten bei gleichnamigen SwitChars
           wie '-' und '+'
    - (10) Unlsbare Doppeldeutigkeiten bei gleichnamigen SwitChars wie
           '-' und '+'

   Tabelle fr Aufruf-Syntax (Novell DOS 7 Kommandos, unvollstndig):

    Kommandos:          Compiler:    SwitChar-Verhalten:
                                     vor Update 15   Update 15

    COMMAND.COM Aufruf  (ASM???)                     +3 -6
    COMMAND.COM interne Kommandos    -1 -5 -6        +3 -5 -6
    4DOS.COM    zum Vergleich (Helpverhalten unterschiedl.) +3 -6 -10

    APPEND.EXE          (ASM)                        -1 -5 -6 -10
    ASSIGN.COM          (BC++91)                     +3 ++8
    ATTRIB.EXE          (BC++91)                     +3 ++8 -10
    BACKUP.COM          (BC++91)                     +3 -6
    CHKDSK.EXE          (BC++91)                     +3 -6
    CHOICE.COM          (BC++91)                     +3 -6
    COMP.COM            (BC++91)                     +3 +7
    CREATE.COM                                       -1 -5 -6
    CURSOR.EXE          (BC++91)                     -1 -5 -6
    DCONVERT.COM, DCONVRT2.EXE                       +2 ++4 (alles) ??
    DEBUG.EXE           (ASM)                        +2 ++4 (alles) ??
    DELPURGE.EXE                                     +2 ++4 (alles) +9
    DELWATCH.EXE                                     -1 -5 -6
    DISKCOMP.COM                                     +3 -6
    DISKCOPY.COM                                     +3 -6
    DISKMAP.EXE                                      +2 -6
    DISKOPT.EXE                                      +3 -6
    DOSBOOK.EXE                                      +3 ++8
    DOSKEY.EXE                                       +3 ++8
    DPMI.EXE                                         -1 ++8
    DPMS.EXE                                         +2 -6
    EDIT.COM                                         +2 +7
    EMM386.EXE                                       +2 ++4 (alles)
    EXE2BIN.EXE                                      -1 -5 -6
    FBX.EXE                                          +2 ++4 -6
    FC.COM                                           +3 ++8
    FDISK.COM                                        +3 -6
    FILELINK.EXE                                     +3 ++8
    FIND.EXE            (BC++91)                     +3 ++8
    FORMAT.COM          (BC++91)                     +3 +7
    GRAFTABL.COM                                     -1 -5 -6
    GRAPHICS.COM                                     -1 -5 -6
    JOIN.EXE                                         +2 ++4 (alles) -6
    KEYB.COM                                         -1 -5 -6
    LABEL.COM                                        +3 ++8
    LOCK.EXE                                         +2 ++4 (alles) -6
    MEM.EXE                                          +3 ++8
    MEMMAX.COM                                       -1 -5 -6
    MODE.COM                                         -1 -5 -6
    MORE.COM                                         -1 -5 -6
    MOVE.EXE                                         +3 ++8
    NETWARS.EXE                                      -1 -5 -6
    NLSFUNC.EXE                                      -1 -5 -6
    NWCACHE.EXE                                      -1 -5 -6
    NWCDEX.EXE                                       +3 -6
    PASSWORD.EXE                                     +3 ++8
    PNUNPACK.EXE                                     +3 -6
    PRINT.COM                                        +3 ++8
    RECOVER.COM                                      +3
    RENDIR.EXE                                       +3 -6
    REPLACE.EXE                                      +3 ++8 ??
    RESTORE.COM                                      +3 ++8
    SCRIPT.EXE                                       -1 -5 -6
    SDRES.EXE                                        +2 -6
    SDSCAN.EXE                                       +2 -6
    SERNO.EXE                                        +3 -6
    SETUP.EXE                                        -1 -5 -6
    SETVER.EXE                                       +3 ++8
    SHARE.EXE                                        -1 -5 -6
    SORT.EXE                                         +3 ++8
    SUBST.EXE                                        +3 +7
    SYS.COM                                          +3 -6
    TASKMGR.EXE                                      +2 -6
    TOUCH.EXE                                        +3 ++8
    TREE.COM                                         +3 ++8
    UNDELETE.EXE                                     +2 ++4 (alles) ++8
    UNFORMAT.EXE                                     +2
    XCOPY.EXE           (BC++91)                     +3 ++8 -10??
    XDEL.EXE            (BC++91)                     +3 ++8
    XDIR.EXE            (BC++91)                     +3 ++8 -10

                                                                             
  ---------------------------------------------------------------------------

  II.2. Konfigurationsdateien CONFIG.SYS und AUTOEXEC.BAT umgehen:
  ===================================================[96-01-03]===

   Stichworte: Booten, <F5>, <F8>, CONFIG.SYS, SWITCHES=/N, DBLSPACE,
               DRVSPACE

   Wie MS-DOS 6.xx bietet nun auch Novell DOS 7 eine Mglichkeit, die
   Konfigurationsdateien CONFIG.SYS und AUTOEXEC.BAT zu umgehen, um z.B.
   ein absolut minimales Wartungssystem hochzuziehen, wenn ein neuer
   Treiber das bliche Booten verhindert.

   Wenn Sie whrend oder vor der zwei Sekunden andauernden Meldung
   'Starten von DOS...' die Taste <F5> (oder das gleichwertige <Ctrl>+<F5>)
   drcken, werden die CONFIG.SYS und AUTOEXEC.BAT Dateien komplett
   bergangen. Dabei unterbleibt beim Disketten-Boot jeglicher Zugriff
   auf die Festplatte, d.h. evtl. Boot-Probleme mit noch nicht initiali-
   sierten IDE-Festplatten sollten damit umgangen werden knnen (ohne
   <F5> hngt u.U. der Rechner beim ersten Zugriff auf eine ungltige
   Partitionstabelle - bei jeder DOS Version) (eine Lsung dieses Boot-
   Problems ist z.B. die Option FDISK "Master-Ladesatz schreiben",
   siehe Kapitel II.4.).

   Wenn Sie stattdessen einen Einzelschrittbetrieb fahren mchten und
   wie mit '?' vor jedem Befehl gefragt werden wollen, ob Sie ihn auch
   wirklich ausfhren mchten, drcken Sie stattdessen die Taste <F8>
   (bzw. <Ctrl>+<F8>).
   Diese Mglichkeit lt sich auch prima zum Debuggen komplexer CONFIG.SYS
   Dateien benutzen. Mchte man den Ablauf nur genau verfolgen, ohne ins
   Geschehen einzugreifen, ist das stndige Drcken auf die Ja-Taste sehr
   lstig. Mit den undokumentierten Mglichkeiten von TIMEOUT= und YESCHAR=
   kann man jedoch einen automatischen Scroll-Effekt erzielen:

    TIMEOUT=1,J
    YESCHAR=J          (mehr dazu in Kapitel III.1.)

   Zurck zum Thema:

   Bei MS-DOS knnen Sie im Einzelschrittbetrieb (<F8>) jederzeit mit <F5>
   alle restlichen Eintrge von CONFIG.SYS und AUTOEXEC.BAT umgehen. Dies
   ist mit Novell DOS nicht mglich. Auerdem knnen Sie bei MS-DOS die
   beiden Tasten auch noch whrend der Anzeige eines Boot-Mens drcken.
   Diese Mglichkeit gibt es bei Novell DOS ebenfalls nicht.

   Ob die erweiterten Mglichkeiten <Ctrl>+<F5> und <Ctrl>+<F8>, die bei
   MS-DOS auch DBLSPACE bzw. DRVSPACE umgehen, bei Novell DOS auch arbeiten,
   wurde nicht berprft (auch nicht, ob STACKER sie untersttzt), es ist
   jedoch wahrscheinlich der Fall (siehe auch Kapitel II.6.). Innerhalb
   IBMBIO.COM werden sie jedenfalls genauso wie <F5> und <F8> behandelt
   (und deshalb hier auch nicht weiter erwhnt).

   Neben <F5> kann die Abarbeitung bei Novell DOS auch durch Drcken der
   <Shift>-Taste umgangen werden (was einen Vorteil hat: Die <Shift>-Taste
   lt den Tastaturpuffer auch bei dauerhaftem Druck nicht berlaufen.
   Dadurch unterbleibt das lstige Piepsen).

   Der undokumentierte CONFIG.SYS Schalter SWITCHES=/N von MS-DOS wird
   auch bei Novell DOS (zumindest ab Update 13) ausgewertet. Damit kann
   die Behandlung von <F5> und <F8> unterbunden werden. Bei Novell DOS
   ist aber generell auch die Position der CONFIG.SYS Direktiven in dieser
   Datei ausschlaggebend. Je nachdem, wo Sie also SWITCHES= platzieren,
   knnen unterschiedliche Dinge passieren. Wenn Sie das Verhalten von
   MS-DOS nachbilden wollen, mssen Sie diese Anweisung in die erste
   Zeile der CONFIG.SYS Datei schreiben. Nheres zu diesem Phnomen siehe
   Kapitel III.1. Mit Update 15 hat es einige Fixes bezglich des <F5>/<F8>-
   Handling gegeben; ob darunter auch dieses Phnomen fllt, ist noch
   nicht berprft.

   Ab Update 15 wird eine aktivierte <F8>-Behandlung - wie bei MS-DOS -
   ber die neu eingefhrte Option COMMAND.COM /Y an den Kommandoprozessor
   weitergegeben (siehe Kapitel II.11.), vorher wurde offenbar ein anderes
   Verfahren verwendet.

   Das erweiterte Verhalten, das mit MS-DOS 7 eingefhrt wurde, kann das
   1,5 Jahre frher eingefhrte Novell DOS 7 natrlich noch nicht kennen.

                                                                             
  ---------------------------------------------------------------------------

  II.3. CD-ROMs und Cache: [97-04-02]
  ===================================

   Stichworte: CD-ROM, NWCDEX, MSCDEX, NWCACHE, SMARTDRV, DPMS, Speicher

   Dieser Abschnitt geht auf einige Besonderheiten des Cache- und CD-ROM-
   Supports unter Novell DOS 7 ein und stellt Alternativen und Workarounds
   vor, wie Sie bestimmte Probleme vermeiden knnen.

   Statt dem Programm MSCDEX liefert Novell ein Programm namens NWCDEX mit
   (unbedingt die aktuelle Version 2.81+ aus Update 15 verwenden).
   Dieses Programm bietet die gleichen Funktionen wie MSCDEX, allerdings
   braucht es selbst bei maximaler Gre der Puffer nur 7 KByte im ersten
   MegaByte. Dieser Teil kann auch komplett hochgeladen werden, sofern
   whrend der Initialisierung des Treibers mehr als 85 KByte freier
   Speicher in den UMBs verfgbar sind. Mit anderen Worten: NWCDEX mu
   sich erst mal komplett dort einnisten knnen! Danach kann sich NWCDEX
   unter Benutzung von DPMS bis auf 7 KByte ausgelagern (der DPMS-Treiber
   selbst bentigt ca. 1 KByte im konventionellen Speicher). DPMS arbeitet
   auch mit MS-DOS/PC-DOS, so da der Wechsel von MSCDEX (braucht 16 KByte
   nach Auslagerung) zu NWCDEX auch fr MS-DOS Benutzer sinnvoll sein kann.
   Zu PC-DOS 7 wird ebenfalls ein DPMS-Treiber ausgeliefert und auch der mit
   manchen TSRs, Netz-Clients und BIOSen ausgelieferte Protected Mode
   TSR-Server CLOAKING.EXE von Helix Software untersttzt undokumentiert
   das API von DPMS, ja sogar PTS/DOS (alias S/DOS) scheint DPMS benutzen
   zu knnen, so da sich dieser Standard langsam etabliert (siehe auch
   Kapitel II.4. bei DPMS).

   (Weitere interessante Hinweise speziell zur Installation und Optimierung
   von NWCDEX finden sich in Kapitel II.4. bei NWCDEX.)

   Statt SMARTDRV bietet Novell DOS den Cache NWCACHE, der bei subjektiv
   besserer Performance und Stabilitt mehr Funktionalitt bietet. Unter
   anderem kann er bei Bedarf auch DOS-Programmen Speicher ausleihen
   (SMARTDRV kann dies nur bei MS Windows), bietet verzgertes Schreiben,
   verwendet adaptive Cache-Strategien und er untersttzt wie NWCDEX
   ebenfalls DPMS.

   Ein direkter Vergleich (ja, SMARTDRV funktioniert als eines der wenigen
   MS-DOS Programme auch unter Novell DOS, wohl, weil es auch bei MS Windows
   beiliegt) brachte folgendes zutage:

                  SMARTDRV   NWCACHE

   bis 640 KByte  16 KByte   0 KByte (1 KByte fr DPMS)

   UMBs           12 KByte   16 KByte + 5 KByte
                             (16 KByte ist der Maximalwert des 'voraus-
                             schauenden' Puffers, der bis auf 4 KByte
                             reduziert werden kann)

    via DPMS          ---    restlicher Code ausgelagert.
                             (Ohne DPMS bentigt NWCACHE mindestens 10 KByte
                             konventionellen Speicher, also immer noch
                             weniger als SMARTDRV. Bei Verwendung von XMS
                             statt EMS steigt ohne DPMS auch der bentigte
                             Basisspeicher mit der Gre des Caches um
                             einige KiloByte an.)

   Das bedeutet, da NWCACHE bei sinnvoller Konfiguration locker 7 KByte
   kostbaren Speicher weniger bentigt und obendrein berhaupt keinen
   konventionellen Speicher verwendet. (Es ist u.U. mglich, da sich
   SMARTDRV in anderen Konfigurationen ebenfalls hochladen kann.)

   Ein Nachteil sei allerdings nicht verschwiegen:

   NWCACHE kann - entgegen anderslautenden Meldungen - derzeit keine
   CD-ROMs cachen (SMARTDRV kann das auch erst in der neusten Versionen zu
   MS-DOS 6.20+ (vgl. SMARTDRV /U)). Das liegt daran, da CD-ROM-Laufwerke
   nicht ber einen herkmmlichen Blocktreiber, sondern auf vllig andere
   Art und Weise - wie heutzutage auch Netzwerke - ber den Umadressierer
   (Redirektor) eingebunden werden, und entfernte Netzlaufwerke puffert
   NWCACHE aus Sicherheitsgrnden ebenfalls nicht. Lokale Laufwerke werden
   natrlich gepuffert, was auch der Performance eines PNW-Servers zugute
   kommt. Andere Caches, die verzgert schreiben, knnen auf PNW-Rechnern
   (und in anderen Netzen) zu Datenverlusten fhren.

   Wenn Sie auf gecachete CD-ROMs *nicht* verzichten knnen, sollten Sie
   entweder einen zustzlichen CD-ROM-Cache eines Drittanbieters benutzen
   (wie z.B. CD-Quick CDQ.EXE) oder auf die Kombination DPMS+NWCDEX+SMARTDRV
   ausweichen. Eventuell reicht es aber auch aus, die Zwischenpuffer der
   beiden CD-ROM-Treiber zu erhhen und weiterhin NWCACHE zu verwenden.
   In diesem Fall knnen Sie die Einstellung /M:value (z.B. NWCDEX /M:32)
   und/oder zustzlich die Zwischenpuffereinstellung des Hardware-Treibers
   erhhen (hufig ebenfalls Option /M:value, z.B. fr 64 XMS-Puffer bei
   Mitsumi FX-001 etc.: DEVICEHIGH=MTMCDAE.SYS /M:64 /X).
   Je nach Einstellung der anderen Optionen ist es mglich, diese Puffer,
   die teilweise sehr viel Platz bentigen, ebenfalls ins XMS auszulagern.
   Ob diese Alternative fr Ihre Konfiguration annehmbare Performance bei
   besserer Speicherbilanz als die Kombination DPMS+NWCDEX+SMARTDRV bietet,
   mssen Sie selbst herausfinden. Die Kombination MSCDEX+SMARTDRV ist
   dagegen nicht besonders zu empfehlen, da die Pufferung von CD-ROMs, wie
   sie SMARTDRV vornimmt, in dieser Form nicht sehr effektiv ist und zu-
   stzlichen Speicher kostet, der besser in einen speziellen CD-ROM-Cache
   eines Drittanbieters (s.o.) investiert wird. Oft begngt sich ein solcher
   Cache schon mit dem Speicher, der bei MSCDEX durch Reduzierung der Puffer
   eingespart werden kann, so da die Speicherbilanz ausgeglichen bleibt.
   Da NWCDEX aber DPMS nutzen kann und damit die Puffer ausgelagert werden
   knnen, tritt dieses gnstige Paradoxon hier leider nicht auf.

   Sie sollten brigens bei Benutzung von CD-ROMs (mit DMA-Nutzung) unter
   MS Windows 3.xx die Direktive DMABUFFERSIZE=128 in SYSTEM.INI [386Enh]
   eintragen (bzw. erhhen), um die Systemstabilitt zu erhhen.

   Weitere Hinweise zu NWCDEX und NWCACHE gibt es in Kapitel II.4.

                                                                             
  ---------------------------------------------------------------------------

  II.4. Undokumentierte Eigenschaften externer Kommandos: [97-03-24]
  ==================================================================

   Stichworte: Alle externen Kommandos und Treiber

   Im folgenden berblick sind fast *nur* nicht offensichtliche Eigen-
   schaften und undokumentierte Mglichkeiten einiger externer Novell DOS
   Kommandos und Treiber aufgefhrt. Bezglich der generellen Funktion
   und aller offiziellen Parameter (auch der bei Novell DOS neu eingefhrten
   Parameter) sei auf das DOSBOOK und die /? Hilfe verwiesen.
   Ein Teil dieser Hinweise fut lediglich auf Vermutungen (wird erwhnt),
   die noch besttigt werden mssen. Wer also diesbezgliche Erfahrungen
   sammelt, sollte mir seine Erkenntnisse bitte bermitteln.

   ASSIGN.COM    Fr die Angabe der Statusinformationen sind folgende
                 Parameter erlaubt: /S, /STA, /STATUS, andere Formen
                 sind ungltig.

                 Auerdem wird - undokumentiert - auch noch die DR DOS
                 Option /A untersttzt, die genauso wie die neue dokumen-
                 tierte Option /S eine bersicht ber die aktuellen Zu-
                 ordnungen ausgibt.

                 Die von CCI Multiuser DOS 7.22 Gold untersttzte Option
                 /B fr eine Ausgabe mit vorangestelltem ASSIGN zur
                 Wiederverwendung in Batchjobs in Verbindung mit Umleitung
                 gibt es bei Novell DOS und Caldera OpenDOS 7.01 leider
                 nicht, dies kann aber leicht nachtrglich implementiert
                 werden.

                 ASSIGN sollte nicht auf Netzlaufwerke angewendet werden.
                 Obwohl DOS zunchst ordnungsgem zu arbeiten scheint,
                 soll es zu Fehlverhalten kommen knnen (nicht berprft).
                 ASSIGN sollte man nicht ohne weiteres auf die Festplatte
                 C: (bzw. das Laufwerk, von dem der Kommandoprozessor
                 geladen wird) anwenden. Nach ASSIGN ist sonst die alte
                 %ComSpec% Einstellung u.U. ungltig, der transiente Teil
                 des Kommandoprozessors kann nicht mehr nachgeladen werden
                 und DOS kann nicht mehr weiterarbeiten (vgl. Kapitel
                 IV.7.). Arbeitet man mit Novells COMMAND.COM, bekommt
                 man jedoch u.U. die Mglichkeit, einen neuen Pfad zum
                 Kommandoprozessor anzugeben, sobald Novell DOS feststellt,
                 da die alte %ComSpec% Einstellung ungltig ist.
                 Im Gegensatz zu DR DOS' ASSIGN werden bei Novells ASSIGN
                 aus Kompatibilittsgrnden gegenber MS-DOS die alten
                 Einstellungen gelscht, sobald neue angegeben wurden.
                 Es gibt aber die Mglichkeit, mehrere Verknpfungen mit
                 einem Aufruf anzugeben. Nheres hierzu im FaxBack-Infopaper
                 15196.TXT aus ND7TID.EXE.
                 In Update 12 (ASSIGN 1.05) gab es einen Fix, der
                 dafr sorgte, da nur noch Verknpfungen unterhalb
                 von LASTDRIVE= angezeigt werden.

                 Errorlevel:
                 (unvollstndig, nur fr Novell DOS 7 verifiziert)

                  0  ok oder Hilfeschirm
                  3  Benutzerabbruch (<Ctrl>+<c> etc.)
                  4  Syntax-Fehler

   ATTRIB.EXE    Untersttzt ber die undokumentierte Syntax /U:name
                 die Angabe eines zulssigen Benutzeranmelde- oder
                 Gruppennamens (maximal 12 Zeichen lang). Diese Option
                 ist nicht in jeder Betriebssystemkonfiguration verfgbar
                 und hat in Novell/DR Multiuser-Varianten oder in Ver-
                 bindung mit lokalen Benutzerkonten oder einmaliger
                 Anmeldung eine Bedeutung, sofern die Systemabsicherung
                 aktiviert ist.

                 Sie knnen auch mehrere Attribute mit einem '+'/'-'-
                 Zeichen koppeln, etwa:

                  ATTRIB c:\*.* +shr

                 Haben Sie schon mal das Problem gehabt, ein Verzeichnis
                 lschen zu wollen, dessen Hidden-Attribut gesetzt war
                 (etwa C:\NWCNTL\ oder C:\SENTRY\)? Mit DIR werden solche
                 Verzeichnisse nicht angezeigt, wohl aber mit ATTRIB.
                 Allerdings kann man sie mit ATTRIB nicht lschen. Entweder
                 man verwendet dafr den Norton Commander, XDEL oder wendet
                 einen kleinen Trick an, der bei der Beschreibung von
                 PASSWORD.EXE steht...

                 MS-DOS 4.0+ untersttzte teilweise einige undokumentierte
                 Optionen (siehe MSDOSTIP.TXT: /FILESIZE, /DATE, /TIME,
                 /CODEPAGE, /CP), die Novell DOS 7 und DR DOS fremd
                 sind, vgl. aber die Mglichkeiten von Novell DOS/DR DOS
                 TOUCH.EXE.

                 Errorlevel (unvollstndig):

                  0  normales Ende (MS-DOS/PC-DOS, angeblich auch bei
                     DR DOS 6.0)
                     Novell DOS 7: normales Ende oder Datei nicht gefunden
                  1  Datei nicht gefunden (MS-DOS/PC-DOS, angeblich bei
                     DR DOS 6.0)
                  3  Abbruch (MS-DOS/PC-DOS, angeblich auch DR DOS 6.0)
                 31  Novell DOS 7: Benutzerabbruch durch <Ctrl>+<Break>
                                   oder unzulssige Aufrufoption

   APPEND.EXE    Verwendet bei entsprechender Einstellung (/E) eine
                 Umgebungsvariable %Append%. Die von CCI Multiuser DOS 7.22
                 Gold untersttzte Option /B fr eine Ausgabe mit voran-
                 gestelltem APPEND zur Wiederverwendung in Batchjobs in
                 Verbindung mit Umleitung gibt es bei Novell DOS und
                 Caldera OpenDOS 7.01 leider nicht, dies kann aber leicht
                 nachtrglich implementiert werden.

                 Errorlevel:
                 (unvollstndig, nur fr Novell DOS 7 verifiziert)

                  0  normales Ende
                  3  Benutzerabbruch (<Ctrl>+<c> etc.)

   BACKUP.COM    BACKUP erstellt Sicherungskopien Ihrer Dateien.
                 Sie knnen ganze Festplatten und Disketten sichern oder
                 Dateiverzeichnisse, Dateigruppen und sogar einzelne
                 Dateien. Die Sicherungskopien mssen mit dem Kommando
                 RESTORE geladen werden, bevor sie als DOS-Dateien ver-
                 wendet werden knnen.

                 Das Kommando BACKUP ist bei Novell DOS undokumentiert
                 (abgesehen von neuerlichen Hinweisen im FaxBack-System),
                 wohl weil ein leistungsfhigeres zugekauftes Programm
                 namens FBX (FastBack Express/Plus) beiliegt (abgesehen
                 davon sind Disketten-Backups bei heutigen Festplatten-
                 kapazitten weder vom Zeitbedarf, noch von der Anzahl der
                 ntigen Disketten kaum noch zumutbar, hchstens mit
                 Programmen wie PC-BACKUP von den PC-Tools).
                 Trotzdem, aus Kompatibilittsgrnden sind BACKUP.COM und
                 RESTORE.COM weiterhin vorhanden.
                 Dabei ist BACKUP mit MS-DOS/PC-DOS BACKUP/RESTORE Version
                 3.30 und hher vollstndig kompatibel, d.h. mit RESTORE
                 knnen auch Fremd-Backups gelesen werden und Novells
                 BACKUP kann auch von MS-DOS RESTORE restauriert werden.
                 (Bei MS-DOS wurde BACKUP nur bis zur DOS-Version 5.0
                 ausgeliefert und war teilweise inkompatibel zur jeweiligen
                 Vorgnger-Version.) Die bei MS-DOS BACKUP vorhandenen
                 Parameter (/C, /P und - undokumentiert - /HP) werden
                 von Novells BACKUP nicht untersttzt.

                 Verwenden Sie das Programm BACKUP nicht bei Platten/
                 Disketten, auf die das Kommando ASSIGN, JOIN oder SUBST
                 einwirkt (ist mehr eine Vorsichtsmanahme als eine
                 Bedingung).

                 Das Format der Datums-/Zeitangaben hngt von der
                 jeweiligen COUNTRY-Einstellung ab.

                 Durch Pawort geschtzte Dateien und Unterverzeichnisse
                 werden *nicht* gesichert, wenn nicht das globale Pawort
                 gesetzt wurde, bevor BACKUP gestartet wird, und die Dateien
                 mit demselben Pawort geschtzt sind.

                 Parameterberblick:
                 (soweit ist noch alles von DR DOS bekannt)

                  /A             Fgt neue Dateien in Sicherung ein, ohne
                                 die alten zu lschen. Damit kann auch ein
                                 vorhandenes Backup fortgesetzt werden
                                 (frhe Version von DR DOS 6.0 untersttzten
                                 dies noch nicht).
                  /D:tt.mm.jj    Seit einem best. Datum genderte Dateien
                                 werden gesichert.
                  /F[:n]         Formatieren d. Zieldisketten (optional mit
                                 Angabe der Kapaz. n).
                  /L[:dateispez] Alle Aktionen der Sicherung werden in einer
                                 Protokolldatei (Standardname: \BACKUP.LOG)
                                 aufgezeichnet: Datum und Uhrzeit der
                                 Sicherung und die Nummer der Sicherungs-
                                 diskette, auf der jede Datei gesichert ist.
                                 Die Protokolldatei wird im Hauptinhaltsver-
                                 zeichnis der Ursprungsplatte-/diskette
                                 abgelegt. Wenn Sie den Namen einer bereits
                                 existierenden Protokolldatei im Haupt-
                                 inhaltsverzeichnis angeben, werden die
                                 neuen Protokollinformationen an die be-
                                 stehenden Daten angehngt.
                  /M             Nur seit dem letzten Sichern genderte
                                 Dateien werden gesichert. (Mit diesem
                                 Schalter werden alle Dateien gesichert, fr
                                 die das Archivierungs-Bit gesetzt ist. Dies
                                 kann natrlich mit ATTRIB manuell gesetzt
                                 werden.)
                  /S             Dateien in Unterverzeichnissen werden auch
                                 gesichert. Zur Sicherung einer ganzen
                                 Festplatte/Diskette mssen Sie sich im
                                 Hauptinhaltsverzeichnis befinden und /S
                                 angeben.
                                 Standardmig wird nur das *aktuelle*
                                 Inhaltsverzeichnis gesichert.
                  /T:hh:mm:ss    Seit einem bestimmten Zeitpunkt genderte
                                 Dateien werden gesichert (mit /D).

                 Errorlevel (unvollstndig):

                 (verifiziert fr MS-DOS/PC-DOS 2.00+, Novell DOS 7,
                  Caldera OpenDOS 7.01, DR DOS 6.0 und CCI Multiuser DOS
                  7.22 Gold)

                  0  normales Ende
                  1  keine Dateien zur Sicherung gefunden
                  2  einige Dateien wegen Zugriffskonflikt nicht gesichert
                  3  Sicherung durch <Ctrl>+<Break> abgebrochen
                  4  Sicherung durch Fehler abgebrochen oder ungltige
                     Parameter angegeben.

                 Weitere Hinweise:

                 Der Parameter /F:format erlaubt alle (undokumentierten)
                 Varianten des FORMAT.COM /F: Kommandos, da bei der Angabe
                 dieses Parameters ber die Variable %Path% das externe
                 Kommando FORMAT.COM gesucht und intern gestartet wird.

                 Der undokumentierte Schalter /U:name erlaubt die Angabe
                 eines zulssigen Benutzeranmelde- oder Gruppennamens.
                 Diese Option ist nicht unter jedem Betriebssystem ver-
                 fgbar und hat in Novell/DR Multiuser-Varianten oder
                 in Verbindung mit lokalen Benutzerkonten und einmaliger
                 Anmeldung eine Bedeutung, sofern die Systemabsicherung
                 aktiviert ist.

   CHKDSK.EXE    Novells CHKDSK wurde gegenber frheren Versionen und
                 gegenber MS-DOS extrem erweitert und kann von den Mglich-
                 keiten durchaus mit Programmen wie DISKFIX (PC-Tools) oder
                 NDD (Norton Utilities) mithalten, wenn es auch bei Weitem
                 nicht so komfortabel ist.

                 Trotzdem wird der Benutzer in vielen kritischen Situationen
                 ber mgliche Risiken informiert und bekommt regelrechte
                 Ablaufplne angezeigt, die ihm helfen, die jeweilige
                 Situation zu meistern.

                 Es besitzt Erkennungsmglichkeiten fr alle gngigen Multi-
                 tasker wie TASKMGR, Windows, DESQview, OS/2, als auch fr
                 PNW. PNW-Server mssen nach Besttigung automatisch beim
                 Start von CHKDSK deaktiviert werden, wenn Fehler korrigiert
                 werden sollen.

                 Verlorene Blcke werden in Dateien namens FILExxxx.CHK
                 gespeichert.

                 CHKDSK kommt neben normalen Festplatten mit SuperStor-,
                 DoubleDisk- und insbesondere STACKER-Laufwerken zurecht.
                 Fr STACKER 3 Laufwerke gibt es die Spezialparameter /D
                 und /S (interne STACKER-berprfung). Fr den inkompa-
                 tiblen STACKER 4 wurde mit Update 13 (CHKDSK 1.21) ein
                 neuer Parameter /NS eingefhrt, der STACKER-Laufwerke
                 bergeht. Diese Version enthlt auch einige andere Fixes.

                 Weitestgehend unbekannt, wenn auch nicht ganz undokumen-
                 tiert ist die Tatsache, da CHKDSK auch eine Analyse ber
                 die Fragmentierung von Dateien ausgeben kann, wenn man
                 dazu als Parameter die Dateispezifikation (Wildcards
                 erlaubt) angibt. Alle spezifizierten Dateien im gewhlten
                 Verzeichnis, die nicht in einem Stck auf der Platte
                 gespeichert sind, werden in einer Liste ausgegeben.
                 Um zerstckelte Dateien zusammenzufassen, kann man danach
                 z.B. DISKOPT aufrufen.

                  CHKDSK c:\*.*

                 Hierfr gab es einen Fix mit Update 15 (Januar 1996).

                 Die Angabe des Gesamtplatzbedarfs fr Dateien bei CHKDSK
                 beziehen sich auf den verwendeten Speicherplatz auf dem
                 Laufwerk, wohingegen sich die Angaben bei TREE auf die
                 Dateien selbst beziehen. Die Angaben von CHKDSK sind also
                 etwas grer. (Nheres zum Thema Clusterisierung siehe bei
                 FDISK in Kapitel II.4.)

                 Obwohl Novell DOS 7 (ab einem Update) Medienseriennummern
                 untersttzt, werden diese von COMMAND.COM whrend des DIR-
                 Befehls nicht ausgegeben. Um die Medienseriennummer zu
                 erfahren (vorausgesetzt das Medium besitzt eine, was von
                 der DOS-Version und -Hersteller abhngt, unter dem das
                 Medium formatiert wurde), kann man CHKDSK aufrufen.

                 Achtung: Bei DR DOS 3.41 und DR DOS 5.0 besa CHKDSK eine
                 groe Anzahl Optionen, die mit DR DOS 6.0 weggefallen sind
                 (sehr viel manuelle Feineinstellung war mglich, offenbar
                 wurde auch noch CP/M untersttzt). Im Einzelnen waren von
                 dieser Ausdnnung die alten Optionen /A, /B, /C, /D, /L,
                 /M, /P, /R und /S betroffen, so da DR DOS 6.0 CHKDSK nur
                 noch /F, /V, /H und /? untersttzte (DR DOS 5.0 CHKDSK
                 startet auch unter Novell DOS, drfte aber nur einge-
                 schrnkt verwendungsfhig sein). Novell DOS 7 hat gegenber
                 DR DOS 6.0 CHKDSK einige neue Optionen, die teilweise mit
                 den Buchstaben der alten DR DOS 3.41/5.0 Optionen kolli-
                 dieren: /B, /D und /S.

                 Achtung: CHKDSK kommt derzeit noch nicht mit MS Windows95
                 langen Dateinamen zurecht! Caldera hat aber Abhilfe dafr
                 versprochen, die aber mit Caldera OpenDOS 7.01 noch nicht
                 mitgeliefert wird.

                 Errorlevel (verifiziert fr CCI Multiuser DOS 7.22 Gold):

                   0  alles ok
                   1  es gibt offene Dateien, CHKDSK kann nicht arbeiten
                 255  CHKDSK hat einen Fehler entdeckt

   COMP.COM      Dieses Kommando bietet bei DR DOS und Novell DOS einen
                 Parameter /M:n, der die Anzahl der Unstimmigkeiten vor
                 dem Abbruch angibt (Standard ist laut DOSBOOK 10, wie
                 auch bei MS-DOS/PC-DOS, bei CCI Multiuser DOS 7.22 Gold
                 jedoch wohl 20). Der Parameter selbst existiert allerdings
                 bei MS-DOS/PC-DOS nicht (abgesehen davon, da COMP dort
                 sowieso mit MS-DOS 6.20 abgeschafft wurde und nur noch
                 auf einer Supplemental-Disk zu finden ist).

                 Im Gegensatz zum hherentwickelten FC.COM arbeitet COMP.COM
                 immer zeichenweise, kann allerdings die Informationen auch
                 in Einheiten von Zeilen aufbereiten. Eine Resynchronisation
                 ist bei COMP.COM nicht mglich, dementsprechend fragt COMP
                 auch explizit nach (J/N), wenn sich die Dateilnge der
                 beiden Dateien unterscheidet (siehe Kapitel II.16. zur
                 Vermeidung von Problemen in Batchjobs).

                 Die von CCI Multiuser DOS 7.22 Gold bekannten Optionen
                 /B (fr explizite Binrvergleiche, auch wenn die Dateien
                 nicht eine der Endungen .EXE, .COM, .SYS, .OBJ, .BIN oder
                 .LIB aufweisen), /W (fr Unterdrckung von WhiteChars, d.h.
                 Leerfeldern und Tabs whrend eines ASCII-Vergleichs) und
                 /Gn (Anzahl der Zeilen, die vor einer Resynchronisation
                 bereinstimmen mssen, Default fr n ist 5) kennt Novells
                 COMP.COM nicht, da diese Funktionen dort mit dem neueren
                 FC.COM bereitgestellt werden, das CCI Multiuser DOS noch
                 nicht kennt. Wie gesagt, Novells COMP arbeitet fr alle
                 Dateien zeichenweise, also 'binr', daher sind alle drei
                 Optionen hier berflssig.

                 Da COMP.COM standardmig die Unterschiede zwischen den
                 Dateien als absolute Position innerhalb der Dateien angibt,
                 ist es erwhnenswert, da bei Novell DOS auch (neben DEBUG)
                 ein Werkzeug zur Verfgung steht, mit dem man diese
                 Informationen 'verarbeiten' kann: Novells EDIT zeigt
                 nmlich u.a. die absolute Zeichenposition an, wodurch es
                 in Textdateien besonders leicht ist, die Fundstelle zu
                 lokalisieren (siehe auch bei EDIT.COM in diesem Kapitel).

                 In der Dokumentation wird nicht erwhnt, da COMP.COM auch
                 interaktiv eingesetzt werden kann:
                 Gibt man keine Dateispezifikationen an, fragt COMP.COM
                 von selbst nach, wobei auch hier Wildcards etc. angegeben
                 werden knnen.

                 Errorlevel (unvollstndig):

                 (nur fr Novell DOS 7 verifiziert!)

                   0  normaler Ablauf, auch falls Zieldatei nicht gefunden
                      oder bei unterschiedlich groen Dateien
                   3  Benutzerabbruch (<Ctrl>+<c> etc.)
                   4  keine Dateien oder Quelldatei nicht gefunden, oder bei
                      falscher Aufruf-Syntax

   DEBUG.EXE     Erhebliche Erweiterungen, die ein eigenes Kapitel fllen:
                 siehe Kapitel II.5.

                 Mchte man den Boot-Vorgang berwachen, kann man DEBUG.EXE
                 (wie fast jedes andere Programm auch) natrlich auch in
                 CONFIG.SYS aufrufen, z.B.:

                  INSTALL=c:\nwdos\debug.exe

                 Bugfixes mit Update 12 (DEBUG 1.41: Keine Probleme mehr
                 mit zerstrten Rootmappings, falls DEBUG von solchen Lauf-
                 werken gestartet wurde) und Update 13 (DEBUG 1.42: Fixes
                 fr -I und -O Kommandos). Mit Update 14 wurde die Datei
                 nochmals verndert (ca. 1 KByte kleiner) hat aber nach
                 wie vor die Versionsnummer 1.42 und in der History sind
                 keine nderungen erkennbar.

   DELPURGE.EXE  Ist mit MS-DOS 6.xx UNDELETE /PURGE vergleichbar, basiert
                 aber auf einem anderen Lschverfolgungskonzept (siehe
                 DELWATCH.EXE).

                 Untersttzt seit DR DOS 6.0 ber die undokumentierte
                 Syntax /U:name die Angabe eines zulssigen Benutzeranmelde-
                 oder Gruppennamens (maximal 12 Zeichen lang). Diese Option
                 ist nicht unter jedem Betriebssystem verfgbar und hat
                 in Novell/DR Multiuser-Varianten oder in Verbindung mit
                 lokalen Benutzerkonten und einmaliger Anmeldung eine
                 Bedeutung, sofern die Systemabsicherung aktiviert ist.

                 DELPURGE untersttzt - wie auch Novells UNDELETE - neben
                 den dokumentierten Parametern noch eine Reihe weiterer
                 neuer Parameter (wie von MS-DOS/PC-Tools UNDELETE bekannt):

                  /ALL      identisch mit /A
                  /LIST     identisch mit /L
                  /DT       nur "Delete-Tracking-Methoden" verwenden, d.h.
                            nur die Untersttzung durch DISKMAP und DELWATCH
                            whlen. Der Sinn ist mir speziell bei DELPURGE,
                            das sich doch immer auf eine DELWATCH-Lsch-
                            verfolgung beziehen mu, nicht klar...
                  /DOS      nur "DOS-Lschmethoden" verwenden, d.h. auf
                            DISKMAP und DELWATCH verzichten.
                            Der Sinn ist mir speziell bei DELPURGE, das sich
                            doch immer auf eine DELWATCH-Lschverfolgung
                            beziehen mu, nicht klar...
                  *.*       Alles

                 Novells DELPURGE zeigt sowohl den Datums-/Zeitstempel
                 der ehemaligen Datei, als auch des Lschzeitpunktes an;
                 letzteres eine Angabe, die UNDELETE in seinen Ausgaben
                 unterschlgt.

                 Mit DELPURGE aus der Lschverfolgung genommene Dateien
                 lassen sich mit Novells UNDELETE *nicht* wieder restau-
                 rieren, denn DELPURGE trgt statt des zwischengespeicherten
                 ersten Buchstabens bei Offset +0Dh (BYTE) im reservierten
                 Bereich des jeweiligen Verzeichniseintrags ein E5h ('')
                 ein (daran ndert auch /DT oder /DOS nichts). Erst nachdem
                 man hier den wahren ersten Buchstaben der Datei hinschreibt
                 oder diesen Eintrag zu Null setzt, kann Novells UNDELETE
                 wieder arbeiten. Man kann aber stattdessen auch auf
                 PC-Tools 9.0 UNDEL.EXE ausweichen.
                 MS Windows95 alias MS-DOS 7 benutzt dieses Feld leider fr
                 die 10 Millisekunden Einheiten des Zeitpunktes der Datei-
                 erzeugung, was UNDELETE verwirren knnte (bisher noch nicht
                 berprft). Evtl. kann man das mit der dort neuen CONFIG.SYS
                 Direktive ACCDATE= unterdrcken und so die Kompatibilitt
                 wahren.

                 Die Parameter /D:dd.mm.yy (bzw. /D:-nnn) und /T:hh:mm[:ss]
                 (in landesspezifischem Format) sind - im Gegensatz zu
                 UNDELETE (vgl. Kapitel II.4.) - bei DELPURGE exakt
                 dokumentiert und bieten wirklich nur die beschriebene
                 Funktionalitt, beziehen sich also ausschlielich auf
                 den Lschzeitpunkt.
                 Da trotzdem gewisse Analogien zwischen den Parametern
                 von DELPURGE und UNDELETE bestehen, sei folgende Anmerkung
                 erlaubt: Beziehen sich die Angaben der Bereichsgrenzen bei
                 UNDELETE auf den Bereich *seit* dem angegebenen Zeitpunkt,
                 so gelten sie bei DELPURGE auf den Bereich *vor* dem ange-
                 gebenen Zeitpunkt, wie dies auch dem Wesen der beiden
                 Kommandos entspricht.

                 Whrend der Freigabe von entlschbaren Dateien wird das
                 jeweilige Laufwerk gesperrt, um Deadlocks zu vermeiden.

                 Bugfixes mit Update 14 (DELPURGE 1.01: Gibt nun auch bei
                 installiertem DELWATCH korrekte Datumswerte aus) und Update
                 15 (DELPURGE 1.02: Fix fr verlorene Cluster in seltenen
                 Situationen). Leider gibt es offenbar immer noch einen Bug
                 (getestet bis Update 15, Januar 1996), der dazu fhrt, da
                 in seltenen Situationen bei DELPURGE /S die Meldung
                 "Bitte warten..." nicht mehr verschwindet und das System
                 hngt. In einem solchen Fall hilft Neubooten und erneutes
                 Ausfhren von DELPURGE, evtl. ohne DELWATCH vorher zu laden
                 und evtl. mit "NWCACHE -". Nheres ist noch nicht geklrt.

                 Wird Novell DOS 7 DELPURGE auf Dateien angewendet, die noch
                 mit DR DOS 6.0 DELWATCH gelscht wurden, so wird wahr-
                 scheinlich ein vllig falsches Lschdatum angezeigt
                 (1980-01-01???). Dies liegt daran, da DR DOS 6.0 DELWATCH
                 sich in diesem Punkt von Novell DOS 7 DELWATCH unter-
                 scheidet (siehe DELWATCH).

   DELWATCH.EXE  Sollte nicht nach dem TASKMGR geladen werden.

                 Das Lschen der ersten Datei nach dem Start von DELWATCH
                 kostet u.U. einige Sekunden Zeit, wenn eine groe Anzahl
                 entlschbarer Dateien eingestellt wurde. Sptere Lsch-
                 aktionen erleiden keinen merklichen Geschwindigkeitsein-
                 bruch.

                 Man sollte versuchen, zu verhindern, da das Temporr-
                 laufwerk bzw. -verzeichnis (%Temp%) in die Lschver-
                 folgung gert, was leider nicht immer zu bewerkstelligen
                 ist, da die naheliegende Mglichkeit, DELWATCH einfach
                 nur fr Substitut-Laufwerke zu benutzen, deswegen aus-
                 geschlossen ist, da DELWATCH nur mit physikalischen
                 Laufwerken arbeiten kann (Netzlaufwerke werden ggf. von
                 dem jeweiligen Server verwaltet, so da trotzdem UNDELETE
                 durchaus auch fr entfernte Laufwerke funktioniert). (Es
                 fehlt eine Mglichkeit, bestimmte Verzeichnisse von der
                 Erfassung der Lschverfolgung auszuschlieen...). Praktisch
                 ist die Verwendung einer RAM-Disk als Temporrlaufwerk.

                 Um das meist unntige 'Puffern' von temporren Dateien
                 zu verhindern und damit die Effektivitt bezglich der
                 Lschverfolgung zu optimieren, sollte man diese Dateien
                 von vornherein von der Lschverfolgung ausschlieen, z.B.:

                  DELWATCH /E:TMP+$$$+@@@+SWP+ION+SEM+00?+IMM+$@?+~*

                 Mchten Sie hingegen eine Einschluliste verwenden, ist es
                 ratsam, hier die Dateiendungen von Dokumenten, Datendateien
                 und Konfigurationsdateien anzugeben und auf .EXE, .COM,
                 .OVL, .DLL, .HLP, usw. zu verzichten, da diese Dateien
                 notfalls von den Original-Disketten neu installiert werden
                 knnen.

                 Diese Angabe der Ausschlu- oder Einschluliste
                 (Parameter /O: und /E:, die nicht gleichzeitig erlaubt
                 sind) ist nur global fr alle Laufwerke gemeinsam
                 mglich, kann aber auch nachtrglich gendert werden.
                 Wie dokumentiert, knnen jeweils bis zu 10 Dateier-
                 weiterungen (auch mit Wildcards) angegeben werden, die
                 mit '+' voneinander getrennt werden mssen. Doch wie
                 gibt man z.B. eine 'leere' Endung an? Ganz einfach:
                 Bei Novell DOS nicht mehr dokumentiert ist nmlich die
                 Mglichkeit, da man jede der Dateierweiterungen mit
                 einem optionalen Punkt ('.') einleiten kann (etwa:
                 /E:.SWP+.TMP). Eine leere Endung wird daher durch einen
                 einfachen Punkt spezifiziert (z.B. /E:., /E:.SWP+. oder
                 /E:.+BAK+SIK). Die Zeichen vor einem Punkt werden
                 ignoriert.

                 In der Dokumentation wird auch unterschlagen, da die
                 Parameter /F:, /B: und /MB? fr jedes Laufwerk getrennt
                 eingestellt werden knnen. Statt alle Laufwerke auf einmal
                 zu aktivieren, ruft man dazu DELWATCH mehrfach hinter-
                 einander fr jedes Laufwerk einzeln auf, wobei die Para-
                 meter jeweils wie gewnscht angepat werden. Natrlich
                 gelten die Werte von /F: und /B: fr jedes der aktivierten
                 Laufwerke extra, auch wenn mehrere Laufwerke auf einmal
                 angegeben werden.

                 Im DOSBOOK wird beschrieben, da DELWATCH Dateien bis zu
                 einer einstellbaren Anzahl (mit /F:count (65535 fr unbe-
                 grenzt) und davon mit gleichem Namen /B:doublets (von
                 1..65535)) in der Lschverfolgung hlt, solange der Platz
                 auf dem Laufwerk dafr ausreicht. Ist die Kapazitt der
                 Platte erschpft, so werden die ltesten dieser Dateien
                 gelscht, es sei denn, man hat die Option /F:ALL angegeben,
                 die in dieser Situation erst das explizite Entfernen von
                 Dateien aus der Lschverfolgung (Purgen) erfordert.

                 In der Praxis habe ich allerdings die Erfahrung gemacht,
                 da diese Beschreibung sehr sinnvollen Verhaltens leider
                 in einigen Punkten *nicht* der Realitt entspricht:

                 Ist die Anzahl der mit /F:count (count=1..65534) angege-
                 benen Dateien noch nicht erreicht und schon jetzt die
                 Kapazitt der Platte erschpft, so mssen auch hier erst
                 explizit Dateien aus der Lschverfolgung entfernt werden,
                 um Platz auf dem Laufwerk zu schaffen, d.h. die Option /F:
                 stellt leider gleichzeitig eine Untergrenze dar (dies
                 war auch schon bei DR DOS 6.0 so). Dies macht DELWATCH
                 mit dem eigentlich proklamierten Default-Verhalten nahezu
                 unbrauchbar, wenn die Anzahl und durchschnittliche Gre
                 der in der Lschverfolgung stehenden Dateien die freie
                 Kapazitt der Platte nahezu erschpft, was besonders bei
                 groen Werten fr /F: und fast vollen Platten lstig wird.
                 Sinnvoll wre es, hier in Zukunft Parameter zur getrennten
                 Einstellung der Unter- und Obergrenze einzufhren oder
                 zumindest die Untergrenze zu beseitigen.
                 (Sollten Sie andere Erfahrungen gemacht haben, teilen Sie
                 mir bitte Ihre Aufrufzeile von DELWATCH mit, denn - der
                 Literatur nach zu urteilen - scheint seltsamerweise auer
                 mir niemand sonst dieses Verhalten zu beobachten...)

                 Weiterhin sind die dokumentierten Sonderflle /F:65535
                 und /F:ALL (getestet mit DELWATCH 2.1) nicht funktions-
                 fhig: /F:65535 wird als ungltiger Wert zurckgewiesen,
                 und /F:ALL fhrt den Rechner ins sofortige Daten-Nirwana...
                 (Bei DR DOS 6.0 wurden beide Einstellungen anstandslos
                 akzeptiert, allerdings hatte /F:65535 dort noch keine
                 Sonderfunktion. Leider arbeitet DR DOS 6.0 DELWATCH 1.0
                 jedoch unter Novell DOS 7 nicht korrekt.)

                 Und: Obwohl man auf den ersten Blick vermuten knnte,
                 mit /B: eine Mglichkeit zu haben, hufig aktualisierte
                 Dateien quasi in mehreren Versionen auf der Platte halten
                 zu knnen, ist dies in der Regel ein Trugschlu. Meist
                 werden dabei nmlich existierende Dateien nur durch
                 neuere Versionen berschrieben (z.B. beim COPY Befehl);
                 der Lschschutz wrde aber nur aktiv, wenn die alte,
                 bereits existierende Datei vorher gelscht wrde.
                 Manchmal kann man dieses Verhalten aber in Batchjobs
                 durch explizites Lschen vor dem 'berschreiben' er-
                 zwingen.
                 Praktischerweise gehen die meisten Editore genau so vor
                 (z.B. Novells EDIT oder SemWares QEDIT und TSE), wenn
                 sie eine bereits existierende .BAK-Datei durch eine
                 neuere Version berschreiben. Um mehrere .BAK-Dateien
                 in der Lschverfolgung zu halten, darf die Endung .BAK
                 (bzw. .SIK o..) natrlich nicht mit /E: ausgeschlossen
                 werden...

                 Das Lschverfolgungskonzept von DELWATCH unterscheidet
                 sich ziemlich von dem unter PC-Tools (alias MS-DOS 6.xx
                 UNDELETE), und auch leicht von dem noch von DR DOS 6.0
                 DELWATCH verwendeten Verfahren (siehe DELPURGE und
                 UNDELETE).

                 MS-DOS UNDELETE /LOAD (von PC-Tools) verschiebt (bei
                 maximalem Schutz 'Lschberwachung' alias 'Lsch-
                 verfolgung') die gelschten Dateien in ein unsichtbares
                 Verzeichnis namens \SENTRY\ oder verwaltet (bei geringerem
                 Schutz 'Lschprotokoll') eine Datei PCTRACKR.DEL, die
                 Verweise auf gelschte Dateien enthlt. Die FAT-Infor-
                 mation bleibt intakt, dadurch gibt es keine Wechsel-
                 wirkungen mit anderen Festplattenpflegeprogammen. Das
                 UNDELETE-Programm mu sich dafr allerdings mit 13,5 KByte
                 resident machen.

                 DR DOS/Novell DOS verwendet ein anderes Verfahren,
                 da in seiner Realisierung etwas leistungsfhiger und
                 flexibler, wenn auch etwas problematischer ist. Statt
                 die Dateien zu verschieben oder eine Verweisdatei auf
                 dem Laufenden zu halten (soetwas hnliches gibt es mit
                 DISKMAP auch), werden (zumindest bei Novell DOS) nur die
                 Dateiattribute auf eine unmgliche Kombination gesetzt,
                 d.h. das Volume-Attribut wird zustzlich gesetzt. Auerdem
                 wird der erste Buchstabe der Datei durch 05h ersetzt.
                 Erst, wenn die Dateien mit DELPURGE etc. aus der Lsch-
                 verfolgung entfernt werden, wird die bliche DOS-Lsch-
                 methode (erstes Byte E5h '') verwendet. Auerdem wird
                 bei Novell DOS beim Lschen einer Datei generell auch
                 der erste Buchstabe an anderer Stelle im jeweiligen
                 Verzeichniseintrag zwischengespeichert (Offset +0Dh
                 (BYTE)). Wird eine Datei mit DELPURGE aus der Lschver-
                 folgung genommen, wird hier stattdessen E5h eingetragen,
                 wodurch die Datei fr UNDELETE unsichtbar wird, obwohl
                 sie eigentlich immer noch auf herkmmlichem Wege entlsch-
                 bar wre. In Verbindung mit Novell DOS 7 DELWATCH wird der
                 Datums-/Zeitstempel der Datei ebenfalls an andere Stelle
                 verschoben (Datum bei Offset +12h (WORD) und Zeit bei
                 Offset +10h (WORD)) und der normale Datums-/Zeitstempel
                 (Datum bei Offset +18 (WORD), Zeit bei Offset +16h (WORD))
                 durch die aktuelle Zeit (Lschdatum) ersetzt.
                 DR DOS 6.0 DELWATCH unterscheidet sich in diesem Punkt,
                 denn es lt das Originaldatum wo (und wie) es ist und
                 verzichtet auf die Speicherung des Lschdatums. Dummerweise
                 wurde unter DR DOS 6.0 und Multiuser-Varianten das Feld bei
                 Offset +12h (WORD) noch zur Speicherung der Benutzer-ID
                 verwendet, Novell DOS 7 DELWATCH berschreibt dieses Feld
                 nun einfach mit einem Datum... (Besonders tragisch ist
                 das nicht, da es ja, wenn man einmal die Mglichkeit eine
                 Datei zu restaurieren, auer Acht lt, nur solche Dateien
                 betrifft, die bereits gelscht wurden, und dort sollte der
                 Eigentmer eigentlich keine groe Rolle mehr spielen...
                 Bei RENAME o.. wird der gesamte reservierte Bereich
                 innerhalb der Verzeichnisstruktur brigens nicht ge-
                 lscht, sondern vom System mitgeschleppt, so da sich
                 Owner-IDs wieder reimplementieren lieen, siehe auch
                 bei PASSWORD.EXE und in Kapitel II.21.)

                 Durch die oben beschriebene Vorgehensweise ist das eigent-
                 liche Verfahren etwas schneller als bei MS-DOS/PC-DOS und
                 DELWATCH ist (mit DPMS) in der Lage, sich bis auf 464 Bytes
                 (die natrlich in UMBs liegen knnen) ins XMS auszulagern!
                 Die Startphase dauert allerdings bei groer Dateianzahl
                 auf einem Laufwerk recht lange, da hierfr die gesamte
                 Platte durchsucht werden mu. Andererseits sind keine
                 besonderen Dateien auf der Platte ntig und das Konzept ist
                 nicht an freien Speicher, maximale Anzahl der Dateien etc.
                 geknpft.

                 Die Divergenzen (bezglich MS-DOS/PC-DOS) in den Ver-
                 zeichniseintrgen sind ziemlich unkritisch, da diese
                 natrlich nicht wirklich defekt sind: Allerdings kommen
                 viele Disk-Tools von Fremdherstellern (etwa PC-Tools 9.0
                 DISKFIX, nicht aber Norton Utilities NDD) nicht absolut
                 sauber damit zurecht und meckern eine fehlerhafte Ver-
                 zeichnisstruktur an (denn innerhalb der bis zu MS-DOS 6.22
                 'reservierten' Bereiche - sonst mit Nullen gefllt -
                 wurden von DELWATCH einige Daten eingetragen, die nun
                 DISKFIX verwundern). Wenn Sie dann 'Korrigieren' whlen,
                 werden entweder gelschte Dateien wieder 'entlscht',
                 oder eher, entlschbare Dateien dauerhaft gelscht (d.h.
                 aus der Lschverfolgung entnommen). Ich empfehle, vorher
                 DELPURGE /S laufen zu lassen, was allerdings nicht mehr
                 funktionieren mag, wenn die Struktur *wirklich* defekt ist.
                 Meist knnen Sie auch ganz auf solche Fremd-Tools ver-
                 zichten und z.B. Novells recht leistungsfhiges CHKDSK
                 verwenden. Alternativ dazu knnen Sie, wenn Sie den dafr
                 notwendigen Speicher brig haben, statt der Benutzung von
                 DELWATCH/DELPURGE natrlich auch auf MS-DOS 6.2x UNDELETE
                 /LOAD ausweichen.

                 MS-DOS UNDELETE /LOAD ist aber nur sehr beschrnkt fr
                 Netzlaufwerke geeignet; es mssen volle Schreibrechte auf
                 dem Laufwerk vergeben werden, was in Netzumgebungen nur
                 sehr ungern zugestanden wird. Mit Novells Gespann aus
                 DELWATCH/UNDELETE gibt es diese Einschrnkung nicht, denn
                 es arbeitet direkt mit den Mechanismen der NetWare zusammen
                 und dabei ersetzt UNDELETE z.B. das alte Novell NetWare
                 SALVAGE. Auf einem PNW-Server mu DELWATCH installiert
                 sein, damit man von einem anderen Rechner aus Novells
                 UNDELETE fr Dateien auf dem PNW-Server ausfhren kann.

                 Es kann vorkommen, da Fremdprogramme den freien Platz
                 auf einem Laufwerk nicht korrekt analysieren; dies liegt
                 einfach daran, da in der Lschverfolgung hngende Dateien
                 effektiv solange nicht gelscht sind, bis die Dateien mit
                 DELPURGE aus der Lschverfolgung genommen werden, der
                 Diskettenplatz nicht mehr ausreicht oder eine einstellbare
                 freie maximale Anzahl von in der Lschverfolgung verweilen-
                 den Dateien berschritten wird. Mit anderen Worten: Solange
                 entlschbare Dateien in der Lschverfolgung existieren,
                 gibt es also einen entsprechend groen 'unsichtbaren'
                 Bereich auf dem jeweiligen Laufwerk, der von der wahren
                 Kapazitt verloren geht.

                 Novells DELWATCH kollidiert mit MS-DOS 7 Long-Filename-
                 Support und ACCDATE=. Fr Eintrge von langen Datei- und
                 Verzeichnisnamen wird die unmgliche Attributkombination
                 0Fh=Read-Only+Hidden+Systen+Volume verwendet, und dies
                 knnte mit gelschten, aber von DELWATCH berwachten
                 Systemdateien unter Novell DOS kollidieren, bzw. MS-DOS 7
                 als defekte Long-Filename-Eintrge aufstoen...
                 Da der Long-Filename-Support allerdings mit Prfsummen
                 arbeitet, sollte eine ordentliche Implementation ber
                 solche Eintrge hinwegsehen.
                 MS-DOS 7 neue CONFIG.SYS ACCDATE= Funktion benutzt jedoch
                 fr die Speicherung des letzten Zugriffsdatums das gleiche
                 Feld im reservierten Bereich, das auch DELWATCH zur
                 Zwischenpufferung des Datumsanteils einer gelschten, aber
                 noch in der Lschverfolgung stehenden Datei benutzt
                 (Offset +12h (WORD)). Obwohl diese Doppelnutzung trickreich
                 ist, knnte es hier zu Problemen kommen, wenn ein Teil vom
                 anderen nichts wei (oder wissen will...).
                 Und auch die neuen Eintrge fr die Dateierzeugung ber-
                 lagern Novells Eintrge von DELWATCH und PASSWORD (Offset
                 +0Dh (BYTE) = 10 Millisekunden-Raster nach der Dateier-
                 zeugung, deren Zeit bei Offset +0Eh (WORD) und Datum bei
                 Offset +10h (WORD) gespeichert ist), aber dies bezieht
                 sich wohl nur auf neue Dateien unter MS Windows95.

                 Fest steht, da bei geeigneter Rcksichtnahme in der Imple-
                 mentation alle Funktionen (Microsofts Long-Filenames &
                 ACCDATE= sowie Novells DELWATCH und Pawrter) einiger-
                 maen kollisionsfrei nebeneinander existieren knnten (die
                 DR DOS 6.0 Owner-IDs sind natrlich verloren, aber Novell
                 DOS 7 untersttzt diese Mglichkeit sowieso nicht mehr im
                 API). (Siehe auch bei PASSWORD.EXE und in Kapitel II.21.)

                 Caldera hat dafr aber Abhilfe versprochen, die aber mit
                 Caldera OpenDOS 7.01 noch nicht mitgeliefert wird.

                 Errorlevel (unvollstndig):

                 (nur fr Novell DOS DELWATCH 2.1 aus Update 15 verifiziert)

                  0  normal
                 >27 nur in Verbindung mit Option /MBL: Entspricht, nach
                     Subtraktion von 27 dem Wert der explizit mit /F:n
                     angegebenen oder implizit angenommenen Anzahl der
                     maximal in der Lschverfolgung hngenden Dateien fr
                     das/die aktivierte(n) Laufwerk(e), d.h. ohne Angabe
                     von /F:n fr Diskettenlaufwerke 47 (20 Dateien) oder
                     fr Festplattenlaufwerke 227 (200 Dateien).

   DISKCOMP.COM  Diese beiden Kommandos werten die Variablen %Temp% und
   DISKCOPY.COM  %tmp% aus, wenn eine temporre Auslagerungsdatei auf der
                 Harddisk erzeugt werden mu (wenn der Speicher nicht
                 ausreicht). Natrlich wird zunchst EMS- und XMS-Speicher
                 zur Zwischenpufferung verwendet (evtl. kein XMS-Speicher
                 unter Windows 3.1). Auf diese Weise wird (ab DR DOS 6.0
                 (5.0?)) das bis zu zehnmalige Diskettenwechseln beim
                 Kopieren verhindert, das bei MS-DOS bis vor 6.2 Usus war.
                 Auf diese Weise ist auch Kopieren im Hintergrund unter
                 Multitaskern mglich.

                 In diesem Zusammenhang wurde mit MS-DOS 6.2 ein neuer
                 Parameter DISKCOPY /M eingefhrt, der eine vllig andere
                 Funktion als der von DR DOS & Novell DOS 7 bekannte
                 Parameter /M hat: Statt Diskettenabzugsdateien (bliche
                 Dateiendung dafr ist .IMG) zu untersttzen, wird damit
                 die Verwendung des Festplattenspeichers unterdrckt.

                 Hinweis: Beim Vergleich (DISKCOMP) von mit DISKCOPY
                 kopierten Disketten lteren Datums kann es zu Unter-
                 schieden auf Seite 0 Spur 0 kommen, obwohl die Kopie
                 fehlerfrei ist. Dieses Phnomen tritt auch bei
                 MS-DOS/PC-DOS vor 5.0 auf:

                 Fixes mit Update 14 (DISKCOMP 2.04): Beim DISKCOPY werden
                 jetzt auer der Seriennummer keine Vernderungen mehr
                 vorgenommen, so da jetzt mit DISKCOMP keine Fehlerreporte
                 mehr nach erfolgreichem DISKCOPY auftreten. DISKCOPY
                 formatiert Floppies nur noch, falls unbedingt notwendig
                 (d.h. nicht formatiert oder anderes physikalisches Format).

                 Errorlevel fr DISKCOMP (unvollstndig):

                 (verifiziert fr MS-DOS/PC-DOS 4.0+, Novell DOS 7 und
                  wahrscheinlich auch DR DOS 6.0)

                  0  normales Ende
                  1  Disketten verschieden
                     oder bei Novell DOS 7 auch: Vergleich nicht ausgefhrt,
                     bei DR DOS 6.0 auch       : ungltiges Laufwerk,
                                                 falsche Syntax
                  2  Abbruch durch Benutzer (<Ctrl>+<c> etc.)
                  3  Hardware-Fehler, kein Vergleich durchgefhrt
                  4  Initialisierungsfehler, zu wenig Speicher, Laufwerk
                     oder Syntax falsch

                 Errorlevel fr DISKCOPY (unvollstndig):

                 (verifiziert fr MS-DOS/PC-DOS 4.0+, Novell DOS 7 und
                  wahrscheinlich auch DR DOS 6.0)

                  0  normales Ende
                  1  ungltiges Laufwerk, falsche Syntax,
                     nicht fataler Lese-/Schreibfehler
                  2  Abbruch durch Benutzer (<Ctrl>+<c> etc.)
                  3  fataler Hardware-Fehler, kein Vergleich durchgefhrt,
                     kann Quelle nicht lesen oder Ziel nicht formatieren/
                     schreiben
                  4  Initialisierungsfehler, zu wenig Speicher, Laufwerk
                     oder Syntax falsch

   DISKMAP.EXE   Die angelegte Datei heit DISKMAP.DAT und ist normalerweise
                 schreibgeschtzt, aber nicht versteckt. Wird die bereits
                 existierende Datei allerdings manuell versteckt, z.B. mit

                  ATTRIB diskmap.dat +h

                 so bleiben diese Attribute auch erhalten, wenn die Datei
                 beim nchsten Aufruf von DISKMAP.EXE (nchstes Booten)
                 aktualisiert wird. DISKMAP ist kein TSR wie DELWATCH.

                 Achtung: Normalerweise sollten Programme wie DISKMAP,
                 PC-Tools' MIRROR oder Norton Utilities' IMAGE mindestens
                 bei jedem Bootvorgang des Rechners aufgerufen werden, um
                 die Verweisdateien zu aktualisieren. Im Falle eines
                 schweren Fehlers in der Festplattenorganisation, der
                 nicht behoben werden kann, ohne den Rechner zunchst zu
                 booten, sollte man diese Aufrufe jedoch temporr aus
                 AUTOEXEC.BAT entfernen, damit wenigstens die letzten noch
                 gltigen Daten nicht mit einer nun fehlerhaften Struktur
                 berschrieben werden (siehe UNFORMAT.EXE).

                 Manchmal mag es sinnvoll sein, DISKMAP bei jeder Rckkehr
                 zum Prompt aufzufrischen: Dies ist unter DR DOS 6.0
                 und Novell DOS mit PROMPT $x und %PExec% mglich, siehe
                 Kapitel II.11. und IV.7.

                 Siehe auch bei DELPURGE.EXE, DELWATCH.EXE und UNDELETE.EXE
                 in Kapitel II.4.

   DISKOPT.EXE   Untersttzt Disketten, Festplatten, SuperStor-, Double-
                 Space- und STACKER-Laufwerke und stellt einen recht
                 hochentwickelten Entfragmentierer hnlich wie COMPRESS,
                 OPTIMIZR (PC-Tools) oder SPEEDISK (Norton Utilities) dar.

                 Multitasker wie TASKMGR und Windows als auch PNW mssen
                 vor einem Optimierungslauf beendet werden. Ein laufender
                 PNW-Server kann beim Start von DISKOPT automatisch de-
                 aktiviert werden (Frage J/N).
                 DISKOPT ist kompatibel mit allen gngigen Cache-Programmen
                 wie NWCACHE, NLCACHE, SMARTDRV 3.xx und 4.xx, PC-CACHE,
                 Norton-CACHE, HyperDisk und PC-Kwik und deaktiviert diese
                 Programme (inkompatible Cache-Programme sollten vorher
                 beendet werden).
                 Werden alte STACKER-Formate erkannt, knnen diese in ein
                 aktuelles und effektiveres Format umgewandelt werden.

                 Besitzt ein eingebautes Hilfesystem.

                 Zustzliche unbekannte oder undokumentierte Parameter:

                 /RESTORE=[laufwerk:]\STACVOL.EXT stellt das STACKER-
                           Laufwerk wieder her, falls die Optimierung
                           durch Neustart oder Stromausfall unterbrochen
                           wurde (und das Laufwerk nicht aktiviert wird).

                 Undokumentierte Parameter (wie von MS-DOS DEFRAG), nur in
                 Verbindung mit STACKERs SDEFRAG, das intern DISKOPT mit-
                 verwendet, verfgbar (bei SDEFRAG /? sind u.a. diese
                 Parameter dokumentiert):

                 /GL       ndert die erwartete Kompressionsrate
                 /GP       Erhht die Gre des STACKER-Laufwerks
                 /BW       Schaltet Anzeige auf Monochrom
                 /LCD      Schaltet Anzeige auf LCD-Darstellung
                 /BATCH    Wartet nicht auf besttigenden Tastendruck
                 /SKIPHIGH Ldt keine Daten in den oberen Speicher
                 /G0       (in Worten: "G-Null") Deaktiviert die graphische
                           Maus und den graphischen Zeichensatz (NewUI=Off)

                 Die Datei NWDOS.INI (ber %NWDOSCFG%) enthlt die Grund-
                 einstellungen fr DISKOPT.
                 Spezielle Einstellungen fr DISKOPT sind in der Gruppe
                 [DISKOPT] mglich (dies ist undokumentiert), ansonsten
                 werden die Einstellungen aus der Default-Gruppe [COLORS]
                 bernommen:

                  CurrentColor=
                  NewUI=on|off

                 Die offiziell vorhandene Einstellung [DISKOPT] MapColor=
                 scheint hingegen in der derzeitigen Ausgabe von DISKOPT.EXE
                 keine Bedeutung mehr zu haben.
                 Auerdem wird die Direktive [COLORS] ColorSetX= ausgewertet
                 (X=<CurrentColor> aus 1..9).

                 DISKOPT verschiebt keine Dateien mit gesetztem Hidden- oder
                 System-Attribut.

                 Nach einem Lauf von DISKOPT knnen nur noch solche Dateien
                 mit UNDELETE wiederhergestellt werden, die in der Lsch-
                 verfolgung von DELWATCH etc. lagen. Normal gelschte
                 Dateien werden beim Umstrukturieren der Platte ber-
                 schrieben, unter der Kontrolle von DELWATCH gelschte
                 Dateien werden jedoch nicht sofort gelscht, sondern sind
                 nur fr normale Programme nicht mehr sichtbar. Auf diese
                 Weise werden sie aber bei derartigen Umstrukturierungen
                 wie existierende Dateien behandelt und daher umkopiert
                 statt berschrieben.

                 Sicherheitshalber sollten Sie nach einem DISKOPT-Lauf
                 den Rechner neu booten (insb. wenn Sie FASTOPEN= verwenden)
                 und DISKMAP aufrufen, um die Verweisdatei zu aktualisieren.

                 Anscheinend gibt es eine optionale Datei DISKOPTJ.EXE, die
                 in Verbindung mit dem Modus 'Japanisch' notwendig ist.
                 Nheres ist mir bisher unbekannt, eine japanische Ausgabe
                 von Novell DOS konnte ich bisher noch nirgendwo entdecken,
                 obwohl sie ursprnglich angekndigt wurde.

                 Achtung: DISKOPT kommt derzeit nicht mit langen Datei-
                 namen von MS Windows95 zurecht (wie sollte es auch?).
                 Caldera hat aber Abhilfe versprochen, die aber mit
                 Caldera OpenDOS 7.01 noch nicht mitgeliefert wird.

   DISPLAY.SYS   Die Aufruf-Syntax (inkl. undokumentierter Erweiterungen)
                 ist in Kapitel II.16. beschrieben.

                 Die Untersttzung fr EGA-, MCGA- und VGA-Karten er-
                 fordert immer die Angabe der Option 'EGA', da die Code-
                 seitenuntersttzung von DOS bisher auch keine besonderen
                 Funktionen der VGA ausnutzt (vom Font 16x8 einmal abge-
                 sehen). Ebenfalls siehe Kapitel II.16.

                 Die .CPI-Dateien von DR DOS 6.0 und Novell DOS 7 (DRFONT)
                 enthalten einen undokumentierten vierten Font 6x8. Dieser
                 theoretisch fr Grafikmodi und Textmodi mit mehr als 43
                 Zeilen auf Super-EGAs, bzw. mehr als 60 Zeilen auf Super-
                 VGAs, vielleicht im Hinblick auf DR PalmDOS auch fr
                 PalmTops mit speziellen reduzierten LCD-Anzeigen interes-
                 sante Font ist aber offenbar blicherweise nicht freige-
                 schaltet, zumindest nicht explizit.

                 Die von MS-DOS her bekannten Dummy-Gertetypen 'MONO' und
                 'CGA' untersttzt Novell DOS nicht; sie sind aber auch bei
                 MS-DOS funktionslos, schlielich bieten MDA, HGC und CGA
                 nur *einen* Hardware-Font (vgl. GRAFTABL.COM), der nicht
                 per Software nderbar ist.
                 Der Typ 'LCD' und die bei MS-DOS undokumentierten Unter-
                 typen 'EGA 8','EGA 14' und 'EGA 14M' werden nicht unter-
                 sttzt (letztere aber auch nicht zurckgewiesen), drften
                 aber sowieso obsolet sein, da man (fast) das Gleiche wohl
                 ber die Angabe der zu installierenden Fonts erreichen
                 kann. Wie .CPI-Dateien von MS-DOS unter Novell DOS ver-
                 wendet werden knnen und wie damit dennoch die Unter-
                 sttzung fr 'LCD' bzw. 'EGA 8' mglich ist, wird in
                 Kapitel II.16. beschrieben.

                 Haben Sie sowohl eine MCGA/EGA/VGA-Karte als auch eine
                 MDA/HGC-Karte in Ihrem Rechner installiert, so scheitert
                 die Einrichtung der Codeseitenumschaltung fr den Farb-
                 adapter, wenn das aktive Bildschirmsystem zum Zeitpunkt
                 des Aufrufs von DISPLAY.SYS die Monochromkarte ist. In
                 diesem Fall mssen Sie entweder die DIP-Schalter auf dem
                 Mainboard so stellen, da die Farbkarte default-mig
                 gewhlt wird oder Sie verwenden MODE, um vorher auf die
                 Farbkarte umzuschalten. Auerdem sollten Sie in diesem
                 Fall auch auf die Angabe einer Codeseite verzichten,
                 da sonst eine Fehlermeldung erscheint (siehe Kapitel
                 II.16):

                  CONFIG.SYS:

                   INSTALL=c:\nwdos\mode.com co80
                   DEVICE=c:\nwdos\display.sys con=(EGA,,(1,3))

                 ANSI-Treiber und andere Gertetreiber fr CON: sollten vor
                 DISPLAY.SYS geladen werden, damit diese den DISPLAY.SYS
                 Treiber nicht abkoppeln knnen.

                 Achtung: Die bei DISPLAY.SYS notwendige Angabe der Code-
                 seite bezieht sich auf die hardware-mig installierte
                 Codeseite (da DOS dies nicht berprfen kann, mu diese
                 Angabe berhaupt erst vorgenommen werden). Auch wenn Sie
                 spter mit Codeseite 850 etc. arbeiten wollen, sollten Sie
                 hier noch die Codeseite 437 angeben, die zumindest fr
                 alle in den USA und West-Europa erhltlichen Grafikkarten
                 (BIOSe und Fonts) die Grundlage darstellt. Wenn Sie hier
                 eine andere Codeseite als die wirklich untersttzte
                 Hardware-Codeseite angeben und spter nicht fr *alle*
                 bentigten Codeseiten installierbare Codeseiten einrichten,
                 kann die Codeseitenuntersttzung von DOS nicht sauber
                 arbeiten, da sie von falschen Voraussetzungen ausgeht.
                 Allerdings: Auch wenn die Hardware-Codeseite blicherweise
                 mit der Codeseite 437 bereinstimmt (so da die zustzliche
                 Einrichtung einer installierbaren Codeseite 437 entfallen
                 kann), unterscheidet das Betriebssystem sehr wohl zwischen
                 einer Hardware- und einer installierbaren Codeseite:
                 Mu DOS eine vorbereitete Codeseite aktivieren, wird
                 der Font aus der zugehrigen .CPI-Datei geladen; bei
                 Aktivierung der Hardware-Codeseite wird der Font aus
                 dem BIOS der Grafikkarte benutzt. Die Hardware-Codeseite
                 ist unter der Nummer ansprechbar, die Sie bei DISPLAY.SYS
                 dafr angegeben haben. Fehlt die Angabe, nimmt DISPLAY.SYS
                 in Anhngigkeit von Grafikkarte und COUNTRY= Einstellung
                 pauschal eine Codeseite an, ohne dies wirklich berprfen
                 zu knnen (normalerweise also 437).

                 Da die Einrichtung von Codeseiten mit zu den komplizier-
                 testen Angelegenheiten in der Konfiguration von DOS
                 gehrt, seien ein paar zustzliche berlegungen erlaubt
                 (die mit Novell DOS 7 berprft wurden):

                 Angenommen, die Hardware-Codeseite Ihrer Video-Karte
                 entspricht Codeseite 437 (fast immer der Fall), dann reicht
                 es meist aus, lediglich alle anderen zustzlich bentigten
                 Codeseiten mit MODE con: CODEPAGE PREPARE vorzubereiten.
                 Die Anzahl der zu reservierenden Codeseiten bei DISPLAY.SYS
                 entspricht dann dieser Zahl der zustzlichen Codeseiten.
                 Selbstverstndlich knnen Sie auch die Codeseite 437 be-
                 nutzen, obwohl sie nicht extra vorbereitet wurde; DOS
                 schaltet dann einfach auf die Hardware-Codeseite um. Fr
                 den Fall, da Sie zustzlich nur noch Codeseite 850 be-
                 ntigten (und dabei alle Fontgren), she die Konfigura-
                 tion etwa wie folgt aus (natrlich kann man den Treiber
                 auch hochladen):

                  CONFIG.SYS:

                   DEVICE=c:\nwdos\display.sys con=(EGA,437,(1,3))

                  AUTOEXEC.BAT:

                   MODE con: CODEPAGE PREPARE=((850) c:\nwdos\ega.cpi)
                   CHCP 437

                 Wenn Sie jedoch auch eine andere *Darstellung* der Code-
                 seite 437 wnschen, als sie in Ihrem Video-BIOS-EPROM
                 eingebrannt ist, knnen Sie die Codeseite 437 durch einen
                 Font aus einer .CPI-Datei ersetzen. Natrlich wird fr
                 diesen Font eine vorzubereitende Codeseite veranschlagt,
                 was zustzlichen Speicherplatz kostet. Angenommen, Sie
                 mchten die Darstellung der Codeseite 437 durch eine
                 andere Darstellung (z.B. einen ISO-Font) ersetzen und
                 zustzlich noch mit der Codeseite 850 arbeiten, dann
                 mssen Sie jetzt zwei Codeseiten vorbereiten (437 und 850).
                 Die Hardware-Codeseite, die Sie - entsprechend obigen An-
                 weisungen - ebenfalls als Codeseite 437 deklariert hatten,
                 ist in dieser Konstellation nicht mehr erreichbar.
                 Im Beispiel:

                  CONFIG.SYS:

                   DEVICE=c:\nwdos\display.sys con=(EGA,437,(2,3))

                  AUTOEXEC.BAT:

                   MODE con: CODEPAGE PREPARE=((437,850) c:\nwdos\ega.cpi)
                   CHCP 437

                 Allerdings hlt Sie niemand davon ab, als Kennung der
                 Hardware-Codeseite einfach eine andere Nummer als 437
                 anzugeben (die noch nicht einmal einer gltigen Codeseiten-
                 Kennung entsprechen mu). Erlaubt sind alle Zahlen von
                 0..32767. (32768..65535 sind eigentlich auch gltig, aber
                 MODE gibt diese Nummern spter als negative Zahlen aus.)
                 Die Hardware-Codeseite knnen Sie dann spter unter dieser
                 Nummer (cp) mit

                  MODE con: CODEPAGE SELECT=cp

                 erreichen, auch wenn die wahre Kennung der Hardware-Code-
                 seite (natrlich immer noch 437, schlielich hat sich
                 am EPROM-Inhalt nichts gendert) mit einer vorbereiteten
                 Codeseite berdeckt wurde. (Allerdings wird der Hardware-
                 Font nicht in allen Fllen reaktiviert, sondern offenbar
                 nur initialisiert. Nheres hierzu ist noch nicht geklrt.)
                 In obigen Beispiel:

                  CONFIG.SYS:

                   DEVICE=c:\nwdos\display.sys con=(EGA,999,(2,3))

                  AUTOEXEC.BAT:

                   MODE con: CODEPAGE PREPARE=((437,850) c:\nwdos\ega.cpi)
                   CHCP 437

                 Anmerkung: In diesem Beispiel habe ich fr diese Dummy-
                 Kennung die Nummer 999 verwendet, weil diese Kennung mit
                 keiner existierenden Codeseiten-Nummer kollidiert und
                 obendrein bei Novells KEYB intern fr benutzerdefinierte
                 Codeseiten reserviert ist und insofern ganz gut pat.
                 Wie gesagt, jede beliebige Nummer ist erlaubt, da DOS
                 sowieso nicht berprfen kann, ob die Hardware-Codeseite
                 wirklich zu dieser Nummer gehrt oder nicht.

                 Aufgrund des hheren Speicherplatzbedarfs sollten die
                 zweite und dritte Alternative allerdings nur verwendet
                 werden, wenn Sie aus gutem Grund auch die Darstellung
                 des Fonts 437 verndern wollen, z.B. bei Verwendung
                 fremder .CPI-Dateien mit anderen Schriftarten, etwa wie
                 ISO-, Kursiv- oder Schreibschriften etc. Natrlich mchten
                 Sie dann die genderte Darstellung der Schriften nicht
                 nur in den zustzlichen Codeseiten genieen, sondern auch
                 mit Codeseite 437... Den Hardware-Font aus dem Video-BIOS
                 mit einer gleichwertigen oder gar binr identischen Font-
                 Darstellung aus einer .CPI-Datei zu berladen, ist reine
                 Speicherplatzverschwendung. Nheres hierzu auch bei
                 MODE.COM in diesem Kapitel.

                 Der Speicherbedarf von DISPLAY.SYS gliedert sich in
                 mehrere Bereiche und hngt auch von der Anzahl der zu
                 installierenden Fonts und vorzubereitenden Codeseiten ab:

                     Fonts:          Zahl der vorzubereitenden Codeseiten:
                                          1            2            3    ...
                     (6x8)           (5168 Bytes) (7728 Bytes) (10288 Bytes)
                  1:                 (+1536=)   (+2*1536=)   (+3*1536=)
                     8x8               6704 Bytes  10800 Bytes  14896 Bytes
                  2:                 (+2048=)   (+2*2048=)   (+3*2048=)
                     8x8, 14x8         8752 Bytes  14894?Bytes  21040 Bytes
                  3:                 (+3584=)   (+2*3584=)   (+3*3584=)
                     8x8, 14x8, 16x8  12336 Bytes  22064 Bytes  31792 Bytes

                 davon enthalten die eigentlichen Font-Daten pro Codeseite:

                     (6x8)            :                     (1536 Bytes)
                     8x8              : 2048               = 2048 Bytes
                     8x8, 14x8        : 2048 + 3584        = 5632 Bytes
                     8x8, 14x8, 16x8  : 2048 + 3584 + 4096 = 9728 Bytes

                 Wie Sie sehen knnen, lassen diese Daten brigens darauf
                 schlieen, da der jeweils grte Font berhaupt nicht
                 innerhalb dieser Datenstruktur definiert wird, sondern
                 offenbar innerhalb des Grafikkarten-RAMs abgelegt wird
                 (das mte es erlauben, eine eigene Darstellung eines
                 Fonts der Codeseitenuntersttzung unterzuschieben, indem
                 man den Fontbereich der Grafikkarte direkt mit einem
                 eigenen Font beschreibt (nicht berprft)) und da der
                 Font 6x8 tatschlich geladen wird.
                 Und: Der Speicherbedarf von DISPLAY.SYS ist trotzdem bei
                 mehr als einer vorzubereitenden Codeseite ganz betrcht-
                 lich, so da hier noch Optimierungsspielraum insofern
                 bestnde, da die gerade nicht bentigten Daten ausge-
                 lagert wrden (z.B. XMS, EMS oder Festplatte).

                 Die gleichen Prinzipien lassen sich brigens auch auf
                 PRINTER.SYS und .CPI-Dateien fr Drucker anwenden, sind
                 dort allerdings erheblich sinnvoller, wenn auch noch
                 komplizierter zu verwenden, sobald Sie andere als die
                 standardmig untersttzten Drucker ansteuern mchten.
                 Weitere Informationen finden sich bei PRINTER.SYS und
                 in Kapitel II.16.

   DOSBOOK.EXE   Das Online-Handbuch zu Novell DOS - DOSBOOK - drfte
                 normalerweise keine Bedienungsprobleme aufwerfen. Hat man
                 sich jedoch mit Querverweisen immer tiefer verschachtelte
                 Informationen durchgelesen und mchte nun zum jeweiligen
                 Hauptkontext (Inhalt, Glossar, Index) zurck, um dort das
                 nchste Thema anzuschauen, so whlen viele Benutzer aus
                 Unwissen die langsame Methode (<Alt>+<z> fr 'Zurck'),
                 um sich Schritt fr Schritt zurckzuhangeln.
                 Stattdessen ist es viel einfacher, in das Hilfe-Men zu
                 gehen (<Alt>+<h>) und dort eines der drei Hauptgebiete
                 anzuwhlen. DOSBOOK verzweigt dann direkt zum passenden
                 Eintrag des aktuellen Themas im gewhlten Hauptkontext.
                 Z.B. findet <Alt>+<h>-<a> (fr 'Inhalt') wirklich die
                 Stelle im Kontext 'Inhalt', die das aktuelle Thema
                 behandelt.

                 Die Datei NWDOS.INI enthlt in der Gruppe [DOSBOOK] die
                 Grundeinstellungen des Hilfesystems:

                  InitialZoom=1   # 0=Fenster, 1=Vollbild
                                  #
                                  # DOSBook-Druckereinstellungen:
                                  #
                  PrintDevice=PRN # Druckergertename
                  LeftMargin=8    # Anzahl leerer Spalten links vom Text
                                  # im Ausdruck (Rand fr Heftung).
                  TextColumns=64  # Anzahl der Textspalten im Ausdruck.
                                  # Fr breite Drucker oder Ausdrucke im
                                  # Querformat knnen Sie hier auch
                                  # wesentlich hhere Werte angeben.
                  LinesPerPage=62 # Verwenden Sie 0 fr: Kein Seitenumbruch
                                  # im Ausdruck.
                  Underline1=45   # Zeichencode fr Einzelunterstreichung
                                  # im Ausdruck, hier '-'.
                  Underline2=61   # Zeichencode fr Doppelunterstreichung
                                  # im Ausdruck, hier '='.

                 sowie in [DOSBOOK] (hier undokumentiert) oder in [COLORS]

                  CurrentColor=
                  NewUI=on|off

                 Auerdem wird die Einstellung ColorSetX= aus [COLORS] aus-
                 gewertet (X=<CurrentColor> aus 1..9). Offenbar gibt es auch
                 noch eine Direktive OLHfile= fr eine externe Hilfedatei
                 und eine Gruppe [DRDOS] (nheres ist noch nicht geklrt).
                 Eine meines Erachtens besonders angenehme Farbeinstellung
                 fr das DOSBOOK finden Sie in Kapitel II.19.

                 Noch ein Hinweis:

                 Leider sind nicht alle Links im DOSBOOK korrekt, auerdem
                 fehlen manche wenige Optionen und Befehle komplett (z.B.
                 BACKUP und RESTORE). Deshalb sollte man in jedem Fall auch
                 'befehl /?' aufrufen, wo meist alle offiziellen Parameter
                 angezeigt werden.

                 Errorlevel (unvollstndig):

                  0  alles ok
                 31  Syntax-Fehler in Parameter

   DOSKEY.EXE    Dieses TSR zur erweiterten Kommandozeileneditierung ent-
                 spricht in seinem Verhalten fast 100% dem Gegenstck von
                 MS-DOS (DR DOS/Novell DOS bot und bietet fr Kommando-
                 zeileneditierung zustzlich noch die HISTORY= Funktion ab
                 CONFIG.SYS an, die bei MS-DOS erst mit DOSKEY bereitge-
                 stellt wird, entsprechend bezieht sich die /B[UFSIZE]
                 Option auch nur auf den Makropuffer und nicht auch auf
                 den Kommandozeilenpuffer, wie im DOSBOOK flschlicherweise
                 angegeben, vgl. Kapitel III.1. und II.12.).
                 In der deutschen Ausgabe zu Novell DOS gibt es eine
                 Datei LIESMICH.TXT, die darauf hinweist, da die Kommando-
                 zeilenparameter von DOSKEY auch abgekrzt werden knnen.
                 Im DOSBOOK wird die Langform beschrieben, die zwar nicht
                 zurckgewiesen wird, in Wahrheit aber auch nicht komplett
                 ausgewertet wird, d.h. wenn der erste Buchstabe des Para-
                 meters stimmt, wird die Option schon akzeptiert.

                 Die Option /R[EINSTALL] lscht bei Novell nur alle
                 Makros, eine neue Kopie von DOSKEY wird nicht geladen.

                 Neben den in der Dokumentation beschriebenen Token $t,
                 $T (vgl. <Ctrl>+<t> in Kapitel II.11.), $l (das im der
                 deutschen Ausgabe des DOSBOOKs brigens flschlicher-
                 weise als $I beschrieben wurde), $L, $b, $B, $1..$9
                 funktionieren natrlich auch die anderen von MS-DOS/
                 PC-DOS bekannten Token:

                 $$   fr das '$' Zeichen selbst
                 $*   fr *alle* Parameter, d.h. $1 $2 $3 $4 $5 $6 $7 $8 $9

                 Zustzlich bietet Novells DOSKEY undokumentiert noch:

                 $0   analog zum eigenen Programmnamen %0, hier also der
                      eigene Makroname.

                 Da die Dokumentation zu DOSKEY sehr lckenhaft ist, hier
                 noch ein paar Anmerkungen:

                 Mit DOSKEY ist es mglich, Aliase und Makros zu definieren,
                 dabei knnen auch interne Kommandos redefiniert werden.
                 Mchte man zwischenzeitlich zwischen dem Original und dem
                 Makros/Alias unterscheiden, gibt es dazu die von MS-DOS
                 bekannte Methode, dem Kommando Leerfelder voranzustellen
                 (ein vorangestelltes '@'-Zeichen mu trotzdem weiterhin
                 in der ersten Spalte stehenbleiben).
                 Nur Kommandos, die in der ersten Spalte beginnen, werden
                 ggf. als Makro/Alias ausgewertet, eingerckte Kommandos
                 immer als Originalbefehl (wichtig in Batchjobs, wenn man
                 ein bestimmtes Verhalten sicherstellen mu). (Leider
                 stimmt diese Regel fr Novells Implementation nicht ganz,
                 Ausnahmen siehe unten.)

                 Interessanterweise kann man bei Novells COMMAND.COM den
                 *internen* Befehlen aber auch ein Zeichen aus '.', ';',
                 '+' und '=' voranstellen (etwa =DIR), das genauso wie ein
                 Leerfeld wirkt, solange es kein Makro/Alias gibt, das
                 ebenfalls dieses Zeichen im Befehlsnamen hat. Da hier
                 eine Reihe Fallstricke existieren und 4DOS z.B. etwas
                 anders reagiert, sei auf die ausfhrlicheren Hinweise
                 in Kapitel II.11. verwiesen.

                 Novells DOSKEY v0.01 hat allerdings derzeit auch noch
                 ein paar Designschwchen (Update 15):

                 - Leider funktioniert die Unterscheidung zwischen Makro/
                   Alias und Originalkommando anhand der Position in der
                   Eingabezeile bei Novell nicht ganz genauso wie bei
                   MS-DOS. Bei *internen* Kommandos kann man direkt am
                   Prompt das Originalkommando *nicht* durch ein voran-
                   gestelltes Leerfeld erreichen (als Workaround ist hier
                   allerdings z.B. ein vorangestelltes Gleichheitszeichen,
                   etwa =DIR *.* mglich). In den anderen Fllen ist das
                   Verhalten identisch.

                 - Geben Sie bei einem Makro niemals mehr als 9 Parameter
                   an, denn Parameter 10 und darber hinaus werden auf die
                   Parameter 0 usw. zurckgefaltet, die dadurch zerstrt
                   werden. Die Resultate sind vllig konfus.

                 - Das Zeichen direkt nach einem $ wird immer verschluckt,
                   auch wenn es sich nicht um ein Token handelt (ist aller-
                   dings sinnvoll, um die Kompatibilitt mit zuknftigen
                   Erweiterungen zu sichern).

                 - Die Makroexpandierung arbeitet nicht, wenn der Kommando-
                   prozessor 4DOS/NDOS ist, dies gilt auch fr COMMAND.COM
                   von MS-DOS. In einer temporr geladenen Kopie von
                   COMMAND.COM funktioniert allerdings alles einwandfrei.
                   4DOS bietet aber gleichwertige Ersatzfunktionen an. Wenn
                   Sie also nicht unbedingt die Kompatibilitt mit DOSKEY
                   wahren mssen, brauchen Sie DOSKEY mit 4DOS/NDOS ber-
                   haupt nicht zu laden.

                 - Dem '!' kommt eine Sonderfunktion als Alias fr $T zu
                   und deshalb kann es nicht als normales Zeichen ver-
                   wendet werden, bzw. wird es doch verwendet, so dient es
                   als Trenner zwischen Kommandos.
                   Unter CCI Multiuser DOS ist das '!'-Zeichen in Dateinamen
                   nicht erlaubt (CCI Multiuser DOS 7.22 Gold), daher kann
                   die hier beschriebene Funktion als Trenner auch an der
                   Kommandozeile von MDOS.COM/TMP.EXE verwendet werden
                   (siehe Kapitel II.20.). Unter normalem DOS ist das
                   Ausrufezeichen aber ein gltiges Zeichen fr Dateinamen,
                   daher untersttzt Novells COMMAND.COM nach auen hin
                   diese Funktion nicht! Intern arbeiten aber alle
                   COMMAND.COM Versionen der ehemaligen Digital Research
                   Linie mit dieser speziellen Funktion (schauen Sie sich
                   diesbezglich einfach mal den Beginn von COMMAND.COM mit
                   einem Dump-Betrachter an:
                   Sie werden eine gewisse Parallele bei !date!time fr den
                   Start von COMMAND.COM ohne AUTOEXEC.BAT entdecken.)
                   Partielle Mglichkeiten, mehrere Kommandos in einer
                   Zeile anzugeben, werden in Kapitel II.11. beschrieben.

                 - DOSKEY hat mit MS-DOS 7 eine Reihe mehr oder weniger
                   sinnvolle Erweiterungen erfahren, die dem 1,5 Jahre
                   frher eingefhrten Novell DOS 7 natrlich noch fremd
                   sind. Zumindest die Mglichkeit eines erweiterten
                   Tastaturpuffers kann aber nach wie vor wesentlich
                   effektiver von dem erweiterten Tastaturtreiber K3PLUS
                   bzw. FreeKEYB bereitgestellt werden.

   DPMI.EXE      Errorlevel:
                 (unvollstndig, nur fr Novell DOS 7 verifiziert)

                  0  ok
                  1  Aufruf von DPMI ohne Parameter bei deaktiviertem
                     DPMI (z.B. vorheriges DPMS off).

   DPMS.EXE      DPMS.EXE (Novells DOS Protected Mode Services - eine Art
                 Protected Mode DOS-Extender/-Server fr TSRs) funktioniert
                 mit Prozessoren ab 286er und sollte normalerweise unmittel-
                 bar nach den anderen Speichermanagern per DEVICE= geladen
                 werden. Je nach vorhandener CPU wird entweder ein 286er-
                 Overlay oder ein 386er-Overlay (derzeit auch fr hhere
                 Prozessoren) eingebunden. Untersttzt auch 32Bit-Protected-
                 Mode-Anwendungen. Der Treiber enthlt auch einen virtuellen
                 Gertetreiber fr MS Windows (der evtl. fr DOS-Boxen be-
                 ntigt wird, wenn dort Programme DPMS nutzen wollen???).

                 Es ist sogar mglich, DPMS.EXE erst in AUTOEXEC.BAT oder
                 spter (bzw. per INSTALL= in CONFIG.SYS) zu laden. Obwohl
                 die Funktionalitt identisch ist, erscheint das logische
                 Gert DPMSXXX0 nur beim Laden als Gertetreiber (siehe
                 Kapitel IV.3.). Da in lezterem Fall auch der Speicher-
                 bedarf geringfgig niedriger ist, empfiehlt sich in
                 jedem Fall das Laden als Gertetreiber.

                 DPMS.EXE kann nicht hochgeladen werden. Sehr frhe
                 Versionen (noch vor Update 3) konnten zwar hochgeladen
                 werden, fhrten aber nur zum Absturz des Rechners, da
                 das Hochladen des Treibers schon damals nicht zulssig
                 war und nur nicht abgefangen wurde. Heutzutage alloziert
                 der Treiber whrend der Initialisierung absichtlich so
                 viel Speicher, da kein Speichermanager ihn hochladen
                 kann...

                 Der Real Mode Stub des Treiber bentigt ca. 1 KByte (je
                 nach Treiberversion und geladenem Overlay 0,7 - 1,4 KByte)
                 im konventionellen Speicher, die sich - in Anbetracht des
                 enormen Speichergewinns bei DPMS-nutzenden TSRs - allemal
                 lohnen, geopfert zu werden.

                 Mit der Version 1.42 aus dem Update 14 traten auf
                 verschiedenen Testsystemen Probleme auf. Ich empfehle
                 daher entweder die Version 1.41 aus Update 13 oder die
                 neue Version 1.43 aus Update 15. Nheres siehe Kapitel I.2.

                 DPMS.EXE (zumindest die Version 1.43 aus Update 15)
                 untersttzt offenbar zwei undokumentierte Parameter,
                 deren Funktion noch nicht geklrt ist (der SwitChar ist
                 optional):

                  /N       ???
                  /O       ??? DPMS installiert nicht, scheint wie OFF zu
                               wirken.
                  /O=wert  ??? Eine Wertangabe wird nicht zurckgewiesen,
                               Funktion unbekannt ('Overlay'???).

                 Die folgenden Parameter sind zwar offensichtlich, aber im
                 DOSBOOK und der Online-Hilfe nicht erwhnt:

                  /OFF     deaktiviert DPMS-Funktionen fr zu ladende TSRs.
                  /ON      reaktiviert DPMS wieder. Bereits geladene DPMS-
                           nutzende TSRs knnen natrlich weiterhin den
                           DPMS-Service nutzen.

                 Die Option "EMS=0" des Speichermanagers 386MAX ist nicht
                 DPMS-kompatibel. Stattdessen mu man 386MAX so umkon-
                 figurieren, da die NOFRAME-Option verwendet wird.

                 "Und was ntzt der ganze Aufwand fr die Programmierung
                 von DPMS-aware TSRs, wenn nur Novell DOS 7 diesen Standard
                 untersttzt?" - Da haben Sie sich aber getuscht!

                 Bei IBM PC-DOS 7 liegt (wohl nur wegen des dort mitge-
                 lieferten STACKER 4) nun ebenfalls ein DPMS-Treiber bei,
                 der kompatibel zu Novells DPMS ist. Allerdings sollte man
                 auch fr PC-DOS 7 einen aktuell upgedateten Treiber von
                 Novell verwenden, da dieser wesentlich kleiner ist und
                 besser arbeiten soll. Es sieht so aus, als ob auch PTS/DOS
                 (alias S/DOS) DPMS nutzen kann und auch Caldera OpenDOS
                 untersttzt DPMS.

                 Helix Software entwickelte ebenfalls um 1993-1994 einen
                 Protected Mode TSR-Server namens CLOAKING (im Deutschen
                 etwas unglckliche Wortwahl, bedeutet allerdings soviel
                 wie 'Ummanteln' oder 'Tarnen') zum Auslagern ihrer
                 Netzwerk-Software ins Extended Memory. Der Hauptteil der
                 CLOAKING-nutzenden Treiber luft dann im Protected Mode
                 und nur ein kleiner Stummel (der Stub) bleibt zur Kommuni-
                 kation mit DOS im Real Mode Adreraum (sowohl der Stub des
                 Servers als auch der der TSRs knnen hochgeladen werden;
                 bei Novells DPMS mu der Stub des Servers im 640 KByte-
                 Bereich liegen). Helix entwickelte in Zusammenarbeit
                 mit Award auch CLOAKING-nutzende BIOSe und bietet den
                 CLOAKING.EXE Treiber auch fr andere TSRs an. So unter-
                 sttzt z.B. der Logitech-Maustreiber aus MouseWare 6.50+
                 das CLOAKING-API und bentigt so statt 27 KByte nur noch
                 1 KByte im ersten MegaByte!

                 "Ok, nun gibt es also zwei verschiedene Standards (DPMS und
                 CLOAKING) fr denselben Zweck, TSRs aus dem DOS-Speicher
                 nahezu komplett auszulagern und die Vorteile des Protected
                 Mode nutzen zu knnen?!?"
                 Im Prinzip haben Sie Recht und es ist sicherlich aufwendig,
                 beide APIs in Ihren TSRs zu untersttzen (abgesehen davon,
                 da es schon schwierig genug ist, berhaupt erst einmal ein
                 DPMS-SDK zu bekommen, obwohl es nicht sehr teuer ist.
                 Letzteres Problem ist mit der bernahme von DR DOS durch
                 Caldera nun endlich gelst...).

                 Aber: Der Helix CLOAKING.EXE Treiber (getestet Version
                 2.01 auf 386ern bis Pentiums mit EMM386 /MULTI=on /DPMI=on;
                 CLOAKING funktioniert offenbar nicht mit 286ern) unter-
                 sttzt undokumentiert auch das API von DPMS (meldet sich
                 als DPMS 1.00 OEM "HELIX")!!! Dabei wird der integrierte
                 DPMS-Server selbst zum CLOAKING-nutzenden Treiber und der
                 CLOAKING-Stub bentigt nach wie vor nur 1 KByte konven-
                 tionellen Speicher!
                 Wird whrend der Installation von CLOAKING.EXE kein DPMS-
                 Server erkannt, so stellt CLOAKING.EXE die DPMS-Funktionen
                 default-mig selbst zur Verfgung. Dieser 'Cloaked DPMS-
                 Server' kostet nur ca. 100 Bytes im ersten MegaByte. Mit
                 der undokumentierten CLOAKING-Option /NODPMS kann man ver-
                 hindern, da DPMS-Support eingebunden wird. Obwohl Sie
                 auch beide Treiber (DPMS.EXE und CLOAKING.EXE) laden
                 knnen (sollte es tatschlich einmal Probleme geben),
                 reicht es deshalb normalerweise vllig aus, nur noch den
                 CLOAKING.EXE Treiber zu laden. Die DPMS-nutzenden TSRs
                 (von Novell DOS und PC-DOS etc.) knnen damit genauso gut
                 arbeiten, wie mit ihrem Original... Das gilt insbesondere
                 auch bei Benutzung von MS Windows 3.xx in allen Betriebs-
                 arten, obwohl CLOAKING im Gegensatz zu DPMS keinen
                 virtuellen DPMS-Gertetreiber bereitstellt.

                 Lediglich Novells TASKMGR kommt als Multitasker an-
                 scheinend mit CLOAKING nicht zurecht: Sobald CLOAKING.EXE
                 geladen wird, strzt er meist ab (egal, ob DPMS aktiviert
                 ist oder nicht, und unabhngig davon, von welchem Treiber
                 es zur Verfgung gestellt wird). Etwas stabiler wurde der
                 Multitasker ohne geladenen DPMS-Treiber und erst in
                 AUTOEXEC.BAT geladenem CLOAKING-Treiber (mit der Option
                 /NOSHAREV86). Wer hier der Schuldige ist (CLOAKING oder
                 TASKMGR), und ob evtl. doch noch Abhilfe in Sicht ist,
                 ist noch nicht geklrt. Hinweise willkommen!
                 Und in einer extrem unblichen Konstellation bereitet auch
                 der PNW 1.0 SERVER.EXE manchmal Probleme, wenn er in einer
                 DOS-Box unter Windows geladen wird (siehe Kapitel VI.2.)
                 und DPMS dabei von CLOAKING zur Verfgung gestellt wird.
                 Ldt man jedoch CLOAKING ber DPMS treten diese Probleme
                 nicht auf. Vielleicht gibt es ja auch schon ein Update fr
                 CLOAKING.EXE (Version 2.01 von 1994)?

                 Wird der DPMS-Support von CLOAKING bereitgestellt, sollte
                 man auf keinen Fall "DPMS.EXE off" eingeben, um den DPMS-
                 Support abzuschalten. In diesem Fall kommt Helix' DPMS-
                 Treiber durcheinander (schaltet evtl. wirklich komplett ab)
                 und DPMS-nutzende Applikationen strzen ab. Da dies auch
                 kritische Programme wie NWCACHE etc. betrifft, besteht
                 groe Gefahr fr die Integritt des Dateisystems, wenn Sie
                 nicht sofort neu booten!

                 Fazit: Wenn Sie DPMS-nutzende Treiber entwickeln, unter-
                 sttzen Sie automatisch beide Standards und befinden sich
                 keineswegs in einer Sackgasse, sondern auf der sicheren
                 Seite! Na, denn los...

                 Infos zu DPMS und CLOAKING gibt's auch in Ralf Browns
                 Interrupt-Liste.

   DRIVER.SYS    Siehe auch bei DRIVPARM= in Kapitel III.1.

   EDIT.COM      Dieser Editor stellt (wenn Sie nicht QEDIT oder TSE ein-
                 setzen) eine sehr leistungsfhige Alternative zu vielen
                 anderen Editoren dar.

                 Die Grundkonfiguration wird der Datei NWDOS.INI ber
                 %NWDOSCFG% entnommen:

                 Wenn nicht durch Einstellungen aus der undokumentierten
                 Gruppe [EDITOR] bersteuert, werden die Einstellungen der
                 Default-Gruppe [COLORS] ausgewertet (Achtung: Die Gruppe
                 [EDITOR] wird auch von PNW 1.0 NET.EXE verwendet, siehe
                 Kapitel VI.9.):

                 NewUI=on|off Pseudografikdarstellung ein/aus
                              (Untersttzung fr einige spezielle VGA-
                              Karten ist in EDIT implementiert.)
                 CurrentColor=
                 ColorSetX=

                 Direktiven, die jedoch (auch) in [EDITOR] vorkommen,
                 bersteuern die jeweilige Einstellung aus der Gruppe
                 [COLORS] (ColorSetX= kann nur in [COLORS] vorkommen,
                 X=<CurrentColor> aus 1..9). Eine meines Erachtens
                 besonders angenehme Farbeinstellung fr EDIT finden
                 Sie in Kapitel II.19.

                 Falls das 'NewUI' benutzt wird, so definiert EDIT einige
                 Zeichen des ASCII-Zeichensatzes um, um die pseudographische
                 Darstellung zu ermglichen. Sie sollten sich also nicht
                 wundern, warum z.B. die Zeichen '' (ASCII-180), ''
                 (ASCII-193), '' (ASCII-194) und '' (ASCII-195) anders
                 als erwartet aussehen. Mit einigen Cirrus-VGA-Adaptern
                 soll es zu Problemen kommen, aber glcklicherweise kann
                 man bei Bedarf die herkmmliche Darstellung (NewUI=Off)
                 mittels der Option EDIT /N whlen, auch ohne dafr die
                 generelle Einstellung in der Konfigurationsdatei ndern
                 zu mssen. Falls Ihnen EDIT zu langsam erscheint, knnen
                 Sie auf diese Weise auch die Geschwindigkeit steigern.

                 Fr die OS-Shell wird ber %ComSpec% der zugehrige
                 Kommandoprozessor (meist COMMAND.COM) geladen, vgl.
                 Kapitel IV.7. Dabei wird dem Prompt ber %Prompt% eine
                 '[EDIT]' Zeichenkette vorangestellt, so da man nicht
                 vergit, da man in einer temporren Shell arbeitet.
                 Fr den integrierten Hilfeverweis zu DOSBOOK mu die
                 Datei DOSBOOK.EXE auffindbar sein, die allerdings nur
                 benutzt, aber nicht direkt ausgefhrt wird.

                 Die umfangreichen Editiermglichkeiten von EDIT sollten
                 Sie sich nicht entgehen lassen und die entsprechende
                 Dokumentation wirklich durchlesen.

                 Innerhalb des Editors sind die blichen WordStar-<Ctrl>-
                 Tastenkombinationen erlaubt. Da verschiedentlich behauptet
                 wurde, EDIT wrde keine Mglichkeit besitzen, Dateien unter
                 einem neuen Namen zu speichern, hier die entsprechenden
                 Tastenkombinationen... (aber dies ist noch lange nicht
                 alles, was dieser Editor zu bieten hat):

                  <Ctrl>+<k>-<b>  Blockanfang markieren.
                  <Ctrl>+<k>-<k>  Blockende markieren.
                  <Ctrl>+<k>-<w>  Block schreiben (fragt nach Dateiname)
                                  Dies ist sogar als eigener Menpunkt
                                  unter dem Men 'Block' vorhanden!

                 Interessant ist, da EDIT whrend des Editierens sowohl
                 die aktuelle Spaltenposition als auch die absolute Position
                 innerhalb der Datei (*Zeichen*) anzeigt, eine manchmal
                 wichtige Information, die selten offeriert wird (vgl.
                 COMP.COM und FC.COM in diesem Kapitel). Leider haben die
                 Entwickler darber scheinbar vergessen, die aktuelle
                 *Zeilen*position anzuzeigen, ein Mistand, der hoffentlich
                 in einem zuknftigen Update noch ausgebessert wird (zu-
                 mindest intern ist dafr schon beim EDITOR von DR DOS 6.0
                 die entsprechende Meldung *Zeile* vorbereitet).

                 Aus Sicherheitsgrnden erlaubt EDIT nicht das Editieren
                 von Dateien mit der Endung .BAK. Diese mssen ggf. vorher
                 umbenannt werden. Ist eine bereits existierende Datei
                 (oder deren Sicherung mit der Endung .BAK) schreibge-
                 schtzt, so meldet EDIT direkt beim Start, da die Datei
                 zwar betrachtet, nicht aber editiert werden kann.
                 Ggf. mssen Sie das Read-Only-Dateiattribut vorher
                 mit ATTRIB -R entfernen, oder - umgekehrt - knnen Sie
                 das Editieren von vornherein verhindern, indem Sie das
                 Attribut setzen.

                 Interessant ist auch, da EDIT im Prinzip keine Probleme
                 mit groen Dateien (mehr als 64 KByte) hat (sollte heut-
                 zutage eigentlich selbstverstndlich sein, ist es aber
                 nicht, wie die Praxis immer wieder zeigt) und auch Texte
                 mit mehr als 255 Zeichen pro Zeile problemlos anzeigen
                 kann: Es wird zwar offensichtlich keine virtuelle
                 Speicherverwaltung eingesetzt (evtl. aber EMS), aber
                 solange der verfgbare Speicherplatz auf dem Temporr-
                 laufwerk (das ber %Temp% referenziert wird) fr zwei
                 temporre Dateien namens ED??????.$$$ ausreicht, gibt
                 es wohl keine Grenze (evtl. wurde bei DR DOS 6.0 EDITOR
                 zustzlich auch noch eine Datei EDCONFIG.$$$ erzeugt).
                 Jedenfalls konnte ich mehrere MByte groe Dateien
                 editieren, die sogar Zeilen mit mehr als 1024 Zeichen
                 enthielten. Erst wenn der Platz auf dem Temporrlaufwerk
                 nicht fr die komplette Datei ausreicht, wird EDIT unge-
                 mtlich: Wenn man beim Editieren an die entsprechende
                 Grenze stt, erscheint dauernd die Meldung 'Diskette/
                 Platte voll' und auch das rckwrtige Editieren ist nicht
                 mehr einwandfrei mglich (in manchen Fllen wird sogar die
                 Mausuntersttzung deaktiviert). Wenn Sie Sinn fr Humor
                 haben, versuchen Sie einfach einmal, eine solche Datei mit
                 EDIT von MS-DOS bis einschlielich 6.22 zu laden...

                 In diesem Zusammenhang gibt es auch einen schweren Bug in
                 EDIT (getestet bis zum Update 15 von Dezember 1996, mit
                 dem Update 15 von Januar 1996 konnte ich das Verhalten
                 bisher nicht mehr reproduzieren):

                 Wenn man eine genderte Datei zurckschreiben will,
                 bekommt die alte Datei zunchst die Endung .BAK, danach
                 wird die neue Datei zurckgeschrieben. (Eine bereits
                 existierende .BAK-Datei wird zunchst gelscht, daher
                 knnen mit DELWATCH /B:nnn auch mehrere Versionen der
                 Dateien in der Lschverfolgung gehalten werden).
                 Dies funktioniert normalerweise wunderbar, auch bei
                 riesigen Dateien. Reicht allerdings der Platz auf dem
                 Laufwerk nicht mehr aus, um die alte *und* die neue Datei
                 gleichzeitig aufzunehmen, wird die neue Datei nur soweit
                 zurckgeschrieben, wie der Platz dafr reicht (evtl. hngt
                 das Auftreten des Fehlers zustzlich noch davon ab, wo
                 das Temporrlaufwerk liegt und wo in der Datei editiert
                 wurde???)!
                 Da keine Fehlermeldung erscheint, geht man normalerweise
                 davon aus, da alles sauber funktioniert hat. In Wirklich-
                 keit ist die Datei aber abgeschnitten (und die nderungen
                 sind u.U. verloren). Solange man dies rechtzeitig bemerkt,
                 ist der Schaden noch ertrglich. Ldt man die Datei aber
                 erneut und speichert sie wieder ab, wird die alte Original-
                 datei (jetzt .BAK) mit der neuen .BAK-Datei berschrieben
                 und damit ist ein Groteil der Arbeit unwiederbringlich
                 verloren!!! Deshalb: Bis dieser Bug behoben wurde, sollten
                 Sie unbedingt darauf achten, da genug freier Platz auf dem
                 Laufwerk vorhanden ist. U.U. knnen Sie unter Zuhilfenahme
                 von Wordstar-Codes auch darauf ausweichen, die Datei auf
                 ein anderes Laufwerk zu schreiben, aber prinzipiell wird
                 die Datei auch hier abgeschnitten, wenn der Platz nicht
                 mehr reicht!!! Als partielles Workaround kann man einen
                 Batchjob schreiben, der vor dem Aufruf von EDIT den zur
                 Verfgung stehenden Platz auf dem Laufwerk berprft und
                 nach der Beendigung von EDIT ein DIR ausfhrt, mit dem
                 man nach dem Editieren schnell die Dateigren vergleichen
                 kann (um wenigstens die .BAK-Datei zu retten), etwa:

                  EDIT.BAT:

                   @ ECHO off > \dev\nul
                     REM Rudimentres Workaround fr Novells EDIT Bug
                     REM Eine zu editierende Datei mu im aktuellen Ver-
                     REM zeichnis liegen und beim Aufruf von EDIT mit
                     REM angegeben werden. Andere Optionen mssen nach
                     REM dem Dateinamen angegeben werden.
                     REM 96-11-24 -mp
                     IF NOT "NWDOS"=="%Os%" GOTO start
                     IF ""=="%1" GOTO start
                   @ FOR %%x IN (/h /H -h -H .) DO IF "%%x"=="%1" GOTO help
                     IF "/?"=="%1" GOTO help
                     IF "-?"=="%1" GOTO help
                   @ XCOPY %1 ed$$$$$$.tmp /f > \dev\nul
                     IF ERRORLEVEL 1 GOTO error
                   @ IF EXIST ed$$$$$$.tmp DEL ed$$$$$$.tmp > \dev\nul
                     GOTO start
                     :help
                   @ EDIT.COM %1 %2 %3 %4 %5 %6 %7 %8 %9
                     GOTO end
                     :error
                     IF EXIST ed$$$$$$.tmp DEL ed$$$$$$.tmp > \dev\nul
                     ECHO Novells EDIT hat eine Bug, der zum Verlust ...
                                      ... Ihrer Originaldatei fhren knnte!
                     PAUSE Sie knnen jetzt mit Ctrl+C abbrechen oder ...
                                      ... mit beliebiger Taste fortsetzen...
                     :start
                   @ EDIT.COM %1 %2 %3 %4 %5 %6 %7 %8 %9
                     IF ERRORLEVEL 1 ECHO Ein Fehler ist aufgetreten!
                     DIR *.*
                     :end

                 Update 14 (EDIT 2.01) enthlt Fixes fr das Wildcard-
                 Management in Dateiauswahlmasken (speziell die Ausgabe
                 von Unterverzeichnissen war betroffen).

                 Errorlevel:
                 (unvollstndig, nur fr Novell DOS 7 verifiziert)

                  0  ok
                  3  Benutzerabbruch (<Ctrl>+<c> etc.)
                  4  Syntax-Fehler

   FASTOPEN.COM  Dummy-Befehl, siehe Kapitel III.1. bei FASTOPEN=.

   FBX.EXE       Benutzt eine eigene Konfigurationsdatei FASTBACK.CFG
                 (Vorlage in DEFAULT.CFG) in %NWDOSCFG%, weicht also
                 von den sonst bei Novell DOS 7 blichen .INI-Dateien ab.
                 Auerdem werden im c:\nwdos\ Verzeichnis Benutzer-
                 konfigurationen als .FB (DEFAULT.FB) abgelegt.
                 (DEFAULT.FB wird offenbar bei jedem Start als Makro
                 abgearbeitet.)

                 Beim Customizing von FastBackup fr Novell DOS ist die
                 Mglichkeit entfernt worden, echte Makrodateien abzu-
                 speichern. Nichtsdestotrotz kann FBX FB-Makrodateien mit
                 der Endung .FB oder .FBM abarbeiten, wenn man diese als
                 Aufrufparameter angibt. Hinweise dazu kann man dem bei
                 Novell DOS beiliegenden HWTEST.FBM entnehmen, das einen
                 Hardware-Test des DMA-Controllers durchfhrt, fr den
                 man eine leere Diskette bentigt. Das Resultat dieses
                 Tests wird offenbar teilweise auch in die .FB-Datei
                 bertragen, die ber %FBP_User% referenziert wird.
                 Genaueres ist allerdings noch nicht untersucht.
                 In jedem Fall knnen Sie in diesen Dateien Eintrge wie

                  DMASpeed("Niedrig")
                  DMAXMSDisable("Aus")

                 per Hand dem Ergebnis des Tests anpassen. Mgliche Werte
                 sind "Niedrig", "Mittel" oder "Hoch", bzw. "Aus" oder
                 "Ein". Auf diese Weise knnen Sie aus Ihrem Rechner die
                 optimale Leistung herausholen.
                 (Fr Besitzer einer externen Fast-Backup Express Version:
                 bezglich der vielfltigen Anpassungsmglichkeiten via
                 Makrodateien siehe diesbezgliche Anleitung).

                 FBX untersttzt sowohl in der DOS- als auch der Windows-
                 Version auch einige Diskettensonderformate (wie 400 KByte,
                 800 KByte oder 1,28 MByte (bei 5,25") oder 800 KByte,
                 1,52 MByte oder Macintosh HFS 1,44 MByte (bei 3,5"),
                 siehe auch Kapitel III.1. bei DRIVPARM=). Der Treiber
                 FASTBACK.386 wird nur fr Backup/Restore auf lokalen
                 Floppies in Windows' Erweiterten 386er Modus bentigt
                 (siehe Kapitel VIII.1.). Der Treiber kann auch unter dem
                 multitaskenden TASKMGR geladen werden, ob dies aber
                 notwendig ist, ist nicht geklrt (siehe Kapitel VII.2.).

   FC.COM        FC verwendet die Dateiendung als Kennzeichen fr den
                 Dateityp und entscheidet daraufhin, ob default-mig ein
                 Binr- oder ASCII-Vergleich durchgefhrt werden soll.

                 FC vergleicht folgende Dateitypen standardmig binr:
                 .EXE, .COM, .SYS, .OBJ, .BIN und .LIB. Allerdings wird
                 im Gegensatz zu MS-DOS FC zustzlich auch .CMD binr
                 verglichen (dies wird in der FC /? Hilfe unterschlagen).
                 .CMD ist unter CP/M und Multiuser DOS eine Endung fr
                 ausfhrbare Dateien, ist aber auch eine gltige Endung
                 fr Klarschrift-Skripte unter OS/2.
                 Bei Binrvergleichen werden Unterschiede als absolute
                 Positionsangaben ausgegeben, eine Angabe die man u.U.
                 fr Novells EDIT benutzen kann, um die Fundstelle schnell
                 zu lokalisieren (obwohl EDIT fr echte Binrdateien
                 eigentlich nicht geeignet ist), siehe bei EDIT.COM in
                 diesem Kapitel.

                 Die Kommandozeilen-Syntax untersttzt auch zusammengefate
                 Parameter, wie /NP statt /N /P. Parameter mit Zahlenangaben
                 mssen in diesem Fall allerdings hinten stehen, denn sonst
                 knnte es zu Doppeldeutigkeiten kommen.

                 FC bietet neben den dokumentierten Parametern noch zwei
                 weitere undokumentierte Parameter fr ASCII-Vergleiche:

                  /G:n   Aus Kompatibilitt zu DR DOS: Zeilenanzahl, die
                         vor einer Synchronisation bereinstimmen mu.
                         Der Standard war bei DR DOS 6.0 noch 5, aber da
                         Novells FC aus Kompatibilittsgrnden an die
                         ansonsten identische, erst spter bei MS-DOS
                         eingefhrte Option /n (d.h. einfach nur die Zahl n)
                         angepat wurde, und dort der Standard auf 2 ein-
                         gestellt ist, drfte dies auch hier gelten.
                         Der Doppelpunkt ist optional. Die Angabe /G ohne
                         Zahl wird zurckgewiesen.
                  /LB:n  Aus Kompatibilitt zu MS-DOS: Gibt die Anzahl
                         der Zeilen des internen Puffers an, die fr
                         die Synchronisation bereitgestellt werden. Der
                         Default-Wert ist bei MS-DOS/PC-DOS/DR DOS und
                         wohl auch Novell DOS 7 100 Zeilen.
                         Da /LB:n nur bei ASCII-Vergleich verwendet wird,
                         gibt es auch keine Doppeldeutigkeiten mit dem
                         Parameter /B, wenn mehrere Parameter zusammen-
                         gefat werden.

                 Leider ist die maximale Zeilenlnge bei ASCII-Vergleichen
                 auf 255 Zeichen beschrnkt (getestet mit Update 15), in
                 diesem Punkt kann MS-DOS' FC ausnahmsweise einmal mehr...

                 CCI Multiuser DOS 7.22 Gold kennt FC.COM immer noch
                 nicht, dort wird diese Funktion aber weitestgehend von
                 einer um entsprechende Funktionen erweiterten Fassung
                 von COMP.COM bernommen.

                 Errorlevel (unvollstndig):

                 (nur fr Novell DOS 7 verifiziert!)

                  0  normaler Ablauf, egal ob Dateien gleich oder ungleich
                     sind, oder Hilfeschirm
                  1  Datei(en) nicht gefunden oder falsche Aufruf-Syntax
                  3  Benutzerabbruch (<Ctrl>+<c> etc.)

   FDISK.COM     Im Gegensatz zum entsprechenden MS-DOS Kommando arbeitet
                 Novells FDISK (als auch das DR DOS FDISK) nicht nur als
                 Festplattenpartitionierer, sondern formatiert die Parti-
                 tionen auch gleich, so da man sich FORMAT (/X bei
                 Novell DOS) sparen kann.

                 Die undokumentierte Option /MBR (und andere, siehe
                 MSDOSTIP.TXT) von MS-DOS bietet Novells FDISK nicht
                 (offenbar aber einige Fassungen von CCI Multiuser DOS),
                 dafr ist aber seit DR DOS 6.0 genau diese Funktion direkt
                 aus dem FDISK-Men heraus erreichbar (Master-Ladesatz
                 schreiben). Dabei wird (bei Novell DOS) der alte Boot-
                 Sektor in einer (versteckten) Datei namens C:\OLDMBR.BIN
                 gesichert und kann auch wieder zurckgeschrieben werden,
                 solange man diese Datei nicht lscht.
                 Hilfreich ist diese Funktion bei Virenbefall (siehe Kapitel
                 II.4 bei SDRES) oder zum Initialisieren einer nagelneuen
                 Festplatte, die partout nicht booten will (auch nicht bei
                 Floppy-Boots, siehe Kapitel II.2.).
                 Auerdem kann man das Ganze natrlich auch andersherum
                 verwenden, um einen speziell prparierten Master-Ladesatz
                 auf die Festplatte zurckzuschreiben, ohne sich die Finger
                 mit DEBUG etc. schmutzig machen zu mssen.
                 Achtung: Da es hier immer wieder Verwechselungen gibt:
                 Der Master-Boot-Record (MBR) ist nicht dasselbe wie der
                 Boot-Record (jeden Laufwerks), der z.B. mit SYS geschrieben
                 wird (siehe bei SYS.COM in Kapitel II.4.). Wird ein neuer
                 MBR geschrieben, werden auch Boot-Manager wie Linux' LILO,
                 der OS/2 Boot-Manager oder der PTS/Boot-Manager abgehngt
                 und mssen wieder neu installiert werden. Das gleiche gilt
                 offenbar auch fr MS Windows95. Eine Boot-Diskette mit den
                 notwendigen Tools sollte also vorhanden sein!

                 Es gibt seit DR DOS 3.41 einen bei Novell DOS 7 aus-
                 schlielich im DOSBOOK dokumentierten Parameter /D, der
                 beim Aufruf von FDISK angegeben werden mu, um auch das
                 Lschen von Nicht-DOS-Partitionen innerhalb des Mens zu
                 erlauben (Die Vorgehensweise ist identisch zum Lschen
                 einer DOS-Partition). Normalerweise bentigt man zum
                 Lschen von Nicht-DOS-Partitionen das entsprechende
                 Programm des jeweiligen Betriebssystems (sollte man
                 sicherheitshalber auch verwenden, falls mglich). Ob
                 dieser Parameter allerdings wirklich noch existiert,
                 ist noch nicht genau geklrt (hab's einfach noch nicht
                 selbst gebraucht... DR DOS 6.0 FDISK hatte diese Funktion
                 allerdings mit Sicherheit noch.).

                 Ein paar generelle Hinweise zur Partitionierung von
                 Festplatten (gleichermaen auch fr MS-DOS etc. gltig):

                 Mchten Sie - als Programmierer - Ihre Programme unter
                 einer alten DOS-Version (vor 4.0) berprfen, mssen Sie
                 alle dafr notwendigen Dateien auf der ersten Partition
                 der ersten Festplatte unterbringen. Diese Partition darf
                 nicht grer als 32 MByte sein, weil ltere DOS-Versionen
                 Partitionen nur bis zu dieser Gre handhaben knnen
                 ("FAT12").

                 Fr heutige Rechner existiert eine hnliche Beschrnkung
                 bei einer Partitionsgre von 504 MByte (aber nicht ver-
                 ursacht durch DOS, das mit seiner "FAT16" bis zu zwei
                 GigaByte groe Partitionen verwalten kann). Selbst wenn
                 Sie diese Gre nur minimal berschreiten, werden Sie -
                 ohne zustzliche Treiber oder ein entsprechendes BIOS -
                 nicht einwandfrei auf eine solche Partition zugreifen
                 knnen (Vor DR DOS 6.0 Update 1992 kamen noch nicht ein-
                 mal FDISK mit greren Partitionen sauber zurecht).
                 Novell DOS 7 gibt hier recht aussagekrftige Meldungen,
                 bei MS-DOS kann es aber vorkommen, da alles scheinbar
                 anstandslos funktioniert, Sie aber spter permanent
                 unerklrliche Probleme beim Zugriff auf diese Platte
                 haben (Bad-Sectors etc.). Wenn Sie den Speicher fr
                 einen speziellen Treiber sparen wollen oder von mehreren
                 Betriebssystemen aus auf die Partition zugreifen wollen,
                 sollten Sie in jedem Fall unter dieser Schranke bleiben.

                 Ohne hier ins Detail gehen zu wollen, sollten Sie sich
                 genau berlegen, wieviele Partitionen Sie einrichten
                 wollen. In der Regel ist die Wartung eines Systems
                 leichter, wenn Sie handliche Partitionsgren einstellen,
                 die z.B. noch jeweils komplett auf ein Streamer-Band
                 passen. Gerne werden runde MByte-Zahlen als Partitions-
                 gren gewhlt. Man mu sich dann aber klar machen, da
                 im FAT-Dateisystem grere Partitionen auch grere
                 Cluster-Einheiten vorschreiben. Grere Cluster (d.h.
                 mehrere zusammenhngend adressierte Sektoren auf der
                 Platte) haben den Vorteil des schnelleren Zugriffs (bei
                 Dateien, die wesentlich grer sind als die Cluster-Gre),
                 aber den Nachteil des groen Verschnitts bei Dateien, die
                 kleiner sind.
                 Betrgt die Cluster-Gre z.B. 8 KByte, so werden auf der
                 Festplatte auch fr eine nur ein Byte (als auch fr eine
                 8 KByte) groe Datei 8 KByte belegt, fr eine 8 KByte +
                 1 Byte (8097 Bytes) groe Datei direkt 16 KByte, usw.
                 Der berhang betrgt im Mittel also 4 KByte pro Datei!
                 Haben Sie also auf einem Laufwerk hauptschlich viele
                 kleine Dateien, so sollten Sie die Cluster-Gre auch
                 mglichst klein halten, also eine eher kleine Partition
                 einrichten. Umgekehrt ist fr eher wenige, dafr aber
                 sehr groe Dateien eine hhere Cluster-Gre wegen der
                 hheren Zugriffsgeschwindigkeit von Vorteil. Dies gilt
                 in besonderem Mae fr Laufwerke, auf denen solche
                 Riesendateien wie die Windows-Auslagerungsdatei oder
                 - als Host-Laufwerke - die Volume-Dateien eines kompri-
                 mierten Laufwerks liegen (komprimierte Laufwerke ver-
                 wenden intern meist eine dynamische Clusterisierung,
                 d.h. sie sind fr die Speicherung vieler kleiner Dateien
                 besonders effizient). U.U. ist es also mglich, da Sie
                 effektiv *mehr* Dateien (und Daten) auf eine etwas
                 *kleinere* Partition bekommen, als auf eine etwas
                 grere Partition, die dafr aber eine grere
                 Cluster-Gre aufweist. Besonders an den Grenzwerten
                 zwischen verschiedenen Cluster-Gren sollten Sie also
                 bewut eine etwas kleinere oder grere Partitions-
                 gre whlen (wobei ich normalerweise eine ganz knapp
                 unter dem nchsten Sprung der Cluster-Gre liegende
                 Partitionsgre bevorzuge).

                 Normalerweise gilt folgende Zuordnung, wobei teilweise ein
                 gewisser Spielraum besteht, der aber von den DOS-eigenen
                 Programmen nicht ausgewhlt werden kann.

                 Partitionsgre    FAT-Gre Sektoren/Cluster Cluster-Gre
                 ------------------ --------- ---------------- -------------
                      bis 15,9 MByte  12 Bit           8            4 KByte
                   16 -  127,9 MByte  16 Bit           4            2 KByte
                  128 -  255,9 MByte  16 Bit           8            4 KByte
                  256 -  511,9 MByte  16 Bit          16            8 KByte
                  512 - 1023,9 MByte  16 Bit          32           16 KByte
                 1024 - 2047,9 MByte  16 Bit          64           32 KByte

                 In obigem Beispiel wre blicherweise eine Partitionsgre
                 von 255,9 MByte einer Partition von 256 MByte vorzuziehen,
                 weil Sie dort im Schnitt einige MegaByte mehr Daten unter-
                 bringen knnen (so paradox es auf den ersten Blick klingt)!
                 Die Konsequenzen einer falschen Wahl knnen Sie sich anhand
                 obiger Tabelle leicht selbst ausmalen (von 100% Ausnutzung
                 der Plattenkapazitt im optimalen Fall bis hin zu 99,9%
                 Verschwendung im Worst-Case ist alles mglich...)
                 Unter diesem Gesichtspunkt ist brigens die Einrichtung von
                 komprimierten Laufwerken oft selbst dann von Vorteil, wenn
                 die auf dem Laufwerk gespeicherten Daten nur wenig kom-
                 primiert werden knnen.

                 Die maximal zulssige Partitionsgre ist bei Novells
                 FDISK offiziell ein GigaByte, die maximal handhabbare
                 Laufwerksgre betrgt zwei GigaByte. Da aber DR DOS 6.0
                 schon offiziell Partitionsgren bis zwei GigaByte unter-
                 sttzte, vermute ich, da auch Novell DOS 7 damit zurecht
                 kommt. Auch MS-DOS/PC-DOS (bis 7) schaffen eine maximale
                 Partitionsgre von zwei GigaByte. (Mit MS Windows95b,
                 dem Update 2 zu MS Windows95 (Ende 1996) wurde ein neues
                 FAT32-Modell eingefhrt werden, das unter Einbung der
                 Kompatibilitt diese Systemgrenze des FAT16-Modells lst.)

                 Novells FDISK arbeitet nicht nur mit Novell DOS 7
                 (IBMBIO.COM, IBMDOS.COM), sondern untersttzt in irgend-
                 einer Weise auch eine Reihe der alten Digital Research
                 Betriebssysteme (CCPM.SYS, DOSPLUS.SYS, NETPLUS.SYS,
                 CCPMNET.SYS, CPCDOS.SYS, CDOS.SYS, DOS.SYS, DRDOS.SYS,
                 FLEX286.SYS, FLEX386.SYS). Dazu berprft FDISK auf
                 Multiuser-Fhigkeiten des Betriebssystems und verwendet
                 bei Bedarf sogar eine Reihe der alten CP/M-86 System-
                 aufrufe. Anscheinend gibt es eine Mglichkeit, eine
                 diesbezgliche Auswahl zu treffen (bisher aber noch
                 unbekannt, vielleicht in Verbindung mit /D).
                 Auch OS/2-, NetWare- und Unix-Partitionen werden erkannt,
                 im Zweifelsfall wird die ID ausgegeben (bei MS-DOS FDISK
                 lediglich lapidar Nicht-DOS, obwohl offenbar intern auch
                 andere Typen erkannt werden knnen???).

                 Menbedienung: Das Men kann man mit <Esc> verlassen.

                 Achtung: Je nach Situation ndert sich die Durch-
                 nummerierung der einzelnen Menpunkte, deshalb sollte
                 man sich vor jedem Tastendruck immer erst versichern,
                 da man die richtige Ziffer drckt. Die Folgen einer
                 Fehlbedienung wren katastrophal!!! Die Menfhrung
                 ist etwas anders als beim Gegenstck von MS-DOS,
                 meiner Meinung nach allerdings sinnvoller.

                 Update 15 (FDISK 1.76) enthlt eine nderung, die dafr
                 sorgt, da die landesbergreifende Angabe von Ja/Nein-
                 Zeichen ber Eingabeumleitung vereinfacht wird, indem
                 ab sofort alle anderen Zeichen als die Ja/Nein-Zeichen
                 zurckgewiesen werden (siehe auch Kapitel II.16.). Auf
                 diese Weise ist es z.B. fr PC-Hndler besonders einfach,
                 eine Festplatte automatisch ohne Interaktion einzurichten.

                 Errorlevel:
                 (unvollstndig, nur fr Novell DOS 7 verifiziert)

                  0  normale Bearbeitung
                  3  Benutzerabbruch (<Ctrl>+<c> etc.)

   FILELINK.EXE  Um das Kommando FILELINK SLAVE abzubrechen, kann man kurz
                 <Ctrl>+<c> drcken. Nach einiger Zeit stoppt FILELINK dann.
                 Achtung: Wenn der Tastaturpuffer berluft, kann das zum
                 Hngen des Rechners fhren (evtl. mit Update 13 behoben).

                 Alle Langformen der Aufrufparameter knnen auch als drei-
                 buchstabige Abkrzungen geschrieben werden:

                  DIRECTORY : DIR
                  DUPLICATE : DUP
                  RECIEVE   : REC
                  TRANSMIT  : TRA
                  SETUP     : SET
                  SLAVE     : SLA
                  QUIT      : QUI

                  GETFL??
                  FLDUP??

                 Holt seine Konfigurationseinstellungen aus zwei unter-
                 schiedlichen Konfigurationsdateien:

                 NWDOS.INI in %NWDOSCFG%:

                 Die Direktiven aus [FILELINK] (hier undokumentiert) oder
                 aus [COLORS] steuern die Bildschirmdarstellung:

                  CurrentColor=
                  NewUI=on|off

                 Auerdem wird die Einstellung ColorSetX= aus [COLORS]
                 ausgewertet (X=<CurrentColor> aus 1..9).

                 FILELINK.CFG in %NWDOSCFG% (undokumentiert):

                 Enthlt in der ersten Zeile die Hardware-Einstellungen wie

                  COMx:baudrate<ASCII-13> mit x       =1..2
                                              baudrate=115200, 57600, 38400,
                                                       19200, 9600, 4800,
                                                       2400, 1200, 600, 300,
                                                       150, 110.
                  LPTy<ASCII-13>              y       =1..3

                 Bemerkung:

                  Wenn man diese Konfigurationsdatei per Hand modifiziert,
                  sind auch andere Werte fr COMx und LPTy mglich, etwa
                  COM6 oder LPT4. FILELINK scheint diese Werte dann auch
                  zu akzeptieren, bekommt aber evtl. Schwierigkeiten beim
                  Hardware-Zugriff. Deshalb mu man diese Einstellungen
                  auch berprfen, wenn man vorher verwendete Schnitt-
                  stellen aus seinem Rechner entfernt hat.

                 Mchte man pawortgeschtzte Dateien bertragen, so
                 fragt FILELINK nach dem Pawort. Am Ziel ist die Datei
                 nicht mehr pawortgeschtzt, hat aber nach wie vor das
                 Hidden-Attribut gesetzt. Das Kopieren von Dateien in
                 pawortgeschtzten Verzeichnissen ist auch mglich,
                 wenn man *vorher* in dieses Verzeichnis verzweigt (siehe
                 Kapitel II.4. bei PASSWORD und Kapitel II.9.).

                 Update 13 (FILELINK 3.01) enthlt ein Bugfix fr unmoti-
                 vierte Systemhnger und Verzeichnisse mit mehr als 1000
                 Eintrgen.

   FIND.EXE      Kommt auch mit Dateien grer 63 KByte problemlos zurecht
                 (was fr einige MS-DOS/PC-DOS Implementierungen ein
                 echtes Problem darstellt).

                 Normalerweise wird der Suchtext bei FIND in doppelte
                 Anfhrungszeichen eingerahmt, um ihn sicher von den rest-
                 lichen Parametern zu unterscheiden. Solange dadurch keine
                 Doppeldeutigkeiten auftreten, sind diese Anfhrungszeichen
                 jedoch optional, d.h. in erster Linie dann, wenn der Such-
                 text keine Leerfelder enthlt und als erster Parameter
                 angegeben wird.

                 FIND durchsucht beliebige Dateien, allerdings wird die
                 Suche in Binrdateien bei einem ^Z (altes Dateiendezeichen)
                 in der Dateien abgebrochen.

                 Interessant ist auch, da FIND es standardmig nicht
                 sehr genau mit der Umwandlung von Gro- und Kleinschreibung
                 nimmt. Der genaue Mechanismus dahinter ist noch nicht ganz
                 klar, aber ein Treffer kann auch dann erfolgen, wenn der
                 Suchtext nicht nur in Gro- oder Kleinschrift vom ge-
                 fundenen Text abweicht, sondern auch, wenn er 'nicht
                 nher zuzuordnende' Sonderzeichen enthlt, d.h. im
                 Zweifelsfall findet FIND mehr Treffer, als eigentlich
                 vorhanden. Eine manchmal sicherlich praktische Eigenart.

                 Bezglich der sicheren Verwendung in Batchjobs siehe
                 Kapitel IV.6.

                 Errorlevel (unvollstndig):

                  (nur fr Novell DOS 7 verifiziert):

                   0  normale Bearbeitung
                      bei MS-DOS 6.2: Muster mindestens einmal gefunden
                      bei Novell DOS auch: keine Dateien zu durchsuchen
                   1  nur MS-DOS: normale Bearbeitung, aber Muster nicht
                                  gefunden
                   2  nur MS-DOS: Falsche Parameter
                  31  Benutzerabbruch (<Ctrl>+<c> etc.), falsche Parameter
                      oder kein Suchtext (Novell DOS 7)

   FORMAT.COM    Der Parameter /F:format erlaubt die Formatangabe in vielen
                 Schreibweisen, die grtenteils nicht dokumentiert sind:

                                                                    5,25 3,5
                 2880KB, 2880K, 2880, 288, 2.88MB, 2.88M, 2.88        -   x
                 1440KB, 1440K, 1440, 144, 1.44MB, 1.44M, 1.44        -   x
                 1230KB, 1230K, 1230, 123, 1.23MB, 1.23M, 1.23 (1)    x   -
                 1220KB, 1220K, 1220, 122, 1.22MB, 1.22M, 1.22 (2)    x   -
                 1200KB, 1200K, 1200, 120, 1.2MB , 1.2M , 1.2  (3)    x   -
                  720KB,  720K,  720                                  -   x
                  640KB,  640K,  640                           (4)    x   -
                  360KB,  360K,  360                                  x   -
                  320KB,  320K,  320                                  x   -
                  180KB,  180K,  180                                  x   -
                  160KB,  160K,  160                                  x   -

                 (1) und (4) undokumentierte Formate fr 5.25 Zoll
                             Diskettenlaufwerke, untersttzt von Novells
                             FORMAT
                 (2) und (3) andere Schreibweise fhren zu leichten
                             Differenzen in der Kapazitts*angabe*, nicht
                             jedoch in der Kapazitt

                 brigens: Wenn Sie 'berformatierte' Disketten (FDFORMAT,
                 2M, VGACOPY, etc.) benutzen, mssen Sie normalerweise eine
                 'Lesehilfe' wie VGAREAD.EXE oder FDREAD whrend des Bootens
                 einbinden, um transparent auf diese Disketten zugreifen zu
                 knnen.
                 Offenbar kann Novell DOS zumindest einige dieser Sonder-
                 formate auch ohne diese zustzlichen TSRs lesen und
                 schreiben. Am besten ist es, Sie probieren einfach
                 einmal aus was passiert, wenn Sie Ihren Treiber weglassen
                 (und berichten mir dann das Resultat...?). (Zumindest auf
                 1,77 MByte formatierte 1,44 MByte Floppies funktionierten
                 bei mir ohne zustzliche Treiber, genaueres habe ich
                 allerdings noch nicht untersucht.
                 Novells FORMAT ist auch in der Lage, (einige) solche ber-
                 formate zu formatieren, wenn Sie die Parameter /N:sectors
                 und /T:tracks angeben. Eine Auflistung gngiger Sonder-
                 formate findet sich bei DRIVPARM= in Kapitel III.1.)

                 Neben den dokumentierten Parametern existiert bei
                 Novell DOS 7 noch ein undokumentierter Parameter /QUIET,
                 der alle Meldungen unterdrckt und FORMAT automatisch
                 ablaufen lt. Offenbar war dieser Parameter u.a. fr
                 Utilities wie BACKUP.COM gedacht, wird aber dort nicht
                 verwendet. /QUIET mu als letzter Parameter angegeben
                 werden, denn alle Parameter nach /QUIET werden ignoriert.
                 Den Parameter /C (Check Bad) von MS-DOS 6.22 FORMAT bietet
                 Novells FORMAT nicht, ebenso fehlen alle undokumentierten
                 MS-DOS 4.00+ Parameter: /AUTOTEST, /BACKUP, /SELECT (aber
                 genau fr diese Zwecke lt sich Novells Parameter /QUIET
                 gut verwenden, siehe auch MSDOSTIP.TXT). Um nur die Frage
                 nach dem Volume-Namen zu unterdrcken, geben Sie bei
                 Novell DOS einfach den Parameter /V ohne Wert an.

                 FORMAT kann nicht auf Netzlaufwerke und per ASSIGN, SUBST
                 oder JOIN umgeleitete Laufwerke angewendet werden.

                 Die Option /B ist bei Novell DOS 7 undokumentiert, da seit
                 langem (wohl ab DR DOS 3.41+, sicher aber DR DOS 5.0+)
                 berflssig. Dennoch ist sie in vollem Umfang funktions-
                 fhig. Sie diente frher (und dient teilweise selbst noch
                 bei MS-DOS 6.22 und PC-DOS 7) dazu, Platz fr die System-
                 dateien auf dem Medium zu reservieren (zum spteren
                 'SYS'en' alter DOS-Versionen). Da bei Novell DOS die
                 Systemdateien aber an beliebiger physikalischer Stelle
                 auf dem Medium liegen knnen, ist dies nicht mehr not-
                 wendig. Bei MS-DOS 6.0+ wurde die Beschrnkung bei Floppies
                 aufgehoben, bei Festplatten gilt sie aber offenbar in
                 einigen Fllen immer noch, obwohl deren Dokumentation das
                 Gegenteil behauptet (die Dateien mssen zwar nicht mehr
                 direkt aufeinander folgen, aber einige Regionen in den
                 Systemdateien drfen nicht fragmentiert auf dem Medium
                 gespeichert werden). Allerdings bewirkt diese Option auch,
                 da die Floppy zwar mit 9 Sektoren formatiert wird, davon
                 aber nur 8 verwendet werden (nur bei 5,25" Laufwerken).

                 Aus Sicherheitsgrnden (und weil diese Funktion bei DR DOS/
                 Novell DOS schon in FDISK enthalten ist), kann man Fest-
                 platten nur formatieren, wenn man zustzlich /X angibt.
                 Wird daraufhin ein Schnell-Format angewendet, sollte man
                 die Formatierung - zumindest unmittelbar danach - mit
                 UNFORMAT.EXE wieder rckgngig machen knnen, sofern
                 gengend freier Platz auf dem Laufwerk vorhanden war, um
                 die Informationen abzulegen (wohl in einem Block namens
                 UNFORMATDR, der die Kennung JS10 enthlt). Mal ehrlich,
                 wem ist es noch nicht passiert, versehentlich die falsche
                 Festplatte zu formatieren...? ;-)
                 Sollte UNFORMAT trotzdem nicht funktionieren, Ruhe
                 bewahren und bei UNFORMAT.EXE weiterlesen.

                 FORMAT /S bertrgt die Systemdateien (IBMBIO.COM,
                 IBMDOS.COM und wohl auch STACKER.BIN) auf das formatierte
                 Medium, dabei wird allerdings MS-DOS DBLSPACE.BIN/
                 DRVSPACE.BIN nicht bercksichtigt, mu also ggf. nach-
                 trglich umkopiert werden. Zustzlich wird wohl auch
                 DRMDOS.SYS fr DR DOS Multiuser-Varianten untersttzt.
                 Boot-Sektoren knnen wohl vom Typ "NWDOS 7.0" oder
                 "OSLOADER" sein (knnte was mit Novells Multi-Boot-
                 Utility LOADER.ZIP zu tun haben???). FORMAT /S bernimmt
                 den Datumsstempel der Originalsystemdateien (bei DR DOS
                 wird - bis auf DR DOS 6.0 Updates nach 1992 - das aktuelle
                 Datum verwendet).

                 FORMAT /U wird zum Formatieren eines Mediums ohne Restau-
                 rationsmglichkeit verwendet und ist damit auch besonders
                 fr ATA-Cards (PCMCIA) und - in Verbindung mit den Optionen
                 /T:tracks /N:sectors - fr SRAM-Cards (PCMCIA) verwendbar.

                 Eine bersicht ber die Hardware-Parameter fr be-
                 stimmte Diskettenformate finden Sie in Kapitel III.1.
                 bei DRIVPARM=.

                 Update 13 (FORMAT 2.06) enthlt eine verbesserte Version,
                 die nur noch dann formatiert, wenn dies unbedingt notwendig
                 ist.

                 Errorlevel (unvollstndig):

                 (verifiziert fr MS-DOS/PC-DOS 4.0+, Novell DOS 7 und
                 DR DOS 6.0)

                  0  normales Ende
                  3  Benutzerabbruch durch <Ctrl>+<c> etc.
                  4  Fataler Fehler (Datentrger, falscher Name)
                  5  Antwort 'Nein' auf Frage, ob Festplatte formatiert
                     werden soll

   GRAFTABL.COM  Entgegen vielen anderslautenden Meldungen in der Literatur
                 wird dieser Treiber nur fr CGA-Karten und - mit ent-
                 sprechender zustzlicher BIOS-Untersttzung durch einen
                 Spezialtreiber - fr HGC-Karten bentigt, wenn auch im
                 Grafikmodus die ASCII-Zeichen 128 bis 255 dargestellt
                 werden sollen. (Oft wird behauptet, GRAFTABL wre auch
                 fr den Textmodus und/oder auf neueren Grafikkarten not-
                 wendig. Dies ist jedoch nicht der Fall, obwohl man GRAFTABL
                 in speziellen Fllen zweckentfremden knnte...)

                 Da die Bitmaps der Zeichen 128 bis 255 je nach gewnschter
                 Codeseite variieren, mu GRAFTABL mehrere Zeichenstze im
                 Format 8x8 enthalten (jeweils nur die obere Hlfte des
                 Zeichensatzes).

                 Auf den ersten Blick liegt mit GRAFTABL also etwas wie ein
                 "Codeseiten-Support des kleinen Mannes" vor, der leider
                 nur im Grafikmodus sichtbar werden kann. Daher drfte
                 GRAFTABL auch nicht in die Umschaltung von Codeseiten
                 mittels MODE und CHCP einbezogen worden sein (nicht
                 berprft), obwohl dies fr den Grafikmodus durchaus
                 mglich wre (interessanterweise testet zumindest Novells
                 DISPLAY.SYS aber auf GRAFTABL ab...).

                 Ein Standard-Font 8x8 (fr die Hardware-Codeseite 437)
                 mit den ASCII-Zeichen 0 bis 127 befindet sich immer im
                 Haupt-BIOS des Rechners, das immer MDA (HGC) und CGA
                 untersttzt. Und im Textmodus werden die Bitmaps fr die
                 einzelnen Zeichen bei MDA, HGC und CGA direkt aus einem
                 Zeichensatz-ROM geladen, der nicht etwa ein BIOS enthlt.
                 Insofern kann man hier ohne Hardware-Manipulation sowieso
                 keine Zeichen umdefinieren. (CGA-Karten besitzen meist
                 einen Jumper, um zwischen zwei im ROM eingebrannten Fonts
                 fr Codeseite 437 zu wechseln und bei neueren HGC-Karten
                 kann man hufig ein eigenes EPROM statt des mitgelieferten
                 oder bereits im Controller integrierten ROMs einsetzen.
                 HGC+ RAMFONT Karten erlauben zwar installierbare Zeichen-
                 stze, werden aber von DOS nicht gesondert behandelt, weil
                 DOS sich dabei auf die Video-BIOS-Untersttzung (MCGA/EGA/
                 VGA) verlt. Dies bietet eine HGC+ RAMFONT Karte nicht,
                 liee sich bei Caldera OpenDOS relativ leicht mit einem
                 zustzlichen Treiber nachrsten...)
                 Bei Grafikkarten mit eigenem BIOS (MCGA/EGA/VGA) residieren
                 dort sowieso verschieden viele Fonts in voller Lnge.
                 Auerdem erlauben diese Karten auch installierbare Text-
                 Fonts und damit den Einsatz von DISPLAY.SYS. Daher ist dort
                 GRAFTABL berflssig. Selbst wenn Sie eine MDA-, HGC- oder
                 CGA-Karte neben einer MCGA-, EGA- oder VGA-Karte instal-
                 liert haben, brauchen Sie GRAFTABL nicht zu laden. Das
                 Video-BIOS der hherentwickelten Grafikkarte stellt den
                 hheren Anteil des 8x8-Fonts nmlich auch fr die andere
                 Grafikkarte zur Verfgung.
                 Bei GRAFTABL sind die Zeichensatz-Daten im Treiber selbst
                 enthalten, knnen also nicht erweitert werden. (Notfalls
                 kann man aber auch den Treiber patchen, jeder der halben
                 Fonts ist exakt 1024 Zeichen lang, wobei der residente
                 Treiber ca. 1.5 KByte gro ist.)

                 Vielleicht werden Sie jetzt noch einwerfen, da das Video-
                 BIOS hherer Grafikkarten aber nur Fonts fr die Codeseite
                 437 enthlt. Richtig, aber glcklicherweise knnen die
                 Fonts aus .CPI-Dateien sowohl im Text- als auch im Grafik-
                 modus verwendet werden, so da auch in diesem Fall GRAFTABL
                 berflssig bleibt.

                 Fr die Angabe der Statusinformationen sind folgende
                 Optionen zulssig: /S und /STATUS, andere Formen dieser
                 Option sind ungltig (bei MS-DOS ist noch /STA mglich).

                 Interessanterweise werden die Namen der Codeseiten auch
                 in der deutschen Version in Englisch ausgegeben (437="USA",
                 850="Multilingual", 860=Portuguese, 863="Can French" und
                 865="Nordic") ausgewiesen (bei MS-DOS 6.2x heit 850=
                 "Multi-lingual" und 863="Can. French", auerdem existiert
                 dort noch eine weitere Codeseite 852="Latin-2"), siehe
                 auch Kapitel II.16.

                 Glcklicherweise scheint MS-DOS GRAFTABL auch unter
                 Novell DOS zu laufen.

                 Errorlevel (dokumentiert fr Novell DOS 7, gelten auch
                            fr MS-DOS 4.0+ und OS/2 2.0+):

                  0  GRAFTABL erfolgreich geladen
                  1  GRAFTABL bereits geladen, Codeseite aktualisiert
                  2  Dateifehler
                  3  Parameterfehler, keine weitere Aktion
                  4  Falsche Version des Betriebssystems

   GRAPHICS.COM  Dieser Treiber ermglicht Bildschirm-Hardcopies mit <Print>
                 auch im Grafikmodus. Ohne GRAPHICS (oder Fremdtreiber) sind
                 die Resultate im Grafikmodus unbrauchbar, lediglich der
                 Textmodus wird default-mig untersttzt. Der residente
                 Treiber kostet ca. 4,5 KByte Speicher.

                 Untersttzt - wie wenig bekannt - mit Option 'COLOR' auch
                 Farbdrucker (8 Farben mit CMY-Farbband fr Cyan, Magenta,
                 Gelb und Schwarz). Neben den dokumentierten Parametern
                 erlaubt GRAPHICS noch einige Einstellungen mehr:
                 Neben 'COLOR' fr Farbdrucker, kann man auch die bei MS-DOS
                 gewohnten Schlsselworte 'COMPACT' fr den IBM PC Compact
                 Printer oder 'GRAPHICS' fr den IBM PC Graphics Printer
                 oder Kompatible angeben.
                 Die bei Novell DOS ebenfalls undokumentierte Option '/B'
                 (Background) sorgt dafr, da auch der Hintergrund in der
                 gewnschten Farbe ausgedruckt wird (nur bei 'COLOR').

                 MS-DOS 6.22 GRAPHICS bietet allerdings noch erheblich
                 mehr Mglichkeiten, u.a. auch fr Laser- und Tintenstrahl-
                 drucker, die in einer Datei GRAPHICS.PRO auch an eigene
                 Bedrfnisse angepat werden knnen.
                 Auch die alten Optionen fr IBM AP PCs und Drucker
                 ('THERMAL' und '/LCD') werden von Novell DOS nicht
                 untersttzt.
                 Die Option 'COLOR' von Novell DOS entspricht brigens der
                 Option 'COLOR8' bei MS-DOS ('COLOR4' fr vier Farben mit
                 RGB-Farbbndern wird nicht untersttzt, 'COLOR1' fr
                 Schwarz ist obsolet...). Siehe auch Kapitel II.16.

   JOIN.EXE      Novells JOIN erlaubt *auch* die Zuordnung eines Laufwerks
                 auf ein Unterverzeichnis des *gleichen* Laufwerks (getestet
                 bis Update 15 bei geladenem Netz-Client). Da das Laufwerk
                 aufgrund der JOIN-Zuordnung nun aber nicht mehr ansprechbar
                 ist, mchte ich bezweifeln, da dies fr irgendetwas ntz-
                 lich sein knnte (wrde ja schlielich eine Rekursion
                 auslsen)... (Fllt Ihnen etwas ein?)

                 Errorlevel:
                 (unvollstndig, nur fr Novell DOS 7 verifiziert)

                   0  MS-DOS 5.0+ : alles ok
                   1  MS-DOS 5.0+ : ungltiger Parameter
                      Novell DOS 7: Verzeichnis fr JOIN nicht anlegbar
                   3  Novell DOS 7: Benutzerabbruch (<Ctrl>+<c> etc.)
                  32  Novell DOS 7: Ausgabe der JOIN-Zuordnungsliste
                  43  Novell DOS 7: Fehler
                 255  Novell DOS 7: erfolgreich Zuordnung hergestellt

   KEYB.COM      Novells KEYB benutzt - im Gegensatz zu KEYB von MS-DOS -
                 den BIOS-Treiber mit. Hierdurch, und durch die Mglichkeit,
                 sich in die HMA zu 'verdrcken', bentigt der Treiber ver-
                 gleichsweise wenig Speicherplatz (4 KByte statt 7,4 KByte
                 wie der Treiber von MS-DOS). Allerdings kann diese Ver-
                 fahrensweise auch nachteilig sein.

                 Die Tabellen fr die Tastaturlayouts sind bei Novells
                 KEYB im Treiber selbst untergebracht (nicht wie bei MS-DOS
                 in einer externen Datei KEYBOARD.SYS). Es existieren der-
                 zeit noch drei Platzhalter fr zustzliche Layouts. Eine
                 Tabelle zum Patchen der jeweils gltigen Codeseiten ist
                 wegen der Zeichenkette "valid codepages (2 per country)-->"
                 leicht zu finden.

                 Ab dem Update 9 (KEYB 2.09) untersttzt dieser Treiber
                 (weitestgehend undokumentiert) auch Brasilien/Lateinamerika
                 (KEYB BR) und enthlt einen Fix fr <Ctrl>+<Tab>. Update 12
                 (KEYB 2.10) untersttzt sowohl <Shift>+<Tab>, als auch
                 <Ctrl>+<Tab>. <Alt> Belegungen 'schimmern' nun bei nicht
                 definierten <AltGr> Belegungen durch. KEYB 2.11 aus Update
                 13 lst Probleme mit Nortons NCACHE2, wenn beide in die
                 HMA geladen wurden. Update 14 enthlt einen Fix fr das
                 ungarische Layout (KEYB 2.12).
                 Leider untersttzt auch der Treiber aus Update 15 noch
                 nicht die neuen Windows95-Tasten (unter DOS) sowie Tasten
                 von 122-Tasten-Tastaturen (und auch nicht alle neuen
                 Tastatur-Layouts und IDs von MS-DOS 6.22 wie YU, YC, RO,
                 CZ, PL, IS, BG, SL). JP wird offenbar in Spezialversionen
                 untersttzt. (JA, KO, CH und TN werden von keiner euro-
                 pischen DOS-Version untersttzt, weder von MS-DOS noch
                 von Novell DOS). Statt TR gibt es die zwei neuen Optionen
                 TF und TQ. Bezglich landesspezifischer Details siehe
                 Kapitel II.16.

                 Sollten Sie bestimmte Mglichkeiten von MS-DOS KEYB bei
                 Novell DOS 7 vermissen, knnen Sie auch den Treiber von
                 MS-DOS unter Novell DOS 7 verwenden. Dazu ist es aller-
                 dings notwendig die DOS-Version mit SETVER anzupassen
                 (z.B. SETVER KEYB.COM 6.22 fr KEYB von MS-DOS 6.22).
                 Novells KEYB kann nicht unter MS-DOS gestartet werden.

                 Ganz allgemein eine bessere Alternative zu KEYB (von
                 jedem DOS) ist der stark erweiterte FreeWare-Tastatur-
                 treiber K3PLUS 6.50+ bzw. FreeKEYB, die trotz unzhliger
                 Erweiterungen auch nur ungefhr 8,5 KByte Speicher
                 bentigen (zu beziehen ber mich).

   LABEL.COM     Dieses Kommando untersttzt (auch mit Update 15) im Gegen-
                 satz zum Pendant von MS-DOS 6.2x noch nicht die Ausgabe von
                 Medienseriennummern (obwohl der Novell DOS 7 Kernel im
                 Rahmen der Updates mittlerweile Seriennummern untersttzt).
                 Allerdings kann man fr diesen Zweck auch LABEL.COM von
                 MS-DOS 6.22 ausleihen, das auch unter Novell DOS arbeitet.

                 Novells Implementation arbeitet allerdings im Gegensatz
                 zu MS-DOS' Realisierung auch auf Netz-, CD-ROM- und
                 Substitut-Laufwerken. In diesem Fall wird nur der Medien-
                 name des Laufwerks ausgegeben und es erscheint eine
                 Meldung, da der Name nicht gendert werden kann.
                 Logischerweise unterbleibt dann auch die J/N-Frage nach
                 einem neuen Namen.

                 Obwohl LABEL auch direkt die Angabe des neuen Namens als
                 Parameter erlaubt, mag es in manchen Fllen sinnvoll sein,
                 den neuen Namen des Mediums aus einer Datei zu holen, etwa:

                  LABEL < newname.lbl

                 Auf gemeinsam benutzten Laufwerken, Floppies und RAM-Disks
                 kann dies jedoch milingen (auch bei MS-DOS/PC-DOS), wenn
                 der neue Name des Mediums einem bereits auf dem Medium
                 bestehenden Namen einer Datei im Hauptverzeichnis ent-
                 spricht. Denn der Name des Mediums wird dort im Prinzip
                 wie jede andere Datei gespeichert, nur mit (normalerweise
                 ausschlielich) gesetztem Volume-Attribut (aber andere
                 Attributkombinationen sind auch mglich). Daraus resul-
                 tiert auch die etwas seltsam anmutende maximale Lnge von
                 11 Zeichen (8 + 3 Bytes). Auf physikalischen Festplatten-
                 laufwerken wird der Name an anderer Stelle gespeichert,
                 so da dieses Problem hier nicht auftritt.

                 In sehr seltenen Fllen kann es vorkommen, da Sie den
                 Namen einer Diskette unter MS-DOS/PC-DOS nicht mehr nach-
                 trglich ndern knnen: Falls die Diskette mit den Norton
                 Utilities formatiert oder nach einem Fehler restauriert
                 wurde, wird der Name des Mediums statt mit Leerfeldern
                 (ASCII-32) mit Null-Zeichen (ASCII-0) bis zur vollen Lnge
                 aufgefllt. Mit derartigen Namen kommen MS-DOS/PC-DOS
                 und einige andere Programme (z.B. ltere Versionen von
                 PKZIP) jedoch nicht zurecht.
                 Glcklicherweise ist es jedoch unter Novell DOS 7 ber-
                 haupt kein Problem, den Namen derartiger Disketten zu
                 ndern!

                 Errorlevel:
                 (unvollstndig, nur fr Novell DOS 7 verifiziert)

                  0  erfolgreich
                  1  MS-DOS 5.0+: Laufwerk nicht vorhanden/ungltig
                  2  Novell DOS 7: Benutzerabbruch (<Ctrl>+<c> etc.)
                  4  Novell DOS 7: falscher Parameter, Laufwerk nicht
                                   vorhanden/ungltig

   LOCK.EXE      Achtung: Dieses Utility ist kein Schutz gegen unbeab-
                 sichtigtes Benutzen des Rechners! Schaltet ein skrupel-
                 loser Zeitgenosse den Rechner whrend der Abwesenheit
                 des Benutzers ab, ist der Schutz von LOCK aufgehoben
                 (und was schlimmer ist: Evtl. nicht gesicherte Daten
                 sind verloren - deshalb vorher mglichst Daten sichern).
                 Begrenzte Abhilfe ist durch Setzen eines Systempawortes
                 (mittels SETUP und SECURITY) mglich, das beim Booten
                 eingefordert wird. Siehe auch bei PASSWORD bezglich
                 der Eingabe des globalen Pawortes.

                 Untersttzt MDA-, HGC-, HGC+-, HGC-InColor-, CGA-, EGA-
                 und VGA-Grafikkarten. Speichert das Schirmbild in einer
                 temporren Datei in %Temp% namens SCREEN.SAV (bei Angabe
                 des Parameters /S). Besondere Grafikmodi und SuperVGAs
                 werden anscheinend nicht komplett unterstzt, was aber
                 auch nicht verwunderlich wre. (Ausweichempfehlung:
                 Den erweiterten Tastaturtreiber K3PLUS alias FreeKEYB
                 mit eingebautem Universal-Bildschirmschoner verwenden.
                 Aber: Falls dieser Treiber geladen ist, knnen Sie LOCK
                 mit dessen 'Break-to-DOS'-Funktion (<Ctrl>+<Alt>+<Break>,
                 sofern aktiviert) auch ohne Angabe des korrekten Pawortes
                 beenden, wobei das System danach sofort neu gebootet
                 werden sollte. Daher sollten Sie sich nicht zu viel
                 von LOCK versprechen.)

                 LOCK entnimmt seine Einstellungen fr die Bildschirm-
                 darstellung undokumentiert und entgegen den blichen
                 Konventionen unter Novell DOS einer optionalen Datei
                 DOS.INI im Verzeichnis C:\NWDOS (oder evtl. im %Path%)
                 aus der Rubrik [COLORS]:

                  MaxColors=
                  CurrentColor=
                  ColorSetX=            (X=<CurrentColor> aus 1..9)

                 Die Einstellungen sind ansonsten vllig analog zu den
                 Einstellungen in der Datei NWDOS.INI, die hier allerdings
                 vllig ignoriert wird.

                 U.U. werden einige Einstellungen aus noch aus der Windows-
                 Datei CONTROL.INI geholt und evtl. spielt dabei LOCKBITMAP
                 eine Rolle.

                 Novell DOS 7 LOCK arbeitet weitestgehend anders als
                 noch DR DOS 6.0 LOCK, obwohl die nach auen sichtbare
                 Funktionalitt hnlich ist.
                 Ab Update 12 und spter 14 (LOCK 2.01) werden Fassungen
                 ausgeliefert, die verschiedene Probleme fixen (nicht aber
                 das oben beschriebene Verhalten ndern).

                 LOCK.EXE kann auch unter Windows gestartet werden.

                 Achtung: LOCK.EXE hat absolut nichts mit den bei MS-DOS 7
                 (MS Windows95/Chicago) neuen internen Befehlen LOCK und
                 UNLOCK zu tun!!!

   MEM.EXE       Wie nur teilweise dokumentiert, kann man die folgenden
                 Optionen auch abkrzen:

                 /HELP     : /H /?   (der Parameter /HILFE existiert nicht,
                 /DEBUG    : /D       sondern ist lediglich das Resultat
                 /CLASSIFY : /C       eines bereifrigen bersetzers...)

                 Die Option /PROGRAM lt sich nicht mit /P abkrzen, da /P
                 fr 'Page' zum Anhalten der Anzeige nach jeder Seite ver-
                 wendet wird (dies gilt nun brigens auch fr MS-DOS 7).

                 Die bei MS-DOS vorhandenen Optionen /FREE und
                 /MODULE=module bietet Novell DOS' MEM nicht.
                 In Kapitel IV.5. wird ein Batchjob beschrieben, der
                 diese Funktionen auch bei Novell DOS 7 nachrstet und
                 dabei noch um zwei neue Parameter /REGION und /VECTORS
                 ergnzt.

                 Die bei MS-DOS undokumentierte Option /A zur Anzeige der
                 HMA-Information kollidiert mit der Anzeige der Gesamtinfo
                 (/A) unter Novell DOS. Fr die Anzeige der HMA-Belegung
                 (d.h. des Segments FFFF) dient unter Novell DOS 7 die
                 Option /F.

                 Novells MEM.EXE funktioniert teilweise auch unter MS-DOS
                 und MS Windows95, allerdings fhren die Parameter /D und
                 /F unter MS Windows95 zu einem Absturz (getestet mit der
                 ursprnglichen Original-Version von Novell DOS 7).

   MEMMAX.COM    Liefert Errorlevel 3 bei Benutzerabbruch durch <Ctrl>+<c>.
                 Weitere Hinweise siehe Kapitel V.6.

   MODE.COM      Dieses vielseitige Einstellungsprogramm bietet (ab DR DOS
                 5.0) im 'Japan-Modus' Mglichkeiten, japanische Drucker und
                 Grafikkarten (und Tastaturen) so anzusteuern, da die
                 japanischen Schriftzeichen erscheinen. Wie dieser Modus
                 aktiviert wird, ist noch unklar (evtl. geht dies auch nur
                 mit speziellen Kernel-Versionen). Standardmig ist der
                 'Englisch-Modus' aktiv und die optionalen Werte werden
                 grtenteils zurckgewiesen.

                 Im folgenden werden nur die Hilfeschirme aufgelistet, die
                 in der Dokumentation unvollstndig angegeben sind, die
                 restlichen Optionen erfahren Sie im DOSBOOK bzw. mit
                 MODE /?.

                 MODE LPT#:[n][,[m][,[P][,s]]]  Druckereinstellung
                         #=Nummer der Druckerschnittstelle
                         n=Zeichen pro Zeile (80, 132 oder J fr Japan)
                         m=Zeilen pro Zoll (6 oder 8)
                         P=Stndige Wiederholung
                           Permanenten Teil von MODE zur Steuerung von
                           Wiederholungen installieren, kann mit
                           <Ctrl>+<Break> abgebrochen werden.
                           Die bei MS-DOS 4 - 6 mglichen Optionen
                           [R[ETRY=]]E|B|R|N|NONE|P fr Error, Busy, Ready,
                           None, Permanent statt des einfachen P sind bei
                           Novell DOS 7 leider nicht mglich. Im Fehlerfall
                           erscheint eine DOS-Fehlermeldung Abbrechen (=N),
                           Wiederholen (=P), Ignorieren (=R), Fehler (=E).
                         s=Leerraum zwischen japanischen Zeichen
                           (12..50, C, D, E, P)
                 MODE COM#:b[,p][,d][,s][,P]  Serielle Schnittstelle
                         #=Nummer der seriellen Schnittstelle
                         b=Baudrate    - 110..19200
                         p=Paritt     - Gerade (E), Keine (N), Ungerade (O)
                         d=Daten-Bits  - 7 oder 8
                         s=Stopp-Bits  - 1 oder 2
                         P=Stndige Wiederholung trotz Zeitschranken-
                           berschreitung.
                           Permanenten Teil von MODE zur Steuerung von
                           Wiederholungen installieren, kann mit
                           <Ctrl>+<Break> abgebrochen werden.
                           Die bei MS-DOS 4 - 6 mglichen Optionen
                           [R[ETRY=]]E|B|R|N|NONE|P fr Error, Busy, Ready,
                           None, Permanent statt des einfachen P und die
                           anderen Syntax-Erweiterungen sind bei Novell DOS
                           und DR DOS leider nicht mglich.
                 MODE modus,zeilen   Anzeigemodus
                         modus=40 oder BW40: 40 Spalten; keine Farbe (CGA+)
                               80 oder BW80: 80 Spalten; keine Farbe (CGA+)
                                       CO40: 40 Spalten; in Farbe (CGA+)
                                       CO80: 80 Spalten; in Farbe (CGA+)
                                       MONO: 80 Spalten; monochrom (MDA/HGC)
                                       JT80: 80 Spalten (Japanischer Text)
                                       Auf Zweimonitorsystemen schalten
                                       BW40 und BW80 bzw. CO40 und CO80 auf
                                       den Farbadapter um, whrend MONO den
                                       Monochrom-Adapter zum aktiven Video-
                                       System macht. Das Bild des jeweils
                                       anderen Monitors wird dabei nicht
                                       gelscht. Natrlich kann man mit BW40
                                       oder BW80 keine Graustufendarstellung
                                       auf einem Farbadapter erzwingen,
                                       solange eine MDA/HGC im System ist.
                                       Mit 40 oder 80 wird die aktive
                                       Video-Karte nicht umgeschaltet,
                                       sondern nur die andere Darstellungs-
                                       art gewhlt (40 ist auf MDA/HGC un-
                                       mglich).
                         zeilen=Textzeilen : 25, 43 oder 50
                 MODE LPT#[:]=COM#|LPT# Umleitung eines Druckers
                         Im Gegensatz zur Dokumentation, die ausschlielich
                         die Umleitungsmglichkeit eines parallelen Druckers
                         auf eine serielle Schnittstelle beschreibt, gibt
                         es eine uerst interessante Mglichkeit, auch auf
                         einen *anderen* parallelen Drucker umzuleiten,
                         etwa: LPT1:=LPT2. Auch in diesem Fall wird ein
                         kleiner (ca. 500 Bytes) groer residenter Codeteil
                         geladen. Eine Mglichkeit zur Default-Einstellung
                         von PRN: und AUX: bietet sich damit allerdings
                         immer noch nicht. Allerdings knnte man hierfr
                         ein kleines Utility schreiben, da die DEVICE-
                         Verkettung umpatcht (vielleicht gibt es soetwas
                         schon?). Diese Mglichkeit bestand auch schon
                         bei DR DOS.

                 (Bei DR DOS gab es offenbar noch zwei unbekannte Optionen
                 J80/40?? und A80/40??, die bei Novell DOS 7 weggefallen
                 sind.)

                 Es gibt eine grere Anzahl erlaubter Abkrzungen fr
                 einige Schlsselworte:

                 LINES    : LIN
                 COLS     : COL
                 DELAY    : DEL

                 CODEPAGE : CP, CODE         Diese Optionen werden
                 PREPARE  : PREP             auch in Verbindung mit
                 SELECT   : SEL              DISPLAY.SYS und PRINTER.SYS
                 REFRESH  : REF              in diesem Kapitel nher
                 /STATUS  : /STA             erlutert.
                                             Zustzliche Hinweise finden
                                             sich weiter unten und in
                                             Kapitel III.16.

                 Bezglich der Optionen fr die Codeseiten-Untersttzung
                 seien noch einige (insb. fr Novell DOS 7 verifizierte)
                 Anmerkungen angebracht, da diese Mglichkeiten die
                 meisten Benutzer hoffnungslos berfordern und allgemein
                 in der existierenden Literatur viel Unsinn bezglich der
                 Codeseiten-Untersttzung von DOS verbreitet wurde...

                 Zum Prinzip:

                 Um Codeseiten-Support fr MCGA-/EGA-/VGA-Anzeigen oder
                 Drucker einzurichten, mu man in CONFIG.SYS mittels
                 DISPLAY.SYS und PRINTER.SYS deklarieren, unter welchen
                 Codeseiten-Kennungen die Hardware-Codeseiten erreichbar
                 sein sollen und wieviele zustzliche Codeseiten man
                 gleichzeitig untersttzen mchte. Mit dem Laden dieser
                 Treiber wird der hardware-abhngige residente Code der
                 Codeseiten-Untersttzung installiert und gleichzeitig
                 Platz fr entsprechend groe Tabellen und Datenbereiche
                 zur Aufnahme der Codeseiten- und Font-Informationen fr
                 alle vorzubereitenden Codeseiten reserviert (welche
                 Codeseiten das einmal sein werden, steht zu diesem
                 Zeitpunkt noch in den Sternen). Die Codeseiten selbst
                 werden in diesem Fall noch nicht aktiviert; es gilt
                 weiterhin die Hardware-Codeseite. Spter (z.B. in
                 AUTOEXEC.BAT) knnen die reservierten Slots mittels
                 MODE CODEPAGE PREPARE belegt werden, indem man in der
                 Parameterzeile die einzelnen Codeseiten-Slots (ber die
                 Reihenfolge der Angabe der Codeseiten) mit Codeseiten-
                 Nummern aus dem Repertoire einer anzugebenen .CPI-Datei
                 verknpft. Damit werden die jeweiligen Fonts in die von
                 den Treiber DISPLAY.SYS bzw. PRINTER.SYS dafr reservierten
                 Bereiche geladen, allerdings noch nicht an die jeweiligen
                 Gerte abgeschickt. MODE selbst bleibt hier daher nicht
                 resident im Speicher!
                 Nun kann man mittels MODE CODEPAGE SELECT oder (wegen
                 der zustzlichen Verknpfung mit den Landesdaten aus
                 COUNTRY.SYS nur bei zustzlich geladenem NLSFUNC) auch
                 mit CHCP auf die so prparierten Codeseiten umschalten.
                 Die residenten Treiber DISPLAY.SYS bzw. PRINTER.SYS
                 schicken in diesem Fall in erster Linie die zugehrigen
                 Font-Daten aus ihren Datenbereichen an die jeweiligen
                 Gerte (Grafikkarte und Drucker).

                 Whrend die Gre der zu reservierenden Datenbereiche fr
                 die Bildschirmfonts anhand deren Anzahl im voraus berechnet
                 werden kann, steht die Lnge von Download-Zeichenstzen fr
                 Drucker nicht unbedingt vorher fest. Dies ist auch der
                 Grund dafr, warum das einfache Ersetzen von Drucker-.CPI-
                 Dateien durch eigene .CPI-Dateien nur unter bestimmten
                 Voraussetzungen gelingt, denn der PRINTER.SYS Treiber
                 selbst enthlt auch unvernderliche Teile der Sequenzen.

                 Da die Einrichtung von Codeseiten durchaus einigen
                 Speicher kostet, sollte man sich im Falle eines Falles
                 genau berlegen, ob es notwendig ist, mehr als eine
                 vorzubereitende Codeseite einzurichten, so da man -
                 inklusive der Hardware-Codeseite - mit MODE CODEPAGE SELECT
                 oder CHCP zwischen drei und mehr Codeseiten wechseln
                 kann. Hufig bentigt man im stndigen Wechsel neben der
                 Hardware-Codeseite nur eine weitere Codeseite. Daher
                 reicht es auch aus, nur eine Codeseite vorzubereiten.
                 Sollte nun wirklich eine weitere Codeseite bentigt werden,
                 kann man auch zur Laufzeit den Slot fr die vorbereitete
                 Codeseite mittels MODE CODEPAGE PREPARE durch die gewnsch-
                 te neue Codeseite ersetzen. Neu-Booten etc. ist dafr nicht
                 erforderlich. Konkret:

                 Sie arbeiten zwar meist mit der Hardware-Codeseite 437,
                 brauchen aber hufiger auch die Codeseiten 850 und 860,
                 letztere allerdings nie im schnellen Wechsel miteinander?
                 Dann sollten Sie statt zwei vorzubereitender Codeseiten

                  CONFIG.SYS:
                   DEVICE=c:\nwdos\display.sys con=(EGA,437,2)
                   DEVICE=c:\nwdos\printer.sys prn=(1050,437,2)

                  AUTOEXEC.BAT:
                   MODE con: CODEPAGE PREPARE=((850,860) c:\nwdos\ega.cpi)
                   MODE prn: CODEPAGE PREPARE=((850,860) c:\nwdos\1050.cpi)
                   NLSFUNC
                   CHCP 437
                   REM Sie knnen jetzt mit CHCP zwischen 437, 850 und 860
                   REM umschalten (sofern COUNTRY.SYS das untersttzt,
                   REM siehe Kapitel II.16.)...

                 nur eine Codeseite vorbereiten:

                  CONFIG.SYS:
                   DEVICE=c:\nwdos\display.sys con=(EGA,437,1)
                   DEVICE=c:\nwdos\printer.sys prn=(1050,437,1)

                  AUTOEXEC.BAT:
                   MODE con: CODEPAGE PREPARE=((850) c:\nwdos\ega.cpi)
                   MODE prn: CODEPAGE PREPARE=((850) c:\nwdos\1050.cpi)
                   NLSFUNC
                   CHCP 437
                   REM Sie knnen jetzt mit CHCP nur noch zwischen 437 und
                   REM 850 umschalten, aber den Rest holen wir schnell
                   REM nach:

                  SWITCHCP.BAT:
                   MODE con: CODEPAGE PREPARE=((%1) c:\nwdos\ega.cpi)
                   MODE prn: CODEPAGE PREPARE=((%1) c:\nwdos\1050.cpi)
                   REM CHCP kann - abhngig vom Land - eine Fehlermeldung
                   REM ausgeben (siehe Kapitel II.16.)...
                   CHCP %1

                 In diesem rudimentren Beispiel knnen Sie jetzt -
                 obwohl nur eine Codeseite vorbereitet wurde - jederzeit
                 mit SWITCHCP zwischen 850, 860, etc. umschalten. Diese
                 Lsung braucht aber nur ca. halb soviel Speicherplatz
                 wie die erste Mglichkeit.

                 Auf die gleiche Weise, wie hier der Slot fr die einzige
                 vorbereitete Codeseite bei Bedarf mit neuen Codeseiten
                 belegt wird, lassen sich auch einzelne Codeseiten ersetzen,
                 wenn man mehr als eine Codeseite vorbereitet hat. Im
                 DOSBOOK wird die dazu notwendige Syntax erlutert (man
                 gibt bei MODE CODEPAGE PREPARE einfach eine Liste der neu
                 zu belegenden Codeseiten in der Reihenfolge ihrer Slots an
                 und lt dabei einfach die Slots aus, die nicht verndert
                 werden sollen).

                 Wenn Sie NLSFUNC (und CHCP) nicht sowieso bentigen,
                 knnen Sie auch auf das Laden von NLSFUNC verzichten
                 und die Codeseiten stattdessen mit MODE CODEPAGE SELECT
                 umschalten.

                 Zur Syntax:

                 Gibt man nur den Gertenamen an (etwa: MODE CON: oder
                 MODE PRN: etc.), so erhlt man eine bersicht ber die
                 aktuelle Konfiguration dieses Gertes. In diesem Fall
                 sind die Parameter CODEPAGE, CP, CODE und /STATUS, /STA
                 optional. Mchte man /STATUS, /STA verwenden, mu man
                 allerdings auch CODEPAGE, CP oder CODE angeben.

                 Arbeitet sowohl mit DR DOS/Novell DOS als auch mit
                 MS-DOS/PC-DOS .CPI-Dateien, siehe auch Kapitel II.16.

   MORE.COM      Dieser Seiten-Filter wird bei Novell DOS nur noch fr
                 die wenigsten DOS-Kommandos bentigt, da diese meist
                 selbst eine /P Option fr seitenweise Ausgabe anbieten.

                 Andererseits liegt z.B. bei Verwendung von MORE in Ver-
                 bindung mit FOR schon ein signifikanter Unterschied
                 darin, ob man den Filter auf mehrere Ausgaben ver-
                 schiedener Kommandos gemeinsam anwendet, oder jeweils
                 die seitenweise Ausgabeoption der einzelnen Kommandos
                 selbst nutzt:

                  FOR %%x IN (config.sys autoexec.bat) DO TYPE %%x | MORE
                  FOR %%x IN (config.sys autoexec.bat) DO TYPE %%x /p

                 (brigens soll TYPE /p in lteren Versionen von
                 COMMAND.COM nicht sauber mit FOR zusammenarbeiten.
                 Mit Update 15 klappt's jedoch wunderbar...)

                 Kommt auch mit Dateien grer 64 KByte problemlos zurecht
                 (was fr einige MS-DOS/PC-DOS Implementierungen ein Problem
                 darstellt). Auch bei Ausgabeumleitung wird die Meldung
                 "Bitte eine Taste drcken ..." auf dem Bildschirm angezeigt
                 (StdErrOut), und man mu auch tatschlich jede Seite
                 besttigen.
                 Bezglich der sicheren Verwendung in Batchjobs siehe
                 Kapitel IV.6.

                 Errorlevel:
                 (unvollstndig, nur fr Novell DOS 7 verifiziert)

                    0  Hilfeschirm angezeigt
                    3  Benutzerabbruch (<Ctrl>+<c> etc.) whrend der
                       Eingabe (auch Eingabeumleitung).
                  255  Nach ordnungsgemem Ablauf, auch im Falle eines
                       Benutzerabbruchs (<Ctrl>+<c>) whrend der Ausgabe
                       (auch bei Ausgabeumleitung).

   MOVE.EXE      Das Kommando MOVE ist eine Mischung zwischen REN und COPY.

                 Wird eine Datei auf dem gleichen physikalischen Laufwerk
                 verschoben, so arbeitet MOVE intern genauso wie REN
                 (auch bezglich des Handlings von Pawrtern, nur mit dem
                 Fehler, da aufgrund eines Bugs (getestet bis Update 15)
                 bereits in der Kommandozeile angegebene Pawrter ignoriert
                 werden, d.h. MOVE fragt bei Bedarf explizit nach, siehe
                 Kapitel II.11.).
                 Dieses Umbenennen ist natrlich sehr viel schneller als das
                 normalerweise durchzufhrende Kopieren mit anschlieendem
                 Lschen des Originals, kann aber verstndlicherweise nur
                 auf dem gleichen physikalischen Laufwerk angewendet werden.
                 Substitut-Laufwerke etc. werden dabei brigens korrekt
                 bercksichtigt.
                 Da z.B. der Norton Commander beim Verschieben mit <F6>
                 keine Substitut-Laufwerke auf die physikalisch zugrunde-
                 liegenden Laufwerke zurckfhrt, dauert hier das Ver-
                 schieben zwischen unterschiedlichen Laufwerksbuchstaben
                 immer genausolange wie Kopieren plus anschlieendes
                 Lschen. In solchen Fllen lohnt es sich also, den
                 Norton Commander zu verlassen.

                 Wird jedoch das effektive Kopieren notwendig, weil das
                 Ziel auf einem anderen Laufwerk liegt, so arbeitet MOVE
                 wie COPY + DEL. Sind die Dateien jedoch pawortgeschtzt,
                 so weicht das Verhalten davon ab: In diesem Fall wird die
                 Quelldatei nicht angetastet, dafr besitzt die Zieldatei
                 allerdings keinen Pawortschutz mehr (im Gegensatz zu COPY
                 wird bei MOVE hier auch das Hidden-Attribut nicht gelscht,
                 getestet bis Update 15. Es drfte sich hier um ein oder
                 zwei kleine Bugs handeln).

                 Achtung: Unter 4DOS wird normalerweise der 4DOS-interne
                 MOVE Befehl verwendet. Hier unterscheidet sich das Ver-
                 halten nicht zwischen pawortgeschtzten Dateien und
                 normalen Dateien, und daher weicht das Verhalten bei
                 pawortgeschtzten Dateien stark von Novells externem
                 MOVE ab:
                 Solange die Datei nur umbenannt werden mu (d.h. nicht
                 ber die Grenzen des physikalischen Laufwerks hinaus
                 verschoben wird) gleicht das Verhalten dem von Novell DOS.
                 Mu die Datei aber wirklich kopiert werden, so wird sie
                 im Gegensatz zu Novells MOVE an der Quelle gelscht und
                 zum Ziel kopiert, wobei die Datei im Ziel zwar noch das
                 Hidden-Attribut besitzt, aber keinen Pawortschutz mehr.
                 Leider bercksichtigt 4DOS dabei nicht, da bei implizit
                 gleichen Laufwerke (wie z.B. bei Substitut-Laufwerken)
                 eventuell gar nicht kopiert, sondern nur umbenannt werden
                 mu (getestet mit 4DOS 5.5c).

                 Offensichtlich ist es nicht mglich, ein Pawort ber die
                 Laufwerksgrenzen hinweg zu bertragen. Entweder handelt es
                 sich dabei einfach um eine Nachlssigkeit bei der Implemen-
                 tierung, oder es knnte sich um eine Sicherheitsmanahme
                 im Kernel handeln, der es z.B. nur erlaubt, Pawrter zu
                 setzen und abzutesten, aber nicht zu bertragen.
                 Dies wre eine Erklrung dafr, warum Pawrter nur dann
                 erhalten bleiben (sowohl bei Novell DOS Kommandos wie auch
                 bei 4DOS), wenn die Datei physikalisch gar nicht bewegt
                 werden mu.

                 Zu beachten ist also, da man mit MOVE nur dann die
                 Plattenstruktur defragmentiert, wenn Dateien wirklich
                 ber Laufwerksgrenzen hinweg bewegt werden mssen. D.h.,
                 wenn man Daten verschieben will, sollte man auch wirklich
                 MOVE oder REN und nicht eine Kombination aus COPY + DEL
                 verwenden.

                 Notwendige Pawrter knnen - wie bei Novell DOS und
                 DR DOS blich - durch ein Semikolon getrennt an die
                 Dateispezifikation angehngt werden:

                  d:filename.ext;password

                 (Nheres bezglich Syntax und Fehlervermeidung in Kapitel
                 II.9., Nheres zum Dateimanagement bei PASSWORD.EXE.)

                 Wurden noch bei DR DOS beim Angabe der Option /S und einem
                 Pfad als Quelle die Verzeichnisse am Ziel nicht wieder-
                 hergestellt, so ist diese Situation unter Novell DOS ent-
                 schrft: die Verzeichnisse werden bernommen, das Quell-
                 verzeichnis bleibt erhalten. Zum Verschieben mit Lschen
                 verwendet man die Option /T.
                 Falls nicht klar ist, ob es sich bei der Zielangabe um
                 eine Datei oder ein Verzeichnis handelt, fragt der MOVE
                 Befehl explizit nach: <D> steht fr Datei und <V> steht
                 fr Verzeichnis (was bei anderssprachigen MOVE Dateien
                 Verwirrung stiftet). Handelt es sich bei der Quelle um
                 ein Verzeichnis, steht damit auch fest, da auch das Ziel
                 ein Verzeichnis sein mu. Handelt es sich um eine Datei-
                 maske ist i. allg. auch klar, da das Ziel ein Verzeichnis
                 sein mu. Handelt es sich jedoch um eine einzelne Datei,
                 kann normalerweise nicht erkannt werden, ob das Ziel eine
                 Datei oder ein Verzeichnis sein soll (es sei denn, da
                 das Ziel bereits existiert). Gibt man jedoch im Ziel
                 einen '\' am Ende an, so ist auch klar, da es sich um ein
                 Verzeichnis handeln mu. Der Fall, in dem MOVE nachfragt,
                 ist jedoch nicht trivial, denn die Angabe von <D> oder <V>
                 gilt natrlich nur fr die deutsche Ausgabe dieses
                 Kommandos, d.h. ohne weitere Vorkehrungen ist es nicht
                 mglich, einen Batchjob zu schreiben, der in allen
                 Landesvarianten mit einer automatisierten Eingabeumleitung
                 arbeitet, aus der die Antwort auf diese Frage kommt. Da in
                 der englischen Version <F>=file und <D>=directory verwendet
                 werden, sollte man in die Datei fr die Eingabeumleitung
                 die Antworten fr 'Datei' in der Reihenfolge angeben, da
                 keine Mideutung als 'Verzeichnis' erfolgen kann (Nheres
                 bezglich internationaler Batchjobs siehe Kapitel II.16.).

                  REM (F und D sind gesichert, E und A nur Vermutungen!)
                  ECHO FEAD | MOVE oldfile newfile

                 Glcklicherweise akzeptiert Novells MOVE bei der besagten
                 Frage keine anderen Buchstaben als die beiden Buchstaben
                 fr 'Datei' und 'Verzeichnis', so da diese Methode wirk-
                 lich funktioniert.

                 Auerdem untersttzt MOVE ber die undokumentierte Syntax
                 /U:name die Angabe eines zulssigen Benutzeranmelde- oder
                 Gruppennamens (maximal 12 Zeichen lang). Diese Option ist
                 nicht unter jedem Betriebssystem verfgbar und hat in
                 Novell/DR Multiuser-Varianten oder in Verbindung mit
                 lokalen Benutzerkonten und einmaliger Anmeldung eine
                 Bedeutung, sofern die Systemabsicherung aktiviert ist.

                 Die beiden mit MS-DOS 6.2 eingefhrten Parameter /Y und
                 /-Y zur Besttigung vor dem berschreiben untersttzt
                 Novell DOS 7 (getestet bis Update 15) noch nicht, da es
                 viel frher eingefhrt wurde.

   NLSFUNC.EXE   Dieser Treiber sollte in jedem Fall geladen werden, da er
                 vollen Zugriff auf die Lnderuntersttzung fr alle in
                 COUNTRY.SYS enthaltenen Lnder garantiert und auch fr
                 CHCP bentigt wird, wenn man damit Codeseiten umschalten
                 will. Ein Groteil des residenten Codes fr die Lnder-
                 untersttzung ist sowieso im Kernel enthalten und wird
                 von NLSFUNC nur noch freigeschaltet, so da das Laden des
                 Treiber auch nur sehr wenig Speicher bentigt, der auch
                 in der HMA liegen kann (ca. 900 Bytes statt ca. 2,8 KByte
                 wie bei MS-DOS). Der Treiber arbeitet auch unter DR DOS 6.0
                 "Business Update 1993" (wahrscheinlich aber nicht unter
                 frheren Versionen) und lt sich nur unter Singleuser-
                 Varianten installieren, wrde wahrscheinlich aber auch
                 in einer Multiuser-Umgebung funktionieren. Weitere Hinweise
                 in Kapitel II.16. Der Treiber akzeptiert auch COUNTRY.SYS
                 Dateien von DR DOS 5.0 und DR DOS 6.0 (diese besitzen wie
                 Novell DOS die Format-Revision R2.01), nicht aber die von
                 DR DOS 3.41 (R2.00), bei denen noch der mit DOS 4 einge-
                 fhrte DBCS-Support fehlte.

                 Wenn Sie NLSFUNC nicht laden, untersttzt das System
                 lediglich den Landesinformationen, die mit COUNTRY= in
                 CONFIG.SYS eingestellt wurden. Auch die Umschaltung des
                 Landes zur Laufzeit (etwa mit meinem FreeWare-Utility
                 COUNTRY.EXE aus dem Paket COUNTRY.ZIP) ist nur bei
                 geladenem NLSFUNC Treiber mglich. Die Umschaltung kann
                 je nach Codeseiteneinrichtung durchaus mehrere Sekunden
                 dauern.

                 Errorlevel:
                 (unvollstndig, nur fr Novell DOS 7 verifiziert)

                  0  normales Ende
                  3  Benutzerabbruch (<Ctrl>+<c> etc.)

   NWCACHE.EXE   Die Overlay-Dateien zu NWCACHE sind nicht ladbar, wenn
                 NWCACHE in CONFIG.SYS mittels INSTALL= geladen wird.
                 Entweder man ersetzt INSTALL= durch DEVICE= oder man
                 ldt NWCACHE erst in AUTOEXEC.BAT. NWCACHE.EXE/OV1/OV2
                 sind grtenteils identisch und unterscheiden sich
                 hauptschlich in der Speichersorte, in der sie den
                 Cache-Puffer ablegen: NWCACHE.EXE dient als Wrapper
                 fr alle Module, sowie speziell fr den Cache im XMS,
                 NWCACHE.OV1 fr EMS und NWCACHE.OV2 fr den Cache im
                 konventionellen Speicher). Welches der drei Module
                 effektiv geladen wird, hngt von der gewnschten
                 Speicherverwendung (/E /L) ab. Alle drei Module sind
                 im Prinzip aber komplett eigenstndig lauffhige
                 Programme (wenn man .OV? in .EXE umbenennt).
                 (Beim Vorgnger NLCACHE aus NetWare Lite waren die
                 Cache-Module von vornherein eigenstndige Programme
                 NLCACHE?.EXE, z.B. siehe Update-Archiv NWL11G.EXE.)

                 Die Verwendung der verschiedenen Speichersorten fr die
                 einzelnen Bestandteile ist durch die Vielfalt etwas ver-
                 wirrend, wenn auch sehr gut gelst:

                 - Programmcode (Stub 5 KByte + Hauptteil variabel):
                             Mit DPMS ist der unterhalb des ersten MegaByte
                             verbleibende Hauptteil 5 KByte, mit EMS
                             ca. 8 KByte und mit XMS ab ca. 8 KByte mit
                             zunehmender Cache-Gre noch etwas weiter
                             steigend.
                    /ML      fr beide Teile im unteren Speicher
                    /MU      fr beide Teile im UMB-Speicher (im unteren
                             Speicher, falls keine UMBs verfgbar)
                    /MLX     fr Stub im unteren Speicher und Hauptteil im
                             Extended Memory, angesprochen ber DPMS. Falls
                             kein DPMS verfgbar ist, ber XMS oder INT15h,
                             sonst auch im unteren Speicher.
                    /MUX     wie /MLX, nur - falls mglich - mit Stub in
                             UMBs.

                 - Hauptpuffer (max. 7 MByte):
                    Bemerkung: Angeblich soll Calderas NWCACHE 1.02
                    auch grere Cache-Puffer als 7 MByte akzeptieren,
                    wenn man die Parameterzeile per Hand modifiziert.
                    Bisher konnte ich das noch nicht selbst berprfen
                    und es wurde berichtet, das dies nach wie vor nicht
                    funktioniert. Evtl. hngt dies aber auch von der
                    Cluster-Gre der gepufferten Partitionen ab, und
                    wre daher nur auf sehr groen Partitionen mglich???
                             normalerweise in XMS (via DPMS???)
                    /X:adr   wahlweise Extended Memory ber INT15h oder
                             direkt???
                    /E       im EMS
                    /L       im unteren Speicher

                 - Vorausschauender Puffer (4 - 16 KByte):
                    /BE:size im EMS-Speicher (nur mglich mit /E)
                    /BU:size im UMB-Speicher (evtl. nicht mglich mit /L)
                    /BL:size im unteren Speicher

                 NWCACHE besitzt zwei gesperrte undokumentierte Optionen
                 /HMA (vorgesehen um die Cache-Tabellen in der HMA unter-
                 zubringen) und /NOXMS (fr den Ausschlu der XMS-Nutzung).
                 Obwohl intern einige Vorbereitungen fr diese Optionen
                 getroffen wurden, existieren leider in keinem der drei
                 Module Auswerteroutinen fr diese Parameter, noch der
                 Code fr die entsprechende Spezialbehandlung (/HMA wre
                 das Tpfelchen auf dem "i" ;-), /NOXMS ist eigentlich
                 obsolet, da die Verwendung des Speichers ber die
                 vorhandenen Optionen ebenso gut eingestellt werden kann).
                 Dies gilt auch noch fr Caldera OpenDOS 7.01 mit NWCACHE
                 v1.02. Die in der Sekundrliteratur teilweise zitierten
                 Optionen /MH und /MHX (ebenfalls fr HMA) existieren in
                 den offiziell ausgelieferten Versionen von NWCACHE jeden-
                 falls nicht. (Im Tutorial NWCH_TUT.TXT, das offenbar auf
                 der Beta 12 von NWCACHE basierte, wurde brigens behauptet,
                 mit der Option /B[x]=0 knnte man die vorausschauende
                 Pufferung abschalten und fr den Betrieb unter MS Windows
                 wre /DELAY=OFF zwingend notwendig. Beides kann ich nicht
                 besttigen.)

                 Der Vorgnger NLCACHE aus NetWare Lite konnte unter be-
                 stimmten Umstnden die HMA verwenden. Obwohl die Codebasis
                 und das Grundprinzip der Aufteilung weitestgehend identisch
                 war, untersttzte er z.B. noch kein DPMS und einige andere
                 Funktionen fehlten ebenfalls. Zudem besa er ein reichlich
                 verwirrendes Kommandozeilen-Interface, das sich nahezu
                 vollkommen von NWCACHEs Optionen unterscheidet. Aus diesem
                 Grund gab es sogar ein eigenes Konfigurationsprogramm fr
                 NLCACHE. Einige Spezialbehandlungen, die sich bei NLCACHE
                 noch whlen lieen (etwa bei inkompatiblen Festplatten-
                 BIOSen mit groen Platten nur die ersten 256 MByte zu
                 cachen, und verschiedene Integrittskontrollen z.B. fr
                 langsame EMS-Karten), kennt NWCACHE nicht mehr. Entweder
                 sind nur entsprechende Parameter weggefallen und der
                 Treiber erkennt diese Sonderflle nun automatisch, oder
                 Sie sollten bei Schwierigkeiten mit NWCACHE auf ganz alten
                 Rechner einfach einmal NLCACHE ausprobieren (vorausgesetzt,
                 Sie sind Besitzer von NetWare Lite, dann ist das Update
                 NWL11G.EXE sicherlich fr Sie interessant).

                 Das Modul NWCACHE.OV1 wertet darber hinaus auch /A20 nicht
                 aus, das Modul NWCACHE.OV2 kennt zustzlich /A20 und /LEND
                 nicht. Die anderen Parameter werden nicht zurckgewiesen,
                 aber fr NWCACHE.OV2 ist z.B. /CHECK obsolet.

                 Achtung: Wenn Sie NWCACHE ber zu .EXE umbenannte
                 .OV1/.OV2-Module direkt geladen haben und wieder
                 entladen wollen, mssen Sie dafr das gleiche Modul
                 verwenden, sonst wird eine Fehlermeldung ausgegeben.

                 Entgegen dem Hilfeschirm ist es mit NWCACHE 1.01(.1)
                 offenbar nur eingeschrnkt mglich, den DELAY-Wert nach
                 der Erstinstallation zu ndern (ON|OFF ist mglich und
                 wird auch in der Statusmeldung besttigt). Damit ein
                 genderter Zeitwert fr DELAY auch in der Meldung auf-
                 taucht, mu der Cache vorher entladen werden. Allerdings
                 ndert sich sehr wohl das Pufferungsverhalten von Floppies:
                 Bei sehr kleinen DELAY-Werten (auf einem 386sx18 ca.
                 50ms..58ms, auf einem 386sx16 gar nur 50ms..55ms) werden
                 diese Laufwerke im gepufferten Schreibmodus benutzt, sonst
                 nur im Durchschreibmodus (wie auch in der Statusmeldung
                 aufgefhrt). Dies deutet darauf hin, da die nderung des
                 DELAY-Wertes auch zur Laufzeit durchaus mglich ist, nur
                 in der Zeitangabe der Statusmeldung nicht explizit gendert
                 wird.
                 Reicht der gltige Wertebereich von 50..5000ms nicht aus,
                 sollte es mglich sein, zumindest den Maximalwert (1388h)
                 zu patchen (drei Vorkommen pro Datei, das dritte Vorkommen
                 ist der Default-Wert; nicht ausprobiert!).

                 Fr optimale Performance sollten Sie /FLUSH=OFF einstellen,
                 was aber auch nicht ganz ungefhrlich ist, wenn Sie den
                 Rechner nach der Arbeit ohne Wartepause am Prompt (ca.
                 10 Sekunden) einfach ausschalten oder einen inkompatiblen
                 Tastaturtreiber einsetzen, der vor einem Boot-Vorgang via
                 <Ctrl>+<Alt>+<Del> die Cache-Puffer nicht ausschreiben
                 lt (K3PLUS 6.18p5+ bzw. FreeKEYB untersttzen diese
                 Funktion in vollem Umfang). In Verbindung mit 4DOS/NDOS
                 sollten Sie die Einstellung SDFlush=Yes|No in der
                 4DOS.INI/NDOS.INI Datei entsprechend einstellen (siehe
                 Kapitel VII.3.).

                 Frhe NWCACHE Versionen gaben in der /S bersicht teilweise
                 (mit VERIFY ON) ziemlichen Unsinn fr gesparte Schreib-
                 zugriffe aus (astronomisch hohe Zahlen, aber 0%). Dies
                 wurde mit Update 13 korrigiert. Allerdings zeigt NWCACHE /S
                 immer noch keine gesparten Schreibzugriffe an, solange
                 VERIFY ON ist. Da es eigentlich auch mit VERIFY ON eine
                 (geringere) Anzahl einzusparender Schreibzugriffe geben
                 'knnte', ist dies nicht ganz einsichtig. Andererseits
                 weist Novell ausdrcklich darauf hin, da VERIFY ON
                 jeglichen Cache-Bemhungen entgegenluft und daher bei
                 Verwendung von NWCACHE oder NetWare-Anbindung ausgeschaltet
                 werden sollte (mehr zu diesem Thema in Kapitel II.14.).
                 Mit VERIFY OFF verbessert sich die NWCACHE Performance
                 jedenfalls drastisch, was sich insbesondere bei sehr
                 langsamen Laufwerken bemerkbar macht (s.u.).
                 Achtung: Die mit Caldera OpenDOS 7.01 ausgelieferte
                 Version NWCACHE v1.02 enthlt diesen alten Bug nun wieder,
                 obwohl der bei Novell DOS mit NWCACHE v1.01 beseitigt
                 wurde (intern enthalten alle diese Ausgaben eine alte
                 Angabe VeRsIoN=1.01.1 von 1993).

                 Offenbar ist die maximale Laufwerks- (oder Partitions-
                 gre???), die NWCACHE bearbeiten kann, ein Gigabyte.
                 Darber hinaus knnen nur noch Floppies gepuffert
                 werden, der Treiber sollte dann unmittelbar nach
                 HIMEM/EMM386/DMPS in CONFIG.SYS geladen werden.
                 (Vielleicht wurde diese Schranke - wenn sie denn wirklich
                 existierte, was ich mangels eines solchen Laufwerks
                 derzeit nicht berprfen kann - mit Caldera OpenDOS 7.01
                 NWCACHE v1.02 beseitigt? Erfahrungsberichte willkommen.)

                 NWCACHE kann alle Laufwerke cachen, die via Blocktreiber
                 ins System eingebunden sind (d.h. aber keine CD-ROMs,
                 die via Umadressierer eingebunden sind, daher auch keine
                 entfernten Netzlaufwerke). Daran hat sich auch mit
                 NWCACHE v1.02 aus Caldera OpenDOS 7.01 noch nichts ge-
                 ndert. Eine Abhilfe bieten z.B. spezielle CD-ROM-Caches
                 von Drittanbietern, etwa CD-Quick (CDQ.EXE), die auch mit
                 meinem INSTCDEX.EXE Utility problemlos funktionieren,
                 allerdings bei Verwendung des DPMS-nutzenden NWCDEX statt
                 MSCDEX einen schmerzlichen Verlust von kostbarem DOS-
                 Speicher bewirken (aber mit SMARTDRV und/oder MSCDEX sind
                 Sie auch nicht besser bedient...).

                 Wenn Sie z.B. ber einen Tape-Streamer verfgen, der sich
                 ber Treiber als (extrem langsame) 'Harddisk' wahlfrei an-
                 sprechen lt (z.B. 2x33 MByte HP9142 mit DC-600 Medien an
                 HP-IB/GP-IB/IEEE-488-Karte), so knnen damit schon nach
                 kurzer Betriebszeit die Wartezeiten (normalerweise bis zu
                 mehrere Minuten fr einen Verzeichniswechsel!) drastisch
                 verkrzt werden. Bei derartig langsamen 'Laufwerken' ist
                 es brigens zweckmig, den Schreib-Cache explizit zu
                 aktivieren (falls NWCACHE das whrend der Installation
                 noch nicht von selbst macht) und VERIFY OFF zu setzen.
                 (Bei obigem Streamer dauerte ein 30 MByte Backup mit dem
                 Norton Commander bzw. COPY ohne NWCACHE und mit VERIFY ON
                 etwa 3 Tage (BUFFERS=3, FASTOPEN=0), mit NWCACHE (mit
                 Schreib-Cache) und VERIFY ON etwa 2 Tage und als letzte
                 Alternative mit VERIFY OFF ca. 7 Stunden. ;-) )

                 Diese Ergebnisse lassen brigens darauf schlieen, da
                 VERIFY ON|OFF bei Novell DOS 7 (und auch schon bei DR DOS)
                 wirklich einschneidende berprfungen vornimmt. Mehr dazu
                 in Kapitel II.14.

                 brigens ist NWCACHE in einigen Punkten kompatibel zu
                 SMARTDRV: Das SMARTDRV 4.0+ API wird grtenteils nach-
                 gebildet. Daher braucht NWCACHE auch nicht aus der Kon-
                 figuration entfernt werden, wenn etwa ein Defragmentierer
                 wie PC-Tools COMPRESS/OPTIMIZR warnt, alle Caches auer
                 SMARTDRV usw. (aber nicht NWCACHE) zu entfernen. Ich
                 hatte mit NWCACHE noch nie diesbezgliche Probleme mit
                 derartigen Pflegeprogrammen.

   NWCDEX.EXE    Speicheroptimierter (weil DPMS-nutzender) Ersatz fr
                 Microsofts MSCDEX.EXE, siehe auch Kapitel II.3. und V.4.
                 Arbeitet auch mit DR DOS 5.0 und 6.0 (nicht aber mit 3.41).

                 Da NWCDEX im DOSBOOK nicht dokumentiert ist, mssen Sie
                 auf die eingebaute Hilfe ausweichen, die NWCDEX /? selbst
                 ausgibt. NWCDEX untersttzt - dokumentiert - alle Parameter
                 von MSCDEX.EXE sowie einige eigene Optionen. Der Parameter
                 /L:driveletter kann bei NWCDEX auch einen Doppelpunkt
                 enthalten (etwa /L:E:), da MSCDEX dies aber nicht akzep-
                 tiert, sollten Sie darauf verzichten.

                 Sogar die MSCDEX-Option /S (zum CD-ROM-Sharing in Ver-
                 bindung mit MS-NET oder MS Windows for Workgroups) wird -
                 undokumentiert - nicht zurckgewiesen (getestet mit Update
                 15), ndert bei NWCDEX aber absolut nichts am Speicher-
                 verbrauch, knnte also ein Dummy sein (MSCDEX bentigt
                 ca. 0,5 KByte mehr, wenn die /S Option angegeben wurde). Im
                 Zweifelsfall schadet die Angabe bestimmt nicht. NWCDEX.EXE
                 erlaubt in jedem Fall das Sharing des CD-ROM-Laufwerks in
                 Verbindung mit PNW (andere Netze noch nicht getestet,
                 Hinweise willkommen).
                 MSCDEX ndert mit /S die Untersttzung von TRUENAME:
                 Normalerweise werden CD-ROM-Laufwerke in einer speziellen
                 Variante der UNC-Notation angegeben (z.B. \\D.\A.), jeden-
                 falls wird das Laufwerk ber diesen Pfad in der CDS
                 (Current Directory Structure) referenziert. Obwohl sich
                 daran auch mit /S nichts ndert, ergibt TRUENAME interes-
                 santerweise auch fr das CD-ROM-Laufwerk einen normalen
                 Pfad (z.B. D:\). Obwohl MSCDEX unter MS-DOS problemlos
                 mit der Option /S aufgerufen werden kann, wird das Laden
                 des Treibers (meiner bisherigen Erfahrung nach) mit der
                 Option /S unter Novell DOS immer zurckgewiesen, auch bei
                 installiertem SHARE.

                 Sollen mehrere CD-ROMs ins System eingebunden werden,
                 kann man die Angabe /D:name mehrfach angeben. Mchte man
                 das gleiche Laufwerk unter mehreren Buchstaben ansprechen,
                 so ist sogar die mehrfache Ankopplung an den gleichen
                 Hardware-Treiber mglich.

                 NWCDEX/MSCDEX sollte vor den Netztreibern geladen werden,
                 zwingend notwendig ist dies aber nicht.

                 Es gibt einige Installationsprogramme von CD-ROM-Laufwerken
                 (z.B. 4fach-speed CD-ROM-Laufwerke von Mitsumi), die die
                 Konfigurationsdateien nach einem MSCDEX-Treiber durchsuchen
                 und nicht funktionieren, wenn Sie das Gegenstck NWCDEX von
                 Novell benutzen. In solchen Fllen sollten Sie NWCDEX.EXE
                 kurzfristig in MSCDEX.EXE umbenennen oder die Installation
                 manuell vornehmen. Das Problem ist lediglich in der Igno-
                 ranz solcher Installationsprogramme begrndet und ist kein
                 Kompatibilittsproblem: Die CD-ROM-Laufwerke funktionieren
                 natrlich genausogut mit NWCDEX wie mit MSCDEX!

                 Einzige Designschwche: Whrend der Initialisierung be-
                 ntigt der Treiber enorm viel freien Speicher. Obwohl es
                 mit geladenem DPMS (oder CLOAKING, siehe Kapitel II.4. bei
                 DPMS) kein Problem ist, die unter DOS bentigte Gre des
                 residenten Codes von ca. 83 KByte auf 7 KByte schrumpfen
                 zu lassen (MSCDEX bentigt hier noch ber das Doppelte
                 (16 KByte) und kann sich nicht ohne Weiteres auslagern),
                 ist es enorm schwierig, diese restlichen 7 KByte in den
                 UMBs zu verstauen.
                 Interessanterweise ist der insgesamt bentigte Speicher-
                 bedarf beider Treiber bis auf ca. ein KiloByte gleich, mit
                 dem Unterschied, da man NWCDEX besser auslagern kann.
                 Trotzdem:
                 In den allermeisten Fllen wird sich der Treiber nicht
                 hochladen knnen und belegt dann diese 7 KByte im Basis-
                 speicher (wo er besonders strt). Offenbar kann der
                 Treiber nur dann hochgeladen werden, wenn zum Zeitpunkt
                 der Initialisierung der komplette Code in den UMBs unter-
                 gebracht werden kann, auch wenn er spter nur besagte
                 7 KByte bentigt.
                 Vielleicht kann man hier mit QEMMs Squeeze-Technik etwas
                 ausrichten, unter EMM386 konnte ich jedoch noch keine DOS-
                 eigene Lsung fr dieses Hochladeproblem finden.

                 Mit MEM direkt vor dem Aufruf des NWCDEX-Treibers knnen
                 Sie feststellen, wieviel UMB-Speicher ggf. fehlt, um NWCDEX
                 hochzuladen. Sollten auf Ihrem System nur 4 KByte oder
                 weniger fehlen, knnen Sie folgenden Trick versuchen:

                  PKLITE NWCDEX.EXE -x

                 entpackt den NWCDEX.EXE-Treiber auf Originalgre und
                 streift den PKLITE-Selbstentpacker von der Datei NWCDEX.EXE
                 ab. Da nun dieser Selbstentpacker whrend der Ladephase
                 des Treibers nicht *auch* noch Speicher bentigt (maximal
                 4 KByte bei PKLITE 1.xx, jedoch bis zu 85 KByte bei PKLITE
                 2.xx), kann es sein, da NWCDEX.EXE nun gerade doch noch
                 hochgeladen werden kann.

                 Wegen dieses Hochladeproblems ist es besonders rgerlich,
                 da NWCDEX (wie auch MSCDEX, von MS-DOS 7 abgesehen)
                 normalerweise nicht in CONFIG.SYS geladen werden kann, wo
                 i. allg. noch mehr als genug UMB-Speicher zur Verfgung
                 steht. Da der Treiber in CONFIG.SYS nicht geladen werden
                 kann, liegt daran, da oft nicht gengend Laufwerksbuch-
                 staben zur Verfgung stehen. Die CONFIG.SYS Einstellung
                 LASTDRIVE= wirkt erst *nach* der Abarbeitung der CONFIG.SYS
                 (mehr zu LASTDRIVE= in Kapitel III.1. und III.2.). So kommt
                 es, da NWCDEX (als auch MSCDEX) oft die Meldung 'Kein
                 Laufwerksbuchstabe verfgbar' ausgibt, wenn Sie versuchen,
                 NWCDEX.EXE etc. per INSTALL=/INSTALLHIGH= etc. zu laden.
                 Das Laden per DEVICE=/DEVICEHIGH= etc. scheitert daran,
                 da NWCDEX und MSCDEX keinen entsprechenden Treiberkopf
                 bereitstellt.

                 Um diesem Problem abzuhelfen und dadurch NWCDEX (oder
                 MSCDEX) doch komplett hochladen zu knnen, habe ich ein
                 kleines Utility namens INSTCDEX.EXE geschrieben, das alle
                 diese Probleme lst, indem es ermglicht, einen bereits
                 benutzten Laufwerksbuchstaben wieder fr ungltig zu er-
                 klren (was man natrlich nur mit Bedacht fr Dummy-
                 Laufwerke anwenden sollte) oder selbst die Laufwerkstabelle
                 erweitert, um dadurch das Laden von Umadressierern wie
                 NWCDEX/MSCDEX bereits in CONFIG.SYS zu erlauben. Damit ist
                 das CD-ROM-Laufwerk in CONFIG.SYS bereits ansprechbar
                 (nachweisbar mit INSTALL=c:\nwdos\command.com). Auf diese
                 Weise knnen sogar in CONFIG.SYS Treiber direkt von CD-ROMs
                 geladen werden! Da beim endgltigen Laden des Kommando-
                 prozessors auf dem blichen Weg (SHELL=) nach CONFIG.SYS
                 unter Novell DOS (nicht bei MS-DOS) die internen Laufwerks-
                 tabellen verschoben und erneut verndert werden, wrde
                 das CD-ROM-Laufwerk aber in AUTOEXEC.BAT und spter wieder
                 abgekoppelt sein. Auch mit diesem Problem wird INSTCDEX.EXE
                 fertig, indem es ermglicht, den aktuellen Status des
                 Laufwerks in einer Datei C:\CDS_?.DAT zu speichern und
                 spter wieder zu laden.

                 Beispiel zum Hochladen von NWCDEX.EXE in CONFIG.SYS:

                  CONFIG.SYS:

                   REM (EMM386.EXE/DPMS.EXE bereits geladen...)
                   DEVICEHIGH=c:\sys\cdrom\mscd001.sys /d:mscd001 ...
                   REM Laufwerksbuchstaben bereitstellen (hier H:=7)...
                   DEVICEHIGH=c:\nwdos\DRIVER.SYS /d:7 /f:7
                   DRIVPARM=/d:7 /c /f:8 /n
                   INSTALL=INSTCDEX.EXE /prepare /drive=h
                   REM Nun kann NWCDEX doch geladen werden, denn der bereit-
                   REM gestellte Laufwerksbuchstabe H: ist wieder verfgbar.
                   INSTALLHIGH=c:\nwdos\nwcdex.exe /d:mscd001 /m:32 /l:h ...
                   REM Nur bei Novell DOS notwendig:
                   INSTALL=INSTCDEX.EXE /cdrom /save /drive=h

                  AUTOEXEC.BAT:

                   REM CD-ROM-Laufwerk ist nicht mehr ansprechbar...
                   REM Nur bei Novell DOS notwendig:
                   INSTCDEX.EXE /restore /drive=h
                   REM Nun ist das CD-ROM-Laufwerk wieder ansprechbar...

                 Falls Sie auf diese Art und Weise mehr als ein CD-ROM-
                 Laufwerk einbinden wollen (/D: siehe oben), mssen Sie
                 entsprechend viele Laufwerke mit INSTCDEX.EXE prparieren.
                 Unter Novell DOS und Caldera OpenDOS gibt es sogar noch
                 eine (unsaubere) Methode, ganz auf den zustzlichen
                 Treiber zu verzichten: Hierzu dient die INSTCDEX-Option
                 /LASTDRIVE. Nheres zu INSTCDEX findet sich in dem Archiv
                 INSTCDEX.ZIP.

                 NWCDEX (getestet bis Update 15) setzt im Gegensatz zu
                 MSCDEX in seinem CDS-Eintrag nicht das 'Local CD-ROM-Bit'.
                 Daher knnte theoretisch das Laufwerk flschlicherweise
                 in Netzlaufwerksauflistungen auftauchen (allerdings fr
                 PNW nicht notwendig), sicherheitshalber knnen Sie mit
                 Hilfe von INSTCDEX.EXE /CDROM dieses Bit nachtrglich
                 setzen. Dieses Bit hat nichts mit der Option /S zu tun.

                 Zu guter Letzt noch eine Anmerkung am Rande (die Details,
                 die zu diesem Verhalten fhren, sind noch nicht genauer
                 eingekreist): Wechselt man eine CD-ROM-Medium, whrend
                 man sich auf dem zugehrigen CD-ROM-Laufwerk in einem
                 Unterverzeichnis befindet, so synchronisiert der Kernel
                 erst dann auf die Verzeichnisstruktur des neuen Mediums
                 (d.h. dessen Wurzelverzeichnis), wenn man explizit darauf
                 wechselt (z.B. mit "CD\"). Alle anderen Dateioperationen
                 auf dem Laufwerk werden mit 'Ungltiger Pfad' zurckge-
                 wiesen; der Pfad bleibt auf der Einstellung fr das vor-
                 herige Medium stehen und kann 'weiterverwendet' werden,
                 wenn man das zugehrige Medium wieder einlegt. Nicht ganz
                 unlogisch, aber auch nicht unbedingt ergonomisch in jeder
                 Situation.

                 Und noch ein interessanter Hinweis: Der CD-ROM-Umadres-
                 sierer IMSCDEX aus IMS REAL/32 (einem Nachfolger von
                 DR Multiuser DOS), ist nichts weiter als eine modifizierte
                 Fassung von Novells NWCDEX.EXE (1.00).

   PASSWORD.EXE  Einstellen und Lschen von Datei-, Pfad-, und globalen
                 Pawrtern (wie auch bei DR DOS), aber zustzlich auch
                 die Angabe eines Anmeldungspawortes (im Rahmen des
                 Features der 'einmaligen Anmeldung' unter Zuhilfenahme
                 der SECURITY-Datenbank).

                 Alle dateibezogenen Novell DOS Kommandos, die bei ihrer
                 Bearbeitung auf pawortgeschtzte Dateien/Pfade stoen
                 knnten, erlauben nach der Angabe der Dateispezifikation
                 - getrennt durch ein Semikolon - die optionale Angabe
                 des jeweiligen Pawortes (dies wird zwar im DOSBOOK
                 beschrieben, ist aber ansonsten fast undokumentiert).
                 Auerdem ist die gleiche Schreibweise auch innerhalb
                 der Eingabemasken von beliebigen Fremdprogrammen erlaubt,
                 falls diese nicht in Unkenntnis von Novells Feature das
                 Semikolon als ungltiges Zeichen zurckweisen. Diese
                 erweiterte Syntax war auch schon bei DR DOS vorhanden.
                 Das Ganze funktioniert auch in DOS-Boxen von Windows
                 und betrifft sogar die Windows-Anwendungen selbst, falls
                 diese unter Novell DOS oder DR DOS laufen.

                 Beispiele:

                  Fr Novells COMMAND.COM und externe Kommandos:

                  DIR c:\autoexec.bat;password

                  Unter 4DOS ist die Angabe von DR DOS/Novell DOS-
                  Pawrtern ebenfalls mglich, wegen der Kollision mit
                  deren Dateilisten (inclusion list) mu das Semikolon
                  allerdings bei (fast allen) 4DOS.COM internen Kommandos
                  verdoppelt werden:

                  DIR c:\autoexec.bat;;password

                  Tricks zur Vermeidung dieser Kompatibilittsschwche
                  in Kapitel II.9. (Achtung: Verwenden Sie nicht 4DOS 5.51/
                  5.52a TYPE mit pawortgeschtzte Dateien: Aufgrund eines
                  Bugs in 4DOS strzt sonst der Rechner ab.)

                 Wie offiziell dokumentiert, werden Pawrter mit PASSWORD
                 gesetzt, berprft und gelscht (wobei das berprfen etwa
                 mit PASSWORD *.* nicht mit geschtzten Verzeichnissen
                 funktioniert). Die erweiterte Syntax mit Semikolon dient
                 hingegen dazu, das Pawort beim Zugriff auf die Dateien und
                 Verzeichnisse angeben zu knnen (wenn sie nicht mit dem
                 globalen Pawort bereinstimmen). Undokumentiert ist aller-
                 dings die Mglichkeit, mit dieser erweiterten Syntax auch
                 implizit Pawrter zu *setzen*:

                 Beispiele:

                  ECHO Hello World!> c:\test.txt;password

                  setzt implizit das PASSWORD /R:password fr die erzeugte
                  Datei c:\test.txt (Inhalt: "Hello World!")

                  COPY c:\test.txt;password c:\test2;newpassword

                  Genauso ist es mglich, mit COPY oder MOVE Befehlen auch
                  direkt ein neues Pawort fr die Zieldatei anzugeben, denn
                  wie noch gezeigt wird, wird der Schutz dabei normalerweise
                  aufgehoben.

                  MD c:\test;password

                  setzt implizit das PASSWORD /P:password fr das erzeugte
                  Verzeichnis c:\test\

                 Obwohl dies im Groen und Ganzen auch unter 4DOS funktio-
                 niert, gibt es dort noch einige Schwierigkeiten, so da
                 man bei gemischten Systemen auf diese implizite Angabe
                 von neuen Pawrtern verzichten sollte: Teilweise akzep-
                 tiert 4DOS hier nur ein Semikolon und nicht die Verdop-
                 pelung (etwa bei CD), auerdem knnen Pawrter bei 4DOS
                 nicht in Umleitungen verwendet werden. Der Befehl

                  ECHO Hello World!> c:\test.txt;;password

                 bewirkt bei 4DOS etwas vllig anderes als bei COMMAND.COM:
                 Die erzeugte Datei c:\test.txt enthlt
                 "Hello World! ;;password" statt "Hello World!". Es drfte
                 sich hier um einen Bug in 4DOS handeln (4DOS.COM 5.5c,
                 5.51, 5.52a), vgl. auch Kapitel II.11.

                 Ein echtes Problem entsteht unter 4DOS, wenn man auf
                 pawortgeschtzte Dateien zugreifen mchte, die in pa-
                 wortgeschtzten Verzeichnissen liegen. Der Novell DOS
                 Kernel will hier (aufgrund der 4DOS-internen Behandlungs-
                 weise) grundstzlich *beide* Pawrter wissen (auch dann,
                 wenn man sich bereits im jeweiligen Verzeichnis befindet).
                 Unter Novells COMMAND.COM wird dies - von ausfhrbaren
                 Dateien abgesehen - normalerweise nicht bentigt, wenn
                 man sich bereits im entsprechenden Verzeichnis befindet.
                 Aber auch, wenn man von auen auf eine solche Datei zu-
                 greifen will, gibt es unter Novell DOS' und DR DOS'
                 COMMAND.COM eine zwar einleuchtende, aber undokumentierte
                 Eingabevariante:

                  c:\testdir            sei pawortgeschtzt mit
                                        Pawort "hello" und
                  c:\testdir\dummy.txt  sei pawortgeschtzt mit
                                        Pawort "world"

                  TYPE c:\testdir;hello\dummy.txt;world    funktioniert!!!

                 Diese Schreibweise (oder die Verwendung von spter noch
                 vorzustellenden Master-Pawrtern) ist *immer* notwendig,
                 wenn es darum geht, Programmdateien zu starten, die in
                 pawortgeschtzten Verzeichnissen liegen, selbst dann,
                 wenn man sich bereits in dem entsprechenden Verzeichnis
                 befindet.

                 Unter 4DOS wird diese besondere Form der Dateispezifikation
                 zurckgewiesen (auch mit verdoppeltem Semikolon).

                 Auerdem ist problematisch, da Pawrter unter MS-DOS und
                 PC-DOS generell als Eingabefehler zurckgewiesen werden.
                 Dieses Problem lt sich fr Batchjobs, die unter jedem DOS
                 funktionieren sollen, auf zwei Weisen aus dem Weg rumen:
                 Entweder man verzichtet auf diese Syntax und arbeitet mit
                 stndig anzupassenden globalen Pawrtern (PASSWORD /G).
                 Die andere Mglichkeit besteht darin, die Pawrter in
                 Umgebungsvariablen unterzubringen. Dies wird in Kapitel
                 II.9. ausfhrlicher beschrieben.

                 Da man mit den gespeicherten Einzelpawrtern keine Datei-
                 gruppen bearbeiten knnte, kann man mit PASSWORD auch ein
                 'globales' Pawort definieren, das automatisch bei allen
                 Pawortabfragen eingesetzt wird. Dieses Pawort bleibt im
                 laufenden System (nicht auf der Festplatte) aktiv, bis es
                 wieder aufgehoben wird oder bis man den Rechner neu bootet.
                 Zwischenzeitlich kann man trotzdem mit expliziten anderen
                 Pawrtern arbeiten.

                 Da unter Windows die wenigsten Programme in Dateieingabe-
                 masken die Angabe eines Semikolon akzeptieren, werden Sie
                 besonders hier auf die Angabe eines Master-Pawortes
                 (PASSWORD /G) ausweichen mssen. Da im laufenden System
                 nur ein Master-Pawort existiert (auch in unterschiedlichen
                 Tasks eines Multitaskers) knnen Sie zu diesem Zweck auch
                 problemlos eine DOS-Box ffnen und dort das Master-Pawort
                 angeben, das sofort auf alle Windows- und DOS-Applikationen
                 wirkt.

                 Der Pawortschutz kann (bei Novell DOS 7) 'offiziell' drei
                 verschiedene Hierarchieebenen umfaen:

                 /R:password  Schutz vor allen Operationen (auch Lesen=Read)
                              (/P: fr Verzeichnisse wirkt im Prinzip wie
                              /R: fr Dateien)
                 /W:password  Schutz vor Schreiben und Modifizieren (Write)
                              Kann Gelesen und
                 /D:password  Schutz vor Lschen, Umbenennen und Verschieben

                 Da es hier auch in der Literatur immer wieder Verwechsel-
                 ungen gab: Es besteht ein signifikanter Unterschied darin,
                 ob alle Dateien eines Verzeichnisses mit einem Pawort
                 geschtzt werden, oder ob das Verzeichnis selbst pawort-
                 geschtzt wird!
                 Angenommen, C:\TESTDIR\ sei das Verzeichnis:

                 PASSWORD c:\testdir /R:test    schtzt alle Dateien aus
                                                c:\testdir\*.* mit "---",
                 PASSWORD c:\testdir /P:test    lt die Dateien in
                                                C:\TESTDIR vllig in Ruhe
                                                (knnen eigenen Pawort-
                                                schutz besitzen oder auch
                                                nicht) und versieht das
                                                Verzeichnis C:\TESTDIR\
                                                selbst mit dem Pawort-
                                                schutz "---"

                 Gro-/Kleinschreibung bei der Angabe von Pawrtern wird
                 ignoriert. Bezglich sinnvoller Namensvergabe fr Pawrter
                 siehe Kapitel VI.7.

                 Achtung: Der Umfang des Pawortschutzes wird bei
                 Novell DOS 7 PASSWORD mit Masken wie "---", "RWD", usw.
                 angegeben. Hier besteht groe Verwechselungsgefahr:
                 DR DOS 6.0 PASSWORD gab die Bits nmlich noch genau
                 invertiert an!
                 D.h. bei DR DOS wurde ein "-" angezeigt, wenn der Pawort-
                 schutz fr die jeweilige Operation NICHT gesetzt war
                 (irgendwie logisch), normale Dateien hatten also "---".
                 Bei Novell DOS 7 werden stattdessen die 'Rechte' an der
                 Datei ohne Angabe eines Pawortes angegeben, d.h. normale
                 Dateien haben "RWD". Obwohl ich persnlich die alte Logik
                 bevorzuge (da sie der internen Realisierung in der API-
                 Funktion und der Verzeichnisstruktur entspricht, wohlge-
                 merkt bei DR DOS *und* Novell DOS), verwende ich in diesen
                 Dokumenten (auer in DRDOS6UN.TXT und DRDOSTIP.TXT) die
                 neue Schreibweise, wie von Novell DOS 7 verwendet.

                 Noch alles klar? ;-)

                 Mchte man ein Pawort wieder aufheben, benutzt man
                 blicherweise PASSWORD /N, das automatisch bei allen
                 pawortgeschtzten Dateien nach dem Pawort fragt. Der
                 Parameter /N erlaubt jedoch keine direkte Angabe des
                 Pawortes: Knnte man die Angabe jedoch auch ber die
                 Dateispezifikation vornehmen (Wildcards, Listendateien
                 und Dateilisten sind erlaubt), so kann man die Angabe
                 auch vorweg vornehmen (etwa in Batchjobs), z.B.:

                  PASSWORD *.txt;password /N

                 Pawrter knnen nicht ber ein Netzlaufwerk vergeben/
                 verschickt werden (wre ja auch unsicher, die in der
                 Dateispezifikation enthaltenen Pawrter unverschlsselt
                 ber das Netz zu senden). Der Zugriff auf entfernte
                 Dateien, die pawortgeschtzt sind, ist - im Rahmen der
                 Zugriffsrechte des Benutzers - also nur in dem Mae
                 mglich, wie fr die Operation kein Pawort ntig ist.
                 Ungltige Operationen werden mit einem Gertefehler
                 zurckgewiesen ("Schutz vor Recht").
                 Ob dieses Verhalten sich in Multiuser-Varianten ndert,
                 kann ich nicht sagen, auf diese Weise besteht aber eine
                 Mglichkeit, die Zugriffsrechte auch zwischen entfernten
                 Benutzern und lokalen Benutzern aufzuteilen und zustzlich
                 zu den Dateiattributen und den jeweils geltenden Zugriffs-
                 rechten des jeweiligen Benutzer-Accounts auf dem Laufwerk
                 einzustellen.

                 Aus dem oben Beschriebenen kann man ein sinnvoll pawort-
                 geschtztes System aufbauen, indem alle Dateien jedes
                 Benutzers mit jeweils einem anderen Pawort versehen
                 werden. Ausgeschlossen davon bleiben andere wichtige
                 Dateien, die Pawortgruppen wie 'System', 'ProjektX'
                 zugeordnet werden sollten. Gibt nun der jeweilige Benutzer
                 beim Systemstart *sein* globales Pawort (im Rahmen der
                 lokalen Benutzerkonten) an, kann er nicht versehentlich
                 andere Dateien bearbeiten, die anderen Benutzern gehren
                 oder fr die Systemfunktion notwendig sind. Dieses Pawort
                 kann man ber die Sicherheitsfunktion 'einmalige Anmeldung'
                 auch fr den jeweiligen Account im PNW-Netz verwenden, so
                 da sich jeder Benutzer nur einmal einloggen mu.

                 Pawortgeschtzte Dateien bekommen das Hidden-Attribut,
                 werden aber unter Novell DOS/DR DOS trotzdem ganz normal
                 angezeigt. Auch wenn man dieses Hidden-Attribut wieder
                 lscht, bleiben die Dateien natrlich pawortgeschtzt.
                 Unter 4DOS.COM werden normalerweise Dateien mit Hidden-
                 Attribut nicht angezeigt bzw. bearbeitet, solange man bei
                 dem entsprechenden Kommando nicht explizit diese Dateien
                 einschliet (so sagt es die 4DOS-Dokumentation).
                 Allerdings wurde auf meinem Testsystem (4DOS 5.5c) das
                 Verhalten von Novell DOS kopiert, indem pawortgeschtzte
                 Dateien (fast) ganz normal angezeigt bzw. bearbeitet
                 werden knnen, als wre das Hidden-Attribut nicht gesetzt
                 (bis auf die optionale Attribut-Einfrbung bei DIR-Aus-
                 gaben, hier wird die den Attributen entsprechende Farbe
                 gewhlt und das Hidden-Attribut nicht ignoriert). Wichtig
                 ist nur, da man das Pawort angibt.

                 Achtung: Die Pawrter werden bei Kopieroperationen (z.B.
                 mit COPY oder XCOPY) nicht an neue Dateien vererbt. D.h.,
                 man mu zwar vor der Ausfhrung im Rahmen des gesetzten
                 Schutzes ein Pawort angeben, aber eine kopierte Datei ist
                 dann nicht automatisch wieder pawortgeschtzt und mu bei
                 Bedarf wieder neu geschtzt werden (entweder implizit ber
                 die Angabe eines Pawortes in erweiterter Syntax oder
                 explizit mit PASSWORD). Auerdem wird ein gesetztes Hidden-
                 Attribut gelscht.

                 Bei Verwendung von Kommandos wie REN[AME] werden das Pa-
                 wort und die Attribute bernommen. Auerdem werden in
                 diesem Fall auch die restlichen Felder des reservierten
                 Bereichs der Verzeichnisstruktur bernommen, so da auch
                 andere Daten, wie DR DOS 6.0 Owner-IDs und alles andere
                 gleich bleiben (mehr dazu etwas weiter unten). In diesem
                 Punkt ist die Untersttzung fr Owner-IDs mit Novell DOS 7
                 also nicht weggefallen, d.h. alle Daten, die auf irgend-
                 eine Weise mit dem Verzeichniseintrag der Datei verknpft
                 wurden, werden dann vom System solange mitgeschleppt, bis
                 die Datei gelscht wird (auf welche Weise auch immer,
                 siehe folgende Bemerkungen bei MOVE).

                 Das Kommando MOVE ist eine Mischung aus REN[AME] und COPY,
                 daher ist auch das Verhalten davon abhngig, ob effektiv
                 ein REN oder ein COPY ausgefhrt wird: Solange die Datei
                 effektiv nur umbenannt (d.h. innerhalb des gleichen Lauf-
                 werks verschoben) wird, verhlt sich alles wie bei REN
                 (das bezieht sich brigens auf die physikalischen Lauf-
                 werke, d.h. Substitut-Laufwerke etc. werden korrekt
                 bercksichtigt). Wird die Datei jedoch effektiv kopiert
                 (auf ein anderes physikalisches Laufwerk), so wird wie bei
                 COPY auch MOVE der Pawortschutz bei der Zieldatei ent-
                 fernt, allerdings das Hidden-Attribut nicht gelscht (das
                 drfte ein Bug in der Implementation von MOVE sein).
                 Allerdings wird die Datei nicht wirklich verschoben,
                 sondern trotz MOVE nur kopiert. Das bedeutet, da die
                 Quelldatei am Ursprung weiterhin vorhanden bleibt und
                 ber die gleichen Attribute und Pawortschutz wie bisher
                 verfgt.

                 Dieses Verhalten wird auch unter 4DOS nachgeahmt, auer
                 da die Kommandos bei fehlender Pawortangabe nicht
                 whrend der Bearbeitung des Kommandos automatisch das
                 Pawort erfragen, d.h. das Pawort mu immer beim Aufruf
                 angegeben werden und damit kann es Schwierigkeiten geben,
                 wenn whrend der Abarbeitung mehrere unterschiedliche Pa-
                 wrter angegeben werden mssen und man nicht mit einem
                 Master-Pawort arbeitet.

                 Unter anderen Betriebssystemen (wie MS-DOS oder PC-DOS),
                 die diese Pawortfunktionen nicht kennen, sind die pawort-
                 geschtzten Dateien stattdessen versteckt, aber nach Ent-
                 fernen des Hidden-Attributs ohne Pawort zugnglich!
                 Damit besteht also auch eine Mglichkeit, an Dateien
                 heranzukommen, deren Pawort vergessen wurde. Diese mssen
                 unter MS-DOS oder PC-DOS nur 'effektiv' in eine neue Datei
                 kopiert werden (also nicht nur REN), danach kann man auch
                 unter Novell DOS/DR DOS wieder an diese Dateien heran-
                 kommen. Entscheidend dafr, ob der Pawortschutz aktiv ist
                 oder nicht, ist die Kernel-Implementation, nicht die des
                 Kommandoprozessors.
                 Problematisch ist lediglich, da auch pawortgeschtzte
                 Verzeichnisse das Hidden-Attribut besitzen und dieses
                 Attribut mit dem normalen ATTRIB-Kommando bei Verzeich-
                 nissen nicht zurckgesetzt werden kann. Hier mu man
                 entweder auf Fremd-Utilities oder Disk-Editore ausweichen,
                 die diese Kombination nicht zurckweisen (gibt es noch aus
                 der Zeit, wo DOS selbst noch kein ATTRIB kannte), oder z.B.
                 den Norton Commander zuhilfe nehmen (die Option 'Show
                 Hidden-Files' mu aktiviert werden). Im NC kann man dann
                 ganz normal in diesem versteckten Verzeichnis arbeiten.
                 Will man den Schutz aufheben, sollte man den Verzeichnis-
                 inhalt zwischenspeichern, das geschtzte Verzeichnis
                 lschen, und danach wieder alles zurckkopieren.
                 Alternativ dazu ist es im Norton Commander auch mglich,
                 das Hidden-Attribut von Verzeichnissen zu lschen. Danach
                 kann man dann auch wieder DOS-Befehle auf das Verzeichnis
                 anwenden.

                 Eine verwandter Trick, um ein Hidden-Attribut eines Ver-
                 zeichnisses zu lschen, ist es, mit PASSWORD ein Dummy-
                 Pawort fr das Verzeichnis zu setzen und direkt danach
                 wieder zu lschen. Dabei wird dann auch das Hidden-Attribut
                 gelscht.

                 brigens: Ein Pawort bleibt (zumindest mit DELWATCH) auch
                 erhalten, wenn eine Datei gelscht und danach wieder ent-
                 lscht wird.

                 Etwas zur Physik der Verzeichniseintrge:

                 Die Pawrter werden bei Novell DOS und DR DOS uni-
                 direktional verschlsselt in bei MS-DOS reservierten Be-
                 reichen innerhalb der 32 Byte groen Verzeichniseintrge
                 gespeichert: Das unidirektional verschlsselte Pawort
                 liegt als Prfsumme bei Offset +0Eh (WORD) (von Windows95
                 fr das Erzeugungszeitpunkt einer Datei benutzt), die
                 Zugriffssperren WRED (Write/Read/Execute/Delete) jeweils
                 fr "World", "Group" und "Owner" im leider auch von OS/2
                 benutzten Feld "EA-Handle" bei Offset +14h (Word), und
                 zwar in der Bit-Logik, wie bei DR DOS angegeben (d.h.
                 invers zu der Ausgabe von PASSWORD bei Novell DOS 7).
                 Normalerweise haben diese drei Bit-Gruppen unter
                 'Singleuser' DR DOS/Novell DOS immer den gleichen Wert
                 (0000h, 0111h, 0555h, 0DDDh). Man erkennt, da die mit
                 PASSWORD einstellbaren drei Kombinationen von Zugriffs-
                 rechten nur einen Bruchteil der mglichen Kombinationen
                 abdecken. Der Schutz fr Verzeichnisse entspricht
                 brigens auch 0DDDh, auch wenn die API-Funktionen selbst
                 etwas anders angesprochen werden mssen.
                 PASSWORD setzt (zumindest unter dem blichen 'Singleuser'
                 Novell DOS 7) die Access-Rights gleichzeitig fr alle
                 drei internen Benutzerklassen "World", "Group" und "Owner",
                 und kennt jeweils auch nur "RWD" (nichts, bzw. /N), "RW-"
                 (/D), "R--" (/W) und "---" (/R), da diesbezglich nur bei
                 Multiuser-Varianten unterschieden wird (bei DR DOS ist die
                 Funktionsweise zwar gleich, aber die Bits werden genau in
                 umgekehrter Logik angezeigt, s.o.). Auch haben die drei
                 Execute-Lock-Bits (nicht angezeigt) unter DR DOS/Novell DOS
                 keine Bewandtnis (und wurden wohl nur von FlexOS benutzt).
                 Sollte Execute-Lock doch gesetzt sein, wird es als Read-
                 Only-Recht (nicht Attribut!!!) behandelt, allerdings nur,
                 wenn zustzlich auch andere Bits gesetzt sind. Die Execute-
                 Lock-Bits und die restlichen 4 unbenutzten Bits werden bei
                 nderungen in den Zugriffsrechten nicht angetastet.
                 Beim Testen der Zugriffsrechte wertet 'Singleuser' DR DOS/
                 Novell DOS offenbar alle drei Gruppen nach einem noch unbe-
                 kannten Schema aus und bildet daraus 'ungefhr' die Access-
                 Rights, die am meisten restriktiv sind.
                 Auerdem wird im Attribut-Byte (Offset +0Bh) das Hidden-
                 Attribut gesetzt, aber davon hngt der Pawortschutz nicht
                 ab. Die Zugriffsrechte haben nichts mit den blichen Datei-
                 attributen zu tun, obwohl sie auch so etwas wie 'Attribute'
                 darstellen!!! Weil es ein Read-Only-Dateiattribut, einen
                 Read-Only-Pawortschutz und im Netz noch Read-Only-
                 Zugriffsrechte in Abhngigkeit vom Laufwerk und Benutzer
                 gibt, und im speziellen auch noch SHARE-Modi fr die
                 erlaubten Zugriffsvarianten auf eine Datei verantwortlich
                 sind, kommen viele Benutzer hier immer wieder durcheinander
                 (ist zugegebenermaen auch nicht einfach).

                 Wie weiter oben beschrieben wurde, werden diese
                 Eintrge in der Verzeichisstruktur normalerweise vom
                 System ber die gesamte 'echte' Lebensdauer dieser
                 Datei mitgeschleppt; die bei Novell DOS 7 weggefallene
                 Untersttzung fr DR DOS 6.0 Owner-IDs liee sich also
                 relativ leicht wieder mit einem kleinen Treiber re-
                 implementieren (siehe auch bei DELWATCH.EXE und in
                 Ralf Browns Interrupt-Liste INTER53+).

                 Einige ltere Plattenpflegeprogramme meckern die ver-
                 nderten Eintrge auch als Fehler in der Plattenstruktur
                 an, was aber natrlich nicht stimmt. Lt man sie von
                 solchen Programmen korrigieren, ist das Schlimmste, was
                 passieren kann, ein aufgehobener Pawortschutz.
                 Die Pawrter sollten keinerlei Probleme mit Long-
                 Filename-Support (wie bei MS-DOS 7 aus MS Windows95
                 aktivierbar) bereiten. Auch das bei MS-DOS 7 neue Last-
                 Access-Datum bei Offset +12h (Word) ist unkritisch
                 (ACCDATE=). Allerdings kollidieren die Pawrter mit
                 OS/2 Extended Attributes und MS Windows95 Datei-Erzeugungs-
                 zeitpunkt, sollten in diesem Fall also nicht verwendet
                 werden. Eine Belegungsbersicht gibt Kapitel II.21.

                 Fest steht, da bei geeigneter Rcksichtnahme in der
                 Implementation alle anderen Funktionen (Microsofts Long-
                 Filenames & ACCDATE= sowie Novells DELWATCH und Pawrter)
                 kollisionsfrei nebeneinander existieren knnten. Einzige
                 Ausnahme scheint das Datei-Erzeugungsdatum von MS Windows95
                 zu sein, das daraus resultierende Verhalten habe ich aber
                 noch nicht untersucht (selbst das knnte bedingt sogar
                 klappen). (Siehe auch DELWATCH.EXE und in Kapitel II.21.).

   PNUNPACK.EXE  Undokumentiertes Entpackprogramm von Novell DOS, PNW und
                 NetWare Lite.

                  PNUNPACK [/?] [@]source [target] [/O]

                   @       bei Angabe einer Listendatei
                   source  Quelldatei (kann Laufwerk und Pfad enthalten)
                   target  Zieldatei/pfad
                   /O      berschreiben existierender Dateien erlauben

                 Dieses Programm akzeptiert auch Wildcards, solange alle
                 damit spezifizierten Dateien gepackt sind. Innerhalb einer
                 gepackten Datei knnen auch mehrere Dateien gepackt sein.
                 Normalerweise unterscheidet sich die Dateiendung der
                 gepackten Dateien durch ein '_' als letztes Zeichen,
                 dies ist aber keine notwendige Voraussetzung. Da bei
                 Novell DOS und PNW die ursprnglichen Dateinamen intern
                 abgelegt sind, knnen die alten Namen auch dann wieder
                 hergestellt werden, wenn die Datei umbenannt wurde. Vor
                 den gepackten Daten befindet sich ein Header "Packed File
                 xxxxxxxx.xxx"+1Ah+02h, wobei xxxxxxxx.xxx der wirkliche
                 Dateiname ist.

                 In Verbindung mit Wildcards ist an PNUNPACK problematisch,
                 da es bei einem Fehler die Operation nicht nur fr die
                 jeweilige Datei, sondern komplett abbricht. Dem kann man
                 mit folgendem Batchjob abhelfen:

                  FOR %%x IN (%1) DO PNUNPACK %%x %2 %3 %4 %5 %6 %7 %8 %9

                 Im Client Kit (VLMKT1.EXE bis VLMKT6.EXE bzw. dem neueren
                 VLM121_1.EXE bis VLM121_6.EXE) wird ein sehr hnliches
                 Programm NWUNPACK.EXE mitgeliefert, das offenbar weitest-
                 gehend kompatibel ist.

                 Sollten Sie z.B. mit bestimmten Dateien von NetWare Lite
                 (mit Dateiendung .??@) Probleme mit der Benutzung von
                 PNUNPACK haben, indem PNUNPACK einen ungltigen Dateinamen
                 als Ziel angibt und dann abbricht, lt sich das Problem
                 leicht aus dem Weg rumen, indem Sie den Header der
                 gepackten Datei mit einem Hex-Editor (oder DEBUG)
                 patchen: Hchstwahrscheinlich ist lediglich der Eintrag
                 xxxxxxxx.xxx, der oben erwhnt wurde, ungltig. Schreiben
                 Sie hier einfach einen gltigen Dateinamen hin (es reicht,
                 die Zeichen bis zur folgenden Null mit einem beliebigen
                 Buchstaben zu berschreiben). Die so genderte Datei
                 sollte von PNUNPACK problemlos auf den gepatchten
                 Dateinamen hin entpackt werden knnen.

   PRINT.COM     Die Angabe des Gertes fr die Ausgabe lt leider nur
                 die vom System vordefinierten Gerte PRN, AUX, CON, LPT1-3
                 und COM1-4 zu, auch wenn man durch entsprechende Gerte-
                 treiber weitere Devices eingebunden hat. (Dies ist aller-
                 dings bei MS-DOS genauso.)

                 Da dies vielen Benutzern nicht klar ist: Der Drucker-
                 puffer, den PRINT einrichtet, mu nicht etwa gro genug
                 sein, um alle gewnschten Dateien gleichzeitig aufnehmen
                 zu knnen (dann wrde PRINT viel zu viel Speicherplatz
                 kosten, als da es etwas nutzen knnte), sondern es
                 handelt sich dabei lediglich um einen Zwischenpuffer,
                 der die Daten enthlt, die unmittelbar vor der Ausgabe
                 an den Drucker stehen. Normalerweise ist daher die
                 Default-Einstellung, die mit 512 mehrere Zeilen eines
                 Textes fassen kann, schon reichlich bemessen.

                 Neben diesem Zwischenpuffer bentigt der residente Teil
                 von PRINT auch noch Platz fr die Liste von Dateinamen,
                 die in der Warteschlange zum Ausdruck stehen. Pro Datei-
                 spezifikation sind ca. 70 Bytes zu veranschlagen, die
                 Default-Einstellung 10 Dateien schlgt als mindestens
                 ebenso zu Buche, wie der Puffer selbst. Defaultmig
                 werden vom gesamten residenten Treiber ca. 6 KByte Speicher
                 bentigt.

   PRINTER.SYS   Gehrt bei MS-DOS 7 und PC-DOS 7 nicht mehr zum Liefer-
                 umfang, ist bei Novell DOS 7 aber noch vertreten:

                  DEVICE = PRINTER.SYS dev=(typ [,hwcp] [,n]) ...
                  dev  Druckerschnittstellen: PRN, LPT1, LPT2 oder LPT3
                       PRN und LPT1 identisch; die Einstellung eines Gertes
                       konfiguriert automatisch auch innerhalb des Treibers
                       das jeweils andere Gert mit.
                       (PRN ist evtl. bei MS-DOS nicht mglich.)
                  typ  Druckertypen: 1050, 4201, 4208 oder 5202
                  hwcp Hardware-Codetabelle: 0..32767 (z.B. 437)
                       (auch 32768..65535, mit berlauf in der Anzeige
                       von MODE als negative Zahlen)
                  n    Anzahl vorzubereitender Codetabellen (1..12),
                       fr die Speicher reserviert werden mu (werden
                       spter mit MODE CODEPAGE PREPARE belegt)

                 Andere Typen werden leider nicht zur Verfgung gestellt
                 und durch die Festverdrahtung ist es anscheinend auch
                 nicht ohne weiteres mglich, eigene Typen zu generieren
                 und einzubinden (hchstens unter einem falschen Namen
                 durch das Ersetzen eines vorhandenen Druckertyps):
                 Die Sequenzen zur Steuerung des Druckers stammen -
                 zumindest fr die Hardware-Codeseite - offensichtlich
                 nicht aus einer spter mit MODE zugeordneten .CPI-Datei,
                 sondern sind direkt in PRINTER.SYS kodiert. Zum Teil
                 gilt das offenbar auch noch fr andere Druckertypen,
                 zumindest fr alle Treiber vom Typ 2 (Codeseiten-Um-
                 schaltung statt Download-Daten). Gute Erfahrungen habe
                 ich bisher nur mit dem Ersetzen der 1050.CPI Datei (eine
                 Datei mit Download-Daten) durch eigene .CPI-Dateien
                 gemacht. Siehe auch Kapitel II.16.

                 Achtung: Die bei PRINTER.SYS notwendige Angabe der Code-
                 seite bezieht sich auf die hardware-mig installierte
                 Codeseite des Druckers (da DOS dies nicht berprfen kann,
                 mu diese Angabe berhaupt erst vorgenommen werden). Auch
                 wenn Sie spter mit Codeseite 850 etc. arbeiten wollen,
                 mssen Sie hier in den allermeisten Fllen noch die Code-
                 seite 437 angeben. In Druckerhandbchern wird diese Ein-
                 stellung oft als IBM Zeichensatz 2, World Trade Character
                 Set oder PC-8 Zeichensatz bezeichnet. Die Zuordnung zu
                 Codeseite 437 erhalten Sie bei den meisten Druckern b-
                 licherweise dann, wenn der Drucker den obigen Zeichensatz
                 aktiviert hat, und fr die Zeichen 128..255 die IBM-Grafik-
                 zeichen statt der Epson-Schrgschrift (Italics) benutzt.
                 Wenn Sie hier eine andere Codeseite als die wirklich unter-
                 sttzte Hardware-Codeseite angeben, kann die Codeseiten-
                 Untersttzung von DOS spter nicht sauber arbeiten, da sie
                 von falschen Voraussetzungen ausgeht. Eine Ausnahme davon
                 ist die Angabe einer Dummy-Kennung fr die Hardware-Code-
                 seite (meine Empfehlung: 999), z.B. wenn Sie eine fremde
                 .CPI-Datei verwenden und sicherstellen wollen, da wirklich
                 alle Steuerinformationen fr diesen Drucker aus der .CPI-
                 Datei und nicht aus dem PRINTER.SYS-Treiber kommen.
                 In diesem Fall mssen Sie aber bei PRINTER.SYS *jede*
                 spter genutzte Codeseite vorbereiten (also blicherweise
                 eine mehr, da die Nutzung der Hardware-Codeseite (meist
                 437) dann flachfllt).

                 Beachten Sie bitte, da PRINTER.SYS in Abhngigkeit vom
                 verwendeten Drucker und Anzahl der vorzubereitenden
                 Codeseiten (n) unterschiedlich viel Platz beansprucht:

                  Drucker:  Typ:    Basis-Code:  +  Code/Daten je Codeseite:

                   4201  1 (DL-Fonts)  ca. 1616 Bytes + n *  ca. 7000 Bytes
                   4208  2 (Page-Switch)   1616 Bytes + n *       496 Bytes
                   5202  2 (Page-Switch)   1120 Bytes + n *       496 Bytes
                   1050  1 (DL-Fonts)      1600 Bytes + n *      2304 Bytes

                 Die Lnge der Datenbereiche reprsentieren also gleich-
                 zeitig Obergrenzen fr die Lnge der Sequenzen, die zum
                 Drucker geschickt werden knnen (wobei der Platz nicht
                 nur fr die Sequenz selbst, sondern auch fr jeweils
                 zustzlichen Code bentigt wird).
                 Fr jedes Gert (PRN/LPT1, LPT2, LPT3) wird bei Bedarf ein
                 kompletter eigener PRINTER.SYS Treiber installiert.

                 Die Details bezglich der Unterscheidung von Hardware-
                 und vorzubereitenden Codeseiten sind sehr ausfhrlich
                 bei DISPLAY.SYS in diesem Kapitel beschrieben, hier nur
                 zwei Beispiele:

                   Einrichtung des "1050"-Treibers fr alle
                    Epson FX850/1050-kompatiblen Drucker
                    (in dessen Grundeinstellung fr USA):

                    CONFIG.SYS:

                      DEVICE=c:\nwdos\printer.sys prn=(1050,437,1)

                    AUTOEXEC.BAT:

                      MODE prn: CODEPAGE PREPARE=((850) c:\nwdos\1050.cpi)
                      CHCP 437

                   Ersetzung des "1050"-Treibers durch eine eigene
                    .CPI-Datei, hier fr die NEC Pinwriter Serie:

                    CONFIG.SYS:

                      DEVICE=c:\nwdos\printer.sys prn=(1050,999,2)

                    AUTOEXEC.BAT:

                      REM (NECPINW.CPI kann ber mich bezogen werden.)
                      MODE prn: CODEPAGE PREPARE=((437,850) ...\necpinw.cpi)
                      CHCP 437

                 Weitere Hinweise finden sich auch bei MODE.COM in
                 diesem Kapitel.

                 Hinweis: In vielen Betriebsanleitungen von Matrix- und
                 Tintenstrahldruckern finden Sie einen Hinweis, da der
                 Drucker im deutschen Sprachraum auf deutsche Landesein-
                 stellungen umgestellt werden sollte (per Software-Setup
                 oder DIP-Schalter). Viele Anwender setzen daraufhin die
                 Hardware-Konfiguration auf 'Deutsch' und wundern sich dann,
                 warum sie unter DOS manche Zeichen (z.B. den Backslash)
                 nicht richtig ausdrucken knnen. Nun, das Problem liegt
                 ganz einfach darin begrndet, da auch die PCs in ihrer
                 Grundkonfiguration nicht 'deutschsprachig' sind, sondern
                 fr US-amerikanische Verhltnisse konstruiert sind, d.h.
                 Codetabelle 437 des von IBM erweiterten ASCII-Zeichensatzes
                 mit 256 Zeichen verwenden. Daher sollte auch der Drucker
                 in der US-amerikanischen Einstellung verbleiben (ist meist
                 die Werkseinstellung), so da PC, Drucker und DOS zunchst
                 einmal mit dem gleichen zugrundeliegenden Zeichensatz (437)
                 arbeiten. Fr die Druckereinstellung 'Deutsch' gibt es
                 keine Entsprechung in den Codetabellen von DOS; in
                 Wahrheit handelt es sich hierbei auch nur um ein Relikt
                 aus lngst vergessenen Tagen, wo unter ASCII noch aus-
                 schlielich ein 7Bit-Zeichensatz (mit 128 Zeichen) ver-
                 standen wurde und damalige Typenraddrucker (Diabolo) und
                 frhe Matrixdrucker (hauptschlich von Epson) in einem be-
                 stimmten Codefenster (sog. Substitut-Codeseiten) je nach
                 Landesvariante wichtige nationale Buchstaben zugeordnet
                 hatten, wodurch es damals im deutschen Sprachraum berhaupt
                 erst die Mglichkeit zur Verwendung von Umlauten und ''
                 gab (diese entsprechen ISO 646 in deutscher Anpassung, bzw.
                 ISO 21). In der Codetabelle 437 liegen diese Buchstaben
                 jedoch im Bereich von 128..255, daher strt heutzutage ein
                 auf 'deutsche Konventionen' eingestellter Drucker nur den
                 reibungslosen Ablauf (es sei denn, Sie arbeiten mit Uralt-
                 Textverarbeitungen aus CP/M-Zeiten...).

   RECOVER.COM   Liefert Errorlevel 3 bei Benutzerabbruch durch <Ctrl>+<c>
                 (verifiziert fr Novell DOS 7).

   RESTORE.COM   RESTORE ist mit allen BACKUP Versionen von DR DOS
                 und MS-DOS/PC-DOS kompatibel.
                 Weitere Hinweise siehe BACKUP.COM.

                 RESTORE sollte nicht auf Laufwerke angewendet werden, auf
                 die ASSIGN, JOIN oder SUBST wirkt (Vorsichtsmanahme).

                 Das Format der Datums-/Zeitangaben hngt von der jeweiligen
                 COUNTRY-Einstellung ab.

                 Parameterbersicht (alles von DR DOS bekannt):

                  /A:tt.mm.jj   Nachladen von Dateien, die an oder nach dem
                                angegebenen Datum gendert wurden.
                  /B:tt.mm.jj   Nachladen von Dateien, die an oder vor einem
                                dem Datum gendert wurden.
                  /E:hh:mm:ss   Nachladen von Dateien, die an oder vor dem
                                angegebenen Zeitpunkt gendert wurden.
                  /L:hh:mm:ss   Nachladen von Dateien, die an oder nach dem
                                angegebenen Zeitpunkt gendert wurden.
                  /M            Nachladen von Dateien, die seit dem letzten
                                Sichern gendert oder gelscht wurden.
                  /N            Nachladen von Dateien, die im Zielbereich
                                nicht mehr existieren.
                  /P            Fragen vor dem Nachladen von seit der
                                letzten Sicherung genderten Dateien
                                (bei DR DOS auch schreibgeschtzte Dateien).
                  /R            Angabe der Dateien, die nachgeladen WRDEN
                                ohne diese jedoch wirklich nachzuladen.
                                Testet auch die Unversehrtheit der
                                Disketten.
                  /S            Nachladen auch von Dateien in Unterver-
                                zeichnissen. Unterverzeichnisse werden
                                automatisch erstellt, allerdings nicht, wenn
                                man gleichzeitig die Option /R angibt (bei
                                DR DOS 6.0 Updates vor 1992 war dies noch
                                anders).

                 MS-DOS 6.0+ RESTORE bietet eine 'neue' Option /D an, die
                 von Novells RESTORE nicht untersttzt wird. Genau diese
                 Funktion wird aber bei Novell DOS mit der Option /R er-
                 fllt, die bei DR DOS 6.0 noch nicht vorhanden war.

                 Errorlevel (unvollstndig):

                 (verifiziert fr MS-DOS/PC-DOS 4.0+, Novell DOS 7,
                 Caldera OpenDOS 7.01, DR DOS 6.0 und CCI Multiuser DOS 7.22
                 Gold)

                  0  normales Ende
                  1  keine Dateien zur Wiederherstellung gefunden
                  2  einige Dateien wegen Zugriffskonflikt nicht wieder-
                     hergestellt
                  3  Ende der Wiederherstellung mit <Ctrl>+<Break>
                  4  Abbruch der Wiederherstellung durch Fehler oder
                     ungltiger Parameter angegeben

   SCREATE.COM   (auch SFORMAT)

   SDRES.EXE     Der Viren-Scanner Search & Destroy 33.01 liegt fr DOS und
   SDSCAN.EXE    MS Windows jeweils als residentes Programm und als normale
   WSDRES.EXE    Applikation vor (die deutsche bersetzung von SDRES ist
   WSDSCAN.EXE   allerdings katastrophal).

                 Es ist keine Schande, irgendwann einmal eine virenver-
                 seuchte Diskette/CD zu bekommen, aber es ist sehr wohl
                 eine Schande, es im Falle eines Falles an der ntigen
                 Sorgfalt in der Vor- und Nachsorge fehlen zu lassen!!!
                 Dazu gehrt es u.a.

                 - den Verursacher ausfindig zu machen und umgehend zu
                   benachrichtigen,
                 - alle Rechner, an denen man zuletzt gearbeitet hat,
                   zu untersuchen und alle anderen Benutzer von ver-
                   seuchten Rechnern zu warnen,
                 - alle verwendeten Diskettenbestnde mit aktuellen
                   Viren-Scannern zu berprfen,
                 - entdeckte Viren zu vernichten (durch Desinfizieren
                   oder Lschen der betreffenden Dateien, Formatieren
                   der Diskette oder notfalls physikalisches Zerstren
                   des Mediums, siehe auch in Kapitel II.4. bei FDISK,
                   FORMAT und SYS). Sollten infizierte Disketten aus
                   besonderen Grnden aufbewahrt werden, mssen diese
                   auffllig als mit einem Virus verseucht gekennzeichnet
                   werden,
                 - sich angewhnen, den Schreibschutz von Disketten
                   wirklich nur dann zu entfernen, wenn man bewut auf
                   eine Diskette schreiben mchte (m.E. die hufigste
                   und schlimmste Nachlssigkeit vieler Benutzer),
                 - Fremd-Disketten vor der Benutzung zu scannen.

                 Wenn Sie hufig Disketten an 'ungesicherten Orten' (z.B.
                 Firma oder Institut) beschreiben, kann ich nur dringend
                 empfehlen, *immer* einen residenten Viren-Scanner im
                 Hintergrund laufen zu haben (und zwar zu einem Zeitpunkt
                 installiert, wo Ihr eigenes System mit Sicherheit noch
                 unverseucht war). Die Optionen, jede neu eingelegte
                 Diskette und jede ausfhrbare Datei automatisch zu scannen,
                 sollte unbedingt aktiviert sein (schlielich kostet das
                 nur Sekundenbruchteile).

                 Ich habe persnlich mit einem resident installierten
                 SDRES (ins EMS ausgelagert) wesentlich bessere Erfahrungen
                 gemacht, als etwa mit McAfees residentem Viren-Scanner
                 VSHIELD: Bei einem nicht reprsentativen Testlauf mit
                 einigen im Laufe der Zeit 'gesammelten' virenverseuchten
                 Disketten zeigte sich SDRES (smtliche Scanner-Optionen
                 aktiviert) als sehr viel zuverlssiger als z.B. VSHIELD
                 (eine Version von Herbst 1996!). Alle verseuchten Disketten
                 wurden erkannt. SDRES hat durch seine Alarmmeldungen schon
                 manches Mal eine Virenverseuchung *meiner* Rechner ver-
                 hindert!!!
                 Und bei Versuchen mit einem virenverseuchten Rechner
                 (nicht meiner ;-) ) konnten SDRES/SDSCAN sogar Viren
                 zuverlssig erkennen *und* beseitigen, obwohl der Virus
                 aktiv im Speicher war. Zu diesem Zweck wurde der Virus
                 'totgepatcht'. McAfees SCAN und VSHIELD sind in dieser
                 Situation zu keinem von beiden geeignet.

                 Die Aufruf-Syntax von SDRES.EXE und SDSCAN.EXE akzeptiert
                 sowohl '/' als auch '-' als Parametereinleitungszeichen.
                 Auf meinem System wurden vom SETUP-Programm fr SDRES.EXE
                 die Optionen "-uc:\nwdos\sdscan.exe -m 640" gewhlt. Diese
                 Einstellung ist jedoch nicht effektiv, vor allem mu die
                 Angabe fr den Scanner mit -s eingeleitet werden. Auf
                 meinem System arbeitet "-sc:\nwdos\scscan.exe 640" zu-
                 friedenstellend, allerdings konnte sich SDRES.EXE auf
                 meinem System entweder nur in UMBs laden oder zum groen
                 Teil in EMS auslagern. Im letzten Fall wurden auf meinem
                 System lediglich 1,9 KByte vom Basisspeicher abgezwackt,
                 die sich nicht hochladen lieen. Dies kann man aber fast
                 immer verschmerzen.
                 Die Angabe 640 steht fr die bliche Gre des Basis-
                 speichers. In einigen Fllen (besonders auf Rechnern
                 neuerer Generation mit SCSI- und PCI-Bussen) wird aber
                 von diesem Speicher schon standardmig ein ca. 1 - 5
                 KByte groer Bereich fr interne Zwecke abgezweigt, in
                 solchen Fllen (und nur dann) sollten Sie die Angabe 640
                 entsprechend reduzieren, um eine prompte Warnung von SDRES
                 zu verhindern.

                 Im Zusammenhang mit der Speicherkonfiguration von SDRES
                 noch ein Hinweis fr 4DOS-Benutzer:
                 Sofern SDRES sich in EMS auslagern soll, d.h. einen
                 1,9 KByte groen Stummel im konventionellen Speicher
                 hinterlt, sollten Sie unbedingt die Hinweise in Kapitel
                 V.8. beachten.

                 ber die Tastenkombination <Ctrl>+<Alt>+<u> kann man das
                 Konfigurationsmen von SDRES aufrufen und zur Laufzeit auf
                 drei Seiten (<PageUp>, <PageDown>) die Scanner-Optionen
                 einstellen. Das Fenster kann sich nur in blichen Textmodi
                 einblenden, und auch nur dann, wenn eine Applikation keinen
                 eigenen Tastaturtreiber mitbringt, ansonsten poppt das
                 SDRES-Fenster erst auf, nachdem man die Anwendung verlassen
                 hat. Leider habe ich in SDRES selbst keine Mglichkeit
                 entdecken knnen, diese Einstellungen auch direkt abzu-
                 speichern, so da sie auch nach dem nchsten Booten noch
                 verfgbar wren. Auch die Kommandozeile bietet nur minimale
                 Einstellungsmglichkeiten und in SDSCAN.EXE lassen sich
                 ebenfalls keine Einstellungen fr SDRES.EXE/WSDRES.EXE
                 vornehmen. So erscheint es zunchst notwendig, die Scanner-
                 Optionen bei jedem Booten neu einzustellen oder mit der
                 Standard-Einstellung (die bei Weitem nicht alle Mglich-
                 keiten aktiviert) vorlieb zu nehmen. Glcklicherweise ist
                 dem nicht so:

                 Als Workaround kann man nmlich MS Windows starten und
                 dort WSDRES.EXE aufrufen (das in die AUTOSTART-Gruppe auf-
                 genommen werden sollte). Das Programm verkleinert sich
                 sofort auf Symbolgre. Wenn man auf das Symbol klickt
                 und 'Wiederherstellen' whlt, kann man jedoch alle Ein-
                 stellungen von SDRES.EXE und WSDRES.EXE ndern und auch
                 abspeichern. Diese Einstellungen werden sofort von einer
                 evtl. in DOS laufenden SDRES.EXE Version bernommen und
                 sind dann auch nach dem nchsten Booten wieder aktiv!

                 Die Bedienung der normalen Scanner SDSCAN.EXE und
                 WSDSCAN.EXE drfte keine Probleme bereiten. Es sei
                 lediglich darauf verwiesen, da die Version fr MS Windows
                 (WSDSCAN.EXE) auch die Optionseinstellungen fr die
                 residenten Programme SDRES.EXE und WSDRES.EXE zult
                 (dabei sind sogar zwei zustzliche Optionsseiten verfgbar,
                 die in den residenten Programmen selbst nicht angeboten
                 werden: 'Ressourcen' und 'Messages'. Dazu gehren die
                 Einstellung der Hochlademglichkeiten, die Angabe der
                 Speichergre, die Angabe des im Notfall zu startenden
                 Viren-Scanners und der zu verwendenden Datenbank, die
                 Mglichkeit zur Laufzeitkonfiguration, die Auswahl-
                 mglichkeiten bei Virenalarm u.a. Anscheinend werden
                 aber nicht alle dieser Einstellungen sofort von einer
                 bereits gestarteten Version von SDRES/WSDRES bernommen.
                 Wenn man WSDSCAN erst nachtrglich per Hand in ein
                 bestehendes MS Windows System einfgt, kam es auf meinen
                 Testsystemen (MS-DOS 6.22) manchmal dazu, da sich der
                 Scanner in der Startphase aufhing. Vermutlich mu man
                 noch eine Einstellung in der Windows-Konfiguration ndern,
                 denn auf Systemen, wo das Novell DOS SETUP-Programm
                 Search & Destroy eingerichtet hat, traten diese Probleme
                 nicht auf.

                 Die Konfigurationsdaten fr alle 4 Programme werden in der
                 'Untouchable'-Datenbank UT.CDB gespeichert. Auerdem werden
                 noch UI.CDB, VIR-INFO.VRB und WSDSCAN.HLP bentigt. Die
                 Dateien BWCC.DLL und DEFAULT.INI (mit angepaten Pfaden)
                 werden von den Scannern ebenfalls genutzt, aber knnen
                 hufig auch entfallen.
                 Da die Virendatenbank aus dem Jahre 1994 ist und im Rahmen
                 der Novell DOS 7 Updates noch kein Update fr diese
                 Datenbank ausgeliefert wurde, mu man sich dieses entweder
                 von Fifth Generation besorgen (unklar) oder sollte auf
                 andere Viren-Scanner wie F-PROT oder McAfees SCAN nicht
                 verzichten.
                 Trotzdem bieten die mit Novell DOS 7 ausgelieferten Scanner
                 auch jetzt noch (11/1996) einen gewissen Schutz, da die
                 residenten Programme nicht nur nach bestimmten Viren
                 suchen, sondern auch heuristisch bestimmte nicht an einen
                 bestimmten Virus geknpfte Aktivitten aufdecken knnen.

                 Die deutsche bersetzung von SDRES ist uerst holprig und
                 fehlerbehaftet. Leider hat der Fehlerteufel auch nicht
                 vor dem Alarm-PopUp-Fenster halt gemacht. Die Frage
                 'Abbruch', 'Weiter' kann man z.B. nicht mit <w> fr
                 'Weiter' quittieren, sondern mu stattdessen <c> fr
                 'Continue' drcken (in einem Buch habe ich einen Hinweis
                 auf <f> fr 'Fortfahren' gefunden, es knnte sich hier
                 noch um eine Beta-Version gehandelt haben). Glcklicher-
                 weise gilt dies nicht auch noch fr <a> = Abbruch = Abort.

                 Die SDRES-Option 'berprfen auf einen Begleit-Virus'
                 kollidiert mit der Erzeugung von .COM-Dateien mittels
                 EXE2BIN, weil genau dieses Verhalten (von einer geffneten
                 .EXE-Datei wird eine gleichnamige .COM-Datei erstellt) von
                 vielen Viren verwendet wird. Wenn Sie EXE2BIN anwenden,
                 sollten Sie die entsprechende SDRES-Option also vorher
                 abschalten. Dies ist aber besonders bei automatisierten
                 Ablufen strend, hier hilft das folgende Workaround
                 (auch fr ATTRIB):

                  REN program.exe program.ex_
                  EXE2BIN program.ex_ program.com
                  REM REN program.ex_ program.exe  oder  DEL program.ex_

                 Bei SDRES in Verbindung mit NWCACHE sollte man entweder
                 die 'berprfung der DOS Fehlerbehandlung' deaktivieren,
                 SDRES erst nach NWCACHE laden oder mit den SDRES-Optionen
                 -M und -R experimentieren. NWCACHE verbiegt die DOS-
                 Fehlerbehandlung whrend der Installation und falls zu
                 diesem Zeitpunkt SDRES geladen ist, wird sofort falscher
                 Alarm geschlagen, falls diese Option aktiviert ist (denn
                 mit Option -M biegt SDRES sofort den INT21h Vektor wieder
                 auf sich zurck, mit -R geschieht dies nur 'manuell').
                 Das gleiche Problem tritt auch auf, wenn man den TASKMGR
                 als Prozeumschalter startet (zumindest bei TASKMGR.INI
                 [Shell] Exec=True, siehe auch in den Kapiteln VII.2.,
                 VII.3, VII.4.). Das Starten des Multitaskers ist hingegen
                 unkritisch.
                 Auch der Aufruf von PC-Tools 9.0 MIRROR.COM fhrt zu einem
                 unbegrndeten Viren-Alarm bezglich eines verbogenen
                 'Critical Error-Handlers'.

                 hnliche Probleme sind mit Dienstprogrammen wie FDISK,
                 FORMAT, SYS etc. zu erwarten, wenn in SDRES die ent-
                 sprechenden Optionen scharf gemacht wurden. Natrlich
                 handelt es sich hier nicht um eine Virenverseuchung.

                 Wenn man die Option 'Boot-Diskette vor Booten durchsuchen'
                 aktiviert hat, kann ein kleines Problem auftreten, wenn
                 Sie als Laufwerk A: noch ein 5.25" Laufwerk installiert
                 haben. Ist in diesem Laufwerk eine Diskette eingelegt und
                 die Verriegelung nicht geschlossen, so versucht SDRES bei
                 den meisten Laufwerksmodellen unendlich lange, die
                 Diskette zu lesen (Disketten-LED leuchtet, nichts pas-
                 siert). In diesem Fall hilft es nur, die Verriegelung zu
                 schlieen oder *vorher* die Diskette aus dem Schacht zu
                 entfernen.

                 Die Option 'Dateien vor der Ausfhrung durchsuchen' kann
                 im Netzwerk nicht mit veralteten Netz-Shells arbeiten (bis
                 ca. 1992-1993, ist also fr PNW berhaupt kein Problem,
                 wohl aber in vielen lange nicht gewarteten Firmennetzen
                 auf der Basis von NetWare 3.xx). Wird eine alte Version
                 der Netztreiber installiert, gibt SDRES eine Warnung aus,
                 da man diesen Treiber aktualisieren mu und deaktiviert
                 automatisch die obige Scan-Option. Da diese Fhigkeit aber
                 gerade eine der wichtigsten Mglichkeiten von SDRES dar-
                 stellt, sollte man die Netztreiber unbedingt auch wirklich
                 updaten!

                 SDRES kann whrend des Starts einen 'Kder' auslegen, um
                 zu testen, ob bereits residente Viren darauf anspringen.
                 Dieses Verfahren hinterlt bei bereits installiertem
                 DELWATCH eine entlschbare ?????.IMM Datei. Um zu ver-
                 hindern, da DELWATCH hiermit unntigerweise belastet
                 wird, empfiehlt es sich, im Bootverlauf SDRES erst nach
                 DELWATCH zu laden oder derartige Dateien mit DELWATCH
                 /E:IMM von der Lschverfolgung auszuschlieen.

                 Wenn ein Virenalarm ertnt, sollte man unbedingt mit jedem
                 Tastendruck warten, bis der Jingle verklungen ist. Wenn
                 dies nicht beachtet wird, kommen die Tastatur-LEDs durch-
                 einander: SDRES mibraucht auf ATs im Alarmfall die
                 Tastatur-LEDs von AT- und MF2-Tastaturen als 'Lauflicht'
                 und offenbar gibt es hier einen kleinen Bug in der An-
                 steuerung der Tastatur...

                 SDRES gibt mit -? einen Hilfeschirm ber die mglichen
                 Optionen aus, bietet allerdings noch zwei weitere, un-
                 dokumentierte Optionen:

                  -V  Unbekannt (V=Virus??)

                  -X  Durchsucht den Speicher nach Viren und 'reaktiviert'
                      den residenten Scanner. Was dies aber genau bedeutet
                      ist noch nicht geklrt.

                 SDSCAN bietet ebenfalls noch zwei undokumentierte Optionen:

                  -M  Durch Angabe dieser Option wird das automatische
                      Verlassen des Scanners bei einem batch-gesteuerten
                      Aufruf unterdrckt, d.h. nach dem Scandurchlauf bleibt
                      die Bearbeitung auf der bersichtsseite stehen und mu
                      per Hand abgebrochen werden.

                  -N  Ruft man "SDSCAN -N" ohne weitere Optionen auf, so
                      wird nur der Speicher und keine Datei durchsucht (auch
                      in PNW-Netzen nicht), danach wird der Scanner wieder
                      verlassen, so da man diese Mglichkeit gut fr den
                      Batch-Betrieb benutzen kann.

                 Bei SDRES und SDSCAN mssen die Optionen nicht unbedingt
                 alle extra mit einem Optionseinleitungszeichen ("-" oder
                 "/") beginnen, es sind auch Kombinationen wie -AB statt
                 -A -B mglich.

   SECURITY.OVL  Wird die Datei SECURITY.OVL in NWLOGIN.EXE umgenannt, kann
   (NWLOGIN.EXE) darin enthaltene Programm NWLOGIN direkt aufgerufen werden.

                 Die Angabe eines Systempawortes ist kein 100% Schutz gegen
                 bswillige Eindringlinge (wenn auch wesentlich sicherer als
                 noch bei DR DOS, wo man den Schutz durch Booten mit MS-DOS
                 umgehen konnte), da er mit etwas Trickserei mit Programmen
                 wie NDD (Norton Utilities) - evtl. unter partiellem Daten-
                 verlust - entschrft werden kann. Die Systemabsicherung
                 verschlsselt nmlich nicht etwa die Daten auf der Fest-
                 platte, sondern unterbindet den Zugriff auf ein Laufwerk
                 lediglich durch Vernderungen in der Partitionstabelle.

                 Im Rahmen der 'einmaligen Anmeldung' soll es mglich sein,
                 sich mit der einmaligen Angabe des Benutzernamens und Pa-
                 wortes sowohl lokal, als auch im Netz anzumelden (dazu
                 mssen neben den Netz-Accounts auch lokale Benutzerkonten
                 eingerichtet sein, was mglich ist, sobald die System-
                 absicherung per SETUP aktiviert wurde).
                 Die Angabe des Masterpawortes gibt den lokalen Rechner
                 frei (fr Notwartungsarbeiten), arbeitet aber nicht mit
                 der einmaligen Anmeldung zusammen.

                 Das Kommando UNSECURE auf der 1. Installationsdiskette
                 von Novell DOS 7 erlaubt es nach der Angabe des Master-
                 pawortes, einen lokalen Rechner wieder von seinem
                 Security-Schutz zu befreien.

                 SECURITY.OVL alias NWLOGIN.EXE entnimmt seine Konfiguration
                 der Datei %NWDOSCFG%\NWDOS.INI und wertet dort die folgen-
                 den Abschnitte aus, wobei Eintragungen aus [SECURITY] die
                 von [COLORS] bersteuern:

                  [SECURITY]
                   CurrentColor=

                  [COLORS]
                   ColorSetX=    (X=<CurrentColor> aus 1..9)
                   NewUI=on|off

                 Auerdem werden in irgendeiner Form die Dateien
                 C:\NWCNTL\SECURITY und C:\@FDS.SAV verwendet.

   SERNO.EXE     Im DOSBOOK undokumentiert. Gibt die Seriennummer der
                 Betriebssystem- oder PNW-Installation aus. Die Seriennummer
                 wird in der Datei SETUP.INI in %NWDOSCFG% in der Gruppe
                 [Registration] SerialNumber=abcd-1234-123456 (entsprechend
                 dem Diskettenaufkleber auf der Installationsdiskette 1)
                 gespeichert.
                 Theoretisch ist auch das ndern der Seriennummer von
                 Novell DOS und PNW ber die Option /S mglich (es kann
                 jeweils eine entsprechende Frage erscheinen, wobei ich
                 bisher nur die Frage nach der Seriennummer von DOS er-
                 zeugen konnte, selbst wenn PNW geladen war), allerdings
                 akzeptiert das Kommando nur acht- bzw. 4-4-6-stellige
                 Zahlenkombinationen, nicht aber die vierstellige Buch-
                 stabenkombination in der Seriennummer, die Novell zu-
                 mindest fr die deutschen Seriennummern verwendet. (U.U.
                 wird auch die Datei SERVER.EXE ber %Path% untersucht.)

                 Die Meldungen von SERNO sind (gewollt?) etwas irrefhrend:
                 Die Seriennummer wird keineswegs 'direkt auf der Platte',
                 sondern - wie oben beschrieben - in einer speziellen Datei
                 gespeichert. D.h. die Medienseriennummer, die nun auch
                 Novell DOS 7 (sptestens ab Update 14) untersttzt, wird
                 nicht beeinflut, genausowenig werden die vorbereiteten
                 Felder fr Seriennummern in den Systemdateien wie
                 COMMAND.COM (bei Caldera OpenDOS 7.01 brigens mit
                 SeRiAlNuMbEr=xxxx-xxxx-xxxxxx gekennzeichnet, siehe auch
                 bei VERSION.EXE), noch werden im Boot-Sektor Eintrge
                 verndert.

   SETFIFO.EXE   Dieses externe Kommando ist erst mit einem Update dazuge-
                 kommen, wohl auch, um Performance-Probleme mit seriellen
                 Schnittstellen zu mildern (auch unter dem Multitasker
                 TASKMGR). Es erlaubt den FIFO von neueren UART-Chips 16550
                 mit FIFO einzustellen. Das Kommando kann mit zwei Para-
                 metern gefttert werden oder fragt interaktiv nach den
                 notwendigen Einstellungen. Leider scheint dieser
                 'Quick-Hack' keine (anderen) Kommandozeilenparameter
                 auszuwerten und kann obendrein nur mit COM1 und COM2
                 arbeiten. Als wesentlich besseren Ersatz kann das
                 FreeWare-Utility ACOM.COM herhalten, das nebenbei
                 auch so ziemlich alle anderen Einstellungsarbeiten
                 an seriellen Schnittstellen bewltigen kann (zu beziehen
                 ber mich - Adresse siehe oben).

   SETUP.EXE     (enthlt INSTALL.EXE)
                 SETUP /A[DVISE] schaltet in den 'Anleitungsmodus', der das
                                 System analysiert und ein Ergebnisprotokoll
                                 ausgibt. Achtung: Wenn diese Datei
                                 INSTALL.EXE heit, bewirkt /A etwas vllig
                                 anderes!!!
                      /COLORS    Farbuntersttzung (zumindest fr PNW-Setup)
                      /STACKER   Fr STACKER-Setup
                      /FIRST     Fr PNW-Setup

                 Weitere ungeklrte Optionen:
                 /RESULTS /DONE_SCAN /QA /QUIET

                 Dieses Programm akzeptiert andere Parameter, wenn es zu
                 INSTALL.EXE umbenannt wird. INSTALL /? gibt diese Mglich-
                 keiten aus.

                 Durch entsprechende nderungen der Setup-Dateien lt sich
                 die Setup-Prozedur in weiten Bereichen einstellen/ndern.

                 Offenbar kann man den integrierten DOS-Extender??? (RTLink/
                 Plus) bei Bedarf mit folgenden Umgebungsvariablen fr
                 die Verwendung bestimmter Speichersorten konfigurieren
                 (vgl. NET.EXE in Kapitel VI.9.) (0=deaktivieren):

                 VM-Manager:      RTVMEXT, RTVMEXP, RTVMEXPLOW, RTVCONV
                 Overlay-Manager: RTOVEXP, RTOVEXT, RTOVCONV

                 Achtung: Falls Ihre CONFIG.SYS eine Dateigre von mehr als
                 7462 Bytes oder die AUTOEXEC.BAT grer als 9500 Bytes ist,
                 besteht akute Gefahr, da SETUP.EXE Ihre Konfigurations-
                 dateien ab dieser Gre abschneidet. Sichern Sie die beiden
                 Konfigurationsdateien unbedingt vor dem Aufruf von SETUP
                 und kopieren Sie die alten Dateien zurck, bevor Sie den
                 Rechner neu starten. Mittels SETUP vorgenommene Eintrge
                 knnen mit FC relativ schnell gefunden werden und in Ihre
                 eigenen Konfigurationsdateien bernommen werden.

   SETVER.EXE    Die Versionstabellen werden in der SETVER.EXE Datei selbst
                 gespeichert. Dabei sind optional auch Pfadangaben zu den
                 einzelnen Dateien erlaubt, um Doppeldeutigkeiten bei
                 gleichnamigen Dateien vorzubeugen (seltsamerweise funktio-
                 niert dies aber bei mir nicht..., im Zweifelsfall geben
                 Sie keine Pfade angeben). Die ausgelieferte Version
                 enthlt bereits eine Reihe Voreinstellungen fr bekannte
                 Programme, die eigentlich nur unter einer bestimmten
                 DOS-Versionsnummer laufen wollen, aber unter Novell DOS 7
                 auch funktionieren.

                 Da jeder Eintrag zur Laufzeit Speicherplatz kostet (jeweils
                 der vollstndige Dateiname plus 3 Bytes), sollten Sie zu-
                 nchst alle nicht wirklich bentigten Eintrge aus der
                 Tabelle lschen (Option /D).

                 Wegen der Vernderungen an der Datei sollten Sie ein
                 Original von der Installationsdiskette (unter einem
                 anderen Namen) aufbewahren.

                 Gibt man eine ungltige DOS-Version fr eine Datei an, so
                 wird Errorlevel 1 zurckgeliefert. Erlaubte Versionsnummern
                 sind x.y (Hauptversion.Unterversion) jeweils im Bereich
                 0..255, wobei der 255 als Unterversionsnummer eine un-
                 dokumentierte Sonderfunktion zukommt (s.u.).

                 Die vorgetuschten Versionsnummern beziehen sich auf den
                 'offiziellen' DOS-API Call (INT21h/30h) fr Versionscheck,
                 nicht auf die API-Funktion zur Ermittlung der 'wahren'
                 DOS-Version (INT21h/3306h, Novell DOS 7 liefert hier
                 brigens selbst mit Update 15 immer noch Revision 00) und
                 auch nicht auf DR DOS/Novell DOS ureigene Versions-APIs
                 (INT21h/4451h und INT21h/4452h).

                 Ausnahme: Wurde eine Unterversion 255 angegeben (also
                 x.255), so liefert zwar INT21h/30h ebenfalls diese
                 Versionsnummer zurck, aber zustzlich wird die Novell DOS-
                 eigene Versionsabfrage INT21h/4452h mit Fehlercode AX=0001h
                 beantwortet. Sollte es ein Programm geben, das bewut auf
                 DR DOS/Novell DOS abtestet, um dann unter diesem Betriebs-
                 system die Arbeit zu verweigern, so kann man hiermit die
                 entsprechende Interrupt-Funktion fr dieses Programm
                 einfach verschwinden lassen und das Programm kann nicht
                 mehr erkennen, da es unter DR DOS/Novell DOS gestartet
                 wird... Testet ein Programm hingegen 'echte Funktionalitt'
                 von DR DOS/Novell DOS ab, so lt sich dies natrlich nicht
                 mit diesem kleinen Schwindel berlisten...

                 Neben den dokumentierten Parametern kennt Novells SETVER
                 noch zwei undokumentierte Parameter:

                  /G version     ndert die globale Versionsnummer, die fr
                                 alle Programme gemeldet wird, die nicht
                                 extra aufgelistet werden.
                                 (Standard ist 6.00, da Novell DOS 7 das
                                 API von IBM PC-DOS 6.1 nachbildet, das den
                                 API-Level 6.00 hat und mit MS-DOS 6.00
                                 bereinstimmen drfte.)
                                 Wenn Sie wollen, knnen Sie hier mit
                                 /G 7.00 Novell DOS 7 zu seiner wahren
                                 Versionsnummer verhelfen, dies knnte
                                 aber eine Reihe Kompatibilittsprobleme
                                 mit Anwendungen verursachen... ;-)
                                 Die oben beschriebene Ausnahme gilt auch
                                 fr die globale Versionsnummer.
                                 Ist DEVICEHIGH=SETVER.EXE nicht geladen,
                                 gibt sich Novell DOS 7 immer als PC-DOS 6.1
                                 (d.h. API-Level 6.00) aus (zumindest alle
                                 Versionen von Update 3 bis Update 15). Es
                                 ist mglich, da sich ganz frhe Versionen
                                 von Novell DOS 7 wirklich als "Novell DOS
                                 6.00, API-Level 6.00" ausgegeben haben.
                  /P             "Page" hlt die Ausgabe nach jeder Seite
                                 an.

                 Sollten Ihnen die Mglichkeiten von SETVER fr einen
                 speziellen Anwendungsfall nicht ausreichen, knnen Sie von
                 mir das FreeWare-Tool FREEVER.COM anfordern, das hnlich
                 wie SETVER.EXE Versionsnummern trken kann, sich dabei aber
                 nicht auf INT21h/30h beschrnkt, sondern auch die wahre
                 Versionsnummer INT21h/3306h und die DR DOS/Concurrent DOS/
                 DR Multiuser DOS/Novell DOS Versionsabfragen bei
                 INT21h/4412h, 4451h und 4452h detailgetreu nachbildet.
                 Auerdem emuliert das AMIS-konforme Tool das SETDRVER.COM-
                 API und MS-DOS 4 INT2Fh/122Fh. Natrlich ist die Anwendung
                 nicht ungefhrlich und erfolgt ausschlielich auf Ihr
                 Risko!

   SHARE.EXE     Dieses TSR sollte bei Novell DOS 7 unbedingt geladen
                 werden. Im Gegensatz zu (zumindest lteren) MS-DOS Ausgaben
                 besitzt der Novell DOS 7 Kernel keine (oder nur sehr
                 eingeschrnkte) SHARE-Funktionalitt (bei alten DR DOS
                 Ausgaben war SHARE dahingegen wohl hauptschlich bereits
                 Bestandteil des Kernels und intern vllig anders
                 realisiert). Um also ein mit MS-DOS gleichwertiges
                 System zu erhalten, mu SHARE geladen werden (besonders
                 fr Multitasker und MS Windows). Die ursprngliche Version
                 war auf maximal 1024 Dateisperrungen beschrnkt, mit
                 Update 13 (SHARE 2.03) wurde jedoch eine Version ausge-
                 liefert, die bis zu /F:60000 oder /L:4900 erlaubt, wobei
                 der Speicher (12 Bytes pro Sperrung) im Gegensatz zu frher
                 dynamisch alloziert wird, so da der Speicher nur dann
                 belegt wird, wenn er auch wirklich bentigt wird. Mit
                 Update 13 wurde SHARE 2.04 ausgeliefert.
                 Siehe auch Kapitel V.4.

                 Bezglich FILES= und FCBS= sei auf Kapitel III.1. ver-
                 wiesen. Insgesamt knnen vom System maximal 255 Handles
                 zur Verfgung gestellt werden, natrlich gibt es innerhalb
                 von Applikationen und in Netzen die Mglichkeit, diese
                 Schranke in Eigenregie zu umgehen (daher macht es auch
                 Sinn, da SHARE mehr Dateien verwalten kann).

                 DR DOS 3.41-6.0 bot noch eine Option /X zum Deakti-
                 vieren von SHARE nach dem Laden. Diese Option wird von
                 Novell DOS 7 nicht mehr untersttzt, weil die neue MS-DOS-
                 konforme Implementation dies nicht mehr erlauben wrde.

   SORT.EXE      Im Gegensatz zu MS-DOS 6.2x SORT.EXE kann Novells SORT
                 auch problemlos Dateien/Umleitungsdaten mit mehr als
                 64 KByte bearbeiten! Da SORT i. allg. in Verbindung mit
                 Umleitungen angewendet wird, sollte jedoch genug Platz
                 auf dem Temporrlaufwerk frei sein.

                 SORT verwendet nach Mglichkeit die landesspezifischen
                 Einstellungen zur Bestimmung der Sortierreihenfolge (in
                 einigen Bchern wird das Gegenteil behauptet, vermutlich
                 war auf den Testsystemen die Landesuntersttzung falsch
                 konfiguriert).
                 Mchten Sie eine Datei nach den Konventionen eines anderen
                 Landes sortieren, mssen Sie vorher mit einem kleinen
                 Utility wie COUNTRY.EXE das 'aktuelle Land' umstellen
                 (siehe auch Ralf Browns Interrupt-Liste) oder CONFIG.SYS
                 COUNTRY= ndern und neu booten).

                 Fr den Parameter /+n mit n=Offset der Spalte, ab der
                 sortiert werden soll, sind Werte von 0..65535 zulssig,
                 d.h. SORT kommt auch mit exotischen Textdateien zurecht.
                 Anscheinend wirkt /+0 dabei genauso wie /+1, was auch dem
                 Default-Wert entspricht, wenn man nichts angibt (jedenfalls
                 konnte ich bisher keinen Unterschied feststellen).

                  Beispiel (Sortieren eines Verzeichnisses nach Dateigre):

                   DIR *.* | SORT /+14 | MORE

                 Bezglich der sicheren Verwendung in Batchjobs siehe
                 Kapitel IV.6.

                 Errorlevel:
                 (unvollstndig, nur fr Novell DOS 7 verifiziert)

                  0  normale Bearbeitung
                  1  offenbar bei MS-DOS/PC-DOS: Datei zu gro (grer
                     64 KByte). Bei Novell DOS wahrscheinlich nicht belegt,
                     da Novell DOS auch mit greren Dateien zurecht kommt.
                  2  Benutzerabbruch (<Ctrl>+<c>)
                  4  falscher Parameter

   STACHIGH.SYS  Verwendet %Path%, %DirCMD%, SDIR/DIR.COM??, STACKER.INI
                 und bietet anscheinend besondere Untersttzung fr DIR,
                 CHKDSK, DEFRAG und DBLSPACE. SDIR.COM ist ein Tool, das
                 zu den einzeln erhltlichen Versionen von STACKER mitge-
                 liefert wird, bei Novell DOS 7 ist es nicht enthalten,
                 weil DIR entsprechend erweitert wurde (SDIR bietet brigens
                 auch undokumentierte Parameter...).

   SUBST.EXE     Obwohl dieses Kommando rein uerlich genau die gleichen
                 Funktionen wie bei MS-DOS bereitstellt, ist es doch intern
                 besser realisiert: Z.B. knnen Sie auch implizite Lauf-
                 werksangaben machen, wie etwa:

                  SUBST i: c:\nwdos
                  SUBST j: i:\cfg   (wenn c:\nwdos\cfg existieren wrde)
                  SUBST k: c:\nwdos
                  SUBST l: k:.

                 Ein Detail ist aber noch nicht ganz zu Ende gedacht (ist
                 aber eine Frage der Kernel-Implementation, nicht der von
                 SUBST): Wenn Sie einen Verzeichnisnamen ndern, der gleich-
                 zeitig in der Wurzel eines substituierten Laufwerks liegt,
                 so wird diese Laufwerkszuordnung aufgehoben und auf das
                 Wurzelverzeichnis gesetzt und nicht  - wie es sinnvoller
                 wre - dem neuen Laufwerksnamen zugeordnet. Etwa:

                 Eingabe:                   Ausgabe:

                 SUBST m: c:\test1
                 RENDIR c:\test1 c:\test2
                 SUBST                      "m: c:\" statt "m: c:\test2"

                 Ein Fehler ist das allerdings nicht, versuchen Sie dies
                 'mal bei MS-DOS...

                 Interessante Optimierungsmglichkeiten des Speicherbedarfs
                 residenter TSRs in Verbindung mit SUBST finden sich bei
                 LH in Kapitel II.11. (gelten auch fr INSTALLHIGH=).

                 Novells SUBST kennt die von CCI Multiuser DOS 7.22 her
                 bekannte Option /B fr eine batch-konforme Ausgabe in
                 Verbindung mit Umleitungen leider nicht.

                 Errorlevel (nur fr Novell DOS 7 verifiziert):

                  0     ok
                  1     ungltiger Parameter, zuwenig Parameter
                  3..67 nur Novell DOS: Entspricht der Lnge des
                        TRUENAMEs eines genderten SUBST-Laufwerks
                        (bei diesen Errorleveln knnte es sich um ein
                        uerst praktisches Zufallsresultat handeln).

                 Um eine Vorstellung von der sinnvollen Verwendung der
                 Errorlevel von Novells SUBST zu geben, hier ein
                 praktisches Beispiel. Der folgende Batchjob erlaubt
                 (in meiner Konfiguration) das komfortable, aber sicher-
                 lich noch verbesserungswrdige Umsetzen des Temporr-
                 laufwerks, das hier unter dem Buchstaben T:\ verfgbar
                 sein soll:

                  SETTMP.BAT:

                   @ ECHO off > \dev\nul
                     REM 1995-11-25 -mp
                     IF NOT ""=="%1" GOTO start
                     ECHO SETTMP: Changes temporary drive/dir setting.
                     ECHO Syntax: SETTMP ['reset'] [path\]
                     :start
                     IF ""=="%1" GOTO end
                     IF "reset"=="%1" GOTO reset
                     SET old_tmp=%tmp%> \dev\nul
                     SET old_temp=%Temp%> \dev\nul
                     SET tmp=%1> \dev\nul
                     SET Temp=%tmp%> \dev\nul
                     GOTO perform
                     :reset
                     IF NOT ""=="%old_tmp%"  SET tmp=%old_tmp%> \dev\nul
                     IF NOT ""=="%old_temp%" SET Temp=%old_temp%> \dev\nul
                     SET old_tmp=> \dev\nul
                     SET old_temp=> \dev\nul
                     :perform
                     c:
                     CD \
                   @ SUBST t: /d > nul
                   @ SUBST t: %tmp%
                     IF NOT "NWDOS"=="%Os%" IF NOT "OPENDOS"=="%Os%" ...
                                                                ... GOTO end
                     IF NOT ERRORLEVEL 4 ECHO Warning: Root dir specified!
                     IF NOT ERRORLEVEL 4 IF EXIST t:\*.* DIR t:\*.*
                     :end

   SYS.COM       Beim 'SYS'en' eines Boot-Mediums wird der Boot-Sektor des
                 jeweiligen Laufwerks berschrieben und es werden die beiden
                 zum Booten notwendigen 'BIOS'- und 'DOS'-Dateien (bei
                 Novell DOS: IBMBIO.COM und IBMDOS.COM) von einem boot-
                 fhigen Medium berspielt. Auerdem wird der Kommando-
                 prozessor (ohne den keine Eingaben am Prompt mglich wren)
                 kopiert. Dafr wird die Variable %ComSpec% ausgewertet,
                 vgl. Kapitel IV.7.
                 Achtung: Die Datei, auf die %ComSpec% zeigt, wird als
                 Kommandoprozessor notwendigerweise - da die Existenz einer
                 CONFIG.SYS Datei mit einem Eintrag SHELL= nicht vorausge-
                 setzt werden darf - unter dem Namen COMMAMD.COM auf das
                 Boot-Medium kopiert. Dies geschieht auch dann, wenn man
                 nicht mit COMMAND.COM, sondern etwa mit 4DOS.COM arbeitet.
                 Das System kann problemlos von einem solchen Medium booten;
                 der 'falsche' Name COMMAND.COM und das abweichende Ver-
                 halten knnte aber einen arglosen Benutzer etwas ver-
                 wundern. Wenn Sie das strt, und Sie in jeder Situation
                 sicherstellen wollen, da COMMAND.COM auf das Bootmedium
                 bertragen wird, knnen Sie folgendes probieren:

                  SYS.BAT:

                   @COMMAND /C SYS.COM %1 %2 %3 %4 %5 %6 %7 %8 %9

                 Dabei ist es wichtig, da SYS.BAT in einem Batch-
                 Verzeichnis liegt, das in %Path% vor dem C:\NWDOS\
                 Verzeichnis durchsucht wird. Auerdem mssen Sie
                 beachten, da Sie die Dateiendung von SYS.COM angeben
                 mssen, damit keine Rekursion entsteht (auch bei MS-DOS
                 hat das SYS-Programm die Endung .COM).

                 Die bei SYS unter MS-DOS ebenfalls bertragenen Dateien
                 DBLSPACE.BIN/DRVSPACE.BIN werden nicht bercksichtigt,
                 mssen also ggf. nachtrglich umkopiert werden.

                 Bei DR DOS 5.0+/Novell DOS knnen die Systemdateien offen-
                 bar an beliebiger physikalischer Stelle auf dem Laufwerk
                 liegen, bei MS-DOS 6.0+ gilt dies in dieser Allgemeinheit
                 nur fr Floppies (frher noch nicht einmal das, man denke
                 an FORMAT /B), wodurch mit MS-DOS manchmal Probleme auf-
                 tauchen, wenn mehr als eine DOS/Windows-Betriebssystem-
                 version auf der gleichen Partition installiert ist.

                 Ein spezielles Problem tritt in Multi-Boot-Konfigurationen
                 auf (etwa mit Novells LOADER-Tool, das z.B. zum Liefer-
                 umfang von CCI Multiuser DOS 7.22 Gold gehrt): Sind die
                 Namen der Systemdateien in der meisten Fllen unterschied-
                 lich (IO.SYS und MSDOS.SYS bei MS-DOS, BOOT.SYS bei
                 CCI Multiuser DOS, oder IBMBIO.COM/IBMDOS.COM bei PC-DOS),
                 so tritt in Verbindung mit DR DOS 5.0+, Novell DOS 7 oder
                 Caldera OpenDOS das Problem auf, da diese Systeme die
                 gleichen Dateinamen verwenden. Viele Boot-Manager sind
                 mit dieser Konstellation und knnen PC-DOS nicht parallel
                 zu einem System der DR-Familie installiert haben, selbst
                 leistungsfhige Boot-Manager haben oft Schwierigkeiten,
                 mehrere Versionen des gleichen Systems (etwa DR DOS 5.0,
                 DR DOS 6.0, Novell DOS 7 oder OpenDOS) nebeneinander
                 bootfhig installiert zu haben. Hier hilft eine SYS-Option
                 weiter, der ab DR DOS 6.0 existiert:

                 Mit dem undokumentierten Parameter "SYS /DR:ext" kann man
                 SYS.COM veranlassen, beim Schreiben des Boot-Sektors und
                 der IBMBIO.COM-Datei die Dateiendungen interner Referenzen
                 auf die Standardnamen (d.h. im Bootsektor auf IBMBIO.COM
                 und in IBMBIO.COM auf IBMDOS.COM und [D]CONFIG.SYS) auf
                 den Wert von "ext" zu patchen: Bei DR DOS 6.0 sollte man
                 blicherweise "SYS /DR:DR6" angeben, bei Novell DOS 7
                 entsprechend "SYS /DR:NW7". Auf diese Art und Weise
                 ist es sogar mglich, die Kernel-Dateien mehrerer
                 Novell DOS 7 Updates nebeneinander bootfhig zu halten
                 (etwa /DR:D01, /DR:D02, usw.). Ein Beispiel:

                  SYS /DR:NW7 a:

                 schreibt einen Bootsektor, der die Datei IBMBIO.NW7
                 statt der Datei IBMBIO.COM ldt. Diese Datei IBMBIO.NW7
                 entspricht dem Original bis auf einen Patch, der seiner-
                 seits auf die Dateien IBMDOS.NW7 statt IBMDOS.COM, und
                 auf [D]CONFIG.NW7 statt auf [D]CONFIG.SYS verweist. Auf
                 diese Weise ist eine saubere Trennung der einzelnen
                 Kernel-Dateien mglich.

                 brigens kann man durch das ndern der Dateiendung auf
                 eine nicht ausfhrbare Endung auch einem anderen Fehler
                 vorbeugen, nmlich der Mglichkeit, versehentlich (etwa
                 im NC) eine der Dateien IBMBIO.COM oder IBMDOS.COM zu
                 starten. Dies fhrt sonst unweigerlich zum Absturz des
                 Systems. Nicht ohne Grund sind diese beiden Dateien
                 mit Hidden- und System-Attributen versehen.

                 Errorlevel:
                 (unvollstndig, nur fr Novell DOS 7 verifiziert)

                  0  ok
                  3  Benutzerabbruch (<Ctrl>+<c> etc.), oder
                     kann Boot-Sektor nicht schreiben
                  4  Syntax-Fehler

                 In manchen Fllen mag es notwendig sein, direkten Zugriff
                 auf den Boot-Sektor eines Laufwerks zu bekommen (z.B. um
                 den Boot-Sektor zu retten oder um einen eigenen modifi-
                 zierten Boot-Sektor aufzuspielen). Dies kann man mit Hilfe
                 von DEBUG bewerkstelligen. Beachten Sie, da der Boot-
                 Sektor eines Laufwerks nichts mit dem Master-Boot-Sektor
                 (MBR) zu tun hat, den man mit FDISK bearbeiten kann (siehe
                 bei FDISK in Kapitel II.4.). In beiden folgenden Beispielen
                 steht ??? fr die nullbasierte Laufwerksnummer (A:=0, B:=1,
                 C:=2), d.h. blicherweise wird man hier 2 als Boot-Laufwerk
                 einsetzen!

                  Speichern des Boot-Sektors des jeweiligen Laufwerks in
                  einer Datei \BOOTSECT.BIN:

                   DEBUG
                    -L 100 ??? 0 1
                    -Rcx=200
                    -N \bootsect.bin
                    -W
                    -Q

                  Aufspielen eines neuen (prparierten) Boot-Sektors auf
                  ein Laufwerk aus einer Datei \BOOTSECT.BIN:

                   DEBUG \bootsect.bin
                    -W 100 ??? 0 1
                    -Q

                 SYS.COM kann man auch prima zum Entfernen von Boot-Viren
                 (etwa der weitverbreitete "PARITY B"-Virus) benutzen,
                 solange das laufende System selbst noch nicht verseucht
                 ist: Einfach das Medium neu 'SYS'en', wodurch der in-
                 fizierte Boot-Sektor berschrieben wird. Danach kann man
                 die drei System-Dateien auch wieder lschen, vgl. Kapitel
                 II.4. bei SDRES.

   TOUCH.EXE     Es gibt neben den dokumentierten Parametervarianten noch
   TREE.COM      eine speziell selektive undokumentierte Syntax, die die
   XDEL.EXE      Angabe eines Benutzeranmelde- oder Gruppennamens erlaubt
   XDIR.EXE      (Syntax: /U:name; der Name darf normalerweise maximal
                 12 Zeichen lang sein). Diese Option ist nicht in jeder
                 Betriebssystemkonfiguration verfgbar und hat eine
                 besondere Bedeutung in Novell/DR Multiuser-Varianten oder
                 bei lokalen Benutzerkonten und bei einmaliger Anmeldung,
                 sofern die Systemabsicherung aktiviert ist.

                 Haben Sie schon mal das Problem gehabt, da Sie den Inhalt
                 eines kompletten Laufwerks mit XDIR.EXE /S ausgeben lassen
                 wollten und XDIR.EXE dann nach einiger Zeit mit einer
                 Fehlermeldung abbricht, es htte nicht genug Speicherplatz
                 einige 10.000 Dateien zu Sortieren?
                 Wenn Sie lediglich eine bersicht ber alle Dateien haben
                 wollten, knnen Sie in diesem Fall auf XDIR.EXE /S /N
                 oder das Kommando TREE.COM /F ausweichen, wobei die Dateien
                 dann nicht sortiert werden.

                 Fr Hinweise zu TOUCH.EXE siehe auch bei ATTRIB.EXE.

                 Errorlevel fr Novell DOS 7 TOUCH (unvollstndig):

                   0  ok, Hilfe
                  31  kein Dateiname, Syntax-Fehler, TOUCH fr einige
                      Dateien fehlgeschlagen

                 Errorlevel fr Novell DOS 7 TREE (unvollstndig):

                   0  ok
                   1  Syntax-Fehler, Laufwerks(zugriffs-)fehler
                   3  Benutzerabbruch (<Ctrl>+<c> etc.)
                   4  Lesefehler (Diskette fehlt)

   XCOPY.EXE     Es gibt neben den dokumentierten Parametervarianten noch
                 eine speziell selektive undokumentierte Syntax, die die
                 Angabe eines Benutzeranmelde- oder Gruppennamens erlaubt
                 (Syntax: /U:name; der Name darf normalerweise maximal
                 12 Zeichen lang sein). Diese Option ist nicht in jeder
                 Betriebssystemkonfiguration verfgbar und hat eine
                 besondere Bedeutung in Novell/DR Multiuser-Varianten
                 oder bei lokalen Benutzerkonten und bei einmaliger
                 Anmeldung, sofern die Systemabsicherung aktiviert ist.

                 Auerdem wird die DR DOS Option /C auch noch bei
                 Novell DOS 7 untersttzt, ist aber undokumentiert.
                 Sie wirkt genauso wie die neue Option /P.

                 Die beiden mit MS-DOS 6.2 eingefhrten Parameter /Y und
                 /-Y zur Besttigung vor dem berschreiben untersttzt
                 Novell DOS 7 (getestet bis Update 15) noch nicht, da es
                 viel frher eingefhrt wurde.

                 Errorlevel (unvollstndig):

                 (verifiziert fr MS-DOS/PC-DOS 4.0+, Novell DOS 7,
                  wahrscheinlich auch DR DOS 6.0)

                  0  normales Ende
                  1  Keine Dateien zu kopieren
                  2  Benutzerabbruch durch <Ctrl>+<Break> etc.
                  4  Initialisierungsfehler, zuwenig Speicher, ungltige
                     Optionen, Diskette voll, Datei/Pfad nicht gefunden
                  5  INT24h-Fehler beim Lesen/Schreiben der Daten

   UNDELETE.EXE  UNDELETE stellt das Gegenstck zu Kommandos wie DEL,
                 ERASE, ERA, XDEL dar und kann - je nach installiertem
                 Lschschutz - unterschiedlich komfortabel und sicher
                 bereits gelschte Dateien zurckholen.

                 Viele Benutzer haben gewisse Anschauungsprobleme, deshalb
                 folgendes Bild:
                 Wird Novells UNDELETE auf in der DELWATCH-Lschverfolgung
                 befindliche Dateien angewendet (die gewissermaen in einem
                 'unsichtbaren' Bereich des Laufwerk liegen), so kann man
                 UNDELETE auch im Kontext von Novells DELPURGE betrachten:
                 UNDELETE holt die gelschten Dateien aus dem unsichtbaren
                 Bereich zurck in die Sichtbarkeit, wohingegen DELPURGE
                 sie zwar auch aus dieser Pufferzone entfernt, aber dafr
                 'in entgegengesetzter Richtung', indem es sie dem freien
                 Speicherbereich des Laufwerks zuschlgt.

                 Wie schon angesprochen, untersttzt Novells UNDELETE
                 neben der DOS-Methode auch DISKMAP und DELWATCH, aller-
                 dings keine Fremdkonzepte wie etwa das von MS-DOS/PC-Tools
                 UNDELETE.
                 PC-Tools 9.0 UNDEL.EXE kommt hingegen sowohl mit MS-DOS
                 UNDELETE /LOAD als auch mit DR DOS/Novell DOS DELWATCH
                 zurecht. Dies ist interessant zu wissen, wenn Sie statt
                 DELWATCH evtl. Microsofts 6.2x UNDELETE /LOAD verwenden,
                 um die Probleme, die DELWATCH mit verschiedenen Disk-Tools
                 bereitet, zu lsen (siehe bei DELWATCH/DELPURGE).
                 UNDEL.EXE findet auch dann noch gelschte Dateien, wenn
                 sie mit DELPURGE aus der Lschverfolgung entfernt wurden.
                 Diese Dateien sind offenbar mit Novells UNDELETE nicht
                 mehr zu restaurieren (siehe DELPURGE und DELWATCH). Mehr
                 Hintergrund-Informationen zur Physik der Verzeichnis-
                 eintrge gibt Kapitel II.21.


                 Untersttzt, wie Novells DELPURGE.EXE, neben den dokumen-
                 tierten Parametern noch eine Reihe weiterer neuer Parameter
                 (wie auch MS-DOS/PC-Tools UNDELETE.EXE):

                  /ALL      identisch mit /A
                  /LIST     identisch mit /L
                  /DT       nur "Delete-Tracking-Methoden" verwenden, d.h.
                            nur die Untersttzung durch DISKMAP und DELWATCH
                            whlen. Wollen Sie zwischen DISKMAP und DELWATCH
                            unterscheiden, mssen Sie stattdessen /R:DISKMAP
                            oder /R:DELWATCH angeben.
                  /DOS      nur "DOS-Lschmethoden" verwenden, d.h. wie
                            /R:UNAIDED. Dies bezieht sich gleichzeitig
                            sowohl auf die 'alte' DOS-Methode (wie auch
                            bei MS-DOS/PC-DOS), bei der der erste Buchstabe
                            des Dateinamens verloren geht und vor der
                            Restaurierung erfragt werden mu, als auch
                            auf die 'neue' Methode unter Novell DOS,
                            wenigstens diesen Buchstaben an anderer Stelle
                            im reservierten Bereich der Verzeichnisstruktur
                            zwischenzuspeichern, wodurch die lstige und
                            fehlertrchtige Fragerei unterbleiben kann.
                            Werden /DOS und /DT gleichzeitig angegeben,
                            hat /DT offenbar den Vorrang.
                  *.*       Alles

                 Die undokumentierte Syntax /U:name erlaubt die Angabe eines
                 zulssigen Benutzeranmelde- oder Gruppennamens (maximal 12
                 Zeichen lang). Diese Option ist nicht unter jedem Betriebs-
                 system verfgbar und hat in Novell/DR Multiuser-Varianten
                 oder in Verbindung mit lokalen Benutzerkonten und
                 einmaliger Anmeldung eine Bedeutung, sofern die System-
                 absicherung aktiviert ist.

                 Der MS-DOS 6 UNDELETE /T Parameter hat eine gnzlich
                 andere Funktion als Novells /T: Parameter!

                 Die Parameter /D: bzw. /T: (in landesspezifischem Format)
                 erlauben bei Novell DOS UNDELETE die zeitliche Ein-
                 schrnkung des Suchbereichs fr Dateien, wobei das
                 exakte Verhalten nicht so pauschal (und damit grtenteils
                 falsch) beschrieben werden kann, wie dies in der Novell-
                 und Fremd-Dokumentation geschieht (zwar bietet auch
                 DELPURGE gleichnamige Parameter mit gewissermaen
                 'umgekehrtem Vorzeichen' an, dort sind sie allerdings
                 exakt beschrieben und beziehen sich ausschlielich auf
                 den Bereich *vor* dem angegebenen *Lsch*zeitpunkt):

                 Die Parameter /D:dd.mm.yy (absolut) bzw. /D:-nnn (relativ
                 bezogen auf das aktuelle Datum) bewirken eine doppelte
                 Suchmaske, die einerseits als Angabe des Zeitraum *seit*
                 der letzten *nderung* (vor dem Lschen) der zu suchenden
                 Dateien gilt und andererseits gleichzeitig bei Dateien,
                 die in der DELWATCH-Lschverfolgung hngen, zustzlich auf
                 das *exakte* *Lsch*datum pat.
                 Dieses etwas gewhnungsbedrftige Konzept erlaubt gewisser-
                 maen eine Doppelnutzung der Parameter und liefert in den
                 meisten Fllen genau die richtigen gewnschten Dateien
                 (im Zweifel wenige Dateien mehr), denn der Unterschied
                 wird erst dann sehr offensichtlich, wenn das letzte
                 nderungsdatum einer Datei sich stark vom Lschdatum
                 unterscheidet und weit zurckliegt.

                  Beispiele:

                  /D:-0   fr Dateien, die heute gelscht wurden (plus die,
                          die - mit falschem Datumsstempel - in der Zukunft
                          gendert und gelscht 'wurden'... ;-) )
                  /D:-1   fr bereits gelschte Dateien, die noch gestern
                          oder heute gendert wurden, plus alle in der
                          Lschverfolgung stehenden Dateien, die gestern
                          gelscht wurden.
                  /D:-7   fr bereits gelschte Dateien, die noch innerhalb
                          der letzten Woche gendert wurden, plus alle in
                          der Lschverfolgung stehenden Dateien, die vor
                          exakt 7 Tagen gelscht wurden.

                 Zum sukzessiven rckwrtigen Durchsuchen *aller* in der
                 letzten Woche gelschten Dateien mu man also der Reihe
                 nach die Optionen /D:-0 .. /D:-7 durchprobieren (die
                 Dokumentation beschreibt dies falsch)! Gleiches gilt
                 natrlich auch bei absoluter Angabe eines Datum mit
                 /D:dd.mm.yy.

                 Der Parameter /T:hh:mm[:ss] bezieht sich immer auf den
                 Lschzeitpunkt und spezifiziert den Zeitraum *seitdem*.
                 Ohne die Angabe eines genaueren Datums mit /D: (bzw.
                 des Lschdatums einer durch die /D: Maske in Frage
                 kommenden Datei) bezieht sich /T: auf das aktuelle Datum.

                 Sollten Sie bei in der DELWATCH-Lschverfolgung befind-
                 lichen Dateien neben dem Original-Datums-/Zeitstempel auch
                 noch den Zeitpunkt des Lschens erfahren wollen, knnen
                 Sie dafr das Kommando DELPURGE /L verwenden, denn UNDELETE
                 verwendet zwar intern auch das Lschdatum fr seine /D: und
                 /T: Parameter, zeigt diese Informationen aber nicht an.

                 Novell DOS 7 UNDELETE drfte zwar unter DR DOS 6.0 ge-
                 lschte Dateien problemlos entlschen knnen, da aber
                 DR DOS 6.0 und Novell DOS 7 DELWATCH sich bezglich der
                 Speicherung des Lschdatums unterscheiden, knnte es sein,
                 da Novells UNDELETE alte, unter DR DOS 6.0 gelschte
                 Dateien mit falschem Datum anzeigt, das Originaldatum
                 mit dem Lschdatum verwechselt und die Dateien nach
                 dem Restaurieren ein vllig falsches Datum haben
                 (1980-01-01???). Schwerwiegendere Probleme sind
                 allerdings nicht zu erwarten. (Nicht getestet.)

                 Nur, wenn UNDELETE ganz ohne Parameter aufgerufen wird,
                 erscheint die integrierte Menoberflche, ansonsten ar-
                 beitet das Programm konsolenorientiert. Lediglich die
                 Parameter /B (fr Schwarz/Wei-Darstellung) und/oder /N
                 (fr EGA/VGA-Zeichensatz) sind auch in diesem Fall erlaubt
                 (und knnen entgegen der Dokumentation auch gleichzeitig
                 angegeben werden). Standardmig wirkt UNDELETE dann fr
                 das aktuelle Laufwerk, dies kann aber innerhalb der Ober-
                 flche auch gendert werden.
                 Mchten Sie hingegen von vornherein den Konsolenmodus
                 aktivieren, reicht es aus, einfach eine Laufwerksspezifi-
                 kation (und sei es auch nur die des aktuellen Laufwerks)
                 anzugeben.

                 UNDELETE wertet in der Datei %NWDOSCFG%\NWDOS.INI die
                 Gruppen [UNDELETE] CurrentColorX= (x=1..9) und [COLORS]
                 ColorSetX und NewUI=on|off aus (wie oben schon erwhnt).
                 Evtl. wird auch noch eine Variable %ADDSTOR% (SuperStor)
                 untersucht.

                 Wird UNDELETE auf JOIN-Laufwerke angewendet, werden keine
                 zu entlschenden Dateien angezeigt, auch wenn in Wirklich-
                 keit Dateien vorhanden sind. In diesem Fall mu die Zu-
                 ordnung aufgehoben werden und mit dem Original-Laufwerks-
                 buchstaben gearbeitet werden (vgl. auch DELWATCH, das
                 nur mit physikalischen Laufwerken arbeitet).

                 Errorlevel:
                 (unvollstndig, nur fr Novell DOS 7 verifiziert)

                  0  ok???
                  2  ???
                 31  Allgemeiner Fehler (Fehlercode: xx),
                     z.B. Fehlercode 3 hervorgerufen durch ungltige
                                       Zahlenwerte im Zeitformat des
                                       /T: Parameters.

   UNFORMAT.EXE  Die meisten Anwender wrden dieses Kommando am liebsten
                 verkennen, ging seinem Einsatz doch in der Regel ein
                 essentieller und peinlicher Fehler in der Benutzung der
                 DOS-Kommandozeile voraus... ;-)
                 Trotzdem, wenn Sie versehentlich FORMAT /X auf eine Fest-
                 platte angewendet haben, sollten Sie normalerweise alle
                 Daten dieser Platte wiederherstellen knnen (besonders,
                 wenn Sie DISKMAP, MS-DOS/PC-Tools MIRROR oder Norton
                 Utilities IMAGE verwendet haben).
                 Ich hatte bisher erst einmal Kontakt mit diesem Kommando,
                 und prompt funktionierte das gerade beschriebene Procedere
                 NICHT! UNFORMAT weigerte sich, auf die Platte auch nur
                 zuzugreifen und auch CHKDSK oder PC-Tools DISKFIX lieen
                 sich nicht dazu berreden. Nortons NDD fand nur Bad-
                 Sectors. Kein gutes Zeichen. Des Rtsels Lsung:
                 Whrend des FORMAT /X war offenbar ein Fehler aufgetreten,
                 und die DOS-internen Datenstrukturen wiesen diese Platte
                 nun als nicht ansprechbar ('nicht formatiert') aus. Also
                 hie es, sicherheitshalber alle DISKMAP, MIRROR, IMAGE etc.
                 Tools temporr aus der AUTOEXEC.BAT entfernen (damit diese
                 weiterhin den alten Zustand dokumentierten) und den Rechner
                 neu booten. Und prompt war die Platte wieder ansprechbar,
                 als wre nichts gewesen...

                 MS-DOS 6.2 UNFORMAT /TEST bietet Novell DOS 7, welches
                 vor MS-DOS 6.2 auf den Markt kam, verstndlicherweise
                 noch nicht. Sollten die Mglichkeiten von Novells UNFORMAT
                 einmal nicht ausreichen, knnen Sie auch das bis auf die
                 Untersttzung fr Novells FORMAT leistungsfhigere
                 UNFORMAT.COM von MS-DOS 6.2 verwenden (da dieses Programm
                 eigentlich von Central Point PC-Tools stammt, arbeitet es
                 auch mit Novell DOS).

                 UNFORMAT kann nur funktionieren, wenn zum Zeitpunkt des
                 FORMATs auf dem Laufwerk gengend freier Speicherplatz
                 vorhanden war, um die UNFORMAT-Informationen zu sichern
                 (bei 1,2 MByte-Floppy ca. 4 KByte) und das Format nicht
                 gendert wurde. Auerdem drften die neu auf das Medium
                 kopierten Dateien noch nicht die UNFORMAT-Informationen
                 berschrieben haben, wie dies geschieht, wenn das Medium
                 voller wird.

                 Errorlevel:
                 (unvollstndig, nur fr Novell DOS 7 verifiziert)

                  0  ok
                  1  unzulssiges Laufwerk
                  3  Benutzerabbruch (<Ctrl>+<c> etc.)
                  4  Kann Laufwerk nicht lesen (keine Diskette)

   VERSION.EXE   Diese kleine Novell-Utility (in C:\NWCLIENT\) ermglicht
                 die Berechnung von (extrem langen) Dateiprfsummen und
                 die Ausgabe der in vielen Novell-Dateien intern gespeicher-
                 ten Versionsangaben.

                 Die Syntax ist VERSION [filespec] [/N], wobei auch Wild-
                 cards erlaubt sind.

                 Das Programm durchsucht die Datei nach bestimmten
                 standardisierten Zeichenketten, hinter denen die gesuchten
                 Informationen entsprechend Novells Konventionen bei der
                 Erzeugung eingetragen wurden. Die wichtigsten Zeichenketten
                 sind "VeRsIoN=", "VeRsIoN#", "CoPyRiGhT=" und fr die
                 Option /N noch "NaMe SeRvIcE=" (und "NeTwArE="???).

                 Natrlich kann man diese Methode auch praktisch fr eigene
                 Programme bernehmen, wenn man das richtige Format einhlt,
                 z.B.

                  DB "NaMe SeRvIcE=Dies ist ein Dummy!", NUL, CR, LF
                  DB "VeRsIoN=1.00 REV A (970130)", NUL, CR, LF
                  DB "CoPyRiGhT=(C) Copyright 1997 by ??", NUL, CR, LF

                 Dabei sollte das Datum unabhngig von der eigenen Landes-
                 einstellung immer im japanischen Datumsformat und ohne
                 Separatoren angegeben werden. Zumindest die letzten
                 beiden Zeichenketten mssen mit NUL (ASCII-0) abgeschlossen
                 werden; das CR (ASCII-13), LF (ASCII-10) ist optional,
                 aber sinnvoll. Die Versionsangabe sollte nicht mit einem
                 Satzzeichen enden, da VERSION.EXE hier automatisch einen
                 Punkt setzt. Es mssen nicht alle Zeichenketten angegeben
                 werden.

                 Bei "VeRsIoN#" kann die Angabe einer Versionsnummer
                 (optional mit Revisionscode) direkt binr erfolgen
                 (fr Seriennummern). Dafr werden offenbar die unmittelbar
                 auf das '#'-Zeichen folgenden 3 DWORDs als Version, Unter-
                 version und Revision ausgewertet.

                 Ein Problem ergibt sich, wenn Dateien, die solche Infor-
                 mationen enthalten, mit einem Online-Kompressor wie PKLITE
                 bearbeitet werden. VERSION.EXE kann dann die Informationen
                 nicht mehr finden. Allerdings kann man die Informationen
                 normalerweise auch an das Ende der komprimierten Datei an-
                 hngen (etwa mit einem speziellen Batchjob). Um optimale
                 Konsistenz zu erhalten, ist folgende Vorgehensweise sinn-
                 voll:

                  - Ausfhrbare Datei erzeugen (mit internen Informationen
                    fr VERSION.EXE)
                  - Die internen Versionsinformationen mit einem Utility
                    auslesen und zwischenspeichern
                  - Ausfhrbare Datei komprimieren (z.B. mit PKLITE)
                  - Die zwischengespeicherten Informationen wieder in das
                    richtige Format bringen und zustzlich an die ausfhr-
                    bare Datei anhngen.
                  - Virenscanner, Prfsummenschutz, etc. laufen lassen

                 Dieses auf den ersten Blick recht komplizierte Unterfangen
                 kann sogar mit einem trickreichen Batchjob gelst werden
                 (wer's braucht, kann XVERSION.BTM bei mir anfordern).

                 Noch eine Bemerkung zum Schlu: Bei einer Komprimierung
                 mit PKLITE werden die Token wie VeRsIoN=, CoPyRiGhT= usw.
                 oft nur teilweise komprimiert und bleiben auch von 'auer-
                 halb' sichtbar. Dies kann VERSION.EXE verwirren, wenn es
                 diese Fragmente vor den neu angehngten Eintrgen in der
                 Datei findet. Ein kleiner Trick hilft hier: Wenn Sie im
                 Code unmittelbar vor dem Auftauchen der Zeichenketten
                 einen Teil des Musters vorweg angeben, kann PKLITE den
                 eigentlichen Eintrag besser komprimieren und es bleiben
                 keine verwirrenden Fragmente mehr brig, z.B. funktioniert:

                  DB "VeCoP"
                  ... <hier die eigentlichen Eintrge vornehmen>

                 Zwar wertet VERSION.EXE den folgenden Eintrag nicht
                 aus, aber bei Caldera OpenDOS 7.01 wird der Eintrag der
                 Seriennummer in COMMAND.COM erstmals speziell mit
                 "SeRiAlNuMbEr=" gekennzeichnet.

   VDISK.SYS     Novells VDISK untersttzt neben normalem DOS und DR DOS
                 auch Concurrent DOS/XM 6.0+, Concurrent DOS/386 2.0+,
                 DR Multiuser DOS 5.1+ und Concurrent DOS 5.1+. Die ausge-
                 lieferte Version untersttzt kein DPMS; in dem DPMS-SDK
                 gibt es aber einen Beispiel-VDISK-RAM-Disk-Treiber, der
                 DPMS nutzt und damit nur 400 Bytes im Real Mode-Adreraum
                 belt. Trotzdem:

                 Im FreeWare-Bereich existieren zwei sehr viel flexiblere
                 (Gre zur Laufzeit einstellbar) und kleinere RAM-Disk-
                 Treiber, die obendrein noch etwas schneller sind:
                 TurboDSK (TDSK, selbsthochladender Gertetreiber/TSR,
                 ebenfalls nur ganze ca. 400 Bytes gro (!!!), Nutzung
                 aller Speichersorten) bzw. BitDisk, der wohl kleinste
                 RAM-Disk-Treiber der Welt (ebenfalls ein Selbsthochlader,
                 lediglich ca. 256 Bytes gro, Nutzung von XMS), beide
                 geschrieben von Ciriaco Garca de Celis. Beide sind auch
                 mit deutscher Dokumentation erhltlich, z.B. ber meine
                 Web-Page.

                                                                             
  ---------------------------------------------------------------------------

  II.5. Undokumentierte Mglichkeiten von DEBUG: [96-07-15]
  =========================================================

   Stichworte: DEBUG, Bugs, Kompatibilitt, OpCodes, 286er, Pentium, /X,
               Breakpoints, Symbole, Selbstdokumentierung, Makros,
               Berechnung von Werten, Remote-Debugging

   Das Kommando DEBUG von Novell DOS ist nahezu 100% kompatibel mit dem
   Gegenstck von MS-DOS und arbeitet mit jedem DOS 2.11+ zusammen. Es
   gibt nur ganz wenige Unterschiede, aber - leider zum grten Teil un-
   dokumentiert - sehr viele praktische Erweiterungen, die zum Teil noch
   vom Vorgnger SID (DR DOS 6.0) abstammen (SID wiederum hat seine Vor-
   fahren in SID86 von DR DOS 3.41 - der brigens spezielle Befehle zum
   Debuggen unter GEM (und VIEWMAX) besa - und der wiederum basierte auf
   Debuggern fr CP/M, wie etwa DDT). Leider sind im Detail nicht alle
   Fhigkeiten von SID bernommen worden (z.B. die angesprochenen GEM-
   Features), das allermeiste ist allerdings wiederzufinden.

   Novell DOS DEBUG stellt sich wahrlich als Fundgrube undokumentierter
   Eigenschaften dar und drfte damit das am meisten verkannte Utility von
   Novell DOS sein (Beim Vergleich mit der Konkurrenz drngt sich einem
   unweigerlich der ungerechte Vergleich von Porsche und Kfer auf...).

   Im DOSBOOK findet sich (allerdings etwas versteckt ganz am Ende) eine
   recht ausfhrliche Dokumentation ber alle offengelegten Kommandos und
   Funktionen dieses uerst mchtigen und wichtigen Werkzeugs, das trotz
   diverser Hochsprachen-Debugger und wesentlich flexiblerer Tools wie
   Borlands Turbo-Debugger manchmal unumgnglich ist, um bestimmte Dinge
   auszufhren.


   i. Inkompatibilitten zu MS-DOS DEBUG:
   --------------------------------------

   - Im Assemble-Modus (-A) mu man bei Novell DOS 7 gewnschte Zeichen-
     ketten in doppelte Anfhrungszeichen (DB "Teststring") setzen, bei
     MS-DOS tun's auch die einfachen Anfhrungszeichen. Dies kann manchmal
     nderungen in Debug-Skripten fr MS-DOS DEBUG erfordern. Die Debug-
     Skripte heien bei Novell DOS brigens meistens .SCR, bei MS-DOS
     meist .DEB, die Namenswahl ist allerdings in keiner Weise einge-
     schrnkt, sondern lediglich eine Konvention in den Dokumentationen.

   - Die derzeitige Implementation (getestet bis 1.42, Update 15) hat einen
     kleinen, aber schwerwiegenden Bug: Versuchen Sie niemals Ausdrcke
     wie die folgenden einzugeben:

      A
      DB 0A, 0D, "$"

     oder

      A
      DW 3FF, 2000, "Teststring"

     Sobald eine Zeichenkette und eine normale Angabe in dieser Reihenfolge
     zusammen in einer Zeile definiert werden, kann es zu einem tiefen
     Absturz kommen. Dies lt sich vermeiden, wenn diese Angaben in
     getrennten Zeilen erfolgen. Eine Zeichenkette vor einer Zahl wird
     hingegen akzeptiert.

   - Mit der ursprnglich ausgelieferten Version 1.40 kann man nicht in
     Interrupts tracen (-T) (es wurde stattdessen Proceed (-P) ausgefhrt),
     dies ist aber wohl mit der Version 1.41 von Update 12 mglich
     (prinzipielle Ausnahmen siehe unten). (Mit Update 13-15 (diverse
     Unterversionen von 1.42) habe ich dies nochmals berprft, und es
     klappt seltsamerweise nicht mehr. Ob der Fix versehentlich wieder
     entfernt wurde oder ob mir ein Fehler unterlaufen ist? Leider habe
     ich die Version 1.41 nicht mehr zur Verfgung...)

   - Die EMS-Funktionen von MS-DOS DEBUG (-XA, -XD, -XM und -XS) werden
     nicht untersttzt, werden aber auch so gut wie nie bentigt. Dafr
     bietet Novells DEBUG eine Unzahl anderer Erweiterungen.
     Natrlich kann man die fehlenden Funktionen nachbilden, in dem man
     sich im Assemble-Modus 'online' ein paar Interrupt-Aufrufe fr die
     EMS-Funktionen schreibt.

   - Whrend des Assembler-Modus (-A) sind keine Kommentare erlaubt
     (dies ist bei MS-DOS DEBUG mglich, wenn auch undokumentiert).
     Kommen solche Kommentare allerdings in Debug-Skripten vor, strt
     das deren Abarbeitung nicht. Novells DEBUG gibt lediglich eine
     Fehlermeldung aus, arbeitet aber normal weiter. Zustzlich sind
     bei Novell jedoch Kommentare direkt am Prompt erlaubt (was aller-
     dings bei MS-DOS zurckgewiesen wird).

   - Die Syntax der Mnemos ist bei Novells DEBUG gegenber MS-DOS
     in einigen Punkten leicht eingeschrnkt (dafr werden aber viele
     andere Erweiterungen geboten). So sind z.B. keine Ausdrcke wie

      MOVAX,1

     oder

      D,1,1

     erlaubt, aber diese Einschrnkungen sich eigentlich nur konsequent,
     anderenfalls knnte es mit zuknftigen neuen Assemblerbefehlen
     Doppeldeutigkeiten in Debug-Skripten geben. Da all dies MS-DOS DEBUG
     sowieso fremd ist, konnte man dort auch auf solche Vorsorgemanahmen
     verzichten.


   ii. Grundstzliche Verbesserungen:
   ----------------------------------

   - Im allgemeinen stabiler (mit MS-DOS DEBUG habe ich schon die
     seltsamsten Phnomene erlebt, etwa Abstrze an Segmentgrenzen
     etc., so etwas ist Novells Implementation fremd)...

   - Umschalten auf Benutzerschirm (Kommando 'Video' -V), d.h. die
     Debug-Sitzung berschreibt nicht die Ausgabe des getesteten
     Programms und umgekehrt. Dieser Parameter ist nur in der ein-
     gebauten Hilfe von DEBUG dokumentiert.

   - Im Gegensatz zu MS-DOS 6.22 DEBUG wird der komplette (!!!) Befehlssatz
     vom Intel 8088 bis zum Intel Pentium sowie alle Befehle der Intel
     Coprozessoren voll untersttzt. Die zustzlchen Opcodes der V20/V30
     (und damit auch 8080) Opcodes und Erweiterungen der Cyrix- und IIT-
     Prozessoren und Coprozessoren werden allerdings nicht erkannt. Einige
     undokumentierte Opcodes werden nicht fr alle Prozessoren untersttzt,
     aber eine ganze Reihe undokumentierter Opcodes (und Aliase) werden
     wenigstens richtig decodiert.

   - Der Debugger bietet einen erweiterten /X-Modus an, in dem die Kommando-
     zeilen-Syntax mancher Befehle mchtiger wird und in dem man von der
     Default-Vorgabe BYTE abweichen kann. Neben einigen Bemerkungen im
     weiteren Verlauf mehr dazu im DOSBOOK. Fr die Bearbeitung von Debug-
     Skripten von MS-DOS DEBUG sollte man den /X-Modus nicht verwenden, da
     es hier durch die Erweiterungen zu Fehlinterpretationen kommen kann.

   - Der Debugger erlaubt symbolisches Debuggen durch spezielle Symbol-
     dateien und Makros. Neben Erkennungsmechanismen fr verschiedene CPUs
     sind auch eine groe Anzahl symbolischer Namen der gngigen DOS-,
     NetWare- und BIOS-APIs direkt intern kodiert.

   - Novell DOS DEBUG erlaubt die Verwendung von bedingungsabhngigen
     Breakpoints.

   - Es gibt Mglichkeiten zum Remote-Debuggen.


   iii. Undokumentierte Kommandos und Optionen:
   --------------------------------------------

   (Sowie einige spezielle Anmerkungen zu teilweise dokumentierten
    Funktionen.)

    -A [address]       'Assemble' ist im DOSBOOK dokumentiert.
                       Whrend dieses Kommandos beziehen sich Register-
                       ausdrcke aus verstndlichen Grnden auf die Namen,
                       nicht auf die gerade darin enthaltenen Werte (wie
                       ansonsten bei Novells DEBUG und SID blich).
                       Im Gegensatz zu MS-DOS DEBUG sind keine einge-
                       betteten Kommentare erlaubt, allerdings werden
                       entsprechende Debug-Skripte auch nicht zurck-
                       gewiesen, da durch die auftretende Fehlermeldung
                       weder der Assemble-Modus beendet, noch die je-
                       weilige Codezeile verlassen wird, d.h. das Er-
                       gebnis ist das Gleiche.
                       Weitere Hinweise siehe oben.


    -B [breakpoint[, count[, condition]]

                       'Breakpoint' - Dieser undokumentierte Parameter
                       erlaubt das flexible Setzen von permanenten
                       Ansprungpunkten (im Gegensatz zu den bis zu 3
                       temporren Haltepunkten, die man bei G 'Go'
                       optional angeben kann). Im Gegensatz zu Halte-
                       punkten ist bei Ansprungpunkten die Anweisung an
                       der spezifizierten Stelle noch nicht ausgefhrt.

                       -B

                       Gibt Liste der derzeit definierten Ansprungpunkte
                       und der Haltebedingungen an. Es knnen maximal
                       4 Ansprungpunkte angegeben werden.

                       -Bbreakpoint[, count[, condition]

                       Definiert einen Ansprungpunkt. Ohne Angabe von
                       count und condition ist dies ein unbedingter
                       Ansprungpunkt, der beim (nach dem?) ersten Mal
                       aktiv wird (d.h. count=1 und condition=always
                       wird implizit angenommen). Gibt man count an,
                       so wird der Ansprungpunkt erst beim Durchlauf
                       count durch diesen Haltepunkt aktiv (der Zhler
                       wird mit jedem Durchlauf um eins erniedrigt, bis
                       er 1 erreicht. Bei 1 bleibt er dann stehen).
                       Dabei sind fr count beliebige Werte von 0 bis
                       xxxx mglich. Die zustzliche Angabe von condition
                       erlaubt es, auch noch ein CPU-Register auf einen
                       bestimmten Wert hin zu berprfen. Nur in diesem
                       Fall wird der Ansprungpunkt aktiv (und der Zhler
                       zhlt).

                       Beispiel:

                       B100, 2, AX=05

                       setzt einen Haltepunkt an Offset 100h, der nach zwei
                       Durchlufen mit Bedingung AX=05 aktiv wird. Fr die
                       Registerangabe sind alle mglichen 8- und 16-bittige
                       Register und jeweils gltige Werte erlaubt.
                       Die Angabe einer condition ist nur gleichzeitig mit
                       den anderen Angaben mglich. Es ist zu beachten, da
                       beim zweiten Parameter durch die Angabe eines Textes
                       wie AX noch der aktuelle Inhalt dieses Registers
                       (fr den Durchlaufzhler) verwendet wird, wohingegen
                       im dritten Parameter der Eintrag vor dem Gleichheits-
                       zeichen die symbolische Bedeutung fr Register XY
                       hat, nach dem Gleichheitszeichen jedoch auch der Wert
                       des evtl. angegebenen Register gemeint ist.

                       B100, 0, BL=CH

                       setzt also die Bedingung BL=03 falls CH=3 ist.

                       Wofr die Einstellung count=0 gut ist, ist noch nicht
                       klar, man kann aber vermuten, da dieser Ansprung-
                       punkt dann immer gilt und nicht erst nach einer
                       gewissen Anzahl von Durchlufen aktiv wird.

                       (SID erlaubte in einer sehr hnlichen Funktion bis
                       zu 16 Ansprungpunkte auf der Basis von eingefgten
                       INT03h-Anweisungen, d.h. es konnte kein ROM-Code
                       debuggt werden und die Angabe von Bedingungen war
                       nicht mglich. Novells DEBUG arbeitet hier aber
                       wahrscheinlich auf der Basis der Debug-Features des
                       386er (und hher) (deshalb auch nur 4 Breakpoints).
                       Allerdings ist diese Funktion auch auf 286ern,
                       wahrscheinlich sogar auf 8088-Systemen verfgbar.
                       Vielleicht wird das Verhalten intern umgeschaltet -
                       nicht berprft...)

                       Die obigen Funktionen sind auch im /S-Modus ver-
                       fgbar, die folgenden Optionen werden im /X-Modus
                       zustzlich freigeschaltet:

                       --B                     lscht alle Ansprungpunkte
                       --Bbreakpoint           lscht nur den spezifizierten
                                               Breakpoint.


    -C range address   'Compare' ist im DOSBOOK dokumentiert.


    -CLS               Dieser undokumentierte Befehl lscht den Bildschirm
                       der Debug-Sitzung (nicht den 'Benutzerschirm').
                       Dabei wird im Gegensatz zur Novell DOS' und DR DOS'
                       Kommandozeile die eventuell in der Umgebungsvariable
                       %$Cls% definierte Sequenz ignoriert (siehe auch
                       Kapitel II.11., III.1. und IV.7.).


    -CPU               Dieser undokumentierte Befehl gibt die vorhandene
                       CPU und ihren aktuellen Betriebsmodus aus.
                       Erkannt werden alle Intel CPU-Generationen (bis
                       zum Pentium) sowie die NEC V20/V30 Prozessoren.
                       An Prozessormodi werden Real Mode und V86-Modus
                       angegeben (DOS luft nicht im Protected Mode).


    -D [range]         'Dump' - Im /X-Modus gibt es die erweiterten Modi
                       (jeweils mit einem Leerfeld abgeschlossen!), die
                       jeweils entsprechende Gren oder Objekte zur Anzeige
                       bringen.

                       -DB [range]             Dump BYTE
                       -DW [range]             Dump WORD (von SID bekannt)
                       -DD [range]             Dump DWORD (auch auf 286ern)
                       -DP [range]             Dump POINTER
                       -DI [range]             Dump INTERRUPTS

                       Die Angabe von -DP und -DI gibt Pointer-Strukturen
                       (Segment:Offset) aus. Die einfache Angabe von -D
                       benutzt den zuletzt eingestellten Modus weiter.
                       Hinter diesen Spezialbefehlen knnen auch die
                       blichen Parameter angegeben werden. Bei -DI werden
                       diese nicht als Adreangaben interpretiert, sondern
                       als Interrupt-Nummern im Bereich von 0 bis FF. Trotz-
                       dem ist sowohl die Angabe des Start- und Endwertes
                       als "-DP start end", als auch die Angabe der Anzahl
                       mit "-DP start L count" mglich.

                       Ebenfalls nur im /X-Modus kann auch die Default-
                       Lnge fr die Dump-Ausgaben angezeigt und umge-
                       ndert werden:

                       --D [count]             stellt Format nicht um
                                               (diese Funktion ist von
                                               SID bekannt)
                       --DB [count]            identisch, stellt aber
                                               gleichzeitig das Format
                                               auf BYTE zurck.

                       Eine vernderte Standardlnge arbeitet auch in
                       Verbindung mit spterem -DI, hier wird die Standard-
                       lnge durch 4 dividiert und daraufhin werden ent-
                       sprechend viele Interrupt-Vektoren aufgelistet.
                       Es erscheint eine Meldung, die die aktuelle Ein-
                       stellung fr die Standardlnge und das -format
                       (BYTE, WORD, DWORD, POINTERS, INTERRUPTS) des
                       Dump-Kommandos ausgibt. Gibt man count an, so wird
                       die Einstellung der Standardlnge entsprechend
                       umgendert. Ein anderes Standardformat (auer BYTE)
                       kann man jedoch nur ber die oben aufgefhrten
                       Einzelkommandos ndern:

                       -DB
                       -DW
                       -DD                     (auch auf 286ern!!!)
                       -DP
                       -DI

                       Die Einstellung fr die Standardlnge bleibt auch
                       nach dem Zurckschalten in den /S-Modus erhalten,
                       das Format wird dabei allerdings auf BYTE zurck-
                       gestellt.

                       Eine vernderte Standardlnge wie z.B. --DB 017F
                       oder --D 17F fhrt dazu, da beim nchsten -D
                       Kommando ein kompletter Bildschirm vollgeschrieben
                       wird.
                       Besonders praktisch ist die Vernderung der Standard-
                       lnge, wenn man eine bestimmte Struktur (etwa ein
                       Feld mit Tabellenwerten) untersuchen will. Hier
                       gibt man mit --D die Lnge eines Feldelements an,
                       und kann damit eine automatisch richtig formatierte
                       Ausgabe der einzelnen Elemente bekommen. Bei MS-DOS
                       wrde ohne explizite Lngenangabe jedesmal der halbe
                       Bildschirm mit Daten vollgeschrieben, die meist gar
                       nicht interessieren und nur dazu fhren, da die
                       relevanten Daten viel zu frh vom Bildschirm ge-
                       scrollt werden.
                       In diesem Zusammenhang bleibt zu erwhnen, da
                       Novells DEBUG seine Auflistung immer an der
                       angegebenen Position beginnt und nicht - wie bei
                       MS-DOS - die Ausgabe auf die vorherige Paragraphen-
                       grenze ausrichtet.
                       Auch dies fhrt normalerweise zu bersichtlicheren
                       Ausgaben, denn man wird freiwillig nur dann von
                       den blicherweise verwendeten Paragraphengrenzen
                       (letzte Ziffer 0) abweichen, wenn man dadurch eine
                       Struktur besser betrachten kann. Bei MS-DOS wird
                       diese Ausgabe dann trotzdem unvorteilhaft ausgegeben.
                       Einen Vorteil hat MS-DOS Methode: Die Offsets +0..+F
                       in einer Dump-Zeile entsprechen immer der letzten
                       Ziffer des Gesamt-Offsets, bei dem man mit dem Dump
                       begonnen hat. Bei Novells DEBUG kann sich dies
                       verschieben. Mchte man eine Ausgabe im Stil von
                       MS-DOS, sollte man also darauf achten, da die
                       Adreangabe eine 0 in der letzten Stelle hat.


    -E [address [data]]

                       'Enter' - Im /X-Modus existieren die folgenden
                       erweiterten Modi (fr die normale Bedeutung von
                       -EB ohne /X mu man B nach einem Leerfeld angeben,
                       fr -EA, -EC..-EF ist dies nicht notwendig.):

                       -EB [address [data]]    Enter BYTE
                       -EW [address [data]]    Enter WORD
                       -ED [address [data]]    Enter DWORD

                       Auerdem kann man (wie bei MS-DOS DEBUG) im Enter-
                       Eingabemodus mit der Minustaste jeweils einen
                       Eintrag zurckgehen.

                       SID gab eine Fehlermeldung aus, wenn z.B. wegen
                       fehlerhaftem RAM die Daten nicht korrekt geschrieben
                       werden konnten. Dies ist im Gegensatz zu MS-DOS DEBUG
                       mit Novells DEBUG nicht mehr der Fall.


    -F range data      'Fill' ist im DOSBOOK dokumentiert.
                       Im /X-Modus gibt es allerdings noch eine weitere
                       undokumentierte Syntax, die analog arbeitet, jedoch
                       16 Bit breit ist:

                       -FW range data

                       Dieser Befehl war auch schon bei SID vorhanden.
                       Eine interessante Eigenschaft von SID bietet
                       Novells DEBUG nicht mehr: SID gab eine Fehler-
                       meldung aus, wenn die geschriebenen Daten nicht
                       wieder gelesen werden konnten, z.B. weil sich
                       kein RAM an der Zieladresse befand.


    -G [=address] [breakpoint]

                       'Go' ist im DOSBOOK dokumentiert.
                       Nach der Ausfhrung eines Programms wird angezeigt,
                       auf welche Art und Weise das Programm beendet wurde,
                       z.B. normaler Abbruch oder als TSR. Auerdem wird
                       der Fehlercode angegeben (siehe Kapitel II.11.).
                       Bei MS-DOS DEBUG lassen sich 10 Breakpoints angeben,
                       hier sind es maximal 3 Stck.
                       Diese Breakpoints werden mit INT03h-Opcodes gesetzt.
                       Wenn eine solche Stelle erreicht wird, wird der
                       Original-Opcode wieder eingesetzt. Wenn das Programm
                       aber beendet wird, ohne die Breakpoints erreicht zu
                       haben, sind die Breakpoints immer noch vorhanden.
                       Daher sollte die Datei nicht abgespeichert werden
                       und ggf. neu geladen werden. Diese Verhalten
                       unterscheidet sich allerdings nicht von MS-DOS
                       DEBUG. Auf dem Anwenderstack werden brigens 6 Bytes
                       belegt, da die Ausfhrung des Go-Befehls mit einer
                       IRET-Anweisung arbeitet.
                       'Go' arbeitet mit der nchsten Anweisung nach
                       einem Haltepunkt weiter, wenn er erreicht wurde.
                       'Go' stoppt nicht nur bei den temporren Halte-
                       punkten, sondern auch bei Haltepunkten, die per-
                       manent im Code vorhanden sind (d.h. eingebaute
                       INT03h-Opcodes). Hier wird natrlich kein Opcode
                       ersetzt.


    -H value1 [value2]

                       'Hex' ist teilweise im DOSBOOK dokumentiert.
                       Diese Funktion stellt praktische Rechenoperationen
                       im Hex-System zur Verfgung. Die zwei angegebenen
                       Argumente werden der Einfachheit halber in allen
                       vier Grundrechenarten miteinander verknpft und
                       das Ergebnis aller vier Berechnungen in einer Zeile
                       angezeigt (jeweils eingeleitet von der zugehrigen
                       Operation).
                       Bei der Division wird auch der Rest angegeben.
                       (Bei MS-DOS DEBUG wird nur Addition und Subtraktion
                       ausgefhrt).

                       Neben dieser offiziellen Variante gibt es noch eine
                       weitere Funktion. Gibt man nur einen Parameter an,
                       so ist verstndlicherweise eine Verknpfung mit
                       einem anderen Wert nicht mglich. Stattdessen wird
                       der angegebene Wert im Hexadezimalsystem, im Dezimal-
                       system und - falls darstellbar - als ASCII-Zeichen
                       ausgegeben. (Diese Funktion war bereits bei SID in
                       voller Blte vorhanden.)

                       Besonders flexibel ist dieses Kommando, wenn man
                       wei, da man nahezu beliebige Ausdrcke fr value1
                       und value2 verwenden kann, z.B. Rechenoperationen
                       oder Buchstaben, mehr dazu siehe unten.


    -I port            'Input' ist teilweise im DOSBOOK dokumentiert.

                       Ab Update 13 (DEBUG 1.42) arbeiten die folgenden
                       Erweiterungen nun korrekt. Es werden jetzt auch
                       Ports oberhalb 400h untersttzt, da neuere Systeme
                       auch diese Adressen nutzen.

                       Im /X-Modus gibt es auerdem noch die Kommandos

                       -IB port                Input BYTE
                       -IW port                Input WORD
                       -ID port                Input DWORD (ab 386ern,
                                               ergibt auf 286ern eine
                                               Syntax-Fehler)

                       Das Kommando -I bleibt dabei aber immer in der BYTE
                       Einstellung, egal was man vorher fr Kommandos ver-
                       wendet hat.

                       Die syntaktischen Varianten

                       --I port
                       --IB port
                       --IW port
                       --ID port               (ab 386ern, ergibt auf
                                               286ern einen Syntax-Fehler)

                       bewirken augenscheinlich das Gleiche wie ohne die
                       Angabe eines fhrenden Bindestrichs.

                       Achtung: -IB im /S-Modus liest den Port 0Bh als
                       Byte ein. Ein Leerfeld ist nicht notwendig.
                       -IB erfordert im /X-Modus einen weiteren Parameter,
                       dieser wird dann byte-weise eingelesen.


    -L [address]
    -L address drive start count

                       'Load' ist im DOSBOOK dokumentiert. Soll angeblich
                       auch .HEX-Hexadezimal-Dateien direkt laden knnen
                       (mit dem dafr blichen Intel-Hex-Format konnte
                       ich das jedoch bisher nicht nachvollziehen). Beim
                       Laden einer .EXE-Datei wird der Dateikopf direkt
                       ausgewertet und ist nicht mehr verfgbar. Wenn man
                       den .EXE-Header anschauen mchte, mu man die Datei
                       vor dem Laden umbenennen, so da sie als Binrdatei
                       geladen wird (siehe -N). Andere Dateien werden als
                       binre Dateien geladen.
                       Die optionale Angabe -L address ldt die (binre)
                       Datei an die entsprechende Adresse, wodurch speziell
                       auf bestimmte Adrelagen zugeschnittener Code
                       ausfhrbar wird. Auerdem ist es mglich, auf diese
                       Weise mehrere Programme gleichzeitig in den
                       Speicher zu laden (wenn man als Startpunkt des
                       jeweils nchsten Programms das Ende des vorherigen
                       angibt - den Registern zu entnehmen) und diese dann
                       gemeinsam in einer Datei abzuspeichern.

                       Bei SID war fr Sektor start auch die Angabe eines
                       32Bit-Wertes mglich. Es ist wahrscheinlich, da
                       dies auch fr Novells DEBUG gilt. Die Syntax fr
                       Sektor wre dann nnnn:nnnn, d.h. 0003:FFFF fr
                       Sektor 3FFFF.

                       Falls mit -N spezifiziert, ldt dieser Befehl auch
                       die Symbolinformationen aus einer Datei .SYM.


    -M range address   'Move' ist im DOSBOOK dokumentiert.
                       Im Gegensatz zu SID versucht DEBUG, da die Speicher-
                       bereiche nicht berschrieben werden, auch wenn sie
                       sich berlappen.


    -N [drive:][path]file

                       'Name' ist teilweise im DOSBOOK dokumentiert. Benennt
                       einen Dateinamen fr die Dateioperationen 'Load' und
                       'Write' (-L und -W).
                       Undokumentiert ist dabei die spezielle Syntax

                       -N?

                       die Informationen ber den eingestellten Namen der
                       Programm- und/oder Symboldatei sowie - falls
                       bereits geladen - ber den Dateityp (binr/.EXE)
                       ausgibt. Auerdem werden evtl. angegebene Parameter
                       fr das Programm angezeigt.

                       DEBUG unterscheidet den Dateityp nicht allein
                       anhand der Dateiendung, sondern auch anhand des
                       Headers. So kommt es, da eine .EXE-Datei, die
                       die Dateiendung .COM hat, trotzdem als .EXE
                       interpretiert wird und dementsprechend spter
                       auch nicht wieder mit -W zurckgeschrieben werden
                       kann. Mchte man also eine .EXE-Datei - etwa nach
                       einem Patch - wieder zurckschreiben, mu man
                       vorher die Dateiendung auf eine nicht ausfhrbare
                       Endung ndern (REN TEST.EXE TEST.BIN). Solche
                       Dateien werden dann trotz .EXE-Headers nicht als
                       .EXE-Dateien interpretiert sondern ab Offset 0000h
                       geladen. Dateien vom .COM-Typ werden wie blich an
                       Offset 0100h geladen (dabei ist - wie gesagt -
                       die Dateiendung .COM nicht allein ausschlaggebend).

                       Auerdem kann man nach dem Dateinamen auch noch die
                       zu dem Programm gehrigen Aufrufparameter angeben,
                       etwa:

                       -N TEST.COM /parameter

                       Nachdem eine ausfhrbare Datei mit -L geladen
                       wurde, kann man mit diesem Befehl ohne Angabe des
                       Programmnamens neue Programmparameter angeben:

                       -N /parameter

                       Dabei werden alle Zeichenketten akzeptiert; insofern
                       kann es Probleme bereiten, wenn Sie einen neuen
                       Programmnamen spezifizieren wollen. Im Zweifelsfall
                       sollten Sie DEBUG einfach kurz beenden und neu
                       starten.

                       Es gibt noch eine weitere Syntax fr die Angabe
                       einer Symboldatei .SYM (die runden Klammern sind
                       hier syntaktisches Merkmal):

                       -N prgfile (symfile) parameter

                       Die Angabe von Parametern ist optional.
                       Eine Programmdatei kann weiterhin angegeben werden,
                       Parameter sind allerdings anscheinend nicht mglich.

                       -N()

                       Lscht den Namen der Symboldatei.

                       Im /X-Modus lscht das folgende Kommando
                       alle Eintrge:

                       --N


    -O port, value     'Output' ist teilweise im DOSBOOK dokumentiert.

                       Ab Update 13 (DEBUG 1.42) arbeiten die folgenden
                       Erweiterungen nun korrekt. Es werden jetzt auch
                       Ports oberhalb 400h untersttzt, da neuere Systeme
                       auch diese Adressen nutzen.

                       Im /X-Modus gibt es auerdem noch die Kommandos

                       -OB port, value         Output BYTE
                       -OW port, value         Output WORD
                       -OD port, value         Output DWORD (ab 386ern)

                       Das Kommando -O bleibt dabei aber immer in der BYTE
                       Einstellung, egal was man vorher fr Kommandos ver-
                       wendet hat.

                       Die Varianten

                       --O port, value
                       --OB port, value
                       --OW port, value
                       --OD port, value (ab 386ern)

                       arbeiten anscheinend genauso wie ohne voran-
                       gestellten Bindestrich.

                       Achtung: -OB schreibt im /S-Modus den Port 0Bh als
                       Byte (Ein Leerfeld ist nicht notwendig). -OB im /X
                       Modus erfordert einen weiteren Parameter (also ins-
                       gesamt zwei), dieser wird dann byteweise geschrieben.


    -P [=address] [count]

                       'Proceed' ist teilweise im DOSBOOK dokumentiert.
                       Neben der normalen Funktion gibt es noch eine un-
                       dokumentierte Variante.

                       -PU
                       -PU [=address] [count]

                       Hierbei wird die Ausgabe der Registerwerte und
                       Ansprungpunkte mit Zhlern grer als 1 unter-
                       drckt (vgl. -TU). Lt man die Parameter weg,
                       wird ein einzelnes 'Proceed' ohne Ausgabe aus-
                       gefhrt.
                       'Proceed' arbeitet sehr hnlich wie 'Trace',
                       allerdings werden auch CALLs, INTs und REP, REPcond
                       als einzelne Anweisungen behandelt und nicht in
                       sie hinein getract (Ist man mit 'Trace' innerhalb
                       einer REP oder REPcond Anweisung, kann man mit
                       'Proceed' sofort bis zu ihrem Ende weiterarbeiten).
                       Wenn eine einzelne Anweisung getract wird, werden
                       fr die Ablaufdauer die Interrupts gesperrt, damit
                       man nicht versehentlich in einen auftretenden
                       Interrupt hineintract.
                       Ein echter INT03h im Code kann derzeit (Update 15)
                       weder mit 'Proceed' noch mit 'Trace' bersprungen
                       werden und mu manuell durch Patchen des Codes
                       (Option -E) mit NOP (Opcode 90h) berschrieben
                       werden, damit man weitertracen kann.

                       Im /X-Modus wird auch die Syntax mit vorangestelltem
                       Bindestrich akzeptiert.

                       --P  [=address] [count]
                       --PU [=address] [count]

                       Ob sich dabei allerdings etwas gegenber der
                       normalen Ausfhrung ndert ist noch unbekannt.


    -Q                 'Quit' ist im DOSBOOK dokumentiert.


    -R [regname]       'Register' ist zu einem geringen Teil im DOSBOOK
                       dokumentiert. Anzeige und Eingabe von Register-
                       werten. Zeigt auch die Registerwerte bei den Halte-
                       punkten an. Im /X-Modus ndert sich die Anzeige der
                       Register.

                       -RF   die Flags werden ausgegeben (die Angabe unter-
                             scheidet sich im /S-Modus von der im /X-Modus).

                       -R=16 schaltet die Registerausgabe in den 16Bit-
                             Modus. (--R=16 bewirkt das Gleiche)

                       -R=32 schaltet die Registerausgabe in den 32Bit-
                             Modus. (--R=32 bewirkt das Gleiche)
                             (erst ab 386ern)

                       -R=   zeigt den jeweils eingestellten Modus
                             (16 Bit/32 Bit) an (--R= bewirkt das Gleiche).

                       Folgende Registerbezeichnungen sind zulssig (je nach
                       Prozessortyp sind nicht alle Bezeichnungen gltig):

                       AL    AH     AX     EAX         CR0?  TR3?
                       BL    BH     BX     EBX         CR1?  TR4?
                       CL    CH     CX     ECX         CR2?  TR5?
                       DL    DH     DX     EDX         CR3?  TR6?
                                    SI     ESI         CR4?  TR7?
                                    DI     EDI
                                    ES                 DR0?
                                    DS                 DR1?
                                    SS                 DR2?
                                    CS                 DR3?
                                    FS
                                    GS                 DR6?
                                    SP     ESP         DR7?
                                    BP     EBP
                                    IP (=PC)
                                    F

                       (PC als Alias fr IP wird nur von MS-DOS DEBUG,
                       nicht jedoch von Novells DEBUG akzeptiert. Die
                       Bezeichnungen CRx, DRx und TRx sind intern codiert,
                       ich konnte sie allerdings bisher noch nicht mit
                       DEBUG auslesen.)

                       Folgende Flag-Bezeichnungen sind erlaubt:

                                        Set:   Clear:

                       Overflow          OV      NV
                       Direction         DN      UP
                       Interrupt         EI      DI
                       Sign              NG      PL
                       Zero              ZR      NZ
                       Auxillary Carry   AC      NA
                       Parity            PE      PO
                       Carry             CY      NC

                       Bezglich der Syntax zur Eingabe von Registerwerten
                       und Flags siehe DOSBOOK (auch erweiterte 386er-
                       Register knnen direkt angegeben und verndert
                       werden, natrlich nur, wenn sie auch vorhanden sind).


    -S range data      'Search' ist im DOSBOOK dokumentiert.


    -T [=address] [count]

                       'Trace' ist teilweise im DOSBOOK dokumentiert.
                       Neben den blichen Mglichkeiten zum Tracen wird
                       das Kommando hier sogar symbolisch behandelt, d.h.
                       es werden nicht nur die jeweiligen Register ange-
                       zeigt, sondern auch, ob Sprnge, Schleifen etc.
                       erfllte Bedingungen haben oder Flaggen effektiv
                       gesetzt wurden (JUMP, NO JUMP, LOOP, NO LOOP, INT,
                       NO INT, SET 0, SET 1) und die Inhalte der effektiv
                       adressierten Speicherstellen werden auch ausgegeben
                       (so da man sich ein Speicher-Dump meist sparen
                       kann). Diese in Klammern angegebenen Angaben sind
                       das Ergebnis des Calls und Erleichtern das Ver-
                       stndnis dessen, was beim Weiter-Tracen als Nchstes
                       passieren wird. Die Ausgabe von Speicherinhalten
                       bezieht sich auf den Inhalt der Speicherstelle
                       *vor* der Ausfhrung der gerade angegebenen An-
                       weisung (die diesen Wert ja verndern kann).
                       Auch symbolische Bezge zu den meisten DOS, NetWare,
                       GEM APIs und BIOS Interrupts, einigen FarCalls sowie
                       auf PC-Hardware (IO-Bereich) werden aufgelst und in
                       ihrer Bedeutung angezeigt (Bsp: DOS: Get Int Vector).
                       Dadurch bekommt man einen sehr guten berblick ber
                       den Ablauf eines Programms, auch ohne, da man jede
                       einzelne Interrupt-Funktion in der Literatur nach-
                       schauen mu. 'Trace' kann auch ROM-Code tracen.

                       Trace arbeitet normalerweise als Single-Step,
                       allerdings gibt es einige wenige Ausnahmen:
                       DOS Interrupts werden nicht getract, sondern wie mit
                       Proceed bersprungen (dies mu so sein, da DOS nicht
                       reenterant ist).
                       DEBUG von MS-DOS fngt diese Gefahrenquelle aller-
                       dings nicht ab und 'erlaubt' damit auch das Tracen
                       in DOS-Interrupts hinein (was manchmal ganz inter-
                       essant sein kann), auf die Gefahr hin, da man eine
                       nicht reenterante Funktion tract, was meist zum
                       Absturz fhrt. Sollten Sie diese Trace-Mglichkeit
                       wirklich bentigen, knnen Sie auch MS-DOS' DEBUG
                       unter Novell DOS laufen lassen, eine korrekt 'ge-
                       trkte' DOS-Version mittels SETVER vorausgesetzt.

                       Bestimmte Assembleranweisungen sperren die Interrupts
                       (einschlielich des Single-Step-Interrupts) direkt
                       nachdem mit MOV oder POP Segmentregister geladen
                       wurden. Eine solche Anweisungsfolge wird (und mu)
                       als ein Programmschritt behandelt werden.

                       Der folgende Hinweis beziehen sich auf MS-DOS DEBUG,
                       drften aber fr Novells Gegenstck genauso gelten:
                       Das Programm sollte die Interrupt-Maske des
                       Interrupt-Controllers nicht verndern, da beim
                       Tracen vor der Ausfhrung eines Befehls alle
                       Hardware-Interrupts gesperrt werden. Wird dies
                       nicht befolgt, kann es zu unvorhergesehenem
                       Verhalten kommen. Wird ein INT03h im Code verwendet,
                       so wird dieser durch einen Breakpoint ersetzt.

                       Mchte man den Code begutachten, der als nchstes
                       ausgefhrt wird, gengt es, whrend des 'Trace' oder
                       'Proceed' -U ('Unassemble') einzugeben, das so vor-
                       eingestellt ist, da der richtige Code disassembliert
                       wird.

                       Neben der offiziellen Syntax gibt es noch eine
                       undokumentierte Variante, die die sonst bliche
                       Ausgabe nach jedem Schritt unterdrckt:

                       -TU
                       -TU [=address] [count]

                       Vermutlich gilt dies (analog zu SID) auch fr
                       Ansprungpunkte, deren Durchlaufzhler noch grer
                       als 1 ist. Diese werden erst angezeigt, wenn der
                       Zhler 1 erreicht.

                       Im /X-Modus wird auch die Syntax mit

                       --T [=address] [count]
                       --TU [=address] [count]

                       akzeptiert, ob sich hierbei aber etwas gegenber dem
                       normalen Ablauf ndert, ist noch nicht klar.


    -U [range]         'Unassemble' ist im DOSBOOK weitestgehend dokumen-
                       tiert. Allerdings gibt es eine spezielle Syntax,
                       mit der man die Standardlnge von Disassemblier-
                       ausgaben ohne explizite Angaben voreinstellen kann.

                       --U [count]

                       Ohne Angabe von count wird die aktuelle Einstellung
                       (standardmig 12 Befehle) ausgegeben; die Angabe
                       von count verndert diese Einstellung auf die ge-
                       wnschte Anzahl (dies ist vom Prinzip her noch von
                       SID bekannt). Beim Zurckschalten in den /S-Modus
                       bleibt eine evtl. genderte Standardlnge erhalten.


    -W [address]
    -W address drive start count

                       'Write' ist im DOSBOOK dokumentiert. Dieser Befehl
                       kann nur binre Dateien speichern (also .COM-Typ).
                       .EXE- oder .HEX-Dateien lassen sich nicht wieder
                       zurckschreiben (dies gilt auch fr MS-DOS DEBUG).

                       Bei SID war fr Sektor auch die Angabe eines 32Bit-
                       Wertes mglich. Es ist wahrscheinlich, da dies auch
                       fr DEBUG gilt. Die Syntax fr Sektor wre dann
                       nnnn:nnnn, d.h. 0003:FFFF fr Sektor 3FFFF.


    -=                 Definieren und Abfragen von Makros:
    -:
                       -=

                       Gibt eine Liste der derzeit definierten Makros aus.
                       Auf diese Art und Weise lassen sich die Makros ber
                       Ein/Ausgabenumleitungen wohl auch speichern.
                       Zwei Makros sind immer vordefiniert:
                       DRDOS: und DEVICE:
                       Genaueres kann man der Auflistung selbst entnehmen.

                       -=macroname

                       Fhrt ein definiertes Makro aus. Ob dabei noch
                       Parameter bergeben werden knnen, ist noch unklar,
                       scheint aber wahrscheinlich zu sein.

                       -:macroname

                       Makro definieren, ndern oder lschen. Der Prompt
                       wechselt zu :. Jetzt kann man das Makro eingeben.
                       Alle blichen DEBUG-Befehle sind erlaubt, ein-
                       schlielich Makrokommandos, die allerdings nicht
                       sinnvoll einsetzbar sind. Die Abarbeitung von
                       verschachtelten Makros ist nicht mglich.
                       Makronamen knnen auch syntaktische Zeichen und
                       Leerfelder enthalten und werden als Ganzes textuell
                       ausgewertet. Nachdem man alle Zeilen des Makros
                       eingegeben hat, kann man mit dem Gleichheitszeichen
                       ('=') am Prompt ':' die Makroaufzeichnung beenden
                       (das ist auch der Grund, warum verschachtelte Makros
                       nicht mglich sind). Der Prompt wechselt wieder zu
                       '-'. Nun kann man mit -= das Makro in der Auflistung
                       ansehen.
                       Mchte man ein Makro lschen, so reicht es, die
                       Makroaufzeichnung direkt mit '=' wieder zu beenden.

                       Im /X-Modus kann man die Makros auch wieder lschen:

                       --:
                       --:macroname

                       Lscht alle Makros (einschlielich der intern
                       definierten) oder nur das Makro mit dem Namen
                       macroname.
                       Die Syntax --:macroname wird auch untersttzt,
                       arbeitet allerdings genauso wie -:macroname.

                       Die Angabe von symbolischen Parametern ist noch
                       unklar, immerhin werden weitere Parameter aber nicht
                       zurckgewiesen.


    -; comment         Kommentar, wenn in der ersten Spalte geschrieben
                       (ist allerdings im DOSBOOK dokumentiert). Diese
                       Funktion war auch schon bei SID vorhanden.


    -?                 Gibt Hilfeseite aus. (Im /X-Modus --? ebenso.)


    -/X                Schaltet in den erweitertem Modus (/X) oder wieder
    -/S                zurck zur Default-Einstellung (/S).

    Drckt man einfach nur <Return> so wird praktischerweise das letzte
    Kommando (mit Folgewerte) wiederholt (unter MS-DOS DEBUG ist das nicht
    mglich, oder zumindest nicht bei allen Kommandos).


   iv. Weitere Hinweise und spezielle Mglichkeiten:
   -------------------------------------------------

   Schlsselwrter:

    Sollte es Doppeldeutigkeiten bei der Angabe von Mnemos geben, kann man
    mit folgenden Schlsselwrtern fr Klarheit sorgen:

    BYTE WORD DWORD QWORD PWORD FWORD TBYTE NEAR FAR PTR INT

    Die meisten dieser Schlsselwrter drfen mit den ersten beiden
    Buchstaben abgekrzt werden:

    BY WO DW QW PW FW TB NE

    Statt 'BYTE PTR' kann man also 'BY', statt 'WORD PTR' 'WO' schreiben.
    Einige Versionen (1.40 und 1.41) von DEBUG haben allerdings wohl
    Probleme mit den Langformen.


   Prfixe:

    Die drei mglichen Prfixe (LOCK, REP, REPcond und Segment-Overrides)
    eines Ausdrucks mssen whrend des Assemblierens nicht in der gleichen
    Zeile stehen, sondern knnen auf mehrere Zeilen aufgeteilt werden.
    (Das LOCK Prfix kann anscheinend nicht mit einem anderen Prfix
    zusammen in einer Zeile angegeben werden).


   Zahlenangaben:

    Im DOSBOOK gibt es eine wage Beschreibung dessen, welche Ausdrcke
    bei Zahlenangaben erlaubt sind. Es entsteht der Eindruck, da man an
    manchen Stellen im Assembler symbolische Registerwerte verwenden kann
    und da die Kommandozeilen-Syntax sonst recht lax ist (Kommata zwischen
    den Werten sind optional).

    In Wirklichkeit bestehen jedoch sehr viel weiterreichende Mglichkeiten:

    Smtliche Zahlenangaben erfolgen default-mig auf der Basis des
    Hexadezimalsystems. Trotzdem kann man z.B. auch Zahlen im Dezimal-
    system angeben, wenn man ein '#' voranstellt oder auch Buchstaben
    verwenden, wenn diese in Hochkommata eingeschlossen werden. Diese
    werden entsprechend dem ASCII-Code automatisch umgewandelt in die
    zugehrigen Hexzahlen.

    Es ist jederzeit erlaubt, die Grundrechenarten '+', '-', '*' und '/'
    zu verwenden (bei SID waren nur '+' und '-' erlaubt), z.B. statt 18
    kann man auch schreiben 10+8 oder 1A-2 oder statt 200 auch 100*2 usw.
    Dies gilt ganz allgemein an jeder Stelle, auch mehrfach in einem
    Ausdruck. Dabei werden in begrenztem Umfang sogar die Prioritten
    von Punkt- vor Strichrechnung beachtet. Allerdings sollte man vor-
    sichtig sein, wenn man mehrere Punktrechnungen aufeinander folgen
    lt: In diesem Fall wird nur die erste Rechnung ausgefhrt und
    alles weitere ignoriert.

    Abhelfen kann man dem durch Angabe von Klammerprchen '(', ')'. Die
    Klammerpaare '[' und ']' haben dagegen eine besondere Bedeutung:
    Sie spezifizieren nicht den Wert, sondern den Inhalt dessen, was durch
    den angegebenen Wert adressiert wird. Jederzeit sind statt direkter
    Zahlenwerte auch Registerbezeichnungen erlaubt (nur 16 Bit breite
    Register), wobei alle Kombinationen untersttzt werden:

    Hier ein paar Beispiele fr das -D Kommando:

    -D (10+5)*2 L 10
    -D SI:DX
    -D [100]
    -D [ES:AX], [ES:AX]+10
    -D SI:100 L 5+3
    -D 5+4:SI L AX
    -D 'A', 'Z'-1
    -D 'A' L 10
    -D #10 L #15

    Leerfelder sind innerhalb eines Ausdrucks i. allg. nicht erlaubt.

    Die Angabe von Bereichen kann auf zweierlei Art und Weise erfolgen:
    Entweder man gibt den Startpunkt und Endpunkt an, oder man gibt den
    Startpunkt und nach dem Buchstaben 'L' die Anzahl an. Gibt man keine
    Anzahl an, wird die Default-Anzahl verwendet. Gibt man berhaupt nichts
    an, so wird die Bearbeitung mit der letzten Einstellung fortgesetzt.


   Es mu definitiv Mglichkeiten geben, Makro- und Symboldateien zu laden:

    Die Aufruf-Syntax

     DEBUG =macrofile

    scheint eine Makrodatei als Eingabe zu erwarten.

    Wahrscheinlich gibt es auch eine Mglichkeit Symbole innerhalb des
    Debuggers zu definieren und wieder abzuspeichern (evtl. mit '(', ')').
    Leider habe ich bisher noch nicht genau herausfinden knnen, wie dies
    vonstatten gehen knnte.
    Insbesondere das Datenformat der Symboldateien ist noch vllig unklar,
    es scheint aber Hexzahlen zu enthalten, auerdem die Schlsselworte
    LABELS, VARIABLES, NUMBERS, evtl. noch VECTORS (bei SID auch noch CODE,
    DATA, EXTRA, STACK, X1, X2, X3, X4).

    Es gibt zwei sinnvolle Mglichkeiten:

    - Das Format knnte auf dem Format von alten CP/M-Assemblern basieren,
      die .SYM-Dateien erzeugt haben:
      Allerdings haben Versuche mit einigen alten Original-CP/M .SYM-
      Dateien bisher weder mit SID noch mit Novells DEBUG zum Erfolg
      gefhrt: SID hat jedoch nach dem Laden (und einer Fehlermeldung)
      versucht, die Symbole whrend des Disassemblierens und in der -H
      Auflistung (ohne Parameter) anzuzeigen; DEBUG hat sein Verhalten
      in keiner Weise gendert, was aber auch daran liegen kann, da
      eben das Format fehlerhaft war, und SID dies nur nicht abfing.

    - Die andere Mglichkeit besteht darin, da das Format von Microsofts
      SYMDEB bernommen wurde. Diese Dateien konnte man aus den .MAP-Dateien
      des Linkers mit Hilfe des Utility MAPSYM (bei Microsoft) oder TMAPSYM
      (bei Borland) in .SYM-Dateien konvertieren. Es sieht aber nach einigen
      Tests wohl so aus, als wenn zumindest Borlands .SYM-Format von SID und
      Novells DEBUG nichts akzeptiert wird. (Der Nachfolger von SYMDEB,
      CodeView CV, scheint einen anderen Weg zu gehen: Hier werden mit der
      Option MASM /ZD und LINK /CO Symbolinformationen direkt in die .OBJ-
      und .EXE-Dateien eingebunden.

    DEBUG versucht Begriffe als Symbole zu interpretieren, wenn diese u.a.
    mit einem Punkt oder einem @ beginnen (z.B. -D.P, wobei das -D hier fr
    den Dump-Befehl steht). Nheres ist noch unklar, dies deutet aber auf
    eine Verwandtschaft mit dem ZAP-Patch-Utility von Multiuser DOS hin.

    Vielleicht kennt ja jemand anders des Rtsels Lsung und kann mir dies
    mitteilen (schlielich wre doch gerade das symbolische Debuggen eigener
    Programme uerst interessant)...


   Remote-Debugging:

    Auerdem enthlt Novells DEBUG eindeutig Untersttzung zum Remote-
    Debuggen ber eine der seriellen Schnittstellen COM1: bis COM4:, d.h.
    die Steuereingaben des Debuggers kommen nicht von der lokalen Tastatur,
    sondern von einem Terminalprogramm auf einem entfernten Rechner, der
    ber eine serielle Schnittstelle an den Debug-Rechner angeschlossen
    ist (9600 Baud, 8 Daten-Bit, 1 Stopp-Bit, keine Paritt). Dabei wird in
    irgendeiner Weise eine Syntax wie ':x' mit x=1..4 ausgewertet, und im
    Zweifelsfall die Schnittstelle bei 3F8h gewhlt. Leider ist es mir
    bisher noch nicht gelungen, herauszufinden, wie dieser Modus aktiviert
    wird...

                                                                             
  ---------------------------------------------------------------------------

  II.6. STACKER beim Booten nicht laden:
  ======================================

   Stichworte: STACKER, Booten, <Ctrl>+<Alt>

   Um zu verhindern, da trotz eingerichteten STACKER-Laufwerken beim Booten
   die entsprechenden Treiber geladen werden, mu man am Anfang des Bootens
   die Tasten <Ctrl>+<Alt> gedrckt halten, bis DOS bootet.

   Hchstwahrscheinlich kann man auch <Ctrl>+<F5> und <Ctrl>+<F8> benutzen,
   um das Laden von STACKER zu bergehen, jedenfalls besitzt IBMBIO.COM
   die entsprechende Funktionalitt, siehe Kapitel II.2.

                                                                             
  ---------------------------------------------------------------------------

  II.7. STACKER auf Version 4 updaten: [97-02-28]
  ===============================================

   Stichworte: STACKER Update, CHKDSK, INSTALL/SETUP

   Novell DOS 7 liegt eine angepate STACKER-Version 3.12 bei (die nicht
   unter anderen Betriebssystemen verwendet werden sollte). Zu den beson-
   deren Fhigkeiten gehrt die Untersttzung von DPMS und in Verbindung
   mit NetWare- oder PNW-Servern, die ebenfalls STACKER-komprimierte Lauf-
   werke haben, sogar der Austausch der komprimierten Daten ber das Netz.
   Dadurch entfllt weitestgehend das zeitaufwendige Entpacken der Daten
   auf dem einen und Neupacken der Daten auf dem anderen Rechner und
   zustzlich wird die effektive Netzbelastung durch die kleineren Pakete
   reduziert. STACKER untersttzt auch MS Windows' permanente Auslagerungs-
   dateien, allerdings ist dies verstndlicherweise in den meisten Fllen
   mit starken Performance-Einbrchen verbunden (ausgenommen sehr langsame
   Festplatten auf relativ schnellen Rechnern).

   Wer (trotzdem) auf das eigenstndige Produkt STACKER Version 4 updaten
   will (etwa weil er MS Windows95 installieren will), mu sich - sofern
   er auch weiterhin Novell DOS 7 benutzen will - unbedingt ein aktuelles
   Update zu Novell DOS 7 besorgen, da u.a. CHKDSK berarbeitet wurde, um
   mit STACKER 4 zurechtzukommen (indem die STACKER-berprfung mit einer
   neuen Option umgangen werden kann). Auch die Installationsprogramme
   INSTALL/SETUP (nur bei Update 11) sind berarbeitet und sollen daher
   mit bereits installiertem STACKER 4 zurechtkommen. Inwieweit die
   speziellen Novell DOS Anpassungen auch in STACKER 4 wiederzufinden
   sind, bzw. umgekehrt, inwieweit es wirklich gefhrlich ist, Novells
   STACKER-Version unter anderen Betriebssystemen zu verwenden, ist mir
   leider unbekannt (gerchteweise soll es - zumindest partiell -
   funktionieren). Zumindest DPMS wird auch von STACKER 4 untersttzt.

   Um Doppeldeutigkeiten und seltsames Systemverhalten zu vermeiden, sollte
   man alle zu STACKER 3.12 gehrenden Dateien aus dem c:\nwdos\ Verzeichnis
   entfernen:

    DCONVERT.COM, DCONVRT2.EXE, SCONVERT.EXE, SCREATE.SYS, SDEFRAG.COM,
    SDEFRAG2.EXE, SCREXEC.EXE, STACFM.DLL, STACFM.HLP, STACHIGH.SYS,
    STACKER.COM, STACKER.EXE, STACLOAD.BIN, UNSTACK.COM, UNSTACK2.EXE,
    WINSWAP2.EXE.

   Noch ein Hinweis am Rande:
   Derzeit (Update 15) untersttzt der Kernel von Novell DOS 7 bezglich der
   Preload-Schnittstelle wohl nur STACKER.BIN bzw. DBLSPACE.BIN und nicht
   das mit MS-DOS 6.22 eingefhrte DRVSPACE.BIN. Da sich DRVSPACE und das
   vorherige DBLSPACE aber so gut wie gar nicht unterscheiden (die grten
   Unterschiede bestehen in den Meldungen...), sollte Novell DOS 7 auch
   problemlos mit DRVSPACE zurechtkommen, nachdem man den Novell DOS Kernel
   so gepatcht hat, da er nach DRVSPACE.BIN statt nach DBLSPACE.BIN sucht.

                                                                             
  ---------------------------------------------------------------------------

  II.8. Rechnerkopplung ber Punkt-zu-Punkt-Verbindungen: [97-02-04]
  ==================================================================

   Stichworte: MS-DOS, INTERLNK, INTERSRV, Datenverluste, FILELINK, Remote,
               TASKMGR, CTTY, FASTLYNX, LAPLINK, NC, IPX, PNW, SERVER,
               virtuelle Maschine, DOS-Box

   Zunchst ein kurzer berblick ber die mglichen Transfer-Arten der
   bekanntesten Programme, die eine Rechnerkopplung ber Punkt-zu-Punkt-
   Verbindungen erlauben:

                               Seriell    Parallel           IPX

    Novell DOS FILELINK          ja          ja              nein
    MS-DOS INTERSRV/INTERLNK     ja          ja              nein
    Norton Commander 3.0  [NC]   ja          nein           (nein)
    Norton Commander 4.0+ [NC]   ja          ja             (nein)
    LAPLINK 3.xx [LL]            ja          nein           (nein)
    LAPLINK PRO 4.0 [LLPRO]      ja          ja             (nein)
    FASTLYNX 1.xx [FX]           ja, auto    ja, auto       (nein)
    FASTLYNX 2.0+ [FX]           ja, auto    ja, auto      ja, auto

   Fr serielle Verbindungen werden bliche 3-, 5- oder 7-adrige Nullmodem-
   kabel oder eine Modemverbindung bentigt, mit jeweils unterschiedlicher
   Datensicherheit und maximaler Geschwindigkeit (Maximum ist 110 kBd).

   Fr Verbindungen ber die parallele Schnittstelle wird glcklicherweise
   vom Norton Commander, LAPLINK, FASTLYNX, FILELINK und INTERSRV/INTERLNK
   das gleiche Parallel-Nibble-Transfer-Kabel (oft als 'Laplink'-Kabel
   bezeichnet) bentigt, das mittlerweile auch in PC-Lden zu kaufen ist
   und nicht mehr nach der Programmdokumentation selbstgebastelt werden
   mu (siehe z.B. im DOSBOOK bei FILELINK).
   Die bertragungsrate hngt von der Rechnergeschwindigkeit und der Aus-
   legung des Ports ab, ist normalerweise aber mindestens einer seriellen
   Verbindung mit 110 kBd ebenbrtig, mit starker Tendenz nach oben (bis
   ca. 1 MByte/s). Eventuell wird mit Druckerports von uralten Original-PCs
   (1. Serie) sowie mit modernen ECP/EPP-Ports auch ein bidirektionaler
   Transfer ermglicht, wofr aber ein anderes Kabel notwendig wre (mangels
   zweier solcher Schnittstellen habe ich das noch nicht berprfen knnen).

   Interessant ist, da FASTLYNX 2.0+ sogar Verbindungen durch ein auf
   den zugehrigen Rechnern geladenes IPX tunneln kann (wie heutige, hier
   nicht verzeichnete Versionen von LAPLINK auch). Dafr mssen lediglich
   die Netztreiber der IPX-Schicht (bei Personal NetWare also der Hardware-
   Treiber wie NE2000.COM sowie LSL.COM und IPXODI.COM) geladen sein,
   SERVER.EXE oder VLM.EXE sind nicht notwendig! Manchmal reichen die
   Mglichkeiten einer Punkt-zu-Punkt-Verbindung ja durchaus aus und die
   komplette Netzankopplung eines Rechners wird gar nicht bentigt. In
   diesem Fall kann man sich so das Laden der restlichen Client- (VLM.EXE
   oder NETX.EXE) oder Server-Software (SERVER.EXE) sparen und so wertvollen
   Speicherplatz gewinnen.
   Diese Methode hat auch den Vorteil, da zwischen den beiden Rechnern
   keine 1:1-Verkabelung bestehen mu; ein installiertes Ethernet tut's
   auch. FASTLYNX fragt in diesem Fall nach, welchen Rechner es als
   Gegenstelle annehmen soll. Da VLM.EXE (und SERVER.EXE) nicht geladen
   werden mu, funktioniert eine solche Verbindung (bei geeigneter Ein-
   stellung) sogar dann, wenn man die IPX-Treiber unter dem multitaskenden
   TASKMGR nur innerhalb eines Tasks ldt! In den anderen Tasks hat man
   dann zwar keine IPX-Verbindung, dafr aber mehr Speicherplatz zur
   Verfgung...

    Ein interessanter Einschub fr PNW:

     Ja, das geht wirklich! - Wrde man fr eine vollstndige Netzankopplung
     hingegen auch VLM.EXE (und SERVER.EXE) laden wollen, so mte dies vor
     dem Start des TASKMGR geschehen, oder - mit Einschrnkungen - in einer
     DOS-Box einer unter Novell DOS 7 laufenden Windows 3.1x Session im
     Erweiterten 386er-Modus. Im ersteren Fall htten dann spter alle Tasks
     entsprechend viel Speicher weniger, im zweiten Fall stehen nicht alle
     Mglichkeiten (NMR.VLM, FIO.VLM) zur Verfgung und SERVER.EXE kann DPMS
     nicht nutzen (Verlust ca. 28 KByte), wodurch zumindest dieser Task nur
     noch sehr wenig freien Speicher brig liee. Umgekehrt knnte man
     natrlich in unterschiedlichen Tasks auch unabhngig voneinander fr
     unterschiedliche Netzadapterkarten gleichzeitig IPX-Stacks aufbauen.
     Aber bitte nicht in mehreren Tasks die Treiber fr die gleiche Netz-
     adapterkarte laden oder Benutzerdaten ndern, denn aufgrund mangelnder
     Kommunikation zwischen den virtuellen Maschinen wrde das zum Daten-
     chaos fhren (Windows fngt das aber blicherweise auch ab)...
     (unbedingt: siehe Kapitel VI.2.)

   blicherweise sind ber die Netzverbindung noch grere Transferraten
   erzielbar als ber parallele Verbindungen, d.h. theoretisch bis hin zu
   maximal 10MBit/s.

   Das Programm INTERSRV von MS-DOS soll vllig inkompatibel zu Novell DOS 7
   sein und schwere Datenverluste auf der Festplatte verursachen (nicht
   berprft ;-) ). Das Gegenstck INTERLNK kann aber problemlos unter
   Novell DOS 7 ausgefhrt werden, so da man trotzdem die Verbindung zu
   einem MS-DOS System aufnehmen kann.

   Stabilen Ersatz liefert Novell selbst in Form des recht komfortablen
   Programms FILELINK mit (das in weniger leistungsfhiger Version auch
   schon bei DR DOS 6.0 beilag).

   Fr viele ist jedoch die in den Norton Commander (NC) integrierte
   Link-Funktion die einfachste Alternative zu letzten beiden Programmen,
   weil man sich nicht an eine andere Umgebung gewhnen mu und (fast)
   alles genauso funktioniert, als wenn man zwischen zwei Verzeichnissen
   des gleichen Rechners Dateien hin und her kopiert.

   Lediglich die bei MS-DOS INTERSRV/INTERLNK gegebene Mglichkeit
   der Ausfhrung von Kommandos auf dem Fremdrechner bietet FILELINK
   nicht, aber dafr gibt es sowieso wesentlich bessere Alternativen
   wie etwa obiges FASTLYNX (FX). (Die mir bekannten, lteren und
   ehemals standardsetzenden Versionen von LAPLINK knnen weder von
   der Funktionalitt, noch von der Flexibilitt mit FASTLYNX oder
   auch nur dem NC konkurrieren.)

   Wenn auch etwas bodenstndiger, dafr aber auch flexibler, braucht
   man auch unter ausschlielicher Verwendung von Novell DOS 7 Bord-
   mitteln nicht auf eine Mglichkeit zur Fernsteuerung verzichten:

   Die diesbezglich Alternative ist eine Terminal-Emulation (etwa
   CTTY COM1:), die bei Novell DOS 7 natrlich besonders in Verbindung
   mit dem TASKMGR Sinn ergibt. Dieselbe serielle Verbindung kann auf
   beiden Rechnern jedoch nicht gleichzeitig von mehreren Programmen
   benutzt werden. Multitasking-Betrieb mit Zugriff auf die gleiche
   Schnittstelle ist daher nicht angebracht. Stehen mehrere serielle
   Kanle zur Verfgung, ist das Ganze jedoch kein Problem. Nheres
   hierzu in Kapitel VII.5.

                                                                             
  ---------------------------------------------------------------------------

  II.9. Erweiterte Kommandozeilen-Syntax am Prompt: [97-03-23]
  ============================================================

   Stichworte: Kommandozeile, Prompt, Syntax, COMMAND.COM, 4DOS, Pawrter,
               Listendateien, Dateilisten, Gruppen, UNC

   Obwohl es auch fr Novells COMMAND.COM noch besseren Ersatz gibt (4DOS),
   ist die Syntax der Kommandozeile (auch bei den externen Kommandos) in
   einigen interessanten Punkten erweitert (dies ist zwar teilweise seit
   DR DOS 3.41 dokumentiert, da aber immer noch MS-DOS als 'Standard' gilt,
   weitestgehend unbekannt), siehe auch Kapitel II.11. Auch die meisten
   externen Novell Kommandos erlauben diese Erweiterungen.


   - Pawrter:   Nach der Dateispezifikation kann ein Datei-/Pfadpawort
                  mittels Semikolon angehngt werden (ab DR DOS 3.41):

                   DIR file;password

                  (Achtung: Unter 4DOS mu das Semikolon i. allg. verdoppelt
                  werden! Allerdings kann man dies leider nicht auf alle
                  Befehlen bertragen: Befehle, die keine 4DOS-Include-
                  Listen erlauben (wie MD, CD) und deshalb auch ein ein-
                  faches Semikolon nicht miverstehen wrden, akzeptieren
                  leider auch kein verdoppeltes Semikolon, und das, obwohl
                  ein Semikolon kein gltiges Zeichen fr ein Pawort ist,
                  und daher eigentlich beides zugelassen werden knnte,
                  siehe auch Kapitel II.20.)

                  Mit dieser Syntax werden nicht nur bereits mit PASSWORD
                  gesetzte Pawrter angegeben, sondern es knnen implizit
                  auch neue Pawrter gesetzt werden. Problematisch daran
                  ist, da die Angabe eines Pawortes unter MS-DOS und
                  PC-DOS nicht erlaubt ist. Nheres zu diesem Themenkomplex
                  in Kapitel II.4. unter PASSWORD.

                  Die Angabe eines Pawortes (auch unter 4DOS nur mit einem
                  Semikolon getrennt) ist auch innerhalb der Eingabemasken
                  beliebiger Fremdprogramme mglich und notwendig, falls die
                  jeweiligen Programme mit diesen Dateien trotz gesetzter
                  Pawrter arbeiten sollen). Voraussetzung dafr ist aller-
                  dings, da das Programm das Semikolon und eine mehr als
                  8 Zeichen lange Eingabe in Unkenntnis dieses Novell DOS/
                  DR DOS Features nicht als ungltig zurckweist (wie leider
                  hufig der Fall). Dies funktioniert deshalb, weil die
                  Pawortuntersttzung von DR DOS/Novell DOS direkt im
                  Betriebssystem-Kernel untergebracht und nicht etwa
                  - wie oft vermutet - eine Eigenschaft der jeweiligen
                  Kommandos ist! (Dies bedeutet brigens auch, da auch auf
                  API-Ebene in Dateispezifikationen mit Semikolon getrennte
                  Pawrter angegeben werden knnen.) Natrlich besitzen
                  unabhngig von diesem Sachverhalt die meisten Novell/
                  DR DOS Programme *zustzliche* Sonderbehandlungen fr
                  Pawrter, die den Komfort noch steigern; der grund-
                  stzliche Mechanismus ist jedoch Bestandteil des Kernels
                  und kann daher prinzipiell aus jeder Anwendung heraus
                  verwendet werden (auch wenn diese nicht das geringste
                  von Pawrtern ahnt).

                  Und was machen Sie, wenn sowohl bergeordnete Ver-
                  zeichnisse, als auch die Dateien selbst mit einem
                  (unterschiedlichen) Pawort versehen sind?

                  Wenn Sie sich schon im pawortgeschtzten Verzeichnis
                  befinden, brauchen Sie normalerweise nur das Pawort der
                  Datei angeben, da Sie ber einen relativen Pfad (den Sie
                  sich bereits 'freigeschaltet' haben) auf die Datei zu-
                  greifen. In Ausnahmefllen (z.B. beim Aufruf von Programm-
                  dateien in solchen Verzeichnissen) wird jedoch intern ber
                  den vollen Pfad auf die Datei zugegriffen: In solchen
                  Fllen mte man eigentlich *beide* Pawrter angeben,
                  so als ob Sie sich noch auerhalb des pawortgeschtzten
                  Verzeichnisses befnden. Dies scheint auf den ersten Blick
                  unmglich, d.h. man mte immer erst in das jeweilige
                  Verzeichnis wechseln.
                  Es gibt aber eine vllig undokumentierte Mglichkeit, die
                  leider derzeit nur mit Novells COMMAND.COM funktioniert:

                   c:\testdir            sei pawortgeschtzt mit
                                         Pawort "hello" und
                   c:\testdir\dummy.txt  sei pawortgeschtzt mit
                                         Pawort "world"

                   TYPE c:\testdir;hello\dummy.txt;world    funktioniert!!!

                  Das Prinzip lt sich bei weiter verschachtelten Unter-
                  verzeichnissen auch auf mehr als zwei Pawrter verallge-
                  meinern. Die Angabe mehrerer Pawrter in einer Datei-
                  spezifikation wird von 4DOS 5.51/5.52a (und frher) leider
                  als Fehler zurckgewiesen.
                  Pawortgeschtzte Verzeichnisse stellen unter 4DOS sowieso
                  ein gewisses Problem dar, denn der Novell DOS Kernel will
                  natrlich in einem Fall wie dem obigen beide Pawrter
                  wissen, und da 4DOS intern offenbar immer ber absolute
                  Pfade auf Dateien zugreift, auch dann, wenn man sich
                  bereits im Verzeichnis C:\TESTDIR befindet, trifft diese
                  Situation hier stndig auf...

                  Um aber wenigstens bezglich der anderen Unterschiede
                  in der Pawortbehandlung Kompatibilitt unter 4DOS und
                  Novell DOS bzw. DR DOS COMMAND.COM zu erreichen, sollte
                  man in Batchjobs generell folgenden Trick anwenden:

                   DIR file%;%;password

                  wobei die Umgebungsvariable %;% unter Novell DOS' und
                  DR DOS' COMMAND nicht definiert ist (und mit SET aufgrund
                  ungltiger Syntax auch nicht definiert werden kann; es sei
                  denn auf Seitenwegen ber direkte Manipulation der System-
                  Umgebung), unter 4DOS jedoch ganz normal belegt werden
                  kann. Irgendwo vorher (z.B. in AUTOEXEC.BAT) fgt man dann
                  folgende Zeile in die Batch-Bearbeitung ein:

                   IF "4"=="%@Eval[2 + 2]%" SET ;=;

                  In obigem Beispiel wird nun unter 4DOS die Variable %;%
                  durch ';' ersetzt und das Pawort wird von zwei Semikolon
                  eingeleitet. Unter COMMAND.COM ist die Variable %;% nicht
                  definiert und wird durch eine Null-Zeichenkette ersetzt.
                  Dadurch erscheint nur ein Semikolon in der Kommandozeile.
                  Es ist brigens wichtig, da das erste Semikolon durch %;%
                  ersetzt wird, denn ansonsten mte man vor dem Pawort
                  noch ein fr die Dateibearbeitung nicht akzeptiertes
                  Leerfeld angeben. Dieser Trick kann auch unter der
                  4DOS-Kommandozeile angewendet werden, nicht aber in der
                  COMMAND.COM-Kommandozeile, da hier keine Ersetzung von
                  Umgebungsvariablen stattfindet. Innerhalb von Datei-
                  eingabemasken von Programmen ist diese Angabe ebenfalls
                  nur in den seltensten Fllen erlaubt, da auch hier so
                  gut wie nie Ersetzungen von mit % eingerahmten Variablen
                  stattfinden (Ausnahmen sind aber vorhanden und sollten
                  fr eigene Programme bercksichtigt werden).

                  Ein Problem besteht allerdings immer noch:

                  Batchjobs, in denen entsprechend dieser erweiterten Syntax
                  explizit Pawrter angegeben werden, arbeiten unter
                  Novell DOS/DR DOS als auch unter 4DOS/NDOS, nicht aber
                  unter MS-DOS/PC-DOS.
                  Normalerweise werden hier auch keine Pawrter gesetzt
                  sein, aber es besteht ja die Mglichkeit, da unter
                  Novell DOS Pawrter gesetzt wurden und danach der Rechner
                  unter MS-DOS gebootet wird. Noch komplizierter wird es,
                  da bei aktiviertem Long-Filename-Support mit MS-DOS 7
                  unter MS Windows95 sogar das Semikolon zum gltigen
                  Zeichen einer Dateispezifikation avanchiert.
                  Wenn man Batchjobs schreiben mchte, die auch unter
                  diesen Voraussetzungen noch sauber arbeiten, mu man
                  einen weiteren Trick anwenden, indem man auch die
                  Pawrter nicht direkt, sondern ber Umgebungsvariablen
                  angibt: Diese Umgebungsvariablen drfen dann nur belegt
                  werden, wenn unter Novell DOS/DR DOS gebootet wurde
                  (siehe Kapitel IV.7.).

                  Das folgende Beispiel verdeutlicht dies:

                   ...
                   SET envpassword=
                   IF NOT "NWDOS"=="%Os%" IF NOT "DRDOS"=="%Os%" ...
                                      ... IF NOT "OPENDOS"=="%Os%" GOTO skip
                   IF "4"=="%@Eval[2 + 2]%" SET ;=;
                   SET envpassword=password
                   :skip
                   DIR file%;%;%envpassword%
                   SET envpassword=
                   ...

                  Diese Syntax mu genau eingehalten werden, damit sie unter
                  allen Versionen von COMMAND.COM sowie 4DOS/NDOS arbeitet.
                  Dabei
                  wird die Angabe des Pawortes unter den einzelnen
                  Betriebssystemen recht unterschiedlich ausgewertet,
                  das Resultat ist jedoch immer, da die Funktion bereit-
                  gestellt wird, die jeweils notwendig ist:
                  Unter anderen Systemen als DR DOS und Novell DOS werden
                  die Variablen %envpassword% und %;% nicht belegt, daher
                  wird nur "DIR file" ausgefhrt. Unter DR DOS/Novell DOS
                  COMMAND.COM wird %envpassword% belegt und damit
                  "DIR file;password" ausgefhrt. Luft 4DOS/NDOS unter
                  DR DOS/Novell DOS, so werden beide Variablen belegt, das
                  Ergebnis ist "DIR file;;password".
                  Voraussetzung fr die Funktion dieses Beispiels ist es,
                  da die Variable %Os% auch unter 4DOS/NDOS gesetzt wird,
                  was blicherweise *nicht* der Fall ist (mu z.B. in
                  AUTOEXEC.BAT manuell geschehen, wenn ein DR DOS/Novell DOS
                  Kernel erkannt wurde, siehe Kapitel IV.7.). Wie dies
                  sicher bewerkstelligt werden kann, wird an anderer Stelle
                  in dieser Datei beschrieben.


   - Listendatei: Bei vielen Kommandos kann statt einer direkten Datei-
                  auflistung mit direkt vorangestelltem @ eine Datei
                  angegeben werden, die eine Liste von zu bearbeitenden
                  Dateien enthlt (ab DR DOS 5.0).
                  (Hinweis: Ich unterscheide in diesem Dokument zwischen
                  Listendateien, d.h. Dateien, die eine Liste von Dateien
                  enthalten, und letzten Dateilisten, die eine Liste
                  mehrerer Dateispezifikationen enthalten, siehe unten.)

                  Die Dateien innerhalb der Listendatei knnen selbst auch
                  wieder Wildcards enthalten, wohingegen als Datei-
                  spezifikation fr eine @Listendatei keine Wildcards und
                  damit mehrere Dateien angegeben werden drfen. Auerdem
                  darf eine Listendatei keine Verweise auf weitere Listen-
                  dateien enthalten (sicher, um Rekursionen zu vermeiden);
                  auf diese Weise sind also auch Dateien mit einem '@'
                  als ersten Buchstaben (z.B. alte Backup-Dateien) innerhalb
                  der Listendatei problemlos ansprechbar.
                  Wegen der mglichen Fehlinterpretation als Listendatei ist
                  es sonst notwendig, ein paar Tricks anzuwenden, um eine
                  Datei, die tatschlich mit dem Zeichen '@' beginnt,
                  anzusprechen (siehe auch Kapitel II.20.):

                  - ber relative Pfadangaben, d.h. voranstellen von '.\'
                    oder 'd:' (mit d: als dem aktuellen Laufwerk), z.B.
                    statt "@backup.dat" nun ".\@backup.dat"
                  - ber Wildcards, die nicht mit '@' beginnen (z.B. ist
                    "@*.*" nicht mglich)
                  - (temporres) Umbenennen der Datei (mit REN)
                  - Verwendung eines Ersatz-Kommandos, das keine Listen-
                    dateien untersttzt (z.B. interne Kommandos)

                  Eine Listendatei kann z.B. mit XDIR /B erzeugt werden:

                   XDIR *.txt /B > filelist.lst

                  um dann wie folgt verwendet zu werden:

                   XDIR @filelist.lst

                  In der Digital Research Literatur wird fr Listendateien
                  hufig die Dateiendung .FL (File-List) verwendet (wie
                  gesagt, bitte im Deutschen nicht mit Dateilisten ver-
                  wechseln, die in diesem Dokument meist als mehrfache
                  Dateispezifikationen, manchmal auch als Einschluliste
                  und bei 4DOS auch als 'inclusion list' bezeichnet werden).

                  Normalerweise mu jede Dateispezifikation einer Listen-
                  datei in einer neuen Zeile anfangen. Allerdings ist dies
                  - undokumentiert - nicht notwendigerweise so: Einzelne
                  Dateien knnen auch mit Leerfelder, Tab oder Komma
                  voneinander getrennt werden. Mchten Sie Pawrter in
                  einer solchen Listendatei angeben, so mssen Sie diese
                  wie gewohnt mit Semikolon von der jeweiligen Datei-
                  spezifikation trennen, dazwischen werden keine Leerfelder
                  akzeptiert.

                  Liste der Kommandos, die Listendateien akzeptieren
                  (noch unvollstndig):

                   ATTRIB, FC, FILELINK, FIND, MOVE, PASSWORD, PNUNPACK,
                   REPLACE, STACKER, TOUCH, XCOPY, XDEL, XDIR.

                  (Bei CCI Multiuser DOS 7.22 COMP statt FC, auerdem
                   noch XATTRIB.)

                  Es gibt auch eine Reihe Fremdprogramme, die Listendateien
                  untersttzen, etwa alle Programme von PKWare (PKPAK,
                  PKUNPAK, PKZIP, PKUNZIP, usw.). Einige dieser Fremd-
                  programme erlauben jedoch auch Kommentare in Listen-
                  dateien, die meist einfach mit Semikolon eingeleitet
                  werden (nicht unbedingt am Anfang der Zeile). Hier gibt
                  es u.U. Probleme, wenn DR DOS oder Novell DOS solche
                  Kommentare als Pawrter zu interpretieren versucht.
                  Wenn Sie das Semikolon nur jeweils unmittelbar hinter
                  einer normalen Dateispezifikation verwenden, gibt es
                  zwar keine Syntaxfehler und solange Sie die Listendatei
                  nicht zum Erzeugen oder Verndern von Dateien verwenden
                  auch keine Probleme: Der Kernel interpretiert zwar die
                  Kommentare als Pawrter, was aber solange ohne Folgen
                  bleibt, wie die Datien keinen Pawortschutz besitzen
                  und nicht schreibend auf sie zugegriffen wird (mit
                  XDIR und bedingt XDEL klappt's also prima). Mit XCOPY
                  erhalten die neuen Dateien aber die Kommentare als
                  Pawrter, sicherlich nicht das, was gewnscht wurde...


   - Mehrere Dateispezifikationen in einer Zeile (Dateilisten):

                  hnlich wie bei 4DOS knnen in vielen Fllen (meist bei
                  externen Kommandos, wo die Syntax dabei eindeutig bleibt)
                  direkt mehrere Dateispezifikationen in einer Zeile an-
                  gegeben werden (ab DR DOS 5.0); diese knnen sogar Wild-
                  cards enthalten. Darauf wird in den Hilfebersichten (/?)
                  der entsprechenden Kommandos hingewiesen:

                   XDIR *.TXT *.DOC

                  Anstelle der Dateispezifikationen knnen Sie natrlich
                  auch hier Listendateien angeben, auch mehrere gleich-
                  zeitig. Die einzelnen Spezifikationen mssen bei DR DOS
                  und Novell DOS mit Leerfeldern oder Tabs voneinander
                  getrennt werden, Kommata werden zurckgewiesen, Semikoli
                  als Einleitung fr Pawrter interpetiert. Dies ist
                  wichtig zu wissen, da die unter 4DOS/NDOS blichen
                  Dateilisten (inclusion lists) hier meist ein Komma er-
                  warten (oft reicht aber auch hier ein Leerfeld oder Tab).

                  Die einzelnen Dateien oder Masken werden zusammengefat
                  und gemeinsam bearbeitet (also nicht der Reihe nach ge-
                  trennt bearbeitet). Auf diese Weise wird sichergestellt,
                  da jede Datei auch wirklich nur einmal bearbeitet wird,
                  obwohl sie vielleicht auf mehrere Masken pat. (Achtung:
                  Einige Nach-Implementationen dieser Funktion, etwa in
                  meiner CUI_LIB, bearbeiten die einzelnen Masken der
                  Reihe nach, so da eine Datei u.U. auch mehrfach benutzt
                  wird.)

                  Kommandobersicht, die dies untersttzen
                  (noch unvollstndig):

                   ATTRIB, FIND, PASSWORD, TOUCH, XDEL, XDIR.

                  Die Dateispezifikation bei XDIR darf auch mit doppelten
                  Anfhrungszeichen (") eingerahmt werden (sinnvoll fr
                  Spezialflle, vgl. FIND).


   - Gruppen:     Diese undokumentierte Mglichkeit vieler Kommandos
                  erlaubt die Angabe von Benutzeranmelde (also Account-Name)
                  oder Gruppennamen in der Syntax /U:name (auch schon bei
                  einigen Kommandos von DR DOS 6.0).
                  Bekommt in Verbindung mit Novell DOS/DR DOS Multiuser-
                  Varianten, von denen Novell DOS genauso abstammt wie von
                  DR DOS 6.0, eine Bedeutung, sofern die Systemabsicherung
                  aktiviert ist (die bei DR Multiuser DOS beiliegenden
                  zustzlichen Kommandos kennen jedenfalls auch die Option
                  /U, etwa SHOW oder XATTRIB). Ob die Option auch in Ver-
                  bindung mit NetWare, lokaler Absicherung etc. eine
                  Bedeutung hat, ist eher fraglich, auch wenn es dort auch
                  Gruppen- und Benutzernamen gibt.
                  Die entsprechenden Programme prfen auf Multiuser-Eigen-
                  schaften des Betriebssystems, nicht auf Netzanbindung,
                  siehe auch Kapitel VII.5.

                  Kommandobersicht, die /U:name untersttzen:

                  - Novell DOS 7, OpenDOS, CCI Multiuser DOS 7.22 Gold:

                    ATTRIB, BACKUP, MOVE, TOUCH, TREE, XCOPY, XDEL, XDIR

                  - DR DOS 6.0+, Novell DOS 7, OpenDOS:

                    DELPURGE, UNDELETE

                  - nur Multiuser-Varianten wie CCI Multiuser DOS 7:

                    XATTRIB, SHOW???

                  Falls jemand ein Concurrent DOS oder DR Multiuser DOS
                  besitzt, wre es nett, wenn er mir entsprechende
                  Informationen bermitteln knnte. Denn mit einem
                  kleinen selbstgeschriebenen Treiber liee sich auch
                  fr ein 'normales' Novell DOS eine sinnvolle Funktion
                  fr dieses Feature nachkonstruieren.


   - Optionskombinationen:

                  Statt der blichen Variante, jeden Parameter einzeln
                  mit einem SwitChar einzuleiten, kann man bei den meisten
                  externen (und allen internen) Kommandos Parameter auch
                  zusammenfassen:

                   XDIR *.* /C /L /P /S      ->  XDIR /CLPS

                  Getestet (noch nicht vollstndig): XDIR, XCOPY, XDEL, MOVE

                  Das Kommando ATTRIB erlaubt dies auch fr die '+'/'-'-
                  Optionen.

   - Hilfeparameter:

                  Normalerweise mu ein Hilfeparameter (/? oder /H) der
                  erste Parameter eines Kommandos sein, damit er generell
                  akzeptiert wird (so zum Beispiel bei allen internen
                  Kommandos). Bei den externen Kommandos gilt dies im
                  Prinzip auch, weil es z.B. bei XDIR und XCOPY mit dem
                  /H Parameter zu Doppeldeutigkeiten kommen knnte. Ein
                  hinten angegebenes /H bedeutet dann also nicht /HELP,
                  sondern steht fr die entsprechend zugeordnete Funktion.
                  Nichtsdestotrotz funktioniert /? (meist) auch am Ende
                  einer Befehlszeile, und auch in Optionskombinationen.

                  Ist der SwitChar (siehe Kapitel II.1.) auf '-' statt des
                  blichen '/' verstellt, so bekommen Sie Probleme mit
                  Programmen, die die Angabe von ausschlieenden Datei-
                  attributen ber die Syntax -H erlauben (XDIR), da diese
                  dann als Aufforderung zur Hilfe miverstanden werden.
                  Abhilfe ist nur mglich, indem Sie den SwitChar -
                  zumindest vorbergehend - auf ein anderes Zeichen als
                  '-' (bzw. '+' bei Einschlulisten) einstellen.

                  Achtung: ? ist gleichzeitig auch ein DOS-Wildcard.
                  Achten Sie darauf, da Sie den /? Parameter nicht dort
                  verwenden, wo er als Dateimaske fehlinterpretiert werden
                  knnte (wie dies manchmal am Ende von Optionskombinationen
                  mglich ist).

                  Vielleicht ist es fr Sie bei der automatischen Auswertung
                  von Hilfsschirmen (etwa innerhalb von Batchjobs) von Be-
                  deutung zu wissen, da die Hilfeschirme von DR DOS und
                  Novell DOS 7 ein bestimmtes Format haben:

                  Zunchst folgt eine Zeile mit dem Namen des Kommandos,
                  bei externen Kommandos der Versionsnummer und einer Kurz-
                  beschreibung seiner Funktion, danach folgt bei den ex-
                  ternen Kommandos eine Zeile mit dem Copyright-Hinweis.
                  Nach einer Leerzeile folgt ein Syntax-berblick, eine
                  weitere Leerzeile und danach die Erklrung der einzelnen
                  Parameter. Optional folgt (oder ist vor der Parameter-
                  erklrung eingefgt) eine weitere Leerzeile und zustz-
                  liche Benutzungshinweise und Beispiele.

   Auerdem ist es bei Novell DOS mglich, Pfad- und Dateispezifikationen
   in der normalen 'DOS-Syntax', und auf Netzlaufwerken auch in der
   NetWare-Syntax und UNC-Notation anzugeben, siehe Kapitel VI.10.

   Weitere Hinweise zu COMMAND.COM Interna in der Datei NWDOS7UN.TXT.

                                                                             
  ---------------------------------------------------------------------------

  II.10. Gemischte DOS-Systeme:
  =============================

   Stichworte: DR DOS, MS-DOS, PC-DOS, NWDOS

   Im Gegensatz zur verkrampften Situation bei MS-DOS ist es bei
   Novell DOS (wie schon bei DR DOS) meist mglich, die externen
   Kommandos auch unter anderen DOS-Versionen auszufhren. (Bei MS-DOS
   sind noch nicht einmal die Kommandos von 6.21 unter 6.22
   einsetzbar, von ganz wenigen Ausnahmen, wohl eher Versehen,
   abgesehen.)

   Die Novell DOS Kommandos melden nur dann 'Falsche DOS-Version' oder
   'Falsche Version des Betriebssystems', wenn sie wirklich irgendeine
   interne Funktionalitt des Systems bentigen, die eben nicht
   untersttzt wird. Meist erlauben sie einfach nicht den Zugriff auf
   Optionen, die das jeweilige System nicht untersttzt. Diese
   Austauschmglichkeiten macht sogar vor den Speichermanagern nicht
   halt, die (unter bestimmten Umstnden) miteinander vermischt werden
   knnen. Programme wie TASKMAX bzw. TASKMGR knnen natrlich nicht
   unter anderen Betriebssystemen arbeiten. Da Microsoft hier eine vllig
   andere Taktik verfolgt, sieht man allein schon daran, da man die meisten
   (aber nicht alle) dieser MS-DOS Programme mit SETVER doch zum einwand-
   freien Lauf berreden kann.

   Dadurch ist das Mischen verschiedener DR DOS und Novell DOS
   Versionen (in beiden Richtungen), als auch die Vermischung mit MS-DOS
   und PC-DOS Systemen zu groen Teilen mglich (praktisch in Netzen).
   Da die Novell DOS Kommandos i. allg. mehr Optionen anbieten, stellen sie
   oft einen besseren Ersatz fr MS-DOS Systeme dar. Insofern knnen auch
   MS-DOS Benutzer (aus welchen Grnden auch immer) von einigen der
   Verbesserungen durch Novell profitieren.
   Lediglich bei speziellen Programmen wie Gertetreibern ist der Betrieb
   unter fremden DOS'en nicht mglich. Dies liegt daran, da diese Treiber
   von vornherein fr Novell DOS 7 optimiert wurden und nur bei 'intimer'
   Ausnutzung der Novell DOS Interna ihre besonderen Fhigkeiten entfalten
   knnen.

   Besonders interessant ist die Mglichkeit, DPMS unter MS-DOS oder
   PC-DOS zu nutzen und so mit den entsprechenden Fremdprogrammen seine
   DOS-Konfiguration zu optimieren. Mit PC-DOS 7 wird sogar ein eigener
   DPMS-Treiber mitgeliefert, der allerdings durch eine aktuellere
   Version von Novell (aus einem Update) ersetzt werden sollte.

   Einige Hinweise zur Kombination wurden 1995 in c't dargestellt,
   speziell zu IBM PC-DOS 7 und NWDOS 7 sei auf c't 09/1995 S. 210
   verwiesen.

                                                                             
  ---------------------------------------------------------------------------

  II.11. Interne Kommandos und Optionen von COMMAND.COM: [97-04-23]
  =================================================================

   Stichworte: COMMAND.COM, NWDOS7UN.TXT, DIR, %DirCMD%, COPY, EXIT, ., ..,
               CLS, PROMPT, Region-Support

   i. Aufrufoptionen:
   ------------------

   Sptestens mit Update 15 wurden auch die noch fehlenden, zum Teil auch
   bei MS-DOS noch undokumentierten Aufrufoptionen fr COMMAND.COM
   implementiert:

   c:\nwdos              Dokumentiert
                         Angabe des Home-Verzeichnisses fr Novell DOS
                         Programme. Diese Angabe sollte man nicht
                         vergessen, da sie die grundlegende %Path% Ein-
                         stellung bewirkt, so da die Novell DOS Programme
                         immer gefunden werden knnen.

   device                Teilweise dokumentiert.
                         Angabe eines Gertes fr Ein- und Ausgabe (z.B.
                         AUX), wie Kommando CTTY.
                         Manchmal ist es wichtig, sicherzustellen, da
                         die Boot-Bearbeitung von AUTOEXEC.BAT nicht
                         unterbrochen wird (ist ja in Grenzen auch mit
                         BREAK off mglich). Oder die Bildschirmausgaben
                         von AUTOEXEC.BAT sollen unterdrckt/umgeleitet
                         werden. Man knnte dann hier z.B. NUL angeben,
                         was die Konsole an das Null-Device koppeln wrde.
                         Gegen Ende der AUTOEXEC.BAT mu dann aber mit
                         CTTY CON: wieder auf die Standard-Ein-/Ausgabe
                         umgeschaltet werden, sonst lt sich der Rechner
                         nicht mehr bedienen. Halten Sie eine Boot-Diskette
                         in Reichweite!!!

   /? und /H             Dokumentiert
                         Ausgabe der Hilfeseite (unvollstndig)

   /C command            Dokumentiert
   /Ccommand             Startet temporre Kopie und fhrt dort das bel.
   /C=command            Kommando command aus (auch Batchjobs), vgl. /K
                         und EXIT weiter unten in diesem Kapitel.
                         Das Leerfeld zwischen der Option /C und dem
                         Kommando ist optional und kann auch durch ein
                         Gleichheitszeichen '=' ersetzt werden. Ein Doppel-
                         punkt ':' ist hingegen leider nicht erlaubt.

   /D                    Undokumentiert bei Novell DOS
                         Unterdrckt die Abarbeitung von AUTOEXEC.BAT und
                         der Frage nach Datum und Uhrzeit (wie bei MS-DOS/
                         PC-DOS 5.0+)

   /E:nnnnn              Dokumentiert
                         Stellt die Gre des Master-Environment ein, d.h.
                         die Umgebung des primren Kommandoprozessors.
                         Der gltige Wertebereich ist 129..32751, wird dies
                         ber- oder unterschritten, so wird der Default-Wert
                         256 angenommen (anscheinend ist der effektiv mini-
                         male Wert jedoch 160 und die Angaben werden in
                         Paragraphen aufgerundet). Gibt man /E:value bei
                         sekundren Kopien an, so wird entweder diese
                         Gre bereitgestellt oder die Gre der bereits
                         existierenden Umgebung (je nachdem, welcher Wert
                         grer ist).

                         Wie kommt diese ungerade Zahl 32751 fr die maxi-
                         male Umgebungsgre zustande? Nun, dies ist genau
                         16 Bytes weniger als ein halbes 64 KByte-Segment,
                         und diese 16 Bytes werden fr den MCB-Header be-
                         ntigt, mit dem alle allozierten Speicherblcke
                         beginnen.
                         brigens mu hinter der eigentlichen mit SET und
                         %% sichtbaren Umgebung auch noch Platz fr mgliche
                         zustzliche Zeichenketten (wie den Pfadnamen der
                         ausgefhrten Programmdatei, zu der diese Umgebung
                         gehrt) sein.

                         Diese Gre der Umgebung wird auch bei sekundren
                         Kopien des Kommandoprozessors bereitgestellt
                         (nicht bei DR DOS, von DR DOS 6.0 Updates ab 1992
                         abgesehen).

   /K command            Undokumentiert bei Novell DOS.
   /Kcommand             hnlich wie /C, allerdings erscheint danach der
   /K=command            Prompt. Sinnvoll z.B. zur Aufnahme in DOSPRMPT.PIF
                         von MS Windows (analog zu 4DOS' 4START.BAT
                         Dateien). Die gestartete Shell kann mit EXIT
                         verlassen werden.

                         Der Unterschied zu /C besteht insbesondere darin,
                         da mit /K 'im Prinzip' eine permanente Kopie
                         von COMMAND.COM geladen wird (wie mit /P), aller-
                         dings trotzdem die Mglichkeit zum EXIT besteht,
                         vgl. Beschreibung zu EXIT weiter unten in diesem
                         Kapitel.

                         Mchte man sich mit der CONFIG.SYS SHELL= Direktive
                         die Mglichkeit fr EXIT nicht verbauen, kann man
                         statt der blichen Option /P auf die Option /K aus-
                         weichen (siehe auch bei EXIT etwas weiter unten in
                         diesem Kapitel sowie bei SHELL= in Kapitel III.1.),
                         etwa:

                  SHELL=c:\nwdos\command.com c:\nwdos /E:512 /P:autoexec.bat

                         ersetzen durch:

                  SHELL=c:\nwdos\command.com c:\nwdos /E:512 /K autoexec.bat

                         Jetzt kann man auch die erste (also 'primre')
                         Kopie von COMMAND.COM beenden! Das darunterliegende
                         IBMBIO.COM wei sich dann nicht anders zu helfen,
                         als nach Pfad und Namen eines gltigen Kommando-
                         prozessors zu fragen, der dann wieder geladen wird.
                         (Leider ist dabei die Angabe neuer Parametern nicht
                         mglich, so da die ehemalige SHELL= Zeile erneut
                         ausgefhrt wird, i. allg. also wieder AUTOEXEC.BAT
                         geladen wird, obwohl alle bereits geladenen Treiber
                         und TSRs aus CONFIG.SYS und AUTOEXEC.BAT ja bereits
                         komplett zur Verfgung stehen.)
                         Fr den einen oder anderen mag es dennoch sinnvoll
                         sein, ohne Booten den Kommandoprozessor zu wechseln
                         (das berladen kostet ja zustzlichen Speicher).
                         Interessant ist das bei der Betriebssystem- und
                         Treiberentwicklung, beim Laden unterschiedlicher
                         COMMAND.COM Versionen (i. allg. des gleichen Her-
                         stellers). Wichtig ist ja erst einmal zu wissen,
                         da es diese Mglichkeit berhaupt gibt.

   /Mx                   als /ML /MU /MH, dokumentiert, (nur Novell DOS und
                         DR DOS)

                         Angabe der Lage von COMMAND.COM im Speicher.
                         blicherweise wird /MH zum Laden in die HMA
                         empfohlen.
                         Hieraus ist auch ersichtlich, da es es hierbei um
                         eine Option von COMMAND.COM, und nicht - wie oft
                         vermutet - von CONFIG.SYS SHELL= handelt und da
                         man damit keine Fremd-Kommandoprozessoren hoch-
                         laden kann (die diese Mglichkeit aber u.U. auch
                         bieten).

   /MSG                  (Nur MS-DOS und PC-DOS, obsolet bei Novell DOS)

   /P[:autoexec.bat]     Dokumentiert
                         Macht zu startende Kopie permanent (EXIT wird de-
                         aktiviert) und bearbeitet normalerweise automatisch
                         die Datei AUTOEXEC.BAT. Erlaubt optional die Angabe
                         einer anderen Datei als AUTOEXEC.BAT. Siehe auch /K
                         bezglich nicht offensichtlicher Mglichkeiten.

                         brigens: Haben Sie sich schon einmal Gedanken
                         darber gemacht, welche Werte die Batch-Variablen
                         %0 bis %9 innerhalb von AUTOEXEC.BAT whrend des
                         Bootens haben?
                         Leider ist hier eine schne Kommunikationsmglich-
                         keit zwischen CONFIG.SYS und AUTOEXEC.BAT bisher
                         nicht ausgenutzt worden: Bei Novells COMMAND.COM
                         sind %1 bis %9 in diesem Fall immer unbelegt, und
                         %0 enthlt mit /P den Wert "autoexec.bat", bzw.
                         mit Angabe eines Dateinamens den Namen dieser Kon-
                         figurationsdatei, allerdings umgewandelt in Gro-
                         schrift. An den Dateiparameter /P:[autoexec.bat]
                         angehngte Pawrter erfllen zwar die gewnschte
                         Funktion, erscheinen aber ebenfalls nicht im Para-
                         meter %0.
                         Bei 4DOS waren %1 bis %9 ebenfalls leer, und %0
                         enthielt den Wert der 4START.BAT-Datei.

   /T                    Undokumentiert (ab Novell DOS 7, sowie bei
                         Concurrent DOS), und bedeutet 'TSR' und wird
                         evtl. vom TASKMGR verwendet.

                         Dieser Parameter ist ein gewisses Kuriosum, ist
                         doch auf den ersten Blick kein Unterschied zum
                         normalen Verhalten auszumachen.
                         Bisher wurde nur das Verhalten in Verbindung mit
                         der Option /C untersucht, es knnte also sein,
                         da dieser Parameter mit anderen Parametern noch
                         weitere Auswirkungen hat. Wichtig: Verwenden Sie
                         /T nur, wenn der gerade aktive Kommandoprozessor
                         COMMAND.COM ist, da der Rechner sonst in einer
                         Endlosschleife hngenbleibt!

                         Bei Verwendung der Option /C wird eine neue
                         Kopie von COMMAND.COM geladen, der dann die
                         Ausfhrung des Parameters "/C cmd" berlassen,
                         d.h. 'vererbt' wird. Nach der Ausfhrung wird
                         COMMAND.COM wieder beendet.
                         Gibt man nun zustzlich die Option /T an (vor der
                         Option /C, die als letzte Option stehen sollte,
                         da sie weitere Parameter erwarten kann), so wird
                         zwar ebenfalls eine neue Kopie von COMMAND.COM
                         geladen, die Bearbeitung der Kommandos jedoch
                         umgedreht: Die neue Kopie bernimmt nun die Ein-
                         gaben vom Prompt entgegen (und arbeitet z.B. den
                         Batchjob weiter ab, der von der darunterliegenden
                         Kopie noch nicht beendet wurde). Die darunter-
                         liegende Kopie bekommt jedoch die Aufgabe, das
                         mit "/C cmd" angegebene Kommando auszufhren, was
                         sich natrlich verzgert, bis die temporre Kopie
                         wieder beendet wird. Auf diese Weise kann innerhalb
                         von Batchjobs ein regelrechter Kommandostapel
                         aufgebaut werden, der dann *nach* Beendigung des
                         Batchjobs, der die oberste Kopie des Kommando-
                         prozessors beendet, in umgekehrter Reihenfolge
                         abgearbeitet wird!
                         (Mit diesem Wissen kann man auch verstehen, warum
                         die Option /T zum Hngen des Rechners fhrt, wenn
                         die alte Kopie des Kommandoprozessors nicht
                         COMMAND.COM ist. Offensichtlich geschieht dieser
                         Aufgabenwechsel ber eine undokumentierte Schnitt-
                         stelle, die z.B. 4DOS nicht untersttzt, auch nicht
                         mit der 4DOS.INI Direktive FullInt2E=Yes. Mit Hilfe
                         von K3PLUS'/FreeKEYBs Break-To-DOS-Funktion knnen
                         Sie derart hngende COMMAND.COM Kopien aber ab-
                         brechen, ohne das System neu starten zu mssen.)
                         Verwendet man die Option /T ohne auch die Option
                         "/C cmd" zu benutzen, so wird ebenfalls ein neuer
                         Kommandoprozessor geladen, ganz als htten Sie die
                         Option nicht angegeben. Allerdings ist die Vorein-
                         stellung des Prompts dann "ECHO off", d.h. es ist
                         kein Prompt zu sehen (kann natrlich durch Eingabe
                         von "ECHO on" gendert werden).
                         Achtung: Bei der Verwendung dieser Option sollten
                         Sie sehr vorsichtig mit den Batch-Parametern %1 %2
                         %3 %4 %5 %6 %7 %8 und %9 sein und diese nur bei
                         der ersten Instanz verwenden. Durch die umgekehrte
                         Reihenfolge bei der Bearbeitung ist es mglich,
                         da diese Variablen in anderen Instanzen nur
                         undefinierten Datenmll enthalten. Ein Beispiel:

                         test.bat:

                          @ ECHO off> \dev\nul
                            REM Nur von COMMAND.COM aus starten!!!
                            ECHO Start!
                          @ COMMAND.COM /T /CECHO Marke 1!
                          @ COMMAND.COM /T /CECHO Marke 2!
                          @ COMMAND.COM /T /CECHO Marke 3!
                          @ COMMAND.COM /T /CECHO Marke 4!
                          @ COMMAND.COM /T /CECHO Marke 5!
                            ECHO Ende!

                         Die Ausgabe dieses Batchjobs ist nicht, wie sie
                         vielleicht erwarten wrden, chronologisch, sondern:

                          Start!       Hier wird der Batchjob abgearbeitet,
                          Ende!        die weitere Ausfhrung des Batchjobs
                                       aber an die temporre Kopie vererbt,
                                       das "/C cmd" jedoch aufbewahrt, um
                                       bei Beendigung der darberliegenden
                                       Kopie ausgefhrt zu werden, also ein
                                       Art Ende-Prozess, den man auch zum
                                       Aufrumen oder Reinitialisieren des
                                       Systems verwenden knnte.
                          Marke 5!     Nach der Bearbeitung des Batchjobs
                          Marke 4!     wird eine nach der anderen Kopie des
                          Marke 3!     Kommandoprozessors wieder verlassen,
                          Marke 2!     die dann jeweils ihren Ende-Prozess
                          Marke 1!     ausfhren, und danach die Kontrolle
                                       an den darunterliegenden Kommando-
                                       prozessor zurckgeben.

   /Y                    Undokumentiert bei Novell DOS (neu mit Update 15)
                         (wie bei MS-DOS/PC-DOS 5.0+). Wird von Caldera
                         OpenDOS 7.01 noch nicht untersttzt.

                         Der angegebene Batchjob wird im Einzelschritt-
                         betrieb durchgesteppt (mit jeweiligen Fragen
                         "(J/N) ?"), vgl. <F8>-Einzelschrittbetrieb in
                         Kapitel II.2. Leider wird die YESCHAR= Einstellung
                         nicht bernommen (getestet bis Update 15).

   /N                    Diese undokumentierte Option ist bei Caldera
                         OpenDOS 7.01 Beta 4 (mit der Source-Pre-Release
                         vom 1997-04-21) hinzugekommen und unterdrckt die
                         Einbindung einer Behandlungsroutine fr kritische
                         Fehler (INT24h).


   ii. Hinweise fr Kommando-Syntax interner Kommandos:
   ----------------------------------------------------

   Wie in CONFIG.SYS, so akzeptiert Novell DOS COMMAND.COM bei (fast) allen
   internen Kommandos (nicht COPY, CD, ...) auch an der Kommandozeile und
   in Batchjobs direkt nach dem Befehl ein optionales Gleichheitszeichen.
   Bei Kommandos, wo dies nicht mehrdeutig wird (wie z.B. bei ECHO) wird
   das Gleichheitszeichen auch akzeptiert, wenn es nicht direkt nach dem
   Befehl folgt, sondern nur das erste sichtbare Zeichen ist.

   Beispiel:

    ...
    ECHO=Dieses Gleichheitszeichen wird nicht mit ausgegeben!!!
    ECHO = Dieses Gleichheitzeichen wird mit ausgegeben!!!
    ECHO==Hier wird das erste Gleichheitszeichen unterdrckt!!!
    REM Bei GOTO mu das Gleichheitszeichen nicht *direkt* folgen:
    GOTO=label1
    ECHO Test1
    :label1
    GOTO = label2
    ECHO Test2
    :label2
    ...

   Achtung:

   4DOS/NDOS weist dieses Gleichheitszeichen als ungltig zurck (MS-DOS
   COMMAND.COM wurde diesbezglich noch nicht getestet). Weitere Hinweise
   in Kapitel III.1.

   Teilweise ist direkt nach dem internen Kommando auch noch ein Zeichen
   aus ';', '.', '+', '=' erlaubt, aber hufig wird ein solches Zeichen
   auch als ungltig zurckgewiesen oder hat gar eine Spezialbedeutung.
   Von der unachtsamen Verwendung sei abgeraten.

   Auerdem wird von COMMAND.COM vor allen Befehlen eine beliebige Anzahl
   Leerfelder sowie vor allen internen Befehlen ein Zeichen aus '.', ';',
   '+', '=' akzeptiert (4DOS (5.52a) akzeptiert hier nur ';' und '='.)
   Steht eines dieser Sonderzeichen unmittelbar vor dem Kommando, so wird
   es ignoriert, ansonsten versucht COMMAND.COM offenbar, das Zeichen als
   Argument fr das *dahinterstehende* Kommando zu verstehen, was normaler-
   weise zurckgewiesen wird. Der Sinn sei dahingestellt, wird aber durch
   ein weiteres Feature, das in Kapitel IV.6. erlutert wird, wenigstens
   etwas erhellt...
   Je nachdem, ob das Kommando (plus optionales Zeichen) zu Beginn der Zeile
   steht oder weiter eingerckt wurde, ndert sich die Behandlung, falls ein
   gleichnamiges Makro mit DOSKEY definiert wurde. Eingerckte Kommandos
   werden i. allg. nicht als Makros, sondern als Originale interpretiert.
   Eine Ausnahme stellt in der derzeitigen DOSKEY-Implementation (Update 15)
   die Ersetzung interner Kommandos direkt am Prompt dar, denn hier werden
   auch bei Einrckung die Makros gewhlt. Dem kann man wiederum durch
   Voranstellen eines der obigen Zeichen begegnen (es sei denn, ein
   gleichnamiges Makro existiert inklusive dieses Zeichens)... Nheres
   hierzu in Kapitel II.4.
   Ein einem Kommando vorangestelltes '@'-Zeichen mu immer in der ersten
   Spalte stehenbleiben!

   Wie aufgrund mangelnder Dokumentation nahezu unbekannt, haben auch
   doppelte Anfhrungszeichen (") eine besondere Bedeutung fr COMMAND.COM
   (auch MS-DOS und 4DOS/NDOS). Passagen, die in doppelte Anfhrungszeichen
   eingeschlossen werden, werden bezglich der Auswertung von Umleitungen
   ('>', '<' und '|') bergangen (die Ersetzung von Umgebungsvariablen
   findet allerdings statt). Die Anfhrungszeichen selbst werden nicht
   unterdrckt, so da die Nutzung recht eingeschrnkt ist, da Anfhrungs-
   zeichen nur bei ECHO, PAUSE etc. oder bei FIND sinnvoll verwendet werden
   knnen. Die Anfhrungszeichen haben (zumindest bei COMMAND.COM) keine
   anderweitig klammernde Wirkung, d.h. es ist damit nicht mglich,
   Parameter, die Leerfelder enthalten, zusammenzuziehen. Stattdessen mu
   man sich die Funktion wie ein Toggle vorstellen:

    @ECHO "Hallo! Bitte <ESC> drcken!" >dummy.lst "Ende der Durchsage..."
    TYPE dummy.lst

   DUMMY.LST enthlt jetzt (4DOS fgt ein Leerfeld mehr ein):

    "Hallo! Bitte <ESC> drcken!" "Ende der Durchsage..."

   Bei MS-DOS/PC-DOS COMMAND.COM (mit MS-DOS 6.2 und PC-DOS 7 getestet)
   gibt es eine Mglichkeit, mit <Ctrl>+<t> (ASCII-20 "Pi", vgl. auch
   Kapitel lI.4. bei DOSKEY) mehrere Kommandos in einer Zeile anzugeben
   (bei 4DOS funktioniert ^ alias %+), mit Novells COMMAND.COM (getestet
   bis Update 15) funktioniert dies nicht. Definitiv auch unter Novells
   COMMAND.COM und unter 4DOS knnen Sie aus der Sicht vieler Betrachter
   oder Editore mehrere Kommandos 'in einer Zeile' aber auch mit einem
   einzelnen ASCII-10 (LF ^M) oder ASCII-13 (CR ^J) trennen. Das liegt
   einfach daran, da diese Zeichen als Prchen sowieso einen Zeilen-
   umbruch markieren und aufgrund unterschiedlicher Konventionen unter
   DOS und Unix sicherheitshalber alle mglichen Kombinationen dieser
   Zeichen vom Kommandointerpreter als Zeilenumbruch verstanden werden
   (siehe auch Kapitel II.4. bei DOSKEY). Sofern die Umleitung nicht
   strt, kann man auch das Pipe-Symbol fr solche Zwecke verwenden, etwa:

    XDIR *.* | IF ERRORLEVEL 1 ECHO Fehler beim Dateizugriff!

   In diesem Fall sollte man aber die Hinweise in Kapitel IV.6. beachten.

   Eine andere Erleichterung ist, da man nicht jede Option mit einem
   eigenen SwitChar einleiten mu, sondern sie kombinieren kann.

    DIR *.* /S /W           -> DIR /SW

   Wichtig ist, da ein Hilfeparameter (/H oder /?) generell nur dann
   akzeptiert wird, wenn er als erster Parameter steht. Bei den externen
   Kommandos wrde es sonst teilweise Doppeldeutigkeiten geben knnen.
   Dies gilt brigens auch bei 4DOS/NDOS und bei Novell DOS fr die meisten
   externen Kommandos (XDIR, XCOPY, XDEL, MOVE).

   Novells COMMAND.COM akzeptiert - wie allgemein blich - eine maximale
   Zeilenlnge von 128 Zeichen (obwohl intern noch etwas lngere Zeichen-
   ketten untersttzt werden), dieses Limit gilt auch fr interne Kommandos
   und whrend der Evaluierung von Umgebungsvariablen (4DOS stellt hier
   eine absolute Besonderheit dar, indem es wesentlich lngere Zeilen
   akzeptiert). Zum Vergleich: Die Zeilenlnge in CONFIG.SYS kann bei
   Novell DOS 255 Zeichen betragen, bei MS-DOS sind/waren nur 31 - 128
   Zeichen erlaubt.


   iii. Hinweise zu internen Kommandos:
   ------------------------------------

   Eine bersicht ber die dokumentierten und undokumentierten
   Mglichkeiten der COMMAND.COM internen Kommandos von Novell DOS 7
   findet sich in der Extradatei NWDOS7UN.TXT.

   Seit Update 15 untersttzt nun auch Novell DOS 7 in den Ausgaben von
   DIR etc. die Tausenderseparatoren.

   Im folgenden sollen lediglich relativ zusammenhangslos noch einige
   zustzliche Hinweise zu einzelnen Funktionen verschiedener Kommandos
   gegeben werden, soweit nicht offensichtlich:

   /? /H         Funktioniert nicht nur als Hilfeoption zu anderen Kommandos
                 sondern auch direkt am Prompt (d.h. ohne, da ein Befehl
                 angegeben werden mte). Liefert dann eine bersicht ber
                 alle mglichen Befehle, die in COMMAND.COM implementiert
                 sind. (4DOS/NDOS bietet die gleiche Funktion, allerdings
                 mit einem einzelnen Fragezeichen: ?) Kann z.B. in gene-
                 rellen DR DOS/Novell DOS Batchjobs verwendet werden, um
                 herauszufinden, ob ein gewnschter Befehl untersttzt wird:

                  /? | FIND "befehl" > %tmp%\tempfile.$$$
                  REM Nun die erzeugte Datei auf Lnge Null berprfen...

                 Kann nicht als "COMMAND /C /?" angegeben werden, da dies
                 als Hilfe *ber* COMMAND.COM und nicht als Wunsch nach der
                 Ausfhrung des internen Kommandos /? interpretiert wrde.
                 Alle bei /? aufgelisteten Kommandos besitzen eigene Hilfe-
                 seiten mit "befehl /?" (bis auf das sptestens mit Update 8
                 hinzugefgte TRUENAME und /? selbst...)

   ?             als Frage, ob der folgende Befehl ausgefhrt werden soll,
   ?"fragetext"  darf - im Gegensatz zu CONFIG.SYS - nicht nach dem Befehl,
                 sondern mu vor dem Befehl stehen (Was natrlich nicht aus-
                 schliet, da ein weiteres Fragezeichen die optionale
                 Meldung abschlieen darf). Dies gilt auch fr 4DOS/NDOS
                 und MS-DOS COMMAND.COM. In beiden Fllen wird ein
                 optionales Gleichheitszeichen auch nach der Frage
                 akzeptiert (nicht bei 4DOS/NDOS und MS-DOS).
                 Klappt auch als einfaches Fragezeichen in Batchjobs,
                 daraufhin erscheint eine Dummy-Frage "(J/N)?", bei Druck
                 auf <J> aber keine Fehlermeldung. Ist bei Novells
                 COMMAND.COM direkt am Prompt nicht erlaubt.
                 Ein Meldungstext mu in doppelte Anfhrungszeichen ('"')
                 eingerahmt werden mu. In diesem Fall unterdrckt
                 COMMAND.COM auch die Ausgabe der eigentlichen Aufrufzeile.
                 (In der Sekundrliteratur konnte ich einen Hinweis finden,
                 da Novell DOS einen Meldungstext auch ohne Anfhrungs-
                 zeichen akzeptiert, wenn man die Frage mit einem Frage-
                 zeichen abschliet. Mit Update 15/2 konnte ich diese
                 Behauptung nicht besttigen, weder in CONFIG.SYS noch
                 in Batchjobs.)

                 Kommt sowohl ein '?' als auch ein '@' als Prfix vor, so
                 mu bei Novells COMMAND.COM (getestet bis Update 15) das
                 '?' vor dem '@' stehen, dummerweise ist es bei 4DOS genau
                 umgekehrt. Hier wird es hoffentlich in Zukunft einen Fix
                 in beiden Produkten geben, so da beide Varianten akzep-
                 tiert werden.

   @             Ein einem Befehl vorangestellter Klammeraffe (oder "at")
                 unterdrckt fr diese Zeile das ECHO. Bei 4DOS/NDOS wird
                 auerdem die Belegung der Umgebungsvariable %CmdLine%
                 unterdrckt, was Speicherplatz sparen kann. Wichtig ist,
                 da das '@' bei Novells COMMAND.COM (getestet mit Update
                 15) immer in der ersten Spalte stehen mu, auch wenn der
                 Rest des Befehls eingerckt ist. Einzige Ausnahme ist ein
                 '?', das noch vor dem '@' stehen mu.
                 Direkt am Prompt ist ein vorangestelltes '@'-Zeichen nicht
                 erlaubt.

   BREAK         Bei jeder Rckkehr zum Prompt (mal von BREAK selbst abge-
                 sehen) und nach dem EXIT Kommando restauriert Novells
                 COMMAND.COM die letzte Einstellung von BREAK. Einstel-
                 lungen, die innerhalb einer Applikation vorgenommen
                 wurden, bleiben also nur fr die Laufzeit dieser
                 Applikation erhalten. Da dieses Verhalten bei anderen
                 DOS'en nicht vorkommt, sei hier extra darauf hingewiesen.
                 Bezglich der CONFIG.SYS Direktive BREAK= siehe auch
                 Kapitel III.1. Zumindest whrend der Bearbeitung von
                 Batchjobs sollte man nach der Testphase BREAK off setzen,
                 denn die Ausfhrungsgeschwindigkeit erhht sich damit
                 dramatisch. Ansonsten ist der Geschwindigkeitsunterschied
                 nur recht gering:

                 Beispiel fr den Anfang eines Batchjobs:

                  @ECHO off > \dev\nul
                  ECHO off > \dev\nul
                  IF NOT ""=="%batdbg%" ECHO %batdbg%
                  IF NOT "off"=="%batdbg%" IF NOT "on"=="%batdbg%" GOTO skip
                  BREAK %batdbg% > \dev\nul
                  :skip
                  ...

                 Auch in Warteschleifen beim Semaphoren-Austausch
                 mehrerer Batchjobs unter Multitaskern sollten Sie,
                 um einen Benutzerabbruch zu verhindern, BREAK off
                 setzen.

                 Ohne Angabe von Parametern gibt BREAK, wie auch ECHO und
                 VERIFY den aktuellen Status in einer bestimmten Syntax
                 aus, die man sehr vorteilhaft in Batchjobs zum Zwischen-
                 speichern des Status verwenden kann:

                  BREAK = on
                  BREAK = off

                 Dies entspricht nmlich genau der Eingabe, die man machen
                 mu, um diesen Zustand nach einer Vernderung wieder zu
                 restaurieren (das Gleichheitszeichen ist optional).

                  @ECHO> %tmp%\echo_.bat
                  @ECHO off> \dev\nul
                  BREAK> %tmp%\break_.bat
                  VERIFY> %tmp%\verify_.bat
                  REM Nun die geforderten Einstellungen fr diesen Batchjob
                  REM ndern, z.B.:
                  BREAK off> \dev\nul
                  VERIFY on> \dev\nul

                  REM Hier die gewnschte Aktion ausfhren:
                  ...

                  REM Am Ende des Batchjobs alte Einstellungen restaurieren:
                  @%tmp%\break_.bat > \dev\nul
                  @%tmp%\verify_.bat> \dev\nul
                  DEL %tmp%\break_.bat > \dev\nul
                  DEL %tmp%\verify_.bat > \dev\nul
                  @%tmp%\echo_.bat  > \dev\nul
                  DEL %tmp%\echo_.bat > \dev\nul

                 Eine verwandte Mglichkeit bietet sich durch Speichern
                 des aktuellen Wertes in einer Umgebungsvariablen an, dazu
                 bentigt man allerdings eine Datei, die die Zeichenkette
                 "SET " (ohne die Anfhrungszeichen und) ohne den ab-
                 schlieenden Zeilenvorschub enthlt. Damit sind Konstrukte
                 wie

                  Anweisungen:                 Inhalt von settmp.bat:

                  COPY setfile.dat settmp.bat  "SET "
                  BREAK>>settmp.bat            "SET BREAK = on"
                  ...

                 Leider gilt dies nicht fr die anderen ON|OFF-Schalter
                 (hier wird in der deutschen Ausgabe "ist" statt "=" und
                 teilweise "eingeschaltet/ausgeschaltet" statt "ON|OFF"
                 gesetzt) und auch nicht fr andere Kommandoprozessoren
                 anderer DOS-Hersteller.

   CD/CHDIR      Schlecht dokumentiert ist die folgende Mglichkeit dieses
                 Kommandos:
                 Die Angabe eines Laufwerksbuchstabens gefolgt von einem
                 Doppelpunkt zeigt die aktuelle Pfadeinstellung fr dieses
                 Laufwerk an. Wird kein Laufwerk angegeben, so wird das
                 aktuelle Verzeichnis verwendet.

                 Eine interessante Eigenschaft des CD/CHDIR Befehls (nur
                 bei Novell DOS 7 COMMAND.COM) erlaubt die automatische
                 Erkennung (aus Batchjobs heraus), ob der SwitChar verndert
                 wurde:

                 Bei verstelltem SwitChar (anders als '/') wird der erste
                 '\' in der Pfadangabe des CD Befehls durch ein '/' ersetzt.

                  CD | FIND "/" > %tmp%\tempfile.$$$
                  REM Nun die erzeugte Datei auf Lnge Null berprfen.
                  REM Falls sie grer Null ist, dann wurde der SwitChar
                  REM verndert und drfte in den meisten Fllen gleich
                  REM '-' sein.

                 Nheres hierzu in Kapitel II.1.

                 Eine abschlieende Bemerkung zu Verzeichnissen:

                 Bei allen Versionen von DR DOS 3.4-6.0, die keine CDS im
                 Stil von MS-DOS hatten (also bis DR DOS 6.0 Update 11/1992)
                 konnten Pfadangaben beliebig lang sein. Eine Beschrnkung
                 auf 67 Zeichen, wie bei MS-DOS/PC-DOS und nun auch bei
                 Novell DOS 7 gab es damals nicht!
                 Dabei wurden die Pfadangaben lediglich vorne am jeweils
                 mglichen Backslash so abgeschnitten, da Ausgaben auf
                 67 Zeichen formatiert wurden. Leider kamen die wenigsten
                 Applikationen mit dieser sehr viel flexibleren Methode
                 zurecht (es waren dadurch noch allerhand andere Dinge
                 mglich, wie eine History der zuletzt durchlaufenen
                 Verzeichnisse, wurden allerdings meines Wissens nie
                 ausgenutzt). In eigenen Programmen sollten Sie aber nicht
                 davon ausgehen, da eine Pfadangabe nur 67 Zeichen lang
                 sein kann (d.h. *nicht* die Routinen verwenden, die die
                 meisten Hochsprachen-Compiler mitbringen). Existieren
                 Verzeichnisse mit solchen berlngen, so knnen sie unter
                 Novell DOS 7, MS-DOS und PC-DOS nicht darauf zugreifen,
                 und um die Pfade zu krzen, mssen Sie unter DR DOS booten.

   CD /A         Auerdem bietet CD/CHDIR seit DR DOS 3.41 noch eine Option
                 /A an, die allerdings seit DR DOS 6.0 komplett undokumen-
                 tiert ist. Durch Angabe von /A wird eine Liste der aktuel-
                 len Pfadeinstellungen aller Laufwerke ausgegeben
                 (leider untersttzt selbst 4DOS 5.52a diese Mglichkeit
                 noch nicht).

                 Die Option CD /B, die der Ausgabe ein CHDIR voranstellt
                 und damit fr den Betrieb in Batchjobs mit Umleitung
                 prdestiniert ist, sowie die zum SUBST quivalente
                 Mglichkeit fr CD, etwa "CD d:=c:\path" an Stelle von
                 "SUBST d:=c:\path" bietet bisher leider nur Multiuser DOS
                 (getestet CCI Multiuser DOS 7.22 Gold), nicht aber
                 Novell DOS 7 oder Caldera OpenDOS 7.01, was man in Zukunft
                 leicht ndern knnte.

   COPY          Ein Pawortschutz wird bei COPY (und XCOPY) nicht auf die
                 Zieldatei bertragen (im Gegensatz zu REN). Die neue Datei
                 hat keinen Schutz und das Hidden-Attribut wurde gelscht.
                 Das externe Kommando MOVE arbeitet demgegenber anders,
                 siehe Kapitel II.4.
                 Die MS-DOS 6 Variable %CopyCMD% wird nicht untersttzt und
                 es gibt auch keine hundertprozentige Methode, dieses Ver-
                 halten zu simulieren.
                 COPY /C und /Z werden von 4DOS 5.52a noch nicht untersttzt
                 und COPY /S hat bei 4DOS eine vllig andere Bedeutung. /C
                 kann bei 4DOS mit /P, und /S mit /A: nachgebildet werden.
                 Die beiden mit MS-DOS 6.2 eingefhrten Parameter /Y und /-Y
                 zur Besttigung vor dem berschreiben untersttzt
                 Novell DOS 7 COMMAND.COM (getestet bis Update 15) noch
                 nicht, da es viel frher eingefhrt wurde.
                 Novells COPY kopiert keine Dateien mit der Lnge Null
                 (wie bei MS-DOS/PC-DOS), DR DOS kopierte jedoch auch diese
                 (ausgenommen DR DOS 6.0 Updates nach 1992).

                 Bei dieser Gelegenheit ein kleines praktisches Beispiel
                 fr Novells COPY /Z:

                  IS7BIT.BAT:

                   @ ECHO off > \dev\nul
                     REM Reports "Files are equal" if file is in 7Bit-ASCII
                     REM Runs with Novell DOS 7 COMMAND.COM, only!!!
                     IF NOT EXIST %1 GOTO end
                   @ CALL swc.bat
                   @ c:\nwdos\COMMAND.COM %switch%C COPY %switch%Z ...
                                          ... %1 %tmp%\is7bit.$$$ > \dev\nul
                   @ CALL FC %1 %tmp%\is7bit.$$$
                     DEL %tmp%\is7bit.$$$ > \dev\nul
                     :end

   COPY A:.      Wie allgemein bekannt, kann man '.' und '..' nicht nur fr
   COPY A:       den CD/CHDIR Befehl verwenden, sondern auch sonst.
   u.a.
                  .  steht fr 'aktuelles Verzeichnis'
                  .. steht fr das dem aktuellen Verzeichnis bergeordnete
                     Verzeichnis

                 Dabei kann man hufig eine Dateispezifikation "*.*" auch
                 mit '.' abkrzen, da dies ja ebenfalls 'gesamtes aktuelles
                 Verzeichnis' ausdrckt

                  DIR *.*          bewirken also das Gleiche
                  DIR .            (brigens auch bei MS-DOS)
                  DIR

                 Das funktioniert z.B. auch beim COPY Befehl COPY A:. , der
                 den Inhalt von A:*.* ins aktuelle Verzeichnis kopiert.
                 COPY A: ist nun bei Novell DOS eine weitere mgliche
                 Abkrzung fr die Abkrzung, bezieht sich also ebenfalls
                 auf das jeweils aktuelle Verzeichnis und nicht auch das
                 gesamte Laufwerk.

   COPY ...+...  Interessant und besonders in Batchjobs praktisch ist
                 auch, da der COPY-Befehl auch mehr als zwei Dateien in
                 eine Zieldatei kopieren kann, selbst wenn einige der
                 aufgezhlten Dateien nicht existieren:

                  COPY src1+src2+src3+src4 target

                 kopiert die Dateien src1 bis src4 in target. Sollte z.B.
                 src2 nicht existieren, wird diese Datei dabei einfach
                 bersprungen. Dabei sind auch in dieser Syntax-Variante
                 Wildcards erlaubt, etwa:

                  COPY *.lst+*.prn *.res

                 Im Gegensatz zu MS-DOS COMMAND.COM ist es bei Novell DOS
                 auch mglich, ohne temporre Zwischendatei mehrere Dateien
                 zu einer Datei zusammenzufhren, die genauso heit, wie
                 die erste der Quelldateien, etwa:

                  COPY src1+src2 src1

                 Bei MS-DOS geht dabei der Inhalt der Datei src1 verloren!

   COPY file+,,  Diese undokumentierte Syntax-Variante stellt eine
                 Besonderheit von Novells COMMAND.COM dar, die gut mit
                 dem externen TOUCH-Befehl verglichen werden kann:

                  COPY file+,,

                 *simuliert* das Kopieren die Datei file auf sich selbst
                 und aktualisiert damit den Datums- und Zeitstempel auf das
                 aktuelle Datum. Die Datei file wird nicht verndert, egal
                 ob es sich um eine ASCII- oder um eine Binrdatei handelt.
                 Im Gegensatz dazu arbeitet die Variante

                  COPY file+,

                 mit wirklichem Kopieren der Datei auf sich selbst und ist
                 entsprechend langsamer. Daher wird hier nicht nur der
                 Datums- und Zeitstempel aktualisiert, sondern es erfolgt
                 auch die bliche Behandlung von ASCII- oder Binrdateien
                 (die nicht vom Dateinamen abhngt). Einer vornehmlichen
                 ASCII-Datei wird u.U. ein zustzliches ^Z (CP/M-Dateiende-
                 Zeichen) angehngt, wodurch die Datei ggf. ein Byte lnger
                 wird. Binrdateien bleiben bis auf das aktualisierte
                 Datum unverndert.

   CLS           Dieses Kommando lscht normalerweise den Bildschirm durch
                 direkten Aufruf der entsprechenden Funktion. Ist ein ANSI-
                 Treiber installiert, wird jedoch stattdessen die ANSI-
                 ED-Sequenz "Esc [2J" ausgegeben, die den Bildschirm
                 lscht. Mit der undokumentierten Umgebungsvariable %$Cls%
                 kann man die Sequenz bersteuern, die an die Konsole CON:
                 geschickt wird. Ist diese Variable nicht belegt, tritt
                 das oben beschriebene Verhalten in Kraft.
                 Sinnvollerweise wird diese Variable bei Bedarf mit der
                 Steuersequenz zum Lschen des Bildschirms belegt, wie
                 von den gngigen Terminaltreibern angeboten. Fr die
                 Benutzung von ANSI kann man die passende Sequenz im DOSBOOK
                 bei der Beschreibung der ANSI-Sequenzen finden (ANSI kommt
                 aber i. allg. auch ohne diese Speziallsung aus).
                 Sinnvoll wird diese Mglichkeit dann, wenn man mit speziel-
                 len Bildschirmtreibern oder vllig abweichender Grafik-
                 Hardware arbeitet oder Terminalsessions fhrt. Auerdem
                 ist es auf diese Weise auch mglich, den Bildschirm einer
                 "remote console" zu lschen, etwa wenn mittels CTTY die
                 Konsole an eine serielle Schnittstelle gekoppelt wurde.
                 Dies erffnet wiederum neue Mglichkeiten fr TASKMGR...
                 Auch Farbeinstellungen sind auf diese Weise mglich.

                 Da die Eingabe von beliebigen Zeichencodes nicht in
                 jedem Editor mglich ist und es zu Problemen bei der
                 Bearbeitung von Batchjobs kommen knnte, ist optional
                 die folgende Syntax erlaubt, die die Angabe eines
                 dreistelligen Oktalwertes fr den Zeichencode erlaubt:
                 Da etwa die ASCII-CRT-Terminals die bliche Escape-
                 Sequenz nicht verstehen, kann man stattdessen auch

                  SET $Cls=\033+

                 fr "Esc +" eingeben (die von dem bei Novell DOS mitge-
                 lieferten ANSI.SYS-Treiber nicht verstanden wird). Die
                 Folge \033 erzeugt das Zeichen 33o=1Bh=27d.

                 Eine andere Anwendung besteht darin, neben der Funktion
                 zum Lschen des Bildschirms auch andere Einstellungen oder
                 Bildschirmanzeigen ber CLS auszulsen oder durch Belegen
                 von %$Cls% mit einer Dummysequenz die Funktion von CLS
                 sogar zu unterbinden. 4DOS 5.52a und MS-DOS COMMAND.COM
                 kennen die Sonderbehandlung der Variablen %$Cls% nicht.

                 Ist diese Variable nicht belegt (was i. allg. der Fall
                 ist) oder kein ANSI-Treiber installiert, wird der Bild-
                 schirm - wie bei MS-DOS - auf dem blichen direkten Weg
                 (ber BIOS-Funktionen) gelscht, oder - falls ein ANSI-
                 Treiber vorhanden ist - durch Ausgabe der ANSI ED-Sequenz
                 "Esc [2J". Weitere Infos bei TYPE und in Kapitel IV.7.

   CTTY          Eine selten bekannte Mglichkeit dieses Kommandos ist es,
                 eine dauerhafte 'Umleitung' der Ein-/Ausgabe fr Batchjobs
                 zu programmieren. Achtung: Halten Sie eine Boot-Diskette
                 bereit, da Sie bei falscher Verwendung die Eingabe von der
                 Tastatur abkoppeln! Siehe auch weiter vorne in diesem
                 Kapitel.

   DATE          In Verbindung mit Umleitungen siehe auch Kapitel IV.6.,
                 sowie Kapitel IV.1.

                 Die zustzlichen Optionen von CCI Multiuser DOS 7.22 Gold
                 /B (fr Betrieb in Batchjobs) und /E (zum Setzen der Um-
                 gebungsvariablen %DATE%, %DOW%, %DOM% und %DOY%) bieten
                 Novell DOS 7 und Caldera OpenDOS 7.01 COMMAND.COM noch
                 nicht, dies liee sich aber leicht implementieren.

   DEL *.*       In Verbindung mit Umleitungen siehe auch Kapitel IV.6.
                 DEL *.* unterscheidet sich insofern von anderen DEL Auf-
                 rufen, als da der Kommandoprozessor bei dieser speziellen
                 Maske nachfragt "Sind Sie sicher (J/N)". Ansonsten wird,
                 ohne Angabe spezieller Optionen ohne Rckfrage gelscht.

   DEL, ERASE,   DEL und die lteren CP/M-Kommandos ERASE und ERA sind
   ERA           identisch. (Die Kurzform ERA, die seit CP/M existiert,
                 wird selbst von 4DOS 5.52a noch nicht untersttzt. Statt
                 der Option /C, die brigens (wie DELQ und ERAQ) vor *jeder*
                 zu lschenden Datei nachfragt, mssen Sie unter 4DOS die
                 gleichwertige Option /P verwenden, die glcklicherweise
                 auch unter Novells COMMAND.COM funktioniert.)

   DELQ, ERAQ    DELQ und ERAQ sind identisch (ERAQ existiert seit CP/M).
                 (Da selbst 4DOS 5.52a diese Kommandos nicht nachbildet,
                 mssen Sie ggf. auf dessen Option DEL /P ausweichen.)

   DIR           Pawortgeschtzte Dateien werden trotz i. allg. gesetztem
                 Hidden-Attribut angezeigt (wie auch bei XDIR).

                 (4DOS und MS-DOS 6.20+ bietet bei DIR dermaen viele Er-
                 weiterungen, da alle Erweiterungen von Novell DOS/DR DOS
                 gegenber dem alten Standard von MS-DOS hier mit den Er-
                 weiterungen von 4DOS/MS-DOS kollidieren. Die einzigen
                 Optionen von Novells DIR, die Sie ohne 'bersetzung' auch
                 bei 4DOS verwenden knnen, sind die alten Parameter /2 und
                 /W. Alle Mglichkeiten lassen sich unter 4DOS aber mehr als
                 gut nachbilden.)

   DIR /C        Zum Speichern der (anderen) angegebenen Parameter als
   DIR /R        zuknftige Default-Einstellung. Damit kann man MS-DOS'
                 Verhalten mit der Umgebungsvariable %DirCMD% in etwa
                 nachbilden. Nach einem Booten ist die neue Default-
                 Einstellung wieder gelscht, d.h. es empfiehlt sich die
                 Aufnahme einer entsprechenden Zeile in AUTOEXEC.BAT.

                 Aus diesem Grund gibt es auch zwei verschiedene Optionen:

                 Mit /C wird die aktuell angegebene Einstellung nur fr
                 die weitere Verwendung abgespeichert, ohne das Kommando
                 auch auszufhren (praktisch fr AUTOEXEC.BAT und andere
                 Batchjobs), mit /R wird zustzlich das Kommando auch
                 direkt ausgefhrt (praktisch fr die Kommandozeile).

                 Beide Varianten existieren brigens schon seit DR DOS
                 3.41+, waren allerdings bis vor DR DOS 6.0+ undokumentiert.

   DIR *.        Zeigt (zumeist) die Unterverzeichnisse des aktuellen
                 Verzeichnisses an.
                 Voraussetzung dafr ist allerdings, da alle Unterver-
                 zeichnisnamen keine Erweiterung haben (was durchaus erlaubt
                 ist und in letzter Zeit immer hufiger z.B. fr Versions-
                 nummern von Software-Paketen etc. verwendet wird) und da
                 umgekehrt alle 'normalen' Dateien eine Erweiterung haben
                 (das mu auch nicht so sein).
                 Andere Mglichkeiten, Unterverzeichnisse abzutesten, werden
                 in Kapitel IV.6. und IV.3 vorgestellt.

   ECHO [on|off] Die blichen Funktionen von ECHO als Kommando (nicht
                 CONFIG.SYS) drften hinreichend bekannt sein und machen
                 normalerweise nur in Batchjobs Sinn. Beachten Sie, da
                 unter Verwendung von doppelten Anfhrungszeichen auch die
                 Zeichen '>', '<' und '|' ausgegeben werden knnen.

                 Bei DR DOS 3.41+ und Novell DOS 7 COMMAND.COM kann man
                 jedoch durch Eingabe von "ECHO on" oder "ECHO off" am
                 DOS-Prompt die Ausgabe des DOS-Prompts ein- oder aus-
                 schalten. Mit "ECHO off" erscheint einfach kein Prompt
                 mehr, unabhngig von "PROMPT $-". Natrlich lassen sich
                 Eingabe wie bisher vornehmen. COMMAND.COM von MS-DOS 7
                 reagiert genauso (das Verhalten von frheren MS-DOS
                 Versionen wurde noch nicht untersucht).
                 4DOS reagiert in diesem Fall anders, denn es wird nur die
                 zuknftige Einstellung von ECHO fr Batchjobs verndert.

                 Ohne Angabe von Parametern gibt ECHO, wie auch BREAK und
                 VERIFY den aktuellen Status in einer bestimmten Syntax
                 aus, die man sehr vorteilhaft in Batchjobs zum Zwischen-
                 speichern des Status verwenden kann.
                 Nheres hierzu bei BREAK.

   EXIT [errorlevel]  Mit EXIT beendet man normalerweise eine temporre
                 Kopie eines Kommandoprozessors (z.B. COMMAND.COM). Aller-
                 dings ist EXIT auch ein Spezialbefehl innerhalb von Batch-
                 jobs, der die Ausfhrung des Batchjobs beendet. Normaler-
                 weise erscheint danach wieder der DOS-Prompt fr weitere
                 Eingaben. Arbeitet man aber in einer temporren Kopie des
                 Kommandoprozessors (z.B. unter dem TASKMGR bei bestimmten
                 Einstellungen oder in Windows DOS-Boxen (siehe SYSTEM.INI
                 [386Enh] DOSPromptExitInstr=Yes/No)), so wird dabei der
                 gesamte Task geschlossen, sofern der aktuelle Kommando-
                 prozessor der unterste innerhalb des jeweiligen Fensters/
                 Tasks ist. Beim TASKMGR und z.B. mit 4DOS hngt das exakte
                 Verhalten davon ab, ob fr die Bearbeitung des Batchjobs
                 eine neue Kopie des Kommandoprozessors gestartet wurde
                 (sog. 'Shellen') oder ber eine interne Software-
                 Schnittstelle die alte Kopie mitbenutzt wird. In
                 TASKMGR.INI ist diesbezglich die Einstellung [Shell]
                 Exec=True/False interessant, in 4DOS.INI sollte man auf
                 die Einstellung von FullInt2E=Yes/No und die 4START.BAT
                 Dateien achten. Leider ist es aus Kompatibilittsgrnden
                 nicht immer mglich, einfach diese Einstellung zu ver-
                 ndern (siehe z.B. Kapitel VII.3.), deshalb sollte man
                 EXIT in Batchjobs nur im Notfall verwenden (Es gibt
                 schlielich auch Ersatz mit "GOTO end" und einer Marke
                 :end am Ende des Batchjobs).
                 Weitere Hinweise zu EXIT siehe etwas weiter oben bei /K
                 und in Kapitel III.1. bei SHELL=.

                 Undokumentiert ist die Mglichkeit, bei EXIT einen
                 Errorlevel im Bereich 0..255 anzugeben, der von dem
                 Programm ausgewertet werden kann, in das nach EXIT
                 zurckgekehrt wird. Dies ist besonders fr verschachtelte
                 Batchjobs interessant. Leider funktioniert dies nicht fr
                 "COMMAND.COM /C EXIT errorcode" (liefert immer
                 Errorlevel 0, getestet mit Update 15), sondern nur fr
                 Batchjobs wie "COMMAND /C batchjob.bat" (in diesem
                 Fall wird der letzte Errorlevel des Batchjobs zurck-
                 geliefert, der entweder aus dem Programmlauf oder
                 durch explizites Beenden via EXIT resultiert) oder
                 "COMMAND.COM /K batchjob.bat" (der Batchjob mu in
                 diesem Fall mit EXIT beendet werden). Gibt man direkt
                 am Prompt EXIT mit einem Errorlevel an, so wird dieser
                 Wert ebenfalls an die darunterliegende Kopie des
                 Kommandoprozessors zurckgeliefert (diese Mglichkeiten
                 sind wahrscheinlich auch schon in DR DOS 6.0 Updates ab
                 1992 vorhanden, definitiv aber auch in CCI Multiuser DOS
                 7.22). Achtung: Werden neben dem Errorlevel noch andere
                 Parameter angegeben, so mu der Zahlenwert als letzter
                 Parameter stehen. Es drfen auch nicht mehr als eine
                 Zahl als Parameter angegeben werden.
                 Die unter CCI Multiuser DOS 7.22 verfgbare EXIT-Option
                 /T zum Lschen aller nach der Shell geladenen Programme
                 bietet Novells COMMAND.COM nicht, zurckgewiesen wird sie
                 aber auch nicht.

                 Auf diesem Weg gibt es also eine Mglichkeit, auch ohne
                 bestimmte Zusatzprogramme den Errorlevel auf einen be-
                 stimmten Wert zu setzen (leider etwas komplizierter, als
                 wenn EXIT auch direkt bei "COMMAND.COM /C EXIT code"
                 funktionieren wrde):

                  SETERROR.BAT:

                   @ECHO off
                   REM Dieser Batchjob funktioniert nur wie gewnscht,
                   REM wenn Novells COMMAND.COM verwendet wird...
                   REM Allerdings kann der Batchjob sehr wohl auch von
                   REM 4DOS/NDOS aus gestartet werden, wenn Novells
                   REM COMMAND.COM im Zugriff liegt...
                   IF "%1"=="_SETERRLVL_" GOTO errlvl
                   ...
                   REM Nun soll ein bestimmter Errorlevel (hier 13) gesetzt
                   REM werden...
                   COMMAND.COM /C %0 _SETERRLVL_ 13
                   REM Nun gilt Errorlevel 13...
                   IF ERRORLEVEL 13 IF NOT ERRORLEVEL 14 ECHO Ok!
                   GOTO end
                   :errlvl
                   EXIT %2
                   :end

                 Eine spezielle Anwendung dafr besteht in der Mglichkeit,
                 whrend der Abarbeitung der CONFIG.SYS Datei Batchjobs als
                 Makros oder Unterroutinen fr Problemlsungen zu benutzen,
                 die innerhalb der CONFIG.SYS-Sprache nicht lsbar wren!
                 Dazu ldt man

                  CONFIG.SYS:

                   ...
                   INSTALL=c:\nwdos\command.com /C batchjob.bat
                   REM Errorlevel-Auswertung, hier als Demo:
                   ONERROR = 0 ECHO Kein Fehler!
                   ONERROR = 1 ECHO Bedingung 1 ist eingetreten...
                   ONERROR = 2 ECHO Bedingung 2 ist eingetreten...
                   ...

                 wobei batchjob.bat beliebige Befehlsfolgen ausfhren kann
                 und am Ende mit "EXIT errorlevel" einen Code an CONFIG.SYS
                 zurckliefert, der dort die weitere Bearbeitung beeinflus-
                 sen kann (siehe Kapitel III.1. und III.5.)! Leider ist der
                 Aufruf von COMMAND.COM nicht ganz rckwirkungsfrei, z.B.
                 wird damit die CONFIG.SYS Vorab-Umgebung vor der weiteren
                 Verwendung geschlossen.

   FOR %%x IN (list) DO cmd params

                 Entgegen der Beschreibung im DOSBOOK sind in der Liste list
                 nicht nur Dateispezifikationen erlaubt, sondern beliebige
                 Texte, die der Reihe nach fr die Schleifenvariable einge-
                 setzt werden. Achtung: Die Zeichen '?' und '*' nehmen die
                 bliche Sonderstellung fr Datei-Wildcards ein, d.h. werden
                 auf alle in Frage kommenden Dateien expandiert und der
                 Reihe nach fr %%x eingesetzt (aus *.* wird also ein Aufruf
                 des Anwendungsblocks mit *jeder* einzelnen Datei, die auf
                 die Maske *.* pat, und nicht *ein* Aufruf mit '*.*'). Alle
                 anderen Zeichenketten werden nicht besonders ausgewertet
                 und werden ohne berprfung, ob es sich um einen gltigen
                 Dateinamen handelt, in die Schleifenvariable eingesetzt).
                 Eine praktische Beispielanwendung fr die Verwendung von
                 FOR abseits seiner blichen Funktion zur Dateiexpandierung-
                 und -auflistung findet sich in MEM.BAT in Kapitel IV.5.
                 In der Dokumentation zu CCI Multiuser DOS 7.22 Gold heit
                 es, da in der Liste keine Dateien mit Pfadangaben erlaubt
                 sind, zumindest auf Novell DOS 7 COMMAND.COM kann man diese
                 Aussage nicht bertragen.

                 Manchmal kann man FOR auch verwenden, um mehrere Kommandos
                 in einer Zeile unterzubringen, was die Bearbeitung eines
                 Batchjobs beschleunigt:

                  FOR %%x (DIR TYPE) DO %%x test.txt

                 brigens: Die Verwendung des FOR-Befehls ist auch direkt
                 an der Kommandozeile erlaubt, wenn man die verdoppelten
                 %% Zeichen durch einfache % ersetzt. Umgebungsvariablen
                 werden bei COMMAND.COM nicht ersetzt, 4DOS/NDOS erlaubt
                 auch dies (siehe auch BATTIPS.TXT).

   GOSUB label [comments]
                 Erlaubt maximal vier Verschachtelungsstufen (getestet
                 mit DR DOS 6.0, Novell DOS 7 und CCI Multiuser DOS 7.22
                 Gold).

   GOTO label [comments]
                 Interessant ist, da hinter der Angabe des Sprungziels
                 label noch weitere 'Parameter' erlaubt sind, die allerdings
                 ignoriert werden. Wird GOTO direkt am Prompt von Novells
                 COMMAND.COM angegeben, so wird das Kommando ignoriert
                 (wie auch bei GOSUB, RETURN, SWITCH).

   HILOAD | LH | LOADHIGH
                 [/L:region[,minsize[;region2[,minsize[;...]]]]][/S]
                 cmd params

                 Aus Kompatibilittsgrnden untersttzten diese Kommandos
                 bei Novell DOS schon immer undokumentiert die MS-DOS
                 MEMMAKER Optionen /L: und /S, allerdings waren diese
                 funktionslos, da Novell DOS 7 keinen Region-Support besa.
                 Mit Update 14 (sicher jedoch Update 15) hat sich dies ge-
                 ndert: Novell DOS 7 untersttzt jetzt in vollem Umfang
                 UMB-Memory-Regions. Eine genaue Beschreibung dieser Para-
                 meter findet sich bei DEVICEHIGH= in Kapitel III.4. (und
                 Kapitel III.1., V.7.).
                 Zu beachten ist lediglich, da bei HILOAD/LH/LOADHIGH,
                 die im brigen untereinander identisch sind, kein Gleich-
                 heitszeichen vor dem eigentlichen Kommando gegeben werden
                 darf.

                  Ein Beispiel:

                  LH /l:2 DOSKEY /insert

                 Achtung: 4DOS 5.5c bis 5.52a gehen offenbar davon aus, da
                 Novell DOS 7 keinen Region-Support bietet, insofern wird
                 eine Fehlermeldung ausgegeben: "No UMB-regions defined.
                 Switches ignored."
                 Dies wird wohl in einem zuknftigen Update gefixt. Auf die
                 gleichwertigen Parameter whrend der CONFIG.SYS-Bearbeitung
                 hat dieses Problem natrlich keinen Einflu. Fr das Laden
                 in UMBs (nur hierfr, da sonst die temporre Kopie von
                 COMMAND den Speicher fragmentieren wrde) bietet sich - in
                 obigem Beispiel - folgendes Workaround an:

                  COMMAND /c LH /l:2 DOSKEY /insert

                 Noch ein Hinweis: Jedes Programm, das installiert wird,
                 bekommt vom System eine Umgebung zugewiesen. Die meisten
                 residenten Programme bentigen diese Umgebung jedoch
                 nach der Installation berhaupt nicht mehr. Daher geben
                 umsichtig programmierte TSRs den Umgebungsblock auch
                 wieder frei (viele TSRs machen aber noch nicht einmal das).
                 Das Ganze hat trotzdem den Nachteil, da der Speicher durch
                 kleine ungenutzte Speicherbereiche fragmentiert wird.

                 Daher sollte man beim Laden aller TSR-Programme, die nicht
                 in der Lage sind, Programmcode in ihren Umgebungsbereich
                 zu relozieren (das knnen leider nur sehr wenige) die
                 folgenden Tricks zur Optimierung des Speicherverbrauchs
                 beherzigen (dies ist natrlich nicht nur an LH etc. ge-
                 bunden):

                   Die Umgebung mglichst klein halten, solange
                    residente Programme geladen werden. D.h. die SET
                    Anweisungen mglichst erst am Schlu der AUTOEXEC.BAT
                    einsetzen (ist leider nicht fr alle Umgebungsvariablen
                    praktikabel). 4DOS/NDOS bieten mit dem SETLOCAL und
                    UNSET * Kommando eine Mglichkeit, die Umgebung temporr
                    zu lschen (siehe 4DOS5TIP.TXT). Fr CONFIG.SYS gibt es
                    mit SETENV.COM eine quivalente Mglichkeit, siehe
                    INSTALL= etc. in Kapitel III.1 und im Archiv SETENV.ZIP.
                    In seltenen Einzelfllen mag auch das Gegenteil sinnvoll
                    sein: Eine sehr gro 'aufgeblasene' Dummy-Umgebung,
                    die vom TSR wieder freigegeben wird, erzeugt auch ein
                    'groes Loch' im Speicher, in das u.U. wieder ein neues
                    TSR hineinpat. Diese Optimierung erfordert allerdings
                    groen Aufwand (und einige Berechnungen anhand der MEM-
                    Ausgaben) und lohnt sich nur, wenn ein TSR ganz knapp
                    nicht mehr hochgeladen werden kann, und mehrere kleine
                    freie Bereiche ehemaliger Umgebungen anderer TSRs
                    existieren, die mindestens diese Gre aufwiegen.

                   Die Aufrufpfade von TSR-Programmen sollten mglichst
                    kurz sein, da an die bergebene Umgebung ab DOS 3.1+
                    auch der Aufrufpfad des Programms angehngt wird. Da
                    diese Funktion innerhalb des Kernels ausgefhrt wird,
                    kann man von auen wenig ausrichten (man mte schon die
                    Exec-Funktion INT21h/4B00h ersetzen oder ndern). Die
                    temporre Aktivierung von SUBST-Laufwerken (um den
                    Aufrufpfad zu verkrzen) ist eine mgliche Lsung,
                    dabei kann man bei Novell DOS 7 (mit LASTDRIVE=32,
                    siehe Kapitel III.1. und III.2) auch die Laufwerke [:
                    bis `: verwenden, um die Belegung der anderen Laufwerke
                    nicht zu stren.

                     Beispiel fr "c:\dir1\dir2\dir3\dir4\dir5\tsr.com":

                      SUBST z: c:\dir1\dir2\dir3\dir4\dir5
                      LH z:tsr.com ...
                      SUBST z: /D

                    In diesem Beispiel wrde der Aufruf 26 Bytes (fr
                    "\dir1\dir2\dir3\dir4\dir5\" gegenber dem direkten
                    Aufruf einsparen. brigens: Die auf den ersten Blick
                    offensichtliche Alternative, einfach nur den Pfad des
                    aktuellen Laufwerks auf das Verzeichnis, in dem das
                    TSR liegt, zu wechseln und es dann als "c:tsr.com"
                    aufzurufen, ntzt leider nichts, da der Pfad intern
                    normalisiert wird und wieder die volle Lnge bekommt.
                    Das Weglassen der Dateiendung bringt keine zustzliche
                    Ersparnis, denn diese wird immer angehngt.

                    Dieser Trick lt sich natrlich auch auf CONFIG.SYS
                    und INSTALLHIGH= etc. anwenden:

                     Beispiel fr "c:\dir1\dir2\dir3\dir4\dir5\tsr.com":

                      INSTALL=c:\nwdos\subst.exe b: ...
                                             ... c:\dir1\dir2\dir3\dir4\dir5
                      INSTALLHIGH=b:tsr.com ...
                      INSTALL=c:\nwdos\subst.exe b: /D

                    In diesem Fall kann man natrlich nicht auf Laufwerke
                    ausweichen, die mit LASTDRIVE= definiert werden.
                    SUBST arbeitet jedoch auch mit bereits belegten Lauf-
                    werken, so da sich hier Laufwerk B: anbietet (da Lauf-
                    werk A: und C: sowie andere Laufwerke oberhalb von C:
                    in der Boot-Phase zum Laden von Programmen referenziert
                    werden knnten).

   IF            Dieser Befehl ist inklusive vieler seiner Erweiterungen
                 im DOSBOOK beschrieben. Hinzuzufgen ist, da man die
                 Konstruktionen mit AND durch IF und die Konstruktionen
                 mit OR durch eine andere Logik im Batchjob ersetzen
                 sollte, damit Batchjobs auch unter MS-DOS und 4DOS/NDOS
                 laufen (Genausowenig sollte man 4DOS .AND. und .OR.
                 anwenden, die ansonsten mit AND, OR identisch ist).

                 Neben den im DOSBOOK beschriebenen Vergleichsoperationen
                 "=", "==" (fr 'gleich'), "<>" und "!=" (fr 'ungleich')
                 kann man allerdings auch noch die nur in der COMMAND.COM
                 internen Hilfe (IF /?) aufgelisteten Vergleichsoperationen
                 ">" ('grer'), "<" ('kleiner'), ">=" ('grer-gleich')
                 und "<=" ('kleiner-gleich') verwenden! Um mglichst hohe
                 Kompatibilitt zu anderen Kommandoprozessoren herzustellen,
                 sollte man jedoch stattdessen in der Praxis die Ungleich-
                 heit durch ein vorangestelltes NOT ausdrcken und entweder
                 auf alle Vergleichsoperationen, die '>' oder '<' enthalten,
                 verzichten oder wenigstens vorher sicherstellen, da
                 diese nur unter Novell DOS 7 COMMAND.COM ausgefhrt
                 werden. Andere Kommandozeileninterpreter werten diese
                 Zeichen als Umleitung und dies kann zu schweren Fehlern
                 bis hin zum Datenverlust durch berschriebene Dateien
                 fhren. Eine partielle Abhilfe (bei vernderter Funktion)
                 ist aber evtl. durch geschickte Verwendung von doppelten
                 Anfhrungszeichen mglich (nicht ausprobiert).

                 Die gleichwertigen Vergleichsoperationen EQ, NE, LT, GT,
                 LE und GE, die CCI Multiuser DOS und 4DOS/NDOS bieten,
                 untersttzt Novell DOS 7 nicht. Ebenfalls fehlen die von
                 CCI Multiuser DOS bekannten Erweiterungen wie

                  IF KEY ["message"] == char

                 oder gar die Kurzschreibweise fr IF ERRORLEVEL mittels
                 ON in der Form "ON [ERRORLEVEL] code [GOTO] label".
                 Multiuser DOS bietet hier noch einige weitere Ergnzungen,
                 die hier nicht nher aufgelistet werden.

                 Die Syntax zum Vergleich zweier Zahlenwerten beginnt
                 auf beiden Seiten des Vergleichs mit einem Doppelkreuz
                 '#'. Interessant daran ist, da die hier behandelten
                 Werte offenbar immer erst auf ganze Zahlen gerundet
                 werden, d.h. #7,1 oder #7.1 wird wie #7 behandelt.
                 Nachkommastellen fallen einfach unter den Tisch.

                 Die obigen Vergleichsoperationen (auch die Relationen)
                 knnen nicht nur auf derartige Werte, sondern auch auf
                 Zeichenketten angewendet werden! In diesem Fall werden
                 die beiden Zeichenketten entsprechend der landes-
                 spezifischen Sortierreihenfolge miteinander verglichen.

                 Ein paar Beispiele:                 Ausgabe:

                  IF #7   >= #7.1 ECHO Achtung!!!    Achtung!!!
                  IF #7,1 = #7.1  ECHO Richtig!!!    Richtig!!!
                  IF "A"  >= "B"  ECHO Falsch!!!     --
                  IF "BA" >= "BB" ECHO Falsch!!!     --
                  IF "A"  >= "AB" ECHO Falsch!!!     --

                 Achtung: Normalerweise ist die Auswertung der Argumente
                 case-sensitiv, d.h. Gro- und Kleinschreibung werden
                 unterschieden. Dies ist wichtig zu wissen, da der IF-
                 Befehl gerade oft zur Auswertung von Umgebungsvariablen
                 herangezogen wird (hierzu siehe SET= in Kapitel III.1.).
                 Bei CCI Multiuser DOS gibt es ein internes Kommando
                 namens CASE [<ON>|OFF], mit dem man whlen kann, ob die
                 Auswertung keine Fallunterscheidung machen soll.

                 Zu IF ERRORLEVEL ist anzumerken, da durch die Abfrage des
                 Errorlevels der Errorlevel *nicht* auf Null zurckgesetzt
                 wird, wie dies hufig vermutet wird. Diese Annahme liegt
                 deshalb nahe, weil die betriebssysteminterne Variable des
                 Exitcodes INT21h/4Dh (und damit auch dessen Realisierung
                 in Programmiersprachen) sehr wohl mit der Abfrage zurck-
                 gesetzt wird. COMMAND.COM (als auch 4DOS) speichern diesen
                 Wert jedoch vorher in eine eigene Variable um, daher ist
                 IF ERRORLEVEL nicht betroffen.

                 Bei Novells (und DR DOS 6.0) COMMAND.COM kann - wie nur
                 teilweise dokumentiert - eine beliebige Anzahl von Gleich-
                 heitszeichen auch bei

                  IF ERRORLEVEL [=|==] errlvl
                  IF EXIST [=|==] filespec
                  IF DIREXIST [=|==] dirspec

                 verwendet werden. Zumindest unter einigen MS-DOS/PC-DOS
                 und DR DOS COMMAND.COM Versionen ist dies ebenfalls mglich
                 (DIREXIST nur bei Novell DOS und DR DOS 6.0). "IF EXIST"
                 arbeitet bei Novell DOS (wie auch MS-DOS/PC-DOS) auch mit
                 versteckten Dateien, hingegen wurden bei DR DOS (ausge-
                 nommen die DR DOS 6.0 Updates ab 1992) versteckte Dateien
                 ignoriert. Trotzdem wird auch bei "IF ERRORLEVEL ==" auf
                 ">=" ('grer-gleich') getestet! Dieser Unterschied in der
                 Semantik ist meistens nicht tragisch, sollte aber trotzdem
                 bei der Programmierung von Batchjobs bercksichtigt werden
                 (denn 4DOS/NDOS unterscheidet hier sehr wohl...).
                 IF ERRORLEVEL 0 ist eine immer erfllte Bedingung.

                 Novells COMMAND.COM akzeptiert auch negative Zahlen-
                 angaben, dabei entspricht

                  -1=255, -2=254, -3=253 ... -255=1.

                 Und Errorlevel-Angaben oberhalb 255 werden modulo 256 auf
                 den Bereich von 0..255 zurckgefaltet, so da die Angabe
                 999 als 231 interpretiert wird.

                 Und wie bekommt man die Errorlevel heraus?

                   Siehe BATTIPS.TXT und ERRORLVL.BAT

                   Das Programm unter Kontrolle von DEBUG aufrufen:

                     DEBUG program parameter

                    und dann am Prompt das Kommando -G absetzen, damit
                    DEBUG das Programm wie normal abarbeitet. Bei der
                    Beendigung wird der Errorlevel angezeigt. Bezglich
                    DEBUG siehe auch Kapitel II.5.

                 brigens: Novells COMMAND.COM erlaubt, wie 4DOS/NDOS, die
                 Verwendung des IF Befehls auch direkt am Prompt. Normaler-
                 weise ist dieser Befehl nur in Batchjobs verfgbar und wird
                 z.B. am Prompt von MS-DOS als ungltig zurckgewiesen.

   MD/MKDIR      Nicht offensichtlich sind zwei Eigenschaften dieses
                 Befehls:

                 - Der Befehl kann nur ein Verzeichnis auf einmal er-
                   zeugen, d.h. wenn man einen lngeren Pfad zu einem zu
                   erstellenden Verzeichnis angibt, mu der gesamte Ast
                   bis dahin bereits existieren. (Dies liee sich bei
                   OpenDOS noch verbessern.)

                 - Da der Befehl - im Gegensatz zu 4DOS/NDOS - bei
                   COMMAND.COM nur einen Parameter erwartet, erffnet
                   sich die Mglichkeit, auch mehrere angegebene Parameter
                   als einen Parameter zu interpretieren und auf diese
                   Weise sogar Verzeichnisse erzeugen zu knnen, die
                   Leerfelder enthalten. Unter MS-DOS knnen solche
                   Verzeichnisse auf legale Weise nicht erstellt werden,
                   deshalb sollten Sie auch hier auf diese Mglichkeit
                   verzichten. Beispiel:

                    MD c:\a b c

                   erzeugt ein Verzeichnis namens "c:\a b c", d.h. mit
                   zwei Leerfeldern! Derartige Verzeichnisse lassen sich
                   zwar mit RD/RMDIR wieder lschen und sind im Prinzip
                   ganz normal ansprechbar, das Problem ist nur, das die
                   anderen Kommandos Leerfelder als Trenner zwischen
                   Parametern auffassen und Sie groe Schwierigkeiten
                   bekommen werden, von auen auf dieses Verzeichnis oder
                   seinen Inhalt zuzugreifen (was man natrlich in Einzel-
                   fllen als Feature auffassen knnte). Mit dem Norton
                   Commander (NC) knnen Sie dieses Problem jedoch ber-
                   brcken und danach innerhalb des Verzeichnisses mit
                   relativen Pfadangaben ganz normal operieren.

   PATH          Die Verwendung des Befehls PATH drfte bekannt sein (siehe
                 DOSBOOK). Bentigen Sie lngere %Path%-Angaben, als ber
                 die Kommandozeile mglich sind, knnen Sie die Umgebungs-
                 variable %Path% auch (direkt) an PATH vorbei mit einer
                 Suchliste belegen. Dazu mssen Sie lediglich ein kleines
                 Programm schreiben, das den Eintrag des *Master*-Environ-
                 ment verndert. Aber Vorsicht: Es gibt (glcklicherweise
                 nur wenige) Programme, die mit PATH-Angaben ber 128
                 Zeichen nicht zurechtkommen (etwa Windows 3.0 oder
                 Checkit). Ab einer gewissen Lnge sollten Sie aus
                 Performance-Grnden die Suche ber %Path% um Substitut-
                 Laufwerke und Programmaufrufe ber Batchjobs in einem
                 Batch-Verzeichnis (C:\BAT etc.) erweitern (welches
                 natrlich in %Path% vorkommt, am besten sogar noch vor
                 dem DOS-Verzeichnis).
                 Mit Pawrtern geschtzte Verzeichnisse knnen nicht in der
                 Pfadauflistung vorkommen, da die Angabe eines Pawortes
                 mit Semikolon bei PATH anders interpretiert wrde.

   PROMPT        Der Befehl PROMPT, der auch ber die Variable %Prompt%
                 eingestellt werden kann, ist bei Novell DOS teilweise
                 undokumentiert erweitert. Hier folgt die fehlende Be-
                 schreibung:

                 $x  Wenig bekannt ist, da durch die Angabe von $x im
                     Prompt vor jeder Rckkehr von *externen* Kommandos
                     und Programmen zum Prompt ein Kommando abgearbeitet
                     wird, da in der Variable %PExec% definiert ist (in
                     der Online-Hilfe wird flschlicherweise %Exec% ange-
                     geben und es wird behauptet, da der Befehl jedesmal
                     vor der Anzeige des Prompts ausgefhrt wird, z.B.
                     DISKMAP wie in Kapitel II.4. beschrieben).
                     Fr dieses Kommando kann natrlich auch ein Batchjob
                     verwendet werden. (Leider bietet selbst 4DOS 5.52a
                     diese Mglichkeit noch nicht; ein partielles Work-
                     around ist mit der %@Exec[]% Funktion von 4DOS mglich.
                     $x und $X haben dort eine andere Funktion.)

                 $-  Teilweise undokumentiert sind die beiden Token $- und
                     $_: Gibt man nur PROMPT (ohne Parameter) an, so er-
                     scheint der Default-Prompt wie mit $n$g, d.h. es ist
                     nicht mglich, den Prompt ganz verschwinden zu lassen.
                     Gibt man nun als ersten und einzigen Parameter PROMPT
                     $- an, so wird der Prompt ganz abgeschaltet (siehe
                     auch bei ECHO in diesem Kapitel).
                     Ist $- einer von mehreren Parametern, so wird er
                     ignoriert, d.h. durch eine leere Zeichenkette ersetzt.
                     (Mit 4DOS 5.52a wurde diese Mglichkeit offenbar ein-
                     gebaut, wenn sie auch noch nicht dokumentiert ist.)

                 $_  Die Angabe von $_ bewirkt hingegen, da in eine neue
                     Zeile gesprungen wird (CR/LF). Dies ist besonders hilf-
                     reich, wenn es als erster Token fr PROMPT angegeben
                     wird, hat allerdings auch den Nachteil, da die oberste
                     Zeile von Bildschirmausgaben, die genau auf eine Seite
                     formatiert sind, weggescrollt wird.

                 $u  Ausschlielich in der Hilfe von SETUP ist der Parameter
                     $u dokumentiert, der den Benutzeranmeldenamen ausgibt.
                     Wie dies dann allerdings vonstatten gehen soll, findet
                     der geneigte Leser nirgendwo - auer hier:
                     Der Inhalt der reservierten und undokumentierten Umge-
                     bungsvariable %LoginName% wird online an Stelle des
                     $u eingebaut, d.h. wenn sich dieser Wert whrend einer
                     Session ndert, pat sich auch der PROMPT bei der
                     nchsten Zeile sofort daran an. Da man diese Mglich-
                     keit nicht hat, wenn man Umgebungsvariablen bei der
                     Definition des PROMPT-Befehls benutzt (der PROMPT
                     bleibt dann fix auf die zu diesem Zeitpunkt gltigen
                     Werte eingestellt), bietet sich hier - auch fr ganz
                     andere Zwecke - eine interessante Option. (4DOS erlaubt
                     ganz regulr, Umgebungsvariablen im Prompt zu ver-
                     wenden, aber unter Novells COMMAND geht es ber die
                     Definition von %LoginName% nun auch.)
                     %LoginName% darf keinesfalls mit der verwandten Pseudo-
                     Umgebungsvariable %Login_Name% verwechselt werden!
                     Wenn man sich ins Netz einloggt, wird %Login_Name%
                     im Rahmen der Mglichkeiten darauf eingestellt,
                     %LoginName% bleibt jedoch davon vllig unbeeinflut.
                     (4DOS 5.52a bietet diese spezielle Mglichkeit noch
                     nicht.) Siehe auch Kapitel IV.7.

                 $g  Wie in Kapitel II.1. ausfhrlich erlutert, ndert
                     PROMPT den ersten '\' in der Verzeichnisausgabe in
                     ein '/', wenn der SwitChar nicht auf '/' eingestellt
                     ist. Siehe auch bei CD/CHDIR.

                 $h  (Unter 4DOS (getestet mit 5.52a) gibt es eine Ein-
                     schrnkung, die bei Novells COMMAND.COM nicht zum
                     Tragen kommt, da Variablen whrend des PROMPTs sowieso
                     nicht ergnzt werden. Bei 4DOS kann $h nur bis zur
                     nchstrckwrtigen Grenze einer expandierten Variable
                     oder Funktion rckwrts gehen.)

                 $m  (Multiuser DOS verwendet dies in Verbindung mit der
                     Variable %MAIL% fr die Anzeige von Post.)

   REM           Der REM-Befehl funktioniert, wie auch der Doppelpunkt,
   :             direkt am Prompt und wird einfach ignoriert. (Das Semi-
                 kolon hat in diesem Zusammenhang eine *andere* Funktion
                 und ist hier kein Alias fr REM. Siehe oben.)
                 Enthlt eine Pseudo-Kommentarzeile mit Doppelpunkt eine
                 Umleitung, so wird diese ignoriert, d.h. es gibt nicht
                 die blicherweise damit auftretenden Probleme (auch nicht
                 unter MS-DOS), fr solche Zwecke hat sich ein verdoppeltes
                 :: eingebrgert, ist aber nicht vorgeschrieben.
                 Achtung: Da der Kommandoprozessor berlange Zeilen mit
                 mehr als 123 Zeichen abschneidet und den Rest als neue
                 Zeile betrachtet, mssen Sie bei berlangen Kommentaren
                 entweder ein weiteres REM oder einen Doppelpunkt einfgen
                 oder von vornherein den Kommentartext auf mehrere Zeilen
                 aufteilen. Dieses Verhalten ist ein dokumentiertes Ver-
                 halten von CCI Multiuser DOS 7, also kein Fehler. Angeblich
                 mu ein Doppelpunkt, der eine Marke einleitet, immer in
                 der ersten Spalte stehen (laut CCI Multiuser DOS Dokumenta-
                 tion), die Praxis zeigt aber, da dies nicht zwingend
                 notwendig ist.
                 brigens gibt es einen weiteren Unterschied zwischen REM
                 und dem Doppelpunkt. Da der Doppelpunkt eigentlich fr
                 Marken gedacht ist, werden solche Zeilen auch mit "ECHO on"
                 oder im Einzelschrittbetrieb nicht ausgegeben, REM-Zeilen
                 jedoch sehr wohl.
                 (MS-DOS 2.xx und 3.xx erlaubten (angeblich) die Verwendung
                 eines Punktes als Alias fr REM, dies funktioniert unter
                 Novells COMMAND.COM und unter 4DOS/NDOS jedenfalls nicht.)

                 Es gibt noch eine Besonderheit zu beachten: Aus Kompatibi-
                 litt zu MS-DOS wertet auch Novells COMMAND.COM Umleitungen
                 (mit '>', '>>', '<' oder '|') auch in REM-Zeilen aus, etwa:

                  REM | DIR *.*

                 wird also nicht etwa ignoriert, sondern fhrt DIR *.* aus
                 (siehe auch Kapitel IV.6.).

   RD/RMDIR      Nicht offensichtlich sind zwei Eigenschaften dieses
                 Befehls:

                 - Der Befehl kann nur ein Verzeichnis auf einmal lschen,
                   d.h. wenn man einen lngeren Pfad zu einem leeren
                   Verzeichnis angibt, so wird nur der letzte Ast des
                   Baums gekappt und nicht der gesammte angegebene Pfad,
                   selbst wenn dieser leer sein sollte und keine weiteren
                   Verzeichnisse einhlt. Dieses Verhalten ist auch
                   wnschenswert, da die gewnschte Aktion sonst nicht
                   eindeutig anhand des Parameters festgelegt werden
                   knnte.

                 - Da der Befehl - im Gegensatz zu 4DOS/NDOS - bei
                   COMMAND.COM nur einen Parameter erwartet, erffnet
                   sich die Mglichkeit, mehrere angegebene Parameter
                   als einen Parameter zu interpretieren und auf diese
                   Weise auch Verzeichnisse lschen zu knnen, die
                   Leerfelder enthalten. Unter MS-DOS knnen solche
                   Verzeichnisse auf legale Weise gar nicht erst erstellt
                   werden, unter DR DOS und Novell DOS ist dies jedoch
                   mit dem Befehl MD/MKDIR durchaus erlaubt, wenn auch
                   undokumentiert:

                    RD c:\a b c

                   wrde z.B. das Verzeichnis namens "c:\a b c" lschen,
                   das oben (bei MD/MKDIR) erstellt wurde.

   REN/RENAME    Der Rename-Befehl kann auch ber die Verzeichnisgrenzen
                 hinweg ausgefhrt werden, solange es sich bei Quelle und
                 Ziel physikalisch um dasselbe Laufwerk handelt (d.h. auch
                 Substitut-Laufwerke etc. werden korrekt bercksichtigt).
                 In diesem Fall mu nur eine nderung der Verzeichnis-
                 struktur bewerkstelligt werden, die Datei selbst bleibt
                 aber an der gleichen physikalischen Stelle auf der Fest-
                 platte. Dadurch ist dieses Kommando sehr schnell.

                 Ein gesetzter Pawortschutz wird wie die Attribute auf die
                 neue Datei bertragen (auch bei 4DOS).

                 Im Vergleich dazu wirkt der externe MOVE Befehl anders,
                 siehe Kapitel II.4.

                 REN/RENAME bietet noch eine undokumentierte Option /C
                 'Confirm', die von CCI Multiuser DOS her bekannt ist.
                 Gibt man sie an (im Zweifelsfall nach den beiden Datei-
                 spezifikationen), so fragt der Befehl vor dem Ausfhren
                 jeweils nach, ob dies auch wirklich gewnscht ist.

   SWITCH        Leider ist COMMAND.COMs SWITCH nicht genauso erweitert,
                 wie die Realisierung in CONFIG.SYS. Es gibt keine Zeit-
                 schranke, dementsprechend auch keinen Default-Wert, und
                 es werden wirklich nur maximal 9 Sprungziele akzeptiert.

   TIME          In Verbindung mit Umleitungen siehe auch Kapitel IV.6. und
                 Kapitel IV.1.
                 Die zustzlichen Optionen von CCI Multiuser DOS 7.22 Gold
                 /B (fr Betrieb in Batchjobs), /E (zum Setzen der Umge-
                 bungsvariablen %TIME% und %ELAPSED%) und /G (fr seknd-
                 liche Piepser in Verbindung mit /C) bieten Novell DOS 7
                 und Caldera OpenDOS 7.01 COMMAND.COM noch nicht, dies
                 liee sich aber leicht implementieren.

   TRUENAME      Undokumentiert (das Kommando fehlte in den ursprnglichen
                 Ausgaben von DR DOS 6.0 und Novell DOS 7; wurde aber sowohl
                 bei DR DOS, als auch sptestens mit Novell DOS Update 8
                 nachtrglich eingebaut). Entspricht direkt dem Ergebnis der
                 zugehrigen API-Funktion, die auch schon in frhen Ausgaben
                 von Novell DOS 7 implementiert war, die den TRUENAME-Befehl
                 selbst noch nicht kannten.
                 Gibt den komplett expandierten, physikalischen Pfad zu
                 einer Datei an, um damit Doppeldeutigkeiten aufzulsen
                 (etwa bei SUBST, JOIN, ASSIGN, MAP). Dateimasken werden auf
                 "?"-Masken expandiert.
                 Siehe auch MSDOSTIP.TXT. Das TRUENAME-Verhalten hat sich
                 im Laufe der Zeit (im Zuge von Updates) leicht verndert,
                 siehe HISTORY.TXT.
                 Netzlaufwerke werden normalerweise in UNC-Notation (siehe
                 Kapitel VI.10.) ausgegeben und CD-ROM-Laufwerke entweder
                 als "\\X.\A.\filename" (wobei der zugeordnete Laufwerks-
                 buchstabe hier durch X und die Nummer des CD-ROM-Laufwerks
                 mit A dargestellt wird, bei MSCDEX und neueren Versionen
                 von NWCDEX) oder "Cdex. X:\filename" bei lteren Ausgabe
                 von NWCDEX. Ldt man MSCDEX mit der Option /S, so ndert
                 sich zwar in der CDS (Current Directory Structure) nichts
                 an diesem Eintrag, bei TRUENAME wird aber jetzt eine
                 normale Pfadangabe zurckgeliefert "X:\filename".

   TYPE          Bei vielen Kommandoprozessoren erlaubt der TYPE-Befehl
                 nicht die Angabe von Wildcards, stattdessen mu man auf
                 COPY ausweichen, z.B.:

                  COPY *.bat CON
                  COPY *.txt CON | MORE

                 Entgegen der Dokumentation und manchen Fremdpublikationen
                 akzeptiert COMMAND.COM von DR DOS 6.0 und Novell DOS 7
                 auch bei TYPE Wildcards:

                  TYPE *.bat
                  TYPE *.txt /P

                 Gibt man Wildcards an, so wird vor der Ausgabe jeder
                 Datei der entsprechende Dateiname ausgegeben. In diesem
                 Zusammenhang gibt es eine interessante Besonderheit:

                 Unter Singleuser-Varianten ist standardmig zunchst
                 nichts besonderes zu erkennen, unter Multiuser-Varianten
                 werden die angegebenen Dateinamen jedoch invertiert an-
                 gezeigt. Und zwar existieren unter Multiuser DOS zwei
                 Variablen namens %$On% (RevOn) und %$Off% (RevOff), die
                 blicherweise mit den Werten "Esc p" und "Esc q" belegt
                 sind. (Diese beiden Sequenzen werden von dem stark
                 erweiterten ANSI-Treiber ausgewertet, der unter
                 Multiuser DOS ein fester Bestandteil des Systems ist.
                 Der bei Novell DOS mitgelieferte ANSI.SYS-Treiber versteht
                 diese Sequenzen nicht!) Der Wert von %$On% wird unmittelbar
                 vor jedem Dateinamen auf der Konsole ausgegeben, der Wert
                 von %$Off% unmittelbar danach. Auf diese Weise ist eine
                 Steuerung der Farbe und der Attribute mglich.

                 Hat man jedoch in der Singleuser-Variante ebenfalls einen
                 ANSI-Treiber geladen, so kann man diese beiden Variablen
                 manuell mit passenden Steuersequenzen belegen (%$On% und
                 %$Off% existieren seit DR DOS 3.41 COMMAND.COM). Da die
                 Eingabe von beliebigen Zeichencodes nicht in jedem Editor
                 mglich ist und es zu Problemen bei der Bearbeitung von
                 Batchjobs kommen knnte, die Codes auerhalb des
                 Repertoires fr normale Wrter enthalten, gibt es eine
                 optionale Syntax, die die Angabe eines dreistelligen
                 Oktalwertes fr den Zeichencode erlaubt:

                  SET $On=\033[1m
                  SET $Off=\033[0m
                  TYPE *.*

                 Dieses Beispiel sorgt dafr, da die Dateinamen hervor-
                 gehoben dargestellt werden. Natrlich knnen Sie diese
                 Variable auch verwenden, um einen Banner auszugeben oder
                 einen Seitenvorschub auszulsen... Dies funktioniert
                 auch dann noch, wenn Sie die Ausgabe des TYPE-Befehls
                 in eine Datei oder auf ein Gert umleiten! Siehe auch
                 bei CLS und in Kapitel IV.7.

   VER           Der Befehl VER von Novell DOS 7 (und DR DOS) gibt die
                 Novell DOS/DR DOS Versionsnummer aus. Dabei hngt das
                 Ergebnis vom Inhalt der Umgebungsvariable %Ver% ab.
                 Dieser Wert wird bei Start von COMMAND.COM auf "7" (bei
                 Novell DOS) gesetzt (7.01 bei Caldera OpenDOS 7.01 trotz
                 %Ver%=7; das .01 wird festverdrahtet angehngt). ndert
                 man diesen Wert, so wird eine entsprechend andere Angabe
                 angezeigt. Ist %Ver% nicht definiert (wie z.B., wenn man
                 COMMAND.COM durch 4DOS.COM ersetzt - also nicht nur
                 berldt), so gibt VER (von COMMAND.COM) gar nur
                 "Novell DOS" aus. Weitere Hinweise zur Belegung der
                 Variable %Ver% unter den einzelnen Versionen finden sich
                 in Kapitel IV.7.
                 Die Pseudo-Umgebungsvariable %OS_Version% bernimmt
                 brigens ebenfalls den Wert von %Ver% (falls definiert),
                 wenn auch nicht umgekehrt, siehe Kapitel IV.7.

   VERIFY        Ohne Angabe von Parametern gibt VERIFY, wie auch BREAK
                 und ECHO den aktuellen Status in einer bestimmten Syntax
                 aus, die man sehr vorteilhaft in Batchjobs zum Zwischen-
                 speichern des Status verwenden kann.
                 Nheres hierzu bei BREAK.

                                                                             
  ---------------------------------------------------------------------------

  II.12. Hinweise zu Editieren am COMMAND.COM Prompt: [97-02-21]
  ==============================================================

   Stichworte: COMMAND.COM, HISTORY=, PROMPT, berlange Eingabezeile

   Besonders mit lngeren Anzeigen des Prompts (ber PROMPT), etwa bei
   tief verschachtelten Unterverzeichnissen kommt es fters vor, da man
   die Zeilenlnge von z.B. 80 Zeichen berschreitet und die Eingabe in der
   nchsten Zeile fortsetzen mu. Dies ist im Prinzip kein Problem, aller-
   dings kann man den Cursor unter COMMAND.COM selbst in Verbindung mit
   HISTORY= nur soweit wieder zurck bewegen, bis man den Anfang der
   aktuellen Zeile erreicht. Damit ist es nicht mglich, Tippfehler in
   dem Teil der Eingabe zu korrigieren, die noch in der vorherigen Zeile
   stehen. Abhilfe schafft die Bettigung von <Up> gefolgt von <Down>:
   Danach steht die komplette aktuelle Eingabezeile (sofern nicht lnger
   als 80 Zeichen) in der aktuellen Zeile und kann wieder komplett editiert
   werden.

   Falls Sie die CONFIG.SYS Direktive HISTORY=ON gesetzt haben, wirkt
   sowohl am COMMAND.COM Prompt, als auch im Eingabe-Interface von
   kommandozeilenorientierten Applikationen (z.B. DEBUG) eine HISTORY-
   Funktion.
   Diese normalerweise recht praktische Funktion kann allerdings manchmal
   auch strend sein, wenn man die automatische Suchfunktion aktiviert hat
   (ebenfalls ber HISTORY=... oder mittels <Ctrl>+<_> bei Novell DOS bzw.
   <F8> bei DR DOS): Da diese Funktion, falls aktiviert, auch innerhalb
   von Eingabeleitungen funktioniert, fhrt dies oft zur Verflschung
   des Eingabestroms aus der Umleitung. Begrenzt kann man dem entgegen-
   wirken, indem man an das Ende jeder Zeile eine groe Anzahl Leerfelder
   (oder anderer syntaktisch korrekter Zeilen ohne Funktion) setzt (sofern
   der Editor das erlaubt), aber es ist besser, die Suchfunktion vor
   Eingabeumleitungen abzuschalten (bei DEBUG innerhalb des -E Kommandos
   ein zustzliches Komma am Schlu, z.B. "-Exxxx:yyyy,zz,").

   Weitere Hinweise zur Editierung auch bei HISTORY= (Kapitel III.1.)
   und DOSKEY (Kapitel II.4.).

   Unter 4DOS/NDOS ergibt sich dieses Problem erst gar nicht, da man
   problemlos die gesamte Zeile editieren kann.

   Weitere Hinweise zur Kommandozeilen-Syntax siehe Kapitel II.11.

                                                                             
  ---------------------------------------------------------------------------

  II.13. Patchen der US-Version auf deutsche Ja/Nein-Abfragen: [96-05-30]
  =======================================================================

   Stichworte: IBMBIO.COM, IBMDOS.COM, YESCHAR=, J/N, Y/N, O/N, S/N, DEBUG

   Hufig stellt sich das Problem, da nach einem US-Update die deutsche
   Grundversion nach Y/N statt nach J/N fragt. Innerhalb von CONFIG.SYS
   kann man dem mit der undokumentierten Direktive YESCHAR= abhelfen, deren
   Einstellung aber leider nicht in das System bernommen wird (knnte sich
   in Zukunft evtl. ndern).

   Stattdessen gibt es die Mglichkeit, die Kerneldateien direkt umzu-
   patchen, dazu ist eigentlich nur eine nderung ntig, aber in dem
   folgenden Beispiel werden direkt Ngel mit Kpfen gemacht und zwei (von
   drei) Vorkommnisse von 'Yy' zu 'Jj' umgepatcht. Dieser Patch sollte mit
   jedem US-Update fr Novell DOS 7 funktionieren.

   Leider werten die Novell DOS eigenen Kommandos (etwa DEL *.*, DEL /C,
   ERASE /C, ERA/C, DELQ, ERAQ, COPY /C, <Del> im TASKMGR und viele andere
   ) die zugehrige DOS-Funktion berhaupt nicht aus, so da hier weiterhin
   Y/N erscheint...
   Knnte sich ebenfalls in Zukunft ndern (bezglich externer Kommandos
   sei auch Kapitel II.16. verwiesen).
   Falls nicht, mten COMMAND.COM und die betreffenden externen Programme
   auch gepatcht werden (wozu sie meistens mit "PKLITE filespec -x" ent-
   packt werden mssen, dann mit DEBUG an den passenden Stellen gendert
   und danach mit "PKLITE filespec" wieder gepackt werden mten).
   Im folgenden wird der Patchvorgang nur fr IBMBIO.COM und IBMDOS.COM
   geschildert:

   Achtung: Diesen Patch nicht auf die Originale, sondern auf Kopien
            anwenden. Vorher mssen die Dateiattribute HRS gelscht werden.

    >DEBUG                   Eingaben (auer '-' Prompt-Eingaben)
    -Nibmbio.com             <RET>
    -L                       <RET>
    -Scs:100 cx+100 59 79    <RET>
    ????:<xxxx>
    -E<xxxx>                 <RET> (xxxx bernehmen)
    ????:<xxxx>   59.        4A <SPACE>
    ????:<xxxx>+1 79.        6A <RET>
    -W
    -Nibmbio.com             <RET>
    -L
    -Scs:100 cx+100 59 79    <RET>
    ????:<yyyy>
    ????:<zzzz>
    ; Achtung! Das erste Vorkommnis in dieser Datei nicht verwenden. Fhrt
    ; aus ungeklrten Ursachen zu Problemen beim Booten.
    -E<zzzz>                 <RET>
    ????:<zzzz>   59.        4A <SPACE> (zzzz bernehmen)
    ????:<zzzz>+1 79.        6A <RET>
    -W
    -Q


   Nun knnen - nach einer berprfung und mit einer Boot-Diskette in
   Reichweite - die Originaldateien berschrieben werden und die Attribute
   HRS wieder gesetzt werden. YESCHAR= ist nun auch nicht mehr notwendig.

                                                                             
  ---------------------------------------------------------------------------

  II.14. Hinweise zu VERIFY: [96-04-01]
  =====================================

   Stichworte: VERIFY, NWCACHE

   Es gibt verschiedentlich Hinweise, da die Einstellung VERIFY ON|OFF
   bei MS-DOS fr den DOS-Kernel selbst keinen Einflu hat, sondern optional
   nur durch externe Gertetreiber verwendet wird. Da die Daten zumindest
   auf Festplatten sowieso durch Prfsummen gesichert werden, wird hufig
   empfohlen, VERIFY OFF zu setzen (Ich arbeite persnlich allerdings lieber
   mit VERIFY ON).
   Bei MS-DOS sind (ohne Platten-Cache) mit VERIFY ON|OFF gewisse Unter-
   schiede in der Performance festzustellen, die bei Novell DOS nicht so
   stark ausfallen, aber dort generell eher langsam sind (also wie mit
   VERIFY ON). ber den im Vergleich zu MS-DOS relativ zgerlichen Fest-
   platten- und Floppy-Zugriff unter DR DOS und Novell DOS hat es schon
   viel Murren und eine Reihe Spekulationen gegeben. Hufig wird ins Feld
   gefhrt, da DR DOS/Novell DOS offensichtlich auch bei VERIFY OFF
   gewisse berprfungen vornimmt, die zustzliche Zeit beanspruchen.
   Ich kann in dieser Diskussion bezglich VERIFY weder in der einen noch
   in der anderen Richtung etwas beisteuern (ber die Interna mte sich
   mal ein Novellaner uern...), sicher ist jedoch, da NWCACHE offenbar
   mit VERIFY ON nicht in der Lage ist, Schreibzugriffe zu cachen, auch
   wenn diese Option enabled ist (jedenfalls gibt die Statistikbersicht
   immer 0% gesparte Zugriffe aus - siehe Kapitel II.3. und II.4.). Daher
   empfiehlt Novell VERIFY OFF bei Verwendung von NWCACHE oder NetWare-
   Anbindung.

   Ich empfehle das konservative VERIFY ON (Sicherheit ber Geschwindigkeit)
   zu setzen, solange nicht spezielle Grnde dagegen sprechen, wie etwa der
   Zugriff auf manche Netze oder extrem langsame Gerte wie Tape-Streamer.
   NWCACHE ist durchaus in der Lage, auch mit VERIFY ON zu cachen, aller-
   dings bei stark reduzierter Performance. VERIFY OFF kann dazu fhren, da
   Diskettenwechsel nicht richtig erkannt werden, solange man das Laufwerk
   nicht explizit neu betritt (was sich in seltenen Fllen z.B. im NC
   unschn bemerkbar machen kann, in jngsten Updates ist dieses Verhalten
   aber offenbar verbessert worden).

   Hinweise zu anderen performance-fressenden Einstellungen wie Doppel-
   pufferung und Disk-Deblocking siehe Kapitel II.17.

                                                                             
  ---------------------------------------------------------------------------

  II.15. Unter Novell DOS 7 lauffhige MS-DOS 6.22 Kommandos:
  ===========================================================

   Stichworte: MS-DOS 6.22, Kompatibilitt, Versionsabhngigkeiten

   Die folgenden externen Kommandos von MS-DOS 6.22 laufen auch
   unter Novell DOS 7. Leider sind das nur relativ wenige, was an der
   bertrieben pingeligen Versionsabfrage in MS-DOS Kommandos liegt.
   Die meisten Kommandos sind unter Novell DOS 7 sowieso unntz, da
   die eigenen namensgleichen oder -verwandten Kommandos meist mehr
   Mglichkeiten bieten und - wie meine Erfahrung immer wieder zeigt -
   umsichtiger programmiert wurden.

   ADOS (AddOn), CHOICE, COMP, EDIT (QBASIC), DEFRAG (Zukauf),
   DELTREE, DOSSHELL, EXPAND (allg.), FAKEMOUS (AddOn), FASTHELP (unntz),
   GRAFTABL, LABEL, LOADFIX (besser MEMMAX -L), MIRROR (Zukauf: Central
   Point PC-Tools), MOVE, MSAV (Zukauf), MSCDEX (allg.), MSD (allg.),
   MSHERC (allg.), POWER (allg.), PRINTFIX, QBASIC (EDIT), SCANDISK
   (Zukauf), SETNAME (Netz), SETVER (wohl sinnvoll), SMARTDRV (allg.),
   UNDELETE (Zukauf: Central Point PC-Tools), UNFORMAT (Zukauf), VSAFE
   (Zukauf), evtl. noch ein paar mehr.

                                                                             
  ---------------------------------------------------------------------------

  II.16. Landessprachliche Untersttzung: [97-03-25]
  ==================================================

   Stichworte: COUNTRY=, DISPLAY.SYS, MODE, KEYB, Codeseiten, Landescodes,
               Keyboardcodes, Keyboard-IDs, .CPI-Dateien, FONT, DRFONT

   i. Einrichtung von Codeseiten:
   ------------------------------

     Im folgenden Beispiel wird neben der immer verfgbaren Hardware-
     Codeseite (entspricht i. allg. zumindest bezglich der Zeichenzuordnung
     fr jedes Gert der Codeseite 437) eine Software-Codeseite (hier 850)
     eingerichtet.
     Auch wenn in der Dokumentation immer nur von zwei Codeseiten pro Land
     die Rede ist (dies bezieht sich auf die Angaben in COUNTRY.SYS),
     knnen jeweils bis zu 12 Codeseiten (bei MS-DOS nur 6) vorbereitet
     werden. Bezglich der Details bei der Einrichtung von DISPLAY.SYS und
     PRINTER.SYS sei auf Kapitel II.4. verwiesen. Noch einmal: Die Angaben
     der Codeseiten bei den CONFIG.SYS-Treiber DISPLAY.SYS und PRINTER.SYS
     beziehen sich auf die jeweilige Hardware-Codeseiten (wie blicherweise
     auch bei COUNTRY=, siehe Kapitel III.1.).
     Erst die Codeseiten-Angaben bei MODE PREPARE (in AUTOEXEC.BAT) gelten
     fr die vorzubereitenden Codeseiten, d.h. die Codeseiten, mit denen man
     ber die Hardware-Codeseiten hinaus arbeiten mchte.
     Das Vorbereiten *einer* Codeseite erlaubt bereits das Arbeiten mit
     *zwei* Codeseiten:
     Mit der Hardware-Codeseite und mit der vorbereiteten Codeseite,
     zwischen denen man mit CHCP oder MODE SELECT wechseln kann (deshalb
     ist auch die korrekte Angabe der Hardware-Codeseite so wichtig).
     Analoges gilt fr mehr als eine vorbereitete Codeseite.
     Natrlich ist es mglich, auch die Codeseite, die bereits von der
     Hardware-Codeseite benutzt wird, mit einer erst vorzubereitenden
     Codeseite zu berladen. In diesem Fall stammen die Informationen zum
     Umschalten auf diese Codeseite (Fonts, Escape-Sequenzen) nicht mehr
     aus dem Grafikkarten-BIOS (Hardware) oder - bei Druckern - aus dem
     Treiber PRINTER.SYS, sondern aus der mit MODE zugeordneten .CPI-Datei.
     Dies ist besonders dann wichtig zu wissen, wenn Sie eine spezielle
     .CPI-Datei besitzen, die z.B. einen artfremden Drucker ansteuern oder
     in allen Codeseiten eine andere Bildschirm-Schriftart erzeugen soll.
     In diesem Fall drfen Sie nicht vergessen, auch die Codeseite 437
     mittels MODE CODEPAGE PREPARE vorzubereiten und bei DISPLAY.SYS und
     PRINTER.SYS eine Codeseite mehr zu reservieren. Nheres zu diesem
     Themenkomplex findet sich in Kapitel II.4. bei DISPLAY.SYS und
     PRINTER.SYS.

     Fr Details bei der Einrichtung von mehr als einer zustzlichen
     Codeseite oder der Auswahl der Anzahl der untersttzten Fonts sei
     auf das Handbuch und das DOSBOOK verwiesen!

     Hier soll nur einmal anschaulich dargestellt werden, was man in der
     blichen Praxis alles fr Codeseitenuntersttzung bentigt (hufig
     drcken sich die Dokumentatoren gerade um dieses aberwitzig kompli-
     zierte Thema ;-) ):

      CONFIG.SYS:

       ...
       YESCHAR=J
       REM -----------------------------------------------------------------
       REM Hier Codeseite 437 angeben, auch wenn Sie spter mit einer
       REM anderen Codeseite arbeiten wollen, siehe Kapitel III.1. ...
       COUNTRY=49,437,c:\nwdos\country.sys
       REM -----------------------------------------------------------------
       REM Fr EGA-/MCGA-/VGA-Systeme: Wenn Sie ein Zweimonitorsystem be-
       REM sitzen (also zustzlich noch MDA oder HGC), drfen Sie hier keine
       REM Codeseite angeben! Dann wird implizit die Hardware-Codeseite 437
       REM bernommen. Andernfalls erscheint hier eine Fehlermeldung, weil
       REM MDA-/HGC-Karten keine Codeseitenuntersttzung bieten...
       DEVICEHIGH=c:\nwdos\display.sys con=(EGA,,(1,3))
       REM oder einfacher: DEVICEHIGH=c:\nwdos\display.sys con=(EGA,,1)
       REM Statt CON kann man (undokumentiert) auch CON: schreiben.
       REM An die DISPLAY.SYS Zeile kann man (undokumentiert) einen mit
       REM Semikolon abgetrennten Kommentar anhngen.
       REM -----------------------------------------------------------------
       REM Falls Sie (noch) einen Matrixdrucker angeschlossen haben, wird
       REM meist die Epson-FX850/1050 Emulation auch mit Ihrem Drucker
       REM funktionieren (wohingegen die anderen angebotenen Drucker der-
       REM maen selten sind, da man sie getrost htte weglassen knnen).
       REM Glck fr Novell DOS Benutzer, denn bei MS-DOS gibt es berhaupt
       REM keine Untersttzung fr Epson-Drucker (bei PC-DOS 6.1 wurde dies
       REM nachgeholt, um dann mit MS-DOS 7 und PC-DOS 7 den Treiber
       REM PRINTER.SYS ganz wegfallen zu lassen...). Auch hier:
       REM Codeseite 437 whlen, wenn Ihr Drucker auf die blichen US-
       REM amerikanischen Einstellungen konfiguriert ist. Folgendes Beispiel
       REM fr einen Epson-kompatiblen Farbdrucker:
       DEVICEHIGH=c:\nwdos\printer.sys prn=(1050,437,1)
       INSTALLHIGH=c:\nwdos\graphics.com color
       ...

      AUTOEXEC.BAT:

       ...
       REM Hier nun die Codeseiten whlen, mit denen man (optional) arbeiten
       REM mchte (hier 850)... (Bei mehr als einer vorzubereitenden Code-
       REM seite wird die Syntax etwas komplizierter...)
       @MODE con: CODEPAGE PREPARE=((850) c:\nwdos\ega.cpi)
       @MODE prn: CODEPAGE PREPARE=((850) c:\nwdos\1050.cpi)
       REM NLSFUNC ldt sich selbst hoch, sogar in die HMA!
       @NLSFUNC c:\nwdos\country.sys
       REM Wird nur fr echte CGA-Karten bentigt (nicht bei Emulationen
       REM durch EGA-/VGA-Karten). Ist nicht (direkt) fr HGC-Grafiken
       REM geeignet, dafr gibt es allerdings andere Treiber auf dem Markt.
       REM @LH GRAFTABL
       REM Auf Standard-Codeseite umschalten...
       CHCP 437
       REM Tastaturtreiber laden (lagert sich normalerweise in HMA aus):
       REM (Eine Alternative zu KEYB ist K3PLUS/FreeKEYB, zu beziehen ber
       REM mich.)
       @KEYB GR+
       ...


   ii. Tips zum 'Nachrsten' fehlender Gerte oder Codeseiten:
   -----------------------------------------------------------

      Der Treiberdatei PRINTER.SYS scheint noch Eintrge fr 3 zustzliche
       Drucker ("anyother") zu besitzt. Durch Vergleich der Dateien aus
       DR DOS 3.40 bis Novell DOS 7 kann man feststellen, da die Unter-
       schiede nur minimal sind. Mit etwas bung sollte es mglich sein,
       den Treiber so zu patchen, da er auch andere Namen als "1050",
       "4201", "4208" oder "5201" akzeptiert.
       Danach knnte man sich eigene .CPI-Dateien fr ganz persnliche
       Drucker erstellen.
       Eine Sache steht dem allerdings (zumindest fr einige Kombinations-
       mglichkeiten) entgegen: In einigen Fllen (wohl in erster Linie
       fr die Hardware-Codeseite) werden die Escape-Sequenzen fr den
       Drucker direkt aus dem Treiber PRINTER.SYS und nicht aus einer
       .CPI-Datei entnommen. Hier hilft es nur, auch die Hardware-Codeseite
       zu berladen. Aber auch dann, werden - zumindest bei Novell DOS und
       abhngig von gewhlten Druckertyp - offenbar immer noch Teile der
       Sequenzen aus den treiberinternen Tabellen entnommen.
       Gute Erfahrungen mit Novell DOS 7 habe ich mit dem Erstellen von
       .CPI-Dateien gemacht, die den Druckertyp 1050 ersetzen. Das Format
       der .CPI-Datei ist fr diesen Typ zwar nicht ganz so bersichtlich
       wie fr die anderen drei Typen (jeweils noch mit Untertypen), aber
       ist hier definitiv eine 100%ige Ersetzung aller Escape-Sequenzen
       durch Sequenzen aus der .CPI-Datei mglich, eine Grundvoraussetzung
       fr eigene Experimente, wenn die .CPI-Datei nicht nur mit einer
       DOS-Version funktionieren soll. Nachteilig am Typ "1050" ist es,
       da MS-DOS/PC-DOS diesen Typ evtl. nicht kennt. Dort mte man auf
       "4201" ausweichen, was aber unter Novell DOS 7 zu Problemen fhrt.
       Wer eine .CPI-Datei fr die NEC Pinwriter Serie (P6plus (P5200),
       P7plus (P5300), P20/P30, P60/P70, P90, P22Q/P32Q, P62/P72, P42/P52,
       P42Q/P52Q und andere) sucht, kann eine solche Datei von mir anfordern
       (NECPINW.ZIP).

      Bei meinen Untersuchungen habe ich herausgefunden, da das .CPI-
       Format von Novell DOS im Groen und Ganzen eine Erweiterung des
       .CPI-Formates von MS-DOS darstellt: Das Format der Druckerdateien
       ist quasi identisch. Die Display-Fonts ab DR DOS 6.0 sind in einem
       neuen Format abgelegt, das zwar uerlich dem bisherigen Format
       hnelt, aber durch Kompression wesentlich effizienter ist. Bis
       DR DOS 5.0 war das Datenformat sowohl der Drucker- als auch der
       Display-Fonts fast identisch zum MS-DOS "FONT" Format (auer einer
       'falschen' Typkennung in den Drucker-Fonts). Die neuen komprimierten
       Display-Fonts ("DRFONT") von DR DOS 6.0 und Novell DOS 7 sind so
       angelegt, da die .CPI-Dateien nur etwa halb so gro wie die ent-
       sprechenden Dateien von MS-DOS sind, obwohl im Gegensatz zu
       MS-DOS/PC-DOS statt fnf oder sechs Codeseiten mit jeweils drei
       Fonts (8x8, 14x8 und 16x8) neun (!) Codeseiten mit jeweils vier (!)
       Fonts (6x8, 8x8, 14x8 und 16x8) untersttzt werden! Der Font 6x8
       ist undokumentiert und lt sich offenbar auch nicht ohne Patchen
       von DISPLAY.SYS freischalten, obwohl er innerhalb der .CPI-Dateien
       in vollem Umfang definiert wird. Jedenfalls fhren Versuche wie

        DEVICEHIGH=c:\nwdos\display.sys con=(EGA,,(1,4))
                                                     ^----!!!

       zu einer Fehlermeldung. Der Font 6x8 wre - entsprechende Unter-
       sttzung durch das Grafikkarten-BIOS vorausgesetzt - fr Textdar-
       stellung in Grafikmodi und fr Textmodi mit mehr als 43 Zeilen auf
       Super-EGAs, mehr als 60 Zeilen auf Super-VGAs oder auch - mit Blick
       auf DR PalmDOS - fr spezielle reduzierte LCD-Anzeigen von PalmTops
       interessant.

       Trotzdem akzeptiert Novell DOS auch alte DR DOS .CPI-Dateien, und
       - als Clo - sogar .CPI-Dateien von MS-DOS oder PC-DOS (LCD.CPI
       nur nach einem Patch, s.u.)! (Umgekehrt drfte dies generell nicht
       mglich sein.)
       Da MS-DOS/PC-DOS in einigen Punkten mehr oder andere Codeseiten
       untersttzt, sollte es mglich sein, bei Bedarf die Codeseitendatei
       von MS-DOS/PC-DOS auszuleihen. Allerdings:
       Wird eine Codeseite bei Novell DOS (und DR DOS) bis auf wenige Aus-
       nahmen fr alle mglichen Gerte untersttzt, sieht die Situation bei
       MS-DOS/PC-DOS wesentlich schlechter aus. Hier beschrnkt sich der
       Support mancher seltener Codeseiten teilweise auf nur ein Gert
       (was die Frage nach dem Sinn des ganzen Aufwands aufkommen lt, den
       Microsoft in diesem Bereich getrieben hat, wenn man es dann doch nur
       halb nutzen kann...). Abgesehen davon enthalten die .CPI-Dateien
       von MS-DOS/PC-DOS (speziell die fr Drucker) etliche Unstimmigkeiten,
       die u.U. sogar zum Hngen des Rechners fhren knnten, wenn nicht
       explizit darauf eingegangen wird. Wenn nicht alle Gerte auf die
       gleiche Codeseite umgeschaltet werden knnen (eben z.B. weil eine
       Codeseite nicht fr alle Gerte verfgbar ist), kann man statt

        CHCP codepage

       (das fr seine Hauptfunktion, Codeseiten umzuschalten, auch noch
       NLSFUNC bentigt) den Befehl

        MODE device CODEPAGE SELECT=codepage
        (mit device=con:, prn:, lpt1:, lpt2:, lpt3:)

       verwenden, der die Codeseite nur selektiv fr das jeweilige Gert
       umschaltet. Das klappt auch dann, wenn bei CHCP nur Fehlermeldungen
       erscheinen, weil NLSFUNC nicht geladen ist oder die Codeseite ber-
       haupt nicht fr das eingestellte Land gedacht ist (das hngt von
       COUNTRY.SYS ab). Ansonsten (z.B. bei MS-DOS) mu man entweder jedes-
       mal die CONFIG.SYS COUNTRY= Einstellung ndern und neu booten oder
       mit meinem FreeWare-Utility COUNTRY.EXE (ber die entsprechende
       API-Funktion) die Landeseinstellung ndern. Obwohl nach dem Laden
       von NLSFUNC fr Programme Zugriff auf die landesspezifischen Daten
       aller in COUNTRY.SYS untersttzten Lnder gewhrleistet ist, knnen
       Sie bei eingerichtetem Codeseitensupport nicht wahlfrei auf ein
       anderes Land umschalten, wenn Sie eine Codeseite aktivieren, die
       fr das gewnschte Land nicht gedacht ist (d.h. nicht alle Gerte
       mit aktivierter Codeseitenuntersttzung dieses Land untersttzen).
       Dies fhrt manchmal zu recht paradoxen Situationen, in denen zwar
       voller Support (inkl. Codeseitenuntersttzung) fr ein bestimmtes
       Land vorhanden ist, Sie aber trotzdem zur Laufzeit nicht umschalten
       knnen, weil eine 'fremde' Codeseite aktiviert ist. In diesen
       Fllen gelingt die Umschaltung ber eine Zwischenstufe, indem Sie
       mit CHCP auf Codeseite 850 (manchmal 437) zurckschalten, danach
       mit COUNTRY.EXE z.B. auf 1 (USA) wechseln, dort die gewnschte
       neue Codeseite mit CHCP whlen und dann mit COUNTRY.EXE auf das
       neue Land umschalten. Dies ist aber kein Fehler, sondern nur eine
       Nachahmung des 'ganz normalen Verhaltens', das MS-DOS in diesen
       Situationen auch zeigt. Mit COUNTRY.EXE knnen Sie auch heraus-
       finden, welche Lnder fr jeweils welche Codeseiten in Ihrer
       Systemkonfiguration untersttzt werden.

      Ohne, da ich dies auch unter MS-DOS ausprobiert habe, mchte
       ich darauf hinweisen, da die Codeseitenumschaltung auch in
       hohen Textmodi funktioniert (sofern die Fonts 8x8, 14x8 und 16x8
       installiert sind): Mit meiner ET4000-Karte arbeiten die Textmodi
       40x25, 80x25/43/50/60 und 132x25/28/60 als auch die Grafikmodi.
       Bei den Modi 80x43/50 wurde allerdings jeweils auf 80x25 zurck-
       geschaltet, was man nachtrglich wieder ndern kann (um dies zu
       verhindern, mte man einige Ergnzungen im residenten Code von
       DISPLAY.SYS implementieren). Die Textmodi 100x40 und 132x44 fhrten
       allerdings aus noch ungeklrter Ursache zu EMM386-Schutzfehlern.
       Reduziert man die Anzahl der installierten Fonts, kommt es auch
       beim Umschalten von Codeseiten in anderen hheren Textmodi zu
       Schutzfehlern. Offenbar gibt es hier einen Bug in DISPLAY.SYS.

      Mchten Sie die einzelnen Zeichenstze simultan miteinander ver-
       gleichen, knnen Sie z.B. einen Grafikmodus aktivieren und sich
       danach mit einem kleinen Public-Domain-Utility (wie ASCII.COM) alle
       ASCII-Zeichen ausgeben lassen. Danach schalten Sie mit CHCP auf eine
       andere Codeseite um, und wiederholen die Anzeige aller Zeichen. Da
       im Grafikmodus die Zeichen als Pixel abgelegt werden, werden Sie
       nicht mit jedem Codeseitenwechsel umgeschaltet, so da die Simultan-
       darstellung mglich wird.

      Leider untersttzt Novells DISPLAY.SYS als Gertetyp nur "EGA",
       nicht aber "LCD" (die anderen von MS-DOS untersttzten Typen "MONO",
       "CGA", "EGA 8", "EGA 14", "EGA 14M" sind nur Dummies bzw. einiger-
       maen obsolet. Die MS-DOS-Datei ISO.CPI enthlt einen "EGA" Typ,
       der von Novell DOS problemlos akzeptiert wird). Das Laden von MS-DOS
       LCD.CPI unter Novell DOS scheitert am Typ "LCD". Trotzdem kann man
       sich nach einer kleinen Modifikation auch die LCD.CPI Datei von
       MS-DOS ausleihen:

        COPY LCD.CPI NW7LCD.CPI
        DEBUG
         -Nnw7lcd.cpi
         -L
         -S0 cx+0100 "LCD"
          cs:<aaaa>             (blicherweise 5 Vorkommen, wobei man die
          cs:<bbbb>              letzte Angabe normalerweise nicht patchen
          cs:<cccc>              mu, da sie sich in einem Kommentarfeld
          cs:<dddd>              befindet!)
          cs:<eeee>
          cs:<ffff>
         -E<aaaa> "EGA"
         -E<bbbb> "EGA"
         -E<cccc> "EGA"
         -E<dddd> "EGA"
         -E<eeee> "EGA"
         -W
         -Q

       Nun kann die Datei NWLCD.CPI ganz normal wie EGA.CPI geladen werden,
       mit dem Unterschied, da sie nur den Font 8x8 untersttzt.
       Vergessen Sie nicht, auch die Hardware-Codeseite (meist 437) mit
       einer vorzubereitenden Codeseite 437 zu berladen, sonst ndert
       sich die Darstellung nur in allen anderen Codeseiten (vgl.
       DISPLAY.SYS in Kapitel II.4.).

      Mchten Sie MS-DOS/PC-DOS ISO.CPI Datei verwenden, sollten Sie
       zustzlich zu den normalerweise einzurichtenden Codeseiten noch 437
       einrichten, denn der Hardware-Font 437 unterscheidet sich eklatant
       vom Font 437 aus ISO.CPI (dies gilt fr jedes DOS).
       Auch hier gilt das bei LCD.CPI bezglich der Codeseite 437 Gesagte.

      Sollten Sie fr die Erstellung neuer Codeseiten/Fonts das "DRFONT"
       oder "FONT" .CPI-Dateiformat bentigen oder .CPI-Dateien analysieren
       und auseinandernehmen wollen, knnen Sie ber mich das Programm
       CPI.EXE, meinen FreeWare-Analyser und -Decompiler fr Codeseiten-
       Dateien (im Archiv CPI???.ZIP) anfordern (z.B. auf meiner Web-Seite).
       Im Groben ist das Dateiformat auch in Ralf Browns Interrupt-Liste
       INTER50+ dokumentiert.
       Bei der Erstellung eigener .CPI-Dateien drften EGA-/VGA-Font-Editore
       (wie bei nahezu allen SuperVGA-Karten mitgeliefert) eine praktische
       Hilfe sein. Die dort mitgelieferten .FNT-Dateien haben i. allg. das
       gleiche Format (als Zeichen-Bitmaps) wie die internen Font-Daten
       innerhalb der .CPI-Dateien, so da Konvertierprogramme relativ
       einfach zu schreiben sind (teilweise ist noch ein kurzer Info-Header
       vorangestellt).
       Sollten Sie spezielle FreeWare oder Public-Domain .CPI-, .CP- oder
       .FNT-Dateien besitzen oder erstellen, wre es nett, wenn Sie sie
       auch mir zuschicken knnten: Ich mchte in Zukunft ein kostenloses
       Sammelpaket fr neue und erweiterte .CPI-Dateien einrichten, so da
       fr jedes DOS zustzliche Gerte, Codeseiten und Fonts zur Verfgung
       stehen.


   iii. Landescodes und Keyboard-Krzel:
   -------------------------------------

     Die folgende Tabelle enthlt die wichtigsten Lndercodes, die von DOS
     untersttzt werden. Grundstzlich ist zu sagen, da Keyboard-IDs nur
     von MS-DOS/PC-DOS 4.0+ untersttzt werden, Novell DOS 7 und DR DOS 6.0
     verwenden teilweise andere Keyboard-Layout-Krzel um das Gleiche zu er-
     reichen. Novell DOS 7 untersttzt auch nicht alle Layout-Krzel (siehe
     Kapitel II.4. bei KEYB). Ein Plus ('+') hinter dem Krzel bedeutet, da
     seit MS-DOS 6.2? mehr als eine Einstellung unter dem gleichen Namen
     existiert. Diese erweiterten Mglichkeiten sind Novell DOS 7 fremd.
     Normalerweise ist Novell DOS' KEYB besser als das Gegenstck von
     MS-DOS, da der Treiber sich selbstndig in die HMA auslagert und den
     darunterliegenden BIOS-Treiber teilweise mitbenutzt. Ein Stern ('*')
     bedeutet, da PNW 1.0 (und NetWare 3.xx) entsprechende Untersttzung
     besitzt. Zwei Sterne ('**') bedeuten, da mittlerweile Untersttzung
     fr jede NetWare (mit ODI/VLM) vorliegt, die z.B. in Novells Client-
     Kit zu finden ist. Sollten Sie jedoch Fhigkeiten vermissen, die bei
     MS-DOS 6.2? KEYB neu hinzugekommen sind, knnen Sie mittels SETVER
     auch diesen Treiber verwenden oder auf den erweiterten Tastaturtreiber
     K3PLUS 6.50+ bzw. FreeKEYB (zu beziehen ber mich) ausweichen.
     Novell DOS' Direktive COUNTRY= akzeptiert leider auch nicht die
     COUNTRY.SYS Datei von MS-DOS, so da die Mglichkeit des 'Ausleihens'
     in diesem Fall ausscheidet (was besonders rgerlich ist, da dadurch
     auch das Ausleihen von MS-DOS .CPI-Dateien fr exotische Lnder
     schwieriger wird). ltere COUNTRY.SYS Dateien von DR DOS 5.0 und 6.0
     als auch die von Caldera OpenDOS knnen aber verwendet werden (wichtig
     zu wissen, falls Sie eine fremdsprachige DR DOS COUNTRY.SYS Datei
     besitzen, die Einstellungen untersttzt, die Novell DOS 7 in der
     deutschen Distribution fremd sind (wrde mich brigens sehr interes-
     sieren)). Das Format der COUNTRY.SYS Datei von DR DOS/Novell DOS
     findet sich ebenfalls in Ralf Browns Interrupt-Liste. Das Format
     von MS-DOS/PC-DOS/OS/2 COUNTRY.SYS wird wahrscheinlich ab INTER54+
     ebenfalls dort dokumentiert sein und ist auch in meinem Archiv
     COUNTRY.ZIP zu finden.

     Die deutsche Ausgabe von Novell DOS 7 enthlt in der COUNTRY.SYS Datei
     zustzlich zu den in der Dokumentation erwhnten Lndern Support fr
     die ehem. Tschechoslowakei (Tschechien und teilweise Slowakei) (42),
     sterreich (43), Japan (81), Korea (82), Saudi Arabien (785) und Israel
     (972), obwohl fr Fern-Ost wohl eine andere .CPI-Datei bentigt wird,
     da die deutschen .CPI-Dateien keine Untersttzung fr die Codeseite
     932 etc. bietet. Vermutlich liegen auch allen anderen Ausgaben von
     Novell DOS 7 (auer der Japan-Version, falls diese wirklich existiert)
     die gleichen COUNTRY.SYS und .CPI-Dateien bei.
     Das ehem. Jugoslawien (38) sowie die Nachfolgestaaten und Brasilien
     (55) werden von COUNTRY.SYS nicht untersttzt, wohl aber vom Keyboard-
     Treiber ('~'). Achtung: Versuchen Sie niemals unter Novell DOS 7 das
     Land 0 zu *setzen* (welches sowieso nicht definiert ist), in diesem
     Fall wird der Rechner abstrzen (getestet mit Update 15).

     brigens: Wie schon angedeutet, hngen die beiden Gren Country-Codes
     und Codeseiten ber ein recht verwirrendes Regelwerk zusammen und die
     landesspezifischen Daten eines Landes knnen sich - einmal vor den
     offensichtlichen nderungen in der Reprsentation der Daten - auch
     beim ndern der Codeseite ndern! Z.B. ndert sich jeweils zwischen
     den beiden von Ruland und Spanien untersttzten Codeseiten die
     Darstellung von Whrungen, zwischen den beiden von Italien und
     Deutschland untersttzten Codeseiten die Darstellung des Zeitformates:
     "hh:mm" bei 437 und "hh.mm" bei 850, allerdings nur bei Novell DOS 7
     und DR DOS, nicht bei MS-DOS/PC-DOS. Dies ist allerdings zumindest
     fr Deutschland kein Fehler (mehr), da hier seit kurzem (Mai 1996)
     neue Normen fr Geschftsbriefe eingefhrt wurden und Daten jetzt
     "yy-mm-dd" und Zeiten "hh:mm" geschrieben werden.

      Einschub: Das 'japanische' Datumsformat hat zwei Vorteile gegenber
                den beiden anderen Formaten:

                1. Es kann wegen der fhrenden Jahreszahl nicht mit den
                   beiden anderen Formaten verwechselt werden (zumindest
                   nicht bis zum Jahr 2001).
                   Beispiel:
                   Ist "10.11.96" der Zehnte des Monats November oder
                   der Elfte des Monats Oktober? Ohne Zusatzinformation
                   lt sich dies nicht immer eindeutig entschlsseln,
                   denn das verwendete Separator-Zeichen ist international
                   gesehen kein generelles Unterscheidungsmerkmal.

                2. Wegen der absteigenden Prioritt der Gren Jahr,
                   Monat, Tag entsteht im Datum ohne zustzliche Manahmen
                   von selbst eine eindeutige Sortierreihenfolge.
                   Beispiel:
                   Benennt man Dateien, die Briefe (EMails) enthalten, nach
                   dem Erstellungsdatum, so werden diese bei alphabetisch
                   sortierten Inhaltsverzeichnisausgaben automatisch
                   chronologisch angeordnet, auch wenn man die Briefe ber
                   mehrere Jahre hinweg in einem Verzeichnis ablegt. Dies
                   ist bei den beiden anderen Datumsformaten nicht der Fall.

     Entgegen der Dokumentation bereitet bei Novell DOS die Aktivierung
     der Codeseite 437 fr Kanada (engl.) (2) und der Codeseite 850 fr
     Australien (Internationales Englisch) (61) Probleme (evtl. liegen
     hier Fehler in der COUNTRY.SYS Datei vor; nheres ist noch nicht
     untersucht). Speziell auf Deutschland bezogen gibt es auch Unterschiede
     in den landesspezifischen Daten, die von Novell DOS bzw. MS-DOS
     geliefert werden (z.B. im Whrungs- und Zeitformat).

     Sollte Sie dies stren, knnen Sie die COUNTRY.SYS Datei von Novell DOS
     auch so patchen, da die gleichen Daten wie bei MS-DOS zurckgeliefert
     werden. Beispielhaft wird dies fr die deutschen Landeseinstellungen in
     der COUNTRY.SYS Datei, die bei der deutschen Novell DOS 7 Ausgabe bei-
     liegt (13312 Bytes) erlutert. Das Byte an Offset +08E9h ausschlag-
     gebend. Hier steht normalerweise ein 2Eh '.', das in ein 3Ah ':' ge-
     ndert werden kann (nach der Norm bis Anfang 1996 war dies jedoch
     eigentlich bei MS-DOS falsch). Der Vorgang mit DEBUG:

      COPY COUNTRY.SYS COUNTRY1.SYS
      DEBUG
       -Ncountry1.sys
       -L                     Der Wert fr CX (die Dateilnge) sollte hier
                              3400h betragen! Sonst nicht fortfahren!
                              Fr Codeseite 850:
       -Ecs:09E9 2E. 3Ah      Falls dort ein Zeitseparator 2Eh '.' steht,
                              diesen durch 3Ah ':' <RET> ersetzen.
                              Ansonsten nur <RET> drcken, denn Sie haben
       -W                     wahrscheinlich etwas falsch gemacht, oder die
       -Q                     Datei ist bereits angepat.

     Mchten Sie die deutschen Landeseinstellungen von Novell DOS 7 hingegen
     *komplett* an die neue Norm fr Geschftsbriefe anpassen, knnen Sie
     COUNTRY.SYS stattdessen folgendermaen patchen (in diesem Beispiel
     werden die Einstellungen fr Codeseiten 437 und 850 gendert):

      COPY COUNTRY.SYS COUNTRY2.SYS
      DEBUG
       -Ncountry2.sys
       -L                     Der Wert fr CX (die Dateilnge) sollte hier
                              3400h betragen! Sonst nicht fortfahren!
                              Fr Codeseite 437:
       -Ecs:09C0 01. 02h      Falls dort 01h steht, dies mit 02h <RET>
                              fr 'Japanisches' Datumsformat berschreiben.
                              Ansonsten nur <RET> drcken.
       -Ecs:09CB 2E. 2Dh      Falls dort ein Datumsseparator 2Eh '.' steht,
                              diesen mit 2Dh '-' <RET> berschreiben.
                              Fr Codeseite 850:
       -Ecs:09DC 01. 02h      Falls dort 01h steht, dies mit 02h <RET>
                              fr 'Japanisches' Datumsformat berschreiben.
                              Ansonsten nur <RET> drcken.
       -Ecs:09E7 2E. 2Dh      Falls dort ein Datumsseparator 2Eh '.' steht,
                              diesen mit 2Dh '-' <RET> berschreiben.
       -Ecs:09E9 2E. 3Ah      Falls dort ein Zeitseparator 2Eh '.' steht,
                              diesen mit 3Ah ':' <RET> berschreiben.
                              Ansonsten nur <RET> drcken.
       -W
       -Q

     (Fr dieses Unterfangen steht auf meiner Web-Seite und auf einigen
     FTP-Servern unter dem Namen JPDATE49.ZIP auch ein automatisierter
     Patch zur Verfgung.)

     Die allermeisten Lnder untersttzen wenigstens Codeseite 850 (und
     ber die Hardware 437, allerdings nicht unbedingt auf der Ebene von
     COUNTRY.SYS), dies wird aber nur kritisch, wenn Sie Codeseitenunter-
     sttzung eingerichtet haben.


      Land Name                Codeseiten Keyboard  MS-DOS/ Caldera OpenDOS/
                                          Layout    PC-DOS      Novell DOS
                                 (3.3+)   (3.0+)                  DR DOS

      000  undefiniert           7Bit-ASCII --         --           --!   **
      001  Vereinigte Staaten    437,850  US (103)     2.00+        3.40+ *
                                          DV (Dvorak)  6.20+        --
                                          RH (Rechts)  6.20+        --
                                          LH (Links)   6.20+        --
      002  Kanada (Franzsisch)  850,863  CF + (058)   2.00+        3.40+ *
             ""   (Englisch)     850,863  CF +         --           3.40+ *
      003  Lateinamerika         850,437  LA (171)     2.00+        3.40+ *
      004  Kanada (Englisch)     850,863  CF +         6.2?+        --
      007  Ruland   866,855,852,850,437  RU 441,443,341 6.2?+      6.0+  **
      027  Sdafrika             437,850  US           6.2?+        --
      030  Griechenland      869,737,850  GK 319       6.2?+        --
      031  Niederlande           850,437  NL (143)     2.00+        3.40+ *
      032  Belgien               850,437  BE (120)     2.00+        3.40+ *
      033  Frankreich            850,437  FR 120,189   2.00+        3.40+ *
      034  Spanien               850,437  SP (172)     2.00+        3.40+ *
      035  undokumentiert??? (offenbar wie Bulgarien)  6.22/95      --
      036  Ungarn                852,850  HU 208       2.00+/5.0+   6.0+  **
      038  ehem. Jugoslawien     852,850  YU 234       2.00+/5.0+   ~6.0-7
             "" (Kyrillisch)     855,850  YC 118       6.2?+        --
      039  Italien               850,437  IT 141,142   2.00+        3.40+ *
      040  Rumnien              852,850  RO 333,446   6.2?+        --
      041  Schweiz (Deutsch)     850,437  SF (Franz., 150)  2.00+   3.40+ *
                                          SG (Deutsch, 000) 2.00+   3.40+ *
      042  ehem. Tschechoslowakei                                         **
                 "" (Tschechien) 852,850  CZ 243       5.0+         6.0+
                 "" (Slowakei)   852,850  SL           5.0
      043  sterreich            850,437  GR +         6.2?+        5.0+
      044  Grobritannien        850,437  UK 166,168   2.00+        3.40+ *
      045  Dnemark              850,865  DK (159)     2.00+        3.40+ *
      046  Schweden              850,437  SV (153)     2.00+        3.40+ *
      047  Norwegen              850,865  NO (155)     2.00+        3.40+ *
      048  Polen                 852,850  PL (214)     5.0+         6.0+  **
                     (zustzlich 667 und 668 bei PTS/DOS 6.51 und S/DOS 1.x)
      049  Deutschland           850,437  GR + (129,453) 2.00+      3.40+ *
      052  Mexiko                850,437  LA           6.2?+        --
      054  Argentinien           850,437  LA           6.2?+        --
      055  Brasilien             850,437  BR 274,275   5.0+         ~6.0+
      056  Chil                 850,437  LA           6.2?+        --
      057  Kolumbien             850,437  LA           6.2?+        --
      058  Venezuela             850,437  LA           6.2?+        --
      060  Malaysia              437,???  --           6.2?+        --
      061  Internat. Englisch    437,850  --           2.00+              *
                   Australien    437,850  US           6.2?+        3.41+ *
      064  Neuseeland            437,850  US           6.2?+        --
      065  Singapur              437,???  --           6.2?+        --
      066  Tailand               874                   --           --
      081  Japan                 437,932  JP (194)     ~5.0+        3.40+ *
                                          JA           4.0          --
      082  Korea                 437,934  (KO)         ~4.0/~6.2?   5.0+
      086  VR China              437,936  (CH)         ~4.0/~5+
      088  Taiwan (China trad.)  437,938  (TN)         ~4.0/~5+
      090  Trkei                857,850  TR 440,179   5.0?+        --    **
                                          TF (FDDIOD)  --           6.0+
                                          TQ (QWERTY)  --           6.0+
      091  Indien                437,???  --           6.2?+        --
      099  Asien (Englisch)               --           --           --
      351  Portugal              850,860  PO (163)     2.00+        3.40+ *
      353  Irland                850,437  UK           6.2?+        --
      354  Island                850,861  IS 161,197   6.0+         --
      355  Albanien              852,850  AL (452)     6.2?+        --
      358  Finnland              850,437  SU (153)     2.00+        3.40+ *
      359  Bulgarien             855,850  BG 442,(241) 6.2?+        --
      370  Litauen               (1257)                --           --
      371  Lettland              (1257)                --           --
      372  Estland               (1257)                --           --
      381  Serbien/Montenegro 855,850,915 YC 118,450   6.2?+        --
      384  Kroatien              852,850  YU 234       6.2?+        --
      385  Kroatien              852,912  HR 234       PC 7.0       --
      386  Slowenien          852,850,912 YU,SI 234    6.2?+        --
      387  Boznien/Herzegowina   852,850  YU 234       6.2?+        --
      388  Boznien/Herzegowina   855,915  BC 450,118   PC 7.0       --
      389  Mazedonien            855,850  YC 118       6.2?+        --
      421  Slowakei              852,850  SL 245       6.2?+        --
           Tschechien            852,912  CZ 243       PC 7.0       --
      422  Slowakei              852,912  SK 245       PC 7.0       --
      593  quador               850,437  LA           6.2?+        --
      711  undokumentiert??? (Whrung ist EA$)         6.22/95      --
      785  Mittlerer Osten/
           Saudi Arabien         850,864  --           ~2.00+/5.0+  3.40+ **
      852  Hongkong              437,???  --           6.22+
      886  Taiwan                                      6.22+
      972  Israel (Hebrisch)    850,862  --           ~2.00+/5.0+  3.40+ **

     Normalerweise kann man die Einstellung des aktuellen Landes nur ber
     die COUNTRY= Direktive beim Booten des Rechners ndern (siehe Kapitel
     III.1.). Gibt man keine COUNTRY= Direktive an, so werden blicherweise
     die US-amerikanischen Landeseinstellung angenommen (manchmal auch die
     Einstellung der Landesanpassung, allerdings nicht bei allen mir be-
     kannten Ausgaben von DR DOS und Novell DOS). Mit entsprechenden
     Utilities kann man die Landeseinstellungen jedoch auch zur Laufzeit
     ndern, siehe z.B. mein FreeWare-Utility COUNTRY.EXE (aus COUNTRY.ZIP).
     brigens werden sie dabei gleichzeitig fr alle Tasks des evtl.
     laufenden Multitaskers wie TASKMGR oder Windows gendert, was manchmal
     wnschenswert, manchmal aber auch unpassend ist. Solange man bei
     COUNTRY= nicht den Namen zur Datei COUNTRY.SYS angegeben hat, kann
     man offenbar in einigen DOS-Versionen nur zwischen den US- und den
     bei COUNTRY= gewhlten Einstellungen wechseln (da diese immer im
     Speicher liegen), sonst (zumindest bei installiertem NLSFUNC) zwischen
     allen Lndern, die von COUNTRY.SYS untersttzt werden.


   iv. Codeseiten:
   ---------------

     Die folgende Tabelle enthlt eine kurze Zusammenfassung der Codeseiten-
     Untersttzung in den verschiedenen DOS-Versionen. Anhand dieser Tabelle
     knnen Sie schnell feststellen, ob die bentigte Codeseite von
     Novell DOS 7 untersttzt wird oder ggf. von einer DR DOS, MS-DOS
     oder PC-DOS Version entliehen werden kann (wobei bei Letzteren bei
     weniger blichen Codeseiten zumindest in den westeuropischen und
     amerikanischen Versionen i. allg. nicht alle Gerte untersttzt
     werden). Es ist mglich, da die aufgefhrten Codeseiten nicht in
     allen landessprachlichen Versionen untersttzt werden (falls mir dies
     bekannt ist, habe ich den entsprechenden Eintrag mit '~' versehen).
     Im Zweifelsfall wenden Sie sich am besten an Novell bzw. Caldera.
     Soweit eindeutig bekannt, habe ich DBCS-Codeseiten (double byte
     character sets) extra erwhnt, jedoch sind auch noch einige der
     restlichen Codeseiten DBCS-Codeseiten. (Ein '*' bedeutet, da die
     Codeseite von PNW 1.0 und NetWare 3.xx untersttzt wird, '**' bedeutet,
     da sie standardmig nur von NetWare 3.xx untersttzt wird, nicht
     von PNW 1.0. Natrlich ist es mglich, sich die entsprechenden
     Dateien des \NLS\ Verzeichnisses von einer groen NetWare auszuleihen.
     Ein '!' bedeutet, da diese Codeseitennummer von Novell NetWare fr
     einen reduzierten 7Bit-ASCII Zeichensatz reserviert ist, um fr Lnder,
     fr die noch keine Codeseitenuntersttzung existiert, berhaupt ein
     Arbeiten zu ermglichen. Diese 'Codeseite' untersttzt nur die Zeichen
     ASCII-32 bis ASCII-127 mit Ausnahme von ASCII-92.)

     (Die zustzlichen Angaben zu OS/2 und MS Windows95 haben nur
     informativen Charakter, da die interne Organisation anders realisiert
     ist; ein Austausch drfte nicht mglich sein. Fr den MS-DOS 7 Anteil
     von MS Windows95 und PC-DOS 7 hat sich nicht sonderlich viel getan,
     auer da die beiden bisher undokumentierten Printer-Codeseiten durch
     generellen Verzicht auf Printer-Codeseiten-Dateien flachgefallen sind
     und, da - bei MS-DOS 7 - die Display-Codeseiten aufgrund des neu
     eingefhrten Long-Filename-Supports nun nur noch zum Installations-
     zeitpunkt umgeschaltet werden knnen (Ausnahme CHANGECP). Benutzt man
     CHCP in einer DOS-Box, so tuscht es das Umschalten der Codeseite vor,
     ohne die Umschaltung wirklich vorzunehmen. Allerdings hatte auch schon
     unter MS Windows 3.xx die Umschaltung der Codeseite fr DOS-Boxen im
     Fenster keine sichtbare Wirkung, solange nicht entsprechende Fonts
     installiert waren. All diese Grnde sprechen dafr, auch heute noch
     die Codeseite 437 als Standard unter Windows zu whlen, d.h. Windows95
     sofort nach der Installation mit CHANGECP auf diese Codeseite zurck-
     zuschalten.)

      Codeseite      Name                          MS-DOS/  Novell DOS/
                                                   PC-DOS    DR DOS

        0  Reduziertes 7Bit-ASCII                   --        --!
       37  EBCDIC: Englisch (US/Kanada) (CECP)      --        --
       38  EBCDIC: International (alt)              --        --
      111  Griechisch   [AST Premium Exec DOS 5.0]  --        --
      112  Trkisch     [AST Premium Exec DOS 5.0]  --        --
      113  Jugoslawisch [AST Premium Exec DOS 5.0]  --        --
      161  Arabisch [Linux]                         --        --
      162  Arabisch [Linux]                         --        --
      163  Arabisch [Linux]                         --        --
      164  Arabisch [Linux]                         --        --
      165  Arabisch [Linux]                         --        --
      237  EBCDIC: Deutschland (CECP)               --        --
      273  EBCDIC: unbekannt (CECP)                 --        --
      274  EBCDIC: Belgien                          --        --
      275  EBCDIC: Brasilien                        --        --
      277  EBCDIC: Dnemark, Norwegen (CECP)        --        --
      278  EBCDIC: Finnland, Schweden (CECP)        --        --
      280  EBCDIC: Italien (CECP)                   --        --
      281  EBCDIC: Japan (E)                        --        --
      284  EBCDIC: Latein-Amerika/Spanien (CECP)    --        --
      285  EBCDIC: Englisch (UK) (CECP)             --        --
      290  EBCDIC: Japan (Kana)                     --        --
      297  EBCDIC: Franzsisch (CECP)               --        --
      367  US-ASCII (ISO 646-US 7Bit)               --        --
      420  EBCDIC: Arabisch 1                       --        --
      423  EBCDIC: Griechisch                       --        --
      424  EBCDIC: Hebrisch                        --        --
      437  Englisch/West-Europa (World Trade)       3.30+     3.40+    *
      500  EBCDIC: Belgien, Schweiz (International) (CECP) -- --
      646  (reserviert fr ISO 646 7Bit-Codeseiten) --        --
      667  Ost-Europa (Polnisch) [PTS/DOS u. S/DOS] --        --
      668  Ost-Europa (Slawisch) [PTS/DOS u. S/DOS] --        --
      708  Arabien/Mittlerer Osten                  ~95       --
      737  Griechenland (2)                         6.2?+     --
      775  Baltische Staaten (BaltRim)              ~95       --
      819  Latein 1 (ISO 8859-1)                    --        --
      850  International/Multilingual (Latein 1)    3.30+     3.40+    *
      851  Griechenland (undok., siehe 8510) [AST, WP] 4.00-6.22 --
      852  Slawisch/Ost-Europa (Latein 2)           5.0+      6.0+
      853  Trkisch (Latein 2) (undok.) [AST]       4.00-6.22 6.0+
      854  Spanisch (obsolet)???                    --        --
      855  Kyrillisch (1)                           4.00+     --
      857  Trkisch                                 6.1+      6.0+
      860  Portugal (siehe 8600)                    3.30+     3.40+    **
      861  Island                                   6.0+      --
      862  Israel (Hebrisch)                       4.00+/~95 3.40-5.0/~6.0
      863  Kanada (Franzsisch)                     3.30+     3.40+    **
      864  Arabien/Mittlerer Osten                  4.00+     3.40+
      865  Nordisch (Norwegen/Dnemark)             3.30+     3.40+    **
      866  Ruland (Kyrillisch 2)                   6.1/6.22+ 6.0+
      867  Tschechisch [NEC Pinwriter P20/P30/P60/P70/P90] -- --
      868  Arabisch                                 --        --
      869  Griechenland (1)                         6.1+      --
      870  EBCDIC: Jugoslawien (Roece)              --        --
      871  EBCDIC: Islndisch                       --        --
      874  Thailand                                 ~95       --
      875  EBCDIC: Griechenland                     --        --
      880  Ruland (Kyrillisch GOST und EBCDIC)     --        --
      881  Latein 1 [AST Premium Exec DOS 5.0]      --        --
      882  Latein 2 [AST Premium Exec DOS 5.0]      --        --
      883  Latein 3 [AST Premium Exec DOS 5.0]      --        --
      884  Latein 4 [AST Premium Exec DOS 5.0]      --        --
      885  Latein 5 [AST Premium Exec DOS 5.0]      --        --
      891  unbekannt                                --        --
      895  Tschechisch (Kamenicky) [WP]             --        --
      897  Japan etc. (Shift-JIS)                   --        --       **
      899  Kyrillisch [WP] (siehe 8990)             --        --
      903  unbekannt                                --        --
      904  unbekannt                                --        --
      905  EBCDIC: Trkisch                         --        --
      912  Lateinisch 2 (ISO 8859-2)                PC 7.0    --
      915  Latein/Kyrillisch (ISO 8859-5)           PC 7.0    --
      918  EBCDIC: Arabisch 2                       --        --
      928  reserviert fr Griechenland (ELOT 928, ISO 8859-7)
      932  DBCS: Japan (Shift-JIS)                  ~4.00+    ~6.0+    **
      934  DBCS: Korea                              ~4.00+    ~6.0+
      936  DBCS: VR-China (vereinfacht, erw. GB)    ~4.00+    --
      938  DBCS: Taiwan (trad. China)               ~4.00+    --
      942  DBCS: Japan SAA                          (~OS/2)   --
      944  DBCS: Korea SAA                          (~OS/2)   --
      948  DBCS: VR-China SAA                       (~OS/2)   --
      949  Korea (Unified Hangul, erw. Wansung)     ~95       --
      950  China trad., Taiwan, Hong Kong (Big5)    ~95       --
      966  Saudi Arabien                            ~95       --
      972  Hebrisch (Israelisches VT100 Terminal)  --        --
      999  reserviert                               --    5.0+ KEYB
     1002  unbekannt [NT4]                          --        --
     1004  Desktop Publishing           (OS/2, DAPIE, Open32) --
     1026  EBCDIC: Trkei (Latein 5)                --        --
     1047  EBCDIC: Internat. (US, defacto EBCDIC) (CECP) --   --
     1250  WIN: Ost-Europa (Latein 2)               (95)      --       **
     1251  WIN: Kyrillisch                          (95)      --       **
     1252  WIN: Englisch/West-Europa (Latein 1)     (3.xx,95) (PNW 1.0) *
     1253  WIN: Griechenland (GRC)                  (95)      --
     1254  WIN: Trkei                              (95)      --
     1255  WIN: Israel/Hebrisch                    (95)      --
     1256  WIN: Arabien                             (95)      --       **
     1257  WIN: Baltische Staaten                   (95)      --
     1258  WIN: Vietnam                             --        --
     1361  ANSI???: Korea (Johab)                   (95)      --
     8510  Griechenland (Alternativ zu 851) [WP]    --        --
     8600  Portugal (Brasilianisch) [WP]            --        --
     8990  Kyrillisch (Akzentuierte russische Vokale) [WP] -- --
    10000  MAC: International/Standard              --        --
    10001  MAC: unbekannt                           --        --
    10006  MAC: Griechenland                        --        --
    10007  MAC: Kyrillisch                          --        --
    10010  MAC: unbekannt                           --        --
    10017  MAC: unbekannt                           --        --
    10029  MAC: Latein 2                            --        --
    10079  MAC: Island                              --        --
    10081  MAC: Trkei                              --        --
    10082  MAC: unbekannt                           --        --
    10646  (reserviert fr ISO 10646 32Bit-Codeseite) --      --
    20261  unbekannt [NT4]                          --        --
    20866  unbekannt [NT4]                          --        --
    28592  unbekannt [NT4]                          --        --
    65400  erste 256 Glyphen des aktuellen Fonts    (OS/2 3+) --
    65534  intern reserviert fr DR DOS             --        --
    65535  intern von DOS und DR DOS reserviert     --        --


     Die meisten Taschencomputer (z.B. von SHARP) und einige andere Computer
     benutzen blicherweise ebenfalls die Hardware-Codeseite 437 (auch wenn
     sie dort meist nicht so heit), lediglich neuere sog. PDAs (persnliche
     digitale Assistenten) folgen zunehmend dem Trend hin zu Codeseite 850.
     Eine Reihe anderer Computer (Amiga, Acorn) verwenden eine der Codeseite
     1252 (ab Windows 3.0+) entsprechende Zuordnung, die an die ANSI-Code-
     seite nach ISO-8859-1 angelehnt ist, ihr aber nicht zu 100% Prozent
     entspricht. Von DOS selbst wird diese Seite nicht angeboten.
     Aus Grnden der besseren Austauschbarkeit von Dateien empfehle ich -
     wenn nicht spezielle Grnde dagegen sprechen - weiterhin die Codeseite
     437 als Standard zu verwenden und die Codeseite 850 lediglich fr alle
     Flle vorzubereiten, aber nicht als permanente Einstellung zu benutzen
     (auch wenn in den letzten Jahren die meisten Microsoft SETUP-Programme
     die Codeseite 850 eigenmchtig als Standard aktivieren). (Benutzer von
     MS Windows95 mssen sich direkt nach der Installation fr eine Code-
     seite entscheiden, d.h. ggf. sofort mit CHANGECP auf 437 umkonfigu-
     rieren. Eine sptere nderung kann zu nicht mehr ber ihren Namen
     erreichbaren Dateien fhren, da die neuen Long-Filenames in Unicode
     abgelegt werden und die Zuordnung zwischen Unicode und den jeweiligen
     Zeichenstzen natrlich nicht beliebig umkehrbar ist.)


   v. Internationale Batchjobs:
   ----------------------------

     Beim Schreiben von Batchjobs, die in jedem Land funktionieren sollen,
     mu man besonders aufpassen, wenn innerhalb der Batchjobs Situationen
     auftreten knnen, die eine Benutzerinteraktion erfordern. In solchen
     Fllen mchte man die notwendigen Eingaben hufig aus einer Eingabe-
     umleitung holen, oder umgekehrt, die Ausgabe bestimmter Kommandos mit
     Filtern wie FIND oder SORT auswerten, um dann im weiteren Verlauf des
     Batchjobs entsprechend zu reagieren.

     Ein hufiges Problem ist z.B. die Ja/Nein-Abfrage, die viele Kommandos
     stellen knnen. Verwendet man die deutsche Kernel-Version, wird man
     nach (J/N) gefragt (auer in CONFIG.SYS, wo man YESCHAR= einsetzen
     kann); mit der englischen Version lautet die Frage jedoch (Y/N), usw.
     Das Problem liegt nun darin, da eine Befehlszeile wie

      ECHO J | DEL *.*

     nur mit der deutschen Kernelversion funktioniert. Solange wenigstens
     der Buchstabe fr 'Nein' bei allen Kernel-Versionen gleich bleibt,
     d.h. auch nicht mit dem Buchstaben fr 'Ja' irgendeiner Kernel-
     Version bereinstimmt, hilft manchmal folgender Trick, der die 'Ja'-
     Buchstaben aller Versionen hintereinander ausgibt (siehe bei FDISK
     in Kapitel II.4.). (Leider ist das global gesehen keine Lsung, denn
     z.B. in Ruland ist der Buchstabe fr Ja ein 'L' und fr Nein ein 'Y',
     was obendrein noch mit 'Yes' kollidiert. Allerdings gibt es keine
     speziell russische Version von Novell DOS.)

      ECHO YOSJ | DEL *.* > \nul\dev

     (was aber leider so pauschal nur bei 4DOS funktioniert, da hier
     explizit auf 'Ja' oder 'Nein' gewartet wird und nicht alles, was
     nicht 'Ja' ist, als 'Nein' interpretiert wird. Diese Methode kann
     man auch bei Novells MOVE sowie mit FDISK aus Update 15 anwenden,
     siehe Kapitel II.4.).

      ECHO FEAD | MOVE c:\source.tmp c:\dest.tmp

     Fr Kommandos, wo diese glckliche Fgung nicht zutrifft (oder in
     anderen DOS-Versionen anders implementiert ist), bietet sich die
     folgende, recht holprige, aber auch mit Novells COMMAND.COM lauf-
     fhige Alternative an (Achtung: Keine Bedingung voranstellen, siehe
     Kapitel IV.6.):

      FOR %%x IN (Y O S J) DO ECHO %%x | DEL *.* > \dev\nul

     oder - bei Verwendung einer Variable %yeschar%, die z.B. in
     AUTOEXEC.BAT belegt wird - auch eine Lsung wie folgt:

      ECHO %yeschar% | DEL *.*

     Damit man in Batchjobs vorsorgen kann, im folgenden eine bersicht
     ber externe Kommandos, die in bestimmten Situationen interaktive
     Besttigungen erwarten (noch sehr unvollstndig, bezieht sich auf
     deutsche Version, fr interne Kommandos sei auf Kapitel II.13.
     verwiesen):

                 Ja/Nein  Datei/Verzeichnis  Frage nach Pawort

      COMP       J/N           -
      MOVE       J/N          D/V
      LABEL      J/N?          -
      UNDELETE   J/N           -
      DELTREE (MS-DOS)        J/N                    -


     Sonderzeichenbersicht:

      Bedeutung:          Zeichen in Novell DOS 7 Kernel-Version:

                          U        F         S          I         G        J

      Ja-Zeichen          <Y>      <O>       <S>        <S>       <J>      ?
      Nein-Zeichen        <N>      <N>       <N>        <N>       <N>      ?
      Datei-Zeichen       <F>      <F>       <A>        <F>       <D>      ?
      Verzeichnis-Zeichen <D>      <R>       <D>        <D>       <V>      ?
      Abbruch             <A>      <A>       <A>        <A>       <A>      ?
      Wiederholen         <R>      <R>       <R>        <R>       <W>      ?
      Ignorieren          <I>      <I>       <I>        <I>       <I>      ?
      Fehler              <F>      <T>       <F>        <F>       <F>      ?

      "nicht"             not       ?        no         non       nicht    ?
      "Frei"             Free     Libre     Libre      Libera     Frei     ?
      "aktiviert"     enabled    active   activada   attivata   aktiviert ?
      "deaktiviert"  disabled dsactive desactivada disattivata inaktiviert
      %NWLanguage%    ENGLISH  FRANCAIS    ESPANOL    ITALIANO   DEUTSCH \ ?
                                                                 \ NIHON[GO]

      (auer Konkurrenz: %NWLanguage% PORTUGUE[SE])

     Wie findet man die passenden Schlsselworte heraus? Einfach die
     landessprachlichen Updates besorgen (siehe Kapitel I.2.) und die
     Dateien (insb. COMMAND.COM) unter sprachlichen Gesichtspunkten
     miteinander vergleichen. Dabei kann ein Batchjob wie im folgenden
     Beispiel ntzlich sein:

      GETD70.BAT:

       @ECHO off
       ECHO GETD70 V1.01 - Get file from all Novell DOS 7 localized updates
       ECHO Syntax: GETD70 file_from_all_updates
       ECHO         Each floppy may only contain one update release!
       REM 96-04-03 -mp
       IF ""=="%1" GOTO end
       PAUSE Insert US update in floppy drive A:
       FOR %%x IN (A:D70U*.*) DO %%x -x -s %1
       REN %1 U%1
       PAUSE Insert German update in floppy drive A:
       FOR %%x IN (A:D70G*.*) DO %%x -x -s %1
       REN %1 G%1
       PAUSE Insert French update in floppy drive A:
       FOR %%x IN (A:D70F*.*) DO %%x -x -s %1
       REN %1 F%1
       PAUSE Insert Italian update in floppy drive A:
       FOR %%x IN (A:D70I*.*) DO %%x -x -s %1
       REN %1 I%1
       PAUSE Insert Spanish update in floppy drive A:
       FOR %%x IN (A:D70S*.*) DO %%x -x -s %1
       REN %1 S%1
       :end

     Bezglich der Realisierung von Batchjobs, die bestimmte Schlsselworte
     in Bildschirmmeldungen erkennen mssen und trotzdem auf landessprach-
     liche Besonderheiten eingehen, sei auf MEM.BAT aus Kapitel IV.5. ver-
     wiesen.

     Unglcklicherweise gibt es bei den landessprachlich unterschiedlichen
     Buchstaben einige berschneidungen, wie etwa bei der Unterscheidung
     zwischen Datei oder Verzeichnis (Im Deutschen steht D fr <D>atei, im
     Englischen fr Verzeichnis=<D>irectory). U.U. ist es mglich, die
     Reihenfolge der umgeleiteten Sequenzen so anzuordnen, da trotzdem
     immer der richtige Buchstabe akzeptiert wird (siehe bei MOVE.EXE in
     Kapitel II.4.), aber manchmal hilft nur die explizite Unterscheidung
     der Kernel-Version. Achtung: Der Alternativ-Kommandoprozessor 4DOS.COM
     existiert meines Wissens nur in einer englischen Version und verwendet
     demnach ausschlielich die Buchstaben der US-Version, die Lizenz-
     version NDOS.COM von den Norton Utilities ist jedoch der jeweiligen
     Sprache angepat (d.h. die deutsche Version verwendet die gleichen
     Buchstaben, wie die deutsche COMMAND.COM Version)!

     Dafr verwendet man am besten einen Batchjob, der fr jedes in Frage
     kommende Zeichen eine entsprechende Umgebungsvariable mit dem
     passenden Buchstaben belegt. Weiterhin darf man in allen Batchjobs nur
     mit diesen Variablen statt der konkreten Werte arbeiten. In Anlehnung
     an Novell DOS YESCHAR= Direktive schlage ich dafr die folgenden
     Namen vor (je mehr sich daran halten, desto eher kann etwas wie ein
     globaler Standard etabliert werden):

      %yeschar%, %nochar%, %filechar%, %dirchar%, %abortchar%, %retrychar%,
      %ignorechar%, %failchar%, %switchar% (siehe SWC.BAT und MEM.BAT).

     Das Problem besteht nun noch darin, die installierte Kernel-Version
     herauszufinden. Das folgende Beispiel zeigt die einfachste Lsung, die
     nur mit Mitteln der Batch-Sprache auskommt, siehe auch Kapitel IV.7.
     Erweiterungen dieser Methode knnen in einem Praxisbeispiel in Kapitel
     IV.5. beim Batchjob MEM.BAT studiert werden.
     Die in den einzelnen Kernel-Versionen mglichen Werte fr die Pseudo-
     Umgebungsvariablen (Systeminformationskonstanten) %Greeting_Time%,
     %Month_Name% und %Day_Of_Week% sind in Kapitel IV.7. zu finden.
     Achtung:
     Falls Sie 4DOS/NDOS.COM verwenden, mssen Sie dieses Beispiel noch
     passend erweitern, denn einerseits mu dann bezglich der Sprache
     zwischen internen und externen Kommandos unterschieden werden und
     andererseits existieren von 4DOS.COM nur englische, von NDOS.COM aber
     landessprachlich angepate Varianten.
     U.U. knnen Sie - wie in MEM.BAT - den Hilfsschirm eines externen
     Kommandos per FIND nach bestimmten Wrtern durchsuchen lassen, um die
     Sprache der externen DOS-Utilities festzustellen. Die Sprache der
     COMMAND.COM internen Befehle kann auf die gleiche Weise z.B. mit
     COMMAND /? ermittelt werden, bezglich der Sprachbestimmung von
     4DOS/NDOS.COM sei auf 4DOS5TIP.TXT verwiesen.

     Ein unvollstndiges Beispiel:

      ...
      REM Check for Novell DOS 7 kernel localization (not with 4DOS/NDOS)...
      FOR %%x IN (morning afternoon evening) DO IF ...
                                          ..."%%x"=="%Greeting_Time%" GOTO U
      FOR %%x IN (Bonjour Bonsoir) DO IF "%%x"=="%Greeting_Time%" GOTO F
      FOR %%x IN (maana tarde noche) DO IF "%%x"=="%Greeting_Time%" GOTO S
      FOR %%x IN (giorno pomeriggio sera) DO ...
                                      ... IF "%%x"=="%Greeting_Time%" GOTO I
      FOR %%x IN (Morgen Tag Abend) DO IF "%%x"=="%Greeting_Time%" GOTO G
      REM FOR %%x IN (xxxx xxxx xxxx) DO IF "%%x"=="%Greeting_Time%" GOTO J
      REM [insert other decisions here]
      IF "4"=="%@Eval[2 + 2]%" IF NOT ""=="%_4Ver%" GOTO U
      REM IF "4"=="%@Eval[2 + 2]%" IF NOT ""=="%_NVer%" GOTO ...
      ...
      :U
      SET yeschar=Y
      SET nochar=N
      SET filechar=F
      SET dirchar=D
      GOTO continue
      :F
      ...
      GOTO continue
      :S
      ...
      GOTO continue
      :I
      ...
      GOTO continue
      :G
      SET yeschar=J
      SET nochar=N
      SET filechar=D
      SET dirchar=V
      GOTO continue
      REM :J ...
      :continue
      ...

     Weitere Probleme in internationalen Batchjobs knnen deshalb auf-
     treten, weil sich bei Novell DOS natrlich die Datums- und Zeit-
     formate aller DOS-Kommandos (DATE, TIME, UNDELETE, DELPURGE, um nur
     einige Beispiele zu nennen) an das per COUNTRY= eingestellte Land
     anpassen, wobei hier zwar die Separatoren in Grenzen wahlfrei bleiben,
     das Datumsformat (Reihenfolge von Tag, Monat und Jahr) aber jeweils
     korrekt angegeben werden mu. hnliches gilt fr die Sortierreihen-
     folge von Zeichen, etwa bei SORT.

                                                                             
  ---------------------------------------------------------------------------

  II.17. Zgerlicher Platten-/Diskettenzugriff unter Novell DOS/DR DOS:
  ========================================================[97-04-06]===

   Stichworte: Disk-Deblocking, DEBLOCK=, SCSI, Busmaster-DMA, DBLBUF.SYS,
               Floppy-Zugriff, PROMPT.

   Warum Novell DOS/DR DOS beim Festplattenzugriff (ohne Cache-Programme
   wie NWCACHE und ohne groe BUFFERS= Einstellungen) zgerlicher als MS-DOS
   erscheint, kann verschiedene Grnde haben.

   Fr DR DOS 6.0 galt (laut einem Infopaper 1205.TXT) jedenfalls, da
   jeder Laufwerkszugriff, der von einem hochgeladenen Programm stammte,
   ber einen Zwischenpuffer im konventionellen Speicher gepuffert wurde.
   Diese zustzliche Kopiermanahme kostete natrlich Zeit, allerdings gab
   es dafr auch keine Probleme mit Busmaster-DMA-Zugriffen (etwa bei den
   meisten PS/2) und einigen lteren SCSI-Festplatten (die noch kein VDS -
   Virtual DMA Specification untersttzten). Fr Novell DOS 7 gilt diese
   Tatsache ebenfalls. Allerdings wurden verschiedene Mglichkeiten
   geschaffen, diesen vermeintlichen Geschwindigkeitsnachteil auszubgeln:

   Einerseits kann jetzt offenbar mit der undokumentierten CONFIG.SYS
   Direktive DEBLOCK= ein Grenzwert fr das direkte oder gepufferte
   Schreiben eingestellt werden (der frher bei A000h, in aktuellen
   Novell DOS Versionen aber bei FFFFh liegt, d.h. 'auer Kraft' gesetzt
   ist), oder zumindest die Art und Weise dieses Zugriffs beeinflut werden.
   Niedrigere Werte gehen zu Lasten der Performance. Nheres zu dieser
   Direktive in Kapitel III.1.

   Andererseits gibt es fr problematische Kombinationen von Mainboard/Bus/
   BIOS/Festplatte/Online-Festplattenkompressor einen speziellen Doppel-
   pufferungstreiber DBLBUF.SYS, der bei Bedarf explizit geladen werden
   kann (dieser Treiber existierte auch schon bei DR DOS 6.0). Dies geht
   natrlich zu Lasten der Performance. DBLBUF.SYS mu in CONFIG.SYS nach
   jedem in Frage kommenden Laufwerk geladen werden, darf natrlich nicht
   hochgeladen werden und belegt ca. 2 KByte. (Allerdings ist mir ein Fall
   bekannt, wo NWCACHE auf einem 286 mit lediglich 640KByte mit STACKER
   trotz gefordertem und installiertem DBLBUF.SYS nicht aktiviert werden
   konnte.)

   Um den Floppy-Zugriff - besonders auf langsamen Rechnern - zu beschleu-
   nigen, sollten Sie den Wert fr Look-ahead-Buffer (der undokumentierte
   zweite Parameter ss der CONFIG.SYS Direktiven BUFFERS=nn,ss bzw.
   HIBUFFERS=nn,ss) erhhen, siehe Kapitel III.1.

   Auch ist der Floppy-Zugriff bei Novell DOS/DR DOS nur scheinbar
   langsamer, da im Gegensatz zu MS-DOS beim ersten Zugriff auf das
   Medium diverse Daten (Verzeichnis und FAT) direkt eingelesen werden,
   die den spteren Zugriff dann schneller machen (diesen Unterschied
   zwischen MS-DOS und Novell DOS/DR DOS wird der eine oder andere
   sicherlich schon an den Prompt-Ausgaben bemerkt haben, wenn er mit
   einem PROMPT $p$g Pfad auf Floppies gearbeitet hat).

   In Verbindung mit alten Rechnern/BIOSen kann auch der Lesezugriff auf ein
   oder mehrere Laufwerke sehr langsam sein. Dies liegt dann daran, da das
   BIOS veraltet ist und nicht alle heute blichen Funktionen untersttzt.
   In diesem Fall hilft es (sowohl bei Novell DOS 7, als auch bei DR DOS,
   vielleicht auch bei MS-DOS) fr das jeweilige Laufwerk in CONFIG.SYS den
   BIOS-Treiber mit

    DEVICE[HIGH]=DRIVER.SYS parameter

   zu berladen (bzw. zu ergnzen, evtl. reicht dafr auch schon DRIVPARM=).
   Da das alte Laufwerk <old_drive> mit neuen Parametern nun aber ber
   einen neuen Laufwerksbuchstaben <new_drive> bereitgestellt wird (nicht
   bei DRIVPARAM=), kann man die Zuordnung danach mit

    ASSIGN old_drive=new_drive

   wieder auf den alten Laufwerksbuchstaben zurckbiegen.
   Statt DRIVER.SYS kann evtl. auch ein anderer Fremdtreiber wie Ciriaco
   Gara de Celis' 2M-XBIOS.EXE, 2M-ABIOS.EXE oder Ontracks Drive-Rocket
   oder Disk-Manager ausreichen, die ebenfalls das System-BIOS ergnzen
   oder ersetzen knnen.

   Bzgl. weiterer Hinweise in Verbindung mit der ebenfalls (stark)
   performance-fressenden VERIFY ON Einstellung siehe Kapitel II.14.
   Hinweise zu Performance-Problemen bei CD-ROMs siehe Kapitel II.3.

                                                                             
  ---------------------------------------------------------------------------

  II.18. Mit STACKER Hauptspeicher 'virtuell' verdoppeln... [96-04-14]
  ====================================================================

   Stichworte: STACKER, NWCACHE, VDISK, RAM-Disk

   Im letzten Jahr (1995-1996) ist viel ber sog. RAM-Verdoppler-Software
   geschrieben worden. Dabei wurde deutlich, da nichts ber wirklich
   vorhandenen Hauptspeicher geht und da 'RAM-Verdopplung' durch Online-
   Kompression immer nur eine Notlsung bleiben wird (die unter MS Windows
   3.xx manchmal etwas bringt, meist aber nicht effizient ist). Besonders
   hervorgehoben sei der unglaubliche weltweite Skandal um das inzwischen
   wohl wieder vom Markt verschwundene 'Produkt' SoftRAM, das - nach c't und
   anderen Informationsquellen - in erster Linie ein teurer Dummy ist/war.

   In Einzelfllen kann sich der Einsatz eines RAM-Verdopplers trotzdem
   lohnen, besonders wenn die folgenden Voraussetzungen gelten:

   - Die Software mu man nicht mehr extra bezahlen ;-)
   - Fr die Einrichtung wird kein (oder nur minimal mehr) Speicher
     im ersten MegaByte bentigt.
   - Es geht nicht um Ausfhrungsgeschwindigkeit, sondern um:
     "Trotz akuter Speichernot an allen Ecken und Enden berhaupt noch
      einigermaen arbeiten knnen".

   Wenn Sie Novell DOS 7 einsetzen, STACKER bereits installiert haben,
   eine RAM-Disk (wie z.B. VDISK) oder einen STACKER-kompatiblen Cache wie
   NWCACHE eingerichtet haben, knnten sich die folgenden berlegungen
   lohnen. Wenn Sie STACKER nur zu diesem Zweck installieren, lohnt sich
   das Ganze mit Sicherheit nicht...

   STACKER komprimiert Laufwerke durchschnittlich auf 1:2, d.h. im Mittel
   passen doppelt soviele Daten auf ein STACKER-Volume, wie auf ein
   normales unkomprimiertes Laufwerk. Dadurch wird 'virtuell' auch der auf
   ein komprimiertes Volume verwendete Cache (mit NWCACHE ist das mglich)
   verdoppelt (nicht der fr das Host-Laufwerk).

   Da RAM-Disks wie VDISK, RAMDRIVE oder TDSK ebenfalls von STACKER
   komprimiert werden knnen, kann auf diese Weise auch die theoretische
   Gre von RAM-Disks verdoppelt werden (oder mit anderen Worten: Es
   wird nur halb soviel XMS-Speicher fr die RAM-Disk bentigt, wie an Daten
   drauf pat). Natrlich lohnt sich die ganze Sache erst, wenn dies den
   Verlust, STACKER nun auch noch im Speicher unterbringen zu mssen, auf-
   wiegt. Bei Computern ist es jedoch hufig mglich, mit viel Flei und
   durch Opfern einiger kleiner Heiligtmer an anderer Stelle enorm viel
   herauszukitzeln.
   Da RAM-Disks per s extrem schnell sind, macht sich der Geschwindigkeits-
   verlust fr die Kompression zwar stark bemerkbar, die Gesamtzeit ist aber
   generell noch kurz; bei langsamen (Harddisk-)Laufwerken kann auf recht
   schnellen Rechnern sogar ein Geschwindigkeitszuwachs entstehen, wenn die
   Kompressionszeit krzer ist als die Zeit, die fr die Speicherung der
   Mehrdaten bentigt wrde.

                                                                             
  ---------------------------------------------------------------------------

  II.19. Einstellungen in Novell DOS 7 .INI-Dateien [97-02-24]
  ============================================================

   Stichworte: NWDOS.INI, [COLORS]

   In Zukunft wird diese Rubrik die Einstellungsmglichkeiten der
   einzelnen .INI- und .CFG-Konfigurationsdateien von Novell DOS 7 be-
   handeln. Dabei wird in erster Linie nur auf Besonderheiten eingegangen,
   die nicht offensichtlich sind oder nicht dokumentiert wurden.

   Derzeit ist hier nur die [COLORS] Rubrik beschrieben, wie sie in
   %NWDOSCFG%\NWDOS.INI vorkommen kann. Die gleichen Einstellungen sind
   auch in den undokumentierten Konfigurationsdateien %NWDOSCFG%\COLORS.INI
   (bei PNW NET.EXE, falls %NWDOSCFG%\NWDOS.INI nicht existiert) oder
   C:\NWDOS\DOS.INI (fr LOCK.EXE) mglich. Siehe auch Kapitel II.4.

   %NWDOSCFG%\NWDOS.INI:

    [COLORS]

    # Enthlt globale Einstellungen, soweit nicht von anderen Gruppen
    # bersteuert.
    # Die hier definierten Farben sind Werte von IBM PC Video-Attributen.
    # Auf EGA oder VGA im Farbmodus knnen alle Farben (0-F) fr den
    # Hintergrund verwendet werden. Mit anderen Video-Karten knnen nur 0-7
    # verwendet werden.
    #
    # 0 = Schwarz             8 = Dunkelgrau
    # 1 = Blau                9 = Hellblau
    # 2 = Grn               10 = Hellgrn
    # 3 = Zyan (Trkis)      11 = Hellzyan (Helltrkis)
    # 4 = Rot                12 = Hellrot
    # 5 = Magenta (Lila)     13 = Hellmagenta (Rosa)
    # 6 = Braun              14 = Gelb
    # 7 = Wei (Hellgrau)    15 = Intensives Wei
    #
    # Es knnen maximal 10 Farbpaletten definiert werden (ColorSet0= bis
    # ColorSet9=). Die Default-Farbpalette kann mit CurrentColor= angegeben
    # werden. [COLORS] CurrentColor= kann (bei fast allen Programmen mit
    # eigenen Gruppen) durch eine lokale CurrentColor= Einstellung ber-
    # steuert werden.
    #
    # Die Definition der Farbpaletten unterscheidet sich erheblich zwischen
    # den einzelnen .INI-Dateien (TASKMGR.INI, TASKMAX.INI und VIEWMAX.INI
    # verwenden eine vllig andere Syntax innerhalb der ColorSetX=
    # Direktiven, das Prinzip bleibt jedoch gleich). Hier, in NWDOS.INI,
    # werden die Paletten jeweils mit einer Definition des Namens (in
    # Anfhrungszeichen) plus 13 jeweils geklammerten Sets mit (Vordergrund-
    # farbe, Hintergrundfarbe) definiert.
    # Dabei sind offenbar nur Dezimalzahlen erlaubt. Bei Syntax-Fehlern wird
    # entweder der Rest der Zeile ignoriert oder es wird die interne
    # Default-Palette gewhlt (die der "Standard"-Definition entspricht).
    # Werden nicht alle Sets angegeben, wird fr die restlichen offenbar
    # die interne Default-Einstellung (entspr. "Standard" belassen).
    # Kommanta und Leerfelder zwischen den Sets sind optional, sollten aber
    # bis auf die Kommata in den Sets weggelassen werden, da es sein kann,
    # da das SETUP-Programm sonst nicht damit zurecht kommt.
    #
    # Die Sets im Einzelnen:
    #
    # SetNr: Bedeutung:
    #    1 = Farbe des Haupttextes, auch in eingeblendeten Fenstern
    #    2 = Titelleiste des aktiven Fensters
    #    3 = Titelleiste eines nicht aktiven Fensters
    #    4 = Farbe der Mentexte und Statuszeile und des seitlichen
    #        Scroll-Balkens, Warnungen
    #    5 = Vordergrund=Farbe des Button-Randes und Schatten,
    #        Hintergrund=Farbe des Button-Umrandungsfeld
    #    6 = Eingaben in Mens, Farbe der Angaben in Auswahlmasken,
    #        Verbatim-Texte in Hilfe (Beispiele)
    #    7 = Gewhlter, hervorgehobener Menpunkt
    #    8 = Nicht aktives Men im Hintergrund
    #    9 = Hotkey-Buchstaben in den Mens (fr <Alt>+Buchstabe)
    #   10 = Links im Hilfetext (Querverweise)
    #   11 = PopUps im Hilfetext (fr Kurzerluterungen)
    #   12 = Highlights im Hilfetext (ohne sonstige Funktion)
    #   13 = DOSBOOK Kommando

    NewUI=On                        # Pseudographische Oberflche (ON|OFF)
                                    # Default ist On, solange die Dar-
                                    # stellung mglich ist (EGA, VGA, kein
                                    # MEMMAX +V).
                                    # Falls dies nicht mglich ist, wird Off
                                    # gewhlt, auch wenn hier On angegeben
                                    # wurde.
                                    # Einige Cirrus-VGA-Adapter haben
                                    # Probleme mit der pseudographischen
                                    # Darstellung. In diesem Fall sollten
                                    # Sie global NewUI=Off whlen.

    MaxColors       = 10            # Anzahl definierter Farbsets
    CurrentColor    = 0             # Aktuelle Palettennummer aus ColorSetX
                                    # Falls nicht definiert, wird die
                                    # applikationsinterne Einstellung ge-
                                    # whlt, die "Standard" entspricht.
    ColorSet0       = "Standard"   (0,15)(15,1)(15,8)(15,4)(0,15)(0,7) ...
                               ... (15,3)(3,7)(4,7)(12,15)(3,15)(9,15)(2,15)
    ColorSet1       = "Monochrom" ...
    ColorSet2       = "LCD"       ...
    ColorSet3       = "Meer"      ...
    ColorSet4       = "Wiese"     ...
    ColorSet5       = "Sonnig"    ...
    ColorSet6       = "Rosa"      ...
    ColorSet7       = "Kohle"     ...
    #ColorSet8      = "Plasma"    ...
    # Zwei selbstdefinierte ergonomische, da flimmerfreie Farbpaletten
    # (nicht geeignet fr Graustufenmonitore):
    # "EditMP" empfindet die Einstellungen der Borland IDE-Editore nach
    #          und ist damit z.B. fr die EDIT-Gruppe [EDITOR] gut geeignet.
    # "HelpMP" empfindet die Farben des 4DOS/NDOS-Hilfemens nach
    #          und ist eine sehr angenehme Einstellung fr [DOSBOOK]
    ColorSet8       = "EditMP"     (14,1)(15,8)(15,1)(15,4)(0,1)(0,7) ...
                                ... (15,3)(3,7)(4,7)(15,1)(10,1)(12,1)(2,15)
    ColorSet9       = "HelpMP"     (0,2)(15,7)(15,8)(15,4)(0,2)(0,7) ...
                                 ... (15,0)(8,7)(4,7)(14,2)(6,2)(15,2)(2,15)

    # Nun folgen Einstellungen, die nur fr die einzelnen Anwendungen
    # gelten. Meist heit die Gruppe genauso wie das jeweilige Programm,
    # es gibt aber Ausnahmen. Innerhalb der Rubriken ist fast immer
    # CurrentColor= und NewUI= mglich (undokumentiert). Siehe Kapitel II.4.
    ...

                                                                             
  ---------------------------------------------------------------------------

  II.20. Nicht erlaubte Zeichen in Dateinamen: [97-05-13]
  =======================================================

   Stichworte: Semikolon, Klammeraffe, Ausrufezeichen, Bindestrich, Umlaute

   Wie Sie sicherlich wissen, sind nicht alle Zeichen in Dateinamen
   erlaubt. Die jeweils erlaubten Zeichen hngen auch von der DOS-Version
   ab. Hier soll - zunchst noch unvollstndig - auf einige Besonderheiten
   eingegangen werden:

   Zeichen:   Name:              Bemerkung:

   ;          Semikolon          Dieses Zeichen ist grundstzlich in
                                 keiner DOS-Version innerhalb von Datei-
                                 namen erlaubt (im FAT-Dateisystem). Bei
                                 den Betriebssystemen der DR-Familie wird
                                 es von jeher zur Einleitung von Pawrtern,
                                 bei 4DOS/NDOS fr Einschlulisten ver-
                                 wendet, siehe Kapitel II.9.

   @          Klammeraffe, 'at'  Dieses Zeichen ist zwar auch innerhalb
                                 von Dateinamen gltig, die Benutzung
                                 sollte aber vermieden werden, weil es
                                 sonst zu unntigen Schwierigkeiten mit
                                 Kommandos kommen knnte, die Listendateien
                                 untersttzen, siehe Kapitel II.9.

   !          Ausrufezeichen     Dieses Zeichen ist blicherweise als
                                 gltiges Zeichen in Dateinamen erlaubt,
                                 sollte aber trotzdem vermieden werden,
                                 weil es unter CCI Multiuser DOS nicht
                                 erlaubt ist. Dort dient es dem Kommando-
                                 zeileninterpreter als Trenner zwischen
                                 mehreren Kommandos in einer Zeile, wie
                                 dies intern auch bei Novells COMMAND.COM
                                 realisiert ist, siehe Kapitel II.4. bei
                                 DOSKEY.EXE.

   -          Bindestrich        Der Bindestrich '-' ist zwar auch ein
                                 gltiges und recht hufig verwendetes
                                 Zeichen, sollte aber mglichst nicht
                                 verwendet werden, da er mit dem ISO-9660
                                 Standard (von CD-ROMs) kollidiert, weshalb
                                 er von CD-Writer-Software oft durch einen
                                 Unterstrich '_' ersetzt wird.

       Umlaute und 'sz'   Viele Sonderzeichen und Umlaute sind zwar
                                 gltige Zeichen fr Dateinamen, sollten
                                 aber aus verschiedenen Grnden vermieden
                                 werden, weil es beim Betrieb im Netz,
                                 bei der Umstellung auf lange Dateinamen
                                 (VFAT) oder bei falschen Landeseinstel-
                                 lungen Probleme mit dem Zugriff auf be-
                                 stimmte Zeichen geben kann, die z.B. in
                                 anderen Lndern nicht direkt ber die
                                 Tastatur erreichbar sind, die in anderen
                                 Zeichenstzen durch vllig kryptische
                                 Zeichen ersetzt werden, usw. Siehe auch in
                                 Kapitel VI.7.

   ' '        Leerfeld           Zwar waren Leerfelder (auch schon lange vor
                                 Einfhrung von MS Windows95 Long-Filenames)
                                 auf API-Ebene durchaus gltige Zeichen in
                                 Dateinamen (wie Novells COMMAND.COM mit MD
                                 und RD beweist, siehe Kapitel II.11.), sie
                                 sollten aber trotzdem nicht verwendet
                                 werden, da die meisten Anwendungsprogramme
                                 und auch der Kommandointerpreter in der
                                 Regel nicht damit klar kommen.

                                                                             
  ---------------------------------------------------------------------------

  II.21. Physik der Verzeichniseintrge unter Novell DOS: [97-04-29]
  ==================================================================

   Stichworte: DELWATCH, UNDELETE, PASSWORD, DR DOS 6.0 Owner-IDs,
               IBM OS/2 EA-Handles, MS Chicago, MS Windows95 LFN-Support

   Entgegen landlufiger Meinung ist Microsofts LFN-Support keineswegs
   so ganz kompatibel in das bisherige FAT-Konzept integriert worden,
   wie dies in der Literatur gerne beschrieben wird. Nicht zuletzt solche
   Punkte aus meiner Sicht unfairer Machenschaften haben im Endeffekt
   zur Einstellung der Weiterentwicklung von Novell DOS 7 gefhrt.
   Glcklicherweise sinnt man bei Caldera schon ber Lsungen fr
   diese Probleme.

   Zum Beispiel existieren seit MS Windows95 einige Inkompatibilitten
   mit speziellen, in das FAT-System integrierten Fhigkeiten, die die
   ehemalige Konkurrenz "DR DOS" sptestens seit Version 3.40 (von 1987)
   bot, und die jetzt zu unntigen Schwierigkeiten bei der Weiterentwicklung
   von Calderas OpenDOS fhren. Wie man unschwer aus der unten aufgefhrten
   Abbildung ableiten kann, htte Microsoft durchaus - und das ohne
   Performance-Einbuen - mit einem etwas besseren Design bei der
   Verwendung dieser bereits anderweitig belegten Bereiche eine Koexistenz
   der Funktionen der "DR DOS"-Familie mit denen von MS Windows95 erreichen
   knnen. Zur eindeutigen Unterscheidung der unterschiedlichen Belegungs-
   varianten htte man z.B. eine andere Bit-Belegung der LFN-Sequenznummer
   in Verbindung mit dem Typ-Info-Byte benutzen knnen, schlielich muten
   ja fr Windows95 die Festplatten-Utilities sowieso angepat werden;
   stattdessen mu jetzt ein alternatives Betriebssystem gendert werden,
   um weiterhin kompatibel zu FAT zu bleiben. Oder man htte die neuen
   Informationen auch ganz in den ja sowieso zustzlich bentigten Ver-
   zeichniseintrgen fr LFNs unterbringen knnen.

   Um Programmierer, die Microsofts LFN-Features ausnutzen wollen und
   trotzdem - soweit wie dies jetzt berhaupt noch mglich ist -
   Kompatibilitt zur DR DOS Familie wahren wollen, von der wirklichen
   Belegung dieser Strukturen in Kenntnis zu setzen, hier eine bersicht
   der Belegung der Verzeichniseintrge. Weitere Detailinformationen
   zur Lschverfolgung (DELWATCH.EXE, UNDELETE.EXE) sowie zum Pawort-
   schutz (PASSWORD.EXE) finden sich in den jeweiligen Abschnitten in
   Kapitel II.4.

   Ernsthaft kollidierende Doppelbelegungen sind mit '!!!' bei dem
   jeweils zuletzt verffentlichten Betriebssystem gekennzeichnet.


    ͻ
                                                    Del       
                                                    ChrPawort
                 Name              ErweiterungAttTyp /    /   
             (8 Zeichen)           (3 Zeichen)      MilCreate-
                                                    Sek Zeit  
                                                    
    ͼ
    +00h 01h 02h 03h 04h 05h 06h 07h 08h 09h 0Ah 0Bh 0Ch 0Dh 0Eh 0Fh

                                                            
          In der DELWATCH-Lschverfolgung      Ĵ           
          stehende Dateien haben zustzlich                 
          das Volume-Attribut gesetzt, was mit              
          Windows95 LFN-Eintrgen kollidiert.               
                                                            
          Pawortgeschtzte Dateien oder Ver-  Ĵ           
          zeichnisse haben ein gesetztes Hidden-            
          Attribut, werden aber ganz normal an-             
          gezeigt. Natrlich hat das Hidden-                
          Attribut keinen Einflu auf den                   
          Pawortschutz.                                    
                                                            
          !!! MS Windows95: Die Attribut-                 
          Kombination 0Fh (Read-Only + Hidden +              
          System + Volume) von nun auch zur                  
          Kennzeichnung von LFN-Eintrgen benutzt.           
                                                             
          MS Windows95: Reserviert zur Kennzeichung Ĵ        
          des Typs von LFN-Eintrgen, fr Chicago            
          waren zwei Typen definiert: LONG_NAME_COMP         
          (00h) und LONG_CLASS (??h). Im letzten             
          Fall enthlt der LFN-Eintrag Klassen-              
          informationen in einem anderen Format              
          (16 Bytes), ob er aber auch von Windows95          
          benutzt wird, ist nicht geklrt. blich            
          ist jedenfalls 00h.                                
                                                             
          !!! Dieses Byte wird wahrscheinlich in            
          Zukunft von OpenDOS benutzt werden werden,          
          um trotz der jetzt bestehenden Konfusion            
          in Zukunft wieder Kompatibilitt inklusive          
          eigenem LFN-Support (und mehr) zu integrieren.      
          Default ist 00h.                                    
                                                              
          Normalerweise 00h. Ab Novell DOS 7 enthlt   Ĵ     
          dieses Feld den ersten Buchstaben eines Datei-      
          namens nach dem Lschen, der so von UNDELETE        
          automatisch wiederhergestellt werden kann.          
          Wurde eine Datei mit DELPURGE aus der               
          Lschverfolgung entfernt, so steht hier der         
          Wert E5h, der UNDELETE daran hindert, die           
          Datei auf herkmmliche Art wieder zu ent-           
          lschen. Setzt man dies manuell auf 00h zurck,     
          ist die konventionelle Entlschmethode mglich.     
                                                              
          !!! MS Windows95: Millisekunden der Datei-        
          erzeugung (10 Millisekunden-Raster). Bei             
          LFN-Eintrgen enthlt dieses Feld die Prf-          
          summe fr den Eintrag des alten Dateinamens.         
                                                               
          Bei DR DOS, Multiuser DOS, Novell DOS und Caldera  Ĵ
          OpenDOS steht hier 0000h fr ungeschtzte Eintrge   
          bzw. ein unidirektional verschlsseltes Datei- bzw.  
          Verzeichnispawort.                                  
                                                               
          !!! MS Windows95: Zeit der Dateierzeugung          
      
       Erstes Zeichen einer gelschten Datei, normalerweise E5h,
          bei DELWATCH von DR DOS 6.0, Novell DOS 7 und Caldera
          OpenDOS 7.01 jedoch 05h, solange die Datei in der Lsch-
          verfolgung steht.
      
       !!! MS Windows95: Enthlt bei LFN-Eintrgen die
           Sequenz-Nummer des Verzeichniseintrags in Bits 0-4 (Eins-basiert)
           und im letzten Eintrag ist Bit 6 als Endmarke gesetzt.
           Damit ergeben sich die Kombinationen 01h..1Fh und 41h..5Fh,
           die sich leider nicht eindeutig von den anderen bisher
           verwendeten Werten unterscheiden lassen.

    ͻ
    Org-DelOwnerIDPawort Std-   Std-                        
     Zeit  Org-DelRechte  Zeit   Datum Start-    Dateilnge  
    RecSiz/Datum /  /      o.      o.  Cluster   in Bytes    
    Create-Zugriff  EA-   Del-   Del-                        
     Datum  Datum Handle  Zeit   Datum                       
                                                    
    ͼ
    +10h 11h 12h 13h 14h 15h 16h 17h 18h 19h 1Ah 1Bh 1Ch 1Dh 1Eh 1Fh

                                           
                                     MS Windows95:
                                            Bei LFN-Eintrgen 0000h.
                             
                              Befindet sich eine Datei in der
                                 DELWATCH Lschverfolgung von Novell DOS
                                 oder Caldera OpenDOS 7.01 (nicht jedoch
                                 DR DOS 6.0), so steht hier das Datum
                                 und die Zeit des Lschzeitpunktes,
                                 nicht der Stempel der letzten nderung.
                      
                       DR DOS, CP/M, Multiuser DOS, Novell DOS, Caldera
                         OpenDOS: Zugriffssperren fr pawortgeschtzte
                         Dateien oder Verzeichnisse. In drei Klassen
                         'World', 'Group' und 'Owner' gibt es jeweils
                         vier Zugriffssperren 'Read' (01h), 'Write'
                         (02h), 'Delete' (04h) und 'Execute' (08h).
                         'Execute' wird derzeit nur von FlexOS verwendet
                         und sonst wie 'Read' behandelt. Singleuser-
                         Varianten dieser Betriebssysteme benutzen alle
                         drei Klassen simultan (d.h. hier sind 0000h,
                         0111h, 0555h, und 0DDDh blich), Multiuser-
                         Varianten je nach Ebene.
                      
                       CP/M: Zustzlich werden noch die Attribute
                         F1 'Modify default open rules' (80h),
                         F2 'Partial close default' (40h),
                         F3 'Ignore Close Checksum Error' (20h) und
                         F4 'Disable Checksums' (10h) benutzt
                      
                       !!! (MS)/IBM OS/2: Extended-Attribut Handle
                      
                       ??? MS Windows95b FAT32-Partitionen: High-Word
                          des Start-Clusters (reine Spekulation!!!)
               
                DR DOS 6.0, FlexOS (und Multiuser DOS???): Owner-IDs;
                  dabei in 12h den Wert der User-ID, und in 13h den
                  Wert der Group-ID.
               
                Novell DOS 7, Caldera OpenDOS 7.01 DELWATCH: Zwischen-
                  gespeichertes Datum der letzten nderung bei gelschten,
                  aber in der Lschverfolgung stehenden Dateien oder
                  Verzeichnissen.
               
                MS Windows95: Mit ACCDATE= Last-Access-Datum
                   Datum des letzten Zugriffs
        
         FlexOS: Record-Gre
        
         Novell DOS 7, Caldera OpenDOS 7.01 DELWATCH:  Zwischen-
           gespeicherte Zeit der letzten nderung bei gelschten, aber
           in der Lschverfolgung stehenden Dateien/Verzeichnissen.
        
         !!! MS Windows95: Datum der Dateierzeugung


   MS Chicago/Windows95 LFN-Eintrge mit langen Dateinamen in Unicode
   (Typ LONG_NAME_COMP=00h)

    ͻ
                                                              
                                                        Langer
    LFN    Langer Dateiname (1/3)             AttTypCRC Datei-
    SNo                                       0Fh00h    name  
                                                    (2/3) 
                                                    
    ͼ
    +00h 01h 02h 03h 04h 05h 06h 07h 08h 09h 0Ah 0Bh 0Ch 0Dh 0Eh 0Fh

    ͻ
                                                                 
                                                   Langer        
      Langer Dateiname (Fortsetzung 2/3)    0000h  Dateiname     
                                                   (3/3)         
                                                            
                                                    
    ͼ
    +10h 11h 12h 13h 14h 15h 16h 17h 18h 19h 1Ah 1Bh 1Ch 1Dh 1Eh 1Fh


   MS Chicago LFN-Eintrge mit Klasseninformationen (Typ LONG_CLASS=??h)
   (ob diese auch von MS Windows95 verwendet werden, ist nicht geklrt)

    ͻ
                                                              
                                                       Klassen
    LFN       Klasseninformation (1/2)        AttTypCRC info  
    SNo                                       0Fh??h    (2/2) 
                                                              
                                                    
    ͼ
    +00h 01h 02h 03h 04h 05h 06h 07h 08h 09h 0Ah 0Bh 0Ch 0Dh 0Eh 0Fh

    ͻ
                                                                
     Klasseninfo                                                
     (Forts. 2/2)        Reserviert        0000h   Reserviert   
                                                                
                                                                
                                                    
    ͼ
    +10h 11h 12h 13h 14h 15h 16h 17h 18h 19h 1Ah 1Bh 1Ch 1Dh 1Eh 1Fh


   Einige Beta-Versionen von MS-DOS 4 benutzten ein (unbekanntes) Wort
   innerhalb dieser Strukturen, um die gewnschte Codeseite zur Anzeige
   der jeweiligen Datei unterzubringen (im Prinzip keine schlechte Idee,
   siehe INT21h/3303h, INT21h/3304h, INT21h/5703h und INT21h/5704h). In
   Release-Versionen wurde dieses Feld jedoch nie zu diesem Zweck genutzt.

   Die fr den Pawortschutz verwendeten Bereiche werden wahrscheinlich
   auch noch von heutigen Multiuser DOS-Betriebssystemen, etwa von
   CCI Multiuser DOS 7.22 oder von IMS Multiuser DOS und IMS REAL/32
   verwendet. berprft habe ich dies jedoch noch nicht.

   Achtung: Die inkompatibilen FAT32-Partitionen von MS Windows95b ver-
   wenden zumindest noch zwei weitere Bytes fr das High-Word des Start-
   Clusters. Leider ist mir noch unbekannt, welche Bytes das sind...

                                                                             
  ###########################################################################
  ###########################################################################

  III. CONFIG.SYS:
  ================

  ---------------------------------------------------------------------------

  III.1. Undokumentierte Direktiven und Eigenschaften: [97-05-01]
  ===============================================================

   Stichworte: CONFIG.SYS, Reihenfolge, maximale Zeilenlnge, alle
               dokumentierten und undokumentierten Direktiven, besonders:
               SWITCHES=/N, NUMLOCK, YESCHAR, [COMMON], TIMEOUT, GETKEY,
               ERROR, ONERROR.

   DR DOS 6.0, Novell DOS und Caldera OpenDOS suchen vor einer evtl.
   auszuwertenden CONFIG.SYS Datei nach einer Datei namens DCONFIG.SYS
   (der Name stammt von 'Laufwerk D:', da diese Funktion in erster Linie
   fr Online-Festplattenkompressoren wie STACKER etc. gedacht ist, wo
   die ursprngliche CONFIG.SYS Datei auf Laufwerk D: statt auf Laufwerk
   C: zu finden ist). Wird eine solche Datei gefunden, so wird eine
   evtl. ebenfalls vorhandene CONFIG.SYS Datei ignoriert. (Andere
   Mglichkeiten, die Konfiguration aus einer alternativen Datei zu laden,
   finden sich bei CHAIN= oder in Kapitel II.4. bei SYS /DR:ext.)
   Bezglich der Namenswahl ist brigens interessant, da Multiuser DOS
   statt CONFIG.SYS generell verwandte Datei CCONFIG.INI auswertet.

   Im Gegensatz zu MS-DOS ist bei Novell DOS die Reihenfolge der Anweisun-
   gen in der Datei CONFIG.SYS sehr wichtig. Der Parser arbeitet die Datei
   (bis auf wenige Ausnahmen wie etwa SWITCHES=) streng nach dem vorgege-
   benen Verlauf durch, d.h. beginnt in der ersten Zeile und verzweigt
   entsprechend evtl. GOSUB=, SWITCH=, CHAIN= etc. Anweisungen. (Bei MS-DOS
   gilt das im Prinzip zwar auch, aber es gibt sehr viele undokumentierte
   Ausnahmen von dieser Regel, so da manchmal sehr seltsame Dinge pas-
   sieren, z.B. werden dort DEVICE= Befehle immer vor INSTALL= Befehlen
   ausgefhrt, vgl. Kapitel III.7. und V.7.).
   Natrlich gibt es viele Direktiven, die nicht sofort wirksam werden,
   sondern erst in dem Moment, wenn der Kommandoprozessor geladen wird
   (teilweise aber auch schon bei INSTALL[HIGH]=).
   Um den generellen Unterschied zusammengefat zu erklren, lt sich
   sagen, da DR DOS und Novell DOS zur Auswertung der CONFIG.SYS einen
   echten Interpreter verwenden, MS-DOS und PC-DOS hingegen eine Art
   Pre-Compiler, wobei beides Vor- und Nachteile hat.

   Die CONFIG.SYS Datei, die auch grer als 64 KByte lang sein kann, wird
   brigens nicht komplett auf einmal in den Speicher geladen und dort
   abgearbeitet, sondern nach und nach in einen internen 8 KByte groen
   Zwischenpuffer geladen, aus dem dann Zeile fr Zeile herausgelesen wird.
   Da die Behandlung also als Ganzes nicht streng zeilenweise funktioniert,
   ist trotzdem eine Art Online-Editierung (etwa INSTALL=c:\nwdos\edit.com
   c:\config.sys) ausgeschlossen. Bei MS-DOS/PC-DOS wird die CONFIG.SYS
   Datei komplett in den Speicher geladen, andernfalls wren MS-DOS-konforme
   Boot-Mens trotz obiger Besonderheiten in der Bearbeitungsreihenfolge
   nicht realisierbar, vgl. Kapitel III.7. und V.7.)

   Die maximale Zeilenlnge fr CONFIG.SYS Anweisungen betrgt bei
   Novell DOS 255 Zeichen, statt der sonst meist blichen 128 oder noch
   weniger Zeichen (ltere MS-DOS Ausgaben akzeptierten nur 31 Zeichen).
   Ob alle Ihre Treiber (per DEVICE= etc.) allerdings mit solchen ber-
   lngen zurecht kommen, ist fraglich. Bei der bergabe an Treiber durch
   diese Begrenzung abgeschnittene Parameter werden ignoriert, genauso wie
   auch generell eventuell berstehende Reste von Zeilen, die selbst die
   Maximallnge von 255 Zeichen noch berschreiten.
   Natrlich werden per INSTALL= etc. geladenen Treibern nach wie vor
   maximal 127 Zeichen als Kommandozeile bergeben, ansonsten wrde ja
   der Programmkopf solcher Treiber berschrieben.
   Gegenber der Vorgngerversion (als auch gegenber der Konkurrenz MS-DOS)
   gibt es eine Vielzahl von Verbesserungen, die unverstndlicherweise zum
   grten Teil nicht oder nur sehr oberflchlich dokumentiert sind. Diese
   Erweiterungen erlauben eine uerst flexible Handhabung von Mehrfach-
   konfigurationen und ein effektives Fehlermanagement. Auf den ersten Blick
   erscheint die Methode, mit der bei DR DOS und Novell DOS Boot-Mens
   behandelt werden, etwas schwerfllig. Allerdings kann man schon mit den
   offiziellen Direktiven - bei entsprechender Strukturierung - mehr als nur
   alle Mglichkeiten von MS-DOS so nachbilden, da eine AUTOEXEC.BAT fr
   beide Systeme identisch aussehen knnte (besonders bezglich der Variable
   %CONFIG%). Trotzdem hat man bei Novell DOS noch wesentlich mehr
   Flexibilitt (das Sprachniveau kann man fast mit BASIC gleichsetzen
   und geht teilweise ber die Mglichkeiten der Batch-Sprache hinaus!).

   Die folgenden Abschnitte werden nun alle CONFIG.SYS Direktiven be-
   leuchten, wobei allerdings nur dann ausfhrlich auf Besonderheiten
   eingegangen wird, wenn die Dokumentation miverstndlich, unvollstndig
   oder schlichtweg nicht vorhanden ist. Ansonsten wird nur kurz die
   vollstndige Syntax dargestellt.
   Frhere Versionen von DR DOS untersttzten auch noch verschiedene
   andere undokumentierte Direktiven. Mehr hierzu siehe DRDOS6UN.TXT.

   Traditionell werden CONFIG.SYS Direktiven mit einem Gleichheitszeichen
   von ihrem Wert getrennt. Mittlerweile sind aber viele Direktiven hinzu-
   gekommen, die eine bestimmte Funktion ausfhren, anstatt eine Einstellung
   vorzunehmen. Das Gleichheitszeichen ist hier nicht besonders intuitiv
   und kann in Ausnahmefllen sogar kleinere Probleme bereiten (etwa bei
   ECHO[=] (Kapitel III.3.) oder YESCHAR[=]). Deshalb ist die Angabe des
   Gleichheitszeichen bei Novell DOS zwar berall mglich, aber optional.
   Dies gilt brigens auch fr die Kommandozeile und Batchjobs mit Novells
   COMMAND.COM, siehe Kapitel II.11.

   Die einzelnen Werte drfen mit Leerfeldern, TABs oder Komma getrennt
   werden. Vor einem Wert, der ein bestimmtes ASCII-Zeichen spezifizieren
   soll, drfen nach einem Komma keine Leerfelder folgen, sonst werden
   diese Leerfelder als das anzugebende ASCII-Zeichen interpretiert (z.B.
   bei TIMEOUT=).
   Bei Parametern, die Zeichenketten (z.B. Dateinamen oder Marken) als
   Argument erwarten, ist zustzlich noch '/' als Trennzeichen zwischen
   den Parametern erlaubt. Normale Werte zu Parametern mssen mit ':'
   zwischen Parameter und Wert getrennt werden (etwa bei DRIVPARM=).
   Auerdem haben die Zeichen '>', '<', '|' und andere in CONFIG.SYS noch
   keine Bedeutung fr Umleitungen, und knnen daher problemlos z.B. fr
   die Gestaltung von Mens mittels ECHO= herangezogen werden. Das gilt
   auch fr die meisten anderen Zeichen. Ungltige Zeichen werden jedenfalls
   einfach ignoriert.

   Mu auf Dateien zugegriffen werden, die mit Pawrtern geschtzt sind,
   mu auch hier das Pawort mit Semikolon getrennt angegeben werden.

   Sofern es nicht zu Mideutung kommen kann, sind am Ende jeder Zeile
   jeweils beliebige Kommentare erlaubt, solange sie wie normale Parameter
   von den echten Argumenten getrennt werden.


   i. Allgemeine Einstellungen:
   ----------------------------

    Direktiven, die Werte erwarten, die aber nicht angegeben werden, melden
    sich mit einer Fehlermeldung. Lt man die Direktive jedoch komplett
    weg, arbeitet Novell DOS mit internen Default-Einstellungen. Liegt ein
    Wert auerhalb des zulssigen Wertebereichs, so wird der Wert normaler-
    weise stillschweigend auf- oder abgerundet. Nur in Einzelfllen kommt
    es zu einer Fehlermeldung. Nicht erkannte Direktiven fhren ebenfalls
    zu einer Fehlermeldung. Im Verlauf der CONFIG.SYS Bearbeitung drfen
    Direktiven durchaus auch mehrfach vorkommen, die jeweils letzte Ein-
    stellung gilt dann. Wurden dabei bei Direktiven, die die Angabe mehrerer
    Parameter erlauben, zunchst zustzliche Parameter angegeben, bei
    spteren Vorkommen der Direktive jedoch weggelassen, bleiben die
    hierfr bereits eingestellten Werte erhalten und werden nicht wieder
    auf Default-Einstellungen zurckgesetzt.

    BREAK [=] [ON|OFF]                                                  <ON>

                   BREAK=ON macht das System geringfgig langsamer (wirklich
                   minimal, auer bei Batchjobs), ist aber trotzdem zu
                   empfehlen, damit man Programme im Fehlerfall mit
                   <Ctrl>+<c> abbrechen. Das klappt aber nicht bei allen
                   Programmen und hat noch den Nachteil, da das Programm
                   dafr sorgen mu, da das System wieder aufgerumt wird.
                   Geschieht dies nicht und drckt man im falschen Moment
                   <Ctrl>+<c>, so kann es zu Abstrzen und Datenverlust
                   kommen (z.B. AUTOCAD R11). (Viele Editore etc. unter-
                   sttzen die alte WordStar-Belegung aus CP/M Zeiten, dort
                   ist <Ctrl>+<c> mit <PageDown> belegt.)
                   Wenn Sie den erweiterten Tastaturtreiber K3PLUS bzw.
                   FreeKEYB (zu beziehen ber mich) einsetzen, knnen Sie
                   problemlos "BREAK off" verwenden, denn K3PLUS bietet
                   eine Mglichkeit (sog. verschrftes <Ctrl>+<Break>),
                   diese Einstellung bei Bedarf ber eine spezielle Tasten-
                   kombination umzuschalten.

                   Bezglich des COMMAND.COM Kommandos BREAK und einer
                   Beispiellsung fr Batchjobs siehe auch Kapitel II.11.

    BUFFERS [=] nn[,ss] [comments]                  nn=3..99, <3, 5 oder 15>
    HIBUFFERS [=] nn[,ss] [comments]                ss=1..99, <0>

                   Die Dokumentation erwhnt nur die Mglichkeit, Puffer nn
                   mit BUFFERS= einzurichten. Trotzdem ist es auch bei
                   Novell DOS mglich, zustzlich noch 'Look-Ahead-Buffer',
                   d.h. die Anzahl der Sektoren ss pro Schreib/Lesean-
                   forderung anzugeben (wie von MS-DOS gewohnt). Dies wird
                   nicht nur syntaktisch akzeptiert, sondern ist auch mit
                   der entsprechenden Funktionalitt versehen. Diese Angabe
                   ist optional. Standardmig werden werden keine 'Look-
                   Ahead-Buffer' eingerichtet, was der Einstellung ss=0
                   entsprechen wrde, die allerdings syntaktisch nicht
                   akzeptiert wird. Auf langsamen Rechnern knnen Sie durch
                   Angabe eines Wertes fr ss eine starke Beschleunigung
                   insbesondere der Floppies erreichen, auf schnelleren
                   Rechnern ist ein echter Cache wie NWCHACHE allemal
                   effektiver. Andere als die erlaubten Werte werden zurck-
                   gewiesen. (Evtl. spielt die ss Angabe auch im Zusammen-
                   hang mit DBLBUF.SYS eine Rolle???)
                   Die Default-Angabe hngt auch vom verfgbaren Speicher-
                   platz ab: Sollte Ihr System weniger als 128 KByte RAM
                   besitzen, werden nur drei Puffer eingerichtet, sonst
                   fnf, fr groe Platten offenbar auch 15. Puffer werden
                   nach Mglichkeit automatisch in die HMA oder den oberen
                   Speicher verlagert (DOS=HIGH,UMB), die Verwendung der
                   alten DR DOS Direktive HIBUFFERS= ist daher auf den
                   ersten Blick obsolet. Trotzdem wird diese mit gleicher
                   Syntax weiterhin untersttzt (ist allerdings nun
                   undokumentiert); die interne Bearbeitung weicht leicht
                   von BUFFERS= ab, weil hier nur 'Hi'-Puffer eingerichtet
                   werden (nach Mglichkeit in der HMA, sonst in UMBs bei
                   DOS=HIGH,UMB bzw. HIDOS=ON).

                   Ein Puffer belegt 528 Bytes (plus einige Bytes fr die
                   Verwaltungsstrukturen) und kann darin 512 Bytes Daten
                   speichern. Whrend der CONFIG.SYS sind die vordefinierten
                   Puffer alle einzeln allokiert. Bei nderung der Sektor-
                   zahl kann sich der Speicherbedarf jedoch vervielfachen.
                   Daher sollte man diese Angabe stark reduzieren (etwa 3
                   oder 4), sobald man mit einem Platten-Cache wie NWCACHE
                   arbeitet. Ein Cache ist nicht nur effektiver, sondern
                   die Performance wird durch zu hohe BUFFERS= Werte sogar
                   wieder gedrosselt, da erstens weniger freier Arbeits-
                   speicher verfgbar ist und zweitens eine doppelte
                   Pufferung stattfindet. Ohne Cache sind meist Werte
                   zwischen 20 und 30 angebracht.

                   Es mag einige wenige, unsauber programmierte Programme
                   geben, die die Puffer direkt ansprechen. Liegen die
                   Puffer dann in der HMA, so fhrt dies hchstwahrschein-
                   lich zum Absturz des Rechners, wenn die Adreleitung A20
                   abgeschaltet sein sollte (was allerdings sehr unwahr-
                   scheinlich ist). Manche Harddisk-Controller erfordern
                   ebenfalls einen Puffer im nicht gemappten, konventio-
                   nellen Speicher, siehe auch bei DEBLOCK=. Normalerweise
                   sind keine Probleme zu erwarten.

                   Ab DR DOS 6.0 werden bei BUFFERS= zwei Parameter ausge-
                   wertet, bei DR DOS 3.4x und 5.0 wurde nur ein Parameter
                   verwendet.

                   Die mit HIBUFFERS= vergleichbare bei MS-DOS 7
                   (MS Windows95/Chicago) eingefhrte Direktive BUFFERSHIGH=
                   wird von Novell DOS 7 (Update 15) nicht untersttzt, ist
                   aber - wie ersichtlich - auch berflssig.

    COUNTRY [=] phonecode, codepage, [d:\[path]]\COUNTRY.SYS

                   Die Default-Einstellung ohne diese Angabe ist vom je-
                   weiligen Rechner und DOS abhngig, i. allg. werden
                   dann jedoch amerikanische Einstellungen gewhlt
                   (was COUNTRY=1,437,C:\COUNTRY.SYS entsprche).

                   Fr Deutschland sollte man deshalb

                    COUNTRY=049,437,c:\nwdos\country.sys

                   nicht vergessen. Die Angabe der beiden Codes sollte
                   dreistellig erfolgen (obwohl das bei Novell DOS nicht
                   notwendig ist). Mehr zum Thema landessprachliche
                   Untersttzung in Kapitel II.16.

                   Achtung:

                   Die Angabe der Codeseite ist im Rahmen der Auswahl der
                   in COUNTRY.SYS fr das jeweilige Land zugeordneten
                   Codeseiten (blicherweise zwei) zwar wahlfrei, sollte
                   aber die tatschlichen Gegebenheiten zum Zeitpunkt der
                   Bearbeitung von COUNTRY= wiederspiegeln.
                   Da dies blicherweise der Hardware-Codeseite fr Anzeige
                   (Main-BIOS und Grafikkarten-BIOS) und Drucker entspricht
                   (die DOS beide nicht berprfen kann), mu diese Angabe
                   berhaupt erst vorgenommen werden und sollte - in den
                   allermeisten Fllen (USA, West-Europa) - Codeseite 437
                   entsprechen. Sollten sich die Codeseiten von Bildschirm
                   und Drucker unterscheiden, mssen Sie sich fr das be-
                   vorzugte Medium (i. allg. die Anzeige) entscheiden.
                   DOS whlt auf der Grundlage dieser Einstellung die
                   landesspezifischen Informationen aus der COUNTRY.SYS
                   Datei aus.
                   Wenn Sie spter keine Codeseitenuntersttzung einrichten
                   oder verwenden wollen (DISPLAY.SYS, PRINTER.SYS, MODE),
                   kann DOS fr diese Gerte auch keine andere Codeseite
                   forcieren, und nimmt die mit COUNTRY= eingestellte
                   Codeseite einfach global an (z.B. auch bei CHCP), auch
                   wenn dies nicht den wirklichen Tatsachen entspricht!

                   Wenn Sie hier eine andere Codeseite als die tatschlich
                   aktive Codeseite angeben, wird eine Synchronisation mit
                   den wirklichen Verhltnissen erst dadurch erreicht, da
                   Sie bei aktivierter Codeseitenuntersttzung mit CHCP auf
                   eine *andere* Codeseite umschalten, denn dabei werden
                   die aktivierten Gerte mit den neuen und nun stimmigen
                   Font- und Zeichensatz-Informationen versorgt.
                   Bis dahin zeigt z.B. auch MODE CODEPAGE /STATUS an,
                   da noch keine Codeseite fr das jeweilige Gert geladen
                   wurde.
                   Die Angaben fr die Hardware- und vorbereiteten Code-
                   seiten basieren hingegen auf den Einstellungen bei der
                   Installation von DISPLAY.SYS, PRINTER.SYS, MODE CODEPAGE
                   PREPARE oder werden zu 437 angenommen.

                   Dieser Sachverhalt wird in vielen Bchern falsch
                   geschildert und auch einige modernere Setup-Programme
                   (von Microsoft) installieren hier immer wieder die
                   Codeseite 850, was blicherweise nicht korrekt oder
                   zumindest unsauber ist!
                   Viele Applikationen gestalten Ihre Ausgaben in Ab-
                   hngigkeit von der vom System zurckgelieferten
                   Codeseite, mit der Folge von unschnen Ergebnissen,
                   wenn diese Information nicht mit den Tatsachen ber-
                   einstimmt.
                   Daher sollten Sie - von speziellen bewuten Tuschungs-
                   manahmen abgesehen - hier unbedingt die korrekte
                   Einstellung berprfen und ggf. auf 437 umndern
                   (wenn dies der Hardware-Codeseite entspricht), auch
                   wenn Sie spter mit Codeseite 850 arbeiten wollen!
                   Es gibt eigentlich keinen Grund, hier Codeseite 850
                   vorzugeben, nur weil Sie spter - nach Einrichtung
                   der Codeseitenuntersttzung - mit dieser Codeseite
                   arbeiten wollen. Das System bekommt diese nderung
                   schlielich sowieso in dem Moment mit, wo Sie mit
                   CHCP auf diese Codeseite umschalten; also genau zu
                   dem Zeitpunkt, ab dem eine falsche Einstellung durch
                   Neusynchronisation korrigiert wrde. Ohne aktivierte
                   Codeseitenuntersttzung wrde diese Diskrepanz bestehen
                   bleiben.
                   (Lediglich fr den Long-Filename-Support von MS-DOS 7
                   mag es - rein theoretisch - annehmbar sein, bis zu
                   diesem Zeitpunkt quasi unter falscher Flagge zu laufen,
                   dafr aber schon whrend der CONFIG.SYS korrekte
                   Zuordnungstabellen zu UniCode eingestellt zu haben
                   (ob dies berhaupt daran gekoppelt ist, ist nicht
                   gesichert). Da dort aber die Codeseitenuntersttzung
                   (unter dem GUI) sowieso funktionslos ist, wre dies
                   aber auch wieder nur ein Grund mehr, bei diesem Betriebs-
                   system sofort mit CHANGECP auf die Codeseite 437 umzu-
                   konfigurieren. Fr Novell DOS 7 ist diese berlegung
                   jedenfalls ohne Belang. Bei KEYB knnen Sie ebenfalls
                   explizit eine Codeseite angeben.)

                   Die Angabe dieser Direktive kostet keinen zustzlichen
                   Speicherplatz, da das System die Landesinformationen
                   sowieso bereitstellt (nur mglicherweise fr das falsche
                   Land).

    FCBS [=] [mm [, nn]] [comments]  mm=0..255 <1 oder 4>,
                                     0<=nn=<=mm <0??? oder 1>

                   Die Angabe des Wertes 0 ist zwar mglich, sollte aber
                   vermieden werden. Laut meiner Erfahrung ist die Default-
                   Einstellung <1,0> (Update 15), laut Dokumentation jedoch
                   <4,4>, wobei jeder Steuerblock 50 Bytes im konventio-
                   nellen Speicher bentigt (die auch mit DOS=HIGH,UMB nicht
                   ins Upper Memory verlagert werden knnen). Whrend der
                   CONFIG.SYS gilt - unabhngig von der gewhlten FCBS=
                   Einstellung, die zunchst nur aufgezeichnet wird, um
                   erst nach Beendigung der CONFIG.SYS aktiv zu werden -
                   eine Einstellung, die effektiv FCBS=1,0 entspricht.
                   FCBs (File Control Blocks) werden in erster Linie fr
                   alte Programme bentigt, die CP/M Dateioperationen
                   verwenden. Trotzdem sind auch heute FCBs keineswegs
                   berflssig und werden von mehr Programmen verwendet,
                   als man glaubt...

                   Bei Novell DOS ist FCBS= allerdings nur dann wirklich
                   effektiv, wenn SHARE.EXE oder eine Netzwerk-Software ge-
                   laden wird. Obwohl die Angabe nn fr die geschtzten FCBs
                   optional ist, wird sie - entgegen der Dokumentation -
                   zumindest bis zur derzeitigen IBMBIO.COM Version (Update
                   15 und Caldera OpenDOS 7.01) definitiv nicht ausgewertet
                   (und wahrscheinlich deshalb auch nicht von SHARE etc.),
                   es gibt aber in der Literatur immer wieder Hinweise,
                   da die zweite Angabe bei DR DOS im Netzbetrieb eine
                   Auswirkung hatte (allerdings enthlt der Kernel von
                   DR DOS 3.41-6.0 nur Code zur Auswertung des ersten
                   Parameters, so da mir dies recht unwahrscheinlich
                   erscheint).
                   Die geschtzten FCBs sind auch bei MS-DOS 5.0+ wegge-
                   fallen, so da die fehlende Auswertung bei Novell DOS 7
                   nur kompatibel wre...

                   Geschtzte FCBs kosten (vermutlich) jeweils 16 Bytes
                   Speicherplatz. DR DOS und Novell DOS 7 wandeln FCBS= und
                   FILES= intern in 'Handles' um und verwalten sie aus einem
                   gemeinsamen Pool, was eine effektivere Speicherauslastung
                   zur Folge hat (siehe auch MEM /A). FILES= und FCBS=
                   knnen zusammen maximal 255 ergeben. Diese Beschrnkung
                   ist systemgegeben fr DOS, kann allerdings mit einigen
                   Tricks von NetWare-Shells wie NETX, VLM umgangen werden,
                   wenn auch nur fr Dateien im Netz. Im Zusammenhang mit
                   dem FCB-Management wurden im Laufe der Zeit eine Menge
                   Anpassungen vorgenommen, so da sich die Verwendung
                   eines aktuellen Updates empfiehlt, falls Ihre Programme
                   FCBs benutzen.
                   Wegen der Zusammenfassung von FCBS= und FILES= geben
                   einige Analyseprogramme (wie etwa Quarterdecks MFT)
                   mehr FILES an, als eingestellt, dafr aber nur einen FCB.

                   Die mit MS-DOS 7 (MS Windows95/Chicago) spter einge-
                   fhrte Direktive FCBSHIGH= wird von Novell DOS 7 (Update
                   15) nicht untersttzt. Bei Novell DOS 7 bleiben die FCBs
                   auch bei DOS=HIGH,UMB im konventionellen Speicher, was
                   bei blichen Konfigurationen fr FCBS= und FILES= ge-
                   meinsam einen 'Verlust' von 0,5 - 3,5 KByte konventio-
                   nellen Speicher bedeutet, der durch die anderen Hochlade-
                   mglichkeiten aber mehr als wett gemacht wird.
                   Andererseits besteht die Mglichkeit, sich die Utilities
                   FILES.COM und FCBS.COM von QEMM 7.50+ 'auszuleihen'
                   (funktionieren problemlos mit Novells Speichermanagern,
                   getestet mit Update 15), und damit die Datenstrukturen
                   wenigstens in UMBs abzulegen... Dafr sollten Sie einen
                   sehr kleinen FCBS= und FILES= Wert in CONFIG.SYS ein-
                   stellen (z.B. die effektive Minimaleinstellung FCBS=1,0
                   und FILES=5) und per INSTALLHIGH= oder LH diese beiden
                   Utilities mit den entsprechenden Parametern aufrufen,
                   die Sie sonst bei FILES= und FCBS= angeben wrden.

                   Beispiel:

                    CONFIG.SYS:

                     DEVICE=EMM386 ...
                     DOS=HIGH,UMB
                     ...
                     REM Statt wie vorher 60 Handles im konventionellen
                     REM Speicher, nun dort nur noch 5 Handles (Minimum),
                     REM dafr aber 55 Handles in UMBs. Spart ca. 3,5KB
                     REM konventionellen Speicher ein! Also:
                     REM Statt FILES=60 nun:
                     FILES=5
                     INSTALLHIGH=c:\sys\qemm\files.com 60
                     REM Statt FCBS=4,4 nun:
                     FCBS=1,0
                     INSTALLHIGH=c:\sys\qemm\fcbs.com 4,4

                   Manche Programme arbeiten allerdings nicht sauber, wenn
                   die Eintrge in UMBs verlagert wurden. In diesem Fall
                   sollten Sie eine etwas grere Anzahl im konventionellen
                   Speicher belassen.
                   Zum Beispiel erwartet MS Windows 3.xx mindestens acht
                   Handles im konventionellen Speicher, sonst bricht Windows
                   sofort mit der Meldung 'MS-DOS Version nicht untersttzt'
                   ab. Da aber unter Novell DOS whrend der CONFIG.SYS immer
                   die internen Einstellungen von FILES= und FCBS= gelten
                   (und die sind kleiner, als Windows es spter erwartet)
                   und Utilities wie FILES.COM, FCBS.COM Puffer in Abhngig-
                   keit von diesen Werten nur die darber hinausgehenden
                   Handles neu einrichten, mu man hier etwas tricksen:
                   Die CONFIG.SYS Einstellung wird auf das Minimum ver-
                   ringert, das MS Windows zult und erst in AUTOEXEC.BAT
                   werden die restlichen Handles mit FILES.COM und FCBS.COM
                   eingerichtet:

                   Beispiel:

                    CONFIG.SYS:

                     DEVICE=EMM386 ...
                     DOS=HIGH,UMB
                     ...
                     REM Minimaleinstellung, die im konventionellen Speicher
                     REM bleiben mu, damit MS Windows noch startet:
                     FILES=8
                     FCBS=0,0

                    AUTOEXEC.BAT:

                     REM Nun *gilt* die in CONFIG.SYS gewhlte Einstellung,
                     REM wir knnen den gewnschten Rest in UMBs anlegen:
                     LH c:\sys\qemm\files.com 60
                     LH c:\sys\qemm\fcbs.com 4,4
                     REM Nun knnen Programme folgen, die die hhere Ein-
                     REM stellung fr Handles bentigen, daher sollten
                     REM obige Aufrufe mglichst am Anfang der AUTOEXEC.BAT
                     REM stehen, sonst werden einige Programme und DOS-
                     REM Dienstprogramme nicht ordnungsgem funktionieren.

    FILES [=] nnn [comments]                         nnn=8..255 <12 oder 20>

                   Entgegen den Angaben im Handbuch sind hier auch Werte
                   kleiner 20 mglich. Sinnvolle Einstellung hngen von
                   den verwendeten Anwendungen ab. Normalerweise ist der
                   Default-Wert FILES=20 ausreichend. Fr Netz- und Multi-
                   tasking-Betrieb sollte man den Wert jedoch mindestens
                   auf 40 erhhen. Mit FILES=60 bis FILES=80 liegen Sie
                   fast immer auf der sicheren Seite, allerdings kostet
                   die Bereitstellung von File-Handles pro Datei 64 Bytes
                   Arbeitsspeicher (laut Dokumentation 52 Bytes), die immer
                   im konventionellen Speicher liegen. Zu hohe Werte fr
                   FILES= (etwa FILES=250) knnen auch wieder Probleme
                   bereiten, wenn etwa eine Shell wie NETX darauf angewiesen
                   ist, mehr als 255 Files zu ffnen (in diesem Fall werden
                   nmlich negative Werte, d.h. die freien Werte von oben
                   nach unten benutzt).
                   Zu beachten ist auerdem, da DOS einige File-Handles
                   fr die Standard-Gerte immer in Benutzung hat (die
                   Anzahl liegt bei 4 bis 6 und hngt auch von Ihrer
                   Hardware ab). Sie sollten keine Angaben kleiner 8
                   machen (laut Doku sind minimal 5 mglich, frhere
                   DOS-Versionen hatten auch diese Default-Einstellung),
                   weil diese Werte offenbar nicht korrekt ausgewertet
                   werden!!!
                   Whrend der CONFIG.SYS gilt - unabhngig von der FILES=
                   Einstellung, die zunchst nur aufgezeichnet wird, um
                   erst nach Beendigung der CONFIG.SYS aktiviert zu werden -
                   eine Einstellung, die effektiv FILES=5 entspricht.
                   FILES= und FCBS= zusammen drfen maximal 255 betragen,
                   ansonsten wird intern abgerundet (siehe FCBS=).
                   Durch die sinnvolle Zusammenfassung von FCBS= und FILES=
                   (hierzu siehe bei FCBS=) geben einige Analyseprogramme
                   (wie etwa Quarterdecks MFT) mehr FILES an, als einge-
                   stellt, dafr aber nur einen FCB.

                   GEOWORKS ENSEMBLE 1.2+ und GEO PRO bentigten mindestens
                   FILES=120, um unter DR DOS 6.0 und Novell DOS 7 laufen
                   zu knnen.
                   Microsofts WIN32S-Spiel FREECELL bentigt, bezogen auf
                   seine Funktion, ebenfalls eine sehr hohe Anzahl FILES,
                   so da FILES=60 hier nur knapp hinkommt.

                   Die mit MS-DOS 7 (MS Windows95/Chicago) spter einge-
                   fhrte Direktive FILESHIGH= wird von Novell DOS 7
                   (Update 15) nicht untersttzt. Soweit mir bekannt,
                   bleiben die Dateieintrge bei Novell DOS 7 auch bei
                   DOS=HIGH,UMB im konventionellen Speicher, was bei
                   blichen Konfigurationen fr FCBS= und FILES= gemeinsam
                   einen 'Verlust' von 0,5 - 3,5 KByte konventionellen
                   Speicher bedeutet, der durch die anderen Hochlade-
                   mglichkeiten aber mehr als wett gemacht wird.

                   Andererseits besteht die Mglichkeit, sich die Utilities
                   FILES.COM und FCBS.COM von QEMM 7.50+ 'auszuleihen'
                   (funktionieren problemlos mit Novells Speichermanagern,
                   getestet mit Update 15), und damit die Datenstrukturen
                   wenigstens in UMBs abzulegen... Dafr sollten Sie einen
                   sehr kleinen FCBS= und FILES= Wert in CONFIG.SYS ein-
                   stellen (z.B. die effektive Minimaleinstellung FCBS=1,0
                   und FILES=5) und per INSTALLHIGH= oder LH diese beiden
                   Utilities mit den entsprechenden Parametern aufrufen, die
                   Sie sonst bei FILES= und FCBS= angeben wrden.
                   (Zwei Beispiele, die auch auf disbezgliche Absonder-
                   heiten von MS Windows eingehen, finden Sie etwas weiter
                   oben bei FCBS=...)

                   Manche Programme arbeiten allerdings nicht sauber, wenn
                   die Eintrge in UMBs verlagert wurden. In diesem Fall
                   sollten Sie eine etwas grere Anzahl im konventionellen
                   Speicher belassen (z.B. FILES=8 fr 4DOS.COM oder
                   MS Windows).

    FASTOPEN [=] hashbufsize [comments]    hashbufsize=0..32768
                                           <0, 512 oder 4096>

                   FASTOPEN merkt sich in einer Verweistabelle Einsprung-
                   zeiger zu bereits einmal geffneten Dateien, und kann
                   bei Programmen, die hufig Dateien ffnen und wieder
                   schlieen (Datenbanken, manche Compiler) einen starken
                   Performance-Gewinn bringen. Allerdings ist FASTOPEN nicht
                   ungefhrlich, wenn Sie Festplattenpflegeprogramme
                   einsetzen (COMPRESS, OPTIMIZR, DEFRAG, DISKOPT, SPEEDISK,
                   etc.), die an FASTOPEN vorbei die Position der Dateien
                   neu anordnen. Wird dann ber DOS wieder auf eine solche
                   Datei zugegriffen, ist ein Datenchaos vorprogrammiert,
                   wenn der Rechner nicht neu gestartet wird. Die Tabelle
                   von FASTOPEN kann nicht in der HMA liegen.

                   Die interne Realisierungen unterscheidet sich grundlegend
                   zwischen MS-DOS/PC-DOS und DR DOS/Novell DOS, was sich
                   einerseits in den mglichen Parametern niederschlgt,
                   andererseits auch im Speicherbedarf. Bei MS-DOS/PC-DOS
                   werden *pro* Dateieintrag 48 Bytes belegt, bei
                   DR DOS/Novell DOS durch eine effiziente Hash-Tabelle nur
                   2 Bytes. Dadurch, da bei MS-DOS/PC-DOS die Anzahl und
                   bei DR DOS/Novell DOS die Gre angegeben werden mu,
                   sind die Zahlenwerte bei Novell DOS etwa doppelt so gro
                   wie bei MS-DOS, nur da Novell DOS hier offenbar mit
                   1/24 des Speicherbedarfs auskommt, was sich bei blichen
                   Werten wie FASTOPEN=512 schon in ber 11 KByte Speicher-
                   platzersparnis niederschlgt... Nicht ohne Grund ist
                   deshalb die Default-Einstellung bei MS-DOS sehr viel
                   niedriger (unter 50).

                   Im Gegensatz zur Dokumentation sind bei Novells FASTOPEN
                   auch Angaben unterhalb von 128 mglich (und zwar offen-
                   sichtlich stufenlos bis herab zu Null). Angaben fr
                   spezifische Laufwerke (wie bei MS-DOS) sind nicht
                   mglich. In Verbindung mit NWCACHE wird FASTOPEN = 0
                   empfohlen, da FASTOPEN durch den hheren Verwaltungs-
                   aufwand sonst nur die Performance des NWCACHE bremst.
                   Mit Update 13 wurde die Default-Einstellung auf 0 ge-
                   setzt. Auch wegen der oben genannten Problematik mit
                   der Datenkonsistenz und einem auf heutigen Rechnern nur
                   geringen Geschwindigkeitszuwachs (nur sofern kein Cache
                   installiert ist), empfehle ich dringend FASTOPEN = 0
                   einzusetzen, wenn nichts gegen die Verwendung eines
                   Cache-Programms spricht.

                   Die erweitere Syntax mancher MS-DOS Versionen (Laufwerks-
                   angaben, Zahl zusammenhngender Bereiche, EMS mit /X)
                   wird nicht untersttzt (aber auch nicht zurckgewiesen).
                   Angesichts der bereits optimalen Speicherbilanz wre
                   derartiger Aufwand auch kontraproduktiv.

                   Das *Kommando* FASTOPEN.EXE (bei DR DOS 6.0) bzw.
                   FASTOPEN.COM (bei Novell DOS 7) ist hingegen ein
                   funktionsloses Kompatibilitts-Dummy, da die FASTOPEN-
                   Funktionalitt bei Novell DOS 7/DR DOS 6.0 schon
                   intern realisiert ist (bei manchen MS-DOS Ausgaben
                   wurde FASTOPEN via

                    INSTALL=FASTOPEN.EXE

                   (oder gar erst in AUTOEXEC.BAT) geladen, daher mute auch
                   bei Novell DOS eine gleichnamige Dummy-Datei existieren).

                   Manchmal bentigt man ein Dummy-Befehl, der einfach nur
                   als Platzhalter aufgerufen wird und keinen Schaden an-
                   richtet. Mit FASTOPEN.COM liegt Novell DOS 7 ein solches
                   'Programm' bei; es tut wirklich nichts anderes, als eine
                   entsprechende Meldung auszugeben und mit Errorcode 0
                   zu DOS zurckzukehren. Das gleiche gilt auch fr
                   FASTOPEN.EXE von DR DOS 6.0, auer da Novells
                   FASTOPEN.COM in der Meldung zustzlich auf CONFIG.SYS
                   verweist, wenn es vom Prompt aus aufgerufen wird.
                   (ltere Ausgaben von FASTOPEN.EXE von DR DOS 5.0 besaen
                   wahrscheinlich noch eigene Funktionalitt und kehrten bei
                   falschen Parametern mit Errorcode 1 zurck. Dies gilt
                   mit Sicherheit fr FASTOPEN von MS-DOS/PC-DOS 4.0+.)

    DOS [=] [LOW|HIGH] [, [UMB|NOUMB]]
    HIDOS [=] [ON|OFF]

                   Wie von MS-DOS bekannt (Naja, eigentlich gab es die
                   Hochlademglichkeit *zuerst* bei DR DOS 5.0, allerdings
                   noch mit der alten Direktive HIDOS=).
                   Novell DOS akzeptiert die mglichen Parameter in
                   beliebiger Reihenfolge. Auch der Token NOUMB ist vor-
                   handen, in der Doku wird er allerdings nicht erwhnt.
                   Die DR DOS Direktive HIDOS= ist auch bei Novell DOS noch
                   vorhanden und wird - undokumentiert - voll untersttzt.
                   Dabei entspricht HIDOS=ON dem DOS=HIGH. Bei DR DOS 6.0
                   war es noch genau umgekehrt: Die Direktive DOS=HIGH
                   (nicht aber die anderen Token) existierte auch dort
                   schon, war allerdings noch undokumentiert.
                   Default-Wert fr DOS= ist LOW,NOUMB.
                   Mit DOS=HIGH,UMB werden nach Mglichkeit auch die DOS-
                   Datenbereiche verschoben (auer FILES und FCBS).

                   MS-DOS 7 (MS Windows95/Chicago) untersttzt einige
                   zustzliche Optionen (AUTO, NOAUTO und bei Chicago
                   ENHANCED), die Novell DOS 7 (Update 15) fremd sind,
                   aber auch nicht vermit werden, da sie lediglich die
                   Handhabung unter MS Windows95 etwas vereinfachen
                   (Default ist AUTO), indem bestimmte notwendige Treiber
                   nicht explizit angegeben werden mssen, sondern auto-
                   matisch geladen werden. Auerdem bewirkt diese Ein-
                   stellung, da die Direktiven BUFFERS, FILES, FCBS,
                   STACKS und LASTDRIVE automatisch in ihrer neuen -HIGH-
                   Variante verwendet werden. Bei Novell DOS werden bei
                   entsprechender Einstellung von DOS=HIGH,UMB die Puffer
                   automatisch in die HMA verlegt und die LASTDRIVE-
                   Tabelle in den oberen Speicher.

    DEBLOCK [=] hexvalue                          hexvalue=0000..FFFF <FFFF>

                   Diese undokumentierte Direktive von Novell DOS 7 erlaubt
                   die explizite Einstellung der Adresse, ab der IBMBIO.COM
                   beim 'Disk-Deblocking' nur noch einzelne Sektoren benutzt
                   (im Prinzip gibt es das seit CP/M).
                   In ganz frhen Novell DOS 7 Versionen (und bei DR DOS)
                   war die Default-Einstellung A000, was der 640 KByte-
                   Grenze entsprach. Darber wurde auf den Single-Sektor-
                   Betrieb ausgewichen. Diese Einstellung war sicherer als
                   die heutige Einstellung, aber auch langsamer.
                   Um die Kompatibilitt mit MS-DOS zu verbessern und
                   die Performance fr in UMBs geladene Programme (wie
                   STACKER.EXE oder SERVER.EXE) zu erhhen, wurde die
                   Default-Einstellung auf FFFF verndert (was effektiv
                   auch bei MS-DOS gilt, obwohl es dort diese Direktive
                   berhaupt nicht gibt, denn MS-DOS 5.0+ MULTITRACK=ON|OFF
                   ist hierzu fast identisch: DEBLOCK=FFFF entspricht wohl
                   weitestgehend MULTITRACK=ON und DEBLOCK=0000 demnach
                   MULTITRACK=OFF. Wie man sieht, sind Novells Einstellungs-
                   mglichkeiten hier flexibler. Die Einstellung FFFF ist
                   schneller, aber auch gefhrlicher. ber die DEBLOCK=
                   Direktive hat der Anwender die Mglichkeit, die
                   Einstellung bei Bedarf zu verndern. Probleme knnten
                   wohl in Verbindung mit (hochgeladenem) NWCACHE,
                   DBLBUF.SYS oder bei Floppy- oder Harddisk-DMA (ohne
                   VDS) auftreten.
                   Solange es keine Probleme gibt, sollte man DEBLOCK=
                   nicht angeben, um die automatische Hardware-Erkennung
                   und Konfiguration je nach System zu aktivieren. In diesem
                   Fall entscheidet nach der Beendigung von CONFIG.SYS ein
                   dynamischer Test darber, ob die Default-Einstellung
                   FFFF bestehen bleibt, oder ob die Einstellung sicher-
                   heitshalber auf A000 zurckgesetzt wird (der Test be-
                   steht darin, den ersten Sektor sowohl in den konventio-
                   nellen Speicher als auch in UMBs zu laden und dann mit-
                   einander zu vergleichen). Ist man sicher, da es keine
                   Probleme gibt, kann man die Einstellung auch explizit
                   auf einen Wert, hier also DEBLOCK=FFFF setzen und damit
                   die automatische Konfiguration bersteuern.
                   Nheres kann dem FaxBack-Infopaper 14926.TXT aus
                   ND7TID.EXE entnommen werden. Nheres siehe auch in
                   Kapitel II.17.

    DRIVPARM [=] /D:n [/C] [/F:n] [/H:nn] [/I] [/N] [/S:nn] [/T:nn]

                   /D:driveno     driveno=0..31 (d.h. auch LASTDRIVE=32
                                  wird voll untersttzt)
                   /F:drivetype   drivetype=0..255 <0..9>
                   /S:sectors     sectors=1..99 <hngt von drivetype ab>
                   /T:cylinder    cylinder=1..999 <"">

                   Der in der Dokumentation erwhnte Parameter /I wird
                   wahrscheinlich nicht untersttzt (da obsolet). Bei /F:n
                   kann eine beliebige Zahl angegeben werden, es sind
                   jedoch nur 0..9 vordefiniert. Die Default-Einstellungen
                   der restlichen Parameter hngen davon ab, welche anderen
                   Parameter in welchen Kombinationen angegeben wurden.
                   Sollte die DRIVPARM= Direktive mehrfach pro Laufwerk
                   angegeben werden, so werden (bis auf Ausnahmen) nur die
                   Werte neu belegt, die auch neu definiert wurden.

                   bliche Zuordnungen fr /F: sind:

                    0 = 320/360 KByte, double density [DD] (5,25")
                    1 = 1,2 MByte, high density [HD]   (5,25")
                    2 = 720 KByte, double density [DD] (3,5")
                    3 = ??? KByte, single density [SD] (8")
                        (wird wie 360 KByte Floppy eingebunden)
                    4 = ??? KByte, double density [DD] (8")
                        (wird wie 360 KByte Floppy eingebunden)
                    5 = (Festplatte, sonst wie 360 KB Floppy eingebunden)
                    6 = (Bandlaufwerk, sonst wie 360 KB Floppy eingebunden)
                    7 = 1,44 MByte, high density [HD]  (3,5")
                    8 = (optisches Laufwerk, z.B. CD-ROM, CD-WO, CD-RW,
                         wird allerdings wie 1,44 MByte Floppy eingebunden)
                    9 = 2,88 MByte, extra density [ED] (3,5")

                   Einige bliche Diskettenformate:

                     Gre        8"Ŀ
                                  5,25"Ŀ   Typ  Seiten  Sektoren   Spuren
                                  3,5"    /F:    /H:      /S:       /T:

                     160 KByte, SS/SD - x -   0      1        8        40
                     180 KByte, SS/SD - x -   0      1        9        40
                     243 KByte, SS/SD - - x   0      1       26        77
                     320 KByte, DS/DD - x -   0      2        8        40
                     320 KByte, SS/HD x - -   ?      1        8        80
                     360 KByte, DS/DD - x -   0      2        9        40
                     600 KByte, DS/DD - x -   ?      2       15        40
                    1,20 MByte, DS/HD x x -   1      2       15        80
                     720 KByte, DS/DD x x -   2      2        9        80
                    1,44 MByte, DS/HD x x -   7      2       18        80
                    2,88 MByte, DS/ED x - -   9      2       36        80

                   Einige weniger bliche Diskettenformate:

                     200 KByte, SS/SD - x    ??      1       10        40
                     205 KByte, SS/SD - x    ??      1       10        41
                     210 KByte, SS/SD - x    ??      1       10        42
                     361 KByte, SS/DD - x    ??      1        9        80
                     389 KByte, DS/DD   x -  2 (0)   2        9        43
                     400 KByte, DS/DD   x -  ??      2       10        40
                     410 KByte, DS/DD   x -  ??      2       10        41
                     420 KByte, DS/DD   x -  ??      2       10        42
                     640 KByte, DS/DD x x -  1       2        8        80
                     719 KByte, DS/DD x x -  ??      2        9        80
                     785 KByte, DS/DD x   -  2       2        9        86
                     800 KByte, DS/DD x   -  ??      2       10        80
                     810 KByte, DS/DD x   -  ??      2       10        81
                     820 KByte, DS/DD x   -  ??      2       10        82
                     830 KByte, DS/DD x   -  ??      2       10        83
                     880 KByte, DS/DD   x -  ??      2       11        80
                    1,04 MByte, DS/DD x   -  ??      2       13        80
                    1,12 MByte, DS/DD x   -  ??      2       14        80
                    1,23 MByte, DS/HD x x -  1       2       15        82
                    1,31 MByte, DS/HD x x -  ??      2       16        82
                    1,48 MByte, DS/HD x x -  7       2       18        82
                    1,49 MByte, DS/HD   x -  ??      2       18        83
                    1,60 MByte, DS/HD x x -  ?? (7)  2       20        80
                    1,64 MByte, DS/HD x   -  ?? (7)  2       20        82
                    1,68 MByte, DS/HD x   -  ??      2       21        80
                    1,71?MByte, DS/HD x   -  ?? (7)  2       21        82
                    1,73?MByte, DS/HD x   -  ?? (7)  2       21        83
                    1,79 MByte, DS/HD x   -  ?? (7)  2       21        85
                    1,76 MByte, DS/HD x   -  ??      2       22        80
                    1,84 MByte, DS/HD x   -  ??      2       23        80
                    1,92 MByte, DS/HD x   -  ??      2       24        80
                    3,20 MByte, DS/ED x - -  ??      2       40        80
                    3,52 MByte, DS/ED x - -  ??      2       44        80
                    3,84 MByte, DS/ED x - -  ??      2       48        80

                   Nachbemerkung: Angeblich untersttzt DR DOS 6.0
                   DRIVER.SYS /D:0..127. Diese drfte auch fr Novells
                   DRIVER.SYS zutreffen, aber ob Laufwerke oberhalb 31
                   vom System untersttzt werden, ist nicht geklrt
                   (MS-DOS 2.xx untersttzte 64 Laufwerke).
                   Sollten Sie die obige Tabelle verwenden wollen, um
                   Diskettensonderformate einzustellen, sollten Sie hierzu
                   am besten mit DRIVER.SYS statt DRIVPARM= arbeiten, weil
                   Sie dann unter dem alten Laufwerksbuchstaben weiterhin
                   problemlos auf Normalformatdisketten zugreifen knnen.
                   Wichtig: Ich habe die meisten der obigen Sonderformate
                   nicht selbst ausprobiert! Die Angaben bezglich des
                   Laufwerkstyps beziehen sich auf Laufwerke entsprechender
                   Kapazitt. Nicht alle Laufwerke untersttzen mehr als
                   40/80 Spuren und die Anzahl der zuverlssig ansprech-
                   baren Sonderspuren variiert von Fabrikat zu Fabrikat
                   und kann sogar gewissen Exemplarstreuungen unterliegen.
                   Auch bei Disketten gibt es Unterschiede. Nicht jedes
                   Diskettenfabrikat eines Typs ist in der Lage, berformate
                   (zuverlssig) zu verkraften, dies gilt besonders fr
                   Formate auerhalb der vorgesehenen Dichte. Unter Um-
                   stnden bentigen Sie auch zustzliche Treiber, um diese
                   Formate zu untersttzen. Obwohl einige der berformate
                   auch ber lange Zeitrume sehr zuverlssig verwendet
                   werden knnen (siehe Ciriaco Gara de Celis' 2M-Paket
                   und andere) empfehle ich dringend ausfhrliche Tests,
                   ehe Sie wichtige Daten auf solchen Disketten ablegen!
                   Ich bernehme selbstredend keine Gewhr!!!

    HISTORY [=] OFF|[ON [, bufsize][[, ON|OFF][, ON|OFF[, ON|OFF]]]]]

                   bufsize=128..4096 <512>

                   In der whrend des Bootens ausgegebenen Hilfe sind nicht
                   alle mglichen Parameter angegeben; das DOSBOOK gibt aber
                   erschpfende Hinweise. Das erste ON in Verbindung mit dem
                   optionalen Wert value (128..4096, Default ist <512>)
                   gibt die Gre des Puffers an, die weiteren optionalen
                   ON|OFF-Parameter stehen jeweils fr Einfgemodus ein/aus
                   (<Ins>), Kommandozeilensuchmodus ein/aus (<Ctrl>+<r>),
                   erweiterte Kommandozeilensuche ein/aus (<Ctrl>+<_>) und
                   werden nur ausgewertet, wenn der erste Parameter ON ist
                   (siehe auch Kapitel II.12.). Jeder Puffereintrag kostet
                   zwei Bytes, die immer im konventionellen Speicher
                   bleiben, bei 512 Puffern also 1 KByte.

                   Wird diese Direktive innerhalb der CONFIG.SYS mehrfach
                   wiederholt, so werden dabei nur die jeweils zuletzt
                   angegebenen Werte aktualisiert.

                   Offenbar wird erst mit dem Laden von COMMAND.COM Speicher
                   fr den HISTORY-Puffer reserviert, jedenfalls konnte ich
                   bei beliebigen Einstellungen von HISTORY= keinerlei
                   Unterschiede im statischen Speicherverbrauch feststellen,
                   wenn mit SHELL=4DOS gearbeitet wurde. Trotzdem ist die
                   History-Funktion innerhalb von COMMAND.COM wohl
                   funktionsfhig, was mir noch Rtsel aufgibt... ???

                   Meine Empfehlung, wenn Sie (zumindest zeitweise) mit
                   COMMAND.COM arbeiten:

                    HISTORY=ON,512,ON,OFF,OFF

                   Meine Empfehlung, wenn Sie ausschlielich mit einem
                   Alternativ-Kommandoprozessor wie 4DOS/NDOS arbeiten:

                    HISTORY=OFF

                   Bei HISTORY=OFF sollten Sie nicht mit DOSKEY /H arbeiten
                   (offenbar gibt es hier einen kleinen Bug, der dazu fhrt,
                   da bei Verwendung von 4DOS der History-Puffer zerstrt
                   wird, getestet bis Update 15).

                   Das mit MS-DOS/PC-DOS 5 eingefhrte DOSKEY besitzt
                   recht hnliche Funktionalitt, die meisten Tasten sind
                   identisch belegt, aber leider nicht alle. Unterschiede:

                    Taste  DR DOS  Novell DOS 7       MS-DOS/PC-DOS 5.0

                    <F7>   ^Z      ^@                 listet Makros
                    <F8>   ^@                         durchsucht History
                    <F9>   ??      lscht akt. Zeile  aktiviert Makro Nr.
                    <F10>  ??      lscht akt. Zeile

                    <Alt>+<F7>
                    <Alt>+<F10>

                   Novell DOS 7 DOSKEY stellt zwar die gleichen Optionen
                   wie das Original bereit (auch die Funktionen, die sich
                   auf die History-Funktion beziehen), dennoch ist die
                   History-Funktionalitt bei Novell DOS weiterhin via
                   HISTORY= realisiert und nur die zustzlichen Makro-
                   funktionen sind Bestandteil des residenten DOSKEY
                   (siehe auch Kapitel II.4.). Dadurch knnen beide
                   Funktionen unabhngig voneinander aktiviert werden.
                   Im Vergleich zu MS-DOS DOSKEY, das bei 512 Bytes
                   Puffergre 4 KByte Speicher fr den residenten
                   Code bentigt, schlgt Novells DOSKEY nur mit ca.
                   1,5 KByte zu Buche, plus ca. 1,5 KByte fr HISTORY=
                   mit 512 Bytes Puffer.

                   HISTORY= akzeptierte bei DR DOS 3.41 und 5.0 drei
                   Parameter, bei DR DOS 6.0 bereits vier, und nun noch
                   einen fnften. Offenbar hinkte die Dokumentations-
                   abteilung immer eine DOS-Release hinterher, denn es
                   wurde in jeder DR DOS Ausgabe vergessen, die jeweils
                   letzte Option komplett zu dokumentieren.

    LASTDRIVE [=] [A..Z]|[1..32] [comments]                      <F oder G>

                   Hinter dem Laufwerksbuchstaben sind weitere Zeichen
                   mglich, d.h. eine Angabe wie LASTDRIVE=Z: wird also
                   auch akzeptiert. Jedes eingerichtete Laufwerk kostet 88
                   Bytes Speicherplatz. Die Default-Einstellung hngt offen-
                   bar von der Festplatteneinrichtung des Rechners ab: Mit
                   zwei Festplatten mit jeweils zwei Partitionen ist die
                   Einstellung offensichtlich G:, obwohl es laut Handbuch in
                   dieser Konfiguration F: sein mte (bei MS-DOS ist die
                   Normaleinstellung E:). Eine andere Erklrung wrde darin
                   bestehen, da die Laufwerksbuchstaben, die von echten
                   Gertetreibern (DEVICE=) bentigt werden, erst nach der
                   Abarbeitung der CONFIG.SYS wirklich eingebunden werden
                   (dies ist aber zumindest bei Novell DOS 7 definitiv nicht
                   der Fall).

                   Erweiterte undokumentierte Syntax zur Untersttzung von
                   bis zu 32 Laufwerken (wird nun auch von MS-DOS 7 aus
                   Windows95 untersttzt). Nheres siehe Abschnitt III.2.

                   Die mit LASTDRIVE= vorgenommene Einstellung wird bei
                   Novell DOS und MS-DOS/PC-DOS (abgesehen von MS-DOS 7)
                   erst beim Laden des Kommandoprozessors wirksam. Inner-
                   halb der CONFIG.SYS gilt weiterhin die interne LastDrive-
                   Einstellung, die vor der Bearbeitung der CONFIG.SYS
                   ermittelt wurde (s.o.), d.h. es ist zwar mglich,
                   Blockgertetreiber zu laden (ist nicht abhngig von
                   LASTDRIVE=), aber es ist nicht mglich, die Lastdrive-
                   Einstellung zu erhhen, wenn das Laden von Laufwerks-
                   treibern per INSTALL= aufgrund fehlender freier Lauf-
                   werksbuchstaben fehlschlgt, weil diese als Umadressierer
                   implementiert sind (NWCDEX, MSCDEX, Netztreiber wie VLM),
                   siehe auch Kapitel II.4. bei NWCDEX.
                   Intern wird bei Novell DOS 7 im Gegensatz zu MS-DOS/
                   PC-DOS bis 6.2x jedoch bereits eine auf 26 Laufwerke
                   erweiterte Vorab-CDS verwendet, dadurch kann mein Utility
                   INSTCDEX mittels der speziellen /LASTDRIVE Option auch
                   dazu verwendet werden, die LASTDRIVE= Einstellung des
                   Systems whrend der CONFIG.SYS zu verndern (mehr dazu
                   bei NWCDEX). Diese Vorab-CDS wird nach der Bearbeitung
                   der CONFIG.SYS auf die wirklich geforderte Gre gestutzt
                   (oder mit LASTDRIVE=27..32 vergrert) und dabei nach
                   Mglichkeit auch in den UMBs angeordnet. Bei MS-DOS bis
                   einschlielich 6.22 ist das Handling wesentlich un-
                   flexibler: Die CDS, die immer im Basisspeicher bleibt,
                   enthlt nur soviele Eintrge, wie Laufwerke vor der
                   Bearbeitung der CONFIG.SYS Datei erkannt wurden plus die
                   Eintrge von geladenen Blockgertetreibern. Bei MS-DOS 7
                   haben die Entwickler einen weiteren langen Blick ber den
                   Zaun geworfen, denn bei MS-DOS 7

                   - kann die LASTDRIVE=/LASTDRIVEHIGH= Angabe nun auch ber
                     eine Zahl erfolgen,
                   - es werden auch bis zu 32 Laufwerke untersttzt,
                     (wobei sinnvollerweise wie bei spten Ausgaben von
                     Novell DOS auch Zahlenwerte von 1..32 und nicht - wie
                     bei frhen Ausgaben von Novell DOS 7 - nur von 27..32
                     erlaubt sind. Die externen Utilities von MS-DOS 7
                     arbeiten im Gegensatz zu den Programmen von
                     Novell DOS 7 allerdings nicht mit diesen neuen
                     Buchstaben),
                   - die Vorab-CDS enthlt ebenfalls 26 komplett initiali-
                     sierte Laufwerkseintrge (die sinnvollerweise auch
                     nach auen dokumentiert werden, und nicht - wie bei
                     Novell DOS 7 - nur intern vorbereitet sind, wodurch
                     INSTCDEX unter Novell DOS 7 trotzdem bentigt wird,
                     bei MS-DOS 7 hingegen nicht mehr).
                   - und die CDS kann (automatisch) hochgeladen werden.

                   (Zustzlich wirkt bei MS-DOS 7 die LASTDRIVE= Direktive
                   nun schon whrend der CONFIG.SYS und auch das Verschieben
                   der CDS findet vorher statt, so da die Probleme, zu
                   deren Umgehung ich fr ltere DOS-Versionen INSTCDEX.EXE
                   geschrieben habe, unter MS-DOS 7 nicht mehr auftreten.)

                   brigens kann man mit dem Wissen dieses Verhaltens auch
                   verstehen, warum man fr PNW und NetWare VLMs (blicher-
                   weise nicht in CONFIG.SYS geladen) LASTDRIVE=Z setzen
                   sollte/mu, wohingegen man bei der alten NetWare Shell
                   (NETX) den LASTDRIVE= Wert nur leicht erhhen mute,
                   siehe auch Kapitel III.2. (VLM.EXE kann brigens auch
                   unter Zuhilfenahme von INSTCDEX nicht in CONFIG.SYS
                   geladen werden.)

                   Die mit MS-DOS 7 (MS Windows95/Chicago) spter einge-
                   fhrte Direktive LASTDRIVEHIGH= wird von Novell DOS 7
                   (Update 15) nicht untersttzt. Wie bekannt, kann man
                   das Gleiche auch mit DOS=HIGH,UMB und 'normalem'
                   LASTDRIVE= erreichen.

    NUMLOCK [=] [ON|OFF]

                   Diese undokumentierte Direktive schaltet NumLock ein oder
                   aus; allerdings wird die Einstellung normalerweise erst
                   bernommen, wenn eine Taste gedrckt wird. Auf XTs bzw.
                   PC-Tastaturen kann es dazu kommen, da die NumLock-LED
                   durch die Umstellung ab sofort genau umgekehrt reagiert.
                   Dieses systembedingte Verhalten ist kein Fehler und lt
                   sich korrigieren, wenn zu einem sptereren Zeitpunkt mit
                   einem Utility der NumLock-Zustand erneut verndert wird.
                   (Bei DR DOS 6.0 gab es diese Direktive noch nicht.)

    SET [=] preenvvar = [value]

                   Die whrend CONFIG.SYS aufgezeichneten Umgebungsvariablen
                   werden spter in COMMAND.COMs Systemumgebung bernommen.
                   Standardmig ist diese Vorab-Umgebung leer, wird jedoch
                   beim Starten von COMMAND.COM um die Variable %ComSpec%
                   erweitert. COMMAMD.COM seinerseits fgt noch %Ver% und
                   %Os% ein, siehe Kapitel IV.7. (Weitere Variablen wrden
                   dann in AUTOEXEC.BAT belegt.) Maximal kann die Vorab-
                   Umgebung ca. 5760 Zeichen aufnehmen.

                   Wenn man Programme mit INSTALL[HIGH]= bzw. HIINSTALL=
                   ldt, wird ihnen die bis zum jeweiligen Zeitpunkt aufge-
                   baute Vorab-Umgebung (unbearbeitet) bergeben, daher
                   sollte man gerade in CONFIG.SYS mit dem SET= Befehl
                   umsichtig umgehen. An diesen eigentlichen Umgebungsblock
                   wird - wie blich - noch eine Zeichenkette angehngt,
                   die Pfad und Namen der ausgefhrten Programmdatei
                   spezifiziert. Kurze Aufrufpfade fhren also auch zu
                   eingespartem Speicherplatz (siehe Kapitel II.11.)!

                   Gegenber dem blichen Verhalten von SET arbeitet die
                   CONFIG.SYS Direktive SET= etwas unterschiedlich: In
                   der Vorab-Umgebung werden *alle* mit SET= definierten
                   Variablen abgelegt (auch Leerdefinitionen wie SET=
                   ohne Wert nach dem =). Wenn man Variablen innerhalb
                   der CONFIG.SYS mit neuen Werten berschreibt, so wird
                   der alte Eintrag *nicht* gelscht, sondern die neue
                   Belegung an das Ende der Liste angehngt. Auerdem ist
                   zu beachten, da bei den Variablen der Vorab-Umgebung
                   Gro- und Kleinbuchstaben unterschieden werden, wohin-
                   gegen bei COMMAND.COM (und 4DOS.COM) die Variablen der
                   spteren Umgebung als Grobuchstaben abgelegt sind
                   (wobei der SET-Befehl und die %var%-Ersetzung des
                   Kommandoprozessors nur auf die Variablen mit Grobuch-
                   staben zugreifen, obwohl die Referenzen in Batchjobs
                   durchaus auch klein geschrieben werden knnen; wie dies
                   der besseren bersicht auch in dieser Datei in ge-
                   mischter Gro-/Kleinschreibung angewendet wird). Auf
                   diese Art und Weise knnen innerhalb der CONFIG.SYS
                   mehrere Definitionen *gleichzeitig* unter demselben
                   Namen existieren. Mchten Sie auf Nummer sicher gehen,
                   sollten Sie die Variablennamen fr CONFIG.SYS SET=
                   generell in Grobuchstaben schreiben.
                   Da diese Vorab-Umgebung allen per INSTALL[HIGH] ge-
                   ladenen Programmen bergeben wird, ist dieses Detail
                   durchaus wichtig, denn von deren internen Auswerte-
                   routinen fr die Umgebung hngt es ab, wie solche
                   Vorab-Umgebungen bearbeitet werden (viele GETENV()-
                   Routinen aus den Laufzeitbibliotheken Hochsprachen-
                   Compilern erkennen nur die Variablen, die in Block-
                   schrift geschrieben wurden, weil sie einfach davon
                   ausgehen, da die Variablennamen in der Umgebung in
                   Groschrift reprsentiert werden). Sofern man auf
                   diese Besonderheiten eingeht, erffnen sich durchaus
                   sinnvolle Mglichkeiten, z.B. kann man eine Art
                   History-Funktion der CONFIG.SYS Abarbeitung ermglichen,
                   wenn man an allen relevanten Stellen eine spezielle
                   Variable (z.B. %hit_me%) mit dem Namen/Marke der
                   Position belegt. Die Reihenfolge der %hit_me%= Werte in
                   der Vorab-Umgebung entspricht dann der Reihenfolge, in
                   der die CONFIG.SYS bearbeitet wurde.

                   Ein Beispiel:

                    CONFIG.SYS:

                    SET test=wert1
                    SET test=wert2
                    SET test=
                    SET test=wert3
                    REM Die Vorab-Umgebung sieht jetzt folgendermaen aus
                    REM (von anderen Variablen abgesehen):
                    REM "test=wert1 test=wert2 test= test=wert3"
                    INSTALL=c:\nwdos\command.com /C SET
                    REM Die Umgebungsauflistung von COMMAND.COM (neben
                    REM anderen Variablen wie %ComSpec%):
                    REM "test=wert1 test=wert2 test= test=wert3 TEST=wert3"
                    REM Gleichzeitig schliet der Aufruf von COMMAND.COM
                    REM aber auch Vorab-Umgebung (Update 15).

                   Dieses Beispiel zeigt ein weiteres Detail: Der Kommando-
                   prozessor COMMAND.COM (hier fr Testzwecke auf unblichem
                   Wege geladen), enthlt neben der Vorab-Umgebung auch
                   die 'richtige' Umgebung "TEST=wert3". Diese spezielle
                   Ausnahme liegt an der internen Behandlung whrend der
                   Installation von COMMAND.COM; andere per INSTALL[HIGH]=
                   geladene Programme besitzen nur die Vorab-Umgebung!
                   Zu beachten ist, da man dieses Phnomen nur zu Gesicht
                   bekommt, wenn man COMMAND.COM ber INSTALL= ldt. Bei der
                   normalen Ladeprozedur am Ende der CONFIG.SYS (und unter
                   Verwendung von SHELL=), wertet COMMAND.COM die Vorab-
                   Umgebung aus und baut das Master-Environment mit den
                   daraus resultierenden Belegungen auf. Dabei wird die
                   jeweils letzte Definition einer Variablen bernommen.
                   Leerdefinitionen werden allerdings ignoriert, so da
                   eine Vorab-Umgebung "test=wert1 test=" in "TEST=wert1"
                   umgewandelt wird.
                   Variablennamen werden in Grobuchstaben abgelegt (bei
                   4DOS.COM bleibt die Gro-/Kleinschreibung erhalten),
                   siehe Kapitel III.6. und 4DOS5TIP.TXT.

                   Je weniger Variablen man belegt (und desto weniger hufig
                   man gleichnamige Variablen umdefiniert), desto weniger
                   Speicher wird fr *jedes* per INSTALL[HIGH]= zu ladende
                   Programm bentigt. Die jeweils letzten Belegungen werden
                   beim regulren Laden des Kommandoprozessors (am Ende der
                   CONFIG.SYS Bearbeitung) bernommen und werden von da an
                   jedem geladenen Programm bergeben. Braucht man den SET=
                   Befehl exzessiv, so sollte man aus Grnden der Speicher-
                   platzersparnis - soweit mglich - die Variablen erst
                   *nach* dem Laden der Programme definieren (dies gilt also
                   sowohl fr CONFIG.SYS, als auch AUTOEXEC.BAT).

                   Leider kann der Anwender nicht schon innerhalb der
                   CONFIG.SYS auf die Variablen zugreifen (auer ber
                   interne Datenstukturen INT21h/4458h). Dabei ist aber
                   unbedingt darauf zu achten, da ein Wert ungleich 0 bei
                   Offset +12h nicht unbedingt bedeutet, da der Pointer
                   auf die Vorab-Umgebung auch wirklich gltig ist (unter
                   4DOS wird dieser Pointer nmlich nicht zurckgesetzt).
                   Ein Workaround findet sich in Kapitel III.6. und
                   4DOS5TIP.TXT.

                   Um die Vorab-Umgebung benutzen zu knnen, ohne gleich-
                   zeitig mit jedem geladenen TSR (die diese Variablen meist
                   gar nicht bentigen) einen gewissen Speicherverlust in
                   Kauf zu nehmen, habe ich fr DR DOS 6.0/Novell DOS 7 ein
                   kleines Utility namens SETENV.COM geschrieben, das die
                   Vorab-Umgebung temporr versteckt. Dadurch kann bei
                   mit INSTALL=/INSTALLHIGH=/HIINSTALL= geladenen Programmen
                   etwas Speicher eingespart werden und einer unntigen
                   Fragmentierung vorgebeugt werden.
                   (Obwohl der Sachverhalt genauso auch fr MS-DOS/PC-DOS
                   6.0+ Vorab-Umgebung gilt, besteht diese praktische
                   Mglichkeit fr MS-DOS/PC-DOS Benutzer leider nicht.
                   Eine hnliche Mglichkeit gibt es auch bei PTS/DOS und
                   S/DOS mit dem INSTALL= Parameter /E.)
                   Dazu mu man jedes zu ladende TSR, dem nur eine Dummy-
                   Umgebung bergeben werden soll, mit Aufrufen von
                   SETENV.COM einrahmen:

                    SET test=wert
                    REM Versteckt die Vorab-Umgebung
                    INSTALL=SETENV.COM
                    INSTALL=TSR ...
                    REM Restauriert die Vorab-Umgebung
                    INSTALL=SETENV.COM

                   Derzeit hat SETENV.COM noch einen sehr rudimentren
                   Status und toggelt bei jedem Aufruf den Zustand der
                   Vorab-Umgebung. Ist die Umgebung versteckt und verwendet
                   man zwischenzeitlich den SET= Befehl, so baut dieser
                   eine neue Umgebung auf, gleichzeitig wird diese wieder
                   sichtbar. Auf diese Weise ist es auch mglich, eine
                   bereits aufgebaute Umgebung wieder komplett zu lschen:

                    SET test=wert
                    REM Versteckt die Vorab-Umgebung
                    INSTALL=SETENV.COM
                    SET test2=wert2
                    REM SET lscht die bisherige Vorab-Umgebung und
                    REM berschreibt sie mit dem neuen Wert! Auf diese
                    REM Weise kann man den einzelnen TSRs auch vllig
                    REM unterschiedliche Umgebungen bergeben...
                    INSTALL=SETENV.COM
                    REM Da die alte Vorab-Umgebung nicht mehr existiert
                    REM und eine neue sichtbar ist, versteckt SETENV die
                    REM neue Umgebung, statt - wie in obigem Beispiel -
                    REM die alte wieder sichtbar zu machen...

                   Damit SETENV.COM (und SET=) arbeiten kann, darf aller-
                   dings im vorherigen Boot-Verlauf niemals COMMAND.COM
                   aufgerufen worden sein, auch nicht temporr etwa als:

                    INSTALL=c:\nwdos\command.com /C DIR *.*

                   Denn durch den Aufruf von COMMAND.COM wird die Vorab-
                   Umgebung geschlossen und weitere Variablen knnen
                   nicht mehr definiert werden. Auerdem sind alle bis-
                   herigen Variablen auch fr den spter per SHELL= ge-
                   ladenen Kommandoprozessor nicht mehr verfgbar!

    SHELL [=] [d:[\path]]\COMMAND.COM d:\path /P[:autoexecfile] [/E:n] [/Mx]

                   Angabe des Kommandoprozessors (i. allg. COMMAND.COM).
                   Nheres zu dokumentierten COMMAND.COM Aufrufoptionen
                   siehe COMMAND.COM /? und zustzlich auch undokumentierten
                   Optionen siehe in Kapitel II.11!
                   Der Aufrufpfad fr den Kommandoprozessor wird bei allen
                   blichen Kommando-Interpretern (wie COMMAND.COM, 4DOS,
                   NDOS) auch fr die Variable %ComSpec% benutzt, siehe
                   Kapitel IV.7.
                   Gibt man hier (fr COMMAND.COM) die Option /P nicht
                   an, so wird keine AUTOEXEC.BAT Datei abgearbeitet,
                   nachdem COMMAND.COM geladen ist. Auerdem ist dessen
                   EXIT Kommando in diesem Fall nicht gesperrt, d.h. man
                   kann die Primrversion des Kommandoprozessors verlassen
                   ohne zu Booten! Das darunterliegende IBMBIO.COM wei
                   sich daraufhin nicht anders zu helfen, als die Eingabe-
                   behandlung selbst in die Hand zu nehmen, beschrnkt sich
                   aber darauf, nach dem Pfad und Namen eines gltigen
                   Kommandoprozessors zu fragen. Leider kann man in diesem
                   Fall dem Kommandoprozessor keine Optionen (eben z.B. /P)
                   angeben. Alle whrend der CONFIG.SYS und AUTOEXEC.BAT
                   geladenen Treiber stehen brigens in diesem Moment schon
                   zur Verfgung.
                   Achtung: Die Angabe des Pfades zu den Systemdateien
                   (C:\NWDOS\) sollte nicht vergessen werden: Sie sorgt
                   auch ohne sptere Verwendung des PATH-Kommandos oder der
                   %Path% Variable dafr, da %Path% wenigstens das System-
                   verzeichnis einschliet, damit man auf einem jung-
                   frulichen System berhaupt erst mal loslegen kann.

                   Diese Direktive wird erst beim Verlassen der CONFIG.SYS
                   wirksam, wenn der Kommandoprozessor (COMMAND.COM) geladen
                   werden soll. Ldt man den Kommandoprozessor COMMAND.COM
                   schon vorher per INSTALL= (dauerhaft oder temporr), so
                   hat SHELL= keinen Einflu darauf.
                   Achtung: Wurde COMMAND.COM einmal geladen (auch, falls
                   nur temporr), ist die Gre der Umgebung damit festge-
                   legt und gilt auch fr den Kommandoprozessor, der beim
                   Verlassen der CONFIG.SYS geladen wird (was in den aller-
                   meisten Fllen dazu fhrt, da bei spteren SET-Befehlen
                   berlauffehler auftreten.)

    STACKS [=] n [, s] [comments]             n=<0> | 8..64,
                                              s=<0> | 32..512 <128>

                   Fr Original IBM-PC und PC/XT reicht 0,0, ansonsten
                   sollte man z.B. 9,128 angeben (hufig funktioniert aber
                   auch 0,0). In Verbindung mit MS Windows wird hufig 9,256
                   empfohlen, womit man in jedem Fall genug Sicherheits-
                   reserven hat.

                   Obwohl DR DOS 6.0 ebenfalls eine STACKS= Direktive (und
                   DR DOS 3.41 und 5.0 eine vergleichbare STACK= Direktive)
                   kannte, waren diese (zumindest bis zur Originalausgabe
                   von DR DOS 6.0 von 1991) nur ein Kompatibilitts-Dummy
                   und wurden exakt wie REM= behandelt. Der Grund lag
                   einfach darin begrndet, da DR DOS zu groen Teilen
                   reenterant programmiert ist. Bei einigen Programmen
                   (z.B. Ventura Publisher), die mit dieser Mglichkeit
                   nicht rechneten und in inkompatibler Weise Stacks in
                   Eigenregie einrichteten, konnte aber diese eigentlich
                   so positive Eigenschaft Probleme bereiten. Diese Probleme
                   sind ist jedenfalls mit Novell DOS 7 durch explizite
                   Angabe von STACKS= weggefallen.

                   Die mit MS-DOS 7 (MS Windows95/Chicago) spter einge-
                   fhrte Direktive STACKSHIGH= wird von Novell DOS 7
                   (Update 15) nicht untersttzt. Wie bekannt, kann man
                   das Gleiche auch mit DOS=HIGH,UMB und 'normalem'
                   STACKS= erreichen.

    SWITCHES [=] [/N] ([/F] [/K])

               /N  Dieser bei Novell DOS undokumentierte Parameter unter-
                   bindet die <F5>- und <F8>-Mglichkeit whrend des
                   Bootens. Diese Tasten werden whrend der Startmeldung
                   'Starten von DOS' abgefragt und zur spteren Verwendung
                   aufgezeichnet.
                   Da innerhalb von IBMBIO.COM <Ctrl>+<F5> bzw. <Shift> wie
                   <F5> und <Ctrl>+<F8> wie <F8> behandelt werden, gilt fr
                   diese Tasten in diesem Zusammenhang das Gleiche. Aller-
                   dings ist es ber die sog. Preload-Schnittstelle mglich,
                   da bereits vor der Bearbeitung der CONFIG.SYS weitere
                   Spezialtreiber wie DBLSPACE, DRVSPACE oder STACKER ge-
                   laden werden. Zumindest fr DBLSPACE und DRVSPACE ist
                   gesichert, da diese Online-Kompressoren die Tasten-
                   kombination (mit <Ctrl>) fr sich als Hinweis auswerten,
                   sich nicht zu installieren (wahrscheinlich gilt das auch
                   fr STACKER). Nheres in Kapitel II.2.
                   Die Einstellung der SWITCHES= Direktive wird in dem
                   Moment wirksam, in dem sie vom Parser bearbeitet wird.
                   Wurde also bereits vorher eine der obigen Tasten aufge-
                   zeichnet, so wird diese Aufzeichnung ab sofort fr
                   ungltig erklrt.

                   Dieses Verhalten hat seine Vor- und Nachteile, in jedem
                   Fall ist es flexibler als das von MS-DOS:
                   Dieser Schalter stellt z.B. eine Ausnahme von der obigen
                   Regel dar, da die CONFIG.SYS Datei entsprechend der
                   logischen Abfolge bearbeitet wird: Novell DOS sucht
                   zuerst einmal (unbeachtet von Verzweigungen) die gesamte
                   Datei nach dieser Direktive ab.
                   Wenn Sie SWITCHES= /N in die erste Zeile setzen,
                   passiert das Gleiche wie bei MS-DOS, weil dann eine
                   evtl. gedrckte Funktionstaste sofort wieder gelscht
                   wird. Auf den ersten Blick gibt es hier eine Sicher-
                   heitslcke, da bei <F8> auch eine Frage der Art
                   "SWITCHES=/N (J/N)?" erscheint, allerdings wird dies
                   intern abgefangen, solange die SWITCHES= Direktive
                   nicht ?SWITCHES=/N heit.

                   Steht diese Anweisung aber nicht in der ersten Zeile,
                   weicht das Verhalten signifikant ab:

                   Solange weder <F5> noch <F8> gedrckt werden, bleibt das
                   Verhalten logischerweise ganz normal. Wurde jedoch eine
                   der beiden Funktionstasten gedrckt, spielt nun die beim
                   Vorab-Scan der Datei gefundene Position der Direktive
                   SWITCHES=/N eine groe Rolle.
                   Wurde <F5> oder <F8> gedrckt, wird die CONFIG.SYS Datei
                   trotz /N bis zum Vorkommen der SWITCHES=/N Direktive ent-
                   sprechend <F5> oder <F8> bersprungen oder im Einzel-
                   schrittbetrieb durchlaufen. Erst nachdem die SWITCHES=/N
                   Zeile passiert wurde (was im <F8>-Betrieb nicht unbedingt
                   mehr der Fall sein mu), wird <F5> oder <F8> ignoriert
                   und die restliche Datei ganz normal bearbeitet.

                   Hchstwahrscheinlich handelt es sich bei diesem Verhalten
                   um einen Bug (getestet bis Update 14) und weniger um ein
                   verstecktes Feature, daher sollte man sich nicht darauf
                   verlassen, da dieses Verhalten auch in Zukunft so
                   bleibt.
                   Bei trickreicher Verwendung kann das seltsame Verhalten
                   aber auch ein echtes Feature sein, indem man einen
                   Sonderfall anspringen lt (nmlich dann, wenn Sie die
                   SWITCHES= Anweisung an einer Stelle platzieren, die durch
                   den normalen Ablauf nie erreicht wrde. Sie knnen dann
                   in der Zeile nach der SWITCHES= Anweisung einen Sprung-
                   befehl schreiben, der in den Sonderfall verzweigt).
                   Leider kann das auch Verwirrung stiften, indem nun alle
                   Fallunterscheidungen durchgearbeitet werden, da
                   Novell DOS von der Existenz eines Boot-Mens nichts
                   mitbekommen hat.
                   Achtung: Wegen der fehlenden berbrckungsmglichkeit
                   besteht mit SWITCHES=/N die Gefahr, da der Rechner in
                   einer Endlosschleife hngenbleibt, falls die GOTO=,
                   GOSUB=, SWITCH= oder RETURN= Anweisungen so verknpft
                   werden, da die Bearbeitung immer wiederholt wird.
                   Hier wre ein CONFIG.SYS Pre-Compiler wie bei MS-DOS
                   sinnvoller, denn damit knnte eine derartige Situation
                   verhindert werden.

             (/F)  Unterdrckt bei MS-DOS die 2 Sekunden Pause whrend der
                   Anzeige der Meldung 'Starten von DOS...'. Novell DOS 7
                   wartet immer 2 Sekunden, falls nicht schon vorher eine
                   Taste gedrckt wurde. Hat bei Novell DOS (zumindest bis
                   Update 15) keine Funktion, knnte sich aber in Zukunft
                   ndern, denn intern sind alle Voraussetzungen dafr
                   bereits vorbereitet und knnten mit einem minimalen
                   Patch realisiert werden.

             (/K)  Dieser MS-DOS Schalter zum Unterdrcken erweiterter
                   Tastaturen wird bei Novell DOS ebenfalls nicht unter-
                   sttzt. Novell DOS 7 entscheidet bei Laden von
                   IBMBIO.COM anhand der BIOS-Flagge 'erweiterte Tastatur',
                   ob erweiterte INT16h Calls verwendet werden oder nicht.
                   Sollte es Ihnen gelingen, diese Flagge vorher zu lschen,
                   arbeitet Novell DOS nur mit den Calls fr Standard-
                   tastaturen. (Bei DR DOS 6.0 war SWITCHES= noch nicht
                   vorhanden.) Auch dieser Schalter wre mit einem minimalen
                   Patch bei Novell DOS 7 (Update 15) implementierbar, da
                   alle Voraussetzungen dafr bereits erfllt sind.

                   MS-DOS 7 (MS Windows95/Chicago) untersttzt einen neuen
                   /E:value Schalter, den Novell DOS 7 (Update 15) nicht
                   untersttzt, der dort aber auch berflssig ist.

    YESCHAR [=] x [comments]   x=<J|Y|O|S> je nach 'Land der Kernelfassung'>

                   Diese undokumentierte Direktive stellt das Zeichen x als
                   Besttigung fr 'Ja' in den [J/N] Abfragen bei IBMBIO.COM
                   ein. Wenn Sie mit amerikanischen Updates arbeiten, er-
                   scheint sonst [Y/N].
                   Dies kann mit YESCHAR=J fr deutsche Rechner kompensiert
                   werden. (Wird leider derzeit nur innerhalb von CONFIG.SYS
                   ausgewertet. War bei DR DOS noch nicht vorhanden.)
                   Die Gro- und Kleinschreibung von Buchstaben ist uner-
                   heblich. Das optionale Gleichheitszeichen erfordert hier
                   meistens, da das Zeichen verdoppelt wird, wenn man ein
                   Gleichheitszeichen als 'Ja' angeben wollte.
                   Abhilfe fr das Gesamtsystem ist nur durch Patchen des
                   Kernels mglich, siehe Kapitel II.13.
                   Die impliziten Auswirkungen dieser Direktive werden be-
                   sonders im Zusammenhang mit den undokumentierten Mglich-
                   keiten von ?= und TIMEOUT= deutlich. Bei entsprechender
                   Konfiguration ist es quasi mglich, das Verhalten aus der
                   Sicht des Anwenders zu invertieren.


    ii. Laden von Gertetreibern und TSR-Programmen:
    ------------------------------------------------

    Kann ein Treiber nicht geladen werden, tritt whrend des Ladens ein
    Fehler auf (erweiterter Errorcode). Ansonsten setzt das geladene
    Programm einen Exitcode (meist wird '0' fr 'Alles ok' verwendet).
    Diese Codes kann man innerhalb der CONFIG.SYS Datei verarbeiten.
    Novell DOS (und teilweise auch schon DR DOS 6) stellt eine Reihe
    undokumentierter Direktiven (etwa ONERROR=, ERROR=) zur Verfgung,
    mit denen man damit flexibel auf solche Zustnde reagieren kann.

    Sowohl bei den DEVICE...= als auch bei den INSTALL...= Direktiven mu
    der komplette Pfad inkl. der Dateiendung angegeben werden, ansonsten
    wird das Programm nicht geladen (ohne, da eine Fehlermeldung angezeigt
    wrde). Dies gilt auch, wenn die angegebene Datei nicht existiert (in
    diesem Fall gibt MS-DOS meines Wissens eine Fehlermeldung aus). Dieses
    Verhalten kann von Vorteil sein, wenn man eine Datei laden mchte, die
    nicht immer vorhanden/erreichbar ist. In den "Aus"-Phasen wird dann
    keine strende Meldung ausgegeben. Dies funktioniert praktischerweise
    auch bei Zugriffen auf die Floppy-Laufwerke, auch wenn keine Diskette
    eingelegt ist. Mit einem Trick (Verwendung von INSTCDEX.EXE) knnen
    Sie sogar Treiber direkt von CD-ROMs laden, was normalerweise nicht
    mglich ist, da ein CD-ROM-Umadressierer (wie NWCDEX) sonst erst in
    AUTOEXEC.BAT geladen werden kann.

    Die Dateiendung spielt bei den DEVICE...= Direktiven keine Rolle (Sie
    knnen also auch ausfhrbare Dateien laden, wenn diese z.B. die Endung
    .BIN, .OVL, .EXE, .COM haben), entscheidend ist der Aufbau der Datei.
    blicherweise haben Gertetreiber aber die Dateiendung .SYS (aber es
    gibt auch andere Dateien, die - obwohl sie keinen Binr-Code enthalten -
    die Endung .SYS haben, etwa CONFIG.SYS, COUNTRY.SYS, usw.)
    Wenn Sie Treiber mit anderen Endungen als .SYS per DEVICE= laden
    wollen, sollten Sie dies nur tun, wenn die Dokumentation dies aus-
    drcklich erlaubt. Wenn z.B. eine .EXE- oder .COM-Datei nicht einen
    speziellen Dateikopf, wie er fr Gertetreiber blich ist, integriert
    hat, wird der Rechner abstrzen. Es gibt aber (wenige) Treiber und
    Programme, die einen dualen Dateikopf haben und in beiden Fllen
    geladen werden knnen. Manchmal unterscheidet sich sogar das Verhalten
    des Treibers zwischen beiden Ladevarianten (z.B. EMM386.EXE).

    Bei Novell DOS/DR DOS werden die Treiber in der Reihenfolge geladen,
    in der sie im Rahmen ihrer CONFIG.SYS Abarbeitung vorkommen (MS-DOS/
    PC-DOS arbeitet hier anders und ldt Treiber per DEVICE= etc. vor
    denen, die per INSTALL= geladen werden.) Dies ist wichtig, da dadurch
    die Reihenfolge der geladenen Programme total differieren kann.
    Allerdings lassen sich mit Novells Lsung einige Tricks bewerk-
    stelligen, die unter MS-DOS/PC-DOS vllig unmglich sind.

    DEVICE[=] driver [params]
    HIDEVICE[=] [SIZE=hexsize] [=] driver [params]
    DEVICEHIGH[=] [SIZE=hexsize] [=] driver [params]
    DEVICEHIGH[=] [/L:reg[,minsize][;reg[,minsize][;...]]] [/S]] ...
                                                      ... [=]driver [params]

                   Die alte DR DOS Direktive HIDEVICE= wird weiterhin un-
                   dokumentiert untersttzt und identisch zu DEVICEHIGH=
                   behandelt. Fr die optionale Angabe hexsize (in Bytes)
                   sind Werte von 00000..FFFFF erlaubt, intern wird dies
                   jedoch auf Paragraphen ( 16 Bytes) aufgerundet.
                   Nheres zu DEVICE= und DEVICEHIGH= in Kapitel III.4.

                   Kann ein Gertetreiber nicht geladen werden, so wird die
                   interne Fehlervariable (siehe ONERROR=) auf den Fehler-
                   code der Funktionen INT21h/3D00h, INT21h/4202h bzw.
                   INT21h/3Eh gesetzt. Diese Fehlercodes entsprechen in
                   ihrer Nummerierung den sog. erweiterten Fehlercodes,
                   die man auch ber INT21h/59h erhalten knnte.
                   Tritt ein Fehler *whrend* der Initialisierung des
                   Treibers (d.h. unter der Kontrolle des bereits geladenen
                   Treibers) auf, so bekommt die Fehlervariable einen Wert
                   mit gesetztem Bit15 und dem Inhalt der Bits7-0 des
                   Statuswortes (Offset +03h im Device Request Header),
                   das der Gertetreiber zurckliefert, zugewiesen. Das
                   bedeutet, da die Treiber-Returncodes 0..255 auf
                   32768..33023 umgemappt werden. Da diese Fehlercodes
                   blicherweise als erweiterte DOS-Fehlercodes nicht
                   belegt sind, kann man bei ONERROR= zwischen Fehlern
                   vor oder whrend der Treiberinitialisierung unter-
                   scheiden.

                   Beispiele fr erweiterte Fehlercodes (vor der Init):
                    (im Bereich 0..65535, jedoch blicherweise kleiner 256,
                     weitere Codes wie bei INT21h/59h.)

                     0 = kein Fehler
                     1 = Ungltige Funktion
                     2 = Datei nicht gefunden
                     3 = Pfad nicht gefunden
                     4 = Zu viele offene Dateien (keine Handles frei)
                     5 = Zugriff verweigert
                     6 = Ungltiges Handle
                    12 = Ungltige Zugriffsrechte
                    86 = Ungltiges Pawort

                   Beispiele fr Returncodes des Treibers nach der Init
                    (Codes 0..255 umgemappt auf 32768..33023):

                    32768  (0) = Medium schreibgeschtzt
                    32769  (1) = Gertenummer unbekannt
                    32770  (2) = Gert nicht bereit
                    32771  (3) = Funktion ist nicht definiert
                    32772  (4) = CRC-Fehler
                    32773  (5) = ungltiger Parameterblock
                    32774  (6) = Spur nicht gefunden
                    32775  (7) = unbekanntes Speichermedium
                    32775  (7) = Sektor nicht gefunden
                    32776  (8) = kein Papier im Drucker
                    32777  (9) = Schreibfehler
                    32778 (10) = Lesefehler
                    32779 (11) = allgemeiner Fehler
                    32780 (12) = reserviert
                    32781 (13) = reserviert
                    32782 (14) = unerlaubter Diskettenwechsel

                   Da die Fehlervariable, die innerhalb von CONFIG.SYS ver-
                   wendet wird, zweier Herren Diener ist, kann man Doppel-
                   deutigkeiten nicht ganz ausschlieen; trotzdem kann
                   aufgrund einer glcklichen Fgung blicherweise doch sehr
                   einfach zwischen den Fehlercodes (aus der Sicht von
                   IBMBIO.COM) unterhalb 32768 und den Fehlerrckgabewerten
                   (aus der Sicht des Treibers) von 32768..33023 unter-
                   schieden werden. Eine dritte Mglichkeit wre zwar theo-
                   retisch mglich, nmlich die Rckgabe eines von Null ver-
                   schiedenen Codes bei fehlerfreier Initialisierung des
                   Treibers, aber da dies in den DOS-Standards undefiniert
                   ist, wird es folgerichtig auch nicht angeboten (es wrde
                   in den meisten Fllen nur Zufallsresultate liefern). Zu
                   beachten ist, da Fehlercodes, die in der Dokumentation
                   eines Treibers angegeben werden (blicherweise 0..255),
                   in *dieser* bersicht als Returncodes des Treibers zu
                   verstehen sind. Diese Codes finden Sie daher innerhalb
                   der CONFIG.SYS an den Codes 32768..33023 (+32768) wieder.

    INSTALL[=] program [params]
    HIINSTALL[=] program [params]
    INSTALLHIGH[=] program [params]

                   INSTALL= wurde ursprnglich nur vorgesehen, um bestimmte
                   Programme des Betriebssystems frher als sonst mglich
                   zu laden. An eine praktische Mglichkeit zur generellen
                   Verwendung fr Fremdtreiber hatten die Entwickler offen-
                   bar zunchst nicht gedacht. Dies ist auch nicht ver-
                   wunderlich, denn in frhen DOS-Versionen war das System
                   whrend der Bearbeitung der CONFIG.SYS Datei noch
                   so minimal funktionsfhig, da viele der Interrupt-
                   Funktionen, die TSRs und andere Programme normalerweise
                   aufrufen, offiziell noch nicht definiert waren (vgl.
                   Spezifikation fr Programmierung von Gertetreibern).
                   In der Praxis waren (insbesondere bei DR DOS gegenber
                   MS-DOS) viele der kritischen Funktionsausrufe auch schon
                   innerhalb von CONFIG.SYS problemlos mglich, so da im
                   Endeffekt fast alle Programme schon in CONFIG.SYS geladen
                   werden konnten. Es gibt wirklich nur sehr wenige Pro-
                   gramme, die aus verschiedenen Grnden noch *nicht* in
                   CONFIG.SYS geladen werden knnen.
                   Auerdem werden die per INSTALL= etc. geladenen Treiber
                   bei MS-DOS/PC-DOS sowieso nach den per DEVICE= etc.
                   geladenen Treibern geladen, so da der Vorteil von
                   INSTALL= sich darauf reduziert, Programme vor der Shell
                   (COMMAND.COM) zu laden, was - fr sich genommen - nur
                   selten wirklich notwendig ist. Bei DR DOS und Novell DOS
                   sieht die Sache allerdings vllig anders aus: Dadurch,
                   da Sie hier - aus Sicht des Betriebssystems - vllige
                   Wahlfreiheit in der Ladereihenfolge haben, knnen Sie
                   INSTALL= auch fr viele andere Dinge 'mibrauchen':

                   Nheres zu INSTALL= in Kapitel III.5 (z.B., da man nicht
                   unbedingt residente Software laden mu, sogar die Ab-
                   arbeitung von Batchjobs als Unterroutinen von CONFIG.SYS
                   ist problemlos mglich. INSTALL= taugt auch prima zum
                   Debuggen von erst spter per DEVICE= zu ladenden Gerte-
                   treibern.).
                   Bezglich der Umgebung und Mglichkeiten, Speicherplatz
                   zu sparen, siehe auch bei SET=, insbesondere bezglich
                   des Utilities SETENV.COM, auch bei LH in Kapitel II.11.

                   Die alte DR DOS Direktive HIINSTALL= wird weiterhin un-
                   dokumentiert untersttzt und dabei seltsamerweise nicht
                   wie INSTALLHIGH=, sondern wie INSTALL= behandelt
                   (getestet bis Novell DOS 7 Update 14, sptestens bei
                   Caldera OpenDOS 7.01 wurde dies jedoch korrigiert).
                   INSTALL= und HIINSTALL= werden auch von CCI Multiuser DOS
                   7.22 untersttzt, dort kann man angeblich bei HIINSTALL=
                   auch die von HIDEVICE= bekannte Option SIZE=hhhh angeben,
                   die DR DOS und Novell DOS *hier* nicht kennen.

                   INSTALLHIGH= wird nun auch von MS-DOS 7 (MS Windows95/
                   Chicago) untersttzt. MS-DOS 6.22 bot diese Mglichkeit
                   noch nicht.

                   Nach der Ausfhrung der INSTALL= etc. Direktive ermittelt
                   IBMBIO.COM im Falle eines signalisierten Fehlers (aus der
                   Sicht von IBMBIO.COM) ber INT21h/59h den "erweiterten
                   Fehlercode" (0..65535), oder andernfalls ber INT21h/4Dh
                   den "erweiterten" Returncode des Treibers, dessen Low-
                   Byte exakt dem Code entspricht, den auch ERRORLEVEL
                   zurckliefern wrde. Dieser Wert wird in beiden Fllen
                   16-bittig in die CONFIG.SYS Fehlervariable eingetragen,
                   die mittels ONERROR= in CONFIG.SYS abgefragt werden kann.
                   Fr den blichen Fall, nmlich, da in CONFIG.SYS per
                   INSTALL= etc. nur residente Treiber geladen werden,
                   ergibt sich hier - hnlich wie bei DEVICE= - trotz
                   Doppelnutzung einer Variablen eine gute Unterscheidungs-
                   mglichkeit, nur nicht mit einer Grenze bei 32768
                   (Bit15 gesetzt), sondern mit einer 'flieenden' Grenze,
                   die bei 256 (Bit8 gesetzt) beginnt. Fr den Fall, da
                   man mit INSTALL= Programme aufruft, die nicht resident
                   bleiben, ergibt sich allerdings das Problem, da dann
                   beide Kategorien von Fehlercodes bei 0 beginnen und
                   nicht mehr voneinander unterschieden werden knnen.
                   In diesem Fall empfehle ich, die Auswertung in erster
                   Linie auf die Returncodes des Treibers auszurichten,
                   da diese sehr viel wahrscheinlicher andere Werte als 0
                   liefern und sinnvoller verwendbar ist, als die meist
                   nur sporadisch auftretenden erweiterten Fehlercodes des
                   Betriebssystems. Die ERRORLEVEL Werte finden Sie
                   (manchmal) in der Dokumentation des jeweiligen Pro-
                   gramms; einige Werte werden auch in dieser Datei bei
                   der Beschreibung des jeweiligen Kommandos aufgelistet.
                   Andererseits hat diese Methode auch den Vorteil, da
                   Sie die Returncodes im Fall ordnungsgemer Ausfhrung
                   exakt so fr die Auswertung per ONERROR= bernehmen
                   knnen, wie sie in der Dokumentation des jeweiligen
                   Treibers (blicherweise fr den COMMAND.COM Prompt)
                   angegeben wurden.

                   Beispiele fr erweiterte Fehlercodes:

                    (im Bereich 0..65535, jedoch blicherweise kleiner 256,
                     weitere Codes wie bei INT21h/59h.)

                     0     = kein Fehler
                     sonst = (siehe weiter oben bei DEVICE=)

                   Beispiele fr Returncodes des Treibers (High-Byte):

                     0      = normale Ausfhrung       (->   0 .. 255)
                     1      = Abbruch durch <Ctrl>+<c> (-> 256 .. 511)
                     2      = Kritischer Abbruch       (-> 512 .. 767)
                     3      = Resident installiert     (-> 768 ..1023)

                   Beispiele fr Returncodes des Treibers (Low-Byte):

                     Wie ERRORLEVEL im Bereich 0..255, werden bei Fehler-
                     zustnden oder (blicher) residenter Installation je-
                     doch auf 256..511, 511..767 oder 768..1023 umgemappt.


    iii. Kommentare, Meldungen, Bildschirmsteuerung:
    ------------------------------------------------

    :label [=] [comments]

                   Labels (Sprungmarken) mssen mit einem Doppelpunkt in der
                   ersten Spalte eingeleitet werden. Nach der Angabe des
                   Label-Namens (maximal 8 Zeichen werden unterschieden, bis
                   zum ersten Leerfeld), knnen dann noch weitere Kommentare
                   folgen, die bei der Bearbeitung einfach ignoriert werden.
                   Damit kann eine Marke im Prinzip genauso aussehen wie ein
                   Kommentar, und in der Tat: Frhere DOS-Versionen kannten
                   noch keine REM[=] etc. Direktive. Hier konnte man sich
                   dadurch behelfen, da man die Kommentare in Marken-Zeilen
                   geschrieben hat, deren Namen niemals als Sprungziele
                   benutzt wurden.

    ; [=] [comments]
    REM [=] [comments]
    [COMMON] [=] [comments]

                   Kommentare knnen, wie gewohnt, mit REM[=] oder ;[=] an-
                   gegeben werden. Bezglich [COMMON] (mit eckigen Klammern)
                   siehe auch den folgenden Abschnitt. Die von MS-DOS 6.0+
                   undokumentiert untersttzte Direktive COMMENT=, die
                   identisch mit REM ist, wird von Novell DOS 7 nicht unter-
                   sttzt.

    ECHO [=] [message]

                   Diese Direktive dient der Ausgabe von Meldungen (via
                   BIOS-Funktionen) und zur Gestaltung von Konfigurations-
                   mens. "ECHO ON|OFF" und "ECHO." arbeiten nicht in
                   CONFIG.SYS.
                   Leerzeilen erzeugt man einfach dadurch, da man keinen
                   Meldungstext angibt. Es sind beliebige Zeichen erlaubt,
                   '>', '<' und '|' haben noch nicht ihre sptere Bedeutung.
                   Nheres siehe in Kapitel III.3.

    CLS [=] [comments]

                   Diese Direktive lscht den Bildschirm, indem sie den
                   aktuellen Bildschirmmodus holt und sofort wieder setzt
                   (dabei wird bei Modi unterhalb 128 der Bildschirm ge-
                   lscht). Das Verhalten unterscheidet sich insofern vom
                   *Befehl* CLS (der von COMMAND.COM zur Verfgung gestellt
                   wird), als da in der CONFIG.SYS noch keine andere
                   Mglichkeit zum Bildschirmlschen besteht. Die er-
                   weiterten Mglichkeiten des COMMAND.COM Befehls CLS
                   (z.B. mit %$Cls%) sind in Kapitel II.11., IV.7. und
                   in DRDOS6UN.TXT beschrieben. Auerdem wird alles nach
                   dem CLS= Befehl ignoriert, kann also fr Kommentarzwecke
                   verwendet werden.

    CPOS [=] [line[, column]]           line=0, <1>..255, column=0, <1>..255

                   Die Direktive setzt ohne Angabe von Parametern den
                   Cursor auf die Position (1,1) (obere linke Ecke).
                   Es gibt jedoch die Mglichkeit, zustzlich noch ein oder
                   zwei Parameter fr die gewnschten Koordinaten der neuen
                   Cursor-Position anzugeben. Wird ein Wert nicht angegeben,
                   wird jeweils 1 angenommen.
                   Entgegen der Anleitung sind Werteangaben von 1..255
                   mglich.
                   Die jeweiligen Maximalwerte hngen vom eingestellten
                   Textmodus ab und sollten nicht berschritten werden
                   (je nach BIOS kann der Cursor sonst an einer vllig
                   falschen Position erscheinen).
                   Gibt man den Wert 0 fr einen Parameter an, so wird der
                   Cursor auerhalb des sichtbaren Bereichs an die
                   'Position 256' gesetzt. Mit (0,0) kann man den Cursor
                   meist ganz verschwinden lassen. Das exakte Verhalten
                   hngt jedoch auch vom BIOS ab, das den Wert auerhalb
                   des gltigen Bereichs u.U. auf den Maximalwert reduziert
                   (damit wre (0,0) dann die rechte untere Ecke).


    iv. Benutzereingaben, Zeitsteuerung, Default-Verhalten:
    -------------------------------------------------------

    TIMEOUT [=] seconds [,query_answer [,switch_answer [comments]]]

                   seconds=<0>, 1..65535
                   query_answer=ASCII-char  <'N'> (auer 0Ah und 0Dh)
                   switch_answer=ASCII-char <'1'> (auer 0Ah und 0Dh)

                   Diese Direktive zur Einstellung der Zeitschranke fr
                   ?=, SWITCH= und GETKEY= Direktiven bietet offiziell nur
                   die Mglichkeit, die Wartezeit seconds anzugeben. Wird
                   eine Zeitschranke von 0 angegeben, so wird die Zeit-
                   schrankenautomatik deaktiviert, d.h. es wird effektiv
                   auf einen Tastendruck gewartet.

                   Undokumentiert ist jedoch, da TIMEOUT= darber hinaus
                   noch zwei weitere Angaben zult:

                   Die erste Angabe query_answer spezifiziert die anzu-
                   nehmende Default-Antwort auf die Ja/Nein-Fragen bei ?=
                   oder whrend des <F8>-Einzelschrittmodus. Als Default
                   gilt hier 'N', d.h. nach Ablauf der Zeitschranke wird
                   eine ?= Frage automatisch mit 'N' beantwortet, d.h.
                   die entsprechende Direktive ignoriert. Dies entspricht
                   i. allg. dem gewnschten Verhalten. (Hierzu siehe auch
                   Kapitel II.2.)
                   Grundstzlich kann hier aber jeder beliebige andere Wert
                   angegeben werden. Mchte man, da nach Ablauf des Time-
                   outs eine ?= Frage automatisch mit 'Ja' beantwortet wird,
                   so mu man hier als Default-Wert ein 'J', bzw. den ent-
                   sprechenden YESCHAR= Wert angeben (in der Ausgabe der
                   entsprechenden Ja/Nein-Frage wird allerdings nur das 'J'
                   durch das per YESCHAR= gesetzte Zeichen ersetzt, das 'N'
                   bleibt hingegen auch erhalten, wenn man query_answer
                   ndert).
                   Der dritte Parameter switch_answer erlaubt - analog zum
                   zweiten Parameter - die Vorgabe einer Default-Antwort fr
                   SWITCH= Eingaben. Normalerweise wird hier '1' angenommen,
                   was bewirkt, da nach Ablauf der Zeitschranke automatisch
                   zur ersten Marke von SWITCH= gesprungen wird (und damit
                   z.B. den ersten Menpunkt whlt). Als grundstzlich
                   gltige Eingaben werden bei SWITCH= nur '0'..'9' akzep-
                   tiert, trotzdem kann man *hier* durchaus auch andere
                   Werte angeben.
                   Durch bersteuern des Default-Wertes lt sich etwa
                   das von MS-DOS her bekannte Verhalten MENUDEFAULT=
                   simulieren, indem nach Ablauf der Zeitschranke standard-
                   mig ein anderer Menpunkt gewhlt wird. Aber die
                   Implikationen, die eine vernderte Einstellung mit
                   sich bringt, werden besonders deutlich, wenn man sich
                   das genaue Verhalten von SWITCH= nher betrachtet.
                   Es ist mglich, die Zeitschrankenfunktion fr SWITCH=
                   zu unterbinden (gleichzeitig aber fr ?= aktiv zu
                   lassen), indem ein fr die jeweilige SWITCH= Zeile
                   ungltiger Wert als Default-Antwort gewhlt wird
                   (z.B. 'X'). Ist diese Verhalten nicht gewnscht,
                   sollte man darauf achten, da die Zahl, die der
                   SWITCH= Eingabe entspricht, auch wirklich mit einem
                   existierenden Sprungmarke verknpft ist.

                   Um die Mglichkeiten von TIMEOUT= auszunutzen, mu
                   diese Direktive u.U. relativ hufig dicht hintereinander
                   aufgerufen werden. Dabei ist zu beachten, da nur die
                   Werte mit den neuen Einstellungen belegt werden, die in
                   der TIMEOUT= Zeile auch angegeben werden. Auf diese
                   Weise kann man z.B. den Default-Wert fr ?= Fragen
                   oder die Verzgerung der Zeitschranke ndern, ohne den
                   Default-Wert fr SWITCH= angeben zu mssen. In manchen
                   Fllen ist es wichtig, da man eben diese Angaben nicht
                   jedesmal wiederholen mu.
                   Gibt man TIMEOUT= ohne Parameter an, so wird die Warte-
                   zeit wieder auf unendlich zurckgestellt.

                   Achtung: Das trennende Komma zwischen den einzelnen
                   Werten von TIMEOUT= ist optional, wird es aber angegeben,
                   so darf nach dem Komma kein weiteres Leerzeichen folgen,
                   sonst wird dieses Leerzeichen flschlicherweise als das
                   gewnschte ASCII-Zeichen fr die Default-Antworten
                   interpretiert.

    ? [=] ["message"] directive [params]

                   Diese Frage - bei DR DOS und Novell DOS 7 steht das
                   Fragezeichen blicherweise vor dem Befehl, bei MS-DOS/
                   PC-DOS wird dies zurckgewiesen - erlaubt es, die Aus-
                   fhrung der angegebenen beliebigen Direktive abhngig
                   von der Antwort auf eine Frage zu machen. Typischerweise
                   handelt es sich dabei um eine Ja/Nein-Frage ohne Zeit-
                   beschrnkung (abhngig von TIMEOUT=). Wird die Frage
                   mit der Taste fr 'Ja' (YESCHAR=) beantwortet, so wird
                   die angegebene Direktive ausgefhrt, andernfalls wird
                   die Zeile bersprungen (es ist also nicht notwendig,
                   explizit mit 'Nein' zu antworten). Sobald aber mit
                   TIMEOUT= eine Zeitschranke definiert wurde, wird nach
                   deren Ablauf automatisch die dort angegebene Default-
                   Antwort (query_answer) gewhlt (normalerweise 'N').

                   Praktisch an der ?= Direktive ist, da sie automatisch
                   die zugehrige Zeile mit "(J/N) ?"-Frage anzeigt, wenn
                   man nicht explizit ein Meldung angegeben hat. Interessant
                   ist diese Variante deshalb, weil sie automatisch die
                   richtigen Zeichen fr (J/N) darstellt (abhngig von
                   der Landesversion von IBMBIO.COM). Der 'Ja'-Buchstabe
                   kann mit der Direktive YESCHAR= bersteuert werden.
                   Zwar wird man meist die Einstellung YESCHAR=J whlen,
                   aber in Einzelfllen lassen sich ber nderungen von
                   YESCHAR= auch ganz andere Fragen verwirklichen.
                   Es mu nmlich nicht so sein, da man in einer Situation
                   eine typische Ja/Nein-Entscheidung mchte. Da aber der
                   'Nein'-Wert nicht verstellt werden kann, strt in diesem
                   Fall die automatisch generierte Frage. Sobald man aber
                   selbst einen Meldungstext definiert ("message" in Gnse-
                   fchen), erscheint dieser Text anstelle der Frage.
                   Natrlich kann man hier auch wieder eine Frage formu-
                   lieren, aber es wre z.B. auch eine Simulation einer
                   'PAUSE'-Funktion mit Abbruch durch Druck auf 'C' denkbar,
                   etwa:

                    TIMEOUT=10,N
                    YESCHAR=C
                    ? "Bitte warten... (Abbruch mit '<C>ontinue')."
                    YESCHAR=J

                   Wird ein Text angegeben, kann man trotzdem die automa-
                   tische Meldung "(J/N) ?" an diese Meldung anhngen,
                   indem man nach der Meldung ein Fragezeichen schreibt
                   (wrde hier "(C/N) ?" ergeben).
                   Da man bei TIMEOUT= auch den Default-Wert fr den
                   Timeout-Fall einstellen kann, ist es 'fast' mglich,
                   auch den 'Nein'-Fall umzudefinieren und zumindest aus
                   der Sicht des Anwenders die Bedingung logisch umzudrehen.
                   Nur, um Mal ein Beispiel dafr zu geben:

                    TIMEOUT=10,J
                    YESCHAR=N
                    ? "Heute <n>icht den Viren-Scanner starten?" GOTO skip
                    INSTALL=virusscan...
                    :skip
                    TIMEOUT=10,N
                    YESCHAR=J

                   Das 'Nein' in der Ja/Nein-Frage wird allerdings nicht
                   zum bei TIMEOUT= angegebenen Wert umgendert (die automa-
                   tisch generierte Frage wrde also "(N/N)? " fragen, wenn
                   keine "message" angegeben wrde...).

                   Sollte man beim Booten <F8> fr Singlestepping gedrckt
                   haben (falls nicht mit SWITCHES=/N deaktiviert), so
                   werden bei den damit implizierten Fragen (d.h. auch ohne
                   explizites ?=) alle Kommentare (REM=, ;=, :=) und
                   SWITCHES= bersprungen. Seltsamerweise gilt dies nicht
                   fr [COMMON], das doch bei Novell DOS ebenfalls keine
                   Funktion hat (Update 14). Enthlt eine Zeile bereits
                   eine ?= Direktive, so wird auch mit zustzlichem <F8>
                   nur einmal gefragt.

                   Eine syntaktische Alternative (wie bei MS-DOS/PC-DOS
                   6.xx) besteht darin, das Fragezeichen erst nach einem
                   Befehl (aber noch vor evtl. weiteren Schaltern wie z.B.
                   bei DEVICEHIGH=/HIDEVICE= mglich (/L: und /S) und
                   ebenso vor dem optionalen Gleichheitszeichen) zu setzen.
                   Ein paar Beispiele:

                    ?ECHO Soll dies angezeigt werden (nur DR DOS/Novell DOS)
                    ECHO? Soll dies angezeigt werden (auch MS-DOS/PC-DOS)
                    ?DEVICEHIGH=driver parameter (nur DR DOS/Novell DOS)
                    DEVICEHIGH?=driver parameter (auch MS-DOS/PC-DOS)
                    DEVICEHIGH?/L:2=driver parameter

                   Wie kann man sich dies merken? Einfach so: Denken Sie
                   sich, ?= wre eine eigenstndige und verschachtelbare
                   Direktive wie ONERROR= (s.u.) und nicht einfach eine
                   spezielle Option der normalen Direktiven. Das Gleich-
                   heitszeichen ist auch hier optional.

                   Achtung: Auch spter unter COMMAND.COM haben Sie eine
                   Mglichkeit, die Befehlsausfhrung mit ? variabel zu
                   gestalten. Die Syntax weicht aber in einigen Details
                   leicht ab, siehe Kapitel II.11.

    SWITCH [=] [label1[[,] label2[[,] label3[[,] label4[[,] label5
               [[,] label6[[,] label7[[,] label8[[,] label9[[,] label10
               [[,] label11 [[,] comments]]]]]]]]]]]]

                   SWITCH= ist eine Mischung zwischen GOSUB=, ?= und
                   GETKEY=. Nur ein kleiner Teil der Mglichkeiten dieses
                   Kommandos ist dokumentiert.
                   Normalerweise wird bei SWITCH= kein Errorlevel gesetzt
                   (dies geschieht erst mit dem RETURN=), aber falls eine
                   Marke nicht existiert (und deshalb die Bearbeitung mit
                   der nchsten Zeile fortgesetzt wird), wird ein
                   Errorlevel 0 gesetzt.

                   SWITCH= erlaubt auf den ersten Blick normalerweise die
                   Eingabe einer Zahl, die zwischen <1> und der Anzahl der
                   angegebenen Sprungziele liegt (offiziell nicht mehr als
                   neun: label1..label9). Die mglichen Tastendrcke mssen
                   vorher durch entsprechende ECHO= Ausgaben dem Benutzer
                   mitgeteilt werden. Wird die entsprechende Taste gedrckt,
                   verzweigt SWITCH= per 'GOSUB=' zu der entsprechenden
                   Marke und fhrt das Unterprogramm aus. Normalerweise
                   wird dies irgendwann einmal mit RETURN= abgeschlossen
                   und es wird in die Zeile nach der SWITCH= Anweisung
                   zurckgesprungen. Dabei ist es - wie wir noch sehen
                   werden - mit RETURN= mglich, einen 'Resultat' zurck-
                   zuliefern, das dann im weiteren Verlauf entsprechend
                   ausgewertet werden kann. Man kann aber auch auf den
                   Rcksprung aus den Unterprogrammen verzichten, wenn man
                   darauf achtet, da evtl. an anderer Stelle bentigte
                   RETURN= Direktiven nicht versehentlich bearbeitet
                   werden.
                   Wird eine falsche Taste gedrckt, wird diese auf den
                   ersten Blick nicht akzeptiert, d.h. man darf die Eingabe
                   solange wiederholen, bis eine gltige Taste gedrckt ist.
                   Ist mittels TIMEOUT= eine Zeitschranke vereinbart, so
                   ndert sich das Verhalten insofern, als da diese
                   Schranke mit jedem falschen Tastendruck wieder zurck-
                   gesetzt wird. Wenn aber der Timeout abgelaufen ist,
                   wird als Default-Antwort switch_answer gewhlt (das
                   ist normalerweise <1> und daher wird die erste Marke
                   angesprungen).

                   Nun wird es kompliziert:

                   Angenommen, switch_answer ist per TIMEOUT= umdefiniert
                   worden: Liegt nach Ablauf des Timeouts die Default-
                   Antwort im Rahmen der gltigen Zahlen (aus '0'..'9'),
                   so wird die der Zahl entsprechende Marke angesprungen
                   (womit man MS-DOS MENUDEFAULT= simulieren kann).
                   Entspricht die Default-Antwort nicht den gltigen
                   Werten, so wird die Default-Antwort genauso zurck-
                   gewiesen, wie echte Tastendrcke (weil die entsprechenden
                   Marken nicht angegeben wurden). Der Effekt ist, da man
                   trotz Timeout gezwungen ist, die richtige Taste zur
                   Fortsetzung zu drcken.

                   Hat man bei der SWITCH= Anweisung berhaupt keine Marken
                   angegeben, so kommt man nur weiter, indem man <1> drckt
                   (oder eine <1> als switch_answer nach einem abgelaufenen
                   Timeout simuliert wird). Nun wird dieses nicht existente
                   'Label1' angesprungen, im Endeffekt wird die SWITCH=
                   Zeile bersprungen. Dies gilt auch fr andere Sprung-
                   ziele, die zwar bei SWITCH= definiert sind, aber in der
                   Datei nicht existieren (auf diese Weise kann man z.B.
                   Dummy-Sprungziele einfgen, die wir spter noch bentigen
                   werden).
                   Drckt man einfach <RET>, so wird automatisch die
                   switch_answer gewhlt, also z.B. der per TIMEOUT=
                   definierte Default-Menpunkt angesprungen.

                   Damit sind auf den ersten und zweiten Blick alle
                   Mglichkeiten sinnvoll ausgeschpft...

                   Es kommt aber noch besser:

                   SWITCH= akzeptiert nmlich eigentlich grundstzlich als
                   Eingaben die Zahlen <0> bis <9>. Drckt man <0>, so wird
                   dies derzeit intern zu 11 umgesetzt, da aber diese Marke
                   normalerweise nicht angegeben wird, wird dieser Wert
                   zurckgewiesen. Genauso mit den anderen Tasten.
                   Wrden jedoch bis zu elf Marken angegeben werden, so
                   wrden diese auch tatschlich angesprungen werden (und
                   wenn die Marke dann innerhalb der Datei nicht existieren
                   wrde, wrde die Bearbeitung stattdessen mit der Zeile
                   nach SWITCH= fortgesetzt). Bei diesem Verhalten, da <0>
                   zu Label 11, statt zu Label 10 verzweigt, handelt es sich
                   mit Sicherheit um einen Bug (getestet bis Update 15), der
                   vielleicht in zuknftigen Versionen behoben ist, so da
                   die Eingabe von <0> dann die zehnte Marke anspringt.
                   Aus diesem Grund sollte man sicherheitshalber die zehnte
                   und elfte Marke immer mit dem gleichen Sprungziel be-
                   legen.

                   Marken drfen auch mit '/' als Trennzeichen eingeleitet
                   werden.

                   Mchte man die Zhlung der Menpunkte bei 0 statt bei
                   1 beginnen lassen, bentigt aber weniger als 10 Sprung-
                   ziele, so ergibt sich das Problem, was mit den da-
                   zwischenliegenden Marken zu tun ist, so da die Eingaben
                   oberhalb des gewnschten Maximums wie gewohnt zurck-
                   gewiesen werden. Hierzu gibt es verschiedene Mglich-
                   keiten, die jedoch alle nicht besonders sauber sind.
                   Schlielich bedeutet dies in jedem Fall, da man 11
                   Marken angeben mu. Dadurch werden aber <0> sowie
                   <1>..<9> als Eingaben akzeptiert.

                    ECHO Men: Drcken Sie <0>..<2>!
                    :start
                    SWITCH= l1, l2, d3, d4, d5, d6, d7, d8, d9, l0, l0
                    GOTO start

                    :l0
                    ...
                    EXIT
                    :l1
                    ...
                    EXIT
                    :l2
                    ...
                    EXIT


    GETKEY [=] [comments]

                   Diese undokumentierte Direktive wartet auf einen Tasten-
                   druck und setzt daraufhin den Errorlevel auf den Wert
                   des zugehrigen ASCII-Code der Taste (0..255). Um z.B.
                   den Errorlevel auf 1 zu setzen, mu man nicht etwa <1>
                   drcken (hat Scan-/ASCII-Code 0231h und damit 31h = 49),
                   sondern eine <Alt>-NumPad Eingabe vornehmen, hier z.B.
                   <Alt>=<Alt>+<NumPad1>.
                   ber diese Mglichkeit ist es mglich, auf jede beliebige
                   Taste (fr die der Tastaturtreiber ein Zeichen generiert)
                   unterschiedlich zu reagieren (d.h. die Ebenen mit <Shift>
                   und <AltGr> werden i. allg. untersttzt).
                   Sofern keine Zeitschranke mittels TIMEOUT= gesetzt wurde
                   (0), wird effektiv auf den nchsten Tastendruck gewartet.
                   Bei laufendem Countdown wird jedoch die Verzgerung nach
                   Ablauf der Zeitschranke abgebrochen und stattdessen als
                   Default-Errorlevel der Wert 0400h = 1024 gesetzt und
                   nicht etwa eine der mit TIMEOUT= spezifizierten Default-
                   Antworten. (Ab DR DOS 6.0).


    v. Konfigurationsmens, Verzweigungen, Blockbildung:
    ----------------------------------------------------

    GOTO [=] [label] [comments]

                   Gibt man hier ein enicht existierende Marke an, so
                   springt GOTO= an das Dateiende der CONFIG.SYS, d.h.
                   die Bearbeitung wird umgehend abgebrochen und ggf.
                   AUTOEXEC.BAT bearbeitet. Fehlt die Angabe einer Marke
                   komplett, springt GOTO= zur letzten Marke, die innerhalb
                   der CONFIG.SYS gefunden werden kann, bzw. falls berhaupt
                   keine Marke existiert, wird die Bearbeitung einfach mit
                   dem nchsten Befehl fortgesetzt. Es besteht die Gefahr
                   von Endlosschleifen, die nicht abgebrochen werden knnen,
                   auer im Single-Stepping <F8> (falls SWITCHES=/N nicht
                   gesetzt wurde).

    GOSUB [=] [label] [comments]

                   Normalerweise wird bei GOSUB= kein Errorlevel gesetzt,
                   aber falls keine Marke angegeben wurde oder die ange-
                   gebene Marke nicht existiert, wird ein Errorlevel 0
                   gesetzt. In diesem Fall wird die Bearbeitung mit der
                   nchsten Anweisung fortgesetzt. GOSUB=/RETURN= wirkt
                   nicht bis in die Verzweigung in andere Dateien (CHAIN=)
                   hinein.

    RETURN [=] [errorlevel] [comments]                 errorlevel=<0>..65535

                   Nimmt die Bearbeitung mit der Zeile nach dem letzten
                   GOSUB= bzw. SWITCH= wieder auf (kann auch verschachtelt
                   werden).
                   Allerdings bietet die Direktive noch einige undokumen-
                   tierte Spezialitten, die neue Mglichkeiten erffnen:
                   Es ist mglich, einen optionalen Errorlevel anzugeben,
                   der als Rckgabewert des Unterprogrammblocks angesehen
                   werden kann.
                   Gibt man keinen Wert an, so wird der Errorlevel auf 0
                   zurckgesetzt. Dadurch ist eine unbeabsichtigte Beein-
                   flussung von auf Errorlevel basierenden Verzweigungen
                   ber die Grenzen eines Unterprogrammblocks hinaus ausge-
                   schlossen. Wenn man aber genau diese Funktion bentigt,
                   hat man dafr die Mglichkeit, explizit einen Wert an-
                   zugeben. Durch diese Methode werden auch die vielen
                   mglichen Errorlevel, die innerhalb eines Unterprogramms
                   auftreten knnen, auf einen Wert, der dann nach auen
                   zurckgeliefert wird, reduziert. Nur durch diese Re-
                   duktion ist es auf der nchsthheren Ebene mglich, da
                   Doppelbelegungen bewut eingeplant oder ausgeschlossen
                   werden.
                   Fehlt zu einem RETURN= das vorherige GOSUB= bzw. SWITCH=,
                   so wird RETURN einfach ignoriert.

    CHAIN [=] filespec [comments]

                   Falls die angegebene Datei existiert, wird die Bear-
                   beitung der aktuellen 'CONFIG.SYS'-Datei beendet und
                   in die neue Datei verzweigt. Die diesbezglichen
                   Mglichkeiten sind besonders gut fr schreibgeschtzte
                   oder ROM- oder CD-ROM-Laufwerke geeignet (zur Ein-
                   bindung von CD-ROM-Treibern in CONFIG.SYS siehe auch
                   Kapitel II.4. bei NWCDEX). Bei Wechsellaufwerken oder
                   -medien mu man besonders auf Pfadangaben in DEVICE...=
                   und INSTALL...= Direktiven achten. Existiert die Datei
                   nicht, wird die Bearbeitung in der nchsten Zeile
                   fortgesetzt.
                   Mit der Verzweigung in die neue Datei werden alle noch
                   ausstehenden RETURN= Rcksprungadressen von GOSUB= oder
                   SWITCH= zurckgesetzt.

    EXIT [=] [comments]

                   Die Bearbeitung der aktuellen CONFIG.SYS wird beendet
                   (auch bei noch ausstehenden RETURN= Anweisungen) und
                   der via SHELL= spezifizierte Kommandoprozessor mit
                   dort definierten Parametern geladen. Ein evtl. ange-
                   gebener Kommentar wird ignoriert; die Angabe eines
                   Errorlevel ist hier nicht mglich (vgl. Kommando EXIT
                   in Kapitel II.11.).

    [COMMON] [=] [comments]

                   Die Gruppenberschrift [COMMON] fr allgemeine
                   CONFIG.SYS Eintrge entsprechend MS-DOS Boot-Mens
                   (die von Novell DOS nicht akzeptiert werden). Man
                   sollte diese berschrift an das Ende seiner CONFIG.SYS
                   Datei plazieren, damit Installationsprogramme hier ihre
                   notwendigen Einstellungen eintragen, die man dann leicht
                   an die entsprechenden Stellen in den Novell DOS Boot-
                   Mens platzieren kann. Novell DOS behandelt diese
                   Direktive exakt wie einen Kommentar.


    vi. Fehlermanagement:
    ---------------------

    ERROR [=] [errorlevel] [comments]       errorlevel=0..65535

                   Diese undokumentierte Direktive setzt - sofern ange-
                   geben - den Errorlevel auf den angegebenen Wert. Damit
                   ist die bewute Beeinfluung nachfolgender ONERROR= etc.
                   Befehle mglich (ab DR DOS 6.0) und in Kombination mit
                   ONERROR= ist es ebenfalls mglich, die vielen unter-
                   schiedlichen mglichen Codes durch gezielte Fallunter-
                   scheidungen auf wenige Codes zu reduzieren.
                   (In Batchjobs kann man mit einer undokumentierten
                   Option des EXIT-Kommandos ebenfalls explizit Errorlevel
                   setzen, allerdings nur im Bereich von 0..255, vgl.
                   Kapitel II.11.)

    ONERROR [=|>|<|<>|>=|<=|=>|=<|==] value directive [params]

                   relation= <=>
                   value   = 0..65535 <no default>

                   Diese leistungsfhige undokumentierte Direktive erlaubt
                   das Ausfhren beliebiger Direktiven in Abhngigkeit von
                   aktuell eingestellten Errorlevel (analog zu ?=).
                   Dabei sind beliebige Relationen (mit den Zeichen = > <)
                   zwischen dem Errorlevel und dem angegebenen Wert value
                   auswertbar. Wenn die Bedingung erfllt ist, wird die
                   angegebene Direktive ausgefhrt (dies knnte z.B. eine
                   weitere ONERROR= Anweisung (die Bedingungen werden dann
                   mit einem 'logischen AND' verknpft), ein GOTO= oder
                   eine beliebige andere Anweisung sein), sonst wird die
                   Bearbeitung in der nchsten Zeile fortgesetzt.

                   Ist keine Relation angegeben, so wird '=' angenommen,
                   ist kein Wert angegeben, so wird die Bearbeitung mit
                   der nchsten Anweisung fortgesetzt. Ist die auszu-
                   fhrende Direktive nicht definiert, wird die Bearbeitung
                   ebenfalls in der nchsten Zeile fortgesetzt (bzw. eine
                   Fehlermeldung ausgegeben).

                   Auf diese Weise sind z.B. Abfragen der folgenden Form
                   mglich:

                    YESCHAR=J
                    TIMEOUT=10,N
                    :start
                    INSTALL=myprog.exe
                    ONERROR=0 GOTO skip
                    ONERROR>10 ONERROR<>17 ONERROR<=30 GOTO skip
                    ECHO Fehler aus 1..10, 17, 31..65535 ist aufgetreten!
                    ? "Nochmal versuchen?" GOTO start
                    :skip

                   Wie die Fehlercodes bei den einzelnen CONFIG.SYS Direk-
                   tiven im Detail gesetzt werden, ist in diesem Kapitel
                   bei den jeweiligen Direktiven beschrieben.

                   (In Batchjobs sind hnliche, wenn auch lange nicht so
                   flexible Abfragen von Errorleveln ber das altherge-
                   brachte IF ERRORLEVEL mglich, vgl. Kapitel II.11.)

                                                                             
  ---------------------------------------------------------------------------

  III.2. Undokumentierte Mglichkeiten von LASTDRIVE= : [97-05-01]
  ================================================================

   Stichworte: CONFIG.SYS, LASTDRIVE=, DR DOS, 27-32 Laufwerke, MAP,
               IPX/NETX, ODI, NCP, UNC, SUBST, 4DOS

   Wahrscheinlich schon lnger (definitiv aber mit dem Update 11 von
   Novell DOS 7, definitiv noch nicht mit der Originalausgabe von DR DOS
   6.0 von 1991) ist es mglich, mehr als 26 Laufwerke entsprechend den
   Buchstaben A: bis Z: zu definieren. Dies wurde vor allem deshalb
   implementiert, um den Engpa bei der Verwendung zustzlicher Netz-
   laufwerke (MAP) zu mildern.

   Eine derartige Mglichkeit war schon immer (undokumentiert) gegeben,
   wenn die Novell Netz-Client-Software IPX/NETX geladen wurde. Die Netz-
   Shell NETX legte sich dabei wie eine Schale um den DOS-Kern (insbe-
   sondere INT21h). Da so alle Calls erst durch diese Shell gefiltert
   wurden (Front-End-Hooks), war es mglich, fr Netzlaufwerke auf die
   'Buchstaben' [ bis ` auszuweichen (und dort - weil nicht alle Programme
   derartige Eingaben berhaupt untersttzen - wenigstens die Search-
   Mappings zu verstauen).
   Seit einiger Zeit versucht Novell massiv als Ersatz fr die vllig
   veraltete IPX/NETX Kombination ODI-Treiber mit einem auf der VLM-Technik
   (von NetWare 4.0 und PNW 1.0) basierenden Net-Requester durchzusetzen.
   Dadurch wird nun der Umadressierer (INT2Fh/AH=11h) bedient (und die Shell
   und das proprietre Interface via INT21h (NCP - Novell Core Protocol)
   wird berflssig) und mu ggf. nur noch aus Kompatibilittsgrnden fr
   alte Programme mittels NETX.VLM geladen werden. (Der Umadressierer, auch
   Redirektor genannt, ist ein Back-End-Device.)
   Hierfr wird normalerweise eine Einstellung LASTDRIVE=Z in der
   CONFIG.SYS erforderlich, siehe Kapitel III.1 und II.4. bei NWCDEX.
   Soweit die Theorie.

   In der Praxis bedeutet dies, da - wenn man diese zustzlichen Laufwerke
   vorher genutzt hat - nach der Umstellung mit weniger Laufwerken auskommen
   mu. Dies kann bei groen Netzen mit vielen Mappings oder komplexen
   Konfigurationen mit vielen Substitut-Laufwerken etc. zu Engpssen fhren,
   da nicht genug Buchstaben bereitstehen.

   Aus diesem Grund hat Novell die Syntax der Direktive LASTDRIVE so er-
   weitert, da dort fr noch grere Laufwerksbuchstaben als Z auch Zahlen
   angegeben werden knnen. (Und mit MS-DOS 7 hat auch Microsoft diese und
   alle weiteren pfiffigen Ergnzungen im CDS-Support von Novell DOS 7
   bernommen, allerdings auch dort undokumentiert.)

   Die vollstndige Syntax lautet:

    LASTDRIVE [=] A..Z | 1..32
    (auch bei MS-DOS 7; bei frhen Ausgaben von Novell DOS 7  - irgendwo
    vor Update 14 - war hingegen als Zahlenangabe nur 27..32 erlaubt!)

   Beispiele:         ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`

    LASTDRIVE=Z     -> 26 Laufwerke  A: ... Z:
    LASTDRIVE=32    -> 32    ""      A: ... `:

   Interessanterweise ist die Verwendung dieser Laufwerke nicht auf
   NetWare-Anwendungen beschrnkt, man kann auch ganz normal unter DOS
   damit arbeiten, und zwar auch ohne, da dafr die Netzwerk-Software
   geladen werden mte!

   (Hinter der Angabe es Laufwerksbuchstabens knnen weitere Zeichen folgen,
   so da auch eine Angabe A: erlaubt ist.)

   Ein funktionierendes Beispiel (unter COMMAND.COM):

    SUBST [: c:\dos
    [:
    DIR

   In der Auflistung mit SUBST erscheinen diese Laufwerke allerdings nicht,
   hnliche Beschrnkungen drften auch einige andere Tools und Programme
   haben, die solche Buchstaben als 'Fehler' abfangen.

   Leider gibt es bei 4DOS Probleme mit diesen Laufwerken (besonders
   ^: und `:), da die Buchstaben '^' und '`' hier besondere Bedeutung haben.
   Zwar kann man dies bei 4DOS mit SUBST %=`: c:\dos umgehen, aber diese
   Schreibweise ist nicht mit der Syntax von COMMAND.COM kompatibel.
   Egal wie man auch versucht, die Beschrnkung zu umgehen, es ist mit 4DOS
   nicht mglich, auf diese Laufwerke zu wechseln. Hierzu mu man - wenn
   auch nur temporr - Novells COMMAND.COM verwenden. Auch intern kommt
   4DOS nicht mit dem Laufwerk `: zurecht (getestet mit 4DOS 5.5c).

   Offenbar hat sich das Verhalten von Novells COMMAND.COM bezglich der
   Laufwerke oberhalb von 26 mit Update 15 (Januar 1996) leicht verndert:
   Wurden diese Laufwerke vorher exakt wie die anderen Laufwerke behandelt,
   d.h. ohne eine Belegung mit SUBST oder MAP wurden sie in jedem Fall mit
   "Ungltiger Laufwerksbuchstabe" zurckgewiesen, so sieht die Situation
   jetzt etwas anders aus:
   Nicht 'belegte' Laufwerke oberhalb von Z: werden zwar normalerweise
   immer noch zurckgewiesen (etwa bei DIR [:), das 'Wechseln' auf ein
   solches Laufwerk ist hingegen mglich. In diesem Fall erscheint dann
   statt der Pfadangabe eines $p Prompts die Zeichenkette "Aktuelles
   Laufwerk ist nicht mehr gltig", und das ehemals aktuelle Laufwerk
   'schimmert' sozusagen durch (DIR, CD auch mit Unterverzeichnissen,
   aber ohne die Angabe eines Wurzellaufwerks etc.), d.h. alle Pfad-
   vernderungen etc. beziehen sich auf das zuletzt gltige aktuelle
   Laufwerk, obwohl der Laufwerksbuchstabe selbst nicht mehr aktuell ist.
   Bei einigen Befehlen springt der Laufwerksbuchstabe aber auch wieder
   auf das alte aktuelle Laufwerk um.

   Es gibt aber - nur nebenbei erwhnt - auch noch zwei Mglichkeiten,
   Netzlaufwerke direkt anzusprechen: Die NetWare-Ressourcen-Syntax und
   die Universal Naming Convention (UNC), die in Kapitel VI.10. erlutert
   werden.

                                                                             
  ---------------------------------------------------------------------------

  III.3. Verhalten von ECHO= :
  ============================

   Stichworte: CONFIG.SYS, ECHO=, Boot-Mens, Direktiven

   Der Befehl ECHO kann - wie schon lange bei DR DOS gewohnt - auch in
   CONFIG.SYS verwendet werden. Allerdings funktioniert er hier etwas
   anders, siehe auch Kapitel III.1. (und IV.1.).

   a) Normalerweise schreibt die Syntax fr CONFIG.SYS Direktiven ein
      Gleichheitszeichen vor: Direktive=Wert.
      Dieses Gleichheitzeichen kann allerdings hufig weggelassen werden,
      solange ein Leerfeld fr eine Abgrenzung sorgt. Daraus entsteht aber
      eine kleine Einschrnkung. Die Direktive 'ECHO' erwartet nmlich
      (entgegen der Gewohnheit) optional auch ein Gleichheitszeichen,
      d.h. soll die Ausgabezeichenkette mit einem Gleichheitszeichen
      beginnen, so wird dieses als syntaktisches Element interpretiert
      und weggelassen, d.h. man mu dieses Zeichen verdoppeln:

      Statt                                   Ausgabe:

       ECHO Hallo Benutzer!                    Hallo Benutzer!
       ECHO ===============                    ==============

      mu man also schreiben:                 um zu erhalten:

       ECHO Hallo Benutzer!                    Hallo Benutzer!
       ECHO ================                   ===============

      weil die Zeile eigentlich so interpretiert wird:

       ECHO [=] Hallo Benutzer!
       ECHO [=] ==============


   b) 'ECHO.' zur Ausgabe einer Leerzeile funktioniert nicht.
      Stattdessen kann man einfach 'ECHO' oder (s.o.) 'ECHO=' schreiben.

                                                                             
  ---------------------------------------------------------------------------

  III.4. Hinweise zu DEVICE=/DEVICEHIGH= : [96-06-11]
  ===================================================

   Stichworte: CONFIG.SYS, DEVICE, .SYS/.COM/.EXE, INSTALL, Region-Support

   Die CONFIG.SYS-Befehle DEVICE=/DEVICEHIGH= sind eigentlich dafr vorge-
   sehen, .SYS-Treiber zu laden. Da sich das Format aber nur gering von
   .COM/.EXE-Programmen (die als TSR ebenfalls Treiber sein knnen) unter-
   scheidet, lassen sich auch solche Programme ohne Rckfrage hochladen.
   Dies sollte man jedoch nur dann mit DEVICE=/DEVICEHIGH= durchfhren,
   wenn dies ausdrcklich vom Treiberhersteller erlaubt wird (der Treiber
   mu einen 'dualen' Header haben), ansonsten wird das System abstrzen.

   Ausweichmglichkeit:

    - .SYS-Version des Treibers verwenden, oder falls nicht vorhanden:
    - Mit INSTALL=/INSTALLHIGH= hochladen!!!

   Besonders zu beachten ist, da Novell DOS DEVICE[HIGH]=/INSTALL[HIGH]=
   Direktiven in der Reihenfolge abarbeitet, in der sie in der CONFIG.SYS
   vorkommen. Dies ist uerst praktisch, da man so auch TSR-Treiber (per
   INSTALL[HIGH]=) vor Gertetreibern (per DEVICE[HIGH]=) laden kann. Bei
   MS-DOS werden zuerst die DEVICE[HIGH]= und erst danach die INSTALL=
   Direktiven abgearbeitet, was hufiger zu ziemlichen Schwierigkeiten
   bei der Bestimmung der optimalen Ladereihenfolge mit sich bringt.

   Die Direktive DEVICEHIGH= untersttzt (undokumentiert) noch zustzliche
   Parameter, die das Hochladen steuern.

   SIZE=size  Teilweise undokumentierte Option fr DEVICEHIGH= analog zu
              der Option von MS-DOS 5.0, die auch bei MS-DOS 6.x (dort
              allerdings wieder undokumentiert) noch vorhanden ist.
              Diese Option erlaubt die Angabe einer Gre size (hexa-
              dezimal), die minimal in UMBs vorhanden sein mu, damit
              DOS den Treiber hochldt. Ist soviel Speicher in den UMBs
              nicht (mehr) vorhanden, wird der Treiber automatisch in den
              Basisspeicher geladen. Diese Option ist dann wichtig, wenn
              ein Treiber whrend seiner Initialisierung mehr Speicher
              bentigt, als die Dateigre oder die Headerinformationen
              vermuten lassen (Gertetreiber knnen nicht ohne Weiteres
              nachtrglich mehr Speicher allozieren). Ist der Treiber dann
              nmlich bereits in die UMBs geladen und steht der zustzliche
              Speicher nicht zur Verfgung, kann die Initialisierung des
              Treibers eventuell ganz versagen.
              Achtung: Die Angabe der Gre ist willkrlich (00000..FFFFF
              in Bytes), d.h. mu nicht der tatschlich vom Treiber be-
              ntigten Menge entsprechen (sinnvolle Anwendung setzt aller-
              dings voraus, da man hier den wirklichen Bedarf angibt).
              Wird vom Treiberhersteller keine Angabe gemacht, kann man
              meistens mit DEVICE= und anschlieendem MEM den ntigen
              Speicherbedarf fr DEVICEHIGH= ermitteln. Der angegebene
              Wert wird intern auf Paragraphen aufgerundet (1 Paragraph =
              16 Bytes). Die Syntax lautet:

              DEVICEHIGH [SIZE=xxxx] =driver [driverparameter]

   /L:region[,minsize][;[...]]
   /S
              Diese MS-DOS MEMMAKER-Optionen werden aus Kompatibilitts-
              grnden akzeptiert und ausgewertet, hatten aber bei Novell DOS
              7 bis vor Update 14 keine Funktion, da Novell DOS keinen
              Region-Support bot. Mit Update 14 (sicher jedoch Update 15)
              wurde diese Funktionalitt nachgerstet und arbeitet genauso
              wie bei MS-DOS (siehe Kapitel V.7.).
              Besonders tragisch ist die vorher fehlende Untersttzung
              nicht, da die Speicherverwaltung auch ohne MEMMAKER, SIZER
              und CHKSTATE erheblich komfortabler (mit SETUP, MEM und
              MEMMAX) arbeitete und unabhngig von Region-Support schon
              gleiche oder bessere Bilanzen brachte.

              Ist der UMB-Speicher in mehrere getrennte Blcke fragmentiert
              (z.B. bei Verwendung des Video-Speichers als UMB-Bereich), so
              wird ein Programm normalerweise in den Block mit dem grten
              verfgbaren Speicher geladen, um dem Programm mglichst viel
              Speicher zur Verfgung zu stellen und einer Fragmentierung der
              einzelnen Blcke vorzubeugen. In Einzelfllen ist dies aber
              nicht die optimale Wahl. In solche Fllen ist es mglich, ber
              die Angabe der Option /L: mit einer Bereichsnummer x als
              Parameter genau einen UMB-Bereich zu definieren (/L:x), in den
              das Programm geladen werden soll. Kann das Programm mehrere
              getrennte Blcke (y,z) verwenden, ist auch die Angabe weiterer
              Bereiche mglich, die dann fr das Programm freigeschaltet
              werden (/L:x;y;z). Fehlt die Angabe zustzlicher Bereiche,
              kann das Programm nur den angegebenen Bereich verwenden.
              Sich selbst hochladende Programme knnen diese Sperrung von
              UMB-Bereichen allerdings umgehen (getestet mit Update 15).
              Die Nummerierung der UMB-Bereiche (sog. Regions) beginnt von
              unten nach oben. Die Zhlung beginnt bei 1. Jeder Bereich
              endet immer dort, wo ein Bereich ausgeschlossen wird
              (/EXCLUDE) oder aus anderen Grnden nicht zur Verfgung
              steht (etwa BIOS-ROM). Der konventionelle Speicher und die
              HMA werden nicht mitgezhlt. Die Bereichsnamen und Gren
              kann man mit MEM /A herausfinden, allerdings werden sie dort
              nicht explizit angegeben, siehe auch bei MEM.BAT /FREE in
              Kapitel IV.5.

              Ist der UMB-Speicher nicht fragmentiert (d.h. existiert nur
              ein zusammenhngender erlaubter Bereich unabhngig von evtl.
              fragmentierten freien Bereichen innerhalb dieses Bereichs),
              so hat dieser logischerweise die Nummer 1.
              Gibt man eine Zahl an, die grer als die tatschliche Anzahl
              der UMB-Regions ist, so wird das Programm trotz DEVICEHIGH=
              in den konventionellen Speicher geladen.
              Der Bereich 0 entspricht dem konventionellen Speicher. Bis vor
              Update 14 wurde ein Programm bei Angabe der Option /L:0 trotz
              DEVICEHIGH= auch tatschlich in den konventionellen Speicher
              geladen, ab Update 14 wird die Angabe /L:0 offenbar ignoriert,
              so da der Treiber so in UMBs geladen wird, als htte man die
              Option nicht angegeben (bei DEVICEHIGH=, nicht aber bei LH).

              Optional kann fr jeden der Bereiche auch eine minimal
              freie Gre angegeben werden, die verfgbar sein mu, um
              diesen Bereich auch tatschlich zu verwenden. Die Angabe
              der Gre minsize mu dabei dezimal erfolgen (im Gegensatz
              zu SIZE=size).

              Mchte man ausschlieen, da ein Treiber mehr als eine
              minimale Gre an Speicher verwendet, kann man zustzlich
              die Option /S benutzen, die OHNE Leerfeld an die /L:...
              Anweisung angehngt werden mu (sonst wird die Zeile von
              Novell DOS nicht akzeptiert). Dadurch wird der erste der
              angegebenen Bereiche fr die Dauer des Ladevorgangs des
              Treibers auf die Gre minsize verkleinert, so da der
              Treiber keine Chance bekommt, mehr Speicher zu verwenden.
              (In gewisser Weise arbeiten /S und SIZE= also gegenlufig.)

              Syntax:

              DEVICEHIGH= [/L:region[,minsize][;region[,minsize][;...]]]
                          [/S]] =driver [driverparameter]

   Die Optionen /L: und /S stehen auch beim Kommando HILOAD/LH/LOADHIGH,
   (nicht aber bei INSTALLHIGH) zur Verfgung. Im Gegensatz zu DEVICEHIGH=
   kann man hier auch Memory-Region 0 angeben, die entspricht dem kon-
   ventionellen Speicher. Das Gleichheitszeichen nach dem Hochladekommando
   und vor dem Programmnamen ist nicht zulssig.

                                                                             
  ---------------------------------------------------------------------------

  III.5. Mglichkeiten von INSTALL= : [96-12-23]
  ==============================================

   Stichworte: CONFIG.SYS, TSR, Temporres Laden nicht residenter Programme

   Neben der blichen Funktion zum Laden von TSR-Programmen bereits inner-
   halb der CONFIG.SYS kann man dieses Kommando auch benutzen, um nicht-
   residente Programme zu laden (sofern diese mit dem noch nicht komplett
   hochgezogenen System bereits zurechtkommen). Damit ist es mglich, ber
   solche Programme bereits sehr frh bestimmte Systemeinstellungen vor-
   zunehmen, die andere residente Treiber/Programme in CONFIG.SYS schon
   brauchen. (Auerdem lt sich so - natrlich nur im Notfall - mancher
   Installations- oder Kopierschutz von widerspenstigen Programmen aus-
   hebeln. Die Realisierung bleibt der eigenen Phantasie berlassen... ;-) )

   Das Besondere an dieser Mglichkeit ist, da ein mit INSTALL= geladenes,
   nicht residentes Programm danach den belegten Speicher wieder zur Ver-
   fgung stellt. Da dies der Fall ist, ist leider kaum bekannt, so da
   viele Leute vor scheinbar unvermeidlichen Problemen stehen (oder ver-
   suchen, alle Programme erst in AUTOEXEC.BAT zu laden, was mit einer
   Reihe von Nachteilen verbunden sein kann).

   Zu beachten ist lediglich, da zum dem Zeitpunkt, wo CONFIG.SYS abge-
   arbeitet wird, das System noch nicht komplett steht. Das bedeutet,
   da bestimmte Programme nicht auf diese Art und Weise geladen oder
   ausgefhrt werden knnen (etwa NWCDEX, sofern Sie nicht das Utility
   INSTCDEX.EXE einsetzen, siehe Kapitel II.4.). Bei DR DOS und Novell DOS
   ist das System aber (im Gegensatz zu frheren Versionen von MS-DOS)
   bereits sehr weit hochgezogen und die meisten internen Schnittstellen
   stehen Programmen schon zur Verfgung.

   Zur Verdeutlichung ein triviales Beispiel:

   CONFIG.SYS:

    REM Der folgende Befehl wird whrend der Abarbeitung von CONFIG.SYS
    REM ausgefhrt (d.h. bevor mittels SHELL= ein Kommandoprozessor wie
    REM COMMAND.COM geladen wurde), ohne da der hier temporr geladene
    REM COMMAND.COM resident bleibt!
    INSTALL=c:\nwdos\command.com /c dir c:\*.*
    REM Auch der Aufruf von Batchjobs etc. ist mglich, so da alle Ein-
    REM schrnkungen der CONFIG.SYS Sprache umgangen werden knnen.
    INSTALL=c:\nwdos\command.com /c machwas.bat
    ONERROR = 1 GOTO routine1
    ONERROR = 2 GOTO routine2


   ber undokumentierte CONFIG.SYS Direktiven (siehe z.B. ONERROR= in
   Kapitel III.1.) ist auch die Abfrage des erweiterten Fehlercodes oder
   Exitcodes nach der Beendigung mglich, womit flexibel auf Sonderzustnde
   eingegangen werden kann. Und da COMMAND.COM beim Befehl EXIT die Angabe
   von Errorleveln erlaubt (siehe Kapitel II.11.), erffnen sich ungeahnte
   Mglichkeiten.

   Es sind sogar Aufrufe wie

    INSTALL=c:\nwdos\mem.exe [parameter]
    INSTALL=c:\nwdos\debug.exe [parameter]
    INSTALL=c:\nwdos\command.com [parameter]

   mglich. Im letzteren Fall wird ein Kommandoprozessor geladen, mit
   dem man ganz normal arbeiten kann. Z.B. ist es hierdurch bedingt
   mglich, das System whrend der CONFIG.SYS zu untersuchen. Beendet
   man den Kommandoprozessor mit EXIT, wird die CONFIG.SYS Datei weiter-
   bearbeitet. Allerdings ist zu beachten, da das Ganze bei COMMAND.COM
   nicht rckwirkungsfrei funktioniert (wohl aber mit 4DOS). CONFIG.SYS
   Einstellungen wie SHELL= oder SET= werden offenbar durch COMMAND.COM
   modifiziert, siehe Kapitel III.1.

   Da per INSTALL= etc. geladene Programme von der Definition her keine
   Gertetreiber sind (auch wenn sie vielleicht gleichwertige Funktionen
   zur Verfgung stellen), bekommen die bis dahin definierte Vorab-Umgebung
   als Umgebung. Wie man hier Speicher sparen kann, ist bei SET= in
   Kapitel III.1. beschrieben.

   Dadurch, da bei DR DOS und Novell DOS die Reihenfolge von INSTALL= etc.
   und DEVICE= etc. Direktiven vllig wahlfrei ist, knnen Sie z.B. auch
   bestimmte Programme *vor* Gertetreibern laden, was unter MS-DOS/PC-DOS
   - zumindest mit Bordmitteln des Betriebssystems - schlichtweg unmglich
   ist. Eine prima Lsung zum Debuggen von Gertetreibern ist es daher,
   im Gertetreiber INT 3 Anweisungen einzustreuen, und vor der DEVICE=
   Zeile einen Debugger wie z.B. Borlands Turbo-Debugger TD.EXE per
   INSTALL= zu laden. Sie knnen dann 'online' durch den Gertetreiber
   tracen, sogar whrend dessen Installationsprozedur...

                                                                             
  ---------------------------------------------------------------------------

  III.6. Hinweise zur Vorab-Umgebung in Verbindung mit 4DOS: [96-06-14]
  =====================================================================

   Stichworte: SET=, COMMAND.COM, 4DOS.COM, SET

   Novell DOS 7 (und DR DOS 6.0) wandeln Vorab-Umgebungsvariablen, die
   innerhalb der CONFIG.SYS mit SET= belegt wurden, nicht in Grobuchstaben
   um, d.h. sie werden so in der Vorab-Umgebung reprsentiert, wie sie
   geschrieben wurden. Auerdem werden smtliche Zeichenketten, die per SET=
   definiert werden, an das Ende der Vorab-Umgebung aufgenommen, auch
   wenn diese keinen Wert enthalten oder bereits belegte Variablen ersetzen
   wrden.

   Wird am Ende der CONFIG.SYS Behandlung COMMAND.COM geladen, so wertet
   der Kommandointerpreter die Vorab-Umgebung aus und baut dabei sein
   Master-Environment auf (siehe Kapitel III.1.). Dabei werden die
   Variablennamen auch in Grobuchstaben umgewandelt. Letzteres geschieht
   bei 4DOS (zumindest bis 5.52a) nicht.

   Normalerweise ist das unkritisch, weil 4DOS bei Variablenexpansionen
   sowohl die Variablennamen in der Umgebung, als auch in der Referenz
   in Grobuchstaben umwandelt, d.h. innerhalb von Batchjobs erkennt man
   keinen Unterschied (die Auflistung per SET zeigt aber sehr wohl den
   Unterschied in der Schreibweise).

   Wenn Programme aber direkt auf die Umgebung zugreifen und dabei nicht
   auch beide Seiten des Vergleichs in Grobuchstaben umwandeln, kann es
   sein, da in CONFIG.SYS definierte Variablen auf DR DOS/Novell DOS-
   Systemen, auf denen 4DOS.COM ohne COMMAND.COM luft, nicht gefunden
   werden.

   Es gibt noch einen weiteren Unterschied: 4DOS (getestet bis 5.52a)
   tastet bezglich der Vorab-Umgebung die DR DOS/Novell DOS internen
   Datenstrukturen nicht an. Sobald COMMAND.COM geladen wird, wird nach
   der Auswertung und bernahme in das Master-Environment die Vorab-
   Umgebung in INT21h/4458h, Offset +12h durch den Wert 0 fr ungltig
   erklrt. 4DOS lt hier den alten Wert stehen, der aber nun ins Leere
   zeigt! Wenn Utilities einen Wert ungleich 0 als Erkennung fr einen
   gltigen Pointer auf eine Vorab-Umgebung auswerten, so wird dies
   meistens zum Absturz des Rechners fhren, wenn 4DOS geladen wurde.
   Solange 4DOS fr dieses Problem noch keinen Fix implementiert hat,
   hilft folgendes Workaround:

   Nachdem 4DOS (ohne zustzliches COMMAND.COM) geladen wurde, sollten Sie
   an den Anfang der AUTOEXEC.BAT folgende Zeile aufnehmen (siehe auch
   Kapitel VII.3.):

    @C:\NWDOS\COMMAND.COM /C EXIT> \dev\nul

   Dadurch wird kurzzeitig COMMAND.COM geladen und patcht einige interne
   Datenstrukturen so, wie dies unter DR DOS/Novell DOS gltig wre. Danach
   gehren diese Probleme unter 4DOS der Vergangenheit an. Mir ist dies
   bisher nur in Verbindung mit der Vorab-Umgebung aufgefallen, es knnte
   aber gut sein, da ein solcher unkritischer Aufruf von COMMAND.COM auch
   einige andere Dinge geradercken kann, die 4DOS aufgrund der Unkenntnis
   der internen Datenstrukturen von Novell DOS/DR DOS nicht korrekt anpat.

                                                                             
  ---------------------------------------------------------------------------

  III.7. Novell DOS Boot-Mens aus der Sicht von MS-DOS: [96-05-31]
  =================================================================

   Stichworte: MENUITEM=, MENUDEFAULT=, INCLUDE=, SUBMENU=, MENUCOLOR=,
               [MENU], [COMMON], DEVICE=, INSTALL=, SWITCH=

   In Kapitel III.1 wurden die bei Novell DOS (und DR DOS 6) mglichen
   CONFIG.SYS Direktiven zur Konstruktion von Boot-Mens bereits ausfhrlich
   beschrieben. (Leider untersttzt Novell DOS 7 selbst mit Update 15 noch
   nicht optional die Boot-Mens im Stil von MS-DOS 6.)

   Zwar sind die Mglichkeiten, die sich ber Novells Boot-Mens bieten, um
   Grenordnungen flexibler als die Mglichkeiten, die MS-DOS hier bietet,
   aber leider ergibt sich auch ein Problem mit vielen Setup-Programmen von
   Anwendungsprogrammen, die diese Boot-Mens ignorieren. Im einfachsten
   Fall wird die CONFIG.SYS einfach nur falsch ausgewertet oder unpassend
   modifiziert, im schlimmsten Fall strzen solche Setup-Programme ab (z.B.
   das Setup-Programm von GMOUSE 10.20...).

   Die sicherste Methode fr solche Flle ist es, eine temporr zu verwen-
   dende CONFIG.SYS Version ohne Boot-Mens bereitzuhalten. Sofern CHAIN=
   mit Ihren Setup-Programmen keine Probleme bereitet, knnen Sie die
   eigentliche Bearbeitung inkl. der Boot-Mens auch auf eine andere
   'CONFIG.SYS' Datei auslagern. Hufig hilft es auch, die [COMMON] Gruppe
   an geeigneter Stelle in der CONFIG.SYS unterzubringen. Im allgemeinen
   halte ich [COMMON] am Ende der CONFIG.SYS fr die beste Wahl.

   Um einen Rechner multibootfhig zu machen, sollte man aber die Struktur
   der Boot-Mens von Novell DOS und MS-DOS mglichst stark angleichen, um
   eine einfache Wartung der beiden 'parallelen' CONFIG.SYS Dateien zu er-
   mglichen. (Dies wird gerade im Zeitalter von MS Windows95 noch wichti-
   ger, damit Novell DOS ber Boot-Manager wie die von OS/2 oder Linux
   (LILO) weiterhin als Alternative neben dem MS-DOS 7 und einem evtl.
   anderen MS-DOS ab 5 bestehen bleiben kann.)
   Dabei geht natrlich ein Groteil der Flexibilitt unter Novell DOS/
   DR DOS verloren, aber hufig ist dies nicht besonders tragisch.

   Zunchst ist anzumerken, da bei MS-DOS/PC-DOS einzelne Abschnitte in
   CONFIG.SYS mit [name] getrennt werden. Findet MS-DOS beim Start keine
   Gruppe mit dem reservierten Namen [MENU] (als Einstiegspunkt), so werden
   die brigen [name] Direktiven ignoriert. Bei Novell DOS ist nur [COMMON]
   vorhanden, andere Gruppennamen mit [name] sind nicht erlaubt.
   Kann man fr Ihre Anwendungsflle alle Menabfragen von Novell DOS an
   den Anfang der CONFIG.SYS-Bearbeitung verschieben (nur dies ist bei
   MS-DOS/PC-DOS mglich), so kann man eine echte Parallelkonstruktion
   vornehmen. Auerdem ist zu beachten, da bei MS-DOS/PC-DOS die Treiber
   per DEVICE= etc. vor denen per INSTALL= etc. geladen werden, auch wenn
   sie in anderer Reihenfolge in CONFIG.SYS stehen (inkl. aller Ver-
   schachtelungsebenen in den einzelnen Gruppen). Wollen Sie hier vllige
   bereinstimmung herstellen, sollten Sie bei Novell DOS zuerst alle
   DEVICE= etc. und dann erst die INSTALL= etc. Direktiven auffhren.
   (Dies ist allerdings eine ziemliche Einschrnkung und bei komplexen
   Konfigurationen sehr unbersichtlich und meistens nicht ntig.)

   Im folgenden werden die Novell DOS Mglichkeiten aus der Sicht von
   MS-DOS/PC-DOS Boot-Mens beleuchtet:


   i. [MENU], [COMMON], MENUITEM=, MENUDEFAULT= :
   ----------------------------------------------

   Ein MS-DOS 6 CONFIG.SYS Boot-Men wie

    [MENU]
    MENUITEM=def, Basiskonfiguration
    MENUITEM=std, Standardkonfiguration
    MENUITEM=min, Minimalkonfiguration
    MENUDEFAULT=def, 10

    [def]
    ...

    [std]
    ...

    [min]
    ...

    [COMMON]

   kann man unter Novell DOS fast 1:1 umsetzen (sollte in beiden Fllen
   direkt am Anfang der CONFIG.SYS stehen, wenn man wirklich die gleichen
   Implikationen nachbilden will, abgesehen von SWITCHES=):

    :[MENU] ist hier nur ein Kommentar...
    CLS
    TIMEOUT=10,N,1
    ECHO = Novell DOS 7 Boot-Konfiguration:
    ECHO = ================================
    ECHO
    ECHO 1 - Default-Konfiguration
    ECHO 2 - Standardkonfiguration
    ECHO 3 - Minimalkonfiguration
    ECHO
    ECHO Bitte drcken Sie die entsprechende Taste (Default-Timeout ...
                                                              ... 10sec) ...
    SWITCH [def], [std], [min]
    GOTO common

    :[def]
    SET CONFIG=DEF
    ...
    RETURN

    :[std]
    SET CONFIG=STD
    ...
    RETURN

    :[min]
    SET CONFIG=MIN
    ...
    RETURN

    [COMMON]

   Wie man sieht, wird MENUDEFAULT= mit TIMEOUT= und SWITCH= nachgebildet,
   MENUITEM= entspricht einer Mischung aus ECHO= und SWITCH=. Eine
   Gruppe [name] kann man prinzipiell durch eine Kombination aus RETURN mit
   einer anschlieenden Marke :name oder - je nach Geschmack - :[name]
   nachbilden.

   Die %CONFIG% Variable kann man bei Novell DOS explizit setzen.
   Marken bzw. Gruppennamen sollten brigens nicht lnger als 8 Zeichen
   lang sein, um hier Fehlinterpretationen auszuschlieen.

   Die Gruppe [COMMON] sollte aus verschiedenen Grnden leer bleiben
   und ganz am Ende stehen. Dadurch werden eine Reihe Probleme abgewendet,
   die manche Setup-Programme haben, wenn sie keine Novell DOS Boot-Mens
   verstehen. Fr gemeinsam genutzte Einstellungen bietet sich mit
   INCLUDE= alias GOSUB= eine andere Mglichkeit an, nur sollte die
   Gruppe [COMMON] hierfr nicht verwendet werden (in folgendem Beispiel
   z.B. [basic]).


   ii. INCLUDE= :
   --------------

   Ein INCLUDE= Block bei MS-DOS entspricht im wesentlichen einem GOSUB zu
   einem Abschnitt; bei MS-DOS:

    [name]
    ...
    INCLUDE=basic
    INCLUDE=extra
    ...

    [extra]
    ...

    [basic]
    ...

    [COMMON]

   wird bei Novell DOS zu:

    :[name]
    ...
    GOSUB [basic]
    GOSUB [extra]
    ...
    RETURN

    :[extra]
    ...
    RETURN

    :[basic]
    ...
    RETURN

    [COMMON]

   Ich empfehle, die diesbezglichen Blcke erst *nach* den Blcken anzu-
   ordnen, die sich mit der Verzweigung der Boot-Mens befassen (s.u.), und
   dabei Blcke wie Speichermanager, Festplattenkonfiguration, serielle
   Schnittstellen, Video-Konfiguration zu unterscheiden.


   iii. SUBMENU= :
   ---------------

   Die Nachkonstruktion von SUBMENU= geschieht wie bei MENUITEM= durch ECHO=
   und SWITCH=, nur da der angesprungene Block selbst wieder ein neues Men
   mit CLS=, ECHO= und SWITCH= aufbaut. Dabei sollte dieses Men unmittelbar
   am Anfang dieses Blocks stehen, damit die Logik identisch zu MS-DOS ist.
   Angenommen, in obigem Beispiel wrde die Standardkonfiguration durch
   ein Untermen ersetzt werden, so wrde dies bei MS-DOS wie folgt aus-
   sehen:

    [MENU]
    MENUITEM=def, Basiskonfiguration
    SUBMENU =std, Standardkonfigurationen
    MENUITEM=min, Minimalkonfiguration
    MENUDEFAULT=def, 10

    [def]
    ...

    [std]
    MENUITEM=cfg1, Konfiguration 1
    MENUITEM=cfg2, Konfiguration 2

    [cfg1]
    ...

    [cfg2]
    ...

    [min]
    ...

    [COMMON]

   Bei Novell DOS wrde daraus ein Men wie folgt:

    :[MENU] ist hier nur ein Kommentar...
    CLS
    TIMEOUT=10,N,1
    ECHO = Novell DOS 7 Boot-Konfiguration:
    ECHO = ================================
    ECHO
    ECHO 1 - Default-Konfiguration
    ECHO 2 - Standardkonfigurationen
    ECHO 3 - Minimalkonfiguration
    ECHO
    ECHO Bitte drcken Sie die entsprechende Taste (Default-Timeout ...
                                                              ... 10sec) ...
    SWITCH [def], [std], [min]
    GOTO common

    :[def]
    SET CONFIG=DEF
    ...
    RETURN

    :[std]
    CLS
    ECHO = Novell DOS 7 Standard-Konfigurationen:
    ECHO = ======================================
    ECHO
    ECHO 1 - Konfiguration 1
    ECHO 2 - Konfiguration 2
    ECHO
    ECHO Bitte drcken Sie die entsprechende Taste (Default-Timeout ...
                                                              ... 10sec) ...
    SWITCH [cfg1], [cfg2]
    RETURN

    :[cfg1]
    SET CONFIG=CFG1
    ...
    RETURN

    :[cfg2]
    SET CONFIG=CFG2
    ...
    RETURN

    :[min]
    SET CONFIG=MIN
    ...
    RETURN

    [COMMON]


   iv. MENUCOLOR= :
   ----------------

   MS-DOS/PC-DOS MENUCOLOR=x[,y] kann man nicht ohne weiteres nachbilden
   (vielleicht mit einem per INSTALL= geladenen Utility, das die Farbe
   umstellt), aber dies ist auch wirklich reiner Schnickschnack.

                                                                             
  ###########################################################################
  ###########################################################################

  IV. AUTOEXEC.BAT UND BATCHJOBS:
  ===============================

  ---------------------------------------------------------------------------

  IV.1. Bug in ECHO. (Bug behoben - getestet 11/1994):
  ====================================================

   Stichworte: ECHO., Linefeed, Wagenrcklauf, MS-DOS, DATE, Updates

   Bei der Programmierung von Batchjobs ist bei frhen Versionen von
   Novell DOS folgendes Problem aufgetaucht.
   Der ECHO-Befehl erzeugt in der Spezial-Syntax 'ECHO.' eine Leerzeile.
   Leider weicht das exakte Verhalten bei Novell DOS 7 in diesem Fall
   geringfgig vom Standard ab, was aber groe Auswirkungen haben kann:

   Statt der Zeichenfolge $0A $0D (fr Linefeed/Wagenrcklauf), die bei
   MS-DOS blich ist (oder $0D $0A wie bei NDOS der Norton Utilities),
   wird hier die Zeichenfolge $20 $0D $0A (d.h. ein zustzliches Leerfeld)
   abgeschickt. (Nachbemerkung: Auf einem MS-DOS 6.22 System wurde ebenfalls
   ein $20 vorangestellt - trotzdem ist dies wohl nicht reprsentativ und
   sollte nicht vorausgesetzt werden. Nheres wurde nicht untersucht.)

   Dies fhrt bei manchen Batchjobs, die 'ECHO.' als Eingabeumleitung in ein
   Programm verwenden, zu Fehlverhalten oder sogar zum Hngen des Prozesses:

   Ein Beispiel fr MS-DOS und NDOS (nicht NWDOS!):

    ...
    ECHO. | DATE > protokol.dat
    ...

   Der DATE-Befehl bekommt das gewnschte RETURN und die Bearbeitung wird
   ordnungsgem fortgesetzt. In PROTOKOL.DAT steht das aktuelle Datum.

   Bei NWDOS fhrt das obige Beispiel zum Aufhngen des Rechners, und kann
   auf normale Weise auch nicht beendet werden: Der DATE-Befehl wertet das
   zustzliche Leerzeichen als eine Fehleingabe und erwartet nun aus der
   Umleitung (d.h. nicht von der Tastatur) ein gltiges Datum. Der DATE-
   Befehl kommt briges gleichermaen mit der Zeichenfolge $0D $0A wie
   auch $0A $0D zurecht, nur nicht mit dem zustzlichen $20. Bei NDOS
   ergibt sich allerdings ein hnliches Problem nicht, da hier der DATE-/
   TIME-Befehl intern definiert ist und damit den internen Befehl eines
   evtl. darunter geladenen COMMAND.COM ersetzt.

   Abhilfe fr NWDOS:

   a) Eine Datei ECHO_.INP erzeugen, die NUR die Zeichenfolge $0A $0D
      (also LineFeed/Carriage Return) enthlt.
      DATE < echo_.inp > protokoll.dat

   b) Ein kleines Utility schreiben, das nur die Zeichenfolge $0A $0D
      ausgibt und dieses statt ECHO. verwenden (z.B. ECHO_.EXE).

   Ein Test mit dem Update 8 zu Novell DOS zeigte, da dieser Bug mittler-
   weile behoben wurde, Novell DOS verhlt sich jetzt konform und liefert
   nur noch die Folge $0D $0A. Ab welcher Update-Release dieser Bug behoben
   wurde, wurde im nachhinein nicht mehr berprft.

                                                                             
  ---------------------------------------------------------------------------

  IV.2. Fehler bei Abfrage von Variablen, die mehrere Parameter enthalten:
  ========================================================================
                                          (Bug behoben - getestet 02/1995)

   Stichworte: MS-DOS, Batchjobs, Updates, Parameterbergabe

   Bei MS-DOS sind in Batchjobs Abfragen der folgenden Form mglich:

    SET test=param1 param2 param3
    IF NOT ""=="%test%" ECHO Test ist definiert!

   Bei frhen Versionen von Novell DOS fhrt diese Anweisung meistens zu
   einem Syntax-Fehler:

   Solange TEST nur einen Parameter (d.h. keine Leerfelder) enthlt,
   funktioniert alles wie gewohnt. Wenn der Wert aber aus mehreren Wrtern
   besteht, erscheint der Syntax-Fehler oder die Meldung 'Kommando- oder
   Dateiname nicht erkannt'. Novell DOS interpretiert diese Zeile anders
   und wertet einen Teil des Wertes bereits als Anweisung aus.
   Ein hnliches Verhalten ist teilweise brigens auch beim Batch-Prozessor
   von MS-DOS 6.0/6.2 erkennbar, trotzdem ergibt sich dadurch keine sinn-
   volle Anwendung (siehe MSDOSTIP.TXT).
   Wenn paramX aus Zahlen besteht, so wird dies u.U. von Novell DOS
   akzeptiert, wenn es auch zu einer falschen Funktion fhrt.

   Die einfachste Abhilfe ergibt sich durch Umstellen der Bedingung, so
   da kein NOT mehr vorkommt. Auerdem mu die Bedingung u.U. so gedreht
   werden, da '""==' vorne steht:

    SET test=param1 param2 param3
    IF ""=="%test%" GOTO skip
    ECHO Test ist definiert!
    :skip

   Mit dem Update 11 zu Novell DOS (das alle bisherigen Fixes vereint)
   wurde das Verhalten erneut untersucht. Mittlerweile hat sich die Aus-
   wertung des SET-Kommandos diesbezglich gendert (siehe HISTORY.TXT
   im Update), so da die Probleme nun nicht mehr auftauchen.

                                                                             
  ---------------------------------------------------------------------------

  IV.3. Abfrage von geladenen Gertetreibern aus Batchjobs: [96-10-30]
  ====================================================================

   Stichworte: Batchjobs, Gertetreiber, Zeichentreiber, Blocktreiber,
               IF EXIST, IF DIREXIST, AVAILDEV, \DEV\, Unix

   Hufig steht man in Batchjobs vor dem Problem, da man bestimmte Gerte-
   treiber als Voraussetzung fr eine Anwendung bentigt, z.B. Maustreiber,
   Speichermanager oder Treiber fr spezielle serielle Karten.

   Bisher mute man dann einfach alle Treiber aufrufen, was verschiedene
   Nachteile hat:
   - evtl. werden bereits eingestellte Optionen wieder zurckgesetzt
   - evtl. wird ein Treiber mehrfach geladen, wenn kein Schutzmechanismus
     eingebaut ist
   - es kann zu Treiberkonflikten aufgrund der Reihenfolge des Ladens kommen
   - kostet Bearbeitungszeit
   usw.

   Zumindest bei Novell DOS 7 gibt es eine Mglichkeit, in einem Batchjob
   die Existenz eines geladenen Gertetreibers abzufragen und davon abhngig
   Entscheidungen zu treffen: Damit kann man die oben angedeuteten Probleme
   komfortabel umgehen.

   Man mu zwei Sorten von Gertetreibern unterscheiden: Zeichentreiber und
   Blocktreiber. Systemtreiber sind zwar keine Zeichentreiber, haben aber
   ebenfalls ihr Format.

   Zeichengertetreiber (ob fr vordefinierte Gerte wie CON, PRN, LPT1,
   LPT2, LPT3, AUX, COM1, COM2, COM3, COM4) oder fr spezielle Gerte wie
   Muse (PC$MOUSE) etc. und Blocktreiber (fr zustzliche Laufwerke) werden
   hnlich wie Programme im Speicher verankert und von DOS verwaltet.
   Allgemein bekannt ist auch, da sich auf DOS-Kommandoebene logische
   Gerte vom Typ Zeichentreiber fast wie Dateien verwenden lassen, etwa
   COPY a:\text.txt PRN: etc.

   Aus diesen Grnden ist es auch naheliegend, solche Gerte hnlich wie
   Dateien abzufragen.

   Fr Dateien gilt:

    IF EXIST path\filename ECHO Datei 'path\file' vorhanden!

   Fr logische Gerte vom Typ Zeichentreiber gilt:

    IF EXIST device ECHO Gertetreiber fr 'device' vorhanden!

    wobei 'device' das zu berprfende Gert angibt (dies funktioniert
    auch unter 4DOS (zumindest auf einem Novell DOS 7 System), trotzdem
    sollte man noch eine Sonderbehandlung einbauen, s.u.).

   Das knnen z.B. folgende sein (\dev\ kann immer vorangestellt werden):

    NUL       Null-Device (liefert als Eingabe immer EOF und als Ausgabe
              schluckt es alle Informationen auf Nimmerwiedersehen).
              Im Gegensatz zu den anderen Gerten in IBMDOS.COM definiert.
    CON       Konsole (Ein- und Ausgabe, siehe CTTY Kommando in Kapitel
              II.11.), in IBMBIO.COM definiert.
    PRN       Standarddrucker (i. allg. = LPT1), in IBMBIO.COM definiert.
    LPT1      Drucker 1 (Gert an erstem parallelem Port).
              blicherweise in der sortierten Reihenfolge 3BCh, 378h und
              278h, in IBMBIO.COM definiert.
    LPT2      Drucker 2 (Gert an zweitem parallelen Port),
              in IBMBIO.COM definiert.
    LPT3      Drucker 3 (Gert an drittem parallelen Port),
              in IBMBIO.COM definiert.
    AUX       Standard-Kommunikationsgert (i. allg. = COM1),
              in IBMBIO.COM definiert.
    COM1      Serielle Schnittstelle 1 (blich ist 3F8h),
              in IBMBIO.COM definiert.
    COM2      Serielle Schnittstelle 2 (blich ist 2F8h)
              in IBMBIO.COM definiert.
    COM3      Serielle Schnittstelle 3 (blich ist 3E8h),
              in IBMBIO.COM definiert.
    COM4      Serielle Schnittstelle 4 (blich ist 2E8h),
              in IBMBIO.COM definiert.

   Aber es gibt noch viele andere logische Gerte, die man abtesten kann.
   Hier kommen insbesondere per DEVICE geladene Programme in Frage und vor
   allem Systemtreiber, die sich i. allg. als Zeichentreiber ausgeben,
   obwohl sie keine sind (auf sie kann nicht geschrieben, von ihnen nicht
   gelesen werden, d.h. die DOS-Umleitung auf solche Gerte funktioniert
   nicht).

   Ein paar relativ weitverbreitete Beispiele:

    CLOCK$    Interne Uhr
    IDLE$     Dynamische Wartezeiterkennung von TASKMGR (Novell DOS 7),
              war auch schon bei DR DOS 5.0+ vorbereitet, wurde aber von
              deren Speichermanagern und DR DOS 6.0 TASKMAX nicht
              aktiviert. Wenn der TASKMGR als Multitasker luft, kann
              die Idle-Erkennung mit dem COMMAND.COM internen Kommando
              IDLE ON|OFF ein- oder ausgeschaltet werden.
    $SECURE$  SECURITY.SYS bei Novell DOS 7
    RPL       Remote-Program-Loader fr das Booten von einem NetWare-Server
              (auch PNW), ohne da der Client-Rechner mit eigenen Laufwerken
              ausgestatten sein mte. Die Netzadapterkarte bentigt dafr
              ein spezielles Boot-PROM.
    LPT4      vierter Drucker, untersttzt von CCI Multiuser DOS 7.22 Gold
    AUX?      serielle Ports, untersttzt von CCI Multiuser DOS 7.22 Gold

    XMSXXXX0  Extended Memory Manager (XMS) (HIMEM)
    EMMXXXX0  Expanded Memory Manager (EMS/EMM) (EMM386/EMMXMA)
    EMM$$$$$  ""
    QMMXXXX0  Quarterdeck Memory Manager
    QEXTXXX0  Quarterdeck Extended Memory Manager
    QEMM386$  Quarterdeck 386 Memory Manager
    $MMXXXX0  MM-Speichermanager
    386MAX$$  386Max-Speichermanager
    EMMQXXX0  Expanded Memory Manager (EMS/EMM), nicht aktiv
    EMMXXXQ0  Expanded Memory Manager (EMS/EMM), nicht aktiv
    EXTXXX@   manchmal: 'rohes' Extended Memory ber INT15h??? (NWCACHE)
    VCPIXXX0  VCPI-Manager (EMM386/HIMEM/THREADS.SYS)
    DPMIXXX0  DPMI-Server (EMM386/HIMEM/DPMI.SYS)
    QDPMI$$$  DPMI-Server (QEMM 386)
    DPMSXXX0  DPMS-Server, falls per DEVICE= geladen (Novell EMM386, DPMS)
              (nicht, wenn durch CLOAKING.EXE bereitgestellt)
    CLOAK$$$  Helix CLOAKING-Server (CLOAKING.EXE)
    HMALDSYS  Helix HMA-Lader
    $SIZER$   Helix Treiber zur Ermittlung der Programmgre
    VMXXXXX0  VM-Manager (MS Windows/TASKMGR ?)
    HOOKROM$  Quarterdeck QEMM HOOKROM-Treiber
    KSP$UMM   Key Softwares Memory Manager
    LA$TBYTE  Key Softwares "The Last Byte"

    SETVERX0
    SETVERXX  durch SETVER.EXE

    PC$MOUSE  Mouse Systems Maustreiber ("PC", 3-Tasten-Maus, etc.)
    MS$MOUSE  Microsoft Maustreiber (manchmal jedoch auch PC$MOUSE)
    TC$MOUSE  Logitech Maustreiber (meist jedoch auch PC$MOUSE)
    gmouse    Genius Maustreiber (meist jedoch auch PC$MOUSE)

    IFS$HLP$  Installable File System Hilfstreiber (auch WfW)
              (MS Windows95/MS-DOS 7 Long-Filename-Support: IFSHLP.SYS)
    NET$HLP$  Diverse Netztreiber (TCP/IP, WfW, usw.)
    @!NETW!@  Novell NetWare Treiber
    PROTMAN$  Microsoft LAN Manager

    MSCD001   Default-Name fr erstes CD-ROM-Laufwerk
    OEMCD001  Default-Name fr einige CD-ROM-Treiber
    CDROM     Sony CD-ROM Erweiterungen

    SMARTAAR  SMARTDrive Disk-Cache
    _doubleB  SMARTDrive Double Buffer Treiber
    CACHCMPQ  Compaq Disk Disk-Cache
    CACHE$$$  HyperDisk Disk-Cache
    $$$CACHE  IBM Disk-Cache
    _Cache__  PC Chips Hard Disk-Cache
    CACHE__Q  Datamorphics Disk-Cache
    @CACHE-X  Norton Cache
    @CACHE-F  Norton Cache (Schnell)
    @CACHE-S  Norton Cache (Klein)

    $ADDSTOR  SuperStor Disk-Kompressor
    DBLSSYS$  DoubleSpace Disk-Kompressor
    DBLSYSH$  MS-DOS Doublespace/Drivespace Hilfstreiber

    SCSITAPE  Seagate ST-01 Treiber (Brian Antoine)
    rocket    Ontrack IDE-Festplattenbeschleuniger
    VGA-Read  Public-Domain-Treiber VGAREAD.EXE (falls per DEVICE=/
              DEVICEHIGH= geladen) zum Lesen hherer Diskettenformate
              (VGACOPY)

    EGA$      Microsofts EGA.SYS Treiber
    MONODISP  CON-Bildschirmtreiber fr MDA-/HGC-Monitor
              (Zweimonitorsysteme)
    MONO      (MONO.SYS/DUALMON.SYS)
    CO80DISP  CON-Bildschirmtreiber fr Farbmonitor (Zweimonitorsysteme)
    COLOR     (COLOR.SYS/DUALMON.SYS)

    KBD$BUF$  K3PLUS.SYS/.COM bzw. FreeKEYB-Tastaturtreiber mit erweitertem
              Tastaturpuffer sowie MS-DOS Dummy: KBDBUF.SYS
    K3PLUS$   ltere K3PLUS.SYS Versionen
    CPQKEYB   Compaq Tastaturtreiber
    4DOSSTAK  4DOS erweiterter Tastaturpuffer
    NDOSSTAK  NDOS erweiterter Tastaturpuffer

    TDHDEBUG  Borland Turbo Debugger
    SOFTICE   Debugger
    NU-MEGA   NuMega CodeView Magic
    SYSLOAD   Periscope Debugger

   Um an die Gertenamen zu kommen (die von den Dateinamen der Gerte-
   treiber abweichen knnen), kann man z.B. MEM /I aufrufen.

   Blocktreiber (z.B. RAMDRIVE, TurboDSK, MSCDEX, NWCDEX etc.) haben
   i. allg. keinen Namen, ihnen wird stattdessen ein Laufwerk zugeordnet.

   Zwei Beispiele fr Zeichentreiber:

    a) NWCDEX nur laden, wenn in CONFIG.SYS auch ein Hardware-Treiber fr
       CD-ROM eingebunden wurde.

    REM Das \dev\ ist unter heutigen DOS-Versionen optional:
    IF "%@Eval[2 + 2]%"=="4" IF "%@Device[\dev\MSCD001]%"=="0" GOTO no_cd
    IF NOT EXIST \dev\MSCD001 GOTO no_cd
    @LH NWCDEX /d:MSCD001 /m:32 /l:h
    :no_cd

    b) Eine Warnung ausgeben, wenn ein fr eine Anwendung ntiger Speicher-
       manager nicht geladen ist (Pseudo-Zeichentreiber).

    REM Das \dev\ ist unter heutigen DOS-Versionen optional:
    IF "%@Eval[2 + 2]%"=="4" IF "%@Device[\dev\EMMXXXX0]%"=="0" GOTO error
    IF NOT EXIST \dev\EMMXXXX0 GOTO error
    REM Anwendung starten (Anwendung bentigt EMS-Speicher)
    anwendung
    GOTO end
    :error
    ECHO Leider kein EMM-Speichermanager geladen, daher kein EMS-Speicher
    ECHO verfgbar.
    ECHO Verwenden Sie z.B. DEVICE=EMM386.EXE in CONFIG.SYS, um passenden
    ECHO Treiber zu laden.
    :end

   Solange es um logische Laufwerke (Blocktreiber) geht, wird man die
   Existenz hufig mit z.B.

    IF DIREXIST f:\ ECHO Laufwerk vorhanden! (nur bei Novell DOS und
                                             4DOS 5.5+) auch Netzlaufwerke!
    IF EXIST f:\nul ECHO Laufwerk vorhanden! (auch bei MS/PC-DOS, sowie
                                             nach meinen Erfahrungen auch
                                             bei Novell DOS 7, jedoch nicht
                                             bei spten Versionen von
                                             DR DOS 6.0)

   abtesten, sollten jedoch unformatierte (aber vorhandene) Laufwerke auf
   diese Art und Weise angesprochen nicht werden (z.B. TurboDSK mit
   Laufwerksgre 0 oder Treiber, deren Spezialgerte noch nicht initia-
   lisiert sind), wrde eine Fehlermeldung erscheinen. Leider scheint es
   in diesem Fall keine Ausweichmglichkeit zu geben, auer wenn man fr
   jeden solchen Blocktreiber zustzlich noch einen Zeichentreiber mit
   einem entsprechenden Namen laden wrde. Unter 4DOS kann man auch
   IF ISDIR f:\ ... verwenden. Eine andere Methode, die Existenz von
   Verzeichnissen abzutesten, wird in Kapitel IV.6. angedeutet.

   In frheren DOS-Versionen gab es eine Mglichkeit, zwischen der
   obigen laxen Form und einer schrferen Methode zu unterscheiden
   (INT21h/3702h und INT21h/3703h 'AVAILDEV'). Heutzutage wird i. allg.
   nur noch die laxe Form untersttzt, d.h. Gerte liegen 'virtuell'
   in jedem Verzeichnis. Ansonsten mssen Sie dem Gertenamen noch
   \DEV\ (analog zu Unix) voranstellen, um darauf umzuleiten oder um
   dessen Existenz zu berprfen.

                                                                             
  ---------------------------------------------------------------------------

  IV.4. Novell DOS Kompatibilitt unter 4DOS erhhen: [97-02-22]
  ==============================================================

   Stichworte: Batchjobs, 4DOS, NDOS, Kompatibilitt

   Dieses Kapitel beschreibt verschiedene Tips und Tricks, die angebracht
   sind, wenn man Batchjobs nicht nur fr ein Betriebssystem schreiben
   will, aber trotzdem nach Mglichkeit auch erweiterte Fhigkeiten etwa
   von Novell DOS oder 4DOS nutzen mchte.

   hnliche Hinweise sind an den entsprechenden Stellen ber das ganze
   Dokument verstreut zu finden und werden dort im jeweiligen Zusammenhang
   motiviert und diskutiert. Hier wird eine Zusammenfassung dieser Mglich-
   keiten gegeben. Wird der folgende Beispiel-Batchjob (der an eigene Be-
   drfnisse angepat werden mu) in die Behandlung von AUTOEXEC.BAT ein-
   gebunden, werden einige Umgebungsvariablen und Aliase gesetzt, die unter
   4DOS fehlende Kommandos von Novells COMMAND.COM ersetzen, bersetzen
   oder zugnglich machen. Gleichzeitig wird auch noch DR DOS und MS-DOS
   supportet (%Ver% mu manuell gesetzt werden, vgl. Kapitel IV.7.).

   Beispiel:

   4DOSCOMP.BAT:

    @ ECHO off > \dev\nul
      ECHO off > \dev\nul
      IF NOT ""=="%batdbg%" ECHO %batdbg%
      IF NOT "4"=="%@Eval[2 + 2]%" GOTO end
      LOADBTM on

      REM DR DOS compatibility: --------------------------------------------
      IF "DRMDOS"=="%Os%" GOTO drmdos
      IF "MDOS"=="%Os%" GOTO drmdos
      IF NOT "DRDOS"=="%Os%" GOTO nwdos7
      REM This check does not work, if %Ver% is not set manually!!
      IF NOT "3.41"=="%Ver%" IF NOT "5.0"=="%Ver%" GOTO drdos6

      ALIAS ASSIGN `c:\drdos\COMMAND.COM /C ASSIGN %&`
      ALIAS JOIN `c:\drdos\COMMAND.COM /C JOIN %&`
      ALIAS MORE `c:\drdos\COMMAND.COM /C MORE %&`
      ALIAS SUBST `c:\drdos\COMMAND.COM /C SUBST %&`
      ALIAS DRHELP `c:\drdos\DOSBOOK.EXE %&`
      GOTO drdos

      :drdos6
      ALIAS DRHELP `c:\drdos\DOSBOOK.EXE %&`
      GOTO drdos

      :drmdos
      REM Dummy for DR Multiuser DOS 5.1 (%Ver%=5.1, %Os%=DRMDOS) or
      REM CCI Multiuser DOS 7 (%Ver%=7.xx, %Os%=MDOS), just to
      REM show how to handle this...

      :drdos
      ALIAS DBG `c:\drdos\COMMAND.COM /C DBG %&`
      ALIAS IDLE `c:\drdos\COMMAND.COM /C IDLE %&`
      ALIAS DELTREE `*IFF NOT "%@Index[%&,/?]%" == "-1" THEN %+ *ECHOS ...
            ... "DEL /SX %&" %+ *DEL /? %& %+ ELSE %+ *DEL /SX %& %+ ENDIFF`
      ALIAS LOADFIX `MEMMAX -L>& \dev\nul %+ %& %+ MEMMAX +L>& \dev\nul`

      :nwdos7
      REM Novell DOS compatibility: ----------------------------------------
      IF NOT "NWDOS"=="%Os%" GOTO opendos

      ALIAS NWHELP `c:\nwdos\DOSBOOK.EXE %&`
      ALIAS TM `TASKMGR /F /C %ComSpec% /C %&`
      ALIAS IDLE `c:\nwdos\command.com /C IDLE %&`
      ALIAS DELTREE `*IFF NOT "%@Index[%&,/?]%" == "-1" THEN %+ *ECHOS ...
            ... "DEL /SX %&" %+ *DEL /? %& %+ ELSE %+ *DEL /SX %& %+ ENDIFF`
      IF NOT "%_4Ver%"=="5.51" IF NOT "%_4Ver%"=="5,51" GOTO no4dos551
      REM Avoiding a bug with 4DOS 5.51 (not with 4DOS 5.5a/b/c nor ...
                                                            ... 4DOS 5.52a):
      REM Won't always work :-(
      ALIAS MEMMAX `c:\nwdos\COMMAND.COM /C c:\nwdos\MEMMAX %&`
      :no4dos551
      ALIAS LOADFIX `MEMMAX -L>& \dev\nul %+ %& %+ MEMMAX +L>& \dev\nul`

      :opendos
      REM Caldera OpenDOS compatibility: -----------------------------------
      IF NOT "OPENDOS"=="%Os%" GOTO msdos

      ALIAS CAHELP `c:\nwdos\DOSBOOK.EXE %&`
      ALIAS TM `TASKMGR /F /C %ComSpec% /C %&`
      ALIAS IDLE `c:\opendos\command.com /C IDLE %&`
      ALIAS DELTREE `*IFF NOT "%@Index[%&,/?]%" == "-1" THEN %+ *ECHOS ...
            ... "DEL /SX %&" %+ *DEL /? %& %+ ELSE %+ *DEL /SX %& %+ ENDIFF`
      IF NOT "%_4Ver%"=="5.51" IF NOT "%_4Ver%"=="5,51" GOTO no4dos551
      REM Avoiding a bug with 4DOS 5.51 (not with 4DOS 5.5a/b/c nor ...
                                                            ... 4DOS 5.52a):
      REM Won't always work :-(
      ALIAS MEMMAX `c:\opendos\COMMAND.COM /C c:\opendos\MEMMAX %&`
      :no4dos551
      ALIAS LOADFIX `MEMMAX -L>& \dev\nul %+ %& %+ MEMMAX +L>& \dev\nul`

      :msdos
      REM MS-DOS compatibility aliases: ------------------------------------
      IF "DRDOS"=="%Os%" GOTO all
      IF "NWDOS"=="%Os%" GOTO all
      IF "OPENDOS"=="%Os%" GOTO all

      ALIAS MSHELP `c:\dos\help.com %&`
      ALIAS SEL `c:\dos\select.exe %&`
      ALIAS APP `c:\dos\command /C APPEND`
      REM Simulate DR DOS/Novell DOS RENDIR
      ALIAS RENDIR `*IFF NOT "%@Index[%&,/?]%" == "-1" THEN %+ ECHOS ...
              ... "REN /S %&" %+ *REN /? %& %+ ELSE %+ *REN /S %& %+ ENDIFF`

      :all
      REM For better access to help systems: -------------------------------
      ALIAS 4DHELP *HELP
      ALIAS NDHELP *HELP

      REM For 1DIR+ compatibility: -----------------------------------------
      ALIAS 1DIR `SETDOS /l1 %+ 1DIRPLUS`
      ALIAS 1D 1DIR
      ALIAS 1E `SETDOS /l0`

      REM For generally DR DOS/Novell DOS batchjob backward compatibility: -
      REM DR DOS 3.41 undocumented BATCH command (guess):
      ALIAS BATCH = %%&
      REM DR DOS 5.0+/Novell DOS Erase commands:
      ALIAS ERA ERASE
      ALIAS DELQ `*IFF NOT "%@Index[%&,/?]%" == "-1" THEN %+ ECHOS "DEL ...
                   ... /P %&" %+ *DEL /? %& %+ ELSE %+ *DEL /P %& %+ ENDIFF`
      ALIAS ERAQ DELQ
      REM DR DOS 6.0 undocumented error output handling:
      ALIAS ECHOERR `(ECHO %&)>&> \dev\con:`
      ALIAS PAUSEERR `(PAUSE %&)>&> \dev\con:`
      ALIAS HILOAD LH
      REM Fix for Novell DOS/DR DOS "AND" (but may replace message ...
                                                           ... strings, too)
      ALIAS AND IF
      REM No fix for Novell DOS/DR DOS "OR" possible.
      ALIAS SWITCH `*INKEY /D %%choice %+ *GOSUB ...
                        ... %@Word[%@Eval[%choice%-1]%,%&]% %+ *SET choice=`

      REM Misc -------------------------------------------------------------
      SET ;=;
      REM Workaround for 4DOS 5.51/5.52a TYPE bug with passwords
      IF "5.51"=="%_4Ver%" ALIAS TYPE `COMMAND /C TYPE %&`
      IF "5,51"=="%_4Ver%" ALIAS TYPE `COMMAND /C TYPE %&`
      IF "5.52"=="%_4Ver%" ALIAS TYPE `COMMAND /C TYPE %&`
      IF "5,52"=="%_4Ver%" ALIAS TYPE `COMMAND /C TYPE %&`
      :end

                                                                             
  ---------------------------------------------------------------------------

  IV.5. MEM /FREE und /MODULE bei Novell DOS nachrsten: [96-07-14]
  =================================================================

   Stichworte: MEM, Internationale Batchjob, Greeting_Time

   In Kapitel II.4. wird beschrieben, da Novell DOS' MEM Befehl die
   von MS-DOS bekannten Optionen /FREE und /MODULE=<name> fehlen, obwohl
   Novell DOS 7 ab Update 14 UMB-Memory-Regions untersttzt. Die fehlenden
   Parameter kann man aber mit dem beiliegenden Batchjob leicht nachrsten
   (lediglich die Syntax von /MODULE=<name> ist leicht eingeschrnkt, denn
   zwischen /MODULE und <name> mu ein Leerfeld vorkommen).

   Nebenbei bietet dieser Wrapper auch noch zwei neue Parameter, nmlich
   /REGION zum Auflisten der einzelnen UMB-Regionen und /VECTORS zum Auf-
   listen der Interrupt-Belegung, wobei noch verschiedene Kriterien ange-
   geben werden knnen. Gleichzeitig ist dieser Batchjob auch ein Beispiel
   fr die 'hhere Kunst der Programmierung von Batchjobs' und deshalb
   nehmen viele Passagen in diesem Dokument auch aus anderen Grnden auf
   bestimmte Features in diesem Beispiel Bezug, z.B. Erkennung des aktuellen
   SwitChars, Erkennung des DOS-Kernels, Erkennung des Kommandoprozessors,
   Erkennung der Landessprache...

   MEM.BAT:

    > Aufgrund der Lnge dieses Batchjobs wird dieser Batchjob nun nur  <
    > noch als eigenstndige Datei MEM.BAT im Paket mitgeliefert.       <

                                                                             
  ---------------------------------------------------------------------------

  IV.6. Batchjobs und Umleitungen: [97-04-23]
  ===========================================

   Stichworte: MEM.BAT, FIND, SORT, MORE, DEL *.*, DATE, TIME, %Temp%,
               spezielle Steuerzeichen, temporre Dateien

   - Unter Novell DOS 7 COMMAND.COM ist es mglich, die Ein- und Ausgabe-
     umleitung nicht nur fr einzelne Kommandos, sondern auch fr ganze
     Batchjobs zu verwenden (DR DOS 6.0 COMMAND.COM bot diese Mglichkeit
     wohl noch nicht).
     Ein Beispiel hierfr gibt der Batchjob MEM.BAT aus dem Kapitel IV.5.
     Allerdings mu man beachten, da dies nur solange funktioniert, wie
     innerhalb des Batchjobs keine weiteren Umleitungen und Pipes ver-
     wendet werden, da diese ignoriert werden (Wieso eine Umleitung auf
     das Null-Device \dev\nul offenbar nicht strt, ist mir noch nicht
     ganz klar). 4DOS.COM kann hier natrlich wesentlich mehr, denn dort
     sind Umleitungen beliebig verschachtelbar...

     Andererseits kann man fr diese Zwecke manchmal auch das Kommando
     CTTY verwenden (siehe Kapitel II.11.) und damit sogar die Ausgabe
     von AUTOEXEC.BAT 'umleiten'.

   - Novells COMMAND.COM (getestet mit Update 15) bietet in Verbindung
     mit Umleitungen eine ganze Reihe undokumentierter Mglichkeiten, die
     Parameter in der Kommandozeile anzuordnen. Normalerweise geht man
     davon aus, da die Parameter zu einem Kommando, evtl. gefolgt von
     einer Umleitung, unmittelbar nach dem Kommando stehen mssen. Dem
     ist aber nicht notwendigerweise so:
     Ein- und Ausgabeumleitungen ('>', '>>' und '<') werden von einem
     Dateinamen gefolgt (evtl. noch von einem Pawort) und sind damit
     eindeutig bestimmt. Deshalb kann man dieses Konstrukt an beliebiger
     Stelle anordnen, ohne da es Probleme mit der Erkennung der Umleitung
     geben wrde, auch in gemischter Reihenfolge mit den Parametern des
     Kommandos:

      DIR > dummy.txt *.* /W
      DIR *.* > dummy.txt /W
      > dummy.txt DIR *.* /W

     entsprechen also alle dem blicheren

      DIR *.* /W > dummy.txt

     Das Pipe-Symbol ('|') kann hiermit allerdings nicht berwunden
     werden und dient (auch) als Trenner zwischen Kommandos (vgl. auch
     Kapitel II.11.). Glcklicherweise akzeptiert auch 4DOS (5.52a)
     diese gemischte Anordnung von Parametern und Umleitungen (und auch
     MS-DOS und PC-DOS COMMAND.COM sollen diese Varianten untersttzen,
     verifiziert habe ich das jedoch noch nicht). Fr OS/2 CMD ist diese
     Syntax mit leicht erweiterter Semantik besonders in bedingungsab-
     hngigen Anweisungen verwendbar.

   - Es ist brigens bei Novells COMMAND.COM (offenbar ebenfalls aus
     Grnden syntaktischer Kompatibilitt zu OS/2 CMD) mglich, eine
     Dummy-Umleitung zu verwenden:

      DIR *.* > dummy1.lst > dummy2.lst
      DIR *.* >> dummy1.lst > dummy2.lst
      DIR *.* > dummy1.lst | MORE

     Die in diesen Beispielen verwendete Datei DUMMY1.LST wird ignoriert,
     d.h. sie wird weder angetastet noch erzeugt, auch nicht als temporre
     Zwischendatei (der Name fr diese Zwischendatei wrde vom Betriebs-
     system selbst gewhlt)! In Wahrheit kann hier ein beliebiger Text
     stehen, der berlesen wird. Diese doppelte Umleitung wird von 4DOS
     (5.52a) als Fehler zurckgewiesen.
     Von Novells COMMAND.COM wird innerhalb eines Blocks nur die jeweils
     letzte gleichartige Umleitung benutzt (gilt fr '>', '>>' und '<').

   - Wird das '>'-Zeichen fr die Ausgabeumleitung bei Novells COMMAND.COM
     verdoppelt, wird - wie allgemein bekannt - die Zieldatei nicht ge-
     lscht, sondern der neue Inhalt hinten angehngt. Verdreifacht man das
     Zeichen, so wird dies wieder wie *ein* '>'-Zeichen ausgewertet. Ein
     vierfaches '>>>>' wirkt wieder wie ein '>>', usw..
     Im letzten Punkt unterscheidet sich 4DOS wieder, mehr als ein
     verdoppeltes '>'-Zeichen (">>") werden immer als einfaches '>'
     gewertet.

   - Bei der Programmierung von Batchjobs mu man beachten, da Novell DOS
     COMMAND.COM (im Gegensatz zu 4DOS/NDOS.COM) die Umleitung einer Zeile
     eines Batchjobs auch dann auswertet, wenn am Anfang der Zeile eine
     Bedingung steht, die nicht erfllt ist. Dies kann, besonders in Ver-
     bindung mit FIND.EXE, SORT.EXE oder MORE.COM (aber auch DEL *.*, TIME,
     DATE etc.), zu schwer auffindbaren Fehlern fhren.

     Zur Verdeutlichung ein Beispiel (Auszug aus einem Batchjob):

      ...
      IF "Bytes"=="%1" DIR *.* | FIND "Bytes"
      IF NOT "Bytes"=="%1" DIR *.* | SORT
      ...

     Enthlt %1 den Wert "Bytes", so wird der erste DIR Befehl problemlos
     ausgefhrt (und FIND extrahiert die Zeilen mit %1). Die zweite Be-
     dingung ist allerdings nicht erfllt, sollte also bersprungen werden.
     Trotzdem hngt der Batchjob beim zweiten DIR. Dies liegt daran, da
     zwar die Bedingung nicht erfllt ist, d.h. das zweite DIR *.* nicht
     ausgefhrt wird, aber die Pipe fr SORT wird davon nicht beeinflut.
     COMMAND.COM fhrt also '| SORT' aus, d.h. SORT wartet ewig auf eine
     Eingabe und ein abschlieendes ^Z aus der Eingabeumleitung. Normaler-
     weise lt sich der Batchjob mit <Ctrl>+<c> abbrechen.
     Enthlt %1 nicht den Wert "Bytes", tritt der gleiche Fehler in der
     ersten Bedingung auf. COMMAND.COM fhrt dann '| FIND "Bytes"' aus,
     d.h. FIND wartet ewig auf eine Eingabe.

     Abhilfe besteht darin, da derartige Zeilen mit Umleitungen so
     umkonstruiert werden, da entweder sichergestellt wird, da Filter
     wie FIND, SORT, MORE etc. auf irgendeine Weise ein abschlieendes ^Z
     erhalten oder da die Zeile, die die Umleitung enthlt, nicht ausge-
     fhrt wird, wenn dadurch dieser Fehler auftreten kann. Ein Beispiel:

      ...
      IF "Bytes"=="%1" GOTO dir1
      IF NOT "Bytes"=="%1" GOTO dir2
      GOTO skip
      :dir1
      DIR *.* | FIND "Bytes"
      GOTO skip
      :dir2
      DIR *.* | SORT
      :skip
      ...

     Die gleichen Probleme treten z.B. auch bei Befehlen wie

      ...
      IF "German"=="%1" ECHO J | DEL *.*
      ...

     auf (und sind in diesem Beispiel besonders gefhrlich). Abhilfe
     ist mit folgender Umkonstruktion mglich:

      ...
      IF NOT "German"=="%1" GOTO skip
      ECHO J | DEL *.*
      :skip
      ...

     Umleitungen auf z.B. \dev\nul sind aus diesen Grnden unkritisch.

   - Ein hnlich gelagerter Fall ist der REM-Befehl. Auch hier wertet
     Novells COMMAND.COM aus Kompatibilitt zu MS-DOS Umleitungen aus,
     d.h.

      REM | DIR *.*

     fhrt durchaus das DIR *.* aus (siehe Kaptitel II.11.).

   - Novell DOS behandelt auch (exotische) Anweisungen wie "DIR /P | MORE"
     problemlos (dies galt nicht fr DR DOS, abgesehen von DR DOS 6.0
     Updates nach 1992).

   - Ein anderes Problem mit Umleitungen bei Novells COMMAND.COM (nicht
     bei 4DOS/NDOS) in Verbindung mit SHARE:

      ...
      ECHO Report something to file > %tmp%\report.$$$
      REM If "applic is a batchjob, "applic" shall be called by "CALL" to
      REM avoid exiting this batchjob. But: As a result of redirection, a
      REM sharing violation occurs here, if "applic" actually is a batchjob.
      @CALL applic >> %tmp%\report.$$$
      ...

     Dieses Problem kann umgangen werden, indem man "CALL" durch
     "%ComSpec% /C" ersetzt:

      ...
      ECHO Report > %tmp%\report.$$$
      REM To avoid sharing violation with COMMAND.COM, call via
      @%ComSpec% /C applic >> %tmp%\report.$$$
      ...

     Achtung: Nach dem "/C" ist kein '@'-Zeichen erlaubt, wie man es sonst
     (in einem Batchjob oder unter 4DOS/NDOS) einem Kommando vielleicht
     voranstellen wrde! Das '@'-Zeichen vor dem %ComSpec% ist im Prinzip
     berflssig, hat aber unter 4DOS/NDOS eine besondere Funktion.

     Ein sehr hnliches Problem mit Umleitungen, CALL und SHARE existiert
     auch bei MS-DOS COMMAND.COM, wenn auch unter leicht anderen Voraus-
     setzungen (siehe MSDOSTIP.TXT). Glcklicherweise kann man beide
     Probleme auf identische Art und Weise aus dem Weg rumen, so da
     hier keine weitere Fallunterscheidung zwischen MS-DOS und Novells
     COMMAND.COM notwendig ist.

   - Die Zeichen ">", "<" und "|" sind - abgesehen von der Verwendung in
     Umleitungen - verstndlicherweise nicht erlaubt.
     Es gibt zwei Ausnahmen:

     a) Novells erweiterte Syntax des IF Befehls lt die Zeichen ">" und
        "<" auch als 'Grer' und 'Kleiner' (auch in allen Kombinationen mit
        "=") zu, ohne da sie dabei als Umleitung interpretiert werden. Da
        diese Syntax aber von anderen Kommandoprozessoren nicht untersttzt,
        sondern fehlinterpretiert wird, sollte man auf diese Mglichkeit
        verzichten.

     b) Einige Befehle erlauben/erfordern es, die Argumente in doppelte
        Anfhrungszeichen (") einzuschlieen (z.B. FIND). Innerhalb eines
        solchen Blocks werden Umleitungen nicht ausgewertet, d.h.
        Konstruktionen wie

         DIR *.* | FIND "<DIR>" > dirlist.lst

        sind problemlos mglich (auch bei MS-DOS, und 4DOS/NDOS).
        Nheres zu dieser Klammerungsmglichkeit in Kapitel II.11. und
        anderen Methoden zur Verzeichnisabfrage in Kapitel IV.3.

   - Das Zeichen "%" ist ebenfalls fr Variablen (Parameter, Umgebungs-
     variablen und Systeminformationskonstanten) reserviert. Mchte man
     das Zeichen dennoch ausgeben, mu man es verdoppeln:

      IF ""=="%tmp%" ECHO Die Variable %%tmp%% ist nicht belegt!

     Achtung: Unter anderen Kommandoprozessoren kann dies zu Fehlinter-
              pretationen fhren. Weitere Hinweise bezglich der Ver-
              doppelung von % siehe BATTIPS.TXT.

   - Manchmal ist es bei Problemen mit Batchjobs, die Umleitungen ver-
     wenden, hilfreich, sich im Nachhinein die temporren Dateien mit
     UNDELETE zurckzuholen und danach zu begutachten.

     Die temporren Zwischendateien, die COMMAND.COM bei Umleitungen
     automatisch anlegt und nach Gebrauch wieder lscht, werden im %Temp%\
     Verzeichnis abgelegt. Da hierfr die DOS-API-Funktion zum Erzeugen
     temporrer Dateien mit eindeutigem Namen verwendet wird, haben diese
     Dateien beim Novell DOS (und MS-DOS) Kernel 8 Zeichen lange Namen,
     die ausschlielich Buchstaben enthalten, und keine Endung. Auerdem
     besitzen sie das System-Attribut. DR DOS hingegen erzeugte Dateien,
     die nur Ziffern enthielten. 4DOS benutzt nicht diese API-Funktion und
     erzeugt Namen, die sowohl Ziffern, als auch Buchstaben enthalten und
     die Endung entspricht als Ziffer offenbar der Verschachtelungstiefe(?).

   - Obwohl man blicherweise Gerten, auf die man umleiten mchte, ein
     \dev\ oder jedes beliebige andere Verzeichnis voransetzen kann, gilt
     dies unter lteren DOS-Versionen und Netz-Treibern nicht fr Netz-
     laufwerke. Hier tritt nmlich das Problem auf, da keiner sich fr
     derartige Bezeichnungen zustndig fhlt. Ein Beispiel:

     Ein Text soll ber N:\TMP\LPT1 ausgedruckt werden, wobei N:\ ein
     Netzlaufwerk sei, etwa:

      TYPE text.txt > n:\tmp\lpt1

     DOS erkennt nun, da es sich um ein Netzlaufwerk handelt und gibt
     daher die Anfrage an den Netztreiber weiter. Dieser erkennt jedoch,
     da es sich um ein Gert handelt und gibt die Anfrage zurck an DOS,
     das daraufhin eine Fehlermeldung ausgibt.
     Im Zuge der VLM-Updates wurde hier eine Lsung geschaffen, insofern,
     als da die Netz-Treiber jetzt nur noch "lpt1" an DOS zurckliefern,
     und DOS dann im zweiten Anlauf damit zurecht kommt. Auf diese Weise
     werden auch die anderen Standard-Gerte behandelt.

                                                                           
  ---------------------------------------------------------------------------

  IV.7. Spezielle Umgebungsvariablen von Novell DOS/DR DOS: [97-03-26]
  ====================================================================

   Stichworte: Environment, Systeminformationskonstanten

   Der Platz fr Umgebungsvariablen wird whrend der Initialisierung von
   COMMAND.COM reserviert (Mutterbereich), dazu allerdings vorher der
   Parameter /E:xxxx des Kommandoprozessors bei CONFIG.SYS SHELL= heran-
   gezogen. Das Setzen und Lschen geschieht z.B. ber den COMMAND.COM-
   internen Befehl SET.

   - Vordefinierte Umgebungsvariablen:

     Die folgenden ansonsten vllig 'normalen' Variablen werden automatisch
     mit bestimmten Werten belegt, wenn nach der Bearbeitung von CONFIG.SYS
     der Kommando-Interpreter COMMAND.COM geladen wird. Einige dieser
     Variablen werden nur von DR DOS und Novell DOS untersttzt.

      %ComSpec%      Wie allgemein bei allen DOS-Kommandoprozessoren blich:
                     Vollstndiger Pfad+Name des aktuellen Kommando-Inter-
                     preters (COMMAND.COM), z.B. C:\NWDOS\COMMAND.COM.

                     Der Inhalt dieser Variable hngt blicherweise von dem
                     Pfad ab, denn man bei der Initialisierung des ersten
                     Kommandoprozessors angibt (normalerweise C:\, wenn
                     nicht mittels CONFIG.SYS SHELL= umdefiniert, siehe
                     Kapitel II.11. und III.1.)

                     Kann COMMAND.COM nicht gefunden werden, fragt
                     Novell DOS nach Pfad und Namen zu einer gltigen Datei.
                     Der Pfad dieser Variable wird bei Novell DOS 7 und
                     spten Updates (ab 1992) von DR DOS 6.0 nicht auf
                     einen vollen Netz-Pfad erweitert, was verschiedene
                     diesbezgliche Probleme lst.

      %Os%           Gibt (ausschlielich) bei den Kommandoprozessoren
                     der ehem. Digital Research Betriebssystemfamilie
                     (COMMAND.COM) den Typ des Betriebssystems (eigentlich
                     besser: des Kommandoprozessors) aus der 'Digital
                     Research'-Familie an (fr DR DOS und Novell DOS sind
                     die Werte dokumentiert):

                     - Caldera OpenDOS 7.01 : %Os%="OPENDOS"
                     - Novell DOS 7         : %Os%="NWDOS"
                     - DR PalmDOS           : ???
                     - DR DOS 3.40-6.0      : %Os%="DRDOS"
                     - IMS REAL/32          : ???
                     - IMS Multiuser DOS    : ???
                     - CCI Multiuser DOS    : %Os%="MDOS"
                     - DR Multiuser DOS     : %Os%="DRMDOS"
                     - Concurrent DOS       : %Os%="CDOS"
                     - Concurrent DOS/386   : %Os%="CDOS386"
                     - Concurrent PC-DOS    : %Os%="CPCDOS"
                     - DOSPlus              : ???
                     - MS-DOS/PC-DOS        : --           (nicht belegt)
                     - FreeDOS, DOS-C       : --           (nicht belegt)
                     - PTS/DOS, S/DOS       : --           (nicht belegt)

                     Whrend NetWare-Loginskripten gibt es eine vergleich-
                     bare System-Informationsfunktion namens %OS, die
                     mit der Einstellung NET.CFG: NETWARE DOS REQUESTER
                      DOS NAME=<MSDOS>
                     (siehe Kapitel VI.12.) korrespondiert und z.B. dazu
                     dient, unterschiedlichen Laufwerke in Anhngigkeit
                     von der DOS-Version der Arbeitsstation zu mappen.

      %Ver%          Gibt (ausschlielich) bei den Kommandoprozessoren
                     der ehem. Digital Research Betriebssystemfamilie
                     (COMMAND.COM) die Versionsnummer des Betriebssystems
                     (eigentlich besser: die Stufe des Kommandoprozessors
                     an:

                     - Caldera OpenDOS 7.01 : %Ver%="7" (das 7.01 bei VER
                                              wird festverdrahtet angehngt)
                     - Novell DOS 7         : %Ver%="7" (alle Updates,
                                                     keine Nachkommastelle!)
                     - DR PalmDOS           : ???
                     - DR DOS 6.0           : %Ver%="6.0"  (alle Updates)
                     - DR DOS 5.0           : %Ver%="5.0"
                     - DR DOS 3.41          : %Ver%="3.41"
                     - IMS REAL/32          : ???
                     - IMS Multiuser DOS    : ???
                     - CCI Multiuser DOS    : %Ver%="7.00", "7.21", "7.22"
                     - DR Multiuser DOS     : %Ver%="5.0", "5.1"
                     - DOSPlus              : ???
                     - MS-DOS/PC-DOS        : --           (nicht belegt)
                     - FreeDOS, DOS-C       : --           (nicht belegt)
                     - PTS/DOS, S/DOS       : --           (nicht belegt)

                     Verndert man den Inhalt dieser Variable, ndert sich
                     auch der Wert der Novell DOS 7 Systeminformations-
                     konstante %OS_Version% (s.u.), aber umgekehrt ndert
                     sich der Wert der in der Umgebung reprsentierten
                     Variable %Ver% nicht, wenn man die obige System-
                     informationskonstante mit einer gleichnamigen 'echten'
                     Variable berdeckt.
                     Achtung: %OS_Version% wird auch von NetWare-Clients
                     untersttzt und liefert dann auch bei *anderen*
                     Kommandoprozessoren Versionswerte (s.u.)!!!
                     Die Versionsausgabe des internen Kommandos VER hngt
                     vom Inhalt der Variable %Ver% ab, selbst, wenn man hier
                     keine Zahl angibt, siehe Kapitel II.11. bei VER!

      %Beta%         Undokumentiert und nur bei DR DOS 3.41 (vielleicht
                     noch bei DR DOS 3.40 und 3.42???): Erscheint als
                     zustzlicher Text beim Laden einer temporren Kopie
                     von COMMAND.COM, und war wohl ursprnglich fr zu-
                     stzliche Ausgaben in der Beta-Testphase gedacht,
                     siehe auch DRDOSTIP.TXT.


   - Reservierte Umgebungsvariablen:

     Die folgenden Variablen haben keine vordefinierten Werte, mssen also
     explizit gesetzt werden. Einige dieser Variablen sind allgemeingltig
     fr DOS, andere werden (oder wurden) ausschlielich von ehem. Digital
     Research Betriebssystemen benutzt.

     %Path%          Allg. Standard; (bei MS-DOS 6.0 - und nur dort -
                     ausschlielich in Verbindung mit "PATH /E");
                     siehe bei PATH in Kapitel II.11.

     %Append%        Allg. Standard, "APPEND /E"

     %Prompt%        Allg. Standard, meist $p$g.
                     Allerdings bei Kommandoprozessoren von DR DOS 6.0 und
                     Novell DOS 7 mit allerhand eigenen Ergnzungen, siehe
                     bei PROMPT in Kapitel II.1. und II.11.

     %Temp%          Allg. Standard fr ein Temporrverzeichnis

     %HomeDir%       Nur bei DR DOS 5.0/6.0: undokumentiert.

     %$Cls%          Nur bei DR DOS 3.41+ und Novell DOS 7+ COMMAND.COM,
                     aber undokumentiert. Bei CCI Multiuser DOS 7.22 Gold
                     fr MDOS.COM/TMP.EXE dokumentiert:
                     Kann mit Escape-Sequenz fr ANSI.SYS fr den Befehl
                     CLS belegt werden, blicherweise leer, dann wird
                     je nach dem, ob ein ANSI-Treiber installiert ist,
                     die Sequenz "Esc [2J" ausgegeben oder der Bildschirm
                     durch Aufruf von BIOS-Funktionen gelscht. Siehe auch
                     Kapitel II.11 bei CLS.

     %$On%           'RevOn', nur bei DR DOS 3.41+, Novell DOS 7+
                     COMMAND.COM, aber undokumentiert und standardmig
                     nicht belegt. Bei CCI Multiuser DOS 7.22 Gold fr
                     MDOS.COM/TMP.EXE dokumentiert und enthlt dort
                     blicherweise die ANSI-Sequenz "Esc p".
                     Hat man einen ANSI-Treiber installiert, kann man die
                     Variable jedoch auch in Singleuser-Varianten verwenden:
                     Sie spezifiziert eine Sequenz, die vor der Ausgabe
                     von Dateinamen in TYPE-Auflistungen bei Verwendung von
                     Wildcards ausgegeben wird. Auf diese Weise kann man
                     die Dateinamen z.B. farblich hervorheben, einen Seiten-
                     vorschub auslsen, etc. Erlaubt auch die Angabe von
                     Sonderzeichen ber die Spezialsyntax \ooo, wobei ooo
                     fr die dreistellige Angabe des Zeichencodes als Oktal-
                     zahl steht (mit fhrender Null). Siehe auch in Kapitel
                     II.11. bei TYPE.

     %$Off%          'RevOff', nur bei DR DOS 3.41+, Novell DOS 7+
                     COMMAND.COM, aber undokumentiert und standardmig
                     nicht belegt. Bei CCI Multiuser DOS 7.22 Gold fr
                     MDOS.COM/TMP.EXE dokumentiert und enthlt dort
                     blicherweise die ANSI-Sequenz "Esc q".
                     Hat man einen ANSI-Treiber installiert, kann man die
                     Variable jedoch auch in Singleuser-Varianten verwenden:
                     Sie spezifiziert eine Sequenz, die nach der Ausgabe
                     von Dateinamen in TYPE-Auflistungen bei Verwendung von
                     Wildcards ausgegeben wird. Auf diese Weise kann z.B.
                     eine farbliche Hervorhebung (siehe bei %$On%) wieder
                     aufgeben, etc. Erlaubt auch die Angabe von Sonder-
                     zeichen ber die Spezialsyntax \ooo, wobei ooo fr
                     die dreistellige Angabe des Zeichencodes als Oktalzahl
                     steht (mit fhrender Null). Siehe auch in Kapitel
                     II.11. bei TYPE.

     %PExec%         Nur bei DR DOS 6.0 und Novell DOS 7 COMMAND.COM:
                     Erweiterung fr PROMPT-Execution $x), siehe auch
                     Kapitel II.11. bei PROMPT. Im Hilfeschirm der
                     deutschen Version von PROMPT /? wird der Name der
                     Variablen flschlicherweise als %Exec% angegeben!

     %DRDOSCFG%      Nur bei DR DOS: Ablagepfad fr .CFG- und .INI-Dateien
                     fr DR DOS Tools z.B. DRDOS.INI usw.
                     Sollte bei Verwendung von DR VIEWMAX unter Novell DOS
                     auf den gleichen Wert wie %NWDOSCFG% gesetzt werden,
                     wo dann auch die alten TASKMAX.INI und VIEWMAX.INI
                     Dateien liegen sollten.

     %NWDOSCFG%      Novell DOS 7, analog zu %DRDOSCFG%.
                     Ablagepfad fr .CFG- und .INI-Dateien fr Novell DOS
                     Tools z.B. NWDOS.INI usw.

     %OPENDOSCFG%    Caldera OpenDOS (7.01), analog zu %NWDOSCFG%.
                     Ablagepfad fr .CFG- und .INI-Dateien fr Caldera
                     OpenDOS Tools z.B. OPENDOS.INI usw.
                     Beim Mischen von Novell DOS 7 und Caldera OpenDOS 7.01
                     Systemen (z.B. im Rahmen von Updates) sollten sie beide
                     Variablen entsprechend belegen und beide Konfigura-
                     tionsdateien NWDOS.INI und OPENDOS.INI im gleichen
                     Verzeichnis ablegen.

     %87%            Nur bei DR DOS, nicht bei Novell DOS:
                     Gltige Werte: "Y" fr Ja.
                     Aktiviert Untersttzung fr Coprozessor und wird
                     von vielen externen Kommandos untersttzt, die mit
                     Borland C programmiert wurden (z.B. REPLACE.EXE,
                     SSTORCHR.EXE). Wahrscheinlich nur eine Abfrage der
                     Borland RunTime-Library und ohne echte Funktion in
                     den Programmen.

     %FBP_User%      Fr Novell DOS 7 FastBackup FBX: Name des Benutzers

     %NWLanguage%    PNW, NetWare: Sprache fr das \NLS\%NWLanguage%\
                     Verzeichnis und .MSG-Dateien, z.B. in Grobuchstaben:
                     "DEUTSCH", "ENGLISH", usw., siehe auch Kapitel II.16.
                     Diese Variable kann nicht nur den Namen des Unter-
                     verzeichnisses von \NLS\ aufnehmen, sondern darf eine
                     gltige relative Pfadangabe enthalten. Angenommen, die
                     Dateien wrden sich in Wirklichkeit nicht in
                     C:\NWCLIENT\NLS\ sondern in C:\NWCLIENT\TEST\ befinden,
                     knnte man %NWLanguage% mit ..\TEST\DEUTSCH belegen.
                     Siehe auch Kapitel VI.2.
                     Ist %NWLanguage% nicht definiert oder zeigt auf eine
                     falsche Position, so wird blicherweise %Path% ausge-
                     wertet. Evtl. gab es frher einmal eine andere Variable
                     namens %Language%, jedenfalls taucht dieser Variablen-
                     name immer wieder in den Hilfemeldungen von PNW auf.

     %LoginName%     Nur bei Novell DOS 7 COMMAND.COM:
                     (nicht zu verwechseln mit %Login_Name%!!!).
                     Falls diese Variable mit einem Wert belegt wird,
                     wird der jeweils aktuelle Inhalt fr den Spezial-
                     Token $u bei PROMPT eingesetzt, siehe Kapitel II.11.
                     Da die Variablenersetzung nicht bei der Definition des
                     PROMPTs, sondern jedesmal bei Ausgabe des PROMPTs
                     erfolgt, lassen sich damit natrlich auch andere recht
                     interessante 'Spielereien' treiben.

     %TZ%            Nur fr Novells Personal NetWare 1.0 SNMP-Dienste
                     (speziell PNWTRAP.VLM):
                     Angabe der rtlichen Zeitzone zur sauberen Synchro-
                     nisation mit entfernten Rechnern, z.B. die Einstel-
                     lungen der amerikanischen Ost-Kste:

                      EST (Eastern Standard Time = Winterzeit) oder
                      EDT (Eastern DayTime = Sommerzeit).

     %TASKMGRWinDir% Undokumentiert, nur vom Novell DOS 7 TASKMGR als
                     Multitasker verwendet, um SYSTEM.INI zu finden;
                     siehe Kapitel VII.2.

     %WinDir%        Von Novells UPDATEW.BAT verwendet (C:\WINDOWS)
                     (siehe automatisches PNW-Update fr MS Windows,
                     Kapitel I.2.)

     %PNWDir%        Von Novells UPDATED.BAT verwendet (C:\NWCLIENT)
                     (siehe automatisches PNW-Update fr DOS, Kapitel I.2.)

     %DirCMD%        MS-DOS 5.0+ (Default-Kommandos fr DIR)
                     bei Novell DOS 7 nur von STACKERs DIR.COM/SDIR.COM,
                     nicht fr das 'normale' DIR verwendet, dafr kann man
                     aber ersatzweise die Novell DOS/DR DOS DIR-Optionen
                     /C bzw. /R verwenden, siehe Kapitel II.11.

     %CopyCMD%       MS-DOS (Default-Kommandos fr COPY und XCOPY), nicht
                     bei DR DOS/Novell DOS.
                     Die Nachbildung mittels Batchjobs scheidet leider
                     von vornherein aus (nur XCOPY ist ein externes
                     Kommando), und auch mit DOSKEY-Makros drfte ein
                     Nachbildung schwer fallen, da dort keine aktuellen
                     Variablenwerte verwendet werden knnen. Auerdem kann
                     das Parameterformat der Kommandos bei MS-DOS 6.2
                     leicht abweichen (/[-|+]opt), so da keine 100%ige
                     Nachbildung mglich ist.

     %PathTmp%       GEM 3.x, fr temp. Speicherung des Original-Pfades

     %Suspend%       GEM 3.x, in Verbindung mit Multiuser-Varianten von
                     DR DOS Betriebssystemen, gltige Werte: "ON".


   - Neue Systeminformationskonstanten bei Novell DOS 7 COMMAND.COM:

     Die folgenden Pseudovariablen - die schon immer whrend Login-Skripten
     zur Verfgung standen (zumindest mit den englischen Werten) - lassen
     sich unter Novells COMMAND.COM nun in Batchjobs genauso wie Umgebungs-
     variablen ansprechen. Allerdings sind sie nicht im Umgebungsspeicher-
     bereich reprsentiert, d.h. die blicherweise in Programmen verwendeten
     Compiler-Bibliotheksroutinen zum Auslesen der Umgebung (wie GetEnv()
     bei Borland Pascal) funktionieren hier nicht!
     Wenn keine gleichnamige Umgebungsvariable die Systeminformations-
     konstante berdeckt, dann liefern solche Routinen eine leere Zeichen-
     kette zurck. In Batchjobs lassen sich diese Pseudovariablen jedoch
     genauso wie Umgebungsvariablen abfragen.
     Novells Bezeichnung 'Konstante' ist auch miverstndlich, denn es
     handelt sich vielmehr um Funktionen, als um Variablen oder Konstanten.
     Die jeweiligen Werte werden innerhalb von COMMAND.COM in dem Moment
     bestimmt, wann sie gebraucht werden. Da die bersicht im DOSBOOK
     recht fehlerbehaftet ist, folgt hier ein eigener Abschnitt:

     %Second%        "00".."59"
     %Minute%        "00".."59"
     %Hour%          "1".."12"
     %Hour24%        "00".."23"

     %Am_Pm%         "am" | "pm"
                     in allen landessprachlichen Versionen (D, U, S, F, I)
                     gleich; im DOSBOOK wird flschlicherweise fr die
                     deutsche Version angegeben: "vorm." | "nachm.".

     %Greeting_Time% Je nach landessprachlicher COMMAND.COM Version:
                     D: "Morgen", "Tag", "Abend"
                     U: "morning", "afternoon", "evening"
                     S: "maana", "tarde", "noche"
                     F: "Bonjour", "Bonjour", "Bonsoir"
                     I: "giorno", "pomeriggio", "sera"
                     Diese Funktion ist - aufgrund der jeweils nur drei
                     mglichen Werte - auch gut dazu geeignet, um in
                     internationalen Batchjobs landessprachliche Unter-
                     scheidungen zu treffen, siehe auch Kapitel II.17.

     %Month%         "01".."12"

     %Month_Name%    Je nach landessprachlicher COMMAND.COM Version:
                     D: "Januar", "Februar", "Mrz", "April", "Mai", "Juni",
                        "Juli", "August", "September", "Oktober", "Dezember"
                     U: "January", "February", "March", "April", "May",
                        "June", "July", "August", "September", "October",
                        "December"
                     S: "enero", "febrero", "marzo", "abril", "mayo",
                        "junio", "julio", "agosto", "septiembre", "octubre",
                        "noviembre", "diciembre"
                     F: "janvier", "fvrier", "mars", "avril", "mai",
                        "juin", "juillet", "aot", "septembre", "octobre",
                        "novembre", "dcembre"
                     I: "Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio",
                        "Giugno", "Luglio", "Agosto", "Settembre",
                        "Ottobre", "Novembre", "Dicembre"
                     Siehe auch Kapitel II.16.

     %Short_Year%    "xx", z.B. "94", "95", "96", ...

     %Year%          "xxxx", z.B. "1994", "1995", "1996", ...

     %Day%           "01".."31"

     %Day_Of_Week%   Im Gegensatz zur Dokumentation im DOSBOOK werden
                     die folgenden Werte geliefert, je nach landes-
                     sprachlicher COMMAND.COM Version:
                     D: "Son", "Mon", "Die", "Mit", "Don", "Fre", "Sam"
                     U: "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"
                     S: "dom", "lun", "mar", "mi", "jue", "vie", "sb"
                     F: "Dim", "Lun", "Mar", "Mer", "Jeu", "Ven", "Sam"
                     I: "Dom", "Lun", "Mar", "Mer", "Gio", "Ven", "Sab"
                     Siehe auch Kapitel II.16.

     %NDay_Of_Week%  "1".."7" ("1"=Sonntag)

     %Os_Version%    blicherweise "7" bei Novell DOS 7 und Caldera OpenDOS
                     7.01 COMMAND.COM, aber vgl. auch Variable %Ver% (s.o.)
                     und %Os_Version% bei NetWare-Clients (s.u.)!!!
                     Wird eine Variable %Ver% mit einem Wert belegt,
                     so gibt %Os_Version% den Wert dieser Variable an.
                     Falls Sie nicht mit COMMAND.COM als Master-Kommando-
                     prozessor arbeiten, sondern z.B. 4DOS direkt in
                     CONFIG.SYS SHELL= eintragen, wird die Umgebungs-
                     variable %Ver% niemals belegt und wenn Sie sie nicht
                     manuell mit einem Wert belegen, bekommt %Os_Version%
                     auch keinen internen Defaultwert zugewiesen.
                     Stattdessen erscheint dann "off", wenn Sie 4DOS
                     mit COMMAND.COM berladen und dort %Os_Version%
                     abfragen...

     %ErrorLevel%    Laut Novell DOS 7 DOSBOOK, ist aber nicht implemen-
                     tiert; vermutlich war der Batch-Befehl IF ERRORLEVEL
                     gemeint (siehe Kapitel II.11.). CCI Multiuser DOS
                     bietet hingegeben eine Variable %ErrorLvl% an, die
                     immer dreistellige Werte, d.h. mit fhrender Null
                     liefert (vgl. der beiliegende Batchjob ERRORLVL.BAT).


   - NetWare-Systeminformationskonstanten bei Novell DOS 7 COMMAND.COM
     (nur in Verbindung mit NetWare-Client):

     %Login_Name%    Login-Name. Funktionierte schon immer mit NETX,
                     seit Update 14 nun aber auch mit PNW, wenn das
                     aktuelle Laufwerk ein PNW-gemapptes Laufwerk ist.
                     Ansonsten erscheint eine leere Zeichenkette.
                     Siehe auch bei PROMPT in Kapitel II.11.

     %P_Station%     Physikalische Stationsnummer im Format "????????????".
                     Korrespondiert i. allg. mit der ID der Netzadapter-
                     karte und sollte weltweit eindeutig sein, kann aber
                     bersteuert werden. Bemerkung siehe %Login_Name%.

     %Station%       Logische Stationsnummer, wahrscheinlich beginnend
                     mit 1 fr den ersten Client-Rechner nach dem Laden
                     von ODI+VLM. Die Nummern werden vom File-Server ver-
                     geben und bleiben bis zum Trennen der IPX-Verbindung
                     bestehen, d.h. auch zwischen blichen Ein-/Auslogg-
                     Vorgngen. Bemerkung siehe %Login_Name%.

     %Full_Name%     Undokumentiert (mit Update 14 nachtrglich dokumen-
                     tiert). Enthlt - falls vergeben - den vollstndigen
                     Benutzernamen des eingeloggten Benutzers.
                     Bemerkung wie bei %Login_Name%, allerdings funk-
                     tioniert %Full_Name% auch nach Update 14 nur mit
                     NETX (vielleicht auch mit NETX.VLM).

     %Os_Version%    Diese Variable wurde - gegenber den anderen - schon
                     vor Novell DOS 7 COMMAND.COM von NETX und innerhalb
                     von Login-Skripten (%OS_VERSION) untersttzt, und
                     konnte dabei z.B. fr MS-DOS 5.0 und 6.00 die Werte
                     "5.00", "6.00" annehmen (zwei Nachkommastellen,
                     angeblich sogar mit einem 'V' davor, dies aber
                     definitiv nicht mit Novell DOS!!!). Siehe auch
                     %Os_Version% bei den Novell DOS 7 Systeminformations-
                     konstanten und bei %Ver% (s.o.).


   Resme: Wollen Sie die NetWare-bezogenen Systeminformationskonstanten
   nutzen, mssen Sie (zumindest temporr) Novell DOS 7 COMMAND.COM laden
   (4DOS wrde nur auf den Inhalt echter Umgebungsvariablen reagieren)
   *und* (ebenfalls temporr) auf ein Netzlaufwerk berwechseln.
   Wieso eigentlich?
   Nun, da es mglich ist, auf mehreren Servern gleichzeitig eingeloggt zu
   sein, mu es irgendein Indiz dafr geben, welcher Server gerade gemeint
   ist, daher mu - zumindest bei %Login_Name%, %Full_Name% und %Station% -
   eine aktuelle 'Zuordnung' zu diesen Server bestehen. Genau zu diesem
   Zweck wurden Laufwerksbuchstaben von Netzlaufwerken gewhlt.


   CCI Multiuser DOS Varianten bieten eine groe Anzahl hnlicher
   reservierter Variablen und fhren noch eine weitere Variante von
   Variablen ein, die von bestimmten Kommandos gesetzt werden (knnen),
   dann aber statisch als ganz normale Umgebungsvariablen fungieren, bis
   sie erneut aktualisiert oder manuell modifiziert oder gelscht werden.
   Die diesbezglichen Mglichkeiten sind zu umfangreich, um sie hier
   alle aufzulisten. Zur Information sollen hier lediglich die aller-
   wichtigsten Variablennamen erwhnt werden, teilweise anhand eines
   Beispiels illustriert:

   Alle Treiber:

    %Verbose%=None|All|SignOn
    %<drivername>Verbose%=None|All|SignOn|NoDetail|[No_Detail]|[AllPaged]
    %IAmDebugging%=True|False

   Andere Variablen:

    %MDOS_Exec%=Off|On
    %BootDrv%=c:
    %TempDrv%=c:
    %Security%=c:\mdos\security
    %Spool%=c:\mdos\spool
    %User%=001
    %ErrorLvl%=000
    %CCINet%=3.0
    %DRNet%=x.x
    %Node%=00
    %MDOS<00>% - %MDOS<18>%

   Von DATE bzw. TIME jeweils mit Option /E gesetzt:

    %Date%=xx/yy/zz
    %DOW%=SUN|MON|TUE|WED|THU|FRI|SAT
    %DOM%=01..31
    %DOY%=001..366
    %Time%=hh:mm:ss
    %Elapsed%

                                                                             
  ---------------------------------------------------------------------------

  IV.8. Novell DOS aus Batchjobs heraus erkennen: [96-11-12]
  ==========================================================

   Stichworte: COMMAND.COM; 4DOS/NDOS; primrer, sekundrer Kommando-
               prozessor; Master-Kommandoprozessor, SHELL=

   Im folgenden werden einige Methoden beschrieben, wie man innerhalb von
   Batchjobs zwischen primren und sekundren Kopien eines Kommando-
   prozessors, zwischen Novells COMMAND.COM und 4DOS/NDOS unterscheidet
   und wie man unabhngig davon feststellen kann, ob 4DOS unter einem
   Novell DOS 7 Kernel luft oder nicht. Die Beispiele sind in der ange-
   gebenen Form nur unter bestimmten Randbedingungen wasserdicht und
   sollten als Leitfden, nicht als fertige Beispiele fr eigene Implemen-
   tierungen fr die jeweils speziell bentigten Voraussetzungen dienen.


   i. Novell DOS COMMAND.COM als Master-Kommandoprozessor:
   -------------------------------------------------------

    Wird der Kommandoprozessor COMMAND.COM direkt nach der Bearbeitung
    der CONFIG.SYS Datei geladen (vgl. Direktive SHELL=), d.h. als
    Master-Kommandoprozessor, so ist die Erkennung sehr einfach, denn
    in diesem Fall definiert COMMAND.COM die zwei Umgebungsvariablen
    %Os% und %Ver%, die sich in Batchjobs leicht abfragen lassen.

    Solange man diese Variablen nicht explizit lscht, bleiben sie
    auch dann bestehen, wenn man temporr einen weiteren Kommandoprozessor
    ldt, egal, ob es sich hierbei um eine weitere Kopie von COMMAND.COM,
    oder um eine Alternative wie 4DOS.COM/NDOS.COM handelt, denn beim Start
    eines neuen Kommandoprozessors wird die Umgebung des darunterliegenden
    Kommandoprozessors normalerweise bernommen. Dies gilt auch fr den
    Kommandoprozessor von FreeDOS, nicht aber fr COMMAND.COM von PTS/DOS
    alias S/DOS.

    Die richtigen Werte in %Os% und %Ver% weisen also auf einen DR DOS oder
    Novell DOS Kernel und einen primren COMMAND.COM Kommandoprozessor hin,
    allerdings darf man sich nicht 100%ig auf das Vorhandensein spezieller
    Funktionen des Kommandoprozessors verlassen, da dieser ja auch mit einem
    anderen Prozessor berladen worden sein kann (4DOS bietet zwar i. allg.
    mehr, im Detail aber doch andere Funktionen als Novells COMMAND.COM).
    Auerdem wre es immerhin mglich, die Variablen %Os% und %Ver% auch
    'per Hand' zu definieren... Bezglich der mglichen Werte von %Os% und
    %Ver% sei auf Kapitel IV.7. verwiesen.

     Beispiel:

     IF "NWDOS"=="%Os%" IF "7"=="%Ver%" GOTO nwdos
     GOTO skip
     :nwdos
     ECHO Running a Novell DOS 7 COMMAND.COM as master command processor
     ECHO on top of a Novell DOS 7 system kernel!!!
     REM (If variables weren't set manually... The currently active command
     REM processor must not necessarily be the master command processor...)
     IF NOT "4"=="%@Eval[2 + 2]%" ECHO Running Novell DOS 7 COMMAND.COM!!!
     REM (Still, must not necessarily be a master command processor...)
     :skip

   ii. Novell DOS Kernel unter 4DOS 5.0+:
   --------------------------------------

    Wird als Master-Kommandoprozessor 4DOS oder NDOS (oder andere Alter-
    nativen) geladen, werden die beiden Variablen %Os% und %Ver% nicht
    automatisch belegt. Das Vorhandensein von 4DOS/NDOS kann man leicht
    mit der Abfrage

     IF "4"=="%@Eval[2 + 2]%" ECHO Running 4DOS/NDOS now!!!

    checken, und im weiteren Verlauf auch ganz speziell auf deren Versions-
    nummern etc. abtesten. Unter welchem Betriebssystem 4DOS/NDOS aber
    luft, ist auf diese Weise nicht herauszufinden. Manchmal reicht es
    jedoch nicht aus, den Kommandoprozessor zu identifizieren, sondern
    man mu berprfen, auf welchem Kernel der Kommandoprozessor luft.

    Ab 4DOS 5.0+ kann man hierzu den Befehl VER zweckentfremden, indem man
    die umgeleitete Ausgabe dieses Befehls auswertet:

     IF NOT "4"=="%@Eval[2 + 2]%" GOTO skip
     REM Only 4DOS/NDOS come here...
     IF ""=="%tmp%" SET tmp=%Temp%> \dev\nul
     IF NOT ""=="%tmp%" IF NOT EXIST %tmp%\nul MD %tmp% > \dev\nul
     IF "NWDOS"=="%Os%" GOTO nwdos
     IF NOT ""=="%Os%" GOTO skip
     IF EXIST %tmp%\tmp.sem ECHO Warning: "%tmp%\tmp.sem" is locked by ...
                                    ... another task. Waiting for release...
     BREAK on > \dev\nul
     :wait1
     IF EXIST %tmp%\tmp.sem GOTO wait1
     BREAK off > \dev\nul
     REM 4DOS 5.0+ reports "Novell DOS 7" here, but older 4DOS/NDOS releases
     REM report Novell DOS 7 as "DR DOS" or just as "DOS 6.0"...
     VER | @ CALL FIND "Novell DOS 7" > %tmp%\tmp.sem
     IF "0"=="%@FileSize[%tmp%\tmp.sem,b]%" GOTO skip2
     :nwdos
     ECHO Running 4DOS 5.0+ on top of a Novell DOS 7 system kernel, now!!!
     REM (Must not necessarily be a master command processor...)
     :skip2
     IF EXIST %tmp%\tmp.sem DEL %tmp%\tmp.sem > \dev\nul
     :skip


   iii. Sekundres 4DOS unter Novells COMMAND.COM:
   ------------------------------------------------

    Geht man davon aus, da der Master-Kommandoprozessor COMMAND.COM
    die Variablen %Os% und %Ver% belegt hat, reicht fr eine Abfrage
    dieser Konstellation:

     IF "NWDOS"=="%Os%" IF "7"=="%Ver%" IF "4"=="%@Eval[2 + 2]%" ECHO ...
      ... 4DOS/NDOS running as secondary command processor on top of ...
      ... Novell DOS 7 COMMAND.COM, now!!!


                                                                             
  ###########################################################################
  ###########################################################################

  V. SPEICHER-MANAGEMENT:
  =======================

  ---------------------------------------------------------------------------

  V.1. Bessere Speicherausnutzung durch Option /USE bei HIMEM/EMM386:
  ======================================================[96-07-12]===

   Stichworte: DPMS, EMM386, HIMEM, DPMI, Region-Support, Ein-MegaByte-XTs,
               /CHIPSET, /USE, Optimierung, Shadow-RAM, EMS-Seitenrahmen,
               Stealth, Speicher-Doppelnutzung

   Die Speichermanager von Novell DOS sind sehr leistungsfhig, insbesondere
   in Verbindung mit DPMS (DOS Protected Mode Services).

   Gegenber den Speichermanagern von MS-DOS und Kompatiblen fehlte bis vor
   Update 14 lediglich der sog. Region-Support fr UMBs und die 386er-
   Emulation von EMS-Backfilling. Das erstere wird aber ab Update 14 (sicher
   aber Update 15) auch unter sttzt!
   Die entsprechenden DEVICEHIGH= und LH etc. Optionen (/L: und /S),
   die von MS-DOS bekannt sind, wurden aber auch vorher nicht als Fehler
   abgewiesen, sondern lediglich ignoriert (siehe Kapitel III.4., Kapitel
   V.5. und Kapitel V.7.). Auch ohne Region-Support kam Novell DOS bezglich
   des verfgbaren Speichers schon bei Standard-Konfigurationen auf sehr
   hnliche bis bessere Werte. Mit dem nun verfgbaren Region-Support
   hat man hier jedoch erheblich mehr Flexibilitt, wodurch die Speicher-
   situation auch in Problemfllen noch weiter verbessert werden kann.

   Bereits bei blicher Ausnutzung der Mglichkeiten des Speichermanagers
   ergibt sich i. allg. eine erheblich bessere Speicherbilanz als bei
   MS-DOS. ber den EMM386-Schalter /DPMI=on ist es sogar mglich, diesen
   'DOS-Extender' direkt allen DPMI-nutzenden Programmen unter DOS zur
   Verfgung zu stellen (MS-DOS kann DPMI nur innerhalb von MS Windows
   bereitstellen).
   Dadurch entfllt die Notwendigkeit, da speicherhungrige Applikationen
   ihren eigenen DPMI-Support mitbringen mssen. Allerdings kann man auch
   etwas Extended Memory einsparen, wenn man /DPMI=off angibt, wenn man
   den Support auf DOS-Betriebssystemebene nicht bentigt.
   (Lediglich etwas Vergleichbares zur Stealth-Funktion von QEMM fehlt
   (nicht nur) Novell DOS). Die Funktionalitt von HIMEM ist weitestgehend
   auch in EMM386 enthalten, daher mu dieser Treiber auf 386ern (und hher)
   nicht mehr geladen werden. In Sonderfllen ist dies aber dennoch mglich,
   sogar die Kombination von MS-DOS HIMEM mit Novell DOS 7 EMM386 und
   umgekehrt ist machbar (wobei allerdings einige schne Eigenschaften
   von Novell DOS auf der Strecke bleiben).

   Einen automatischen Optimizer bietet Novell DOS nicht und insofern bleibt
   manches Potential darber hinaus ungenutzt.
   Bei Beachtung verschiedener Randbedingungen kann man jedoch auch unter
   Novell DOS 7 mit MS-DOS MEMMAKER als Analysehilfsmittel fr Region-
   Support arbeiten, dabei mu man aber fr die Dauer der Analyse in
   CONFIG.SYS und AUTOEXEC.BAT auf alle Novell DOS spezifischen Direktiven
   und Batch-Kommandos verzichten (besonders die Boot-Mens) und mu zeit-
   weise auch mit den Speichermanagern HIMEM+EMM386 von MS-DOS arbeiten,
   weil deren Aufrufoptionen unterschiedlich sind. Wenigstens stehen nach
   einer solchen Optimierung MEMMAKERs Analysedateien zur Verfgung und
   knnen praktische Anhaltspunkte fr eine optimale Konfiguration unter
   Novell DOS 7 liefern. Da Novell DOS' EMM386 jedoch eine ganze Reihe
   Mglichkeiten mehr bietet, die bei einer MEMMAKER Optimierung natrlich
   nicht bercksichtigt werden, ist mit manueller Nachbearbeitung meistens
   noch wesentlich mehr herauszuholen.

   Deshalb die folgenden Hinweise:


   i. HIMEM.SYS:
   -------------

     Anders als noch bei DR DOS 6.0 und entgegen der Intention der Anleitung
     arbeitet HIMEM von Novell DOS auch auf PC/XTs (8088/8086), die ber
     1 MByte Speicher verfgen (zumindest auf einem V20-System getestet)!!!
     Dies ist bei vielen spten Rechnern dieser Generation der Fall, die in
     Speicherbnken 2 und 3 statt mit den eigentlich nur notwendigen 64er-
     Chips mit 256er-Chips ausgestattet sind. Evtl. mu der Adredekoder auf
     dem Mainboard (PAL oder 'TTL-Grab') leicht modifiziert werden, um dies
     zu ermglichen. Eine andere Mglichkeit besteht darin, ber spezielle
     UMB-Karten (wie die Uni-RAM-Karte nach c't) permanentes oberes RAM zur
     Verfgung zu stellen. Auf diesen Rechnern knnen die UMBs ohne Zusatz-
     programme verfgbar gemacht werden, indem man die entsprechenden hohen
     Speicherbereiche mit

      DEVICE=c:\nwdos\HIMEM.SYS /CHIPSET=ram /USE=xxxx-xxxx
      DOS=UMB

     deklariert. So lt sich noch mancher alte und wackere PC/XT trotz
     vieler geladener TSR-Programme (STACKER etc.) mit greren DOS-
     Anwendungen fahren!

     Viele frhe ATs mit 286er besitzen mindestens ein MByte Speicher,
     knnen im ersten MegaByte Speicher aber nur bis max. zur 640 KByte-
     Grenze abbilden, die restlichen 384 KByte sind nur als Extended Memory
     verfgbar und werden daher meist nur fr eine VDISK-RAM-Disk verwendet
     (d.h. die Rechner-Hardware erlaubt nicht das Einblenden des Speichers
     zwischen den Adaptern, also im oberen Speicherbereich).
     Selbst die Angabe von /CHIPSET=RAM erschliet auf solchen Rechnern
     nicht die HMA, die eigentlich dennoch fr DOS genutzt werden
     knnte. HIMEM bricht mit einer Fehlermeldung ab, und der optionale
     DPMS-Server kann wegen des fehlenden XMS-Servers (durch HIMEM
     bereitgestellt) ebenfalls nicht geladen werden.

     Trotzdem ist es mglich, die 384 KByte Extended Memory fr DOS sinnvoll
     zu nutzen (evtl. kann man auch /CHIPSET=none versuchen):

      DEVICE=c:\nwdos\HIMEM.SYS /CHIPSET=ram /USE=FF00-FFFF
      DEVICE=c:\nwdos\DPMS.EXE
      DOS=HIGH

     Diese Angaben (auerhalb der Bereichsgrenzen von USE!!!) in CONFIG.SYS
     erschlieen die HMA (64 KByte) fr DOS, auerdem kann danach DPMS ge-
     laden werden und verschiedene Systemprogramme (NWCACHE, STACKER,
     DELWATCH, NWCDEX, etc.) knnen so das restliche Extended Memory fr
     DOS nutzen. So sind trotz nicht vorhandener UMBs recht stattliche
     Speicherkonfigurationen mglich!!!

     Achtung: Die DPMS-Version 1.42 (aus Update 14) bereitete mir auf
     zwei verschiedenen 286er-Rechnern (ohne UMBs, aber mit Extended
     Memory) in dieser Kombination Probleme, die zum Hngen des Rechners
     whrend der Installation des DPMS-Treibers fhrten. Es ist mglich,
     da dies auf Ihrem System nicht auftritt, allerdings mute ich auf
     die Version DPMS 1.41 (aus Update 13) zurckgreifen oder die neue
     Version 1.43 (aus Update 15) verwenden, die hier problemlos arbeitete.

     Sofern das Chipset des Mainboards von HIMEM untersttzt wird, sind
     auch exotische Probleme lsbar, wie etwa auf Rechnern mit 512 KByte
     Basisspeicher 128 KByte umzumappen, um den Speicher bis 640 KByte auf-
     zufllen. Auch die Nutzung des Video-Speicherbereichs ist mglich
     (aber offenbar nicht fr /CHIPSET=RAM in Verbindung mit EGA/VGA).


   ii. EMM386.EXE:
   ---------------

     Auf 386ern wird i. allg. statt HIMEM der Speichermanager EMM386
     verwendet, der durch Speichervirtualisierung (V86-Modus) erheblich
     bessere Mglichkeiten ermglicht (HIMEM ist im Gegensatz zu MS-DOS
     hier i. allg. nicht notwendig und eher hinderlich; seine Funktionalitt
     wird bei Novell DOS von EMM386 bereitgestellt).

     Der Standardaufruf drfte auf den meisten Systemen wie folgt aussehen:

      DEVICE=c:\nwdos\EMM386.EXE /MULTI=on /DPMI=on /FRAME=xxxx
      DEVICE=c:\nwdos\DPMS.EXE
      DOS=HIGH,UMB

     Die Kombination /MULTI=on /DPMI=on, die sowohl den Multitasking-
     Support, als auch einen DPMI-Server einrichtet, der auch von DOS-
     Programmen ohne eigenen Extender genutzt werden kann, ohne dafr
     unter MS Windows laufen zu mssen, hat mir i. allg. noch keine
     Probleme bereitet.
     Mit frhen Versionen von Novell DOS soll es jedoch zu Problemen mit
     4G-Applikationen gekommen sein: Hinweise bei den Updates beachten.
     Lediglich SemWares TSE 2.0 produziert auch mit Update 15 noch
     Schutzfehler, wenn er unter einem multitaskenden TASKMGR gestartet
     wird und in riesigen Dokumenten schnell geblttert wird. Hier reicht
     es aber, TSE ber einen Batchjob aufzurufen, der direkt vor dem Aufruf
     "DPMI off" und direkt danach wieder "DPMI on" ausfhrt (wirkt fr
     jedem Task lokal). Unter anderen Randbedingungen bereitet auch TSE bei
     mir keine Probleme mit /MULTI=on /DPMI=on. Sollten wider Erwarten
     dennoch Probleme auftreten, brauchen Sie deshalb noch lange nicht
     auf Novell DOS verzichten. Richten Sie einfach im Boot-Men eine
     Konfiguration mit /MULTI=off /DPMI=off ein.
     Damit schrauben Sie die Extrafhigkeiten des Speichermanagers zwar fast
     auf das Niveau von MS-DOS 6.22 EMM386 zurck, aber es knnen auch keine
     Probleme mehr mit DPMI auftreten. Sollte es sich um eine 4G-Applikation
     handeln, knnen Sie auch den mit einem Update hinzugefgten Parameter
     /PIC=ON|OFF ausprobieren. Eine andere Lsung ist es, die Applikation
     aus der DOS-Box von MS Windows 3.1x (im Erweiterten 386er Modus) aufzu-
     rufen. MS Windows berdeckt Novells DPMI-Server durch eigenen Support,
     und der gilt schlielich fr die meisten DPMI-nutzenden Programme als
     Referenz...

     Es gibt jedoch einige Mglichkeiten, den verfgbaren Speicher zu
     erhhen:


     a) BIOS-Shadowing:

     Diese Option dient der Erhhung der Zugriffsgeschwindigkeit auf die
     ROMs (i. allg. 8 oder 16 Bit breit und mit vielen Waitstates versehen),
     indem diese ins 16- oder 32-bittige RAM umkopiert, dort schreib-
     geschtzt und an die ursprngliche Adresse (ber die BIOSe) gemappt
     werden. Das Shadowing kostet keinen Adreraum, bentigt aber genau so
     viel RAM-Speicher (der fr anderweitige Nutzung wegfllt), wie Segmente
     als Schattenspeicher eingerichtet werden.

     Das Shadowing ist theoretisch ab XTs mit 1 MByte mglich, praktisch
     alle ATs (ab 286er) bieten Shadow-Mglichkeiten ab Chipset unter
     Kontrolle des BIOS-Setup-Programms an. Ab 386er-Prozessor ist mit
     entsprechendem Speichermanager (EMM386) im V86-Modus auch das virtuelle
     Shadowing mglich. Die etwas geringere Ausfhrungsgeschwindigkeit der
     Programme im V86-Modus gegenber dem Real Mode (durch den Overhead
     des stndigen Moduswechsels zwischen Protected Mode und V86-Modus)
     ist meistens kein Problem, da man i. allg. erst durch die Features
     des Speichermanagers die Freiheit bekommt, entsprechend viele Pro-
     gramme zur Systemoptimierung zu laden, die dann diesen Geschwindig-
     keitsnachteil bei Weitem wieder aufwiegen. Sollten Sie jedoch ein
     Chipset haben, da sehr flexible Einstellungen fr BIOS-Shadowing und
     EMS-Hardware-Emulation ermglicht und sollten Sie weder VCPI, DPMI
     noch die Multitasking-Mglichkeiten des TASKMGR bentigen, mag es
     dennoch im Einzelfall sinnvoller sein, EMM386 nicht zu laden (und
     evtl. auf HIMEM.SYS auszuweichen).

     Es ist wichtig, zwischen zwei 'Ressourcen' zu unterscheiden:

      Verfgbarer RAM-Speicher
      Verfgbarer Adreraum im ersten MegaByte

     Da die meisten heutigen Rechner ber mehrere MegaByte RAM-Speicher
     verfgen, DOS aber prinzipiell nur im ersten MegaByte laufen kann
     (mal von speziellen Strategien wie DPMS (oder DOS-Extendern ber DPMI)
     abgesehen), ist der Adreraum fr DOS-Systeme eigentlich die kostbarere
     Ressource. Die Gre des UMB-Speichers, den ein Speichermanager
     fr Gertetreiber, TSRs und den DOS-Kernel verfgbar machen kann, ist
     entscheidend dafr, wie viel Basisspeicher (unterhalb 640 KByte) letzt-
     endlich zur Verfgung steht. U.U. ist es sinnvoller, einige hundert
     KiloByte Extended Memory fr einen Speichermanager wie EMM386 zu
     opfern, um mit dessem virtuellen Speicherabbild einige zehn KiloByte
     UMB-Speicher nutzbar zu machen. Dies gilt besonders fr das virtuelle
     Shadowing und fr die EMS-Emulation, die im folgenden besprochen
     werden:

     Tip:

     Smtliches Shadow-RAM im BIOS-Setup abschalten, wenn EMM386 in den
     V86-Modus schalten darf (d.h. wenn sich keine Anwendungen an dieser
     Betriebsart stren). Diesen Speicher kann man im BIOS-Setup dem
     Extended Memory zuschlagen (Memory-Relocation enabled). Auerdem
     sollten auch alle anderen Shadow-Programme (wie FASTBIOS.SYS von
     manchen SuperVGA-Karten) entfernt werden.
     Auch wenn dies auf den ersten Blick nicht sinnvoll erscheint (und von
     frheren Rechnergenerationen und lteren, weniger leistungsfhigeren
     Versionen der Speichermanagern her anders gewohnt):
     Das virtuelle Shadowing der BIOS-ROMs, das der Speichermanager EMM386
     von Novell DOS im V86-Modus ermglicht, kann erheblich besser dosiert
     werden, als es die Rechner-Hardware blicherweise erlaubt. Daher ist
     diese Software-Mglichkeit der Hardware-Option vorzuziehen, wenn es um
     optimale Speicherausnutzung geht.

     ber Anweisungen der Form

      DEVICE=c:\nwdos\EMM386.EXE /RAM=xxxx-xxxx

     ist es mglich, einzelne BIOSe ganz gezielt als Schattenspeicher zu
     konfigurieren, allerdings kann man hier (im Gegensatz zum Hardware-
     Shadow des Rechners) die notwendigen Bereiche sehr genau angeben
     (die Rechner-Hardware bietet meist nur Segmente mit 32 - 128 KByte
     zur Auswahl).
     Auerdem kann man Bereiche aussparen, die nur whrend der
     Initialisierung des BIOS bentigt werden, d.h. nur
     einmal durchlaufen werden (also nur den zur Laufzeit wirklich aktiven
     Code als Schattenspeicher aktivieren).

     Ein 32 KByte Video-BIOS ist meist nur mit 20 - 30 KByte Code gefllt,
     davon werden weitere 5 KByte nur whrend der Init bentigt, ein
     Shadowing der kompletten 32 KByte (oder mehr, wie allgemein blich)
     wre also Speicher- und Adreraumverschwendung, besonders wenn EMM386
     sowieso verwendet wird.

     Ein 64 KByte Main-BIOS besteht meist aus 32 KByte Setup- und Diagnose-
     Programmen (die wohl nur beim Booten bentigt werden und insofern nicht
     als Schattenspeicher eingerichtet werden mssen), der aktive Code
     drfte sich meist auf ca. 25 - 30 KByte beschrnken. Auch hier lt
     sich also einiges an Speicher und besonders Adreraum sparen (und fr
     andere Dinge einsetzen), wenn man das Shadowing dem Speichermanager
     berlt und nicht dem Mainboard.
     Nebenbei werden dadurch auch manche Probleme vermieden, wenn etwa eine
     Netzadapterkarte oder ein Spezialkontroller ein eigenes BIOS mitbringt,
     dem ein Bereich eines Dual-Ported-RAMs (memory mapped IO) folgt
     (worber z.B. die Kommunikation mit der Karte stattfindet). Wenn der
     Rechner hardware-mig nur sehr groe Bereiche als Schattenspeicher
     einrichten kann, mu man die Karte i. allg. so konfigurieren, da
     zumindest ihr RAM-Fenster auerhalb des Shadow-Bereichs liegt (denn
     in als Schattenspeicher eingerichtetes ROM kann man nicht schreiben).
     Dadurch mu man den UMB-Bereich fragmentieren, was wiederum bedeutet,
     da grere Programme nur sehr schwer im UMB-Bereich untergebracht
     werden knnen und obendrein an den bergngen brachliegende Speicher-
     bereiche entstehen.

     Problematisch drfte es nur sein, die aktiven Bereiche der BIOS heraus-
     zufinden, hier kann nur ein erfahrener Systemprofi weiterhelfen (Dies
     hier auszufhren, wrde den Umfang des Dokumentes sprengen; hilfreich
     sind jedoch QEMM und MFT.)

     Eine Steigerungmglichkeit bietet sich an, wenn man BIOS-Bereiche, die
     nur whrend der Initialisierung bentigt werden, nicht nur NICHT
     als Schattenspeicher einrichtet, sondern als UMBs freigibt.
     Da der Speichermanager hier jedoch ROM-Code erkannt hat, wird er sich
     normalerweise weigern, diese Bereiche fr Programme zu verwenden.

     Mit der Option

      EMM386 /USE=xxxx-xxxx

     kann man jedoch auch kleinere Speicherblcke gezielt ber ungenutzte
     BIOS-Adressen mappen (da dies im virtuellen Modus geschieht, mu man
     auch nicht mit Hardware-Problemen durch aufeinander arbeitende Bus-
     treiber rechnen) und so zum Hochladen von Programmen nutzen.

     Auch hier ergibt sich lediglich das Problem, die Bereiche herauszu-
     finden, die effektiv nicht benutzt werden (d.h. nur whrend der Init
     oder whrend des Setups). Im Zweifel hilft Probieren und paragraphen-
     weises (16 Bytes) Herantasten an die Grenzen (allerdings kann EMM386
     Bereiche aufgrund der Hardware-Eigenschaften von 386ern immer nur 
     4 KByte verwalten, so da z.B. EXCLUDE=x000-x001 den Bereich x000-x100
     ausschliet. Trotzdem ist es anscheinend mglich, durch sich ber-
     lappende Angaben auch kleinere Bereiche fr Programme zu verwenden.
     MEM liefert hier nicht ganz eindeutige Aussagen. Siehe Kapitel V.2.).
     Dabei sollte man bedenken, da die Initialisierungsroutinen der BIOSe
     meist an deren Anfang liegen, auerdem meist am Ende von Zusatz-BIOSen
     noch kleinere Bereiche frei sind (Inhalt FFh oder 00h); das Setup-
     Programm liegt i. allg. bei F000-F7FF.

     Achtung:

     Eine Doppelnutzung mu hier mit Sicherheit ausgeschlossen werden,
     andernfalls wird der Rechner frher oder spter (meist das erstere)
     abstrzen. EMM386 hat keine Mglichkeit, die Zulssigkeit eines
     Zugriffs auf einen mit /USE freigeschalteten Speicherbereich zu
     berprfen. /USE mappt virtuell Speicher ber die angegebenen
     Bereiche; evtl. darunterliegender BIOS-Code etc. wird (zumindest
     aus der Sicht von DOS) dauerhaft verdeckt.

     Auerdem sollte man beachten, da logischerweise entsprechend der mit
     /USE deklarierten Speichergre an anderer Stelle (im Extended Memory)
     Speicher fehlt. Sollte die Rechner-Hardware also selbstndig RAM an
     Stellen einblenden, fr die auch /USE angegeben wurde, sollte man
     entweder diesen Speicher ber hardware-mige Memory-Relocation dem
     Extended Memory zuschlagen oder diese Bereiche von /USE ausschlieen.
     Nur so kann man verhindern, da sozusagen zwei Ebenen von Speicher
     bereinander liegen und der 'unten' liegende Speicher verstndlicher-
     weise von jeglicher Nutzung ausgeschlossen ist.
     Da man aber durchaus 30 - 50 KByte (!!!) wertvollen UMB-Platz gewinnen
     kann, lohnt sich das etwas aufwendige Tuning.


     b) EMS-Emulation:

     Der Speichermanager EMM386 kann auch EMS-Speicher simulieren. Da der
     Speicher (EMS, XMS) aus einem gemeinsamen Pool bedient wird und man
     sich nicht auf eine exakte Verteilung festlegen mu, bietet es sich
     an, *immer* einen EMS-Seitenrahmen anzulegen, damit auch Programme,
     die EMS-Speicher bentigen, ohne Sonderkonfiguration laufen knnen
     (es sei denn, keines Ihrer Programme wre auf EMS angewiesen).
     Das einzige Argument, das noch gegen die Einrichtung eines Seiten-
     rahmens bleibt, ist, da durch den Seitenrahmen 64 KByte Adreraum
     (meist) im oberen Speicher 'verschwendet' werden, die man sonst als
     UMBs nutzen knnte.

     Diese Aussage lt sich aber weitestgehend entschrfen, wenn man den
     Rahmen an eine geschickte Position legt. Wie oben angesprochen, wird
     das Setup-Programm des Main-BIOS i. allg. nur whrend der Init be-
     ntigt, daher knnte man den EMS-Seitenrahmen zur Hlfte ber dieses
     BIOS legen, und so weitere 32 KByte Adreraum fr UMBs gewinnen (dies
     ist bei MS-DOS Speichermanagern nicht mglich). Damit der Speicher-
     manager diese Einstellung akzeptiert, ist es allerdings notwendig,
     die Option /USE zu verwenden, etwa:

      EMM386 /FRAME=E800 /USE=F000-F7FF

     Auerdem sollte man versuchen, evtl. vorhandene Adapter-ROMs (Netz-
     adapterkarten u..) hinter diese Page-Frame zu legen, damit sie nicht
     mehr anderweitig Adreraum verbrauchen. Diese Doppelnutzung bereitet
     normalerweise keine Probleme, solange nicht z.B. die Netzwerk-Software
     EMS-Speicher bentigt. Ein Treiber fr die Karte wird problemlos auf
     das Adapter-ROM zugreifen knnen, ein Programm, das EMS verwendet,
     mappt seine EMS-Seiten virtuell ber dieses ROM und lt sie bei
     seiner Beendigung auch wieder verschwinden. Theoretisch kann diese
     Doppelnutzung zu Deadlocks fhren, wenn Anwendungen von unzulssigen
     Annahmen ausgehen (etwa, da sie ihre Speicherseiten eingeblendet
     lassen knnen, oder wenn EMS-nutzende TSRs den aktuellen Zustand bei
     Ein- und Auslagern nicht abspeichern), aber sauber und umsichtig
     programmierte Software sollte damit in den meisten Fllen zurecht-
     kommen. Sollten dennoch Probleme auftauchen, mssen EMS-nutzende
     Programme berprft werden. Kritisch sind u.U. EMS nutzende Gerte-
     treiber, unkritisch sind TSRs, die sich einfach nur bis zur Aktivierung
     irgendwo hin auslagern wollen (z.B. SDRes).
     Dieses Verfahren kommt brigens der Stealth-Funktion von QEMM schon
     sehr nahe, nur da ein uerer berwachungsmechanismus fehlt.

     Mit ein bichen Tftelei lt sich so das System stark optimieren
     (meist mu man ja erstmal wissen, da solche Dinge berhaupt mglich
     sind): Eigene Erfahrungen haben gezeigt, da dieses Verfahren in sehr
     vielen Fllen sehr gut und stabil funktioniert.


     c) Ein Beispiel:

     Ein Auszug aus einer CONFIG.SYS eines mit VGA (A000-AFFF,B800-BFFF) und
     HGC (B000-B7FF/BFFF) bestckten 386er mit Intel-Chipset und Phnix-BIOS
     (F000-FFFF) und ET4000-BIOS (C000-C7FF):

      DEVICE=c:\nwdos\EMM386.EXE /MULTI=on /DPMI=on /FRAME=E800 /VIDEO
                                 /ROM=C100-C7FF,F800-FFFF
                                 /USE=C800-E7FF,F000-F7FF
                                 /VERBOSE
      DEVICE=c:\nwdos\DPMS.EXE

     Es werden hier nur die im laufenden Betrieb notwendigen Teilbereiche
     der BIOSe als Schattenspeicher eingerichtet (nur dort bringt es einen
     Geschwindigkeitszuwachs), der EMS-Seitenrahmen liegt zur Hlfte ber
     dem Main-BIOS (genauer ber dem gesamten Setup-Programm).
     (Auf einem anderen hnlichen Rechner liegt hinter dem EMS-Seitenrahmen
     noch ein HP-IB-Streamer-ROM (E800-EBFF), und es funktioniert...)

     Gegenber dem Standard (Shadowing durch Rechner-Chipset):

      DEVICE=c:\nwdos\EMM386.EXE /MULTI=on /DPMI=on /FRAME=auto /VIDEO
                                 /VERBOSE
      DEVICE=c:\nwdos\DPMS.EXE

     konnten bei gleicher Performance gegenber der Standardeinstellung
     (deren Speicherbilanz schon besser als die von MS-DOS war) etlicher
     sonst verschwendeter Speicher (ca. 64 KByte) gespart und obendrein
     mehr UMBs (ca. 32 KByte) zur Verfgung gestellt werden.
     Was will man mehr...


     d) Video-Speicher nutzen:

     Mit einer Kombination aus den Optionen /USE und /VIDEO lt sich
     auf zwei grundverschiedene Art und Weisen noch mehr Speicher bereit-
     stellen - sowohl als Ergnzung fr den konventionellen Speicher
     (bis zu 96 KByte mehr) als auch als zustzlichen UMB-Speicher
     (ebenfalls bis zu 96 KByte mehr). Nheres hierzu in Kapitel V.6.

                                                                             
  ---------------------------------------------------------------------------

  V.2. Zustzliche Optionen von EMM386.EXE [97-03-24]:
  ====================================================

   Stichworte: EMM386.EXE, /HANDLES, /PIC, /DMA, DTU, Optionen, Updates

   Neben den im DOSBOOK und im Handbuch erwhnten Optionen bietet der
   Speichermanager noch einige zustzliche Aufrufparameter, die zum Teil
   wenigstens in der eingebauten Hilfe aufgelistet werden (der einleitende
   SwitChar ist optional):

    EMM386 /HELPDEVICE   Hilfe fr CONFIG.SYS-Parameter
    EMM386 /?            Hilfe fr Kommandozeilenparameter, akzeptiert
                         werden jedoch auch /H, /HELP bzw. /HILFE.

   brigens treten - ganz allgemein - auch bei den anderen Kommandos bei
   Aufruf der jeweils eingebauten /? Hilfe teilweise zustzliche Optionen
   'zu Tage', so da bei der Suche nach mglichen Lsungen fr Probleme in
   jedem Fall angeraten sei, nicht nur das Handbuch und das DOSBOOK zu
   verwenden. Insbesondere Erweiterungen durch Updates finden nur in der
   in die Kommandos eingebauten Hilfe Niederschlag.

   Obwohl EMM386 in seinen /INCLUDE, /EXCLUDE, /USE, /VIDEO Parametern als
   Bereichsangaben Werte mit einer Genauigkeit eines Paragraphen (16 Bytes)
   akzeptiert (dies ist jeweils die letzte Stelle von xxxx-xxxx), arbeitet
   das virtuelle Mappen (aufgrund von CPU-Gegebenheiten) nur mit Bereichs-
   gren  4 KByte. Mchten Sie z.B. einen kleinen Bereich ausschlieen
   (/EXCLUDE=xxx0-xxx1), so schliet EMM386 in Wirklichkeit den Bereich
   xxx0-xxFF aus. Wenn solche Bereiche nicht genau auf einer 4 KByte-Grenze
   liegen, so kann es vorkommen, da der auszuschlieende Bereich sich nicht
   ganz mit dem ausgeschlossenden Bereich deckt (zumindest wenn man MEM /A
   trauen kann). Hier ist also bei Optimierungen auf's letzte Byte Vorsicht
   geboten (siehe auch Kapitel V.1.).

   Die zustzlichen Optionen sind:
    (nur in der eingebauten Hilfe dokumentiert)

    EMM386 /HANDLES=1..255    Anzahl EMS- (und XMS-) Handles
    EMM386 /PIC=ON|OFF        Virtualisierung der PICs (der beiden Inter-
                              rupt-Controller 8059) zur Lsung von Problemen
                              mit DOS-4G-Extender-Programmen (ab EMM386
                              3.05+), wie von vielen Spielen verwendet.
                              Mehr dazu wird in der Update HISTORY.TXT und
                              in der /HELPDEVICE Hilfe ausgegeben. Wenn
                              Sie den Parameterwert nicht angeben, wird OFF
                              angenommen. (Evtl. funktioniert auch PIC=Y???)
    EMM386 /DMA=0..65535      DMA-Puffer
    EMM386 /QUIET             Unterdrckt Meldungen (funktioniert aber bei
                              mir nicht, stattdessen erscheint (bei Update
                              15) eine Fehlermeldung des internen Moduls
                              DPMI.SYS...)
    EMM386 /VERBOSE           Gibt (ausfhrliche) Startmeldungen, offenbar
                              der Standard
    EMM386 /NOVCPI            siehe EMM386 /HELPDEVICE
    EMM386 /NOEMS             siehe ""
    EMM386 /MULTITASKING=ON|OFF  genauso wie /MULTI=ON|OFF
                              Ldt den internen Multitasking-Kernel
                              KRNL386.SYS des Systems (war in der Beta-
                              Phase ein externer Treiber). Wird u.a. fr
                              den den TASKMGR als Multitasker bentigt.
    EMM386 /ROM=xxxx          Wird bei xxxx nur die Startadresse angegeben,
                              so versucht der Speichermanager, einen an
                              dieser Adresse liegenden ROM-Header 55h AAh
                              auszuwerten und daraus die Lnge des ROMs zu
                              ermitteln. Dies funktioniert aber nur dann,
                              wenn man wirklich die Startadresse des ROMs
                              angibt und nicht etwa nur die Adresse, ab der
                              Shadow-RAM eingeblendet werden soll, denn
                              dort mu nicht unbedingt gerade ein ROM-Header
                              beginnen.

   Undokumentierte Optionen:

    EMM386 /GATEA20=AT|HP|INT15|MCA|PS2|XMS
                              ist bis auf die Einstellung PS2 dokumentiert.
                              Wo der Unterschied zwischen MCA und PS2
                              liegen mag, ist unklar (denn PS/2 Rechner
                              haben blicherweise einen MCA-Bus). Der
                              Treiber besitzt interne Sonderbehandlungen fr
                              ISA, EISA, MCA, PCI, CPQ und XMS; in wieweit
                              dies mit dieser Option zusammenhngt, ist mir
                              nicht bekannt.

    EMM386 /DPMS[=ON|OFF]     Dieser undokumentierte Parameter wird nicht
                              in der Hilfe aufgelistet, obwohl intern sogar
                              eine entsprechende Hilfemeldung implementiert
                              ist, die nur nicht angesprungen wird. Er wird
                              auch nicht - wie andere ungltige Optionen -
                              zurckgewiesen, ist aber dennoch in der
                              ausgelieferten Fassung von EMM386.EXE ohne
                              Funktion, d.h. DPMS-Support kann damit nicht
                              aktiviert werden. Im DPMS-SDK gibt es aber
                              eine spezielle Fassung von EMM386.EXE, die
                              DPMS.SYS enthlt. Sie ist notwendig, um DPMS-
                              nutzende Programme zu debuggen - mit dem
                              Windows-Debugger WDEB386.EXE, der in
                              Microsofts Windows SDK/DDK ausgeliefert wird.
                              EMM386.EXE besteht aus einer Vielzahl
                              interner, aber dennoch eigenstndiger Treiber
                              (u.a. DPMI.SYS und THREADS.SYS), die von einer
                              LOADER genannten Routine whrend der Instal-
                              lation von EMM386 bei Bedarf mit eingebunden
                              werden (mit etwas Geschick kann man die
                              einzelnen Bestandteile auch wieder voneinander
                              trennen).
                              Schon in 10/1992 existierte eine Vorversion
                              von DPMS.EXE.

    EMM386 /DEBUG ???         undokumentiert, wird i. allg. (wahrscheinlich
                              nur vom ummantelnden LOADER) zurckgewiesen
                              und EMM386 ldt nicht. Trotzdem haben alle
                              internen Treiber entsprechende Parameter-
                              berprfungen implementiert. Zwei Vermutungen:
                              Entweder es handelt sich um einen Parameter,
                              der (whrend der Entwicklung) das Debuggen
                              von EMM386 ermglicht oder hiermit knnten
                              auch die recht umfangreichen Fehlermeldungen
                              von EMM386 unterdrckt werden (falls per
                              Default /DEBUG=ON wre (dies knnte dann
                              evtl. etwas mehr XMS Speicher zur Verfgung
                              stellen).
                              Aber: Beides ist reine Spekulation...

    EMM386 /EMS ???           undokumentiert, wird zurckgewiesen. EMM386
                              ldt nicht.

    EMM386 /W[=ON|OFF]        Der Parameter /WEITEK kann wahrscheinlich
                              mit /W abgekrzt werden, im Gegensatz zum
                              Parameter /WEITEK, bei dem immer =ON oder
                              =OFF angegeben werden mu, kann man bei /W
                              den Wert weglassen.

   Weitere Parameter oder spezielle Schlsselworte, die noch nicht genauer
   zugeordnet werden knnen: HIMEM, GLOBAL, LOCAL, T3100SX und T4400SX.


   Alte DR DOS Optionen, die nicht mehr untersttzt werden:

    EMM386 /BDOS=AUTO|NONE|FFFF|xxxx  Wird insofern aus Kompatibilitt zu
                              DR DOS untersttzt, als da eine Warnmeldung
                              erscheint, die die Verwendung reklamiert und
                              stattdessen die Verwendung der CONFIG.SYS
                              Direktive DOS=[HIGH,UMB] vorschreibt.
                              Die Mglichkeit, die Ladeadresse explizit
                              anzugeben, fllt damit also weg.
    EMM386 /AUTOSCAN          Wird wie /BDOS nicht mehr untersttzt, aber
                              mit einer entsprechenden Warnung quittiert.
                              Verwenden Sie stattdessen /INCLUDE (was auch
                              direkt angenommen wird).
    EMM386 /KB                Wird ebenfalls nicht mehr untersttzt und
                              erzeugt eine Warnung. Stattdessen kann man
                              (in umgekehrter Logik) mit /INT15 einen
                              Speicherbereich von der Verwendung aus-
                              schlieen.
    EMM386 /LOWEMM            Wird nicht mehr untersttzt, da obsolet.
                              EMM386 ldt nicht.


   Wie viele Benutzer anderer Speichermanager an Novell DOS' EMM386 be-
   mngeln, unterbricht dieser Manager relativ hufig die Behandlung und
   meldet verschiedene Arten von Schutzfehlern. Allerdings machen sich die
   meisten Benutzer nicht klar, da sich EMM386 nicht ohne Grund meldet.
   Irgendein Programm (und zwar NICHT EMM386) hat eine unsaubere Aktion
   ausgefhrt, die, wenn sie durch den Schutz des Protected Modes nicht
   abgefangen wrde, frher oder spter zu einem verdeckten Fehler fhren
   wrde, der u.U. sehr schwerwiegende Fehlfunktionen oder Datenverluste
   nach sich ziehen knnte. Derartige Schutzvorkehrungen sind insbesondere
   beim Multitasking notwendig.
   Statt den Speichermanager zu beschuldigen, sollte man sich die Mhe
   machen, und die genauen Umstnde, die zu diesem Fehler fhren, analy-
   sieren und den Herstellern der Probleme bereitenden Programme einen
   Bug-Report schicken. Das Verhalten des EMM386 von Novell DOS hat sich
   bezglich seiner Eingriffe ber den Zeitraum der Updates schon stark
   verbessert (oder ist etwas oberflchlicher geworden und anderen
   Speichermanagern mehr angeglichen - wenn man es von der anderen Seite
   sieht).

   Fr Programmierer ist jedoch ein strenger Speichermanager ein wahrer
   Segen, weil man verdeckte Fehler sehr schnell merkt... Der Novell DOS
   Speichermanager ist besonders praktisch noch dazu, weil er nach seiner
   ausfhrlichen Fehlermeldung auch noch einen INT03h-Debugger-Interrupt
   anwirft. Wenn man im Hintergrund einen Debugger laufen lt, kann man
   u.U. direkt nach der Ursache forschen. Sehr empfehlenswert zu diesem
   Zweck ist zum Beispiel DTU 1.41+ (Downtown Utilities von Jeroen van
   Disseldorp, <jafcdiss@cs.ruu.nl>), weil dieses TSR nur 800 Bytes vom
   DOS-Speicher abzweigt (wenn es sich ins EMS auslagern kann), und
   trotzdem Online-ASCII-Tabellen, Taschenrechner, Dateibetrachter und
   Interrupt-Viewer, Speicher-Dump, Disassembler und anderes bietet und
   sich in diesem Fall automatisch aktiviert. Dieses Tool ist FreeWare
   und arbeitet problemlos sogar unter dem Multitasker TASKMGR als auch
   in DOS-Boxen von Windows (mit Novell DOS ab Update 13 reicht Aufruf-
   option DTU /5, mit lteren Novell DOS Speichermanagern bentigt man
   DTU /7).

   Falls Sie PKZIP (2.04g) unter dem multitaskenden TASKMGR (besonders
   in Hintergrundtasks) oder in Verbindung mit exzessiver Harddisk-
   Auslastung (NWCACHE /FLUSH=ON) whrend des Aufrufs aus Batchjobs (und
   mit DOS-Umleitungen) einsetzen, kommt es schon man vor, da scheinbar
   zufllig sporadische EMM386-Schutzfehler auftreten (vielleicht auch nur
   auf lteren 386sx-Rechnern???). In einem solche Fall sollten Sie zuerst
   versuchen, ob ein Druck auf <Return> nicht ohne Nachwirkungen die
   Kontrolle an die Anwendung zurckgibt (wie dies bei meinem Testrechner
   der Fall ist).

                                                                             
  ---------------------------------------------------------------------------

  V.3. Zustzliche Optionen von HIMEM.SYS: [96-10-30]
  ===================================================

   Stichworte: HIMEM.SYS, Ein-MegaByte-XTs, EEMS, EMS-Backfilling, DR DOS

   Obwohl der Treiber HIMEM.SYS auf heutigen Maschinen (ab 386er an auf-
   wrts) unter Novell DOS 7 nur noch sehr selten bentigt wird (denn
   EMM386 enthlt im Prinzip auch die Funktionen von HIMEM), ist dieser
   Treiber in Ausnahmesituationen dennoch wichtig. Besitzt Ihr Rechner
   z.B. ein bestimmtes Chipset oder spezielle Zusatzkarten, die von
   HIMEM.SYS untersttzt werden, kann es auch auf 386ern (und hher)
   sinnvoller sein, HIMEM.SYS vor EMM386 zu laden, da HIMEM.SYS dann
   z.B. die Untersttzung fr in der Hardware implementiertes EMS
   (3.2 und 4.0) und EEMS bietet. Natrlich kann EMM386 (bis auf eine
   Emulation von EEMS und EMS 4.0 Backfilling) das Ganze auch im V86-Modus
   bereitstellen, aber erstens ist dies etwas langsamer, zweitens kann so
   z.B. keine EMS-Hardware untersttzt werden, und drittens gibt es manche
   Programme, die unbedingt im Real Mode oder sogar im Protected Mode
   laufen wollen. Wenn EMM386 im V86-Modus arbeiten mu, knnen solche
   Programme nicht ausgefhrt werden. 286er-Computer kommen normalerweise
   ohne HIMEM.SYS nicht aus, wenn sie eine Speicherverwaltung bentigen
   (auf ihnen arbeitet EMM386 nicht).

   Achtung: Die HIMEM.SYS-Version 2.3x von Novell DOS 7 vertrgt sich
            auf COMPAQ-Rechner nicht mit Novells Client32 fr DOS und
            Windows 3.1x, wenn DOS nicht in die HMA geladen wurde. Also
            entweder DOS=HIGH,UMB in CONFIG.SYS einfgen, oder stattdessen
            auf EMM386.EXE ausweichen.

   Neben den im Handbuch und DOSBOOK beschriebenen Optionen kennt auch
   dieser Treiber noch einige Einstellungen mehr, die im folgenden
   aufgelistet werden.


    /CHIPSET=EMSALL | EMSUMB | AM286ZX | HEDAKA | NEAT | SCAT | RAM | NONE

                             Diese Option ist zwar dokumentiert, seine
                             konkrete Verwendung ist allerdings den meisten
                             Benutzern nicht besonders klar. Deshalb sollen
                             hier ein paar nicht unbedingt offensichtliche
                             Details diskutiert werden:

                             Die Option RAM funktioniert auch auf XTs mit
                             1 MByte Speicher, die so UMBs zur Verfgung
                             stellen knnen (siehe in Kapitel V.1.). Die
                             Option sagt aus, da in dem angegebenen
                             Adrebereich permanent RAM vorliegt (wie auch
                             immer es dort 'hingekommen' ist), HIMEM blendet
                             hier keinen Speicher ein. (Bei dem Versuch,
                             hier Video-Speicher einer EGA unterzuschieben,
                             mute ich allerdings feststellen, da HIMEM
                             entweder doch auf die Existenz von RAM ber-
                             prft oder den Video-Speicherbereich generell
                             ausschliet...???)

                             Die Mglichkeit von EMS-Backfilling (von EMS
                             4.0/EEMS) kann die Leistung von Multitaskern
                             wie DESQview auf lteren Rechnern erhhen.
                             Allerdings mu man sich entscheiden, wer
                             diese Mglichkeiten zum Einblenden von Speicher
                             auerhalb der Page-Frame nutzen knnen soll.
                             EMM386 bietet zwar die Mglichkeit, EMS zu
                             emulieren; das, was man allgemein unter EMS-
                             Backfilling versteht, wird dabei aber nicht
                             nachgebildet (obwohl EMM386 auf gewissen Weise
                             nichts anderes macht, als virtuell Speicher an
                             bestimmte Adrelagen abzubilden, aber eben
                             nicht ber eine EMS-Schnittstelle). HIMEM kann
                             EMS-Hardware generell nicht nachbilden, sondern
                             nur darauf aufsetzen (bei bestimmten unter-
                             sttzten Chipstzen direkt auf der Chipsatz-
                             Hardware oder ber einen vorher geladenen
                             herstellerspezifischen Treiber fr eine EMS-
                             Hardware ber dessen EMS-Software-Schnitt-
                             stelle). Dabei kann HIMEM von einer hardware-
                             mig angebotenen Mglichkeit fr EMS-Back-
                             filling Gebrauch machen und so auch fr
                             Novell DOS 7 ausnutzen:

                             Mit den Einstellungen EMSUMB und EMSALL kann
                             man HIMEM mitteilen, einen per zustzlichen
                             externen Treiber bereitgestellten EMS-Support
                             zur Einblendung von UMB-Speicher zu 'mi-
                             brauchen'. EMS 4.0/EEMS Hardware kann ber den
                             externen Treiber so programmiert werden, da
                             sie bis zu 128 KByte gleichzeitig an nahezu
                             beliebiger Adrelage einblenden kann (der hier
                             und im folgenden verwendete Wert von 128 KByte
                             wird in einer nachtrglichen Dokumentation zu
                             DR DOS 6.0 HIDOS.SYS, dem Vorgnger von
                             HIMEM.SYS erwhnt, in der Novell DOS Dokumen-
                             tation ist immer von 'gesamtem Speicher' die
                             Rede, vielleicht ist also auch noch mehr
                             mglich. Rckmeldungen willkommen...).
                             Mit der Option EMSALL weist man HIMEM an,
                             diese Mglichkeit eines EMS-Treibers komplett
                             fr sich in Anspruch zu nehmen. Auf diese Weise
                             kann HIMEM insgesamt 128 KByte UMB-Speicher zur
                             Verfgung stellen, allerdings sind damit die
                             Paging-Mglichkeiten der EMS-Hardware ausge-
                             schpft und es kann kein EMS-Speicher fr
                             EMS-nutzende Applikationen bereitgestellt
                             werden. ber diese 128 KByte hinausgehender
                             Speicher auf der EMS-Karte ist in dieser
                             Konfiguration zwangslufig nicht ansprechbar.
                             Allerdings besitzen viele EMS-Karten die
                             Mglichkeit, durch DIP-Schalter auf der Karte
                             zu whlen, ob der Speicher als EMS (Expanded)
                             oder Extended Memory zur Verfgung gestellt
                             werden soll. Meistens kann man den hardware-
                             mig bestckten Speicher auch auf beide
                             Methoden aufteilen. In diesem Fall sollten Sie
                             also nur 128 KByte als EMS-Speicher aktivieren
                             und den restlichen Speicher als Extended Memory
                             ab der Adrelage einblenden, ab der der
                             physikalische Speicher auf dem Mainboard des
                             Rechners aufhrt. Auf diese Weise knnen Sie
                             auch den restlichen Speicher der Zusatzkarte
                             nutzen, wenn auch nicht als EMS-Speicher.

                             Die zweite Mglichkeit besteht in der Angabe
                             der Option EMSUMB, die normalerweise auch von
                             selbst detektiert wird. In diesem Fall bentigt
                             HIMEM ebenfalls 128 KByte freien Adreraum
                             (blicherweise im UMB-Bereich des Rechners),
                             allerdings teilt HIMEM die Verwendung des
                             Speichers in 64 KByte fixierten Speicher als
                             UMB und 64 KByte fr eine EMS-Page-Frame ein.
                             Auf diese Weise lt sich der restliche als
                             EMS-Speicher reservierte Speicher auf der
                             Zusatzkarte ganz normal ber die Page-Frame
                             benutzen, lediglich die Mglichkeiten, Seiten
                             an beliebigen Stellen einzublenden (Backfilling
                             ist eine der optionalen Erweiterungen von EMS
                             4.0 gegenber 3.2) bleiben anderen Applika-
                             tionen natrlich versperrt, da diese Ressource
                             jetzt von HIMEM bentigt wird, um UMB-Speicher
                             einzublenden.

                             Damit HIMEM die EMS-Funktionen nutzen kann,
                             mu (und das wird hufig miverstanden) *vor*
                             HIMEM der entsprechende Hardware-Treiber des
                             Herstellers der Zusatzkarte geladen werden, der
                             das EMS-Interface auf die jeweilige Hardware
                             abbildet. Auf dieses Interface setzt dann HIMEM
                             mit seinen Funktionen auf. (Und auf 386ern und
                             Nachfolgern kann danach natrlich noch EMM386
                             geladen werden um weitere Mglichkeiten zu
                             bieten, normalerweise ist es jedoch in diesem
                             Fall sinnvoller, auf HIMEM zu verzichten.)
                             Dieser Treiber mu so konfiguriert werden, da
                             er auch die Funktionen bereitstellt, die HIMEM
                             bentigt (z.B. mssen bei bestimmten EMS-
                             Treibern die erlaubten Adrebereich erst
                             explizit freigeschaltet werden). Viele EMS 3.x
                             Zusatzkarten entfalten mit einem EMS 4.0
                             Treiber auch die Mglichkeiten von EMS 4.0,
                             es gibt aber auch Karten, die die optionalen
                             Erweiterungen von 4.0 (wie Backfilling) nicht
                             untersttzen.

                             Mchten Sie verhindern, da HIMEM fr sich
                             selbst EMS-Speicher nutzt, knnen Sie z.B.
                             /CHIPSET=NONE angeben oder den EMS-Treiber
                             erst nach HIMEM laden.

    /AUTOSCAN=               dokumentiert
    /INCLUDE=                dokumentiert
    /EXCLUDE=                dokumentiert
    /ROM=xxxx | AUTO | NONE  dokumentiert
                             Wird bei xxxx nur die Startadresse angegeben,
                             so versucht der Speichermanager, einen an
                             dieser Adresse liegenden ROM-Header auszuwerten
                             und daraus die Lnge des ROMs zu ermitteln.
                             Dies funktioniert aber nur dann, wenn man
                             wirklich die Startadresse des ROMs angibt und
                             nicht etwa nur die Adresse, ab der Shadow-RAM
                             eingeblendet werden soll.
    /VIDEO=                  dokumentiert
                             Mchten Sie den /VIDEO in Verbindung mit
                             /CHIPSET=EMSUMB verwenden, kann es notwendig
                             sein, dem EMS-Treiber, der von HIMEM geladen
                             wird, explizit mitzuteilen, im Video-Adre-
                             bereich Speicher einblenden zu knnen, so z.B.
                             bei ASTs EEMS-Treibern.
                             (Nicht geklrt ist, ob diese Option bei EGA-
                             Karten auch in Verbindung mit CHIPSET=RAM
                             funktioniert. Auf einem Testsystem (286er,
                             640 KByte Basisspeicher, HMA und Extended
                             Memory, ATI EGA Wonder 800+) funktionierte
                             dies jedenfalls nicht. Erfahrungsberichte
                             willkommen.)
                             Siehe auch Kapitel V.6.
    /XBDA                    dokumentiert
    /USE=                    dokumentiert (siehe Hinweise fr /CHIPSET=RAM)
    /GATEA20=AT|HP|MCA|XMS   zur bersteuerung der automatischen Wahl der
                             Steuerung der Adreleitung A20. Diese Leitung
                             dient auf 286ern (und hher) zum Freischalten
                             der A20-Leitung, um z.B. im Real Mode noch die
                             ersten 64 KByte des zweiten MegaBytes Haupt-
                             speicher adressieren zu knnen. Dieser Bereich
                             heit HMA (high memory area) und kann nach der
                             XMS-Spezifikation nur von einer Anwendung
                             gleichzeitig benutzt werden. Ist DOS der
                             Eigentmer, so steht die HMA anderen Programmen
                             wie Windows oder DESQview nicht mehr zur
                             Verfgung. Der von DOS nicht selbst benutzte
                             Speicher kann allerdings ber ein DOS-API auch
                             an andere DOS-Applikationen vergeben werden.
    /NOXMS                   nicht dokumentiert. Schaltet XMS-Support ab.
    /BDOS                    wird aus Kompatibilitt zu DR DOS 'unter-
                             sttzt', indem es abgefangen und mit einer
                             Fehlermeldung quittiert wird. Man soll statt-
                             dessen die CONFIG.SYS Direktive DOS=HIGH
                             verwenden.

                                                                             
  ---------------------------------------------------------------------------

  V.4. Bessere Speicherausnutzung mit selbsthochladenden Programmen:
  =====================================================[96-06-18]===

   Stichworte: Selbsthochlader, UMB, MEMMAX, LH, KEYB, NLSFUNC, SHARE,
               NWCDEX

   Novell DOS bietet verschiedene Mglichkeiten, Programme hochzuladen und
   damit kostbaren DOS-Speicher zu sparen.

   Nachdem man entsprechende Speichermanager geladen hat, kann man bestimmte
   Speicherbereiche gezielt sperren oder zur Verwendung freischalten. Alle
   zu ladenden Programme werden dann automatisch ohne weitere Manahmen in
   die freigeschalteten Bereiche geladen.

   Hierzu dient das Kommando MEMMAX, das die Verwendung der folgenden
   Bereiche kontrolliert:

    L Lower Memory: Standardmig gilt +L, d.h. die ersten 64 KByte (nicht
                    640 KByte!) sind fr Programme verfgbar. Wieso ist dies
                    abschaltbar?
                    Dies liegt in erster Linie an einem Segment-berlauf-
                    fehler in dem Algorithmus einer frhen Version von
                    Microsofts EXEPACK (einem recht ineffizienten .EXE-
                    Packer) und Linker, mit dem frher viele Programme
                    gepackt wurden (aber auch Vorab-Versionen von MS-DOS
                    6.0). Zu Zeiten, wo sich DOS nicht hochladen konnte,
                    waren die ersten 64 KByte des Systems immer belegt,
                    daher trat dieser berlauffehler nie auf. Ldt man
                    jedoch DOS hoch, wird der untere Speicher (um Ver-
                    wechselungen mit dem blichen Low-Memory (0 - 640
                    KByte) vorzubeugen, besser: unterste Speicher) fr
                    Programme frei und hier kam dann dieser Bug zu Tage.
                    MS-DOS bietet die gleiche Funktion mit dem Befehl
                    LOADFIX, der im Prinzip nichts weiter macht, als dem
                    Programm vorzutuschen, die untersten 64 KByte wren
                    bereits belegt. Paradox...

    V Video Memory: Nur mit EMM386.EXE/HIMEM.SYS Option /VIDEO, bei
                    MDA/HGC/CGA standardmig +V, bei EGA/VGA standardmig
                    -V, mu also bei Bedarf erst freigeschaltet werden.
                    Das ndern dieses Zustandes ist zumindest mittels
                    MEMMAX nicht unter dem TASKMAX/TASKMGR mglich (wohl
                    aber ber direkte API-Aufrufe, die aber die System-
                    stabilitt beeintrchtigen knnen).
                    Siehe auch Kapitel V.1. und V.6.

                    Achtung: Mit 4DOS 5.51 (nicht mit 4DOS 5.5c oder 4DOS
                    5.52a) kann diese Option zu Abstrzen fhren, siehe
                    Kapitel IV.4. und VII.3. sowie in 4DOS5TIP.TXT.

    U Upper Memory: Standardmig gilt -U. Siehe auch Kapitel V.1. und V.6.
                    (Per /USE aktivierte UMBs im Video-Speicherbereich
                    lassen sich mit diesem Schalter steuern, nicht mit +V.)


   LOADHIGH etc. werden hierfr nicht bentigt (bzw. diese Spezialkommandos
   bersteuern temporr die MEMMAX-Einstellungen). Da nicht alle Programme
   in allen Bereichen arbeiten, wird man jedoch im allgemeinen die Default-
   Einstellung beibehalten und LOADHIGH/LH/HILOAD zur gezielten Hochladen
   einzelner Programme verwenden.

   Eine Reihe Programme haben jedoch auch eigene Methoden implementiert,
   sich selbst hochzuladen und sind dabei nicht auf LOADHIGH angewiesen.
   Dies ist nicht etwa unntiger Luxus, sondern hat einige entscheidende
   Vorteile:

   Das jeweilige Programm 'wei' ber sich selbst am besten Bescheid,
   dadurch ist es mglich, da es nur bestimmte Teile in Lcken im oberen
   Speicher verlagert, da es whrend seiner Initialisierung noch im groen
   konventionellen Speicher arbeitet usw. Manche Programme sind zu gro,
   um mit LOADHIGH in UMBs verlagert zu werden, der sptere residente Kern
   wrde jedoch sehr wohl dort Platz finden, trotzdem wird das Programm
   normalerweise nicht hochgeladen werden knnen. Dadurch, da das Programm
   seinen eigenen Hochlader mitbringt, kann der UMB-Speicher effizienter
   ausgenutzt werden.

   Neben zunehmend mehr Treiberprogrammen mit dieser Fhigkeit (z.B.
   K3PLUS 6.22+ bzw. FreeKEYB) besitzen die folgenden DOS-Programme
   auch diese Fhigkeit:

    KEYB.COM    (nicht nur UMB, sondern auch HMA)
    NLSFUNC.EXE (nicht nur UMB, sondern auch HMA)
    SHARE.EXE   (nicht nur UMB, sondern auch HMA)

    NWCDEX.EXE  Obwohl der Treiber sich bis auf 7 KByte ber DPMS ins
                Extended Memory auslagern kann und diese restlichen 7 KByte
                prinzipiell in UMBs hochgeladen werden knnen, stellt sich
                dieses Unterfangen in der Praxis leider als sehr schwierig
                dar, da whrend der Initialisierung zunchst der gesamte
                Code (ca. 85 KByte) in den UMBs Platz finden mu. Dadurch
                mu der Treiber mglichst frh geladen werden. Um NWCDEX
                auch in CONFIG.SYS laden zu knnen, mu man einige Griffe
                in die Trickkiste anwenden (siehe Kapitel II.4.). All diese
                Design-Beschrnkungen gelten in verschrftem Mae auch fr
                MSCDEX, das mit mindestens 16 KByte zu Buche schlgt und
                noch mehr Speicher whrend der Init braucht.

    DELWATCH.EXE (kann sich via DPMS bis auf ca. 464 Bytes in den UMBs
                komplett ins XMS auslagern)

    NWCACHE.EXE
    ...

   Diese Programme sollten *nicht* mit LOADHIGH hochgeladen werden (obwohl
   das durchaus klappen mag), weil sie sich viel besser selbst hochladen
   knnen.
   Werden sie zustzlich erst mit LOADHIGH hochgeladen, stehen sie sich bei
   den begrenzten Platzverhltnissen im Upper Memory nur selbst im Weg, u.U.
   versagt sogar das gesamte Hochladen.

   Noch ein Hinweis zum Hochladen via DEVICEHIGH= oder LOADHIGH:

   Diese Direktiven untersttzen undokumentierte zustzliche Parameter, die
   evtl. beim Optimieren der Konfiguration sinnvoll einsetzbar sind, siehe
   Kapitel III.4. und V.5.

                                                                            
  --------------------------------------------------------------------------

  V.5. Hinweise zu LH/LOADHIGH/HILOAD: [96-06-16]
  ===============================================

   Stichworte: Region-Support, Hochladen

   Die Befehle LH/LOADHIGH von MS-DOS untersttzen die Parameter /L:...
   und /S fr spezielle MEMMAKER-Optimierungen.
   Bei Novell DOS 7 sind diese Optionen undokumentiert, da sie bis vor
   Update 14 hier - genau wie bei DEVICEHIGH= - keine nennenswerte Funktion
   hatten (SIZE=size gibt es bei LH nicht).

   Ab Update 14 (sicher aber Update 15) wird nun auch bei Novell DOS 7
   Region-Support untersttzt, d.h. es ist mglich, ganz gezielt anzugeben,
   in welchen Speicherbereich ein Programm geladen werden soll und welche
   Randbedingungen dabei bezglich der UMB-Bereitstellung gelten sollen.

   Bezglich der Syntax und Funktion siehe Kapitel III.4., Kapitel II.11.
   (Optimierungsmglichkeiten) sowie Kapitel V.1. und Kapitel V.7.

                                                                            
  --------------------------------------------------------------------------

  V.6. Video-Speicher fr Programme nutzen: [96-02-04]
  ====================================================

   Stichworte: MEMMAX, EMM386.EXE, HIMEM.SYS, HIDOS.SYS, /VIDEO

   i. Erweiterung des konventionellen Speichers (MEMMAX +V):
   ---------------------------------------------------------

   Novell DOS 7 (sowie DR DOS 6.0, mit Einschrnkungen auch schon DR DOS
   5.0) bieten eine Mglichkeit, einen ungenutzten Video-Speicherbereich
   als Erweiterung des konventionellen Speichers zu benutzen. Damit kann
   der 640 KByte-Bereich (dauerhaft oder temporr) in Abhngigkeit von der
   installierten Video-Hardware um bis zu 64 KByte (mit MDA/HGC) oder gar
   96 KByte (falls keine MDA/HGC) erweitert werden. Dies wird im Detail
   im DOSBOOK beschrieben. Hier sollen nur ein paar zustzliche Bemerkungen
   zur dahintersteckenden Technologie gegeben werden:

   - Wird der Video-Speicher per HIMEM.SYS (bzw. HIDOS.SYS) bereitgestellt,
     mu entweder im reservierten Video-Speicherbereich (A000-AFFF/B7FF)
     permanentes RAM vorhanden sein (z.B. durch eine Zusatzkarte) oder der
     Chipsatz des Rechners mu Mglichkeiten bieten, dort RAM hinzumappen.
     Unter Umstnden mu man hier mit der Optionen /USE, /RAM und /CHIPSET
     dem Speichermanager auf die Sprnge helfen.

     Mir war es bisher allerdings nicht mglich, den tatschlich vorhandenen
     Video-Speicher einer EGA-/VGA-Karte forciert als permanentes RAM zu
     deklarieren, obwohl diese Mglichkeit auf den ersten Blick nahe-
     liegend (wenn auch gefhrlich) ist.
     Daran kann man auch erkennen, da der Speichermanager nur den Adreraum
     des Video-Speichers zum Einblenden von RAM bentigt, aber effektiv
     den dort vorhandenen Speicher einer Grafikkarte nicht benutzt. Dies mag
     verschiedene Grnde haben:

     Zunchst ist der Video-Speicher i. allg. erheblich langsamer im CPU-
     Zugriff und kann (beim ISA-Bus) nur 8- oder 16-bittig angesprochen
     werden, wohingegen Hauptspeicher 16 oder 32 Bit breit ist. Auerdem
     besitzt Video-RAM normalerweise kein Parity-Bit und ist meist von
     minderer Qualitt, was ebenfalls Probleme mit sich bringen kann.
     Das grte Problem besteht aber darin, da der wirkliche Video-Speicher
     (so er denn vorhanden ist), von einer EGA-/VGA-Karte selbst bentigt
     wird (hier liegen z.B. die Fonts). Auerdem kann durch Umprogrammierung
     der Register des Video-Controllers der Video-Speicher in vllig anderer
     Stckelung in diesem Speicherbereich eingeblendet werden (was zu
     absolutem Chaos fhren wrde, wenn ein Programm gerade diesen Bereich
     nutzen wrde). Fr einen Treiber wie HIMEM.SYS ist es kaum mglich,
     Zugriffe auf die Video-Register abzufangen. Der einzige Weg bestnde
     darin, eine CGA-Karte zu emulieren, denn diese Karte benutzt den
     Adrebereich A000-AFFF wirklich nicht.

   - Der Speichermanager EMM386.EXE bietet im Prinzip die Mglichkeit,
     die Video-Hardware zu virtualisieren. Soll der Video-Speicherbereich
     bei einer installierten EGA-/VGA-Karte benutzt werden, so emuliert
     EMM386 eine CGA-Karte. Dies ist brigens auch der Grund, warum
     Bildschirmausgaben mit MEMMAX +V sehr viel langsamer sind als mit
     MEMMAX -V. Auerdem erklrt diese Emulation auch, wieso nahezu alle
     Programme, die mit dynamisch umdefinierten Text-Fonts arbeiten
     (z.B. pseudographische Darstellung von Maus-Cursor etc., etwa alle
     Novell DOS 7 Programme mit NewUI=On .INI-Dateieinstellung) pltzlich
     nur noch die 'einfache' Textausgabe zeigen und wieso die Farben
     pltzlich ganz anders dargestellt werden (nmlich mit der CGA-Farb-
     palette).

     Auch hier gilt: EMM386 mappt bei MEMMAX +V aus seinem eigenen Speicher-
     Pool (der vorher mit /VIDEO reserviert wurde) RAM ber den Bildschirm-
     speicherbereich. Der wirkliche Bildschirmspeicher wird dafr nicht
     angetastet (obwohl dies theoretisch mglich wre, wenn die Hardware
     entsprechend gut virtualisiert wird). Vielleicht ist es mit /RAM
     mglich, die wirkliche Nutzung des Bildschirmspeichers zu erzwingen
     (dies habe ich bisher nicht ausprobiert). Vielleicht mu man dazu eine
     EGA-/VGA-Karte auch schon vor der Installation des Speichermanagers
     manuell auf CGA-Emulation umschalten, etwa:

      INSTALL=c:\sys\video\vmode.com cga
      DEVICE=c:\nwdos\EMM386.EXE /VIDEO /RAM=A000-AFFF ...

     Aber normalerweise blendet die Hardware-CGA-Emulation einer EGA-/VGA-
     Karte dann auch genau den bentigten Speicher aus, so da das Unter-
     fangen hchstwahrscheinlich zum Scheitern verurteilt ist.
     (Rckmeldungen willkommen.)

     brigens: Wird mit MEMMAX +V eine Anwendung aufgerufen, die in einen
     Grafikmodus schalten will, so meldet sich EMM386 mit einer Fehler-
     meldung, da man das Programm abbrechen sollte, da Zugriffe auf den
     Video-Speicher sowieso von EMM386 abgefangen werden. Drckt man hier
     nicht <ESC>, so arbeitet das Programm jedoch im Hintergrund weiter
     (und merkt normalerweise auch nicht, da es berhaupt nicht auf dem
     Bildschirm angezeigt wird - dort steht immer noch die Fehlermeldung
     des EMM386).
     Probleme knnte es dann geben, wenn das Programm den Bildschirmspeicher
     zur Ablage von Informationen verwendet, denn es ist nicht geklrt, ob
     EMM386 einfach nur alle Zugriffe auf den Video-Speicher verwirft oder
     diese Zugriffe auf einen virtuellen Speicherbereich umlenkt, der auch
     wieder ausgelesen werden kann. Ich vermute eher das Erstere, denn bei
     Verwendung des TASKMGR auf Zweimonitorsystemen werden Zugriffe auf die
     jeweils gerade nicht aktuelle Grafikkarte offenbar einfach verworfen.

     Schaltet die Applikation wieder in den Textmodus, gibt EMM386 sofort
     die Anzeige wieder frei.

   - Wie man aus obigen berlegungen ableiten kann, mu keine EGA-/VGA-Karte
     installiert sein, damit die /VIDEO Option funktioniert! Wenn keine
     EGA-/VGA-Karte installiert ist (also A000-AFFF nicht belegt ist), wird
     bei /VIDEO der Bereich von selbst zugeschaltet. Ist allerdings eine
     EGA/VGA installiert (die diesen Adreraum ja meist selbst nutzt), wird
     der Speicher nur reserviert und mu explizit mit MEMMAX +V aktiviert
     werden. Dann emuliert EMM386.EXE softwaremig eine CGA-Karte.
     (Und offenbar kann HIMEM.SYS dies nicht, so da die /VIDEO Option in
     diesem Fall versagt!?)

   - Mchte man mit MEMMAX +V residente Programme installieren, ist Vorsicht
     geboten. Da diese Programme nur eine CGA-Karte erkennen knnen, wre
     es denkbar, da sie sich bei der Installation speziell an eine CGA-
     Hardware anpassen - brigens unabhngig davon, ob der Video-Speicher-
     bereich nun wirklich von der Anwendung benutzt wird oder nicht.
     Schaltet man dann spter MEMMAX -V ab, um die Mglichkeiten einer
     EGA-/VGA-Karte ausschpfen, so ist es mglich, da das residente
     Programm fr EGA-/VGA-Karten keine Untersttzung installiert hat
     und im schlimmsten Fall versagt. Daher sollte man nach Mglichkeit
     MEMMAX -V lassen, solange man es nicht wirklich bentigt (und dann
     explizit freischalten).

   - Arbeitet man auf einem Zweimonitorsystem, hngt es vom gerade aktiven
     Video-System ab, wieviel Speicher bei MEMMAX +V zustzlich eingeblendet
     wird. Bentigt man besonders viel Speicher, sollte man vor MEMMAX +V
     mit MODE CO80 auf den Farbadapter umschalten, so da man 96 KByte statt
     64 KByte Speicher erhlt (Die konkreten Werte hngen natrlich auch von
     /VIDEO=xxxx-yyyy ab). Diese Speichergre ndert sich dann auch nicht
     durch Rckwechseln mit MODE MONO (falls mglich) und bleibt bis zum
     nchsten MEMMAX -V bestehen.


   ii. Erweiterung des UMB-Speichers (MEMMAX +U):
   ----------------------------------------------

   Sptestens ab Novell DOS 7 Update 14 ist es mit EMM386 auch mglich,
   Teile des Video-Speicherbereichs als UMB-Speicher zu deklarieren. Dazu
   verwendet man die Option /USE in Bereichen des Bildschirmspeichers.
   (Diese Mglichkeit existiert im Gegensatz zu i.) im Prinzip auch bei
   MS-DOS, dort mu allerdings die Option /INCLUDE verwendet werden.)

   Der uere Unterschied zur ersten Methode liegt darin, da dieser
   Speicher mit der MEMMAX +U Option gesteuert wird und nicht mit
   MEMMAX +V, auch wenn der Speicher innerhalb des Video-Speicherbereichs
   liegt.
   Auerdem bleibt ein einmal mit /USE deklarierter Speicherbereich
   immer eingeblendet, auch wenn man Upper Memory mit MEMMAX -U de-
   aktiviert (logisch :-) ). Insofern eignet sich diese Methode auch
   zum Laden von Gertetreibern und TSRs. In der Praxis habe ich jedoch
   herausgefunden, da normalerweise nur TSRs (z.B. ber INSTALL[HIGH]=
   oder LH geladen) in diesen Bereich geladen werden, Gertetreiber
   werden weiterhin oberhalb von C800 geladen (Dies gilt natrlich nicht
   fr selbsthochladende Treiber)! Ob dies reprsentativ ist, kann ich
   noch nicht sagen.

   Es ist mglich, da Programme, die in den Video-Speicherbereich geladen
   wurden, ein anderes Verhalten zeigen, als wenn sie in 'normale' UMBs
   geladen wrden. Dies kann daran liegen, da die Verwendung des Video-
   Speicherbereichs fr ausfhrbaren Code ansonsten unblich ist und
   Programmierer diesen Fall evtl. nicht mit eingeplant haben und dadurch
   Bereichsberlufe in den programminternen Algorithmen auftreten. Bei
   meinen Tests hat sich aber herausgestellt, da diese berlegungen wohl
   eher theoretischer Natur sind. Alle von mir bisher getesteten Treiber
   funktionierten grundstzlich auch im Video-Speicherbereich. Einmal gab
   es offenbar Probleme mit der Verwendung von Funktionen des Video-BIOS.
   Nheres ist aber noch nicht geklrt.

   Mchten Sie MS Windows im Erweiterten 386-Modus benutzen, so ist es
   notwendig, einen speziellen Treiber namens MONOUMB.386 (von MS-DOS 6.2x)
   in das \WINDOWS\-Verzeichnis zu kopieren (oder den bei MS Windows bei-
   liegenden Treiber zu verwenden) und in der SYSTEM.INI im Abschnitt
   [386Enh] die Zeile DEVICE=MONOUMB.386 einzufgen. Diese Anpassung ist
   definitiv notwendig, ansonsten wird EMM386 eine Seitenzuweisungskonflikt
   melden und flschlicherweise empfehlen, man solle im SYSTEM.INI Abschnitt
   [386Enh] DualDisplay=No setzen. Damit funktionierte in meinem Fall (mit
   B100-B7FF als UMB) sogar noch der Betrieb des zweiten Monitors im Text-
   modus (und sogar Umleitungen via DUALMON.SYS). Was zu tun ist, wenn Sie
   andere UMB-Bereiche als den Bereich B000-B7FF als UMBs benutzen wollen,
   ist vorerst noch nicht geklrt (es gibt bei MS Windows noch einen
   weiteren Treiber namens MONOUMB2.386...). Offenbar ist es nicht not-
   wendig, den MONOUMB.386 Treiber auch beim multitaskenden TASKMGR zu
   laden (siehe Kapitel VII.2.).

   Theoretisch ist das Laden von Gertetreibern und TSRs auch im mit
   MEMMAX +V freigeschalteten Speicherbereich mglich, allerdings ist
   dies aus zwei Grnden problematisch:

   - Normalerweise werden die Speicherbereiche von unten nach oben
     gefllt. Solange man die Allokationsstrategie nicht verndert,
     drfte man daher kaum in die Verlegenheit kommen, den Speicherbereich
     A000-BFFF (640 - 768 KByte!!!) mit residenten Programmen zu fllen.
   - MEMMAX -V ist danach nicht mehr mglich.

   Die Verwendung von Video-Speicheradreraum mit der Option /USE
   bedeutet aber auch, da whrend der ganzen Session dieser Speicher-
   bereich nicht mehr fr die Grafikkarte verwendet werden kann. ber
   CONFIG.SYS Boot-Mens kann man Fallunterscheidungen einrichten und
   nur dann Bildschirmspeicherbereiche als UMB-Speicher verwenden, wenn
   man bestimmte Eigenschaften der Grafikkarte fr die Dauer der Session
   nicht bentigt, dafr aber soviel wie irgend mglich Speicher
   freirumen mu.

   Achtung: EMM386 kann nicht berprfen, ob mit /USE freigegebene
   Speicherbereiche tatschlich von Programmen oder als Video-Speicher
   verwendet wird. Zugriffe auf diese Speicherbereiche als Video-Speicher
   (z.B. MODE MONO) fhren zwangslufig zu Abstrzen, da die dorthin
   geladenen Programme einfach durch Bildschirmausgaben berschrieben
   werden... Dies mu man beachten, wenn z.B. Programme auch im Textmodus
   den Speicher der hheren Textseiten oder gar Grafikbereich als Zwischen-
   ablage verwenden, oder wenn Bildschirmtreiber direkt auf die Grafik-
   Hardware zugreifen (z.B. MODE MONO/CO80 oder der FreeWare-Treiber
   DUALMON.SYS (Gerte MONO/COLOR oder MONODISP/CO80DISP) luft z.B. nur,
   wenn mindestens die jeweils erste Seite von der Nutzung ausgeschlossen
   wird). Es gibt auch manche SuperVGAs, die nicht mit einer zweiten
   Grafikkarte im System kooperieren knnen (manche lteren Trident-
   Chipstze gehren dazu). Da solche SuperVGAs im Grafikmodus auch den
   fr die andere Grafikkarte reservierten Adreraum benutzen (B000-B7FF
   oder B800-BFFF), ist von einer Verwendung als UMBs abzuraten.
   Definitiv keine Probleme bereiten ET4000-Chipstze (Info wanted!).

   Die Option /USE akzeptiert mit Sicherheit Adressen bis hinab zu A000h
   (640 KByte), evtl. sind aber auch Werte wie 8000h (512 KByte) zulssig
   (nicht berprft), womit man 512 KByte-Rechner auf 640 KByte 'aufrsten'
   knnte...


   iii. Kombinationen/Beispiele:
   -----------------------------

   Natrlich knnen die Methoden i.) und ii.) kombiniert werden, wobei man
   hier aufgrund der vielen Mglichkeiten kaum noch generelle Empfehlungen
   geben kann.

   Mit der Methode i.) sollte ein mglichst groer Speicherbereich fr die
   Doppelnutzung als Video-Speicher oder erweiterter konventioneller
   Speicher deklariert werden (/VIDEO). Damit behlt man zur Laufzeit
   grtmgliche Freiheit in der Wahl des Speichers.

   Mit der Methode ii.) knnen Bereiche, die mit der Methode a) nicht
   erreichbar sind (z.B. weil sie oberhalb eines von der Grafikkarte
   verwendeten Bereichs liegen) als UMBs eingebunden werden, sofern sie
   definitiv nicht fr die Bildschirmdarstellung bentigt werden (/USE).
   Auerdem ist hier die Angabe von mehr als einem Bereich mglich.

    Adapter:           Benutzte Speicherbereiche:      /VIDEO:   /USE:

    MDA/HGC            B000-B200/B7FF/BFFF             A000-AFFF B800-BFFF
    CGA                B800-BFFF                       A000-B7FF
    EGA/VGA            A000-AFFF,(B000-B7FF),B800-BFFF A000-B7FF (B000-B7FF)
    MDA/HGC + CGA      B000-B7FF + B800-BFFF           A000-B000/B7FF
    MDA/HGC + EGA/VGA  B000-B7FF + A000-AFFF,B800-BFFF A000-B000/B7FF
    Mono-EGA/VGA + CGA A000-AFFF,B000-B7FF + B800-BFFF A000-B7FF

   Neben diesen Anhaltspunkten sollte man sich berlegen, ob man z.B.
   eine MDA-/HGC-Karte evtl. nur im Textmodus nutzt. Dann kann nmlich
   der Adreraum oberhalb der Speichers fr diese Textseite (normalerweise
   eine Textseite  4096 Zeichen (1000h) ebenfalls fr UMBs verwendet
   werden! Bei einer MDA/HGC mit B000-B7FF wrde man dann zum Beispiel
   /USE=B100-B7FF angeben knnen. Verwendet man eine HGC-Karte nicht im
   Grafikmodus gilt hier i. allg. das Gleiche. Analoge berlegungen kann
   man fr die zweite Grafikseite einer HGC (B800-BFFF) und fr CGA-Karten,
   aber auch fr EGA/VGAs im Textmodus anstellen. Hier sollte man aber
   beachten, da diese Karten mehrere Bildschirmseiten untersttzen und
   manche Anwendungen diese als Puffer verwenden. Kann man solche Umstnde
   ausschlieen, sind auch diese Bereiche erlaubt. Bei richtiger Wahl der
   Bereiche bleibt sogar die Mglichkeit erhalten, mit MODE CO80/MONO
   zwischen beiden Adaptern zu wechseln, ohne damit Abstrze zu riskieren!

   Ein konkretes Beispiel fr eine Kombination aus VGA+HGC, wobei die HGC
   nur im Textmodus betrieben werden darf:

    ...
    REM Mit MEMMAX +U (Standard) 28 KByte mehr UMB-Speicher aus dem
    REM 'Nichts'. Mit MEMMAX +V je nach aktivem Bildschirm 64/96 KByte
    REM mehr Basisspeicher...
    DEVICE=EMM386.EXE /VIDEO /USE=B100-B7FF
    ...

   Sie bentigen beide Systeme (VGA+HGC) nur im Textmodus und dort jeweils
   nur in der ersten Textseite. Darf's auch etwas mehr sein?

    ...
    REM Mit MEMMAX +U (Standard) 56 KByte mehr UMB-Speicher. Mit MEMMAX +V
    REM je nach aktivem Bildschirm 64/96 KByte mehr Basisspeicher.
    DEVICE=EMM386.EXE /VIDEO /USE=B100-B7FF,B900-BFFF
    ...

   Es ist mglich, da frhere Versionen von Novells EMM386 diese Mglich-
   keiten nicht sauber untersttzten, mit Update 14 wurden jedenfalls gerade
   diese Mglichkeiten berarbeitet.

                                                                            
  --------------------------------------------------------------------------

  V.7. UMB-Region-Support: [96-05-31]
  ===================================

   Stichworte: MEMMAX +U, DEVICEHIGH=, LH/LOADHIGH/HILOAD, MEM.BAT

   Wie schon in Kapitel III.4. (DEVICEHIGH=) und V.5. (LH/LOADHIGH/HILOAD)
   ausfhrlich besprochen, untersttzt Novell DOS 7 ab Update 14 nun auch
   Memory-Regions, wie sie von MS-DOS her bekannt sind (Nheres bitte den
   entsprechenden Kapiteln entnehmen).

   Es bleibt anzumerken, da auch Novell DOS (sptestens) ab Update 14
   innerhalb der UMBs zwischen Gertetreibern (DEVICEHIGH=) und TSRs
   (INSTALLHIGH=) unterscheidet. Wenn mehr als eine UMB-Region zur Verfgung
   stehen, werden die TSRs default-mig in die Memory-Region 1, die Gerte-
   treiber in die Region 2 jeweils von unten nach oben geladen. Mit dem
   Parameter /L:region kann dies natrlich bersteuert werden, auerdem
   weicht Novell DOS von diesem Prinzip ab, sobald in einer Region nicht
   mehr gengend Speicher zur Verfgung steht. Wofr diese Unterscheidung
   gut ist kann ich nicht genau sagen, ich vermute dreierlei Strategien,
   die Speicherverteilung in den UMBs zu optimieren:

   - Gertetreiber knnen praktisch nie zur Laufzeit deinstalliert werden,
     so da es sinnvoll ist, sie zusammenhngend anzuordnen, um einer Frag-
     mentierung des Speichers vorzubeugen.
     TSRs knnen manchmal deinstalliert werden, wodurch eine Lcke im
     Speicher entsteht. Da unter solchen dynamisch geladenen und entladenen
     TSRs eine grere Fluktuation herrscht, ist die Wahrscheinlichkeit
     grer, da die Fragmentierung des Speichers hier hufiger wieder
     aufgehoben wird. Novell DOS fat normalerweise auch hintereinander-
     liegende freie Blcke zu einem greren Block zusammen (allerdings
     zumindest mit frheren Ausgaben nicht immer), MS-DOS kann dies nicht
     (hier kann man mit einem kleinen Utility namens DEFRAGM von Herwig
     Feichtinger aus c't 01/1996, S. 288 nachhelfen).

   - TSRs besitzen normalerweise eine Umgebung, die aber nur in den
     seltensten Fllen vom TSR bentigt wird. Deshalb geben umsichtig
     programmierte TSRs ihre Umgebung wieder frei, so da das Betriebs-
     system sie wieder verwenden kann. Da die Umgebung hufig die gleiche
     Gre behlt, pat die Umgebung des nchsten TSRs hufig genau wieder
     in diesen freien Block (noch besser programmierte TSRs verlagern einen
     Teil ihres Codes in ihren Umgebungsblock, so da die Fragmentierung
     von vornherein nicht entsteht). Aus den gleichen Grnden wie beim
     ersten Punkt ist es auch hierfr sinnvoller, die TSRs in eine eigene
     Region zu laden. (Siehe auch mein Utility SETENV.COM.)

   - Gertetreiber (blicherweise per DEVICE=/DEVICEHIGH=/HIDEVICE= geladen)
     und TSRs (z.B. ber INSTALL=/INSTALLHIGH=/HIINSTALL= zu laden) werden
     bei Novell DOS/DR DOS innerhalb der CONFIG.SYS in genau der Reihenfolge
     geladen, in der die Aufrufzeilen abgearbeitet werden. Bei MS-DOS/PC-DOS
     ist dies nicht der Fall: Selbst unter Verwendung von Boot-Mens werden
     immer zuerst die Treiber per DEVICE= etc. geladen und danach die
     Treiber per INSTALL=, jeweils entsprechend ihrer Reihenfolge des
     Vorkommens (bei Boot-Mens entsprechend verschachtelt), vgl. auch
     Kapitel III.1. und III.7.
     Dadurch werden blicherweise bei MS-DOS/PC-DOS auch Gertetreiber und
     TSRs jeweils in nahen Speicherbereichen angesiedelt. Durch die Auf-
     teilung, die Novell DOS beim Laden in unterschiedliche Memory-Regions
     vornimmt, werden die Treiber *hnlich* im Speicher angeordnet, wie dies
     unter MS-DOS/PC-DOS resultieren wrde.

   Der MEM Befehl unterscheidet zwar in seiner Ausgabe zwischen Gerte-
   treibern (rechtsbndig) und TSRs/Programmen/Daten (linksbndig), kann
   aber (derzeit) noch nicht die Memory-Regions auflisten. Als Ersatz kann
   der Batchjob MEM.BAT aus Kapitel IV.5. verwendet werden, der den MEM
   Befehl unter Novell DOS 7 um die Parameter /FREE, /MODULE und zwei neue
   Parameter /REGION und /VECTORS erweitert.

                                                                            
  --------------------------------------------------------------------------

  V.8. Tuning-Tips fr 4DOS-Benutzer: [96-02-06]
  ==============================================

   Stichworte: LH/LOADHIGH/HILOAD, SETLOCAL/ENDLOCAL, Hochladen,
               Fragmentierung

   Da *jedem* TSR eine eigene Umgebung, die die zum Startzeitpunkt
   aktuellen Einstellungen aufnimmt, zugeordnet wird, ist es generell
   ratsam, die Umgebung whrend des Ladens von TSRs mglichst klein zu
   halten (dies gilt fr jedes DOS und jeden Kommandoprozessor).

   4DOS bietet hier einige zustzliche Mglichkeiten, die hufig die
   letzten Bytes aus dem System quetschen knnen (obwohl sie rein gar
   nichts mit Speicherverwaltung im eigentlichen Sinne zu tun haben):

   - TSR-Aufrufen sollte ein '@'-Zeichen vorangestellt werden. Dieses
     Zeichen hat fr 4DOS neben der blichen noch eine spezielle Funktion:
     Die Umgebungsvariable %CmdLine% (normalerweise mit der Aufrufzeile
     des gerade aktuellen externen Programms belegt) wird gelscht, wodurch
     bis zu 128 Bytes in der Umgebung eingespart werden knnen.
     Leider akzeptiert Novell DOS COMMAND.COM ein vorangestelltes @ nur beim
     ersten Kommando einer Zeile, nicht jedoch bei Verkettungen via Piping.

   - Wird ein Programm hochgeladen (egal auf welchem Wege) und bentigt das
     Programm seine Umgebung nicht wirklich (die wenigsten TSRs tun
     das), sollte man die Umgebung vor dem Laden freigeben und nachher
     wieder einrichten. 4DOS bietet dafr die SETLOCAL/ENDLOCAL und UNSET
     Kommandos:

      REM Umgebung temporr lschen:
      IF "4"=="%@Eval[2 + 2]%" SETLOCAL %+ UNSET *
      REM Nun wird das TSR-Programm hochgeladen:
      LH d:\path\tsr parameters
      REM Umgebung wieder einrichten:
      IF "4"=="%@Eval[2 + 2]%" ENDLOCAL

     Werden innerhalb eines solchen Blocks einige Variablen (wie %Path%)
     trotzdem bentigt, so kann man das Beispiel wie folgt erweitern:

      IF "4"=="%@Eval[2 + 2]%" SETLOCAL %+ ALIAS tmpbuf = c:\_path_.tmp ...
                            ... %+ PATH > tmpbuf %+ UNSET * %+ SET /R tmpbuf
      LH tsr parameters
      IF "4"=="%@Eval[2 + 2]%" DEL tmpbuf > \dev\nul %+ ENDLOCAL

     Wichtig ist jedoch, da Sie auf diese Art und Weise keine Programme
     laden, die *nicht* oder nicht vollstndig hochgeladen werden (z.B.
     SDRES bei EMS-Nutzung, siehe Kapitel II.4.). Denn in diesem Fall
     sparen Sie zwar insgesamt den Platz fr die Umgebung fast komplett
     ein, aber dieser Vorteil wird mit dem um Grenordnungen verheerenden
     Nachteil erkauft, da der konventionelle Speicher fragmentiert wird.
     4DOS speichert nmlich bei SETLOCAL die alte Umgebung/Alias in einem
     Puffer zwischen, der im konventionellen Speicher liegt (und je nach
     Konfiguration einige KiloByte (bei mir 3 KByte) gro ist). Dieser
     Puffer wird zwar bei ENDLOCAL wieder freigegeben, aber dadurch, da
     das inzwischen in den konventionellen Speicher geladene TSR nun nicht
     mehr dicht an dicht mit seinem Vorgnger liegt, wird die maximale
     zusammenhngende Gre des konventionellen Speichers um genau diesen
     Betrag der zwischengespeicherten SETLOCAL Umgebung verringert. Zwar
     kann auch dieser Speicherbereich wieder verwendet werden, aber der
     Hauptspeicher bleibt fragmentiert.

                                                                             
  ###########################################################################
  ###########################################################################

  VI. NETZWERK:
  =============

  ---------------------------------------------------------------------------

  VI.1. Netzwerk-Hardware: [96-10-30]
  ===================================

   Stichworte: PNW, EtherNet-Hardware, NE2000, DMA, BNC

   Mit Novell DOS 7 gebndelt (aber auch einzeln erhltlich) ist Personal
   NetWare 1.0, der Nachfolger von NetWare Lite (der ehemals kleinste Spro
   in der Novell NetWare-Familie, war u.a. in spteren Ausgaben von DR DOS
   6.0 beigepackt). Diese Netzwerk-Software ist eine ideale Ergnzung zu
   Novell DOS (aber auch anderen DOS-Versionen, die allerdings nicht schon
   generisch integrierten Netzwerk-Support bieten), wenn man mehrere Rechner
   miteinander verbinden will, aber sich die Anschaffung der groen NetWare
   Produkte nicht lohnt. Dabei ist nicht nur der Preis des Produkts aus-
   schlaggebend, sondern vor allem der Administrationsaufwand, der z.B.
   bei NetWare 3.xx und erst recht bei NetWare 4.xx um ein Vielfaches hher
   liegt. Daher ist Personal NetWare auch fr kleinere Firmen mit geringer
   Infrastruktur interessant, wenn nicht mehr als vielleicht 10 - 40 Rechner
   zu vernetzen sind.

   Netzadapterkarten sind mittlerweile schon ab ca. DM 30,- zu haben, ein
   10m Kabel kostet ca. DM 10,-, T-Stcke und Abschluwiderstnde jeweils
   unter DM 5,-.

   Fr den privaten Gebrauch empfehlen sich NE2000-kompatible Ethernet-
   Karten (PNW ist nicht an Ethernet gebunden, dies stellt aber das am
   weitesten verbreitetste Netzzugangsverfahren dar).
   Diese Karten stellen zwar nicht das Non-Plus-Ultra an Leistung dar, aber
   sie sind erstens sehr gnstig, zweitens reicht die Performance fr kleine
   Netze allemal aus und gegenber vielen teureren Karten bieten sie noch
   einen entscheidenden Vorteil:
   Sie bentigen keinen Adreraum im UMB-Bereich des Rechners, d.h. man hat
   mehr Platz fr Zusatzprogramme (und/oder die Netzwerk-Software) zwischen
   den Adaptern und sie benutzen auch keine DMA-Transfers. (Die sonst hufig
   verwendeten SMC-Ultra-Serien u.a. bentigen demgegenber ein 8 - 16 KByte
   groes RAM-Fenster im UMB-Bereich, der fr anderweitige Nutzung flach-
   fllt). Bei der NE2000 luft die gesamte Kommunikation interruptgesteuert
   ber Port-Zugriffe ab, heutige 16Bit-Karten lassen sich flexibel genug
   einstellen, da hier selbst mit vielen anderen Zusatzkarten im Rechner
   kaum Adrekonflikte auftreten werden. Probleme mit Treiber-Updates und
   anderen Betriebssystemen wird es bei dieser Karte aufgrund der weiten
   Verbreitung quasi nie geben.

   Als Default-Adresse hat sich 300h oder 240h (manchmal auch 280h)
   eingebrgert, welche meist auch verwendet werden kann (300h ist der
   Prototyp-Bereich); man sollte aber entgegen blichen Standards eher
   einen hohen Interrupt (z.B. IRQ 10) verwenden, um Konflikten mit
   seriellen, parallelen Schnittstellen und EGA-/VGA-Karten aus dem Weg
   zu gehen.

   Als Netzwerkkabel kommt ein 50 Ohm BNC-Koaxialkabel in Frage, das sich
   von Karte zu Karte schlngelt. An jede Netzadapterkarte kommt ein sog.
   T-Stck, an beiden ueren Enden des Stranges ein 50 Ohm-Terminations-
   widerstand (wichtig!). Das Kabel sollte mindestens 10m lang sein (auch
   wenn man diese Lnge nicht bentigt), darf aber nicht lnger als ca.
   170m lang werden, im privaten Bereich sicherlich kein Problem...
   Das Kabel sollte nicht geknickt werden, die BNC-Stecker sollten
   pfleglich behandelt werden, da sie hufig Ursache fr schwer auffindbare
   Fehler sind.

                                                                             
  ---------------------------------------------------------------------------

  VI.2. PNW-Software-Einrichtung: [97-03-02]
  ==========================================

   Stichworte: SETUP /FIRST, DPMS, SERVER, ODI, Frame 802.2, NetWare,
               STARTNET.BAT, STOPNET.BAT, NET.CFG, VLM, NET ADMIN,
               Ressourcen, Geteilte Verzeichnisse, Server nicht geladen,
               Updates, %NWLanguage%, TASKMGR

   Leider ist die Software-Installation von PNW nicht ganz einfach zu
   bewerkstelligen (aber immer noch sehr viel einfacher, als bei der groen
   NetWare). Bezglich der Erstinstallation siehe DOSBOOK und SETUP /FIRST.

   Hier knnen nur ein paar Einzelhinweise gegeben werden:

   Um mglichst viel Speicher zu sparen, ist es absolut empfehlenswert,
   Novells DPMS zu laden. Dadurch wird ein Groteil der Netzwerk-Software
   (SERVER) in den Zusatzspeicher verlagert und man kommt trotz geladenem
   Server auf hnliche Speichergren wie in typischen NetWare 3.xx Netzen
   mit IPX/NETX-Treibern etc.
   Der Server belegt ca. 30 - 60 KByte (bei DPMS Nutzung) im ersten Mega-
   Byte, lt sich nur selten hochladen, nutzt auerdem jedoch Extended
   Memory via DPMS. (Die Datei SERVER.EXE enthlt fr MS Windows auch den
   virtuellen Gertetreiber VNWLSERV.386.) Die restlichen Netztreiber
   bentigen weniger Speicher (Grenordnung 25 - 40 KByte).

   (Mit einem undokumentierten SERVER.EXE Parameter "SERVER L" (wohl auch
   "SERVER /L") kann verhindert werden, da ein spezieller Fix fr einen
   falschen NCP-Call, den manche Datenbankapplikationen (DBase, Clipper)
   ausfhren, eingebunden wird. Dadurch kann man, wenn man bei SHARE keine
   Extra-Handles bentigt und keine Datenbanken anwendet, ganze 192 Bytes
   einsparen. ;-) )

   PNW 1.0 verwendet ODI-Treiber und sollte auf FRAME 802.2 eingestellt
   werden, wenn man die Anbindung an ltere NetWare 2.xx, 3.xx Netze nicht
   bentigt (dort braucht man FRAME 802.3). hnlich wie bei NetWare 4.xx
   arbeitet PNW 1.0 mit der VLM-Technik (virtual loadable module),
   eine Parallelentwicklung zu den NLM (netware loadable module) von
   NetWare 3.xx+, allerdings bis vor das neue Client32-Kit fr die Clients.
   Fr die Anbindung an NetWare 4.xx werden auch Verzeichnisdienste unter-
   sttzt.
   Teilweise ist PNW also auf einem moderneren Stand der Software-Technik
   als die weitverbreitete NetWare 3.xx (besonders, was die beiliegenden
   Tools angeht), natrlich von den Mglichkeiten auf den Bedarf kleiner
   Netze zurckgeschraubt. Trotzdem knnen bis zu 50 Accounts eingerichtet
   werden (irgendwo in den Novell Foren gibt es auch einen Hinweis auf bis
   zu 244 Accounts).


   Eine typische STARTNET.BAT:

    @ECHO off
    SET NWLanguage=DEUTSCH
    REM Diese Variable spezifiziert das Verzeichnis, in dem PNW nach landes-
    REM sprachlichen Dateien sucht.
    REM Unter DOS mu das \NLS\%NWLanguage%\ Verzeichnis dort liegen, von wo
    REM die Netzwerk-Software geladen wurde: C:\NWCLIENT\NLS\DEUTSCH.
    REM Unter MS Windows mu \nls\%NWLanguage%\ vom Ursprungsverzeichnis der
    REM unter Windows geladenen Shell (i. allg. PROGMAN.EXE) ausgehen. In
    REM dem Fall, da die verwendete Shell in C:\WINDOWS\ liegt, resultiert
    REM daraus C:\WINDOWS\NLS\DEUTSCH. %NWLanguage% mu eine gltige
    REM relative Pfadangabe enthalten, die aber nicht notwendigerweise auf
    REM den Namen eines Unterverzeichnisses beschrnkt sein mu (siehe auch
    REM Kapitel IV.7.). Um ein Beispiel zu geben:
    REM Angaben wie ..\NLS\DEUTSCH sind durchaus gltig. Ist %NWLanguage%
    REM nicht definiert oder ungltig, so wird %Path% ausgewertet.
    REM %NWLanguage% selbst darf keine Pfadliste enthalten.
    c:
    CD c:\nwclient
    LH LSL
    REM LH RXMONSTK fr manche Netz-Analyzer-/Management-Programme not-
    REM wendig, sofern fr den MLID-Treiber (hier NE2000.COM) das VLM-
    REM Update 2+ eingearbeitet wurde, und die entsprechenden Programme
    REM noch nicht daran angepat wurden.
    REM Siehe Hinweise im Archiv VLMUPx.EXE.
    LH NE2000
    REM IPXODI /A kann auf Kosten der Funkionalitt Speicher sparen.
    LH IPXODI
    REM Der Versuch SERVER und/oder VLM hochzuladen (LH), fhrt bei manchen
    REM Konfigurationen zu Abstrzen und Hngen, ausprobieren...
    REM SERVER wird natrlich nur bentigt, wenn dieser Rechner Ressourcen
    REM mit anderen Rechnern teilen soll.
    [LH] SERVER
    REM DEDICATE.COM
    [LH] VLM /V4
    CD \
    NET LOGIN %1 %2 %3 %4 %5 %6 %7 %8 %9

   (Es gibt noch 1001 Optimierungsmglichkeiten, die aber hier den Rahmen
   sprengen wrden).


   Zum Entladen des Netzwerks bietet sich das Umgekehrte an - STOPNET.BAT:

    @ECHO off
    IF ""=="%NWLanguage%" SET NWLanguage=DEUTSCH
    c:
    CD c:\nwclient
    NET LOGOUT
    VLM /U
    SERVER /U
    IPXODI /U
    NE2000 /U
    LSL /U
    CD \


   Die Datei NET.CFG (Beispiel fr eine NE2000-Karte):

    Link driver NE2000
     INT 10
     PORT 300
     FRAME Ethernet_802.2

    NetWare DOS Requester
     PREFERRED WORKGROUP = PNWNET ; (offenbar statt WORKGROUP NAME=)
     ; Fr die Verwendung des TASKMGR (besonders im Prozeumschaltmodus)
     ; von SERVER.EXE verwendet
     ALTERNATE CALLDOS = ON
     ; Diagnoseausgaben beim Start auf Maximum einstellen:
     MESSAGE LEVEL = 4
     FIRST NETWORK DRIVE = S
     ; Untersttzte Protokolle NetWare3 BIND,  BIND PNW
     NETWARE PROTOCOL = PNW
     ; Zeige Punkte . und .. in Verzeichnisauflistungen
     SHOW DOTS = ON
     ; Message-Timeout (10000 entspricht 6 Stunden laut DOSBOOK,
     ;                 aber entspricht 9 Minuten laut c't 9/94???)
     MESSAGE TIMEOUT = 10000
     ; Weniger Speicherbedarf bei geringerer Performance:
     ; CACHE BUFFERS = 2
     ; CACHE BUFFER SIZE = 512
     ; Maximale Namenslnge verkrzen (<48>):
     AVERAGE NAME LENGTH = 16
     ; PNW-Responder abschalten:
     ; RESPONDER = OFF
     ; Folgende Module auch swappen:
     ; LOAD LOW CONN = OFF
     ; LOAD CONN TABLE LOW = OFF
     ; LOAD LOW IPXNCP = OFF
     ; Lade alle Standard-VLM und zustzlich die AUTO und NMR:
     USE DEFAULTS = ON
     VLM = AUTO.VLM
     VLM = NMR.VLM

   Mit den ausgeklammerten Parametern kann man etwas experimentieren, um
   den Speicherbedarf zu drcken, aber leider damit auch teilweise stark
   die Performance zu drosseln. U.U. kann es auch vorkommen, da die
   Konfiguration instabil wird, austesten...

   Wichtig:

   Am Ende der Datei NET.CFG mu eine Leerzeile stehen (d.h. auch der
   letzte Eintrag mu mit <Return> abgeschlossen werden), ansonsten kann
   es passieren, da die letzte Zeile berlesen wird!
   Eine bersicht ber die derzeit gltigen NET.CFG Parametern (die sich
   im Laufe der Zeit in einigen Dingen gendert haben), findet sich in
   den VLMUPx.EXE Updates in der Datei NET.CFG, in NETCFG.TXT u.a., siehe
   auch Kapitel VI.12.


   Weitere Server-Einstellungen kann man in NET ADMIN ('Server konfigu-
   rieren') vornehmen, hier sollte man mglichst alle Module laden (auer
   'lokale Besttigung'), bei den 'erweiterten Einstellungen' mu man
   unbedingt darauf achten, da man nicht weniger geteilte Ressourcen
   angibt, als wirklich vorhanden sind, sonst kann es vorkommen, da der
   Server beim nchsten Mal nicht mehr hochfhrt und mit der irrefhrenden
   Fehlermeldung

    "Server konnte nicht geladen werden, da Konfigurationsdatei zu einer
     anderen Version der Servers gehrt, oder beschdigt ist."

   abbricht.

   Hufig sucht man den Fehler dann erst wochenlang an vllig anderen
   Stellen. :-(

   Entsprechend mu man die Ressourcen auch hochsetzen, *ehe* man neue
   Hardware einbaut, sonst kann man bse berraschungen berleben und darf
   u.U. alles wieder ausbauen.

   Hinweis bezglich 'geteilter Verzeichnisse':

   Diese Angabe mu grer oder gleich der Anzahl logischer Blockgerte-
   treiber sein, die man in der DOS-Konfiguration ldt. Dabei zhlt z.B.
   jede Floppy, jede DOS-Partition einer Harddisk, jeder Eintrag via
   DRIVER.SYS, jede RAM-Disk (RAMDRIVE, VDISK, TurboDSK u.a.), jedes
   komprimierte Laufwerk und Host-Laufwerk (STACKER, DBLSPACE, DRVSPACE
   u.a.), jeder spezielle Treiber fr Speziallaufwerke wie CD-ROMs,
   CD-WOs, CD-MOs, spezielle Streamer, die wie Laufwerke angesprochen
   werden.

   Sollten also obige Fehlermeldung auftauchen, mu der Rechner in einer
   Minimal- oder Null-Konfiguration gestartet werden, in der nichts geladen
   wird, was nicht unbedingt zum Booten des Rechners notwendig ist. Wenn
   der Server dann ohne Fehlermeldung ldt, mssen nach und nach alle
   zustzlichen Programme wieder eingebunden werden, bis der Server nicht
   mehr ldt. Die Ressource, die der zuletzt eingebundene Treiber bereit-
   stellt, mu dann um die entsprechende Anzahl ihrer Bereitstellung hoch-
   gesetzt werden (Auch, wenn es gar nicht gewnscht ist, diese Ressource
   zu teilen: sie ist aber vorhanden und mu verwaltet werden). Wie, wenn
   der Server nicht mehr ldt?
   Der Treiber mu wieder entfernt, der Rechner neu gebootet, der Server
   gestartet und mit NET ADMIN 'Server konfigurieren' der entsprechende
   Eintrag erhht werden.

   brigens ist es sogar mglich, da dieses Problem bereits nach der Erst-
   installation auftaucht, wenn das SETUP-Programm eine Ressource nicht
   erkannt hat und Default-Einstellungen vornimmt. In so einem Fall ntzt
   es berhaupt nichts, verzweifelt den Server neu (auf einem vielleicht
   anderen Weg) installieren zu wollen. Der oben beschriebene Weg sollte
   jedoch auch dann funktionieren.

   Ich hatte lange Zeit auch ein Problem mit einem PNW-Server, auf dem
   immer wieder EMM386-Schutzfehlern auftraten, sobald man Dateien vom
   Server kopieren oder auch nur ansehen wollte. Es stellte sich auch
   heraus, da in vielen Dateien, die auf den Server kopiert worden waren,
   ab einer immer gleichen Position in der Datei (bei mir Offset 2162) fr
   einige Bytes (516 - 520 Bytes) willkrliche Daten eingestreut waren (die
   Dateilnge, Datumsstempel, der Anfang und der Rest der Datei waren vllig
   ok, so da dies erst spt auffiel). Obwohl die Konfigurationsdateien den
   anderer PNW-Server entsprachen, war das Problem erst zu lsen, nachdem
   ich mit NET ADMIN die Server-Konfiguration so verndert hatte, da die
   Empfangspuffergre auf 1024 eingestellt war. Dies kann natrlich nicht
   verallgemeinert werden, bei hnlichen Problemen sollten Sie aber diese
   Einstellungen sehr genau auf Plausibilitt berprfen und evtl. damit
   experimentieren.

   Eine Fehlermeldung der Art 'VLM xxx-47: Es konnte kein Server gefunden
   werden. Vor dem Fortfahren Verkabelung und Server-Status berprfen!',
   scheint beim Hochfahren eines Servers 'normal' zu sein, jedenfalls konnte
   ich diese Meldung bisher nicht umgehen (trotz PREFERRED WORKGROUP= und
   PREFERRED SERVER=). Nachteile sind dadurch nicht aufgefallen, sofern der
   Server vorher in Wahrheit doch korrekt geladen wurde (laut seiner eigenen
   Startmeldung). Trotzdem, hat jemand eine Lsung?

   brigens: Wie oben schon angedeutet, ist das xxx in der ID der Fehler-
   meldung variabel und entspricht der VLM-Versionsnummer.
   Wenn Sie die entsprechenden Fehlermeldungen im DOSBOOK Anhang E suchen,
   mssen Sie unter "modul-version-nummer" suchen (wobei hier modul=VLM,
   version=1.00 und nummer=47 wre). 1.00 entsprach dem Stand der VLMs in
   den Beta-Versionen von Novell DOS 7 und PNW.

   Die Netzwerk-Software, die mit PNW 1.0 und Novell DOS 7 mitgeliefert
   wurde, entspricht der Ebene von VLM 1.10. Mittlerweile wurden manche
   PNW-Dateien upgedated (P10G05.EXE) und insbesondere die allgemeine
   Netzwerk-Software mit der Herausgabe von NetWare 4.10 stark aktualisiert.
   Es empfiehlt sich daher dringend, die Dateien aus dem Archiv VLMUP4.EXE
   in die PNW-Client- und Server-Konfiguration einzuarbeiten. Noch besser
   und aktueller geht es mit VLMKT_1.EXE - VLMKT_6.EXE bzw. dem neueren
   VLM121_1.EXE - VLM121_6.EXE, womit die VLMs auf die Software-Ebene 1.20B
   bzw. 1.21 angehoben werden. Dabei sind allerdings einige Dinge zu be-
   achten und es ist leider nicht in jedem Fall gewhrleistet, da man die
   Updates einfach ber die alten Dateien kopieren kann.
   Trotzdem ist dies meistens dennoch mglich, wenn man die dem Paket
   beiliegenden ausfhrlichen Hinweise beachtet (seit kurzem gibt es auch
   ein speziell fr PNW konfektioniertes Update-Paket von Novell, Nheres
   siehe Kapitel I.2). Um die Fehlermeldung zu vermeiden, da man eine alte
   Version einer Message-Datei .MSG verwendet, kann man die entsprechende
   Datei aus dem Unterverzeichnis \NWCLIENT\NLS\ENGLISH\ in das Verzeichnis
   \NWCLIENT\NLS\DEUTSCH\ kopieren, bis deutsche Versionen dieser Dateien
   erhltlich sind (ist mit dem VLM-Kit allerdings der Fall fr Deutsch,
   Englisch, Spanisch, Italienisch und Portugisisch).


   Was die Benennung von Ressourcen im Netz angeht, sollte man sich vorher
   Konventionen berlegen, um so spter eindeutig zwischen Servern,
   Benutzern, Arbeitsgruppen, Laufwerken, Verzeichnisbumen, Druckern,
   Queues, Formularen usw. unterscheiden zu knnen.
   Dazu knnen die Namen den Typ der Ressource enthalten, indem sie jeweils
   auf einer bestimmten Buchstabenkombination enden, z.B.:

    _PC  fr Server
    _GRP fr Arbeitsgruppen (oder _NET bei PNW)
    _DRV fr Laufwerke
    _PRN fr Drucker

   Obwohl dabei mehr als 8 Zeichen erlaubt sind, empfiehlt sich dies aus
   kosmetischen Grnden nicht, da fr mehr als 8+3 Zeichen innerhalb des
   versteckten Verzeichnisses \NWCNTL\ gleich mehrere ineinander ver-
   schachtelte Unterverzeichnisse eingerichtet werden, um die berlnge im
   Namen irgendwo unterzubringen (wegen der 8.3 Namenskonventionen von DOS).
   Dies kann bei manuellen Wartungsarbeiten uerst strend sein.


   Mchten Sie einen PNW-Server als 'Dedicated Workstation' betreiben?

   In diesem Fall kann u.U. die Performance verbessert werden, wenn Sie
   - am besten in STARTNET.BAT direkt nach dem Aufruf von SERVER - ein
   kleines Tool von NetWare Lite laden: DEDICATE.COM.
   Dieses Progrmmchen macht nichts weiter, als in einer Schleife permanent
   INT28h-Calls abzuschieen (DOS IDLE) und dabei ab und zu die Tastatur
   abzufragen, ob denn eine Taste zum Beenden des Programms gedrckt wurde.
   Ich habe nicht berprft, ob dies bei PNW wirklich noch notwendig ist,
   bei alten DOS-Versionen knnte es aber von Vorteil sein. Eines steht
   jedenfalls fest: Schaden kann es nicht, wenn Sie den Rechner sowieso
   nicht benutzen (auer eben als PNW-Server). Wenn Sie in Besitz einer
   NetWare Lite Lizenz sind, knnen Sie das Tool z.B. aus dem Update
   NWL11G.EXE beziehen, andernfalls kann es in wenigen Minuten auch
   selbst geschrieben werden.

   Wird DEDICATE.COM direkt nach Server geladen, hat dies noch einen
   weiteren Vorteil (den man aber auch anders erreichen kann). Solange
   man den Rechner wirklich nur als Server bentigt, wird auch VLM.EXE
   (inkl. seiner .VLMs) noch nicht geladen. Dadurch steht mehr Speicher
   fr den hoffentlich geladenen NWCACHE zur Verfgung. Mu man diesen
   Rechner nun doch als 'Non-Dedicated Server' nutzen, braucht man nur
   eine Taste zu drcken: DEDICATE wird beendet, VLM wird geladen und
   man kann sich ins Netz einloggen.
   Fr Netzwerk-Anfnger: VLM wird nicht bentigt, wenn Sie den Rechner
   nur als Server bentigen; SERVER wird nicht bentigt, wenn Sie den
   Rechner whrend einer Session nur als Workstation nutzen! Da insb. der
   SERVER die Performance sehr stark drosselt, sollte er in diesem Fall
   tunlichst nicht geladen werden!

   Arbeitet man immer im Netz und bentigt die Entlademglichkeit der
   Netztreiber nicht, kann man sowohl die Treiber der IPX-Schicht (bei
   Personal NetWare also LSL.COM, MLID-Hardware-Treiber wie z.B. NE2000.COM,
   sowie IPXODI.COM), als auch den SERVER.EXE per INSTALL[HIGH]= bereits in
   CONFIG.SYS laden, was die Chance zum Hochladen erhht. VLM.EXE kann
   leider nicht in CONFIG.SYS geladen werden (auch nicht mit INSTCDEX.EXE).

   brigens:

   Es ist zwar nicht mglich, VLM.EXE oder SERVER.EXE erst innerhalb eines
   Task des multitaskenden TASKMGR zu laden, sehr wohl funktioniert dies
   jedoch auf einem Novell DOS 7 System in einer DOS-Box im Erweiterten
   386er-Modus von Windows 3.1x (die blichen zu PNW gehrigen Netztreiber
   fr Windowas waren geladen; wahrscheinlich sind sie aber gar nicht mal
   notwendig - nicht berprft)! Bei meinen Experimenten konnte VLM.EXE
   die Module NMR.VLM und FIO.VLM nicht laden und der SERVER.EXE kein DPMS
   nutzen (was ein paar Probleme bereitet, z.B. strzt der Server whrend
   der Ladephase schon mal ab, wenn DPMS durch CLOAKING bereit gestellt
   wird, nicht aber, wenn man CLOAKING ber DPMS ldt, siehe Kapitel II.4.),
   ansonsten arbeitete das System stabil. Natrlich ist dies nicht die von
   Novell empfohlene Betriebsart und man ist verschiedenen Einschrnkungen
   unterworfen und sollte immer im Hinterkopf behalten, welche impliziten
   Auswirkungen diese Konstallation hat.

   Trotzdem erffnet sich dadurch eine ganz neue Perspektive:

   Der Nachteil, da die Netzverbindung ausschlielich in der einen
   DOS-Box genutzt werden kann, wird dadurch aufgewogen, da in den
   anderen DOS-Boxen berhaupt kein Speicher fr die Netzverbindung
   bentigt wird. In der Regel hat man also 50 - 150 KByte mehr freien
   Speicher! Arbeitet man sowieso nicht mit Netzapplikationen (wie in
   der Praxis beim Einsatz von Personal NetWare gerade hufig der Fall),
   so wird die Netzverbindung in erster Linie nur zum schnellen Daten-
   austausch genutzt. Dafr reicht aber gerade auch die Verbindung in
   *einer* DOS-Box prima aus... Da der Server in dieser Konstellation
   als ein Task unter mehreren natrlich eine wesentlich geringere
   Performance hat, kann auch ein Vorteil sein. So lt sich nmlich
   in anderen Tasks fast ohne Geschwindigkeitseinbuen arbeiten. Wird
   der Server global geladen, wird sonst die Weiterarbeit auf langsamen
   Server-Rechnern (z.B. 386sx16) zur Qual...

   Sollten Sie regelmig mit dieser Sonderlsung arbeiten wollen,
   ist es praktisch, sich dafr eine spezielle DOS-Box vorzudefinieren,
   die automatisch die Netztreiber ldt, indem Sie im PIF-Editor als
   Aufrufparameter z.B. fr PNWPRMPT.PIF angeben:

    Programm       : %ComSpec%
    Aufrufparameter: /K c:\nwclient\startnet.bat

   Sogar das Problem mit DPMS und CLOAKING lt sich hier abfangen,
   wenn Sie STARTNET.BAT ein bichen erweitern (es wird eine berprfung
   bentigt, ob Windows gerade luft) und eine zustzliche Abfrage ein-
   bauen, ob das Gert DPMS installiert ist:

    IF NOT EXIST \dev\DPMSXXX0 GOTO error

   oder - je nachdem -:

    IF EXIST \dev\CLOAK$$$ GOTO error

   Die Ikone fr PNWPRMPT.PIF knnen Sie natrlich auch in die AutoStart-
   Gruppe aufnehmen...

   Noch etwas: Die Treiber der IPX-Schicht knnen sehr wohl unter dem
   multitaskenden TASKMGR in einem Task geladen werden. Fr Programme
   (wie FASTLYNX), die nur diese untere Protokollschicht nutzen, kann
   man diesen Trick also auch unter dem multitaskenden TASKMGR nutzen,
   siehe Kapitel II.8.

                                                                             
  ---------------------------------------------------------------------------

  VI.3. Mehrere PNW-Server in einem Netz: [97-01-04]
  ==================================================

   Stichworte: NetWare, PNW, Bindery, Arbeitsgruppe, NET ADMIN, Ressourcen

   Es ist - im Gegensatz zu den groen NetWare-Versionen - bei PNW mglich,
   auch mit nur *einer* gekauften Version mehrere Server am gleichen Netz
   und in der gleichen Arbeitsgruppe ans Laufen zu bringen (dies verletzt
   allerdings wohl i. allg. die Lizenz - PNW sollte entsprechend hufig
   lizensiert werden) (ein Server kann allerdings nur gleichzeitig in einer
   Arbeitsgruppe angemeldet sein). Die 'Bindery' (oder eher Konfigurations-
   datenbank, PNW besitzt diesbezglich eine andere Organisationsform als
   die groe NetWare: eine Distributed Object Database (DOD)) wird dabei
   nicht zerschossen, wenn man wie folgt vorgeht:

   Jeder Server wird einzeln installiert (ohne, da eine Verbindung
   zwischen den Rechner besteht) und fr jeden Server wird die gleiche
   Arbeitsgruppe eingerichtet (also *nicht* eine bereits auf einem anderen
   Server vorhandene Arbeitsgruppe bernehmen). Dann werden alle Server
   'hochgefahren' und in ihrer Arbeitsgruppe angemeldet (PNW fragt nach,
   welche Arbeitsgruppe gemeint ist, wenn mehrere Gruppen mit dem gleichen
   Namen existieren, jede Arbeitsgruppe lt sich jedoch trotzdem eindeutig
   zuordnen). Danach loggt man sich ein und startet NET ADMIN, dort wird
   dann die eigene Arbeitsgruppe gelscht und der Server in die gleich-
   namige Arbeitsgruppe eines anderen Servers verschoben. Die Ressourcen
   sollte man dabei *nicht* bernehmen! Schlielich hat man alle Server
   in der gleichen und i. allg. auch einzigen Arbeitsgruppe versammelt.

   Es ist gut mglich, da es auch andere Mglichkeiten fr dieses Unter-
   fangen gibt.

                                                                             
  ---------------------------------------------------------------------------

  VI.4. PNW Login-Skripte in Multi-Konfigurationen:
  =================================================

   Stichworte: PNWLOGIN.SCR, NET, Umgebungsvariablen, 4DOS

   Benutzer von Multi-Konfigurationen (auch ber mehrere Rechner hinweg)
   sollten beim Erstellen von Login-Skripten (Dateien im versteckten
   Verzeichnis C:\NWCNTL\MAIL\xxxxxxxx\PNWLOGIN.SCR) sehr vorsichtig
   sein!

   Wenn man mit NET verschiedene Einstellungen vorgenommen hat und diese in
   seiner Login-Skript speichern will, werden dabei nicht nur die Laufwerk-
   Mappings und Druckerzuordnungen gespeichert, sondern auch die aktuelle
   Umgebung. Arbeitet man nun mit einer anderen Konfiguration als der,
   unter der das Login-Skript erstellt wurde, werden beim Einloggen die
   Variableneinstellungen der falschen Konfiguration wiederhergestellt, was
   je nach Raffinesse der Konfiguration sehr weitreichende Folgen haben
   kann. Besonderen Augenmerk verdienen die Variablen %ComSpec%, %CONFIG%
   und %Path% in den jeweiligen Dateien PNWLOGIN.SCR. Sie sollten vorher mit
   einem REM markiert werden. Fr die meisten Flle wird es am besten sein,
   alle SET Eintrge aus den PNWLOGIN.SCR Dateien zu entfernen, damit keine
   ungewnschten Interferenzen auftreten knnen.

   Beispiel:

   Eine Multi-Konfiguration arbeitet wahlweise mit 4DOS.COM oder COMMAND.COM
   als Kommandoprozessor. Hat man das Login-Skript unter der 4DOS-Konfigura-
   tion erstellt, wird auch dann die Einstellung %ComSpec%=...\4DOS.COM beim
   Login gesetzt, wenn man im Moment lediglich unter COMMAND.COM arbeitet.
   Die Folge ist, da der Rechner nach Beenden des ersten greren Pro-
   gramms, das nach dem Einloggen gestartet wurde, mit einer Fehlermeldung
   stehen bleibt (weil der transiente Teil von COMMAND.COM - ber %ComSpec%
   referenziert - nicht mehr nachgeladen werden kann).

                                                                             
  ---------------------------------------------------------------------------

  VI.5. NETWARS als Netzanalyse-Werkzeug: [96-05-09]
  ==================================================

   Stichworte: Netzwerk-Hardware, NETWARS, ODI, VLM, SERVER, COMCHECK

   Hufig knnen schon bei der Hardware-Installation eines Netzes unent-
   deckte Fehler auftauchen, die verhindern, da die PNW-Software sauber
   arbeiten kann. Ist bereits ein grundlegendes Netz hochgezogen (d.h. die
   ODI-Treiber (ausgenommen VLM und SERVER) sollten geladen sein), kann man
   versuchen, mit dem Spiel NETWARS ber das Netz zu mehreren Spielern zu
   spielen (alle Spieler mssen das gleiche 'Universum' whlen). Sollte dies
   gelingen und man tatschlich feindliche Schiffe - durch die anderen
   Benutzer gesteuert - entdecken, liegt der Fehler mit ziemlicher Sicher-
   heit nicht in der Hardware-Konfiguration, d.h. die Netzadapterkarten und
   die Verkabelung arbeiten sauber, ebenso sind die ODI-Treiber ber NET.CFG
   richtig eingestellt.

   Ebenfalls hilfreich fr grundlegende Analysen am Netz ist das Utility
   COMCHECK.EXE aus dem Archiv COMCHK.EXE.

                                                                             
  ---------------------------------------------------------------------------

  VI.6. PNW und Dateiattribute: [96-05-05]
  ========================================

   Stichworte: PNW, ATTRIB, Kopieren, System-Attribut, Read-Only-Attribut,
               Client, Server

   i. PNW und Dateiattribute von DOS:
   ----------------------------------

   Gegenber der groen NetWare benutzt PNW das Dateisystem von DOS.
   Entsprechend sind auch nur die vier blichen Attribute auf Dateien
   und (wie meist nicht bekannt) Pfade anwendbar: Archiv A, Read-Only R,
   Hidden H und System S (fr interne Zwecke gibt es noch zwei Bits mehr:
   Volume V und Directory D). Mit PASSWORD gibt es offiziell noch drei
   'Attribute' (hier Zugriffsrechte) mehr, Multiuser-Varianten verwenden
   noch weitere 'Attribute' (siehe PASSWORD, Kapitel II.4.). Besitzt eine
   Datei allerdings mit PASSWORD vergebene eingeschrnkte Zugriffsrechte,
   so kann von entfernten Rechnern nur soweit darauf zugegriffen werden,
   wie dafr kein Pawort erforderlich ist. Die bermittlung von Datei-/
   Verzeichnispawrtern ber das Netz ist nicht mglich.

   Daher sind die Mglichkeiten, den Zugriff auf Dateien zu steuern gegen-
   ber der groen NetWare ziemlich beschrnkt, fr kleinere Netze reichen
   diese Optionen jedoch aus. Die Funktion der Attribute entspricht im
   Prinzip der Funktion unter DOS, allerdings gibt es ein paar Besonder-
   heiten:

   - Read-Only-Attribut erlaubt Mehrfachzugriff:

   By the way: Viele (vor allem ltere) Programme benutzen Methoden, Dateien
   zu ffnen, die in Netzen dazu fhren, da die Datei auch im Lesezugriff
   nur von einem Programm gleichzeitig geffnet werden kann (gerade, wenn
   ein Benutzer sowieso nur Read-Only-Rechte auf einem PNW-Server hat). In
   diesem Fall hilft es meist, da Read-Only-Attribut der Datei zu setzen,
   sowohl bei ausfhrbaren Dateien, als auch bei Datendateien (wenn diese
   nicht verndert werden mssen, z.B. wie diese Textdateien...) Hat der
   Benutzer jedoch Lese- und Schreibrechte funktioniert dies nicht immer...


   ii. Mit PNW Systemdateien ber's Netz lschen:
   ----------------------------------------------

   Mit PNW ist es auf den ersten Blick nicht mglich, Dateien zu lschen,
   die auf einem Server das System-Attribut gesetzt haben, bzw. vom Client
   aus solche Dateien per Kopieraktion upzudaten. Wenn man das dennoch
   mchte, mu man zuerst diese Attribute mit ATTRIB lschen, danach knnen
   die Dateien ganz normal bearbeitet werden.

   Umgekehrt ist es aber sehr wohl mglich, Dateien, die auf dem Client
   mit dem System-Attribut versehen sind, mit Dateien eines Servers zu
   berschreiben.

                                                                             
  ---------------------------------------------------------------------------

  VI.7. Tips fr Pawrter:
  =========================

   Stichworte: Pawrter, Sicherheit, MS-DOS, PASSWORD, SECURITY, NetWare,
               PNW

   Unter Novell DOS kann man in vielen Situationen Pawrter angeben.
   Da die Datei-, Pfad- und globalen Pawrter sich sehr leicht (durch
   Booten unter MS-DOS) ausschalten lassen, sind sie - einzeln genommen -
   eher sinnvoll, um das versehentliche Lschen, Umbenennen oder Modifi-
   zieren wichtiger oder fremder Dateien zu verhindern (mehr dazu in
   Kapitel II.4. bei PASSWORD und SECURITY.OVL). In Verbindung mit einem
   Systempawort, das beim Booten abgefragt wird, wird jedoch der Schutz
   vor unberechtigtem Zugriff schon wesentlich verbessert (allerdings
   lt sich auch dieser Schutz mit einigem Aufwand und evtl. partiellem
   Datenverlust aushebeln).

   Dadurch wird auch die sinnvolle Namenswahl fr die Datei- und Ver-
   zeichnispawrtern und des globalen Paworts, das mit dem Anmelde-
   pawort korrellieren kann, wichtig.

   In Verbindung mit den Novell-Netzen (speziell PNW) wird die Angabe
   von Pawrtern besonders wichtig. Der hier gebotene Schutz ist sehr
   umfassend (wenn der direkte Zugang zu einem Server verhindert wird,
   etwa indem er in einem gesicherten Raum steht) und im Prinzip nicht
   ausgehebelt werden (wenn bestimmte Voraussetzungen gelten). PNW stellt
   insofern eine gewisse Ausnahme da, als da durch die Eigenart eines
   Peer-to-Peer-Netzes meist der direkte Zugang zum PC erlaubt ist, aber
   grundstzlich sind die Pawortmechanismen genauso sicher bei der
   'groen' NetWare.

   Novell DOS erlaubt ein spezielles Feature der 'einmaligen Anmeldung'
   (One-Time-Login), das nach Angabe des Benutzernamens und Pawortes den
   Zugriff auf den lokalen Rechner und die zugehrigen Netzverbindungen
   erlaubt.

   Deshalb sollte man bei der Angabe von Pawrtern verschiedene Grundregeln
   beachten:

   - Der Benutzer mu sich auch nach lngerer Zeit an sein Pawort erinnern
     knnen (diese Aussage ist besonders wichtig fr den SUPERVISOR des
     Netzes).

   - Das Pawort sollte nirgendwo notiert werden (oder wenn, dann nur so,
     da der Zugriff durch andere Personen sicher verhindert wird (Tresor).
     Also nicht in der Schreibtischschublade, neben dem Monitor, neben der
     Tastatur!!!)

   - Das Pawort sollte kein Wort sein, das jemand anderen leicht erraten
     werden kann, also nicht der zweite Vorname, das Geburtsdatum, der Namen
     von Verwandten, der Freundin...

   - Das Pawort sollte nicht zu lang sein, da man es sich nicht mehr
     merken kann (und doch irgendwo notiert). Die maximale Lnge von Datei-,
     Verzeichnis-, und globalen Pawrtern betrgt 8 Zeichen, die NetWare-
     Pawrter bis zu 12 Zeichen.

   - Das Pawort sollte auch nicht zu kurz sein, da es durch wenige Ver-
     suche erraten werden kann (also mindestens 5 Zeichen lang).

   - Bei wichtigen Accounts sollte das Pawort kein Wort sein, das in
     einem Lexikon oder Duden vorkommt, da es sonst durch sukzessives
     Ausprobieren geknackt werden kann (es gibt Programme, die soetwas
     automatisch machen). Also stattdessen zusammengesetzte Wrter,
     Phantasiewrter oder Kombinationen von Buchstaben und Zahlen.

   - In einem Pawort sollten normalerweise nur Ziffern und Buchstaben
     vorkommen, keine Sonderzeichen oder Umlaute, da diese u.U. bei
     zuknftigen Software-Versionen nicht mehr akzeptiert werden knnten
     (und man sich dann nicht mehr einloggen kann).

   - Manchmal problematisch sind Pawrter, die 'Y' oder 'Z' enthalten,
     da diese Buchstaben bei der deutschen Tastaturbelegung von der
     amerikanischen Belegung abweichen und es durch eine Software-nderung
     oder Umkonfiguration vorkommen kann, da zum Zeitpunkt der Pawort-
     eingabe keine deutsche Tastatur untersttzt wird (etwa wenn kein
     Tastaturtreiber geladen ist oder whrend der Systemanmeldung bei einem
     amerikanischen Update fr Novell DOS). In diesem Fall wrden 'Y' und
     'Z' vertauscht und man knnte sich nicht einloggen. Die Ursache einer
     falschen Tastaturanpassung wird hufig bersehen (weil sie so unwahr-
     scheinlich ist und weil die Paworteingabe verdeckt erfolgt), gerade
     mit dem Feature der einmaligen Anmeldung (und damit noch vor dem Laden
     eines Tastaturtreibers) ist dies sehr wichtig, wenn man sich spter
     unter anderen Bedingungen einloggen mchte.

   - In gewissen Zeitabstnden sollte man die Pawrter (zumindest bei
     NetWare) ndern, damit die Wahrscheinlichkeit des Erratens minimiert
     wird. NetWare (auch PNW) erlaubt hier recht umfangreiche Einstellungs-
     mglichkeiten: minimale Pawortlnge, forcierter Pawortwechsel in
     einstellbaren Zeitabstnden oder bei einem definierbarem Datum,
     automatisch ablaufende Accounts, die erst wieder freigeschaltet
     werden mssen, Abwehr von Eindringversuche durch Zeitschranken
     zwischen falschen Paworteingaben oder gesperrte Accounts nach einer
     gewissen Anzahl von falschen Einlog-Versuchen. Auerdem die Angabe,
     zu welchen Zeiten man sich berhaupt nur einloggen darf, usw.

                                                                             
  ---------------------------------------------------------------------------

  VI.8. PNW ohne Novell DOS 7 installieren:
  =========================================

   Stichworte: PNW, SETUP, SETUP2, INSTALL

   Mchten Sie nur den PNW-Teil von Novell DOS 7 installieren, reicht es
   aus, die Novell DOS 7 Disketten auf die Festplatte zu kopieren und die
   Datei SETUP2.EX_ mit PNUNPACK zu entpacken und in SETUP.EXE umzunennen.
   Nach dem Aufruf kann man PNW ohne Novell DOS 7 installieren (denn SETUP2
   bernimmt die Feineinstellung und die Installation einzelner Features
   wie PNW, Security etc. wohingegen INSTALL das Grundsystem bootfhig
   macht). Weitere Hinweise zu INSTALL/SETUP gibt es in Kapitel I.2. .

   Bei Novell kann ein kostenloses Paket D72PNW.EXE (Lesart "DOS 7 'to'
   PNW") bezogen werden, das aus den 3,5" Original-Installationsdisketten
   ein einzeln installierbares PNW-System generiert. Diese Lsung ist
   natrlich der obigen 'Do-it-Yourself'-Methode vorzuziehen.

                                                                             
  ---------------------------------------------------------------------------

  VI.9. Hinweise zu NET.EXE: [97-01-04]
  =====================================

   Stichworte: PNW, NET.EXE

   Die Benutzeroberflche von PNWs NET.EXE lt sich genauso wie die
   Novell DOS Programme konfigurieren.

   Die folgenden Mglichkeiten sind undokumentiert:

   Die Konfiguration des Benutzer-Interfaces wird der Datei
   %NWDOSCFG%\NWDOS.INI entnommen. Nur wenn diese Datei nicht existiert,
   wird alternativ die Datei %NWDOSCFG%\COLORS.INI (bzw. COLORS.INI)
   ausgewertet. (Leider ist die Prioritt nicht umgekehrt, was noch etwas
   mehr Flexibilitt ermglichen wrde.)
   Innerhalb dieser Datei wird - falls vorhanden - die Gruppe [NET] nach
   den Direktiven

    NewUI=on|off
    CurrentColor= (Palettennummer 0..9)

   durchsucht, falls diese Gruppe nicht existiert, wird die Default-
   Einstellung fr NewUI= und CurrentColor= aus der Gruppe [COLORS]
   gewhlt. Dort sind auch die einzelnen Farbpaletten mit ColorSetX=
   Direktiven definiert (X=<CurrentColor> aus 1..9, Nheres siehe Kapitel
   II.4.).

   Auerdem wertet NET.EXE bei Bedarf fr den integrierten Editor auch
   noch die Gruppe [EDITOR] (Kapitel II.4.) aus und entnimmt ihr ebenfalls
   NewUI= und CurrentColor=.

   In der NET.CFG Datei werden von NET.EXE die folgenden Direktiven

    NETWARE DOS REQUESTER
      PREFERRED WORKGROUP=<workgroup name>; (offenbar statt WORKGROUP NAME=)
      WORKGROUP NET=<workgroup net address>
      BROADCAST RETRIES=<2>            ; 0..255
      BROADCAST TIMEOUT=<3>            ; 1..255
      BROADCAST SEND DELAY=<0>         ; 0..255

   ausgewertet (siehe Kapitel VI.12.).

   Sollte der in NET.EXE integrierte DOS-Extender??? (RTLink/Plus) Probleme
   mit der Speicherverwaltung bekommen, kann er mit verschiedenen
   Umgebungsvariablen konfiguriert werden: Die Verwendung einer bestimmten
   Speichersorte fr ein bestimmtes Modul wird dabei durch den Wert 0 de-
   aktiviert. Mgliche Variablen sind (vgl. bei SETUP.EXE in Kapitel II.4.):

    VM-Manager:      RTVMEXT, RTVMEXP, RTVMCONV
    Overlay-Manager: RTOVEXT, RTOVEXP, RTOVCONV


   NET.EXE kann man auch als SHELL fr eine Reihe Dienstprogramme be-
   trachten, die bei der groen NetWare als externe Tools vorliegen.
   ber Aufrufparameter lassen sich nahezu alle (und noch einige andere)
   Mglichkeiten der Oberflche auch direkt aus Batchjobs heraus abwickeln,
   z.B. in Login-Skripten oder fr Wartungsjobs. Im Fehlerfall liefert
   NET.EXE dabei Errorlevel grer 0 zurck, so da man in Batchjobs mit

    IF ERRORLEVEL 1 GOTO error

   auf Fehlerzustnde berprfen kann.

   NET.EXE untersttzt noch eine Reihe zustzlicher Parameter, die nicht
   oder nur unvollstndig im DOSBOOK oder in der eingebauten Parameterhilfe
   (NET /? oder NET /? thema) dokumentiert sind:

    NET ATTACH  wie NET CONNECT (d.h. siehe NET /? CONNECT)
    NET CAPTURE nur im DOSBOOK dokumentiert sind die zwei Schalter:
                S=name zur Angabe eines Initialisierungszeichenkette, die
                       vor einem Ausdruck an den Drucker gesendet wird.
                       Der Standard S=default schickt keine zustzliche
                       Sequenz ab.
                W=time zur Angabe der Wartezeit, die einen abgeschickten
                       Druckjob auch ohne explizite Beendigung beendet,
                       so da einzelne Druckjobs, die in gengend groen
                       zeitlichen Abstnden eintreffen, automatisch von-
                       einander getrennt behandelt werden. Werden Druck-
                       auftrge zu frh abgeschnitten, mu diese Wartezeit
                       erhht werden.
    NET CASTON  Diese beiden Schalter erlauben das Aktivieren oder Unter-
    NET CASTOFF drcken von eintreffenden Meldungen. Falls aktiv, werden
                eingehende Meldungen mit einer Message angekndigt. In
                manchen Fllen kann dies sehr strend sein oder Probleme
                verursachen, da die Abarbeitung der Applikation ohne
                Timeout solange aussetzt (nachteilig bei unbemanntem
                Betrieb, z.B. ber Nacht). Auch nicht netztaugliche Grafik-
                programme (z.B. PC DRAFT) bereiten schon 'mal Probleme,
                weil die Meldung im Grafikmodus nicht angezeigt wird aber
                trotzdem besttigt werden mu. Viele Benutzer kommen dann
                nicht auf die Idee, 'blind' <Ctrl>+<Enter> zu drcken und
                halten die Anwendung fr abgestrzt (siehe PCDTIPS.TXT).
   NET DETACH   Hiermit kann gezielt die Verbindung zu einem bestimmten
                Server aufgehoben werden und wirkt damit gegenteilig wie
                NET ATTACH alias NET CONNECT. Obwohl undokumentiert,
                existiert eine eingebaute Hilfe: NET /? DETACH, auf die
                man nur durch Zufall stoen mu...
   NET MAP DEL  Diese Option ist nur in der eingebauten Hilfe NET /? MAP
                dokumentiert.
   NET RIGHTS DEL  kann statt NET RIGHTS DELETE verwendet werden.
   NET USER    wirkt exakt wie NET und startet die Benutzer-Oberflche.

   Sollten Sie Probleme mit NET.EXE haben, ist fr Sie vielleicht
   interessant, da das derzeitige Archiv PNWUPD.EXE (05/1996) eine
   aktuellere Version (1.05), als das PNW-Update 5 P10G05.EXE enthlt
   (1.03).


   Noch ein kleiner Hinweis am Rande (wenn auch etwas aus des dem
   Zusammenhang):

   .VLM-Dateien, die zu .EXE umbenannt und direkt, statt ber VLM auf-
   gerufen wurden, kehren sofort mit Fehlercode 6 zurck.

                                                                             
  ---------------------------------------------------------------------------

  VI.10. Hinweise zur Universal Naming Convention (UNC): [96-03-26]
  =================================================================

   Stichworte: PNW, UNC, MAP, Capture

   Die Universal Naming Convention gliedert die unterschiedlichsten Netz-
   ressourcen in Form eines Verzeichnisbaums, bei der man am Anfang den
   Server angibt, der die Ressource bereitstellt, und dann den Namen der
   Ressource spezifiziert. Bei weiterer Unterteilung dieser Ressource
   (bei Laufwerken etwa Unterverzeichnisse) ist auch die Angabe von
   Pfaden mglich.

   Neben der blichen Methode, entfernte Laufwerke ber ihre Drive-Mappings
   (MAP, NET MAP) anzusprechen, bietet die UNC also eine manchmal sinn-
   vollere Mglichkeit, weil man die Ressource 'physikalisch' benennen kann
   und nicht wie sonst ber den Umweg einer 'relativen' Substitution.
   Allerdings werden die Pfadangaben dadurch auch lnger und manchmal ist
   es gerade wnschenswert, 'relative' Konfigurationen zu erstellen.

   Laut Novell drfen die Pfade unter DR DOS 6.0 und Novell DOS 7 fr
   lokale Ressourcen bis zu 128 Zeichen lang sein, ansonsten gilt die
   bliche DOS-Beschrnkung fr maximale Pfadlngen von 67 Zeichen
   (ausprobiert habe ich dies nicht).

   Syntax:                (SERVER ist der vergebene Name fr die Netz-
                          ressource SERVER, und VOLUME der fr ein Laufwerk,
                          d.h. nicht der Volume-Name, den man mit LABEL
                          einstellen kann.)

    SERVER/VOLUME:DIR\    ber MAP oder SUBST an ein logisches Laufwerk
                          gekoppelt. Statt des '/' kann auch '\' geschrieben
                          werden. Klappt immer!
    SERVER\VOLUME:DIR\    direkte Angabe (klappt unter 4DOS und Novells
                          COMMAND.COM immer mit Laufwerken, offenbar aber
                          auch mit anderen Ressourcen wie Druckerports.
    \\SERVER\VOLUME\DIR\  entsprechend UNC (klappt ebenfalls fast immer,
                          zumindest unter 4DOS und COMMAND.COM)

   Beispiele: (PNWSRV1_DRV1 sei ein Netzlaufwerk)

    DIR pnwsrv1_pc\pnwsrv1_drv1:\
    DIR \\pnwsrv1_pc\pnwsrv1_drv1\

   Wie angesprochen, kann statt des VOLUME bei UNC allgemein auch eine
   andere Ressource genannt werden. DOS bietet hier vergleichsweise ein-
   geschrnkte Mglichkeiten, soweit diese Ressourcen aber auch unter DOS
   quasi wie Dateinamen angegeben werden konnten (und knnen), sollte die
   Angabe entsprechend UNC mglich sein (Namen von Block-Devices werden bei
   DOS bekanntlich fast wie Dateinamen behandelt).
   Ist PNWPRN1_LPT1 eine Ressource, die einen Druckerport auf dem Server
   PNWSRV1_PC darstellt, sollten also Angaben wie

    DIR *.* > \\pnwsrv1_pc\pnwprn1_lpt1\

   erlaubt sein, d.h. man knnte auf das Capturen des Ports auf dem lokalen
   Rechner verzichten (allerdings funktionierte diese Methode bei meinen -
   zugegeben bisher nur flchtigen - Tests mit einem separaten PNW-Netz
   (VLMUP4) nicht. Es erschien die Fehlermeldung: Netzwerkfehler 071).
   Ohne geladene Netzshell (NETX bzw. VLM) sind derartige Zugriffe ver-
   stndlicherweise (prinzipiell) nicht zulssig.

   Bezglich Einschrnkungen und nderungen im Laufe der Versionsgeschichte
   von COMMAND.COM und .VLM-Updates sei auch auf die HISTORY.TXT Datei aus
   den Novell DOS 7 Updates verwiesen.

                                                                             
  ---------------------------------------------------------------------------

  VI.11. PNW-Server und Sharing von Wechselmedien: [96-04-14]
  ===========================================================

   Stichworte: Floppy-Sharing, CD-ROM-Sharing, Drucker-Sharing

   Richtet man einen PC als PNW-Server ein, mu man sich u.a. entscheiden,
   welche Laufwerke man 'shareable' machen mchte, d.h. anderen Client-
   Rechnern zur Verfgung stellen will.
   Dabei sollte man - von Ausnahmen abgesehen - darauf achten, nur solche
   Ressourcen zu teilen, die immer verfgbar sind (oder es zumindest
   bleiben, nachdem sich ein Benutzer eines Clients einloggen konnte).
   Dazu zhlen in erster Linie Festplatten, wo es nur selten Probleme gibt.

   Kritisch ist das 'Teilen' von Floppies, da ein Client normalerweise
   nicht sicherstellen kann, da auf dem Server eine Diskette eingelegt ist.
   Greift man trotz nicht eingelegter Diskette auf ein Floppy-Laufwerk zu,
   so erscheint im gnstigsten Fall nach kurzer Zeit eine Fehlermeldung auf
   dem Client. Es ist aber auch mglich, da die DOS-Fehlermeldung "Abbruch,
   Wiederholen, Ignorieren" auf dem Server erscheint, der vielleicht in
   diesem Moment gar nicht besetzt ist oder wo jemand gerade eine wichtige
   Berechnung in einer Applikation durchfhrt...
   Besonders unangenehm fallen hierbei die 5,25" Floppy-Laufwerke auf:
   Aufgrund ihrer Mechanik ist es mglich, eine Diskette zwar einzulegen,
   die Laufwerksklappe aber nicht zu schlieen. Die Mehrzahl der Laufwerke
   (auch von Markenherstellern) knnen diese Situation nicht als "Keine
   Diskette eingelegt" erkennen, sondern nur als "Diskette eingelegt,
   Zugriff nicht mglich". In diesem Fall ist mit extrem langen Wartezeiten
   beim Zugriff auf ein solches Laufwerk zu rechnen, bis DOS oder die
   Applikation es aufgibt, auf das Laufwerk zuzugreifen.
   All dies wre noch ertrglich, wenn man sicherstellen knnte (und wrde),
   da nur dann (bewut) auf ein Floppy-Laufwerk zugegriffen wird, wenn auch
   ein Medium eingelegt ist. Leider ist dem nicht so: Sehr viele Programme
   (z.B. viele Utilities der Norton Utilities oder der PC-Tools, aber auch
   MS Windows und Netzanalyse-Programme) greifen beim Start auf jedes ver-
   fgbare Laufwerk zu, um den aktuellen Status einzuholen. Auf diese Weise
   werden auch die entfernten Laufwerke 'durchgescannt'. Sind Floppy-
   Laufwerke darunter, tritt das oben beschriebene Szenario in Kraft, und
   zwar in den allermeisten Fllen, ohne da man die Mglichkeit htte,
   dies zu umgehen. Nur sehr wenige Programme (etwa PROSHELL) lassen es zu,
   da man in der Konfigurationsdatei angibt, ob und wenn welche Laufwerke
   gescannt werden drfen.

   hnliche Situationen knnen sich auch mit CD-ROM-Laufwerken, Wechsel-
   festplatten, bestimmten intelligenten Streamern oder zur Laufzeit in
   der Gre verstellbaren RAM-Disks (wie etwa TDSK) ergeben. Teilweise
   kann man per Software-Option (z.B. viele CD-ROM-Treiber) verhindern,
   da man das Medium wechseln kann. Auch Drucker (Papierstau, Papierende)
   knnen von diesem Problem betroffen sein, in der Regel fhrt dies aber
   nicht zu langen Hngern, sondern zu einer unmiverstndlichen Meldung.
   Auerdem werden Drucker auch nur selten beim Start einer Applikation
   initialisiert.

                                                                             
  ---------------------------------------------------------------------------

  VI.12. NET.CFG Parameter: [97-02-13]
  ====================================

   Stichworte: SERVER.EXE, VLM.EXE, VLMs, NET.EXE

   Die folgende Auflistung beschreibt, welche NET.CFG Parameter von welchen
   Netztreibern ausgewertet werden (und erhebt derzeit noch nicht den
   Anspruch auf Vollstndigkeit, z.Z. werden hier lediglich die Gruppen
   NETWARE DOS REQUESTER und DESKTOP SNMP behandelt).

   Mit den VLM-Updates sind eine ganze Reihe neuer Parameter hinzugekommen
   (besonders bei v1.10 und v1.21); es gibt aber auch noch etliche Para-
   meter aus Zeiten lange vor dem VLM-Client, die heutzutage nicht mehr
   ausgewertet werden und daher in dieser Auflistung auch nicht mehr
   auftauchen. Teilweise durchsuchen die Programme (SERVER.EXE) die Datei
   NET.CFG und wenn diese nicht auffindbar ist, die ltere Datei SHELL.CFG
   (aus IPX/NETX-Zeiten). Weitere Hinweise in NETCFG.TXT und SAMPLNET.CFG
   aus den VLM-Kits und natrlich im DOSBOOK!

   Die Auflistung geschieht hier - im Gegensatz zu anderen bersichten -
   anhand der jeweiligen Treiber, weil m.E. so ein besseres Verstndnis
   fr die Wirkung eines Treibers mglich wird.

   PNW-Server SERVER.EXE (getestet mit v1.23):
    (sucht die Dateien C:\NWCLIENT\NET.CFG, C:\PNETWARE\NET.CFG,
     NET.CFG, SHELL.CFG)

    NETWARE DOS REQUESTER          ;
     ALTERNATE CALLDOS=on|<off>    ; Fr Prozeumschalter
     NETWARE SHARING MODE=         ;
     OS2=on|<off>                  ; Fr OS/2 Support


   VLM.EXE (getestet mit v1.21):

    NETWARE DOS REQUESTER          ;
     CONFIRM CRITICAL ERROR ACTION=<on>|off ; (erst ab v1.10+)
     EXCLUDE VLM=<vlm>             ; kann wiederholt werden
     MESSAGE LEVEL=<1>             ; 0..4
            ; 0 = V_LEVEL_STD     always display message and critical errors
            ; 1 = V_LEVEL_WARNING display warning type messages
            ; 2 = V_LEVEL_PROG    display the program load message
            ; 3 = V_LEVEL_CONFIG  display configuration information
            ; 4 = V_LEVEL_DIAG    display diagnostic information
     NETWARE PROTOCOL=[NDS] [BIND] [PNW]; die nicht bentigten VLMs werden
                                   ; nicht geladen
                                   ; (nicht NETWARE PROTOCOLS= !!!)
     SET STATION TIME=<on>|off     ;
     USE DEFAULTS=on|off           ; lade Default-VLMs (erspart die meisten
                                   ; der VLM= Anweisungen)
     VLM=<vlm>                     ; kann wiederholt werden


   AUTO.VLM (setzt REDIR.VLM voraus) (getestet mit v1.21):

    NETWARE DOS REQUESTER          ;
     AUTO RECONNECT=<on>|off       ;
     AUTO RETRY=<0>                ; 0..3640
     AUTO LARGE TABLE=on|<off>     ; Mit <off> ist die max. Lnge fr Namen
                                   ; und Pawrter auf 16 Zeichen beschrnkt
     BIND RECONNECT=on|<off>       ;
     CONNECTIONS=<8>               ; 2..50


   BIND.VLM (setzt TRAN.VLM voraus) (getestet mit v1.21):

    NETWARE DOS REQUESTER          ;
     BIND RECONNECT=on|<off>       ;
     ;PREFERRED SERVER=<server name> (angeblich mit v1.10, nicht aber v1.21)


   CONN.VLM (getestet mit v1.21):

    NETWARE DOS REQUESTER          ;
     AVERAGE NAME LENGTH=<48>      ; 2..48
     CONNECTIONS=<8>               ; 2..50
     LOAD CONN TABLE LOW=on|<off>  ;
     LOAD LOW CONN=<on>|off        ;
     MAX TASKS=<31>                ; 5..254


   FIO.VLM (bentigt NWP.VLM) (getestet mit v1.21):

    NETWARE DOS REQUESTER          ;
     CACHE BUFFERS=<5>             ; 0..64
     CACHE BUFFER SIZE=<media dependent>; (nicht CACHE BUFFERS SIZE= !!!)
     CACHE WRITES=<on>|off         ;
     CONNECTIONS=<8>               ; 2..50
     LOAD LOW FIO=on|<off>         ; (erst ab v1.10+)
     MAX IPG=                      ; <nichts>, 0..63, 257 (erst ab v1.20B+)
     PB BUFFERS=<3>                ; 0..10, 0=off, sonst=on
     PBURST READ WINDOW SIZE=<16>  ; 2..64
                                   ; (nicht PBURST READ WINDOWS SIZE= !!!)
     PBURST WRITE WINDOW SIZE=<10> ; 2..64
                                   ; (nicht PBURST WRITE WINDOWS SIZE= !!!)
     TRUE COMMIT=on|<off>          ;


   GENERAL.VLM (bentigt NWP.VLM) (getestet mit v1.21):

    NETWARE DOS REQUESTER          ;
     DOS NAME=<MSDOS>              ; max. 5 Zeichen (vgl. Kapitel IV.7.)
     FIRST NETWORK DRIVE=<1st avail>; A..Z
     FORCE FIRST NETWORK DRIVE=on|<off>; (erst ab v1.10+)
     LOCK DELAY=<1>                ; 0..255 (vollstndig ab v1.20+)
     LOCK RETRIES=<3>              ; 0..255 (vollstndg ab v1.20+)
     LONG MACHINE TYPE=<IBM_PC>    ; max. 6 Zeichen
     SEARCH MODE=<1>               ; 0..7
     SHORT MACHINE TYPE=<IBM>      ; max. 4 Zeichen


   IPXNCP.VLM (getestet mit v1.21):

    NETWARE DOS REQUESTER          ;
     ALTERNATE SOCKETS=            ; (erst ab v1.21+)
     CHECKSUM=<1>                  ; 0..33
     HANDLE NET ERRORS=<on>|off    ;
     LARGE INTERNET PACKETS=<on>|off
     LIP START SIZE=<0>            ; 0, 576..65536 (ab v1.20+)
     LOAD LOW IPXNCP=<on>|off      ;
     MINIMUM TIME TO NET=<value>   ; (erst ab v1.10+)
     PB BUFFERS=<3>                ; 0..10, 0=off, sonst=on


   NDS.VLM (bentigt TRAN.VLM, RSA.VLM) (getestet mit v1.21):

    NETWARE DOS REQUESTER          ;
     ; AUTO RECONNECT=<on>|off     ; (angeblich bei v1.10, nicht be v1.21)
     CONNECTIONS=<8>               ; 2..50
     NAME CONTEXT="<context>"      ;
     PREFERRED TREE=<tree>         ;


   NETX.VLM (bentigt REDIR.VLM, PRINT.VLM) (getestet mit v1.21):

    NETWARE DOS REQUESTER          ;
     DOS NAME=<MSDOS>              ; max. 5 Zeichen (vgl. Kapitel IV.7.)
     EOJ=<on>|off                  ; (erst ab v1.10+)
     FIRST NETWORK DRIVE=<1st avail>; A..Z
     LOAD LOW NETX=on|<off>        ; (erst ab v1.10+)
     ;LOCK DELAY=<1>     0..255    (angeblich teilweise bei v1.10, voll-
     ;LOCK RETRIES=<3>   0..255    stndig bei v1.20, nicht bei 1.21)
     LONG MACHINE TYPE=<IBM_PC>    ; max. 6 Zeichen
     SHORT MACHINE TYPE=<IBM>      ; max. 4 Zeichen


   NWP.VLM (bentigt BIND.VLM, PNW.VLM) (getestet mit v1.21):

    NETWARE DOS REQUESTER          ;
     CHECKSUM=<1>                  ; 0..3
     LARGE INTERNET PACKETS=off|<on>
     ;LIP START SIZE=<0>  0,576..65536 (angeblich bei v1.10, nicht bei 1.21)
     MESSAGE TIMEOUT=<0>           ; 0..10000
     SIGNATURE LEVEL=<1>           ; 0..3


   PNW.VLM (getestet mit v1.21):

    NETWARE DOS REQUESTER          ;
     BROADCAST RETRIES=<2>         ; 0..255
     BROADCAST SEND DELAY=<0>      ; 0..255
     BROADCAST TIMEOUT=<3>         ; 1..255
     PREFERRED WORKGROUP=<workgroup>; (offenbar statt des im DOSBOOK
                                   ; beschriebenen WORKGROUP NAME=)
     RESPONDER=off|<on>            ;
     MOBILE MODE=<0>               ; 0..65535
     WORKGROUP NET=                ;


   PRINT.VLM (getestet mit v1.21):

    NETWARE DOS REQUESTER          ;
     LOCAL PRINTERS=<3>            ; 0..9
     NETWORK PRINTERS=<3>          ; 0..9 (0 ldt PRINT.VLM nicht)
     PRINT BUFFER SIZE=<64>        ; 0..256
     PRINT HEADER=<64>             ; 0..1024
     PRINT TAIL=<15>               ; 0..1024
     RESET PRINTER FLAGS=          ; (erst ab v1.21+)


   REDIR.VLM (getestet mit v1.21):

    NETWARE DOS REQUESTER          ;
     EOJ=off|<on>                  ; (erst ab v1.10+)
     FIRST NETWORK DRIVE=<1st avail>; A..Z (angeblich nicht mit v1.10...)
     LOAD LOW REDIR=<off>|on       ; (erst ab v1.10+)
     READ ONLY COMPATIBILITY=<off>|on; (vor v1.10 war Default <on>)
     SHOW DOTS=<off>|on            ;


   SECURITY.VLM (getestet mit v1.21):

    NETWARE DOS REQUESTER         ;
     CONNECTIONS=<8>              ; 2..50
     SIGNATURE LEVEL=<1>          ; 0..3


   WSASN1.VLM (getestet mit v1.21):

    NETWARE DOS REQUESTER         ;
     LOAD LOW WSASN1=off|on       ; (nicht mit v1.00)
    DESKTOP SNMP                  ;
     ENABLE CONTROL COMMUNITY=off|any|specified|[ommitted]
     ENABLE MONITOR COMMUNITY=off|any|specified|[ommitted]
     MONITOR COMMUNITY="name|public|private"
     CONTROL COMMUNITY="name|public|private"


   WSREG.VLM (getestet mit v1.21):

    NETWARE DOS REQUESTER         ;
     LOAD LOW WSREG=off|on        ; (nicht mit v1.00)


   WSSNMP.VLM (getestet mit v1.21):

    NETWARE DOS REQUESTER         ;
     LOAD LOW WSSNMP=off|on       ; (nicht mit v1.00)
    DESKTOP SNMP                  ;
     ASYNCHRONOUS TIMEOUT=<20>    ;
     SNMPENABLEAUTHENTRAPS=<off>|on
     SYSCONTACT="<mail address>"  ;
     SYSLOCATION="<description system location>"
     SYSNAME="<description system name>"


   WSTRAP.VLM (getestet mit v1.21):

    NETWARE DOS REQUESTER         ;
     LOAD LOW WSTRAP=off|on       ;
    DESKTOP SNMP                  ;
     TRAP COMMUNITY="name|public|private"
     ENABLE TRAP COMMUNITY=off|any|specified|[ommitted]; (auch 'any'!!!)


   Die VLMs MIB2IF.VLM, MIB2PROT.VLM, NMR.VLM, PNWMIB.VLM, RSA.VLM,
   TRAN.VLM, WSDRVPRN.VLM lesen selbst keine Konfigurationsparameter aus
   der NET.CFG Datei (getestet mit v1.21). Der im DOSBOOK beschriebene
   Parameter WORKGROUP NAME= innerhalb der NETWARE DOS REQUESTER Gruppe
   wird von PNW.VLM offenbar nicht ausgewertet (und scheint durch den
   spter dokumentierten Parameter PREFERRED WORKGROUP= ersetzt worden
   zu sein).

   NET.EXE (getestet mit v1.05) (siehe Kapitel VI.9.):

    NETWARE DOS REQUESTER
     BROADCAST RETRIES=<2>        ; 0..255
     BROADCAST TIMEOUT=<3>        ; 1..255
     BROADCAST SEND DELAY=<0>     ; 0..255
     PREFERRED WORKGROUP=<workgroup name>; (offenbar statt WORKGROUP NAME=)
     WORKGROUP NET=<workgroup net address>

                                                                             
  ###########################################################################
  ###########################################################################

  VII. MULTITASKING UND PROZESSUMSCHALTUNG:
  =========================================

  ---------------------------------------------------------------------------

  VII.1. Fehlverhalten von TASKMGR mit lteren Maustreibern: [97-01-13]
  =====================================================================
                                       (Bug behoben - getestet 01/1995)

   Stichworte: TASKMGR, Multitasking, TASKMGR Men, GMOUSE, MAUSALL,
               Logitech-Maus, Updates, Microsoft Mouse

   Der Task-Manager hatte im Multitasker-Modus Probleme mit verschiedenen
   lteren (und ganz neuen Microsoft) Maustreibern, insbesondere wenn
   mehrere Applikationen gleichzeitig eine Maus verwenden oder wenn um-
   programmierte Text-Fonts fr VGA-Karten (Schlagwort: New User Interface,
   Pseudo-Grafikmodus im Textmodus) verwendet werden.

   Mgliche Symptome:

   - die Maus wird in einer oder mehreren Applikationen 'abgeschossen'
   - whrend des TASKMGR-Mens erscheint kein eigener Maus-Cursor
   - der Task-Manager schmiert whrend der Umschaltung zwischen den
     Prozessen sogar ab, wenn man die Maus bewegt
   - EMM386 meldet eine Schutzverletzung whrend der Programmumschaltung
     zwischen Prozessen.

   Ausgangslage fr dieses Problem (mu nicht reprsentativ sein):

   - In CONFIG.SYS: DEVICEHIGH=GMOUSE.SYS (V9.06/1991)
     fr Genius 3-Tasten-Maus (PC-/Mouse-Systems-Mouse-Mode)
   - In AUTOEXEC.BAT hochgeladen: MAUSALL.COM
     fr Maussimulation ber Cursor-Tasten fr Nicht-Maus-Anwendungen
   - TASKMGR mit und ohne /F Option.

   Abhilfe:

   Im vorliegenden Fall war der ltere Maustreiber die Fehlerursache, der
   allerdings ansonsten bisher keinerlei Probleme bereitete. Die Probleme
   konnten jedoch auch mit anderen lteren Maustreibern (Noname, Agiler-
   Maus, Z-Mouse) reproduziert werden.

   Nach verschiedenen Tests konnte der Fehler nur dadurch beseitigt werden,
   da kein Maustreiber installiert wurde.

   Ein Logitech-Treiber (MouseWare 6.30+/1993) funktioniert jedoch
   whrend der Umschaltung der Tasks einwandfrei (leider nicht im Mouse-
   Systems-Mouse-Mode, also nur als 2-Tasten-Maus). Der verwendete Treiber
   untersttzt u.a. die neue Software-Schnittstelle VESA-VCI (Video Cursor
   Interface), dafr aber keine CGA-Karten und macht zudem eine Reihe
   anderer Probleme, u.a. auf Zwei-Monitor-Systemen mit der Umschaltung auf
   den anderen Bildschirm, wenn zum Installationszeitpunkt die Monochrom-
   Karte aktiv war, oder mit einem selbstdefinierten Maus-Cursor mancher
   Anwendungen (z.B. strzt IOMegas QBACKUP 3.x bei mir immer ab); dies
   ist aber fr die Probleme nicht ausschlaggebend.
   (Nebenbei: Um den Treiber auf Zweimonitor-Systemen zu benutzen, sollte
   man vor derInstallation des Treibers (wenigstens temporr) auf die Farb-
   Karte umschalten, z.B. mit INSTALL=c:\nwdos\mode.com CO80. Um dem Absturz
   unter QBACKUP abzuhelfen, hilft es oft, solche Problemappikationen nur
   unter einem anderen Maustreiber zu starten. In meinem Fall reichte es,
   den Genius-Maustreiber GMOUSE 10.20 ber den Logitech-Treiber zu laden
   und nach der Rckkehr zum Prompt mit /U wieder zu entladen.)

   Falls nur im TASKMGR-Men kein Maus-Cursor erscheint, reicht es, MAUSALL
   wegzulassen.

   Mittlerweile ist sowohl EMM386 als auch TASKMGR mehrfach aktualisiert
   worden (Update 10+), die oben beschriebenen Probleme mit dem Genius-
   Maustreiber sind mit der aktuellen Version komplett beseitigt worden
   (jedenfalls bin ich wieder auf den in vielen anderen Belangen stabileren
   Genius-Maustreiber 9.06 umgestiegen, wodurch z.B. MS Windows erheblich
   stabiler arbeitet). Ein neuerer Maustreiber 10.20 (1993) ist mittlerweile
   auf SimTel verfgbar - leider auch nicht ganz unproblematisch - mehr dazu
   in Kapitel VIII.2.

   Novell weist in einem FaxBack-Infopaper aus ND7TID.EXE darauf hin, da
   es auch mit Microsoft Mousetreibern der Versionen 9.xx und 10.xx Probleme
   gibt. Laut Novell funktionieren ltere Microsoft-Maustreiber. Auerdem
   knnen Microsoft Muse auch mit den Maustreibern von Genius und vielen
   anderen bedient werden.

                                                                             
  ---------------------------------------------------------------------------

  VII.2. Undokumentierte Einstellungen fr den TASKMGR: [97-02-26]
  ================================================================

   Stichworte: TASKMGR, TASKMGR.INI, TCP/IP, VxD, MS Windows,
               K3PLUS, FreeKEYB

   Innerhalb des TASKMGR (und TASKMAX) Mens haben neben den bekannten
   Tasten noch die Tasten <F2> und <F4> besondere Bedeutung:

    <F2> ist gleichwertig mit <Ins>
    <F4>        ""            <Del>

   Novells TASKMGR besteht im Prinzip aus zwei eigenstndigen Modulen
   (fr den Prozeumschalter und den Multitasker) und einem Lader, der
   fr beide Module gemeinsam gilt.
   brigens: Zumindest theoretisch kann TASKMGR mit INSTALL= etc. sogar
   in CONFIG.SYS geladen werden, nachdem vorher der Speichermanager
   EMM386.EXE und SHARE.EXE geladen wurden. In seltenen Fllen und bei
   entsprechender Konfiguration mag diese Option sinnvoll sein, da alle
   Programme/Treiber, die erst nach dem TASKMGR geladen werden, fr den
   jeweiligen Task lokal bleiben. Auf diese Weise sind nebeneinander
   rudimentre Tasks mit extrem viel Speicher und einem blank liegenden
   Systemkern und andere mit viel Komfort mglich. In der Praxis reicht es
   dazu jedoch meist aus, den TASKMGR frh in AUTOEXEC.BAT zu laden, was
   erheblich weniger Probleme bereitet und stabiles Arbeiten garantiert
   (das Laden in CONFIG.SYS ist bisher von mir noch nicht genauer unter-
   sucht worden). Besonders vorteilhaft ist die Mglichkeit, Treiber nur
   in einem Task des Multitaskers zu laden, wenn Sie zwar Treiber fr den
   IPX-Stack, nicht aber die restliche Client- oder gar Server-Software
   von Personal NetWare bentigen (etwa fr FASTLYNX, das Punkt-zu-Punkt
   Verbindungen auch ber IPX aufbauen kann, siehe Kapitel II.8.)

   Der TASKMGR wird sowohl in der Prozeumschalt- als auch in der Multi-
   tasking-Version mit der Datei TASKMGR.INI (im Pfad %Path% oder im
   Verzeichnis %NWDOSCFG%) konfiguriert. Wenn auch nicht im Handbuch oder
   dem DOSBOOK, so sind wenigstens in dieser Datei alle wichtigen Parameter
   erklrt (falls diese Erklrungen fehlen (DR DOS 6.0 VIEWMAX lscht sie
   zumindest in der verwandten Datei TASKMAX.INI), sollte man sich das
   Original von den Installationsdisketten besorgen). Gro- und Klein-
   schreibung ist unerheblich (im Gegensatz zu VIEWMAX.INI). Es gibt hier
   wirklich eine Menge Feintuning-Mglichkeiten, die besonders bei Problemen
   nicht bergangen werden sollten.

   In der Gruppe [COLORS] sind normalerweise nur die Direktiven COLORSET0=
   bis COLORSET7= vordefiniert. TASKMGR akzeptiert hier auch noch COLORSET8=
   und COLORSET9=.


   i. Multitasker:
   ---------------

   Im Multitasking-Modus gibt es neben den dokumentierten Parametern noch
   drei weitere Parameter in TASKMGR.INI:

   Zwei davon befinden sich im Abschnitt

    [KEYS]

    #      Die im Abschnitt [KEYS] verwendeten Zustnde der Umschalttasten
    #      sind Dezimalwerte, die den Tasten UMSCHALT, STRG und ALT ent-
    #      sprechen. Deren numerische quivalente sind: 1=UMSCHALT rechts,
    #      2=UMSCHALT links, 4=STRG, 8=ALT. Der Tastenwert ist ein PC-
    #      Scancode. Der Standardwert von 1 ist die ESC-Taste.
    #      Bleibt zu ergnzen:
    #      Es knnen mehrere Umschalttasten kombiniert werden. Soll z.B. der
    #      TASKMGR auf <Ctrl>+<Alt>+<Taste> reagieren, ersetzt man den Wert
    #      4 (Default fr <Ctrl>) durch 12. Hier ist jedoch <Ctrl>+<Alt>
    #      ungleich <AltGr>, wie dies sonst pauschal in Verbindung mit dem
    #      erweiterten deutschen Tastaturtreiber K3/K3PLUS/FreeKEYB gilt,
    #      d.h. <AltGr>+<Taste> aktiviert die gewnschte Funktion nicht!
    #      Linke und rechte <Ctrl> bzw. <Alt> Taste werden nicht unter-
    #      schieden, daran ndert auch Eintrge 'STANDARD' nichts, die sich
    #      nur auf die Taste, nicht aber auf den Umschaltstatus beziehen.

    MAINNUMKEYS=    # bezeichnet den PC-Scancode der Zifferntaste auf der
                    # Haupttastatur, analog zu den brigen Eintrgen 'KEYS'
    NUMSTANDARD=    # normalerweise bedeutet beim Eintrag 'STANDARD':
                    # 1=Tasten auf der Haupttastatur,
                    # 0=Tasten im erweiterten Tastaturbereich (Cursor-Block,
                    # NumPad), dies wird auch hier so sein,
                    # siehe Aufrufoption /M

   und einer im Abschnitt

    [DEBUG]
    Level=0         # Weiteres ist unbekannt.

   Im Multitasking-Modus wird in der Gruppe [MEMORY] nur LIMIT= ausgewertet,
   die Gruppe [DISK] und die undokumentierte Gruppe [VIRTUAL] hingegen ber-
   haupt nicht.

   Die Standardtastenkombination fr das TASKMGR-Men ist <Ctrl>+<Esc>. Will
   man jedoch unter Windows gezielt das Men des Windows' TaskMan und nicht
   das des Novell TASKMGR whlen, mu man das TASKMGR-Men auf eine andere
   Tastenkombination legen. Da unter der graphischen Oberflche GEOWORKS
   [PRO] ENSEMBLE nur die Tastenkombination <Shift>+<Esc> (laut einer Quelle
   bei Digital Research nur <Ctrl>+<Esc>???) fr den TASKMGR verwendet
   werden kann (alle anderen Tasten werden abgefangen), sollte man z.B.
   auch fr MS Windows diese Tastenkombination whlen.

   Novell empfiehlt, Oberflchen, die im Hinblick auf DR DOS TASKMAX ge-
   schrieben wurden (z.B. GEOWORKS ENSEMBLE 2.xx oder DR DOS 6.0 VIEWMAX),
   nur unter dem TASKMGR als Prozeumschalter zu starten, oder - unter dem
   Multitasker - die TASKMAX-Task-Steuer-Funktionen der Oberflche abzu-
   schalten. Eigene Versuche haben ergeben, da es durchaus mglich ist,
   auch den Multitasker zu verwenden (siehe NWDOS7UN.TXT), dies aber nicht
   immer sicher funktioniert und auerdem die bersicht ber die laufenden
   Tasks zwischen der Oberflche und dem TASKMGR+Men nicht unbedingt
   synchronisiert wird (in Wahrheit untersttzt der neue TASKMGR im
   Prozeumschaltmodus und Multitasking-Modus nahezu alle API-Funktionen
   des alten TASKMAX, abgesehen von Copy/Paste). In einem amerikanischen
   Buch habe ich brigens die Behauptung gefunden, da TASKMGR als Proze-
   Umschalter Copy/Paste untersttzt (auf dem TASKMGR-Men nicht abge-
   bildet). Ich kann das leider nicht besttigen, da zumindest in der
   deutschen Ausgabe auch die interne Untersttzung dafr entfernt wurde.

   Wenn TCP/IP-Anwendungen 'gefahren' werden oder mehrere Tasks parallel auf
   das Netz zugreifen wollen, kann es notwendig sein, im Abschnitt [DRIVERS]
   weitere Eintrge der Form 'GLOBALPAGES=2' einzubauen.

   Auerdem existiert im Abschnitt [Drivers] ein Eintrag fr virtuelle
   Gertetreiber (hier vIPX) in der Form 'VXD=laufwerk:pfad\vipx.386',
   der meist auf das \WINDOWS\SYSTEM\ Verzeichnis verweist, in das die
   Datei VIPX.386 whrend der Installation kopiert wird. Da diese Datei
   auch im C:\NWDOS\ Verzeichnis vorkommt (oder notfalls dorthin kopiert
   werden kann), sollte die dortige Datei verwendet werden, indem man den
   Eintrag wie folgt ndert:

    VXD=c:\nwdos\vipx.386

   Wenn das Netzwerk geladen ist und man den TASKMGR im Multitasking-Modus
   startet, sollte der Treiber 'OK' melden, sonst ist etwas schief gelaufen.
   Ohne geladenes Netzwerk wird der Treiber vIPX nicht 'OK' melden, was aber
   dann auch nicht strt.

   Der TASKMGR bildet in vielerlei Punkten die Mechanismen von MS Windows
   nach. Das hat den Vorteil, da z.B. evtl. notwendige virtuelle Gerte-
   treiber fr Windows (VxD) auch fr den TASKMGR verwendet werden knnen!
   Leider funktioniert dies nicht mit allen MS Windows .386-Treibern. Wenn
   der Treiber problemlos initialisiert worden ist, meldet TASKMGR dies mit
   'OK' beim Start. Ansonsten wird nur der Name des Treibers angegeben. Mehr
   oder weniger interessehalber habe ich eine ganze Reihe VxD-Treiber der
   unterschiedlichsten Software-Pakete getestet. Bei den folgenden Treibern
   meldet TASKMGR sogar 'OK': MS-DOS/MS Windows MONOUMB.386, Novells
   FASTBACK.386, Logitech MouseWare 6.30 LVMD.386, Borlands WINDPMI.386,
   Microsofts 32Bit-Erweiterung W32S.386). Durch diese Mglichkeit ver-
   ringert sich natrlich der Entwicklungsaufwand und bei Problemen bestehen
   groe Chancen, da ein Treiber fr Windows ein gleichartige Aufgabe auch
   beim TASKMGR erfllt.
   Die eingebundenen Treiber sind jedenfalls aktiv, wie Versuche mit dem
   virtuellen Maustreiber LVMD.386 zeigen. Natrlich macht das Ganze nicht
   immer Sinn: W32S.386 kann zwar vllig ohne Windows unter dem TASKMGR
   geladen werden, eine Verwendungsmglichkeit dafr ist mir allerdings
   noch nicht eingefallen... ;-)

   Ein anderer Punkt ist, da der TASKMGR auch die Start-/Exit-Broadcasts
   von Windows nachbildet. Dies kann allerdings auch manche Anwendungen
   leicht verwirren:
   Dies gilt z.B. fr K3PLUS/FreeKEYB in der derzeitigen Implementation.
   Der Bildschirmschoner wird nur fr die Dauer der TASKMGR-Session
   abgeschaltet, so da er innerhalb eines Tasks mit K3_ENZZ wieder
   aktiviert werden mu. Dies kann man bei Verwendung von Exec=True und
   4DOS auch innerhalb der 4START.BAT Datei erledigen, wobei man eine
   Sonderbehandlung fr MS Windows einbauen mu, damit dies dort nicht
   geschieht.

   Kann TASKMGR das Windows-Verzeichnis nicht ermitteln, sollten Sie die
   undokumentierte Umgebungsvariable %TaskMgrWinDir% mit dem Pfad zur
   SYSTEM.INI Datei angeben; siehe Kapitel IV.7.

   Obwohl der Multitasker normalerweise ungltige Parameter beim Start
   zurckweist, trifft dies fr den Parameter /F (eigentlich nur fr den
   Prozeumschalter) nicht zu. Ob dieses Verhalten aber mehr als nur ein
   Dummy zur Wahrung der Aufrufkompatibilitt mit dem Prozeumschalter
   ist, ist noch nicht geklrt.

   Der Multitasker kann auch DPMI- oder VPCI-nutzende Applikationen
   ausfhren, allerdings werden Hintergrund-Tasks, die VCPI nutzen, wie
   beim Taskswitcher ausgesetzt, bis sie wieder in den Vordergrund geholt
   werden. Dies ist notwendig, da das VCPI-Protokoll per se keine Unter-
   sttzung fr Multitasker erlaubt. Da auch MS Windows 3.0 bzw.
   MS Windows 3.1x im Standardmodus (WIN /S) VCPI-Applikationen sind,
   wird auch MS Windows als Hintergrund-Task unter dem TASKMGR ausgesetzt.

   ii. Prozeumschalter:
   ---------------------

   Im Prozeumschalt-Modus des TASKMGR werden eine ganze Reihe der im
   Multitasking-Modus verwendeten Einstellungen nicht bentigt, im Einzelnen
   sind dies die kompletten Gruppen [DRIVERS], [SLICE], [COM1] - [COM4],
   [LPT1] - [LPT3], [MOUSE], [NETWORK], [SHELL], [WINFUNC], [POPUP] und
   [DEBUG]. In der Gruppe [KEYS] werden MENUSTANDARD=, NEXTSTANDARD=,
   PREVSTANDARD= und die undokumentierte Direktive NUMSTANDARD= nicht
   ausgewertet. [KEYS] MAINNUMKEYS= wird wie im Multitasking-Modus unter-
   sttzt. In der Gruppe [MEMORY] wird alles auer LIMIT= ausgewertet und
   die Gruppe [DISK] mit der einzigen Einstellung SWAPDIR= wird sowieso
   nur vom Prozeumschalter bentigt. Wird hier nichts angegeben, mchte
   TASKMGR die Auslagerungsdatei TASKMGR.SWP in C:\NWDOS\TMP anlegen.

   Auerdem existiert in der Gruppe [MEMORY] noch eine undokumentierte
   Direktive

    [MEMORY]
    MINIMUM=        # fr die minimale Gre des Auslagerungsspeichers

   und eine komplett undokumentierte Gruppe [VIRTUAL] mit den Direktiven:

    [VIRTUAL]       # Die Bedeutung im Einzelnen ist noch unklar:
    DEVICE=         # Da TASKMGR normalerweise nicht in CONFIG.SYS geladen
    INSTALL=        # wird, scheidet die Angabe von Treibernamen, die
    TSR=            # geladen werden mssen, eigentlich aus. Vermutlich
                    # handelt es sich hier um Schalter (TRUE/FALSE), die
    TASK=           # bestimmen, ob entsprechende Ressourcen virtualisiert
    VIDEO=          # werden oder nicht. Dies wrde ungefhr mit den
                    # speziellen Gertetreibereinstellungen des Multi-
                    # taskers einher gehen.
                    # Eine andere Mglichkeit wre ein Analogon zu Windows
                    # [386Enh] LocalTSR= und Local= zum Instancing.
                    # VIDEO= knnte auch eine Default-Angabe des Parameters
                    # /V sein.

   Im Prozeumschaltmodus gibt es eine ganze Reihe undokumentierter Aufruf-
   parameter fr TASKMGR (nur whrend der Initialisierung des Prozeum-
   schalters). Die Funktionen sind noch nicht im Einzelnen geklrt, hier
   aber schon mal ein paar Eigenschaften:

    /Z         Dient offenbar dazu, nur einen Dummy-TASKMGR zu laden.
               Jedenfalls ist kein weiterer Task mehr startbar und die
               Task-Liste enthlt null (=Zero) Tasks (das Umbenennen des
               ersten Tasks mittels /N wird allerdings nicht zurckge-
               wiesen). Bei Druck auf den Aktivierungs-Hotkey des TASKMGR
               ertnt nur ein Piepser; es erscheint kein Men. Auch unter
               VIEWMAX (von DR DOS 6.0) sind in der Task-Liste keine Tasks
               zu sehen (normalerweise wird wenigstens der Root-Task
               angezeigt).

    /U         Unbekannt (User???)

    /B         Unbekannt. Ohne diese Option wird der Bildschirm normaler-
               weise beim Start des TASKMGR fr einen Augenblick dunkel,
               mit /B wird dies unterdrckt. Knnte daher etwas mit der
               Hardware-Erkennung zu tun haben (aber sicher nicht fr
               B&W-Darstellung).

    /T[=value] oder /T[:value]
               Unbekannt, hat aber definitiv nichts mit der Task-Anzahl zu
               tun. Da beliebige dezimale Werte akzeptiert werden, knnte
               dies etwas mit einem Timeout zu tun haben. Allerdings konnte
               ich bisher noch keinen Unterschied in den Umschaltzeiten beim
               Starten neuer Tasks erkennen. Allerdings liefen nach Angabe
               dieser Option Tasks nicht reproduzierbar sehr viel langsamer.
               (Auch COMMAND.COM besitzt einen undokumentierten Parameter
               /T, und unter Multiuser DOS gibt es eine EXIT /T Option.
               Vielleicht haben beide etwas miteinander zu tun?)

   Der folgende Parameter steht nur *nach* der bereits erfolgten
   Installation des Prozeumschalters zur Verfgung:

    /R[=devicename]                                   <Default-Wert ist CON>

               Angabe eines logischen Gertes, an das die Standardein-
               und -ausgabe (des Tasks???) gekoppelt werden (wird fr
               Remote-Zwecke benutzt). Gibt man nichts an, wird CON, die
               Konsole gewhlt und man kann Eingaben vornehmen (die man
               auch sofort sieht). Die Eingabe von CON kann man bekanntlich
               mit <Ctrl>+<z> abbrechen.

   Der residente Teil des Novell DOS 7 TASKMGR als Prozeumschalter ist
   weitestgehend identisch mit dem von DR DOS 6.0 bekannten TASKMAX (der
   allerdings noch Copy & Paste Funktionen bot). Es werden auch alle hier
   beschriebenen dokumentierten und undokumentierten TASKMGR.INI Direktiven
   vom lteren TASKMAX in TASKMAX.INI untersttzt.
   TASKMAX untersttzte auch alle der hier beschriebenen Aufrufparameter
   (logischerweise auer /S), zustzlich aber (nach oder whrend der
   Installation???) noch die undokumentierten Parameter /P (unbekannt,
   vielleicht in Verbindung mit 'Paste' oder 'Permanent') und /M (fr
   'Main-Keyboard' statt Ziffernblock). Auerdem existierte in TASKMAX.INI
   noch eine Gruppe [COPY+PASTE] mit den Eintrgen PASTESPEED=, NUMERIC=,
   TEXT= und ENTER= (Nheres hierzu in DRDOS6UN.TXT).
   Diese Einstellungen werden vom TASKMGR mangels Copy & Paste Funktionen
   leider nicht mehr untersttzt (auch nicht auf API-Ebene). Leider ist es
   mir bisher noch nicht gelungen, TASKMAX unter Novell DOS 7 zu starten,
   obwohl dies evtl. nach ein paar Patches mglich ist.

   Offenbar bietet der TASKMGR im Prozeumschaltmodus (und TASKMAX) eine
   Mglichkeit ber Port 3F8h (normalerweise COM1:) gesteuert zu werden oder
   dort Statusinformationen abzuliefern. Laut einer Quelle untersttzt der
   TASKMGR zumindest als Prozeumschalter auch DR Multiuser DOS. Bisher
   konnte dies nicht berprft werden. Nheres ist nicht bekannt.

                                                                             
  ---------------------------------------------------------------------------

  VII.3. Novell DOS TASKMGR und 4DOS kombinieren: [96-12-03]
  ==========================================================

   Stichworte: TASKMGR, 4DOS, NDOS, Updates, Kommandoprozessor, 4DOS.INI,
               TASKMGR.INI, Exec=TRUE/FALSE, TASKMGR /C

   Zuerst ein genereller Hinweis: Diese Beschreibung bezieht sich auf
   TASKMGR 2.02+, Novell DOS 7 Update 15+ und 4DOS 5.5c/5.52a (mit Ab-
   strichen 5.51). Sie sollten immer diese oder aktuellere Versionen
   verwenden, da es mit lteren Versionen verschiedene Probleme gab.

   Achtung: 4DOS 5.51 (nicht 4DOS 5.5a/b/c und 4DOS 5.52a) brachte auf
   meinen Testsystemen eher eine Verschlimmbesserung der Situation, zu-
   mindest MEMMAX +V fhrte auf mehreren Rechnern zum Totalabsturz mit
   Verlust des CMOS-RAM-Inhalts.
   Abhilfe war allerdings dadurch mglich, da man MEMMAX nur indirekt
   ber einen Batchjob/Alias aufruft, der vorher COMMAND.COM nachldt
   (klappt nicht immer, siehe 4DOS5TIP.TXT), z.B.:

    MEMMAX.BAT:

     COMMAND /C c:\nwdos\memmax.com %1 %2 %3 %4 %5 %6 %7 %8 %9


   Nun jedoch die generellen Lsungsmglichkeiten:

   Es gibt verschiedene Mglichkeiten Novell DOS und 4DOS (JP Software)
   bzw. NDOS (von den Norton Utilities) zu kombinieren.

   Solange dabei weder die Netzkomponente Personal NetWare noch der
   TASKMGR ins Spiel kommen, ist die Konfiguration denkbar einfach und
   kann der Dokumentation zu 4DOS entnommen werden.

   Es gibt zwei generelle Methoden der Kombination:

   - 4DOS ersetzt COMMAND.COM komplett:

     Diese Methode wird von JP Software empfohlen, da sie u.a. weniger
     Speicher beansprucht und sehr einfach dadurch zu bewerkstelligen ist,
     da man die CONFIG.SYS-Zeile

      SHELL=...\command.com /E:xxxx /P

     durch

      SHELL=...\4dos.com @...\4dos.ini /E:xxxx /P

     ersetzt.

     Diese Methode hat allerdings den Nachteil, da alle erweiterten
     Features des Kommandoprozessors COMMAND.COM von Novell DOS nicht
     verfgbar sind (damit natrlich auch nicht die erweiterten internen
     Befehle und die zustzlichen Umgebungsvariablen). Auerdem be-
     handelt 4DOS (getestet bis 5.52a) nicht alle internen Datenstrukturen
     von Novell DOS genauso wie COMMAND.COM das tun wrde, was zu einigen
     (normalerweise aber unkritischen) Unstimmigkeiten in den internen
     Tabellen fhren kann (siehe z.B. Kapitel III.6. und III.1. sowie
     in 4DOS5TIP.TXT). Bis diese Probleme bei 4DOS gelst wurden, empfehle
     ich das kurzzeitige Dummy-Laden von COMMAND.COM zu Beginn der Ab-
     arbeitung der AUTOEXEC.BAT:

      @c:\nwdos\command.com /c EXIT> \dev\nul

     Dieser Befehl hinterlt einige bleibende Auswirkungen in den internen
     Strukturen, die durch diese Manahme besser an DR DOS/Novell DOS ange-
     pat sein sollten.

   - 4DOS ergnzt COMMAND.COM:

     Diese Methode ldt im Prinzip zwei Kommandoprozessoren, die beide
     permanent bleiben. Der Nachteil ist, da fr den zustzlichen
     COMMAND.COM ca. 3 KByte mehr Basisspeicher ntig sind. Dafr ergeben
     sich aber einige Vorteile:

     Alle COMMAND.COM Features bleiben erhalten (wenn sie auch durch 4DOS
     verdeckt werden und zum Teil erst ber ALIAS etc. zugnglich gemacht
     werden mssen). Alle Variablen (nicht aber Pseudovariablen) von
     COMMAND.COM sind verfgbar. Um Speicher zu sparen, sollte man den
     COMMAMD.COM spezifizierenden SHELL= Eintrag in CONFIG.SYS so verndern,
     da /E:129 nur noch den Minimalwert angibt.
     Multi-Konfigurationen sind einfacher zu realisieren, da sich an den
     Einstellungen der CONFIG.SYS nichts ndert (in CONFIG.SYS mte man
     bei Mehrfachkonfigurationen nur eine Variable SET CONFIG=xxx setzen
     (mit xxx=cfg_std oder cfg_4dos) und diese dann in einzelnen Blcken
     der AUTOEXEC.BAT abfragen). Auerdem erlaubt diese Methode auch mit
     Updates vor 15 das <F8>-Tracen der AUTOEXEC.BAT Datei; mit neueren
     Updates funktioniert dies nun auch mit Fremdkommandoprozessoren.

     4DOS wird erst in der AUTOEXEC.BAT nachgeladen. Von JP Software wird
     hier eine spezielle Methode empfohlen, die folgende Behandlung ist
     meines Erachtens aber sinnvoller:

     @ECHO off
     REM Anfang der AUTOEXEC.BAT:
     REM -- Abfangen von Endlosschleife beim Laden von 4DOS ----------------
     IF "%@Eval[2 + 2]%"=="4" GOTO _4dos_done
     IF NOT "cfg_4dos"=="%config%" GOTO _4dos_done
     LH c:\sys\4dos\4dos.com c:\sys\4dos @c:\sys\4dos\4dos.ini /E:2048 /P
     :_4dos_done

     REM Rest der AUTOEXEC.BAT: --------------------------------------------
     ...

     Natrlich knnen Sie auch die erste Methode anwenden und manuell die
     fehlenden Umgebungsvariablen setzen. Ob bei Verwendung von ALIAS
     mit nachgeladenem COMMAND.COM allerdings auch die Pseudo-Umgebungs-
     variablen fr NetWare funktionieren, wurde nicht berprft (allerdings
     klappt das auch nicht, wenn 4DOS ber COMMAND.COM geladen wird - nur
     hat man hier evtl. etwas weniger Schwierigkeiten).


   In der Datei 4DOS.INI sollten - unabhngig von der oben gewhlten
   Methode - einige spezielle Einstellungen gemacht werden, um optimal
   mit Novell DOS zusammenzuarbeiten (nur diese Einstellungen werden hier
   aufgelistet). Einige dieser Einstellungen weichen von Empfehlungen der
   Software-Huser ab, arbeiten jedoch nach eigenen Erfahrungen besser:

     [Primary]

     ; Basic Directives: ---------------------------------------------------
     Environment        = 1024   ; Beispielwerte
     EnvFree            = 512
     Swapping           = XMS, EMS, c:\tmp, None
     4StartPath         = c:\sys\4dos
     LocalAliases       = Yes
     LocalHistory       = Yes
     LocalDirHistory    = Yes
     UMBAlias           = Yes
     UMBDirHistory      = Yes
     UMBHistory         = Yes
     UMBEnvironment     = Yes
     UMBLoad            = No/Yes
                       ; Yes klappt leider nur in einer speziellen Kombi-
                       ; nation: TASKMGR im Multitasking-Modus mit der
                       ; Einstellung EXEC=TRUE in TASKMGR.INI.
                       ; Nheres siehe nachfolgende Erklrungen!!!

     ; Configuration Directives --------------------------------------------
     BatchEcho          = Yes
     UpperCase          = Yes

     ; Key Mapping Directives ----------------------------------------------
     BackSpace          = Ctrl-H ; mit diesen Einstellungen wird whrend der
     BeginLine          = Ctrl-Q ; Eingaben am 4DOS-Prompt die WordStar-
     Del                = Ctrl-G ; Belegung der Tastatur unter Novells
     DelToBeginning     = Ctrl-B ; COMMAND.COM nachgebildet.
     DelToEnd           = Ctrl-K ; Die folgenden Sonderfunktionen knnen
     DelWordRight       = Ctrl-T ; dabei nicht bercksichtigt werden:
     Down               = Ctrl-X ; Suchmodi mit <Ctrl>+<r> und <Ctrl>+<_>;
     EndLine            = Ctrl-W ; sowie erweiterte Belegung der Funktions-
     EraseLine          = Ctrl-Y ; tasten
     ExecLine           = Ctrl-M
     Ins                = Ctrl-V
     Left               = Ctrl-S
     Right              = Ctrl-D
     Up                 = Ctrl-E
     WordLeft           = Ctrl-A
     WordRight          = Ctrl-F

     ; Advanced and Test Directives ----------------------------------------
     FullInt2E          = Yes ; fr volle Untersttzung der undokumentierten
                              ; Schnittstelle; besonders sinnvoll in Ver-
                              ; bindung mit Novells TASKMGR (ist aber nicht
                              ; unbedingt erforderlich)
     UniqueSwapName     = Yes ; fr Multitasker (MS Windows, TASKMGR) und
                              ; Multiuser-Umgebungen (Netzwerke)
     SwapReOpen         = Yes ; fr Novell-Netze
     SDFlush            = No  ; instruiert SMARTDRV (bzw. NWCACHE), seine
                              ; Cache-Puffer vor der Rckkehr zum Prompt
                              ; nicht auszuschreiben. Das Resultat hngt
                              ; davon ab, ob SMARTDRV (bzw. NWCACHE) darauf
                              ; auch reagiert...
                              ; In Verbindung mit NWCACHE /FLUSH=ON sollte
                              ; man hier SDFlush=Yes einstellen, was sich
                              ; aber negativ auf die Performance auswirkt.
     DRSets             = Yes ; Spezialparameter fr DR DOS CONFIG.SYS SET=
                              ; Befehl (ist nicht unbedingt erforderlich)
     NetWareNames       = Yes ; Spezialparameter fr Novell-Netze

   Sollen auch noch der TASKMGR und/oder PNW verwendet werden, sind noch
   einige weitere Dinge zu beachten (die meisten Einstellungen der 4DOS.INI
   sind schon fr diese Zusammenarbeit gewhlt).

   JP Software und Novell geben verschiedene Hinweise bezglich Einstel-
   lungen der TASKMGR.INI Konfigurationsdatei. Eigene Erfahrungen mnden
   jedoch in der Erkenntnis, da es derzeit nur 5 Kombinationen gibt, in
   der 4DOS mit dem TASKMGR in seinen unterschiedlichen Betriebsarten
   zurechtkommt, leider nur zwei, in den beide Modi des TASKMGR ohne
   Umkonfiguration stabil arbeiten (natrlich mu fr den Multitasking-
   Betrieb zustzlich die Voraussetzung via EMM386 /MULTI=on geschaffen
   worden sein) und nur eine, die als wirklich stabil angesehen werden kann:


   Eine bersicht ber die 5 Kombinationsmglichkeiten:

      TASKMGR.INI:   4DOS.INI:    TASKMGR Multitasker  Prozeumschalter
      [Shell]        [Primary]

   1. Exec=True      UMBLoad=Yes           Ja        (Nein) Ja mit Update 15
   2. Exec=True      UMBLoad=No            Ja               Ja
   3. Exec=False     UMBLoad=No            Ja               Ja

   Jede dieser Mglichkeiten hat verschiedene Vor- und Nachteile:

   Bei (1) mssen Sie darauf achten, da der TASKMGR nur im Multitasking-
   Modus startet (d.h. /MULTI=on bei EMM386 und genug freier Speicher und
   noch kein anderer Multitasker - wie MS Windows - gestartet), ansonsten
   wird Ihr Rechner abstrzen (nach meinen Tests zumindest bis zur ersten
   Version von Update 15).
   Diese Kombination hat den Vorteil, da man mit UMBLoad=Yes ca. 3 KByte
   DOS-Speicher einsparen kann, aber wegen Exec=True Probleme mit auto-
   matisch gestarteten Batchjobs bekommt (siehe unten) (und auerdem den
   gewonnenen Speicher wieder verliert). Diese Kombination kann als wirk-
   lich stabil angesehen werden.
   Mit Update 15 hat sich das Verhalten stark stabilisiert, ich habe jetzt
   quasi keine Probleme mehr mit dem Multitasker und dem Prozeumschalter
   unter 4DOS 5.5c und 4DOS 5.52 (mit Einschrnkungen 4DOS 5.51). Beim
   Prozeumschalter sollten neue Tasks allerdings nach wie vor nur ber
   TASKMGR /c %ComSpec% gestartet werden und nicht ber <Ins>, JP Software
   gibt dies nur fr Exec=FALSE an.

   Bei (2) und (3) brauchen Sie nicht darauf achten, in welchem Modus der
   TASKMGR startet, aber mit UBMLoad=No haben Sie ca. 3 KByte weniger Basis-
   speicher zur Verfgung. Ob Sie dann Exec=True oder Exec=False whlen,
   hngt von den Randbedingungen ab; solange nichts anderes gefordert ist,
   sollten Sie Exec=False verwenden. Diese Kombinationen arbeiten mit
   4DOS 5.5b ziemlich stabil, wenn man das System aber total ausreizt
   und 'absichtlich an die Grenzen der Mglichkeiten des TASKMGR geht',
   kommt es hier ab und zu zu reproduzierbaren Abstrzen mit Speicher-
   schutzfehlern, die aber leider nicht genauer zugeordnet werden knnen.


   Die Variable %ComSpec% sollte auf 4DOS.COM weisen, wenn mit 4DOS ge-
   arbeitet wird (aber natrlich nur dann, siehe andere Tips).

   Zustzlich sind auch andere Empfehlungen fr TASKMGR.INI und PNWLOGIN.SCR
   (aus *diesem* Dokument) zu beachten.

   Sofern man eine EGA-/VGA-Karte besitzt, ist es generell besser, TASKMGR
   mit der Option /F zu starten (da dadurch Zeichenstze fr jeden Proze
   einzeln gesichert werden).

   Beim Laden einzelner Prozesse des bereits aktiven TASKMGR (Prozeum-
   schalter und Multitasker) wird empfohlen, diese nur ber die Kommando-
   zeile zu starten (dies scheint mittlerweile nicht mehr notwendig zu sein,
   erst recht nicht mit Exec=True, ich starte mit Update 15 jedenfalls die
   Tasks blicherweise ber das TASKMGR Men):

   TASKMGR /c %ComSpec%

   Das Beenden geschieht dann ber den DOS-Befehl EXIT (dies gilt auch fr
   die Direktive Exec=TRUE in TASKMGR.INI). EXIT klappt allerdings nicht,
   wenn Exec=FALSE gesetzt ist.

   Leider ergeben sich durch Exec=TRUE einige Schwierigkeiten, wenn man
   TASKMGR aus einem Batchjob (AUTOEXEC.BAT) heraus mit diversen Hinter-
   grundprozessen starten mchte. Mit 4DOS lassen sich diese Probleme ber
   Tricks mittels automatischer Batchjobs 4START.BAT lsen.
   Leider scheint es derzeit keine Mglichkeit zu geben, TASKMGR direkt
   dazu berreden zu knnen, seinen Root-Proze weiter zu bearbeiten (der
   aufrufende Job wird erst mit Beenden des TASKMGR weiterbearbeitet).
   Dadurch ist es mit Exec=TRUE z.Z. nicht mglich, schon aus AUTOEXEC.BAT
   heraus ein paar Hintergrund-Tasks fr Serviceaufgaben zu starten
   (Viren-Scanner, etc.) - ich habe bereits etliche erfolglose Versuche
   unternommen :-(. Dies bezieht sich aber nur auf die Startphase von
   TASKMGR, zustzliche Prozesse knnen sehr wohl aus einem Batchjob heraus
   gestartet werden, nach wenigen Sekunden (Ladephase der Prozesse) schaltet
   der TASKMGR jeweils wieder auf den alten Vordergrundtask um.

   Ganz generell sollte man brigens darauf achten, da der Wechsel des
   Vordergrundprozesses nicht in einem Moment vorkommt, wo ein anderer
   Proze geladen wird. Zumindest auf meinem System kommt es in solchen
   Fllen immer wieder zu EMM386 Seitenausnahmefehlern im neu gestarteten
   Task, sowohl mit COMMAND.COM als auch mit 4DOS.COM (Exec=True).
   Normalerweise wartet der TASKMGR einige Sekunden mit der Umschaltung
   zum aufrufenden Task, in Einzelfllen kann aber diese Phase zu kurz
   sein. Dann sollte man manuell eingreifen und *whrend* des Ladens des
   neuen Prozesses das TASKMGR-Men aktivieren und explizit auf den neuen
   Task zurckschalten. Besonders kritisch scheinen Programme zu sein, die
   XMS oder DPMI benutzen.

   Es ist also noch keine generelle Entwarnung fr das Problem der Kombi-
   nation von 4DOS mit Novell DOS' TASKMGR gegeben.
   Bei Beachtung der obigen Hinweise kann man jedoch NWDOS und 4DOS zu
   stabil laufenden Multitasking-Systemen kombinieren. Sollte jemand andere
   Erfahrungen gemacht haben, wre ich fr entsprechende Hinweise dankbar.

                                                                             
  ---------------------------------------------------------------------------

  VII.4. TASKMGR Multitasker in Verbindung mit 4DOS aus Batchjobs aktivieren:
  ==============================================================[96-04-20]===

   Stichworte: TASKMGR, 4DOS, Batchjobs, Background-Tasks, TASKMGR.INI,
               Resynchronisation, Exec=TRUE, 4START.BAT, AUTOEXEC.BAT,
               Viren-Scanner, AUTOEXEC.BAT, 4START.BAT

   Im vorausgehenden Abschnitt wurden schon einige detaillierte Hinweise
   fr das stabile Zusammenspiel des TASKMGR mit 4DOS gegeben.
   Dabei wurde auch angesprochen, da mit der teilweise notwendigen
   Direktive Exec=TRUE in der Datei TASKMGR.INI auch eine komfortable
   Mglichkeit flachfllt, z.B. direkt beim Booten des Rechners ein paar
   Hintergrundtasks fr Serviceaufgaben anzuwerfen, die etwa die Platte nach
   Viren durchsuchen, Verzeichnisse berprfen und reorganisieren (geht mit
   Einschrnkungen auch unter einem Multitasker) und und und...

   Das Problem entsteht dadurch, da der TASKMGR - aus einem Batchjob wie
   AUTOEXEC.BAT gestartet - normalerweise nach wenigen Sekunden, die er dem
   neuen Task fr seine Initialisierung einrumt, auf den alten Task zurck-
   schaltet und z.B. den Batchjob fortsetzt - nicht so mit Exec=TRUE.

   Auf der Kommandoebene von Novell DOS scheint es keine Mglichkeiten zu
   geben, dieses Problem zu umgehen (Manipulationen der Variable %ComSpec%
   fhren wohl nicht zum Erfolg, evtl. wrde es ber simulierte Tastatur-
   eingaben z.B. mit KEYSTACK/KSTACK oder K3PLUS/FreeKEYB funktionieren,
   aber unter einem Multitasker, der sich gerade in der Umschaltphase
   zwischen Tasks befindet, ist auch das auch nicht unbedingt sicher).

   4DOS bietet jedoch eine Mglichkeit der Abhilfe in Form von optionalen
   4START.BAT-Jobs, die beim Starten von 4DOS.COM (als primre oder
   sekundre Shell) noch vor AUTOEXEC.BAT und dem Erscheinen des Prompt-
   zeichens abgearbeitet werden.

   Eine einzelne 4START.BAT Datei ist allerdings viel zu unflexibel fr
   solche Aufgaben. Mit ein paar Tricks lt sich aber ein Workaround
   realisieren, das der fortgeschrittene 4DOS-Anwender leicht an seine
   Bedrfnisse anpassen kann (und mu, denn es gibt hierbei einige
   implizite Voraussetzungen, die aber der Anschaulichkeit halber nicht
   aufgelst wurden):


   AUTOEXEC.BAT:

    @ECHO off > \dev\nul
    REM Flexibler Resychronisationssprung:
    IF NOT ""=="%1" GOTO %1
    ...
    REM @CALL c:\nwclient\startnet.bat
    ...
    REM Erzeuge temporren Resync-Job:
    REM Erster ECHO Parameter bezeichnet d. Job, der von 4START.BAT
    REM aufgerufen werden soll, der zweite Parameter die anzuspringende
    REM Resync-Marke, weitere Parameter sind natrlich optional noch
    REM mglich.
    ECHO @c:\autoexec.bat resync > %tmp%\4start_.bat

    REM Starte TASKMGR Multitasker (Exec=TRUE) mit 4DOS:
    REM 4DOS wird 4START.BAT automatisch aktivieren.
    @CALL TASKMGR /f
    REM Kommt hier erst nach Beenden aller Tasks hin zurck.
    GOTO end

    :resync
    REM Sehr wichtig, um Rekursion und Task-berlufe zu verhindern!
    DEL %tmp%\4start_.bat > \dev\nul

    REM Ein paar Beispiele:
    @CALL TASKMGR /c vir_scan.bat
    @CALL TASKMGR /c diskfix c: d: e: f: /test
    GOTO end

    :end
    REM Ende der AUTOEXEC.BAT


   4START.BAT:

    @IF EXIST %tmp%\4start_.bat %tmp%\4start_.bat

   Der Trick besteht darin, da ber einen temporr erzeugten Job wieder in
   den alten Ablauf zurckgesprungen wird.

   Wichtig:

   - %ComSpec%, %tmp%, %NWDOSCFG% und %Path% mssen richtig gesetzt sein.
   - Exec=TRUE in TASKMGR.INI (damit dieser Aufruf arbeitet, nach Kapitel
     VII.3. nicht unbedingt erforderlich fr den TASKMGR in Verbindung mit
     4DOS, wohl aber fr dieses Beispiel).
   - Der TASKMGR mu als Multitasker starten knnen (dazu mu genug Speicher
     vorhanden sein und EMM386 /MULTI=on mu aktiviert sein).
   - Die Datei 4START.BAT mu fr 4DOS auffindbar sein, notfalls mit einer
     Direktive 4StartPath= in 4DOS.INI.
   - Die Marke :end mu am Ende der AUTOEXEC.BAT stehen, danach darf nichts
     weiteres mehr kommen, sonst wrde TASKMGR dies bearbeiten, nachdem alle
     Tasks geschlossen wurden.

   ber solche Tricks ist es sogar mglich, fr komplizierte Verwaltungs-
   aufgaben die Multitasking-Fhigkeiten des Systems voll auszunutzen und
   eine regelrechte Kommunikation der Batchjobs mittels 'Message-Dateien'
   aufzubauen (allerdings ist dies fr Laien kaum machbar, da Multitasking,
   Proze-Synchronisation und Parallelisierung eine ganze Vielzahl von
   mglichen Fallstricken (Deadlocks, Rekursionen u.a.) mit sich bringen,
   die man sonst nicht beachten mu, wenn man *nur* mehrere unabhngige
   sequentielle Ablufe oder Applikationen anwendet, siehe Kapitel VII.5.).
   Es ist brigens aus diesen Grnden eben gerade nicht mglich, diese
   Minimalform der Kommunikation (wie im Beispiel) statt ber eine Datei
   ber Umgebungsvariablen abzuwickeln (es wre ja soviel komforta-
   bler...), dies wrde fast unweigerlich zu Rekursionsberlufen fhren,
   der TASKMGR wrde permanent neue Tasks erzeugen.

                                                                             
  ---------------------------------------------------------------------------

  VII.5. TASKMGR & Multiuser-Betrieb: [97-03-04]
  ==============================================

   Stichworte: DR DOS, Multitasking, Ressourcen-Sharing, Server, Host, PNW,
               TASKMGR, UART, FIFO, IRQ, CTTY, CON, PROCOMM

   Digital Research (der Entwickler von DR DOS, dem Vorgnger von
   Novell DOS) bot schon immer spezielle DOS-Clones mit Multitasking-
   und Multiuser-Funktionen an (Concurrent PC-DOS, Concurrent CP/M,
   Concurrent DOS, DR Multiuser DOS, etc.). Soweit mir bekannt, brauchte
   dazu z.B. bei DR Multiuser DOS 5 lediglich ein spezieller Treiber
   geladen werden, der wohl auch mit DR DOS 6 arbeitete. Zu anderen
   Multiuser-Betriebssystemen von Digital Research habe ich leider keine
   Informationen (Info wanted!).

   Fest steht, da Novell DOS 7 einerseits im Bereich 'Multiuser' zugelegt
   hat, indem wesentliche Funktionen eines solchen Systems, etwa im Bereich
   Netzwerk - wenn auch mit anderer Ausprgung - nun in Form der Personal
   NetWare direkt mitgeliefert werden.
   Auerdem bieten viele der externen Novell DOS Programme - wenn auch
   undokumentiert - definitiv spezielle Funktionen fr DR Multiuser DOS an,
   manche dieser Programme sogar schon bei DR DOS 6.0 (siehe Kapitel II.4.
   und II.9.). Laut Insider-Aussagen stammt Novell DOS 7 sogar ursprnglich
   von DR Multiuser DOS und nicht - wie oft angenommen - von DR DOS 6.0 ab.
   Es gibt einige Fakten, die dies besttigen wrden, allerdings besteht
   auch eine groe hnlichkeit zu DR DOS 6.0.
   Dies deutet darauf hin, da die zuknftige Entwicklung offenbar die
   beiden Produktlinien Multiuser und Singleuser vereinen sollte, und das,
   obwohl Novell 1993 den Support fr DR Multiuser DOS 5.0 und 5.1 selbst
   eingestellt und an Fremdfirmen abgegeben hat (siehe Kapitel IX.11.,
   die Firma Concurrent Controls Inc. bietet derzeit (03/1997) ein
   Multiuser DOS 7.22 Gold als kostenlose Demo an). Im April 1994 wurde die
   Weiterentwicklung von Novell DOS 7 ebenfalls eingestellt (einmal von den
   Updates und Support abgesehen, die erst Anfang 1996 eingestellt wurden).
   Offenbar war bis zu diesem Zeitpunkt also eine Integration geplant.
   Inwieweit die Novell DOS 7 Programme unter einem existierenden DR Multi-
   user DOS arbeiten, kann ich in Ermangelung dieses Betriebssystems leider
   nicht herausfinden. Andererseits wurden aber auch einige diesbezgliche
   API-Funktionen, die DR DOS 6.0 - ohne irgendwelche zustzlichen Treiber -
   bereits ab Kernel anbot (etwa File-Owner) wieder entfernt und werden von
   Novell DOS 7 nicht mehr untersttzt, siehe z.B. Ralf Browns Interrupt-
   Liste (s.o.).

   Eine dem Multiuser-Betrieb hnliche Konstellation (aber ohne ent-
   sprechende Verwaltungs- und Schutzmechanismen) kann man auf zweierlei
   Weise auch unter Novell DOS erzeugen.

   Die erste Mglichkeit besteht in der Verwendung der Personal NetWare,
   mit der man allerdings nur Ressourcen (wie Laufwerke und Drucker) eines
   anderen Rechners und nicht direkt Rechenleistung nutzen kann.
   Die andere Mglichkeit besteht in der Verwendung des TASKMGR als Multi-
   tasker und ist sehr einfach zu realisieren, indem man ber serielle
   Schnittstellen mehrere entfernte Rechner als Terminals an einen Haupt-
   rechner anschliet.

   Hierzu sind Nullmodem-Kabel und mglichst schnelle UART-Chips notwendig
   (allerdings kann man bei geringer Auslastung durchaus noch auf Chips mit
   FIFO verzichten). Nach der Verkabelung und der Einstellung der Schnitt-
   stellenparameter, die bei jedem Schnittstellenprchen bereinstimmen
   mssen, kann man loslegen. Achtung: Es sollte mglichst keine IRQ-Doppel-
   belegungen geben. Novell weist in ihren FaxBack-Dokumenten darauf hin,
   da ein Hintergrundbetrieb von seriellen Schnittstellen (auch) unter dem
   (multitaskenden) TASKMGR offiziell nicht untersttzt wird (serielle
   Schnittstellen werden nicht oder zumindest nur teilweise virtualisiert),
   allerdings gibt es verschiedene Einstellungen, die eine solche Betriebs-
   art u.U. trotzdem problemlos arbeiten lassen. Dazu sollte man in
   TASKMGR.INI die folgenden Einstellungen vornehmen:

   [Slice]
   Foreground=1
   # Das Verhltnis von Vordergrund- zu Hintergrund-Tasks, d.h. die Anzahl
   # der 'Ticks', die der Vordergrund-Task am Stck arbeiten darf, ehe der
   # Scheduler/Dispatcher (es handelt sich um preemtives Multitasking)
   # wieder zuschlgt. Bei mir tat es auf einem 386sx18 auch das i. allg.
   # sinnvollere Foreground=10.

   # Granularitt des Systemtakts in Einheiten von 1/18,2 Sekunden,
   # mit denen der Scheduler/Dispatcher intern arbeitet.
   # (sollte normalerweise sowieso 1 sein!!!)
   TickRate=1

   [COMx]
   # Es werden COM1-COM4 bzw. LPT1-LPT3 untersttzt.
   # Der Timeout-Wert erlaubt die folgenden Einstellungen:
   # AUTO       = Default-Einstellung, offenbar 5 Sekunden fr COMx und
   #              15 Sekunden fr LPTx.
   # 0          = Die Schnittstelle wird nicht virtualisiert, d.h. alle
   #              Task knnen ohne Overhead direkt auf der Hardware ar-
   #              beiten, was natrlich bei unkoordiertem, d.h. gleich-
   #              zeitigem Zugriff zum Chaos fhrt.
   # 1..65534   = Die Angabe eines Timeout-Wertes virtualisiert die
   #              Schnittstelle. Durch den Zugriff eines Tasks auf die
   #              Schnittstelle wird dieser Task der Eigentmer der
   #              Schnittstelle. Der Zugriff fr andere Tasks bleibt
   #              vorerst gesperrt. In der ersten Halbzeit des Timeouts
   #              hat der Task vollen Zugriff auf die Schnittstelle, danach
   #              klinkt sich der Multitasker wieder ein und berprft, ob
   #              der Task die Schnittstelle noch benutzt. Benutzt der
   #              Task die Schnittstelle innerhalb der zweiten Hlfte des
   #              Timeouts, so zieht sich der Multitasker sofort wieder
   #              zurck. Ansonsten wird die Schnittstelle nach Ablauf des
   #              Timeouts wieder fr den allgemeinen Zugriff freigegeben,
   #              bzw. dem nchsten wartenden Task zugeordnet.
   # 65535 = -1 = Unbegrenzter Timeout, d.h. sobald ein Task die Schnitt-
   #              stelle angesprochen hat, bleibt sie bis zum Beenden des
   #              Tasks fr alle anderen Tasks gesperrt.
   TimeOut=65535

   [Shell]
   Idle=FALSE
   # Schaltet die dynamische Wartezeiterkennung ab. Bei mir funktionierte
   # auch das i. allg. sinnvollere Idle=TRUE.

   [Mouse]
   # MousePort=AUTO   Hier sollte man die COM-Adresse der Maus,
   #                  verringert um eins, angeben
   # MouseIRQ=AUTO    Hier sollte man den wirklichen IRQ der Schnittstelle
   #                  angeben. (COM1 und COM3 blicherweise 4, COM2 und
   #                  COM4 meist 3.)

   Der TASKMGR/TASKMAX als Prozeumschalter ist logischerweise nicht fr
   eine serielle Verbindung im 'Hintergrund' geeignet. Trotzdem ist es
   auch hier oft praktisch, eine serielle Verbindung in einer Anwendung
   aufzubauen und in bertragungspausen auf eine andere Applikation
   umschalten zu knnen. In diesem Fall ist es bei Telefonverbindungen
   allerdings wichtig, da sowohl das Modem, als auch das Kommunikations-
   programm so konfiguriert werden, da sie den Status der DTR-Leitung
   (data terminal ready) ignorieren, sonst wrde das Modem nmlich beim
   Umschalten in den Hintergrund die Telefonverbindung unterbrechen.

   Auf dem Hauptrechner (dessen Rechenleistung genutzt werden soll) wird
   der TASKMGR als Multitasker gestartet und in jedem Task, der durch ein
   Host-Terminal genutzt werden soll, aktiviert man CTTY COMx (dies kann
   man auch schon in der Aufrufzeile von COMMAND.COM sowie bei SHELL= an-
   geben, siehe Kapitel II.11. und III.1.). (Der Prozeumschalter bietet
   in diesem Zusammenhang die evtl. interessante undokumentierte Option
   /R=devicename, der Multitasker bietet diese Option aber nicht.)
   Auf dem jeweiligen Host-Rechner ldt man ein Terminal-Programm wie z.B.
   PROCOMM (dieser Rechner kann durchaus auch wieder unter dem TASKMGR als
   Multitasker laufen, wodurch man in anderen Tasks auch lokal arbeiten
   kann). Im Terminalbetrieb erscheinen alle Ausgaben an DOS-CON nun auf
   dem Fremdrechner und alle Eingaben werden bermittelt. Dabei kann der
   TASKMGR des Hauptrechners in jedem laufenden Task andere Schnittstellen
   bedienen.

   Es ist sogar mglich, gleichzeitig noch das Netzwerk zu laden und
   den Hauptrechner auch zum File-Server zu machen, wodurch man auch den
   direkten Dateizugriff auf dem Hauptrechner bekommt. Solange man die
   Kommandozeile verwendet, kann man so auch den Netzwerk-Server fernbe-
   dienen. Trotzdem ist diese Kombination etwas paradox, schlielich mu
   einerseits eine Netzwerkverkabelung (bei Ethernet meist Strang) und
   eine sternfrmige Verkabelung mit seriellen Kabeln installiert sein.
   Theoretisch sollte es aber mit entsprechenden Treibern mglich sein,
   serielle Datenstrme auf ein anderes Gert umzuleiten, etwa durch das
   Netz zu 'tunneln' oder umgekehrt den Netzverkehr ber serielle Schnitt-
   stellen abzuwickeln: Sollte jemand mit solchen Lsungen (auch unabhngig
   von der 'Multiuser'-Idee) Erfahrungen gesammelt haben, wre ich fr
   Hinweise dankbar (ein paar Ideen finden sich in Kapitel II.8.).

   Einziger Nachteil: Alle Programme mssen so konfiguriert werden, da sie
   fr Ein- und Ausgaben ausschlielich DOS verwenden, ansonsten ist es
   mglich, da man vom Host aus ein Programm auf dem Server aufruft, das
   weitere Eingaben ber das BIOS abwickelt oder seine Ausgaben ber BIOS
   oder direkten RAM-Zugriff auf dem Server und nicht auf dem Host anzeigt.
   Dadurch verliert der Host die Kontrolle ber seinen Task auf dem Haupt-
   rechner und das Programm mu dann direkt am Hauptrechner beendet werden
   (der natrlich in lokalen Tasks auch anderweitig genutzt werden kann).

   Auch das wechselseitige Nutzen von Rechenleistung ist mglich, wenn
   auf allen Rechner der TASKMGR als Multitasker geladen wird und in einem
   Task immer ein Terminalprogramm mit der Verbindung zum anderen Rechner
   luft. So liee sich zumindest theoretisch eine optimale Ausnutzung der
   auf bestimmten Rechnern vorhandenen Ressourcen erreichen, in der Praxis
   scheitert dies jedoch meistens daran, da die Anzahl der ausschlielich
   DOS verwendenden Programme beschrnkt ist.

   Nachbemerkung: Eine Anwendung fr diese Mglichkeiten ist bei mir seit
   einiger Zeit unter dem Projektnamen JOBMGR in Entwicklung. Die bisherigen
   Ergebnisse sind recht erfolgversprechend. Am Horizont steht ein Steuer-
   programm (selbst realisiert unter ausschlielicher Verwendung der Batch-
   Sprache!!!), das ein DOS-Netz (wie z.B. PNW oder NetWare) und/oder
   einen multitaskenden Novell DOS 7 TASKMGR so nutzen knnen wird, da
   Unix-konform Auftrge (Batchjobs) abgeschickt werden knnen, die dann im
   Hintergrund (in anderen lokalen Tasks oder - im Netzverbund - auf
   anderen Rechnern) ausgefhrt werden. Einerseits gibt es damit eine
   Mglichkeit, Rechenleistung anderer DOS-Rechner zu nutzen (z.B. im
   Netz einen 'Job-Server' einzurichten) und andererseits bietet das Konzept
   den Komfort der sofort zurckkehrenden Kommandozeile und erweitert
   Batchjobs um 'Multithreading' und 'Parallelprocessing'-Funktionen sowie
   neue Mglichkeiten in der Zeitsteuerung (permanente Prozesse, AT, etc.).
   Die Netzfunktionen sollen auch mit anderen DOS-Versionen als
   Novell DOS 7 arbeiten, fr den Multitasker ist Novell DOS 7 natrlich
   notwendige Voraussetzung.

                                                                             
  ---------------------------------------------------------------------------

  VII.6. TASKMGR und LOCK:
  ========================

   Stichworte: LOCK, TASKMGR, permanenter Proze

   Die Verwendung der Zeitoption LOCK /T kann unter dem TASKMGR nicht
   richtig arbeiten. LOCK sollte deshalb vor TASKMGR geladen werden.
   Speziell fr den TASKMGR gibt es eine Mglichkeit, LOCK als permanenten
   Proze zu laden:

    TASKMGR /C LOCK password /P

   wobei password das Pawort zum Entsperren des Systems darstellt.

   Achtung: LOCK.EXE von Novell DOS 7 hat absolut nicht mit den bei MS-DOS 7
   (MS Windows95/Chicago) neuen internen Befehlen LOCK und UNLOCK zu tun!!!

                                                                             
  ---------------------------------------------------------------------------

  VII.7. Tastaturprobleme unter dem multitaskenden TASKMGR: [96-05-29]
  ====================================================================

   Stichworte: Tastatur; 'klebende' Modifizierzustnde

   Auf langsamen Rechnern kommt es schon mal vor, da beim Editieren von
   Dateien unter dem multitaskenden TASKMGR unmotiviert Geistertastendrcke
   wie die Zahlen '2', '4', '6' oder '8' eingestreut werden oder die Shift-
   Zustnde (<Shift>, <Alt>, <Ctrl>) pltzlich verndert sind. Dies ist kein
   Problem oder Bug des TASKMGR, sondern liegt an der nicht gerade idealen
   Realisierung des Tastatur-Interfaces AT-kompatibler Rechner, bzw. der
   Programme, die dieses Interface bedienen. Ich mchte an dieser Stelle
   nicht auf Details eingehen (wer sich dafr interessiert, kann z.B. im
   Dokument IA.TEC von Quarterdeck oder der Anleitung zum erweiterten
   Tastaturtreiber K3PLUS/FreeKEYB Hintergrundinformationen finden).
   Das Problem ist auch nicht an den TASKMGR gebunden, sondern kann auch
   sonst auftreten, das Auftreten ist aber mit Programmen wie dem TASKMGR,
   EMM386-Treibern und bei hoher System-/Interrupt-Auslastung sehr viel
   wahrscheinlicher, sobald der Fehler latent vorhanden ist.

   Das Problem wird i. allg. durch ein altes Programm oder einen alten
   Treiber verursacht, das/der den Tastatur-Interrupt INT09h statt
   INT15h/4Fh etc. benutzt. Dabei mu dies nicht notwendigerweise das
   zuletzt installierte Programm sein. Abhilfe ist entweder ein Update
   des betreffenden Programms (falls man tatschlich den wahren beltter
   ermitteln kann, was aufgrund der Natur des Fehlers sehr schwer ist,
   es sei denn, man kennt den Quellcode der Programme), oder als Workaround
   eine verminderte Keyboard-Repeat-Rate (MODE), ein schnellerer Rechner,
   weniger (interruptintensive) Hintergrund-Tasks, ein schnellerer Editor
   (die BP IDE ist z.B. uerst trge bei eingeschaltetem Syntax-High-
   lighting), keinen PNW Server auf diesem Rechner laden...

   Im konkreten Fall knnen Sie die Shift-Zustnde (Blockmarkierungen
   etc.) wieder normalisieren, indem Sie die drei linken Modifizierer-
   tasten (<Shift>, <Ctrl>, <Alt>) jeweils nacheinander drcken und wieder
   loslassen. Verwenden Sie mglichst nicht die Cursor-Tasten und den grauen
   Sechserblock einer MF2-Tastatur (viele Editore erlauben auch auf andere
   Weise das Navigieren im Text, z.B. ber die WordStar-Belegung mit
   <Ctrl>+<s>, <Ctrl>+<d>, <Ctrl>+<e>, <Ctrl>+<x>).

   Klemmt die Tastatur als Ganzes, hilft es hufig, kurz das TASKMGR-Men
   aufzurufen und wieder zu verlassen, denn dabei wird auch das Tastatur-
   Interface neu initialisiert.

   (Weitere Hinweise willkommen...)

                                                                             
  ###########################################################################
  ###########################################################################

  VIII. NOVELL DOS 7 UND MS WINDOWS 3.xx:
  =======================================

  ---------------------------------------------------------------------------

  VIII.1. Novell DOS und MS Windows 3.xx kombinieren: [97-02-12]
  ==============================================================

   Stichworte: Beta-Windows, DR DOS, AARD, Redirektor, Umadressierer, SETUP,
               SYSTEM.INI, SHARE, NWCACHE, TBIM2.COM, VCPI, DPMI, PNW,
               NETWARER.DRV, %NWLanguage%, WINA20.386, NWDOS.386, TASKMGR,
               DOSPRMPT.PIF, %ComSpec%; VLM-Kit VLM121

   Novell DOS ist mit MS Windows 3.xx kompatibel. Trotzdem kann es - wie
   mit jedem DOS als Grundlage - eine Reihe Probleme geben, die man schnell
   beseitigen kann, wenn man die Ursachen kennt. (Diese Beschreibung bezieht
   sich hauptschlich auf MS Windows 3.1 und 3.11.)

   Deshalb hier einige Anmerkungen:


   i. Der AARD-Code - eine peinliche 'Historie':
   ---------------------------------------------

   Manche spten Beta-Versionen von MS Windows 3.1 konnten unter DR DOS
   (dem Vorgnger von Novell DOS) nicht gestartet werden, es erschien eine
   suspekte Fehlermeldung:

   Nicht fataler Fehler: Nr: #2726
   Bitte wenden Sie sich an den Beta-Support fr Microsoft Windows.

   Danach wurde die Ausfhrung von WIN.COM abgebrochen. Nach genauen
   Analysen konnte der Code, der dieses Verhalten erzeugt, isoliert
   werden; er ist unter dem Namen AARD-Code bekannt geworden und in
   diversen Bchern und Zeitschriften publiziert worden. Dieser ver-
   schlsselte und hochgradig selbstmodifizierende Code (der sogar
   Debugger abhngt) berprft eine Reihe undokumentierter Eigenschaften
   von DOS (dies ist auch einigermaen legitim - ohne Untersttzung
   dieser Fhigkeiten wrde Windows nicht arbeiten knnen), gegen Ende
   aber noch eine wild aus dem Zusammenhang gerissene Bedingung
   (Redirector/System FCB/Case Map Test), die in keiner Weise fr die
   ordnungsgeme Funktion von Windows relevant war (dies wurde mittler-
   weile ebenfalls nachgewiesen).
   Bei dieser berprfung fiel DR DOS (und frhe Beta-Versionen von
   Novell DOS) durch; MS-DOS, PC-DOS und OEMs wurden akzeptiert.
   In der Final-Release von Windows 3.1 ist dieser Code weiterhin enthalten
   (jeder braucht nur mit einem Hex-Editor nach der Fehlermeldung oder der
   Zeichenkette 'AARD' in WIN.COM oder SETUP.COM und manchen anderen Dateien
   zu suchen), allerdings vorbergehend auer Funktion gesetzt: Der Code
   wurde so erweitert, da eine zustzliche interne Variable berprft wird.
   Wenn diese den Wert 0 hat, wird die Fehlermeldung bersprungen, hat sie
   einen anderen Wert, geschieht dasselbe wie bei der Windows Beta-Version.
   D.h. durch gezieltes ndern eines einzigen Bytes knnte dieser Prfcode
   wieder aktiviert werden, und damit DR DOS abwehrt werden.
   Microsoft hat die Existenz des AARD-Codes 'im Prinzip nicht dementiert'
   (Microsoft Deutschland hat die Existenz dieses Codes sogar offen zuge-
   geben) - jeder mag sich seinen Teil dabei denken...

   Wenige Tage nach dem Erscheinen von MS Windows 3.1 hatte Digital Research
   allerdings ein 'Business' Update fr DR DOS 6.0 herausgegeben, da neben
   verschiedenen anderen Anpassungen und Bugfixes auch diese berprfung
   umging. Leider hat die ffentlichkeit von diesem und einigen anderen
   Updates zu wenig erfahren, deshalb wurde DR DOS oft als nicht mit
   MS Windows 3.1 kompatibel abgestempelt (obwohl es ja zum Teil eher
   umgekehrt war) - nach diesem Update gab es keine Probleme mit DR DOS
   und MS Windows 3.1...


   ii. Modifikationen am Windows-System durch Novell DOS SETUP:
   ------------------------------------------------------------

   Bei der Installation von Novell DOS nimmt das Setup-Programm einige
   Anpassungen des Windows-Systems vor. Sollten Sie MS Windows jedoch
   erst spter installieren oder updaten, mssen Sie diese Einstellungen
   per Hand vornehmen (besonders wichtig, da oft vergessen: TASKMAN.EXE=).
   Dies kann auch notwendig sein, wenn Sie eine Netzinstallation von
   Windows vornehmen:

   Folgende wichtige Modifikationen werden u.a. in SYSTEM.INI gemacht:

   Im Abschnitt [boot]:            network.drv= wird ersetzt durch
                                   network.drv=netware.drv
                                   (Dies ldt die 'NetWare user'
                                   Programme, evtl. in dieser Form nur
                                   fr PNW notwendig)

                                   taskman.exe=taskman.exe
                                   wird ersetzt durch
                                   taskman.exe=c:\nwdos\TASKMGR.EXE
                                   (oder ein entsprechendes anderes
                                   Verzeichnis z.B. \WINDOWS\)

                                   Sie sollten sicherstellen, da die
                                   Datei TASKMGR.EXE auch bei Novell DOS
                                   Updates mit upgedatet wird. Die Kopie
                                   in das Windows-Verzeichnis wird dabei
                                   hufig vergessen.

   Im Abschn. [boot.description]:  network.drv= wird ersetzt durch
                                   network.drv=Personal NetWare (V1.0)
                                   (Dies definiert, welche Personal NetWare
                                   Gerteversion Sie verwenden, natrlich
                                   nur bei PNW so notwendig.)

   Im Abschnitt [386Enh]:          network=dosnet wird ersetzt durch
                                   network=*vnetbios;vipx.386;vnetware.386
                                   (Dies legt den Typ des Netzes fest,
                                   der mit dem Erweiterten 386er Modus von
                                   MS Windows verwendet wird.)

                                   Diese Einstellungen galten auch schon fr
                                   NetWare Lite:

                                   TimerCriticalSection= wird ersetzt durch
                                   TimerCriticalSection=10000
                                   (Personal NetWare verwendet diese
                                   Einstellung, um sicherzustellen, da
                                   der Netzverkehr auf Ihrem Computer
                                   gleichmig verluft. Angeblich soll
                                   notfalls auch noch 500 laufen.)

                                   ReflectDOSInt2A=TRUE wird hinzugefgt.

                                   OverlappedIO=OFF wird hinzugefgt.

                                   PSPIncrement=5 wird hinzugefgt.

                                   UniqueDOSPSP=TRUE wird hinzugefgt.

                                   device=fastback.386 wird fr FastBack-
                                   Software hinzugefgt, aber nur bei
                                   Floppy-Backups (nicht lokale Festplatten
                                   oder Netzlaufwerke) bentigt. Dieser
                                   Treiber vertrgt sich nicht mit QIC80-
                                   Streamer-Software (z.B. QBACKUP-Win fr
                                   "IOMega insider 250") im Erweiterten
                                   386er-Modus, mu daher hufig wieder ent-
                                   fernt werden. In Novells FaxBack-Doku-
                                   menten wird auf Probleme beim Formatieren
                                   von Cartridges mit IOMegas 250 MByte
                                   Floppy-Streamer unter Novell DOS 7 be-
                                   richtet; ich hatte allerdings (offen-
                                   sichtlich mit genau diesem Streamer)
                                   keinerlei Probleme. Bei dieser Gelegen-
                                   heit noch ein Hinweis am Rande: IOMegas
                                   QBACKUP 3.x vertrgt sich offensichtlich
                                   nicht (immer) mit Logitech-Maustreibern
                                   (aufgefallen mit MouseWare 6.50). Hier
                                   hilft es, den Logitech-Maustreiber fr
                                   die Dauer von QBACKUP mit einem anderen
                                   Maustreiber (etwa GMOUSE 10.20) zu ber-
                                   laden.

   Im Abschnitt [NetWare]:         NWShareHandles=1  sofern gewnscht

   Im Abschnitt [VIPX]: (siehe auch in Novells VIPX.DOC)

    ; alle Parameter sind optional und nur selten erforderlich:
    VipxMappingPages         =[number of 4K pages] ; <16>
    VipxFailOverSizedPackets =[ON|OFF|TRUE|FALSE]  ; <OFF>
    VpicdFix                 =[ON|OFF|TRUE|FALSE]  ; <ON>
    AutoIrqVirtualize        =[ON|OFF|TRUE|FALSE]  ; <ON>
    VirtualizeIrq[0-F]       =[ON|OFF|TRUE|FALSE]  ; <OFF>
    KeepLongLivedSocketsOpen =[ON|OFF|TRUE|FALSE]  ; <OFF>
    ; Diese Parameter existieren nur in Beta-Versionen von VIPX.386:
    VipxErrorMessages        =[ON|OFF|TRUE|FALSE]  ; <OFF>
    VipxWarningMessages      =[ON|OFF|TRUE|FALSE]  ; <OFF>
    VipxBreakOnErrors        =[ON|OFF|TRUE|FALSE]  ; <OFF>
    VipxBreakOnWarnings      =[ON|OFF|TRUE|FALSE]  ; <OFF>
    VipxOutDebugStrOnErrors  =[ON|OFF|TRUE|FALSE]  ; <OFF>
    VipxOutDebugStrOnWarnings=[ON|OFF|TRUE|FALSE]  ; <OFF>


   Folgende Modifikationen werden in WIN.INI gemacht:

   Im Abschnitt [Windows]:         load= wird ersetzt durch
                                   load=nwpopup.exe
                                   (Dies erlaubt die Anzeige von
                                   Netzmeldungen in MS Windows)

                                   Netwarn=1 wird hinzugefgt
                                   (Wenn diese Einstellung aktiviert ist,
                                   das Netzwerk jedoch nicht geladen ist,
                                   zeigt MS Windows bei Start ein PopUp-
                                   Fenster an, das meldet, da das Netzwerk
                                   nicht geladen ist.)


   Bei der Einrichtung von STACKER wird in WINFILE.INI eingetragen:

   Im Abschnitt [AddOns]:          Stacker Extension=c:\nwdos\stacfm.dll

   Bei dieser Gelegenheit knnen Sie - sofern Sie nicht mit dem Lsch-
   schutz von MS-DOS arbeiten - im Abschnitt [AddOns] auch einen evtl.
   vorhandenen Eintrag:

   MS-DOS Tools Extentions=c:\msdos\mstools.dll

   und im Abschnitt [Settings] einen Eintrag

   UNDELETE.DLL=c:\msdos\mstools.dll

   von einer vorherigen MS-DOS-Installation entfernen, die Sie nicht mehr
   brauchen.


   Von den Speichermanagern wird nur EMM386 bentigt. Die Parameter /DPMI
   und /MULTI knnen aktiviert werden; VCPI braucht *nicht* mittels /NOVCPI
   abgeschaltet werden. Der Schalter /WINSTD wird nicht bentigt und auch
   nicht empfohlen, wenn Sie mit MS Windows 3.1 arbeiten. DPMS kann eben-
   falls ohne Probleme genutzt werden.
   Auerdem wird dringend empfohlen, vor MS Windows 3.xx die Novell DOS 7
   Programme SHARE und NWCACHE (notfalls SMARTDRV) zu laden (MS-DOS hat
   SHARE intern realisiert, bei Novell DOS 7 mu man fr den gleichen
   API-Umfang das TSR SHARE laden).


   iii. Netzwerk (PNW) Einrichtung fr Windows:
   --------------------------------------------

   Ein zu verwendendes Netzwerk (ob NetWare oder PNW) mu vor MS Windows
   geladen werden, wenn man es innerhalb von Windows global einsetzen
   mchte (Ausnahme: siehe Kapitel VI.2. und II.8.).

   Fr PNW sind eine ganze Reihe von Dateien im Windows-Verzeichnis ntig.
   Dabei wird von einer lokalen Installation ausgegangen (fr eine Windows
   Netzinstallation siehe Kapitel VIII.3.).

   Eine bersicht gibt die folgende Auflistung:

   c:\windows\taskmgr.exe          Opt., ber Pfad auch in C:\NWDOS mglich
   c:\windows\nwdos.grp            Gruppendatei fr Novell DOS und PNW
   c:\windows\netware.ini          Einstellungen der PNW-Tools

   c:\windows\nwdrvwin.bmp         Diese Netz-Treiber nur mit dem VLM-Kit
   c:\windows\nwrcon.pif           VLM121_1.EXE - VLM121_6.EXE...
   c:\windows\loginw31.exe         Diese Datei ist fr PNW nicht unbedingt
                                   erforderlich.

   c:\windows\system\bwcc.dll      Fr Search & Destroy Viren-Scanner,
                                   siehe Kapitel II.4. bei WSDRES/WSDSCAN
   c:\windows\system\fastback.386  Fr Fifth Generation FBWX

   c:\windows\system\netware.hlp   Hilfedatei fr Netz-Tools wie NWUSER.EXE
                                   Nur bei PNW *hier*, mit VLM121_1.EXE
                                   bis VLM121_6.EXE dagegen in
                                   C:\WINDOWS\NLS\DEUTSCH\
   c:\windows\system\netwhelp.hlp  nur bei PNW
   c:\windows\system\netwpnw.dll   nur bei PNW
   c:\windows\system\nwnetapi.dll  nur bei PNW (ersetzt durch NWCALLS.DLL)
   c:\windows\system\pnwdiagw.dll  nur bei PNW

                                   Diverse gemeinsame Netz-Treiber:
   c:\windows\system\netware.drv   NetWare Client Windows Treiber
   c:\windows\system\nwcalls.dll   NCP Kommunikation zwischen Server/Client
   c:\windows\system\nwgdi.dll     NetWare Graphical Device Interface
   c:\windows\system\nwipxspx.dll  IPX/SPX Kommunikation
   c:\windows\system\nwlocale.dll  Lokalisierung/Internationalisierung
   c:\windows\system\nwnet.dll     Netzwerkuntersttzung fr NDS usw.
   c:\windows\system\nwpopup.exe   wird beim Start von Windows geladen...
   c:\windows\system\nwpsrv.dll    fr Druckerserver (ersetzt NWPSERV.DLL)
   c:\windows\system\pnw.dll       fr grafische PNW-Utilities
   c:\windows\system\taskid.com    fr korrekte Task-Zuordnung unter Task-
                                   switchern
   c:\windows\system\tbmi2.com     fr Task-Switcher wie DOSSHELL, TASKMAX,
                                   TASKMGR als Prozessumschalter, Windows
                                   3.xx im Standardmodus
   c:\windows\system\vipx.386      Virtueller IPX/SPX Treiber
   c:\windows\system\vnetware.386  Virtueller NetWare-Treiber
                                   sollten identischen mit den Dateien
                                   in C:\NWDOS\ sein, die der TASKMGR.EXE
                                   bei Bedarf verwendet.

   c:\windows\system\audwin16.dll  Diese Netz-Treiber nur mit dem VLM-Kit
   c:\windows\system\calwin16.dll  VLM121_1.EXE - VLM121_6.EXE, teilweise
   c:\windows\system\clnwin16.dll  auch schon mit dem lteren VLM-Kit
   c:\windows\system\clxwin16.dll  VLMKT1.EXE - VLMKT6.EXE...
   c:\windows\system\ctl3dv2.dll
   c:\windows\system\lgnw3116.dll
   c:\windows\system\locwin16.dll
   c:\windows\system\loginw31.dll
   c:\windows\system\ncpwin16.dll
   c:\windows\system\netwin16.dll
   c:\windows\system\nwuser.exe    Ntzliches Tool
   c:\windows\system\prtwin16.dll
   c:\windows\system\tli_spx.dll
   c:\windows\system\tli_tcp.dll
   c:\windows\system\tli_win.dll

   c:\windows\nls\1252_uni.001     Allgemeine Unicode-Dateien:
   c:\windows\nls\1252_uni.002     Nicht alle dieser Dateien werden in
   c:\windows\nls\1252_uni.003     Deutschland wirklich bentigt (nur
   c:\windows\nls\1252_uni.031     .001, .049), aber der Einfachheit
   c:\windows\nls\1252_uni.032     halber habe ich alle mglichen der
   c:\windows\nls\1252_uni.033     bei PNW mitgelieferten Dateien auf-
   c:\windows\nls\1252_uni.034     gelistet. Die groen NetWare-Ausgaben
   c:\windows\nls\1252_uni.039     untersttzen noch wesentlich mehr
   c:\windows\nls\1252_uni.041     Codeseiten und Lnder; siehe auch
   c:\windows\nls\1252_uni.044     Kapitel II.16.
   c:\windows\nls\1252_uni.045     Sollten Sie Untersttzung fr andere
   c:\windows\nls\1252_uni.046     Lnder oder Codeseiten bentigen,
   c:\windows\nls\1252_uni.047     finden Sie im 'Novell Client Kit for
   c:\windows\nls\1252_uni.049     DOS & Windows 3.xx' sicherlich die
   c:\windows\nls\1252_uni.061     ntigen Dateien; siehe auch Kapitel I.2.
   c:\windows\nls\1252_uni.081
   c:\windows\nls\1252_uni.351
   c:\windows\nls\1252_uni.358
   c:\windows\nls\437_uni.001
   c:\windows\nls\437_uni.003
   c:\windows\nls\437_uni.031
   c:\windows\nls\437_uni.032
   c:\windows\nls\437_uni.033
   c:\windows\nls\437_uni.034
   c:\windows\nls\437_uni.039
   c:\windows\nls\437_uni.041
   c:\windows\nls\437_uni.044
   c:\windows\nls\437_uni.046
   c:\windows\nls\437_uni.049
   c:\windows\nls\437_uni.061
   c:\windows\nls\437_uni.358
   c:\windows\nls\uni_1252.001
   c:\windows\nls\uni_1252.002
   c:\windows\nls\uni_1252.003
   c:\windows\nls\uni_1252.031
   c:\windows\nls\uni_1252.032
   c:\windows\nls\uni_1252.033
   c:\windows\nls\uni_1252.034
   c:\windows\nls\uni_1252.039
   c:\windows\nls\uni_1252.041
   c:\windows\nls\uni_1252.044
   c:\windows\nls\uni_1252.045
   c:\windows\nls\uni_1252.046
   c:\windows\nls\uni_1252.047
   c:\windows\nls\uni_1252.049
   c:\windows\nls\uni_1252.061
   c:\windows\nls\uni_1252.081
   c:\windows\nls\uni_1252.351
   c:\windows\nls\uni_1252.358
   c:\windows\nls\uni_437.001
   c:\windows\nls\uni_437.003
   c:\windows\nls\uni_437.031
   c:\windows\nls\uni_437.032
   c:\windows\nls\uni_437.033
   c:\windows\nls\uni_437.034
   c:\windows\nls\uni_437.039
   c:\windows\nls\uni_437.041
   c:\windows\nls\uni_437.044
   c:\windows\nls\uni_437.046
   c:\windows\nls\uni_437.049
   c:\windows\nls\uni_437.061
   c:\windows\nls\uni_437.358
   c:\windows\nls\uni_col.001
   c:\windows\nls\uni_col.002
   c:\windows\nls\uni_col.003
   c:\windows\nls\uni_col.031
   c:\windows\nls\uni_col.032
   c:\windows\nls\uni_col.033
   c:\windows\nls\uni_col.034
   c:\windows\nls\uni_col.039
   c:\windows\nls\uni_col.041
   c:\windows\nls\uni_col.044
   c:\windows\nls\uni_col.045
   c:\windows\nls\uni_col.046
   c:\windows\nls\uni_col.047
   c:\windows\nls\uni_col.049
   c:\windows\nls\uni_col.061
   c:\windows\nls\uni_col.081
   c:\windows\nls\uni_col.351
   c:\windows\nls\uni_col.358
   c:\windows\nls\uni_mon.001
   c:\windows\nls\uni_mon.002
   c:\windows\nls\uni_mon.003
   c:\windows\nls\uni_mon.031
   c:\windows\nls\uni_mon.032
   c:\windows\nls\uni_mon.033
   c:\windows\nls\uni_mon.034
   c:\windows\nls\uni_mon.039
   c:\windows\nls\uni_mon.041
   c:\windows\nls\uni_mon.044
   c:\windows\nls\uni_mon.045
   c:\windows\nls\uni_mon.046
   c:\windows\nls\uni_mon.047
   c:\windows\nls\uni_mon.049
   c:\windows\nls\uni_mon.061
   c:\windows\nls\uni_mon.081
   c:\windows\nls\uni_mon.351
   c:\windows\nls\uni_mon.358

   c:\windows\nls\deutsch\netwarer.drv   Referenziert ber %NWLanguage%

   c:\windows\nls\deutsch\netware.hlp    Das VLM-Kit VLM121_1.EXE -
   c:\windows\nls\deutsch\login.dat      VLM121_6.EXE bentigt eine Reihe
   c:\windows\nls\deutsch\login.msg      weiterer Dateien, die hier aufge-
   c:\windows\nls\deutsch\loginw31.hlp   listet werden, aber nur bei Ver-
                                         wendung von LOGINW31.EXE bentigt
                                         werden.

   c:\windows\nls\deutsch\taskid.msg     Eventuell brauchen Sie auch noch
   c:\windows\nls\deutsch\tbmi2.msg      diese Dateien.

   Sollten Sie einmal eine Fehlermeldung erhalten, da die Datei
   NETWARER.DRV ncht gefunden werden kann, sollten Sie berprfen ob

   1. die Variable %NWLanguage% z.B. in STARTNET.BAT korrekt gesetzt wird.
      Sie mu den Namen des Unterverzeichnisses von \WINDOWS\NLS\DEUTSCH
      enthalten, hier also 'DEUTSCH' (siehe Kapitel II.16., IV.7., VI.2.),
      als auch

   2. ob Sie MS Windows ber ein Substitut-Laufwerk o.. aufgerufen haben.
      Falls dies zutrifft, sollten Sie stattdessen MS Windows ber einen
      Batchjob aufrufen, der vorher auf das Windows-Laufwerk und Verzeichnis
      wechselt. U.U. kann man auch auf den undokumentierten Befehl TRUENAME
      ausweichen (nicht getestet).


   iv. Weitere Hinweise:
   ---------------------

   Es ist auch mglich, MS Windows als einen Task des DOS-Task-Managers
   TASKMGR auszufhren (allerdings arbeitet MS Windows dann nur im Standard
   Modus /S), wenn Sie nach dem Netzwerk, aber noch vor MS Windows den
   TASKMGR als Multitasker laden. Auf diese Weise knnen Sie - zumindest
   theoretisch - z.B. MS Windows mit preemptivem Multitasking-Fhigkeiten
   ausrsten und sogar mehrere Windows-Sessions nebeneinander laufen lassen,
   in der Praxis ist der dafr notwendige Aufwand meist viel zu gro.
   Wenn Sie stattdessen TASKMGR als Prozeumschalter laden, kann MS Windows
   sogar im Erweiterten 386er Modus ausgefhrt werden. Umgekehrt ist es auch
   mglich, den TASKMGR in einer Windows-DOS-Box als Prozeumschalter zu
   starten - die Vielfalt kennt keine Grenzen. Wenn dabei immer der gleiche
   TASKMGR (und nicht TASKMAN) zum Einsatz kommt, kann man sogar aus dem
   Task-Men von Windows die DOS-Tasks, die vor Windows gestartet wurden,
   sowie auf die Tasks innerhalb einer DOS-Box umschalten, d.h. alle Tasks
   des Systems ber das TASKMGR-Men steuern. Achten Sie in diesem Fall
   besonders auf die fr das TASKMGR-Men gewhlte Tastenkombination.

   Wenn Sie MS Windows im Standard Modus in Verbindung mit dem Task-Manager
   ausfhren wollen, mssen Sie u.U. noch das Programm TBIM2 laden, das
   Netzanforderungen in unterschiedlichen Tasks koordiniert.

   Ein Beispiel fr einen Batchjob dieser Art:

   WIN.BAT:

    @ECHO off > \dev\nul
    REM Das Starten ber ein Substitut-Laufwerk fhrt dazu, da der Treiber
    REM NETWARER.DRV (Deutsch) nicht gefunden wird.
    c:
    CD c:\windows
    REM Video-Speicher freigeben bei DR DOS/Novell DOS.
    REM Achtung: Mit 4DOS 5.51 (only) kann dies Probleme verursachen, wenn
    REM Video-Speicher aktiv war.
    IF EXIST %dos%\MEMMAX.EXE CALL MEMMAX -v
    REM Im Standard Modus wird ein spezieller Treiber fr TASKMGR bentigt.
    REM Warntne (von TBMI2) werden ebenfalls ins Null-Device geschickt! ;-)
    FOR %%x IN (/s /S -s -S s S) DO IF "%%x"=="%1" CALL TBMI2 > \dev\nul
    REM In Verbindung mit lteren Versionen von K3PLUS war K3_DISZZ/K3_ENZZ
    REM evtl. erforderlich (mit neueren Versionen von K3PLUS/FreeKEYB nicht
    REM mehr):
    REM @CALL k3_diszz
    @win.com %1 %2 %3 %4 %5 %6 %7 %8 %9
    REM @CALL k3_enzz
    FOR %%x IN (/s /S -s -S s S) DO IF "%%x"=="%1" CALL TBMI2 /u > \dev\nul
    IF EXIST c:\nwdos\nwcache.exe CALL NWCACHE /size=max


   Sollten Sie beim Start von MS Windows Fehlermeldungen der Art 'Konnte
   wichtigen Gertetreiber, der evtl. fr den Erweiterten 386er Modus not-
   wendig ist, nicht finden' bekommen, sollten Sie versuchen, MS Windows
   ber einen Batchjob aufzurufen und vorher in das Windows-Verzeichnis zu
   wechseln. Alternativ knnen Sie in der SYSTEM.INI auch die kompletten
   Pfade auf die Treiber angeben oder Sie knnen dieses Verzeichnis auch
   in die PATH-Anweisung aufnehmen, wodurch solche Probleme generell
   vermieden werden.
   Bei derartigen Problemen hilft es oft, WIN /B aufzurufen; dadurch
   wird whrend des Starts von Windows in der Datei BOOTLOG.TXT ein
   Startprotokoll aufgezeichnet.
   berprfen Sie, ob NWDOS.386 im Hauptverzeichnis liegt und sichtbar ist.
   Ansonsten knnen Sie den Pfad zu dieser Datei in der CONFIG.SYS bei
   EMM386 angeben oder eine Anweisung SWITCHES= entsprechend Microsofts
   Konventionen verwenden.

   WINA20.386 und NWDOS.386 werden nur fr Windows 3.0 bentigt, ansonsten
   knnen diese Dateien gelscht werden. Allerdings mu man dann auch den
   entsprechenden Eintrag in der SYSTEM.INI entfernen, damit die Fehler-
   meldung unterbleibt.

   berprfen Sie auch die Einstellungen in der %NWDOSCFG%\TASKMGR.INI
   Datei. Bei richtiger Konfiguration wird statt MS Windows' TASKMAN
   Novell DOS' TASKMGR als Manager fr MS Windows geladen, deshalb sind
   dessen Einstellungen u.U. nicht unrelevant.

   Noch ein Tip zum Schlu: Gerade auch im Zusammenspiel unterschiedlicher
   Kommandoprozessoren in DOS-Boxen unter Windows ist es meist empfehlens-
   wert, in der DOSPRMPT.PIF Datei nicht direkt COMMAND.COM (bzw. 4DOS.COM)
   anzugeben, sondern %ComSpec%, das immer den richtigen Eintrag enthalten
   sollte. Beim Speichern dieser Einstellung wird der PIF-Editor eine
   Fehlermeldung bezglich einer falschen Dateiendung ausgeben. Diese kann
   getrost ignoriert werden, Windows macht nach dem Speichern genau das,
   was es soll und ersetzt spter die Variable durch ihre aktuelle Belegung.
   (Beim ersten Speichern ist Windows unbarmherzig, hier mu man also
   zunchst COMMAND.COM angeben, speichern, dann durch %ComSpec% ersetzen
   und erneut speichern...)

   Danach sollte MS Windows unter Novell DOS ebenso stabil wie unter
   MS-DOS laufen (meine vielleicht paradoxe persnliche Erfahrung:
   erstaunlicherweise stabiler!!!).

   Haben Sie auf einem neuen Rechner zunchst Novell DOS 7 und dann
   MS Windows 3.xx installiert, wollen Sie sicherlich die Installation
   der Windows-Tools von Novell DOS 7 nachholen (sehr empfehlenswert).
   Dafr mssen Sie u.U. Novells SETUP.INI (in %NWDOSCFG% alias C:\NWDOS\)
   modifizieren:

   WinPath=Pfad auf Windows-Verzeichnis (meist C:\WINDOWS\)
   FirstTime=Yes
   Element0Installed=Yes
   Element1Installed=No
   Element2Installed=Yes
   NetCFGDir=Pfad auf die PNW (meist C:\NWCLIENT\)
   WINDOWS=No

                                                                             
  ---------------------------------------------------------------------------

  VIII.2. Novell DOS, MS Windows 3.xx und Genius-Maustreiber 10.20:
  ====================================================[96-02-05]===

   Stichworte: Genius-Maus, 3-Tasten-Modus, GMOUSE.SYS/COM/DRV, SimTel,
               TASKMGR, Windows, 4DOS

   ber SimTel ist ein neuer Genius-Maustreiber 10.20 (1993) verfgbar,
   den viele Benutzer von Genius-Musen wohl schon lange vergeblich gesucht
   haben, da die letzte weitverbreitete Version 9.06 (1991) schon etliche
   Jahre zurcklag und mit verschiedener Software Probleme bereitete (u.a.
   auch mit dem TASKMGR aus frhen Versionen von Novell DOS 7, siehe
   Kapitel VII.1.).

   Der neue Treiber in seiner MS Windows Version GMOUSE.DRV ermglicht
   ruckfreies Arbeiten mit der Maus, auch im 3-Tasten-Modus. Die bisherigen
   Treiber (die bei MS Windows beilagen) oder diverse andere Fremdtreiber
   arbeiteten leider nicht vllig problemlos mit MS Windows ber Novell DOS:
   der Zeiger sprang bei Diskettenzugriffen schon bei kleinsten Bewegungen
   der Maus wild ber den Bildschirm und beruhigte sich erst, wenn der
   Cache NWCACHE nach der Startphase zur Ruhe gekommen ist (mit MS-DOS
   und SMARTDRV zeigte sich dieses Verhalten nicht, aber reprsentativ
   mu das nicht sein).

   Leider strzt das SETUP-Programm zu diesem Genius-Maustreiber whrend
   der Installation ab, da es u.a. nicht mit Novell DOS- (und DR DOS-)
   spezifischen Eintrgen in CONFIG.SYS (Boot-Mens) zurechtkommt. Aber
   auch ansonsten gibt es eine Reihe von Problemen mit diesem Programm
   (beschrnkte Verzeichniswahl, z.B. keine Verzeichnisse mit einem Punkt).
   Es bleibt die manuelle Installation, bei der man fr MS Windows in
   SYSTEM.INI den MOUSE.DRV=\path\GMOUSE.DRV eintragen mu.

                                                                             
  ---------------------------------------------------------------------------

  VIII.3. Novell DOS und MS Windows 3.xx Netzinstallation: [96-06-13]
  ===================================================================

   Stichworte: Netzinstallation, PNW, SYSTEM, SETUP.INI

   Die Dateien NETWARE.DRV, FASTBACK.386 und VNETWARE.386 mssen ins
   Windows-Netzverzeichnis kopiert werden, ins lokale Windows \SYSTEM\
   Verzeichnis gehren NETWPNW.DLL, NW*.DLL, PNW.DLL und PNDDIAGW.DLL.
   Die lokale SYSTEM.INI mu die in Kapitel VIII.1. beschriebenen
   Einstellungen vorweisen (nach c't 08/1994 S.195).

   Bezglich FASTBACK.386 und PNW siehe auch Kapitel VIII.1.

                                                                             
  ---------------------------------------------------------------------------

  VIII.4. Windows-Maus in DOS-Boxen im Fenster benutzen: [96-12-19]
  =================================================================

   Stichworte: Logitech LVMD.386, SYSTEM.INI, Drag & Drop, Copy & Paste,
               CLOAKING, DPMS

   Dieser Tip funktioniert unabhngig von der installierten DOS-Version
   (also auch mit MS-DOS/PC-DOS)!

   Viele haben sich sicherlich schon darber gergert, da man zwar
   unter MS Windows 3.xx DOX-Boxen ffnen kann, die Maussteuerung einer
   dort gestarteten Applikation jedoch normalerweise nur dann funktioniert,
   wenn man die Applikation im Vollbildmodus startet.
   Schaltet man dann auf den Fensterbetrieb um, so ist die Maus pltzlich
   verschwunden. Stattdessen kann man mit der Windows-Maus arbeiten,
   auf die aber das DOS-Fenster nicht reagiert. Schaltet man zurck in den
   Vollbildmodus, kommt es - abhngig von der jeweiligen Applikation - sogar
   vor, da nun auch hier die Maus verschwunden ist.
   Startet man die Applikation jedoch im Fenster, erscheint die DOS-Maus
   erst gar nicht und bleibt blicherweise auch beim Umschalten in den
   Vollbildmodus verschwunden.
   Diese Probleme sind nur logisch, denn die Applikation wird nicht stndig
   versuchen, eine evtl. beim Start nicht verfgbare Maus nachtrglich zu
   aktivieren.

   Allerdings gibt es eine Mglichkeit, dieses Problem sehr elegant
   zu lsen, und zwar unabhngig von den verwendeten DOS- und Windows-
   Maustreibern:

   Logitech und OEMs liefern zu ihren Musen ein Treiberpaket namens
   "MouseWare" mit. Dieses Paket ist aber auch an vielen Stellen in den
   Datennetzen verfgbar. In der Version 6.30 dieses Pakets befindet sich
   u.a. ein virtueller Gertetreiber LVMD.386 fr MS Windows 3.xx, der statt
   des Standard-Treibers in der SYSTEM.INI [386Enh] Sektion eingetragen
   werden mu (falls der Treiber nicht im \WINDOWS\SYSTEM\ Verzeichnis
   liegt, bei Bedarf mit Pfadangabe).

    SYSTEM.INI:

    [386Enh]
    ...
    ; z.B. einen Eintrag wie
    ; mouse=mscvmd.386
    ; ersetzen durch einen Logitech-Treiber
    mouse=lvmd.386
    ...

   Der 'normale' Windows-Maustreiber in SYSTEM.INI und der blicherweise
   in CONFIG.SYS oder AUTOEXEC.BAT geladene DOS-Maustreiber braucht nicht
   gendert zu werden (eine einigermaen aktuelle API-Untersttzung des
   Treibers vorausgesetzt: GMOUSE 10.20 und verschiedene Microsoft-Treiber
   funktionierten jedenfalls).

   Nach dieser nderung kann man nun auch in DOS-Boxen, die im Fenster
   laufen, den Windows-Mauszeiger benutzen:

   Befindet sich der Mauszeiger ber dem Fenster der DOS-Box, beziehen sich
   alle Tastendrcke, Drag & Drop-Operationen etc. auf die in der DOS-Box
   laufende Applikation (besonders praktisch z.B. fr den Norton Commander
   NC 5.0x, der neuerdings ber Drag & Drop Mglichkeiten verfgt. Kleiner
   Seitenhieb: Ob der NC eigentlich immer noch der meistgenutzte Datei-
   manager unter Windows ist? ;-) ).
   Auerhalb des Fensters bezieht sich die Maus natrlich wie gewohnt auf
   die Windows-Anwendungen.
   Die einzige Einschrnkung ist, da Mausoperationen bei MS Windows 3.xx
   nicht ber die Grenzen eines Fensters hinweg mglich sind, denn
   schlielich luft jede DOS-Box in einer eigenen virtuellen Maschine und
   bekommt ohne spezielle Kommunikation mit Windows nichts davon mit, da
   sie in einem Fenster unter Windows luft.

   Mit Windows95 hat sich dies jedoch gendert (und das unabhngig von
   obigem Treiber); hier werden beschrnkte Drag & Drop und Copy & Paste
   Operationen zwischen DOS- und Windows-Applikationen geboten.

   Eine Copy & Paste Funktion (und unter Zuhilfenahme dieses Tricks auch
   mit kompletter Windows-Mausuntersttzung fr die DOS-Box) bietet aller-
   dings auch schon MS Windows 3.xx:

   Luft eine DOS-Box im Fenster, so kann man ber das Systemmen
   (links oben in der Fensterumrahmung) unter dem Punkt 'Bearbeiten'
   auf 'Markieren' gehen und dann Bildschirmausschnitte des angezeigten
   Fensters markieren. Bezglich der genauen Arbeitsweise (und anderer
   Mglichkeiten, etwa im Vollbildmodus) sei auf die Online-Hilfe von
   NOTEPAD.EXE (der Zwischenablage) verwiesen.
   Normalerweise kann man dafr (im Fensterbetrieb) nur die Cursor-Tasten
   in Verbindung mit <Shift> benutzen. Mit dem oben angesprochenen Logitech-
   Treiber kann man jedoch nach Aktivierung des 'Markieren'-Menpunktes
   (sonst bezieht sich die Maussteuerung ja wie oben erlutert auf die
   Applikation selbst) wie gewohnt den Windows-Mauszeiger benutzen
   (linke Maustaste), um Bereiche zu markieren und dann mit 'Kopieren' in
   die Zwischenablage zu kopieren. Von dort kann sie dann mit 'Bearbeiten'/
   'Einfgen' als simulierte Tastatureingabe in eine andere DOS-Anwendung
   bernommen werden oder aus der Zwischenablage auch in Windows-Anwendungen
   eingebunden werden.

   Nachbemerkung:

   In der Logitech MouseWare 6.50+ befindet sich auch eine neue Version
   des 'normalen' DOS-Maustreibers, der vielleicht fr Sie interessant ist:
   Diese neue Version untersttzt das CLOAKING-API, und kann sich, wenn
   man vorher den beiliegenden Treiber CLOAKING.EXE geladen hat (kann auch
   in CONFIG.SYS mit DEVICE=/DEVICEHIGH= geladen werden), bis auf 1 KByte
   aus dem ersten MegaByte auslagern (statt sonst 27 KByte zu belegen)!
   (Dies funktioniert sogar in CONFIG.SYS, wenn man auch MOUSE.EXE per
   DEVICE=/DEVICEHIGH= ldt...)
   CLOAKING ist eine Entwicklung von Helix Software und kostet selbst nur
   1 KByte Speicher. CLOAKING ist von seinem Einsatzzweck und der Funk-
   tionalitt Novells DPMS uerst hnlich, in Wahrheit enthlt der
   CLOAKING-Treiber (undokumentiert) selbst einen 'Cloaked DPMS-Server',
   d.h. das CLOAKING-API ist eine Obermenge von Novells DPMS-Standard!!!
   Obwohl laut Logitech offiziell nicht untersttzt, arbeitet CLOAKING
   natrlich nicht nur deswegen in praktisch allen Konfigurationen (mit
   /MULTI=on) einwandfrei mit Novells Speichermanagern zusammen (getestet
   mit Update 15, lediglich der TASKMGR strzte bei mir immer ab, sobald
   CLOAKING geladen war :-( ). Weitere Hinweise zu CLOAKING und DPMS finden
   sich in Kapitel II.5. bei DPMS.

                                                                             
  ###########################################################################
  ###########################################################################

  IX. LITERATUR:
  ==============

  ---------------------------------------------------------------------------

  IX.1. Novell DOS 7 Handbuch:
  ============================

   Autoren  : nicht bekannt (Novell)
              (bersetzung des DR DOS 6.0 Handbuchs: Monika Frst, BD)
   Sonstiges: DOSBOOK

   Gute Einfhrung in Novell DOS 7 (auch einige didaktische Hinweise fr
   Anfnger, allerdings war hier das DR DOS 6 Handbuch ausfhrlicher),
   enthlt aber leider nicht die komplette Dokumentation des Systems. An
   vielen Stellen wird auf die wesentlich ausfhrlichere Online-Hilfe
   DOSBOOK verwiesen. Diese Idee des elektronischen Handbuchs ist eigentlich
   auch ganz praktisch, allerdings ist das DOSBOOK nicht ganz frei von
   kleinen Fehlern und fehlerhaften Verknpfungen, die sich leider wegen
   der komprimierten Form des Buches nicht selbst korrigieren lassen.
   Auf einer Novell DOS 7 CD-ROM (BHV-Verlag) soll allerdings eine Text-
   Version des DOSBOOKs existieren, die damit die nachtrgliche Bearbeitung
   durch den Benutzer (Kommentare etc.) erlauben wrde (allerdings dann
   wieder nicht die Einbindung in DOSBOOK bietet...).


  ---------------------------------------------------------------------------

  IX.2. Das groe Buch zu Novell DOS 7 (Data Becker):
  ===================================================

   Autoren  : Klemens Mai, Dirk Larisch, H. Tronsdorf, M. Tronsdorf
   ISBN     : 3-8158-1030-2
   Sonstiges: 1. Auflage 1994, 1086 Seiten, 3,5" Diskette, DM 69,-

   Fr meine Begriffe die beste Fremddokumentation zu Novell DOS 7. Zwar
   enthlt auch dieses Buch einige kleinere Fehler, kann aber sowohl fr
   absolute Anfnger als auch fr DOS-Profis eine stndige Referenz neben
   dem DOSBOOK sein. Erlutert DOS-Grundlagen fr Anwender verstndlich
   und deckt - bis auf komplett ausgesparte undokumentierte Details und
   ganz spezielle Kniffe und Workarounds fr Freaks - eigentlich das ganze
   System (auch PNW) gebhrend ab. Viele Beispiele aus der Praxis und eine
   komplette Kommandobersicht. Viel Info, bersichtliches Layout.
   Wirkliche Problemflle, die auch DOS-Profis zum Verzweifeln bringen
   knnen, deckt dieses Buch allerdings auch nur am Rande ab (vielleicht zu
   viel verlangt von einem Buch). Beschrnkt sich auf offizielle Eigen-
   schaften des Systems, ist darin aber sehr gut.

   Der auf der Diskette enthaltene Bildschirmschoner BLACKOUT ist so
   unzureichend, da man ihn getrost vergessen kann (Ersatz z.B. durch
   den in den erweiterten Tastaturtreiber K3PLUS/FreeKEYB eingebauten
   Bildschirmschoner - zu beziehen ber mich). Die Oberflche TEMPEST 1.0
   erinnert leicht an VIEWMAX von DR DOS 6, bietet aber leider nicht eine
   direkte Untersttzung fr TASKMAX/TASKMGR. Ob dies in spteren Versionen
   nachgeholt wurde, ist mir nicht bekannt.

   An einer Stelle werden sogar die frhen Updates zu Novell DOS erwhnt
   (allerdings mittlerweile vllig veraltet), was aber darauf schlieen
   lt, da dieses Buch nicht ganz in der sonst blichen Eile produziert
   (am besten noch vor Erscheinen des Betriebssystems) publiziert wurde.

   Kostet offiziell DM 69,-, wurde aber nach dem Abgang von Novell DOS 7
   fr DM 10,- bis 20,- verrammscht (die sich in jedem Fall lohnen).


  ---------------------------------------------------------------------------

  IX.3. Novell DOS 7 - Das Kompendium (Markt & Technik):
  ======================================================

   Autoren  : Kai Hamann, Michael Kolberg
   ISBN     : 3-87791-556-6
   Sonstiges: 10/1994, 750 Seiten, 3,5" Diskette, DM 69,-

   Relativ gute Einfhrung in Novell DOS, deckt die wichtigsten Themen und
   alle Hauptbelange des Systems (auch PNW) aus Anwendersicht ab. Enthlt
   relativ wenig Fehler. Recht komplette Kommandobersicht und einiger-
   maen bersichtliches Layout. Spezialthemen (wie z.B. Codeseiten-
   Einrichtung) werden nicht behandelt bzw. nur auf das SETUP-Programm
   verwiesen.

   Enthlt in einem Anhang auch Tips und Tricks zu Workarounds und un-
   dokumentierten Eigenschaften des Systems. Diese Hinweise sind nicht
   immer korrekt, nicht vollstndig oder gelten nur fr frhe Versionen
   von Novell DOS. Trotzdem ist dieser Ansatz lobenswert, da durch Anwendung
   der Tips teilweise mehr aus dem System herausgeholt werden kann (fr
   Leser *dieser* Datei aber nichts Neues mehr). Besonders lobenswert ist,
   da dieses Buch anscheinend nicht in der sonst blichen Eile produziert
   wurde, sondern tatschlich einmal Praxiserfahrungen mit einer Final-
   Release (und Updates) eingeflossen sind.

   Die auf der Diskette mitgelieferten Treiber-Updates zu Novell DOS 7
   (06/1994) sind mittlerweile hoffnungslos veraltet. Zustzlich enthlt
   die Diskette auch noch einige andere NetWare-Updates, und einige Screen-
   shots von Novell DOS Utilities.

   Kostet offiziell DM 69,-, wurde aber zuletzt fr ca. DM 10,- bis 15,-
   verrammscht, die sich durchaus lohnen.


  ---------------------------------------------------------------------------

  IX.4. Novell DOS 7 und Personal NetWare (Addison Wesley): [96-05-29]
  ====================================================================

   Autoren  : Michael Gerding, Bjrn Kibbel
   ISBN     : 3-89319-758-3
   Sonstiges: 1. Auflage 1994, 919 Seiten, DM 79,-

   Dieses Buch aus der Reihe Software-Klassiker hat bei mir leider keinen so
   guten Eindruck hinterlassen.
   Obwohl das Buch im Prinzip - wie die beiden anderen Bcher auch - fast
   das gesamte System (auch PNW) aus Anwendersicht abdeckt, ist es von den
   Beispielen eher fr absolute Newcomer in DOS geeignet (Wer schon gewisse
   Erfahrungen mit DOS hat, kommt sich bei vielen Beispielen und 'wichtigen'
   Hinweisen teilweise eher hochgenommen vor). Trotzdem ist es fr mich
   fraglich, ob der absolute Newcomer hier das System in der didaktisch
   geeignetsten Form dargeboten bekommt. Die Suche nach detaillierten
   Informationen zu einem ganz speziellen Thema ist nahezu unmglich, da
   die Informationen im Rahmen der Einfhrung weit gestreut sind.
   Speziellere Themen wie z.B. Codeseitenuntersttzung fehlen komplett.
   Allerdings mu man den Autoren zugute halten, da der Ansatz hier im
   Vergleich zu vielen anderen Bchern etwas anders liegt: Die Autoren
   versuchen durch Einfhrungen in die PC-Welt (Geschichte, Hardware,
   Software, DOS allgemein, auch Windows-Einfhrung) eine Allround-
   Dokumentation fr PC-Newcomer zu bieten. Sie gehen auch auf die
   externe Version von PNW ein.

   Das Layout ist teilweise uerst unbersichtlich und verschwenderisch
   zugleich, auerdem enthlt dieses Buch wirklich eine extreme Anzahl
   von typographischen und sachlichen Fehlern. Vieles wurde anscheinend
   ohne berprfung von einem Buch ber MS-DOS kopiert, viele Parameter
   gelten fr MS-DOS (teilweise sogar nur fr ziemlich alte MS-DOS Ver-
   sionen), nicht fr Novell DOS. Die Kommandobersicht ist relativ un-
   vollstndig (verglichen mit den bersichten der anderen Bcher), die
   Parameter sind nicht alphabetisch sortiert.
   Enthlt auch einige Hinweise auf bei Novell DOS 7 neue oder undokumen-
   tierte Eigenschaften und veranlate mich nach der Suche von versteckten
   Features (leider kam dabei nichts Neues heraus), entsprechende Andeu-
   tungen im Buch galten also entweder fr Beta-Versionen von Novell DOS
   oder sind schlichtweg falsch.

   Aufgrund der Vielzahl der negativen Kritikpunkte (die wohl so ziemlich
   jedem Leser aufstoen werden, sobald er sie bemerkt), stellt sich die
   Frage, ob dieses Buch nicht eher ein unfertiges Manuskript war, das viel
   zu frh in Druck gegangen ist. Mein normalerweise recht positiver Ein-
   druck von diesem Verlag hat mich hier doch uerst arg enttuscht.

   Kostet offiziell DM 79,-, in Ausverkaufsaktionen fr ca. DM 20,- zu
   haben, die sich m.E. nach fr etwas erfahrene DOS-Benutzer nicht lohnen.


  ---------------------------------------------------------------------------

  IX.5. Novell DOS 7 - Networking, Multitasking, Systemoptimierung:
  ======(Addison-Wesley)==============================[97-01-14]===

   Autoren  : Frank Grieser, Andreas Winterer
   ISBN     : 3-89319-676-5
   Sonstiges: 1. Auflage 1994, 386 Seiten, DM 60,-

   Dieses vergleichsweise kompakte Buch beschftigt sich entsprechend seinem
   Titel im Gegensatz zu den anderen Bchern weniger mit den Einsteiger-
   problemen und setzt ein paar System- und Konfigurationskenntnisse voraus
   (aber nicht allzu viel).
   Die Zusammenstellung hat bei mir einen recht positiven Eindruck hinter-
   lassen, und ich denke, das Buch kann in der Praxis gute Dienste erweisen.
   Allerdings konnte ich in dem Buch und auf der beiliegenden Diskette -
   von BACKUP, RESTORE, HIBUFFERS= und einigen NET.EXE-Optionen abgesehen -
   keine Hinweise auf undokumentierte Systemeigenschaften und grere
   Fehlerkorrekturen bezglich Novells eigener Dokumentation entdecken,
   wie auf dem Rckdeckel spektakulr geworben wurde. Obwohl auch dieses
   Buch eine ganze Reihe Fehler enthlt (die dann allerdings im Novell-
   Handbuch meist genauso falsch beschrieben werden), enthielt das Buch
   gengend Novell DOS spezifische Hinweise, so da bei mir hier nicht
   der Eindruck eines bereilten 'Updates' eines MS-DOS Buches entstand.
   Die beiden auf der Diskette beiliegenden Hypertext-Online-Referenzen zu
   Novell DOS Kommandos und NET.EXE (von den Autoren entwickelt auf der
   Basis von Davids ReadMe-Compiler) haben mir - trotz der Fehler - gut
   gefallen und knnen das DOSBOOK in manchen Punkten ergnzen. Das Update 4
   zu Novell DOS, das ebenfalls mitgeliefert wird, ist natrlich hoffnungs-
   los veraltet...

   Ich konnte das Werk krzlich als Restposten fr ganze DM 5,- ergattern,
   die sicherlich lohnen, denn auch fr Leser dieser Datei sind darin
   noch einige neue Tips, wenn auch keine neuen undokumentierten Details
   enthalten.


  ---------------------------------------------------------------------------

  IX.6. Undocumented DOS (Addison Wesley):
  ========================================

   Autoren  : Andrew Schulman, Ralf Brown, David Maxey, Raymond J. Michels,
              Jim Kyle
   ISBN     : 0-201-63287-X
   Sonstiges: 2. Auflage, US $44.95, ca. DM 118,-, 856 Seiten, 3,5" Diskette

   Kein Buch fr Anwender, stattdessen ein absolutes Mu fr ernsthafte DOS-
   und Windows-Programmierer. Die zweite Ausgabe enthlt auch erste Hinweise
   zu Novell DOS 7 Features (war noch im Beta-Stadium), obwohl hauptschlich
   MS-DOS Interna beschrieben werden (die aber fast komplett auch fr
   Novell DOS 7 gelten). Sehr gut geschrieben, deckt viele Zusammenhnge
   uerst plastisch auf. Leicht verstndliches Englisch.
   Viele Details der ersten Ausgabe sind in das leider mittlerweile
   vergriffene, aber nach wie vor uerst empfehlenswerte Buch 'DOS 5 fr
   Programmierer - Die endgltige Referenz' von Arne Schpers eingeflossen
   (der auch ausfhrlich auf DR DOS 3.41 und 5.0 eingeht), die zweite
   Ausgabe von 'Undocumented DOS' enthlt aber wiederum viele Informationen
   aus diesem Buch bezglich der DR DOS Spezifika. Neben einer Vielzahl
   sinnvoller Programmiertools ist auf der Diskette die Interrupt-Liste
   von Ralf Brown enthalten, die aber mittlerweile in einer erheblich ver-
   besserten und erweiterten Form ber das Internet zu beziehen ist (siehe
   Bezugshinweis am Beginn dieses Dokuments).

   Wie gesagt, fr Anwender vllig ungeeignet, fr Programmierer ein Mu.


  ---------------------------------------------------------------------------

  IX.7. DOS 5 fr Programmierer - Die endgltige Referenz (Addison Wesley):
  ============================================================[97-01-03]===

   Autor    : Arne Schpers
   ISBN     : 3-89319-350-2
   Sonstiges: 1. Nachdruck 1991, DM 99,-, 1123 Seiten, 360 KByte 5.25" Disk

   Ebenfalls ein Buch 'for programmers only'. Auch wenn mittlerweile reich-
   lich betagt (nach meinem Kenntnisstand ist auch keine Neuauflage mehr
   zu erwarten (Wer interessiert sich schon noch fr DOS??? Na, Sie - wenn
   Sie tatschlich dieses Dokument bis hierhin durchgelesen haben! ;-) ),
   bleibt dieses Buch auch neben der 2. Auflage von Undocumented DOS ein
   essentieller Fundus fr DOS-Interna, der ausfhrlich auf MS-DOS bis 5.0
   und DR DOS 3.41 und 5.0 eingeht. Da vieles - wenn auch lange nicht
   alles - DR DOS-Spezifische auch fr Novell DOS 7 gilt, sehr empfehlens-
   wert. Allerdings enthlt auch dieses Buch einige massive sachliche Fehler
   oder Fehlschlsse (nun, wer im Glashaus sitzt, sollte nicht mit Steinen
   werfen, sorry ;-) ), aber die Unzahl von Beispielprogrammen zu allen
   DOS-Funktionen entschdigen wirklich mehr als gut dafr!
   Als Restposten teilweise fr gut angelegte DM 15,- zu ergattern.

                                                                             
  ---------------------------------------------------------------------------

  IX.8. Weitere Literatur: [97-02-26]
  ===================================

   Bemerkung: Der Vollstndigkeit halber eine einfache Auflistung...
              Da mir die Mehrzahl der Bcher nicht vorliegt, meist
              ohne irgendeine Wertung...

   - "Einsteigerseminar - Novell DOS 7"
     bhv, 1994, 427 Seiten, DM 20,-
     ISBN 3-89360-735-8

   - "Novell DOS 7" (H. Mehlig, J. Waermann)
     Rowohlt, 1994, 430 Seiten, DM 23,-
     ISBN 3-499-19814-2

   - "Novell DOS 7 und Personal NetWare optimal einsetzen"
     (B. Kibbel, B. Kretschmer, Herausgeber: Haselier???, Fahnenstich)
     Econ & Addison-Wesley, 1994, 363 Seiten, DM 20,-
     ISBN 3-612-28047-3
     Bemerkung: Wirkt teilweise wie eine Kurzfassung des Buches aus IX.4.
                und enthlt genauso falsche Informationen ber angebliche
                Aufrufoptionen bestimmter Novell DOS 7 Tools (ein paar
                Beispiele FASTOPEN, NWCACHE etc.), die eigentlich eher fr
                MS-DOS gelten.

   - "Novell DOS 7 Unleashed" (Jonathan Kamin)
     Sams, 03/1994, 808 Seiten + 3,5" Disk, DM 95,- / f 79,- / $ 40,-
     ISBN 0-672-30328-0
     Bemerkung: Englischsprachiges Buch ber die US-Version von Novell DOS

   - "Using Novell DOS 7" (King, Harper, Langley)
     Que Corp., 1994, 841 Seiten, f 65,-, $ 30,-
     ISBN 1-56529-104-2
     Bemerkung: Englischsprachiges Buch ber die US-Version von Novell DOS

   - "Inside Personal NetWare" (Dorothy Cady)
     NRP, 1994, $ 25,-, DM 70,-
     ISBN 1-56205-232-2
     Bemerkung: Englischsprachiges Buch ber die US-Version von Personal
                NetWare in Verbindung mit Novell DOS 7, DR DOS, MS-DOS
                Windows und OS/2 mit einem eindeutigen Schwerpunkt auf der
                recht detaillierten Beschreibung von Personal NetWare.
                Beschreibt auch viele Praxislsungen.

  - "Novell DOS 7: Memory Management, Multi-Tasking, Networking,
     and Data Protection" (Brian Underdahl)
     John Wiley & Sons, 12/1993, $ 23,-, 326 pages
     ISBN 0-471-01629-2

   - "Bright Books: Novell DOS versie 7"
     Addison Wesley NL, 1994, f 15,-
     ISBN 90.6789-467.2
     Bemerkung: In niederlndischer Sprache

   - "Novell DOS 7 Handboek" (van Bedem)
     Addison Wesley NL, 1994, f 60,-
     ISBN 90.6789-400.1
     Bemerkung: In niederlndischer Sprache

   - "Werken met Novell DOS 7" (de Jong)
     Sybex Nederland, 1993, f 70,-
     ISBN 90.5160-633.8
     Bemerkung: Dieses niederlndische Buch behandelt angeblich auch
                Windows NT???

   - "Das groe DR DOS 6.0 Buch" (H. Tornsdorf, M. Tornsdorf)
     Data Becker, 1991, 1003 Seiten, DM 59,-
     ISBN 3-89011-510-1
     Bemerkung: Der Vorlufer von "Das groe Buch zu Novell DOS 7" (siehe
                IX.2.) enthielt eine Reihe Hinweise zu DR DOS 6.0, die zwar
                auch noch fr Novell DOS 7 interessant sind, im Nachfolge-
                band aber - wohl aus Platzgrnden - nicht bercksichtigt
                wurden. Enthlt auch einige kleinere Fehler.


   Das folgende englische Buch war angekndigt, wurde aber offenbar nie
   verffentlicht:

   - "Novell DOS 7: Instant Reference", evtl. auch
     "Novell's Guide to Novell DOS 7.0"
     Novell Press/Sybex, 08/1995, $30,-
     ISBN 0782114075
     Bemerkung: Wahrscheinlich sollte es sich hierbei um eine gedruckte
                Fassung der oben erwhnten Tutorials zu Novell DOS 7
                handeln.

                                                                             
  ---------------------------------------------------------------------------

  IX.9. c't/iX Artikel: [97-02-12]
  ================================

   Autoren  : div.
   Sonstiges: c't - magazin fr computertechnik, Heise Verlag, Hannover

   Dieser berblick soll nur stichwortartig die mir bekannten c't-Artikel
   zum Thema 'Novell DOS' (und Vorgngern) behandeln, und erhebt alles
   andere als den Anspruch auf Vollstndigkeit. Trotzdem mchte ich noch
   einmal darauf hinweisen, da die in diesem Dokument wiedergegebenen
   Fakten nicht auf den genannten Artikeln basieren, sondern auf meinen
   eigenen Erfahrungen. Natrlich habe ich die Informationen - wo immer
   mglich - gegeneinander abgeglichen.

   - "Taskdynamik"
     DESQview und Concurrent DOS unter Novell (Detlef Borchers)
     iX 04/1989, S. 40
     Stichworte: DR Concurrent DOS, 'review'

   - "Sptlese"
     Digital Researchs MS-DOS-Alternative (Marcus Grber, Bert Ungerer)
     c't 03/1990, S. 172
     Stichworte: 'review', DR DOS 3.41

   - "Neues altes DOS"
     DR-DOS 5.0 steht vor der Markteinfhrung (Bert Ungerer)
     c't 07/1990, S. 31

   - "Raum fr DOS"
     Vier virtuelle Speichermanager fr 386er (Dr. Reinhard Ellinghaus)
     c't 12/1990, S. 130
     Stichworte: EMS, 386ToTheMAX, BlueMax, QEMM-386, DR-DOS 5.0, Turbo EMS

   - "Belebende Konkurrenz"
     DR DOS 6.0 mit neuen Features (Bert Ungerer)
     c't 10/1991, S. 25
     Stichworte: 'aktuell'

   - "DOS to the max"
     DR DOS 6.0 mit vielen Utilities (Marcus Grber)
     c't 11/1991, S. 96
     Stichworte: 'review'

   - "Die Alternativen"
     PC-Betriebssysteme neben dem Standard (Detlef Borchers)
     c't 06/1992, S. 58
     Stichworte: Prologue, Theos, L3, PC-MOS, Multiuser-DOS, DESQview

   - "Verstohlene Seitenblicke"
     Der Interrupt 21h beim DOS-Bootvorgang (Harald Milz)
     c't 07/1992, S. 198
     Stichworte: TSR-Programme & Gertetreiber, CONFIG.SYS, Booten,
                 DRDOS, PCDOS, MSDOS

   - "Just in Time"
     Echtzeit-Betriebssysteme, Teil 2: Marktreport (Arno Keppke)
     c't 09/1992, S. 202
     Stichworte: u.a. FlexOS

   - "Leichtnetz mit Anhang"
     Netware Lite v1.1 im Paket mit DR DOS (Bert Ungerer)
     c't 12/1992, S. 124f.
     Stichworte: DR DOS 6.0, Netware Lite, Novell, 'kurz vorgestellt'

   - "Die wahre DOS-Version"
     DOS-Versionsermittlung im Detail (Matthias Wolf)
     c't 02/1993, S. 106
     Stichwort: reale DR DOS Versionen

   - "Knackpunkt"
     PCs contra Datensicherheit: Das Beispiel DR DOS (Mark Torben Rudolph)
     c't 03/1993, S. 130ff.
     Stichworte: DEL, FORMAT, PASSWORD, LOGIN, UNDELETE, DISKMAP, DELWATCH,
                 DELPURGE, LOCK, COMPRESS, SuperStor, DR DOS 6.0

   - "Ableger im Aufwind"
     Frankfurter NetWorld findet Anklang (Bert Ungerer)
     c't 07/1993, S.20
     Stichworte: Novell DOS 7 Ankndigung, 'aktuell'

   - "Netz-DOS"
     Novell DOS 7 kurz vor der Fertigstellung (Bert Ungerer)
     c't 09/1993, S. 30f.
     Stichworte: Beta, Multitasking, 'aktuell'

   - "DOS novellieren?"
     Novell DOS 7 fordert PC- und MS-DOS heraus (Bert Ungerer)
     c't 03/1994, S. 74ff.
     Stichworte: PC-DOS 6.1, MS-DOS 6.20, PNW, STACKER, DBLSPACE, SuperStor,
                 'report'
     Bemerkung:  Interessanter Vergleich der Funktionalitt der drei
                 zu diesem Zeitpunkt aktuellen DOS Betriebssysteme. Das
                 Fazit ist ziemlich eindeutig...

   - "Ziffernlifting"
     IBMs PC-DOS 6.3: Fast alles beim alten (Bert Ungerer)
     c't 04/1994, S. 28
     Stichworte: Novell DOS 7, PC-DOS 6.3, MS-DOS 6.21 und 6.22, CeBIT,
                 'aktuell'

   - "Natrlich undokumentiert"
     Novells Personal Netware unter OS/2 (Dieter Brors)
     c't 07/1994, S. 176f.
     Stichworte: IBM OS/2 2.11, PNW, Peer-to-Peer, HPFS, DPMS, NWCACHE,
                 DOS-Box, NET.CFG: Netware DOS Requester OS2=on
     Bemerkung:  Da ich diesbezglich noch keine Erfahrungen gesammelt habe,
                 verweise ich fr Novell DOS 7 & PNW unter OS/2 auf diesen
                 Artikel, der sich allerdings mit dem mittlerweile
                 veralteten OS/2 2.11 beschftigt. Weitere Hinweise zu
                 Novell DOS 7 unter/mit OS/2 gibt es auch in den Dokumenten
                 von Novells FaxBack-Systems, das zusammengefat auch in
                 dem am Anfang erwhnten Archiv ND7TID.EXE verfgbar ist.

   - "Licht und Schatten"
     Ein kritischer Blick auf Novell DOS 7 (Arne Schpers)
     c't 08/1994, S. 193ff.
     Stichworte: DPMI, DPMS, bertragungsraten, Windows, Updates, APIs,
                 Undokumentiertes, DR DOS, Probleme, DBLSPACE
     Bemerkung:  Die allermeisten der in diesem Artikel beschriebene Pro-
                 bleme (Update 4) gehren mittlerweile (Update 15) der
                 Vergangenheit an; Novell war trotz eingestellter Weiter-
                 entwicklung in den vergangenen 1,5 Jahren nicht unttig...
                 Trotzdem ist die Lektre (wie die meisten Artikel und
                 Bcher von Arne Schpers) interessant.

   - "Watteweicher Kompromi"
     Microsoft einigt sich mit Kartellbehrden (Ingo T. Storm, Sabine Dutz)
     c't 09/1994, S. 16

   - "Fertigserver"
     Zeniths Z-Stor mit vorkonfigurierter Personal NetWare (Bert Ungerer)
     c't 09/1994, S. 72

   - "Virtuelle Einrichtung"
     Konfigurationstips fr Novells DOS-Requester (Bert Ungerer)
     c't 09/1994, S. 194
     Stichworte: Netze, VLMs, Novell DOS 7, NET.CFG, LAN, Personal NetWare

   - "Novell kippt DOS 7"
     Netz-Marktfhrer konzentriert Aktivitten (Ralf Hskes)
     c't 11/1994, S. 16
     Stichworte: Novell DOS 7 & Personal Edition UnixWare eingestellt,
                 AppWare und WordPerfect, Super NOS, NetWorld+InterOp,
                 'Markt'
     Bemerkung:  No comment!

   - "Vobis und Escom setzen auf OS/2"
     MS Windows gibt es nur noch gegen Aufpreis (Christian Persson)
     c't 12/1994, S. 16
     Stichworte: OS/2 3.0 Warp, Microsoft Chicago/Windows95, Novell DOS 7
     Bemerkung:  Hat zwar nicht lange funktioniert (die Mark siegt), hat
                 aber mal wieder die Grundproblematik mit Microsoft als
                 Software-Monopolisten deutlich vor Augen gefhrt. Ohne
                 'Abweichler' wird die Lage bestimmt nicht besser...

   - "Novell DOS lhmt CD-ROM"
     c't 06/1995, S. 244
     Stichworte: MS-DOS 6.2, CD-ROM, MSCDEX, NWCDEX, SMARTDRV, NWCACHE,
                 'Hotline'

   - "Misch-DOS"
     IBM PC-DOS profitiert von Novell DOS (Alexander Hoch)
     c't 09/1995, S. 210f.
     Stichworte: PC-DOS 7.0, Novell DOS 7, DPMS, STACKER, NWCACHE, NWCDEX

   - Nachtrag zu "Misch-DOS"
     c't 10/1995, S. 11
     Stichworte: NWCACHE, Update 14, 'Ergnzungen + Berichtigungen'

   - "Windows95: altes DOS fr neues Windows" (Peter Siering)
     c't 05/1996, S. 284f.
     Stichworte: Beschreibt das genderte Boot-Verhalten von MS-DOS 7 und
                 wie man unter Windows95 ein altes MS-DOS/PC-DOS bootfhig
                 macht und, da dieses mit Novell DOS 7 nicht funktioniert
                 (wre bei Microsoft ja auch nicht anders zu erwarten ge-
                 wesen). [Mit einigen kleinen Patches mte es meiner
                 Meinung nach trotzdem funktionieren, allerdings tut's ja
                 auch der OS/2- oder PTS/Boot-Manager], 'Hotline'

   - "Frontal gegen Microsoft"
     DR-DOS-Kufer reicht Antitrust-Klage ein (Christian Persson)
     c't 09/1996, S. 16
     Stichworte: bernahme von Novells "DR DOS" durch Caldera Inc.,
                 Raymond J. Noorda, Bryan Sparks, Antitrust-Klage

   - "Laokoons Enkel"
     Windows NT 4.0 und die Konkurrenz im Netzwerk (Jrgen Kuri)
     c't 09/1996, S. 148ff.
     Stichworte: PNW
     Bemerkung:  Geht am Rande auf Novells Politik der letzten Jahre ein.
                 Hat nicht direkt etwas mit Novell DOS zu tun.

   - "Der Kolo von Provo"
     Windows NT versus Novell NetWare (Axel Kossel)
     c't 09/1996, S. 160
     Bemerkung: Geht auf Novells Stellung im Markt ein. Hat nicht direkt
                etwas mit Novell DOS zu tun.

   - "Anschlu gesucht"
     30 PCI-SCSI-Hostadapter im Vergleich (Georg Schnurer)
     c't 09/1996, S. 218ff.
     Bemerkung: Beschreibt, da die EMM386-Speichermanager von "DR-DOS 7.x"
                (und PC-DOS 7) im Gegensatz zu MS-DOS bis 6.21 keine Pro-
                bleme mit dem PCI-Bus (bei Speicher-Ressouren oberhalb des
                ersten MegaByte) hatten (in Wahrheit hatten selbst einige
                Versionen von 6.22 noch Probleme mit PCI-Boards, erst der
                Treiber aus MS-DOS 7 half hier).

   - "Dschungelbuch"
     Novell stellt IntranetWare vor (Jrgen Kuri)
     c't 11/1996, S. 98ff.

   - "Des Kaisers neue Kleider"
     Novell sucht Antworten auf die Fragen nach der Zukunft von NetWare
     (Detlef Borchers)
     c't 03/1997, S. 48ff.
     Bemerkung: Beschreibt u.a. die Einfhrung von IntranetWare FSB (for
                Small Business), das als Nachfolger von Personal NetWare 1.0
                und NetWare 3.xx angesehen werden kann. Fr Personal
                NetWare, NetWare, Novell DOS u.a. gibt es relativ gnstige
                Upgrades. Auerdem gibt der Artikel ein paar Hintergrund-
                infos ber die ra Raymond Noorda und Novells neuen Kurs.

                                                                             
  ---------------------------------------------------------------------------

  IX.10. Andere Zeitschriftenartikel: [96-09-04]
  ==============================================

   [Weitere, hier noch nicht verzeichnete Artikel zum Thema sind, z.B. in
   Form einer Kopie, sehr willkommen.]

   - "Neue DOS-Betriebssysteme"
     Markt, Macht und Betriebssysteme - Novell DOS 7.0 contra MS-DOS 6.2
     DOS 03/1994, S. 130ff.
     Stichworte: Multitasking, Netz, DPMS, Windows
     Bemerkung:  Interessanterweise stimmt das Fazit haargenau mit dem aus
                 c't 03/1994 berein...

   - "66 Tips fr Novell DOS" (Kai Hamann, Michael Kolberg)
     Computer Persnlich, 06/1994
     Bemerkung: Ein Abdruck dieser Tips wurde auch mit IX.3. publiziert.

   - "Novell DOS 7: Is It Time to Switch?" (Steve Kalman)
     Unbekanntes Computermagazin??? 03-04/1994, S. 32-35

   - "Novell: Kapitulation vor der Windows-Dominanz"
     PC-Welt, 11/1994, S. 14
     Rubrik    : Aktuell; Windows, DOS und OS/2
     Stichworte: "The war is over". Novell Mitarbeiter finden DOS nur noch
                 fr PDA (persnliche digitale Assistenten) attraktiv...

   - "Novell DOS - bereifriger Cache"
     PC-Welt, 11/1994, S. 31
     Stichworte: Beschreibt den Schnheitsfehler in der Statistik von
                 NWCACHE /S, wenn "VERIFY on" ist. Wurde mit einem Update
                 behoben.

   - "Wegen Windows: Novell DOS stirbt"
     PC-Welt, 11/1994, S. 55f.
     Rubrik    : Aktuell; Vorstellung Software
     Stichworte: Ab sofort Schmusekurs mit Microsoft; zu diesem Zeitpunkt
                 allein in Deutschland 700.000 verkaufte Novell DOS 7
                 Lizenzen
     Bemerkung : (das war noch vor dem groen Preisrutsch...).

   - "Peer-to-Peer Netz: Mini-Netz mit alten Rechnern (mit Novell DOS 7)"
     PC-Welt, 12/1994, S. 315f.
     Bemerkung : Beschreibt grob die Einrichtung eines PNW-Netzes.

                                                                             
  ---------------------------------------------------------------------------

  IX.11. Interessante Web-Sites bezglich Novell DOS: [97-04-21]
  ==============================================================

   [Weitere Web-Sites bezglich Novell DOS und Caldera OpenDOS finden
   sich in Kapitel I.]

   - "Novell DOS - Erste Erfahrungen" (Willibald Klein)
     URL: http://www.rz.uni-sb.de/rzinfo19/novell.html
     WWW-Artikel aus dem Magazin RZ-Info 19 (1994) der Stelle fr
     ffentlichkeitsarbeit der Uni des Saarlandes; entspricht
     weitestgehend meinen Erfahrungen. [05/1996]

   - "Pflege eines PNW-Servers" (Willibald Klein, Bernhard Stumpf)
     URL: http://www.rz.uni-sb.de/rzinfo20/rz20s491.html
     WWW-Artikel aus dem Magazin RZ-Info 20 (1994) der Stelle fr
     ffentlichkeitsarbeit der Uni des Saarlandes. [10/1996]

   - "Multitasking and Networking build into Novell DOS 7" (Scott Fletcher)
     URL: http://tcp.ca/May/NovellDOS7.html
     WWW-Artikel, entspricht weitestgehend meinen Erfahrungen. [05/1996]

   - "Novells Newest DOS" (Terje Mathisen)
     URL: http://www.byte.com/art/9406/sec9/art7.htm
     WWW-Dokument entspricht dem BYTE-Artikel 06/1994 in der Rubrik "Review"
     und beschreibt eine Reihe der positiven und negativen Erfahrungen mit
     einer - seltsamerweise trotz des Datums - offenbar sehr frhen US-
     Ausgabe von Novell DOS 7 (wohl fast noch Beta-Stadium). [10/1996]

   - "Voyager - Novell DOS 7" (Alexander Walz)
     URL: http://www-users.informatik.rwth-aachen.de/~afw/nwdos7.html
     Zusammenfassender WWW-Artikel ber Geschichte und Funktionsumfang von
     DR DOS und Novell DOS. [10/1996]
     Ist derzeit nicht mehr im Angebot... [02/1997]

   - "Digital Research - The untold story: The story behind the story"
     URL: http://www.ctyme.com/dri.html
     "The 07-21-91 Summary: How the Novell buyout of Digital Research
     started"
     URL: http://www.ctyme.com/dri1.html
     "The NovOS spec: The original written proposal of NovOS to Novell"
     URL: http://www.ctyme.com/dri2.html
     "Letters to Ray Noorda about NovOS"
     URL: http://www.ctyme.com/dri3.html
     (Marc Perkel, Computer Tyme)

     Verschiedene interessante Dokumente eines hemmungslosen Visionrs
     ber die Hintergrnde zu Novells Aufkauf von Digital Research
     (1991) und ber das, was aus "Novell DOS" noch alles htte werden
     knnen...
     Marc Perkel nimmt darin fr sich in Anspruch, Novell von der Idee
     einer ob seiner Features, Flexibilitt und Zukunftssicherheit
     konkurrenzlosen Alternative zu MS-DOS, MS Windows usw. begeistert
     zu haben und die erste Spezifikation dafr geliefert zu haben. Von
     Digital Researchs DR DOS als Grundlage fr dieses "NovOS" war dabei
     zunchst gar nicht die Rede...
     Im weiterem Verlauf der Dinge sei er dann von Novell regelrecht
     'ausgebootet' worden, was wohl auch der Beweggrund fr die Ver-
     ffentlichung dieser Seiten war.
     Gleichzeitig drfte dies auch eine der Quellen fr die lange Zeit
     anhaltenden Gerchte gewesen sein, da Novell ein eigenes Super-
     Betriebssystem mit GUI etc. entwickeln wollte (aber wohl auch
     vom 'Corsair'-Projekt und X/GEM angeheizt). [06/1996]
     Vielleicht sind einige der besonders spitzen Bemerkungen mit der
     bernahme von DR DOS durch Caldera berholt, aber urteilen Sie
     selbst... [08/1996]
     Mittlerweile sind diese provokaten Seiten leider wieder von
     Internet verschwunden (vermutlich hat auch Marc Perkel die
     jngsten Entwicklungen positiv eingeschtzt); an den Hintergrnden
     besonders Interessierte knnen die Dateien auf Anfrage aber auch
     noch von mir beziehen. [10/1996]

   - "Concurrent Control, Inc. - Multiuser DOS 7 Gold"
     URL: http://www.conctrls.com/gold.htm
     URL: http://www.conctrls.com/f-why.htm
     Diese Firma - ein ehemaliger Master VAR von DR Multiuser DOS -
     vertreibt nach wie vor Multiuser DOS 7 Gold und CCI Concurrent DOS,
     die auf DR Concurrent DOS und DR Multiuser DOS basieren. Derzeit
     wird eine am 1997-02-10 freigegebene kostenlose Demo-Version von
     Multiuser DOS 7.22 Gold zum Download angeboten. Interessanterweise
     gehen dabei einige Novell-Copyrights bis ins Jahr 1996. [03/1997]

   - "Logan Industries, Inc."
     URL: http://www.lii.com/
     Diese Firma vertreibt in den USA das Echtzeit-System IMS REAL/32 (seit
     der Version 7.50+ der neue Name fr das ehemalige IMS Multiuser DOS)
     des englischen Entwicklers IMS, ebenfalls ein Abkmmling der alten
     DR Multiuser DOS Linie. Offenbar basiert das System zum Teil auch auf
     Quellen frher Novell DOS-Ausgaben, etwa ist der IMSCDEX.EXE Treiber
     ein Abkmmling des NWCDEX.EXE v1.00. Interessant ist, da das als
     uerst stabil angesehene Multitasking-/Multiuser-System in der Lage
     ist, neben normalen DOS-, DR DOS- und Multiuser DOS- alias CP/M-86-
     Anwendungen auch mehrere Sessions von Windows 3.xx gleichzeitig zu
     fahren, bei voller Anbindung an diverse Netze, wie z.B. NetWare und
     Abkmmlinge des alten DR Net. [03/1997]

   - "Microsoft faces antitrust suit over DR DOS"
     URL: http://biz.yahoo.com/bin/jump?/finance/96/07/24/msft_2.html
     URL: http://www.online.reuters.com/.../jump
     Reuters [08/1996]

   - "Microsoft hit with antitrust suit" (Mike Ricciuti, 1996-07-24)
     URL: http://www.cnet.com/Content/News/Files/???/cnet.clp
     CNET Inc. [08/1996]

   - "Noorda's new company acquires DR-DOS, sues Microsoft"
     (Maria Seminerio & Charles Cooper)
     URL: http://www.pcweek.com/news/0722/24esuit.html
     URL: http://www.zdnet.com/plweb-cgi/pcweek/.../24esuit.html
     PC WEEK, Ziff Davis Publishing [08/1996]

   - Web-Server der Caldera Inc., Provo, Utah  [08/1996-05/1997]
     URL: http://www.caldera.com/
     URL: http://www.caldera.com/dos/
     URL: http://www.caldera.co.uk/
     URL: http://caldera.co.uk/

     Der Web-Server der Caldera Inc. ist insofern sehr interessant fr
     Novell DOS 7 Benutzer, als da Caldera in 07/1996 alle Rechte an
     der ehemaligen Digital Research Betriebssystempalette von Novell
     bernommen hat, u.a. zu dem Zweck, das Betriebssystem DR DOS (alias
     Novell DOS) inklusive Personal NetWare, jedoch um Internet-Fhig-
     keiten, TCP/IP und eventuell sogar ein GUI bereichert unter dem Namen
     Caldera OpenDOS wieder auf den Markt zu bringen. Die englische Fassung
     von Caldera OpenDOS 7.01 ist am 1997-02-03 freigegeben worden und
     kann - fr Ausbildungssttten, Studenten und Schler kostenlos - auf
     Calderas Web-Server bezogen werden kann. Allerdings entspricht diese
     Fassung zu noch fast 100% dem Novell DOS 7, siehe Kapitel I.5.

     Der Name ist auch gleich Programm, denn Caldera begann am 1997-04-21
     mit der Pre-Release der Quellen des Caldera OpenDOS 7.01 Kernels
     damit, nach und nach die Quelltexte von OpenDOS und natrlich
     auch der Betriebssysteme CP/M, DOSPlus, DR DOS, DR PalmDOS,
     DR Concurrent DOS, DR Multiuser DOS und Novell DOS (von GEM war
     in diesem Zusammenhang bislang nicht die Rede) im Internet ffentlich
     zugnglich machen (abgesehen von den Quelltexten der Zukufe), um so
     einer breiten Masse ein fundiertes, sicheres Betriebssystem-KnowHow
     zu vermitteln und dadurch der weiteren Entwicklung von DOS-Programmen
     eine solide Basis zu verschaffen (keine undokumentierten Details mehr;
     nach dem alten Unix-Motto "Look at the sources, lurker!" ist die
     bestmgliche Dokumentation der Quelltext).
     Natrlich bleiben die Quelltexte auch weiterhin unter dem Copyright von
     Caldera (ein wesentlicher Unterschied zu FreeDOS oder Linux, die unter
     der GPL, der "GNU General Public License" stehen), knnen aber fr
     eigene kommerzielle Produkte lizensiert werden. Caldera will auch
     mit dem FreeDOS-Team zusammenarbeiten.
     Da dieses fortschrittliche Konzept funktionieren kann, zeigt die
     Entwicklung des FreeWare-Unix Linux, fr das Caldera ihren CND (jetzt
     COL) anbieten, nur zu gut. Bleibt zu hoffen, da das Beispiel Schule
     macht und eine generelle Trendwende in der Betriebssystementwicklung
     einleitet.

     Der DOS-Markt ist zwar kein zukunftsorientierter Massenmarkt mehr
     (zumindest nicht bezglich der 'Innovationsfreude' bei den bisherigen
     DOS-Versionen), eine kleine Firma wie Caldera knnte aber auch in
     Zukunft ganz gut davon leben, wenn erst einmal alle anderen DOS-
     Hersteller ihre Entwicklung endgltig eingestellt haben (Microsoft
     drfte kein Interesse mehr an einer Weiterentwicklung von MS-DOS
     haben; und wenn, dann ist es *jetzt* zu spt; sie werden wohl kaum
     die Quellen von MS-DOS & MS Windows zur freien Verfgung stellen).
     Anbetracht der Langlebigkeit lngst totgesagter Betriebssysteme
     (man vergegenwrtige sich beispielsweise einmal das starke Echo in
     CP/M-Newsgroups!!!) und der bei Weitem nicht 'so' weit (wie oft
     pauschal angenommenen) fortgeschrittenen globalen Durchdringung der
     Gesellschaft mit Computern neuster Bauart (siehe Ost-Europa, Mittel-
     Asien und Afrika) knnte sich bei weltweitem Vertrieb aus dem
     horizontalen DOS-Markt ein lukrativer vertikaler Nischenmarkt auftun,
     in dem durchaus noch langfristig Innovation mglich ist. Die Nhe zu
     Unix (Linux) ist dabei nur eine mgliche Entwicklungsrichtung.
     In jedem Fall hat eine Fortentwicklung von DOS und die *sinnvolle*
     Einbettung in moderne Betriebssystemkonzepte den unschlagbaren Vorteil,
     da das geistige Potential und der Erfahrungsschatz von vielen tausend
     DOS-Profis und die Investitionen von Millionen DOS-Benutzern nicht
     pltzlich wertlos werden (sog. Migration Path).

     Zu Ihrer Information habe ich diesem Archiv ein besonders interes-
     santes Dokument von Calderas Web-Server beigefgt (OPENDOS.ANN), da
     es recht klar die Philosophie hinter dieser Idee darlegt und vielleicht
     sogar einmal 'historisch' gewisse Bedeutung bekommt. Ein Ansatz, den
     zumindest ich mir schon seit Jahren sehnlichst gewnscht habe...

     Der Server enthlt ausfhrliche Infos bezglich Calderas wiederauf-
     gerollter Antitrust-Klage gegen Microsoft als Monopolisten, sowie
     diesbezgliche Pressemitteilungen und besttigt viele der Fakten,
     die ich auch aus vielen anderen Quellen erfahren habe und die sich -
     was Betriebssystem-Interna angeht - auch mit meinen persnlichen
     Erfahrungen decken.


  ###########################################################################
  ###########################################################################
