2001/10/28 更新
ResDate Ver.1.06 Copyright (C) 2001 K.Takata 1.概要 PC-98 Note で Win95 を使うと、タイムスタンプの日付が狂うという現象 が発生します。このソフトはタイムスタンプの日付のずれを自動的に修正す るソフトです。 同種のソフトで ResTime(*1) というソフトが良く知られていますが、 ResDate はそれとは違い、日付のずれしかチェックしていません。そのため タイムスタンプの修正回数が少なくなり、それに伴い、タイムスタンプの修 正で起こるシステムクロックのずれも少なくなります。またリソースやメモ リの使用量も ResDate の方が少し少ないはずです。 秋月で発売されている電波時計キットを所有している場合は、このソフト よりも拙作の Dempa(*2) をお薦めします。 (*1) http://www.vector.co.jp/soft/win95/util/se032433.html (*2) http://member.nifty.ne.jp/k-takata/mysoft/dempa.html 2.動作環境 ・PC-98 Note, Win95 3.インストール方法 まず、下記のサイトからタイマードライバのアップデートモジュールをダ ウンロードして、VTD.VxD を最新のものにしておいてください。なお、間違 ったバージョンをインストールすると Win95 が起動しなくなることがあり ますので十分に注意してください。(実際 Ls150 に VTDUPD2 の方をインス トールしてみたところ起動しなくなりました。) http://www.microsoft.com/japan/win95/modules/pc98.htm 次に、実行ファイルを適当なディレクトリに入れて、ResDate.exe をスタ ートアップに登録してください。必要に応じて ResDCtrl.exe をスタートメ ニューやデスクトップに登録してください。ResDate.exe, ResDCtrl.exe, ResDVxD.VxD, ResDate.ini は同じディレクトリに入れておいてください。 バージョンアップの際には ResDCtrl を使って ResDate を終了させてお いてください。 4.使用方法 ResDate.exe をスタートアップに登録しておけば特にするべきことはあり ません。ResDate の起動時、サスペンド状態から復帰したとき(レジューム 時)、および日付が替わった直後(00:00:01 頃)に、タイムスタンプの日 付が狂っていないかをチェックして、狂っている場合は自動的に修正します。 タイムスタンプの日付をチェックする際には、ピッと音が鳴ります。タイム スタンプを修正した場合には、ピピッと2連続で音が鳴ります。 ResDate を実行すると、ResDate.exe と同じディレクトリに ResDate.log というファイルが作られ、ログが書き込まれます。ログの内容を見るには ResDCtrl を起動してください。タイムスタンプのチェックが行われるとロ グには "ResetTimeStamp (ret:n)" と書き込まれます。n = 0 は、タイムス タンプの日付が狂っていなかったことを示します。n = 1,2,3,4,5 は、日付 が狂っていたので修正が行われたことを示します。このときの n の値は修 正を試みた回数です。n = -1 は、日付が狂っていたので修正を試みたが、 修正に失敗したことを示します。 ResDCtrl は、ログを表示するだけでなく、ResDate を一旦終了させたり、 再開させることもできます。他に、Windows の起動後の経過時間も表示して います。 ResDate.ini の内容は標準では以下のようになっています。エディタなど を使って手動で設定を変更してください。 [ResDate] UseVxD=0 UseVxD 現在時刻を取得するために ResDVxD.VxD を使用す る場合には 1 を、通常の Win32API を使用する場合 には 0 を指定します。 POWERCUT などの一部の特殊なソフトを使っている と、VxD や DOS アプリが取得した時刻は正常である にも関わらず、Win32 アプリが取得した時刻は実際の 時間より数秒〜数分遅れているという現象が発生する ことがあります。この現象が発生している最中に、タ イムスタンプの修正が行われると、パソコンの時計は 大幅に狂ってしまいます。ResDVxD.VxD を使用するよ うにすればこれを回避することができます。 5.アンインストール方法 説明するまでもありません。停止させてから適当に削除しちゃってくださ い。 6.コンパイル方法 このプログラムのコンパイルには Visual C++ 6.0, Windows98 DDK(*3) を利用しています。 EXE ファイルをコンパイルするには、VC++ に path が通っている状態で、 > nmake -f resdate.mak > nmake -f resdctrl.mak と入力するとコンパイルできます。 VxD をコンパイルするには、スタートメニューから Free Build Environment を立ち上げ、コマンドラインから、 > nmake -f resdvxd.mak と入力するとコンパイルできます。 (*3) Windows98 DDK は、 http://www.microsoft.com/ddk/ からダウンロード可能。 7.更新履歴 2001/08/31 Ver.1.00 ・最初の公開バージョン。 2001/09/23 Ver.1.01 ・タイムスタンプ修正時の時刻のずれを少なくした。(hrtimer.sys, vhrtd.vxd を使っていても ms 単位での時刻の設定はできないようで ある。) ・ResDCtrl を少し修正。 2001/10/09 Ver.1.02 ・POWERCUT などの一部のソフトを使っていると、パソコンの時計が大 幅に狂うことがあったのを回避できるようにした。 2001/10/20 Ver.1.03 ・一部のコードを ResDate.exe から ResDVxD.VxD に移した。 2001/10/23 Ver.1.04 ・Ver.1.03 で混入した致命的バグを修正。(VxD で時刻取得時に無限 ループになっていた。) ・VxD で時刻を取得する場合に問題が起こることがあることが発覚。 Win95 でタイムスタンプが1日ずれる現象が、実は VxD でも発生し ていたようである。とりあえず、時刻の取得に VxD を使用しないよ うに、初期値を変更しておいた。なお根本的な対策は次の機会に回す。 2001/10/24 Ver.1.05 ・VxD で時刻を取得する場合に日付が1日ずれることがある現象に対す る対策を行った。(VxD と API の両方で時刻を取得して、2つの差 が 23:59:00 より大きいときは、VxD で取得した時刻を 24:00:00 ず らして利用することにしておいた。) 2001/10/28 Ver.1.06 ・VxD で時刻を取得する設定にしてあっても、レジューム直後の時刻取 得には VxD を利用しないようにした。(レジューム直後は VxD で取 得した時刻は、ずれが大きいようである。) 8.注意事項、その他 ・このプログラムはフリーソフトウェアです。 ・このプログラムの著作権は作者である私 K.Takata(高田 謙)に帰属しま す。 ・もしこのプログラムを使用することで何らかの問題が発生しても作者はい っさいの責任を負いません。各自の責任で使用してください。 ・アーカイブを変更しない限り配布/転載は自由です。 ・リバースエンジニアリングの禁止はいたしません。 ・このプログラムを元にして新たなプログラムを作って公開する際は、その ことを明記しなければなりません。 a. このプログラムのソースを元に新たなプログラムを作って公開する際 は、ソースを公開しなければなりません。 b. このプログラムをリバースエンジニアリングして新たなプログラムを 作って公開する際は、そのプログラムのリバースエンジニアリングを 禁止してはなりません。 作者 : K.Takata(高田 謙) E-mail : kentkt@anet.ne.jp, HZL03275@nifty.ne.jp URL : http://webs.to/ken/