imgtol
概要
- FDイメージ書き込みユーティリティ。
- シンプルなコマンド体系が特徴。
ダウンロード
ドキュメント
IMGTOLの使い方 2003.12.27 川合秀実
1.これはなにか?
IMGTOLはDOS汎用ファンクションを使ってディスクイメージを作ったり、ディスクイメ
ージを書き込んだりするツールです。その他にもディスクイメージを扱う上で便利では
ないかと思われる機能や、OS開発に使えそうな機能を持っています。
しかし何といっても最大の特徴は、OSの配布時にバンドルしても全く問題にならない
ライセンスが適用されていることと、バンドルしても邪魔にはならないそのサイズでし
ょう。2.33KBバイトです(笑)。
2.簡単な使い方の表
read. >imgtol r [opt] drive: filename size (drv -> file)
write. >imgtol w [opt] drive: filename [size] (file -> drv)
exp-w.f.>imgtol f [opt] drive: filename (file -> drv)
exp-w. >imgtol F [opt] drive: filename (file -> drv)
ovrcopy.>imgtol c inputfile outputfile [size]
expand. >imgtol e inputfile outputfile size
release.>imgtol R sourceimage compedimage
exe2sys.>imgtol s inputfile outputfile base(dec)
opt(sector-bytes) = -512(default), -1024
size unit : kilobyte
3.ディスクイメージをディスクに書き込む方法
PCATの場合(というか1440KB-FDの場合)
prompt>imgtol w a: fdimage.bin
TOWNSやNEC98の場合(というか1232KB-FDの場合)
prompt>imgtol w -1024 a: fdimage.bin
この場合だとファイルが尽きるまで書き込みます。ディスクが尽きてもDOSからエラー
が来ない限り、書き込み命令を送り続けます(笑)。ディスク容量よりも大きなファイ
ルを扱うときなどは、
PCATの場合(というか1440KB-FDの場合)
prompt>imgtol w a: fdimage.bin 1440
TOWNSやNEC98の場合(というか1232KB-FDの場合)
prompt>imgtol w -1024 a: fdimage.bin 1232
などとしてください。上限が設定され、それ以上はアクセスしません。なおアクセスは
高速化のために36KB(-512時)、もしくは16KB(-1024時)単位で行なっています。以前の
バージョンではこの単位でのオーバーランがありえましたが、このバージョンはオーバ
ランしません。
「a:」とか「fdimage.bin」の部分は自分の使いたい状況に合わせて書き換えてくださ
い。HDDのドライブや他のデバイスにもできます(註1)。なお31MB以上にアクセスする
ことはできず、そのうち勝手に正常終了してしまいます。末尾のサイズ指定も32767以上
を指定しないようにしてください。
なお、途中経過は一切表示されません。気長に待ちましょう。また「ディスクの内容
が失われます、よろしいですか?」みたいなこともいいません。そういうのを付けたけ
れば、バッチファイルを作ってそこでechoやpauseをしてください。
<註1>
HDDやCFへ書き込もうとすると、Win95などではエラーになります。しかしこれは回避
する方法があります。例えば、ドライブE:へ書き込みたい場合、
prompt>lock e:
prompt>imgtol w e: cfimage.bin
prompt>unlock e:
とすれば問題なく書き込めます。
4.ディスクを読んでディスクイメージを作る方法
PCATの場合(というか1440KB-FDの場合)
prompt>imgtol r a: fdimage.bin 1440
TOWNSやNEC98の場合(というか1232KB-FDの場合)
prompt>imgtol r -1024 a: fdimage.bin 1232
サイズ指定は省略できません。実ディスクよりも少ない値も指定できます。その場合
はそこまでしか読みません。
「a:」とか「fdimage.bin」の部分は自分の使いたい状況に合わせて書き換えてくださ
い。HDDのドライブや他のデバイスにも問題なくできますが、31MB以上にはアクセスでき
ないので、それはご了承ください。31MBを超えてアクセスできるのはpcctolです。
なお、途中経過は一切表示されません。気長に待ちましょう。
5.ディスクイメージのサイズの変更の方法
たとえば600KBのAT互換機用ディスクイメージがあって、「これじゃあ不便じゃあ~、
僕は1440KBのイメージがほしいんだあ!」というときは次のようにします。
prompt>imgtol e src.bin dest.bin 1440
こうすると、600KBのsrc.binを拡張して1440KBにしたものがdest.binとして出力されま
す。同じファイルを指定することはできません。必ず入力ファイル名と出力ファイル名
は別々にしてください。誤って同じファイルを指定するとファイルが壊れます。なお、
1440KBに拡張と言っても、要するにただ「00」で埋まったセクタを要求サイズになるま
で付け足しているだけです。なにもいじっていません。
なお、指定したファイルよりも小さいサイズを指定することもでき、その場合は、フ
ァイルの後ろがカットされた結果が出てきます。作ったディスクイメージの後半を切り
捨てたいときに使います。例によって、31MB以上のサイズは指定できませんのでよろし
く。
6.オーバーライトコピーの方法
オーバーライトコピーというのは、原則としてコピー先のファイルサイズを変更せず
にコピーするというもので、単にサイズが変わらないというだけではなく、ファイルの
ディスク上の位置も不変です。OSのイメージなどを書き込むのに適しています。
prompt>imgtol c src.bin dest.bin 50
とすると、src.binの最初の50KBがdest.binに書き込まれます。もしsrc.binが50KBに満
たなければその分は「00」で埋めた内容を読み込んだことにして書き込みます。書き込
みサイズがdest.binのサイズを上回った場合は、素直にdest.binのファイルサイズを拡
張して書き込みを続けます。dest.binのサイズのほうが書き込みサイズよりも大きかっ
た場合、サイズは変更されません。また書き換え範囲外の内容はそのまま保持されます
。コマンド実行に際してdest.binが存在しなければエラーになります。最後の50という
サイズ指定は省略でき、この場合はsrc.binのサイズを指定したことになります。
7.exe2sysとしての使用方法
exe2sysは、exeファイルのヘッダを解釈して所定のアドレスへリロケートした後のメ
モリイメージを生成するものです。OSをexe形式で作っておいて、ロードイメージに変換
する場合に使います。
prompt>imgtol s src.exe dest.bin 2048
この場合の最後の2048はリロケートセグメントアドレスです。なお注意が必要なのは、
この2048が10進数であることです。16進数指定はできません。この場合、0x0800:0x0000
にロードされたとしてリロケーションを行い、その結果を出力します。
8.SF16専用コマンド群
imgtolは、Win95のDOSプロンプト内でSF16フォーマットを掛けたり、もしくはSF16フ
ォーマットで記述されたOSをインストールすることができます。SF16フォーマットとい
うのはFAT16を拡張したもので、ディスクイメージを作る際にインストール先の容量をあ
らかじめ決めておかなくてよいという利点を持たせたものです。
まず、SF16でメディアをフォーマットしてみましょう。fコマンドを使い、ブランクイ
メージを書き込ませます(sf16_08.binはsf16set.lzhの中にあります)。
prompt>imgtol f a: sf16_08.bin
Windows95OSR2.0で実験したところ、そのままではうまく認識できず誤動作します。こ
れで書き込んだ後に、一旦ディスクを抜いてください。そしてもう一回入れると、きち
んと認識します。CFの場合も、一度正規の操作でイジェクトしてください。HDDの場合は
、unlockしたらすぐに再起動してください。・・・ああ、ええと、FD以外を指定する場
合、wコマンドと同様に、lock/unlockをやる必要があります(3.参照)。
またfコマンドは誤操作で大切なHDDを飛ばしてしまったりしないように、2.0GB以上の
パーティションへの書き込みだと判断すると、自主的にエラーにして一切の書き込みを
しません。
またfコマンドはFAT12かFAT16かSF16であらかじめフォーマットされていないと、その
ドライブをうまく認識できませんので、fdisk後に一応適当にフォーマットして、それか
らこのこのコマンドでSF16フォーマットしてください。
さて、これでディスクにいろいろ書き込んで、それを再インストール可能なディスク
イメージに変換したくなったら、rコマンドとRコマンドを使います。
まず、rコマンドでディスクイメージを取り出します(31MBまでしか取り出せないので
それより後ろにはファイルが存在しないようにしてください)。これはドライブの容量
全体である必要はなく、ファイルが入っているところまででいいです。そして、
prompt>imgtol R rawimage.bin release.bin
などとやると、後ろの不要な部分が切り捨てられて、fコマンドでインストール可能なデ
ィスクイメージに変換されます。一度この変換をすれば、fコマンドで好きな容量へイン
ストールできます。wコマンドのように、読み出したドライブと同容量でなければならな
い、ということはありません。
9.謝辞
I.Tak.さんが僕にやる気を起こすきっかけをくれました。どうもありがとうございま
す。
10.ライセンス
毎度のKL-01です。