BRACKENRIDGE@USC-ISIB@sri-unix.UUCP (08/06/83)
From: Billy <BRACKENRIDGE@USC-ISIB> Here is a report written for INFO-IBMPC on my impressions after attending a seminar for software developers at Visi Corp. I really haven't touched on the human factors issues that make the bulk of discussion on the WORKS list, but you might find this worth republishing anyway: Date: 3 Aug 1983 1930-PDT Subject: Visi-On for Software Developers To: INFO-IBMPC From: Billy <BRACKENRIDGE@USC-ISIB> I recently returned from the Visi-On seminar for software developers. The IBM-PC XT is the minimum processor Visi-On will run on. Currently it seems OK for the toy tasks they are running, but it looks like will have to evolve as applications software gets more complex. The IBM PC graphics adapter card defines the absolute minimum acceptable resolution display. Visi-On appears to provide nearly all of the capability of any of the window packages I have seen to date. Of course the graphics adapter card on the IBM-PC isn't up to the resolution of the Lisa, Xerox Star, or SUN workstation. Consequentially there are no icons. Menu choices are represented by character strings and inverse video on selection. The system was demonstrated on an IBM-PC XT with IBM Color display and a Wang PC. The Wang has a higher resolution screen than the IBM and a faster (8086) CPU. I think IBM may be forced to upgrade their hardware sooner than I might have expected as this is one of the few office applications where more horsepower really makes a difference. A major limitation of the window package is that the virtual image can only be 64K bytes. If one used 8 bit by 8 bit character representations, this makes a maximum of 8K characters that can be displayed on a virtual screen. The raster operations would be terribly slow on an 8086 if they had to span segment boundaries. The Visi-On software for the IBM PC XT costs $495. It requires a mouse which costs an additional $250. In addition Visi-Calc costs $395, Visi-On Word (reputed to be a dog) $375, and Visi-On Graphics $195. I think the pricing is out of line and brought much glee to the Apple contingent at the seminar. Here are Visi-Corp's hardware requirements: Processor: 16bit, Clock >= 4.7 MHz Memory: 256KByte minimum Display: Directly addressable bit map Resolution: Capable of displaying 80X24 characters (8 X 8 pix characters) Media: 1 Hard disk; 1 Floppy (for distribution) Pointing: 100 counts/inch, 2 select buttons (mouse preferred) Interrupts: For I/O Clock/Timer: 50ms maximum Serial Number: 8 bits minimum Note that this hardware description fits the 68000 and Zilog processors as well as the 8086/8 family. Currently IBM, Wang, Honeywell, Texas Instruments, DEC, and Compaq have announced Visi-On systems. Visi Corp expects 4 or 5 manufacturers a quarter to join the party. All current systems are 8086 based. The mouse of choice is the Summa optical mouse. Demonstration systems use the mechanical (Berkeley??) mouse but requires polling every 50ms. I believe the clock is used only for mouse polling as there is no concept of task scheduling in the Visi-On environment. The Summa Optical mouse has an internal processor and communicates over a RS-232 line at 1200 baud only when it detects motion. The mouse (which sells for $250) has a unique serial number which the software polls for authentication. Some sort of encryption algorithm is used at installation time so the software can only be used with a given mouse. At Visi Corp some of the IBM-PCs are running remote virtual disks over an Ethernet. This has left the marketing staff quite a dilemma. On the one hand this lowers the hardware costs of entry, but on the other it ruins their carefully thought out software protection scheme. The primary objectives of Visi-On is a consistent user interface and portability. Visi-On is designed to run on any operating system. It should run as well or better on a CPM or Unix system as it does under MS-DOS. Visi-On is an open system. Outside vendors and software developers are encouraged to write applications for the Visi-On environment. In order to isolate the application program from any operating system or hardware limitations Visi-Corp provides the Visi-Host. The Visi-Host is machine dependent and in the case of the IBM-PC contains a lot of assembly code. It interfaces to the host operating system and where necessary directly to hardware. The Visi-Host supports: Machine independent device interface Virtual memory (sort of) Limited Concurrent Processes (interrupt code) The interface provides services: -Program control -process control -memory segment management -port management -raster operations -font management -file control -device background process management -keyboard management -mouse management -soundmaker management Visi-Host is about 37K object code and 10K data. It is 60% assembly language and 40% C. Above the Visi-Host sits the Visi-Machine. This is the heart of the Visi On system and is what both the programmer and end user sees. This is what you get for your $495. Applications cost extra. Above Visi On resides the application program (or as V-Corp prefers to call them activities). Activities request services from the Visi-Machine via Visi-Ops or via BITS (Basic Interaction Techniques). The two are distinguished in that a Visi-Op call requires a process ID. (A 16 bit number assigned by Visi-Corp to a given application program). BITS calls are presumably lower overhead operations. Examples of Visi-Ops calls: -Virtual screen management -archive (Visi-word for file management) -devices -memory management -background processing Examples of BITS calls: -mouse and key input -line edit -menu -forms -sound -error Occasionally the Visi-On must call the applications program. Examples: -stop -help -transfer -scrolling -workspace -scripts Application programs (Activities in Visi-Jargon) appear as an abstract data type to the Visi Machine with multiple entry points. The application appears to run stand alone in its own address space. Applications never communicate directly, only through use of the Visi-Ops. For example an application must advertise the types of transfer data it will accept and export. Many applications can pass around spread sheet format, while others will only accept ascii text strings or nothing at all. All activities must be written in (you guessed it) Visi-C and obey all the visi-conventions. The following is a layer diagram for this scheme: Visi Corp supplied Independent supplied +---+ +---+ +---+ | | | | | | | | | | | | Activities | | | | | | | | | | | | | | | | | | Visi Machine | | | | | | Interface +--+---+----------------+---+--+---+------------+ | | | | E A | Visi Machine | X P | | I P | | S L | | T I | | I C Visi Host +-----------------------------------------------+ G A Interface | | T | | I | | O | Visi Host (machine dependent) | N | | S | +---------------------------------------+------------+ | | | | | Host operating system | +-------+----------------------------------------------------+ | | | Host hardware | +------------------------------------------------------------+ Visi-Corp provides a nice tool kit for software development. It must run on a real 32 bit machine such as a VAX or 68000 and must run under a 32 bit Unix such as Berkeley or System3, Uniplus etc. Visi Corp admits Unix running on the 8086 just doesn't have the address space to run the Unix software development environment. In addition to the standard Unix development tools Visi Corp supplies a Lantech C cross compiler and cross assembler, the Visicorp "LEO" linker loader, and up and down load utilities. The Loader has provisions for overlays and the Visi On memory management scheme. There are several developer utilities such as menu, help, and form compilers. These compilers have a very simple format and output C code to define regions in a window, display menus, and define the help file tree structure and link them to mouse traps. The whole thing appears really simple to use. Also included is a Visi-Machine simulator (written in C and running native on the Vax or 68000). As applications are written in C they can be run in the development environment in native code and debugged with all the VAX source level debugging aids. There is also a Distribution Media generator which loads the application in a form for distribution and includes provisions for copy protection. An Application must be installed in a given Visi On system. Visi Corp assigns each application program a unique 16 bit number similar to Ethernet addresses. The Lantech C compiler is a small model C. It can only address 64K of memory at a time. There is a notion of a long pointer, but it can't be dereferenced like a normal C pointer. In fact it isn't even a segment offset pair. It can only be used in calls to the Visi Machine. This mechanism allows them to implement a virtual memory system on an 8086 which has no hardware support for this sort of thing. It also places a burden on the applications developer to be very careful in allocating and de-allocating memory. Bad memory management at the applications level can cause garbage collections and page thrashing. Decisions must be carefully thought out as to the trade offs involved and the applications programmer should really understand the rather distasteful memory management scheme. The Vax based system costs $7,500 and 68000 system costs $5,500 -- both include training credits. There are no license fees for software developed under these systems. This may seem expensive, but unlike the Apple system or Xerox Mesa development environment, it is available to anyone who can show a Unix license and come up with the cash. All and all I'd give the system a pretty strong recommendation. It is really the only game in town. Xerox won't let out any Star development environment. While the Apple attendees at the seminar were claiming they would undercut this system in price and performance they didn't volunteer to either let me buy a Lisa or peek at their development environment. A Unix implementation on a SUN terminal would be pretty trivial and would allow much needed business software on this class of machines. There are rumors that there is an effort to port Visi On to a Xerox Dandelion processor. While this would be nice I can't see it becoming a commercial product. I think a network mail reading package, document preparation system, spread sheet program, and graphics package could be put together under this system so that it could be ported to nearly any personal computer that might arise over the next few years. At ISI we view the IBM-PC as a stop gap cost effective measure until some more powerful machine comes along. A few years from now the current crop of PCs will become home terminals. Something such as the Visi On system would assure that software could be developed today that won't get obsolete when PC class machines are phased out. -------