Uses
Dos;
Var
Isthere : Boolean;
Function ChangeDrive( drv: Char ): Boolean;
Var
Regs: Dos.Registers;
NewDrv: Byte;
begin
NewDrv := orD( UpCase( drv ) ) - orD( 'A' );
Regs.DL := NewDrv;
Regs.AH := $0E;
MSDos( Regs );
Regs.AH := $19;
MSDos( Regs );
ChangeDrive := (Regs.AL = NewDrv);
end;
begin
isthere := ChangeDrive('a');
Writeln ('a: ',isthere);
isthere := ChangeDrive('b');
Writeln ('b: ',isthere);
isthere := ChangeDrive('c');
Writeln ('c: ',isthere);
isthere := ChangeDrive('d');
Writeln ('d: ',isthere);
isthere := ChangeDrive('e');
Writeln ('e: ',isthere);
end.