Sage and TDI

The Sage II computer was introduced by Sage Technology of Reno, Nevada in 1982. The quick synopsis of the machine is that it contains a 68000 running at 8 MHz and has 512 KB of DRAM. As is obvious from the picture, it has two integral 5.25″ floppies. It had no hard disk (that was left to the Sage IV). External connections included a serial port for communication with a terminal, a serial port for communication to a modem, a parallel port for connection to a printer, and an IEEE 488 port.

There were two versions of the Sage II. The earlier version had full height 5.25″ floppies; the later version had half height 5.25″ floppies and a corresponding reduction in the height of the box. Another way to distinguish the machines is that the first edition had under bars and over bars on the “II” of “Sage II”, while the second didn’t have them (see the picture above).

The UCSD p-System
More interesting than the hardware is that the primary operating system used by the Sage II was the UCSD p-System, specifically a multi-user version of p-System IV. The UCSD p-System was an operating system written in Pascal with a lot of standard software for writing/compiling/debugging Pascal programs (compilers for other languages also existed). Eventually UCSD transferred ownership and rights to SofTech, who continued developing it, including the version used by the Sage.

The p-System wasn’t a native compiler. The source program was compiled to an abstract stack machine using a pseudo machine language, called p-code. The “p” of “p-System” stands for pseudo. Like Java, the p-code programs were then interpreted by a native machine language program. Although this extra level of interpretation sapped performance, it also meant that the p-System could be (and was) brought up easily on a machine since most of the OS and utility software didn’t even need to be compiled — p-code was transportable across very different machines.

There were four versions of the p-code architecture, and the Sage used the final one, p-System IV. The original p-code architecture could address only 64 KB of RAM.
The IV edition was modified to allow up to 64 KB of p-code and 64 KB of data. As the Sage had 512 KB of DRAM, only 128 KB was used by the p-System, leaving 384 KB for running the p-code interpreted and, mostly, a RAM disk.

Reports exist that say the p-code files could be compiled to native code to achieve faster run times for many types of program

The SAGE IV was released in 1983.
TDI was a UK based distributor, that sold Sage computers branded TDI (see the documents section below for examples)

Hardware:
Board0: CPU: MC68000 @ 8 MHz, 2× serial RS-232 ports 19.2 kbit/s, Parallel input/output (PIO) for printers, GPIB, Floppy disc controller, 512 KByte DRAM. Same as in SAGE II.
Board1: 4× serial RS-232 ports 19.2 kbit/s, Hard disk controller, 512 KByte DRAM.
Memory consisting of 64 Kbit 150 ns memory modules. Parity error protected setup.
Minimum system memory is 256 KByte.
Storage: 1× 5¼” 800 KByte F.D. drive. 1× 5 – 40 MByte Winchester harddisk.
Built-in multi-user BIOS.
Introduced in November 1982

The included operating system was the UCSD p-System. Many other operating systems were available[8] including CP/M-68K, Idris, PDOS, HyperFORTH Plus, BOS, TRIPOS, Mirage, and MOSYS. Programming languages available included Pascal, Modula-2, C, FORTRAN77, BASIC, 68000 macro assembler, APL, LISP and Forth.

Relevant documents

Assembler Manual 1983
p-System Program Development 1983
p-System Operating System Manual 1983
TDI UCSD Operating System
Contents only, identical to Sage/Softech manuals
pSystem_Fortran_BASIC_System_Internals.pdf
pSystem Users Manual Editors Pascal Assembler
Getting started with Sage II/IV
TDI Getting started
identical to getting started with Sage II/IV listed above
TDI Internal Architecture guide
Identical to Softech Internal Architecture Guide
TDI Internal Architecture guide
Identical to Softech Internal Architecture Guide
TDI Users’ Manual Supplement
Identical to Softech Users’ Manual Supplement
TDI Fortran Reference Manual
Contents only, see the HP Series 80 page for a full manual
Timberline Spreadsheet 1982

Software
Sage disk images (IMD format)
Sage IV disk images unpacked

Apple III Pascal

When Apple developed its Apple /// computer (1980 – 1985, 6502 CPU, 2 MHZ), it developed most of its software for this machine with Pascal.
Apple used the Apple ][ Pascal system to create the Apple /// Pascal system. As such, /// Pascal generated P-Codes for a stack-based architecture. The ///’s Pascal language syntax was extended (e. g. otherwise clause in case statements) and like Apple ][ Pascal also supported separate program units. Access to the ///’s native 6502-based operating system, SOS (Sophisticated Operating System, or Sara’s OS), also existed via a special Pascal unit called SOSIO. This OS unit also allowed programmers access to the ///’s larger memory, 256k bytes vs. 64k bytes for the ][ computer.
Apple produced several versions of Apple /// Pascal: 1. 0, 1. 1, 1. 2, 2.0.
Version 2.0 of /// Pascal was unique in that it came with extensive technical documentation called the /// Pascal Workbench and consisted of around 1,000 pages. Version 2. 0’s Pascal compiler also produced a compilation listing consisting of the generated P-Code interleaved with the Pascal source code lines. /// Pascal also supported via a conditional compilation directive the compilation of Apple ][ Pascal programs and produced Apple ][ format code files.

Documentation for the /// Pascal system was excellent. This included a language manual, an operating system manual, and a very detailed runtime architecture manual which also listed all the P-Codes.
For /// Pascal Apple developed a very sophisticated floating-point implementation called SANE (Standard Apple Numeric Environment). SANE was based upon the IEEE floating-point standard. /// Pascal versions 1.0 and 1.1 supported only 4 byte REAL numbers, version 1.2 supported the higher quality 8 byte EXTENDED numbers. SANE went on to become the floating-point engine for Apple’s Lisa and Macintosh computers.

Most of Apple’s software for the /// was developed with the Pascal system. This included the System Utility Program and Backup ///.
The key players for Apple /// Pascal were Ira Rubin and Al Hoffmann. Support for /// Pascal ended when Apple discontinued the /// computer in 1985. From this date onwards Apple seems to have ended its involvement with Pascal which generated P-Code, opting
instead to deal fully with native code generators.

Documents on Apple III Pascal

Introduction, Filer and Editor
Programmer’s Manual Volume 1
Programmer’s Manual Volume 2
Apple III Pascal 1.1 Update
Pascal Technical Reference Manual.
Scanned by Dave Schmenk
Apple III Pascal – Technical Reference Manual
suppplement SOS
Numerics Manual:
A Guide to Using the Apple III
Pascal SANE and Elems Units.
Scanned by Dave Schmenk

Apple III Pascal software

In PRODOS format, inspect with Ciderpress.
Apple 3 Pascal version 1.0 Disk 1 – Bad Filer program
Apple 3 Pascal version 1.0 Disk 2
Apple 3 Pascal version 1.0 Disk 3
Apple 3 Pascal version 1.1 Disk 1
Apple 3 Pascal version 1.1 Disk 2
Apple 3 Pascal version 1.1 Disk 3
Apple 3 Pascal version 1.2 Update Disk 1
Apple 3 Pascal version 1.2 Update Disk 2
Apple 3 Pascal Toolkit Version 1.0B Volume 1
Apple 3 Pascal-Based SOS Access Routines – Source (Paul Hagstrom)

Apple III Pascal Technotes

RPS File Space Allocation
Printing from BASIC and Pascal
Mapping of SOS error codes
SOS Error Codes
SYSTEMP0000X files
Passing strings to and from functions in Pascal III
Reading special keyboard characters (1 of 2)
Reading special keyboard characters (2 of 2)
Apple II Parallel Printer Interface Cable Issue
Changing text modes
Comparison to Apple II Pascal (1 of 2)
Comparison to Apple II Pascal (2 of 2)
Error code summary
Pascal III Editor: Inserting control characters
Listing large directories
SEEK
Accessing the extra memory (1 of 5)
Accessing the extra memory (2 of 5)
Accessing the extra memory (3 of 5)
Accessing the extra memory (4 of 5)
Accessing the extra memory (5 of 5)
Typeahead Killer
Intrinsic Units
Regular Units
Apple III: Pascal ToolKit
Apple III: Console Driver–Screen Mode Switching Program
Apple III: Console Driver–Changing the Character Set
Apple III: Manual Errata–Standard Device Drivers Manual

Test Apple Pascal III

A real Apple III is a collectors item and hard to find in working state.
There is a working emulator with pre-installed Apple pascal and more as part of the MESS suite.
Here is a link to the emulator

Texas Instruments and UCSD

On this page information on two Texas Instruments computers where UCSD p-System (IV) was available:
Texas Instruments TI-99/4A and Texas Instrument Professional Computer

Texas Instruments TI-99/4A

The Texas Instruments TI-99/4A is a home computer released in June 1981 in the United States. It is an enhanced version of the less successful TI-99/4 which was released in late 1979.[2] The TI-99/4 and TI-99/4A are the first 16-bit home computers, using the Texas Instruments TMS9900 16-bit CPU.[3] Both models include hardware support for sprites, using TI’s own chips, and multi-channel sound, making them some of the first home computers to include such custom coprocessors.
The TI-99/4A remained mostly the same as its predecessor, with the major changes being a full-travel keyboard to replace the calculator-style keys, an improved graphics chip with support for bitmap modes, and a cleaner method of adding expansion cards. The price was also half of the original model. Texas Instruments supported the 4A with a line of peripherals, including a speech synthesizer, and a “Peripheral Expansion System” box to contain hardware add-ons. And the UCSD p-System!

UCSD p-System Compiler
TI UCSD Compiler
UCSD Turtlegraphics manual
UCSD p-System Assembler Linker Part 1 Assembler
UCSD p- System Assembler Linker Part 2 Linker
UCSD p-System Editor Files Utilities Part 1 Editor
UCSD p-system Editor Files Utilities Part 2 Filer
UCSD p-System Editor Files Utilities Part 3 Utilities
UCSD p-System p-code card

User guide TI p-System
Multi tasking support
SYSMAP The p-card

Compiler disk
Assembler Linker disk
Utilities disk
Editor disk
Turtle Graphics disk
The p-card ROMs
UCSD p-System for TI-994A (5.25-SSSD) (alt disk set)
UCSD p-System for TI-994A and Manuals (5.25)

Texas Instrument Professional Computer

Intel 8088 @ 5 Mhz. 16 bits.
720 x 350 Graphic mode
80 x 25 Text mode
320 360 Kb. Optionally 5 or 10 Mb.
MS-DOS 1.25, CP/M-86, CCP/M-86, UCSD p-System.
September 1985

UCSD p-System Operating System Reference
April 1983
UCSD p-System Introduction
April 1983
UCSD p-System Program_Development Software Library
April 1983
UCSD p-System Internal Architecture Software Library
April 1983.pdf
UCSD Pascal Software Library
April 1983
UCSD p-System Assembler Software Library
April 1983
TTY Communications Software Library
June 1984
UCSD p-System Configuration
July 1983

Other set of manuals

UCSD Yahoo group

From 2004 to 2019 a Yahoo group was active, dedicated to the UCSD p-System.
Many discussions and files were added to this group.
When Yahoo decided to shut down groups I made a dump of files and messages in 2019

Yahoo files archive
Yahoo messages in one big text file with meta information

Most files have found their way into the applicable UCSD page also.

The groups lives on at groups.io at https://groups.io/g/UCSDPascal

  
    File        : /Compiler/UCSDCMPA.PAS 
  Description : Source File 1 of 6 of UCSD Pascal Compiler for the PDP-11 From Compuserve
  
  
  File        : /I56502.DSK 
  Description : This is an Apple 2 floppy image of a hacked system.apple to run I.5 pcodes with a I.5 system in it 
  
  
  File        : /I5forPC/Interp7.exe 
  Description : Experimental interp for I.5 pcodes on the PC, runs under MSDOS/Windows with normal dos files 
  
  
    File        : /Ucsdramd 
  Description : RAMDrive software for many versions pf Apple Pascal 
  
  
  File        : /15SYS1.VOL 
  Description : Disk 1 of the UCSD PASCAL I.5 system with source, for CP/M.  This is a 360k disk image mountavle as avolume by the PC dos hosted p-system 
  
    
  File        : /ADAP6502.VOL 
  Description : 6502 adaptable psystem from OSI disk
  
  
  File        : /VOLITION.VOL 
  Description : BOOTABLE Volition System's II.0 p-code system that hosted their modula-2 compiler 
  
    File        : /psystem1.zip 
  Description : DOS hosted psystem executables part 1 
  
    File        : /IV2UTILS.VOL 
  Description : DOS hosted psystem part 2 
  
    File        : /PECAN.VOL 
  Description : Part of DOS hosted package 
  
    File        : /RAINBOW.zip 
  Description : Rainbow pascal disks converted to DOS hosted files
  
    File        : /UCSDEDIT.ZIP 
  Description : Complete source code for the E.4 editor (SYSTEM.EDITOR). You saw it here first! 
  
    File        : /CPMADAPT.zip 
  Description : CP/M Adaptable system 
  
    File        : /Adap40.zip 
  Description : Documentation for Installation of the Adaptabe IV.0 UCSD Pascal
  
    File        : /Global20.txt 
  Description : GLOBAL DECLARATIONS FOR UCSD PASCAL II.0 
  
    File        : /Global30.txt 
  Description : GLOBAL DECLARATIONS FOR UCSD PASCAL III.0 
  
    File        : /AltosUCSDII.0 ? Z80.sit 
  Description : UCSD II.0 ? 8" disk images of Z80 Altos, missing asm ? 
  
    File        : /MostekUCSDI.5Z80.sit 
  Description : UCSD 1.5 8" working images Z80 Mostek 
  
    File        : /RevEngII/FILER.TEXT 
  Description : Filer source created from version 1.1 of Apple Pascal 
  
    File        : /UCSDCPM.zip 
  Description : source of 8080  UCSD Interpreter II.0 CP/M boot
  

  File        : /1.5 Mostek Z80.zip 
  Description : UCSD 1.5 Mostek Z80 in zip archive 
  
   File        : /psys22.zip 
  Description : MS DOS host based p-system IV2.2 R1.1 
  
   File        : /Disassembly stuff/p-decode.zip 
  Description : Sent to me by Richard Stearn for uploading here

   File        : /Disk images/Apple II/ATTACH1.do 
  Description : Disk distributed by the Philadelphia Area Computer Society (PACS) 

  File        : /Disk images/Apple II/ATTACH2.do 
  
   File        : /Z80INTERP20.zip 
  Description : Complete source code for the Z80 interp for II.0 under CP/m 
  
    File        : /ucsd_pme-0.1.0.tgz 
  Description : A UCSD I.5 interpreter for Unix 
  
   File        : /Disk images/Apple II/PPMPATCH.SDK 
  Description : A ShrinkIt archive of a disk containing Pascal Partition Manager patched so that PPM will work with 3.5 inch drives and drives connected to Apple SCSI cards 
  
    File        : /Version II stuff/ODMSCU.TEXT 
  Description : A generic screen unit from Arley Dealey of Volition Systems. This unit peeks as system.miscinfo to work out how to move cursor and clear screen
  
    File        : /I5forPC/pc157g.zip 
  Description : Source for a DOS I.5 cross compiler 
  
    File        : /I5forPC/interp7src.zip 
  Description : Source for INTERP7.EXE, the I.5 interp under Dos, in Borland Pascal 7 
  
    File        : /I5forPC/PC157Jsrc.ZIP 
  Description : 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"
  
    File        : /COMPIV/COMP41.PAS 
  Description : Compiler source ver IV.13 
  
      : /COMPIV/COMPIV.PAS=20
   Description : Compiler source ver IV.13=20
   
     File        : /Release III (MicroEngine) src/psystem-III.zip 
  Description : Release III system sources
  
    File        : /Release III (MicroEngine) src/compiler-III.zip 
  Description : Release III compiler sources


  File        : /Release III (MicroEngine) src/calc-III.zip 
  Description : Release III calculator source 
  
    File        : /Release III (MicroEngine) src/peditor-III.zip 
  Description : Release III editor sources 
  
    File        : /SOURCEIV.ZIP 
  Description : Source code for IV.13 and some IV.2 15 named disks 
  
    File        : /Laurie's Utilities/PSYSNSI.ZIP 
  Description : DOS utility to extract files from a p-system .VOL image 
  
    File        : /TI/UCSD Compiler.pdf 
  Description : UCSD Compiler manual IV.0 for TI-99 
  
    File        : /SUDOKU.PAS 
  Description : sudoku solver in UCSD Pascal 
  
    File        : /Apple2Pascal1.1IntDisasm.pdf 
  Description : Apple II Pascal 1.1 P-code interpreter disasm by Willi Kusche 

  File        : /PrelimGuideToApplePascalInterfacingForeignHardware.pdf 
  Description : Scan of the Preliminary Apple Pascal Guide to Interfacing Foreign Hardwary - 10 Dec 1979 
  
    File        : /Disk images/Apple II/BOOTPPM.DSK 
  Description : ProFile Partition Manager patched to allow creating an Apple Pascal area in ProDOS volumes using AppleWin 
  
    File        : /AppleIV/BOOTSEC.SHK 
  Description : Source for boot sectors and a listing file 
  
    File        : /Tiny Pascal Compiler/Tiny Pascal Compiler.txt 
  Description : Tiny Pascal compiler (TRS-80, Model III) 
  
    File        : /Tiny Pascal Compiler.txt 
  Description : Tiny Pascal compiler (TRS-80, Model III)
  
    File        : /Laurie's Utilities/FloppyRead.zip 
  Description : Updated EXE and source in Delphi 3, Now handles any size 8 inch disc image

  File        : /Laurie's Utilities/PSYSREAD.ZIP 
  Description : Windows program to read and extract files from ANY p-system .VOL image. Includes Delphi source and EXE 


  File        : /Laurie's Utilities/z80Emulator.zip 
  Description : For a windows based machine. This is an emulator that will boot and run disc images of II.0, I.5 and I.4. It emulates the Z80 or 8080 SYSTEM.MICRO or SYSTEM.INTERP on these disc images. Stable images for the previous versions are included. 
  
  File        : /Laurie's Utilities/Z80EMSource.zip 
  Description : Source code for the z80 emulator in Delphi 7. No machine code is used so it should be portable to Lazarus. I just need a decent CRT component to make it work in Lazarus/Linux 

  File        : /Laurie's Utilities/PascalBooter.zip 
  Description : The emulator will need PASCAL.COM to bootstrap the floppy.  Here is the 8080 source code 
  
    File        : /bootable-rk0.dsk.gz 
  Description : PDP11 bootable RK05 ucsdII.0 disk image 
  
    File        : /PDP11 stuff/bootable-rk05.zip 
  Description : Ron Young's bootable RT-11 disc image for building PDP-11 II.0 interp. Use the simh PDP-11 emulator.  
  
    File        : /VERSION IV21 RUNTIME STUFF/RSP FOR IV21.ZIP 
  Description : Runtime support for IV.13 and IV.21

  File        : /VERSION IV21 RUNTIME STUFF/BIOS FOR IV21.ZIP 
  Description : Bios for IV.13 and IV.21 
  
    File        : /Disk images/IBM PC/SYSTEM2.IMD 
  Description : IV.0 Release 1. One of 2 disks for the IBM PC, made with Dave Dunfield's Image disk utility. 
  
    File        : /Disk images/IBM PC/FORTRAN.IMD 
  Description : UCSD Fortran Compiler for IBM PC 
  
    File        : /CHARSET/terak.video.display.pdf 
  Description : Description of Terac video display

  File        : /USUS Newsletters/Compression Test - USUS Newsletter V4N3 1990-05_06.pdf 
  Description : Should I compress more like this (CCITT G4, 60% typ. reduction)? 
  
  File        : /TI/UCSD Turtlegraphics manual.rtf
  Description : UCSD Turtlegraphics Manual for the TI-99
    
  File        : /TI/ASM-LNK.DSK
  Description : UCSD Pascal assembler linker disk
  
    File        : /TI/COMPILER.DSK
  Description : UCSD Pascal compiler disk
  
    File        : /TI/EDT-FIL.DSK
  Description : UCSD Pascal Editor Filer disk
  
    File        : /TI/UCSD-UTI.DSK
  Description : UCSD Pascal Utilities disk
  
    File        : /TI/UCSD_p_system_Editor_Files_Utilities_Part_1_Editor.pdf
  Description : UCSD Pascal Editor manual
  
  
  File        : /TI/UCSD_p_system_Editor_Files_Utilities_Part_2_Filer.pdf
  Description : UCSD Pascal Filer manual
    
  File        : /TI/UCSD_p_system_Editor_Files_Utilities_Part_3_Utilities.pdf
  Description : UCSD Pascal Utilities manual
    
  File        : /PPMEXAMP.ZIP
  Description : Example of a ProDOS volume containing images of all four disks comprising UCSD Pascal version 1.2 plus the Pascal Partition Manager needed to maintain the ProDOS volume
  
  File        : /Internals/softech microsystems p-systems reference.pdf
  Description : Softech Microsystems p-System Reference
  
    File        : /Laurie's Utilities/AppleRead.zip
  Description : AppleRead.exe will allow you to convert an Apple II pascal disk image (.DSK) to a .VOL file that the p-system can mount. Source and EXE in Delphi 7 included. The .VOL file can also be read by PSYSREAD.EXE (located in the file section).

  File        : /Laurie's Utilities/Z80EM2010.zip
  Description : 2019 Update of my Z80 emulator, written in Delphi 7, boots and runs raw  CP/M disc images of I.4, I.5 and II.0 UCSD. Full source enclosed. 

Softech and Pecan

UCSD Pascal: the SofTech Microsystems (SMS) era, after the handover of license and many students (Mark Overgaard a.o.).

UCSD p_System version IV is a commercial version, developed and sold by SofTech Microsystems. Based on Version II, it did not include many changes from Version III. Not a commercial sucess due to combination of their pricing structure, performance problems due to p-code interpreter, and competition with native operating systems (on top of which it often ran). Latest release was IV.2.1 R3.3 November 1984

After SofTech dropped the product and SMS stopped, 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.

Softech (and Pecan) made many contributions to the p-System to make it more attractive: more programming languages, less restrictions, native code compilation, better documentation, widespread OEM sales (inlcuding HP, DEC, IBM, Texas Instruments, Heathkit etc) see the IV manuals below and the other UCSD pages for examples.

Documents
(restricted to Softech SMS documents, see the other UCSD pages for many more manuals that originated from Softech with a cover by the OEM company).

1 182 MA The MacAdvantage UCSD Pascal 1984
1-240.41.A Softech Corvus Supplement 84
Adaptable p-System 4
CR-CP-0059-C81 Draft Ada Language System Specification Vol 1 November 1983
CR-CP-0059 C84 Draft Ada Language System Compiler Machine-Independent Section November 1983
Internal Architecture 1.140.41.A
MC-1000 UCSD Pascal Installation Guide
Offload for UCSD
Pecan Program Development Aids
Pecan user’s manual
Pecan user’s manual
p-System IV.0 Users Manual Januari 1981
p-System Users Manual Supplement Version IV.0_April 1982
Softech MicroSystems p-Systems Internal Architecture
SofTech MicroSystems P-System Internal Architecture Reference Manual
SofTech MicroSystems P-System Software Reference Library Assembler Reference_Manual
SofTech MicroSystems p-System Software Reference Library Operating System
SofTech MicroSystems p-System Software Reference Library Program Development
Softech Microsystems UCSD p-System for the Apple II Computer (ver_4.0) March 1983
Softech IV Supplement April 1982
Softech IV.0 Users Manual January 1981
Softech Microsystems UCSD p-SYSTEM Version_IV October 1980
softech IV addenda
UCSD p-System & UCSD PASCAL_Internal_Architecture_Guide
USCD PASCAL Maintenance News Vol1 No2 March 1980

Software

Softech Microsystems UCSD p-System for the Apple II Computer (ver_4.0) March 1983
Disk images Apple II p-System IV

UCSD p-System II.0 IMD disk images
UCSD p-System IV IMD disk images
Sources disk images IV VOL files (Ciderpress readable)
Knowledge Software Port-kit via C compiler bootstrap
Pecan UCSD compiler sources on Compuserve
Source IV.13 compiler
UCSD for MAC IV images
Corvus disk images

Western Digital MicroEngine

The Pascal MicroEngine was a series of microcomputer products manufactured by Western Digital from 1979 through the mid-1980s, designed specifically to run the UCSD p-System efficiently.[1] Compared to other microcomputers, which ran a machine language p-code interpreter, the Pascal Microengine had its interpreter implemented in microcode. So, p-code was, effectively, its native machine language.

The MicroEngine ran a special release III p-System, which was not to be used on any other platforms. However, the enhancements of release III were incorporated into release IV which was made publicly available for other platforms but not for the MicroEngine.

The MicroEngine series of products was offered at various levels of integration:
– WD-9000 five chip microprocessor chip set
– WD-900 single board computer
– WD-90 packaged system
– SB-1600 MicroEngine single board computer
– ME-1600 Modular MicroEngine packaged system

The MicroEngine chipset was based on the MCP-1600 chipset, which formed the basis of the DEC LSI-11 low-end minicomputer and the WD16 processor used by Alpha Microsystems (each using different microcode).

In 1978, the WDC MICROENGINE was born. This was to be a 5 chip set (original documentation states 4, but it ended up being 5) that consisted of the CP2151 Data chip. the CP2161 Control chip, and 3 512 x 22 bit MICROMs which contained the microcode to directly execute UCSD Pascal on the data chip. The CP2151 was no different from the CP1611 of the MCP-1600 chipset and could be interchanged.

The difference was in the CP2161 control chip and of course the MICROMs. Though the CP2151 contained multiple registers, the Pascal implementation was a stack machine, it didn’t work as a register computer, but as a pure stack machine.. WD named the chipset the WD/9000 and created a separate company (MICROENGINE Corporation) to market it.

The WD/9000 chipset ran at 3.3MHz and was made on a NMOS process. It required a 4-phase clock and 4 voltage supplies (+/- 5V and +/- 12V). At the time there were plenty of single supply processors so this further complicated its marketing. (not to mention board design). It was available in either an ‘A’ (ceramic) or ‘B’ plastic package.

The initial product was the WD/900 single board computer based on the WD/9000 chipset, which could execute Pascal code 10 times faster than most other systems, when it worked. Unfortunately the board design and quality was terrible, leading to very unreliable hardware. Not something that inspires users who had just spent $2995 on the board, or $5000 for a complete WD/90 system. Eventually the quality problems were sorted out and the MICROENGINE went on to some success, though mostly as a development platform for Pascal. As Pascal versions changed, so did the MICROMs, a user could upgrade their Pascal support by replacing the MICROMs in their system. Since the implementation was structured well, not all upgrades required all 3 MICROMs to be replaced.

Known 3 chip sets are:
CP2171-
10/12/13 Earliest release
14/15/16
14/15/17
14/15/18 (Needed to run Pascal III.0 rH0)

Relevant documents:

UCSD_Pascal_III.0_Operating_System_Reference_Manual_Jul82
Advanced_programming_package
attached_interrupts
DM1883_Direct_Memory_Access_Controller_Jul78
Floppy_piggy_back
H3_SWsysTechNotes
install_guide
M0017_H3sysTN_Jul82
Newsletter
Os_description_p1
Os_description_p2
OS_release_f0
OS_release_go
Pascal_Microengine_Brochure
Pascal_Microengine_Press_Release_Oct78
Pascal_MICROENGINE_RefMan_Mar79
pricelist_DE
p_machine_opcode_1
p_machine_opcode_2
sb1600_brochure
sb1600_io_adresses
UCSD_PascalNewsl#4_Jul79
User_guide_change_list
virtual_segments
WD1931_Asynchronous_Synchronous_Receiver_Transmitter
WD9000_Chip_Set_Data_Sheet
WD9000_Microengine_Chipset_May80
WD9000_Microprocessor_Application_Note
WD9000_Schematic
wd9000_schematic_rev_e5
wd9000_schematic_rev_f6
wd900_volition_systems

Software sources of UCSD p_system III

Calculator
Source of compiler III
Source of editor III
Source of p-System III

Distributions III E0-H0 diskimages

Another chipset for the p-System, on the AMD29116: Pascal Comp March 1985


CP/M and UCSD p-System

CP/M and UCSD p-System

Already in the early days of UCSD p_system 8080, Z80 and 6502 were target architectures, next to PDP-11. The 6502 way led to Apple Pascal, and other systems like OSI.
The 8080 and Z80 way was of course targeted at the then popular CP/M machines, many did get a UCSD implementation, from I.4 to IV.

Documentation (also see the UCSD and Softech documentation!)

MC-1000 UCSD Pascal Installation Guide
NorthStar Pascal Revision 1 System Reference Manual
UCSD p-System for the Osborne 1
UCSD_p-System II.0 Installation for Altos ACS-8000-15 1982

Software
UCSD Z80 CP/M adaptable system
UCSD Z80 CP/M sources, another large collection
Various disk iamges for UCSD p-System CP/M implementations

MBC-2
There are still CP/M systems for sale, completely open source, in kit and assembled form. The MBC-2 is a fine example.
UCSD Pascal is running on the Z80-MBC2, stored on a SD card. Version IV.0. I have bought an assembled kit, recommended!
A real Z80, real CP/M, mass storage via an SD card, so no floppies or old hard disk.

Users of MBC-2 can use the latest firmware and have UCSD IV running.
The interesting page of GmEsoft shows how the UCSD ssytem was adapted to the MBC-2.

Emulation

There are many many Z80 CP/M emulators, all with varying quality and usability.

AltairZ80 by Peter Schorn

This emulator, based on SIMH, does a good job of emulating an Altair with UCSD II.0.

Homepage is here, look there for the latest and much more CP/M emulation goodies!

And here a local copy of the files required to get this running.

Instructions how to run Altairz80 with UCSD:

  • Download in a convenient directory and unpack the archive
  • On current Windows version to get ANSI support in command window console, start the registry editor
    – in HKCU\Console create a DWORD named VirtualTerminalLevel
    – set it to 0x1
  • Start a Command Window (Run CMD) in the altair directory
    altairz80 ucsd

Z80pack

The other one claimong to emulating UCSD Pascal I, II and IV is Z80pack. A lot of work to get it running, Linux seems well supported, on Windows it should work but I did not succeed in the limited couple of hours I thought were enough and many searches on the internet and gave up for now.

Apple Pascal

These pages on Apple and Pascal are limited to Apple Pascal for the Apple ][ and III, where the UCSD p-System was used.

But there was much more Pascal history at Apple, as is show on the next article.

History of Apple and Pascal (DTC 1992)

SUMMARY

Apple’s involvement with the Pascal language was extensive during the 1980 ‘s. From Apple’s introduction to Pascal on the Apple II computer in 1978, it has advanced to the powerful Macintosh 680×0 series Pascals of 1992.
Since 1988 Apple’s reliance on Pascal has been eclipsed by the emergence of C/C++ as Apple’s preferred system and application development language. Tho Pascal will have the support of a small but vocal minority at Apple, C/C++ will be the dominant development language for Apple and outsiders for the next decade.

A Brief History of Apple Computer’s Work with the Pascal Language
Written by David T. Craig 07 October 1992

TABLE OF CONTENTS
– INTRODUCTION
– APPLE ][ COMPUTER PASCAL
– APPLE /// COMPUTER PASCAL
– APPLE LISA COMPUTER PASCAL
– APPLE LISA COMPUTER CLASCAL
– APPLE MACINTOSH COMPUTER PASCAL
– APPLE MACINTOSH COMPUTER OBJECT PASCAL

INTRODUCTION
This document provides a concise history of the work that Apple Computer has done with the Pascal computer language. This history was written so that this rather interesting bit of computer technology would be recorded for those with an interest in technical histories like this.
The author has never worked for Apple Computer, but has been involved with software development for Apple’s many computers since 1978 and has extensively used all of Apple’s Pascal implementations. As such, the facts contained herein are based upon personal memories and Apple technical documents and may be inaccurate. The author hopes that those in the know about Apple’s Pascal work will correct and extend upon this paper so that the history of Apple’s Pascals will be made complete.

APPLE ][ COMPUTER PASCAL
See the Apple Pascal II page.
Apple first became involved with the Pascal language for its Apple ][ computer series around 1978. At this time Apple’s software development efforts were based upon the BASIC and 6502 assembly languages.
The key players in bringing Pascal to the Apple ][ were Bill Atkinson and Jef Raskin. Atkinson convinced Apple’s management that the Pascal language would be much better for Apple’s own software development activities than either BASIC or 6502 assembly. Atkinson and Raskin licensed the Pascal language and development system from the University of California at San Diego (UCSD) and began an internal Pascal development group.
Apple’s ][ Pascal system included a Pascal compiler, modal editor, 6502 assembler, a powerful filer, and several utility programs (e.g. program segment mapper). The system was controlled via a command line user interface.

The Apple ][ Pascal compiled to P-Code which was based upon byte codes and a stack architecture. This P-Code was interpreted by an interpreter written in 6502 assembly. 6502 assembly language routines could also be linked with P-Code programs. Identifiers in ][ Pascal were recognized only up to 8 characters, a painful limitation which Apple did not remove until its Macintosh MPW Pascal. Pascal’s memory use was restricted to 64k bytes due to the Apple ][ hardware architecture. ][ Pascal supported program modules called UNITs which could be either regular or shared (a. k. a. intrinsic). Units could be segmented so that they would reside in memory only when needed. ][ Pascal also supported a fairly sophisticated graphics unit called Turtle Graphics created by Atkinson.

Technical documentation for ][ Pascal was reasonably good and consisted of a language reference and an operating system manual.
Several major Apple ][ programs were developed in Apple ][ Pascal, including Apple’s Apple Presents the Apple and
PFS File by PFS Inc.
Apple produced several versions of Apple ][ Pascal: 1.0, 1.1, 1.2, 1.3. As of the middle 1980′ s Apple seems to have abandoned Pascal for the Apple ][. Current Apple ][ Pascal work is done via an Apple-developed Macintosh cross-development system called Macintosh Programmer’s Workshop.

APPLE /// COMPUTER PASCAL
See the Apple Pascal III page.
When Apple developed its Apple /// computer (1980 – 1985) it developed most of its software for this machine with Pascal.
Apple used the Apple ][ Pascal system to create the Apple /// Pascal system. As such, /// Pascal generated P-Codes for a stack-based architecture. The ///’s Pascal language syntax was extended (e. g. otherwise clause in case statements) and like Apple ][ Pascal also supported separate program units. Access to the ///’s native 6502-based operating system, SOS (Sophisticated Operating System, or Sara’s OS), also existed via a special Pascal unit called SOSIO. This OS unit also allowed programmers access to the ///’s larger memory, 256k bytes vs. 64k bytes for the ][ computer.
Apple produced several versions of Apple /// Pascal: 1. 0, 1. 1, 1. 2, 2.0. Version 2.0 of /// Pascal was unique in that it came with extensive technical documentation called the /// Pascal Workbench and consisted of around 1,000 pages. Version 2. 0’s Pascal compiler also produced a compilation listing consisting of the generated P-Code interleaved with the Pascal source code lines. /// Pascal also supported via a conditional compilation directive the compilation of Apple ][ Pascal programs and produced Apple ][ format code files.

Documentation for the /// Pascal system was excellent. This included a language manual, an operating system manual, and a very detailed runtime architecture manual which also listed all the P-Codes.
For /// Pascal Apple developed a very sophisticated floating-point implementation called SANE (Standard Apple Numeric Environment). SANE was based upon the IEEE floating-point standard. /// Pascal versions 1.0 and 1.1 supported only 4 byte REAL numbers, version 1.2 supported the higher quality 8 byte EXTENDED numbers. SANE went on to become the floating-point engine for Apple’s Lisa and Macintosh computers.
Most of Apple’s software for the /// was developed with the Pascal system. This included the System Utility Program and Backup ///.
The key players for Apple /// Pascal were Ira Rubin and Al Hoffmann.
Support for /// Pascal ended when Apple discontinued the /// computer in 1985. From this date onwards Apple seems to have ended its involvement with Pascal which generated P-Code, opting instead to deal fully with native code generators.

APPLE LISA COMPUTER PASCAL
The 68000-based Lisa computer (1979 – 1985) was unique in that the majority of its system and application software was written in a powerful extended version of Pascal called Lisa Pascal. This software included the operating system (90^000 lines), the Workshop development environment (100,000 lines), 7 application programs (each around 50.000 lines [e.g. LisaWrite, LisaCalc]), and an avalanche of development support programs (e.g. mouse-based editor, telecommunications program, and Pascal language utilities).

Apple’s Lisa Pascal developments began from scratch for Apple when it licensed in 1981 a Motorola 68000 native code Pascal compiler from Silicon Valley Software in California. This compiler was based upon the older P4 compiler from Niklaus Wirth of ETH in Switzerland and consisted of two general passes. Pass 1 produced I-Code, a low-level representation of the high-level Pascal constructs. Pass 2, the code generator, converted the I-Codes to optimized 68000 object code. Apple even considered early in the Lisa’s development using a custom Apple processor which would execute P-Code directly, but the expense of developing such a chip was too much for Apple’s accountants and this project was dropped.

All Lisa development was done with the Lisa Workshop, a command line based development environment similar to Apple’s earlier ][ and /// Pascal systems. The Workshop provided an excellent development environment with its Pascal compiler, mouse-based editor, 68000 assembler, and an extensive collection of utility programs (e.g. Format, XRef, ProcNames). The Workshop supported other languages which included BASIC, COBOL, and C.

Apple produced several versions of Lisa Pascal: 1.0, 2.0, 3.0. Version 3. was the last version and supported the creation of intrinsic units which allowed a single copy of a unit to exist in the system and be used by several programs simultaneously. All versions supported language extensions such as otherwise clause in case statements, longint 32 bit integers, § operator for data addresses, data type coercion, and relaxed ordering of const/type/var sections. A lot of bit-based -functions were also
supported (e. g. BITAND to make bit bashing easier. Inline 68000 assembly code could also be used.

Like the Apple /// Pascal, Lisa Pascal also supported SANE, Apple’s IEEE floating-point implementation. In addition to SANE Apple developed a fairly comprehensive math package called MathLib.
Apple also developed an IEEE floating-point test program which attempted to ring out the bugs in SANE (Jerome Coonen of Apple wrote this test program and its associated test vectors).

Lisa Pascal was a superset of Apple’s older ][ and /// Pascals and, as such, was able to compile ][ and /// Pascal programs which did not make any ][ or /// system calls. Lisa Pascal could also produce a compilation listing complete with the Pascal source code interleaved with the generated 68000 assembly statements.

Apple also developed the Lisa QuickDraw (a. k. a. LisaGraf ) graphics library which formed the heart of what was called Lisa Technology. Though written in 68000 assembly^ Apple provided an extensive Pascal interface to this rather remarkable graphics environment (QuickDraw was later patented by Apple and Bi11 Atkinson. QuickDraw’s creator).

When Apple introduced the Macintosh computer in 1984 all Macintosh programming by Apple and others was done with Lisa Pascal and the Lisa Workshop. For this activity Apple created an extensive set of libraries containing the Macintosh toolbox interfaces. Many important Macintosh programs were written in Lisa Pascal, including MacPaint, MacWrite, MacDraw, and MacTerminal.

The key players behind Lisa Pascal were Ira Rubin and Al Hoffmann.
Apple provided extensive documentation for the Lisa Workshop and Lisa Pascal which included a language manual, an operating system manual, and a Workshop manual. Many internal memos were also released by Apple which described special features of Lisa Pascal.

Lisa Pascal was also used by Apple to develop the Lisa Clascal object-oriented language and the Clascal-based Toolkit class library.

Apple discontinued the Lisa in 1985 in favor of the Macintosh and when Apple’s native Macintosh development environment (MPW) became operational in 1986 Apple dropped support for Lisa Pascal and the Lisa Workshop. Therefore, Lisa Pascal lasted from 1981 to 1986, an eternity in the field of microcomputer languages.

APPLE LISA COMPUTER CLASCAL
Apple’s first foray into the world of object-oriented programming was with the Lisa Clascal (Classes + Pascal) language. Developed from 1983 to 1985 Clascal was an extension of Lisa Pascal which included several new keywords such as methods and subclass. The main concepts behind Clascal were derived from Simula and Smalltalk. Xerox PARC’s experimental object-oriented language.
In addition to Clascal Apple also developed an extensive set of class libraries which were collectively called the Lisa Toolkit. This class library allowed Lisa developers to create Lisa desktop applications (a. k. a. tools) in a fairly short time frame.

Though really used only internally by Apple for its own research efforts Clascal was made available to external developers but without any support by Apple (David Redhed of Seattle Washington created an independent Clascal/Toolkit support group called the Toolkit User’s Group [TUG], but this unfortunately did not last too long). Apple considered enhancing ClascaL but this Clascal-85 effort was extinguished by Apple’s work with Object Pascal for the Macintosh.
Several significant programs were developed with Clascal and the Toolkit including a calendar program, Apple’s Lisa-to-tlacintosh data conversion program, a desktop publishing program, and a fuzzy logic program.
The key player behind Clascal was Larry Tesler, one of the Lisa computer’s designers, and several former Xerox Smalltalk experts.

When Apple dropped all support for Clascal and the Toolkit it provided the Toolkit source code to the public, but the source code to the Clascal compiler was, alas, not made public.

APPLE MACINTOSH COMPUTER PASCAL
Apple’s Pascal for the Macintosh computer (1984 – present) was a port of Apple’s earlier Lisa Pascal compiler. When Apple began development of the Macintosh (1982) Apple used Lisa Pascal and the Lisa Workshop for system software development.
With the introduction by Apple of the Macintosh Programmer’s Workshop (MPW) in 1986 Apple had a very professional development environment which from an extendability perspective surpassed the Lisa Workshop. MPW tools could be written that would be executed by selecting their names in a mouse-based window environment and performing the do-it command by pressing the Enter key on the keyboard (shades of Smalltalk). MPW provided a Pascal compiler 680×0 series assembler, an improved 680×0 linker, and a cornucopia of source code utility programs (e.g. PasMat, PasRef). Many languages were also supported, both from Apple and outsiders (e.g. a FORTRAN, COBOL, Modula-2).
MPW Pascal extended Lisa Pascal by supporting the newer Motorola 68000 processors, the 68020, 68030, and 68040. Also supported were the Motorola floating-point and memory management chips. Conditional compilation directives allowed MPW Pascal to support the direct generation of floating-point chip instructions so that floating-point speed could be as fast as possible. Identifiers in Pascal programs were recognized up to 63 characters, a limitation which existed in all prior Apple Pascals beginning with Apple ][ Pascal.
Several versions of MPW Pascal existed: 1.0, 2. 0, 3. 0, 3. 2. Version 3.2, the current 1992 version, was created to support development of System 7 programs and had several extensions to make this compiler support very large programs and support the calling of C functions with variable number of parameters.
MPW Pascal has improved upon the optimization of object code and includes such features as peep hole optimization and better register allocation of local and global constants.
Extensive documentation exists for MPW and MPW Pascal.
MPW Pascal was enhanced to support object-oriented programming and was renamed to Object Pascal. This extended version was used by Apple to develop the Macintosh class library called MacApp.
Apple also contracted with THINK Technologies who created an interactive Pascal learning environment that was called Macintosh Pascal (this interpreter was later turned into a real compiler).
Around 1988 Apple started to use the C and C++ languages for its own Internal software development. The ascendancy of C/C++ at Apple has initiated a marked descendancy of Pascal at Apple and by outside developers.

APPLE MACINTOSH COMPUTER OBJECT PASCAL
Object Pascal for the Macintosh was developed by Apple starting in 1985 to support more rapid and more standardized development of Macintosh programs. Available for only MPW, Object Pascal is a descendant of the Lisa Clascal compiler.
The key Apple player behind Object Pascal was Larry Tesler who recruited the help of Niklaus Wirth, the creator of Pascal, to clean up the syntax of Clascal.
Object Pascal was used to develop the extensive MacApp class library. This library was fully documented by Apple via several books and the source code for MacApp was provided to developers.
Object Pascal is being eclipsed by C/C++ at Apple and most outside developers are following Apple’s lead. The Object Pascal MacApp class library has been rewritten in C++.

SUMMARY
Apple’s involvement with the Pascal language was extensive during the 1980 ‘s. From Apple’s introduction to Pascal on the Apple ][ computer in 1978, it has advanced to the powerful Macintosh 680×0 series Pascals of 1992.
Since 1988 Apple’s reliance on Pascal has been eclipsed by the emergence of C/C++ as Apple’s preferred system and application development language. Though Pascal will have the support of a small but vocal minority at Apple, C/C++ will be the dominant development language for Apple and outsiders for the next decade.

UCSD compiler and p-System

Books and sources of UCSD I.3, I.4 and II. while at UCSD

Advanced UCSD Pascal Programming Techniques 1985
Advanced Pascal Programming Techniques
Beginner’s Guide for the UCSD Pascal System 1980
Beginner’s Guide for the UCSD Pascal System
Introductie in Pascal met UCSD en Turbo Pascal
Introduction to Pascal
(including UCSD) Pascal Rodney Zaks
Implementing UCSD Pascal System on the Modcomp computer
Personal computing with the UCSD p-System
Personal computing with the UCSD p-System
Second Edition
UCID 18046 LSI11 Writable Control Store Enhancements to UCSD Pascal
January 1979.pdf
UCSD I.5 Assembler source PDP-11
UCSD Pascal Compiler I.3 source
UCSD Pascal Compiler I.3 text
UCSD Pascal Compiler I.4 source
The UCSD Pascal Handbook
UCSD Pascal Quick Reference Card
UCSD P-System 1.5 Sources
UCSD PASCAL I.4 Manual January 1978
UCSD PASCAL I.5 Manual September 1978
UCSD PASCAL II.0 IO System December 1978
UCSD PASCAL II.0 Listing
UCSD PASCAL II.0 Manual March 1979 (2)
UCSD PASCAL II.0 Manual March 79
UCSD PascalNews 234 July 1979
UCSD Pascal II.0 user manual reconstructed
UCSD Pascal II.0 user manual reconstructed in html format
UCSD Pascal II.User’s Manual March 1979

Software
I.4 system disk
I.5 sources in text format
Sources II.0 in disk images
Sources II.0 in text format

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-WISE DEVELOPMENT OF A PASCAL COMPILER        *         
  *     ******************************************        *         
  *                                                       *         
  *                                                       *         
  *     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                        *         
  *                                                       *         
  *     THESE CHANGES WERE COMPLETED AT ETH, ZURICH       *         
  *     ON 20/5/74.                                       *         
  *                                                       *         
  *                                                       *         
  *********************************************************)        

Original P2 compiler source
Original P2 interpreter source

Scott Moore’s ISO7185 version of P2