[表紙頁]へ  関連記事の目次へ

[081111]

HDD用プログラムを、作ってみました(初歩編) HDM02

パスワード・ロックが掛かったジャンクHDDを、使用可能にしたいと色々調べてみたのですが、ネットからで入手出来るソフトでは埒が明かないので、自作出来ないかとトライしてみました。

目下の処、“素人には、開錠は困難!?”との見込みなのですが、折角作った道具だし、普通の用途(ん?どんな?)になら使えるかもしれないので、一応整備しておこうと思いました。

名称は、HDM02HardDisk Manipulator Ver0.2)で、目下のバージョンは小数点以下!(もしも、ロックの掛かったHDDが読めるようになったら、Ver1.0以上にしようかと思ってますが...)
−−−−−−−−−−−−−−−−−−−−−−−−−
主な機能
Fnキーで指定する「機能」は、思い付くままに追加して来たので、雑然としているし、汎用性も少ないのですが、一応、次のようなのを用意しました。(暫定で、常に変更中)

Fnキー機能shift Fnキー機能
F1ドライブの切り替え(C,D,E,F)sF1
F2画面データのファイルへの書き出しsF2画面データをファイルから読み込み
F3Trk00の読み出しsF3Trk00の書き込み
F4LBAゼロで読み出しsF4LBA最大値-1で読み出し
F5画面をリフレッシュ(暫定)sF5
F6画面データを全部ゼロで充填sF6画面データを昇順数で充填
F8LBAの書き換えsF8
F12現LBAから読み出しsF12現LBAへ書き込み

LBAは、Logical Block Addressの略で、1ブロックは512バイト。画面の表示は256バイトずつですが、スクロールで全512バイトの表示が可能。また、Trk00は、MBR部。

データの置き場所は3箇所で、「画面上」、「ディスク(LBA)上」、「ファイル上」(実態は、ディスク上ですが)。
「画面」で書き換えたデータは、「ディスク」に書き込むか「ファイル」に書き込まないと残りません。(折角書いたデータを、うっかりして、ディスクから読み出した別データで上書きしてしまう事が多かったもので)

ドライブの変更など.
始め“ドライブは1台だけ”と考えていたのですが、延長ケーブルで(ノートPCでも)2台まで接げるので(実用的には2台が限度ですが)、少しだけプログラムの汎用性を考えて、4台まで切り替え可能にしました。

左写真、<クリック>で、Dドライブに変更した状態。<プッシュ>で、未接続のEドライブに切り替えた時のエラー状態。

ノートPCでHDDを2台接続出来ると、大変便利!
当初は、2台のPCを使って、FD経由でやろうとしていたのですが、この方式ならマスタ側HDDでプログラムを作成して、そのまま直ぐに、スレーブ側に接いだターゲットHDDも調べられるから、プログラム作成・デバッグが1台だけで済むし、楽チンですねぇ。(自画自賛。f(^^;)

上限/下限.
左図の上がプログラム作成用の4GB(maxLBA:80F7F0)、下がロックの掛かった20GB(maxLBA:2542980)の“LBA上限値”と“現LBA値”の表示。
LBA下限値は、当然、全0です。(マイナス側にも出来ますが、読み出しはエラー!)

図中の右端の赤数字は「ステータス」表示用で、「00」は読み書き正常で、「00以外」は何らかの異常終了を表しています。

残念ながら、このターゲット20GBはちゃんと読み出せなかったため、「01」で異常終了しています。(表示データ群は、前のものがそのまま表示されている)

キー操作など.
(恐らく、目的の作業では、個々のデータを書き換える必要は無いだろうと思っていますが、)一応、画面上のデータは、どのアドレス/カーソル位置ででも上書き可能です。(ただし、右側のコード表示領域では、出来ない)

カーソルは、矢印キーで自由に移動させられますし、同じ数字を書いて行く場合は、自動的にカーソルが右移動して行きます。

カーソル移動は矢印キーだけです。で、PgUpキーやPgDnキーなどは、LBAの「アップ/ダウン」と「データ読み込み」として働きます。(データの上書き途中で、うっかり、これらを使うと次のブロックが読み出されてしまい、折角書いたデータが無駄になります)

LBA値」を書き換えた後は、「Enter」キーで確定。直後に、そのLBAからブロック・データを読み込んで来ます。(Enterキーの今回の出番はこれくらいなもんで、他には使っていません)

その他.
後、汎用性を増すには、文字列や数値での検索(サーチ)機能なども必要でしょうが、主目的から外れるので、今は考えてません。

上限下限付近のブロックへ飛ばしたのは、何か参考になるデータでも読み出せないかな?と思って組み込んだのですが、やはりそんなに上手い話は無さそう。

まぁ、ディスクのアクセスは、すべてBIOSの割り込み処理ルーチンを利用しているので、普通を超える事は出来ないでしょうね。

ただ、その部分に少し毒薬(?)を注げば、或いは変身させられるかもしれないので、もう少し試行錯誤してみようと思っています。

[表紙頁]へ  関連記事の目次へ