Turbo Pascal 5.5 を Windows 10 (64bit) / 11 にインストールしてみる

# はじめに

Embarcadero からアンティークソフトウェアとして無償公開されている **Turbo Pascal 5.5** を、Windows 10 (64bit) / 11 環境で使えるようにする方法についての詳細です。

## ■ Turbo Pascal 5.5
**Turbo Pascal** は Borland 系 Pascal コンパイラであり、Pascal 言語用統合開発環境 (IDE) 製品です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/21785/bf6ba584-8d24-4380-56a0-60917f5e555b.png)

**Turbo Pascal 5.5** はオブジェクト指向拡張が行われた最初の Borland 系 Pascal で、**Delphi** に連なる **Object Pascal** の始祖です。 

**See also:**

 - [Delphi のご先祖を辿る (Qiita)](https://qiita.com/ht_deko/items/b41b0cd45181aec522d4)
 - [Pascal へのオブジェクト指向拡張の歴史と Delphi (Qiita)](https://qiita.com/ht_deko/items/ff2d90c9174290583377)

# インストール
 - **Turbo Pascal 5.5** は MS-DOS で動作するアプリケーションなので、MS-DOS や 16bit Windows へは普通にインストールできます。
 - 32bit Windows の場合、OS の種類によっては NTVDM が別途インストールされるかもしれませんが、基本的にはそのままインストールできます。
 - 64bit Windows では MS-DOS アプリケーションが動作しませんので、**MS-DOS Player** を使って動作させます (**DOSBox** 上でも動作可能です)。

本記事は Windows 10 (64bit) / 11 への Turbo Pascal 5.5 インストールを試みるものとなっています。

## MS-DOS Player 

MS-DOS Player アーカイブの `binary` サブフォルダには複数のバージョンの `MSDOS.EXE` があります。

| 32bit 版 | 64bit 版 | 説明 |
|:---|:---|:---|
| i86_x86 | i86_x64 | 8086 サポート |
| v30_x86 | v30_x64 | V30 サポート |
| i286_x86 | i286_x64 | 80286 サポート |
| i386_x86 | i386_x64 | 80386 サポート |
| i486_x86 | i486_x64 | 80486 サポート |
| ia32_x86 | ia32_x64 | IA32 (Pentium) サポート |

基本的にはどれを使っても構いませんが、リストの下に行くほど高機能かつバイナリサイズが大きくなります。

MS-DOS Player では MS-DOS アプリケーションを 64bit Windows で動作するようにコンバートできるのですが、この時できる実行ファイルのサイズも `MSDOS.EXE` のサイズに比例します。

**Download:** [MS-DOS Player (TAKEDA, toshiya)](http://takeda-toshiya.my.coocan.jp/msdos/)

## 具体的なインストール手順

### 1. Turbo Pascal 5.5 をダウンロード

CodeCentral から **Turbo Pascal 5.5** をダウンロードしてきます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/21785/276f0534-adcd-9024-aaf7-f1beb7b22cd0.png)

**Download:** [Antique Software: Turbo Pascal v5.5 (Embarcadero)](https://edn.embarcadero.com/article/20803)

※ EDN アカウントを持っていない場合には、事前に [EDN アカウントを取得](https://members.embarcadero.com/newuser.aspx?lang=jp)する必要があります。

<!--
[EDN を介さない直接ダウンロードリンク]
Turbo Pascal 5.5: http://altd.embarcadero.com/download/museum/tp55.zip
-->

### 2. アーカイブを解凍
ダウンロードした `TP55.ZIP` を適当な場所に解凍します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/21785/6f98c992-309d-83d5-7fc5-95e5f415e6a1.png)

解凍すると `TP55` フォルダができます。

### 3. MS-DOS Player をコピー
ダウンロードした  MS-DOS Player (`MSDOS.EXE`) を `TP55` サブフォルダ内にコピーします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/21785/c01fbd1f-d56b-53b5-e892-3c9136069534.png)

### 4. セットアップスクリプトの作成
`TP55` サブフォルダ内にセットアップ用のスクリプト `SETUP.CMD` を作成します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/21785/912829f7-9e66-d57b-bf21-917c59b21b8b.png)

内容は次の通りです。

```bat:SETUP.CMD
@ECHO OFF
CLS

SET TP=TP55
SET TPBGI=%TP%
SET TPOOP=%TP%
SET TPEXAMPLE=%TP%
SET TPDOC=%TP%\DOC
SET TPTURBO3=%TP%\TURBO3

MKDIR .\%TP%
MKDIR .\%TPBGI%
MKDIR .\%TPOOP%
MKDIR .\%TPBGI%
MKDIR .\%TPEXAMPLE%
MKDIR .\%TPDOC%
MKDIR .\%TPTURBO3%

:: Turbo Pascal Directory
COPY .\DISK1\README       .\%TP%
COPY .\DISK1\README.COM   .\%TP%
COPY .\DISK1\THELP.COM    .\%TP%
COPY .\DISK1\TPC.EXE      .\%TP%
COPY .\DISK1\TURBO.EXE    .\%TP%
COPY .\DISK1\TURBO.TPL    .\%TP%
COPY .\DISK1\UNPACK.COM   .\%TP%
COPY .\DISK2\TINSTXFR.EXE .\%TP%
msdos -e .\%TP%\UNPACK -r .\DISK1\HELP.ARC     .\%TP%
msdos -e .\%TP%\UNPACK -r .\DISK1\TOUR.ARC     .\%TP%
msdos -e .\%TP%\UNPACK -r .\DISK2\UTILS.ARC    .\%TP%

:: Graphics Subdirectory
msdos -e .\%TP%\UNPACK -r .\DISK2\BGI.ARC      .\%TPBGI%

:: OOP Example Subdirectory
msdos -e .\%TP%\UNPACK -r .\DISK2\OOPDEMOS.ARC .\%TPOOP%
msdos -e .\%TP%\UNPACK -r .\DISK2\TCALC.ARC    .\%TPOOP%

:: Example Subdirectory
msdos -e .\%TP%\UNPACK -r .\DISK2\DEMOS.ARC    .\%TPEXAMPLE%

:: Documentation Subdirectory
msdos -e .\%TP%\UNPACK -r .\DISK2\DOC.ARC      .\%TPDOC%

:: Turbo Pascal 3.0 Compatibility Subdirectory
msdos -e .\%TP%\UNPACK -r .\DISK2\TURBO3.ARC   .\%TPTURBO3%

pause
```

環境変数の内容を変更して、純正インストーラと同じ処理にする事ができます。

| 環境変数 | 指定されるフォルダ | デフォルト |
|:---|:---|:---|
| TP  | Turbo Pascal Directory | TP55 |
| TPBGI  | Graphics Subdirectory | TP55 |
| TPOOP  | OOP Example Subdirectory | TP55 |
| TPEXAMPLE  | Example Subdirectory | TP55 |
| TPDOC  | Documentation Subdirectory | TP55\DOC |
| TPTURBO3  | Turbo Pascal 3.0 Compatibility Subdirectory | TP55\TURBO3 |

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/21785/a28d5d56-42ad-3024-663f-6e409200c50e.png)

### 5. セットアップスクリプトの実行
スクリプト `SETUP.CMD` を実行します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/21785/02db5bb6-f00e-de04-f27d-c7f58303c65b.png)

`TP55` フォルダが生成されます。

### 6. フォルダの移動
生成された `TP55` フォルダを任意の場所に移動します。ここでは `C:\DOS` フォルダへ移動したものとして話を進めます。

### 7. TPC.CFG の作成
`C:\DOS\TP55` フォルダの中に `TPC.CFG` を作成し、ユニットパスを指定します。デフォルトのスクリプトのままだと次のような内容になります。

```txt:TPC.CFG
/UC:\DOS\TP55;C:\DOS\TP55\TURBO3
```

`/C` オプションの後にユニットパスをセミコロン区切りで指定します。具体的にはスクリプトの環境変数 `BGI` と `TURBO3` が指すパスを指定します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/21785/5ce2cfe6-4b71-b9e6-2942-e3ecdac77147.png)

ユニットパスは IDE の `[Options | Directories]` の `Unit directories:` からも設定できます。

### 8. 起動スクリプトの作成
`C:\DOS\TP55` フォルダの中に `TURBO.CMD` を作成します。

```bat:TURBO.CMD
@echo off
cls

set PATH=C:\DOS\TP55;%PATH%
cd C:\DOS\TP55

chcp 437
msdos turbo.exe
```

※ 日本語環境の Windows の場合、`TURBO.EXE` の実行前に `chcp 437` を実行しないと表示がおかしくなります。
※ `MSDOS.EXE` は `C:\DOS\TP55` フォルダまたはパスの通ったフォルダにコピーしておきます。

`TURBO.CMD` を実行すれば、めでたく **Turbo Pascal 5.5** が起動します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/21785/b60aeb86-1599-5fb5-f404-328d44efbc9e.png)

### 9. 起動用ショートカットの作成
起動用ショートカットは次のように指定します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/21785/38f8aaf6-bdf0-697d-5c78-9643dece040c.png)

| 項目 | 内容 |
|:---|:---|
| リンク先  | C:\Windows\System32\cmd.exe /c C:\DOS\TP55\TURBO.CMD |
| 作業フォルダ | C:\DOS\TP55 |

アイコンはお好きなものを指定して下さい。

**Download:** [Turbo Pascal 5.5 Icon](https://ht-deko.com/antique/TP55.ico)


# おわりに
本来は `TP55\DISK1` にある `INSTALL.EXE` を実行すればインストールできるのですが、

 - MS-DOS Player では *.ARC の解凍で止まる (そのままでは UNPACK.COM が動かない)。
 - ディスク交換の際にエラーになり、ファイルコピーを余儀なくされる。

ちょっとした罠があるため、Windows 10 (64bit Windows) / 11 では上記手順でのインストールをオススメします。

※ なお、この問題は同じアンティークソフトウエアである **Turbo Pascal 1.0** や **Turbo Pascal 3.02** では発生しません。

**See also:**

 - [Turbo Pascal 5.5 (Mr.XRAY)](http://mrxray.on.coocan.jp/Delphi/Others/TurboPascal55.htm)
 - [Embarcadero が公開しているアンティークソフト一覧 (Qiita)](https://qiita.com/ht_deko/items/ae7605c6b1f426ae234a)
 - [Pascal の勉強に使えそうな Pascal 処理系 (Qiita)](https://qiita.com/ht_deko/items/6376997a6d74e77c89e3) 
 - [Turbo Pascal 1.0 を Windows 10 (64bit) / 11 にインストールしてみる (Qiita)](https://qiita.com/ht_deko/items/54cefe48e729742e818d) 
 - [Turbo Pascal 3.02 を Windows 10 (64bit) / 11 にインストールしてみる (Qiita)](https://qiita.com/ht_deko/items/03f5f7ee0893402f99f6) 
 - [Turbo C 2.01 を Windows 10 (64bit) / 11 にインストールしてみる (Qiita)](https://qiita.com/ht_deko/items/100bb258e4480aa7bdf3) 
 - [Turbo C++ 1.01 を Windows 10 (64bit) / 11 にインストールしてみる (Qiita)](https://qiita.com/ht_deko/items/7a0e5d84d258c3b1a795) 
 - [Delphi 1.0 Client/Server を Windows 10 (64bit) / 11 にインストールしてみる (Qiita)](https://qiita.com/ht_deko/items/a65e0950b906d28ccb5f)
 - [C++Builder 1.0 Client/Server を Windows 10 (64bit) / 11 にインストールしてみる (Qiita)](https://qiita.com/ht_deko/items/40b67a7572b1110bff69)