いまでは、コンピュータで何不自由なく日本語を扱うことができるが、1980年台には漢字表示を行うことさえままならない時期があった。1979年にBASICを搭載した8 bit CPUマシンが登場したが、メモリ空間は64キロバイトで、漢字を扱うには能力が不足していた。しかも、初期のマシンの外部記憶は、カセットテープに音を使って記録するもの。記録密度も低く、読み書きにも時間がかかり、ランダムアクセスができなかった。
このため、漢字フォントや変換辞書を外部記憶に置くことはできなかった。8 bitマシンで日本語ワープロソフトが動くようになったのは、フロッピードライブやバンク切り替え方式が普及してからである。
専用装置としての日本語ワープロは、1978年のJW-10(東芝)が商用製品の最初である。ミニコンをベースにしたもので、メモリ空間は、最大64キロバイトと初期の8 bit CPUと大差ないが、ハードディスクやフロッピードライブを装備したもので、8 bitマシンとはシステム的に大きな差があった。
日本語を扱うためには、「漢字表示」が必要となる。マイクロプロセッサでは、メモリ空間が1メガバイトと大きくなった16 bit CPUを採用するマシン(1982年のPC-9801など)が登場して、ようやく漢字表示が可能になった。
漢字をコンピュータの画面に表示するには、大きく2つの方法がある。1つは、グラフィックスとして画面に表示する方法である。もう1つは、コードを使って画面に漢字を含む文字を表示できるハードウェアを作る方法である。前者の方が簡単だが、ソフトウェアに対する負荷が高く、CPUの処理速度に依存する。後者は、ソフトウェアの負荷は小さく高速だが、ハードウェアのコストがかかる。
当時のJIS C 6226:1978(のちのJIS X 0208)には第一水準漢字2965文字と非漢字453文字の合計3418文字がある。これを16×16ドットのパターン(32バイト)を記録すると、その容量は、約107キロバイトになる。このROMをメモリ空間に割り当てるには、8 bit CPUのメモリ空間64キロバイトでは不足だった。当時の16 bit CPU、たとえば8086は、アドレス空間が20 bitあり、1メガバイトのメモリ空間があったためにようやく利用が可能になったわけだ。
漢字の表示パターンさえあれば、あとは、グラフィックス(当時は640×400ドット程度)を使うことで、漢字を画面に表示できるようになる。漢字1文字表示するのに32バイトも書き込む必要があり、クロック周波数が数メガ程度だった当時のCPUには少し荷の重い処理である。一番の問題は、画面のスクロールだった。画面を制御するコントローラに、スクロールに対応した機能があればいいが、それがないと、画面全体(640×400ドットモノクロでも32,000バイト)を、1行分上に移動させる必要があった。多くのディスプレイ・コントローラーには、ビデオメモリ内で表示開始位置を指定するレジスタを使い、これを書き換えることで見かけ上のスクロールを実現していた。こうするとスクロールは早くなるが、画面の同じ位置に対応するビデオメモリのアドレスが変化してしまうため、グラフィックス描画処理が複雑になった。
なお、ROMを直接メモリ空間に割り当てない方法を使えば、8 bit CPUでも漢字ROMを使うことは不可能ではなかった。後年、バンク切り替え機能などを持つデバイスが製造可能になり、8 bitマシンでも漢字ROMを扱えるようになった。たとえば8 bit CPUのZ-80を搭載したエプソンのHC-40やHC-88といった機種は、オプションで漢字ROMが用意され、ワープロソフトが利用できた。あるいは、バッテリで動作するポータブルワープロ専用機が登場したのもこの頃だ。しかし、こうしたマシンの登場は、PC-9801などの国産16 bitマシン登場後のこと。先に、16 bitのデスクトップマシン用に漢字ROMなどが作られ、その成果を利用できるようになったからだ。
当時は、電子的に設計を行うことも未成熟で、ハードウェアの設計は、人手に頼っていた。LSIを作るにも、TTLで回路を組むにしても、設計作業の多くは人手で行う必要があった。そういうこともあり、今から見れば、ハードウェアの進歩もゆっくりだった。
漢字を表示するもう1つの方法が漢字コンソールだ。これは、ビデオメモリに漢字に対応したコードを書き込むと、漢字が表示されるもの。漢字ROMと同じように漢字のグラフィックスパターンを内蔵したキャラクタ・ジェネレーター(Character Generator。CG)を使う。こちらは、メモリも少なく、漢字のカラー表示や高速なスクロールも可能だった。ただし、ハードウェアが複雑になる分、コストが上がった。主にビジネス向けの機種で採用された。この頃の漢字コンソールは、漢字CGが漢字ROMを兼ねており、グラフィックスモードの場合、漢字CGから漢字パターンを読み出して、描画を行っていた。こうしたハードウェアは、日本語特有のものなので、国内メーカーのマシンにしか装備されていない。
当時作られたシフトJISコードは、漢字コンソールなどに対応しやすく、かつ、漢字のことを想定せずに作られた米国製ソフトウェア(MS-DOSやBASICインタプリタ)などが対応しやすい「折衷」方式である。
のちにアスキー社が中心になって開発した、JEGA(IBM PCのEnhanced Graphics Adapterを日本語化したもの)では、ビデオメモリに書き込む表示用コードがシフトJISコードそのものだった。このAXでは、米国製ソフトウェアでもシフトJIS文字列を出力させると、そのまま画面に表示することができた。とはいえ、あくまでも表示できるというレベルであるため、たとえばカーソルは漢字だと半角文字単位で動き、2バイト文字の片側だけ削除してしまうこともあった。AX規格は、日本にAT互換機を持ち込む中で一定の役割は果たしたが、果たして、ここまでやるべきだったのかどうか。結果的にソフトウェアのみで漢字を表示させるDOS/V方式が普及した。
ただ、当時の、国内のハードウェアメーカーの多くは、AT互換機を製造して海外企業にOEMするなどしていた。全盛期には、日本で製造されたパーソナルコンピュータの半分は海外向けのAT互換機だった。そういうわけで、AXやDOS/Vなど、AT互換機が国内で立ち上がっても、作る側からいえば、大きな変化ではなかった。輸出専用だったものを国内でも販売できるようになったからだ。当時、「黒船」などと騒いでいたのは、テレビや新聞など、あまり事情を知らないマスコミの人達だけだった。とはいえ、世界中で大量に使われたAT互換機は、価格競争に入り、製造の主力は、台湾など海外に移った。
今回のタイトルネタは、フレドリック・ブラウンの「天の光はすべて星」である。筆者は、若いときに読んだが、当時は、ちょっとした感動物語としか思えなかった。しかし、年を取ってから読み返すとまったく違うメッセージを受け取ることができる。