コンパイラーSDK編
組み込み開発環境が自分の手元のパソコンで動作し始めたのは、ある意味で凄いことだった。それまでは一億円もするスーパーミニコンでしか動作出来なかったCコンパイラが使える速度で小気味よく動作する机上のマシンはエプソンの98互換機のミニフロッピー版モデルであった。20万円ほどで当時導入できた640kBのメモリ搭載と2FDDというモデルにHDDを付けてコンパイルが出来るようになったのは凄いことであった。IBM-PC主流の開発ツールの世界にあって日本標準機に向けて開発ツールを移植して呉れた導師の成果は組み込み市場にとって凄いことだったのではないかと私は思っている。TurboPascalで開発環境に一大ショックを起した後にTurboCを投入して開発環境を必要とする現場にあわせた米国並みの価格で提供してくれたことが大きな一石だったと私は認識している。DOSにより実用的なサイズのコンパイラーが使えるようになったことは私にとってようやくコンパイラを実感する時代でもあった。19800円のTurboCの事実は、強烈なメッセージだった。
実は、私が個人的にコンパイラを買ったのはTurboCが初めてではないのであった。時代的にさらに遡り会社で8ビットパソコンが流行したことがあった。この際にシャープのキットを購入してキーボードの半田付けを楽しんだ後はBASICインタプリタの改造に励んだりしておもちゃのようなメカプリンタを接続して遊んだりしていた。さらに個人的に精工舎のワンドットプリンターなる安価なプリンターを購入してシャープの純正プリンターと同等に動作するようにBASICインタプリターの中身を改造するということを趣味の範疇でやったりしていた。逆アセンブラーで解析したコードにパッチを当てるという今から考えれば怪しげ極まりないものだった。シャープの販売代理店の目にとまり、買い上げてもらったのだがすぐに精工舎からシャープ対応品が販売されておじゃんになったようだ。小遣い稼ぎになったので、キャノンの一眼レフカメラを浮いたお金で購入したりしていた。そんな中で、フロッピーベースの環境などを利用しつつもまともなOSとコンパイラの利用には興味深々ということもあった。
シャープのMZ80から富士通のFM8に乗り換えたのは、漢字表示が出来たりといったことやカラーということもあったのだが、究極の8ビットマイコンと呼ばれていた6809の為に作られた、このチップのパフォーマンスを評価する目的で作られたBASIC09という高速ベーシックがあり、この機能などを使いこなす上で当時のモトローラ系OSとしてあったFLEXといったOSとは一線を画するマルチタスクのOS9というものが提供されるからでもあった。このOSをFM8で動作可能にするための周辺ユニットなどの一連製品を売り出したベンチャーがあった。ボーナスや蓄えの費用を大枚投じて50万円もの当時としては高額な現金を懐に入れてアキハバラに乗り込んだのだが、当時たまたま来ていた従兄弟には「次郎君が50万円抱えてキャバレーに行くといって出かけていった」と聞こえたらしかった。まあ確かに大金だったのだが、OS9という先進のOSに触れる経験はある意味で変えがたいものだった。確かにTSS環境のように8ビットマイコンが振舞ってくれたのである。マルチウィンドウが確かに動いていた・・・。
期待して動作させたOS9のCコンパイラだったのだが、フロッピーベースでコンパイルがマルチパスで動くさまは鈍重で期待するようなコードサイズのコンパイルは少なくとも64kbのメモリベースでは実用的なものは作れなかった。カーニハンリッチの参考例はコンパイル出来ても、当時開発していた4ビットマイコンのシミュレータを作ろうという目的に達することはなかった。やはり会社にある一億円のUNIXマシンと自宅にある30万円ほどのハードに50万円ものソフトを導入してみても玩具に過ぎなかった時代であった。自分への投資という名前での浪費結果は、個人としても独身から結婚という段階に入る段で、よい資産状態とはいえなかった。まあ細君となる彼女も似たようなところがあり、彼女はスキーに投資しきっていたと歴史をもち二人ともたいしたものを持ち合わせないままのスタートとなり独身時代のような奔放な利用は出来なくなった。互いの調和をとりつつ市場の価値判断についてようやく思いがいたる時代となっていた。自己に投資した成果というよりも不良資産のように残されたパソコンの残高返済に終われていた実情だったかも知れない。
そんな時代を経つつ、UNIXでの実務に入ることになったのは、まさに伴侶に恵まれてのことだったのかもしれない。個人としての結婚しての新しい生活と開発技術者としてのUNIX環境へのシフトがシンクロしていたように思い返される。弁当を持っての会社通勤の気恥ずかしさと、新しい環境で毎日ツール作りをしながらの仕事スタイルの変遷も自身の変革に役立っていたのかもしれない。1200bpsの個人向けのモデムでみたUNIXの開発環境は会社での19200bpsの非同期構内モデムで接続されたVT100相当端末にくらべるまでも無かったものの出先の一環としてコンパイラを自宅で作業保守したりあるいは、関西地区から遠距離電話でログインしつつの製品開発を行ったりと活躍していたのも事実だった。コンパイラの性能も高まり、製品応用が広がっていく中で持ち歩ける状況が構築できれば凄い時代になると確信していたのだった。ともあれ利用するためには高価なUNIXが動作する環境が必要なのは事実であり100万円の電話代を支払ってでも製品開発を現地で行ったりしていたものだった。
開発したCコンパイラを利用させてほしいという知り合いが登場したのは元々のコンパイラ開発の目的でもあった無線データ通信カード応用商品の開発に付随してのことだった。データ通信カードをある意味で無線機ユーザーの拡販に使おうとしていた矢先に、お客様の業務に似合った癖のある濃い端末を開発することになり流通業界をターゲットにおいたその端末にはバーコードの技術が必須となりハンドスキャナーからケーブルを取り去りスキャナー自身が自立走行する端末として使えるというコンセプトだった。そんな端末は、CMOSのSRAMベースで動作する8ビットマイコンであり開発していたCコンパイラのターゲットと同じマイコンだった。アセンブラをフルに駆使していたソフトハウスであったが私自身が次々と効率よく端末周辺機器や端末デモアプリなどをCコンパイラで開発している様をみて、自社の開発するマイコンを全て切り替えて私のコンパイラを動作するよう当時タンディが発売しはじめたUNIXマシンを買い込むほどの入れ込みようだった。
68000で動作するUNIXマシンだったのだが、コンパイラのコードそのものは、そのままコンパイルして使えるようになり、ソフトハウスの社長はクロスアセンブラのみを手配して利用することにしていたようだった。一億円も払わなくても使えると言う現実は、次々とWSが登場する時代になりタンディに続いてマシンをNEWSに切り替えて更に利用を広げていた。アセンブラベースの開発環境からすっかり組込みCコンパイラ環境を社内以上に実践していくことになったのはベンチャーソフトハウスの社長の積極的な性格が反映してのことだったろう。そんな社長や周囲の声は当初想定した端末開発環境というものを手軽に提供していくことの重要性を互いに認識していくことになった。しかし、開発環境として使えそうなMSDOSの上でNEWSなどのWSなみにリニアな命令空間でない86のアーキテクチャを解決できないままでいる当時のDOS用のコンパイラに風穴をあけてくれたのは、知人のペンギンソフトの筒井氏である。UNIXのポータブルCをベースに8086に向けて使えるようにしたというビジネスを始めてくれたので彼のコンパイラとソフトハウスの社長の伝を辿りロハで開発マシンを自宅に引き入れることに成功した。
ロハの条件はマシン評価用に出版社がPCメーカーである日本電気から借り出していた端末の又貸しであり、この出版社の記事に投稿するという条件がついたのである。まあ今から考えるととんでもない状況だったともいえるし大らかな時代だったともいえる。結局仕事の合間をぬっての自宅での趣味的な作業の中からは進展がみられず最後になって追い込みで出来るようになったのはコンパイル統合環境として登場したまともに使える状態のTurboCが導師からリリースされる時期を迎えてスピードアップとともに悩んだ末に編み出した文字列ポインターによるTコード構造をリニアなWSと8086とで共用できる構造により解決がなされた。64kbの空間で納まるソフトウェアならば筒井氏のコンパイラでも十分だったのだが、ラージモデルとしてコードサイズから64kBの制限がなくなったことでコンパイラの移植に成功することに繋がった。時代の技術をフルに駆使しつつの開発でもあった。あわせてDOSで動作するまともなアセンブラを手に入れる必要に迫られたので京都マイコンの創業期にも重なる時期に中書島近くの最初の本社?に押しかけて御願いをするにいたった。
目的であるクロスコンパイラを含めた開発キットのユーザー価格はべらぼうで先に価格が15万円と規定したので原価から出せるアセンブラの費用は数万円ほどで50本の出荷企画数でまとめた発注ということでなんとか御願いを通させてもらった。ほかに必要なマニュアルは自分達で分担して書いていたものをJ−starで書き直したりして仕上げサンプルアプリケーションやダウンロードツール、またデータ受信ソフトなどを動作させることが求められていたのだが、当時の情勢としてはIBMとNECとFUJITSUの三種類のMSDOS環境で動作させることが必要となり仲間達とともに機種間相違の問題となるシリアルインタフェースや画面制御などに苦慮しながら開発支援環境を構成した。自分達で起こした端末BIOSにしてもツールや周辺装置の全ては自作してしまったためにサポートは非常に楽な結果となった。難しいコードを書かずに単純化したすっきりしたコードにすることに慣れてしまったからかもしれない。各地のソフトハウスと呼ばれる方達に開発ツールを実際に提供して雛形となるサンプルソフトからの変更といったスタイルをはじめていったのである。
一億円のマシンの上であそばせてもらっていた時代から、実務の上で日本中の各地のソフトハウスと呼ばれる人たちが手に入れられる環境でターゲット端末のソフト開発ということを共有しながら進められるようになったという、この時期の経験は私の大きな財産のひとつである。また、端末のパフォーマンスを示すための魅力あるアプリケーション開発の提供という意味からは自ら知り尽くしたBIOSの壷を駆使したカラオケソフトを一気に書き上げた。まずは一曲のみ自力でいれることでデモに供してあとはコンテンツ作成者としての協力、部下達に御願いすることになったのはちょうど社内のアイデアコンテストの作品として出品することになったからでもある。少しひねりを入れた端末としてワイヤレスマイクを組み込み、いまならばさしずめ豆カラあるいはeカラといった玩具の類の提案である。しかし実際に組み込まれたカラオケはキー変更やカタカナでの歌詞スクロール表示など思い切り遊んだ仕様となっていた。唯一の問題点は複数端末を利用して合唱しようとすると発振子の精度がなくて段々輪唱になってしまうというご愛嬌がついて回った。
やりたいことを徹底的に追求してありたいところまで執拗に追いかけた成果ともいえる。会社という枠を使ってお客様との仕事を通じて自分達で出来ることの接点をタイムリーに追求していくというビジネスサイクルを回すことが出来た体験も、めまぐるしく私の周りで新人教育の時代をキャッチアップして開発支援してくれた優秀な部下達の成果と思っている。また彼女らにとってもスキルアップを着実に果たすことが出来た経験であったと確信している。いいことばかりではなく自己満足だけの追及に終ったようなBASICインタプリタの開発というテーマもあった。同じ端末というテーマをプラットホームとして捉えて色々な商品や技術開発の追及を行ってきたといえる。コンパイラやインタプリタ開発とOS開発の立場の二足のわらじを履きながらのソフト技術者体験というのは組込み追求というテーマにとっては異質だともいえるのだが、後年始まったJavaの台頭などを考えていくと飽くなき好奇心こそが技術者の糧だという想いを強くするこのごろである。会社という組織に根ざして社会に貢献する仕事というチャンスを得てきた。これらを通じて自分のスキルアップを会社との契約条件とみなしてもっと追及していく図太さを私は上司から教えてもらったので、そうしたことの必要性を後輩達に伝えたいと思うのである。