How to avoid Assigns

(An article for all the Amiga demo coders out there)


The Amiga offers the user the possibility to give any directory on a data storage medium a logical name which can be used similar to another device name. Many programs make use of this AmigaOS feature, but in most cases it's absolutely disturbing, because the list of Assigns in file requesters grows and grows.

There are demos and disk mags which consist of more than one file. Poor coders think the only way to find these files on the user's hard disk is to let an Assign point to the right directory.


This is of course wrong.
This is why I wrote this article.
This is why Assigns are forbidden in the Symposium '96 Demo Competition.

The correct way is extremely simple. If you want to refer to the directory from which the main program was started (and this is the directory where the rest of your files reside), use the logical name (tataaaaa...)

PROGDIR:

If your demo consists of these five files:
DEMO!.exe
part1
part2
part3
part4
use the file name PROGDIR:part? to access the respective file from the main program DEMO!.exe. This is a temporary "virtual" assign which is created by AmigaOS for each new process. Try executing dir progdir: for example, if you didn't dig it!
Another useless approach of demo coders is to create their own libraries for handling system shutdown. These 2KB are really not too much to include in the main program and if you still can't let it be, don't make the user copy it to LIBS:.

What? You don't believe this is possible? Then watch this:

KickMeBase=OpenLibrary("PROGDIR:kickme.library");

is perfectly possible! Yeah!
And don't forget CloseLibrary(KickMeBase); :=))

(C) 1995 by Michael Krause - Imagine A World Without Assigns ;-)

Symposium '96 WWW Information Service