ハングアップの日々

2003年 1月分

2003/01/26

 PIC を使った電子工作というと PIC16F84A が定番のようだが、PIC16F628 という物の存在を知って、とりあえず1つ買ってみた。PIC16F84A とピンコンパチブルで、PWM 機能や USART なども内蔵しているようである。高機能にもかかわらず PIC16F628 の方が安かった。(とりあえず PIC16F84A と PIC16F628 の比較ページ (Top Page))

2003/01/20

 Ls312 で DOS 窓を開いていると、サスペンドしようとしても「コンピュータを停止できません。」などと表示されてサスペンドできないようになってしまった。AT 機用のソフトをインストールしたのが原因か? そのソフト自体は一応動いていたようなのだが・・・。そのソフトをアンインストールしてみたが、状況は変わらない。そろそろ Win95 を捨てて Win98 でもインストールしろというお告げか? Win95 のサポートは完全に打ち切られたそうだし、Win95 をはじくソフトも増えてきていることだし・・・。
 DOS 窓での日本語入力もできなくなってしまっていた。CTRL+XFER を押すと懐かしの 16進入力モードになってしまう。困ったことだ。
 よく調べてみると、system.ini の [386Enh] セクションにあるはずの device=vime.vxd という行が消えていた。書き足したところ、上記の2つの問題は無事解消された。

2003/01/09

 DDTX を少しいじっている。カラー表示にしてみたり、表示をさらに高速化してみたりしている。30行BIOS にも対応させてみようと思い、少し調べてみた。わずかな変更で対応させることが出来た。しかし、AutoMATE では表示が崩れてしまった。AutoMATE はエスケープシーケンスの処理をちゃんと行っていないような感じである。残念。

2003/01/08

 Ls178 に WinNT4.0 をインストールしてみる。セカンダリ・スレーブの CD-ROM ドライブは認識できないようなので、ドライブを XM-1502B に交換してインストールすることにした。特に問題なくインストールできた。Win2k に比べて起動時間がずいぶん短く、また動作も全体的に軽いように感じた。セカンダリ・スレーブが認識できないのは非常に不便なので、サービスパックを入れれば何とかなるかと思い、SP6a をインストールしてみたが、結局、セカンダリ・スレーブは認識できなかった。PC カードのホットプラグに対応していないのも実に不便である。ノートには全く向いていない OS である。
 ずいぶん前に、Read/Write FD が NT で動かないという報告があった。Ls178 で動作を確認してみることにした。(そもそも Ls178 に NT をインストールしたのは RWFD のデバッグが主な目的だったりするわけだが。) 確かにエラーが発生する。いろいろ調べた結果、GetDiskFreeSpace() でエラーが発生していることが判明した。NT では、これの引数に NULL を指定してはいけないようである。

2003/01/07

 FMO-1300USB(中古)を \16,800 にて購入。USB-SCSI 変換ケーブルなんか無くていいのでもう少し安くして欲しいところだが、まあいいだろう。何かの時に役に立つこともあるかもしれない。縦置き用のスタンドが無い。マニュアルも無くて DIP スイッチの設定が分からない。とりあえず動いているようだが、なぜかディスクの入れ替えを検出してくれない。後でマニュアルが DL できることを知り、早速 DL して確認してみると Macintosh モードになっていた。元に戻したところ、無事ディスクの入れ替えを検出してくれるようになった。以前の MO ドライブに比べてずいぶん音が静かである。

2003/01/06

 秋葉で MO ドライブを物色。なかなかいいものが見つからない。今まで使っていた MMO-640FX と同程度のサイズの物となるとほとんどが USB 接続になってしまう。小型の SCSI 接続 MO ドライブはもはや絶滅か?

2003/01/05

 帰省先から戻ってきて、帰省中に作業した内容を MO にバックアップしようとしたが、MO ドライブがメディアを認識しない。壊れてしまったようだ。

2003/01/03

 実家の Ls166 にインストールしてある某ソフトの印刷出力を PDF にしたいと思った。PostScript プリンタのドライバをインストールし、「ファイルへ出力」を選択することで出力を PostScript 形式で保存し、それを Ls312 に持ってきて PDF に変換することにした。問題はどのドライバを使うかである。ドライバによって、出力できるサイズや解像度に違いがある。またカラーに対応している物は少ない。ドライバの仕様が分からないので、名前に "PS" が付いているドライバを片っ端から試してみることにした。何個も試してみて、何とか PDF に変換することができた。

2003/01/02

 MPLAB を少し使ってみているのだが、TAB 幅を 8 や 4 に設定しても、9 や 5 になっていたり、ウィンドウの右下(ステータスライン)に表示されている Column 数の表示が実際とは、ずれていたりして怪しげである。

2003/01/01

 MPLAB Ver.6.10 内蔵のエディタを日本語に対応させることに成功。とりあえず以下に示すパッチを当てると、フォントとして FixedSys を使って、日本語が表示できるようになる。ただ少し問題があって、IME(MS-IME のことではない)を使って入力するときにインラインで入力できないのと、日本語の表示されている行の後ろにゴミが出てしまう。
 少しパッチの解説をする。このパッチは以下に示すように3つの部分から成っている。1つ目のパッチを当てることで任意のフォントを選択できるようになったのだが、MPLAB は、新規にファイルを作成すると必ず Courier New が使われるという腐った仕様になっていたので、その対策としてさらに2ヶ所パッチを当てる必要があった。ここで、フォント名とその属性は、リソース内に独自の形式で格納されていたために、パッチ当てには苦労した。さらに、デバッグバージョンとしてコンパイルされているために、プログラムのあちこちに ASSERT() やスタックチェックルーチンなどが組み込まれていて、プログラムの流れを追うのが大変だった。

FILENAME sveditor.dll
000595AB: C1 81

100595a6 c7459c0120c100     mov     dword ptr [ebp-64h],00c12001h
                ;CF_SCREENFONTS | CF_LIMITSIZE | CF_FORCEFONTEXIST | CF_SELECTSCRIPT | CF_NOSCRIPTSEL
                ↓
100595a6 c7459c01208100     mov     dword ptr [ebp-64h],00812001h
                ;CF_SCREENFONTS | CF_LIMITSIZE | CF_FORCEFONTEXIST | CF_NOSCRIPTSEL

これは、CF_SELECTSCRIPT フラグが指定されているせいで、フォント選択ダイアログに日本語フォントが表示されないので、それを解除するためのパッチである。

FILENAME sveditor.dll
000FECC8: 01 01
000FECC9: 00 01

ANSI_CHARSET → DEFAULT_CHARSET

ANSI_CHARSET を指定しているせいで、次のパッチで日本語が使用可能なフォント名を指定しても英語フォントが使用されてしまう。ここを DEFAULT_CHARSET または OEM_CHARSET に変更すると日本語フォントが使われる。000FECC8 の 01 という値はこの要素のバイト数を示しているようである。

FILENAME sveditor.dll
000FECD2: 0B 0B
000FECD3: 43 46
    :
    :
000FECDD: 77 00

"Courier New" → "FixedSys",0,0,0

これはフォント名を変更するパッチである。000FECD2 の 0B という値はフォント名の文字数を示しているようである。
 とりあえず ktp 形式でパッチをアップしておく(sveditor.ktp)。実行ファイルに大きな変更がなければ、バージョンアップがあってもこのパッチが使えるはずである。


Copyright (C) 2003 K.Takata