ucsd-psystem-xc 0.13


This page is hosted by SourceForge: see also the Project and Statistics pages.

The ucsd-psystem-xc package provides a Pascal cross compiler for producing UCSD p-System code files, and some other related tools.

[ Download | Documentation | Aegis Repo ]

You could support this project with a donation.

About This Project

The ucsd-psystem-xc project provides a Pascal cross compiler for producing UCSD p-System code files on Posix hosts, such as Linux. It also provides some other related tools, such as a disassembler.

While it is possible to run the original UCSD p-System compiler from within an emulator, this is very cumbersome for modern developers more accustomed to the GNU tool chain. This cross compiler also has far better error messages and other feedback than the original compiler, because much more code space is available to modern programs.

The other issue a cross compiler addresses is that of bootstrapping. It is not enough to have the UCSD p-System source files (recently licensed for non-profit use by UCSD). In order to bootstrap to a self-hosting system, you must first compile the operating system and compiler (at least) into p-code files, so that the rest of the tools can be compiled “natively”.

Ancient History

The UCSD P-System is a portable operating system that was popular in the early days of personal computers, in the late 1970s and early 1980s.

Like today's Java, it was based on a “virtual machine” with a standard set of low-level, machine-language-like “p-code” instructions that were emulated on different hardware, including the 6502, the 8080, the Z-80, and the PDP-11. In this way, a Pascal compiler that emitted p-code executables could produce a program that could be run under the P-System on an Apple II, a Xerox 820, or a DEC PDP-11.

The most popular language for the P-System was UCSD Pascal. In fact, the P-System operating system itself was written in UCSD Pascal, making the entire operating system relatively easy to port between platforms.

By writing a p-code interpreter in the platform's native assembly language, and a few minimal hooks to operating system functions for the file system and interacting with the user, you could move a p-code executable from another system and run it on the new platform. In this way, the p-code generated on one computer could be used to bootstrap the port of the P-System to another computer.

From the Jefferson Computer Museum web site.

See Also

There is a UCSD Pascal article on Wikipedia.

Jefferson Computer Museum
This site has links and history for the UCSD p-System.

Mailing List
In 2004 Yahoo! group devoted to UCSD Pascal was started.

In 2006 UCSD officially released some of the source, along with its non-profit license.

Online Pascal References:
There are several Pascal language reference manuals available online, including:

Sister Projects

UCSD p-System File System: These tools allow you to create and manipulate UCSD p-System disk images. You can add files to, and extract files from, UCSD p-System disk images. You can even mount UCSD p-System disk images as Linux file systems, with automatic transparent text format conversion in both directions.
UCSD p-System Operating System: The ucsd-psystem-os project contains the II.0 source files (and some bug fixes) plus a Makefile that uses the cross compiler to build the sources, and the file system tools to build working disk images that can be executed using the virtual machine.
UCSD p-System User Manual: A modern reconstruction of the UCSD p-System II.0 User Manual is available as HTML. It includes complete system documentation for the p-machine, file formats, the Pascal dialect supported by the compiler, and more.
UCSD p-System Virtual Machine: A portable virtual machine (p-code interpreter) for the UCSD p-System. It supports execution of Apple ][ Pascal programs, it can even display TurtleGraphics using X11.

The ucsd-psystem-xc package is written and owned by Peter Miller and is freely distributable under the terms and conditions of the GNU GPL. There is more Software by Peter Miller at his home page.

This page has been accessed approximately times since 12-Nov-2012.