23rd August 1983
Alastair Milne


Since it first appeared in the introductory computer science courses at UCSD, the UCSD p-System has been remodelled into many different versions. For the most part, these versions are consecutive, each being developed as a refinement (or a bug fix) of the previous one.


The underlying basis for the p-System is the hypothetical machine called the p-machine (for "pseudo-machine"). In most implementations, the p-machine is emulated by an interpreter written in the native instruction set of the hardware on which the system is running (for example, Macro-11 for the Terak, 8086 for the IBM Personal Computer). The rest of the p-system is p-code, running on this interpreter, which it regards as a machine in its own right.

During the development of the p-System, the p-machine has, on occasion, been changed, meaning that the instruction set was modified. Every time this happens, the ROMAN NUMERAL section of the version number is changed. This is the ONLY time that the Roman numeral is changed. Bug fixes or architecture changes, no matter how extensive, do not change the Roman number.

Note, therefore, that the correct way of spelling the most recent version, is "IV.1", not "4.1".


This is a listing of p-System version numbers, when they appeared, why, and from whom (not always UCSD). Only more major versions are listed, since there have been too many minor changes to list conveniently. Major events in the development, such as the release of Apple and WD MicroEngine versions, are given breaks in the sequence.

I.2: released in-house at UCSD
I.3: released at UCSD, also released to a few other UC campuses.
All parts of the system still contained in SYSTEM.PASCAL.
I.4: general release. System divided into separate filer, editor,
I.5: UNITs developed, compiler now able to compile them.
Editor now able to copy from other files.
Filer how has wildcarding.
Many other features.
I.5 has subversions a through f (several debugging efforts).
II.0: Second p-machine version.
Division of single Remote I/O channel into separate input and output
Not much difference in organisation from I.5
II.1: INTRINSIC units appear: linked directly from library at run-time,
rather than being copied into the code file.
System now has 32 segments rather than 16
(this change was not carried over to any later versions).
UNITS can be declared as resident or non-resident.
II.1x7b More swapping capabilities added: screen handlers and others
can be made to stay on disc, loaded only when needed.

- about this time, the p-System was transferred from the jurisdiction of the University of California to that of Softech Microsystems, a division of Softech Inc., specifically established to maintain the p-System. This was a long process, and the point at which the system was no longer maintained by the University is not clear.

APPLE I.1 By Apple Computers, exclusively for Apples.
Essentially the same as UCSD II.1; minor modification to editor.
APPLE II.1 For Apple. More modifications.


- When Western Digital undertook the Pascal MicroEngine project,
it designed a new version of the p-machine to implement.
This new version was labelled III (since I and II already existed).
Version III is therefore dedicated to MicroEngine-based machines.

- Volition Systems is a company formed by Randy Bush, of the original
Pascal project at UCSD. From it came the first truly reliable versions
of III (for the MicroEngine, of course). It also produced the first
version of the Advanced System Editor.

- Among the changes introduced in version III is the first appearance
of parallel processes, and the routines and types needed to control them.

III.E1 Third p-machine version, by Western Digital Inc.
Developed for the Western Digital MicroEngine, (thus far) the only
hardware p-machine.
Some architectural and philosophical changes from previous versions.
Bugs in implementation of some p-codes.
III.F Some debugging, minor improvements in I/O. Single character
typeahead only.
Subversions are F0 and F1.
III.G0 More debugging. NO typeahead whatever.
III.H0 More debugging. Typeahead restored, but not reliable.
Versions from Western Digital, from Volition Systems,
and for PDQ.
III.H1 By Volition Systems for the PDQ-3. Much more reliable than other
versions of III.
III.H3 More debugging. System reliability improved, at cost of increased
system size and reduced available memory.


- SofTech MicroSystem's development efforts started with I.5, II.0, and
II.1; intervening efforts by Apple, Western Digital, and Volition Systems
were not involved.
Major architectural changes were made:
- expansion of the 16-segment system to 256 segments;
- all segments (units, assembly segments, segment routines, etc.)
can be dropped from memory;
- all currently loaded segments are kept in memory until demand forces
them to be dropped.
- programs can create and start parallel tasks (the program itself
is the main task). The running of the tasks is done differently
from the way version III does it.

IV.0 Most recent p-machine change.
Extensive changes in both p-machine instruction set and
Pascal system architecture.
SofTech MicroSystems licenses various companies (such as IBM and
Xerox) to bring up IV.0 implementations on their machines.
IV.1 Under license from SofTech MicroSystems, several companies
(such as Sage Technology in Nevada, and Network Consulting
Incorporated in British Columbia) bring up IV.1 for various
- NCI releases a version for the IBM PC more
powerful, faster, and more reliable than that released by IBM.
- Ticom Inc. releases a version for the DEC Rainbow 100.
Advanced Systems Editor now available under IV.
Scheduling of parallel processes debugged. - Revised October 06, 2001 07:29:12 PM.