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:
- CLI: Command Line Interface
An environment where the user tells the interface to execute programs
by giving it their name (and location) and the parameter list to send to
the program.
Examples:
- GUI: Graphical User Interface
An environment using bitmap- or text-based graphics, usually using:
- Windows
- Icons
- A pointer (usually mouse-driven)
- Menu-bars
- OS: Operating System
A set of routines which are installed in hardware (ROM) or loaded at
boot-up (stored on disk and transferred to RAM).
- F-Man: File manager
A program which presents the user with some sort of access to his/her
files and applications. In a GUI, this would of course be a windowed
system.
Examples:
- MS Windows 3.1 Program Manager
- MS Windows 3.1 File Manager
- Macintosh Finder
- E-Man: Environment manager (or "shell")
A program or OS routine(s) which bridges the space between the user
interface (CLI, GUI, etc.) and the programs.
The E-Man would place commands and parameters in a list and then jump to
or execute a program. The program would then act accordingly.
Examples:
- MS Windows 3.1 File Manager: File types (depending on thier
extender (.TXT, .GIF, .WAV, etc.)) would be associated to certain
programs (Text Editor, Graphic Viewer, Sound Player, etc.). When the
user tells File Manager to open a file, it would launch the application
and tell it to open that specified file.
- Finder: (Acts the same as Windows 3.1 File Manager except it
determines type and associated program as "resource" data and
is almost never determined by the user.)
- Unix: Unix converts (variables, wild-carded file lists, etc.)
the command and parameters and executes it.
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"
- Load it into memory
- Jump into it
- Tell it to do its installation routine
- 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
- Load or jump to the application
- 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!