[HOME]

   時刻失踪事件

The Adventure of the Missing Time #2

〜 後編 〜
   DOS事件簿
"It's only a question of time now,"
「時間の問題だよ」
『株式仲買店員』より



 汽車での短い旅は快適だった。オックスショットの駅に着くと、低い白い柵の向こう側に二頭だての屋根なし馬車が停まっていて、デート氏が横に佇んでいた。彼は、私に気づくと、まるで久しぶりに旧友に再会したかのように大げさな身振りで歓迎を表し、熱心に握手をした。
「ようこそ、ワトスン先生。わざわざお越しいただけて感激です」
「こちらこそ、駅まで迎えにきていただいて助かりましたよ」
「それにしても、今日はいい天気になってなによりです。昨日のような嵐はもう御免ですよ」
「ほんとうにそうですね。デートさんも、一日待ってからベーカー街においでになればよかったのに」
「せっかちなものですから。あの馬車で20分ほど揺れるのをがまんしていただけば、到着しますから」
 10分も馬車に揺られると、街道の彼方に高い煙突のある屋敷が見えてきた。
 「あの建物です」依頼人は前方を指さしながら言った。屋敷は古風な作りで、近づくにつれて予想以上の大きさであることがわかった。屋敷の門扉を通り抜け、並木路を通って玄関に到着すると、待ち構えていた背の高い執事が馬車の扉を開けた。ホールに入ると、女中が二階の部屋に案内した。撞球台が置いてあるところを見ると、普段は娯楽室として使われている部屋のようであった。
「98ノートは、この部屋に置いてあるんですよ。ところで先生は撞球のほうは?」
「サーストンというなかなか上手な友人がいましてね。彼とはときどき楽しみますよ」
「どうです。ちょっと撞きませんか」
「あいにくですが、午後には市内で別件の捜査が待っているのです。できれば、例のファイルの調査にさっそくとりかかりたいのですが」
「そうでしたね。お忙しい先生に無駄な時間を使わせるわけにはいかないでしょうが、今度、機会を作ってぜひお手合わせをお願いしますよ」
「ええ。ぜひ」
 デート氏の98ノートは、部屋の片隅の卓に置かれ、脇の棚には最新のアプリケーションソフトのパッケージが50本以上並んでいた。
「昨日の話では、パソコンの初心者ということでしたが、ずいぶんたくさんのアプリケーションソフトをお持ちですね」
「ええ、そうなんですよ。98を購入したとき、各分野のアプリケーションソフトの売れ筋ベスト5というのをまとめて買ってしまったものですから。店員の忠告に従って、せいぜい10本程度にしておけばよかったんでしょうが、なにぶんせっかちなものですから。それに、店でデモンストレーションを見ると、ついどのソフトも欲しくなってしまいますしね。実際、インストールしてないどころか、パッケージさえ開けてないものがいくつもありますからねえ」
「それはもったいない。DOS諮問探偵という立場上、なるべく多くのアプリケーションソフトを試すように心掛けていはいますが、なにぶん市販されるソフトが多いものですから、実際に操作したことのあるアプリケーションは限られますし、購入して実際に活用しているアプリケーションソフトとなると、こく少数ですよ。今回、問題となっている『通信快速』については、ホームズも私もまったく使ったことのないありさまですからね」
「持っているだけで、使ったことのないアプリケーションばかりじゃねえ」
それでは、調査にとりかかることにしましょう。ホームズからは、可能な限り現場で調査して欲しいという指示がでています。私なりに確認してみたいこともありますから、しばらくこの98ノートを貸してもらえますね」
「もちろんです。そのためにわざわざ来ていただいたんですから」
 私は、できるかぎりホームズの調査のやり方をまねてみることにした。依頼人から「過信快速」のオリジナルディスクを受け取ると、98ノートにセットして、まず、DIRコマンドを実行してみた。

 A:¥>dir b:                      
 ドライブ B: のディスクのボリュームラベルは 通信快速
 ディレクトリは B:

  VNAP      <DIR>    92-04-20
  TKSYS     <DIR>    92-04-20
  INST   COM  36800   92-04-20
  README  DOC   5562   92-04-20
     4 個のファイルがあります.
   779264 バイトが使用可能です.

 A:¥>

「デートさん。昨日、ベーカー街で調査を依頼されたときの話では、『通信快速』にはディレクトリをとっても時刻の表示されないファイルが1つあるということでしたが、いま見ると、すべてのファイルの時刻が表示ざれないようですね」
「あれ、そうですか。やあ、どうも私はおっちょこちょいのようで…」
 こうしてタイムスタンプが表示されないことを確認したものの、次にどのように捜査をすすめていけばいいのか見当がつかなかった。ホームズには、現場で臨機応変に調査を進めるように指示されていたので、このままディスクを借りて帰るわけにもいかないと思い、TYPEコマンドを実行したり、「通信快速」のマニュアルを読んでみたものの、他にこれといった調査方法が思い浮かはなかったのである。ホームズから電子メールで調査の指示がきているかもしれないと考え、「通信快速」を使ってベーカーストリートネットへアクセスしてみたが、メールは届いていなかった。


棚に目をやると、最新のアプリケーションソフトが並べられていた。

 そこで話題をかえることにした。
「ところでデートさん。棚を見ると通信ソフトを5種類もお持ちのようですが、とくに『通信快速』を選んで使っている理由はなんですか」
「ナプルプスといいましたっけ? 画像を使った通信ができるんですよ」
「ほう。画像通信ですか?」「ええ。Kネットという、ケント州を中心に運営されているネットがありましてね、そのネットでは、パソコンにとくに興味のない一般市民にまでパソコン通信を拡げるために、画像通信を積極的に取り入れているんです。なんでもKネット専用の端末ソフトと『通信快速』は開発元が同じで、誰でも簡単に画像通信ができるのが特長だっていうんで使ってみることにしたんですよ」
「ヘえ。それは初耳ですね」
 これ以上、聞くようなこともなかったので、私は、98ノートの電源を切ると依頼人に言った。
「デートさん。一応、知りたいことはすべて調べることができました。後はベーカー街でホームズの調査に委ねることにします。それでは、解決の目途がつきしだい連絡を差し上げることにしましょう。いまのところ、皆目、見当もつきませんが、ホームズが調査に着手したからには、解決までにそんなに時間がかかることはないはずです」
「ワトスン先生。くれぐれもホームズさんによろしく伝えてください。それじゃあ、ちょっと待ってもらえますか。馬車を用意して駅まで送らせましょう」

 終着駅で汽車から降りると、ホームズがプラットホームで待っていた。
「どうしたんだい? 忙しいのに、わざわざ出迎えに来るなんて。それに、僕がこの汽車に乗ってくるのがどうしてわかったんだい?」
「初歩的な推理さ。君が使いこなせるMS-DOSのコマンドの種類を考えると、君独自の調査が30分もかからないのは、簡単に推測できる。調査が一段落した時点で、依頼人にお茶や食事を誘われたり、あるいは他のもてなしを受ける可能性がないわけではないが、出掛ける際に、なるべく急いでロンドンに戻ってくるように頼んでおいたから、今回はその点を考慮する必要はないわけだ。それで、この汽車に乗って帰ってくると見当をつけたわけさ。調査報告は馬車を走らせながら聞くことにしよう」
「午後の調査は、どこに出掛けるんだい?」
「いや、僕のほうの捜査は意外に順調でね。後の処理は警視庁のレストレイド君に任せてきた。今日中に彼ともう一度打ち合わせをする必要があるが、そんなに心配することはないだろう。もはや、君の事件のほうが重要だ。その前に、軽い昼食をとろうじゃないか。御者君、ホルボーン・レストランまでやってくれたまえ」


「さてワトスン、君の調査はどうだったんだい?」

 馬車が走り出すと、ホームズは言った。
「さて、君の調査はどうだったんだい?」
 私は、なにも得ることはなかったことをできるだけ詳しく話した。それでもホームズは、非常に興味をもって私の話に耳を傾けているようであった。
「ねえ、ワトスン。デート氏のソフトウェアのコレクションのなかには、ユーティリティソフトは入っていたかい」
「とくに注意してすべてのパッケージを確認したわけじゃないけど、ほとんどのジャンルのソフトが揃っていたようだから、たぶん何本かはあったと思うよ。それが今回の事件に関係あるのかい?」
 ホームズは、私の質問には答えずに言った。「ちょっとこれを見てもらおう」彼は鞄の中から98ノートを取り出すと、蓋になっているディスプレイを開いた。
「おや、どうしたんだい。君は、OASYS Pocketを愛用していて、ノートパソコンは使わない主義だと言っていたじゃないか」
「ああ。自分で購入するつもりはないさ。ただ、ある筋から調査を頼まれている件で、どうしても98を出先で便う必要があって、レストレイド君に借りたのさ。じつは、君が調査に出掛けている間、僕は他の事件に掛かりっきりだったというわけではない。昨晩の我々のささやかな実験が行き詰まった理由を検証し、頭のなかで何度も繰り返しやりなおしてみた。僕は何回かパイプを詰め替えて吸いながら、昨晩の実験に重要な影響を及ぼしているものと、枝葉に過ぎないものを区別しながら、考えを巡らしてみたんだ」
「それで、なにかわかったんだね」
「考えれば、考えるほど、君の理論が正しいように思えたのだ。昨晩、君は、TIMEコマンドで時刻を0時0分0秒に設定すれば時刻表示が消えるかもしれないと言ったね。どんなに考えても、君の推測が間違っている理由が思い浮かばなかったのだよ」
「だって、昨晩の実験では『0:00』と表示されるだけで、タイムスタンプは実際に消えなかったじゃないか」
「そう。確かにその通りだ。その点を頭のなかで何回ともなく検証してみたのさ。昨日の実験を再現してみよう」
 ホームズはそう言うと、馬車に揺られているのもかまわずに、98ノートの操作にとりかかった。TIMEコマンドを実行してシステムクロックを「00:00:00」に設定してから、MS-DOSのリダイレクト機能を使って、ドライブBに「TEST」というファイルを作成したのである。

 A:¥>time                      
 現在の時刻は 11:44:24.00 です.
 時刻を入力してください。:00:00:00

 A:¥>copy con b:test
 test^Z
    1 個のファイルをコピーしました。.

 A:¥>

 ホームズは、DIRコマンドを実行した。
「ファイルの時刻表示を確認してみよう」

 A:¥>dir b:                      
 ドライブ B: のディスクのボリュームラベルはありません.
 ディレクトリは B:

  TEST      4   92-09-20 0:00
     1 個のファイルがあります.
   1249280 バイトが使用可能です.

 A:¥>

「昨日と同じだ。やはり『0:00』と表示されるじゃないか」「それでも君の考え方は正しかったのだよ。単に、この方法には根本的を欠陥があったため、事実が見えなかったに過ぎないんだ」
「欠陥があった?」
「この方法では、ファイルの内容である『TEST』をタイプしている間に、わずかながら時間が経ってしまう。少なくとも0秒のままということはありえない。このことに気づかなかったのは、まったく愚かだったよ。DIRコマンドで表示される時刻は、分の単位までだが、MS-DOSの内部では2秒単位で時刻か扱われているから、0時0分0秒に操作をはじめても、操作完了時には「00:00:00」のままではないんだよ」
「じゃあ、どうすればいいんだい?」
「TIMEコマンドで時刻を設定すると同時にファイルを作成すればいいんだよ。どんな方法があると思う?」
「いや、僕にはさっばりわからないよ」
「TIMEコマンドを実行する際の画面表示を、ファイルとして直接保存してしまえば、時間的な誤差ははとんどなくなるはずなんだ」
 ホームズは、再び、長く繊細な指を巧みに動かして、キーボードを操作した。

 A:¥>time >b:test2                  

「この意味がわかるかい」
 ホームズは、ディスプレイから顔を上げて私のことを見ると、愉快そうににやりとしながら間いた。
「いや、よくわからない」
「リダイレクト機能のことは知っているね」
「ああ、『COPY CON B:TEST』のように、キーボードから入力した内容を、そのままファイルとして出力する機能のことだろう」
「そう。通常、MS-DOSの操作では、キーボードから入力して、その処理結果を画面に表示させる。これは、キーボードが『標準入力』、画面がか『標準出力』となっているからだ。MS-DOSのリダイレクト機能は、標準入力や標準出力を他のデバイス(周辺装置)に切り換えることか可能なんだ。キーボードからデータを入力するかわりにファイルからデータを読み込んで実行したり、画面に処理結果を表示するかわりにファイルとして保存したりすることができるわけだ。ここまでは理解できるだろう?」
「ああ、わかっているつもりだ」

装置    ファイル名        動作
キーボード  CON    入力(標準)
ディスプレイ CON    出力(標準)
プリンタ   PRN    出力
RS-232C    AUX    入力/出力
ダミー    NUL    入力/出力
クロック   CLOCK   使用不可(MS-DOS内部で使用)

「で、MS‐DOSでは、デバイス(周辺装置)をファイルと同じ感覚で扱えるように、各装置にデバイスファイルと呼ばれるファイル名がつけられている。デバイスファイルは、君が先ほど例にあげたように、『COPY CON ファイル名』と入力して、キーボードから入力した文字をファイルとして保存するときなどに使われる。『COPY CON B:TEST』は、『キーボード入力(デバイスファイルCON)を、ドライブBのディスクにTESTというファイル名でコピーしなさい」という命令だ。つまり、MS-DOSではデバイスファイル(つまり周辺装置)を一般のファイルと同様に扱えると考えればいい。出力先のデバイスファイルをリダイレクト機能で切り換えることによって、たとえば、『TYPE TEST >PRN』と入力すれば、画面に表示される内容をプリンタで印刷することができるんだ。このとき用いられる『>』は出力切り換えの記号であり、『PRN』はデバイスファイルにプリンタを指定するということだ。他に、たとえば『TYPE TEST >TEST3』、つまり、TYPEの結果をTEST3というファイルに出力するとか、『DIR >DIR.TXT』、つまり、ディレクトリの内容をDIR.TXTというファイルに出力するといったことが可能だ。リダイレクトの記号には、他に『>>』『<』があり、FIND、MORE、SORTなどのMS-DOSのフィルタコマンドと組み合わせることによって、さまざまな処理が可能になる」
「ということは、『TIME >B:TEST2』というのは、リダイレクト機能を使って、時刻の入力を促すメッセージを『TEST2』というファイルとして保存するわけだね」
「その通りだ、ワトスン。メッセージが画面に表示されるかわりにファイルとして出力されるからわかりにくいが、実際には、MS-DOSは『時刻を人力してください:』というメッセージを出力して、時刻の入力を待っているんだ。この方法を使えば、システムの時刻を0時0分0秒に設定すると同時にファイルが作成されるというわけだ」
 ホームズは、馬車の振動に気をつけながら、慎重に「00:00:00」と時刻を入力した。

 A:¥>time >b:test2                  

 A:¥>

「もう一度、ディレクトリをとってみよう。今度は、どうだい」

 A:¥>dir b:                      
 ドライブ B: のディスクのボリュームラベルはありません.
 ディレクトリは B:¥

  TEST      4   92-09-20 0:00
  TEST2     87   92-09-20
     3 個のファイルがあります.
   1127424 バイトが使用可能です.

 A:¥>

「ホームズ! TEST2ファイルには時刻が表示されていない」
 私は、画面を見なから叫んだ。
「そう、タイムスタンプが見事に失踪したというわけさ」
「事件は解決したんだね」
「いや、そうじゃないさ。我々がタイムスタンプを消すのに成功したのは、TIMEコマンドの実行結果をリダイレクト機能を使ってファイルとして出力したからに過ぎない。通常のファイルのタイプスタンプをこの方法で消すのは難しい。それに、0時0分0秒を指定すると、なぜ、時刻が表示されないのか、その理由を調べる必要もある。理由さえわかれば、日付の表示を消すことも可能かもしれないからね」
「でも、これだけのことがわかっているのなら、デート氏に十分報告できるんじゃないのかい?」
「途中経過を話して何になるというんだい? それに、デート氏の事件はさして危険の追っている問題ではない。むしろ、じっくり取り組んで、完全に解決してから報告すべき性質の事件だよ。ちなみに、MS-DOS5.0では時刻を『00:00:00』に設定しても、タイムスタンプが消えることはない」
「え、なんだって!」
「どうやら時刻を『00:00:00』に設定してもタイムスタンプが消えないというのが、MS-DOS本来の仕様のようなんだ。DOS5.0になってようやく仕様通りに修正されたというのが、真相のようだね」
 それっきりホームズは黙り込んでしまったので、私は、予想外の展開にとまどうばかりであった。
 ホラボーン・レストランで昼食をとっていると、レストレイド警部がやってきた。彼は、ホームズと5分ほどひそひそと話すと、私に軽く会釈して足早に去っていた。
 ホームズはパイプに火をつけながら言った。「さて、ワトスン。市内の事件に関してはすべて手を打っておいたよ。後は、警視庁から連絡が入るのを待つだけさ。それまでは、君も僕も自由の身だからボンド街の画廊にでも寄って時間をつぶすことにしようじゃないか」
「オックスショットの事件はどうするんだい?」
「戸外でノートパソコンを使ってまで調査することはないだろう。いま、我々に必要なのは気分転換だよ」
 私たちは、辻馬車を呼び止めると、ポンド街に向かった。ホームズは、驚くほど意のままに自分の気分を転換することができる性格を備えていて、画廊では、日本の近世の画家である長谷川等伯の作品に完全に夢中になっていた。
「ワトスン。君も知っているように、僕は若い頃の数年間、極東で放浪の旅を楽しんだことがあるんだ。日本には数か月滞在して、バリツと呼ばれる素晴らしい格闘技があるのを知ってひどく驚いたのだが、それ以上に、この等伯の障壁画には感動を覚えたものだ。僕の記憶に間違いがなければ、『松林図』とかいう作品だったが、じつに魅力的だったよ。まさか、このロンドンで、再び等伯の絵に出合えるとはね」
 ホームズは、その後、オックスショットの事件を忘れてしまったかのようであった。市内の事件は解決したようで、なにか新しい問題に取り組むために毎日外出していたが、彼は何も話そうとしなかった。私は、デート氏の事件について聞きただそうとしたが、ホームズはその度にはぐらかし、なんの説明もしようとしなかった。
 秋の気配が漂いはじめたある日、私は、デート氏からメールを受け取った。
「ホームズ。デート氏からメールだ。明日、中心区に出掛ける用事があるんで、できればここにも寄りたいということなんだけど」
「じゃあ、用事が済みしだいベーカー街にも寄ってもらうように、返信を出しておいてくれたまえ」
 翌日の午後、依頼人が我々の下宿を訪れた。
「さぁ、デートさん。どうぞ。事件の解決にずいぶん手間取りましたが、なんとか説明できるほどには真相に迫ることができました」
「ワトスン博士にメールで教えていただいたんですが、その日のうちに解決してしまっていたんですって?」
 ホームズは、手振りで依頼人に椅子をすすめながら言った。「いや、解決していたということではありません。その時点では、今回の事件の解決に必要な最も顕著で暗示的な事実を掴んではいましたが、それ以上のものではなかったのです」
「そういうものなのですか」
「さて、今回の事件の真相を知るには、MS-DOSのディレクトリエントリについて把握しておく必要があります」
「ホームズさん。すみませんが、あまり難しい話はよしてください」
「わかりました。なるべく簡単に説明することにしましょう。ワトスン君。ディレクトリエントリについては、ヴァイオレット・クラスター嬢の事件の際に、いっしょに研究したはずだから、お互いの知識を確認し合うためにも、君からデートさんに説明してもらえないかい」
「僕のわかっている範囲でよければやってみよう。デートさん、いいですか。MS-DOSでは、ファイルを作成するとディレクトリエントリと呼ばれる領域に、そのファイルを管理するための帳簿のようなものが作成されます。ディレクトリエントリは1個が32バイトてあり、次のようを構成となっています」私は、『空ディスクの冒険』事件の覚書を参考にしながら、テーブルの上の帳面に、ディレクトリエントリの構成を書きあげていった。

ファイル名 … 8バイト  時刻 ……………… 2バイト 
拡張子名 …… 3バイト  日付 ……………… 2バイト
属性 ………… 1バイト  クラスタ番号 …… 2バイト
予約領域 …… 10バイト  ファイルサイズ … 4バイト

「ホームズ。こんな説明でいいのかい?」
「おわかりいただけましたか、デートさん? 例え話で説明すれば、図書館の索引カードのようなものを思い浮かべてもらえばいいでしょう。DIRコマンドでディレクトリを表示したり、ファイル名を入力して実行ファイルを実行する際には、MS-DOSはディレクトリエントリに書き込まれている情報を参照してファイルそのものを呼び出すのです。ちょうど、検索カードを参照して書架に並んでいる本を探すのと同じようなものです。ところで、ワトスン君。いまの君の説明のなかに、今回の事件の核心に触れる部分があったことに気づかなかったかい?」
「えっ? なんだって!」
「そう。MS-DOSのファイルの時刻や日付もディレクトリエントリで管理されていると君は言ったじゃないか」
「そうか。そうだったよ。時刻も日付もディレクトリエントリが管理しているんだ!」
「ということは、タイムスタンプの表示を消すには、ディレクトリエントリで管理されている時刻と日付を書き直せばいいということが推測できないかい?」
 ホームズは、パイプに火をつけながら言った。
「その通りだよ、ホームズー…」私は、自分で書いたメモを見直しながら言った。
「でも、待てよ。時刻も日付もそれぞれ2バイトで管理されているじゃないか。たとえば『1992-10-22』という日付を管理しようとすれば、最低でも8バイトは必要なはずだよ。実際にはどうなっているんだい」
「いいところに気づいたね。ディレクトリエントリの容量はわずか32バイトだ。これだけの容量でファイル名やファイルサイズ、時刻、日付などを管理しなくてはいけないのだから、そのままの形で管理するのはとても無理だ。そこで、容量を節約するために、ディレクトリエントリは、いってみれば暗号のような形式になっているのだよ。それじゃあ、ディレクトリエントリが実際にどうなっているか調べてみようじゃないか。ワトスン君。すまないが1.2Mバイトのフロッピーディスクをとってくれないかい」
 私は、石炭火れの中にしまってある新しいフロッピーディスクを取り出した。ホームズは、私からフロッピーディスクを受け取ると、フォーマットを実行した後で、私の知らないMS-DOSコマンドを打ち込み、なにか込み入った操作をしてから、私たちにディスプレイを見るように手招きした。

00000000 49 4F 20 20 20 20 20 20-53 59 53 27 00 00 00 00 IO SYS'....
00000010 00 00 00 00 00 00 02 00-68 17 02 00 00 00 01 00 ........h.......
00000020 4D 53 44 4F 53 20 20 20-53 59 53 27 00 00 00 00 MSDOS SYS'....
00000030 00 00 00 00 00 00 02 00-68 17 42 00 00 74 00 00 ........h.B..t..
00000040 43 4F 4D 4D 41 4E 44 20-43 4F 4D 20 00 00 00 00 COMMAND COM ....
00000050 00 00 00 00 00 00 00 00-68 17 5F 00 63 61 00 00 ........h._.ca..
00000060 00 E5 E5 E5 E5 E5 E5 E5-E5 E5 E5 E5 E5 E5 E5 E5 .裏裏裏裏裏裏裏裏
00000070 E5 E5 E5 E5 E5 E5 E5 E5-E5 E5 E5 E5 E5 E5 E5 E5 裏裏裏裏裏裏裏.
00000080 00 E5 E5 E5 E5 E5 E5 E5-E5 E5 E5 E5 E5 E5 E5 E5 .裏裏裏裏裏裏裏裏
00000090 E5 E5 E5 E5 E5 E5 E5 E5-E5 E5 E5 E5 E5 E5 E5 E5 裏裏裏裏裏裏裏.
000000A0 00 E5 E5 E5 E5 E5 E5 E5-E5 E5 E5 E5 E5 E5 E5 E5 .裏裏裏裏裏裏裏裏
000000B0 E5 E5 E5 E5 E5 E5 E5 E5-E5 E5 E5 E5 E5 E5 E5 E5 裏裏裏裏裏裏裏.
000000C0 00 E5 E5 E5 E5 E5 E5 E5-E5 E5 E5 E5 E5 E5 E5 E5 .裏裏裏裏裏裏裏裏
000000D0 E5 E5 E5 E5 E5 E5 E5 E5-E5 E5 E5 E5 E5 E5 E5 E5 裏裏裏裏裏裏裏.
000000E0 00 E5 E5 E5 E5 E5 E5 E5-E5 E5 E5 E5 E5 E5 E5 E5 .裏裏裏裏裏裏裏裏
000000F0 E5 E5 E5 E5 E5 E5 E5 E5-E5 E5 E5 E5 E5 E5 E5 E5 裏裏裏裏裏裏裏.

「これは、システムを転送してフォーマットした1.2Mバイトのフロッピーディスクのディレクトリエントリを、SYMDEBコマンド使って画面に表示させた結果です」
「なんだい? そのSYMDEBコマンドというのは」
 私がホームズに質問すると、彼は、肘掛椅子から立ち上がりながら答えた。
「SYMDEBコマンドは、MS-DOSの専門家が使う命令で、MS-DOSの『基本機能セット』のシステムディスクには含まれていない。使用するには、別売の『拡張機能セット』を購入する必要がある。もっとも通常のパソコン利用者には必要のないコマンドなんだがね」
「それで、この数字の羅列は何なんだい?」
「ディレクトリエントリの内容を16進数で表記したものさ。たとえば、5〜6行目がCOMMAND.COMのディレクトリエントリになっている」
「これが、ディレクトリエントリなのか」
「そうさ。たとえば、君のメモにも書いであるように、ファイル名は8バイトを使って記憶されているのだが、5行目の『43 4F 4D 4D 41 4E 44 20』がファイル名にあたる。アスキーコードを16進数で表現したものだから、単なる英数字の羅列にしか見えないかもしれないが、アスキーコード表を使って調べれば『COMMAND』と書かれていることがわかるはずだ。問題の時刻と日付は2行目の『02 00-68 17』の部分だ」
「これじゃ、さっばりわからないね」
「だから暗号化されていると言っただろう。『02 00』が時刻、『68 17』が日付なのだが、これはビットの配列で表現されている。説明を端折って結論だけ言うと、『02 00』を『00 00』に書き直せば時刻が表示されなくなるし、『68 17』を『00 00』に書き直せば時刻、日付とも表示されなくなるんだよ」
「あいかわらず、さっぱりわかりませんが」
 デート氏が、困ったような顔をしながら、私たちの会話に入ってきた。
「いささか専門的な説明になりすぎたかもしれないですね。内部的にどう表現されているかではなく、具体的にどうすればいいかと観点に立って説明すれば、ワトスン博士から説明かあったかもしれませんが、時刻を『00:00:00』に設定するということによって、ディレクトリエントリの時刻の部分は『00 00』となり、時刻は表示されなくなります。日付に関しては『1980-00 00』、すなわち1980年0月0日にすることによって、ディレクトリエントリの日付の部分は『00 00』となり、時刻の設定に関わらず日付と時刻の両方が表示されなくなるのです。もちろん、0月0日に設定することはDATEコマンドは不可能です。そのためには、ユーティリティソフトなどを使用して、ディレクトリエントリの内容を直接書き換える必要があるのですが」
「ホームズ。なぜ、0年ではなく1980年なんだい?」
「いいところに気づいたね、ワトスン。それこそ最後まで僕を悩ませた問題なのだ。でも、考えてみたまえ。たとえば、キリスト教徒の少ない東洋では、いわゆる西暦が使われることはほとんどないんじゃないかい?」
「そうだよ。ミルヴァートンの恐喝事件の際に僕も調べたことがあるのだが、日本や中国じゃあ皇帝の即位年が基準になっているようだ」
「そのとおりさ。そして、MS-DOSにとつては、1980年という年がなにかの基準になっているんじゃないかということは容易に推測できるだろう。そこで僕は、MS-DOSの歴史を調べるために、ここ数日、大英博物館の図書室に通っていたんだ。この種の問題を解決するには、常々言っているように、過去に遡っての調査がなによりも重要だからね。それで、なにがわかったと思う?」
「見当もつかないよ」
「MS-DOSの歴史は、僕にとって、極めて興味深いものであったよ。いま抱えている事件が片付いたら、ぜひ、ゆっくり研究し直してみたいものだね。それはともかく、今回の事件に関して重要なのは、MS-DOSは1981年に発表されたということだ。これだけ話せば分からないかい?」
 デート氏は、しばらく狐につままれたような顔をしていた。私も、彼と同じような顔をしていたに違いないが、ホームズが言わんとすることに、はっと気づいた。
「そうか。そうなんだ。1981年にMS-DOSが登場したということだから、1981年はMS-DOS元年であり、1980年こそはMS-DOSにとって0年というわけだ」
「その通りだよ、ワトスン君。デートさんも納得していただけましたか? ソフトをたくさんお持ちのようですが、『Newton-98』のようなディスク解析の可能なユーティリティソフトをお持ちではありませんか? そういったユーティリティを使って実際に調べてみるといいかもしれませんね。それでは、ごきげんよう。いまから駅に急けば、汽車に間に合いますよ。ワトスン君。我々も散歩に出掛けることにしようじゃないか」
 ホームズは、帽子掛けから帽子を取って私に手渡すと、テーブルの上に置いてあった自分の帽子を掴んだ。(おわり)
[HOME]



E-mail: support@matsuda-pa.com