Desk Accessories:
               Desk  Accessories  are similar to applications  except  that
          they  have  the memory that they reside in saved to  disk  first.
          This  means  that they should be relatively  short  programs.  To
          decide  whether  something  should  be a  desk  accessory  or  an
          application,  one  need only determine whether it is necessary to
          be  able to run the program from within another application  (i.e.
          like running Photo Manager from GEOpaint).  Desk accessories also
          have  some  restrictions that do not apply  to  applications.  In
          order for a desk accessory to open a window,  the window  storage
          area   must  be  saved  and  later  restored.   This  is  because
          GEOS  saved  everything before executing the desk  accessory.  To
          terminate a desk accessory, the vector IMainLoop should  be loaded
          with  RstrAppl and  an RTS should be made.  More on the RTS in  a
          moment.  Another  means of terminating a desk accessory is simply
          to jump to RstrAppl. It is the desk accessory's responsibility to
          clean up after itself and to take itself out of memory.
               Since the DoDlgBox command causes some system-wide variables
          to be saved before presenting itself, and desk accessories do the
          same thing in the SAME PLACE, it is not wise to use dialog boxes
          in desk accessories.  It is possible, however.  All your need to
          do is copy the 417 bytes at location $8F15 to a buffer of the same
          size which you maintain. Then, after the dialog box has returned,
          restore the same.