About Elegant Chaos
About me and my friends
Software from Elegant Chaos
Other stuff...

Last Exit To Hypercard

I started making hypercard stacks in the winter of '88-'89, and I've been at it ever since.During this time, I have accumulated a motley collection of scripts, and external commands that I find useful, or felt at some point that I ought to keep.

When Hypercard 2 came along, I started to collect them all into a library stack, with the original name of Sam's Library. I use this stack for any stacks that I create for my own use, and also for the development versions of stuff that I produce for other people.

The Last Exit To Hypercard product grew out of that library. It is an attempt to:

Most of the development work on Last Exit ended in 1994, and when I left ULTRALAB in 1995 I pretty much stopped using Hypercard. However, five years on I still receive email from people who use it, and I have recently revised one or two of the externals. It was originally released by ULTRALAB, and given away free for personal or educational use. I am currently contemplating making a new version, which I will sell as shareware; for now though the original copyright and distribution conditions remain as they were.

Please let me know if you find bugs, or have any feedback on the idea of a new version. You can email

Quick Start

Go straight to...


The bottom line is that Last Exit grew and developed in an organic way, as and when I needed it to, or had the time to do something to it. However, in as much as there is or was a plan for 4.0, this is it:

1. increase code re-use by allowing all externals to be shared from a single library
2. make libraries easier to use in shipping products
3. improve documentation

To achieve these aims, there have been some fairly radical re-organisations.

Using Last Exit With Your Stacks

With version 4.0, the modifications that you need to make to one of your stacks to use it with Last Exit have been minimised.

All you need to do is paste one XCMD, called ULTRALAB, into your stack, and add one line to your openStack handler.

The line is:

ULTRALAB "Use","library1,library2,etc"

where library1, library2 etc are the actual libraries that you want to use.

Normally, you will only need to use the Utilities library, since it includes most of the useful stuff. So you stack simply needs to include the line:

ULTRALAB "Use","Utilites"

The ULTRALAB External Command

The ULTRALAB xcmd handles all of the work of locating and initialising the libraries that you want to use.

It knows how to search for the libraries in a number of places, and has enough intelligence in it to display an error dialog if it can't find a library.

By packaging all of this code up into a single xcmd, I have reduced the amount of clutter that you need to have in your stack script. Also, I've made it a bit easier to change things around in the future, just by compiling and distributing a different version of the ULTRALAB XCMD.


In the latest version of Last Exit, ULTRALAB has joined the increasing list of egomaniacal organisations who, not satisfied with filling up the user's documents, applications and preferences folders, have decided to own a whole folder in the system folder!

Just as your system folder may well contain a Claris folder, so in the future should it contain an ULTRALAB folder.

This allows us to have a "proper" place in which to store libraries, preferences files and associated resources. In future, all Last Exit to Hypercard libraries should be stored inside the "Libraries" folder, inside the "ULTRALAB" folder, inside your system folder. Preferences files for these libraries go into the "Preferences" folder, inside the "ULTRALAB" folder.

Although it is capable of searching in other places, the ULTRALAB xcmd expects and prefers you to put all the libraries that it needs into the ULTRALAB folder.