FrontPage

pcctol

概要

  • PCカード接続のCFやHDDのバックアップユーティリティ。
    • CF/HDD内のファイル操作も可能。
  • PC/AT機の純粋なDOS環境で動作する。

ダウンロード

ドキュメント

pcctol0hの使い方              2004.03.05  川合秀実

0.大事な注意!
  pcctolはimgtolとは異なり、AT互換機専用(もしくはTOWNS専用)です。AT用バイナリが
TOWNSで動いちゃうとか、TOWNS用バイナリがATで動いちゃうなんていうすばらしいこと
はおきませんので、試さないでください。マシンを壊しかねません。
  pcctolはDOSでしか動きません。Windows上のDOSプロンプトは駄目です。持ってない人
はOSASK.EXEを動かすときみたいにWindowsの起動ディスクを作るとか、もしくはFreeDOS
をダウンロードするなどしてください。
  またpcctolは指定されたデバイスを縦横無尽にいじくり回します。pcctolがいじった
デバイスは、もはやDOSからはアクセスできません。アクセスしたくなったら、まずは再
起動しましょう。

1.pcctolはなんですか?
  pcctolは、PC-Card toolの適当な略で、ぶっちゃけた話、imgtolと似たようなもので
す。imgtolは主にFD向けのツールでしたが、pcctolはPCカードに接続したデバイスやATA
-HDD(ただし最大でも1GB程度のもの)などが主な対象です。
  pcctolとimgtolをくっつけて、さらに何倍にも拡張するとkhbtolというのができるん
ですが、これはまあ先の話です。

2.pcctolで何ができますか?
  CFなどのメモリカードやATA-HDDの、イメージファイルによる完全なバックアップを取
ったり、復元したりできます。また.eiiという形式で配布される特別なイメージファイ
ルを、メモリカードやATA-HDDにインストールすることもできます。
  またCFやHDDにインストールしたOSを抽出して、.eii形式のイメージファイルにするこ
ともできます。.eii形式は任意の容量にマッチできる特別なイメージ形式です。
  さらに、CFにアクセスしてディレクトリ一覧を参照したり、CFからファイルをコピー
してくることもできます。この機能はSF16/FAT16/FAT12に対応しています。
  他にもいろいろできるようにする予定だったのですが、面倒になってきたので着手し
ていません。usageとかをみるとFDDにアクセスできそうな雰囲気だったり、なにやらい
ろいろとコマンドがありそうですが、それはすべてうそっぱちです(笑)。
  なおTOWNS版ではメモリカードスロットしかアクセスできません。HDDは未サポートで
す(気が向いたら、SCSI-HDD用のルーチンを作ります)。
  pcctol0hからはBIOSを使ってのアクセスにも対応しました(AT版のみ)。BIOSのドラ
イブ番号が分かっている場合にのみ使えます。A:が属するデバイスは40で、C:が属する
デバイスは60です。でも上級者向けなのでここではあまり詳しくは説明しません。

3.バックアップをとる&バックアップからの復元
  CFやスマートメディアのフォーマットを解析したり、工場出荷時のフォーマットを念
のために残しておきたい、などの特殊用途や、FATじゃないフォーマットなんだけどバッ
クアップがとりたいという普通の用途まで、なんでもOKです(たぶん)。誤って消して
しまったファイルの復活もFATの知識があればできますね。
  prompt>pcctol r 20 ファイル名
とやると、PCカードスロット0に刺さっているデバイスの内容を全てファイル化します。
もし複数のパーティションがあったりした場合は、すべてのパーティションが保存され
ることになります。20の部分を21にするとスロット1になります。10~13だとATA-HDDに
なりますが、HDDの総容量が2GBを越えたらエラーになるようにしてあります。誤操作防
止です。イメージの書き込み先と読み込み対象のATA-HDDが同じなんていうのは論外です
のでやめましょう。
  pcctolは自分で全てをコントロールするので、DOSのソケットサービスとかカードサー
ビスとかはいりません。というかそういうものがあってはいけません。ドライバが何も
ない状態こそ理想です。pcctolはコマンドを受理した瞬間にカードに電源を供給してリ
セットをして、それで処理が済んだら(もしくはエラーになったら)カードの電源を切
ります。ということで、pcctolの実行前にカードをさして、実行が終わったらカードを
抜く、という使い方でOKです(普通のDOSでは、カード入れてからパソコンの電源を入れ
て、パソコンの電源を切ってからカードをぬく)。CFが3枚あるなら、パソコンを再起動
することなく、続けてpcctolを使っていいです。
  生成されるファイルの先頭64KBはヘッダで、ここにCISタプルの情報やATAデバイス情
報などが記録されています。残りの部分は全セクタのイメージそのものです。生成され
るファイスサイズ-65536バイトが、そのデバイスのunformat時の容量と言えるでしょう
。
  さて、復元は次のように行ないます。
  prompt>pcctol w 20 ファイル名
ここで指定するファイルは、もちろんpcctolで生成したものでなければいけません。
pcctolは先頭の64KBを読み飛ばした後、ファイルの残りの部分をデバイスに送り込みま
す。
  原則として、復元をやるのは同容量のメディアに行なうのがいいでしょう。メモリカ
ードもHDDも、メーカやモデルによって容量が微妙に違ったりします。ファイルのほうが
大きい場合、pcctolは"drive error!"を出して書き込みを行なわずに終了します。

4.イメージのインストール
  FDの場合イメージのサイズは1440KBとか1232KBと決め打ちできたのですが、CFとかに
なってくるとカードごとにバラバラです。たとえばOSを配布するときなどで、8MB用、
16MB用、32MB用・・・1GB用などという風にたくさんのイメージをリリースしなければい
けないとしたら、リリースする人はとても大変です。そこで8MB用がそのまま16MBや32MB
用としても使えるような、サイズ可変のイメージファイルを作りました。Expandable
Install Imageを略して、eii形式と呼んでいます。
  このサイズ可変イメージのベースはFAT16下位互換のSF16というフォーマットなのです
が、eiiではSF16の前にMBR領域+ブートセレクタ用予約領域の計64KBをくっつけたもの
です。FAT16互換なので、Windowsやデジタルカメラなどからたいていの場合はアクセス
できます。
  インストールのやり方は、
  prompt>pcctol f 20 ファイル名
とやります(eコマンドでもできますが、Win95は192MB未満のメディアに対しては誤認す
ることがあります。fコマンドなら誤認しません)。
  また今回、ブランクのイメージファイルを作りました。これをpcctolでインストール
するとCFなどをFAT16フォーマットできます。16MBや8MBのCFだとWindowsからはFAT16フ
ォーマットできないので、これはそういう時は重宝すると思います。
  イメージファイルはsf16iset.lzhの中にあります。この中で使うのはsf16_40.eiiだけ
だと思います。残りはおまけです。
  なお192MB未満のメディアの場合は、Win95などのヘッダをチェックしないけしからん
OSのために、実在しないセクタを不良セクタとして存在すると思い込ませています。で
すから、なにやら不良セクタがたくさん出てきますが、まったく問題はありません。
  sf16_40.eiiでフォーマットすると読み書きが32KB単位になり、しかもクラスタがきれ
いにアラインされるので、メモリカードなどでは多分読み書きがほんの少し高速化して
書き換え寿命も延びる可能性があります。
  この方法で初期化した2MBのCFを手持ちのデジタルカメラで使ってみましたが、ちゃん
と認識して書き込めました。もし認識できないOSやデバイスを発見したら教えてくださ
い。

5..eiiファイルを作る
  SF16の単一パーティションでフォーマットされたデバイスから、.eiiファイルを作る
ことができます。たとえばHDDにDOSやWinをインストールしておいて、これでイメージ化
しておくと、イメージを転送するだけで他の容量のデバイスに簡単にインストールでき
てしまうわけです。
  .eiiを作るには、まず、そのデバイスがSF16でフォーマットされていないといけませ
ん。ということで、消去しても構わない1GB以下のデバイス(註:パーティションではだ
め)を準備して、4.の方法でSF16フォーマットしちゃいましょう。これで、FDISK&FO
RMATされた状態になります。
  これは普通のFAT16として扱えるので、ここにDOSとかWin3.1とかWin95とか、まあなん
でもいいんですが、そういうのをインストールします。LinuxもFAT16にインストールで
きるタイプのやつならOKです。もちろん将来的には、Linuxの標準的なフォーマットや、
FAT32とかにも対応します。
  ここで一つ問題があって、SF16ではブートセクタの0x0b~0x4fの部分、そしてできれ
ば0x1f0~0x1ffの部分も、上書きしないでほしいです。上書きしちゃった場合は、rコマ
ンドでイメージ化した後でバイナリエディタとかで直しておいてください。IPLを作り直
す必要が出てくることもあるかもしれません(まあしょせん512バイトのプログラムなの
で作り直すのは簡単)。
  インストールができたら、rコマンドでイメージをファイル化します。ドライブ全体を
ファイル化する必要はなく、必要な領域を全て含んでさえいればいいです。やり方は
3.を読んでください。
  イメージができたら、
  prompt>pcctol R 生のイメージファイル名 出力するeiiファイル名
生のイメージファイルを自動的にチェックして、末尾の不要な未使用クラスタやヘッダ
等を切り捨てて、必要最小限にまとまったeiiファイルが出力されます。

6.CFのファイル一覧をみる
  prompt>pcctol l 20 @:
とすると、ディレクトリリスト一覧が見れます。このコマンドはディレクトリにも対応
していて、
  prompt>pcctol l 20 @:pcctol/
などとするとディレクトリpcctolの中が見られます。パスは長くなっても構いませんが
、ロングファイルネームは使えませんし、全長で1000文字までです。さらに、
  prompt>pcctol l 20 @:fdimage0.bin:
というふうに":"で区切ると、直前の名前はディレクトリ名ではなくディスクイメージフ
ァイル名だと解釈し、中身が見られます。

7.CFからファイルをコピーする
  prompt>pcctol c 20 @:fdimage1.bin c:
などとするとコピーできます。他にも、
  prompt>pcctol c 20 @:fdimage1.bin:!guide!.txt a:/file/
なんていうこともできます。上書きになる場合でも確認をとらずに実行しますので、それ
は注意してください。

8.その他のコマンド
  ここで紹介するコマンドについては、パラメータ無しでpcctolを実行したときに出て
くる、usage表示を参考にしてください。
  oコマンドはcと使い方はほぼ同じですが、オーバーライトコピーします。オーバーラ
イトコピーというのは上書きコピーのことで、既存ファイルを上書きするものです。た
だの上書きだと通常のコピーと同じですが、オーバーライトコピーでは、極力FATをいじ
らないでコピーします。10バイトのファイルを100バイトのファイルへコピーしても、書
き換わるのは最初の10バイトだけで、残りの90バイトはそのままになり、ファイルサイ
ズも100バイトのままになります。利用するクラスタ位置も全く変わりません。
  dコマンドはファイルの削除です。
  aコマンドはファイルの属性設定です。
  iコマンドはドライブの情報を報告します。FAT12/FAT16/SF16のどれなのかとか、セク
タのサイズ、クラスタのサイズ、総容量などです。ディスクイメージに対しても実行で
きます。
  PコマンドはAT互換機のみに有効なコマンドで、全てのPCカードデバイスの電源を切り
ます。複数のPCカードが競合してうまく動作しない場合のみに有効です。

9.制限事項
  6.~7.の機能については制限があります。
  pcctolでは32KBよりも長いサブディレクトリにはアクセスできません(でもこれは多
分問題にはならないと思います)。
  また、クラスタ番号#16384以降を含むファイルにもアクセスできません。つまり1GBの
CFがあってSF16_40でフォーマットしても、前半の512MBまでの範囲しか読み書きできな
いわけです。これがSF16_20だったりしたら、pcctolでアクセスできる範囲は最初の256
MBだけになります。ということで、できるだけSF16_40を使うのをおすすめします。これ
なら512MBまではアクセスできますので。
  気が向いたら、この制限を直したいと思っています。

10.さいごに
  プログラムとドキュメントはKL-01でライセンスされています。

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2016-09-04 (日) 02:12:35