This is actual a routine to check to seek if a disk is writeprotected, but should work just as well for check drive A:
*:*****************************************************************************
*:
*: Function: checkmediawrite
*:
*:*****************************************************************************
FUNCTION CheckMediaWrite()
PARAMETERS lsDrive
*-- Defines from Winbase.h
#DEFINE SEM_FAILCRITICALERRORS 0x0001
#DEFINE SEM_NOGPFAULTERRORBOX 0x0002
#DEFINE SEM_NOALIGNMENTFAULTEXCEPT 0x0004
#DEFINE SEM_NOOPENFILEERRORBOX 0x8000
*-- Check that the PARAMETERS is in the correct format.
IF SUBSTR(lsDrive, 2, 1) <> ":" OR ;
(ASC(UPPER(SUBSTR(lsDrive, 1, 1))) < 65 OR ;
ASC(UPPER(SUBSTR(lsDrive, 1, 1))) > 90)
=MESSAGEBOX("Drive must be in the format <drive letter>:", ;
0, "Error"

RETURN -1
ENDIF
*-- SetErrorMode determines whether the system handles
*-- serious errors or whether the program handles them.
DECLARE INTEGER SetErrorMode IN win32api INTEGER
*-- SetErrorMode returns to what the flags were last set.
*-- You need to store this in lnResult so that you can set them
*-- back the way they were before calling SetErrorMode.
*-- Failure to do so can produce unpredictable results
*-- when encountering future errors. SetErrorMode only
*-- applies to the current process and therefore only affects
*-- the FoxPro program that called SetErrorMode.
lnResult = SetErrorMode(SEM_FAILCRITICALERRORS)
hFile = FCREATE(lsDrive + "\tmp.txt"

IF hFile <> -1
FCLOSE(hFile)
ERASE(lsDrive + "\tmp.txt"

hFile=.T.
ELSE
hFile=.F.
ENDIF
*-- Put things back the way you found them.
lnResult = SetErrorMode(lnResult)
RETURN hFile
*-- Code ends here.