特殊なメモリエリア とはいえ、このメモリに沿って歩いていれば、どこかで再び会えるかもしれない。そう信じることにして、成康はメモリの横をアドレス順に歩いて行くことにした。 いちおう、メモリ内部の数値も確認のために見ていたが、当然のことながらそれを解読することはできない。しかし、トットコトットコ走ってみたり、数バイト分ジャンプしてみたり……と、CPUの気分になって前進することを楽しんでいた。すると、遠くに人影らしきものが見える。 近づくと、それはヒョロリとした木製ロボットだった。トンガリ帽がよく似合う、のほほんとした雰囲気が敵意のないことをうかがわせる。 だが、手には長く鋭いヤリを持ち、見るからに門衛の役割であることがわかる。それが証拠に、成康の前進をキッパリと拒むように、両手で水平にヤリを突き出しているではないかっ!
「ここから先へは行けません!」
ビデオラム(VRAM)とは、画面表示に直接関係のある特殊なメモリで、その内容がリアルタイムでディスプレイに反映される。つまり、このメモリの中身を操作すれば、必ず何らかの画面変化をもたらすことになるのだ(←厳密には例外もある)。
ビデオラムは、文字表示のためのテキストVRAM(T.VRAM)と、画像表示のためのグラフィックVRAM(G.VRAM)に大別することができるが、実はコンピュータが誕生したころには画面表示などなかったのだ。 コンピュータの日本語訳が電子計算機となっているように、当初の主たる目的は高速に計算をすることにあった。計算結果は、テレタイプと呼ばれる電信駆動の英文タイプライターでプリントアウトしていたのである。 すでに英文タイプライターでさえ、時代の波に押し流された感があるが、構造的には金属ハンマーの先端に彫られた英数字などを、インクリボンを通して一文字ずつ叩いて印字するというもの。実にメカニカルでクラシカルな代物だ。もちろん、文字サイズやフォントは固定式となる。
実際には、英数字の縦横比を2:1としたので長方形のマス目となるが、この1マスに1バイトのメモリを割り当てたものがテキストVRAMの原点である。 文字データ以外にも、テキストVRAMには表示カラーやブリンク(点滅)機能といった表示文字に対する属性(アトリビュート)が割り当てられている。 例えば、Windows系のDOS/Vマシンでは文字とアトリビュートが1バイトずつ交互に並んでいるが、過去には1行ごとにテキストエリアとアトリビュートエリアに分けられている機種もあった。 そういう意味では、図2-4.1は後者の形態ということになるが、ここではアトリビュートについては考慮していない。着目してほしいのは、ディスプレイの1マスに表示されている1バイトの文字データのほうである。 実は、この1バイトの内容はアスキーコードという英数字や制御記号(改行やTabなど)を数値化したものに準拠している。 アスキー(ASCII=American Standard Code for Information Interchange:情報交換のための米国標準記号)の名が示すように、これはアメリカ合衆国仕様の標準コードであり、その他の言語のことは考慮されていない。そして、そのベースになっているのは英文タイプライターである。 すなわち、そこで必要とされたコードは英文タイプライターを電気的に操作するためのものだけであり、1バイトのうちの半分(0〜127)でコト足りてしまったのだ。結果として、残り(128〜255)は拡張用(未定義)となった。 しかし、ただ余らせておくのは「もったいない!」と考えたかどうかはともかく、この部分はパソコンメーカーがそれぞれ独自に罫線や絵文字などの特殊記号を設定するようになっていった。 いわゆる異機種間における文字化けは、このころから発生する宿命にあったといえるだろう。
しかし、ここ日本ではひらがなや漢字の表示は決して避けては通れない大命題である。黎明期はともかく、和文タイプライター機能(=日本語ワープロ)がなければ、パソコンは絶対に広く浸透することはできないからだ。 問題は、それを1バイトの半分(拡張用エリア)では物理的に指定することが不可能ということ。かといって、アスキーコードを無視した文字規格では、世界に通用しない陸の孤島のコンピュータになってしまう。 そこで、満を持して登場するのが例の「1バイトで足りなければ2バイトで……」という手法である。 すなわち、アスキーコードの拡張部分の一部を2バイト文字の符号とすることで、日本語文字を表現できるようにしたのだ。 文字サイズも、複雑な日本語に合わせ縦横比=2:2とした。これで、1マス1バイトの半角文字と2マス2バイトの全角文字が混在しても、文字データと表示画面との整合性は保たれることになる。 このような文字データにって作成された文書を日本語テキスト、あるいは単にテキストという。ただし、これを画面に表示するためには拡張された2バイト文字を認識するシステムと、日本語文字のフォントデータが必要になる。 また、前提としてキーボードから漢字へ変換する入力システムも確立されていなければならない。そんなことから、外国製パソコンにとって日本語の存在自体が日本参入への大きな障壁でもあった。 ちなみに、テキストVRAMを使って表示する画面のことをテキスト画面というが、その表示までのプロセスは下図のようになっている。 ここでの主役はキャラクタジェネレータ(通称キャラジェネ)だ。キャラジェネは、文字フォントROMから指定文字(=テキストVRAMの内容)に対応する形状データを得て、テキスト画面の指定位置(=テキストVRAMアドレス)に自動的に表示するのだ。 CPUは、画面表示のためのプロセスはまったく気にする必要がない。また、正確にはメモリも特殊というわけではなく、キャラジェネがそのアドレスをVRAMとして認識してればよいのである。 この手軽さこそが、テキスト画面の最大のセールスポイントなのだが、その一方で表示位置の微調整ができないことや、ROMによって固定された文字サイズやフォントに対する不満が、徐々に欠点として浮かび上がってくることになる……。
「フムフム。要は、テキストVRAMという文字表示用のメモリがあるってことでしょ。どうせ覚えきれないから、とりあえずそんなもんでヨシとしようヨ!」
なんとも実直で無愛想な木製ロボットの対応だった。まるでテキストVRAMという融通のきかない表示システムみたいではないか!
|