電机本舗設立の有史以前になる1986年頃、起業してまず最初に手掛けたのが、PC9801用IBM-PCエミュレータ「AVSIM」の開発。

今から30年前の当時、日本ではNEC製のPC9801(MS-DOS機)が市場を支配、全世界ではIBM製のIBM-PC(MS-DOS機)が市場を席巻していました。この両者、同じマイクロソフト製のMS-DOSを搭載していましたが、何とも互換性が低い。OSが提供する機能(APIと言います)では互換性がありましたが、APIでは速度が遅いし、機能は貧弱、バグはあるわで実用的なアプリを作ろうとするとBIOSを叩くか、ハードウェアを直接叩く必要がありました。

BIOSはBasic-Input-Output-Systemの略称で、ハードウェアとソフトの仲介役をする仕組みだと思ってください。厳密にはソフトウェアですが、煩雑なハードウェアの操作をまとめたプログラム集だと考えてもらってもいいでしょう。OSはこのBIOSを呼べば楽チンという考えです。

そんな状況下で海外のソフトウェアを販売していた“工人舎(KOHJINSHA)”(ソーテックの前身で、厳密には工人舎は大邊御父君が創業、ソーテックは大邊創一氏)を設立するとのこと。(※当時の会社は別の企業と記憶。現在、台湾のインベンテック傘下のパソコン製造・販売メーカー“インベンテック開発株式会社”)その工人舎が海外のソフトはみんなIBM-PC用で、PC9801が支配する国内市場では売りようがない…。その理由としてMS-DOSには漢字のフォント情報がないからだった。国産PC9801はマザーボードに16×16の漢字フォントを備えているから漢字を扱えたわけです。というわけで漢字の取扱いが無理なのは当然としてもIBM-PCハードウェア依存のアプリがそのままPC9801で動かせるようにする必要があるかと。そんな経緯からPC9801用にIBM-PC互換のBIOSを積めば良かろうと考えて、制作したのが本ソフトウェアです。

工人舎はソフトウェア開発用のCPUエミュレータ、デバッガという開発ツールを販売していたので、オフィスとは違い、英語表示でも商品価値があったわけです。

「AVSIM」を起動するとメモリに常駐し、アプリからはIBM-PC用のソフトが動くようになりました。互換性維持はあくまでBIOSレベルまで。この本ソフトは工人舎がIBM-PCのソフトをPC9801用として販売する際に標準添付して出荷することとして、ソフトはライセンス制で契約。つまりソフトを1本出荷するごとにライセンス料を受領、販売することで、新会社設立のきっかけに発展したことを思い出します。

このソフトはフルアセンブラで制作しました。徹夜で1ヶ月、1ヶ月半ぐらいのつもりでしたかね〜テスト工数を掛けると…なぜか古いPC9801で安定して作動するのですが、新しい高性能なPC9801だと30分くらいでハングアップする…何だこの現象は!

アメリカ人はコンピュータ開発が苦手?

何で高速のPCだと障害が出るのか???原因追究の調査が本当に大変でした…。インターネットがない、書籍しかない時代ですから、まずコンピュータの開発関連の雑誌を調べてみました。散文的に言うと“アメリカ人はその場で動けば良いという設計をする、それが原因である”という見解のものです。

具体的に説明すると、当時のPC9801、IBM-PCというのはインテル(入っている)の16ビットCPUで8MHz以上を前提とするi8086シリーズを採用しているのですが、CPUにぶら下がっている周辺のLSIが動作クロック1MHz用の8ビットCPUのi8080用を流用している…。もともと1MHzを前提としているLSIに8MHzで動くCPUを接続するからです。1MHzで設計しているLSIに8倍以上高速のCPUを接続すればどうなるか!?仮に動作していてもその後、CPUは10MHz, 16MHzと新鋭ほどクロックが速くなります。これはCPUから受けた命令の処理が終わっていない状態で、次の命令を受け取るとLSIがパニック状態になるわけです。正にこれが問題となる現象の真相です。

CPUを制作する際に周辺機能をまとめたファミリーLSIを用意します。これをしなかったわけですね。もちろん、コストダウンを考えれば、この判断は合理的なんですが、CPU<->LSI間の調停機構を作ろうとしないというアメリカ人気質が伺えます。これは簡単なプログラムで良く、マザーボードの速度に合わせて遅延時間を決める感じの仕様いいんです。CPUがLSIに命令を出す時に必要な遅延をある程度、自動算出する仕掛けを用意すれば良いだけ。従って、改良後はインテルのi8086シリーズが順調に売れてi8086->i80286->i80386と、高性能化していきます。つまりCPUが高性能化するたびに毎回BIOSを含むハードウェアを制御するプログラムは手直しして、遅延時間を増やす必要があることになります。

アメリカ発のコンピュータを観ていると常にこういう不安感があり、まぁ、遅延時間の決定はハードで実現するには厄介で、ソフトでやる分には各ソフトハウスがやれば良いという図式があって、一概にアメリカ人はコンピュータ開発が苦手とは言い切れないんですが。ただ日本人の我々からすれば、如何にもドンくさいの一言です。これはその後、確信に変わります…。とは言え、組んでいて楽しいのはやはりアセンブラ。生産性は低く感じますが、脳ミソをフル回転しないと作れないあたりが何とも楽しく、大奮闘していたことを懐かしく振り返ります。