elwell@osu-eddie.UUCP (Clayton M. Elwell) (12/10/85)
==============================================================================
Preliminary Specification of the Portable User Interface Library
Clayton M. Elwell
Copyright (C) 1985 Helicon Designs
Revision of 9 December 1985
==============================================================================
1. Introduction
1.0 Purpose of the Portable User Interface Library
The Portable User Interface Library is being written and distributed in order
to encourage the creation of advanced applications that will compile without
modification on a wide variety of hardware and under a wide variety of system
software while retaining the advantages of the hardware capabilities of
today's personal computers and workstations, such as bitmap displays and mice.
1.1 Scope of Application and Distribution
The Library will be placed in the public domain. I will in fact encourage
electronic bulletin board systems and other public-access repositories to
carry it for downloading as long as the full distribution is available. The
full distribution will include complete source code and documentation for all
supported hardware. It will be of suitable quality to be used for commercial
software development. Such use will be permitted and encouraged as long as
(a) the library itself is not sold (although it may be given away, of course)
and (b) credit is given in the documentation beneath the normal copyright
notice.
1.2 Initial Target Hardware
The set of initial target machines is as follows:
o The Apple Macintosh, Macintosh XL, and any future Apple products
o The Commodore Amiga
o The IBM Personal Computer running under GEM
o The SUN Engineering Workstation
If development hardware is available, the following additional systems will
be supported:
o The Atari ST series
2. Services Provided
2.0 Summary of Capabilities
The Library will provide unified access to all standard user interface
facilities, specifically:
o Input Event Handling
This includes input from the mouse, keyboard and serial ports (where
they exist).
o Window Management
This includes window creation, deletion, sizing, updating,
scrolling, etc.
o Text and Graphics
This includes raster, vector and text operations in windows.
o User Dialogue Handling
This includes dialog, alert, menu and sound handling.
o File I/O
UNIX style file access will be provided for those systems which do
not already support it.
o System Information
This includes date, time, international configuration, and the
like.
For systems that support them, desk accessories will be fully supported.
For systems that have hierarchical file systems, full path searching
functions will be provided.
2.1 Development Environment
The Library will be written in C, and be designed to be used with the
standard C compiler for the system in question. In the case of the Apple
Macintosh, all compilers available to me will be supported. At the time of
this writing that means Megamax C and SUMEX C.
2.2 Performance
The Library will be written to have as high performance as possible. It will
be profiled and optimized to ensure maximal speed.
3. Miscellaneous
3.0 Your Input Into The Design Process
If you feel I have left out an important part of the user interface, or feel
you have a clear idea of how approach a given section, please contact me with
details. Your contribution will be acknowledged if used. It can't hurt, and
may well speed up the process. I've had experience at this sort of thing,
but another viewpoint always helps.
3.1 The Proof of the Pudding
To demonstrate the utility of the Library, the following programs will be
written with the Library, placed into the public domain, and posted to the
net:
o A Screen Previwer for TeX DVI files
o An ANSI Terminal Emulator
o A Simple Graphics Editor (``Paint'' - style)
o If time permits, a couple of video games
3.2 Tentative Release Schedule
Detailed specifications of the library itself will be posted in the next week
or so. A preliminary posting of the source will be made around the first of
the year for beta (not ``victim'') testing. Remeber, however, that I have to
make a living while all of this is going on. This is going to be a labor of
love and a demonstration of what is possible.
In service to the personal computer community,
--
-- Clayton Elwell
Elwell@Ohio-State.CSNET
Elwell%Ohio-State@CSNET-RELAY.ARPA
...!cbosgd!osu-eddie!elwell
-----------------
Remember: There is no gain without amplification...