
2026/08/12 18:34
CP/M、MSX-DOS および MS-DOS 用の Turbo Pascal 〜小型マシン向けの PASCAL〜
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
Pascal の歴史的発展は、ブラール・パスカルの初期の算術機械(1641 年)から、ニコラス・ワースが 1970 年に ALGOL スタイルに基づきオリジナル言語を完成させたところまでを-spanし、系統的なプログラミングを教えることを目的とした信頼性が高く効率的な実装を目指す ISO/IEC 7185 標準の制定へと至る。ボーラン社の CP/M および MS-DOS 用 Turbo Pascal バージョンは支配的になり、標準的な Pascal でないにもかかわらず、バージョン 3 が顕著な成功を収めた。また、フィリップス社も MSX パッケージを配布しており、それは Turbo Pascal(8 ビット MSX)、ジェフ・ダンテンマンの書籍とデモ用ディスク、およびマニュアル(バージョン 3)を含む。コミュニティの努力によりこれらのレガシーシステムが保存された:フリッツ・ヒルディンクが開発した MCE は、GIO を含む修正された MSX-2 バージョンを創出した。また、公式のアドオンとしては Turbo Pascal DataBASE Toolkit 1.2(デバッガー付き)や v3.3f が機能拡張を提供した。ユーザーは include ファイル(例:Graphpak、ウー・シュローダーの Bios、MDL-LIB 2.2)を通じて MSX の機能をアクセスでき、CNVS v2.3 などのツールを使用して、MSX の画面フォーマット(0–8 および Screen 12)を PCX に変換したり逆に再取得したりすることも可能である。このコレクションには、さまざまな Pascal ソースファイル、ライブラリ(例:カリの・ラマサァリ)、CUC Journaal および MCCM からのものであり、フラクタルやマウスといったトピックを扱った記事も含まれる。これにより、CP/M 用の未改変の Turbo Pascal 3.01 が引き続き利用可能である一方、Delphi(Windows)および Kylix(Linux)による現代的な適応が可能となっている。この進展は、単一のプログラミング言語が、コミュニティによる積極的な保存と多様なハードウェアサポートを通じて数十年にわたるソフトウェア工学を形成してきたことを示している。
本文
MSX 向け Pascal コンパイラガイド
はじめに:Pascal の歴史的背景
Pascal は、コンピュータ開発の先駆者となったフランスの数学者ブラジル・パスカルにちなんで名付けられました。
- 1641 年(18 歳)計算機を構築し、その後さらに改良を加えました。
- 1650 年:関心を幾何学や物理学から宗教研究へ移し、「人間の偉大さと悲惨さ」の内省に注ぎました。
- 1662 年:パリで生涯を閉じました。
言語の開発と目的
- ニコラス・ウィースト氏が元祖の Pascal 言語開発を完了(1970 年)。
- Algolのスタイルに基づくブロック構造型プログラミング言語。
- 当初の主な目的:
- 基礎的な概念を明確かつ自然的に反映した言語を提供し、プログラミング教育に活用すること。
- 信頼性が高く、効率的な実装可能な言語を定義すること。
現在の地位と進化
- 70〜80 年代:プログラミング教育における主力言語として利用されました。構造化プログラミングの指導に使われました。
- 現在:あらゆるプラットフォーム向けに多数のコンパイラが存在し、言語自体はANSI 標準化されています。
- 派生言語:ウィースト氏は、より高度なモジュール型の言語である Modula や Oberon の開発モデルとしても利用しました。
Borland Turbo Pascal の系譜
ボーランド社は CP/M および MS-DOS 向けに Turbo Pascal を開発しました。
- バージョン 3:大きな成功を収め、80 年代の小型コンピュータ上の多くが記述されました。
- ⚠️ これは標準的な Pascal ではなく、CP/M/MS-DOS 環境に合わせて実用的に適応させたものです。
- CP/M 向け最終バージョンです。
- PC 向け:DOS ベースでの最終版はバージョン 7。その後は Delphi(Windows)および Kylix(Linux)へと進化しました。
参考資料: 良いプログラムを書くために の素晴らしい解説をご覧ください。
MSX 上で動作する Pascal コンパイラ:Turbo Pascal
MSX において最もサポートが充実しているのは Turbo Pascal です。未開封かつ未インストールの状態のバージョン(MCCM 第 1 部の「パスカルコース」参照)には以下の内容が含まれています。
1. プリミティブなパッケージ(未設定状態)
- Turbo Pascal 3.01 for CP/M
- フィリップス社から配布されたバージョン。
- パッケージ内容は以下の通り:
- Turbo Pascal 8 bits MSX:ラベルより判断できますが、本物のボーランド製品です。
- ジェフ・ダンターマン著書およびデモディスク「Turbo Pascal Compleet」。
- 取扱説明書(表紙と裏表紙)かつての説明書自体が製品の一部でした。
- フロッピディスクにはライセンス合意書、CompuServe 招待状、プロモーション資料などが内蔵されていました。
2. パッチ適用済みおよびインストール済みのバージョン
- Turbo Pascal 3 の MSX-2 用バージョン
- MCE(通称:フリッツ・ヒルデルINK)による制作。GIOS および PC 版も含む公式配布物。
- Turbo Pascal 3.3f
- Turbo Pascal DataBASE Toolkit 1.2
- ボーランド社より MS-DOS 向けに提供された公式アドオン。デバッガー(クロスコンパイルに便利!)を含む。
- Turbo Pascal 3.01 for the PC:未改動のフリーウェア。
- Turbo Pascal 3.02 for the PC。
その他パスカルコンパイラおよび開発環境
標準的な Pascal 開発環境では MSX の機能(テキスト出力以上の処理)を利用できないため、以下の強力な環境やライブラリが用意されています。マシーンコードの断片を INLINE ステートメントとして利用することで、MSX の秘密にアクセス可能です。
グラフパック(Graphpak)
BIOS 制御などのインクルードファイル集:
- ウー・シュローダー氏の Pascal BIOS インクルードファイル
- ブンソフト社の Pascal BIOS インクルードファイル
- Turbo-Lib V3.0(ジャコーン・バチアンセン氏提供)
- MDL-LIB 2.2 の Pascal BIOS インクルードファイル
- カリ・ラムサアリの膨大な MSX サポートファイルコレクション
RS232C インターフェース
サンライズやフィリップスのモデムなどを制御するためのドライバ:
- エーリック・マース氏による化石ドライバへの Turbo Pascal 向けインターフェース作成。
- MDL-LIB(マルティン・デッカー氏公開承認、パブリックドメイン)の主な改良点:
,.typ-
,.var-
ファイルが.con-
に統合され、include 回避が可能。.lib-- Turbo Pascal 3.3 と互換性あり(詳細:
参照)。leesmij.txt
Slotman IDE for Turbo Pascal 3.3
- PC(Windows)上で動作する Turbo Pascal 3.3 用 IDE。Utils セクションより入手可能。
- MSX PAD:Windows 向けに作成された、MSX-Pascal よりも優れている IDE。「なぜ誰もこれをやらないのか」と自問させられるほどです。
- 「Breakfree」作成時に使用していたインクルードファイルが同梱されています。
INL パスカルライブラリ
ネストル・ソリアーノ氏が開発した TCP/IP スタック、MSX Ethernet(Obsonet)、シリアル RS232 向け:
- Telnet クライアント
- Telnet サーバー
ハンス・otten のパスカルプログラム群
基本ツール類
- フィルタプログラム:テキストファイルのコピー時、7 ビット切下げや追加/削除の調整。
- 分割と結合(Split / Combine)
:ファイルを 2 半分に分割。split
:ファイルを再結合。combine- MSX-DOS および CP/M 向け(私のソース)。
グラフィック変換プログラム群
MSX と PC(PCX 形式)間の変換ツール類:
- CNVS バージョン 2.3:MSX 画面 0-8 ⇔ PCX。英語版・洗練された構文。(1999 年 6 月更新)
- CNVS バージョン 2.1:古い MSX 画面 0-8 ⇔ PCX。オランダ語のみ。
- MSX12CNV:MSX の画面 12(フルカラー)表示・変換用。
- MSXCNV12:PCX を MSX の画面 12 に変換・表示用。
- Quickbasic プログラム(Hans Schoormans 氏作成):Paintshop PRO RAW ファイル → 画面 12 フルカラーへの変換。
- CNVSW:Windows インストール可能型。MSX 画面と PCX の変換・表示(CNVS, MSX12CNV, MSXCNV12 をラップ)。
- ⚠️
の必ずご参照ください。readme.txt
- ⚠️
グラフィック操作
- Paintshop Pro:PC 上のグラフィック操作に強く推奨されます(全てのソースコード含む、MS-DOS フリーウェア)。
関連ガイドとツール
- PCX 形式解説:PCX の構成に関する公式ガイド。
- インデックス:Pascal ソースコードを含むフロッピーディスクのファイル管理プログラム(MSX/MS-DOS 対応)。
- 私の MSX パスカルインクルードライブラリ:Turbo Pascal v3.00 を使用したオリジナル完全版。ライン、ボックス、円形、充填図形、スプライト、テキスト表示などを含む。多くの追随者が改良していますが、ツール付きの完全版を提供しています。
パスカルインクルードライブラリ(集録)
雑誌「Pascal uitgediept」などで注目された環境が収集されています。
- コマンドラインパスカルソースコード:標準的な CP/M/MSX-DOS コールを用い、ディスク上のセクタを読み込み修正する好例。
- Turbo Pascal 用 INLINE コード記述プログラム(3 つ)
- INLINE(J.A.C.G. van der Valk 氏):M80 マクロアセンブラで生成した REL ファイルを INLINE に翻訳。
- INLASS:Z80 マクロアセンブラで INLINE コードを生成(8080/8086/6502 サポート)。
- PMLINE:MC プログラム「PMLine」への適応および改良版。
- ソースコード付きの Turbo Pascal プログラム例:
- 画面 0 と 1 に逆文字を表示するもの。
- テキストまたは Wordstar ファイルを 1 ページ当たり 2 カラムに分割するもの。
- Pascal のディレクトリ:BDOS コールを使用。
- Juan Salas 氏によるソースコード:
- SDOS 向け:ウィンドウ付きのファイルマネージャー。
- MSX ビデオコンピュータ用:デジタル化機能搭載。
雑誌記事およびライブラリ紹介(MCCM / CUC Journaal / MSX Club Magazine)
MCCM シリーズ(Pascal uitgediept)
- No.61:JANSI の設定と使用法
- No.63:Pascal を用いたマウス操作
- No.65:より高速な Pascal
- No.66:変数の使用法
- No.67:メモリの使用法
- No.68:データ処理
- No.70:弾薬(Vulpatronen)
- No.71:ディレクティブ
- No.72:再帰処理
- No.75:画面 0
- No.90:Finse libraries(Manuel Bilderbeek 氏が Kari Lamassaari 氏のライブラリ解説)
MCM / CUC Journaal 記事一覧
- 1988 年 5 月号:Robotarm voeding en interface(スペクトロビデオ SV2000 ロボットアームの外部電源・プログラミング)
- 1990 年 7 月号:Automatisch opbellen AD Interface(自動発信および電話ベル音生成プログラム)
- その他:Pascal で BDOS コールを使用してディレクトリを開く方法、MT-Base to ASCII など。
MCM アーティクルに属するソフトウェア(レビュー・解説)
- No.37:Graphpak 環境およびパッチ(BREAK!)のレビュー
- No.40:Pascal から BIOS を呼び出す方法
- No.45:MDLLIB の Pascal ライブラリレビュー
- No.51:Pascal 向けの GIOS グラフィカル I/O システム
MSX Club Magazine アーティクル
- Mandelbrot fractals:マンデルブロ集合
- Bastaard pascal:高速な画面出力
- Fractals in Pascal deel 1:Pascal によるフラクタル第 1 部
- Cursus Turbo Pascal(第 1 部〜第 7 部):Turbo Pascal コースシリーズ。