ファミコンディスクバックアップのソフト編2

【2】BASICコード「FAMOS_RT(フェイマスリターン)」の説明
(1)オリジナルのBASICコードの「FAMOS」に対しリナンバーをしないで、なるべく
当時の行番号を、そのままにしています。ただし余分になったコードは削除しました。
「拡張GETPUT」のコードは「REM」を使い残して、「FQD_RW77($3400-$35FF)」の
代替コードで差し替えています。また付け加えた行番号もあります。

(2)「行3」から「行7」までは、特にマシン語を「LOADM」して使う時の定型句的かと。
実際に概要で触れた、「FAMOS.M」、「FQD_RW90(77)」を「LOADM」してます。

(3)「行10」は重要です。「ザ・ベ」(1987年7月号)に掲載された原作者の補足として、
「フロッピーディスクのインデックスパルス(ここから始まると言う信号でしょうか)に
相当するタイミングから動作を開始する待ち時間」と説明されてます。今は何なく判ります。
この値は(QDの)読み出し時は「50〜70」に設定し、(QDに)書き込む時は「70〜80」に
設定してください。書き込む時より読み出し時の値を小さくしてください。「CRC Error」が
発生する可能性があり、当方がインターネットは始めた頃に残されていたログで対処が判らず
困っていた方がいました。リアルタイムで遭遇すれば指摘しましたが、2年前のログでした。

(4)「行20」の「EXEC&H3596」について、ファミコンディスクシステムからの割り
込みをFAMOS77(基板)ではTTLを使用して禁止してますが、この機能で割り込み禁止の
解除を行っています。オリジナルのソフトでは[START UP」で行っていましたがマシン語
で行っています。当方が、そのハード的な仕組みを理解してるか否かとなると・・・(略

(5)「行100」は「行1000」に飛んで、BASICコードで命令の受付を行います。

(6)「行900」から「行990」までは、マシン語コードを実行した後に、エラーが
あるか、ないかの確認を行っています。エラーがあった時はBASICで命令の受付をする状態に
戻ります。

(7)「行1200」から「行1500」までは、BASICコードで命令の受付け本体

(8)「行2000」から「行4310」までは、「QD => PC」の実行です。
当然、この操作前にWindows側はデータの受信状態にする必要があります。

(9)「行2200」 の「EXEC&H33E8」は QDからデレクトリ情報を取り出しています。
ID部は$3700から、各ブロックの情報は$3780からFM-7のメモリに展開します。この操作後に
「$3739」にはブロック数が記録されています。尚、このメモリイメージを「行2270」の
「EXEC&H3490」と「行2280」の 「EXEC&H3445」で「FT245」に送り出しています。

(10)「行2500」から「行4300」までは、各ブロック情報の取り出しです。
ブロック数分繰り返します。

(11)「行2700」の「EXEC&H33EC」は1個のブロック情報の取り出しです。
取り出したメモリイメージを「行3070」から「行3280」で「FT245」に送り出しています。

(12)「行2900」の意味が判り辛いですが、ブロック情報の取り出し時に
FM-7のメモリを「$6FFF」まで使い果たした時に、残りのデータを改めて裏ラムの
「$8000」から展開しますが、それを取得するための仕組みです。「FAMOS.M」でも、
その仕組みを使っています。尚、「行2950」で「 POKE&H377B,C」、
「行2960」で「POKE&H377C,B」と上位バイトと下位バイトを入れ替えてる理由は
「6502」の特徴として2バイト数値の取扱いがリットルエンディアンだからです。

(13)「行4400」から「行6720」までは、「PC => QD」の実行です。
基本的に「QD => PC」と逆の操作になります。当然、この操作の前にWindowsより
指定データをFM-7に対し送信する必要があります。

(14)「行4600」の「EXEC&H33F0」はQDメディアの「Format」です。

(15)「行4670」の「EXEC&H3490」と「行4680」の「 EXEC&H340C」で
Windowsより(FT245が仲介し)ID情報を取得し、その情報を「行4750」の
「EXEC&H33F4」でQDメディアへ書き込みを行っています。

(16)「行5300」から「行5580」までは、各ブロック情報をWindowsより
取得します。「$3739」に記録されているブロック数分を繰り返します。

(17)「行6710」の「EXEC&H33F8」は各ブロック情報をQDメディアへ書き込みを
行っています。「$3739」に記録されているブロック数分を繰り返します。

(18)「行6740」は「EXEC&H33E8」を呼び出し、QDメディアにデレクトリ情報が
記録されたかを確認してます。

(19)「行8000」からはデータ転送時にFM-側にエラーが発生すればFM-7側は送信を
停止しますが、Windows側は設定されたデータ数になるまで受信状態を継続してますので
FM-7側からダミーデータを送る機能です。Windows側で受信状態が解除されるまで
ダミーデータを送ってください。

(20)「行9000」からはデータ転送時にFM-側にエラーが発生すればFM-7側は受信を
停止しますが、Windows側は設定されたデータ数になるまで送信状態を継続してますので
FM-7側でWindowsから送られてく予定の残骸データを受信する機能です。Windows側で
送信状態が解除されるまで残骸データを受信してください。

(21)BASICコード「FAMOS_RT(フェイマスリターン)」について、質問があれば
当掲示板を利用してください。判らないことが当方も少なからずありますが判る時は
回答しますし、判らないことは「判りません」と回答しますので悪しからず。

【3】マシン語コード「FQD_RW77($3400-$35FF)」の説明
(0)ワークエリア:$3400-$340B、下の(1)から(3)の設定値が書かれます
(1)初期化1($3490):デレクトリ情報をFM-7のメモリに格納する設定値
(2)初期化2($34A0):ブロック情報をFM-7のメモリに格納する設定値
(3)初期化3($34B0):使用する裏RAM領域の設定値

(4)($346B):使用した$3800からのRAMをゼロクリアする
(5)($340C):Windowsから取得したデータをFM-7のメモリに展開
(6)($3445):FM-7にあるメモリイメージをWindowsへ送信
(7)($34C2):256バイトの転送毎にタイマーを使った待ち時間
(8)($34D6):Windowsから取得した2バイトより1バイトを合成
(9)($3596):FDSの初期化

(10)($355E):FDSの1回(ワンパス)の読み込みで1面60Kバイト前後の
データを取得しようした失敗の残骸(現在の所は成功していない)

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



ファミコンディスクバックアップのソフト編1

【1】概要・経緯・状況について
(0)「FAMOS」とは36年前に「ザ・ベ」と言う技術情報誌に掲載されたFM-7を使った
ファミコンディスクシステム(以下FDSと略)のバックアップシステムの呼称です。
読みは原作者が「フェイマス」と言ってます。

(1)オリジナルの「FAMOS」のソフトにはBASICコードの「FAMOS」、マシン語コードの
「FAMOS.M($3000-$33FF)」、「拡張GETPUT($3400-$36AF)」があります。
「FAMOS.M」はFAMOS77(基板)を介してRAMアダプタに対し命令を発したり、データの
送出・取得を行います。またデータの保管は拡張GETPUTを使い、FM-7(77)の(テープ可)
FDDで管理します。尚、「FAMOS.M」、「拡張GETPUT」の後にあるカッコの中はFM-7の
メモリ上の配置位置です。

(2)今回の仕様変更でデータの保管はWindows(のHDD)にしましたのでオリジナルに
あった「拡張GETPUT」は使いません。その代わり「FQD_RW77($3400-$35FF)」を
使ってFM-7からWindowsに対してデータ転送を行い、Windows側で受信したデータは
「FamComDisk_RW.EXE」を使って管理します。ですので中核機能の「FAMOS.M」の
存在を前提にしますが、「FAMOS.M」には著作権があり、インターネット上では公開
できません。ただし状況により個別には提供を検討してます。

(3)また、オリジナルのBASICコードの「FAMOS」の機能はマシン語の「FAMOS.M」と
「拡張GETPUT」を操作するドライバの役割を担っていましたが仕様変更のドライバとして
「FAMOS_RT(フェイマスリターン)」は「FAMOS.M」と「FQD_RW77」を操作します。

(4)FM-7(77)を視点にした時にデータの流れは下になります。
<FDS:RAMアダプタ>←→<FAMOS77(基板)> ・・・ ほぼ信号線のみでソフトなし
<FAMOS77(実質FDS)>←→<FM-7(77)のメモリ> ・・・「FAMOS.M」を使い読み書き
<FM-7(77)のメモリ>←→<FT245(基板)> ・・・「FQD_RW77」でWindowsに転送

(5)Windows側(HDD)でのデータ管理は「FamComDisk_RW.EXE」が行います。
これは当方が作成したので実行形式は公開しますが再配布と商用利用は控えてください。
Windowsの転送で使う「FQD_RW77(FM-7用)」、「FamComDisk_RW(Windows用)」は
当方が作成したので公開しても問題ありませんが問題はBASICコードの「FAMOS」を改変した
「FAMOS_RT」を公開する是非です。当方は「FAMOS.M」がなければソフトとして機能しない
ので公開しても問題はないと考えています。ただし「FAMOS.M」については、このマシン語
なしにバックアップできませんので研究目的・知的文化財の保護と言う観点から有志間の共有
までなら許容範囲と考えています。著作権者から対価を求められるか否かに関わらず人数が
決まってますので相応する対価は用意してます。無制限に公開すると、この対応はとれません。

(6)このバックアップシステムで使うソフトの所在について
「FQD_RW77」、「FAMOS_RT」は下記に「BASICコードFAMOS_RTの説明.zip」として公開してます。
https://onedrive.live.com/?authkey=%21AAYw2tf9YTW2SLo&id=6357DCB7DCA88133%21284&cid=6357DCB7DCA88133
「FamComDisk_RW.EXE(Windows用)」については微調整があるのでお待ちください。
<追記>2月8日、「FamComDisk_RW.EXE」は「BASICコードFAMOS_RTの説明.zip」に同梱しました。

繰り返しますが、「FAMOS.M(FM-7用マシン語コード)」の公開はできません。
「ザ・ベ」(1987年2月号)のP115からP117に掲載されました。「FAMOS」の記事の
内容はP113からP125に掲載されましたので国会図書館のコピーサービス等を利用して
入手するか、他の方法としては当ブログのコメント欄を利用して相談してください。

(7)このバックアップシステムで必要なハードについて
再掲になりますが、FM-7(77)一式、「FT245基板」、「FAMOS基板(FAMOS77)」です。
実装済みの「FAMOS基板(FAMOS77)」は多少の手持ちはありますが、「FT245基板」は
拡張基板用の32ピンコネクタ(FNC-360)の入手が非常に困難な状況になっていますので
自分が使う以外の予備の実装基板の手持ちはほとんどありません。
<追記>2月8日、「FAMOS基板」についてはtwitterに画像を載せています。
https://twitter.com/shujiakita/status/1608013969360551936
<追記>2月9日、「FAMOS基板」の回路図もtwitterに載せています。
https://twitter.com/shujiakita/status/1623225464390295552

また、同誌(1987年7月号)のP196からP197に訂正記事があります。部品表で
「CR22A-60A-2.54DSA」は間違いで、正しくは「CR22A-60D-2.54DSA」と
訂正されてます。

「FAMOS基板」を自作する時は配線図は下で公開してますので参考にしてください。
https://onedrive.live.com/?authkey=%21AAYw2tf9YTW2SLo&id=6357DCB7DCA88133%21284&cid=6357DCB7DCA88133
「IC1」が「74LS38」、「IC2」が「74LS138」、「IC3」が「74LS136」ですが、何とはなくは
理解はしてますけどハード的な仕組みの説明は自分には無理です。逆に詳しく教えて欲しい所です。

ソフト編2に続きます

FT245通信カードを使ったRAMディスクカードの検査

<概要>
FT245通信カードはWindowsPCとFM-7の間でデータやFDDイメージが
相互に転送ができますが、その機能を使いRAMディスクカードの検査を
行う内容になります。RAMディスクカードに搭載されている512Kバイトの
「RAM」を検査したい思いから制作しました。

<使い方>
(1)下のリンク先から「RAMDK_CheckDATA.zip」を入手して解凍して下さい。
https://onedrive.live.com/?authkey=%21AAYw2tf9YTW2SLo&id=6357DCB7DCA88133%21284&cid=6357DCB7DCA88133

(2)「RAMDK_55DATA20220805.dat」と「RAMDK_AADATA20220805.dat」があります。

(3)この2本のをデータファイルを、1本毎にWindowsPCからRAMディスクカードに送信し
その操作後にFM-7のRAMディスクカードからデータを送り返し、FDDの照合機能を使います。

(4)データが一致すれば、RAMディスクカードは正常です。因みにデータファイルの
全セクタが「55」、「AA」になっていて、RAMに確実に書き込まれたかを確認します。

(5)本来はSOP用のソケットが安価に販売されていれば半田付けする前に使いたい所ですが
検査用のSOPソケットは7000円程らしく気軽には使えません。半田付け後で仕方ないかなと。

<2022/08/30追加・補足>
(6)全セクタが「55」、「AA」であるデータファイルをWindowsPCからFDメディアに
書いてから、その内容をWindowsPCに転送しFDDの照合機能を使えばFDの検査にもなります。
フォーマット機能はありませんのでフォーマット済みのFDで御利用下さい。
尚、最近はFDメディアも高騰しているらしく何とも困っています・・・

(7)蛇足かも知れませんが、RAMディスクにしてもFDメディアにしても内容がある時は
先ずはバックアップをお忘れなく。全セクタの中身を「55」、「AA」にしますので。

それではまた。

統合化ユーティリティーの続き

前回の「FT245通信カードとRAMディスクカード」の機能を持つ統合化カード
の使い方の続編になります。

ただし統合化カードの実装にはSOP、SSOPの半田付けがありますので
高度な半田付け技量が求められます。(DIPで何とか水準の自分では無理です)

1)FM-7用の「FT245通信カード」か「FT245通信とRAMディスク」の機能を
持つ統合化カードが必要です。更に専用のユーティリティーが記録されている
FD(当然、市販はしてません)が必要です。

2)「FT245通信カード」用のユーティリティーがない時は下記から「FDIMGFM2.DAT」を入手して下さい。
https://onedrive.live.com/?authkey=%21AAYw2tf9YTW2SLo&id=6357DCB7DCA88133%21284&cid=6357DCB7DCA88133

3)「FT245通信カード」用のユーティリティーがあれば「PC → FDD」の操作は
BASICメニューからできます。「FDIMGFM2.DAT」がFM-7のメモリにあれば
「&H6750 リターン」だけでも実行可能です。「FDIMGFM2.DAT」がFM-7の
メモリになければ下の転送ユーティリティーを使い、2段回で転送可能です。
https://imgur.com/a/2zOBSPs

「FDIMGFM2.DAT」は912バイトあり、1回で送信できない(失敗時)時は数回に分て
転送して下さい。データ転送用ユーティリティのインストール方法を参考にして下さい。
https://vehwk3yxv7hw.blog.fc2.com/blog-date-202104.html

配置アドレスは「$6700-$6A90」にして下さい。

4)最終的に340Kバイトの「RAM_IMGFMX_20220810.DAT」をFM-7(77)のFDに
記録できれば作業は完了します。前回の時点ではBASICメニューまで手が回りません
でしたが、FDD、RAMディスクのメンテナンスユーティリティとして補強しました。
中身は「RAM_IMGFMX_20220810.DAT」を復元したFDで確認できますが
RAMディスクドライバ(XRAMDK77)を著作権の関係で同梱できませんので、
BASICメニューからの操作で、RAMディスクドライバをアクティブにする
コマンドに「REM」を挿入してます。尚、当ブログにドライバの説明として
「512K_RAMディスクのドライバの説明」を用意してます。当ブログでも
1984年11月号のOH!FM誌に掲載された「轍名 聡」氏のコードを一部流用してる
と何度も書いていますが「512K_RAMディスクのドライバ」を希望する方には
有料で検討します。明細は「轍名 聡」氏への著作権料の預り分、手数料です。
尚、書き換え可能なFDを同梱して頂くことも前提になります。

5)Windows用ソフトの「FDDIMG_RW77.EXE」と連携して機能します。

6)尚、統合化ユーティリティーは「FT245通信カード」と「RAMディスクカード」
がそれぞれ独立してる時でも動作は確認してます(この確認が早いです)

内容について質問があればブログにお願いします。判る範囲で、お応えします。
ただ、当ブログを頻回には見てませんので1ヶ月間、放置するかも知れません
ので悪しからず。でそれではまた。

「FT245通信とRAMディスク」機能の統合化ユーティリティー

Old68fun様に「FT245通信カードとRAMディスクカード」の機能を持つ
統合化カードを製作して頂きました。
https://flexonsbd.blogspot.com/2022/06/ft245ram.html

統合化カードには統合化ソフトが相応しいと考え3本の機械語プログラムを
統合化したユーティリティー公開します。「FDD_FDIMGFMX_20220527.dat」と言う
「340Kバイトの中間データ」の中にあります。BASICメニューもあります。
https://onedrive.live.com/?authkey=%21AAYw2tf9YTW2SLo&id=6357DCB7DCA88133%21284&cid=6357DCB7DCA88133

商用利用は不可としますので原則として再配布しないで下さい。
使い方やBASICメニューまで手が回りませんでしたが順次、補足説明して行きます。

それではまた。

プロフィール

vehwk3yxv7hw

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

検索フォーム

ブロとも申請フォーム

QRコード

QR