[net.micro.mac] Preliminary Specs for Portable User Interface Library

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...