【要望】バイナリモードについてNo.30711
foobarr さん 12/01/05 15:57
 

バイナリモードでファイルを開いたとき、左側にアドレスが表示され
ますが、このアドレスの開始を0x0000固定では無く、任意で指定出来
るようにして頂きたいのですが如何でしょうか?

何で困っているかといいますと、
「0xA0000000 のアドレスへコピー(memcpy)するROMイメージ」を
秀丸エディタのバイナリモードで閲覧編集しています、

(現状の表示)
0x00000000|00,00,00,00,A0,00,00,24,A0,00,00,28,A0,00,00,30,
0x00000010|A0,00,00,24,FF,80,80,FF,FF,80,80,FF,A0,00,00,30,
0x00000020|FF,80,80,FF,EE,82,34,FF,FF,DE,B1,AA,FF,83,82,90,
0x00000030|73,23,64,91,83,67,98,96,00,00,00,77,65,32,49,96,

(任意で指定可能になったときの表示)
0xA0000000|00,00,00,00,A0,00,00,24,A0,00,00,28,A0,00,00,30,
0xA0000010|A0,00,00,24,FF,80,80,FF,FF,80,80,FF,A0,00,00,30,
0xA0000020|FF,80,80,FF,EE,82,34,FF,FF,DE,B1,AA,FF,83,82,90,
0xA0000030|73,23,64,91,83,67,98,96,00,00,00,77,65,32,49,96,

アドレスの開始を任意指定できると、VisualStudioのデバッガで
メモリをダンプ表示しているのと同じ感覚で閲覧編集できるため大変
編集しやすくなります。
また、秀丸マクロも使えるためVisualStudioのメモリダンプよりも効率が良いです。


(備考)
このようなことが出来るバイナリエディタ(商用、フリー問わず)は調べた範囲では
存在しないようです。

ご検討頂ければと思います。

[ ]
RE:30711 【要望】バイナリモードについてNo.30712
秀丸担当 さん 12/01/05 17:00
 

>バイナリモードでファイルを開いたとき、左側にアドレスが表示され
>ますが、このアドレスの開始を0x0000固定では無く、任意で指定出来
>るようにして頂きたいのですが如何でしょうか?

目的に合うかどうかわからないですが、部分編集を使って、部分編集の設定で
ローカル編集モードを使うといいかもしれないです。

具体的なアドレスの例が0xA0000000 だとすると読み替えるのは容易だと思いま
すが、バイナルファイルの途中からイメージが始まる場合は、読み替えるのは容
易ではないと思います。
そういう場合は、部分編集のローカル編集モードを有効に使うことができると思
います。

やり方は、[その他]→[ファイルタイプ別の設定]→[アウトライン]→[部分編集]
で「ローカル編集モード」にチェックを入れてOKします。
イメージとなる部分の範囲を行単位に範囲選択して、[表示]→[部分編集]すると、
その行からが0x0000として表示させることができます。

[ ]
RE:30712 【要望】バイナリモードについてNo.30713
foobarr さん 12/01/05 19:18
 
> イメージとなる部分の範囲を行単位に範囲選択して、[表示]→[部分編集]すると、
> その行からが0x0000として表示させることができます。

ご教授頂いた方法は「バイナリファイルの途中を0x0000として表示する」方法かと思
います。
私がやりたいことは「バイナリファイルの先頭を0xA0000000として表示する」機能で
す。


「現状の表示・任意指定が可能になったときの表示」を見比べてもらうと分かりやす
いかと思います。


(現状の表示)
0x0000|00,00,00,00,A0,00,00,24,A0,00,00,28,A0,00,00,30,  (←秀丸エディタで1
行目、かつ、バイナリファイルの先頭、かつ、アドレスは0xAC0A0444)
0x0010|A0,00,00,24,FF,80,80,FF,FF,80,80,FF,A0,00,00,30,
<<省略>>
0x604A|FF,80,80,FF,EE,82,34,FF,FF,DE,B1,AA,FF,83,82,90, (←秀丸エディタで24
650行目、かつ、アドレスは0xAC1008E4)
0x605A|73,23,64,91,83,67,98,96,00,00,00,77,65,32,49,96,


(開始アドレスを指定可能になったときの表示、開始アドレス==0xAC0A0444の場合)
0xAC0A0444|00,00,00,00,A0,00,00,24,A0,00,00,28,A0,00,00,30,  (←秀丸エディタ
で1行目、かつ、バイナリファイルの先頭)
0xAC0A0454|A0,00,00,24,FF,80,80,FF,FF,80,80,FF,A0,00,00,30,
<<省略>>
0xAC1008E4|FF,80,80,FF,EE,82,34,FF,FF,DE,B1,AA,FF,83,82,90, (←秀丸エディタ
で24650行目)
0xAC1008F4|73,23,64,91,83,67,98,96,00,00,00,77,65,32,49,96,




0xAC1008E0のアドレスへカーソルを移動したいときは、後者の方が移動しやすいです。

[ ]
RE:30713 【要望】バイナリモードについてNo.30714
foobarr さん 12/01/05 22:29
 
すいません、上記の投稿ですが折り返されて見えにくくなっています。
ウインドウを横に広げてもらえればと思います。

[ ]
RE:30713 【要望】バイナリモードについてNo.30717
秀丸担当 さん 12/01/06 10:47
 

>ご教授頂いた方法は「バイナリファイルの途中を0x0000として表示する」方法かと思
>います。
>私がやりたいことは「バイナリファイルの先頭を0xA0000000として表示する」機能で
>す。

具体的なアドレスが0xAC0A0444で、ファイルの先頭からということであれば部分
編集の方法は有効ではないと思います。
やるとしたら操作方法をどうするかが悩ましいですが、マクロで設定できるよう
になっていると操作方法も自由で他の用途にも使えそうで便利と思います。
今後のネタにさせていただきます。

[ ]
RE:30717 【要望】バイナリモードについてNo.30719
foobarr さん 12/01/06 11:34
 
使用者が限られる機能なのは重々承知しております。
マクロから操作できれば問題ありません。

このような、マクロを想像しています。
$in = input("開始アドレスを入力して下さい");
#address = val($in);
setaddress #address;

こういったことが出来るバイナリエディタが世の中に無く困っておりまして・・・

ご検討をお願い致します。

[ ]