D77ファイルデコーダー/エンコーダー


== 説明 ==

D77形式のファイルをいじるとき、サイズの変わらない変更ならバイナリエディタで問題ないのですが、セクタを追加したりする作業をするときにはトラックオフセットをいじったりしなくてないけなくてとても大変です。

そこで、D77形式ディスクイメージを一度テキスト形式に変換(デコード)し、追加/削除/書換えなど編集作業をし、元のD77イメージに戻す(エンコード)するためのツールを作りました。

これで、テキストエディタさえあればD77イメージをいじり倒せます(^^)

 d77endec_01.zip v0.1ダウンロード (39KB)

 


== 使い方 ==


書式: t77dec 入力ファイル 出力ファイル [オプション]

入力ファイルの形式はチェックしていません。必ずD77形式のディスクイメージを与えてください。また、マルチディスクイメージには対応していません。マルチディスクイメージを与えた場合、最初の一枚に対してのみ処理を行います。

-v

Verboseモード (処理中のトラック番号などを表示する)

出力ファイルはテキスト形式で出てきます。

出力ファイルの書式は、基本的に'キーワード'と'値'をスペースで区切って並べます。キーワードは以下のものがあります。キーワードは'='まで含んでいるところに注意してください。また、'='の後の空白を忘れると、キーワードと値が区切れなくなりますので気をつけてください。

キーワード 内容 備考
DiskName____= ディスク名を指定 文字列(空白可)  
WriteProtect= ライトプロテクト状態を指定 ON/OFF  
MediaType___= メディア種別を指定 2D/2DD/2HD  
DiskSize____= ディスクサイズを指定 整数値 エンコード時には無視
Track= これ以降のトラック番号を指定 整数値(0〜163)  
ID= セクタID、データを指定 ・C, H, R, N, 記録密度, データマーク, ステータス, セクタサイズを順にスーペースで区切って並べる。セクタサイズのみ10進数。その他は16進数。
・データマークに取れるのはDMかDDM。
・記録密度に取れるのはDD(倍蜜), SD(単蜜)。
・次の行から、セクタサイズ数分の16進数値を並べる。これがセクタデータ本体になる。
 
# コメント コメント文(行末まで)  

 

実行例:

C:\> d77dec test.d77 test.txt -v
[D77DEC]D77 file to text file decoder 0.1(alpha)
Programmed by an XM7 supporter
File Size=348848
Track 0................
  '.'の数がそのトラックのセクタ数を示す
Track 1................
Track 2................
Track 3................
Track 4................
     (中略)
Track 159..SKIP
Track 160..SKIP
Track 161..SKIP
Track 162..SKIP
Track 163..SKIP

できあがったファイルの内容例:

DiskName____= A-TRAIN
WriteProtect= OFF
MediaType___= 2D
DiskSize____= 125808
Track= 0
#   CC HH RR NN DN DMK ST SIZE
      ←'# 'で始まるとコメントになる
ID= 00 00 01 01 DD  DM 00 256        ←トラック0, サイド0, セクタ1, セクタ長1(256), DD(倍蜜), DM(データマーク)
20 20 0A 00 6E 00 00 0F 00 00 0A 00 70 00 00 01
01 00 0A 00 00 00 00 03 00 00 08 00 00 00 00 00
00 00 1A 50 32 8C D9 86 FD 1F 8B 30 8C E4 31 8D
00 79 10 AF 02 8D 49 AE 02 A6 84 81 53 26 62 C6
02 30 8C BE 34 04 8D 38 CC 01 00 E3 8C B6 ED 8C
B3 6C 8C B3 35 04 5A 26 E8 C6 10 30 8C AC 34 04
8D 1E CC 01 00 E3 8C A4 ED 8C A1 6C 8C A1 35 04    
←セクタデータ(256)
5A 26 E8 96 0F 4F 1F 8B 8E 6E 00 43 6E 9F FB FE
C6 05 34 04 34 10 30 8C 91 BD FE 02 35 10 81 0A
27 0F BD FE 08 35 04 4D 27 10 81 0A 27 03 5A 26
E1 96 0F 4F 1F 8B 6E 9F FB FE 39 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
# CC HH RR NN DN DMK ST SIZE
ID= 00 00 0C 01 DD DM 00 256
                ←トラック0, サイド0, セクタc, セクタ長1(256), DD(倍蜜), DM(データマーク)
E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5
E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5
E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5

(以下略)

== 改版履歴 ==

// v0.1 2000/12/16 初期公開バージョン


書式: d77enc 入力ファイル 出力ファイル [オプション]

入力ファイルの形式はチェックしていません。必ずD77形式から変換したテキストデータを与えてください。

-v

Verboseモード (処理中のトラック番号などを表示する)

出力ファイルはD77ディスクイメージ形式で出てきます。

実行例:

C:\> d77enc test.txt test_converted.d77 -v
[D77ENC]Text file to D77 file encoder 0.1(alpha)
Programmed by an XM7 supporter

Track 0................
Track 1................
Track 2................
Track 3................
Track 4................
Track 5................
(以下略)

== 改版履歴 ==

// v0.1 2000/12/16 初期公開バージョン


== その他ノウハウなど ==

・例えば、セクタを増やすのであれば、目的のトラックの'TRACK='キーワードの後に'ID='キーワードで他のセクタと同じようにセクタを追加記述するだけでOKです。

・消去の場合も、いらないセクタはそのままズバッと'ID='の行と続くデータ行を削除すればOKです。

あとは、CHRNをいじるなど簡単な内容にしてもバイナリエディタでいじるよりは簡単にいじれると思います。

・'TRACK='で指定するトラック番号が若返ったり、163を超えたりした場合、その値は無視されます。

・'TRACK='で指定するトラック番号はいきなり大きくなるのはかまいません。飛ばされたトラックはセクタ数0として扱われます。