(M)のドタバタ編集記 2000年5月号(?)


●5月1日
 昨日の深夜、PC/AT互換機での挙動が原稿と違うことが発覚して、ぢゃどうやってBIOSはデバイスを正しく認識してるんですか? と質問すると、筆者も良くわからない… ってことで、別の偉い人にご相談することに。
 すいません、突然おしかけて… で、今日の要件はかくかくしかじかで… 「なるほど…そのあたりは私も詳しくないんですが…今日は時間あります? 何なら今から確認してみましょうか?」と、ロジアナ引っ張り出して実機の動作を測定することに。汎用のロジアナなんで、ATAのプロトコルをダイレクトに認識できるはずもなく、いろいろ小細工しながらトリガ条件を替えて計測。ん〜いまいち釈然としませんな。まぁ〜PC/AT互換機の場合、過去とのしがらみがありますから、技術的には間違っているまま実装されているところもありますからねぇ〜 と、理解^h^h納得するしかないのか!?
 かなり遅くまで粘ったんですが、どうもいまいちすっきりしない結末。とはいえ、締め切りは刻一刻と迫っているので、とりあえず今日はこれで切り上げましょう。また何かわかったらお知らせください…とお願いして会社に戻る。

●5月2日
 すでに日付が変わって2日です。連休前(中?)の平日は今日しかないんですよ!! つまり今日じゅうに初校を返さにゃならんってことですよダンナ。とはいえ、実物の動作と説明が違ってるんヂャ話にならんしなぁ〜
 とりあえず先に、原稿の説明と実機の動作のつじつま合わせをしないとな(^^;) まずはサンプルプログラムの改良(改悪かも^^;) まず初期化ルーチンをなんとか力技で(?)でやっつけてしまう。次、ATAのセクタアクセスルーチンは簡単なのでちゃっちゃと作ってしまって… 問題はATAPIだな。これが一番の問題か。
 ここまで作業してもう朝。時間切れか?! ハードウェアの章は比較的影響は少ない(?)から、とりあえず初校を戻せるように作業するか… ん〜すいません。やはり最後の第6章だけは問題があるので、連休中に解決させます(^^;)

●5月3日
 ↑なんとか時間稼ぎができました(いや、そうじゃないんだけど^^;)
 で、問題のATAPI。筆者の話では、割り込み使わないとうまく動かないよ、とのことでしたが… とりあえずポーリングで攻める。ん〜このマシンのCD-ROMドライブだと動くけど、隣のマシンだと動かない…。やはり割り込み処理が肝か!? っということで、割り込み処理ルーチンをゴリゴリ記述。まともなデバッガが無いので、printfな泥縄デバッグ(爆)
 プログラムのどこを通過したか、またその時の変数の値を要所要所で表示…はいいんだけど… なんでこの時に値が“1”なのよ。それは絶対おかしいぞ!!
       printf("---%d---\n",i);    /* デバッグ行 */
で表示が
       ----1---
懸命なる読者(読者って誰だよ誰!^^;)ならもうお気づきでしょう。変数iは“1”ではなくて、“-1”なのでした。アホやなぁ〜>私
 あれぇ〜さっきまで動いてたのに、ちょっと書きなおしたら動かなくなった… ん? 割り込みルーチンでセットされるはずのフラグがセットされてないぞ… よくよく見たら、テキストエディタで編集中にコメントの“*/”を1個消してしまって、その次の行がコンパイルされてなくて、それがフラグ操作なもんだから、そっから下が以下略(せめてワーニングくらい出せよなぁ〜!! どこのコンパイラだとはいわない^^;)

 ん〜どうもおかしい。割り込みルーチンの頭でカウンタをインクリメントして割り込み発生回数をカウントさせてみると、ドライブによって割り込みの発生回数が違う!?!? をぃをぃ勘弁してよ… なぜにこうもドライブによって挙動が違うのだ!?
 一通り動いて…るように見えるバージョン(^^;)を、フロアにある他のマシンで片っ端から動作させてみる。一応HDDについてはすべてOK。CD-ROMについては動く奴と動かない奴がいる。実験結果を整理してみると… お! SONYと日立のCD-ROM/CD-RW/DVD-ROMドライブはOKで、ミツミのCD-ROMドライブが全滅だ(^^;) あと他にATAPIのドライブないかな…
 ん〜 どんなドライブでも動くように作るには、結構骨が折れそうだな… なるほど、Win95の起動ディスクに、汎用ATAPI CD-ROMドライバが付かなかったわけがわかるような気がする(^^;)

●5月4日
 本日は、某所で開催された怪しい(?)展示会(^^;)に参加(いや、出展か??) 徹夜明けでこういうイベントは辛いです。1日じゅう眠そうにしてました(汗) いやしかし、かなりの人が集まってますね。このパワーを、早く某プロジェクト(中身はナイショ^^;)に活かしたいですねぇ〜
 で、部屋戻って寝たいんですが、仕事山積みなので、会社にもどって仮眠してから、またごそごそと作業を…

●5月5日
 ん〜 やはりおかしい。絶対おかしい。ことごとくおかしい。例のミツミドライブは割り込みの発生回数が多い(^^;) ん〜 まともなデバッガないので、割り込みルーチン内で printf するという暴挙を実行(笑) おおお!!! このドライブ、コマンドパケット受信待機状態で割り込みが発生してるんだ(それで割り込み発生回数が多いのね)。で、問題のデータ転送は… ん? 次の割り込みでは、すでにステータスはコマンド正常終了状態を示してるんですけど… なぜにセクタリードなのにデータが転送されない??
 上の件を筆者にエマージェンシーTEL(^^;) そこで一つの対策案が。で、プログラムをそのように修正すると… 動いたぁ〜 って、ちょっと待て待て、ってことは、原稿が間違ってることを意味するんですけど(笑) ん〜 IDENTIFY PACKET DEVICEで取得できる情報の126ワード目は0なんですけどねぇ〜 謎だ…

●5月6日
 さて、やっと、やっと某基板のデバッグ作業に取り掛かれる。とりあえずは、それぞれの単機能の設計データを1本の設計にまとめる作業から。ん〜いかんなぁ〜 今度はVHDLなのに、
    if (HRWn == '1') {
        IORDn = '0';
    } else {
        IOWRn = '0';
    }
なんて書いてるし。頭が切り替わってないぞ…
 ん〜さすがにここまで機能を押し込むと、論理合成にも時間がかかるね。で、MAX+plusIIで配置配線。こっちも結構時間が… げげ! フィッティングでリトライかかった!? やべ、FLEX10K30ぢゃ入り切らないってか!? 作業進捗状況を示す棒グラフ(?)の伸びに注目すること数十秒… フィッティング無事通過!! よっしゃ!(っと思わずガッツポーズ^^;)
 んが… どうも動作がおかしい。ふと思って、タイミングアナライザかけたら… ありゃりゃシーケンサが26MHzでしか動かないという報告が。いま? SH-4の外部バスクロックを半分にしてます…33M(そら追いつかないわさ^^; いや、実力値に期待!?) デバイスグレードが -1 だと、軽く40MHz越えてくれるんだけどねぇ〜 安くしたいから遅いのでいいや!っとケチったのが敗因!?(-3です^^;) もっと小さいシーケンサにせんとだめですかい。
 ん〜 疲れた。頭を冷やそう。さて、いったん帰るか(何日ぶり??)

●5月7日
 死んだように寝… てたんでしょう(自分が寝てる姿は見れないって) 目が覚めたらもう夜でした(^^;) 本日、某所で某会議があったはず… 立場上ホントは出ないとまずい… いや、まずかったんですが、時すでに遅し。すいませんです。っということで、本日は充電日とさせていただきます(^^;)

●5月8日
 結局昨日は休んでしまったので(^^;)、すこしでも時間を取り戻すために始発で出社。ん〜連休中に片付いた案件は… ない(をぃをぃ) どれもこれも、完全には片付いておりません…まいったな。まずは本誌掲載のサンプルプログラムがホントに動くか動作確認せんとな。
 ん〜 某P社のスロットイン方式のCD-ROMドライブ。こいつ、ソフトウェアリセットかけると、ドライブユニット内のメカ部まで初期化がかかる模様。なもんで、ディスクを入れてモータが回転していざTOCを読もうとした段階で、サンプルプログラムがソフトウェアリセットをかけるので、またモータが止まってしまってピックアップの位置のリセット(キャリブレーション??)とかでドライブ内でカタコト音してます。それから再度モータが回転をはじめるので、レディ状態になるまでえらい時間かかる。他のメーカーのドライブは、ソフトウェアリセットかけても回転が止まること無いんだけどねぇ〜 内部の作りは各社それぞれってか。

 え? I LOVE YOUメール? そんなメールは届いていません。周りでも届いた人はいないみたい。そんなに流行ってるんですかねぇ? ん〜 そんなもんか(^^;)

●5月9日
 げげ!! またまたATA制御サンプルプログラムで問題発覚!? ウェスタンディジタルのHDDだと、ドライブが1台しかないのにもかかわらず、スレーブドライブがいるかのような反応を示す… しかも、サンプルプログラムの表示は“unkown device”って(をぃをぃ)
 コレ掲載のI/Oアクセスツールを使って手動操作(?)でATAレジスタを操作すると… ん〜なんと、そういうことか。 あ、そうだ、そうだよ、ウェスタンのドライブだよ。ジャンパの設定が「マスタ/スレーブ/シングル」の3種類あるHDDは。シングルに設定すると、デバイス/ヘッドレジスタでデバイス1を選択しても、ATAレジスタが有効などころか、コマンドレジスタにATAコマンドを書くと、ステータスレジスタにエラービットが立つという挙動を示してくれます。むむむむ…

●5月10日
 ありゃ! 某筆者にコノ日記が見つかってしまいました(笑) 曰く「私が悪役になってますね(^^;)」。いやぁ〜 フィクションですから…多少脚色しないと面白くないっしょ(と言ってごまかす^^;)
 おおお! ついに出てきましたね。コレ って、それはいいんだけど、対応しているマザーボードが(ちゅ〜か、コネクタ位置とかは同じなので、ブラケットを固定する部分が問題だから、“対応筐体”が)あるんでしょうか??
 おおおお、新型VAIOの告知が。ん〜505シリーズ一新ですかね? モバイルでスタミナですか。まさかCrusoe搭載とか!?(いきなり実戦投入はないか^^;)

 さて、大詰めを迎えた特集。う〜ん、もうページの割り付けは確定してるしな… 表の修正が思ったより多くて、こりゃあふれるぜ。ソースリストもかなり省略して掲載しなきゃならないし、せっかく以前に波形キャプチャしたバスの動作写真も載せられそうにないな。残念。
 っということで、なんだかんだで、なんとか特集の再校作業も順調に終わりそう??です。メドが付いたから(もう日付変わってるけど)今日は帰り(れ?)ます(^^;)

●5月11日
 やばいやばい、寝過ごした(^^;) なんとか山を越えたという安堵感から熟睡(?) 慌てて会社へ。いや、まだ三校(これがホントの最後の校正)が残ってるんで、まだ終わってないんですが、この時点で重大な問題が発覚することは無いので(時々あるけど^^;)機械的な作業をするだけです。とか言いながら、この段階でも結構な赤(修正指示)が入るから困ったもんです。初校/再校をまじめにやってない証拠だな(反省)
 おおお、ついに米国発売が決まりましたか。んが、リリースを見ると… およよ。いろいろ仕様が変わってる。まず第1に安い!? 0.18プロセス品の本格投入ですね(やっぱ0.25じゃ歩留まり悪いよな)。第2にPCカードスロットが無くなって、3.5インチHDDとネットワーク用の拡張スペースが付く点。ん〜こうなると、日本仕様のPS2も次機種(型名変更した新型)はPCカードスロットがなくなる可能性もありますね(初代PSも基板に拡張用のカードエッジがあったんですが、結局使われないまま消えていった経緯もあるし) どこぞのソフトハウスでは、現状のPS2にネットワーク機能がないので、モデムとセットでネットワーク対応ソフトを発売する…とか考えてるところがあるようですが、こうなるとインターフェースにPCカードスロットの選択は危ないですね。まぁ〜モデムならUSBでいいか。
 ちゅ〜かさ、よくよく考えるとPS2のi.LINKって4ピン仕様なんだよね。4ピンだと電源取れないじゃん!! 回路をちっちゃくまとめられるんならACアダプタなんて使いたくないよな…となると選択肢はUSBっきゃなくなる。
 ネットワークねぇ〜 向こうはCATVとかADSLとか、通常のアナログ回線以外にもいろいろ選択肢が多いですからね。結局米国仕様でもこれをオプションにした理由は、インフラがいろいろあるので、サードパーティにやらせる魂胆から??
 でぇ、HDDは価格を考えればIDEか? どこぞのNewsサイトでは「USBでは遅いしIDEやSCSIもないからIEEE1394しかない!!」とする記事もあったけど、どうかな? PCカードスロットが無いってことで、PCカードコントローラを取っ払って変わりにIDEコントローラ乗っければ済む話だし(そうそう、ちょうど編集が終わった7月号でも触れてるけど、PCカードATAやTrueIDEという手もあるから、PCカードコントローラそのまんまでもIDEは行けるっすよ)。まぁPS2にはi.LINKがあるし、たしか以前のLSIロジックのリリースでは、PS2内蔵I/Oプロセッサには1394を2ポート搭載とかあったから、外部接続用のi.LINKポートとは別に、内蔵用にも口を用意できるけど… それにPS2の場合はもはやインフラ事業に等しい(採算は別のところで採る)から、少々部品コストが高くても力技で1394HDDで行っちゃえる?? はたして!?
 最後の第3点。DVD再生ソフトが完全にファームウェアで搭載。今回のPS2 DVD騒動(?)で相当懲りたか(笑) バージョンアップの可能性が絶たれる声もあるけど、現状のPS2で秋までにバグフィックス(^^;)しておけば、バージョンアップの必要性はもうなくなると思うけど。もし仮に現状のPS2方式をそのまま採用するにしても、Ver1.00のユーティリティディスクに収録されているリージョンフリーDVD再生ソフト(事実誤認)は、ぜったい走らないでしょう(^^;)。

●5月12日
 おや? パソコン系某サイトの掲示板に「高さの低いPCIのLANカードを探しています」という書きこみが。これっていわゆるLowProfilePCIバスのことかしら? 中身を読むと… Aptiva E シリーズねぇ〜 ふぅ〜ん、最近のスリム型パソコンは、ライザーぢゃなくてLowProfilePCIバスなんだねぇ〜
 ん〜 某書類がない、どこを探してもない… “File Not Found”で“コマンドまたはファイル名が違います.”で“404”な状態(^^;) 困った…
 えぇ〜い、そんな私用の書類さがしで時間を取られている場合じゃない! もう今月末には7月号が出てしまうんで、ここで読者頒布するISAベースボード基板の最終動作確認を取らなければ!!

●5月13日
 ん〜 どうにも調子が出ないな。やらなきゃダメだとわかっているんだけど、重い腰が上がらないというか… とりあえずSHの割り込み処理を忘れたので、マニュアルをしばし眺めてリハビリ(^^;) あぁそうだそうだ。イベントレジスタとか割り込みレベル設定レジスタのアドレスが違う(内蔵リソースが増えているSH-4はその分レジスタも増えてるけど)だけで、基本的にSH-3とSH-4の割り込み処理は同じなんだっけ。ふむふむ、思い出してきた。
 さてと、それじゃSH-4用に試作したハード(FPGAの中身:VHDL)とサンプルプログラム(C)をSH-3に移植して、とりあえずSH-3でも動作OKなことを確認せんとな…

●5月14日
 なんとなく調子がでてきたので、時間を気にせず作業続行(≒徹夜^^;)
 ん〜おかしい。ATA制御プログラムなんだけど、キャッシュONにすると動かない(をぃをぃ) プログラムでは2回I/Oアクセスしてるのに、ロジアナで見ると書きこみクロックが1発しか出てない。ん〜 キャッシュONにする手順がまずいかな…
 やべ! もう6時過ぎてるよ(朝の6時です^^;)。今日お昼に打ち合わせあるのに、3連続徹夜の格好でいくのはあまりに失礼なので、いったん部屋に帰らねば。…で、部屋についてちょっと横になってしまったのが運の尽き!? っは!!っと目が覚めたらもう1時半だしぃ!! あわてて先方に連絡して、結局1時間半くらい遅刻。申し訳無い。
 さて、打ち合わせから戻ってきて夜、続きを再開。キャッシュの動作は未解決だが、とりあえずFPGAの設計をSH-3用に移植せんとな。
 ん? ここでフラグ立てればあといらないじゃん! この行も、こっからここも不要。で、この判定をこっちのステートにもってきて、こいつをここでクリア!! っと。ほら綺麗なシーケンサになった。すげぇ〜ひょっっとして天才!?(自分で言ってるあたりでただのバカ^^;)
    (しばらくデバッグして)
 …あ゛ あ゛ あ゛… そうだよ。リードのときここで1クロックあけたいがためにさっきのフラグ付けたんぢゃん!! で、そうすると次でこうして、最後のステートでクリアして… と、美しくないフラグ操作がバタバタと… あぁ〜あ、なんてセンスのないシーケンサなんでしょ。やっぱ才能ないな…(やっぱりただのバカ(汗))

●5月15日
 「最近のスリム型パソコンはLowProfilePCIバス使ってるもあるよぉ〜」という社内メールが。はい、私が悪ぅ〜ございました(笑 いや〜1週間分くらいまとめて日記をアップするので、タイムラグが^^;)
 さて、お仕事お仕事(?) GCCではダイレクトに割り込み処理が書けないので、インラインアセンブラで割り込みエントリを記述。CPUはSH-3とSH-4。ん〜 やっぱ慣れねぇ〜なぁ〜 左から右の代入方向とか、ムーブだのストアだの、レジスタの種類によっては別のデータ移動命令が必要だし(データの移動はぜんぶLDでいいじゃないかぁ〜) やっぱりザイログなアセンブラは、最初に覚えるもんじゃないカモ(^^;)
 あれ? このラベルの位置のアドレスをレジスタに代入するにはどう書くんだっけ?? こう書くと、このラベルのある位置のメモリ内容が入っちゃうしなぁ〜 ん〜と…あ、もう1個ラベル定義してそこに目的のラベル名を書いておけばいいのか。
 ん? コンパイルすると、定義されてないオペランドが使われてるとか言うエラーメッセージとアセンブラソースの行番号が。アセンブラソースの行番号で言われてもなぁ(^^;) ん〜と、たしかコンパイル完了後にアセンブラソースを消さないで残しておくオプションスイッチがあったやうな… で、56行目?… え? なんで!? なんでこの書き方がエラーなの!? 目を皿のようにしてマニュアルをよくよく見ると、あ…即値との比較はレジスタR0しか使えないのね…失礼しました。まだレジスタ余ってるから、ループ前にレジスタR5に即値を入れて、レジスタ同士の比較に書きなおして再度コンパイル。すると今度はジャンプ先のラベルが遠い!ときたもんだ。 んだよ、届かないってか? しょうがないのでプログラムとデータテーブルの配置を入れ替えて、条件分岐先が届くように細工。
 ったく! これだから16ビット語長のCPUは困るぜ(^^;)

●5月16日
 今日は午後から某基板屋さんと打ち合せ、その後が編集会議。7月号特集の編集作業でいろいろ忙しかったので、打ち合わせができず今日まで延び延びに。まずいな。量産基板の完成がどんどん遅れぎみ…(激汗)
 で、基板屋さんとの打ち合わせ時間が少し後ろにずれた&長引いたので、編集会議に遅刻(すいません)。さて、次の私の担当の特集は… 二つ企画があって、どっちを先にやろうかなナっというところ。筆者さんのスケジュール次第だな。どちらもプログラム開発がかかわってくるので、そのプログラムの移植や開発が完了しないことには話しが進まないんで。まだ詳しくお話できませんが、もうすぐ出る2000年7月号の特集の続編?というか、7月号をベースにしたファイルシステム特集と、もう一つは組み込みJava関連ネタ。さて、どうなるかな??

●5月17日
 今日は午後から立川方面の某筆者の事務所におじゃまさせていただく。いろいろ面白い話を聞かせてもらい、またも長居(^^;)
 さて、夜も夜中、会社に戻ってきて、作業開始。SH-3にソフト移植中、ハードのバグが見つかったので、ちょっと手直し。MAX+plusIIで配置配線中にトイレ行って、戻ってきて画面を見ると見なれないダイアログが… ありゃ! ライセンス切れたか。しょうがないなぁ〜またダウンロードしてくるか。ほうほう、バージョンが9.6になってる… げげ! サイズ47Mぁ〜!? バージョンがあがるたびにどんどん肥大化してるな。使うCPLDのシリーズを選択してそれだけしか配置配線できないミニマム版を用意して欲しいな(私しゃFLEX10Kしか使わない)。ダウンロードするこっちの身にもなってほしいよ(いや別に新しくなくてもいいんだけど^^;)。
 ん〜 フィッターのアルゴリズム変わったかも。MAX+plusIIのコンパイル作業の棒グラフ(?)の進み具合が前と違う。グラフがフィッターのところにさしかかると、なかなかグラフが延びずにしばらく考え込んでから、グググ!っと延びる動きに変わったな(MAX+plusII使ったことない人には意味不明だな^^;)

●5月18日
 さて、残りはUSB周りだな。さっそく、2000年6月号で掲載した「Vr4300ボードをUSBターゲットとして活用する」で作成した、USBN9602用のUSBマウスエミュレーションプログラムを、SH-3に移植。移植と言っても、もともとVr4300もメモリマップドI/O系の石だから、USBコントローラにアクセスする部分はSHのコンパイラで再コンパイルし直すだけだけど。
 問題は割り込み部分やね。USBマウスの移動方向切り替え(?)にタイマーで時間を計ってるので、タイマー割り込みとUSBコントローラからの外部ハードウェア割り込みの面倒をみないと。
 で、プログラムのダウンロード&Go! ん〜なんかUSBコントローラの割り込みが発生してないっぽいな。なんで?? あ、USBへのリセット解除してなかった(そうか、リセット中でもバージョン番号とかUSBコントローラ内部のレジスタって取得できるのね)。これでよし。再度Go! するとUSBホスト側のWindows画面にプラグ&プレイのダイアログ出現!! 「USBマウスが接続されました」 おっしゃ!! で、HIDドライバを選択すると、おおおおおマウスカーソルが勝手にツツツゥ〜と動き出す。よし^3
 しかし、しばらく実行させておくと、途中でUSBマウスの動きが止まってしまう。なんでだろ。USBコントローラとSH-3のブリッジ部分のハードがおかしい?(ただの8-16ビットバス幅変換だしなぁ) それとも移植したプログラムが悪い??(USB制御部分そのものは、MIPS版で問題なく動いていた部分だしなぁ) となると、一番怪しいのは私が記述した割り込みエントリ部分?? そういえば、思い当たるフシが… 実は今回、多重割り込み可能に記述してみたんですが、その部分が悪い!? そこで多重割り込みしないように書き換えたら、2時間ほどほったらかしてもマウスカーソルは動きっぱなし。ん〜やはり!? じゃ今度は、USBの割り込み優先順位をタイマーより上位にして多重割り込み。するとこっちも問題なさげに動作。ん〜USB制御中に割り込みが入るとまずいか??(MIPS版は多重割り込みしてないからな) それとも、多重割り込み対応の割り込みエントリ部分がまずいのか…
 別にそんなにシビアな処理をしているわけではないので、多重割り込みしなくてもokなんですけどねぇ〜 それにSH-3やSH-4では、割り込みエントリ処理でレジスタの退避だなんだと結構クロック数がかかるので、多重割り込みはしないほうがパフォーマンスがいい場合もあるそうだし。とはいえ、多重割り込みで問題が発生するのは、プログラムに問題があることに変わりないんで…(^^;)

●5月19日
 今日は午後から某RTOS屋さん(?)と打ち合わせ。ふっふっふ(なんだよその不敵な笑いは^^;)さっそく7月号特集で頒布予定のSH-3&SH-4用ISAベースボードを公開。予想以上によさげな反応(^^;) 量産が遅れているのが申し訳無いです。量産基板があがってきたら、さっそく1セット用意してお送りしますので、もろもろの移植をお願いします。
 打ち合わせから戻ってくると… おおおおお、2000年7月号の見本誌ができているじゃないですか。もう来週末には出ますよ出ますよ!! ん〜 量産基板もそうだけど、それに添付するVHDLソースとサンプルCプログラムも早く完成させなきゃ(まだ公開できるソースにまとまってないの^^;)

●5月20日
 前々から気になっていた問題なんですが、例のCQ RISC評価キット/SH-3の「モニタROM NG」問題 ROMを交換したらあっさり動きました(^^;) ん〜 やっぱ、秋葉で買ってきた中古ROM(そんなの使うからだよ)や、ベンダ認証のない安物ROMライタ(自作ではないですが)じゃ信用ならないか!?(きっとたまたま死にかけROMだったんでしょう)
 さて、そろそろInterGiga No.19の製作も始まるんで、その前に、SH-3&SH-4用ISAベースボード関連の設計データやサンプルプログラムをフィックスして、ファイルをそろえておかないとナ…  で、ATAPIのCD-ROMドライブ制御で、未だに一つだけ解決しない問題があるんで、それをこの土日でやっつける決意(そんなおおげさなもんじゃないけど)をして、いざ作業開始!!

●5月21日
 決意持続中(笑) しかし、やはり症状は改善されず。一度トレイを開け閉めしてから、最初の再アクセスがうまく行かない。TEST UNIT READYコマンド送って、次にREQUEST SENSEコマンド送ってセンスデータを取得して、センスキーやASC、ASCQがすべて00ならレディ状態…のはずが、なんか読み出したセクタデータがおかしい。16セクタ目を読んでいるはずなのに“CD001”というISO9660フォーマットシグネチャ文字列がない。ん〜 っということで、またも筆者に救助信号発信(^^;)
 えぇ〜結論から申し上げます。すいません。やっぱり私のプログラムが悪ぅ〜ございました(爆)
 やっぱダメだね。自分が作ったプログラムって思いこみがあるから、文字は目に入ってるんだろうけど、そんなところにバグがあろうはずが無いと頭にあるから、見逃しちゃうんだなぁ〜 筆者にファイルを送って、向こうでもリスト開いてもらって、こちらから電話でリストの説明をしながら…がら… あれ? なんだこの変数。なんでこんなところにこんな行が残ってるんのよぉ〜!!(printfデバッグの名残? ゴミ!?^^;) で、問題解決(笑)
 ん〜 もう朝か、そろそろ部屋に戻るか(^^;) で、n週間分まとめて洗濯とか部屋の掃除(^^;) お昼までは起きてたんだけど、っは!っと気がついたらもう夕方。やば! またも平謝りの電話(最近こんなパターンばっかり) 次の機会にしましょう(汗)
 気を取りなおして、夜に出社。さてと、今朝、永年(笑)の問題が解決して、ATA/ATAPIドライバの汎用化が一気進んだので、この調子で次々とファイルを完成させましょう!

●5月22日
 ん〜と… とりあえずこれでSH-3用のFPGA設計データはほぼ完成かな。まだどっかにバグがありそうだけど、とりあえずはこれでリリースしましょかね(^^;)
 で、次は、このハードウェア用のサンプルプログラム。問題解決のATA/ATAPIプログラムはもちろん、ISAバスやPCカード制御のプログラムをいくつか用意しないとナ。そうそう、USBマウスエミュレーションプログラムも、とりあえずは多重割り込みしない方式で添付しておくか。
 うわ! 某V社さんの広報からTEL(あ、評価用で借りてたもの早く返さなきゃ^^;)…っはいいんだけど「日記、読ませてもらってます」とか言われるし〜 悪口書けないな(をぃ)

●5月23日
 Interface1999年12月で先送りした問題がいま噴出(^^;) ISAベースボードに添付するサンプルプログラムの一つ、PCカードイネーブラを作成中なんですがががががが… タプル解析ルーチン、すげぇ〜面倒。この規格決めた奴出て来い! 特にややこCのがCISTPL_CFTABLE_ENTRYタプル…なんとかしてくれ〜このタプル。どうせ電源フィールドなんか見ても「あぁ〜スタンバイモードだと50mA以下なのねぇ〜」と関心するだけ(?)で、だからって設定するところなんか何もないんだから(暴言) だいたいにして、すでにPCカードコネクタが物理的に5V系電源カードしか入らないシステムなんだから、通常動作電源電圧の項目なんか見てもどうしようもないんだってば。ましてや、もし仮にそこに5V以外の電圧が記述されてた日にゃ、カードイネーブラはどうせいっちゅ〜ねん(「入らないはずのコネクタによくぞカードを差し込みました!!」とかお祝いのメッセージでも表示させるか!? ^^;) こっちはカードイネーブルで必要な、コンフィグレーション可能なインデックス番号とI/Oアドレス情報が欲しいだけなんだから、I/O情報フィールドとIRQ情報フィールドを前に持ってきて欲しかったよなぁ〜
 PCカードのCIS解析でふむふむな事いろいろ…
 同じインデックス番号をもったCISTPL_CFTABLE_ENTRYタプルが複数個あるPCカードってあるんだねぇ〜 先に出てくるタプルでI/O情報を定義して、後で出てくるタプルで電源情報を定義してますね。ん〜こういうのもアリなんか。となるとCISTPL_CFTABLE_ENTRYタプルの個数だけインデックスがあると思ったら大間違いってことか…
 そうそう、Interface1999年12月でも不思議に思ったんだけど、このシリアルカード。CISTPL_CFTABLE_ENTRYタプルのフィールド情報ビットでI/O情報ビットしか立ってないのに、なぜにIRQ情報フィールドまであるの?! まぁ〜次のタプルへは、タプルリンクでたどっていくから、あるタプルの後ろにへんな情報がくっついてても、CIS解析そのものは破綻しないけどさ… 変なカードぉ(ビット立て忘れた? ^^;)
 ふむふむ、PCカードATAのインデックス0のCISTPL_CFTABLE_ENTRYタプルって、I/O情報フィールドそのものが無いんだねぇ〜 って、そらそうか。インデックス0ってコモンメモリ空間使ったメモリマップドI/Oみたいなもんやからなぁ。
 は? インテルのEthernet PCカード… これぇ… コンフィグレーション可能アドレスが一つしか無いんですけど…しかもI/Oアドレスが000h。ん〜 アドレスデコードライン数しか記述されてないカードってのは見たことあるけど、アドレスが000hで定義してあるカードって、いいのかしら?? ま、今回のISAベースボードはI/Oアドレス000hでも問題なく使えるからいいけどさ(他の人(PC/AT互換機)がどう使ってるかは知らん知らん^^;)
 ってゆ〜かさ、PCカードにおけるPCカード側のアドレスデコードシステムって、半分意味無し状態なんだよねぇ〜 I/Oアドレスの定義がなくて、アドレスデコードライン数しか記述のないカードみたいに、アドレスデコードはPCカードコントローラにやらせちゃう方式だけにしちゃえばいいのに。

●5月24日
 ん〜 やっぱり実際にいろんなPCカードを実際に入れてみないとわからないですね。とあるモデムカードを差し込むと、CISの解析結果がめちゃくちゃ。とんでもないアドレスで認識してる。ん〜やっぱCISTPL_CFTABLE_ENTRYタプルの解析ルーチンがガンだな。ステップ実行でプログラムの動きを追っていくと…ん? あ、失礼しました(^^;) 関係無い変数を見てました(汗) 手元にあるPCカードは、あらかたテストして問題ないことを確認。一段落ついたんで、部屋に戻るとするか(^^;)
 部屋に戻ると…ありゃ、停電?! 留守番電話と安物ビデオデッキは表示系が点滅状態。奥の部屋にあるV社とM社(大阪じゃなくて京都の)のデッキはOK。ってことは、停電度レベル1だな(なんだそりゃ) バックアップ機能をもってるとはいえM社のはもう10年選手だからなぁ〜 バックアップ回路もそうとうへたっていると思うので、数分しかもたないと思う。V社のはまだまだ現役バリバリで、1時間くらいは保持してくれると思うけど…
 それはそうと停電はいつあったんだろう?! テープを巻き戻すと…って、ぜんぜん巻き戻らないんですけど(つまり何も録画してないっちゅ〜ことやね^^;) てことはNHKのは撮れてないか。この前のは何だっけ? しんかい6500? 再放送に期待だな。

●5月25日
 さてInterface7月号は今日発売です。ちょっとマニアック(?)過ぎる内容ですかね? あのレベルでIDEを触る人って、そんなにいないって?? ん〜 すべては3ヶ月後の成績(返本率)でわかる!? で、さっそくとある筆者さんから「ISAベースボード、量産基板完成を楽しみに待ってます」というメールが。ありがたやありがたや。今しばらくお待ちください…
 っと言ってるそばから、ISAベースボードでまたも問題発覚!? 基板変更せんとあかん?! ってもう基板屋さんで基板量産始まってるんですけど(^^;) 原因究明すること約1日。ん〜なんとか基板修正せずに、FPGAの設計データだけで吸収できそやな。とりあえず安心!?!?

●5月26日
 JPNICの担当者さんよぉ〜 速く登録してくれぇ〜 って、もうInterface7月号出てるんけど… ISAベースボード読者頒布のための説明ページを載せるホームページなんですが、ドメイン名は取得できてるんですが、DNSへの登録がまだ行われていないみたいで、まだドメイン名でアクセスできません(IPアドレス直打ちならアクセスできるけど…) 「ホームページはまだできてないのか!?」「誌面に載ってるURLが違ってるんではないのか!?」という問い合わせの電話&メールが次々と…(嘘嘘^^;)
 とりあえず誌面にも、5月末にホームページ公開と書いているんで、あと数日は猶予があるけど… とはいえ、たとえホームページが公開できても、ISAベースボードの量産が遅れていることには変わりなく、ISAベースボードを入手できるのは、もう少し後です(^^;)
 んで、午後から浅草の某所で↑の件も含めていろいろ打ち合わせ。ん〜インターネットの世界は複雑やなぁ〜

●5月27日
 午前中は充電中Z

●5月28日
 あんまり気分が乗らなくて、作業はかどらず…(^^;) デバッグでロジアナのプローブをちまちま繋ぐのすらおっく〜に感じてしまって、へなへな。 はやく片付けないとやばいとは思ってるんだけどねぇ〜(汗) 

●5月29日
 先方の都合で午後の打ち合わせがキャンセル。スケジュールが空いてしまった… ん! ふと思い立ったので、近くの別の筆者のところへTEL。「今からでもいいですよ」とのことだったので、突然おじゃますることに(^^;)
 「ちょうどいいところに来た。これから某所で例の打ち合わせなんですよ。いっしょに来ません?」と、さらに別の打ち合わせ会場に移動(といっても、そこらの喫茶店ですが)。 とってもマニアック??な打ち合わせ開始(多少脚色してありますが、雰囲気はこんな感じで…)
某ハードウェアのプロ 「リセット直後はリセットベクタを読み込もうとするからROMを見せるだけで、ベクタ読み込んだらASを4発出してROMを切り替える」
某DSPのプロ 「アドレスバスはPLDに入ってるんだよね? 起動時だけCPUに変なアドレスを見せて、アドレス例外発生させてこっちに飛ばす方法って強引??」
某アクセラレータのプロ 「ROMをバスバッファの外に置くか中に置くかで設計方法が違うよな」
某○○のプロ 「バッファの内側だと32ビット幅じゃん? これにさらにROMのパターンって入る?」
某基板設計のプロ 「いや、これくらいなら引き回せる。6層基板使わせてもらえるなら入る。オートルータ使わないで入れる!!」
某ソフトウェアのプロ 「でそのROMに両方対応のブートコード入れるの? きっつぅ〜(^^;)」
 CPUの動きとかシステム構成とか、全部頭に入ってないとついて行けない会話だ(打ち合わせの席にまともな資料はなかったです) なんじゃこいつら(筆者陣?つかまえてコイツ呼ばわりかい^^;) いやぁ〜でも、なかなかいい感じっすよ。ニコニコしながら端で聞いてました(爆)
 10時を過ぎて打ち合わせ解散。で会社に戻ってメールだのチェックしてると… え!? 青色LEDの開発者、中村氏のインタビュー番組!? しかし時すでに遅し(涙) 誰か録画した人いないかなぁ〜 教育TVの午後10時、ETV2000「独創”はこうして生まれた」だなそうな。

●5月30日
 おおおおお。今出てるDOS/Vマガジン(6/1号?)に、USB学習キットの紹介が載ってんぞ。ん〜なんか別なボードみたい(笑 っつ〜か、たしかに、Interface掲載時はプロトタイプ基板だから、基板の部品配置とかは量産版と違ってるんだけどね) どうも数回の連載で、何か作るらいしい。どんな物を作るのかちょっと楽しみ(^^;)
 夕方。ん〜なんとかDNSの設定が通ったみたいですね。で、すいません。遅れています(^^;)今しばらくお待ちを…
 なにぃ〜「独創”はこうして生まれた」の第2回、いきなり今晩だって。連続かよぉ〜 しかもAIBOの生みの親、土井氏のインタビューらしい。っということで、今日は早く帰らねば(^^;) で、見ながら同時にビデオに録画…したつもりが、チャネル間違ってて関係ない番組を撮ってました…ちとショック(涙) とりあえずは、CD開発の話やNEWSネタがチョロっと出てきたので良し良し。

●5月31日
 もういいかげん、CD-ROM製作を始めないとダメなんですが、急遽某所で召集がかかったので(!?)打ち合わせに参加。ん〜 そのネタ、次の特集で取り上げようと各策してたんですが…(^^;) いや、そちらでやられるなら、ぜひぜひ! ついでに原稿を書いてもらえるとうれしいです(笑)


●2000年 4月に戻るのだ

●2000年 6月を読むのだ


(M)のページにもどるぅぅぅ

Interfaceのページへワープするぅぅぅ