1984
4月、パナファコム(現PFU)入社。
2週間(たぶん)の大卒者教育(大卒/高専/短大卒者と高校卒は、違う部屋で導入教育を受けたはず)のあと、大きく、ソフトウェア部門、ハードウェア部門、営業部門に別れての教育になった。ソフトウェアとハードウェア部門の教育は、南町田で、営業部門は、御成門で行われた。
3ヶ月間(たぶん)の導入教育の後、6月末だか7月初めだかに配属されたのは、「海外技術部 ソフトウェア課」。浜地さん(80年入社)をリーダーとするグループ。グループ員は、井下さん(81年入社)、新井さん(82年入社)、阿部さん(83年入社)。浜地グループに配属されたのは、ぼくと栗原茂。
海外技術部ソフトウェア課に配属されたのは、4人で、後の2人は、清野さんと小川大典。海外技術部ソフトウェア課にいた他のメンバーは、富岡課長以下、坂口さん、川田さん、柴田さん、石原さん、居島さん(女性)、炭屋さん、松本さん(女性)、藤沼さん、石倉さん、佐藤さん?、あと名前を忘れてしまった男性1名(海外営業をやっていた)かな。
浜地グループは、System V UNIXの移植。よくわかっていなかったので記憶は曖昧だが、井下さんは、デバイスドライバ(ディスク、TTY?)、新井さんは、スーパーバイザ、阿部さんは、lpまわりをよくやっていた記憶が強い。配属されたぼくを含む2人の新人のうち、栗原君は、テープのデバイスドライバ、ぼくは、コマンド、ユーティリティなどユーザレベルで動作するシステムプログラムを担当した。
移植したハードウェアは、その当時パナファコムが海外(おもにヨーロッパ)向けに作ったDuet-16という8086PCにつなぐ、MC68010を載せた拡張筐体。なので、その拡張筐体上で動作するUNIXの移植がグループのミッション。PCと拡張筐体がどのように繋がれていたのかなど、全然わからずにやっていたのが本当のところ。その当時のPCなので、本体にはハードディスクはなく、拡張筐体にMC68010MPUと何十MBかのハードディスクが入っていたことぐらいしか記憶にない。
ぼくが最初に手がけた仕事は、sysmodというシステム設定変更アプリケーション。nlist()ライブラリでカーネルのシンボルテーブルを読んで、/dev/memの、必要な情報が設定されている外部変数の内容を変更するというもの。当時は、データの書き換え方法などは、ほとんど言われるままに実装し、それなりにわかって作ったのはメニュー形式のUIだった。メニュー形式でやるのは、UNIX的でないなぁ、と浜地さんに言われたのを覚えている。大したプログラムではなかったが、新人ということで、夏じゅうそれにかけた。
どんな仕事がしたいか、と浜地さんにきかれたので、コンパイラとか言語に興味はある、といったことを何かの機会に話したことがあって、それならば、ということで次に手がけたのは、fconvコマンド。Cコンパイラが出力した疑似浮動小数点演算ニーモニックを実際のニーモニックに変換するプログラム。コンパイラが出力する "fmove f0,f1" といった疑似命令を、ライブラリ呼び出しに変更し、変更結果は、アセンブラの入力になる。実際に呼び出されるライブラリは、新井さんがアセンブラで作った。つまり、MC68010が載る拡張筐体には、ハードウェアの浮動小数点計算機能がなかったので、ソフトウェアでやる必要があったから、そういう機能が必要だった。
レジスタ間接などの意味を適当にしか理解していなかった上、きちんとプログラム設計せずに作り始めて、浜地さんにえらく叱られたのをよく覚えている。浜地さんは、絵に描いたような『頭の切れる人』で、何を聞いてもきちんとした曖昧さのない答えが返ってきた。だから、BSDのstringコマンドを使ってプログラム内の文字列を抽出し、それでスペルチェックすれば、プログラム内のメッセージのスペルの誤りがわかりやすい、といったことをぼくが言ったら、「おお、なるほどね」、と言われたのは、一度だけ浜地さんにほめられたこととして、よく覚えている。
最初の浜地さんに叱られたバージョンのfconvを作成しているときに、yacc/lexを使うことを勧められたのも記憶にあるが、実際に使ったかどうかは定かではない。yacc/lexについて詳しいのは、武部さんだよ、と教えてもらったのも記憶に残っている一因かもしれない。武部さんは、新井さんと同期のきれいな女性。武部さんが退職する前にたまプラーザの日本茶を飲ませてくれるお茶屋さん(『茶の葉』)でお茶が飲みたいと誘ってくれたのもなつかしい。
fconvで懐かしいのは、64ビットのdouble型の変数と32ビットのint (long) 型2つの配列をunionにすること。double型の変数の内容をビットパターンで取り出すにはどうしたらよいのか考えて、自力で思いついたので、印象が強い。また、寝ているときに、夢の中でポインタの繋ぎ替えをやってわかった、と思ったのに、朝になって思い返したら全然違っていたということもあった。