ここから本文です
ブログを始めました・・・
・公開した FM_DATA_TRNS.EXE の補足です。
https://onedrive.live.com/?authkey=%21Aln7kHlkHDL28EE&id=6357DCB7DCA88133%21108&cid=6357DCB7DCA88133

Windows7の32ビット版で動作確認してます。
製作した環境もWindows7の32ビット版ですので
動作は当然かも知れません。64版での動作は不明です。
visial studio 2019 の MFC ベースで製作しました。
通信相手がFM-7の単独用途では最終形ですけど
回路を流用した基板でも使えるのではと。

なお、FT245RLが接続されていなくても起動はします。

・FT245RLを使ったFM-7のROMイメージの転送
因みに動作確認でBASIC-ROMの転送をよく使いました。
Windows(Linux)からの送信ではC-DOS7に同梱して
いた拡張モニタを転送し送受信の動作を確かめました。

1)BASIC-ROMの転送
odaman68000氏のソフトでも拙作ソフトでも簡単に
転送できます。違いはodaman68000氏のソフトは
データの生イメージにヘッダーとフッターが付加
されます。転送時間は2秒程です。

2)BOOT-ROMの転送
odaman68000氏のソフトでは簡単です。

拙作ソフトでは「ハードの製作40」で紹介した
FM-7内でブロック転送するユーティリティを
使ってBOOTROMイメージを他の領域に一旦コピー
して下さい。例えば↓のようにして下さい。
8バイトのワークエリアを「0000FE00FFFF5000」
その後、EXEC&H3108 (リターン)とすれば
BOOTROMイメージが$5000に転送されますので
その後、「ハードの製作35(更新は)製作37」で
公開したソフトを使いWindows等へ転送して下さい。
8バイトのワークエリアを「0000500052000000」
として EXEC&H3068 (リターン) です。
要は拙作ソフトでは$FFFFを処理できないから
面倒なことになります。因みに少し手直しすれば
済み話ではあります。

3)サブシステムROMの転送
FM-7/8 Subシステムメンテナンスコマンド
http://kasayan86.web.fc2.com/old/fmsubsystem.htm

このソフトを使ってメインメモリに持って来れば
odaman68000氏のソフトでも拙作ソフトでも簡単に
転送できます。違いはodaman68000氏のソフトは
データの生イメージにヘッダーとフッターが付加
されます。メインメモリから転送時間は1秒程です。

問題はリンク先のテキストファイルで書かれた
BASICプログラムをFM-7に如何に簡単に取り込むかです。

自分の場合はodaman68000氏作成の「ft245tools」と
「BUBEMUL」を使って取り込みました。
テキストファイルで書かれたBASICプログラムをFM-7に
転送するとFM-7で動作してしまうと言う魔法のような
ソフトです。(要、拙作実装FT245RL基板)因みに
動作確認はLinuxでのみしてます。

もっともROMライターを持っている人はFM-7からROMを
抜き取りROMライター(ROMを読むこともできます)で
取り込んでるとは思います。

それではまた。

自分が作成するソフトに関しては8月までと期限が区切られると
進展がありませんので今回はodaman68000氏のWindows用の
ソフトを使用記として報告します。参考資料は下です。
https://github.com/odaman68000/FM7_FT245RL_TOOLS

(1)実行形式は二種類ありますが自分はwin32用を使いました。
 windows/win32/ft245tools.exe
 windows/x64/ft245tools.exe

(2)今回はWindows用ソフトに対応するFM7用は「BUBEMUL」を
使いました。FM-7 → bin → BUBEMULでダウンロードして下さい。

(3)「BUBEMUL」はFM-7側で起動するソフトなので先ずはFM-7に
持って来なければなりませんが拙作のWindowsのGUI用ソフト
FM_DATA_TRNS.EXE(下でダウンロードして下さい)と
https://onedrive.live.com/?authkey=%21Aln7kHlkHDL28EE&id=6357DCB7DCA88133%21108&cid=6357DCB7DCA88133

「ハードの製作22」で公開したソフトを使いました。
実際に使ったソフトは「ハードの製作34(更新は製作37)」で公開
したソフトですが受信部分はほぼ同一コードです。

「BUBEMUL」は先頭アドレスもエントリアドレスも$6809ですし
容量は448バイトですので16進数に直すと「1C0」ですので
FM-7側で$6002から2バイトに6809を設定し$6004から2バイトに
69C9(=6809 + 1C0)を設定し FM_DATA_TRNS.EXE から
「BUBEMUL」をFM-7に送信して下さい。そしてFM-7側では展開
する領域を設定して EXEC &6012(リターン)とするだけです。
この後「BUBEMUL」をFM-7側の記録装置の保存する時は ↓で。
savem"BUBEMUL",&h6800,&h69C9,&h6809

この後、FM_DATA_TRNS.EXE は終了させて下さい。

(4)<FM-7側>
「BUBEMUL」がFM-7の$6809から$69C9に存在するなら
EXEC &6809(リターン)とすればバブル命令が拡張されます。

(5)<Windows側:ハードの製作23と多少違うので注意>
先ずはWindowsでターミナルを起動する「CMD」を実行して下さい。
ハードの製作23と違う箇所は↓のように-d COM6等が付加されてる点。
これは「Sirial PORT」の情報でソフトで使います。個人の環境で
違う可能性がありますので下で情報を取得して下さい。
コントロールパネル→システムセキュリティ→デバイスマネジャー
 → ポート   USB Sirial PORT(COM6)

ft245tools -d COM6 bubemul [Directory name]
(なおft245toolsも上記のサイトにあります)
[Directory name] の部分は ./ や ../ のディレクトリにして下さい。
自分の環境では↓のようにカレントで操作しました。
C:¥USR¥FM7_FT245RL_TOOLS>ft245tools -d COM6 bubemul ./

(6)拡張されたBUBコマンドの使い方はハードの製作23と同様です
なお今回は下のBOOT_ROMのセーブで確認しました。
BUBR SAVEM "BOOT_ROM",&HFE00,&HFFFF,&HFE00

それではまた。

開くトラックバック(0)

前回の補足です、中々1回では過不足なく書けません。

・FM-7側ソフトの補足です
(2)プリミティブなデータ送信ルーチン(配置変更可能)
先頭アドレス:下位8ビットを00(16進数)にすること
(末尾+1)アドレス:下位ビットの下のニブルX0にすること

なお、これはWindowsのGUIソフトとドライバの制約になります。
製作34の内容でも補足してますが転送するデータの先頭アドレスと
(末尾+1)アドレスの差分は16の倍数になるように設定すること。
先頭アドレスを$3000とすれば(末尾+1)のアドレス$40X0、
Xの部分は0からFの16数値、下位のバイトの下位のニブルが0です。
例えば下であれば 3000 - 4070 になってます。
000030004070F7FDFDB6FDFE7FFDFD

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

FM-7の電源が入ってないとか、FT245RLが存在しない時は
WindowsのGUI用ソフトは起動しますけどデータ転送の操作を
行った時に「できない旨」のメッセージを出します。
またWindows用のソフトを起動後にFM-7の電源を入れた時は
「COM接続」メニューを新しく設定しましたので一旦起動した
ソフトを終了させなくても起動したままで「接続」の操作を
できるようにしました。

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

この後ブログでは(8月中に)大幅な進展はないと考えます。
もし移転するのであれば URL を記したいと考えてます。

それではまた。


開くトラックバック(0)

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

ではまた。

開くトラックバック(0)

このブログが12月に閉鎖されることは既に言及してますが
昨日は管理してるYahooから改めて↓のメールが届きました。
「9月1日にブログの編集・投稿ができなくなります。」

さてと、それでは8月までに「このブログのまとめ」をする
必要が出てきました。12月まで投稿できるならファミコンの
QDシステムと組み合わせた内容が間に合うのでは考えていま
したが儘ならない状況になりました。無論、無料でブログを
利用できましたのでYahooには感謝しています。

・QDシステムと組み合わせたコラボの進捗状況
高速にするためのソフト的な解析は終わってますけど問題は
他サイトでも頻繁に取り上げられるようにQDの駆動部のゴム
の劣化があります。以前モビロンバンドで取り替えましたが
修復は成功してません。なので先ずはココからですけど最近
有力な情報を入手し張り切っていた矢先です。残念ながら
8月中までには間に合いません。成功すればOneDriveに
公開します。因みにメルアドを交換していてQD用アダプタ
基板を持ってる方には成功すれば当方より改めて連絡します。

・Yahooに対し感謝の気持ちとして
FT245RLのWindows(GUI)用のソフトができましたので
基板と32ピンコネクタのセットでヤフオクのフリマに出品を
考えてます。最近rs232の基板だけで1800円で落札されて
いましたので1500円(送料込み)にする予定です。
関心のある方は拙作のWindows(GUI)用ソフトは既に
OneDriveに公開してますのでダウンロードして外観や
操作性等を確認して貰えたらと考えてます。

・拙作Windows(GUI)用ソフトと開発環境について
連続したファイルの送受信ができますので高速なカセットの
代用にはなるのではと考えてます。15年程前、別なアプリで
「ユーザーインターフェイス スレッド」をテスト的に使い
そのまま時間が止まってましたので今回はFT245RLで続きが
できて有意義でした。visial studio(2019)の操作性も
1996年当時のVC++V4.0と大きくは変わって変わってない
印象でした。因みにMSのCコンパイラは1990年当時の「5.0」
から使ってますがデバッガの操作性は変わってない印象です。
その他、1997年は仕事でサンのソラリスを使ってましたけど
デバッガの操作性はやはり変わらないです。この辺りは車の
運転と同様に操作性は変わらないことに似てます。

・次回からはI/Oとソフトの使い方のまとめをします
大方のサイトはハード・ソフトの概要的な紹介と結果で
御仕舞いにしてます。失敗等も含めると冗長な内容になり
無駄が多いように感じますが、そこはブログと言うことで
呆れながら1年半の間、読んで頂きありがとうございました。
恐らくあと数回しか書けませんが、結局、要点だけ判れば
他は無駄だったかも知れません。かと言って最初から現在の
水準することもできませんでした。因みにハードの設計を
始めた時には6809のアセンブラで覚えていた命令は
12(ノーオペ)と39(リターン)だけでした。C言語も
14年間程使ってなかったのでfread、fwriteの引数を
忘れてました。

それではまた。

開くトラックバック(0)

[ すべて表示 ]

本文はここまでですこのページの先頭へ
みんなの更新記事