problems running hidecursor.mex and eventavail.mex

I am having a problem running the latest version of Psychtoolbox on a
rather old machine (OS 8.5.2, a system that we are unfortunately unable to
upgrade) using Matlab 5.2.1.1421. This occurs when running the mex files
"hidecursor" and "eventavail". In both cases, the error is the same:
"GetDiskFragment error -2807 accessing:
InterfaceLib--AbsoluteToNanoseconds." The complete error messages are
below. What can I do to fix this problem?

Thanks,

Nick Knouf
Lab Manager, Kanwisher Lab

>>hidecursor
Couldn't open MEX-file "Macintosh HD:APPLICATIONS:Matlab
5:Toolbox:PsychToolbox:PsychBasic:HideCursor.mex."
GetDiskFragment error -2807 accessing:
InterfaceLib--AbsoluteToNanoseconds.
??? Invalid MEX-file

>>

Couldn't open MEX-file "Macintosh HD:APPLICATIONS:Matlab
5:Toolbox:PsychToolbox:PsychBasic:EventAvail.mex."
GetDiskFragment error -2807 accessing:
InterfaceLib--AbsoluteToNanoseconds.
??? Invalid MEX-file

Error in ==> Macintosh HD:APPLICATIONS:Matlab
5:Toolbox:PsychToolbox:PsychBasic:CharAvail.m
On line 39 ==> avail=EventAvail('keyDown');

Error in ==> Macintosh HD:Desktop
Folder:Galit:Face_Battery:face_categorization:degThreshold_cat.m
On line 103 ==> while CharAvail, GetChar; end;

>>
>I am having a problem running the latest version of Psychtoolbox on a
>rather old machine (OS 8.5.2, a system that we are unfortunately unable to
>upgrade) using Matlab 5.2.1.1421. This occurs when running the mex files
>"hidecursor" and "eventavail". In both cases, the error is the same:
>"GetDiskFragment error -2807 accessing:
>InterfaceLib--AbsoluteToNanoseconds." The complete error messages are
>below. What can I do to fix this problem?
>
>Thanks,
>
>Nick Knouf
>Lab Manager, Kanwisher Lab
>
>>>hidecursor
>Couldn't open MEX-file "Macintosh HD:APPLICATIONS:Matlab
>5:Toolbox:PsychToolbox:PsychBasic:HideCursor.mex."
>GetDiskFragment error -2807 accessing:
>InterfaceLib--AbsoluteToNanoseconds.
>??? Invalid MEX-file
>
>>>
>
>Couldn't open MEX-file "Macintosh HD:APPLICATIONS:Matlab
>5:Toolbox:PsychToolbox:PsychBasic:EventAvail.mex."
>GetDiskFragment error -2807 accessing:
>InterfaceLib--AbsoluteToNanoseconds.
>??? Invalid MEX-file
>
>Error in ==> Macintosh HD:APPLICATIONS:Matlab
>5:Toolbox:PsychToolbox:PsychBasic:CharAvail.m
>On line 39 ==> avail=EventAvail('keyDown');
>
>Error in ==> Macintosh HD:Desktop
>Folder:Galit:Face_Battery:face_categorization:degThreshold_cat.m
>On line 103 ==> while CharAvail, GetChar; end;
>
>>>

Dear Nick

I think your problem will go away if you upgrade to Mac OS 8.6. Up
until Mac OS 8.6, Apple stored the function AbsoluteToNanoseconds
inside DriverLib, but then moved it to InterfaceLib. We had to change
the weak-linking in HideCursor.mex to follow suit. I think that
upgrading to Mac OS 8.6 would fix your problem, but you claim that
you can't upgrade.

Technically you've found a bug, since we wrote the code to cope
gracefully with this situation and that's not happening. Probably the
problem is that we are strong linking instead of weak linking, so it
gives up instead of coping. However, we can't afford to fix things
that are only relevant to users of Mac OS older than Mac OS 8.6.
Indeed I suspect that your time too is too valuable for that.

Best

Denis

ps
If you really must overcome this hurdle you can download the source
files and you could fix the linking to WEAK link and recompile the
misbehaving mex files. However, I think it'd be easier to just
upgrade to Mac OS 8.6.