对 UCSD p-System 和 Apple Pascal 的回忆:一个跨平台兼容的梦想
[中文正文内容]
markbessey.blog
有时候,我甚至会惊讶于自己。
首先,不要造成伤害。
往事的回顾
Written in April 14, 2025 by Mark Bessey p-System
对 UCSD p-System、Apple Pascal 以及一个从未完全实现的跨平台兼容梦想的回忆
最近我一直在思考 UCSD P-System,我想写一些关于它以及更广泛的字节码系统的内容。 在此过程中,我希望编写一些有趣的代码。
什么是 p-System?
早在 1974-1978 年,加州大学圣地亚哥分校的计算机科学家开发了一种新的可移植操作系统、编译器和工具,可以在 PDP-11 小型计算机和日益普及的微型计算机上运行。 他们称之为 UCSD Pascal, 并在短短几年内,它就可用于各种系统。
其广泛可移植性的秘诀在于,该系统“位于”一个非常小的、机器相关的代码内核之上,该内核实现了一个名为“p-machine”的“虚拟机”,这是一种专门设计为 Pascal 编译器良好目标代码的虚拟 CPU。 由于这是一个相对较小的代码量,因此只需为新机器实现 p-machine 模拟器,就可以移植整个操作系统环境,包括操作系统、编译器、编辑器、文件系统和其他工具。
你可以为各种各样的计算机获取 p-System 的版本。 除了 DEC 的 PDP-11 和 Rainbow 之外,还有适用于 Apple II、IBM PC(最初的三个操作系统选项之一)、HP 的 80 系列和 9000 系列工作站、Texas Instruments 的 TI-99/4a 家庭计算机、CPM 机器、各种大型机等等的版本。 Western Digital 甚至创造了一种微处理器,该处理器将 p-machine 代码作为其原生机器语言运行。
p-System 不是第一个可移植字节码解释器和编译器系统——这个想法可以追溯到很久以前,至少可以追溯到 Pascal 语言本身的起源。 但它可以说是该想法早期最成功的版本之一,并为未来的可移植软件系统(包括 Java 的字节码和 Infocom 的 Z-machine)提供了灵感。
我在哪里第一次接触到 p-System?
1986 年,在我高中三年级的时候,我上了一门计算机编程课。 因为理所当然的是,这门课主要用 BASIC 语言授课。 完成这门课程后,我基本上被释放到计算机实验室进行“独立学习”(谢谢你,Carlson 先生!),在那里我第一次开始使用 Pascal。 在 Apple IIe 上运行的 Apple Pascal。 那时,我在放学后的第一份工作中也使用了 Pascal,在 HP 80 和 9000 系列工作站上使用 UCSD Pascal,并在 IBM PC 兼容机上使用 Turbo Pascal(不是 p-System,但肯定受到了它的启发)。
我高中最后一年的“最终项目”是用 Apple Pascal 构建一个电子表格程序。 在我毕业之前,我设法完成了公式编辑器,包括基本的算术函数、网格显示和打印输出的所有工作。 不幸的是,该代码已经消失在历史的长河中。
我将如何使用 p-System?
我希望在接下来的几个月中完成几个目标:
- 在我的 Mac 上的某种模拟器中启动并运行 Apple Pascal,以便我可以再次体验它
- 已完成,请参阅下一篇博客文章
- 构建一些工具来将文件传输到模拟器的磁盘镜像和从磁盘镜像传输文件
- 这些工具 已经存在,以各种形式存在,但我真的想自己制作,部分原因是为了享受其中的乐趣,部分原因是为了在 Rust 中做一些简单的事情来建立对该语言的熟悉度。
- 构建一个 p-machine 模拟器,使用 Rust
- 并且可能是一个反汇编器/汇编器,以及工具链的其余部分
- 除非我变得雄心勃勃,否则可能不会构建 Pascal 编译器
- 将 p-machine 模拟器移植到 Mac 以外的其他东西
- 理想情况下,一些 小的 东西——比如 Arduino 或 Raspberry Pi Pico
为什么要为如此古老的系统构建新工具?
部分原因是因为我可以,部分原因是因为我们即将迎来 UCSD P-System 的 50 周年纪念日。 开发工作始于 1974 年左右,UCSD Pascal 于 1978 年首次发布。 我认为用/为那个旧系统构建一些新的东西会很有趣,这对我的职业生涯的开始非常重要。
还有部分原因是,虽然有一些工具存在,但它们通常文档记录不佳(请参阅下面的链接失效的哀叹),并且它们通常是在 几十年前 构建的,例如,需要使用 gcc 2.x 进行编译。 我认为使用“新的”工具来恢复一些旧的系统软件会很好,希望可以延长这个系统的遗产。
在哪里可以找到更多关于 p-System 的信息?
互联网上有 大量 的信息可用,但它分散在各处,并且其中很多信息如今都遭受了链接失效的困扰。 我发现一个网站上有诱人的链接,指向一堆书籍、规范和历史文档,其中 80% 都 404 NOT FOUND。 当我遇到其他网站时,我会将链接添加到这些博客文章中。
可能 开始 挖掘的最佳地点是 Hans Otten 的网站 Pascal for Small Machines,除了 p-System 信息外,该网站还有大量关于“小型计算机”上的其他 Pascal 版本的历史信息,这意味着小型计算机和微型计算机。
我发现了一些关于 Apple Pascal 和 p-machine 的非常有趣的历史信息,在 The Digital Antiquarian 博客。 这是从 Pascal 到 p-System,再到 Sir-tech 软件和 Wizardry(一款使用 Apple Pascal 构建的 Apple II 角色扮演游戏)的一系列文章的一部分。
Jefferson Computer Museum 有 一个关于 UCSD p-System 的页面,并链接到几个有趣的软件集合。
分享此内容:
喜欢 加载中……
标签 apple, history, programming, software, tech, technology
3 responses to “A Blast From The Past”
- Running Apple Pascal on a modern Mac – markbessey.blog 2025-04-15 […] part of my explorations of the UCSD p-System, the first thing I wanted to do was to get Apple Pascal for the Apple II running on my current […] LikeLike Reply
prophetdotmac 2025-04-15 Loved Wizardry. TILTOWAIT! LikeLike Reply 1.
Mark Bessey 2025-04-16 I don’t know that I’ve ever played the original Wizardry, actually. I had a friend in Junior High School who was kind of obsessed with it, but I was pretty deeply into other home computers at the time, and neither my nor any of my friends’ families could afford an Apple at home, so other than lunchtime at school, I rarely got to play games on them. LikeLike Reply
发表评论 取消回复
Δ 本站点使用 Akismet 来减少垃圾评论。 了解你的评论数据如何处理。
我的一些随意的想法。
我绝对不会在这里放置一个“给作者发送电子邮件”的链接。我已经收到了足够的垃圾邮件。
markbessey.blog
© Designed with WordPress
- Comment
- Reblog
- Subscribe Subscribed
-
markbessey.blog Sign me up
-
- Already have a WordPress.com account? Log in now.
-
* [  markbessey.blog ](https://markbessey.blog/2025/04/14/a-blast-from-the-past/<https:/markbessey.blog>)
%d