P2 Pascal Compiler

As the name implies, P2 is the second version of the Portable Pascal compiler. It seems to be the first one widely distributed and also the first one to have surviving sources.

One of the distributions of P2 went to California, UCSD. And that version evolved into the UCSD Pascal system.

Mark Rustad took the P2 source, stripped it (no reals e.g.) and changed the p-code to a compact bytecode in Pascal-M.

  *                                                       *         
  *                                                       *         
  *     ******************************************        *         
  *                                                       *         
  *                                                       *         
  *     STEP 5:   SYNTAX ANALYSIS INCLUDING ERROR         *         
  *               HANDLING; CHECKS BASED ON DECLARA-      *         
  *     10/7/73   TIONS; ADDRESS AND CODE GENERATION      *         
  *               FOR A HYPOTHETICAL STACK COMPUTER       *         
  *                                                       *         
  *                                                       *         
  *     AUTHOR:   URS AMMANN                              *         
  *               FACHGRUPPE COMPUTERWISSENSCHAFTEN       *         
  *               EIDG. TECHNISCHE HOCHSCHULE             *         
  *               CH-8006 ZUERICH                         *         
  *                                                       *         
  *                                                       *         
  *                                                       *         
  *     MODIFICATION OF STEP 5 OF PASCAL COMPILER         *         
  *     *****************************************         *         
  *                                                       *         
  *     THE COMPILER IS NOW WRITTEN IN A SUBSET OF        *         
  *     STANDARD PASCAL  -  AS DEFINED IN THE NEW         *         
  *     MANUAL BY K. JENSEN AND N. WIRTH  - AND IT        *         
  *     PROCESSES EXACTLY THIS SUBSET.                    *         
  *                                                       *         
  *     AUTHOR OF CHANGES:   KESAV NORI                   *         
  *                          COMPUTER GROUP               *         
  *                          T.I.F.R.                     *         
  *                          HOMI BHABHA ROAD             *         
  *                          BOMBAY - 400005              *         
  *                          INDIA                        *         
  *                                                       *         
  *     ON 20/5/74.                                       *         
  *                                                       *         
  *                                                       *         

Original P2 compiler source
Original P2 interpreter source

Scott Moore’s ISO7185 version of P2

Books on UCSD P-system

Scanned books on UCSD p-System

Note that these are complete books for download, large sizes!

Part IV of Apple Pascal 1.3 Technical reference
Information about the internals of Apple Pascal
P-Source A Guide to the Apple Pascal System
Randall HydeInvaluable information about the internals of UCSD Pascal on the Apple
Beginners Guide to UCSD Pascal 1979

by Kenneth Bowles

UCSD Advanced UCSD Pascal Programming Techniques
E. Wilner, B. Demchak
UCSD book UCSD Pascal II.-0 listing
UCSD book UCSD_PASCAL II.0 Manual March 1979
UCSD book UCSD PASCAL I.4 Manual January 1978
UCSD book UCSD PASCAL II.0 IO System December 1978
UCSD book UCSD Pascal II.0 USer’s Manual March 1979
UCSD book Apple Pascal History DTC92

David Craig

UCSD book TI UCSD Compiler

UCSD Compiler manual IV.0 for TI-99

Softech p-System version 4 manuals

From http://www.sageandstride.org/

Internal Architecture 1-140.41.A Softech p-System 1983

p-System Program Development
p-System Program Development Softech p-System 1983

p-System Operating System Softech p-System 1983

Apple Pascal manuals

(also available in downloadable pdf format at http://www.apple-iigs.info/doc/home.htm )

Addendum to Apple Pascal Language Reference Manual

Apple Pascal 1.2 Update manual

Apple Pascal – A Hands-on Approach

Apple Pascal Language Reference Manual

Apple Pascal Operating System Reference Manual

Apple Pascal Language Reference Manual (1980)

Apple Pascal Operating System Addendum (Apple)

Apple Pascal Operating System Reference Manual (1980)

Apple Pascal, a hands-on approach (1981)(Arthur Luehrmann & Herbert Peckham)

Apple III Pascal books

Available on www.1000bit.net

Apple /// Pascal – Introduction, Filer, and Editor

Apple III Pascal – Programmer’s Manual Volume 1

Apple III Pascal – Programmer’s Manual Volume 2

Apple III Pascal 1.1 Update

UCSD files

Here you find a superset of files from the, now inactive, UCSD Pascal Yahoo group file archive.

COMPIV.PAS Source for version IV.13 compiler

Pascal odds and ends from Compuserve


Disassembly stuff Tools and sample output


Apple Pascal v1.1 compiler diassembly

Disasm.lha An archive containing source for a disassembler written by UCSD personnel
ducsd.shk A P-Code disassembler including source (Kyan Pascal)
p-decode.zip by Richard Stearn

Disk images for various systems

Apple1.sdk Version of APPLE1: modified so that it does not automatically erase files, found with “bad” dates, while booting
ATTACH1.do Disk distributed by the Philadelphia Area Computer Society (PACS
ATTACH2.do Disk distributed by the Pascal Interest Group of Washington Apple Pi (WAP
FORT1.do Image of 5.25 inch disk need to run FORTRAN (uses P-Code)
FORT2.nib Nibbleized image of 5.25 inch disk need to run FORTRAN (uses P-Code)
I56502.DSK This is an Apple 2 floppy image of a hacked system.apple to run I.5 pcodes with a I.5 system in it
pdepth.sdk Image of 5.25 inch disk containing first half of files in “DPTH2.sit”
pdepth2.sdk Image of 5.25 inch disk containing second half of files in “DPTH2.sit”
PIG13.do Disk from WAP with “The Guerilla Guide to Pascal”
PPMPATCH.SDK ShrinkIt archive of a disk containing Pascal ProFile Manager patched so that PPM will work with 3.5 inch drives and drives connected to Apple SCSI cards
RAMdrivers.dsk RAMDrive software for many versions of Apple Pascal
README.TEXT Extracted from RAMdrivers.dsk
src.po Zapdisk memory editor details

UCSD for early Macs

UCSDPascal1.image Disk images created with Disk Copy 4.2
Manual The MacAdvantage UCSD Pascal 1984

Various files

0index.txt What is in the files section
Mostek Z80.zip UCSD 1.5 Mostek Z80 in zip archive
15SYS1.VOL Disk 1 of the UCSD PASCAL I.5 system with source, for CP/M. This is a 360k disk image mountable as avolume by the PC dos hosted p-system
15SYS2.VOL Disk 2
Adap40.zip Documentation for Installation of the Adaptable IV.0 UCSD Pascal
ADAP6502.VOL 6502 adaptable psystem from OSI disks
AltosIIZ80.zip UCSD Altos II.0 Z80
AltosUCSDII0Z80.sit UCSD II.0 ? disk images of Z80 Altos
CPMADAPT.exe CP/M Adaptable system (vers IV.0)
DPTH2.sit Call A.P.P.L.E. All About Pascal files for Apple Pascal 1.1
psystem1.zip DOS hosted psystem executables part 1
IV2UTILS.VOL DOS hosted psystem part 2
Makeim.lha Creates an Apple Pascal image file
MostekUCSDI5Z80.sit UCSD 1.5 8″ working images Z80 Mostek
pdp10pascal.zip Pascal for the PDP-10 predating USCD Multisupport.txt Multitasking Pascal on the TI 99/4A
psys22.zip MS-DOS host based p-system IV2.2 R1.1
TECHREF3.PDF Apple II Pascal 1.3 Technical Reference
RAINBOW.zip Rainbow pascal disks converted to DOS hosted files
SOURCEIV.zip Source code for IV.13 and some IV.2 15 named disks
UCSDCPM.zip source of 8080 UCSD Interpreter II.0 CP/M boot
ucsdpme010.tgz UCSD I.5 interpreter for Unix
VOLITION.VOL Bootable Volition System’s II.0 p-code system that hosted their modula-2 compiler
Z80INTERP20.zip Complete source code for the Z80 interpreter for II.0 under CP/M

I.5 compiler, interpreter and files for PC

Decode1.exe p-code decoder for I.5 p-codes
Interp7.exe Experimental interp for I.5 pcodes on the PC, runs under MSDOS/Windows with normal dos files
interp7src.zip Source for INTERP7.EXE, the I.5 interp under Dos, in Borland Pascal 7
pc157g.zip Source for a DOS I.5 pascal cross compiler
PC157Jsrc.zip Source for p-code compiler to generate I.5 pcodes, based on original UCSD I.5 compiler. Runs under the I.5 interp like this: “INTERP7 PC157J”
Syntax.txt Error codes for the compler PC157J.COD
system.mis This is a system.miscinfo file that some I.5 code files will need when running under MSDOS using INTERP7.EXE as the interpreter. Place it in the same directory as the INTERP7.EXE file
SYSTEM.MISCINFO Same as above (probably not needed as)

Utilities for manipulating ‘.VOL’ files

floppyread.zip windows program to convert the images of the II.0 source floppies to .VOL files. mountable by the DOS and UNIX psystem.
PSYSNSI.zip DOS utility to extract files from a p-system .VOL image

UCSD images from the Don Maslin CP/M collection, like Altos


Source code to compiler, system, editor for release III for the Western Digital Pascal Microengine


Reunion Stuff Some files from the UCSD Pascal 30th Reunion

John VanZandt – The B6700 Era.pdf The Era of the Beast
Ken Bowles – Some Insights for UCSD Pascal Generation.pdf
Lucia Yandell – UCSD Pascal the personal side.pdf
Mohan Paturi – Welcome UCSD Pascal Team.pdf
Richard Kaufmann – What The Heck Was UCSD Pascal.pdf
Roger Sumner – Impact of UCSD Pascal.pdf
Steve Franklin – UCSD Pascal in Education.pdf

Pascal II.x source files created by examining P-code

FILER.TEXT Filer source created from version 1.1 of Apple Pascal

Softech Manual partial sources for 1983 manual set


Pascal source text files for UCSD system components


UCSD p-System I.5 Compiler sources


Files for the TI-99/4A UCSD P-System


Various programs and utilities for II.0 and II.1

ODMCSU.TEXT screen unit

More UCSD files

UCSD documents

UCSD Pascal 1.4 manual January 9178
UCSD Pascal 1.4 manual September 1978
UCSD Pascal II.0 System December 1978
UCSD Pascal II.0 listing
UCSD Pascal II.0 Manual 1979

Western Digital Pascal Micro Engine

Pascal Micro Engine Technotes
Pascal Micro Engine July 1982
Pascal Micro Engine Reference Manual March 1979
Pascal Micro Engine News July 1979
Pascal Micro Engine UCSD Pascal Operating System Reference Manual July 1982

Softech manuals

Softech Operating System Guide 1983
Softech Programming Development 1983
Softech Asssembler 1983
Softech p-SYtem Internal Architecure 1983
Softech Corvus Supplement 1983
Softech MAintenance NEws VOlume 1 No 2 March 1980
Softech IV Addenda
Softech Internal Architecture 1981

The SAGE computer, produced in the 1980’s by SAGE Computer Technology , is a 68000 cpu based with a version IV implementation of the p-System. David Erhart has collected much information on this machine at Sage computers. Of much interest are the version IV manuals like Internal Architecture manual and p-System Operating manual.

p-System for the Digital Rainbow

UCSD on Sage Computer

Internal Architecture manual
p-System Operating System manual
Sage Computer p-System Program Development manual

UCSD sources

Source archive at UCSD of early UCSD p-System for the Terak computer I.4 and I.5. Complete sources!

UCSD Pascal 1.5 sources

UCSD Pascal 1.5 sources

Contents of I.5 sources archive:

P.UCSD Pascal 1.5 Binder.txt
P.UCSD Pascal 1.5 Compiler.txt
P.UCSD Pascal 1.5 Disassembler.txt
P.UCSD Pascal 1.5 LibMap.txt
P.UCSD Pascal 1.5 Librarian.txt
P.UCSD Pascal 1.5 Linker.txt
P.UCSD Pascal 1.5 PIO Unit.txt
P.UCSD Pascal 1.5 PIO.txt
P.UCSD Pascal 1.5 Radix.txt
P.UCSD Pascal 1.5 System.txt
UCSD I.5 Assembler.pdf
UCSD I.5 Assembler.txt
UCSD Pascal 1.5 Binder.txt
UCSD Pascal 1.5 Compiler.txt
UCSD Pascal 1.5 Disassembler.txt
UCSD Pascal 1.5 Interp 3.MAC
UCSD Pascal 1.5 Interp CopyRite.txt
UCSD Pascal 1.5 Interp DL.MAC
UCSD Pascal 1.5 Interp EIS.MAC
UCSD Pascal 1.5 Interp IOTR.MAC
UCSD Pascal 1.5 Interp LP.MAC
UCSD Pascal 1.5 Interp LSI.MAC
UCSD Pascal 1.5 Interp Macs.MAC
UCSD Pascal 1.5 Interp MainOp.txt
UCSD Pascal 1.5 Interp ProcOp.txt
UCSD Pascal 1.5 Interp QX.MAC
UCSD Pascal 1.5 Interp QXBOOT.txt
UCSD Pascal 1.5 Interp RK.MAC
UCSD Pascal 1.5 Interp RKBOOT.txt
UCSD Pascal 1.5 Interp RX.MAC
UCSD Pascal 1.5 Interp RXBOOT.txt
UCSD Pascal 1.5 Interp TERAK.txt
UCSD Pascal 1.5 Interp TK.MAC
UCSD Pascal 1.5 LibMap.txt
UCSD Pascal 1.5 Librarian.txt
UCSD Pascal 1.5 Linker.txt
UCSD Pascal 1.5 PIO Unit.txt
UCSD Pascal 1.5 PIO.txt
UCSD Pascal 1.5 Radix.txt
UCSD Pascal 1.5 System.txt
UCSD Pascal Compiler i3.pdf
UCSD Pascal Compiler i3.txt
UCSD Pascal Compiler i4.pdf
UCSD P-System 1.5 Sources.pdf
UCSD P-System 1.5 Sources.txt

UCSD P-System

Pascal Px compilers were one of the various variants based on the brilliant idea of compiler-interpreter combinations. Started by Wirth in Zurich and perfected in the UCSD P-System. The abstraction delivered by the virtual machine implemented made these systems for the most part hardware independent. And the concept has not lost its value, the Java Virtual Machine with its byte and the .NET ideas are modern variants (and more viable due to the high performance for the money of modern cpu’s!) of the same.

The UCSD P-System (and the popular variant Apple Pascal) extended the idea of compiler-interpreter to a complete and easy to use operating system. All character based and now looking old-fashioned. The UCSD P-System is a brilliant implementation of operating system, utilities and compilers, usable on very limited hardware like the Apple II, all writen in a high-level language. The compromise of using a p-code interpreter with a very small memory footprint for programs made it slow but powerful, and easy to run unaltered on different hardware. In fact, Java is identical, bytecode and machine indepedent. So the idea was not that bad at all!

Run the UCSD p-System on modern systems

You can still run old and newer versions of the UCSD P-System on your Windows or Linux PC in a DOS box.

  • You can run the CP/M I.5 version for CP/M with Dave Dunfields Northstar Horizon simulator and the Northstar UCSD Pascal disks
  • Grab a Apple II(GS) emulator (like KEGS) and find the Apple Pascal 1.x (close to II.1) archives (on ftp.asimov.com for example) and run Apple Pascal.
  • For the UCSD p-System IV 2.2: download this archive, unpack it in a directory on your PC and either use the Windows dos box or the Linux (X)DOSEMU to see the latest and greatest version of the (MS-DOS hosted) p-System.Commandline is:
    > psystem psystem.vol <any other virtual volume file>.Start the DOSFILER program to exchange files between DOS and the virtual p-System file system.
  • Udo Munk has recreated various CP/M systems in an emulator on Unix from sources, and also the UCSD p-System. See here for a Quickstart to run UCSD p-System.

UCSD in Z80 CP/M systems, for an emulator compl;ete with many iamges includin sources : http://www.autometer.de/unix4fun/z80pack/#ucsd_quick