[comp.sys.mac.hypercard] Floppy mounting and hypercard

marvel@tut.cis.ohio-state.edu (Howard P Marvel) (07/27/89)

I am installing some software on hard disk machines, but want student
users to be able to keep their own floppies that track progress and
record preferences.  I don't want to distribute floppies to students
but instead want them to be able to bring in floppies onto which I
will copy a template preference stack from within HyperCard.  I also
want this to be as idiot-proof as possible, so I want to minimize what
is done in the finder.  Hence what I would like to do is check from
within an openStack script or somesuch for whether a floppy is mounted
and to give the student an opportunity to stick in a diskette if none
is present.  The problem is that the system only does a mountVol after
it has had time to spin the floppy and make sure all is well.
HyperCard, on the other hand, seems unwilling to give up control from
within a script.  That is, if I do a check for a valid floppy and the
check fails and if I then put up an answer dialog asking the student
to insert a floppy, then try to repeat the check for a valid floppy,
the check will fail because the drive doesn't even spin the floppy
until hypercard is finished with whatever it is up to.  The trick of
using an idle handler in hypercard doesn't work because HyperCard
never idles.  Is there some way around this from within HyperCard?  By
within HyperCard, I mean to include xcmd's, so if there is a toolbox
routine I could use to force the os to check for a floppy, I'd
appreciate a pointer.

dlugose@ecsvax.UUCP (Dan Dlugose) (07/28/89)

In article <56129@tut.cis.ohio-state.edu> Howard P Marvel <marvel@cis.ohio-state.edu> writes:
>using an idle handler in hypercard doesn't work because HyperCard
>never idles.  Is there some way around this from within HyperCard?  By

An idle handler WILL give the system time to mount a floppy if you
give it several chances (i.e. after the idler handler has executed a
few times).  So if you know that a student has a file by a certain
name, you can try opening it and check the result.  Not elegant, but
serviceable if you want to avoid an XCMD.

Dan Dlugose
UNC Educational Computing Service