Dempa

2005/04/10 更新

ダウンロード

Dempa について



          Dempa  Ver.1.13   Copyright (C) 2001-2005  K.Takata


1.概要
     秋月電子から発売されている電波時計キット(*1)を使ってパソコン本体の
    時計を自動的に校正します。
     設定プログラムと常駐プログラムを分離することで、常駐部分のメモリ使
    用量が非常に小さくなっています。(150〜350KB 程度)
     おまけとして拙作 ResDate(*2) の機能も併せ持っています。

    (*1) http://www.tristate.ne.jp/rf-clock.htm
         http://www.tristate.ne.jp/rf-clock-v2.htm
    (*2) http://homepage3.nifty.com/k-takata/mysoft/resdate.html


2.動作環境
    ・Win9x, Win2k, etc.


3.インストール方法
     実行ファイルを適当なディレクトリに入れて、Dempa.exe をスタートアッ
    プに登録してください。必要に応じて DempaCtl.exe をスタートメニューや
    デスクトップに登録してください。なお Dempa.exe, DempaCtl.exe,
    Dempa.ini, ResDVxD.VxD は同じディレクトリに入れておいてください。
     電波時計キットを COM1 以外に接続している場合は、Dempa.ini をエディ
    タなどで開いて、ComPort=COM1 と書かれている部分を自分の環境に合わせ
    て書き換えてください。(Ver.1.01 からは DempaCtl でも COM ポートを変
    更できるようになりました。)
     なお PC-98 の Win9x 上で動かす場合は、hrtimer.sys をインストールし
    ておいた方が良いかもしれません。
     ResDate 互換機能を使う場合は、ResDate のドキュメントも併せてお読み
    ください。


4.使用方法
     Dempa.exe をスタートアップに登録しておけば特にするべきことはありま
    せん。Dempa の起動時、サスペンド状態から復帰したとき(レジューム時)、
    および日付が替わった直後(00:00:02 頃)に、電波時計キットと通信を行
    い、自動的にパソコンの時計を校正します。時間合わせを行ったときにはピ
    ッと音が鳴ります。(Ver.1.11 からは、これに加えて一定間隔ごとに校正
    を行えるようになりました。)
     Dempa を実行すると、Dempa.exe と同じディレクトリに Dempa.log とい
    うファイルが作られ、ログが書き込まれます。ログの内容を見るには
    DempaCtl を起動してください。

     DempaCtl は、ログを表示するだけでなく、Dempa を一旦終了・再開させ
    たり、設定を変更したり、手動で時間を校正することができます。他に、
    Windows の起動後の経過時間も表示しています。
    ・「校正(A)」を押すと、直ちにパソコンの時計を校正をします。
    ・「設定(E)...」を押すと、設定画面が表示されます。設定内容に関しては
      以下の Dempa.ini の解説を参照してください。


     Dempa.ini の内容は標準では以下のようになっています。エディタなどを
    使って(手動で)設定を変更する際の参考にしてください。

        [Dempa]
        Interval=0
        Adjustment=0
        AdjustAlways=0
        UseResDate=0
        UseVxD=0
        ClearLogFile=1
        UseSound=1
        ComPort=COM1

     Interval           何分ごとに校正を行うかを指定します。
                         0 を指定した場合には、Dempa の起動時、サスペン
                        ド状態からの復帰時、日付が変わった直後の3つの場
                        合のみ校正を行います。0 以外を指定した場合には、
                        これに加えて、指定した間隔ごとに校正を行います。
                        校正は、Dempa が起動してから指定した間隔ごと、あ
                        るいは DempaCtl で手動で校正を行ってから指定した
                        間隔ごとに行われます。
                         DempaCtl の設定画面上では「校正間隔」と表示さ
                        れています。

     Adjustment         パソコンの時計を電波時計キットと常に一定時間ず
                        らしたい場合にはこの値を変更してください。ms
                        (1/1000 秒)単位で値を指定します。例えば、パソ
                        コンの時計を電波時計キットの時間よりも常に 5.4秒
                        遅らせておきたい場合にはこの値を -5400 に変更し
                        てください。(ms 単位で値を指定するようになって
                        いますが、実際の精度はせいぜい 0.01〜0.1s 程度で
                        す。)
                         DempaCtl の設定画面上では「調整量(A)」と表示さ
                        れています。

     AdjustAlways       標準の設定では、電波時計キットとの通信を行った
                        際、電波時計キット自身が1時間以内に電波による校
                        正が行われていない場合は、パソコンの時計の校正は
                        行わないようになっています。電波時計キットは電波
                        による校正を行っていない場合は、かなり精度が悪い
                        のでこのようにしてあります。電波時計キットが1時
                        間以内に電波による校正を受けていない場合でも、パ
                        ソコンの時計を電波時計キットに合わせるようにする
                        にはこの値を 1 に変更してください。
                         DempaCtl の設定画面上では「電波非受信時でも校
                        正(T)」と表示されています。

     UseResDate         ResDate 相当の機能を有効にする際には 1 を、無
                        効にする際には 0 を指定します。PC-98 で Win95 を
                        使っている場合には有効にしておいた方がよいでしょ
                        う。それ以外の場合は無効にしておいてください。
                        (有効にしておいても特に悪影響はないはずですが。)
                         この機能を有効にすると、電波時計キットによる校
                        正を試みたが何らかの理由により校正ができなかった
                        場合には、タイムスタンプのチェックを行い、タイム
                        スタンプが狂っている時はタイムスタンプの修正を行
                        います。この機能の詳細に関しては ResDate のドキ
                        ュメントを参照してください。
                         DempaCtl の設定画面上では「ResDate 互換機能」
                        と表示されています。

     UseVxD             ResDate 互換機能を使用する際、現在時刻を取得す
                        るために ResDVxD.VxD を使用する場合には 1 を、通
                        常の Win32API を使用する場合には 0 を指定します。
                        ResDate 互換機能が有効になっている場合のみ意味を
                        持ちます。
                         POWERCUT などの一部の特殊なソフトを使っている
                        と、VxD や DOS アプリが取得した時刻は正常である
                        にも関わらず、Win32 アプリが取得した時刻は実際の
                        時間より数秒〜数分遅れているという現象が発生する
                        ことがあります。この現象が発生している最中に、
                        ResDate 互換機能によるタイムスタンプの修正が行わ
                        れると、パソコンの時計は大幅に狂ってしまいます。
                        ResDVxD.VxD を使用するようにすればこれを回避する
                        ことができます。
                         WinNT 系では、VxD は使えませんので、
                        ResDVxD.VxD を利用しないように設定してください。
                        (そもそも ResDate 互換機能を有効にする必要はな
                        いのだが。)
                         DempaCtl の設定画面上では「VxD を使用する」と
                        表示されています。

     ClearLogFile       Dempa の起動時にログファイルをクリアするかどう
                        かを指定します。1 のときは起動時にログファイルを
                        クリアします。0 のときはログファイルはクリアされ
                        ずに追記されます。なお、現バージョンの DempaCtl
                        では、ログファイルのサイズが 32KB を超える場合に
                        は、末尾の 32KB しか表示しませんので、注意してく
                        ださい。
                         DempaCtl の設定画面上では「起動時にログをクリ
                        ア」と表示されています。

     UseSound           校正時に音を鳴らすかどうかを指定します。1 だと
                        鳴らし、0 だと鳴らしません。
                         DempaCtl の設定画面上では「校正時に音を鳴らす」
                        と表示されています。

     ComPort            電波時計キットを接続している COM ポートを指定
                        します。
                         DempaCtl の設定画面上では「COM ポート」と表示
                        されています。


5.アンインストール方法
     Dempa を停止させてから、適当に削除してください。


6.コンパイル方法
     このプログラムのコンパイルには Visual C++ 6.0, Windows98 DDK(*3)
    を利用しています。

     EXE ファイルをコンパイルするには、VC++ に path が通っている状態で、
        > nmake -f dempa.mak
    と入力するとコンパイルできます。

     VxD をコンパイルするには、スタートメニューから DDK の Free Build
    Environment を立ち上げ、コマンドラインから、
        > nmake -f resdvxd.mak
    と入力するとコンパイルできます。

    (*3) http://download.microsoft.com/download/win98SE/Install/ →
           Gold/W98/EN-US/98DDK.EXE


7.更新履歴
    2001/09/27  Ver.1.00
        ・最初の公開バージョン。

    2001/10/02  Ver.1.01
        ・GUI で設定をできるように変更。
        ・手動でも校正できるように変更。
        ・ログファイルの形式を少し変更。
        ・その他、細かい修正。

    2001/10/07  Ver.1.02
        ・DempaCtl.exe のサイズを縮小。(8192bytes → 6144bytes)

    2001/10/07  Ver.1.03
        ・細かい修正。
        ・Win2k での動作を確認。

    2001/10/09  Ver.1.04
        ・POWERCUT などの一部のソフトを使っていると、ResDate 互換機能を
          有効にしている際にパソコンの時計が大幅に狂うことがあったのを回
          避できるようにした。

    2001/10/20  Ver.1.05
        ・一部のコードを Dempa.exe から ResDVxD.VxD に移した。
        ・DempaCtl のタブオーダーを修正。
        ・その他、細かい修正。

    2001/10/23  Ver.1.06
        ・Ver.1.05 で混入した致命的バグを修正。(VxD で時刻取得時に無限
          ループになっていた。)
        ・VxD で時刻を取得する場合に問題が起こることがあることが発覚。
          Win95 でタイムスタンプが1日ずれる現象が、実は VxD でも発生し
          ていたようである。とりあえず、時刻の取得に VxD を使用しないよ
          うに、初期値を変更しておいた。なお根本的な対策は次の機会に回す。

    2001/10/24  Ver.1.07
        ・VxD で時刻を取得する場合に日付が1日ずれることがある現象に対す
          る対策を行った。(VxD と API の両方で時刻を取得して、2つの差
          が 23:59:00 より大きいときは、VxD で取得した時刻を 24:00:00 ず
          らして利用することにしておいた。)

    2001/10/28  Ver.1.08
        ・VxD で時刻を取得する設定にしてあっても、レジューム直後の時刻取
          得には VxD を利用しないようにした。(レジューム直後は VxD で取
          得した時刻は、ずれが大きいようである。)

    2003/08/18  Ver.1.09
        ・二重起動することがあったのを修正。
        ・その他細かい修正。

    2003/08/20  Ver.1.10
        ・Ver.1.09 で混入したバグを修正。(Dempa 起動中に再度 Dempa を実
          行すると時刻修正を行うべきところ、それが行われなくなっていた。)

    2005/04/03  Ver.1.11
        ・Dempa.exe のメモリ使用量を 200KB 程度まで削減。(Win98 以降)
        ・一定時間ごとに校正できるように変更。
        ・起動時にログを削除しない設定を追加。
        ・校正時に音を鳴らさないようにする設定を追加。
        ・設定のデフォルト値を一部変更。

    2005/04/05  Ver.1.12
        ・DempaCtl.exe のメモリ使用量を削減。(Win98 以降)

    2005/04/09  Ver.1.13
        ・Dempa.log のサイズが 32KB を超えたときは、末尾の 32KB を表示す
          るように変更。
        ・DempaCtl の二重起動時の動作を修正。


8.注意事項、その他
    ・このプログラムはフリーソフトウェアです。
    ・このプログラムの著作権は作者である私 K.Takata(高田 謙)に帰属しま
      す。
    ・もしこのプログラムを使用することで何らかの問題が発生しても作者はい
      っさいの責任を負いません。各自の責任で使用してください。
    ・アーカイブを変更しない限り配布/転載は自由です。
    ・リバースエンジニアリングの禁止はいたしません。
    ・このプログラムを元にして新たなプログラムを作って公開する際は、その
      ことを明記しなければなりません。
      a.  このプログラムのソースを元に新たなプログラムを作って公開する際
          は、ソースを公開しなければなりません。
      b.  このプログラムをリバースエンジニアリングして新たなプログラムを
          作って公開する際は、そのプログラムのリバースエンジニアリングを
          禁止してはなりません。

        作者   : K.Takata(高田 謙)
        URL    : http://webs.to/ken/
                 http://homepage3.nifty.com/k-takata/

戻る

Copyright (C) 2001-2005 K.Takata