UltraVNC を Nr150/S20 にインストールしてみた。Video hook driver のインストール時に画面が一瞬消えるのを見て冷や冷やしたが、PC-98 でも問題なく動いているようだ。
UltraVNC のアイコンはちょっと不気味だ。フリーメーソンか!
Video hook driver の問題なのか、VNC サーバ上で最大化したウィンドウを開いている状態で、VNC クライアントで接続すると、その最大化していたウィンドウのサイズが変わってしまう。一度最大化を解除して再び最大化すると、まともな状態に戻るが、少し面倒だ。
接続時と非接続時のタスクトレイのアイコンの変化がわかりにくいのも問題だ。背景の色が、非接続時には青、接続時には緑になるようだ。RealVNC や TightVNC では非接続時に白、接続時に黒なので非常に分かりやすい。
UltraVNC の VNC viewer は、他の VNC viewer に比べて高機能で非常に便利だ。ボタンを1つ押すだけで Ctrl + Esc を送信できるのも良い。
アクセスキーを入力しようとして、Alt + アルファベットキーを押すと、ビープ音が鳴ってうるさいのは問題だ。また、接続が切れてしまうと何のメッセージも表示せずにウィンドウが閉じてしまうのも気になるところである。
なんと、Windows 2000 SP4 用の更新プログラム ロールアップ 1 というものが公開されているではないか。2日前に Win2k を入れたときは、苦労して Windows Update をしたというのに。しかもよく見ると、公開日はちょうど2日前になっている。
EN2220 は AT 互換機だと DOS でも使えるらしい。PC-98 でも使えるだろうか?
何と、DOS で無線 LAN を使うということができるらしい。ODI ドライバで NDIS ドライバの代わりをさせるために、ODINSUP というものを使っているのが大きなポイントのようだ。BUFFALO の WLI-PCM-L11GP もこの方法でそのまま使えるらしい。PC-98 でも使えるか気になるところだ。そもそも ODINSUP が PC-98 でも使えるのかどうか。
Nr150/S20 に Win2k (SP4) をインストールしてから、Windows Update を実行したところ、KB893086 が正常にインストールできなかった。どういう訳かヘルプメッセージが表示されてしまうのである。仕方がないので、Windows Update の途中に C:\WUTemp から Windows2000-KB893086-nec98-Express-JPN.EXE を取り出して、後で手動でこれを実行した。しかし、SP4 以降のアップデートが 38個、22MB とは多い。
Nr150/S20 (160MHz) @Win2k に TightVNC を入れてみたが、Nr150/S20 (150MHz) @Win98 の時よりもかなり軽快になったような気がした。オーバークロックが効いたのか、それとも OS の違いが効いたのか、どちらだろう。
NT 系ならば Ultr@VNC が最も高速だといわれている。1.00 も出たことなので、これを機会に試してみるのもおもしろそうだ。UltraVNC 漢字キー対応版も公開されたし、PC-98 でも Win2k ならば、漢字キー周りの小細工は必要なかったはず。
IC25N040ATCS04 はあぼーんなご様子なので、新しい HDD を買うことにした。そろそろ 40GB は飽きたので、60GB クラスの HDD を買おうと思ったが、60GB クラスは品薄なようだ。いろいろ見て回って、結局 HGST HTS548060M9AT00 (60GB, 5,400rpm) を \9,680 にて購入。もっとも、PC-98 の内蔵インターフェイスで使う以上、5,400rpm でも 4,200rpm でも大して速度差はないのだろうが。
USB メモリ TB-B256 を \1,980 にて購入。実験目的。Win98 には対応していないようだが、umss を使えば、inf ファイルさえ書けば、Win98 でも使えるようになるのだろうか。試してみたいが、USB ポートのある Win98 をインストールしたマシンがない。
HDD 交換のために Nr150/S20 をばらすついでに、クロック周波数を 60 * 2.5 = 150MHz から 80 * 2 = 160MHz に変更してみることにした。
PGR-GAME-ROOM は Nw150 関連の改造情報が充実していたのに、現在は情報が削除されてしまっている。Internet Archive に残っている情報と記憶を頼りにいじった。
マザーボード表、CPU のそばの 1L1 の 0Ω抵抗を外すと、クロック逓倍率が 2.5倍から 2倍に変更される。
マザーボード裏、SC484 の 10pin は 2F11 の 10kΩ抵抗によってプルアップされているが、ここで隣の 2F12 をショートすると、SC484 の 10pin が GND に落とされ、ベースクロックが 66.6MHz になる。さらにこの状態で、SC484 の 11pin を足上げすると、ベースクロックが 80MHz になる。SC484 のピンピッチは 0.65mm とかなり狭いので、結構大変である。結局、縫い針を使って足上げした。
1L1 から外した 0Ω抵抗を 2F11 に付けたのだが、2F12 を外して 2F11 に付けた方が良かったのかも・・・。
動作確認を行ったところ、無事動作して、160MHz で動いていることが確認できた。動作もかなり軽快になった。やはりベースクロックを上げるのは効果が大きい。以前は使う気がしなかった Win2k もこれならそこそこ使える。(以前試したときはメモリが 64MB だったような記憶があるので、それの差も大きいかも。Ls312 でもメモリが 80MB のせいか、かなり遅く感じる。やはり Win2k は 128MB が最低ラインということか。)
Nr150/S20 は今まで Win98 だけを使い、LAN カードには Accton EN2220 を使っていた。ドライバは accton.co.jp からダウンロードしたものを使っていたのだが、accton.co.jp はもうなくなってしまったようだ。以前ダウンロードしたファイルが残っていたのでとりあえず使うことはできた。今回は Win2k もインストールしたので、Win2k で EN2220 が使えるか気になっていたが、Win2k 標準のドライバであっさり動いた。
LAN 経由で玄箱にアクセスしてみたところ、内蔵 HDD よりも玄箱の方が速かった。(内蔵 HDD: 4.5MB/s、玄箱 CardBus 経由: 6.0MB/s)
Nr150/S20 に付けていた IC25N040ATCS04 が不調。ときどきカタンと異音が出る上に、長時間動かしているとアクセスできなくなることがある。3年近く使ってきたが、そろそろ寿命か?
改造版 HDD Health を使っても、Win98 で動かすと Brief Info タブには HDD の温度が表示されないようだ。Extended Info にはちゃんと表示されているが、何が原因なのだろうか。
La13 用に、4GB 以上の安い HDD が欲しいと思っていた。Fujitsu MHM2100AT (10GB) を \3,980 にて購入(一応新品)。La13 に取り付けて、ジャンパーピンを使って Slave にした上で、ICC で容量制限。とりあえず、4.25GiB HDD として使用する。流体軸受けでないのでうるさい。コントロールパネルで3分間アクセスがないと HDD の電源を落とすように設定しておいた。
HDD Health を使ってみたが、MHM2100AT は温度表示には対応していなかった。しかも、HDD Health を使っていると定期的に HDD にアクセスするせいで、HDD の電源が落ちない。これだと HDD Health は使うだけ無駄という気がする。
ついでに DOS で HDD のスタンバイタイマーをセットするプログラムを書いてみた。指定した時間アクセスがないと自動的に HDD が省電力モードに移行するのが確認できた。これを使えば、コントロールパネルで指定するよりも細かい時間を指定できるので、Windows 版を作ってみるのも有用かもしれない。
La13 に Win98 をインストールする際に、ネットワーク経由で必要ファイルをコピーしようとしたのだが、ネットワークに接続できず、はまった。NetBEUI プロトコルをインストールしていなかったのが原因だった。st6e@Win2k に NetBEUI をインストールしたところ、無事 st6e にはアクセスできるようになった。しかし、Ls312@Win98 には元々 NetBEUI がインストールしてあったのにどういう訳かアクセスできないままだった。深く追求するのは止めて、st6e を使って Win98 の CD-ROM から必要なファイルを La13 にコピーした。
MFC で、複数の拡張子を扱えるようにする方法を調べてみた。とりあえず、CViewで拡張子を追加したいというものが見つかった。「1. ファイルの種類は同じだけど拡張子が違う場合」について試してみたところ、VC7 ではうまくいったが、VC6 では使えなかった。昨日の DocMgrEx.cpp をいじって、VC6 でもセミコロンで区切って複数の拡張子を扱えるようにしてみた。WvePrn にも組み込んでみた。
DIB(デバイス独立ビットマップ)の作成、CreateDIBSectionによる汎用ビットマップ
ByteBlaster II は回路図そのものは公開されていないが、ブロック図は公開されている。ByteBlaster2ダウンロードケーブルの製作の回路図などと見比べてみると、結構違っている。
研究室の仕事で、MFC を使ってちょっとしたプログラムを作っている。久しぶりに MFC を使ってみたところかなり忘れていた。とりあえず、参考にした MFC 関連のサイトをいくつか。
Win2k のファイルオープンダイアログを使うようにするには次のようにすればよい。まず、上記サイトの CQA0800.exe を解凍し、DocMgrEx.h, DocMgrEx.cpp, FileDialogEx.h, FileDialogEx.cpp の4つのファイルを取り出して自分のプロジェクトに追加する。C*App::InitInstance() の LoadStdProfileSettings(); の呼び出しの次の行に
m_pDocManager = new CDocManagerEx;
という行を追加する。
ZOB Network - zmm viewer R2.4 ← ZOB Station がインターネットからアクセスできるようになっているようだ。非会員でも閲覧だけならば可能。create.soft には、今でもおもしろい DOS 用ソフトを開発している Pt's amagramme v0.00 のノートがあり、非常に興味深い。しかし、--Closed-- となっている。create.windows には春Mのノートもあるが 1998年の書き込みが最後になっている。
「WDM デバイスドライバ」のサンプルプログラムの Wdm2 をベースに REX-CFU1 のテスト用ドライバを作成。SL811HS のハードウェアリビジョンの取得に成功した。レジスタ 0E の上位 4bit の値が 2 であったことから Rev.1.5 と判明。(cfu1_00.lzh)
DebugView の他に、カーネルデバッガ (wdeb98 + Rterm98) も使ってデバッグメッセージの確認を行ってみた。DebugView を使った場合とは違い、KdPrint() で \n を出力しない場合は改行されないことが判明。
DebugView を動かしていると、デバイスの取り外し時に BSoD (Black Screen of Death) が出て、OS が止まってしまう。DebugView を使わず、カーネルデバッガを使っている場合には問題ないのだが。
DebugView をリモート接続して使う方法を調べてみた。dbgview /c とやって起動するとクライアントモードで起動し、ネットワーク経由でデバッグメッセージの確認ができる。わざわざ RS-232C をつなぐ必要がなく、またターゲットの OS がクラッシュしてもログは手元で確認できるのは便利である。しかし、BSoD 直前のメッセージは確認できなかった。BSoD 直前のメッセージを確認する必要がある場合には、やはりカーネルデバッガを使わざるを得ないようだ。
DriverUnload() 内で KdPrint() を呼ぶのを止めたところ、DebugView を動かしていてもBSoD が出なくなった。めでたしめでたし。
先はまだまだ長そうだ。
基礎から学ぶWindowsネットワーク 第20回 ファイル共有プロトコルSMB/CIFS(その1)
「Windows XP フィルタドライバプログラミング [入門と実践]」を購入。古本屋で見つけたら買おうと思っていたのだが、全然見かけないので、結局新品で購入した。
REX-CFU1 の Windows 用 USB ドライバの開発に向けて実験中。
Sysinternals の DebugView (Dbgview.exe) というソフトを使ってみた。わざわざカーネルデバッガ (wdeb98 + Rterm98) を使わなくとも、デバッグメッセージを確認できるのは非常に便利である。(カーネルデバッガを使う場合には、Windows を起動する際にわざわざカーネルデバッガを起動させておく必要があるのと、RS-232C で接続しなければならない点が面倒である。)
デバイスマネージャでデバイス ID などを表示させる方法が本当に Win2k で使えないのか、詳しく調べてみることにした。Win2k/XP のデバイスマネージャの本体は、devmgr.dll というファイルである。このファイルの中に DEVMGR_SHOW_DETAILS という文字列がないか探してみたところ、WinXP の devmgr.dll にはこの文字列があったが、Win2k の devmgr.dll には含まれていなかった。やはり Win2k のデバイスマネージャでは、この方法は使えないらしい。残念。
Win2k/XP のデバイスマネージャで、接続されていないデバイスを表示させる方法を発見。
> set DEVMGR_SHOW_NONPRESENT_DEVICES=1 > start devmgmt.msc
というように、環境変数 DEVMGR_SHOW_NONPRESENT_DEVICES を 1 にセットしてから、デバイスマネージャを実行すると、メニューの「表示」→「非表示デバイスの表示」を有効にしたときに、現在接続されていないがドライバはインストールされているデバイスも表示されるようになる。
DEVMGR_SHOW_NONPRESENT_DEVICES でググってみたところ、意外と引っかかる。DEVMGR_SHOW_DETAILS よりも多かった。
SmartSuite - Debianハックしちゃうぞ ← HDD の温度でファンコントロールする方法。(玄箱/HG を GbE で使うとファンが常に高速回転するようになるが、これを使えば熱くないときには、低速回転させて静かにできる。)
Win98 で Logitec の USB メモリ LMC-256UD2L を使おうとして、Win98 用のドライバをインストールしたのだが、どういうわけか USB メモリが認識されなかった。何度やってもインストーラを使ったドライバのインストールはうまくいかなかったので、i6comp.exe を使って、InstallShield 形式の圧縮ファイルから、USTORAGE.inf, USTORAGE.PDR, USTORAGE.SYS を取り出して、手動でドライバのインストールをしたところ、ようやく USB メモリが使えるようになった。
Debian 3.1 (sarge) にアップグレードすることにした。
# apt-get update # apt-get upgrade # apt-get dist-upgrade
アップグレードの途中に、ssh の設定で「チャレンジ-レスポンス認証」が云々というメッセージが出た。よく分からないので後で調べるとするか。(/etc/pam.d/ssh, 'PasswordAuthentication no')
アップグレードが終わり、玄箱を再起動することにしたが、玄箱の再起動前に uptime を確認してみたところ、
08:12:16 up 53 days, 21:53, 2 users, load average: 0.03, 0.21, 0.33
となった。
再起動後に動作を確認していたが、Samba が 3.0 になったせいで文字コードがおかしくなっていることが判明。@IT:Samba 3.0の全貌 改訂版[前編](3/3)を参考に設定をやり直した。
Java はシンボリックリンクを使った小細工の必要がなくなった。
ntp が 4.1.0 から 4.2.0 になったせいか、ntp.jst.mfeed.ad.jp に接続できなくなってしまった。対策が分からなかったので、/usr/sbin/ntpd, /usr/bin/ntpq, /usr/bin/ntptrace を 4.1.0 のバイナリに差し替えておいた。
GBE-SW5J を \4,980 にて購入。意外とサイズが大きくて驚いた。
早速 GbE 化の効果を調べてみることにした。玄箱をネットワークドライブに割り当て、HDBENCH 3.30 (容量 20MB) で速度を測ってみた。(参考:以前の結果)
Client | Read | Write | Copy | Interface |
---|---|---|---|---|
st6e | 16344 | 6883 | 5777 | PCI (1000BASE-T) |
一応 GbE 化の効果は出ているが、大した向上ではない。Write でもう少し速度が出てくれるといいのだが。
HDDの停止と温度計測 ← LANDISK の場合
ActivePerl 5.8.7.813 が出ていたので、ダウンロード・インストールしてみた。(ActivePerl は、6月と 12月に新版が出るらしい。)
GIU2V-PCI を \3,580 で購入。搭載チップは、LAN:VIA VT6122, IEEE1394a:VIA VT6306, USB2.0: VIA VT6212。PCI ブリッジチップが載っていないようだがそういうものなのだろうか。(VT6212 が PCI ブリッジを兼ねている?) st6e に取り付けたが、全く問題なく動いた。ただし、IEEE1394a 対応機器は持っていないのでそれの動作確認は行っていない。
うちの大学の講義資料のようだが、なかなか興味深い。
ck を ver 0.9.36 から ver 2.0.9 に完全移行することにした。SpringM のカレントディレクトリで ck を起動できるようにするために、ユーザー定義コマンドを登録することにしたのだが、こんな感じでかなり長いコマンドになってしまった。bash の -c オプションに与えるパラメータをクォートする必要があるのを知らず、ちょっとはまった。
startw -hide C:\cygwin\bin\env.exe CHERE_INVOKING=yes /bin/bash --login -c "ck -rv -g 80x40"
1000BASE-T 対応、5ポートの Hub (CG-SW05GTP) が \3,480 で売られているのを発見。何でこんなに安いのかが不思議。よく見ると Jumbo Frame に対応していないようだ。買うべきかかなり迷ったが、結局買わなかった。
USB-ET/TX-S を \880 にて購入。使う予定はないのだが、安かったので実験用に買っておいた。USB 2.0 対応の製品ももう少し安くなってくれると良いのだが。
LGY-PCI-GT を \1,780 にて購入。蟹チップは CPU 負荷が高くてかなり発熱するらしいが、安いものは蟹チップのものしか見つからないし、まあいいか。Hub は来週あたりにでも玄人志向のものでも買うかな。
サングラスのたわごと ← 玄人志向の社員の blog らしい。
WN-G54/R を \4,980 にて購入。無線 LAN アクセスポイント付ルーターだが、ルーター機能は使わず、無線 LAN アクセスポイントとして使う予定。
自作 USB-Serial 変換器を再度チェック。どういうわけか、RTS-CTS によるハードウェアフロー制御が全く問題なく動いた。前回動かなかったのは何が原因なのだろうか。前回から、ハードで変更した点は、電源部分に 10uF の電解コンデンサを追加したことしかない。ソフトの設定が間違っていたのだろうか。
ASPI の使い方を解説しているサイトを探してもほとんど見つからない。かろうじて1つ発見。ASPI for WIN32プログラミング (Internet Archive)。一応 C MAGAZINE 2001年11月号は持っているのだが。
DirectShow で CD を再生する方法を調べてみた。guliverkli(Media Player Classic の開発元)から CDDA Reader をダウンロードし、
> regsvr32 cddareader.ax
としてインストールすると、*.cda を DirectShow を使って再生できるようになる。ただし、Win9x では cddareader.ax は動かないらしい。
Win32 プログラム単体で MSCDEX を呼び出して CD-ROM を直接読み取るプログラムを書いてみた。Project-fao の QT_Thunkを用いたMSCDEXによる制御法や、[SDK32] Win32 アプリが Win95 の CD-ROM セクタを読みとる方法を参考にしつつ、GlobalDosAlloc32() や VxDCall0() を使って実装した。Win98SE 上でちゃんと動作することが確認できた。
サンクを使わず Win32 プログラムから MSCDEX を直接呼び出すのに成功したのは、もしかして世界初ではなかろうか。
先月の spam メールの集計結果。着信拒否になった spam が少なくとも 5673通。着信拒否にならなかった spam が 464通。そのうち Spam Mail Killer で削除できた spam は 456通(98.3%)。
おととい CPAN でインストールした Crypt::SSLeay は実は apt-get でインストールできたのではないかと思い、調べてみると、libcrypt-ssleay-perl, libwww-perl というそのものズバリのパッケージがあった。わざわざあんなに時間を掛けることはなかったわけか。
最近の Cygwin では、CHERE_INVOKING=yes という環境変数をセットして起動すると、ホームディレクトリに移動せずに bash が起動するようになっているらしい。古い /etc/profile では、次のようになっていた部分が、
# Make sure we start in home cd "$HOME"
最近の /etc/profile では、以下のようになっていた。
# Make sure we start in home unless invoked by CHERE if [ ! -z "${CHERE_INVOKING}" ]; then unset CHERE_INVOKING else cd "${HOME}" fi
/etc/profile を自分で書き換えている場合には、Cygwin のバージョンアップをしても更新されないので、注意が必要だ。(元ネタ: ck の掲示板)
この前の USB-Serial 変換器の電源制御をちゃんと実装しようかと思い、鈴商で 2SJ317 なる FET を買ってきたが・・・、基板上に付ける場所がない。
相変わらず、RTS-CTS の問題は解決していない。