X1turbo Agency

X1turbo Agency

X1turbo Remote Monitor

X1turbo Remote Monitorとは

X1turbo Remote Monitor は、X1turboとWindowsPCをシリアルケーブルで接続して制御を行うツールです。

X1turboでは RS232Cを使って通常9600Bpsで通信を行いますが、任意のボーレート設定が可能な
USBシリアル変換ケーブルを使用する事で9600Bps以上の速度で通信できます。

現在は下記の機能を持っています。

  • BASIC(CZ-8FB02/3)からのモニター起動
  • 起動ディスク作成
    • 以降は起動ディスクからモニターが起動できます。
  • 最大62500Bpsでの通信設定が可能
  • フロッピーディスク(2D/2DD/2HD)の吸い出し
    • v1.1.3以降 データ圧縮による高速化
  • フロッピーディスク(2D/2DD/2HD)の書き出し
  • S-OS U.C.様謹製 CZ-8EB4ブート作成
  • メモリダンプ
  • ディスク読出し,通信時にデータ圧縮を行って転送時間を短縮。(v1.1.3以降)
  • ASCIIフォント,漢字フォント,BIOS ROMの読出し機能 (v1.1.5以降)
  • ディスクIDダンプ
  • 背景色変更

※ ディスク作成ができれば、X1側はキーボード操作を行わなくても済むようにしています。

ダウンロード・更新履歴

日付 バージョン ファイル
2018/07/07 Ver 1.1.5 x1_remote_monitor_v115.zip
・ROM読出し機能を追加しました。
 フォント(8x8,8x16,漢字),BIOSを読出してファイルに保存する事ができます。
 詳しい説明は「ROM読出し」を参照のこと。
2018/06/16 Ver 1.1.3 x1_remote_monitor_v113.zip
・ディスク読出し時、データ圧縮を行う事で高速化しました。
 25%程度速くなっているようですが、もちろんディスク内容に依ります。
2017/09/24 Ver 1.1.0 x1_remote_monitor_v110.zip
・読出し時にセクタエラー等が発生しても読出しを続行するように修正しました。
 (ディスクIDが読めないトラックがあった時は中止しています)
・ディスクID(CHRN)のダンプ機能を追加しました。
・背景色を黒/青から選択できるようにしました。主に画像調整用です。
・起動ディスクイメージに通常と最小の2種類を用意しました。
2016/05/15 Ver 1.0.3 x1_remote_monitor_v103.zip
・複数のシリアルポートが使用可能な場合に、指定と異なるポートを使用する不具合を修正しました。
・起動ディスクイメージを付属しました。
 ディスクイメージが作成可能なマシンがあれば、このファイルを使って起動ディスクを作成可能です。
・メモリダンプ時にアドレス表示を追加しました。
Windows7(32bit) , WindowsXP(32bit)の動作確認を行いました。
・初期D88ファイル(最大トラック数 160)の読み込みに対応しました。
2016/04/29 Ver 1.0.0 x1_remote_monitor_v100.zip
・公開バージョン

スクリーンショット

X1turbo Remote Monitor のスクリーンショット f:id:x1turbo_agency:20180708015949p:plain

動作環境

  • WindowsPC

    • Microsoft Windows7/8.1 (64bit), XP (32bit)
    • .NET Framework 3.0以降

      • .NET Framework 3.0は必要であればインストールして下さい。
    • シリアルポート使用可能機種または、USBシリアル変換ケーブルを使用。

      • WindowsXPではオンボードのシリアル9Pでの動作チェックを行っています。
      • Windows7 はノートパソコンでのUSBシリアルでの動作チェックを行っています。
    • おススメ: USBシリアル変換ケーブル BUFFALO Avel SRC06-USB

f:id:x1turbo_agency:20180526184900j:plain

  • X1turbo/II/III/Z/ZII/ZIII (使用アドレス SIO 1f90h-1f93h, CTC 1fa0h-1fa3h)

  • シリアルクロスケーブル

  • サンワサプライ KRS-L925-2K 等のインタリンクケーブルが最適ですが、
    オス/メスが逆なので、ジェンダーチェンジャを取り付けています。
    別ページでも書きましたがインタリンク対応ケーブルでない通常のクロスケーブルでも
    高速通信は成功していました。

内部でハードウェアフロー制御は入れてあるのですが、処理の前後にウェイトを入れている事もあって、特段フロー制御は発生していないようです。

f:id:x1turbo_agency:20180526184913j:plain f:id:x1turbo_agency:20180526184922j:plain

動作確認

使い方

インストール


zipファイルを展開し、フォルダを任意の場所に配置してください。
内部にある X1RemoteMonitor.exe を実行することで利用できます。
アンインストールする場合は、フォルダを削除して下さい。
レジストリは使用していません。

基本動作


  • 接続テスト Monitorにテストコマンドを送って、正常にコマンドがやりとりできるかどうかをチェックします。
  • ポート 通信を行うポート(COM1~COM10等)を指定します。
    シリアルポートを持っていないマシンではツール自体が使用できません。
  • ボーレート 9600(デフォルト)から、設定可能なボーレートに変更できます。
    Windows側でボーレートを設定すると、ボーレート変更コマンドをX1turbo Remote Monitor側に
    送信して、ボーレートを変更します。
    9600bps以外のボーレートは SRC06-USB 等の自由に速度が設定できるUSBシリアル変換ケーブルが必要です。
    現在こちらで確認が取れている最大ボーレートは、62500bps です。
    125000bpsは正常に通信できなかったので使用しないで下さい。
    もしかしたらマシン個体差で動作するかもしれません。

セットアップ


[1] WindowsPCとX1turboをRS232Cシリアルケーブルで接続して下さい。

  • WindowsPC側にRS232Cポートがある場合
    • Win ⇔ X1turbo  シリアルクロスケーブルで接続。
  • WindowsPC側にRS232Cポートが無い場合 or 9600bps以上の高速通信を行いたい場合
    • Win ⇔ USB-シリアル変換 ⇔ X1turbo  シリアルクロスケーブルで接続。

[2] X1側でBASIC(CZ-8FB02/03)を起動後、下記のコマンドを実行して下さい。
 LOAD "COM:6N81RN"
 ※ LOADコマンド実行時に以下のエラーが発生することがあります。
  Reserved Future
 これはBASICの Startup.bas等の設定で NEWON命令により、RS232C関係の命令が
 削除されてしまうと発生します。
 その場合は、Startup.basからNEWON命令を削除するか、NEWON 8以降を指定すると
 RS232Cが使えるようになります。

[3] ツール側のセットアップタブ "LoaderBasicの転送" ボタンを押して下さい。
[4] 転送が成功すると、'Illegal Direct' がX1側に表示されます。その後 RUN コマンドを実行して下さい。
[5] 次に、'X1 Monitorを転送して起動' ボタンを押すとモニターを転送後、起動します。

X1 Monitor起動ディスク作成


Monitorが起動した状態で、起動ディスクを作成します。
[1] ブランクディスク(2D)をドライブ0にセットします。
[2] その後、''X1 Monitor 起動ディスク作成'' を押すと、ディスクの書き込みを行います。
[3] 以降はそのディスクからMonitorが起動できます。

付属の起動ディスクイメージを使って起動ディスクが作成できるのであれば、
他機種(PC88など)で作成しても問題ないと思います。

X1 Monitor再起動


X1Monitorを直接入れ替えて起動する事が出来ます。
開発用なので普段使う事は無いと思いますが、専用の機能として、
S-OS U.C.様謹製のCZ-8EB4でのROMブートに対応しました。
チェックを入れていると、CZ-8EB4にモニタを書き込み、次回からディスクレスでモニタを起動できます。

FD読出し


フロッピーディスクの吸出しを行います。
トラックのセクタ情報(256/512/1024byte)を読み取って、セクタデータを読み込みます。
混成状態のトラックでも対応しています。
通常のHuBasicやS-OS形式、ゲームで良く使われる1024byte x 5セクタの形式では問題ないですが、
同じセクタ番号が複数ある等、特殊なプロテクトがかかっているディスクには対応していません。
FD読出しの際は念のためプロテクトシールを付けておく事をお勧めします。

  • ドライブ番号(0-3)
  • メディアタイプ(2D/2DD/2HD)
    ※ 2DDを読み込む場合は本体背面またはX1turbo内部のディップスイッチで2DDモードに切り替えて下さい。
     トラック番号はチェックしていないので、2Dドライブに対して2DDアクセスを行うとオーバートラックが
     起きるので、注意して下さい。
  • トラック番号 (開始,終了)
  • 出力ファイル名 (.d88形式)
    開始ボタンを押すと、ディスクの読み取りを行います。
    セクタがエラーで読み込めない場合は、以前は停止していましたが、
    v1.1.0以降では、出力ファイルにCRCエラーとして出力して継続するようになりました。

FD書込み


.d88形式のファイルを読み込み、フロッピーディスクへの書き出しを行います。
.d88形式内のファイル(1セクタ256/512/1024byte)のトラックフォーマットを行い、データを書き込みます。
混成長にも対応していますが、正常に動作するかどうかは不明です。

セクタ番号は通常 01h~10hの範囲ですが、プロテクトのかかったディスクなどは
f6hやf7hなど、X1では通常書き込めないセクタ番号が使われている事があります。
これらのデータは正常に書き込めないと思います。

  • ドライブ番号(0-3)
  • 入力ファイル名 (.d88形式) 開始ボタンを押すと、ディスクへの書き込みを行います。

メモリダンプ


主に検証用です。指定したメインメモリの位置から読み出します。
ファイル名が指定されている時は、ファイルへ書き出しを行います。
ファイル名の指定が無い場合は、書き出しは行われずログウィンドウへ表示のみ行います。

ID読出し


フロッピーディスクからディスクIDを読みだしてダンプします。
IDは以下の 8byte構成です。

オフセット 項目 メモ
+0 Cylinder (0-39 2D時)
+1 Head (0-1)
+2 Record (0~) いわゆるセクタ番号。
通常は 01h~10hの範囲ですが、プロテクトのかかったディスクでは
0f6h,0f7hなど,X1が本来生成する事の出来ないIDが書き込まれている事が
あります。データ自体の読出しは可能です。
+3 Num (01,02,03,04) セクタ長 00:128byte, 01:256byte, 02:512byte, 03:1024byte。
プロテクトのかかったディスクでは 06hなどのありえない値が
使われている事があります。
+4 CRC0
+5 CRC1

ROM読出し


v1.1.5以降追加された機能です。
以下のROM情報をファイルへ読み出します。

  • ASCIIフォント (8x8)
  • ASCIIフォント (8x16)
  • 漢字フォント (16x16) 第1水準,第2水準
  • BIOS ROM (32KB)

読出しを行いたいROM情報の所に、保存ファイル名を指定してください。
空欄になっている箇所は読出しを行いません。
ファイル名を指定して、'開始'ボタンを押すと、ROM情報を読み出してファイルへ保存します。

初期ファイル名は以下のようになっています。

  • ASCIIフォント (8x8)  FNT0808.X1
  • ASCIIフォント (8x16)  FNT0816.X1
  • 漢字フォント (16x16)  FNT1616.X1
  • BIOS ROM (32KB)  iplrom.x1t

TakedaさんのX1turboエミュレータのファイル名がベースになっています。

上記の漢字フォントは、漢字ROM並びでは無く、
エミュレータで使用する事の多いSJIS並びにしています。

ちなみに、文字コード変換(SJIS→JIS)は、.Net FrameworkのEncoding(50222)を使っています。

メニュー

  • 設定
    • 背景色変更 背景色の切り替え(黒/青)を行います。
      画面自動認識系のディスプレイだと画面境界が判らず表示が乱れる事があります。
      その場合は、背景色を青色にして調整を行うとやりやすいです。

謝辞・その他

ずっとこのツールを作りたかったので、実現できて一安心です。

  • X1リソースセンター 様
    制作にあたって、X1リソースセンター様で公開されている hssio を参考にさせて頂きました。
    どうもありがとうございます。
    最初はどうにかして動作できないかと色々といじっていたんですが、ウチのX1turboでは
    正常に動作しなかったので、SIO周りは別に組んでいます。

  • UME-3 様
    いつも動作確認ありがとうございます。

  • 「試験に出るX1」 祝一平
    この本には毎度お世話になっています。
    購入してからずっと読んでいるような気がします。
    それだけに祝一平氏が亡くなられた時は本当に残念でした。
    氏の考え方やユーモアに富んだ文章などは今でもたくさんのライターの方に伝わって、
    更に影響を与え続けていると思います。