The UCSD p-System or UCSD Pascal System was a portable highly machine independent operating system developed in 1978 by the Institute for Information Systems of the University of California, San Diego to provide all students with a common operating system that could run on any of the then available microcomputers as well as campus PDP-11 minicomputers.
p-System started around 1977 as an idea of Kenneth Bowles at UCSD, who felt that the number of new platforms coming out at the time would make it difficult for new languages to gain acceptance. In particular he was interested in Pascal as a teaching language, which had just been announced. UCSD introduced two features which were tremendous improvements on the original Pascal, variable length strings, and "units" of independently compiled code (an idea taken from the then-evolving Ada programming language). Niklaus Wirth credits the p-System, and UCSD Pascal in particular, with popularizing the language. It was not until the release of Turbo Pascal that UCSD's version started to slip from first place among Pascal users.
The machine independence was achieved by defining a virtual machine called the p-Machine (or pseudo-machine, which many users began to call the "Pascal-machine" like the OS, although the UCSD documentation always used "pseudo-machine") with its own instruction set called p-Code (or pseudo-code). This p-Code was optimized specifically for generation by the Pascal programming language and all the original development was done in UCSD Pascal. Each hardware platform then only needed a p-Code interpreter program written for it to port the entire p-System and all the tools to run on it. Later versions also included additional languages that compiled to the p-code base (for example, Telesoft Pascal, also in San Diego, a licensee of the p-system, ported it to the Motorola 68000).
The p-System shares some concepts with the more current Java platform. Both use a virtual machine to hide operating system and hardware differences, and both use programs written to that virtual machine to provide cross-platform support. Likewise both systems allow the virtual machine to be used as the complete operating system for the target computer, or running in a "box" under some other operating system.
There were four versions of UCSD p-Code engine, each with several revisions of the p-System (and UCSD Pascal). A revision of the p-Code engine (i.e. the p-Machine) meant a change to the p-Code language, and therefore compiled code is not portable between different p-Machine versions. Each such revision is represented with a leading Roman Numeral, while operating system revisions were enumerated as the "dot" number following the p-Code Roman Numeral. For example, II.3 represented the third revision of the p-System running on the second revision of the p-Machine.
- Original version, never officially distributed outside of the University of California, San Diego. However the Pascal sources for both Versions I.3 and I.5 were freely exchanged between interested users. Specifically the patch revision I.5a was known to be one of the most stable.
- Widely distributed, available on many early microcomputers. Numerous versions included Apple II, DEC PDP-11, Zilog Z80 based machines, Motorola 68000 and the IBM PC.
- Custom version written for Western Digital to run on their Pascal Micro-Engine microcomputer. Included support for parallel processes for the first time.
- Commercial version, developed and sold by SofTech . Based on Version II, did not include changes from Version III. Did not sell well due to combination of their pricing structure, performance problems due to p-Code interpreter, and competition with native operating systems (which it often ran on top of). After SofTech dropped the product it was picked up by Pecan Systems (a relatively small company formed of p-System users and fans). Sales revived somewhat, due mostly to Pecan's reasonable pricing structure, but the p-System and UCSD Pascal gradually lost the market to native operating systems and compilers.
- UCSD PASCAL System II.0 User's Manual March 1979 - Institute for Information Systems, UCSD. Copyright 1978 Regents of the University of California, San Diego.