Task Swapping Laws


These are the "laws" as I describe them to which a task-swapping GUI-style environment should obey.

These laws are based on the Macintosh System 7 environment and will hopefully be used in ADOS or K-OS for the Atari 8-bit platform (or Atari Sweet-16-based machines).


Terms:

The terms and acronyms used in the law descriptions are as follows:


Opening an Application

In a GUI F-man or P-man, this would be double-clicking the application.

This can also be performed from within other non-F-man applications. A C-compiler might have other "external" programs it uses such as editors, linkers, etc.

If the application is already "running"

Simply jump into it

If the application isn't "running"

  1. Load it into memory
  2. Jump into it
  3. Tell it to do its installation routine
  4. And tell it to do its default load-up action (ask the user to open an existing file; create a new file; do nothing; etc.)

Opening a File(s)

In a GUI F-man, this would be either double-clicking the file(s) or "dropping" the files into the application.

Non F-man and P-man programs can also perform the task of loading other applications.

For example, a World Wide Web browser can jump into a text processor to view HTML source files or into an MPEG player to play MPEG animations.

If the file's application is unknown (N/A if "drop" is performed)

Report an error or prompt the user for an application to process the file with

If the file's application is loaded or not loaded

  1. Load or jump to the application
  2. Tell the application to open the file(s)

Special Case: Direct Returning from an Application

A good F-man should be able to process multiple files at once. For example, the user can select a half dozen text files, double click the whole lot, and the associated application (hopefully a text editor) would load up all of the files.

Another example is say 3 text files and 3 graphics files are selected and then "opened" (double clicked). The F-man would load the text editor, tell it to load the text files and also tell it to return to the F-man (or E-man, assuming the F-man would be piping a batch of commands to the E-man; E-man is useful for smaller machines because the F-man would be a large, complex program, and the E-man would simply be the actual program launching routines, without the user interface). Once the F-man has been reloaded or jumped back into, it would then load the graphic viewer, tell it to load the graphics files, and either stay in the graphic viewer, or return to the F-man or E-man and it would choose which application to load.

Exit (or Return)

Along with other basic commands such as launch, do nothing, and open files, this would be another option which would return to the previous system level (E-man or F-man (see above)).

Special Case: Auto-quitting an Application

A good F-man should also support a "shut down" feature for quickly exiting from all applications (properly) and quitting the F-man (either back to the lower level environment (DOS for example) or allowing for powering down).

It's also useful for the F-man to be able to see what programs are idle (without open windows or files) and let you quit them when you try to open a new application but are lacking the memory to do so.

Quit

The program will simply act as if you selected it's own "Quit" command; prompting you to save open files (if any), if you're sure you want to quit, and closing up support files (preferences, data files, etc.).
Last updated: March 9, 1995.
Comments, questions, suggestions? E-mail me!