『MSX0 Stack』の操作方法 - リモート接続

# ■ リモート接続

:::note info
MSX のエスケープシーケンスは VT52 のサブセットです。
:::

## ・シリアルコンソール
USB ケーブルで PC と接続しているとシリアルでテキストベースの通信が可能です。別途ターミナルソフトが必要です [^1]。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/21785/a1292821-6029-4cfe-3828-ff20c5496df8.png)
MSX0 Stack とは次の設定で接続できます。

| 項目 | 値 |
|:---|:---|
| 通信速度 (baud) | 115200 |
| データ長 | 8 |
| パリティ | なし |
| ストップビット  | 1 |
| フロー制御 | なし |

:::note
・〔BS〕は〔Ctrl〕+〔H〕かもしれません。お使いのターミナルソフトの設定を確認してみてください。
・Unit0 / Unit1 を操作できます。
・起動時にシリアルコーンソールから〔ESC〕キーまたは〔S〕キーを連打すると [Setup Utility](https://qiita.com/ht_deko/items/2ccf08e3014fbe46e913) 画⾯に⼊ることができます。
:::

:::note warn
Windows の場合、シリアル通信用の USB ドライバは自動でインストールされると思いますが、うまくインストールされていなかったり他の OS の場合には以下からダウンロードしてインストールしてください。

  ・[USB DRIVER & OPEN SOURCE LIBRARY (m5-docs)](https://docs.m5stack.com/ja/download)

MSX0 Stack のシリアル通信 IC には CP2104 または CH9102F のいずれかが使われています。
:::

## ・リモートコンソール
MSX0 Stack に IP アドレスが振られていれば (Wi-Fi に接続されていれば)、Port 2223 でテキストベースの通信が可能です。別途ターミナルソフトが必要です [^1]。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/21785/a34389e2-37ae-1378-2848-8407c6280741.png)

:::note
・〔BS〕は〔Ctrl〕+〔H〕かもしれません。お使いのターミナルソフトの設定を確認してみてください。
・Wi-Fi 経由の接続です。USB ケーブルで接続されている必要はありません。
・Unit0 / Unit1 を操作できます。
:::

:::note warn
・接続できない場合、『Windows Defender』等のファイアーウォールや、無線ルーターを含むアクセスポイントで通信ポートが塞がれていないか確認してください。
:::

## ・リモートコントロールパネル
MSX0 Stack に IP アドレスが振られていれば (Wi-Fi に接続されていれば)、リモートコントロールパネルが利用可能です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/21785/773478e7-6fec-6035-dc4c-84add5c1e915.png)

現在の所 Windows 専用で、インストーラは microSD 内の `TOOLS` にあります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/21785/965f61fb-21c1-a58a-7a23-602f66476ac5.png)

実行時に、接続先や表示方法を指定できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/21785/08f6ff47-386c-6efd-3e61-ac08ca43f2c9.png)

| 項目 | 説明 |
|:---|:---|
| IP | 接続先の MSX0 Stack の IP アドレスを指定します。 |
| Style | `CRT` / `Simple` が選べます。 |
| Scale | 表示倍率です (`1`..`4`)。小さい程、遅延が少なくなります。 |

:::note
・Wi-Fi 経由の接続です。USB ケーブルで接続されている必要はありません。
・Unit0 のみ操作できます。
・ステータスモニターは表示されません。
・右クリックするとメニューが出ます。リセット等が可能です。
:::

:::note warn
・接続できない場合、『Windows Defender』等のファイアーウォールや、無線ルーターを含むアクセスポイントで通信ポートが塞がれていないか確認してください。
:::

### MSX 固有のキー

リモートコントロールパネルでは、Keyboard Face では入力できない〔Ctrl〕キーやファンクションキーが押せます。

MSX 固有のキーは次のように割り当てられています。割り当ては `"%Appdata%\IoT Media Laboratory\RemoteControlPanel"` にある `RemoteControlPanel.ini` を直接書き替える事で変更可能です。

| MSX | Windows |
|:---:|:---:|
| 〔F6〕 | 〔Shift〕+〔F1〕 |
| 〔F7〕 | 〔Shift〕+〔F2〕 |
| 〔F8〕 | 〔Shift〕+〔F3〕 |
| 〔F9〕 | 〔Shift〕+〔F4〕 |
| 〔F10〕 | 〔Shift〕+〔F5〕 |
| 〔CAPSLOCK〕 | 〔F10〕 |
| 〔HOME〕 | 〔F11〕 |
| 〔CLS〕 | 〔Shift〕+〔F11〕 |
| 〔STOP〕 | 〔F12〕 |
| 〔かな〕 | 〔右Alt〕 |
| 〔GRAPH〕 | 〔左Alt〕 |
| 〔SELECT〕 | 〔APP〕 |

`〔GRAPH〕`キー (左Alt) を押しながら次のキーを押す事でグラフ文字を入力する事も可能です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/21785/71b462c4-8fb4-1514-dab8-122fefd3257e.png)

日本語入力関連です。

| キー | 機能 |
|:---|:---|
|〔右Alt〕| 英数入力 ⇔ かな/カナ入力 |
|〔Shift〕+〔右Alt〕| 英数入力 ⇔ ローマ字入力(かな/カナ) [^2] |
|〔F10〕| ひらがな ⇔ カタカナ |
|〔Ctrl〕+〔Space〕| 日本語入力 (全角) の ON / OFF [^3] |

## ・テキストファイルの送受信
[シリアルコンソール](#シリアルコンソール) または [リモートコンソール](#リモートコンソール) をお使いの場合、ターミナルソフトの種類にもよりますが MSX-DOS からテキストファイルの送受信が可能です。

### MSX-DOS -> PC (テキストファイル)
テキストファイルを MSX0 から送るには **type** コマンドで表示するだけです。

```
A:\>type ファイル名 
```

中間形式の BASIC ファイルはテキストファイルではないので『MSX-DOS TOOLS』または 『MSX-DOS2 TOOLS』に含まれる **LIST.COM** を使ってリストを表示してください。

```
A:\>list ファイル名 
```

ターミナル側ではテキストファイルを選択して、テキストエディタに貼り付けるだけです。MSX 固有の文字は失われる可能性があります。

### PC -> MSX-DOS (テキストファイル)

テキストファイルを MSX0 で受け取るには、

```
A:\>COPY CON ファイル名〔Enter〕
```

として、

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/21785/209330fe-f630-5e50-3b92-cba976385cf7.png)

ターミナルソフト側でテキストファイルの中身を貼り付け、

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/21785/d7ffe57f-5ec4-0477-7254-e2214360aca8.png)

:::note
二度貼り付けたようになっているのはローカルエコーのためです。実際には一度しか貼り付けていません。
:::

〔Ctrl〕+〔Z〕、〔Return〕すれば OK です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/21785/a4863773-b383-2af7-48e4-6f0544ef50be.png)

:::note
〔Ctrl〕+〔Z〕を二度押したようになっているのはローカルエコーのためです。実際には一度しか押していません。
:::

コンソールからの入力をファイルに出力しているだけなのですが、結果的にファイルの受信となっています。

## ・バイナリファイルの送受信
バイナリファイルは送受信できませんので、ISH でテキストファイルに変換して送信します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/21785/1ffd131a-805c-9fad-7b72-110d07e52635.png)

 - [ISH111 (88VA User's Club Software Library)](http://www.pc88.gr.jp/softlib/index.php?action=list_file&anum=1&gnum=391)
 - [ish for Linux/Windows (Vector: @bko)](https://www.vector.co.jp/soft/unix/util/se499536.html)

バイナリファイルを ISH ファイル (テキストファイル) に変換するには次のようになります。

```
A:\>ISH バイナリファイル名 /s
```

ISH ファイル (テキストファイル) をバイナリファイルに復元するには次のようになります。

```
A:\>ISH ISHファイル名
```

ISH によるバイナリファイルの変換は古くから使われてきた手法ではありますが、変換効率も悪くなく誤り訂正機能もあるため、特定の条件下においては現在でも有用だと思われます。

**See also:**

 - [ISH (Wikipedia)](https://ja.wikipedia.org/wiki/Ish)

# 索引
 - [■ メイン](https://qiita.com/ht_deko/items/b284cb93ac34e2b77d9a)
 - [■ ハードウェア](https://qiita.com/ht_deko/items/cdb1594e9879a5e9e660)
 - [■ システムメニュー](https://qiita.com/ht_deko/items/f9eb7a5e5e215230b802)
 - [■ Setup Utility](https://qiita.com/ht_deko/items/2ccf08e3014fbe46e913)
 - ■ リモート接続
 - [■ ソフトウェア](https://qiita.com/ht_deko/items/8c20354b867b0d540805)

[^1]: 別途ターミナルソフトが必要です。Windows 用で有名所と言えば『[TeraTerm](https://github.com/TeraTermProject/osdn-download/releases)』でしょうか？
[^2]: MSX2 以降。
[^3]: 漢字モード中で有効。