home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / assemblr / library / lib4a86 / doc / extdos.doc < prev    next >
Text File  |  1992-02-13  |  7KB  |  177 lines

  1.   ─────────────────────────────────────────────────────────────────────────────
  2.   Dokumentation zur Datei: EXTDOS.INC
  3.  
  4.   ─────────────────────────────────────────────────────────────────────────────
  5.    
  6.     EXTDOS.INC   - Routinen zur Nutzung von UNDOKUMENTIERTEN DOS-Features
  7.                    (für den Assembler A86)
  8.    
  9.                    (c) Bernd Schemmer 1990 - 1992
  10.                    Letzter Update: 13.02.1992
  11.    
  12.     ■ Hinweis:
  13.     ----------
  14.     Die Routinen benötigen die Macros und Strukturen aus der Datei
  15.     EXTDOS.MAC.
  16.     Alle Routinen beziehen sich auf UNDOKUMENTIERTE DOS-Features!
  17.     Sie sollten deshalb nur in Ausnahmefällen benutzt werden.
  18.     Getestet wurden die Routinen nur mit DOS Version 3.3 und 4.0.
  19.    
  20.    
  21.     ■ Routinen:
  22.     -----------
  23.     StandardIO?           - Stellt fest, ob eine Umleitung der Standard-
  24.                             Eingabe oder -Ausgabe in Kraft ist
  25.     GetMaxFile            - Ermittelt die Größe der lokalen Handle-Tabelle
  26.                             und die Anzahl der noch freien Handles
  27.     SetMaxFile            - Vergrößert oder verkleinert die lokale Handle-
  28.                             Tabelle
  29.     SearchCHARDevice      - Ermittelt die Adresse des Headers eines CHAR-
  30.                             Devices
  31.     CountBuffers          - Ermittelt die Parameter des BUFFERS-Befehls
  32.                             aus der Datei CONFIG.SYS
  33.     CountSDL              - Ermittelt die Parameter des FILES-Befehls
  34.                             aus der Datei CONFIG.SYS
  35.     CountFCBS             - Ermittelt die Parameter des FCBS-Befehls
  36.                             aus der Datei CONFIG.SYS
  37.     GetHandleName         - Ermittelt den Namen des Geräts/der Datei
  38.                             das/die einem Handle zugeordnet ist
  39.     GetDriveArt           - Ermittelt die Art eines logischen Laufwerkes
  40.    
  41.    
  42.     ----------------------------
  43.     GetDriveArt
  44.    
  45.     Funktion:  Ermittelt die Art eines logischen Laufwerkes
  46.    
  47.     Eingabe:   AX = Nummer des Laufwerkes (1 = A:, 2 = B:, usw.)
  48.    
  49.     Ausgabe:   CF = 0 ->> okay
  50.                           AX = 4000h ->> Laufwerk ist ein Hardware-Laufwerk
  51.                           AX = 5000h ->> Laufwerk ist durch SUBST zugeordnet
  52.                           AX = 6000h ->> Laufwerk ist durch JOIN zugeordnet
  53.                           AX = 8000h ->> Laufwerk ist ein Netzwerk-Laufwerk
  54.                           AX = 0000h ->> log. Laufwerk ist nicht eingerichtet,
  55.                                          kann aber eingerichtet werden
  56.                           und nur bei DOS 4.xx:
  57.                           AX = C000h ->> Laufwerk ist ein über ein IFS inst.
  58.                                          Laufwerk
  59.                           sonst bei allen Versionen:
  60.                                      ->> unbekannte Laufwerk-Belegung
  61.    
  62.                CF = 1 ->> Fehler, logisches Laufwerk ist nicht bekannt und
  63.                           kann nicht eingerichtet werden
  64.    
  65.     ----------------------------
  66.     GetHandleName
  67.    
  68.     Funktion:  Ermittelt den Datei/Gerätenamen eines gegebenen Handles
  69.    
  70.     Eingabe:   BX = Handle
  71.                ES:DI -> Puffer für den Namen
  72.                        (11 Zeichen, 8 Zeichen für den Namen mit folgenden
  73.                         Blanks und 3 Zeichen für die Extension mit folgenden
  74.                         Blanks)
  75.    
  76.     Ausgabe:   CF = 0 ->> Name gefunden, Puffer enthält den Namen
  77.                CF = 1 ->> Fehler
  78.                           AL =  0FFh ->> Handle ist geschlossen
  79.                           AL <> 0FFh ->> Eintrag in SDL nicht vorhanden
  80.    
  81.     ----------------------------
  82.     SearchCHARDevice
  83.    
  84.     Funktion: Testen, ob ein CHAR-Device mit den Geräte-Namen
  85.               bei DS:SI geladen ist
  86.    
  87.     Eingabe:  DS:SI -> Name des gesuchten CHAR-Devices
  88.                        (8 Zeichen, in Großbuchstaben und mit Blanks
  89.                         aufgefüllt)
  90.    
  91.     Ausgabe:  CF = 1 ->> Device nicht vorhanden
  92.                          CX = Anzahl Devices
  93.                          AX = Attribut des letzten Devices
  94.                          ES:BX -> letzter Device-Header
  95.               CF = 0 ->> Device geladen
  96.                          CX = Nummer des Devices in der Kette
  97.                          AX = Attribut des Devices
  98.                          ES:BX -> Device-Header
  99.    
  100.     ----------------------------
  101.     StandardIO?
  102.    
  103.     Funktion:  Feststellen, ob eine Umleitung der Standard-
  104.                Ein/Ausgabe vorliegt.
  105.    
  106.     Ausgabe:   AL =  1 ->> keine Umleitung der Standard-Eingabe in Kraft
  107.                AL <> 1 ->> Umleitung der Standard-Eingabe in Kraft
  108.                AH =  1 ->> keine Umleitung der Standard-Ausgabe in Kraft
  109.                AH <> 1 ->> Umleitung der Standard-Ausgabe in Kraft
  110.    
  111.     ----------------------------
  112.     GetMaxFile
  113.    
  114.     Funktion:  Ermitteln der max. Anzahl möglicher Datei-Eröffnungen
  115.                (Größe der lokalen Handle-Tabelle,
  116.                 Voreinstellung: 20 Bytes)
  117.    
  118.     Ausgabe:   CX = max. Anzahl
  119.                AX = Anzahl schon offener Dateien
  120.    
  121.     ----------------------------
  122.     SetMaxFile
  123.    
  124.     Funktion:  Vergrößern oder verkleinern der lokalen Handle-Tabelle.
  125.    
  126.     Eingabe:   BX = neue max. Anzahl
  127.    
  128.     Ausgabe:   CF = 0 ->> okay
  129.                CF = 1 ->> Fehler
  130.    
  131.     Bes.:      Diese Funktion ist erst ab DOS Version 3.3 vorhanden.
  132.                (Die DOS-Version muß von der aufrufenden Routine über-
  133.                 prüft werden)
  134.                Vor dem Aufruf dieser Routine muß unbegingt freier
  135.                Speicher zur Verfügung gestellt werden!
  136.    
  137.                Zur Vermeidung eines internen Fehlers von DOS 3.3
  138.                erhöht die Routine die neue Anzahl für die Handles
  139.                immer auf eine ungerade Anzahl falls eine gerade
  140.                Anzahl angegeben wird.
  141.    
  142.                An Tochterprozesse werden immer, unabhängig von der
  143.                Größe der lokalen Handle-Tabelle, vom DOS nur die
  144.                ersten 20 Handles übergeben!
  145.    
  146.     ----------------------------
  147.     CountBuffers
  148.    
  149.     Funktion:  Ermittelt die Anzahl der DOS-Puffer
  150.    
  151.     Ausgabe:   AX = Anzahl der DOS-Puffer
  152.    
  153.     ----------------------------
  154.     CountSDL
  155.    
  156.     Funktion:  Ermittlt die maximale Anzahl Einträge in
  157.                der SDL (wird durch FILES=xxx in CONFIG.SYS
  158.                eingestellt) und die Anzahl der belegten
  159.                Einträge in der Liste 
  160.    
  161.     Ausgabe:   CX = max. mögliche Anzahl Einträge
  162.                AX = Anzahl belegter Einträge
  163.    
  164.     ----------------------------
  165.     CountFCBs
  166.    
  167.     Funktion:  Ermittlt die maximale Anzahl Einträge in
  168.                der FCBS-Liste und die Anzahl der Einträge die
  169.                DOS nicht automatisch schliessen darf 
  170.                (wird durch FCBS=xxx,yyy in der Datei CONFIG.SYS
  171.                 eingestellt)
  172.    
  173.     Ausgabe:   CX = max. mögliche Anzahl Einträge (= xxx)
  174.                AX = Anzahl Einträge die DOS nicht automatisch
  175.                     schliessen darf (= yyy)
  176.    
  177.