Check if a drive is ready

[Autolink] Menu

 
/* sample code to test if a drive is ready                            */
/* note:     This routine does not work under Object-Oriented REXX    */
/*                                                                    */
/*           [Tested with OBJREXX 6.00 12 Jul 1996]                   */
/*           [Fixed in OBJREXX 6.00 26 Feb 1997 and newer versions]   */
/*                                                                    */

  do forever
    call lineOut , "Enter the name of the drive to test " ,
                   "(RETURN to end): "
    thisDrive = strip( lineIn() )
    if thisDrive = "" then
      leave

    if DriveReady( thisDrive ) = 1 then
      say "The drive <" || thisDrive || "> is ready."
    else
      say "The drive <" || thisDrive || "> is not ready."
  end /* do forever */

exit 0

/* ------------------------------------------------------------------ */
/* function: Check if a drive is ready                                */
/*                                                                    */
/* call:     DriveReady( testDrive )                                  */
/*                                                                    */
/* where:    testdrive - Name of the drive to test (e.g. "A:")        */
/*                                                                    */
/* returns:  1 - drive is ready                                       */
/*           0 - drive is not ready                                   */
/*                                                                    */
/* note:     This routine does not work under Object-Oriented REXX    */
/*           if the line AUTOFAIL=NO is missing in the CONFIG.SYS     */
/*                                                                    */
/*           [Tested with OBJREXX 6.00 12 Jul 1996]                   */
/*           [Fixed in OBJREXX 6.00 26 Feb 1997 and newer versions]   */
/*                                                                    */
DriveReady: PROCEDURE
  parse arg driveToTest ":" .

  thisRC = 0

                        /* install a temporary error handler to check */
                        /* if the drive is ready                      */
  SIGNAL ON NOTREADY Name DriveReadyEnd

  call stream driveToTest || ":\*", "D"
  thisRC = 1

DriveReadyEnd:
  RETURN thisRC


[Back: Get the current boot drive]
[Next: Get the current filesystem]