# MSXPad を 64bit Windows で使えるようにする --- tags: Pascal MSX Borland TurboPascal MSX-DOS created_at: 2022-11-20 updated_at: 2022-11-20 --- # はじめに MSX-DOS 用の Turbo Pascal クロスコンパイラ統合環境である **MSXPad** の存在を知りました (情報が多い)。 ![image.png](./images/c393ceb6-3b00-8de4-a962-4c32007d5084.png) この MSXPad を 64bit Windows で動作させる記事です。 # MSXPad **MSXPad** は SLotman 氏による Turbo Pascal 統合環境です。 MSX computer club Enschede (Frits Hilderink 氏) によって作られた **Turbo Pascal 3.3f クロスコンパイラ (MS-DOS 用)** と、MSX エミュレータ (デフォルトで openMSX) によるツールチェインです (情報が多い)。 ## MSXPad の問題点 先述の通り、Turbo Pascal 3.3f クロスコンパイラは MS-DOS プログラムのため、Google 検索で引っ掛かる MSXPad v1.6 以前のバージョンは 64bit Windows では動作しません (インストールは可能)。 これを解決するための **MSXPad Revived** があり、MSXPad v1.6 をインストールした環境に上書きする形でインストールすると、64bit Windows で動作するようになる上、openMSX も同時にインストールされます。 これで終わりでもいいのですが、いくつか引っ掛かる点があります。 - MSXPad v1.6 はインストーラで提供されており、MSXPad Revived もインストーラで提供されているので、同じフォルダにインストールするとアンインストールの際に面倒な事になる。 - MSXPad v1.6 はインストーラは何かに引っ掛かっているのか、インストールがとても遅い。 - 実は 64bit Windows で動作する MSXPad v1.8 が存在する。 - MSXPad v1.8 はインストーラ形式ではない。 **See also:** - [Utilities - The MSX Files (icongames.com.br)](http://www.icongames.com.br/msxfiles/util-en.htm) - [MSXPad v1.6 (icongames.com.br)](https://www.icongames.com.br/msxfiles/utils/msxpad.zip) - 直接リンク - [MSXPad Revived (Desarrollos en 8 Bits. ZX Spectrum, Commodore 64.)](https://www.8bitsbasic.es/p/msx-pad-revived.html) ## MSXPad v1.8 のインストール MSXPad v1.8 は次の場所からダウンロードできます。 - [Utilities - The MSX Files (icongames.com.br)](http://www.icongames.com.br/msxfiles/util-en.htm) - [MSXPad v1.8 (icongames.com.br)](https://www.icongames.com.br/msxfiles/utils/MSXPad64.zip) - 直接リンク ### ■ 最も簡単なインストール方法 MSXPad v1.6 インストーラを実行し、同じ場所に MSXPad v1.8 のアーカイブを解凍するのが最も簡単なのですが、先述の通り MSXPad v1.6 のインストーラはとても遅いのです。 ### ■ 手動インストール MSXPad v1.8 を利用した手動インストールを行ってみます。 1. MSXPad v1.8 アーカイブを適当な場所に展開します。`C:\TOOLS\MSXPad` のようなスペースを含まない単純なパスがオススメです。 2. VB6 ランタイムのインストール [Vector にある VB6 ランタイム](https://www.vector.co.jp/soft/win95/util/se342080.html)をインストールします。 3. OCX の登録 コマンドプロンプトを管理者権限で実行し、次のコマンドを実行します。 ```bat C:> C:\Windows\SysWOW64\regsvr32.exe C:\Tools\MSXPad\cmax20.ocx ``` ## MSXPad の使い方 軽く使い方を。 別途、何かしらの **MSX エミュレータ** が必要なので、事前にインストールしておいてください。デフォルトの設定では **openMSX** を使う事になっています。 ![image.png](./images/4ac08029-0319-319d-2a28-16ae434b615f.png) **blueMSX** も使えます。 ![image.png](./images/253a2856-a230-8a29-6c25-0c79096b4823.png) **See also:** - [openMSX](https://openmsx.org) - [blueMSX](http://bluemsx.msxblue.com/jindex.htm) ### 環境設定 最初に使う時は環境設定を行います。まずは `MSXPad.exe` を実行します。 ![image.png](./images/264b0936-2e11-45e4-aea5-3e95676d3b33.png) テンプレート画面は [Cancel] で閉じます。 ![image.png](./images/509dc5d2-d042-8a0d-a85b-613e3671c432.png) `[Edit | Preferences]` で設定画面を開きます。 ![image.png](./images/5ea725d5-559c-4697-718a-3559d232550d.png) | 項目 | 説明 | |:---|:---| | Emulator's path | エミュレータの EXE へのフルパス | | Command line | エミュレータのためのオプション | | Code font size | 16 とかに変更 | コマンドラインのデフォルトは openMSX 用となっていますが、私は blueMSX を使っています。 | エミュレータ | オプション | |:---|:---| | openMSX | -diska %dsk -machine Philips_NMS_8250 | | blueMSX | /diskA %dsk /machine "MSX2+" | :::note info blueMSX の設定で Philips_NMS_8250 が指定されているのは、デフォルトの C-BIOS だと FD が使えないからです。 ::: :::note info blueMSX の設定で MSX2+ を使うようになっているのは、MSX2 とかだとキーボードの刻印通りに入力できないからです。 ::: ### Hello,world. まずはプロジェクトを作成します。[File | New | Project] でテンプレートを開きます。どれでもいいので、テンプレートを選択し `[Open]` を押します。 ![image.png](./images/e2485202-653f-732d-3299-0f2e0c6e3565.png) MSXPad のインストールフォルダの下に `PRJ` というフォルダを作り、その下に `HELLO` サブフォルダを作って、そこに `HELLO.PAS` という名前でファイルを保存します (`C:\TOOLS\MSXPad\PRJ\HELLO\HELLO.PAS`)。PASCAL ファイル名は 8.3 形式にしておいてください。 ![image.png](./images/9755688a-5384-e145-6d8b-3207083bea3a.png) `[保存]` ボタンを押すと、選んだテンプレートを元にしてプロジェクトファイルが作られます。 ![image.png](./images/926886ab-3223-5d85-c77a-5ba15c49d9bd.png) 一旦、`C:\TOOLS\MSXPad\PRJ\HELLO` へ行き、生成されている `AUTOEXEC.BAT` をテキストエディタで開きます。 ![image.png](./images/12338686-fce3-4d33-ded0-a0f20fdb347a.png) 次のような内容になっていると思います。 ```text SET EXPERT ON HELLO ``` `SET EXPERT ON` の行を削除して保存します。 ```text HELLO ``` MSXPad に戻って、コードを記述します。 ![image.png](./images/8150a76e-82d3-3e16-3ee2-f8be7590d8c9.png) ```pascal begin WriteLn('Hello,world.'); end. ``` `[File | Compile and Run]` または `〔F5〕` キーでコンパイル&実行します。 ![image.png](./images/f15265df-1704-6c7a-79db-360fa7ee2e93.png) コンパイルが正常終了するとエミュレータが起動し、プログラムが実行されます。 ![image.png](./images/224d4d3b-cd5d-47d0-1601-797363504926.png) 簡単ですね! ちなみに [Game] 等のテンプレートを使ってプロジェクトを作成すると、最初から各種インクルードファイルを追加したソースコードが生成されます。 ![image.png](./images/58a356af-6f22-a512-191b-974e12dc7cda.png) | テンプレート | インクルードファイル | |:---|:---| | HiSpec | MSXDOS2.inc
msx.inc
pal.inc
sprite.inc
misc.inc
MAPPER.inc
Mbplayer.inc | | Game | MsxDskIO.inc
msx.inc
pal.inc
sprite.inc
misc.inc | | msx1 | MsxDskIO.inc
msx.inc
msx1.inc
sprite.inc | | normal | \<なし\> | インクルードファイルを使うと、グラフィックやサウンド、ジョイスティック等の **MSX 固有の機能**を使う事ができます。詳しくは `help` フォルダにある `ManualMSXPad.pdf` を参照してください。 # おわりに MSXPad v1.7 以降がどうやって 64bit Windows で Turbo Pascal 3.3f クロスコンパイラを実行しているかというと、**DOSBox** を組み込んでクロスコンパイルを実現しています (`compiler` フォルダの中にあります)。力業なツールチェインですね (w ![image.png](./images/e74f0c11-dc32-eb6e-8f5d-db02b830181b.png) MSX で Turbo Pascal を実行してのセルフ開発もいいですが、クロスコンパイラ+エミュレータ環境もいいですね。 ![image.png](./images/f987f430-d94d-88b3-a646-bd403f63e573.png) なお、Turbo Pascal 3.3f には (クロスじゃない) MSX で動作するコンパイラもあります。 ![image.png](./images/cd9d81e7-cba7-76b6-0639-77de2f3dfb79.png) **See also:** - [Pascal compilers for the MSX (pascal.hansotten.com)](http://pascal.hansotten.com/delphi/turbo-pascal-on-cpm-msx-dos-and-ms-dos/) - [MSX2 version of Turbo Pascal 3.00A (pascal.hansotten.com)](http://pascal.hansotten.com/uploads/msx/tpmsx2.zip) - [Turbo Pascal 3.3f Command-line Compiler (pascal.hansotten.com)](http://pascal.hansotten.com/uploads/msx/turbo33f.zip) - [Turbo Pascal 3.0.x の使い方 (Qiita)](./ec212f5cc17cbe5f718b.md)