UCSD p-System Overview

The UCSD p-System was a highly portable operating system that ran programs whose object code was pseudocode for an idealized 16-bit processor.  The p-System contained an interpreter for this virtual machine.  Programs were thus object-code-compatible across different hardware platforms.

The p-System was developed at the University of California at San Diego, by a team headed by Kenneth W. Bowles.  The commercial rights to the system were eventually sold to SofTech Microsystems of San Diego.  The licensing terms appear to have been rather confusing, and there are quite a few articles and memos from 1979 attempting to clarify the situation. 

The UCSD p-System was also referred to as the UCSD Pascal System, but this name was misleading.  It's true that almost all development for the system was done in UCSD's implementation of Pascal, but other languages were available.  SoftTech Microsystems sold a FORTRAN compiler, and other organizations also sold or distributed other language processors.

As of 1980, the UCSD p-System (now being called the UCSD System) was available on DEC PDP-11 (separate versions for true PDP-11, LSI-11, and Terak), Intel 8080 / Zilog Z-80, Motorola 6800, and 6502 systems. A TI 9900 version was occasionally mentioned in product literature, but apparently wasn't available by 1980. Later, Western Digital developed a microprocessor whose instruction set was UCSD p-code. It ran the p-System much faster than processors which had to emulate the p-System instructions, but Western Digital's microprocessor never sold well.

p-System compared to Java

There are obvious similarities between the UCSD p-System and Java, two attempts at portable environments separated by about 18 years.  Both systems created programs in pseudocode that would run unmodified, without recompilation, on any platform that supported the system.  In both cases, a virtual machine needed to be created for the target hardware platform before programs could be run.  Both systems allowed native code to be included, though of course this was discouraged because it hindered portability. And in both cases, a single programming language (Pascal vs. Java) became strongly identified with the system, even though other programming languages could be used. 

One important difference was that the p-System was a complete operating system that in most (or possibly all) cases run directly on the target hardware.  The Java Virtual Machine, by contrast, is not a complete operating system, and must be implemented in the context of an operating system such as UNIX, MacOS, Windows NT, or the unnamed operating systems running on Network Computers.

User Interface

The p-System was menu-based. The top line of the screen was used to present a menu of commands. You typed a single keystroke to execute a command, which usually would bring up another menu. The keystroke to execute a command was usually, but not always, the first letter of the name of the command.

Because each command from a given menu had to correspond to a unique keystroke, the commands sometimes had to have unusual names. For example, in the Filer, the command to copy a file was given the name Transfer, because the letter C was taken up by the Change command. If there were more commands than could fit on the menu line, you could cycle through multiple versions of the menu lines by successively pressing "?".

The Terak keyboard had no real function keys, though there were a few special keys for non-printing ASCII characters such as ESC and, surprisingly, ETX. Thus, the p-System designers stuck with alphabetic commands. For instance, the editor was "modal"--more like, for instance, the modern-day (?!) vi editor than like EMACS.

In the days before mice and pull-down menus, this was about as friendly as operating systems got.

Pricing

Microcomputer software wasn't cheap in the 1970's and early 1980's, especially when adjusted for inflation. Here is a May 1980 SofTech Microsystems order form:

UCSD System Software Package Version II.0 (Operating system, file handler, interpreter, editors, assembler, linker, utilities and documentation package) Unit
Price
Quan
25
   UCSD System with UCSD Pascal Compiler $350 $280
   UCSD System with FORTRAN Compiler $400 $320
   UCSD System with UCSD Pascal and FORTRAN Compilers $500 $400
Additional Language Processors    
   UCSD Pascal Compiler $150 $120
   FORTRAN Compiler $200 $160
  UCSD Assemblers Package (Assemblers for Z-80, 8080, PDP-11, 6502, 6800, 6809 and 9900) $125 $100
Documentation (Included with Complete Software Packages)    
   UCSD System Manual (Includes UCSD Pascal User's Manual) $25 $20
   Beginner's Manual for the UCSD Pascal System (With tutorial programs) $20 $16
   FORTRAN User's Manual $20 $16
   System Documentation Package (Includes UCSD System Manual, FORTRAN User's Manual, and Beginner's Manual without tutorial programs) $50 $44
     
You must check one of the following in order to assure correct shipping
Z80/8080: with CP/M [ ] without CP/M [ ]    
PDP-11 with: RX01 [ ] RX02 [ ] RK05 [ ] Add $200 for RK05
LSI-11 with: RX01 [ ] RX02 [ ] RK05 [ ] media & handling
Terak 8510a [ ]      
6800 [ ]      
6502 [ ]      
 

 

(to be continued...)