home *** CD-ROM | disk | FTP | other *** search
- { MN> How can I find out if Smartdrv is installed ? I have made a harddisk
- MN> benchmark Program, and I would like it to detect if Smartdrv is
- MN> installed.
- }
- Uses Dos;
-
- Function SmartDrvVersion:Integer; { -1 means not inSTALLED }
- Var
- R: Registers;
- B: Array[0..$27] of Byte; { return Buffer }
- F: Text;
-
- begin
- SmartDrvVersion := -1; { assume NO smartdrv ! }
-
- {--------Check For SmartDrv.EXE---------- }
- FillChar( R, Sizeof(R), 0 );
- R.AX := $4A10; { install-check }
- Intr( $2F, R );
- if R.FLAGS and FCARRY = 0 then { OK! }
- begin
- if R.AX = $BABE then { the MAGIC-# }
- begin
- SmartDrvVersion := Integer(R.BP);
- Exit
- end;
- end;
- { -------Check For SmartDrv.SYS----------- }
- Assign(f,'SMARTAAR');
- {$I-}
- Reset(f);
- {$I+}
- if IoResult <> 0 then Exit; { No SmartDrv }
- FillChar( R, Sizeof(R), 0 );
- R.AX := $4402; { IoCtl }
- R.BX := TextRec(f).Handle;
- R.CX := Sizeof(B);
- R.DS := Seg(B);
- R.DX := ofs(B);
- MsDos(R); { int 21h }
- close(f);
- if R.FLAGS and FCARRY <> 0 then Exit; { Error-# in R.AX ...}
- SmartDrvVersion := B[$E] + 256* B[$F];
- end;
-
- Var
- SMV:Integer;
- begin
- SMV := SmartDrvVersion;
- Write(' SmartDrv');
- if SMV = -1 then
- Writeln(' not installed.')
- else
- Writeln(' V', SMV div 256,'.',SMV mod 256,' installed.');
- end.