19世紀後半に電信の世界で開発された規格は、最初は5ビットだった。5ビットだと、00000〜11111でつまりは、32通りしかない。これだと、アルファベットだけならともかく、数字を入れると数が足りなくなる。だから、あるコードは「モード切り替え」に使い、そのコードが一発入った後は、同じコードでも違う文字と扱う。たとえば、01010はRなのだが、モードを切り替えると「1」となると言った具合だ。初期状態がどちらのモードなのかと言うことが決まっていれば後は通信できるだろう。 当初からいきなりややこしいことをしている。これは、ビット数というものが簡単に拡張できなかった時代だからではないだろうか。今だと「じゃあ6ビットにしろよ」と思うところだが、当時の通信技術は、事実上の1ビットと言えるモールス信号(これも成り立ちを論理的に考えると不思議なものだ)があったものの、その発展系として、電気信号で「5ビットもの」たくさんのデータを扱えるようになったという状態だったのではないかと思われる。 実は、5ビットはまだ使われている。ほとんど使われなくはなっているが、「テレックス」という伝送系がある。超昔的感覚なら、マスコミに備えていて世界中の情報が電送されてくるといったイメージが強いかもしれない。そのテレックスのデータ体系は、マレー符号などと呼ばれているが、基本的には一方で端末をたたき、伝送された先ではラインプリンタ、つまり逐次紙に印刷するプリンタを使う。そこで、プリンタのコントロールをしないといけないので、文字以外に「印字ヘッドを頭に戻す」「次の行へ移動する」という、機能を持つコードを定義しなければいけなかった。これが、現在のコンピュータでもCR(13H)やLF(10H)といった制御コードとして残っているのである。 コンピュータのビット数を増やすのは部品を増やすことだけであるが、通信の世界でのビット数を上げるというのは、相手がいて成り立つ通信でもあり、容易ではなかったようだ。しかしながら、コンピュータ同士の通信が仮にできても、コード体系が一致していなければ、データの交換は難しくなるわけで、1960年代前半にASCIIコードが制定された。このASCIIとは、American Standard Code for Information Interchangeである。つまり、「アメリカ」の規格なのである。だが、このASCIIコードは、その後のコンピュータでの文字処理に多大な影響を及ぼし、この時点で「日本語は不利」であることは将来に渡って約束されたと言って良いだろう。 ASCIIコードは、7ビットで文字を表現するが、すると、128通りの文字が表現できる。そのうち、00H〜1FH、7FHは制御コードとして文字ではなく何かの機能や要求を伝達・記録するためのものとして確保された。そして、20H〜7EHまでが文字として割り当てられた。ただ、20Hのスペースは機能コードとしての位置付けだったようである。これだけのバリエーションがあれば、アルファベットの大文字小文字、そして数字、各種記号はそれぞれに番号を振ることができる。もちろん、Macintoshの中でも今でもASCIIコードは生きている。