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

>
- コンピュータとインターネット
>
- コンピュータ
>
- ソフトウェア




