ハングアップの日々

2001年 1月分

2001/01/24

 死んだと思っていた 6.4GB HDD は実は死んでいなかった。JUNK氏に AT 互換機で物理フォーマットしてみたらどうだと言われたことで気がついた。まだ diskinit を試していなかったのである。diskinit を掛けたところ、見事に復活した。
 ということで、実験再開。4.25GB 壁またぎパーティションを作成して、chgvltl.exe で、全領域を有効にしてから、4.25GB 以降の領域にデータを書き込んだところ、正常に書き込みが出来た・・・と思ったら A: ドライブやブートセクタが破壊された。なぜだ〜〜。もう1度フォーマットする羽目になってしまった。やはり一筋縄ではいかないようである。

2001/01/23

 ずいぶん前に Win98DDK では Win95 用の VxD を作れないという話を聞いたことがあったので、実際に試してみた。「仮想デバイスドライバの作り方」という本のサンプルプログラムを実際にコンパイルして実行してみたところ、確かに Win95 では CreateFile で VxD をロードしようとしたときにエラーが発生した。Win98DDK で作った VxD が Win95 では動かないのは ID だか何かが違っているからだというように聞いていたので、Win95DDK で作られたオリジナルの VxD と、今 Win98DDK で作った VxD を比較してみて、ID らしきものを探してみることにした。95DDK では 00h 04h となっているところが、98DDK では 0Ah 04h となっている部分があった。98DDK で作った VxD のその部分を 00h 04h に書き換えてみたところ Win95 上でも動くようになった。DDK の中身をあさっていると、hdr.exe というものが見つかったので VxD を hdr.exe で調べてみた。VxD DDK version が、95DDK で作った VxD は 4.0、98DDK で作った VxD は 4.10 と表示された。すなわち 98DDK で作った VxD が Win95 では動かないのは VxD DDK version が違っているからだということが判明した。98DDK で VxD DDK version を 4.0 にする方法はないのかと、また DDK の中身をあさってみたところ、VMM.h と VMM.inc に鍵が隠されていた。
 結論。Win98DDK で Win95 用の VxD を作るには、VMM.h または VMM.inc をインクルードする前に WIN40COMPAT を定義しておけばよい。(コマンドラインで -DWIN40COMPAT を指定しておくのが楽だろう。互換性のあるプログラムを作ることを考えるなら、ソースの中で定義した方が良いのだろうが。)

2001/01/21

 La10(もちろん 4.25GB の壁あり)に IBM DADA-26480 (6.4GB) を載せて全領域使えるか実験してみた。なお、以前書いた方法には少々問題があってそのまま行うことは出来ないことが分かっている。なお、以下に示す方法は「4.25GB 壁またぎパーティション法」と呼ぶことにした。

  1. まず、山猫そふと工房で公開されていた chgcapa.exe を用意する。La10 に HDD をつながずに DOS を起動する。DOS が起動したら HDD をつなぎ、chgcapa.exe を使って、4.25GB の壁ぎりぎりである 4351MB に容量を制限する。
  2. 4.25GB の壁の手前 数十MB ほどを空けて、それより前の部分を普通に領域確保、フォーマットしておき、Win95/98 をインストールする。
  3. 空いた 数十MB を領域確保、フォーマットする。さらにこの領域の BPB、FAT、ルートディレクトリなどを手作業で書き換えて、4.25GB の壁をまたいで HDD の最後 (6.4GB) までが1つのパーティションとなるようにする。(壁またぎパーティションを作成する。)
  4. 再起動して Win95/98 の GUI を立ち上げると、3.で作成したパーティションが、約 1.9GB のパーティションとして認識されるようになる。ただし、このままでは HDD の容量を chgcapa.exe で 4351MB に制限してあるので、6.4GB 全体が認識されたように見えても実際には 4351MB 以降の領域にはアクセスすることが出来ない。
  5. chgcapa.exe を改造して、HDD の電源を切るまでの間 6.4GB 全体を有効にするようなツール(chgvltl.exe)を作った。そして chgvltl.exe を実行したところ、4351MB 以降の領域にあるセクタも読み込めるようになった。ただし、今回の実験では 4351MB 以降の領域に書き込みが出来るのかどうかの検証は出来なかった。

 今回の実験はここまでであり、これ以上実験を続けることは不可能となってしまった。Win 上で HDD の容量を変更するという無謀なことをしたために、HDD が死んでしまったのである。今回の実験のさらに詳しい様子は @nifty の FNECHARD にアップしてあるので、興味のある人は是非参照してもらいたい。
 それにしても 6.4GB の HDD が壊れたのはショックである。(T_T)

2001/01/20

 medinfo@anet.ne.jp から変なメールが送られてきた。GNMGGPGN.EXE というプログラムが添付されていた。ウィルスチェックを掛けると、TROJ HYBRIS.B というウィルスが見つかった。このように知らない人からウィルスが送られてきた場合はどのように対処すればいいのだろうか。他人にウィルスを送りつけて楽しんでいる愉快犯なら無視するのが一番だろうが・・・。最近これを含めて SPAM メールがずいぶん多くなってきた。実にうっとうしい。
 La10 のバッテリーがどのくらい持つか調べてみた。5分で残量が 5% になってしまったが、警告音がピーピー鳴ったままさらに 30分動いた。一方でニコイチした Ls150 のバッテリーは再び1分ほどしか持たなくなってしまった。
 La10 の HDD を換装する準備を始めた。La10 の HDD 固定金具には内ねじ用の穴しか開いていないので、外ねじ用の穴を開けた。ワッシャーも用意する必要があった。

2001/01/19

 I-O DATA の CBIDEII(Duo ATA PC カード)が \2,980 で売られていたのでつい買ってしまった。目的は、使い勝手がいまいちの DN-Boy のインターフェースカードと交換することなのだが・・・、やはりそううまくはいかなかった。コネクタの形状は全く同じなのだが、配線が違うのだろう。CBIDEII の説明書に配線が書いてあれば自分で変換コネクタを作ることも可能だったのだが、残念ながら書いてなかった。DN-Boy 付属の PC カードの出力電圧を測ったら 5V 出ていたのだが、CBIDEII は 3.3V しか出ていない。これでいいのだろうか。

2001/01/15

 死んだバッテリーを分解した。派手に液漏れを起こしているセルが1つあった。以前分解したバッテリーと全く同じ位置のセルが液漏れしていた。有機溶剤系のにおいがかなりきつい。前のバッテリーから取り外したセルを使ってニコイチしたが、10〜20分ほどしか持たない。まあ、1秒たりとも持たないのに比べるとましだろう。
 La10 に Win95 をインストールしてみた。Ls150 用に作っておいたインストールディスクを使って MO を認識させ、MO に入れておいた CABS ファイルを La10 にコピーしてから、CABS インストールを行った。やはり Pentium 100MHz では少し動作が遅い。DOS 画面では気付かなかったのだが、液晶にわずかに色むらがあるようだ。

2001/01/11

 先月買った Ls 用のバッテリーが逝ってしまった。まだ数回しか充放電をしていないというのに。ちなみに某掲示板では1人で同じバッテリーを4本買ったという人がいた。たぶん同じ店で買ったのだろう。何本かは最初から死んでいたそうである。未使用のように見えたのだが実は違っていたのだろうか。なお、自分が買った店は、ETS というところである。
 久しぶりに Mozilla をダウンロードしてみた。前回のリリースから Milestone 表記が消えた。今回のは Mozilla 0.7 である。安定性がかなりよくなったような感じがした。相変わらず、スペースキーの連打で、未読メールを次々と読み進めていくことは出来ないようである。この機能がないとメーラーとしては失格である。BackSpace でバックスクロールが出来ないのも不便である。ユーザがキーアサインを変更することが出来ればいいのだが。ネット接続マシンである FIVA で常用するにはちょっと重い。もっと動作が軽くなって欲しい。

2001/01/09

 山猫そふと工房の chgcapa.exe の解析を試みている。とりあえず、オリジナルと同じ実行ファイルが出来上がるソースファイルは出来た。大まかな動作の流れは分かったのだが、細かい部分がまだよく分からない。どこかに IO ポートを介して HDD にアクセスする方法を詳しく記した資料はないだろうか。chgcapa.exe は 65535MB までの HDD にしか対応していないことが判明した。
 まりもさんの Web ページにある、PC-98 の内蔵 IDE で 32GB の壁を破る方法を見て、同じような方法で 4.25GB の壁も破れるのではないかと思いついた。まず、4.25GB の壁がない PC-98 に HDD をつないで、パーティションを切る。このとき、最後のパーティションの先頭部分の数 MB は必ず 4.25GB 以内に入るようにする。chgcapa.exe で容量を 4.25GB 以下に制限してから、目的のマシンに HDD を取り付ける。以上で出来そうな気が・・・。6.4GB の HDD が余っているので、そのうち La10 か Ra20 にでもつないで確かめてみたい。


Copyright (C) 2001 K.Takata