先日、X (元ツイッター)で、漢字 ROM という存在に驚く若者がいた。
文字が ROM に入っていて、フォント交換とかできない、というのが概念としてカルチャーショックを感じたようだ。
一方で、当時は RAM は高価で、搭載容量も小さかったので ROM だったのだろうか、と考察もしていた。
これに対して、多くの人がいろいろな意見を書いていた。
実際その時代を知っていた人の思い出話もあれば、若者の考察として出鱈目な意見もあったりして面白い。
自分は思い出話を語る側の人間だが、「漢字ROM」について書いたことはなかったので、記しておこうかと思う。
最初に、JIS 漢字について書いておこう。
「漢字ROM」の話題の中で、膨大な漢字を分類し、番号を付けて ROM に格納した人たちに思いを馳せる人もいた。
実際、JIS 漢字の制定までは長いドラマがある。
JIS 漢字が定められる前はコンピューターで漢字使えなかったんだ、という意見も見られたが、これは少し違う。
各社が何とかコンピューターで漢字を使えるようにしようとして、独自の方法を探っていた。
1978年には、やっと今と類似の方法で漢字を扱える「ワープロ」が登場する。
その少し前から、このままでは各社のコンピューター間で文章のやり取りなどできない、という危惧があり、JIS として文字コードをまとめようとしていた。
新聞や雑誌で、ひたすら「文字をカウント」して現代に使われる文字の頻度を確認する。
それでは現代に偏り過ぎるから、古文などでも同じ作業をする。
日本語の漢字には表記ゆれ…異体字もあるから、同じと思われる文字はまとめる。
この地味で気の遠くなる作業を繰り返し、良く使われる文字と記号と、使えると良い文字を、それぞれ 3000字強でまとめ上げる。合計は 6800字ほどだが、これが「第1水準」「第2水準」と呼ばれる漢字だ。
先に 1978年に最初のワープロが登場したと書いたが、JIS漢字の制定も 1978年だ。
つまり、最初のワープロは JIS 漢字には沿っていない、独自の漢字コード。
ともかく、基準が定められた。6800文字だ。1つの漢字を 16x16 ドットで表現するとしたら、256ドットになる。
これは、256bit = 32byte で表現できる。
1文字を32byte として、6800文字は 218Kbyte 程度。
ROM としては、256KByte の ROM が使用されることが多かったようだ。
第1水準のみなら、半分の 128Kbyte で済んだ。
ところで、JIS 制定後の1980年代は、8bit のホビーパソコンが広まった時代だが、当時の CPU である Z80 や 6809、6502 が扱えるメモリ空間は 64Kbyte 。
実際には、CPU外にとりつける回路により、「バンク切り替え」と呼ばれる方法を使ってメモリ空間を広げられた。
たとえば、Z80 を使用する MSX は、設計上 1MByte = 1024Kbyte のメモリ空間を持っていた。
というわけで、MSX の場合、カートリッジとして漢字 ROM を供給できた。
ところで、X では「漢字 ROM」という言い回しに対し、実際には ROM ではなく、マザーボードのスロットに差す拡張ボードとかでしょ? と書いている人もいた。ROM をそのまま売るなんて、やるわけないだろうと。
MSX のカートリッジ、なんていうのは、まさに拡張ボードだろう。
でも、FM-8 では、漢字 ROM を刺すための ROM ソケットがついていた。
全ての人が漢字を必要とするわけではないので、標準では取り付けられていない。しかし、必要なら本当に単体の「ROM」を購入し、自分で ROM ソケットに刺すのだ。
さて、まだ最初の疑問に答えていない。なぜ ROM だったのか。
実際には RAM は ROM より高価だが、RAM を増設してそこに読み込むのではだめなのか。
当時の常識としては、ASCII 文字の形状は、ROM に入っていたのだ。
電源入れたときに、少なくとも文字は表示されないと操作できないからね。
MSX の場合、文字の形は変更できるように RAM 領域になっていた。
でも、Boot ROM の中に文字の形状が格納されていて、起動時に RAM 領域に書き込まれる。だからやはり、文字形状は ROM なのだ。
文字形状は ROM 。これが当時の常識であり、当然のことだった。
漢字 ROM も、この常識に従って作られたものだ。
もう一つ、当時の外部記憶メディアとしては「カセットテープ」が主流だった。
ディスクのように速くない。32Kbyte のプログラムを読むのにも、5分程度かかった。
220Kbyte なら 30分かかる計算だ。これを、電源を入れるたびにやらないといけない?
漢字は ROM にするのが当然だった。
ところで、Apple の Macintosh は、当初日本国内ではキャノン販売が扱っていた。
Mac は注目の機械ではあったが、アメリカ製で日本語が使えなかった。これでは日本のオフィスでは導入しづらい。
そこで、キャノン販売は、Macintosh 512K と呼ばれる機械に、日本だけの特別な改造を行った。
当たり前だが Mac 512K には、漢字 ROM を搭載するような仕組みも、スペースも用意されていない。
そこで、CPU を引き抜いたうえで、代わりに漢字 ROM と CPU を重ねて搭載できるような特殊基板を差し込んだ。
CPU のアドレスバスとデータバスを直接 ROM に直付けしてしまえば読める、という寸法だ。乱暴。
ダイナマック、と名付けられ、キャノン販売が外注して作成した日本語ソフトウェアと共に販売された。
この改造機種、アップルの歴史では「認められていない」。
あくまでも、日本の販売代理店が暴走して勝手に作ったものだ。
とはいえ、日本での Mac 普及に一役買ったらしい。
しかし、こんな方法を取っていては、新機種のたびに大改造を行わなくてはならない。
Apple にとっても、日本は大きな市場に育ちつつあり、キャノン販売からの要望に応えて、日本語対応の OS が作られていた。
やっとこの日本語 OS 「漢字 Talk」が登場するのが、512K の次の機種である、Macintosh Plus 。
搭載メモリが 1M byte になっていた。
漢字 Talk は、アメリカ本社で、日本語が全くわからない技術者によってつくられた。
そして、当時の「日本の常識」を打ち破った。
なんと、漢字 ROM を持たずに、漢字フォントを OS 上の「ファイル」としたのだ。
Mac は伝統的に文字を ROM ではなく「ファイル」として扱っていた。だから、漢字もそのようにしたのだ。
当時のキャノン販売が作ったパンフレットを持っていたことがある。
(より完成度の高まった「漢字 Talk2.0」発売時のパンフレット)
表紙に、大きな文字で「日本語はハードか? 日本語はソフトだ!」と書かれていた。
これ以前、日本語を扱うには、日本語を考慮して作られた、日本のメーカーのハードでないと無理だと思われていた。
なのに、無改造のアメリカのマシンで日本語を扱えるようになった。
「日本語はソフトだ!」というのは、時代の転換点を意味する言葉だった。
少し話を戻して、8bit の時代。
1文字を1バイトで表現するメモリ。ASCII コードを書き込むと、それに対応した文字が画面に表示される。
グラフィックでは、1バイトを書き込んでも、色付きの1ドットだったり、白黒の横8ドットだったりが表示されるだけだ。
でも、テキスト画面は1バイトの書き込みで、8x8 のキャラクタが表示されるのだ。遅い CPU で、高速に画面表示ができるいい方法だった。
でも、テキスト画面は「1バイトを書き込むと」「アスキーを表示する」のだ。
漢字には対応していなかった。漢字 ROM を搭載したマシンでも、漢字を表示したいときは、漢字 ROM から文字形状を読み込んで、グラフィックとして表示しなくてはいけなかった。表示が遅い。
#先に書いた FM-8 なんかは、テキスト画面を持っておらず、すべてをグラフィックに一本化していた。
それでは遅くなってしまうので、メイン CPU とは別に、グラフィック用のサブ CPU を持っている。
実際には、この連携がそれ程よくなくて、グラフィックの速度を出しにくかったようだけど。
16bit マシンになるが、PC9801 は、テキスト画面を漢字に対応させた。
1バイトを書き込むとアスキーを表示するが、2バイトを書き込んで漢字を表示させることもできるのだ。
外部サイトだが、PC-9801シリーズのテキストVRAMに詳細が書かれている。
(実際には、書き込まれたものがアスキーか漢字かを指定する「アトリビュート」も変更する必要があった。これはアスキーの書き込みの際も同じで、アスキーなら2バイト、漢字なら4バイトを操作することになる)
これは速かったし、プログラムが楽だった。
PC9801 が最大シェアを取った理由の一つが、この扱いやすいテキスト画面だったと思う。
(他にも、グラフィックが速い専用 LSI を搭載していたとか、とにかく良くできた機械だったのだけど)
日本のメーカーは、日本語を扱うのに特化したハードウェアを作っていた。
日本語は文字の種類が多く、そうしないととても扱えない、と信じられていたのだ。
時代は 8bit から 16bit に移行していた。
メモリ空間は広がり、RAM も 1M byte 程度搭載するのが当然になっていた。
フロッピーディスクは当然のもので、ハードディスクも珍しくないオプションになっていた。
Mac は元々テキスト画面を持たない機械だった。
だから、日本語もグラフィックとして扱う仕組みに違和感はなかった。
しかし、IBM 互換機はテキスト画面を持ち、アメリカの機械なので当然のことながら、漢字なんて表示できなかった。
国内では、PC9801 が大きなシェアを持っていた。
ここに、日本 IBM が戦いを仕掛ける。Mac と同様に、無改造の IBM-PC で日本語が表示できれば良いのだ。
そして、DOS/V という OS が開発された。
無改造の MS-DOS に拡張ソフトウェアを同梱したもので、VGA と呼ばれる画面表示の機種にのみ対応(VGA は当時の標準だったが、それ以外の表示もあった)。
この DOS/V 、英語モードと日本語モードを切り替えられるのだが、日本語モードにすると全てのテキストをグラフィック画面に表示するようになる。
そして、漢字データも RAM に読み込み、「普通に」扱える。
先に書いたように、PC9801 は「テキスト画面が使いやすい」機種だった。
DOS/V では、仮想テキスト画面を作り、そこに書き込んだものを OS の責任として、グラフィック画面を使って表示した。PC9801 の使いやすさを、ハードではなく、OS レベルのソフトウェアで実現したともいえる。
8bit 時代なら、漢字をグラフィックに書くのは「遅かった」。
しかし、16bit で CPU 速度も上がった時代では、十分実用速度だった。
DOS/V は先に書いた通り、VGA 機種でしか使えなかった。
しかし、方法論は示した。この後、まず、DOS/V 相当の「拡張機能」が、フリーソフトとして作られる。
そして、VGA の少し前の規格…CGA の機種でも同じように漢字を表示する仕組みが、作られた。
HP-200LXは、ポケットに入るサイズに作られた IBM 互換機だったが、CGA だった。
このマシン上で、フリーソフトによって日本語化が行われたのだ。
この頃になると、「漢字ROM」ではなく、フォントデータを使うのが当たり前になりつつあった。
これに呼応して、フリーの日本語フォントを作って公開する人も多数いた。
漢字 ROM の時代は終わり、ソフトウェアに移行した、と言っても良いだろう。
話は一気に飛んで現代。
Windows も Mac も、当然漢字 ROM は使っていない。
どちらの機種も、今はテキスト画面を持っていない。ASCII文字ですら、ソフトウェアで描画している。
漢字 ROM の時代は、漢字が 16x16 だったり、12x12 だったり、ドットで描かれていた。
しかし今はベクターだ。サイズは自由に変更可能で、リアルタイムに計算して「レンダリング」している。
この状況では、「昔、漢字を表示するのには漢字 ROM が必要だった」というのが、全く想像のつかない話だとしても不思議ではないだろう。
別にそれでよいのだけど、X に書かれた疑問と、それに対する…間違った応答も多かった反響を見て、自分の知っていることを書き残す次第です。
同じテーマの日記(最近の一覧)
別年同日の日記
申し訳ありませんが、現在意見投稿をできない状態にしています。 |