3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Turbo Pascal (MSX) に関する情報

Last updated at Posted at 2024-05-02

はじめに

『Turbo Pascal (MSX) 』関連の情報を集めてみました。

image.png

Turbo Pascal

『Turbo Pascal』は Borland 社が発売した製品です。誇張抜きに 爆速の Pascal コンパイラ です。

ver3.0 までは CP/M-80 版、CP/M-86 版、MS-DOS 版、PC DOS 版がありました。ver4.0 以降は MS-DOS / PC DOS 版となりました 1

『Turbo Pascal for Windows』を経て、現在の『Delphi』までその流れは続いています。

Turbo Pascal (MSX)

『Turbo Pascal』 の MSX 版が Borland 社から発売される事はありませんでしたが、書籍『Turbo Pascal Compleet』と一緒になったものが Philips 社から発売されていたようです (日本未発売)。

image.png

会社 型番 製品
Philips NMS 8901 Turbo Pascal
Philips Italy VG 8105 Turbo Pascal

MSX で動作する Turbo Pascal

MSX-DOS がほぼ CP/M-80 なので、CP/M-80 版の『Turbo Pascal』が MSX 上で動作します。MSX 版は CP/M-80 用 ver3.0 をカスタマイズしたもののようです。

CP/M-80 版 Turbo Pascal の最終バージョンは 3.01A です。

『Turbo Pascal』には インライン機械語 (≠ インラインアセンブラ) があるので、MSX 固有の機能を利用可能です。

Turbo Pascal のインストール

MSX-DOS 版はそのままディスクから起動するだけです。

CP/M-80 版『Turbo Pascal 3.0』を MSX で使うのなら、MSX-DOS が起動するディスクに以下のファイルをコピーします。

ファイル名 説明
TURBO.COM Turbo Pascal 本体
TURBO.MSG エラーメッセージファイル
TURBO.OVR オーバーレイファイル
TINST.COM 環境設定プログラム
TINST.MSG 環境設定プログラム用テキストファイル
TINST.DTA 環境設定用データファイル

起動は 80 文字モードで TURBO.COM を実行するだけです。

A> MODE 80
A> TURBO

PC DOS 版の『Turbo Pascal 3.0』は Embarcadero 社がアンティークソフトウェアとして公開していますが、CP/M-80 版や MSX 版は公開されていません。

Web 上にあるアーカイブの使用は自己責任となります。この件に関して Embarcadero 社に問い合わせたりする事は控えてください。

スクリーン設定 (TINST)

スクリーン設定を TINST.COM で行う事ができます。

A> MODE 80
A> TINST

別記事に詳細がありますが、80 文字 (MODE 80) で動作させるなら、Teleray series 10 を選べばいいです。

項目 説明
25) Teleray series 10 VT-52 互換 (ハイライトなし)

MSX は 3.58MHz なので、クロックはとりあえず 4 に設定しておきます。

項目 設定値
Operating frequency of your microprocessor in MHz (for delays): 4

Turbo Pascal は MSX1 でも動作するのですが、80 文字モードにできないため MODE 40 用のスクリーン設定を作成する必要があります。40 文字モードでは TINST.COM の設定画面が見にくいので、一旦 MSX2 等の 80 文字モードや CP/M-80 エミュレータで MODE 40 用のスクリーン設定を作成する事をオススメします。

コマンド設定 (TINST)

コマンド設定を TINST.COM で行う事ができます。

A> MODE 80
A> TINST

CURSOR MOVEMENTS:

NO 機能 ショートカット 表示
1 Character left カーソル左 (←) Ctrl-]
2 Alternative
3 Character right カーソル左 (→) Ctrl-\
4 Word left
5 Word right
6 Line up カーソル上 (↑) Ctrl-^
7 Line down カーソル下 (↓) Ctrl-_
8 Scroll down
9 Scroll up
10 Page up
11 Page down
13 To right on line
14 To top of page
15 To bottom of page
16 To top of file
17 To end of file
18 To beginning of block
19 To end of block
20 To last cursor position

INSERT & DELETE:

NO 機能 ショートカット 表示
21 Insert mode on/off
22 Insert line
23 Delete line
24 Delete to end of line
25 Delete right word
26 Delete character under cursor 〔Delete〕 <DEL>
27 Delete left character 〔BS〕 Ctrl-H
28 Alternative

BLOCK COMMANDS:

NO 機能 ショートカット 表示
29 Mark block begin
30 Mark block end
31 Mark single word
32 Hide/display block
33 Copy block
34 Move block
35 Delete block
36 Read block from disk
37 Write block to disk

MISC. EDITING COMMANDS:

NO 機能 ショートカット 表示
38 End edit 〔ESC〕〔0〕 <ESC> 0
39 Tab
40 Auto tab on/off
41 Restore line
42 Find
43 Find & replace
44 Repeat last find
45 Control character prefix

MSX0 Stack のキーボードフェイスでは〔Ctrl〕キーが押せないため、そのままではコードエディタを終了させる事ができません。38: End edit に別のショートカットを割り当てる必要があります。例では〔ESC〕〔0〕を割り当てています。キーボードフェイスで設定するのは危険を伴うので、リモートコントロールパネルからの設定をオススメします。

8 bit パッチ

CP/M 80 版の Turbo Pascal は 8bit 文字が通りません (MSX 版は大丈夫)。このため、自前でパッチをあてる必要があります。

image.png

任意のバイナリエディタで TURBO.COM から 7F FE を検索し、FF FE に書き換えれば 8bit 文字が通るようになります。これは Turbo Pascal 1.0 / 2.0 も同様です。

image.png

TPA とエンドアドレス

実行形式ファイル (*.COM) をメモリ搭載量の異なる機種で動作させるためには、その機種の TPA 2 に合わせてコンパイラオプションでエンドアドレスを変更する必要があります。

image.png

Mem Start
(Min)
End End
(Max)
64K 20E3 F942 FC06
MSX0 Stack
MSX-DOS (57.25K)
20E3 DE42 E106
MSX0 Stack
MSX-DOS (漢字)
20E3 DA42 DD06
56K 20E3 D942 DC06
MSX0 Stack
Nextor (54.75K)
20E3 D442 D706
MSX0 Stack
MSX-DOS2 (54.5K)
20E3 D342 D606
54K 20E3 D142 D406
MSX0 Stack
MSX-DOS2 (漢字)
20E3 CF42 D206
48K 20E3 B942 BC06
PC-G850V
EborsyEEP (43K)
20E3 A542 A806
40K 20E3 9942 9C06
32K 20E3 7942 7C06

48K の設定にしておけば、殆どの MSX で動作すると思います。

エンドアドレスはターゲットの MSX の TPA に合わせる必要があります。

例えば、ANK モードで『Turbo Pascal』を起動して実行形式ファイルを生成し、漢字モードで実行形式ファイルを実行するとメモリ不足で動作しない事があります。

クロスコンパイル

PC で CP/M-80 エミュレータを動作させ、そこで『Turbo Pascal』を走らせて MSX 用にクロスコンパイルする事もできます。

例えば 『RunCPM』 は TPA を 64KB に設定できるので、MSX ではコンパイルできないサイズのソースコードをコンパイルする事が可能です。

image.png

MSX 固有の機能を使っていなければ、CP/M-80 で動作するアプリケーションを MSX で作る事も可能です。

クロスコンパイル環境でも MSX 用のスクリーン設定を追加し、TINST で MSX 用に切り替えた状態でコンパイルする必要があります。テキスト画面制御用の関数 (GotoXY() 等) は TINST でのスクリーン設定 (エスケープシーケンス) を参照しているからです。

クロスコンパイル (その2)

『MSXPad』という Windows で動作するクロスコンパイル環境もあります。

こちらには 『Turbo Pascal 3.3f』 という MSX computer club Enschede (Frits Hilderink 氏) 製の MS-DOS 用コマンドラインコンパイラが使われています。

image.png

なお、『Turbo Pascal 3.3f』には (クロスじゃない) MSX で動作するコマンドラインコンパイラもあります。

image.png

再帰

再帰を含むコードを記述する場合にはコンパイラ指令 {$A-} を指定する必要があります。

指令 指令 説明
絶対コード {$A+} または {$A-} 絶対コードの生成。再帰的呼び出し (リカーシブコール) が不可能なコードを生成するか、可能なコードを生成するか?再帰を含むコードでは {$A-} を指定しなくてはならない。
program TEST(Input, Output);
{$A-}
...

{$A+}は C 言語の #pragma nonrec に相当します。

コード入力支援

『MSX-DOS TOOLS』や『MSX-DOS2 TOOLS』に含まれる KEY.COM を使ったキーボードテンプレートです。大したものではありませんが、Turbo Pascal 起動前に実行しておくとコードの記述が幾分楽になります。

TP3KEYS.BAT
KEY OFF
KEY 1,"begin\0Dend\3B"
KEY 2,"if\20\20then"
KEY 3,"for\20\20to\20\20do"
KEY 4,"while\20\20do"
KEY 5,"repeat\0Duntil\20\3B"
KEY 6,"program\20\3B"
KEY 7,"else"
KEY 8,"goto\20\3B"
KEY 9,"case\20\20of\0Dend\3B"
KEY 10,"with\20\20do"
KEY ON

こちらの方が速いです。

TP3KEYS.BAT
KEY ON 1,"begin\0Dend\3B" 2,"if\20\20then" 3,"for\20\20to\20\20do" 4,"while\20\20do" 5,"repeat\0Duntil\20\3B"
KEY 6,"program\20\3B" 7,"else" 8,"goto\20\3B" 9,"case\20\20of\0Dend\3B" 10,"with\20\20do"
ファンクションキー キーボードテンプレート
[F1] begin
end
;
[F2] if  then
[F3] for  to  do
[F4] while  do
[F5] repeat
until 
;
[F6] program ;
[F7] else
[F8] goto ;
[F9] case  of
end
;
[F10] with  do

image.png

KEY.COM を使ってキーボードテンプレートを最下行に表示する場合は TINST.COM を使ってスクリーンの行数を 23 にする必要があります。また、キーボードテンプレートは最下行に表示されていなくても利用可能です。

TPKEYS.COM

トランジェントコマンド TPKEYS.COM を作成しました。

image.png

ドキュメント

公式の日本語マニュアルは書籍として販売されていました。

image.png

タイトル 著者 ISBN-10
(Amazon)
出版年
Turbo Pascal プログラミング・マニュアル ボーランドインターナショナル(編)
マイクロソフトウエアアソシエイツ(訳)
4880631205 1984/6/25

この書籍は国立国会図書館デジタルコレクションで読む事ができます。

書籍の閲覧には国立国会図書館の利用者登録 (本登録) が必要です。

書籍

Turbo Pascal 関連書籍に関する別記事があります。

広告

『Turbo Pascal 3.0』の広告です。

image.png

おわりに

『Turbo Pascal 3.0』の使い方に関しては別記事があり、本記事は MSX 用に抜粋して加筆したものになります。

MSX 固有の機能を Turbo Pascal から使う方法や、MSX そのものの書籍については以下のリンクが参考になるかと思います。

  1. 別系統で Macintosh 版がありました。ver3.0 と ver4.0 の中間 +α。

  2. Transient Program Area。MS-DOS で言う所のコンベンショナルメモリに相当。

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?