countersince January 6, 2001X68000 LIBRARYEnglish
更新日: 2011 年 11 月 15 日
X68000 LIBRARY > ソフトウェアライブラリ > システム環境 > スクリーンセイバー > GraySaver.X > GraySaver.X の説明

GraySaver.X の説明

説明

GraySaver.X の添付ドキュメントです。末尾に記載されている連絡先は無効です。

GraySaver.doc
────────────────────────────────────
                    Console Screen Saver for X680x0
                         GraySaver version 1.23
                               1999/05/10
                                M.Kamada
────────────────────────────────────


━< 概要 >━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

 GraySaver は、標準のコンソールモードで使用できるスクリーンセイバー(一

定時間キーボードなどの操作がないとき画面の表示を暗くしてディスプレイの焼

き付きを予防するためのソフトウェア)です。



━< 特徴 >━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

●ファンクションキーの表示を常時灰色にする

 普通は白のリバースで表示されているファンクションキー表示を常時灰色にし

て、焼き付きを軽減します。なお、灰色は白と黒を混ぜて作っているので、テキ

ストパレットを消費しません。


●実行中のプログラムが停止しない

 スクリーンセイバーの本体は垂直帰線割り込みルーチン内で動作しているので、

コンパイル中にスクリーンセイバーが動き出してもコンパイラは止まりません。


●スクリーンセイバーのサブルーチンを差し換えられる

 スクリーンセイバーの動作を、実行ファイル形式で作成した外部サブルーチン

で差し換えられるようになっています。そのサンプルとして、画面に星が流れる

プログラムを付属しました。


●かな漢字変換ウィンドウを内蔵している

 かな漢字変換モードの表示も常時灰色になります(変換中の文字列や候補は暗

くなりません)。

 かな漢字変換ウィンドウを開くとき、CDC.X(TNB製作所 さんのオーディオ CD

コントローラ)の LED 表示を消すことができます。



━< 使い方 >━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

 コマンドラインで実行して常駐させて下さい。

 GraySaver が常駐すると、ファンクションキーの表示が灰色になります。

 キーボードとマウスが一定時間操作されないと、スクリーンセイバーが動き出

します。デフォルトでは画面が暗くなります。

 スクリーンセイバーが動いている状態でキーを押すかマウスを動かすと、スク

リーンセイバーが終了して画面が元に戻ります。

 GraySaver を常駐させるときと既に常駐してる状態で設定を変更するとき、コ

マンドラインで以下のパラメータを指定できます。


● -a

 かな漢字変換ウィンドウを開くとき、CDC.X(TNB製作所 さんのオーディオ CD

コントローラ)の LED 表示を消します。


● -c 数値

 外部サブルーチンを指定しなければキーボードとマウスが一定時間操作されな

かったときに画面を暗くするだけですが、暗くしたときのコントラストを「-c

数値」で指定します。数値は 0〜15 の範囲で、値が小さいほど暗くなります。

 -c を省略した場合は、コントラストが 4 になります。


● -t 数値

 キーボードやマウスが操作されない状態が続いたときスクリーンセイバーが動

き出すまでの時間を分単位で指定します。数値の直後に「s」を付加することで、

秒単位での指定も可能です。

 「-t 数値」を省略した場合は、約 3 分に設定されます。

 「-t 0」を指定した場合は、スクリーンセイバーが動作しません。


●ファイル名

 スクリーンセイバーの動作を記述した実行ファイル形式の外部サブルーチンの

ファイル名を指定します。ファイル名のパスを省略した場合は、ファイルがカレ

ントパスになければ GraySaver 自身があるディレクトリも検索されます。

 外部サブルーチンのファイル名を指定しなければ、画面が暗くなるだけです。


● -r

 GraySaver の常駐を解除します。



━< 使用例 >━━━━━━━━━━━━━━━━━━━━━━━━━━━━

> GraySaver

         ファンクションキーの表示を灰色にします。約 3 分間キー

        ボードとマウスが操作されないと、画面が暗くなります。


> GraySaver -c0 -t5

         ファンクションキーの表示を灰色にします。約 5 分間キー

        ボードとマウスが操作されないと、画面が完全に真っ暗になり

        ます。


> GraySaver star

         ファンクションキーの表示を灰色にします。約 5 分間キー

        ボードとマウスが操作されないと、画面に星が流れます。



━< ご注意 >━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

 垂直帰線割り込みを使用しているため、相性の悪いプログラムがあります。ゲ

ームなどが正しく動作しなくなる場合は GraySaver を解除して下さい。また、

テキストプレーン 2 または 3 を破壊するスクリーンセイバーを組み込む場合は、

それらのプレーンを使用するアプリケーション(ソースコードデバッガやディス

ク最適化ツールなど)を実行する前に必ず GraySaver を解除して下さい。


 GraySaver は、画面表示を高速化する(具体的には _B_PUTMES のベクタを

変更する)ツール(HIOCS.X など)よりも後から組み込んで下さい。垂直帰線

割り込みについてはファンクションキーを表示し直す度にベクタを再設定して

いるので、例えば GraySaver を常駐させたまま SX-WINDOW version 3.1 を起

動したり終了したりしても問題ありません。


 ファンクションキーの表示が灰色ではなくて網掛けになってしまったときは、

CTRL+F7 を何度か押してみてファンクションキーを再表示させてみて下さい。

それでも灰色に戻らない場合は別のプログラムに垂直帰線割り込みを取られて

しまっているので、速やかに GraySaver を解除して下さい。


 常駐したまま外部サブルーチンのファイルを指定すると、空きメモリが分断

されてメモリ効率が悪くなることがあります。



━< 外部サブルーチンの書き方 >━━━━━━━━━━━━━━━━━━━

 ここでは、外部サブルーチンを作成する場合に必要な情報をまとめます。必

要がなければ読み飛ばして下さい。


 外部サブルーチンは、実行形式のファイルで供給されます。そのプログラム

の先頭 32 バイトには、次のようなヘッダを置かなければなりません。


        .dc.l   'Gray'          (1)
        .dc.l   saver_init      (2)
        .dc.l   saver_tini      (3)
        .dc.l   saver_star      (4)
        .dc.l   saver_end       (5)
        .dc.l   saver_on        (6)
        .dc.l   saver_off       (7)
        .dc.l   0


 続いて、個々の項目について説明します。


(1) 'Gray'

         このプログラムが GraySaver の外部サブルーチンであるこ

        とを示します。


(2) saver_init

         スクリーンセイバーの初期化を行うサブルーチンのアドレス

        です。このサブルーチンは、スクリーンセイバーが組み込まれ

        たときに一度だけユーザモードで呼び出されます。このサブル

        ーチンで、必要なメモリの確保などを行ってください。


(3) saver_tini

         スクリーンセイバーの後始末を行うサブルーチンのアドレス

        です。このサブルーチンは、スクリーンセイバーが解除される

        ときに一度だけユーザモードで呼び出されます。このサブルー

        チンでは、saver_init で確保したメモリの開放などを行って

        下さい。


(4) saver_start

         キーボードやマウスが一定の時間操作がなくてスクリーンセ

        イバーが動き出すときに呼び出されるサブルーチンのアドレス

        です。このサブルーチンでは、スクリーンセイバーが破壊する

        画面やパレットなどを保存します。


(5) saver_end

         スクリーンセイバーが動作しているときにキーボードやマウ

        スが操作されてスクリーンセイバーを終了(≠常駐解除)する

        ときに呼び出されるサブルーチンのアドレスです。このサブル

        ーチンでは、saver_start で保存した画面やパレットを復元し

        ます。


(6) saver_on

         スクリーンセイバーが動作しているとき、垂直帰線割り込み

        の度に呼び出されるサブルーチンのアドレスです。ここでアニ

        メーションなどの処理を行って下さい。


(7) saver_off

         スクリーンセイバーが動作していないとき、垂直帰線割り込

        みの度に呼び出されるサブルーチンのアドレスです。キーボー

        ドやマウスが操作された後、画面の復元を遅延させる場合に使

        います。saver_end で画面の復元が完了しているときは、ここ

        には rts のアドレスを入れておきます。


 ヘッダの最後の 4 バイトは現在使用されていませんが、必ず 0 を入

れておいて下さい。


 saver_end では saver_start したときの環境を完全に復元しなければなりま

せんが、テキストプレーン 2 と 3 はその限りではありません。スクリーンセイ

バーで簡単なアニメーションを表示したい場合は、

(1) ビデオコントローラを操作してグラフィックとスプライトを見えなくする。

(2) テキストパレットを操作してテキストプレーン 0 と 1 を見えなくする。

(3) テキストプレーン 2 と 3 を使ってアニメーション表示を行う。

という手順で行えば、画面を復元するためのバッファを確保せずに済みます。


 saver_start、saver_end、saver_on、saver_off の各ルーチンは、垂直帰線割

り込みルーチンから呼び出されます。当然、スーパーバイザモードで呼び出され

ます。ただし、割り込みレベルは不定です。垂直帰線の割り込み(タイマー A)

を GraySaver がマスクしているのでこれらのルーチンが割り込みによって二重

に呼び出されることはありませんが、あまり重い処理を記述しない方がよいでし

ょう。割り込みルーチンの中なので、DOS コール、IOCS コール、FE ファンクシ

ョンコールなどは原則として使用できません。


 外部サブルーチンのサンプルとして、画面に星を流すプログラムをソース付き

で添付してあります。外部サブルーチンを作成する場合の参考にして下さい。

・star.x

 星が手前に向かって進んできます。

・rstar.x

 星が奥へ向かって遠ざかっていきます。

・rstar1.x

 rstar.x と同じですが、星が流れている間もテキストが見えています。

 star.x、rstar.x、rstar1.x 共に、ソースの最初の方にある

      ┌────────────────────────────
      │;定数
      │STARS           equ     100     ;星の数

の 100 のところを書き換えると星の数を変更することができます。マシンのパ

ワーに余裕がある場合は 400 程度にするとよいでしょう。



━< 配布規定 >━━━━━━━━━━━━━━━━━━━━━━━━━━━━

 GraySaver はフリーウェアです。



━< 謝辞 >━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

 GraySaver の開発には、以下のツールを使用しました。作者の方々に感謝致し

ます。

        HAS060.X v3.09+84 Y.Nakamura/M.Kamada
        LK.X v3.00 SHARP/Hudson
        しゃれまっくす rel5c6 lika/homy/salt/peace/shuna/rima/sharl
        CDC.X v1.10H TNB製作所



━< 連絡先 >━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

 GraySaver に関する不具合の報告などは、下記までお願いします。

                                             満開ネット: MKSX0109 かまだ
                                             E-mail: kamada@mankai.co.jp
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

(EOF)