Contributor: CHRIS PRIEDE             

Function LastDrive: Char; Assembler;
  mov   ah, 19h
  int   21h
  push  ax            { save default drive }
  mov   ah, 0Eh
  mov   dl, 19h
  int   21h
  mov   cl, al
  dec   cx
  mov   ah, 0Eh       { check if drive valid }
  mov   dl, cl
  int   21h
  mov   ah, 19h
  int   21h
  cmp   cl, al
  je    @@Valid
  dec   cl            { check next lovest drive number }
  jmp   @@CheckDrive
  pop   ax
  mov   dl, al
  mov   ah, 0Eh
  int   21h           { restore default drive }
  mov   al, cl
  add   al, 'A'

LastDrive will return letter of the last valid drive. To check
if the drive letter entered is valid:

if Upcase(DriveLetter) <= LastDrive
   then {valid drive}
   else {bad drive};