[comp.sys.apple] how CDAs can initialize themselves

AWCTTYPA@UIAMVS.BITNET ("David A. Lyons") (01/23/89)

>Date: Sun Jan 22 16:01:19 1989
>From: jason@lakesys.lakesys.com

>Hi - I was just curious as to how you got Nifty List to read the data
>file (NLIST.DATA? Whatever...). I did a dumpobj of its headers, and I
>don't see an Init segment.

Correct--there is no INIT segment there.  Don't need one, although I
tried that method at one point (never got it working quite right).
CDAs have two entry points:  one for when you choose it through the
CDA menu, and a second one that is called by the Desk Manager
whenever DeskStartup or DeskShutdown is called.  The system calls
DeskShutdown immediately after all the DAs are loaded, during boot,
so all DAs get a chance to do whatever initialization they need.
Screen dimmers and macro programs can install HeartBeat interrupt
tasks, Nifty List reads NLIST.DATA, etc.

The initialization routine will be called whenever you switch
between ProDOS 8 and GS/OS (or ProDOS 16) and whenever an
application that supports NDAs starts or quits.  The DAs that only
need one-time initialization, like Nifty List, just need to set a
flag internally after init-ing once & not do anything further if the
flag is already set.

>                                jason@lakesys
>                        (Not your average iconoclast)

--David A. Lyons              bitnet: awcttypa@uiamvs
  DAL Systems                 CompuServe:  72177,3233
  P.O. Box 287                GEnie mail:    D.LYONS2
  North Liberty, IA 52317     AppleLinkPE: Dave Lyons