- ●9月1日
CD-ROMも忙しいというのに、今日は外回りがハードスケジュール。外出するまでに、メニューとかを適当に(をぃ)でっちあげて、CD-ROM動作確認&メニュー校正願いを編集部内にメールして、あとお願い!
で、11時高田馬場待ち合わせで、打ち合わせを兼ねて早めの昼食。でもって溝口の某測定機器メーカーさんにおじゃましてデモを見せてもらったり打ち合わせ。そして終了予定の3時半を少しオーバーしてしまいながら、慌てて田町に。7時過ぎまで非x86系エンベデッドシステムについて熱く語る(ん? 見識間違ってます??(笑))
で、会社に戻ってCD-ROM製作の続き… うわぁ〜今回の最後の大物収録ファイルNetBSD/SH3…220Mもあるよ 100M弱オーバー(涙) っということで、容量削減作戦開始。まずRISC評価キット自社広告全面カット。これで60M減。展示会写真集のJPEGファイルの圧縮率を2倍〜3倍程度に上げて、約20M減。これで80M…あと10M空けないときついな。ん〜 本誌関連ファイルはLZHで圧縮してるんですが、作成したプログラムがWindowsのEXEプログラムで単独起動できるものは、CD-ROMメニューから直接起動できるようにもしてる…つまり、同じファイルが二つ入ってる計算になるので、一部の記事のファイルはLZHのみで我慢してもらおう。 …ん〜 あと削れるところは… しょ〜がない、エンディングのWAVEファイルのクオリティ(量子化ビット数かサンプリングレート)をもう1段落とすか… それと、オープニングビデオの時間もあと10秒短くして… これで入るだろう!!
- ●9月2日
CD-ROM製作… なんか投げやりなビデオ編集とか、自分が行ってない展示会にはコメント付けられませんとか言い訳(^^;)
あまり頭が回転しているとは言えない状態での作業は、マスタファイル/ディレクトリに対してDキーを押してY/N画面が出たところでハタと気がついてESCしたり… ヤバイです(汗)
ほう、なんでも、今日は今年一番の暑さだったとか!? もう9月だよ?? って、CD-ROM製作の追い込みで1日じゅう冷房の効いた会社の中にいたので、今年一番の暑さは知りません(^^;)
- ●9月3日
う〜 だんだん飽きてきた(をぃ) 気分転換に某試作4号機のブリッジの修行(そんなん触ってる暇あるのか?? ^^;)
ん〜 ぜったいこのブリッジの仕様はわかりづらいよナ。デバドラ作る人だったら、PCI側から見たアドレス、SH-4の物理アドレス、SH-4の論理アドレス、さらにMMU稼動時の仮想アドレスがしっちゃかめっちゃかになるよ。それと、PIOアクセスウィンドウが1枚しか無いのが気に入らない(^^;) いや、たしかにPCIはバスマスタによるバーストアクセスが基本だけどさぁ、しかもリニアにアクセスできるのが16Mバイトしか無いのはちょっネェ〜 っということで、某所で画策中のチップセットは、もっとスマートなアーキテクチャにしましょ〜!!
で、割り込みだよ割り込み。間に入っているDECIntelのPCI-PCIブリッジが割り込み出してないんじゃないか?? 回路図みても、何枚にも分割されてるので、信号が追えなひ… 明日開発元に質問しよう。
…さて、CD-ROM作ろ…
- ●9月4日
ついに来ましたInterGiga No.20マスタCD-R締め切り日(社内での付属CD-ROMチェック体制が厳しくなったのに伴って、編集部での締め切りはホントはもっと早かったんだけど、拝み倒してギリギリまで待ってもらった(汗)) あれからファイルのスリム化など細かいところを調整したら、さらに10Mバイトくらいダイエット成功(それでも650Mバイトですが) 最近はロングファイル名でそのままばんばんファイルを収録するので、ディレクトリテーブル??のサイズもバカにならないんですよねぇ
某試作4号機の割り込みシステム… そうか、SuperI/Oに入れてからCPUに割り込みかけるんですか。なるほど…どうりでINTA#〜INTD#がCPUまで配線されてないハズだよ。
え? あぁ〜(謎)って何かって? いわゆる移動体通信機器を買って、それにメールを転送するのにスッタモンダしたってことで。えぇ、これで私もモバイラー!?(っは!ノートパソコンはまだ購入してないぞ^^;)
- ●9月5日
午前中はちょっと使用で自宅近くの郵便局へ。ありゃ雨か…郵便局までちょっと歩くんだよなぁ〜 もう少し駅に近けりゃ〜 とか文句言っても雨は晴れないし近くもならない! 着いたら着いたで、なんか窓口がすげぇ〜混んでるし…むむむむ
で、お昼過ぎに会社に出てきてメールチェック。で、すぐさま国分寺の某H社に。雨晴れねぇ〜し… タクシーにするか(ずぶぬれのカッコで打ち合わせはまずいっしょ^^;) んが、正門でおろされてしまって、どしゃぶり中とぼとぼ数百メール歩くはめに(超エレって言って「はい」って言ったじゃんか〜>運ちゃん)
で、某評価ボードについてモロモロ。ナイショの話とかイロイロ。サポート部隊って、どこも大変ですよねぇ(他人事ではなかったりするので^^;)
むむむ!! V-Prot PRO、WimMeで動かないんっすか!? っち。 ISAバスなレガシーデバイスだしなぁ〜(でもISAのPnPには対応してるんだけど) ま、しゃぁ〜ないか。
- ●9月6日
新FLEX評価キットのサポート関連で某筆者と打ち合わせ…の前に、ISAベースボードのPCカードインターフェース周りを見てもらう。そうそう、ストレージオシロもあるので実際の波形を観測… って、そうだよ、コレ借りてからもう1ヶ月経つじゃん!! 借りるだけ借りてまだ使ってなかったといふ…なかなか手が回らなくて…すいません。
で、どうでしょうか。あ、そうかオシロだから周期的にバスをアクセスしないと波形が出ないですよね。ちょっと待ってください、今テストプログラムを作りますよ… これで波形出ません?? で…どうですかね… ん〜 波形汚い?? アンダーシュートがキツイですか、ふむふむ。となると、やはりダンピング抵抗か。前回のテストはオシロで症状を確認したわけではなかったので、ダンピング抵抗を入れることによる効果を定量的に計りたいですね。しかも前回は挿入した抵抗も値の小さいやつで、かつ一部の制御線にしか入れてなかったんで、今度は少し大きめ(っといっても100Ωくらいだけど)のやつを、さらにすべての制御線とアドレスバス/データバスにいれてテストしてみるか(大変だなT_T)。せっかくストレージオシロを借りてるんで、抵抗値を変えたりして効果のほどを波形を観測して比較してみましょう(あぁ〜やらなきゃならないことがまだ片付いてないのに、また宿題が増えた^^;)
- ●9月7日
今日は午前10時から八王子方面で打ち合わせ。自宅からだと1時間半は見ないとまずいか。いや、2駅乗ったらすぐ乗り換えというパターンが2ヶ所で、しかも途中に武蔵野線→南武線という鬼門(笑)があるから、乗り継ぎ時間はたっぷり見ておいたほうがいいか…と思って、早めに出たつもりが、乗り越し清算してたら電車行っちゃったよ(関東近辺のJR/私鉄/地下鉄共通で使えるカードっていつからだっけ?) おかげでちょっと遅刻…
打ち合わせの主題は、次の次のUSB特集の件。そうですね、Webサイトからダウンロードできる評価版のコンパイラでできる範囲だと、読者もすぐに試してみることができるので、そのほうが受けがいいでしょう。
でもって、午後は中野方面の某筆者宅におじゃま。おおおお、お手製の○ラ○ッ○ボードががが!!! 手配線の試作ボードですからねぇ〜 安定動作という点は仕方ないでしょう。えぇ、完成したら是非ゼヒ!!
- ●9月8日
本誌2000年11月号の編集作業/校正、大詰めです。今日と月曜日で返さないとまずいですよね? ここのところ打ち合わせとかで外出が多かったからな…
おおおお!! ついに出ましたネ ん〜 早かったなぁ〜(ボソっとした口調で) 年末あたりかと思ってたんですが。そうか、今年はWindowsMeが9月に出てしまうから、年末商戦向けのモデルを若干前倒しにしてるのかも。土日にVAIO関連の展示会??があるみたいで、そこで実際にWindowsが動くクルーソー機を触れるそうだけど、ちょっと忙しくて行けそうに無いんだな。ま、もう少し立てばそこらかしこでインプレッション記事が出てくるだろうから、まずはそれをチェックかな。え? 購入?? いや、液晶がXGA未満という時点で却下です(^^;)
- ●9月9日
さて、先日のアンダーシュートが厳しかった件、対策を講じて見ますかネ。すでに完成している基板には、もう手の入れようがないので、フラットケーブル圧着コネクタと、ピンヘッダの間にゲタコネクタ!?をはかせる作戦。とりあえずは制御線とアドレスバス/データバスすべてにダンピング抵抗を入れたゲタと、制御線とアドレスバスには入れてデータバスには入れないゲタの2種類を用意。
さて、1Gストレージオシロの出番。さっそく前回と同じ場所にプローブを繋いで波形観測… ん〜 アンダーシュートが綺麗に抑えられてますねぇ〜 PCカードの種類を変えて観測するも、どのカードでも同様の傾向が。それと、データバスには入れなくても、かなり安定してるなぁ… では次に、再度、PING応答耐久試験を実施しますか。今度は一晩ほったらかして置いておこう…
- ●9月10日
さて、耐久試験の結果は… いつもの休日のごとくお昼過ぎに会社に行く。…と、会社前で清掃器具の積み下ろしをしている人が… あ! ヤバ!! 今日って会社の清掃日だっけ!? フロアに入れないじゃん=仕事できないじゃん。幸い?!4Fはあと30分もすれば入れるとのこと。しょうがないので会社近くの本屋で時間つぶし。トラ技が平積み状態…そっか、今日は10日か。この本屋、まぁ〜そこらにある普通ぅ〜の本屋さんなので、当然専門書を置いているわけでもなく、たまにしか寄らないからなんでしょうが、未だにここでうちの本を買っていく人を見たことないんです(汗)
1時間後、フロアに侵入成功!? さっそくテスト結果を見ると… 50万パケットエラーフリーですね。まぁ〜でも、もともとCPU負荷的には高くない動作確認プログラムなんで、いづれ、もっと厳しい条件でテストしないとな。
そうだ、例のウェイトかかりっぱなしになっちゃうカードは、うまくタプルが読めるかな。(ゴソゴソ)…おおおお! ハングアップしないで読めてる!! さらに調子に乗って別のPCカードで動作テスト… 某筆者から借りてるNE2000互換…かと思っていたら実はNE1000互換だったカード(^^;)のCCRの書き替えも、ぜんぜんオッケェ〜 これは明らかに効果アリだな。
さて、問題が一挙に解決したところで、次は明日の午後に締め切りが迫っている案件を片付けねば。って、明日までに間に合うのか!?
- ●9月11日
ん?? ふと気がついて携帯の液晶を見ると… ありゃ! 「メールのメモリがいっぱいです」(だっけか??忘れたけどそういう意味の内容^^;)という表示が!!(Eメール自動受信にしてますんで) とりあえず緊急メールがないか一通り読んで全部消す。ん〜メモリって少ないんだなぁ〜
さて、午後の打ち合わせまでに某設計データをFIXして、VHDLソースやらプロジェクトファイル/コンフィグレーションファイルなどをCD-Rに書いておかないと。ファイルを間違うとえらいことになるので、マスタ用データを作って再度ダウンロード&動作確認してからRに書き込み。
で…「午後2時頃には打ち合わせが終わるので、その後に…」とのことだったんですが、なかなか連絡が来ない。そんなに急ぐこと無かったな(笑) 結局午後5時過ぎにTELあり。お疲れ様です。打ち合せ長かったですねぇ〜 で、お疲れのところ申し訳ありませんが、次の記事の件で…(追い討ちをかけるがごとく^^;) あ、これが例の設計データです、どうぞ。
ん〜 メールも転送されてないから緊急の用事は特に無さそう。時間も時間なので、タマには早く帰ろう(^^;)
- ●9月12日
…いや、それにしてもメールが来ないな。転送設定に“レ”点つけたよな。 ん〜っと思って、こちらからメールサーバーに接続したら… 「未読メールが11通あります」って、をぃをぃ!! 一度メールが携帯本体に入りらなくなると、メールを消しただけでは自動受信は再開されないのか!? ん〜あの分厚いマニュアルのどっかには書いてあるんだろけど…読みたくないナ(^^;)
朝… それにしてもすごい雨。道路が川になってないだけマシか?? 何が大変かって、今日は午後から東大和市まで打ち合わせにいかにゃ〜ならんのよ… で、お昼にちょっとだけ巣鴨に寄る約束をしていた筆者さん、丁度??移動時間が降りの激しい時間帯で大変でしたね。で打ち合わせの後、外に出たら晴れてるし。晴れるならトッとと晴れろ!?
で、ちょっと緊急の用事(試作部品買い出し!?)で秋葉原に、で、すぐにとんぼ帰り。それから慌てて立川経由多摩モノレールで、Interface増刊 TECHI Vol.6「IEEE1394の徹底研究」の筆者事務所へ。出来たてホヤホヤの献本を持参「やっと出来ました!!」 今後の展開や雑談など、2時間半ほど長話。
お、こっちも??やっと出てきましたね。PS2のUSB端子を活用するソフトや周辺機器が(あ、USB端子使うソフトは既にコレが出てるけど^^;) さて、どんなもんでしょうね。
- ●9月13日
某試作PCIボードのために、急遽BMPファイルローダを作成。手軽にデモできるようにDOS用で…んが、ロードする先のメモリアドレスはFC00_0000h、遥か32ビット空間のかなた(笑) こんな時こそこの本のPCIデバッグライブラリを!!
わ、いいんだけど、BMPファイルの構造ってどんなだっけ?? たしか昔、VB2(たしかに古いな^^;)でBMPファイル操作ユーティリティを作った覚えがあるな。それを見れば思い出すか… と、バックアップCD-Rからファイルを発掘。ヘッダファイルの構造体定義をC言語向けに書き換えて…/* BMPファイルヘッダ構造(WindowsタイプBMP) */ struct BMP_HEADER { char BitMap[2]; unsigned long FileSize; int Reserved1; int Reserved2; unsigned long DataOffset; unsigned long HeadSize; unsigned long Width; unsigned long Height; int biPlanes; int ColorBit; unsigned long Compress; unsigned long biSizeImage; unsigned long biXPelsPerMeter; unsigned long biYPelsPerMeter; unsigned long UseColor; unsigned long UseColorA; };ん〜 1バイトの型2つの後に4バイトの型か… 今回は16ビットCだからいいけど、これ、いずれは32ビットRISC環境にもってくつもりなんだが、そうすると隙間が空いちゃってそのままじゃ使えないなぁ〜 もうちっと考えてヘッダ構造決めて欲しいよな(ブツブツ^^;)
struct BMP_HEADER Header; (中略) /* BMPファイルヘッダ読み出し */ i=sizeof(Header); if (read(fh,Header,i) != i) { printf("BMP file header read error!\n"); return -1; }あれ?? if文のところでエラーが出るぞ… こんなときは「教えて! C言語のえらい人!!」 名前の前に“&”を付けないとポインタにならない!? あ゛、あ゛、さいでした… あぁ〜 修行が足りなひ(ただの配列ん時は付けてないからなぁ〜^^;)
- ●9月14日
ん〜 「ノートPCはソニーに比べ3周遅れている」発言の回答がコレ?? ん〜 あんまし変わった風でもないけどなぁ〜 内蔵CD-ROMドライブをCDプレーヤとして直接操作できるパネルを付ければAVパソコンと思ってるあたりがすでにヘナヘナかと(トラック表示とかPLAY/PAUSEキーとか)。けどIEEE1394ポートが2つあるのは私的に高く評価するぞ(^^;) ジョグホイールっつ〜のも触ってみないとわかんないし。ま、詳細はまだ不明なので、エレショ…もとい、CEATECで拝まさせてもらいましょか(そうか、もう1ヶ月ないじゃん…)。
さて、先日もらった某キーボードドライバの動作テストをしてみるか。ふむふむ、なるほど。ちゃんとLED点灯制御もできるね。さて、ソースは…
(激汗) あ、あのぉ〜 移植性考えてくれてる??(CPUアーキテクチャの違いからくる問題は多少目をつむるとして、コンパイラ依存バリバリ^^;)#define STI() _asm_STI("\n\tSTI\n") #define CLI() _asm_CLI("\n\tCLI\n") #define EOI() _asm_EOI("\n\tPUSH\tAX\n\tMOV\tAL,20H\n\tOUT\t20H,AL\n\tPOP\tAX\n")え?! 今晩行くかって? どこに? 秋葉!? あぁ〜今晩だっけ?? もういいです…行かない(っつ〜か、だいたいあれってOEM版でしょ? そりゃちゃうと思うけど^^;)
- ●9月15日
さて今日は、時間があるときにやってしまわないといけない宿題を片付けるとしますか。例のダンピング抵抗の件。抵抗値をいくつか変えて、アンダーシュートの出具合をストレージオシロで観測して波形取り。お借りしているオシロには波形のプリントアウト機能や画面キャプチャ機能が無いので、画面をディジカメで撮影するローテクな方法で(笑)
とりあえず抵抗値は手元の部品箱にある中から、22Ω、33Ω、47Ω、82Ω、100Ω、150Ωの6つと、何も繋げない場合の0Ωの計7条件。またPCカードによっても特性が異なる可能性もあるので、とりあえず2種類のカードでテスト。
で、いざ写真を撮ろうとしてディジカメの電源を入れたら…「CARD ERROR」!? をぃをぃをぃ、これから仕事だっちゅ〜に。ディジカメのフォーマット機能でまっさらにしようとしても「CARD ERROR」でフォーマットができない!! えぇ〜い、USBのスマートメディアリーダ/ライタに入れて、Windows上からフォーマットだ… これはOK… で、これならどうだ!! っと入れても「CARD ERROR」(涙) ここで取り説のご登場。なになに…電極が汚れている場合があるので、乾いた布なのでふいてください?? 綺麗なんだけどなぁ〜 本体側のコネクタにゴミでも入っちゃった?? そこで20回ほどメディアの抜き差し抜き差し抜き差し… を繰り返したら、復活しましたとさ。やれやれ…
でやっと実験開始。ん〜 22Ωや33Ωでは多少は抑えられるものの、やはり盛大なアンダーシュートが出ますな。47Ωあたりから効果が出始め、82Ωでかなり抑えられてるっぽい。で150Ωまでいくと、今度は立ち下がり波形がちょっとなまってきてるのがわかる。ってことは、やっぱ100Ωだねぇ。いろいろな回路図を見ると、LPTポートとかディジタルI/Oピンのところに、とりあえず100Ωが入ってるけど、それなりの根拠があるってことだ(^^;)
っということで、いろいろ原稿をお願いしている筆者に、対策部品(笑)を作ることに。ちょうどいいピン数のコネクタが手に入らなかったので、はみ出し多分をカットして、ダンピング抵抗実装のゲタコネクタを10個ほど作る。ふ〜結局1日仕事になってしまった。
- ●9月16日
今日はお昼から会社で細かな雑用を片付ける。昨日作ったゲタコネクタを筆者に発送準備したり、いつもの作業場を掃除したり(あんまし綺麗になってないって??^^;) おっとやばいやばい、もうこんな時間。夕方は所沢の某筆者のところで打ち合わせが。急いで荷物をまとめて池袋へ。ん〜怪しい雲行き… で、所沢に着くと案の定(T_T) なんかさぁ〜いつぞやも、所沢ですっげぇ〜大雨で足止めくらった覚えがあるんですけど… ま、今回は車で駅まで迎えに来てもらったので楽勝(何が??)ですが。
えぇ〜と、今日のお題その1(^^;)は、「PCI-PCIブリッジの謎を解け!!」です。物はPCIブリッジとしてポピュラーな21150っす。ふむふむ、なるほど。じゃコレとソレとコノのレジスタを初期化すればいい感じかな?? 設定しないとサブトラクティブデコーディングするとか無いよね??
さらに、今日のお題その2(^^;)は、いただいたS3 86C928で証明された「S3系ISA版VGAコントローラの初期化手順には互換性がある」から導き出される可能性「ひょっとしてPCI版も同じ??」の検証です(笑)
手順は、前回とまったく同じテスト方法。さすがにPCIバスはピンピッチが狭いので、今回はエクステンダボードを使ってその上にVGAカードを。ただしリセット信号はエクステンダ上でパターンカットして、前回同様の方法で(^^;)。
今回はPCIなので、無理やりボードにリセットをかけると、ベースアドレスレジスタやコマンドレジスタもクリアされてしまうので、PCIデバイスとしての初期化もしてやらないと動かないので注意。そのあたりで少し手こずりましたが… おおおお、ちゃんと絵が出ましたね。やっぱVision868はISAバス版のコントローラと同じ手順か。
となると、他のS3系コントローラがどうなるかテストしたいが… 手持ちのTrio64とViRGEは、なんかカード自体が死んでるっぽくて今日は持ってきてないんっすよ… え? ViRGEのPCIカードならあるって?? おお! さっそくテストテスト!! んがしかし… ん〜 ダメっぽいな。ってことは、ISAバス版と同じ初期化処理が通用するのは、今のところVisionだけってこと…か
で、そんなこんなでもう日付が変わりそうな時間です。
- ●9月17日
一休み??してから自宅まで送ってもらう(いつもいつもすいませんデス)途中、ファミレス寄って夜食(って、もう朝です^^;) 夜食を食べながら(だから朝食だって)、今日昨日のお題その3(^^;) 先日いただいたキーボードドライバなんですが、「何やってんかよくわからんので教えて」ください(汗) PC/AT&LSI C-86ベッタリなのはいいとして(移植するこっちは大変だけど)… そうなんですよねぇ〜 キーボード割り込み(IRQ1)は、普通のやり方ではPCIバス上で捕捉できないので、x86との連携プレイでないと… でさらに、普通の割り込みなら問題ないんですが、PS/2キーボードのLED点灯制御をしようとすると、キーボード割り込み処理中でまたキーボード割り込みを発生させんとならんので、そのあたりの処理をx86と連携させる部分が、はたしてうまくいくのかどうか不安… ま、やってみましょう。
夕方は池袋でLinux関連ネタで打ち合わせ。この本を使って、とりあえずこれでLinuxを動かしてもらい、最終的にはアレとかコレとかソレを動かす(何だかよくわからん^^;)
などという打ち合わせをした後から… 実はこれってよく読んでなかったりするので(笑…ぢゃないですネ) 改めて読んでみる。また付属CD-ROMの中にどんなファイルが入ってるか、TGZファイルを片っ端から解凍して内容確認。おおおお!! Linux-SHのアーカイブファイルの中で、GDBスタブのREADME中の Thanks to のところに、私の名前が入ってる!!(今ごろ気付くなよ^^;)
- ●9月18日
さて、昨日/一昨日に伝授(^^;)してもらったPCI-PCIブリッジの初期化方法をやってみますか。これでいいと思うんだけどな。ホントに指定したアドレス空間だけをセカンダリにブリッジしてるか確認しないとな。そこで、汎用ロジアナとお手製トリガジェネレータを組み合わせた自作PCIバスアナライザを取り出してPCIバスの動きを捕捉。 …うぉ? 誰もいないハズのアドレスなのに、なんかDEVSEL応答してるヤツがいるぞ?? 高速、中速、低速… え?? ISAバスブリッジ?? ディセーブル状態のハズじゃ…?? ん〜 で結局Vision868の初期化… やっぱりVRAM書き替え不能。何故だぁ〜?!?!
今日はお昼から夜まで秋葉→浅草方面で打ち合わせ。時間も時間なんで、そのまま直帰したいんですが、そうもいかないので会社に戻る。某旅行の準備せんとなぁ〜(まだぜんぜんやってない)
- ●9月19日
お昼に急遽、物の受け渡しで立ち寄られた筆者と、ショートミーティング。で、午後から、今週末の某社員旅行の件で打ち合わせ。えぇ、CQ会幹事(にさせられた!?)なもんで、年に1度のご奉公(^^;) おおお〜バス割りや部屋割りがもう出来てる!! ありがとぉ〜(もう一人の幹事さんが作業をしてくれた サンキュ〜) さて、じゃ〜某宴会で何やりますかね?? 前の打ち合わせでも言ったけど、いつもの年と違うことしたいんで、しょうもないコンピュータを使ったゲームを考えてるんですが… ただし、まだプログラム作ってないのでうまく行くかどうかわかりません(をぃをぃ)
っていうか、原理的な部分の動作確認もできてなかったりする… あわてて、その分野に詳しい筆者にメールして、データ転送のフォーマットを聞く(そんなんで間に合うのか!?)
しばらくするとさっそくメールが。ふむふむ、なるほど。こうやればデータが取得できるんですね。さっそく某汎用USBドライバとDLL、そしてVB5を使ってWin32プログラミング。 ん? あれ? ハングアップした?? ん〜読み出しファンクションをコールすると返ってこな… あそうか、USBマウスって、動かさないとデータ送ってこないんで、データ来るまで待ってるのか。ん〜そりゃ困ったな。1個だけならそれに専念できるけど、想定しているのは複数個… で、また相談のメール。
- ●9月20日
なるほど。このリクエストを出せば動かさなくても移動量0としてデータを返してくるわけですね。んで、このリクエストを送信するには、このファンクションを使って、このパラメータを渡せばいいのか。 …ん〜 動かん(汗) VBからのDLLの呼び出し方法がまずいかな?? ってかこのファンクション、戻り値がBOOL型なんだけど、C++のBOOL型って、何バイト?? VB5のヘルプ読むとVBではBOOL型って2バイトになってるぞ…
で、これら技術的課題も当然重要な問題なんだけど、それよりなにより最大の問題は、まだどんなゲームにするか決まってないってことか(をぃ!) 私なりに考えるパーティー用コンピュータゲーム??のポイントは…
(1)多人数同時プレイ(4人はまだまだ少なすぎ、8人以上が理想)
(2)ルールはアホらしいほど簡単に(だれでもできることが絶対)
(3)ゲーム画面は大画面に映す(周の人も画面を見れるように)
で、(1)の要件から、予算をかけずに容易に入力デバイスを用意できるとなると、社内にころがってるUSBマウスが最適?? HUBを使えばポート数はいかようにでも。(2)の要件から、やることはひたすらマウスを転がすだけ(^^;) 一定時間以内に一番カウント数を上げた人が優勝。ただしそこはゲームですから、一生懸命マウスを動かせばいいってもんではなく、移動量×乱数とか、変化要因を入れますが。(3)は会社のプレゼン用液晶プロジェクタを持っていけば、なんとかなるかな…
おっと、このゲームの某景品(^^;)を購入してこなくては。ん〜この袋にこの大きさの箱だと、鋭い人に中身を言い当てられてしまうので、持ってく時は箱は新聞紙で包んで、さらに京王プラザの引き出物の袋に入れてカモフラージュ(計ったようにちょうどいい大きさ^^;)
- ●9月21日
んだって?? bool型は1バイトで、BOOL型は4バイト?? なんじゃそりゃ(^^;) まぁ〜でも、DLL作者ご本人様からも、そのファンクションにバグは報告されてないし、使い方も問題なさそうなお墨付きはもらえた。ってことは、もともとそのマウスがそのリクエストに対応してなかった…ってオチか??(笑)
朝、筆者よりメール。お! 例の件、準備完了!? ん〜急で申し訳無いんですが、お近くの駅まで行きますので、今日の夕方とかに受け渡しできます?? 私のほうからもお渡ししたい機材…ってか電子部品(某FPGA用フラッシュ版シリアルROMと、1MビットのファーストページDRAM !! ^^;) ってことで、夕方、豊田方面までいって、筆者から怪しいUSBターゲット機器と動作確認用USB機器のいくつかを受け渡し。
さて、そろそろ社内からUSBマウスをかき集めてきて、プログラム組みますか(をぃをぃ、明日が某社員旅行だぜ) で、これだけあつめて実際にテストすると、いろんな挙動を示すマウスがありますねぇ〜(汗) 例のリクエストの件も、とあるマウスだとファンクションの戻り値がTRUEになって(リクエスト送信成功)、しかも移動させなくても移動量0でデータが返ってくることが確認されました!! …んが、さすがに8個も繋ぐと重いな。ドライバ処理の全体をカーネルモードでやってるわけじゃないし、しかもアプリ自身がVB(すいませんWin上ではVBしか使えないもんで^^;)だから輪をかけて遅い。これでちゃんとゲームになるのか心配(他人事のように)
- ●9月22日
ん〜 恐れていたことが現実に?! マウス1個を読みに行くと返ってこなくなるので、それぞれ単独のEXEにして、移動したら(データが返ってきたら)メインとなるホストプログラムに通信し、ホストプログラムでいわゆるゲーム本体の処理をするようにしたんですが… 重すぎてゲームにならなひ(滝汗) やばいな。マジでヤバイっすよ。
慌ててプログラム構成の変更。マウスの移動量読み出ししかさせてなかった各クライアントプログラムにゲーム画面の描画まで処理させて、サーバープログラムは移動量のリセットやスタートなどクライアントプログラムへの指示/制御をするだけの構造に変更。
で、午前4時過ぎ、なんとか形は出来てきたが… ん〜 G3MacのUSBマウスだけが動きが良すぎてバランス悪いな。移動量を取得したら意図的に数値を小さくして、他のマウスと同じ操作感にしないと… このバランス調整がゲームの命やね。市販のゲームの発売日が延期される理由がわかるわ(爆)
そいこうしているうちに、刻一刻と迫ってくる出発時間。えぇ〜い、しょうがない。あとは現地デバッグ&調整だ!! 持ってくノートパソコンにVB5やらソースやらを積め込んで出発。行きのバスん中では寝てましたZZZZ(仕事しない幹事^^;) あ、行き先は静岡方面です〜
おっと、打ち合わせのメールが。なになに… 今日、旅行に来れずに会社で仕事しているDWMの編集長に電話して「メールの件OKです」と返事。え? 返事が早い?? あぁ〜 私の移動体通信機器はユーザーが一千万人もいるような某モード(^^;)ぢゃないから、混んでないんでメールの転送が早いんじゃないですか?(笑) 返事がメールじゃないのは、あの10キーで文章入力なんてできないから(修行が足りない??)
今日のお泊りは海岸の断崖絶壁の山の上の宿。こりゃまた、すんげぇ〜ところにっぶ立てたもんだなぁ〜(^^;) さて、他の人は宴会までの時間、温泉入ったりゆっくりできますが、幹事はそうは行きません(特に今年は^^;)。すぐさま宴会会場に行って、某ゲームのセッティング。スクリーンやら液晶プロジェクタをセットして、マウスを並べてHUB経由で繋げて… 宴会まであと1時間。さて、現地デバッグ開始。最終調整は間に合うのか!?!?
何が問題かってゆ〜と、他のマウスはすばやく動かすと、VBの読み出し動作が遅すぎて移動量カウンタがオーバーフロー??して、瞬間的に負方向の移動と誤認識してしまうんです。が、これがまたゲームとしてあんばいが良いんですよ(笑) で問題のMacのマウスは、読み出し動作が遅くてもちゃんと正方向だけにカウントされてしまい(オーバーフローしそうになったらカウント止める機構とか内部にあんのかな??)、普通のマウスとして見れば優秀なんでしょうが、(今回限りの^^;)ゲームマウスとしては使えないマウスなんですよ。なもんで、マウスからのデータは正方向なんだけど、ある範囲の数値の場合は符号を反転させてカウントを減じる処理を入れて、なんとか他のマウスの操作感に近づけることに…
午後6時30分宴会開始、そして8時ごろからゲーム開始。えぇ〜ぜんぜん幹事らしい仕事をしない幹事ですいません(^^;) 今回は豪華景品(あ、2位の景品は…ホームページが無い! ^^;)をご用意していますので、みなさん気合を入れてがんばってください!! ゲームは最大8人同時プレイなので、だいたい8人ずつの8組で予選を行い、各予選の勝者で決勝をやってもらいます。 Readyィ〜 Go!! ん〜結局やっぱりMac系のマウスを使った人が勝つ確率が高いな。それにしてもよかったのは、ゲーム中にマウスがHUBから抜けなかったこと。なにせ通信中にマウスとの接続が切れた場合のエラー処理入れてなかったから、エキサイトor引っ張り過ぎて引っこ抜かれちゃったらどうなるか予想できなかったんですよ(汗)
いやはや、あんなゲームでも、そこそこ盛りあがったみたいで、何よりデス。
いやぁ〜 ひと仕事終わった後の風呂はいいねぇ〜(^^;) 肩まで湯船に浸かるのも、1時間近くも風呂に入ってるのも、11時前に布団に入ってぐっすり寝れるのも、数ヶ月ぶり!?
- ●9月23日
いやぁ〜 ぐっすり寝たぁ〜(^^;) しかし、残念ながら今日は天気が良くないですねぇ〜 途中から雨がパラついて、しまいには本降りに。もういいから早く帰ろう〜という声があちこちから(^^;) ちょうどオリンピックで日本が試合に出るのもあるそうで、バス車中でもTVで観戦(映り良くないけど) 私はといえば、移動中のバス中ではほとんど寝てましたが。
え?? 昨日のプログラム?? あぁ〜 えぇ、VBでシコシコと。あ、USBマウスのドライバですか? そうそう、普通はマイクロソフトのヒューマンインターフェースデバイス(HID)のUSBマウスのドライバが自動的に入りますけど、デバイスマネージャからドライバの更新を選択して、無理やり独自のドライバに入れ替えて、それをVB上からDLL経由で呼び出すんですよ。新規開発?? いやまぁゲーム自身はそうですが、ドライバはすでに過去のInterface誌で公開してる汎用USBドライバってヤツですよ。ちゃんと見てくださいよぉ〜(笑)
で、とくに事故も無く、無事東京着。お疲れ様でした!!
- ●9月24日
今日はゆっくり寝ていたいんですが、夕方から打ち合わせの予定が入っているのでもぞもぞ起きる。で、むちゃくちゃ洗濯物が溜まってたので慌てて洗濯(^^;) そのあおりを食って(??)夕方のスケジュールを後ろへスライド、さらに待ち合わせ場所を新宿に変更。
新宿で某氏と待ち合わせのときは、たいてい、新宿西口のヨドバシカメラ(これの短縮形を“バシカメ”と言う友人がいたけど…ソレはないだろぉ〜)の店先、角の所(^^;) ちょっと早めに着いたので、ぶらっとヨドバシの1Fを回ってから外に出ると、ちょうど鉢合わせ。もろもろの作戦会議など。
10時すぎ解散。で、「日曜日の夜には原稿送ります」という筆者の言葉を信じて(??)打ち合わせ後は会社に。ん〜 まだメールは来てないか…
- ●9月25日
日付を回った頃、無事メール到着。さて、特集始めるか(^^;) とりあえずは、無事入荷した(^^;)次号のメインともなる原稿を。かなり長いので、前半後半、eCos移植編とJava移植編の2章に分けよう。 一般記事だと単発物だから、赤入れ終わったら即入稿だけど、たとえ各章が全員違う筆者だとしても、特集は全体的な流れとか、雰囲気とか色(??)を合わせるとか、いろいろ気にしないとならないんで、1,2章分入ったからって、赤入れ作業してはい割り付け…ってわけにもいかんからなぁ〜 他の章の原稿が入ってくるまで、しばし様子見。
- ●9月26日
他の方々の原稿来ないです… 困りました… 筆者の皆さん、よろしくお願いします!! 未だに特集が1本も入ってないのはマズいので、とりあえず先行で1本は入れてしまうか…
午後からPCIブリッジ設計の筆者とショートミーティング。大きな仕事が入りそうだとのこと。取れるといいですね…ってか、取らないとマズイっしょ(^^;)
三田線、目黒まで開通かぁ〜 田舎から東京に出てきた頃は、乗り換えなく巣鴨まで行ける路線ってことで、三田線沿線で部屋を探して、結局は三田線最果ての地(をぃ)西高島平近くの、窓を開ければそこは埼玉県というところで東京都民してましたが(^^;) かれこれ4年弱ほど三田線使ってたなぁ〜(シミジミ)
そういや、三田線から浅草線に乗り換える連絡路の途中に、三田線が目黒につなることを告知してた説明板に、マジックによる落書きで「ムダなコトするな!」とか書き込みがしてあったのを今でも覚えてます(笑) 当時は平成十ウン年の話なんてだいぶ先だなぁ〜と思ってましたが。そうか、もうそんなになるか。
どこぞの新聞系サイトで「32年ぶりに全線開通」とかあったけど、最初の計画から目黒に繋げるつもりだったのかしら??(こっちに引っ越してきた頃に調べたときは、西高島平まで開通したのは昭和51年5月で「全線開通」ってあったんだけどナ^^;)
- ●9月27日
特集編集作業も大詰め!? ちょっとピンチっぽい??ので、=Юさんに1章分手伝ってもらうことに…いや、一番面倒そうな章を押しつけたとか、そういうんじゃないですよ!!(って、結果的にそうなってしまったかも… 後からあんなに追加されるとは思ってなかったんっすよ…信じてください ^^;)
あ゛〜 そうだ、お昼に別件の打ち合わせが入ってたんだ。すいません、ちょっとあっちの要件はプリエンプションできそうにないので、今日の打ち合わせはキャンセルさせてください… あ、夕方以降でいいですか? なら8時くらいに巣鴨で…
で、某所で雑誌掲載予定の謎写真の撮影…
- ●9月28日
=Юさんにふった原稿… 後から後から追加原稿が来るんですけど…(^^;) これ、このまま入れたらいったい何ページに!?(最終的にはそんなに膨大なページにはならなかったらしい)
ん〜 HDDレコーダといっしょなのがD-VHSじゃなくてただの(?)S-VHSなのか… HDDって書いてるとなりに、フルカセットDVテープくらいのカートリッジメディアが入りそうなデザインだな(^^;) (表示パネルの中身はちがうけど)なんか全体的なデザインとか、ちょっと前のS社のDV+S-VHSデッキに似てるなぁ〜
今出てるInterfaceのディジタル放送の特集を読んでもそうなんだけど、いまいち、ディジタル放送の利点ってか、便利さってか、ディジタルBS機器を買うぞぉ〜と思わせるものが無いよね。地上波が強制的にディジタルに切り替わるまで、当分このままかな…
- ●9月29日
おっと!! 夏休みを消化しないまま今日まで来てしまった!! ま、毎年有給をほとんど消化してない人間にとっては、あっても無くても同じだけど(^^;)
校正の合間をぬって(?)、ココからBIOSやらHDDイメージをダウンロードして、某CqREEK/SH-4+ISAベースボードでLinuxを動かす…おおおおおおおおぉぉぉぉぉぉぉぉぉ〜〜〜〜〜〜〜ホントに動いてる!! CqREEK/SH-4+ISAベースボードの環境で、HDDがカリカリ音を立てながらLinux/SHが起動しているではないですか(以下お約束!?のスナップショ〜〜ッツ!!)
$Revision: 0.07 $ CqREEK SH4 Linux Bios Version 0.01 Copyright (C) 2000 Nobuhiro sakawa Memory Test end Command? b Loading...loaded Linux version 2.4.0-test6 (root@bebox.sakawa.ota.tokyo.jp) (gcc version 2.95.2 19991024 (release)) #228 Sun Sep 24 21:23:12 JST 2000 CqREEK Setup (IDE=1, ISA=1)...done On node 0 totalpages: 4096 zone(0): 4096 pages. zone(1): 0 pages. zone(2): 0 pages. Kernel command line: CPU clock: 200.01MHz Bus clock: 66.67MHz Module clock: 33.33MHz Interval = 83340 Calibrating delay loop... 199.48 BogoMIPS Memory: 15212k/16384k available (706k kernel code, 1172k reserved, 33k data, 32k init) Dentry-cache hash table entries: 2048 (order: 2, 16384 bytes) Buffer-cache hash table entries: 1024 (order: 0, 4096 bytes) Page-cache hash table entries: 4096 (order: 2, 16384 bytes) Inode-cache hash table entries: 1024 (order: 1, 8192 bytes) CPU: SH7750 POSIX conformance testing by UNIFIX Linux NET4.0 for Linux 2.4 Based upon Swansea University Computer Society NET3.039 NET4: Linux TCP/IP 1.0 for NET4.0 IP Protocols: ICMP, UDP, TCP IP: routing cache hash table of 512 buckets, 4Kbytes TCP: Hash tables configured (established 1024 bind 1024) Starting kswapd v1.7 RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize Uniform Multi-Platform E-IDE driver Revision: 6.31 ide: Assuming 50MHz system bus speed for PIO modes; override with idebus=xx hda: Conner Peripherals 420MB - CFS420A, ATA DISK drive ide0 at 0x1f0-0x1f7,0x3f6 on irq 14 hda: 832608 sectors (426 MB) w/64KiB Cache, CHS=826/16/63 Partition check: hda: hda1 ne.c:v1.10 9/23/94 Donald Becker (becker@cesdis.gsfc.nasa.gov) NE*000 ethercard probe at 0x300: 00 c0 26 db 38 93 eth0: NE2000 found at 0x300, using IRQ 10. SuperH SCI(F) driver initialized ttySC0 at 0xffe80000 is a SCIF ttySC1 at 0xffe00000 is a SCI EXT2-fs warning: mounting unchecked fs, running e2fsck is recommended VFS: Mounted root (ext2 filesystem). Freeing unused kernel memory: 32k freed Welcome to sh4linux! http://www.sakawa.ota.tokyo.jp/rtlinux sh4linux login: root Password: [root@sh4linux /root]# cd .. [root@sh4linux /]# ls -l total 2946 drwxrwxr-x 2 root root 2048 Dec 31 1999 bin drwxrwxr-x 5 root root 21504 Aug 15 2000 dev drwxrwxr-x 33 root root 3072 Sep 24 2000 etc drwxrwxr-x 4 root root 1024 Dec 31 1999 home drwxrwxr-x 2 root root 1024 Dec 31 1999 tdocs drwxrwxr-x 2 root root 2048 Sep 16 2000 lib drwxrwxr-x 2 root root 12288 Jun 5 2000 lost+found drwxrwxr-x 2 root root 1024 Dec 31 1999 proc -rwxrwxr-x 1 root root 14667 Jul 18 2000 ptest drwxrwxr-x 2 root root 1024 Dec 31 1999 root drwxrwxr-x 2 root root 1024 Sep 16 2000 sbin drwxrwxr-x 2 root root 1024 Jun 19 2000 tmp drwxrwxr-x 2 root root 1024 Dec 31 1999 usr drwxrwxr-x 13 root root 1024 Sep 15 2000 var -rwxrwxr-x 1 root root 937938 Sep 24 2000 vmlinux -rwxrwxr-x 1 root root 937938 Sep 24 2000 vmlinux.cq -rwxrwxr-x 1 root root 1057984 Sep 16 2000 vmlinux.s1 [root@sh4linux /]#さんざんInterfaceで「SHでLinuxぅ〜」の記事を載せておきながら、まだ試したこと無かったり(汗) 今回初めて目の前でテストしましたデスよ。
でも、まだ一部動作不安定な部分も(コマンド操作中に突然、コアダンプ??よろしく、レジスタダンプ表示やアドレスが表示されて、loginプロンプトに戻ったり(をぃをぃ)) このあたり、安定度を高めるのが今後の課題か…
- ●9月30日
今日は、ほぼ2ヶ月間かりっぱ〜なディジタルオシロの返却。それと自宅から、諸般の事情で使ってない17インチなCRTを筆者に使ってもらうために、会社からステップワゴン借りてドライブ。ん〜環7混んでまんなぁ〜(いつものことか…)
その後、急遽池袋は某秘密結社に、興味の無い人が見ればジャンクも同然、その筋の人が見れば宝の山!? 中古の某マシンを10台ほど(中には部品取りにしかならないのもあるけど)保護(??)して自宅まで輸送…のお手伝い。
筆者から特集原稿の校正の件でメールが入ってたので、会社までもどってお仕事… あ! 忘れ物!! 明日秋葉原行きますよね? 途中巣鴨に寄りません??とか、筆者に寄り道を強要(笑)