
ここ数年、AIに文章を書かせたり、プログラムを作ってもらったりすることが身近になりました。
最近では、AIが単に質問へ答えるだけでなく、外部のツールや機器と接続し、情報を取得したり処理したりする使い方も増えています。
そこでふと思いました。
「実機のPC-98もAIにつないだら、AIからPC-98自身の状態を確認できるのでは?」
PC-98本体でAIを動かすのは現実的ではありませんが、Windows 11側でAIを動かし、RS-232Cを通じてPC-98と通信すれば、PC-98を現代のAI環境につなぐことはできるはず…
この記事では、実機PC-98とWindows 11をRS-232Cで接続し、CodexからPC-98のDOSバージョン、メモリ、日時、ドライブ容量、CONFIG.SYSなどを確認できるようにします。
- 全体構成
- PC98Bridgeでできること
- 必要なもの
- PC98Bridgeのダウンロード
- Windows 11側の準備
- PC-98側の準備
- Windows CLI(コマンドライン操作)から通信確認
- ChatGPT / Codexから接続する
- おわり
- 使用できる機能一覧
全体構成
今回使用するアプリは PC98Bridge というツール一式です。
PC98Bridgeは、Windows 11と実機PC-98をRS-232Cで接続し、Windows側からPC-98の情報を取得するための仕組みです。
PC-98側ではAGENT.EXEを起動して、Windows側から送られてくる問い合わせを待ち受けます。Windows側ではpc98_serial.pyがシリアル通信を担当し、mcp_server.pyを通してCodexからPC-98へ問い合わせできるようにします。
通信の流れは次のようになります。
┌─────────────────────────┐
│ [Windows 11] │
│ │
│ ChatGPT Desktop │
│ ↓ │
│ Codex │
│ ↓ MCP │
│ mcp_server.py │
│ ↓ │
│ pc98_serial.py │
│ ↓ pyserial │
│ COM3 │
└─────────┬───────────────┘
│ RS-232C
│ 9600bps / 8N1
▼
┌─────────────────────────┐
│ [PC-98] │
│ │
│ RSDRV.SYS │
│ AUX │
│ ↓ │
│ AGENT.EXE │
└─────────────────────────┘
CodexからPC-98の状態を確認すると、問い合わせはMCP(AIと外部ツールを接続する仕組み)経由でmcp_server.pyへ渡され、pc98_serial.pyからRS-232Cを通してPC-98側のAGENT.EXEへ送られます。
AGENT.EXEはDOSや実機の情報を取得してWindows側へ返し、その結果が最終的にCodexへ表示されます。
なお、AIそのものがPC-98上で動作しているわけではありません。
AIはWindows 11側で動作し、PC-98は実機情報を取得して返す役割を担当します。
PC98Bridgeでできること
以下のPC-98の情報を取得できます。
- PC-98との通信確認
- DOSバージョン
- 日時
- ドライブ容量
- 環境変数
- コンベンショナルメモリ
- UMB
- XMSメモリ
- デバイスドライバ
- CONFIG.SYS / AUTOEXEC.BAT
- 任意ファイル取得
- ディレクトリ一覧
現時点では、安全のためPC-98側への書き込み機能は実装していません。
なお、Windows側には、取得したファイルをWindows上へ保存する機能があります。
各機能の詳細やCLI(コマンドライン操作)/MCPでの対応については、記事下部の「使用できる機能一覧」を確認してください。
実際の動作
実際にCodexからPC-98へアクセスしている様子です。
動画では、
- CONFIG.SYSの取得
- UMBの空きブロック確認
- 取得した情報をもとにCONFIG.SYSの改善案を提案
まで行っています。
必要なもの
1. PC-98本体
以下を使用します。
なお、今回はCドライブのMS-DOS6.2のみを使用します。
| 項目 | |
|---|---|
| 機器 | PC-9821Ra43 |
| OS | Aドライブ:Windows98 Bドライブ:データ領域 Cドライブ:MS-DOS6.2 |

2. USB to Serial 変換ケーブル
Windows 11 のUSBから9pinのSerial ケーブルへの変換ケーブルです。
3. RS-232C 9pin to 25pin 変換ケーブル(リバース)
9pinのSerial ケーブルから25pinへ変換するためのケーブルです。
PC-98対応と書かれたものを選びました。
4. Windows 11 PC
Windows 11 Pro(25H2)を使用しています。
Windows 11 Homeでの動作は未確認です。
以上が必要なものになります。
それでは以下より構築手順になります。
PC98Bridgeのダウンロード
1. ファイルのダウンロード
今回必要なアプリ(PC98Bridge)を以下からダウンロードします。
https://github.com/yarufu/PC98Bridge/releases/tag/V0.1
このページでは、PC-98側で使用するAGENT.EXEとWindows側のスクリプト一式をまとめたPC98Bridge.zipを配布しています。
ソースコード一式は、GitHubのrepositoryから確認できます。
https://github.com/yarufu/PC98Bridge
今回は構築を簡単にするため、ReleaseにあるPC98Bridge.zipを使用します。
赤枠で囲まれている"PC98Bridge.zip"をダウンロードします。

2. ファイルの展開
C:\PC98Bridge以下にファイルを展開します。

展開すると、主に以下のファイルが入っています。
PC98Bridge/
├── README.md # 使い方や概要
├── LICENSE # MIT License
├── pc98/
│ └── AGENT.EXE # PC-98実機で起動するプログラム
└── windows/
├── mcp_server.py # CodexからMCP経由で接続するサーバー
├── pc98_serial.py # PC-98とのシリアル通信処理
├── pc98ctl.py # Windows CLIから操作するツール
└── requirements.txt # 必要なPythonモジュール一覧
今回の構築で主に使用するのは、PC-98側のpc98\AGENT.EXEと、Windows側のwindowsフォルダ内のファイルです。
AGENT.EXEは後ほどPC-98実機へコピーして使用します。
Windows 11側の準備
1. USBドライバのインストール
USB to Serial 変換ケーブルのドライバをWindows11にインストールし認識させます。
2. COMポート番号の確認
デバイスマネージャーを開き、「ポート(COMとLPT)」を展開します。
USB Serial Portなどの項目を確認し、表示されているCOM番号を控えておきます。
今回は、COM3として認識されました。

3. Python 3の導入
以下よりPython 3をダウンロードします。
https://www.python.org/downloads/windows/
今回はPython 3.13.15の64bit版をダウンロードしました。

なお、インストール方法はここを参照してください。
※Pillowのインストールは必要ありません
4. 必要なPythonモジュールのインストール
Windowsパワーシェルを管理者で起動し、以下コマンドを実行します。
環境によっては通常権限だとPythonモジュールのインストールに失敗する場合があるため、本記事では管理者権限で実行しています。
cd C:\PC98Bridge py -3 -m pip install -r windows\requirements.txt

PC-98側の準備
1. PC-98へAGENT.EXEをコピー
先ほど展開したC:\PC98Bridge\pc98\AGENT.EXEを、フロッピーディスクなり、ネットワーク経由なりでPC-98へコピーします。
今回はCドライブのルートにコピーしています。

2. PC-98側でRSDRV.SYS・9600bps設定
まず、CONFIG.SYSにRSDRV.SYS(MS-DOSでシリアルポートを使用できるようにするデバイスドライバ)が登録されているか確認します。
すでに以下のような記述がある場合は、追加する必要はありません。
DEVICEHIGH=C:\DOS\RSDRV.SYS
登録されていない場合は、環境に合わせて以下のように追加します。
DEVICE=C:\DOS\RSDRV.SYS

※ RSDRV.SYSのパスはDOSのインストール先によって異なります
※ DEVICE=またはDEVICEHIGH=ですでにRSDRV.SYSが登録されている場合、二重に登録しないでください
次に、AUTOEXEC.BATにRS-232Cの通信条件を "9600bps / 8N1 / フロー制御なし" として設定します。
AUTOEXEC.BATに以下を記載します。
SPEED RS232C-0 9600 BITS-8 PARITY-NONE STOP-1 NONE

3. AGENT.EXEの起動
CONFIG.SYSとAUTOEXEC.BATの設定を反映させるために、PC-98を再起動します。
その後、AGENT.EXEを起動します。

Windows CLI(コマンドライン操作)から通信確認
いきなりCodexから接続してもよいのですが、うまく動かなかった場合に「PC-98との通信が悪いのか」「MCPの設定が悪いのか」が分かりにくくなります。
そのため、まずはWindows CLIから直接PC-98へ問い合わせて、通信部分だけを先に確認します。
1. Windows CLIからコマンドを実行する
Windows 11からPC-98との通信を確認するため、以下のコマンドを実行します。
※1つ目は通信確認、2つ目はDOSバージョン、3つ目はコンベンショナルメモリを取得するコマンドです。
cd C:\PC98Bridge py -3 windows\pc98ctl.py ping --port COM3 --baudrate 9600 py -3 windows\pc98ctl.py dos-version --port COM3 --baudrate 9600 py -3 windows\pc98ctl.py conventional-memory --port COM3 --baudrate 9600
3つのコマンドすべてでエラーが出ず、PC-98から取得した結果が表示されれば、WindowsとPC-98間の通信は成功です。
コマンドの詳細や、その他に使用できるコマンドについては、記事下部の「使用できる機能一覧」の「CLI(コマンドライン操作)」列を参照してください。

ChatGPT / Codexから接続する
1. ChatGPTのデスクトップ版のインストールとサインイン
以下URLよりChatGPTのデスクトップ版をダウンロードしインストールしてください。
本記事ではChatGPT Classicではなく、Codexを利用できるChatGPTデスクトップアプリを使用します。
インストール後、ChatGPTアカウントでサインインしてください。
2. 設定画面を開く
ChatGPTアプリを起動させ、画面左下の「名前」→「設定」を選択します。

3. MCPサーバー追加画面
画面左の「プラグイン」→画面右上「追加」→「MCPサーバーを追加」を選択します。

4. MCPサーバーの追加
以下を記載します。
名前: pc98-bridge タイプ: STDIO 起動用コマンド: C:\Users\pokug\AppData\Local\Programs\Python\Launcher\py.exe ※C:\Users\pokug\の「pokug」の部分は自分がWindows11にログインしているユーザー名を記載してください 引数: -3 -X utf8 -u C:\PC98Bridge\windows\mcp_server.py 環境変数: PC98_PORT COM3 PC98_BAUDRATE 9600 ※「COM3」の数字の「3」の部分はデバイスマネージャーで確認したCOMポート番号を記載してください

5. CodexからPC-98の状態を確認する
ChatGPTアプリを再起動し、Codexに以下をお願いします。
PC-98Bridgeのpc98_pingを使って98実機への通信確認して
これで応答があれば成功です。
ちなみに"98実機にpingして"とお願いするとTCP/IPのpingを実施するので、上のお願いをします。
あとは、DOSのバージョンなど聞いてみましょう。

PC-98Bridgeで使用できる命令は記事下部の「使用できる機能一覧」を確認してください。
おわり
今回はRS-232Cを使って、Windows 11側のCodexから実機PC-98の状態を確認できるところまで構築しました。
本当はTCP/IP(ネットワーク経由)でつなぎたかったのですが、PC-98側で使うNEC製のMS-DOS版TCP/IP開発キットが、現在では入手困難でした。
そこで今回は、入手しやすく仕組みも分かりやすいRS-232Cを使うことにしました。
最終的には、テレビドラマ『ナイトライダー』のKITTのように、PC-98へ話しかけると自分の状態を確認して答えたり、必要な情報を表示したりできる端末にしてみたいと思っています。
今回はその第一歩として、「PC-98自身の情報を外部から取得できる」ところまで実装しました。今後は、取得した情報を使った自己診断や、PC-98側からWindows側へ問い合わせる仕組みなども試していく予定です。
使用できる機能一覧
Windows CLIとMCPでは、利用できる機能に一部違いがあります。
| CLI(コマンドライン操作) | MCP tool | 内容 |
|---|---|---|
ping |
pc98_ping |
AGENTとの疎通確認 |
dos-version |
pc98_get_dos_version |
動作中のDOSバージョン取得 |
datetime |
pc98_get_datetime |
DOSが保持する現在日時の取得 |
boot-drive-space |
pc98_get_boot_drive_space |
DOS起動ドライブの容量取得 |
drive-space |
pc98_get_drive_space |
指定ドライブの容量取得 |
environment |
pc98_get_environment |
環境変数の取得 |
conventional-memory |
pc98_get_conventional_memory |
コンベンショナル空きメモリの取得 |
conventional-map |
pc98_get_conventional_map |
コンベンショナルMCB一覧の取得 |
umb-memory |
pc98_get_umb_memory |
DOS管理UMBの空きメモリ取得 |
umb-map |
pc98_get_umb_map |
DOS管理UMBのMCB一覧取得 |
device-drivers |
pc98_get_device_drivers |
DOSデバイスドライバチェーンの取得 |
xms-memory |
pc98_get_xms_memory |
XMS driverと空きXMSメモリの取得 |
read-config |
pc98_read_config |
CONFIG.SYSの取得 |
read-autoexec |
pc98_read_autoexec |
AUTOEXEC.BATの取得 |
read-file |
pc98_read_text_file |
指定したテキストファイルの取得 |
list-dir |
pc98_list_directory |
指定ディレクトリの一覧取得 |
read-file-chunk |
— | 大きなファイルを分割して取得 |
download-file |
— | ファイル全体をWindows側へ保存 |
※ AGENT.EXEには通常の終了操作はありません。終了する場合はPC-98をリセットするか、電源を切ってください。
![エレコム RS232C USB 変換ケーブル [ USB-A & D-Sub9ピン ] 50cm シリアル変換ケーブル 3重シールド Windows11 など対応 グラファイト UC-SGT2 エレコム RS232C USB 変換ケーブル [ USB-A & D-Sub9ピン ] 50cm シリアル変換ケーブル 3重シールド Windows11 など対応 グラファイト UC-SGT2](https://m.media-amazon.com/images/I/41rElmjtJtL._SL500_.jpg)
