1980年代に発売された NEC の PC は、過渡期にあったためなのか、或いは他社製品と差別化を図るためなのか、ちょっとおまそれは無理とか無茶だってばという仕様で発売されたのも多かった印象です。今回は私から見て、そりゃ無茶だろうって思った点について言及していきます。
- PC-6001
CPU は Z80 です。当時のメインストリームと言っても良いCPUですから、これに関しては別段差別化はされてないです。クロックも普通に4MHzです。…ですが、まず最初に思ったことは、なぜ GVRAM がメインメモリに直結しているのかという点です。Z80だからメモリ空間は最大でも64KBで、これを超えるためにはバンク切り替えという手法がメインでした。他の多くの機種でも GVRAM はバンク切り替えとして、メインから切り離されています。
そこで PC-6001 です。なんとそのまんまメインメモリに直結されています。PAGE を複数持つと、それ全部メインメモリに配置されるのです。PC-6001mk2 の場合だと、1PAGE で 16KB です。3PAGE を指定すると、48KB にもなります。メモリ空間 64KB のうち、その 75% である 48KB が GVRAM に割り当てられて、データとかプログラムの配置が出来なくなります。残りの 16KB で何をどうしろというのか…。
さらに、キーボードがサブ CPU の管理下にあります。押されると割り込みで、何が押されたのか通知される仕組みです。…離されたのは通知しないのです。まあ、流石にこれはマズイだろうと思ったのか、ゲームでよく使うカーソルキーとかスペースなどの、一部のキーはリアルタイムで状態が確認できるようにはなっています。
そして、そんなメモリが圧迫されているのに、メインメモリの GVRAM の情報を画面に表示されるのに、DMA でメモリ情報を走査しています。DMA がメモリを走査している間、なんと CPU は停止しています。そのため、実質クロックは 1.7MHz とも言われています。そんな遅いマシンになんと 2ms 割り込みが搭載されています。2ms で何か処理をさせたら、メインで何か動く時間が残っているのか。
いやはや、安く済ませるためにこんな仕様にしてしまったのでしょうかねぇ…
【Amazon】
JKM 100V 12V AC-DC 変換アダプター 3A 36W 車用シガーライターソケット 車用品家庭で使える 低発熱まで 変換アダプター 出力36W未満の車載電気製品対応 100cm PSE認証
JKMPOWER
- PC-8001
CPU は Z80 です。これは良いのです。そして、VRAM はたった 3KB しかありません(無印)。実質的には GVRAM は存在せず、テキスト VRAM のみの構成です。これには理由があって、当時発売されていた時は標準でメインメモリが 16KB しか搭載されていなかったのです。売り文句は「フルカラー」です。グリーンモニタや白黒表示が多かった中で、168,000円という値段で、フルカラーが使える PC は貴重でした。その値段に抑えるためなのでしょうか。搭載 RAM は全部で 16KB なのです。
何しろ 16KB ですから、VRAM にたくさんメモリを割り当てるわけにはいきません。表示エリアは 80x25 もあります。単純計算でここだけで 2KB も食っています。1キャラに1色を割り当てると、2倍の容量を必要とします。つまりは 4KB です。16KB から 4KB も文字表示だけで使ってしまうと、メモリを残らないと考えたのか、生み出された解決策が悪名高きアトリビュート方式です。左からの文字数と色番号で2バイト1組。そこに半分の 40バイトを使えば、色変更は20回まで可能となります。
十分じゃん!
…と、当時の技術者が考えたかどうかはしりませんが、これで 1KB を浮かすことが出来ました。PC-6001 はメモリを乗っけてた割にはじゃぶじゃぶ使ってたのに、PC-8001 では、1KB をケチる、なんていうか両極端です。そして、NEC 伝統の DMA 転送です。メインメモリに配置された情報を DMA が逐次拾っていきます。そして、この DMA が動いている最中は、やっぱり CPU は止まるのです。
標準構成では割り込みすらない PC-8001 は、PC-6001 よりは高速だと言われていますが、それはまあそうなんでしょう。
- PC-8801
今までの NEC 機は、ホビー向けなのだ。640x200 ドットフルカラー画像が使える真の GVRAM 搭載マシンが 88 なのだと言わんばかりに登場した、発売当初はビジネスパソコン向けだった 88 です。ですが、CPU は下位機種と同じく Z80 4MHz です。流石にフルカラーともなると、RGB それぞれで 16KB ずつの、トータル 48KB も使ってしまうので、メインメモリに配置はしづらかったのか、バンク切り替えで別のメモリ空間に配置しています。それは良いのですが、Z80 4MHz です。画面全体で 48KB に対して、Z80 4MHz なのです。無茶でしょ、これは?
当初の 88 にはアクセラレータ的な考えはありませんでした。1ドット1ドット CPU が描いていくより方法はありませんでした。まあ、具体的には 1バイト 8ドット構成の 3プレーンなんですが、何か画面に表示しようと思ったら、バンク切り替えのためにポート指定をして、画面に何かを描いて、またポートを閉じる。とても時間がかかる作業を強いられていました。結果、見た目は良いのに動作はクッソ遅かったです。
これではダメだと mk2SR が登場するのですが、初代の 88 とその後継である 88mk2 は何のハード的な支援もなく、これを購入した人は、mk2SR の発売で悔しい思いをすることになるのです。ちなみに私の最初の仕事に使った PC が、88mk2 です。こいつは見た目だけは良かったです。初代 88 に比べて…ですが…^^;
※気軽に使えるハンダゴテとしては良いのかもしれない。ただ、コテ置きがどう見ても蚊取り線香にしか見えないのがアレですよね^^;
コメント
コメント一覧 (2)
PC-8001は、当初は専用にCRTCを設計するつもりだったが発売時期が間に合わず、銀行のATM端末用に設計したCRTCがあったためそれを流用した、と聞いたことがあります。
PC-8801は、ビジネス向けサードパーティソフトを移植しやすいように、PC-8001+PC-8011+PC-8031+FGU8200との互換性を最大限維持した、と聞いたことがあります。
仮に内藤さんが当時ハードの仕様を決定できる立場にいたとしたら、発売時期は変えず販売価格はさほど変わらない条件で
、当時の技術でどのような仕様にしたか、私気になります。
内藤時浩
が
しました