



私が、初めてOSらしいOSを触ったのは、CP/M-86である。
言うまでもなく、8ピットPC用のCP/Mを16ビットに移植したものだ。
CP/M-86上で動作するコンパイラなども出回っていたが、
CP/M自身を本気で使うつもりはなかった
(CP/M上でソフト開発なんぞしても、CP/Mを持っているのは、
ごく限られたマニアだったから、使ってくれる人がいなかったのだ)
から、そんなものを買おうとは思わなかった。
もっとも、高価過ぎて買えなかったが…。

当時は、N88-BASICがメインの開発環境だった。
BASICインタプリタは、なにしろ遅く、
かなりの部分をマシン語(アセンブラ)に頼るようになっていた。
CP/Mは、このアセンブラルーチンの開発に威力を発揮した。
CP/Mでアセンブルして、
BASICにマシン語ルーチンを転送して使うという具合である。
N88-BASIC←→CP/M間でデータをやり取りする
ツールもなかったから、自作した。
N88-BASICのモニタでCP/Mのディスクを解析して、
読込プログラムを作成。
更には、CP/M-86にはラインエディタしか付属しておらず、
ソースの作成が厄介だったので、
N88-BASICでソースを編集するエディタを作成。
CP/M-86上でN88-BASICのディスクを読込む
アセンブラプログラムを作成した。
これで、N88-BASIC上でアセンブラソースを編集→
CP/M-86に転送→CP/M-86でアセンブル→
出来たマシン語ルーチンをN88-BASICに転送、
という、なんとも回りくどい開発環境が出来あがった。
さながら、「プロクラムを作成するためのプログラムを作成していた」毎日だった。