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