A number of p-System interpreters, Linux based

Mario Klebsch Apple Pascal interpreter 0.5
Intepreter 0.5

Amiga port of Mario Klebsch’ interpreter (0.4)
Amiga port With fix

Peter Miller took the Mario Klebsch interpreter and enhanced it with:
Linux UCSD file system
Cross compiler
interpreter as Virtual machine
Collection of various versions of Peter Miller’s work

S-record utility
S-Record utility to manipulate EPROM files

Active and maintained port of Peter Miller’s work at John Dykstra github repository:
UCSD p-System operating system
UCSD p-System operating system
UCSD p-System Virtual machine
Cross compiler UCSD Pascal

Laurie Boshell programs (Pascal sources, from UCSD Pascal, Turbo Pascal, Delphi)

8080 assembler
converts a standard Apple Pascal 280 block disk image
(.DSK) to a .VOL file

Windows program to convert the RAW 8″ floppy images of the II.0 source floppies to .VOL files. mountable by the DOS and UNIX psystem.
Windows program to convert the images of the II.0 source floppies to .VOL files. mountable by the DOS and UNIX psystem.
I.5 compiler runs on Apple Pascal
I.5 interpreter and I.5 compiler on MS-DOS
DOS utility to extract files from a p-system .VOL image, a quick hack to read John Fousts disk images, also NorthStar
‘fix’ p-system volume (.VOL) images
Z80 emulator for UCSD p-System
Z80 emulator for UCSD p-System
Z80 emulator for UCSD p-System

Apple II

In alphabetic order.

ABT Pascal Tools I manual
ABT Pascal Tools II manual
Addendum to the Apple II Pascal 1.2 Update
Addendum to the Apple Pascal – Language Reference Manual.pdf
Anleitung Apple Pascal contents
Apple II Pascal 11 p-code Interpreter Disassembly
Apple FORTRAN Language Reference Manual
Apple II Pascal 1.1 Attach-BIOS
Apple II Pascal 1.2 Device and Interrupt Support Tools Manual
Apple II Pascal 1.3 (Workbench)
Apple Pascal – A Hands-on Approach/a>
Apple Pascal – A Hands-on Approach Special Edition
Apple Pascal – Operating System Reference Manual
Apple Pascal 1.2 Update Manual
Apple Pascal History DTC 1992
Apple Pascal Language Reference Manual with Addendum
Apple Pascal Operating System Reference Manual KBS
Apple Pascal Operating System Reference Manual
Apple Pascal Reference Chart
Apple Pascal Update 1.1
Interfacing Im apple System, contents
Apple Pascal 1.2 Language Reference Manual
Apple Pascal 2 Operating System Reference Manual
Apple Pascal 1.2 Update
Apple Pascal 1.3
Apple Pascal Graphic.pdf
Apple Pascal A Hands on Approach
Hyde_P-Source-A Guide to the Apple Pascal System_1983
Lisa Pascal Review DTC October 1988
Luehrman Peckham – Apple Pascal a hands-on approach
Apple II Technical Notes #010 Runtime Systems
Apple II Technical Notes #012 Disk Formatter
Apple II Technical Notes #014 Treesearch and IDsearch
Pascal #015 ShortGraphics
Apple II Technical Notes #016 Driver 3.5 Disk
Apple II Technical Notes #017 Patch 2.0.
Pascal Primer
Pascal Quality
Pascal Speedup System
Pascal Trickliste contents
Apple Pascal Language Reference Manual
Apple Pascal Language Reference Manual HiRes
Aple Pascal Operating System manual addendum
Pascal Shapestuff
PDQ Pascal Disk Qtility – Datamost
Profitips und Techniken fur Apple UCSD Pascal (LV).
Sams Pascal Primer
SC40-0501 PLAN 4000 File Server Apple II Pascal Users Guide April 1983
Softech Microsystems_UCSD p-System for the Apple II Computer (ver_4.0)_Mar83.pdf
UCSD Pascal Quick Reference Card
AdvancedUCSD programminggmg_1985.pdf

Text files

Standard Apple Numerics Environment
Technote 10 Run-time disks
Technote 12 Apple II Pascal Disk formatter
Technote 14 treesearch and idsearch
Technote 15 Short graphics
Technote 17 System apple patch

In alphabetic order.

29 pascal programs disks
Apple 2 pascal Desk Toolkit
Apple Fortran
Apple Pascal Documents
Apple Pascal DOS collection
Apple Pascal Fortran Library 1.1
Apple Pascal runtime
Apple Pascal system disk
Softech UCSD Pascal IV for Apple
Attach Bios disks
Call Apple Collection
Date, Number, and String IO utilities (Pascal) (D&L Computing)
ducsd p_code disassembler
Graphics Primitives – Pascal
Guearilla guide to Apple Pascal PIG13
I56502 I.5 UCSD p-System interpreter (Laurie Boshell)
MouseGraphics – Pascal
Pascal Disks – Willamette Apple Connection
Pascal Profile Manager – Startup – 680-0250-A
Pascal Utility Express (no boot)
Pascal maze generator sourcecode
Pascal in depth program collection
Pascal in depth program collection 2
RAMDISK for Apple Apscal
Pascal runtime (incomplete?)
Zap disk editor

Tools to emulate the p-System and manipulate the disk images and volumes

AppleWin is the Apple II emulator that works fine with Apple Pascal

Local copy here, check the AppleWin site for updates.

Ciderpress is the tool to view, extract and manipulate all kind of Apple II disk images, compressed. raw, shrinked etc. UCSD Pascal disk format is handled very well, text files can be extracted as normal text file, code etc is kept identical.

Here a local copy , check the Ciderpress website for updated versions or build yourself from source.
Besides the GUI Ciderpress (see screenshot) a commandline utility MDS writes a directory of the diskimage(s).

MS-DOS hosted p-System

The DOS-hosted p-System

Since, on a real machine, the p-System is emulated, it was reasonable to create a version of it to run as an application program under operating systems that always run in native code. Such versions exist for at least UNIX, DOS, and VAX VMS. There are extremely few differences, perceptible to the user, from the autonomous version.
A new file type is created in the host operating system, whose internal structure simulates a p-System blocked volume; it is therefore called a virtual volume file.
Units to support communications and data exchange between the p-System and the host operating system are added to the operating system, and (at least in the case of DOS) a special filer, DOSFILER.CODE, provides manipulation of DOS directories, and also the creation, mounting, and dismounting of DOS virtual volume files.
The DOS-hosted p-System is run by executing PSYSTEM.COM (experienced DOS users will note the age of this executable by the fact that it is a .COM file, rather than an .EXE), with (almost) arbitrarily many virtual volume files as parameters. The first will be used to boot the system from, so it must contain a bootable system configuration (see the manuals). It will be designated the root volume, and at least at initialization, the prefixed volume. Other virtual volume parameters will also have the volumes they contain mounted on-line.
If the p-System’s file SYSTEM.CONFIG has the appropriate drivers installed, the DOS-hosted p-System, when run on a PC whose hard drive contains autonomous p-System partitions, will mount each partition in addition to mounting the virtual volume files.

An obvious usage of virtual volume files is to place a common boot volume file, and a common volume file of tools and library units, onto a central file server from which all PC’s using the p-System can use them to boot.

On modern systems PSYSTEM.COM can only be used in a DOS emulator (Windows, Linux). DOSBOX works fine, see the console session below.

TDI MS-DOS hosted p-System (full scan!)
Personal computing with the UCSD p-System
Personal computing with the UCSD p-System
Second Edition

Hosted p-System dated 1984 (IV 2.1)

Archive with a complete MS-DOS hosted p-System dated 1984

DOS hosted psystem use:

Start by executing the file psystem (either from command line or double
clicking on it).

It supports volumes #14..#19, volume psystem.vol get mounted on #14 by default.  The volumes can be specified on the command line and are mounted
in order.

To mount or dis-mount volumes from the psystem run the dosfiler.code program:
X->psystem:dosfiler or X->#14:dosfiler.

Hosted p-System dated 1988 (IV 2.2 R1.1

Archive with a complete MS-DOS hosted p-System dated 1988

With MS-Mouse support. Large system volume, alternatives in folders.

This folder contains the sources and some old data for an accounting system.
To run it:-
1. Call the batch file (accs.bat)
2. Ignore the 'redirection error'
3. Enter 'x' (short for 'execute')
4. Program prompts 'Execute what file ?'
5. Enter 'ledger l=*acclib' and hit enter.
6. All passwords are empty.

Sources for the nominal ledger           are in the volume idxacc3:
   "     "   "  sales & purchase ledgers  "   "  "    "    idxspl3:  
   "     "   "  utilities                 "   "  "    "    idxutl3:
The data files                            "   "  "    "    legdat:  
Compiled utilities                        "   "  "    "    accutl:

Sample session with the 1988 version

Assuming that all files can be found at D:\UCSD\PSYS22

D:\ucsd\psys22psystem psystem.vol putil.vol

Command: E(dit, R(un, F(ile, C(omp, L(ink, X(ecute, A(ssem,? [IV.2.2 R1.1] X

Execute what file? DOSFILER

DOS Filer: L(ist dir, E(xt dir, C(hange, R(emove, P(refix, T(o DOS,? [1R1.4] M

Mount what file? PUTIL.VOL


DOS Filer: L(ist dir, E(xt dir, C(hange, R(emove, P(refix, T(o DOS,? [1R1.4] Q

Command: E(dit, R(un, F(ile, C(omp, L(ink, X(ecute, A(ssem,? [IV.2.2 R1.1] F

Filer: L(dir, R(em, C(hng, T(rans, D(ate, Q(uit, B(ad-blks, E(xt-dir,? [6R4.0d] V
Vols on-line:
  1   CONSOLE:
  2   SYSTERM:
  6   PRINTER:
  7   REMIN:
  8   REMOUT:
 12 # PSYS:    [ 5000]
 13 # PUTIL:   [ 1440]
 20 # SYD:     [   61]  on volume PSYS:  starting at block 470
 22 # CON2:    [  131]  on volume PSYS:  starting at block 729
 23 # MSMOUSE: [   34]  on volume PSYS:  starting at block 860
Root vol is - PSYS:
Prefix is   - PSYS:

Filer: L(dir, R(em, C(hng, T(rans, D(ate, Q(uit, B(ad-blks, E(xt-dir,? [6R4.0d] L
Dir listing of what vol ? PSYS:

SYSTEM.FONT        2  4-Jan-84           SYSTEM.PME.86     32  8-Jul-86
SYSTEM.CONFIG     27  1-Jul-99           SYSTEM.FILER      46  6-Jan-86
SYSTEM.SYNTAX     16  5-Feb-87           SYSTEM.MISCINFO    2 23-Jun-99
SYSTEM.COMPILER  116 21-Aug-87           SYSTEM.PASCAL    163  4-May-88
CONFIGURE.CODE    60 25-Sep-84           SYD.SVOL          61 30-Mar-88
SYSTEM.STARTUP    10 31-Aug-87           CON1.SVOL        177 30-Mar-88
CON2.SVOL        131  1-Oct-87           MSMOUSE.SVOL      34  1-Apr-88
SYSTEM.EDITOR    100  3-Apr-95           LIBRARY.CODE      14 17-Nov-86
DISKFORMAT.EDOC   11 27-Jan-88           RATES.TEXT         4 27-Jan-90
VCNTRL.DATA        2  1-Jul-99           RATELIB.TEXT       4  3-May-90
XLVCNTRL.DATA      2 26-Jul-90           LVCNTRL.DATA       2 18-Oct-90
SYSTEM.LIBRARY   127 30-Aug-90           QUICKSTART.CODE   25 29-Mar-84
SVCNTRL.DATA       2 18-Oct-90           TVCNTRL.DATA       2 18-Oct-90
MVCNTRL.DATA       2  2-Dec-88           EXTCHARS.TEXT     26 24-Mar-90
TESTCHAR.TEXT      6 28-Oct-90           DOSFILER.CODE     21 21-Aug-86
30/30 files<listed/in-dir>, 1233 blocks used, 3767 unused, 3756 in largest

Filer: L(dir, R(em, C(hng, T(rans, D(ate, Q(uit, B(ad-blks, E(xt-dir,? [6R4.0d] L
Dir listing of what vol ? PSYS:

READ.ME.TEXT       6  1-Apr-88           CONFIGURE.CODE    60 25-Sep-84
LIBRARY.CODE      14 17-Nov-86           XREF.CODE         28 19-Nov-87
DECODE.CODE       34 26-Nov-86           PATCH.CODE        32 16-May-84
RECOVER.CODE       9  5-Jul-84           COPYDUPDIR.CODE    4  5-Jul-84
MARKDUPDIR.CODE    4  5-Jul-84           DISKSIZE.CODE     15  1-Mar-84
SPOOLER.CODE      11 24-Oct-83           SPOOLOPS.CODE      8 20-Aug-84
QUICKSTART.CODE   25 29-Mar-84           WILD.CODE          7 21-Oct-83
CHKSUMOPS.CODE     6 25-Oct-83           README.BACK        4  8-Apr-86
VCNTRLOOK.TEXT    26  5-Oct-88           VCNTRLOOK.CODE    14 22-May-90
--------.----      1 10-Dec-90           SETUP.CODE        84 19-Jul-84
DISKFORMAT.CODE   11 27-Jan-88           POPTYSE.SVOL     250 16-Nov-90
VCNTRLSTP.TEXT    28 10-Dec-90           VCNTRLSTP.CODE    18 10-Dec-90
SYD.SVOL          61 30-Mar-88           CON1.SVOL        177 30-Mar-88
CON2.SVOL        131  1-Oct-87           MSMOUSE.SVOL      34  1-Apr-88
PAT.SVOL         100 30-Mar-88           DRT.SVOL          38 23-Feb-87
ASI.SVOL         170 23-Feb-87           GETFUNCS.TEXT     14 25-Jan-83
README.TEXT       10  2-Feb-99
33/33 files<listed/in-dir>, 1440 blocks used, 0 unused, 0 in largest

Filer: L(dir, R(em, C(hng, T(rans, D(ate, Q(uit, B(ad-blks, E(xt-dir,? [6R4.0d] P
Prefix titles by what vol ? PUTIL:
Prefix is PUTIL:

Filer: L(dir, R(em, C(hng, T(rans, D(ate, Q(uit, B(ad-blks, E(xt-dir,? [6R4.0d] Q

Command: E(dit, R(un, F(ile, C(omp, L(ink, X(ecute, A(ssem,? [IV.2.2 R1.1] X
Execute what file? QUICKSTART

Quickstart: P(rogram, S(ystem, C(opy, L(ibrary, M(essages, Q(uit [2R3.2] _
Toggle settings:  Copy OFF,  Library copy OFF,  Messages OFF

and so on ...

Back to the initial menu level, just type 'H' to halt the system (back to DOS)


Specifications of the IBM 5150 PC
– Released : August 12, 1981.
– Processor : Intel 8088 running at 4.77 MHz*. Optional Intel 8087 math Coprocessor.
– Language : IBM Basic (written and licensed to IBM by Microsoft).
– Keyboard : 83 Keys, 10 function keys, numeric key pad.
– Removable Storage : zero, one or two Full Height 5.25″ 160Kb floppy disk drives. Optional tape drive or hard drive**.
– RAM Memory (Random Access Memory): Anywhere between 16 and 256Kb. (The very first ones shipped with 16Kb and supported a maximum of 64Kb).
– ROM Memory (Read Only Memory): 64 Kb.
– Graphics Capabilities : Depends on installed Graphics card. Typically: Text mode 40 / 80 character X 40 lines) Graphic mode: Monochrome CGA was common (320 X 200 or 640 X 200).
– Tone generator : Built in Speaker
– Internal Expansion Slots: 5 Internal 8-bit ISA slots.

For the original IBM PC UCSD Pascal IV was available, made by Softech. Due to higher prices and low performance it did not really succeed against MS-DOS.

Product numbers for the UCSD p-System related products (1983)
6024016 UCSD P-System'” with Pascal $625.00
6024033 UCSD Pascal Compiler $175.00
6024017 UCSD P-System'” with FORTRAN 77 $625.00
6024034 UCSD FORTRAN Compiler $175.00
6024040 UCSD P-System'” Runtime Support $50.00
IBM6936523 – User’s Guide for the UCSD p-System
6936526 User’s Guide for the UCSD p-System (First Edition January 1982)
6936529 – “UCSD p-System – STARTUP:, Version IV.0 Release 1”
6936534 – “UCSD p-System – SYSTEM 2:, Version IV.0 Release 1”
6936539 – “UCSD p-System – SYSTEM 4:, Version IV.0 Release 1”
6936544 – “UCSD p-System – UTILITY:, Version IV.0 Release 1”
6936549 – “UCSD p-System – EXTRAS:, Version IV.0 Release 1”
IBM6936580 – Beginner’s Guide for the UCSD p-System
IBM6024033 – UCSD Pascal Reference for the UCSD p-System
6936508 – UCSD Pascal Reference for the UCSD p-System
6936500 – “UCSD p-System – PASCAL:, Version IV.0 Release 1″ language compiler
IBM6936554 – Internal Architecture Guide for the UCSD p-System
6024034 UCSD FORTRAN Compiler
6024034 – The Fortran compiler
Manual 6936518
Disks 6936510 – Fortran-77 disk language compiler
Product 6024040 UCSD P-System'” Runtime Support

6936518 p-System FORTRAN-77 Reference January 1982
6936526 p-System Users Guide January 1982
6936557 p-System Internal Architecture Guide January 1982
6936562 p-System Assembler Reference January 1982
6936583 p-System Beginners Guide January 1982
p-System runtime Supportp-System runtime Support
SC40-0506_PLAN_4000 File Server IBM Personal Computer
UCSD p-System Users Guide April 83


Disk images
Another complete set of disk images, in RAW format also
System disk images in IMA format

Emulate UCSD p-System for IBM PC
To try out the IBM PC version you can use an emulator for the IBM PC (the original one, not a later version!)

An emulator that makes this possible on Windows and Linux is PCEM (
A version that works is version 1.6 as you can see in the following screenshots.

To try this do as follows (Windows)
1. Download and unpack e.g. in C:/pcem, PCEM, here a local copy
2. Download the ROMS for the IBM PC, local copy here
3. Unpack and place the ROM file in C:/pcem/ROMS/IBMPC
4. Download the IMA disk images and unpack in a convenient location
5. Start c:/pcem/PCem.exe and load the disk images as drive A: and B:
6. Reboot the emulator and wait a long time (for me it took minutes!) to see UCSD p-system appear on screen.

Ken Bowles and students

On the origin of UCSD Pascal, p-System p-machine p-code versions I and II, origin and reunions.

The story of UCSD p-System starts with Ken Bowles. When he saw the P2 compiler coming from Zurich he added the idea of making it a real operating system for small computers to teach programming. And with his group of students he achieved that goal, adding much to the success of Pascal!

Principal project members and students of Dr Kenneth L Bowles include:
Mark Allen, Richard Kaufmann, Pete Lawrence, Joel McCormack, Mark Overgaard, Keith Shillington, Roger Sumner, John Van Zandt

On this page documents and stories about those early years, Ken Bowles, his students, the reunions and the transfer to Softech when the commercial success became a conflict with the universities goal.

Invitation to the 2004 reunion.
Includes a photo gallery of previous reunions!

Presentations given at the reunion in 2004

Ken Bowles – Some Insights for UCSD Pascal Generation
John VanZandt The B6700 Era
Lucia Yandell – UCSD Pascal the personal side
Richard Kaufmann – What The Heck Was UCSD Pascal
Roger Sumner – Impact of UCSD Pascal
Mark Overgaard

Reunion 2004

Reunion 2019
Extracts of an article that describes the life of Ken Bowles very well, original here.

UCSD p-System Users Society (USUS)

The UCSD p-System Users Society (USUS) maintained a library of Pascal floppy disks containing source code and programs.
The group was described as “an international non-profit organization dedicated to promoting and influencing software standards to aid in the development of portable software.

Here the disk images for volumes 1 through 29 of the US library, and volumes 3 and 4 of the USUS UK collection, unpacked so the source files are readable.

Also the raw volumes of the USUS library are available

Contents of the library

USUS Newsletter V1N01 1980-08
USUS Newsletter V2N2 1987-12 (Winter 1987-1988)
USUS Newsletter V2N3 1988-03 (Spring-Summer 1988)
USUS Newsletter V2N4 1988-07
USUS Newsletter V2N5 1988-08
USUS Newsletter V2N6 1988-09_10
USUS Newsletter V2N7 1988-11
USUS Newsletter V2N8 1988-12
USUS Newsletter V3N5 1989-05_06
USUS Newsletter V3N6 1989-07_08
USUS Newsletter V4N2 1990-03_04
USUS Newsletter V4N3 1990-05_06
USUS Newsletter V4N4 1990-07_08
USUS Newsletter V4N5 1990-09_12
USUS Newsletter V5N1 1991-01_02
USUS Newsletter V5N3 1991-12

HP Series 80

The Hewlett-Packard series 80 of small scientific desktop computers was introduced in 1980, beginning with the popular HP-85 targeted at engineering and control applications. They provided the capability of the HP 9800 series desktop computers with an integrated monitor in a smaller package including storage and printer, at Features

The first model of the Series 80 was the HP-85, introduced in January 1980. In a typewriter-style desktop case, the $3250 HP-85 contains the CPU and keyboard, with a ROM-based operating system (like the 9800 series), 16 kB dynamic RAM, a 5-inch CRT screen (16 lines of 32 characters, or 256×192 pixels), a tape drive for DC-100 cartridges (210 kB capacity, 650 B/s transfer), and a thermal printer. Both the screen and printer display graphics in addition to text, and the printer can copy anything shown on the screen. The chassis includes four module slots in the back for expansion which can hold memory modules, ROM extensions, or interfaces such as RS-232 and GPIB. All components were designed at the Hewlett-Packard Personal Computer Division in Corvallis, Oregon, including the processor and core chipset.

Later models offered variations such as different or external displays, built-in interfaces or a rack-mountable enclosure.

The machines were built around an HP-proprietary CPU code-named Capricorn running at 625 kHz (0.6 MHz, sic) and had a BASIC interpreter in ROM (32 kB).[3] Programs could be stored on DC-100 cartridge tapes or on external disk/tape units.

Despite the comparatively low processor clock frequency, the machines were quite advanced compared to other desktop computers of the time,[4] in particular regarding software features relevant to technical and scientific use. The standard number representation was a floating point format with a 12-digit (decimal) mantissa and exponents up to ±499. The interpreter supported a full set of scientific functions (trigonometric functions, logarithm etc.) at this accuracy. The language supported two-dimensional arrays, and a ROM extension made high-level functions such as matrix multiplication and inversion available.
One of the operating systems available was the the UCSD p-System (IV).

Relevant documents

UCSD p-System Version IV.1 FORTRAN Reference Manual August 1982 00087-90389

copied from original with LIFUTIL utility.
UCSD p-System Fortran-77 compiler (disc 00087-12161), copied from original disc
UCSD p-System Pascal compiler (disc 00087-12160), copied from original disc
UCSD p-System Utilities (disc 00087-12155), copied from original disc
UCSD p-System (disc 00087-12157), copied from original disc

All documents and software are from the thanks to Brett Hallen.