home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / 1991 / 09_10 / tricks / expand.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1991-06-11  |  1.3 KB  |  41 lines

  1. (* ------------------------------------------------------ *)
  2. (*                     EXPAND.PAS                         *)
  3. (*    (c) 1991 Niels Rump, Andreas Brostmeyer & TOOLBOX   *)
  4. (* ------------------------------------------------------ *)
  5. {$R-,S-,I-,D-}
  6.  
  7. USES Dos;
  8.  
  9. VAR
  10.   Regs    : Registers;
  11.   Segment : WORD;
  12.   Offset  : WORD;
  13.   Nr      : BYTE;
  14.   Pfad    : PathStr;
  15.  
  16. BEGIN
  17.   GetDir(0, Pfad);
  18.   Nr := Ord(Pfad[1])-65;
  19.   Regs.ah := $52;         { Undokumentierte DOS-Funktion:  }
  20.   Intr($21, Regs);        { Hole Zeiger auf DOS-Info-Block }
  21.  
  22.   WITH Regs DO BEGIN
  23.                    { Aus dem DIB wird der Anfang der Pfad- }
  24.                    { Tabelle bestimmt und die Adresse des  }
  25.     Offset  := MemW[es:bx+$16]+Nr*88;          { Eintrags  }
  26.     Segment := MemW[es:bx+$18];                { berechnet }
  27.   END;
  28.  
  29.   Pfad := '';                 { Der neue Pfad wird aus der }
  30.                               { Tabelle aufgebaut          }
  31.   WHILE Mem[Segment:Offset] <> 0 DO  BEGIN 
  32.     Pfad := Pfad+Chr(Mem[Segment:Offset]);
  33.     INC(Offset);
  34.   END;
  35.  
  36.   ChDir(Pfad);                { In den neuen Pfad wechseln }
  37.  
  38. END.
  39. (* ------------------------------------------------------ *)
  40. (*                  Ende von EXPAND.PAS                   *)
  41.