home *** CD-ROM | disk | FTP | other *** search
/ TopWare Tools / TOOLS.iso / tools / top1631 / addfiles.doc < prev    next >
Encoding:
Text File  |  1993-11-03  |  8.8 KB  |  199 lines

  1. Dokumentation zu ADDFILES                                            Seite 1
  2. ────────────────────────────────────────────────────────────────────────────
  3.  
  4.  
  5.  
  6.  Programm-Name:   ADDFILES.COM
  7.  
  8.  Version:         1.28
  9.  
  10.  Funktion:        Nachträgliches Verlängern und Verkürzen der System-
  11.                   Dateien-Liste  (= SDL oder SFT = System-File-Table)
  12.                   d.h.  verändern  des Wertes FILES=nn aus der  Datei
  13.                   CONFIG.SYS ohne Neubooten des Systems
  14.  
  15.  Autor:           Bernd Schemmer
  16.                   Bäckerweg 48
  17.                   60316 Frankfurt/M. 
  18.                   Tel.: (069) 4 97 04 84
  19.  
  20.  System:          IBM-PC/AT/Kompatibler
  21.  Hardware:
  22.  Betriebs-System: DOS 3.3 oder höher
  23.  Sprache:         Assembler
  24.  Compiler:        A86
  25.  
  26.  Letzter Update:  03.11.1993
  27.  
  28.  Vertrieb:        Freeware
  29.  
  30.  Besonderheiten:  Benutzt
  31.                   - die undokumenierte Funktion 52h des Int 21h,
  32.                   - die undokumentierten MCBs
  33.                   und
  34.                   - die undokumentierte System-Datei-Liste
  35.  
  36.                   Nicht getestet  unter  DOS 4.xx  mit  Auslagerung von
  37.                   FILES=xx in EMS!!
  38.  
  39.                   ADDFILES läuft nicht  unter dem  Kommando-Interpreter
  40.                   4DOS Version 3 oder früher! 
  41.                   ADDFILES  läuft  nicht  unter  DR DOS 3.41 und in der
  42.                   DOS-Box von OS/2 (V1.3, V2.0 und V2.1).
  43.  
  44.                   Das Programm darf  auf keinen fall durch ein TSR-Ver-
  45.                   waltungsprogramm aus den Speicher ausgelagert werden,
  46.                   auch nicht ins EMS oder in Speicher oberhalb von 1 MB
  47.                   da der Zugriff auf den von ADDFILES belegten Speicher
  48.                   nicht  über eine  Interrupt-Routine sondern durch das
  49.                   Betriebssystem erfolgt.
  50.                   Die DeInstallation darf NUR über ADDFILES selbst vor-
  51.                   genommen werden!  (sonst  ist ein  Systemabsturz beim
  52.                   nächsten Dateizugriff vorprogrammiert!)
  53.  
  54. Dokumentation zu ADDFILES                                            Seite 2
  55. ────────────────────────────────────────────────────────────────────────────
  56.  
  57.  
  58.  
  59.  Quellen:         Die  Methode zur  Ermittlung der Adresse  der SDL ist
  60.                   aus der c't, der Aufbau und die Funktion der SDL ent-
  61.                   stammt  eigenen Ermittlungen. Die Idee, den Speicher-
  62.                   bereich  für die  neue  Liste  an das obere  Ende des
  63.                   Speichers zu  verlegen,  habe ich dem Buch 'DOS 5 für
  64.                   Programmierer' von Arne Schäpers entnommen.
  65.  
  66.  Aufruf: ADDFILES {parameter}
  67.  
  68.  Parameter: -S  -> Anzeige  der momentan  möglichen maximalen Anzahl an
  69.                    Dateien,  der noch  möglichen  Datei-Eröffnungen und
  70.                    der Daten evtl. schon vorhandener Erweiterungen
  71.  
  72.             -A  -> Ausgabe der Datei- bzw.  Geräte-Namen aller belegten
  73.                    Listen-Einträge  und  der  Art  der Belegung (Lesen,
  74.                    Schreiben oder Lesen und Schreiben)
  75.  
  76.             +n  -> Vergrössern der System-Datei-Liste um n Einträge
  77.                    (hinter der Zahl muß noch mindestens ein Blank
  78.                     stehen, dez., Intervall: 1..255)
  79.  
  80.                    Die Anzahl der Einträge in allen  Listen kann  eben-
  81.                    falls 255 nicht überschreiten
  82.  
  83.             -V  -> Rückgängig machen  der  letzte  Vergrösserung  falls
  84.                    kein  Eintrag  der letzten Teilliste belegt ist. Ist
  85.                    noch mindestens ein Eintrag der Liste belegt, werden
  86.                    die Datei- bzw.  Geräte-Namen  der belegten Einträge
  87.                    in der letzten Liste ausgegeben und  die  Entfernung
  88.                    der Liste wird unterdrückt.
  89.  
  90.                    War keine Vergrösserung in Kraft,  wird eine Fehler-
  91.                    Meldung ausgegeben.
  92.  
  93.             -I  -> wie -V, aber ignoriert eine evtl. Belegung der Liste
  94.  
  95.             -Hn -> Falls dieser  Parameter angegeben  ist,  benutzt das
  96.                    Programm  den UMB  (falls vorhanden)  für  eine neue
  97.                    Teilliste der SDL,  n ist die Speicherbelegungsstra-
  98.                    tegie:
  99.                    n = 1 -> belege höchsten belegbaren Block
  100.                    n = 2 -> belege den am besten passenden Block
  101.  
  102.             -?     Ausgabe der Aufruf-Syntax von ADDFILES
  103.  
  104.             -??    Ausgabe eines erweiterten Hilfstextes zu ADDFILES
  105.  
  106. Dokumentation zu ADDFILES                                            Seite 3
  107. ────────────────────────────────────────────────────────────────────────────
  108.  
  109.  
  110.  
  111.  Beschreibung: ADDFILES dient dazu, die mögliche Anzahl der Einträge in
  112.                der System-Dateien-Liste (SDL) nachträglich zu erweitern
  113.                und wieder zu verkleinern ohne das System neu zu booten.
  114.  
  115.                Die Anzahl der  Einträge in  der SDL  wird normalerweise
  116.                durch den Eintrag von 'FILES=nn' in der Datei CONFIG.SYS
  117.                festgelegt  und  bestimmt,  wieviel Dateien gleichzeitig
  118.                geöffnet werden können. 
  119.  
  120.                Das Verändern der Größe  der SDL  ist  normalerweise nur
  121.                durch  das  Ändern  der  Datei  CONFIG.SYS  und erneutes
  122.                Booten des Systems möglich. Da jeder Eintrag in  der SDL
  123.                aber zusätzlichen Speicher belegt, ist es wenig sinnvoll
  124.                diesen Wert auf die  maximal benötigte Anzahl Dateien zu
  125.                setzen,  falls  diese nur  äußert selten  erreicht wird.
  126.  
  127.                Mit  Hilfe von ADDFILES ist es nun möglich  den Wert für
  128.                FILES in  der  Datei  CONFIG.SYS  auf die  normalerweise
  129.                benötigte Anzahl zu begrenzen  und diesen  nur falls ein
  130.                Programm  mehr Dateien öffnen will zu erhöhen.
  131.  
  132.                z.B. könnte dann eine Batch-Datei zum Aufruf einer 
  133.                     Datenbankverwaltung folgendermaßen aussehen:
  134.  
  135.                                  REM Wert für FILES erhöhen
  136.                     ADDFILES +30
  137.                                  REM Programm aufrufen, z.B. DBASE
  138.                     DBASE
  139.                                  REM Wert für FILES wieder erniedrigen
  140.                     ADDFILES -V
  141.  
  142.  
  143.                Funktionsweise des Programms:
  144.                ─────────────────────────────
  145.  
  146.                Das Programm ermittelt zuerst über die Funktion  52h des
  147.                Interrupt 21h den Anfang der System-Dateien-Liste  (SDL)
  148.                und ermittelt die aktuellen Werte der SDL.
  149.                Dann wird, falls die Liste vergrössert werden soll, nach
  150.                der  Überprüfung der Größe  der Liste und der Größe  der
  151.                Erweiterung eine neue Liste aufgebaut und der Zeiger der 
  152.                letzten Teil-Liste auf die neue Liste gesetzt.
  153.  
  154.  
  155.  
  156. Dokumentation zu ADDFILES                                            Seite 4
  157. ────────────────────────────────────────────────────────────────────────────
  158.  
  159.  
  160.  
  161.                Für jede  neue Liste  wird ein Speicherbereich am oberen
  162.                Ende des  Speichers reserviert.  Der  benötigte Speicher
  163.                für eine  neue Liste kann über folgende Formel ermittelt
  164.                werden:
  165.  
  166.                 (n * 53 + 6 + p)  (DOS 3.3)
  167.                 bzw. 
  168.                 (n * 59 + 6 + p)  (DOS 4.xx und DOS 5.xx)
  169.                 
  170.                n ist hierbei die Anzahl der neuen  Einträge,  und p ist
  171.                die  Anzahl  Byte,  die   zusätzlich  aufaddiert  werden
  172.                müssen um auf eine durch 16 (Paragraphen-Größe) teilbare
  173.                Block-Größe zu kommen.
  174.  
  175.                Falls die Liste verkleinert werden soll,  überprüft  das
  176.                Programm ob eine Erweiterung in Kraft ist  und, falls ja
  177.                ob noch Einträge in der Erweiterung belegt sind.
  178.                Ist dies der Fall, werden nur eine Fehlermeldung und die
  179.                Namen aus den noch belegten Einträgen ausgegeben.
  180.                Sind keine Einträge mehr belegt  oder ist  der Parameter
  181.                -I  angegeben  wird  der  Zeiger  der  vorletzten  Liste
  182.                korrigiert  und der  Speicher der  letzten Liste  wieder
  183.                freigegeben.
  184.  
  185.                Jede  Verkleinerung  entfernt  jeweils  nur  die  letzte
  186.                Erweiterung.  Das  Programm kann beliebig oft aufgerufen
  187.                werden, solange  die maximale Anzahl Einträge in der SDL
  188.                nicht grösser als 255 wird.
  189.  
  190.                Zur Markierung einer Erweiterung  schreibt das  Programm
  191.                in den MCB an der normalerweise unbenutzen Stelle ab dem
  192.                Offset 08h den Namen des Programms (ADDFILES).
  193.                (Im Gegensatz  zu  früheren  Versionen von ADDFILES wird
  194.                der Block  NICHT  mehr als  zum  Betriebssystem gehörend
  195.                gekennzeichnet!)
  196.  
  197.  
  198.  
  199.