Introduced in 1984 as part of
the operating system for the
Apple Macintosh computer, a
Desk Accessory (DA) was a piece of software written as a device driver, conforming to a particular programming model. The purpose of this model was to permit very small helper-type applications to be run concurrently with any other application on the system. This provided a small degree of
multitasking on a system that initially did not have any other multitasking ability. DAs were implemented as a special class of
driver. It was installed in the driver queue, and given time periodically and co-operatively as a result of the host application calling
SystemTask() within its
main loop. A DA was permitted to have a user interface as long as it was confined to one main window. A special window frame with black
title bar and rounded corners was reserved for the use of DAs so that the user could distinguish it from the windows of the hosting application. Typical early DAs included the Calculator and Alarm Clock. The
control panel,
Chooser, and
Scrapbook were initially implemented as DAs. Third-party DAs such as spelling checkers could be purchased. It was considered hard to write a DA, especially early on when there was little in the way of developer tools. However, since on the early Mac OS drivers did not have any special privileges, writing a DA was, with practice, no more difficult than any other application. A special
Font/DA Mover utility was used to change the configuration of DAs. Because DAs were not installed or launched in the same way that applications were, the user could not drag and drop DAs into or out of the system. They resided in the System file's 'DRVR'
resources, like actual drivers, though they could be installed in any file whose resources were loaded into the memory, and were stored in
"suitcases" when not installed in the system file. If installed within a separate application, such as MacWrite, their functionality would be accessible only when that application was running. That is, a desk accessory installed as a resource within an application would appear on the Apple menu as a desk accessory only when that application was active. It could then be activated while the application was run and would then disappear when the application was terminated through the Quit function. (Similarly, the FKEY resources could be installed either within the System so as to be universally available, or within an application so as to be available only when that application was active). As a resource numbering scheme was implemented for marking resources as belonging to another resource of some particular type and number in the same file, such as a DA ('DRVR'), it was possible for desk accessories to have a limited "resource fork" of their own within the file they were contained in; the mover utility recognised such resources and moved them along with the actual DA code resource they were associated with. With the advent of
System 7, which included a standard
cooperative multitasking feature, the need for DAs diminished greatly, and developers were encouraged to develop small applications instead. The system continued to run DAs (and still does up to
Mac OS 9.x) for backward compatibility. Under System 7 and later, DAs could be moved and renamed using the Finder like normal applications, removing the need for Font/DA Mover and confining suitcases to
font management. When a DA was run under System 7, it always executed in the Finder's
address space. The
icon for a desk accessory program under System 7 and later is roughly a reversed version of the application icon, with the writing hand on the left side instead of the right. A similar mechanism to allow small utility programs to run along with regular applications was also present in the operating system for the
Apple IIGS and
Apple IIe. ==GEM==