ここから本文です
ブログを始めました・・・

書庫全体表示

実装基板をFM-7に装着しソフトの使い方のみ知りたい方は
<・FM-7側のソフト>以降から読んで下さい。

なお動作を確認してるハードはFM-7、FM-77 のほか
最近AV40SXでも確認されてますので、その中間で発売
されたシリーズの8bit機も動作可能と予測してます。
(ただし特殊な拡張カードを装着してる時は除きます)

・ハードの構成
5種類の74LSシリーズと秋月のFT245RLモジュールで構成
74LS74 を使って FT245RL、74LS244、74LS374 に
既定値を発行し操作してる。なお回路図は下で公開してます。
https://github.com/odaman68000/FM7_FT245RL_TOOLS

なお上のサイトで公開してるソフトはFT245RLを使って
現行のPCのHDD上にFM-7の仮想FDD、仮想バブル を構築
する方法です。(ソフトの製作:odaman68000氏)

・FM-7用のFT245基板のI/O
$FDFD = コマンドレジスタ (Bit0=RD, Bit1=WR)
$FDFE = ステータスレジスタ
(Bit7 を受信時に使用する Bit7=0 なら受信データあり )
$FDFE = データレジスタ
( 送受信共通、受信時は下位 7 ビットのみ有効 )

・1バイト受信のシーケンス(手順)
<概要>
FT245RLの受信バッファにあるデータをFM-7に取得する
<シーケンス>
$FDFEをリードしBit7=0なら$FDFDのBit0を1にする。
$FDFDにデコードされてる74LS74を介して$FDFEに
デコードされてる74LS244にFT245RLの受信バッファ
の内容が複写されるので指定の格納領域に転送する。

・1バイト送信のシーケンス(手順)
<概要>
データを74LS374に設定後、送信バッファに転送する
<シーケンス>
74LS374にデータを転送後に無条件に$FDFDのBit1を
1にする。既に昔のMPUとなってる6809の速度であれば
送信バッファの状況を確認するまでもなく指定領域に
格納されてるデータを$FDFEにデコードされてる
74LS374に転送後 $FDFD にデコードされてる74LS74
を介して FT245RL の送信バッファに転送する。
因みに最初の回路図では送信バッファ状況を確認するため
74LS244 が 2 個あった。

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

FMDRV37_20190718のプリミティブなデータ送受信ルーチンは
ポジション・インディベンドですがヘッダ付きデータの受信機能を
使う時はサブルーチンから固定アドレスの$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]になった時。
終了時のXレジスタの内容を$FC06に保存しますので情報として
使って頂ければと考えます。

(3)ヘッダ付きデータの受信機能(配置変更不可)
ヘッダ付きデータの作成機能をWindowsのGUI用で作成してません。
なので後日に間に合えば投稿します。

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

(1)WindowsPC → FM-7 にデーターを転送する時
<PC側>ファイル → 開く → データ転送 →  PC2FM
ウィンドウが待ち状態になりマウス入力を受け付けません。

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」が作成
されますので適宜、相応しい名称に変更して下さい。

ではまた。

shuji_akita2001
shuji_akita2001
男性 / O型
人気度
Yahoo!ブログヘルプ - ブログ人気度について
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

最新のコメント最新のコメント

すべて表示

Yahoo!からのお知らせ

よしもとブログランキング

もっと見る
本文はここまでですこのページの先頭へ

[PR]お得情報

数量限定!イオンおまとめ企画
「無料お試しクーポン」か
「値引きクーポン」が必ず当たる!
ふるさと納税サイト『さとふる』
実質2000円で特産品がお手元に
11/30までキャンペーン実施中!

その他のキャンペーン

みんなの更新記事