HyperCard Porting

Ben Rubinstein benr_mc at cogapp.com
Wed Jun 4 14:50:00 EDT 2003


on 6/4/03 6:40 PM, eric.allen.engle at justice.com wrote

> ARE YOU COMPACTING YOUR STACKS BEFORE PORTING THEM?
> 
> Almost certainly the cause of errors.
> 
> otherwise: 
> 
> Check for XCMD calls.
> 
> Make sure your syntax conforms to metacard.
> Use parantheses instead of "of"
> Be careful with the use of "the"
> Make sure ask uses with... or... or...
> 
> My hypercard ports never crash the PC or MC
> IF i first compact them.

FWIW, I've never knowingly compacted a stack before importing it - and never
seen a problem caused by this - but it can't hurt!

The various syntax issues, which can take a little while to track down, are
a pain but have not in my experience led to crashing.

All the crashes I've had have been to do with XCMDs.  MetaCard supports the
original HyperCard XCMD protocol; many many XCMDs were built to the later
("HyperCard 2") era protocal, and assume the use of callbacks that aren't
supported by MetaCard.  It is possible in principle for an XCMD to be
written in a way that tests for the existence of the callbacks it attempts
to use - very few, I suspect, were written in such a way.  Certainly none of
the ones I wrote!

I would look for XCMDs as the cause of the crash before I'd look for
anything else.  You might for example make a copy of the stack with all
resources stripped, and try running that; my expectation if the XCMD was the
problem was that you'd get an error message about an undefined function, at
approximately the same point (or possibly before) as you previously crashed.

If you do find the problem is a crashing XCMD, you have two choices: recode
the functionality in MetaTalk, or fix the problem with the XCMD.  If at all
possible, even if you have access to the source code of the XCMD, I
recommend you do the former.  You gain portability, flexibility, and
frequently speed (especially if the XCMD is a 68K one).

Good luck,
 
  Ben Rubinstein               |  Email: benr_mc at cogapp.com
  Cognitive Applications Ltd   |  Phone: +44 (0)1273-821600
  http://www.cogapp.com        |  Fax  : +44 (0)1273-728866





More information about the metacard mailing list