[comp.sys.mac.apps] Is the Hypercard home stack magic ??

STREATER@SLACVM.SLAC.STANFORD.EDU (415) (04/06/91)

Is there anything magic about the Hypercard home stack? The Claris doccy syas
there has to be one but doesn't say why. Can I just name any stack "home" and
have it treated as such by Hypercard - or are there some magic internals that
we can't get at and so thus have to use an Apple/Claris-supplied home stack.



Tim.

gort@cup.portal.com (george d harrington) (04/07/91)

STREATER@SLACVM.SLAC.STANFORD.EDU writes:
>Is there anything magic about the Hypercard home stack? The Claris doccy syas
>there has to be one but doesn't say why. Can I just name any stack "home" and
>have it treated as such by Hypercard - or are there some magic internals that
>we can't get at and so thus have to use an Apple/Claris-supplied home stack.
>
The home stack must br present and must be called "Home", but you can
call any stack you want "Home" and that will satisfy HyperCard. The
reason (I believe) for this is that the script of the "Home" stack
and its resource fork are always in the message hierarchy. When I've
been pressed for space (such as trying to write a hypercard stack on a
1 meg mac plus with a single floppy, not highly recommended but possible)
I renamed the stack I was working on to "Home" after copying in a few
things from the real "Home" and everything worked fine. Alternatively,
you could just create an empty home stack (about 4k if I recall correctly)
to satisfy HyperCard's need for "Home".
    
           gort@cup.portal.com

Idle handlers are the devil's workshop.

chuq@Apple.COM (Chuq Von Rospach) (04/08/91)

gort@cup.portal.com (george d harrington) writes:
>>Is there anything magic about the Hypercard home stack? The Claris doccy syas
>>there has to be one but doesn't say why. Can I just name any stack "home" and
>>have it treated as such by Hypercard - or are there some magic internals that
>>we can't get at and so thus have to use an Apple/Claris-supplied home stack.

>The home stack must br present and must be called "Home", but you can
>call any stack you want "Home" and that will satisfy HyperCard.

Sort of.

>The reason (I believe) for this is that the script of the "Home" stack
>and its resource fork are always in the message hierarchy.

There's another reason -- the home stack has handlers that initialize
various system and global parameters (things like userlevel, the search path
for stacks and apps, etc). So the home stack is actually magic as well as
being a repository for global functions in the message hierarchy.

If you're going to create your own home stack, you really ought to set up
the same global environment as the standard one -- take a look at the stack
script of the Home stack, especially StartUp and getHomeInfo.


-- 
Chuq Von Rospach  >=<  chuq@apple.com  >=<  GEnie: CHUQ  >=<  AppleLink: CHUQ
     SFWA Nebula Awards Reports Editor    =+=    Editor, OtherRealms
Book Reviewer, Amazing Stories    ---@---    #include <standard/disclaimer.h>

Recommended reading: XENOCIDE by Orson Scott Card (with reservations, August);
GOBLIN MOON  by Teresa Edgerton; BONE DANCE by Emma Bull (May)

cohill@vtserf.cc.vt.edu (Andrew M. Cohill) (04/09/91)

In article <41011@cup.portal.com> gort@cup.portal.com (george d harrington) writes:
>>Is there anything magic about the Hypercard home stack? The Claris doccy syas
>>
>The home stack must br present and must be called "Home", but you can
>call any stack you want "Home" and that will satisfy HyperCard. The

There's a bit more to it than that.  There are several cards in the Home
stack that tell HyperCard how to act and where to look for things.  If
you don't have them in your Home stack you are going to have some
problems.  But 
you can have Home stacks that look substantially different from the
Apple-supplied Home.


-- 
|          ...we have to look for routes of power our teachers never       
|              imagined, or were encouraged to avoid.   T. Pynchon          
|                    
|Andy Cohill        cohill@vtserf.cc.vt.edu            VPI&SU