Turbo Pascal在CP/M、MSX-DOS和MS-DOS上 – 适用于小型机器的Pascal
摘要
本文探讨了Turbo Pascal在CP/M、MSX-DOS和MS-DOS等小型机器上的历史和分发情况,强调了它在早期编程教育和软件开发中的作用。
暂无内容
查看缓存全文
缓存时间: 2026/08/14 21:31
# CP/M、MSX-DOS与MS-DOS上的Turbo Pascal——面向小型机器的Pascal语言
来源:http://pascal.hansotten.com/delphi/turbo-pascal-on-cpm-msx-dos-and-ms-dos/
### 面向MSX的Pascal编译器
Pascal语言以布莱兹·帕斯卡(参见图片)命名,他是一位法国数学家,也是计算机发展史上的先驱。1641年,年仅18岁的帕斯卡制造了第一台算术机,这可以说是第一台计算机。八年后,他对此仪器进行了改进。1650年,帕斯卡离开了几何学和物理学领域,将研究重点转向了宗教研究,或者说,正如帕斯卡所写,转向“思考人类的伟大与苦难”。帕斯卡于1662年8月19日在巴黎逝世。
尼克劳斯·维尔特于1970年完成了原始Pascal编程语言的开发。他借鉴了Algol编程语言的块结构风格。Pascal最初有两个目标。根据Pascal标准(ISO 7185),这些目标是:a)提供一种适合教授编程的语言,使其作为一门系统学科,其基本概念能通过语言清晰自然地反映;b)定义一种语言,使其在当时的计算机上既能可靠实现又能高效运行。
Pascal在七八十年代被用作编程教学的计算机语言。它作为教授结构化编程的主要编程语言。当时许多平台都有可用的编译器。该语言本身现在是一个标准(ANSI),但也被维尔特用作开发更高级(模块化)语言如Modula和Oberon的模型。
Borland为CP/M和MS-DOS都推出了Turbo Pascal,版本3取得了巨大成功,八十年代小型计算机上的大部分软件都是用Turbo Pascal编写的。可惜它不是标准Pascal,而是非常实用地适应了CP/M和MS-DOS环境。版本3是CP/M的最后一个版本,在PC上后续有很多版本(Borland Pascal 7是最后一个基于DOS的版本),并最终演变为Delphi(Windows)和Kylix(Linux)。
阅读这篇关于如何编写优秀程序的精彩介绍!(http://www.allegro.com/papers/htpp.html)
Turbo Pascal可能不是运行在MSX上的唯一Pascal编译器,但它是支持最好的一个。
未修改且未安装的版本(参见MCCM第1部分中的Pascal教程!):适用于CP/M的Turbo Pascal 3.01(http://pascal.hansotten.com/uploads/msx/tp301.zip)
一个由飞利浦分发的Turbo Pascal版本。包装盒内包含:
- Turbo Pascal 8位MSX版本,这是一个真正的Borland产品,正如软盘标签上所见。
- 杰夫·邓特曼所著的书籍及附带演示软盘“Turbo Pascal Compleet”。
Turbo Pascal 3手册的封面和封底扫描图如下。那时候手册就是产品。软盘与许可协议、加入CompuServe论坛的邀请函以及其他纸质营销资料一起放置在手册封面内。点击每张图片查看更大版本的封面。Turbo Pascal 3.0(MS-DOS、CP/M-86和CP/M/MSX-DOS)的手册也可用,感谢Fred Kraan提供。
一个经过修改并已安装的Turbo Pascal 3的MSX-2版本(http://pascal.hansotten.com/uploads/msx/tpmsx2.zip)。由MCE(即Frits Hilderink)制作,包含GIOS和一个PC版本!这是经Frits Hilderink许可放置在此的官方发行版!Turbo Pascal 3.3f(http://pascal.hansotten.com/uploads/msx/turbo33f.zip)
Turbo Pascal数据库工具包1.2(http://pascal.hansotten.com/uploads/msx/turbodbt.zip),Borland官方附加组件。
适用于带调试器的MS-DOS(便于交叉编译!)Turbo Pascal 3.01 PC版(http://pascal.hansotten.com/uploads/msx/ibmtp301.zip)未修改(现在是免费软件!)Turbo Pascal 3.02 PC版(http://pascal.hansotten.com/uploads/msx/ibmtp302.zip)
另一个Pascal编译器:Hisoft Pascal 80(http://pascal.hansotten.com/uploads/msx/hisoft.zip)
Pascal开发环境Turbo Pascal开箱即用时无法使用MSX功能。除了MSX-Basic,没有其他指令可以进行超出文本输出的操作。幸运的是,通过所谓的包含文件(其中包含作为内联语句的机器码片段)来访问所有MSX秘密并不太困难。这里提供了一个功能强大的环境集合,允许您使用易于编写和理解的Pascal程序在MSX上进行任何可能的操作。
- Graphpak,Uwe Schroder的Pascal BIOS包含文件(http://pascal.hansotten.com/uploads/msx/graphpak.zip)
- Beunsoft Pascal BIOS包含文件Turbo-Lib V3.0(由Jacoon Bastiaansen提供)(http://pascal.hansotten.com/uploads/msx/beunsoft.zip)
- MDL-LIB 2.2 Pascal BIOS包含文件(http://pascal.hansotten.com/uploads/msx/mdllib22.lzh)
- Kari Lammassaari的Pascal MSX支持文件大型集合(http://pascal.hansotten.com/uploads/msx/kari.zip)
- 为了编程RS232C设备(如Sunrise和飞利浦调制解调器等),Erik Maas制作了Turbo Pascal与其fossil驱动程序的接口(http://pascal.hansotten.com/uploads/msx/ERIX102W.LZH)
Martijn Dekker,Turbo Pascal包MDL-LIB的作者,已授权发布最新最优秀的2.2版本并宣布其为公共领域软件。一些增强功能包括:-.typ-、.var-和.con-文件(类型、变量和常量声明)已集成到.lib-文件中,避免了许多包含操作。- 适用于Turbo Pascal 3.3。请参见存档中的leesmij.txt。MDL-LIB v2.2(http://pascal.hansotten.com/uploads/msx/mdllib22.lzh)
Slotman为运行在PC(Windows)上的Turbo Pascal 3.3制作了一个IDE。您可以在此处的utils部分找到它。(http://www.icongames.com.br/msxfiles/util-en.htm)其中包括用于在Pascal中开发游戏的包含文件!在Our games部分中的非常有趣的游戏“雪仗”(http://msxfiles.sites.uol.com.br/)(扔雪球)对MSX信息页面来说很有趣,因为他在其中包含了Turbo Pascal源代码。Slotman写道:您是在用Pascal为MSX编程吗?您是否厌倦了糟糕的IDE,厌倦了等待代码在MSX上编译等?那么这就是解决方案:MSX PAD。一个专为Windows制作的IDE,比MSX-Pascal优越得多,您会问自己以前怎么没人想到。最重要的是,它附带了我用来制作breakfree的所有包含文件!
INL Pascal库由Carlos de Santa-Ana Garcia为INL编写的Pascal软件和库,INL是Nestor Soriano为例如MSX以太网接口Obsonet和串行RS232接口等制作的TCP/IP协议栈。该库(http://pascal.hansotten.com/uploads/msx/INL.inc)一个telnet客户端(http://pascal.hansotten.com/uploads/msx/INLClient.pas)一个telnet服务器(http://pascal.hansotten.com/uploads/msx/INLServ.pas)
**Hans Otten Pascal程序**包含过滤程序示例的Pascal源代码:(http://pascal.hansotten.com/uploads/msx/filter.zip)在复制文本文件时进行调整,如截取为7位或添加/删除文本。
由我编写的两个程序的Pascal源代码:split(将文件分成两半)和combine(http://pascal.hansotten.com/uploads/msx/splitcombine.zip)(将两半重新粘合在一起)适用于MSX-DOS和CP/M。CNVS和MSX12CNVI我编写了在MSX图形屏幕格式与PC之间相互转换的程序。
当我编写它们时,那是MS-DOS的黑暗时代,因此我使用了Turbo Pascal和PCX作为图形文件格式。它仍然有效,即使在Windows 95/98下也是如此。我终于在1999年5月完成了MSXCNV12,将其转换为屏幕12格式,这个工作我做了8年!强烈推荐Paintshop Pro用于在PC上处理图形。所有源代码都已包含。所有程序都是免费软件。MS-DOS程序!
CNVS版本2.3:将MSX屏幕0-8转换为PCX及反向转换的MS-DOS程序,包含源代码(http://pascal.hansotten.com/uploads/msx/cnvs23.zip)。这个2.3版本是最近的更新(1999年6月),现在是英文的,并且语法更简洁。
CNVS版本2.1:旧的MS-DOS程序,用于将MSX屏幕0-8转换为PCX及反向转换(http://pascal.hansotten.com/uploads/msx/cnvs21.zip)仅荷兰语。
MSX12CNV:显示或转换MSX屏幕12的MS-DOS程序(http://pascal.hansotten.com/uploads/msx/msx12cnv.zip)(全彩)
MSXCNV12:将PC上的PCX显示或转换为MSX屏幕12的MS-DOS程序(http://pascal.hansotten.com/uploads/msx/msx12cnv.zip)(全彩)
Quickbasic程序(http://pascal.hansotten.com/uploads/msx/cnv12.zip)由Hans Schoormans编写,用于将RAW文件(使用Paintshop PRO创建)转换为屏幕12全彩格式。
根据请求:一个用于将MSX屏幕转换为PCX及反向转换的Windows 95/98程序(实际上是对CNVS、MSX12CNV和MSXCNV12的封装)CNVSW(http://pascal.hansotten.com/uploads/msx/cnvsw.zip)作为Windows可安装程序。请注意readme.txt。
PCX格式说明(http://pascal.hansotten.com/uploads/msx/pcxfrmt.txt)关于PCX如何实现的官方指南。
INDEX用于在软盘上构建文件数据库的MSX和MS-DOS程序及Pascal源代码(http://pascal.hansotten.com/uploads/msx/index22.zip)
我的MSX Pascal包含库为了在MSX上编写智能程序。我使用的是Turbo Pascal v3.00。为了访问MSX 1和2的功能,我很久以前就开发了Pascal库。许多追随者复制并增强了这些库,但这里是原始版本:包含工具完整版。其中包括诸如直线、方框、圆形、填充图形、精灵、在图形上显示文本等功能。Pascal包含库(http://pascal.hansotten.com/uploads/msx/grpascal.zip)杂志通过许多文章关注了这个环境,这里收集了所有可用的内容。
- 已添加命令行Pascal源代码,(http://pascal.hansotten.com/uploads/msx/pascalcmdline.pdf)这是一个如何使用命令行以及使用标准CP/M(因此也是MSX-DOS)调用来读取/修改磁盘扇区的好例子。
- 三个帮助编写Turbo Pascal内联代码的程序:- INLINE程序由J.A.C.G. van der Valk编写,用于将使用M80宏汇编器创建的REL文件转换为内联代码:Pascal源代码和程序(http://pascal.hansotten.com/uploads/msx/inline.zip)- INLASS,一个Z80宏汇编器,生成内联代码(也支持8080、8086和6502 CPU):Pascal源代码和程序(http://pascal.hansotten.com/uploads/msx/inlass.zip),文档(http://pascal.hansotten.com/uploads/msx/inlass.pdf)- PMLINE:改编和增强了一个名为PMLine的MC程序,由Werner Cirsovius撰写的文章(http://www.cirsovius.de/CPM/Projekte/Artikel/TP/Inline/PMlink/PMlink.html)以及程序(http://www.cirsovius.de/CPM/Projekte/TURBO-PASCAL/Inline/turbo-05.html)
- 一个带源代码的Turbo Pascal程序(http://pascal.hansotten.com/uploads/msx/inverse.zip),用于在屏幕0和1上显示反色字符
- 一个带源代码的Turbo Pascal程序(http://pascal.hansotten.com/uploads/msx/split.zip),用于将文本文件或Wordstar文件(http://pascal.hansotten.com/uploads/msx/split.zip)在每页分成两栏
- 使用BDOS调用的Pascal目录程序(http://pascal.hansotten.com/uploads/msx/dirpascal.gif)
- SDOS的源代码(http://pascal.hansotten.com/uploads/msx/sdos.zip),由Juan Salas编写:一个带窗口的文件管理器
- 由Juan Salas编写的用于在MSX视频计算机上数字化处理的程序的Pascal源代码(http://pascal.hansotten.com/uploads/msx/juansalasdigi.zip)
- 属于Pascal杂志文章的Pascal源代码和其他文件(http://pascal.hansotten.com/uploads/msx/artpas.zip)。
- CUC journaal 1988年5月 机器人臂供电与接口(http://pascal.hansotten.com/uploads/msx/robotarm.pdf)Spectravideo SV2000机器人臂的外部电源和程序,Pascal软件
- CUC journaal 1990年7月 自动拨号(http://pascal.hansotten.com/uploads/msx/tel1.pdf)AD接口和Pascal程序,用于生成电话拨号音。
- CUC Journaal 在Pascal中使用BDOS调用查询目录(http://pascal.hansotten.com/uploads/msx/dirpascal.gif)
- MCCM 61 Pascal深入:设置和使用JANSI(http://pascal.hansotten.com/uploads/msx/uitgjans.pdf)
- MCCM 63 Pascal深入:Pascal中的鼠标(http://pascal.hansotten.com/uploads/msx/uitgmuis.pdf)
- MCCM 65 Pascal深入:加快Pascal速度(http://pascal.hansotten.com/uploads/msx/uitgsnel.pdf)
- MCCM 66 Pascal深入:变量的使用(http://pascal.hansotten.com/uploads/msx/uitgvar.pdf)
- MCCM 67 Pascal深入:内存的使用(http://pascal.hansotten.com/uploads/msx/uitgmem.pdf)
- MCCM 68 Pascal深入:数据(http://pascal.hansotten.com/uploads/msx/uitgedieptdata.pdf)
- MCCM 69 - MT-Base 在Pascal中转换为ASCII(http://pascal.hansotten.com/uploads/msx/mt2ascii.pdf)- Pascal深入:混合编程(http://pascal.hansotten.com/uploads/msx/pascalhyb.pdf)
- MCCM 70 Pascal深入:填充图案(http://pascal.hansotten.com/uploads/msx/uitgvul.pdf)
- MCCM 71 Pascal深入:指令(http://pascal.hansotten.com/uploads/msx/uitgedieptdir.pdf)
- MCCM 72 Pascal深入:递归(http://pascal.hansotten.com/uploads/msx/uitgrec.pdf)
- MCCM 75 Pascal深入:屏幕0(http://pascal.hansotten.com/uploads/msx/uitgscr0.pdf)
- MCCM 90 芬兰库(http://pascal.hansotten.com/uploads/msx/finpascal.pdf)Manuel Bilderbeek解释了Kari Lamassaari的Pascal库
- 软件(http://pascal.hansotten.com/uploads/msx/mcm.zip),属于MCM文章
- MCM 37 Graphpak环境评论(http://pascal.hansotten.com/uploads/msx/graphpak.pdf)和Pascal补丁(BREAK!)(http://pascal.hansotten.com/uploads/msx/artpas.zip)
- MCM 40 从Pascal访问BIOS(http://pascal.hansotten.com/uploads/msx/bios.pdf)
- MCM 45 MDLLIB(http://pascal.hansotten.com/uploads/msx/mdllib.pdf)Pascal库评论
- MCM 51 GIOS(http://pascal.hansotten.com/uploads/msx/gios.pdf)Pascal的图形I/O系统
- 软件(http://pascal.hansotten.com/uploads/msx/msxclubm.zip),属于MSX Club Magazine文章
- MSX Club Magazine - Mandelbrot分形(http://pascal.hansotten.com/uploads/msx/mandelbr.pdf)- Bastaard pascal:快速写入屏幕(http://pascal.hansotten.com/uploads/msx/testgr3.pdf)- Pascal中的分形 第一部分(http://pascal.hansotten.com/uploads/msx/fractals.pdf)- Turbo Pascal教程 第一部分(http://pascal.hansotten.com/uploads/msx/tpascal1.pdf)- Turbo Pascal教程 第二部分(http://pascal.hansotten.com/uploads/msx/tpascal2.pdf)- Turbo Pascal教程 第三部分(http://pascal.hansotten.com/uploads/msx/tpascal3.pdf)- Turbo Pascal教程 第四部分(http://pascal.hansotten.com/uploads/msx/tpascal4.pdf)- Turbo Pascal教程 第六部分(http://pascal.hansotten.com/uploads/msx/tpascal6.pdf)- Turbo Pascal教程 第七部分(http://pascal.hansotten.com/uploads/msx/tpascal7.pdf)
相似文章
FreeOberon – 开源、跨平台,类似 Free Pascal/Turbo Pascal 的语言
FreeOberon 是一个用于 Oberon 编程语言的开源、跨平台 IDE 和编译器,其设计采用了 Pascal 环境经典的伪图形风格。
PDP 计算机简史
简要回顾 DEC 公司 PDP 系列计算机的发展历程,探讨从 PDP-1 到 VAX 如何塑造了早期黑客文化,并直接影响了 Unix、C、Emacs、Lisp 等基础软件的诞生与发展。
MS-DOS 2.0 之路
本文追溯了 MS-DOS 从 86-DOS、微软的 XENIX 尝试到 XEDOS 计划的历史发展过程,详细说明了塑造早期个人电脑操作系统的各种制约因素和决策。
CP/M-86 & MS-DOS 交叉开发环境
本项目为CP/M-86和MS-DOS提供了一个交叉开发环境,包括用于复古计算的编译器、汇编器和模拟器。
Altair BASIC Interpreter 源代码 (1975) [pdf]
本文宣布了1975年Altair BASIC解释器的原始源代码的发布,强调了其在Microsoft和个人计算早期历史中的重要性。