★実機+DOS/VでD77イメージ作成 (D77IMG)
このプログラムはEXPERT FMの拡張BASICを利用して書かれています。EXPERT FMをお持ちでない方は使用できません。
== 説明 ==
D77イメージファイル作成には、DITT(DOS/V用)やMAKE_HD(PC98用)を使われることが多いと思われます。この2つのツールは元々PC88エミュレータ用に作られた物です。PC88もPC98もDOS/VもuPD765AというFDCをご先祖様とするFDCを使用していますので、無理なく読み出しプログラムを作成できたのだと思われます。
しかし、FM-7/77AVはMB8876Aという全然違うFDC(Western Digital系のFDC)を使用しているので、これらのツールではうまくディスクイメージを作成できないことがよくあります。
単純には、N>3問題があり、これもFDCの違いによりuPD765A系のFDCを搭載しているDOS/V機などではCRCエラーが出てしまいうまく読み出せません。
そこで、FM-7実機を使用してデータを抜き取る手段をとることにしてみました。
面倒なディスク周りの制御はEXPERT FMの拡張BASICに任せることにして、データ転送部分をBASIC+マシン語で組んでみたのが今回のプログラムです。
以前のバージョン(v0.0)では転送速度がメチャクチャ遅かった(オールBASICだったから…)のを、機械語で置き換えることで高速化を果たしました。v0.0は、1トラック転送するのに約1分。ディスク1枚の転送に約1時間30分かかっていましたが、今度のバージョン(v0.1)は1トラック約8秒。ディスク1枚の転送は約11分で終わります。約8倍に早くなったわけです。早いぞ!マシン語!!
PCへデータを渡す手段もいろいろ検討しましたが、無難にRS232Cで転送することにしました。
しかも、出力フォーマットはこのホームページで公開しているD77ENC/DEC仕様のテキストファイルを直接生成しますので、PCで受け取ったテキストファイルをいD77ENCに与えるだけでD77イメージファイルへの変換ができます。
d77img v0.1a (D77イメージファイル)ダウンロード (6KB)
マシン語プログラム、BASICプログラムともイメージファイルないに書き込まれていますので、このファイルをdittを使って書き戻すだけでOKです。
== 使い方 ==
1.ディスク作成
まずは、ダウンロードしたディスクイメージを2DのFDに書き戻す必要があります。DOS/VマシンのAドライブにFDを入れ、次のコマンドを実行します。
DITTは16ビットDOSプログラムなので、Windows NT系のOS(Windows 2000, Windows XP)では利用できません。
このコマンドを実行するとFD内の全てのデータが破壊されます。
C:\>DITT W A: D77IMG.D77
これで、D77IMGの入ったF-BASICフォーマットのディスクができあがります(このディスクでは起動できません)。
2.RS232Cカードの設定
FM-77AV**EX/SX系のパソコンの場合は、ソフトウエアが自動でボーレートの設定を行うのでなにも必要ありません。この場合は、自動的に19,200bps(最速)に設定されます。
FM-7/8/AVのRS232C拡張ボードのマニュアルをよく読み9,600bpsになるようにボーレートを設定してください。
9,600bpsである必要はありませんが、転送にかかる時間が長くなるだけですので、最速の設定にした方がよいでしょう。
3.ハイパーターミナルの準備
特にハイパーターミナルである必要はありませんが、Windowsにおまけでついてきていますので、これで説明を進めます。もしかしたらWin95/98では標準ではインストールされていないかもしれませんが、OSのCDには入っているはずです。
なお、これ以降の説明では、Windows2000用のハイパーターミナルを例に説明をしていきます。他のOSに付属している物の場合、メニューの名前や表示の説明が合わない場合があるかもしれません。
これも詳細は省略します。FM-7/AVと接続するCOMポートからダイレクトにつなぎますので、モデムの設定とかはいりません。
FM-7/AV側に合わせて以下のように設定してください。
ビット/秒 9600 または 19200 データビット 8 パリティ なし ストップビット 1 フロー制御 なし
4.クロスケーブルで接続する
FM-7/AVとPCをRS232Cのクロスケーブルで接続します。
5.テキストキャプチャの準備
ハイパーターミナルの"転送(T)"-"テキストのキャプチャ(C)"を選択し、保存するファイル名を入力します。
適当にimage.txtとかでもつけておくとよいでしょう。
キャプチャ状態にしておいてください。ウインドウ右下のステータスに"キャプチャ"と表示が出ます。
6.EXPERT FMを起動する
1.FM-7/AVにEXPERT FMを入れ、起動させる。
2.起動したら、BREAKキーを押してプログラムを中断させる(起動したらいつでもいいです)。
(Readyが表示されコマンド待ち状態になる)
7.D77IMGを起動する
1.EXPERT FMと、1.で作成したFDを入れ替える
2.RUN"D77IMG"と入力する
3.オプションを指定する
次のように表示されるので、イメージを作成したいディスクの入っているドライブ番号を指定します。その後、セクタ内容をFM-7の画面に表示するかどうかを選択します。セクタ内容を画面に表示する必要はありません。表示しないほうがイメージを速く転送できます。(この時点で作成したFDは必要ありません。作成したFDとイメージ作成するFDを入れ替えてしまっても大丈夫です)
DISK DATA EXTRACTOR FOR D77 IMAGE FILE VIA RS232C
COPYRIGHT (C) 2002 APOLLO ALL RIGHTS RESERVED
DRIVE= [Drive No.]
DISPLAY SECTOR CONTENTS? (Y/N): [Y or N]
これで、0〜83トラックまでのデータが自動的にPCに転送されます。1トラック分のデータを転送するのに8秒前後の時間がかかりますので、1枚のFDを転送し終わるのに10分ほどかかります。
8.キャプチャを終了する
無事に転送が終了したら、ハイパーターミナルの"転送(T)"-"テキストのキャプチャ(C)"-"停止(S)"を選択し、キャプチャを終了します。
9.テキストファイルをD77イメージに変換する
D77ENC(このホームページにアップされています)を使い、キャプチャしたテキストファイルをD77イメージファイルに変換します
C:\> D77ENC IMAGE.TXT IMAGE.D77
これで目的のD77イメージファイルを得ることができるはずです。
== 仕様 ==
・出力フォーマット
D77ENC/D77DECプログラムに準じます。詳細はD77ENC/DECの説明をご覧ください。
・エラー情報
FDCステータスから、CRCエラーとDDMに関しては自動的にフラグをセットします。
== その他ノウハウなど ==
・プログラムはBASIC+マシン語です。以前のバージョンではオールBASICだったのを、一部マシン語で書き直しました。転送速度が一気に速くなりました。
・ノウハウってほどではないんですが、このD77IMGのフロッピーを一度作成しておけば、WindowsNT系のPCしかなくてもディスクイメージを作成することができるようになります(当然ですが、FMの実機は別途必要です)。とにかく、RS232C経由でのテキストをキャプチャさえできればよいのですから。これで安心してXPに移行できるってもんですね(^^;
== プログラムリスト ==
●BASICリスト "D77IMG"
1000 CLEAR,&H3FFF
1010 LOADM "D77IMGm"
1020 COLOR 4
1030 PRINT "DISK DATA EXTRACTOR FOR D77 IMAGE FILE VIA RS232C"
1040 COLOR 7
1050 PRINT "COPYRIGHT (C) 2001 APOLLO ALL RIGHTS RESERVED"
1060 INPUT "DRIVE=",DRV
1070 INPUT "DISPLAY SECTOR CONTENTS? (Y/N):";YN$
1080 DISP=INSTR("Yy",YN$)
1090 TIME$="00:00:00"
1100 EXEC &H4000
1110 SUNSON 5,DRV
1120 POKE &H4005,DISP
1130 FOR TRK=0 TO 83
1140 PRINT "PROCESSING TRK=";TRK;" ";TIME$
1150 SUNSON 6,DRV,TRK
1160 SUNSON 9
1170 SUNSON 26
1180 POKE &H4004,TRK
1190 EXEC &H4002
1200 NEXT
1210 END
●マシン語プログラム "D77IMGm" (Motorola-Sフォーマット)
S11340002004201300011701228601A78D016630C8
S11340108D025417018D3934171A50B7FD0F8601DC
S1134020A78D0151308D027B170178E68CD64F178E
S113403001A5170228308D0272170167F670F43457
S1134040044F1701921702154FA1E4240C8D114C53
S1134050F6FD04C502270220F032617DFD0F35977D
S11340603476C6103DC3E0001F02308D009817015E
S113407032A6A4170141170136A6211701391701E9
S11340802EA622170131170126A62317012917018D
S11340901E308D007617010BA62985202605308C4D
S11340A06E2003308C6E1700FA85082705308C6962
S11340B02003308C681700EBE623C40358308D00CE
S11340C0623AEC84ED8D005917010C17018FA68D0F
S11340D0FF33A78D009FAE2A10AE8D00448610A733
S11340E08D0022A6801700CF1700C4313F270B6A2A
S11340F08D001226EE17016520E31701608601A7E3
S11341008D007235F60049443D20004444200020CF
S1134110444D200044444D200042302000303020E3
S1134120000000008001000200040034028605B78C
S1134130FD0C1E118610B7FD0B1E117FFD071E110D
S11341407FFD071E117FFD071E118640B7FD071E68
S113415011864EB7FD071E1186B7B7FD07358234A9
S113416004C601F5FD0727FBB7FD066D8D00062784
S1134170028D0335840034568D128EFC806F806F5F
S113418080CE0301EF81A7808D1535D63402B6FDAC
S1134190052BFB8680B7FD05B6FD052AFB35827F1E
S11341A0FD05393412A68027048DB420F8359234E5
S11341B00286208DAA3582340244444444810A256F
S11341C0028B078B308D98A6E4840F810A25028B1D
S11341D0078B308D8A35823406ED8D00788601A7F1
S11341E08D0079CC27108D1ACC03E88D15CC006492
S11341F08D10CC000A8D0BA68D005B8A3017FF5FF3
S113420035863406ED8D00504353C30001ED8D0017
S1134210496F8D0042EC8D003F10A38D00372212B0
S11342206C8D0033EC8D0032E38D0029ED8D00257B
S113423020E36D8D0026270EEC8D001C81012706DE
S11342406D8D0013270D6F8D0012A68D00098A3025
S113425017FF0C3586000000000000000034103009
S11342608C5017FF3E35904469736B4E616D655FEA
S11342705F5F5F3D20443737494D470D0A577269E8
S1134280746550726F746563743D204F46460D0A21
S11342904D65646961547970655F5F5F3D203244A8
S11342A00D0A00547261636B3D2000232053435474
S10842B03D000D0A00B1
S9030000FC