FM-7用データ転送ハードの使い方

Yahoo!ブログより引っ越して来ました、今後も宜しくどうぞ。

拙作基板とFTDI社のFT245RLを使います。

・FM-7側のソフト(MSのOneDriveにあり、URLは下に記載)
機能的には高速なカセットの位置付けですがFDDより速いかと。
<FMDRV37_20190719の各ルーチンの機能>
常駐アドレス:$FC00-$FC78、使用バイト数:121バイト、
ワークエリア:$FC00-$FC07、下の(1)から(3)の機能を持つ

FMDRV37_20190719のプリミティブなデータ送受信ルーチンは
ポジション・インディベンドですがヘッダ付きデータの受信機能を
使う時はサブルーチンから固定アドレスの$FC12を更にコールして
ますのでアドレスの変更は不可です。ヘッダ付きデータの受信機能
を使わない時は下位8ビットが 00(16進数)であれば任意の位置
に配置できます。なお下位8ビットが00はWindowsのGUI用ソフト
との兼ね合いです。また$FC00-$FC78以外に配置にする時の
エントリアドレスは移動した分だけズレることに考慮して下さい。

(1)プリミティブなデータ受信ルーチン(配置変更可能)
エントリ:$FC12、ワークエリアにデータを設定しコールする
機能:受信バッファのデータをメモリに展開する
コールする前に下のアドレスにデータを(手動で)設定すること
先頭アドレスを$FC02からの2バイトに、終端+1を$FC04からの
2バイトに設定する。
<補足>
終了条件として二つの場合を想定してます。一つはXレジスタが
[終端+1]になった時、もう一つは$FDFEの7ビット(最上位ビット)
が[hi]になった時(受信バッファにデータがない)また後者で終了
した場合は、その時のXレジスタの内容を$FC06に書いていません。
I/O操作をメモリを節約するためサブルーチン化したのでせめて、
速度低下を少しでも抑えようとした結果です。ただし結果的に
意味が無かった可能性もありますがコードの修正も一手間なので。

(2)プリミティブなデータ送信ルーチン(配置変更可能)
エントリ:$FC68、ワークエリアにデータを設定しコールする
機能:メモリの内容を送信バッファに送る
コールする前に下のアドレスにデータを(手動で)設定すること
先頭アドレスを$FC02からの2バイトに、終端+1を$FC04からの
2バイトに設定する、終了はXレジスタが[終端+1]になった時。

注意点は先頭アドレス:下位8ビットを00(16進数)にすること。
(末尾+1)アドレス:下位ビットの下のニブルをX0にすること。
転送するデータの先頭アドレスと(末尾+1)アドレスの差分は
16の倍数になります。これはWindowsのGUIソフトとドライバの
制約が理由です。終了時のXレジスタの内容を$FC06に保存します
ので情報として使って頂ければと考えます。

(3)ヘッダ付きデータの受信機能(配置変更不可)
ヘッダ付きデータの作成機能をWindowsのGUI用で作成してません。
気長にお待ち下さい。

・WindowsのGUI用ソフトについて
実行形式はMSのOneDriveからダウンロードして下さい。
FM_DATA_TRNS.EXE(WindowsのGUI用の実行形式)下の「Release」配下にあります。
https://onedrive.live.com/?authkey=%21Aln7kHlkHDL28EE&id=6357DCB7DCA88133%21108&cid=6357DCB7DCA88133

(1)WindowsPC → FM-7 にデーターを転送する時
<PC側>ファイル → 開く → データ転送 → PC2FM
128(256)バイトのバッファ量より多い時は送信ウィンドウが
待ち状態になりマウス入力を受け付けません。なお74LS244の
1ビット分をバッファの状態監視に流用してるため、1バイトを
2回に分けて送信してます。この部分のソースは早晩サイトに
公開します。

Windows側では↓を呼んでますので身動きできませんが
fSuccess = SetPriorityClass(hProcess, HIGH_PRIORITY_CLASS);

FM-7側ではFT245RLの受信バッファの状態は取得できます。
$FDFE = ステータスレジスタ(Bit7=0なら受信データあり)
もう少し具体的に言うと、このアドレスが FF なら受信データなし
7F なら受信データあり、となります。因みにモニタでも確認できます。

<FM-7>側はWindowsがデータを送信しても受信するタイミングは
FM-7側の操作で決定できますので EXEC &HFC12 (リターン)
ワークエリアに設定した領域にデータが展開されます。

(2)FM-7 → WindowsPC にデーターを転送する時
<PC側> データ転送 → FM2PC (先ずこの状況にします)
この操作後PC側は別ウィンドウで待ちの状態になります。

<FM-7>側はワークエリアに送信データの先頭と末尾+1
を設定して EXEC &HFC68 (リターン)
(FMDRV37_20190719.datが$FC00-$FC78にあれば)

<PC側>別ウィンドウでマウスの入力が受け付け可能な
状況になりますのでシステムメニューのイグジット(×)を
クリックして別ウィンドウを閉じてください。

テンプファイルとして「sirial_20190620.dat」が作成
されますので適宜、相応しい名称に変更して下さい。

・拙作のWindowsのGUI用ソフトの位置付けと機能
高速カセットとしてますけど登録したファイル・データを
今時のパソコンで確認する時はWindowsのフォルダにある
ファイル・データと同じ扱いですのでFM-7単独のFDDより
扱いやすいと考えています。取り敢えずマシン語であれば
FM-7 ←→ PC のデータ転送でPC側はWindowsでできます。

それではまた。
スポンサーサイト



プロフィール

vehwk3yxv7hw

Author:vehwk3yxv7hw
今から40年近く前に発売されたFM-7
と言う8ビット機のデータ管理を
現行PCでできるようにしましたが、
この程度の作業でも1年以上かかり
ました。とは言え現行PCでデータが
管理できれば昔のPCでも間接的とは
言えインターネットに接続してると
考えました。昔からFM-7用基板を
製作したい思いもありました。
FM-7の機能追加としてソフト的に
あと一つ残ってます。某ブログを
利用し公開してましたけど閉鎖に
伴いココを新発信基地とします。
思いはFM-7のハードに止まらず
昔のゲーム機の機能も拡張も考えて
います。尚写真は30年以上前です。

検索フォーム

ブロとも申請フォーム

QRコード

QR