2015/12/28(月) [n年前の日記]
#1 [pc] MZシリーズのフォントは無駄が多いのかそうでもないのか
大昔の 8bit PC、SHARP MZ-700には、いや、MZ-700 だけではなく SHARP MZシリーズには、以下のような文字が用意されてて。
この16文字があるおかげで、40x25文字のテキスト画面しかないのに、「80x50ドットのセミグラフィック画面を持ってます!」と嘯くことができていたのですが。
しかし、コモドール PET 2001 のキャラクターパターンだか、文字一覧だかの画像を眺めているうちに、「アレレー?」と思いまして。要するに、こういうこと。
反転表示(前景色と背景色を入れ替えて表示)すれば、16文字必要だったところが、8文字で済むじゃないかと。1バイトが貴重だった時代に、SHARPさんってば、なんてもったいないことを…。MZシリーズのフォントって無駄が多かったんだなと。
しかしどうして、余計な隙間の1ドットを入れてしまったんだろう。何か理由でもあるのだろうか。
_Enri's Home PAGE (mz-80K) を眺めていて、理由がなんとなく想像できてきたり。もしかして、最初にこのあたりの仕様を決めた MZ-80K には反転表示がなかったのかもしれないなと。
MZ-80Kのメモリマップには、文字コード(この場合は「ディスプレイコード」。ASCIIコードに非ず)の1バイトを書き込むためのVRAMエリアはあるけれど、文字属性を書き込むためのVRAMエリアが用意されてないように見えるわけで。文字属性を指定できないのだから、そりゃ反転表示もできそうにない。だから、反転表示で済むはずのキャラグラパターンも事前に全部用意しないといけなかった。そういうことかなと。で、どうせ用意するのだから、セミグラフィック感を増すために、隙間を入れてみちゃったのかなと。
_Programming MZ-700: Memory に、MZ-700のメモリマップが掲載されてるけど。MZ-700 は、MZ-80Kが「ミラー」として扱ってた領域にアトリビュートVRAMを割り当ててあるようで。
すると、MZシリーズで反転表示が可能になった機種はどのあたりなのだろう。MZ-700 で、ようやく可能になったのだろうか。それとも、MZ-1200の頃からアトリビュートVRAMは存在してたのだろうか。ググってみたけど、そのあたりは分からずじまい。
この16文字があるおかげで、40x25文字のテキスト画面しかないのに、「80x50ドットのセミグラフィック画面を持ってます!」と嘯くことができていたのですが。
しかし、コモドール PET 2001 のキャラクターパターンだか、文字一覧だかの画像を眺めているうちに、「アレレー?」と思いまして。要するに、こういうこと。
反転表示(前景色と背景色を入れ替えて表示)すれば、16文字必要だったところが、8文字で済むじゃないかと。1バイトが貴重だった時代に、SHARPさんってば、なんてもったいないことを…。MZシリーズのフォントって無駄が多かったんだなと。
しかしどうして、余計な隙間の1ドットを入れてしまったんだろう。何か理由でもあるのだろうか。
_Enri's Home PAGE (mz-80K) を眺めていて、理由がなんとなく想像できてきたり。もしかして、最初にこのあたりの仕様を決めた MZ-80K には反転表示がなかったのかもしれないなと。
MZ-80Kのメモリマップには、文字コード(この場合は「ディスプレイコード」。ASCIIコードに非ず)の1バイトを書き込むためのVRAMエリアはあるけれど、文字属性を書き込むためのVRAMエリアが用意されてないように見えるわけで。文字属性を指定できないのだから、そりゃ反転表示もできそうにない。だから、反転表示で済むはずのキャラグラパターンも事前に全部用意しないといけなかった。そういうことかなと。で、どうせ用意するのだから、セミグラフィック感を増すために、隙間を入れてみちゃったのかなと。
_Programming MZ-700: Memory に、MZ-700のメモリマップが掲載されてるけど。MZ-700 は、MZ-80Kが「ミラー」として扱ってた領域にアトリビュートVRAMを割り当ててあるようで。
すると、MZシリーズで反転表示が可能になった機種はどのあたりなのだろう。MZ-700 で、ようやく可能になったのだろうか。それとも、MZ-1200の頃からアトリビュートVRAMは存在してたのだろうか。ググってみたけど、そのあたりは分からずじまい。
◎ PET 2001のフォントも無駄が多かったのかもしれない。 :
_Commodore PET 2001
に掲載されてる画像を眺めてたら、PET 2001 も白黒反転したキャラクターデータを丸々持っているように思えてきた。MZ-80K は、PET 2001のそういうところすら参考にした、というか考えなしに丸々パクってしまった、ということだろうか…。
もっとも当時、文字コードに、属性も追加指定して見た目を変えるという発想があったのか、あるいはそれが技術的に可能だったのか、そのあたり分からないわけで。
_PET 2001 - Wikipedia には「文字を反転表示することも可能」と書いてあるけど、ひょっとしてそれは、あらかじめ反転したデータを持ってるから見た目がそう見えてるだけで、実際はハードウェアに反転表示機能があったわけではない、てな可能性は…。しかし、書き込む値は、反転表示bit + 文字コード7bitに見えてるから、「反転表示機能があるんだな」とフツーは思うよな…。
もしかするとMZシリーズは、「考えなしにパクった」わけではないのかもしれない。何せ、日本で使うPCだから、英数字に加えて「カタカナ」も表示しないといけないわけで。となると、7bitでは文字種類を網羅できない。だから、PET 2011 が反転表示に見せかけていた8bit目を潰すことで、倍の文字種類を利用できるようにして、「カタカナ」のパターンデータを追加した。そして、余った部分に色んな絵記号も追加してみた、てなことになるのだろうか。
もっとも当時、文字コードに、属性も追加指定して見た目を変えるという発想があったのか、あるいはそれが技術的に可能だったのか、そのあたり分からないわけで。
_PET 2001 - Wikipedia には「文字を反転表示することも可能」と書いてあるけど、ひょっとしてそれは、あらかじめ反転したデータを持ってるから見た目がそう見えてるだけで、実際はハードウェアに反転表示機能があったわけではない、てな可能性は…。しかし、書き込む値は、反転表示bit + 文字コード7bitに見えてるから、「反転表示機能があるんだな」とフツーは思うよな…。
もしかするとMZシリーズは、「考えなしにパクった」わけではないのかもしれない。何せ、日本で使うPCだから、英数字に加えて「カタカナ」も表示しないといけないわけで。となると、7bitでは文字種類を網羅できない。だから、PET 2011 が反転表示に見せかけていた8bit目を潰すことで、倍の文字種類を利用できるようにして、「カタカナ」のパターンデータを追加した。そして、余った部分に色んな絵記号も追加してみた、てなことになるのだろうか。
この記事へのツッコミ
[ ツッコミを読む(1) | ツッコむ ]
以上です。
お察しの通り、MZ-80Kには文字単位の反転機能はありませんでした。
MZー1200には「画面反転」という機能がありましたが、画面全体の白黒を反転するもので、文字単位の反転はサポートしていませんでした。
文字単位の反転を表現できるようになったのは、MZ700からです。厳密には「反転」という文字属性があるわけでなく、カラー設定で反転文字らしく見せるだけですが。