フォト
2019年6月
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30            
無料ブログはココログ

« FUSION-C、MSXの開発環境? (2) | トップページ | 安価なボイスレコーダーをMSX用データレコーダに利用する »

2019年1月23日 (水)

「Z80-CP/M 2.2 emulator running on ESP8266」でのファイル転送

Z80-CP/M 2.2 emulator running on ESP8266を試してみました」の続きです。

Dscn8937

パソコンと cpm8266(Z80-CP/M 2.2 emulator running on ESP8266)間で
ファイルのやり取りの方法の質問があり、私も知りたいと思っていたので、
ちょっと調べてみました。

その際の調査のメモです。

方法としては、XMODEMプロトコルを使う方法があります。
XMODEMは昔、電話回線(モデム利用)でパソコン通信をやっていた頃に
ファイル転送手段として使っていました。

cpm8266では、CP/Mの標準コマンドXMODEMコマンドが正常動作しないようで、
cpm8266の開発者さんが別途、専用コマンドを用意しています。
下記のリンク先に、コマンドの使い方が解説されています。

関連情報
  ・ Xmodem for CP/M Z80 for CON:
     https://github.com/SmallRoomLabs/xmodem80


Windows 10上で試してみる

・TeraTermでは転送出来ず
   XMODEMに対応しているTeraTermで試してみたのですが、
   XSにコマンドによる、Winfows => cpm8266   は出来たのですが、
   XRにコマンドによる、cpm8266 => Winfows    は出来ませんでした。

   下記のサイトのページの一番下にTeraTermで転送出来ている記載があるので
   私の環境に問題がある可能性もあります。

   関連情報
   ・ Homecomputer DDR - cpm8226
・Windows 10上で動くUbuntu環境(WSL)のminicom コマンドで転送成功
   環境がちょっとややこしいですが、
   「Windows 10上にWSLを使ってUbuntuをインストールする」で構築したUbuntu環境に
   minicom コマンドをインストールして使ったところ、転送出来ました。

   minicomのインストール
    %sudo apt install minicom

   XMODEM関連コマンドのインストール
    %sudo apt install lrzsz

   minicomの使い方、XMODEMの使い方については、下記の情報を参考にしました。

   参考にしたサイト
   ・ シリアル端末ソフト/minicom
   ・職業としてのプログラミング Linuxでシリアル通信 - Ubuntu+minicom

   日本語環境の場合、セットアップメニューが崩れるので
   LANGを変更して起動した方が良いです。

   minicomのセットアップ
   % sudo LANG=c minicom -s

   -sオプションを付けて起動すると、初期画面にメニューが表示されます。
   管理者権限で起動しないと、シリアルポートのアクセスに失敗します。
   01

   [Serial prot setup] を選択してシリアルポートの設定を行います。
   WSL環境では、シリアルポートは、
     COMn => /dev/ttySn
   の対応となります。

   03

   [Save setup as dfl]で 設定の保存
   04

   [Exit from Minicom]にて一旦、終了します。


minicomでcpm8266を利用する

   % sudo LANG=c minicom

   日本語環境でも動作しますが、メニューボックス内の表示が崩れるため
   英語モードでの利用を推奨します。
   また、日本語環境では画面下のステータスバーが表示出来ないようです。

   起動後、ENTERキーをたたくと、起動メッセージが表示されます。

   05
   minicom を終了する場合は、CTRL-A入力後、Xキーを押します。


   XMODEMによるファイル転送
   
   1)Windows 10(Ubuntu) => cpm8266
    ①cpm8266側でXRコマンドを実行する
     a>A:XR F:test.txt
   06_2

    ②minicomによるファイル転送
     とりあえず、今月のカレンダーを送ってみます。
     ubuntu端末をもう一つ起動し、ユーザーホームディレクトリに
       % cal > test.txt
     と実行し、ファイルを作成しました。
   
    minicomにて、CTRL-X入力後、Sキーを押します。
    カーソルキーでxmodemを選択し、ENTERキーを押します。

   07_2
 
    ファイル選択状態となります。
    カーソルキー[↑][↓]でファイルを選択、スペースキーで確定、
    カーソル[←][→]で下のメニューのコマンドの選択、ENTERキーで実行します。
    [OKay]選択&ENTERキーで転送開始です。

   08

   転送状況が表示され、完了したら何かキーを押します。

   09

  ③転送されたファイルの確認
   転送されたファイルを確認すると、ちゃんと転送出来ていました。
   中身を表示すると改行コードがlinuxと異なるため、ちゃんと表示出来ませんが、
   転送自体は上手くいっています。

   10


   2)cpm8266 => Windows 10(Ubuntu) 
    試しに、GドライブにあるBIO.BASを転送してみます。

   ①cpm8266側でXSコマンドを実行する
     a>A:XS g:bio.bas

   11

   これで、cpm8266側は送信待機状態となります。

   ②minicom側での受信
    minicomにて、CTRL-X入力後、Rキーを押します。
    カーソルでxmodemを選択し、ENTERキーを押します。

    12_2

    ファイル名を入力し、ENTERキーを押します。
    これで転送が始まります。

    13

    転送中は、その状況が表示されます。
    完了したら、何かキーを押します。

    14_2

    転送が正常の場合は、次のメッセージが表示されます。

    15

   ③転送されたファイルの確認
    別端末画面にて、カレントホームにファイルがちゃんとあるのを確認します。

    16

    minicomを管理者権限で実行したため、アクセスが権限がないため
    sudoコマンドでheadコマンドを実行して、先頭の10行を表示しています。

    ちゃんと受信も出来ています。

これで、パソコンとのファイルのやり取りが出来るようになりました。
これで、もう少し使い込めるようになりました。


XMODEMプロトコル、組み込みマイコン用に使いには意外と良いプロトコルかもしれません。
ArduinoにもXMODEMライブラリがあるようなので、ちょっと調べてみたいと思います。
豊四季タイニーBASICでのファイル転送の手段として利用価値がありそうです。
   

関連記事
・「Z80-CP/M 2.2 emulator running on ESP8266」でのファイル転送 (この記事です)

« FUSION-C、MSXの開発環境? (2) | トップページ | 安価なボイスレコーダーをMSX用データレコーダに利用する »

ESP-WROOM-02」カテゴリの記事

MSX・レトロPC」カテゴリの記事

コメント

たま吉さん

xmodem、minicomの使い方を詳しく説明していただいて有難うございます(xmodemの方はパソコン通信の時代に常用していたはずなのですが、殆ど記憶がありません)。当方でも動作確認できました。

例えが悪いかもしれませんが、難破して無人島に漂着したような感じだったのが、これで本当に安心してcpm8266が使えるようになりました。

取り敢えず部品箱に眠っているAKI-80ボードにかつて製作したプログラムを移植してみようと思います。それを使って、あわよくば、何か役に立つガジェットを作ってみたいと思います。今のマイコンとは速度、大きさの点は比べようもないのでしょうが...。

vabenecosiさん

私も今回は勉強になりました。
XMODEMプロトコルは、Arduinoのライブラリがあるので実験したいと思います。

コメントを書く

(ウェブ上には掲載しません)

トラックバック


この記事へのトラックバック一覧です: 「Z80-CP/M 2.2 emulator running on ESP8266」でのファイル転送:

« FUSION-C、MSXの開発環境? (2) | トップページ | 安価なボイスレコーダーをMSX用データレコーダに利用する »