現在地

思い出・昔話

パーソナルなコンピュータの技術情報事情 (ソフトウェア編)

ハードウェア編に続きまして、今回はソフトウェア編です。

トレーニングキットの時代は回路図同様にソフトウェアについてもオープンなものが多かったと思います。
ソフトウェアといってもメモリの内容を表示・変更したりプログラムの実行ができるモニタ等ですが、これのソースコードがマニュアルに掲載されていたりするわけです。これもサンプルとしての意味が大きいからでしょう。オブジェクトのサイズも数kB以下ですから量的にも大したことはありません。

BASICインタープリタをROM搭載したいわゆるパソコンになると状況が変わりました。シャープのようにモニタのソースコードのマニュアルへの掲載を続けたところもありますが、BASIC自体となるとそうはいきません。

  • マイクロソフト等の社外開発のものが多く勝手に公開できない
  • サイズも小さなものでも10kB以上と大きくなり紙面的にも難しい
  • ユーザ層としても必要としない人が増えた

といった事情からソースコードの公開は困難になります。

パーソナルなコンピュータの技術情報事情 (ハードウェア編)

カテゴリー:

今パソコン・PCはブラックボックスになっています。どんな回路構成になっているのか、どんなソフトウェアが入っているのか、ほとんどの人は気にしません。

「いや、俺は気にする」という人でも、XXXチップセットを搭載している⇒このくらいのパフォーマンスが期待できる、OSのバージョンがYYY⇒何とか機能がある、といった機能・性能の指標として気にしている人が大半ではないでしょうか。

周辺機器のハードウェア設計者でもPCI・USBといったインターフェイスの仕様は調べますが本体の回路がどうなっているかは(トラブルでも起きないかぎり)普通は調べません。ソフトウェア設計者もAPIの使い方は知っていますがそれがどう実装されているかは考えません。

これはもちろん悪いことではありません。効率を上げ、互換性を保つには必要不可欠でしょう。

しかし昔は事情が違っていました。各社が互換性の無い機種を発売し、標準的なOSも無く(あっても機能が限られ)、ハードウェアを直接叩かなくては十分なパフォーマンスが得られない状況では内部の情報は重要だったのです。

ということで今回はハードウェア情報(主に回路図)について書いてみます。

パーソナルなコンピュータの漢字事情 (第5回: 文字コード)

カテゴリー:

これまで表示や印字の見た目の話がメインでしたが、最後に文字コードの話をしてみたいと思います。

漢字ROMが最初に搭載された頃、パソコン上ではまだBASICが主流でしたが、まだ「文字」という扱いではありませんでした。JISコードを指定すればパターンとして表示できるというだけで、文字列として(変数に入れたり)扱うことはできませんでした。ワープロ等のソフトウェアは独自に処理していたものです。

使える文字もJIS第1水準の約3,000字(+非漢字)のみでした。足りない字については次のような方法で対処します。

  • 第1水準の文字で置き換える
    例えば私の姓の「淺」は第2水準なので、第1水準の「浅」を使っていました。
  • 外字(ユーザ定義文字)に定義する
    自分でフォントを作らなくてはいけないこと、互換性がなく他人とのやり取りに支障があること、使える字数が限られること、などの欠点があります。
  • (印刷なら)空白にしておいて手書きする

PC-9801シリーズ等ではオプションでJIS第2水準(約3,400字)まで使えるようになりました。

パーソナルなコンピュータの漢字事情 (第4回: スケーラブルフォント)

16×16ドットまでは漢字は読めれば(識別できれば)良いと思われていたのが、24×24ドットくらいから美しさが要求されるようになってきます。美しさを考える余裕が生まれたと言ってもよいかもしれません。
また書体(明朝体・ゴシック体など)やサイズを変えたいという要望も出てきます。

ディスプレイよりプリンタのほうが高解像度を実現しやすいこと、プリントは他人に渡すものであること、といった事情からかプリンタでの対応が先行することになります。

AdobeのPostScriptやCanonのLIPSといったページ記述言語では文字のサイズを自由に変化させることが可能になりました。それまでのフォントが(例えば24×24の)ドットの有無で定義されていた(ビットマップフォント)のに対し、文字の輪郭の座標を持って(アウトラインフォント)いて都度必要なサイズのドットに展開するのです。

パーソナルなコンピュータの漢字事情 (第3回: プリンタ)

カテゴリー:

これまで漢字を画面に表示することについて書いてきましたが、今回はプリンタについてです。

漢字が表示できるようになると当然ながら印字したくなります。

1980年代初期に一般的だったのはドットインパクトプリンタでした。縦にピンが1文字分並んだヘッドが左右に動きながら1行ずつプリントしていく仕組みです。

漢字を考慮していない初期のものは8~9ピン程度でした。
ASCIIやカナ文字は文字コードを送ればプリントできますが、漢字についてはパソコン側の漢字ROMのデータを使いグラフィックとしてプリントします。改行幅を調整して行間を0にして2行に分けてプリントするのです。
プリンタによっては半ドットの改行ができるものもあり、この場合は半ドットずらして重ね打ちすることで通常の高さでプリントできました。

前に取り上げたNK3618-21などは漢字を考慮してピン数が18ピンとなっています。漢字ROMを搭載しない「-21」と搭載する「-22」があり、「-21」にもあとから漢字ROMの追加が可能だったはずです。
漢字ROMを搭載していれば文字コードを送るだけで漢字もプリント可能になりました。

パーソナルなコンピュータの漢字事情 (第2回: PC-9801の登場)

前回は漢字ROMの登場とかな漢字変換まで書きました。今回はその続きです。

PC-9801ではグラフィック画面ではなくテキスト画面に漢字を表示できるようになりました。これによって漢字を含むテキストを高速で表示・スクロールできるようになりました。
ところで漢字を表示するにはASCII・カナの倍の幅が必要です。幅の違う文字をハードウェアでどう取り扱っていたのでしょうか?
これは実に単純な方式で、漢字は「左半分」と「右半分」の2文字としてテキストVRAMに書き込むようになっていました。左右を正しく組み合わせて漢字を表示するのはソフトウェアの仕事です。

初期のPC-9801のソフトウェアにはバグがあって、画面の右端に漢字が泣き別れるように表示しようとするとおかしな表示になることがありました。

このためPC-9801シリーズのテキストVRAMは漢字コードが格納できるように16ビット幅になっています(上位8ビットは漢字ROMボードに搭載)。必ず左右並べるので8ビット×2文字分で格納することも原理的には可能なはずですが、ハードウェアでやるのは大変だったからでしょう。

パーソナルなコンピュータの漢字事情 (第1回: 漢字ROMと漢字変換)

今ではコンピュータで漢字が表示できるのは当たり前ですが、昔はそうではありません。

グラフィック事情(第1回)に書いたようなCRT以前の時代はもちろん漢字表示などは夢でした。

テレビを使うようになっても文字フォントは6×8か8×8程度ですからまだ無理です。キャラクタジェネレータ(フォント)ROMもアメリカ製がほとんどですからカタカナ表示も一般的ではありませんでした。自分でROMを焼くか、日本のメーカの参入を待つしかありません。

パーソナルなコンピュータのグラフィック事情 (第10回: 落穂拾い)

一応今回で「グラフィック事情」は最後の予定です。

前回の「ハイレゾ」以降もいろいろな進化がありましたが、力技で面白くないのと私があまり詳しくないので項目だけ並べておきます。

  1. マルチシンクのモニタが普及
  2. 表示デバイスのCRTからLCDへの移行
  3. 伝送方式のアナログからシリアル伝送(ディジタル)への移行
  4. ワイド画面の登場
  5. ビデオ再生や3Dのアクセラレータ
  6. GPU

それと書き忘れたことがいくつかあるので、最後にそれを書いておきます。

日本のパソコンでよく使われたコントローラには以下のようなものがありました。

パーソナルなコンピュータのグラフィック事情 (第8回: 高速化)

解像度が上がり色数が増えると書き換えなければならないメモリが増え、相対的に速度が低下します。もちろんCPUに余裕があればよいのですが、そうも言っていられません。ここでは当時の工夫や仕掛けをいくつか見ていきます。

まずソフトウェアだけでできる方法です。直線や円などの描画アルゴリズムの選択はもちろん重要ですが、場合によっては続・80系アセンブラのテクニックのような小手先のテクニックが有効な場合もありました。
当初グラフィック描画には(BASIC用に)ROMに搭載されたルーチンを呼び出すことが多かったのですが、各機種用の高速描画ルーチンが雑誌等に発表されるようになりました。同機能で最適化したもの、頻繁に使う機能に絞ってさらなる高速化を実現したもの、より多機能化したものなどいろいろありましたね。ソフトメーカも独自に作っていたはずです。

ページ