.KEY english/A,check/A,asn/A,dest
.BRA {
.KET }

; DiskMount - Ask user for a diskette.
;
; Asks the user to put a given diskette into {dest}, and then gives it
; a name which won't conflict with any standard assignments.
;
; Inputs:
;   english  What to ask the user for
;   check    The volume name the diskette must have
;   asn      The Assign name to give it

; If we already know how to find the requested disk, don't specifically
; ask for it again in {dest}.
; Use ASSIGN EXISTS because we only care whether the name is known, not
; whether the diskette is accessible at the moment (if it isn't a DOS
; requester will remedy the situation).

echo >ENV:GDIRC "ok"

assign >NIL: {asn} exists
if not warn
    skip MountOK
endif

failat 21

lab volagain

echo "Please insert {english}" noline
echo " into drive *E[;1m{dest$DF0:}*E[m.*NHit RETURN when ready, or N to abort:  " noline
instutil ask ""
if warn
    skip MountAbort
endif

assign PSInstVCheck: ""
cd "{dest$DF0:}"
cd >GD_TempDir:VolumeCheck
cd PSInstVCheck:
assign PSInstVCheck:

instutil -eGDIVolCheck join GD_TempDir:VolumeCheck
if not $GDIVolCheck eq {check}
    echo "*NWrong disk.  Try again."
    skip back volagain
endif

assign {asn} "{dest$DF0:}"    ; Hook we can use when disk has been removed
skip MountOK

lab MountAbort
   echo >ENV:GDIRC "error"

lab MountOK

failat 10
