響研究室では組み込みプログラミングも扱うようになった。起業した会社でもNASを開発していたので、それと連動した形である。ある企業から共同研究を受託し、外部資金年間 50万円を獲得していた。依頼は ITRON仕様のフリーOSを移植することである。移植が完了することは期待されていないが、50万円で大学院生を1年間使えるのは企業からすると人件費の観点からは格安だそうだ。私は研究室の組み込みプロジェクトとは距離を置くようにしていた。響教授も私が使い物になるとは思っていない。それでも組み込みシステムを学ぶ必要は感じていた。それは学科の教育方針として組み込みシステムを強化することになったからだ。いきなり組み込みに関する講義担当が割り当てられる可能性もある。なぜか私には過大と思える要求をしてくるのだ。実際に急に割り当てられたのがデータベースとオペレーティングシステムである。知識が無いと認識した上で割り当ててくる。割り当てた教授が退官時に「心配だったけど、やり遂げてくれたことに感謝します」とお礼を述べたことからも分かる。研究室とは別の事情で組込みシステムの勉強を始め、数年後には情報処理技術者試験のエンベデッドシステムにも合格し、学部教育を任されるには十分な知識を得た。しかし、資格を取ったことは明かさないようにしていた。私より古くからいる教員は偏見を持っていて、四元が合格するくらいだから簡単だろうとしか思われず、仕事だけ割り振られそうだったからだ。
響教授の会社には研究室のOBが関わっていた。このとき正社員だったのかは分からない。会社は親会社の方針でなくなり、自ら立ち上げ直していた。OBはフリーランスに近い形で関わっていたように思われる。OBのH君が研究室に来て学生にアドバイスしてくれていた。学生が質問している場面に遭遇し、プログラムを見せてもらった。
「この関数、完結してなくない?」
「これは関数でなくてマクロだから完結しなくていいんですよ」
そうか、置き換えているだけか。古い組み込みプログラミングではマクロが多用されていたことは知っていたけど、今でも使われているのか。こんなプログラムを読むのはしんどそうだな。H君はたいしたものだ。彼のアドバイスは学生にはかなり助けになっているようだった。
ゼミでOSの移植の進捗が報告された。あるアドレスをチェックしては戻る無限ループに陥るというところが解決できないと言う。響教授は「そこ飛ばしてみれば」とアドバイスした。いや、それで解決になるのか。組み込みの勉強をしていたおかげで、原因について思い当たることがあった。
「アーキテクチャがメモリマップドIOを採用していて、チェックしているアドレスはデバイスではないか。デバイスがreadyになるのを確認してから先へ進むようになっているのでは。アーキテクチャが変わったのでデバイスのアドレスも変更になっている可能性がある。新旧のアーキテクチャを比較して、該当するデバイスのアドレスを調べれば解決するのではないか。」
響教授は理解できていないようで、「企業の人を呼ぶ」としか言わなかった。気づかないのはともかく、説明されても理解できないとはどういうことか。素人の私に劣るレベルで組み込みプログラミングを研究テーマにするのか。着任時には響教授のOSの講義を学んでいた。OSの立ち上げ手順が述べられ、その1つにデバイスチェックがあった。響教授は理解していなくて、ただテキストを読み上げていただけだったのだ。後に学生から結果を知らせてもらった。私の洞察は正しかった。デバイスのアドレスはマクロで定義されていた。言われてみれば当然だが、それは見抜けなかった。
また、進捗で行き詰ったという報告があった。具体的な内容は説明されなかったが、OBのH君でも分からないという。
「あの野郎、分からないのか。俺に時間さえあればなあ。」
響教授は時間が無いから見てあげられないが、自分なら分かると言う。組み込みプログラミングに関して私はH君に遠く及ばない。どうして自分の実力にここまで自信があるのだろう。今になって思えば、根拠のない自信は彼にとって幸せだったのかもしれない。私のように自信が無いとおどおどしてしまうけど、たとえ根拠が無くても自信があれば堂々としていられる。立場も強いので誰も指摘できない。私のように指摘してしまう相手には怒鳴りつければ良い。他の教員の意見では私が間違っているという。指摘することで人間関係が悪くなる。学生の研究が誤った方向に進むのは大した問題ではないそうだ。