Skip to content

FT245RLを使った、PC(Windows,Linux)/MacとFM-7間の高速データ伝送

License

Notifications You must be signed in to change notification settings

odaman68000/FM7_FT245RL_TOOLS

Repository files navigation

FM-7 FT245RL Tools

はじめに

秋月電子から発売されている、FT245RL を利用した USB-8bitパラレル変換ボードを活用した FM-7 向けツール群です。
このツールを使うと、以下のようなことが出来ます。

  • BINSEND : PCとFM-7の間でバイナリデータの送受信
  • BUBEMUL : FM-7上から、PC上のフォルダまたはD77ドライブイメージをディスクドライブとして見立てて利用
  • D77SEND : PCからD77ディスクイメージを転送してFM-7上で実FDDメディア上に書き込み
  • DRVEMUL : FM-7側から PCに保存されている D77イメージを実ドライブとしてアクセス

FT245RLを使っている為、約16KB/secという非常に高速な通信速度で上記の事が行えます。FM-7からは、かつてないほどの高速デバイスとして扱え、PC上で開発したバイナリの転送や、FM-7上の資産をPCへ転送したり、様々な利用が可能です。

FT245RL を FM-7 に接続するには?

回路図が同梱してあります。

今となっては FM-7 向けの 32ピンコネクタの入手が少々難しいですが、上記回路図を実装する事で FM-7 と FT245RL を接続できます。

USB-8bitパラレル変換ボードのジャンパーは、以下のように設定して使用します。

  • J1 → 2-3間をショート (VCCからの供給)
  • J2 → オープン (VCCに外部から電源を供給する)
注意事項

実態配線図にある SV2 端子は、単純に +5V, GND であり、短絡してはいけません。抵抗を挟んで LED を搭載するとか、そのような用途に使ってください。

使い方

PC(Windows, Linux)/Mac で利用可能なコマンド
  • Windows
    • ft245tools.exe - Visual Studio 2015以降で利用可能なft245tools.slnを用意してあるので、これでビルドします
  • Linux
    • ft245tools - makeコマンドでビルドします
  • Mac
    • ft245tools - makeコマンドでビルドします

基本的には、パラメタを全く指定せずにコマンドを起動するとヘルプが表示されるので、数多くの機能の使い方が判るようになっています。
以下の利用方法全てにおいて、以下のようにパラメタ指定する事で、シリアルポートデバイス名を指定できます。

Windowsでの例 (COM4ポートを利用する場合):

C:\> ft245tools -d COM4 ...
FM-7 側で利用するコマンド
  • FT245TRN - バイナリデータ送受信

まずは何とかこのコマンドをFM-7側に転送してください。鶏と卵じゃありませんが、どうしてもFM-7側に受信用プログラムとしてコレが必要です。
最後に BASIC による転送プログラムを掲載しておきますのでそちらも参考に。

このデータは、$FC00 〜 $FC63 に配置します。その上で、SAVEM "FT245TRN",&HFC00,&HFC63,&HFC06 としてテープもしくは FD に保存してください。

LOADM "FT245TRN",,R として起動した上で、PC(Windows, Linux)/Mac側から以下のコマンドを実行する事で、FM-7 側へデータを転送できます。

# ft245tools [-d デバイス名] binsend Filename [配置先アドレス]
  • BUBEMUL - PC(Windows, Linux)/Mac のディレクトリまたはD77ドライブイメージをドライブと見立てて動作

まずは最初に、FT245TRN を利用して、FM-7側へ転送してください。配置アドレスは $6809〜 です。
EXEC &H6809 とする事で、拡張 BASIC がインストールされます。以下のコマンドが利用可能です。

  • BUBR FILES : ファイル一覧の表示
  • BUBR LOAD "Filename" : アスキーセーブされた BASIC プログラムの読込み (Experimental)
  • BUBR SAVEM "Filename",&Hssss,&Heeee,&Hxxxx : バイナリセーブ
  • BUBR LOADM "Filename"[,[&Hoooo][,R]] : バイナリロード

PC(Windows, Linux)/Mac側では以下のようにしてサーバプログラムを起動します。dirname として指定したディレクトリ または .D77 filenameとして指定したドライブイメージが、上記のコマンドで FM-7 側からアクセス可能となります。
なお、現在のところ、.D77ドライブイメージに関しては読込処理(LOAD, LOADM, LOADR)にしか対応していません。

# ft245tools [-d デバイス名] bubemul [dirname | .D77 filename]

バイナリデータの保存形態は、FM-7の F-BASIC に準拠しており、バイナリデータの前後にヘッダとフッタが付与されて保存されます。

  • DRVEMUL - PC(Windows, Linux)/Mac上に保存されている D77 を、FM-7から実ドライブとしてアクセス

まずは最初に、FT245TRN を利用して、DRVEMULをFM-7側へ転送してください。配置アドレスは $6809〜 です。
EXEC &H6809 とする事で、ドライブアクセス関係の BIOS が拡張されます。

その後、PC(Windows, Linux)/Mac側で以下のようにコマンド起動します。

# ft245tools [-d デバイス名] d77emul [.D77 filename]

これ以降は ドライブ 0: に対する全てのアクセスが、PC(Windows, Linux)/Mac上の D77 へとリダイレクトされます。
FM-7側から書き換えられたセクターは、Linux/Mac上で動作中のft245toolsがCTRL-Cによって終了された場合にD77ファイルが更新される形で保存されます。(Linux/Mac版のみ)

謝辞・作者について

FT245RL を FM-7 に接続するアイデアおよび、ハードウェア設計は shuji_akita2001 氏 ( shuji_akita2001@yahoo.co.jp ) によります。たまたま自分が、 shuji_akita2001 氏よりこのハードウェアを紹介いただいた事で、このツール群を実装するに至りました。
元々は、プリンタポートを使った 1,200bps 程度の低速通信で頑張ってたところ、16KB/secもの超高速でデータの送受信できるこのハードウェアに出会い、何とかコレを実用レベルで使えるように仕立て上げるべし!と強く思い、一気に作り上げました。
このハードウェアが無ければ今だに、FDイメージを延々1時間掛けてFM-7に転送していた事でしょう。今は5分も掛かりませんよw

Software : Copyright (C) 2019 by odaman68000 (odaman68k.amiga@gmail.com)
Hardware : Copyright (C) 2019 by shuji_akita2001 (shuji_akita2001@yahoo.co.jp)


付録:BASICでFT245TRNを転送する方法

FT245TRNは100バイトのバイナリですが、これをFM-7側に入力するの大変だなぁ...って人には、いい方法があります。(100バイト入力とドッチもドッチかも?)

  1. 以下のBASICリストを FM-7側で入力し、念のため保存
  2. FM-7に搭載したFT245RLとPC(Windows, Linux)/MacをUSBケーブルで接続したのち、BASICプログラムをRUNします
  3. PC(Windows, Linux)/Mac側からは以下のようにしてコマンド起動します。
    # ft245tools [-d デバイス名] binsend FM-7/bin/FT245TRN fc00
  4. 成功したら、FM-7側でFT245TRNが保存されます。
    BASICリストを見てもらえれば判りますが、突然保存を開始しますので、テープもしくはFDの準備をしてから実行してください。

で、BASICプログラムは以下の通りです。

10 CLEAR ,&H5FFF:DEFINT A-Z:TBL=&H6000
20 DEFFNA(H,L)=(H+(H>=128)*256)*256+L
30 FOR I=0 TO 5:GOSUB 80:POKE TBL+I,DT:NEXT
40 ST=FNA(PEEK(TBL+0),PEEK(TBL+1))
50 ED=FNA(PEEK(TBL+2),PEEK(TBL+3))-1
60 FOR I=ST TO ED:GOSUB 80:POKE I,DT:NEXT
70 SAVEM "FT245TRN",ST,ED,ST+6:END
80 GOSUB 90:DT=D*2:GOSUB 90:DT=DT OR D:RETURN
90 IF PEEK(&HFDFE) AND &H80 THEN 90
100 POKE &HFDFD,1:D=PEEK(&HFDFE) AND &H7F:POKE &HFDFD,0:RETURN

免責事項

なお、このツール群は無保証です。このツール群を利用する事で何らかの損害があっても当方は一切責任を負えません。
一部バイナリファイルも添付してありますが、ウィルスチェック等は行いませんので、ご自身の責任のもと利用してください。(基本的には自己でビルドしてもらうのが確実です)

About

FT245RLを使った、PC(Windows,Linux)/MacとFM-7間の高速データ伝送

Resources

License

Stars

Watchers

Forks

Packages

No packages published