home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 10 / 10.iso / l / l440 / 2.ddi / CHAP2 / LASTDRV2.PAS < prev    next >
Encoding:
Pascal/Delphi Source File  |  1990-09-25  |  858 b   |  38 lines

  1. { LASTDRV2.PAS }
  2.  
  3. program LastDrv;
  4. uses dos;
  5.  
  6. var
  7.     r : registers;
  8.     lastdrv_ofs : Word;
  9.     lastdrive : Word;
  10.     vers : Word;
  11.  
  12. begin
  13.     { determine offset of LASTDRIVE within DOS List Of Lists }
  14.     lastdrv_ofs := $21;
  15.     vers := DosVersion;
  16.     case Lo(vers) of
  17.         0 : Halt(0); { DOS 1 }
  18.         2 : lastdrv_ofs := $10;
  19.         3 : if Hi(vers) = 0 then lastdrv_ofs := $1B;
  20.     end;
  21.  
  22.     { Get pointer to DOS List Of Lists }
  23.     with r do begin
  24.         ah := $52;
  25.         es := 0; bx := 0;
  26.         MsDos(r);
  27.         if (es = 0) and (bx = 0) then 
  28.             Halt(0);
  29.         lastdrive := Mem[es:bx+lastdrv_ofs];
  30.     end;
  31.     if lastdrive = $FF then 
  32.         Halt(0);
  33.  
  34.     { Print LASTDRIVE letter; return LASTDRIVE value }
  35.     Writeln('LASTDRIVE=', Chr(Ord('A') - 1 + lastdrive));
  36.     Halt(lastdrive);
  37. end.
  38.