home *** CD-ROM | disk | FTP | other *** search
/ DOS/V Power Report 1997 December / VPR9712A.ISO / OLS / WIN16 / setda121 / setda121.lzh / README.TXT < prev    next >
Text File  |  1995-08-31  |  39KB  |  925 lines

  1. Set Display Angle(くるくるドライバー)リリースノート         Version 1.21
  2.  
  3.                                                                    8/31/95
  4.  
  5.  
  6. (はじめに)
  7.  
  8.   本ドライバーは Windows 3.1 で既存のディスプレイドライバーを利用して画面
  9.   表示の任意方向回転および鏡映反転を提供する汎用ディスパッチドライバーです。
  10.   お手持ちの 256 色以上の Windows 3.1 用 SVGA ディスプレイドライバーとの組
  11.   み合わせでご使用になれます。
  12.  
  13.   Windows for Pen で使用される ROTATE.DRV で 90度、270度回転機能が実現され
  14.   ていますが、ROTATE.DRV は VGA 640x480 16色モード専用のディスプレイドライ
  15.   バーです。本ドライバーはより高解像度/多色表示を汎用的に利用することを前
  16.   提に設計されています。
  17.  
  18.   さて、これを何に使うかはあなたの自由な発想におまかせします。
  19.  
  20.  
  21.  
  22. (特徴)
  23.  
  24.   基本的にハードウェアに依存しませんからほとんどの SVGA カードで使用できる
  25.   はずです。
  26.  
  27.   セットアップユーティリティー SETANGLE.EXE を使用することにより、実行中に
  28.   画面表示の状態を確認・変更することが可能です。特に 180度回転および鏡映反
  29.   転機能は Windows を再起動することなく動的に可能です。また、ホットキーを
  30.   サポートしていますのでアプリケーション実行中に画面を回転させることも出来
  31.   ます。
  32.  
  33.   一定間隔で画面を回転させるスクリーンセーバー (CHGANGLE.SCR) がおまけとし
  34.   て付属します。
  35.  
  36.   他のアプリケーションから画面回転を制御するためのAPIをサポートしていま
  37.   す。
  38.  
  39.  
  40.  
  41. (システム用件)
  42.  
  43.   ハードウェア
  44.     o 386 以上の CPU を搭載する PC
  45.       (IBM-PC AT 互換機を推奨しますが NEC PC-98シリーズ, EPSON 98互換機,
  46.       富士通 FM TOWNS など、非 AT 互換機での動作実績も報告されています)
  47.  
  48.     o 1 プレーン 8,16,24,32 ビット方式ビデオアダプター
  49.       (一般的な SVGA 256/32K/64K/16M色ビデオアダプターがこれに相当します)
  50.  
  51.   ソフトウェア
  52.     o 上記ハードウェアをサポートする Windows 3.1 用ディスプレイドライバー
  53.     o Microsoft Windows 3.1 (英語版または日本語版、IBM Windows を含む)
  54.  
  55.  
  56.  
  57. (インストール方法)
  58.  
  59.   256 色表示以上の SVGA ディスプレイドライバーがインストールしてあることを
  60.   確認して下さい。VGA 16色ドライバーは使用できません。
  61.   なお、サポートされていないドライバーの場合は手順 2) で [Enable] チェック
  62.   ボックスが選択できません。
  63.  
  64.   以下の手順で本ドライバーをインストールしてください。
  65.  
  66.   1) ANYANGLE.DRV を WINDOWS\SYSTEM ディレクトリにコピーして下さい。
  67.      さらに、SETANGLE.EXE をWINDOWS ディレクトリまたは PATH 環境変数に指定
  68.      されている任意のディレクトリにコピーして下さい。
  69.  
  70.   2) Windows を起動して SETANGLE.EXE を実行して下さい。
  71.      ここで [Enable] チェックボックスをオンにして希望の表示方法を選択した
  72.      後 [Restart] ボタンをクリックして Windows を再起動して下さい。
  73.  
  74.  
  75.   (補足)
  76.  
  77.     SETANGLE.EXE はインストール以外に、ホットキーによる画面表示変更などの
  78.     便利な機能を備えています。いつでも使用できるように「スタートアップ」グ
  79.     ループに「アイコン状態で実行」を指定して自動起動するようにしておくと便
  80.     利です。
  81.  
  82.     ディスプレイドライバーを入れ替えた場合、本ドライバー機能は無効状態にな
  83.     りますので SETANGLE.EXE を起動して [Enable] チェックボックスを再びオン
  84.     にしてから Windows を再起動して下さい。
  85.  
  86.  
  87.  
  88. (アンインストール方法)
  89.  
  90.   SETANGLE.EXE を起動して [Enable] チェックボックスをオフにして [Restart]
  91.   ボタンを押してください。 Windows を再起動してインストール直前のドライバ
  92.   ーに戻します。
  93.   あるいは新たにディスプレイドライバーをインストールした場合も本ドライバー
  94.   は自動的に無効になります。
  95.  
  96.  
  97.  
  98. (SETANGLE.EXE の使い方)
  99.  
  100.   SETANGLE.EXE をプログラムマネージャに登録して、アイコンをダブルクリック
  101.   してください。メインパネルが表示されます。
  102.  
  103.   1)メインパネル
  104.  
  105.       [Enable] チェックボックス
  106.         ANYANGLE.DRV ドライバーを有効にするか無効にするかを指定します。無
  107.         効状態では方向設定ボタンや [Option] ボタンは使用できません。無効に
  108.         して Windows を再起動するとインストール時に使用していたビデオドラ
  109.         イバーに戻します。
  110.  
  111.       方向設定ボタン
  112.         画面の表示方向を決定します。オプション設定によっては実行中に画面の
  113.         動的な切り替えが可能です。
  114.  
  115.           [U](up) ボタン
  116.             画面角度を 0 度(上向き横長)に設定します
  117.  
  118.           [R](right) ボタン
  119.             画面角度を 90 度(右向き縦長)に設定します
  120.  
  121.           [D](down) ボタン
  122.             画面角度を 180 度(下向き横長)に設定します
  123.  
  124.           [L](left) ボタン
  125.             画面角度を 270 度(左向き縦長)に設定します
  126.  
  127.           [M](mirror) ボタン
  128.             画面をX軸方向に鏡映反転します
  129.  
  130.       [Ok] ボタン
  131.         設定を保管しアイコン状態になります、Windows の再起動が必要な場合は
  132.         このボタンが [Restart] ボタンに変化し、設定保管後に Windows を再起
  133.         動します。
  134.  
  135.       [Cancel] ボタン
  136.         設定を保管せずに元の状態に戻しアイコン状態になります。
  137.  
  138.       [Option] ボタン
  139.         オプション設定ダイアログボックスを開きます。
  140.  
  141.  
  142.   2)オプション設定ダイアログボックス
  143.  
  144.       [Action on 90/270 degree rotation] セクション
  145.         画面表示方向を縦長<=>横長切り替えを行った場合の動作を定義します。
  146.  
  147.           [Restart Windows]
  148.             メインパネルの [Ok] ボタンが [Restart] に変化します、画面は変
  149.             化しません。再起動後に画面が有効になります。
  150.  
  151.           [Preview screen before restart]
  152.             メインパネルの [Ok] ボタンが [Restart] に変化します、画面が変
  153.             化し、再起動後の画面を前もって確認することができます。
  154.  
  155.           [Rotate on-the-fly (demo mode)]
  156.             このモードはデモなどで使用するためにもので一般的にお薦めするも
  157.             のではありません。このモードでは画面が変化し [Ok] ボタンはその
  158.             ままになります。
  159.  
  160.           [Arrange desktop icons]
  161.             デスクトップ上のアイコンの整列を行い画面の外にアイコンが置かれ
  162.             ることを防ぎます。
  163.  
  164.           [Resize maximized windows]
  165.             最大化ウィンドウが常に最大化されるようウィンドウサイズを調節し
  166.             ます。
  167.  
  168.       [Hot key] セクション
  169.         画面表示方向をアプリケーション実行中に切り換えるためのホットキーを
  170.         定義します。
  171.  
  172.           [Alt]、[Ctrl]、[Shift] チェックボックスでホットキーを有効にする
  173.           シフト状態を設定します。これはすべてのホットキーに共通となります。
  174.  
  175.           5個のドロップダウンリストで左、上、右、下、鏡映のホットキーを以
  176.           下のリストから選んで設定します。
  177.  
  178.                 表記                        ホットキー
  179.           ----------------       --------------------------------
  180.           (None)                 ホットキーなし
  181.           Left                   左カーソル移動キー (←)
  182.           Up                     上カーソル移動キー (↑)
  183.           Right                  右カーソル移動キー (→)
  184.           Down                   下カーソル移動キー (↓)
  185.           A ~ Z                 アルファベットキー A ~ Z
  186.           0 ~ 9                 数字キー 0 ~ 9
  187.           F1 ~ F12              ファンクションキー F1 ~ F12
  188.           Num-0 ~ Num-9         テンキーの数字キー 0 ~ 9
  189.           Insert                 Insert キー
  190.           Delete                 Delete キー
  191.           Home                   Home キー
  192.           End                    End キー
  193.           PageUp                 PageUp キー
  194.           PageDn                 PageDown キー
  195.           BS                     Backspace キー
  196.           Tab                    Tab キー
  197.           Enter                  Enter キー
  198.           Esc                    Esc キー
  199.           Space                  スペースキー
  200.  
  201.           デフォルトのホットキーは画面の左向き,上向き,右向き,下向き表示が
  202.           それぞれ Alt + カーソル移動(左,上,右,下)キーに割り当てられていま
  203.           す。鏡映表示にはデフォルトのホットキーは割り当てられていません。
  204.  
  205.         注意)
  206.           ホットキーの使用にあたっては前もって SETANGLE.EXE をアイコン状態
  207.           で実行しておくことが前提になりますので、プログラムマネージャの
  208.           「スタートアップ」グループに「アイコン状態で実行」を指定して自動
  209.           起動するようにしておいて下さい。
  210.  
  211.       [Rotate mouse direction]
  212.         このチェックボックスをオンにすると画面の表示方向に連動してマウスの
  213.         方向が変化します。画面固定でトラックポイントなどの固定ポインティン
  214.         グデバイスを使用する場合にオンにします。
  215.  
  216.       [Rotate cursor key direction]
  217.         このチェックボックスをオンにすると画面の表示方向に連動してカーソル
  218.         移動キーの方向が変化します。180度回転(上下反転)の場合はさらに
  219.         PageUpキーと PageDownキーを入れ替えます。なお、この機能はホットキー
  220.         機能と同様に SETANGLE.EXE をアイコン状態で実行しておくことが必要で
  221.         す。
  222.  
  223.       [Ok] ボタン
  224.         設定を保管しメインパネルに戻ります。
  225.  
  226.       [Cancel] ボタン
  227.         設定を保管せずにメインパネルに戻ります。
  228.  
  229.       [About] ボタン
  230.         バージョン情報を表示します。
  231.  
  232.  
  233.  
  234. (スクリーンセーバーについて)
  235.  
  236.   CHGANGLE.SCR を Windows ディレクトリーにコピーしておいて Windows を起動
  237.   するとコントロールパネルの「画面デザイン設定で」新しいスクリーンセーバー
  238.   「Rotate Screen」が追加されているはずです。
  239.  
  240.   設定パネルでは次の項目が指定できます。
  241.  
  242.       Time interval (1-60):
  243.           画面を回転させる時間間隔を秒単位で指定出来ます。省略値は5秒です。
  244.  
  245.       Rotation Options
  246.           画面回転方法を以下の3つのオプションから選べます
  247.             o Clockwise                 時計回り
  248.             o Counter-Clockwise         反時計回り
  249.             o Random                    鏡映を含むランダム
  250.  
  251.         Password Options
  252.             他のスクリーセーバーと同様に、パスワードロックを指定します
  253.  
  254.   なお、スクリーンセーバーは SETANGLE.EXE を使用しますが起動時に
  255.   SETANGLE.EXE が実行していなければ勝手に SETANGLE.EXE をアイコン状態で起
  256.   動します。そのため、に SETANGLE.EXE を必ず Windows ディレクトリーまたは
  257.   PATH 環境変数に指定されたディレクトリーにコピーしておいて下さい。
  258.  
  259.  
  260.  
  261. (画面切り換え時の効果音について)
  262.  
  263.   SETANGLE.EXE を起動するとコントロールパネルの「サウンド」の「音を鳴らす
  264.   場面」に「Change Display Angle」が追加されます。お好みの WAV ファイルを
  265.   選択しておけば、画面の表示を切り換えた時に WAV ファイルが再生されます。
  266.  
  267.  
  268.  
  269. (特殊なディスプレイでのマウス制御について)
  270.  
  271.   縦置きディスプレイをご使用の際には通常、画面回転を指定して Rotate mouse
  272.   direction をオフにして使用します。これはマウスの回転制御の基準位置が横置
  273.   きディスプレイの正常方向になっているためです。この状態でさらに画面を回転
  274.   させる場合は以下の手順でマウス回転基準位置を登録した上で Rotate mouse
  275.   direction をオンにして下さい。
  276.  
  277.     SETANGLE.EXE メインパネルで Alt, Ctrl, Shift の三つのシフトキーを同時
  278.     に押しながら正常表示状態の方向ボタンをマウスでクリックする。
  279.  
  280.   この操作により、指定した方向がマウスの方向を置き換える際の基準方向となり
  281.   ます。Ok ボタンを押すとSETANGLE.INI に方向が保管されますので Windows 起
  282.   動の際に毎回設定する必要はありません。
  283.  
  284.   同様に、鏡をディスプレイの周りに置いて鏡映表示を使用している場合もマウス
  285.   の方向変換を調整することができます。こちらの設定は直接 SETANGLE.INI ファ
  286.   イルを編集する必要があります。SETANGLE.INI の [boot] セクションに鏡の設
  287.   置位置によって以下の項目を追加して下さい。
  288.  
  289.       A) 鏡を画面の右又は左側に設置して横方向に反転させている場合
  290.               MirrorMode=1
  291.  
  292.       B) 鏡を画面の上又は下側に設置して縦方向に反転させている場合
  293.               MirrorMode=2
  294.  
  295.  
  296.  
  297. (制限事項)
  298.  
  299.   ディスプレイドライバーが他のモジュールで使用するための特殊なインターフェ
  300.   ースを持っている場合、それらを利用する機能は使用できません。例えばディス
  301.   プレイドライバーが動画再生などで使用される DCI モジュールとの間で専用イ
  302.   ンターフェースを持っている場合には DCI 機能は利用できません。
  303.   各ドライバー毎に個別対応をすればこの制限を取り除くことが可能なわけですが
  304.   それでは汎用性が無くなることになりますのでそのようなバージョンを作成する
  305.   予定はありません。
  306.  
  307.  
  308.  
  309. (ANYSMALL.DRV について)
  310.  
  311.   本ドライバーを使用すると本来のドライバーのメモリー消費に加えて約61Kバ
  312.   イトを追加消費することになります。そのためメモリーを大量消費するアプリケ
  313.   ーションとの組み合わせでは動作に支障をきたす場合があります。
  314.   メモリー不足に陥った場合は同梱の ANYSMALL.DRV を ANYANGLE.DRV に名前を変
  315.   えて上書きして使用してください。標準の ANYANGLE.DRV はビットマップ展開用
  316.   に48Kバイトのバッファーを使用していますが ANYSMALL.DRV はバッファーサ
  317.   イズを16Kバイトに縮小したスモール版です、このドライバーを使用するとメ
  318.   モリー消費が約29Kバイトと半分以下になります。ただし、代償として高解像
  319.   度・多色表示を使用時に大きなビットマップの表示性能が低下しますが 640x480
  320.   256色 表示程度ではほとんど表示性能の低下はありません。
  321.  
  322.  
  323.  
  324. (互換性について)
  325.  
  326.   本ドライバーは基本的にビデオボードに依存するハードウェア操作は一切使用し
  327.   ていませんので各種多様なビデオボードに対応できる設計になっています。
  328.   しかし、世の中には様々なディスプレイドライバーが存在しており、本ドライバ
  329.   ーとディスプレイドライバーの組み合わせによっては相性の問題により画面にゴ
  330.   ミが表示されたり、場合によっては起動すらできない場合もあり得ます。これは
  331.   主にディスプレイドライバーが持っている潜在的なバグや非互換性が本ドライバ
  332.   ーとの組み合わせで露見する場合がほとんどです。別のディスプレイドライバー
  333.   との組み合わせでは正常に使用できる場合もあります。
  334.  
  335.   メジャーなビデオボードについては可能な範囲でバグを回避する方向で対処した
  336.   いと思いますが、現実問題として作者自身であらゆるビデオボードとドライバー
  337.   の組み合わせをテストすることは不可能です。ドライバーとの相性でお気付きの
  338.   点があれば作者までご連絡ください。ただし、汎用性を損なうような方向での個
  339.   別対応やパフォーマンス低下を伴うようなバグ回避は行わないつもりです。
  340.  
  341.   現時点で問題が報告されているディスプレイドライバーのうち、本ドライバー側
  342.   で対処不可能と判明している問題点は以下の通りです。
  343.  
  344.     o Cirrus 5430/5434 汎用ドライバー
  345.       四角形塗り潰しのインターフェース(Output,OS_SCANLINES)の上方向の描画
  346.       に問題があり、横長表示の下向き(Down)でペイントブラシ等で中塗り四角形
  347.       描画を行うとウィンドウをはみ出す縦棒が描画されます。縦長表示および上
  348.       向き表示では問題ありません。
  349.  
  350.     o Weitek Power9100 汎用ドライバー
  351.       モノ->カラー BitBlt に問題があり、横長表示で画面横幅いっぱいのテキス
  352.       トを表示するとディスプレイドライバー内でUAEを起こします。縦長表示
  353.       では問題ありません。
  354.  
  355.     o WesternDigital 系ビデオボード
  356.       アクセラレーターによるライン描画に癖があり、画面表示方向によってライ
  357.       ン軌跡が微妙にずれるために図形の形状が崩れることがあるようです。
  358.       SYSTEM.INI ファイルの WesternDigital ドライバー固有セクションで
  359.       HWLineDraw=No を指定してください。
  360.  
  361.     o NumberNine Imagine-128
  362.       TrueType フォントを使用した場合、文字列のサイズを返すインターフェー
  363.       ス(ExtTextOut) が不正な値を返すことがあり、文字の右端が切れる場合が
  364.       まれにあります。
  365.  
  366.     o IBM PC-720 (PCI/ISA BUS) 用 S3 Vision864 Driver Ver.1.31
  367.       メモリーに対するテキスト描画に問題があるため起動できません。
  368.  
  369.   ディスプレイドライバーは適時アップデートされていますので既にこれらの問題
  370.   は解決されているかもしれません、最新版でご確認下さい。
  371.  
  372.   なお、本ドライバーとの組み合わせのみで発生する問題点についてビデオボード
  373.   メーカーやシステムメーカーに問い合わせることは基本的に避けて下さい。
  374.  
  375.  
  376.  
  377. (表示性能について)
  378.  
  379.   本ドライバー使用時の表示速度は元のディスプレイドライバーのメモリー描画速
  380.   度とビットマップ転送速度に大きく依存します。特に透過テキスト表示は特殊な
  381.   ラスターオペレーション (00B8074A=PSDPxax) を使用するビットマップ転送を多
  382.   用しますので必ずしもベンチマークテストで高速なビデオボードが本ドライバー
  383.   との組み合わせで高速表示できるとは限りません。特にベンチマーク対策が施さ
  384.   れているディスプレイドライバーでテキスト描画の性能落差が顕著になる傾向が
  385.   あります。
  386.   Weitek Power9100 では前述のラスターオペレーションのアクセラレーションが
  387.   効かないため白/黒以外の透過テキスト表示性能が極端に落ちるようです。
  388.  
  389.   486(66Mhz)+アクセラレータでの平均的な動作速度は元のディスプレイドラ
  390.   イバー使用時の約70%程度ですが、使用するハードウェアやアプリケーション
  391.   の種類によってかなりばらつきがあるようです。
  392.  
  393.   縦長表示の場合、画面上での縦スクロールが物理的な横スクロールに相当するた
  394.   め、グラフィックスアクセラレータを搭載していないビデオボードではカーソル
  395.   上下キーを使用するスクロールが極端に低速になります。このような場合は、ス
  396.   クロールよりページ切替えの方が高速ですから、ページ上下(PageUp/PageDown)
  397.   キーを活用してください。
  398.  
  399.  
  400.  
  401. (注意事項)
  402.  
  403.   [Rotate mouse direction] は Windows 3.1 標準の MOUSE.DRV 互換マウスドラ
  404.   イバーを使用した場合のみ使用可能です。特殊なマウスドライバーでは使用でき
  405.   ない場合があります。もしそのようなマウスドライバーを組み込んで Windows
  406.   が起動できなくなったらテキストエディターで SETANGLE.INI の [boot] セクシ
  407.   ョンに SwapMouseOrientation=0 を書き込んでオフにしてください。
  408.  
  409.   通常のブラウン管式ビデオモニターは横置きで使用することを前提に設計されて
  410.   います。無理に縦置きで使用すると放熱やシャドウマスクの歪みなどの問題によ
  411.   り故障の原因となりますので絶対に避けてください。
  412.  
  413.   画面表示方向を動的に変更した場合にアプリケーションが所有する 8x8 ドット
  414.   パターンデータの再ロードが必要になる可能性があります。例えばデスクトップ
  415.   のパターンを再ロードするにはコントロールパネルで「画面デザインの変更」を
  416.   開いて OK ボタンを押してください。
  417.  
  418.   表示方向を 90度または 270度切り替えて画面の縦横比を変えた場合、既に実行
  419.   しているアプリケーションの動作が不安定になる可能性があります。例えばかな
  420.   漢字変換プログラムの表示位置等が新しい画面に対応しないなどの問題が起こり
  421.   ます。Windows を再起動すればこの種の問題を避けることができます。
  422.   オプション設定で [Restart Windows] を選ぶことにより動的な画面の縦横比の
  423.   変更を禁止することができます。
  424.  
  425.   Pen Windows (Windows for Pen Computing) では、Windows 起動時の画面範囲外
  426.   にタブレットを移動すると Pen Windows 内部で除数ゼロエラーを起こします。
  427.   そのため、画面の縦横比を変えた場合でも起動時の画面範囲外にタブレットを移
  428.   動できないようにクリップしています。つまり、640x480画面では画面の
  429.   縦横を切り替えた直後は480x480の範囲にしかマウスカーソルを移動する
  430.   ことができません。480x640の全領域を使用するためには Windows を再
  431.   起動してください。
  432.  
  433.   Pen Windows で縦長モードで起動するためにはタブレットドライバーが方向回転
  434.   をサポートしている必要があります。
  435.  
  436.   オプション設定で [Rotate on-the-fly (demo mode)] を選んだ場合、画面の縦
  437.   横比を変えた場合でも [Ok] ボタンは [Restart] に変わりません、そのまま使
  438.   い続けると前述の問題が起こる場合があります。このモードはあくまでも問題の
  439.   ないアプリケーションとの組み合わせで、制限事項をご了承の上注意しながらご
  440.   使用ください。
  441.  
  442.   640x480 の画面を縦長で使用した場合解像度は 480x640 になりますが多くの
  443.   Windows アプリケーションは最低限 640 の横幅を仮定しているものが多く、ダ
  444.   イアログボックスがはみ出してしまったり場合によってはアプリケーションその
  445.   ものの動作が異常になったりします。例えば Windows 標準付属のソリティアゲ
  446.   ームではカードが正しく表示できなくなりますが 800x600 以上の画面では縦長
  447.   にしても問題ないようです。
  448.  
  449.   画面表示方向の 90/270度切り替えは Windows の USER.EXE のバージョンに依存
  450.   しますのでシステムによっては動的切り替えができない場合があります。
  451.  
  452.   ディスプレイドライバーで仮想スクリーン機能がサポートされている場合、本ド
  453.   ライバーの動作が異常になる場合があります、このような場合はディスプレイド
  454.   ライバーの仮想スクリーン機能を禁止して下さい。
  455.  
  456.   DOS 全画面表示での画面回転はサポートされません。窓状態で使って下さい。
  457.  
  458.   ホットキー使用の際は以下の点にご注意下さい
  459.  
  460.     o 一部の組み合わせの中にはシステムが使用するシステムキーに重複している
  461.       ものがあります(例: Alt+Ctrl+Delete や Alt+Esc)。このようなキーをホッ
  462.       トキーに使用することは避けて下さい。
  463.  
  464.     o アプリケーションのショートカットキーとホットキーがぶつかる場合はホッ
  465.       トキーを別のものに変えるか、アプリケーションのショートカットキーをシ
  466.       フトを押しながら操作するなどして避けて下さい。
  467.  
  468.     o 同じキーを複数のホットキーに指定しないで下さい。
  469.  
  470.     o DOS窓を操作している状態では、通常すべてのキーがDOSアプリケーシ
  471.       ョンに直接渡されるため、ホットキーは効きません。
  472.  
  473.   本ドライバーの動作確認は主に ThinkPad 230Cs で行いました。
  474.  
  475.  
  476.  
  477. (ファイル一覧)
  478.  
  479.   ANYANGLE.DRV ... ディスパッチドライバー
  480.  
  481.   SETANGLE.EXE ... セットアップユーティリティー
  482.  
  483.   CHGANGLE.SCR ... スクリーンセーバー
  484.  
  485.   README.TXT   ... 今見ているファイルです
  486.  
  487.   READMEUS.TXT ... 英語版リリースノート
  488.  
  489.   ANYSMALL.DRV ... ディスパッチドライバー (スモール版 ANYANGLE.DRV)
  490.  
  491.  
  492.   再配布される場合は必ず以上6個のファイルを無修正で含む形式で配布して下さ
  493.   い、一部のファイルのみを配布することは避けて下さい。
  494.  
  495.  
  496.  
  497. (配布条件)
  498.  
  499.   本ソフトウェアはフリーウェアです。本ソフトウェアの著作権は作者にあります
  500.   が、コピー及び他の方への譲渡はご自由に行って頂いて構いません。作者への使
  501.   用許諾は一切不要です。ただし、以下の条件に従って取り扱って下さい。
  502.  
  503.   1)本ソフトウェアを使用して生じた如何なる損害につても、作者は一切の責任
  504.       を負いません。あくまでも使用者自身の責任のもとにご使用下さい。
  505.  
  506.   2)本ソフトウェアに不備があっても作者はそれを訂正する義務を負いません。
  507.  
  508.   3)作者の許可なく本ソフトウェアを修正・改造することを禁じます。
  509.  
  510.   4)作者の許可なく本ソフトウェアを営利目的に使用することを禁じます。
  511.  
  512.  
  513.   作者 : くるくる伊藤(伊藤 隆)
  514.  
  515.   NiftyServe ID : PFH00557
  516.  
  517.   Internet ID : PFH00557@niftyserve.or.jp
  518.  
  519.  
  520. -------------------------------- 技術情報 --------------------------------
  521.  
  522.  
  523. (ディスパッチドライバーについて)
  524.  
  525.   Windows 3.1 では SYSTEM.INI ファイルの [boot] セクションで display.drv=
  526.   で指定されるディスプレイドライバーは Windows のGDIモジュールから渡さ
  527.   れた描画要求を解釈してビデオボードに対する直接書き込みを行います。同じ方
  528.   法で SYSTEM.INI ファイルに登録される ANYANGLE.DRV はGDIモジュールに対
  529.   してあたかも通常のディスプレイドライバーであるかのように振舞いますが、ビ
  530.   デオボードに対する書き込みは一切行いません。ANYANGLE.DRV の役目は回転機
  531.   能を持たないディスプレイドライバーに対して前もって回転させたデータを渡し
  532.   たり座標値を変換したりすることにあります。また、テキストのように回転させ
  533.   たデータの受け渡しが困難なインターフェースについては一旦ディスプレイドラ
  534.   イバーの ExtTextOut 関数を呼び出してメモリーに対するテキスト描画を行い、
  535.   そのメモリーを回転させた後 BitBlt 関数経由でテキスト描画を行うという面倒
  536.   な手段を採っています。このように ANYANGLE.DRV はGDIモジュールに対して
  537.   はディスプレイドライバーとして振舞い、ディスプレイドライバーに対してはG
  538.   DIモジュールとして振舞います。
  539.  
  540.           インストール前                      インストール後
  541.  
  542.     ┌───────────┐          ┌───────────┐
  543.     │        GDI        │          │        GDI        │
  544.     └───────────┘          └───────────┘
  545.     --------------------------          --------------------------
  546.     ┌───────────┐          ┌───────────┐
  547.     │ディスプレイドライバー│          │     ANYANGLE.DRV     │
  548.     └───────────┘          └───────────┘
  549.     --------------------------          ┌───────────┐
  550.            ビデオボード                 │ディスプレイドライバー│
  551.                                         └───────────┘
  552.                                         --------------------------
  553.                                                ビデオボード
  554.  
  555.   お察しのように、ANYANGLE.DRV はあくまでも特定のビデオボードをサポートす
  556.   るディスプレイドライバーと組み合わせてはじめて役に立つ偽のディスプレイド
  557.   ライバーです。このようなドライバーは一般的にディスッパッチドライバーと呼
  558.   ばれており Windows 3.0 の時代に C.F.Computing の西川和久氏によって作成さ
  559.   れたDDDも同様な発想によるものと思われます。
  560.  
  561.  
  562.  
  563. (フック関数一覧)
  564.  
  565.   ANYANGLE.DRV は以下のドライバー関数をフックしています。なお、0度(上向き)
  566.   表示の場合やスクリーン描画を伴わないメモリーのみの操作については一部の例
  567.   外を除いてディスプレイドライバーにそのままのパラメータを渡しています。
  568.   また、いずれの操作でも処理量が内部バッファーのサイズより大きい場合は複数
  569.   の領域に分割して処理しています。
  570.  
  571.     o BitBlt
  572.       メモリー・スクリーン間のビットマップ転送をフックします。内部の48K
  573.       B(スモール版では16KB)バッファーに回転イメージを展開してディスプ
  574.       レイドライバーの BitBlt 関数を呼び出します。スクリーンのみの操作につ
  575.       いては座標変換のみを行います。
  576.  
  577.     o Control
  578.       SETANGLE.EXE で動的な画面切替を行うためのプライベートエスケープを処
  579.       理します。それ以外のエスケープはディスプレイドライバーを呼び出します。
  580.  
  581.     o Enable
  582.       まず最初にディスプレイドライバーの Enable 関数を呼び出しディスプレイ
  583.       ドライバーの特性を解析します。必要に応じて縦、横パラメータを入れ替え
  584.       たりした後GDIに情報を返します。
  585.  
  586.     o ExtTextOut
  587.       スクリーンに対するテキスト描画をフックします。まず、内部の32KB
  588.       (スモール版では8KB)バッファーに対してモノクロテキスト描画を行いま
  589.       す。その後、内部の16KB(スモール版では8KB)バッファー上で回転操
  590.       作を行います。最後に、ディスプレイドライバーの BitBlt 関数を呼び出し
  591.       てカラーエクスパンジョンによるスクリーンの描画を行います。透過テキス
  592.       トの場合はテキスト前景色のソリッドブラシを使用する3次元ラスター処理
  593.       を行います。
  594.  
  595.     o FastBorder
  596.       座標値を入れ替えた後、ディスプレイドライバーを呼び出します。
  597.  
  598.     o MoveCursor
  599.       座標値を入れ替えた後、ディスプレイドライバーを呼び出します。
  600.  
  601.     o Output
  602.       スクリーンに対する図形描画をフックします。OS_SCANLINES 以外の場合は、
  603.       座標値を入れ替えた後、ディスプレイドライバーを呼び出します。
  604.       OS_SCANLINES では、横長表示の場合は座標値を入れ替えた後、ディスプレ
  605.       イドライバーを呼び出しますが、縦長表示では同様の手法が使えないため、
  606.       ポリラインによるペン描画、または BitBlt によるブラシ描画を行います。
  607.       さらに透過ハッチング描画では OS_BEGINNSCAN の時点で内部バッファーに
  608.       8x256 のパターンを描画しておき、ハッチング前景色のソリッドブラシを使
  609.       用する3次元ラスター処理を行います。
  610.  
  611.     o Pixel
  612.       スクリーンに対するピクセル描画をフックします。座標値を入れ替えた後、
  613.       ディスプレイドライバーを呼び出します。
  614.  
  615.     o RealizeObject
  616.       ブラシ以外の処理は、そのままディスプレイドライバーを呼び出します。ブ
  617.       ラシに関しては、メモリー描画用の無回転ブラシとスクリーン描画用の回転
  618.       ブラシの2種類を連結したブラシを必要に応じて生成します。
  619.  
  620.     o ScanLR
  621.       スクリーンに対するピクセル検索をフックします。横長表示では座標値およ
  622.       び左右方向を入れ替えた後、ディスプレイドライバーを呼び出し、戻り座標
  623.       値を再度変換してGDIに渡します。縦長表示では同様の手法が使えないた
  624.       め、ディスプレイドライバーの Pixel 関数を繰り返し呼び出します。この
  625.       ため、縦長表示では極端に処理速度が低下しますが、BASICの名残のよ
  626.       うなこのインターフェースは今日の洗練されたアプリケーションではほとん
  627.       ど使用されることは無いので一般的に問題は無いと思われます。ペイントブ
  628.       ラシと WinTach 以外でこのインターフェースを使用するプログラムを作者
  629.       は知りません。
  630.  
  631.     o SetCursor
  632.       32x32 カーソルパターンを回転させた後、ホットスポットの位置を変換して
  633.       ディスプレイドライバーを呼び出します。
  634.  
  635.     o SetDIBitsToDevice
  636.       まず、内部の32KB(スモール版では8KB)バッファーに対してディスプ
  637.       レイドライバーの DeviceBitmapBits 関数を使ってメモリー描画を行います。
  638.       その後、内部の16KB(スモール版では8KB)バッファー上で回転操作を
  639.       行います。最後に、ディスプレイドライバーの BitBlt 関数を呼び出してス
  640.       クリーンの描画を行います。
  641.  
  642.     o UpdateColors
  643.       座標値を入れ替えた後、ディスプレイドライバーを呼び出します。
  644.  
  645.   以上のように、本ドライバーでは通常状態と異なる描画要求をディスプレイドラ
  646.   イバーに対して行います。そのため一般的には見つかりにくいディスプレイドラ
  647.   イバーのバグを引き起こすことがあり、作者は本ドライバーを「バグダス」とも
  648.   呼んでいます。ディスプレイドライバーのテストといった意外な用途で活用でき
  649.   るかもしれません。ただし、見つかったディスプレイドライバーのバグや非互換
  650.   性をなるべく避けるように本ドライバー側の改良も重ねていますので、初期バー
  651.   ジョンに比べてテストプログラムとしての有効性は低下しています。
  652.  
  653.  
  654.  
  655. (INI ファイルについて)
  656.  
  657.   インストール後の SYSTEM.INI ファイルは以下のようになっています。
  658.  
  659.                               |         <<<< 説明 >>>>
  660.     [boot]                    |
  661.         .                     |
  662.         .                     |
  663.     display.drv=anyangle.drv  | <== ディスパッチドライバーが登録されています
  664.         .                     |
  665.         .                     |
  666.                               |
  667.     [display driver]          |
  668.                               |
  669.     DisplayOrientation=0      | <== 画面表示方向が指定されています
  670.                               |     0 : 上向き通常表示
  671.                               |     1 : 右向き通常表示
  672.                               |     2 : 下向き通常表示
  673.                               |     3 : 左向き通常表示
  674.                               |     4 : 上向き鏡映表示
  675.                               |     5 : 右向き鏡映表示
  676.                               |     6 : 下向き鏡映表示
  677.                               |     7 : 左向き鏡映表示
  678.                               | このセクションは 0~3 については Windows
  679.                               | for Pen と互換です、4~7 は Windows for
  680.                               | Pen では無効です。省略時値は 0 です。
  681.  
  682.  
  683.   さらに SETANGLE.INI ファイルが追加され、オプション設定により以下のような
  684.   内容が書き込まれます。[boot] セクションはディスパッチドライバーの動作を
  685.   制御し、[setangle.exe] セクションはセットアップユーティリティーの動作を
  686.   制御します。
  687.  
  688.                               |         <<<< 説明 >>>>
  689.     [boot]                    |
  690.                               |
  691.     display.drv=256_62X5.DRV  | <== インストール直前のディスプレイドライバ
  692.                               |     ーの名前です
  693.                               |
  694.     SwapMouseOrientation=1    | <== マウスの方向回転を指定します
  695.                               |     0 : マウスの制御を行いません
  696.                               |     1 : 画面表示方向に連動してマウスの移動
  697.                               |         方向を置き換えます
  698.                               | 省略時値は 1 です。
  699.                               |
  700.     DisplayBaseAngle=0        | <== マウスの回転基準方向
  701.                               |     0 : 画面上方向
  702.                               |     1 : 画面右方向
  703.                               |     2 : 画面下方向
  704.                               |     3 : 画面左方向
  705.                               |
  706.     [setangle.exe]            |
  707.                               |
  708.     ArrangeIcon=1             | <== [Arrange desktop icons] の保管値です
  709.                               |     0 :  オフ
  710.                               |     1 : オン
  711.                               | 省略時値は 1 です。
  712.                               |
  713.     ResizeMaxWin=1            | <== [Resize maximized windows] の保管値です
  714.                               |     0 :  オフ
  715.                               |     1 : オン
  716.                               | 省略時値は 1 です。
  717.                               |
  718.     ChangeAspect=1            | <== [Action on 90/270 degree rotation] の
  719.                               |     保管値です
  720.                               |     0 : [Restart Windows]
  721.                               |     1 : [Preview screen before restart]
  722.                               |     2 : [Rotate on-the-fly (demo mode)]
  723.                               | 省略時値は 1 です。
  724.                               |
  725.     MaxSystemScan=0           | <== デスクトップ回転のため USER.EXE をスキ
  726.                               |     ャンする最大幅を保管しています。
  727.                               |     Windows 3.10 ではインストール後 0 にな
  728.                               |     っているはずです。
  729.                               | 省略時値は 512 です。
  730.                               |
  731.     SwapCursorOrientation=1   | <== カーソル移動キーの方向回転を指定します
  732.                               |     0 : カーソル移動キーの制御を行いません
  733.                               |     1 : 画面表示方向に連動してカーソル移動
  734.                               |         キーの方向を置き換えます
  735.                               | 省略時値は 1 です。
  736.                               | 
  737.      [HotKeys]                |
  738.                               |
  739.      Left=37                  | <== 左向き表示のホットキー仮想キーコード
  740.      Up=38                    | <== 上向き表示のホットキー仮想キーコード
  741.      Right=39                 | <== 右向き表示のホットキー仮想キーコード
  742.      Down=40                  | <== 下向き表示のホットキー仮想キーコード
  743.      Mirror=0                 | <== 鏡映表示のホットキー仮想キーコード
  744.      Shift=1                  | <== シフト状態( 1=Alt, 2=Ctrl, 4=Shift )
  745.  
  746.  
  747.  
  748. (APIについて)
  749.  
  750.   外部アプリケーションから画面表示を制御するためのAPIをサポートしていま
  751.   す。呼び出し方式としては SETANGLE.EXE とリンクを結んで双方向の通信を実現
  752.   できるDDE方式と。SETANGLE.EXE に直接メッージをポストする単方向のメッ
  753.   セージ方式の二種類があります。
  754.   ExcelマクロやVisual BASICなどの高級言語から呼び出す場合は応用の効くDD
  755.   E方式がお勧めです。外部スイッチ制御などタイミング重視の使い方ではメッセ
  756.   ージ方式の方が単純で使い易いかと思います。
  757.  
  758.   1)DDE方式APIの使い方
  759.       SETANGLE.EXE はDDEサーバーの機能を持っており以下のサービスを提供
  760.       しています。
  761.  
  762.         サービス名:     "SetAngle"
  763.  
  764.         トピック名:     "Control"
  765.  
  766.         項目名:         "Rotate"
  767.                         "BaseAngle"
  768.  
  769.         トランザクションの種類としては REQUEST, ADVISE および POKE に対応
  770.         しています。
  771.         また、データフォーマットは CF_TEXT のみをサポートしています。
  772.  
  773.       トランザクションで使用される文字列パラメータは以下のとおりです。
  774.  
  775.         "Rotate" は画面の表示方向を制御します。
  776.                 "0" : 上向き通常表示
  777.                 "1" : 右向き通常表示
  778.                 "2" : 下向き通常表示
  779.                 "3" : 左向き通常表示
  780.                 "4" : 上向き鏡映表示
  781.                 "5" : 右向き鏡映表示
  782.                 "6" : 下向き鏡映表示
  783.                 "7" : 左向き鏡映表示
  784.  
  785.         "BaseAngle" は [Rotate mouse direction] がオンになっている場合のマ
  786.         ウス方向制御を行う場合の基準となる画面方向を制御します。
  787.                 "0" : 上向き
  788.                 "1" : 右向き
  789.                 "2" : 下向き
  790.                 "3" : 左向き
  791.  
  792.  
  793.       DDE方式のAPIはExcelなどのDDE対応アプリケーションから使うと
  794.       非常に便利です。
  795.  
  796.       例えばExcelではセルに「=SetAngle|Control!Rotate」と書いておくだけで、
  797.       現在の画面の方向を知ることができます。自動更新を指定しておけばホット
  798.       キーなどでユーザーが画面を切り換えた場合も自動的にセルの内容が更新さ
  799.       れますので、プレゼンテーションの場合などに画面方向によって内容を変え
  800.       るなどの操作ができます。
  801.  
  802.       また、Excelで以下のマクロを実行すると指定されたセルの値に画面表示方
  803.       向を切り換えることができます。
  804.                 chanel=INITIATE("SetAngle","Control")
  805.                       =POKE(セル指定,"Rotate",chanel)
  806.                       =TERMINATE(chanel)
  807.  
  808.       同様に、Visual BASIC などからも簡単に画面制御を行うことが出来るはず
  809.       です。ご活用下さい。
  810.  
  811.  
  812.   2)メッセージ方式のAPI使用方法
  813.       さらに低レベルのAPIとして、直接 SETANGLE.EXE にメッセージを送るこ
  814.       とにより画面を制御することも出来ます。
  815.  
  816.       メッセージを送るためにはまず SETANGLE.EXE のハンドルを取得する必要が
  817.       あります。やや強引なやり方ですが、SETANGLE.EXE のクラス名である
  818.       "AnyAngleSetup" を使って次のような方法でハンドルを取得して下さい。
  819.                 hWnd = FindWindow( "AnyAngleSetup", NULL );
  820.  
  821.       もし、hWnd に NULL が返った場合は SETANGLE.EXE が起動していないこと
  822.       を意味します。エラーメッセージを表示するか次のように SETANGLE.EXE を
  823.       アイコン状態で起動して、もう一度前述の操作をやり直して下さい。
  824.                 WinExec( "setangle.exe", SW_SHOWMINNOACTIVE );
  825.  
  826.       さて、ここで取得したウィンドウハンドル hWnd に対して使用できるメッセ
  827.       ージ操作は次のとおりです。
  828.  
  829.         nRotation = (int)SendMessage( hWnd, WM_USER+1, -1, 0L );
  830.             現在の画面表示方向を示す整数値(0-7)を nRotation に返します。
  831.  
  832.         PostMessage( hWnd, WM_USER+1, nNewRotation, 0L );
  833.             整数値 nNewRotation に従って新しい画面表示方向を設定します。
  834.  
  835.         nBaseAngle = (int)SendMessage( hWnd, WM_USER+2, -1, 0L );
  836.             現在のマウス基準方向を示す整数値(0-3)を nBaseAngle に返します。
  837.  
  838.         PostMessage( hWnd, WM_USER+2, nNewBaseAngle, 0L );
  839.             整数値 nNewBaseAngle に従って新しいマウス基準方向を設定します。
  840.  
  841.  
  842.  
  843. (マウスドライバー開発者の方々への注意)
  844.  
  845.   「Rotate mouse direction」チェックボックスをオンにすると ANYANGLE.DRV
  846.   はマウスドライバーのイベントをフックしてマウスの移動情報を画面に連動し
  847.   て変換します。
  848.   このイベントのフック方法として ANYANGLE.DRV はマウスドライバーの Enable
  849.   ルーチンを呼び出すという若干トリッキーな手法を用いています。
  850.   このため、くるくるドライバーと共存できるマウスドライバーを作成するには
  851.   以下の2点にご注意下さい。
  852.  
  853.    A) Enable 及び Disable ルーチンではフラグを管理して最初の呼び出しかど
  854.       うかを判断できるようにして下さい。
  855.  
  856.    B) Enable ルーチンが2度目以降に呼び出された場合、実際の初期化処理は行
  857.       わずにパラメータとして渡される new_event_proc を処理して下さい。
  858.  
  859.   極めて簡単な処理であることがお分かりいただけると思います。コード的には
  860.   約10行程度の追加であろうと推測されます。Windows 3.1 DDK に含まれるマ
  861.   ウスドライバーのサンプルコードは実際そのような処理を行っていますので参
  862.   考にして下さい。
  863.  
  864.  
  865. --------------------------------------------------------------------------
  866.  
  867.  
  868. (変更履歴)
  869.  
  870.   Version 0.5 (5/09/95) ・・・ テスト用β版 (β-1)
  871.  
  872.   Version 0.6 (5/15/95) ・・・ テスト用β版 (β-2)
  873.     o 各種バグ修正
  874.     o テキスト表示速度およびビットマップ表示速度の改善
  875.     o 旧 Cirrus 5426/5428 ドライバーの対応
  876.     o 旧 S3 Flat ドライバーの対応
  877.     o Nanao HA-50 ドライバーの対応
  878.     o NumberNine 9FX シリーズの対応
  879.  
  880.   Version 0.7 (5/22/95) ・・・ テスト用β版 (β-3)
  881.     o ミカンせいじん スクリーンセーバー使用時のバグ修正
  882.     o ペイントブラシでモノクロキャンバス使用時のバグ修正
  883.     o 白/黒の透過テキスト表示速度の改善
  884.     o ANYSMALL.DRV の追加
  885.     o 24 BPP モードのサポート
  886.     o Weitek Power9100 32 BPP モードの対応
  887.     o Cirrus 5430/5434 ドライバーの対応
  888.  
  889.   Version 0.8 (5/23/95) ・・・ 評価版
  890.     o SwapMouseOrientation の省略時値を 1 から 0 に変更
  891.     o SwapMouseOrientation=0 では起動時にマウスドライバーをフック
  892.       しないように変更
  893.     o 縦長表示状態でのテキスト表示速度の改善
  894.     o 縦長表示状態での鏡映反転軸を変更
  895.  
  896.   Version 0.9 (5/29/95)
  897.     o XGA/S3 ドライバー使用時のパターン表示のバグ修正
  898.     o 右向き縦長表示での太線表示のバグ修正
  899.     o NumberNine Imagine-128 シリーズの対応
  900.     o README.TXT に技術情報を追加
  901.  
  902.   Version 1.0 (6/12/95)
  903.     o オプション設定パネルに [Resize maximized windows] チェックボックスを
  904.       追加
  905.  
  906.   Version 1.0a (7/15/95)・・・ 1.1 限定リリースβ版
  907.     o ホットキー機能追加
  908.     o APIのサポート
  909.     o スクリーンセーバー追加
  910.     o 画面切り換え時の効果音のサポート
  911.     o 縦置き表示および鏡映表示でのマウス方向制御の改善
  912.     o マウス方向制御のデフォルトをオフからオンに変更
  913.  
  914.   Version 1.1 (8/08/95)・・・ 1.1 正式リリース版
  915.     o README*.TXT のアップデート
  916.  
  917.   Version 1.2 (8/27/95)
  918.     o カーソル移動キーの方向回転をサポート 
  919.     o Pen Windows (Windows for Pen Computing) 対応
  920.  
  921.   Version 1.21 (8/31/95)・・・ 1.2 バグ修正版
  922.     o カーソル移動キーのフック方式を修正(3DWin95 対応) 
  923.     o かな漢字変換中でのカーソル移動キー回転をサポート
  924.     o アイコンメニュー上でのカーソル移動キー回転をサポート
  925.