目次
02-09 ビル・メンズチの誕生日(1945)
02-09 バイトでやった CD-I の仕事
今日は、ビル・メンズチの誕生日(1945)。
モトローラで 6800 の設計に携わり、モステクノロジーで 6502 の基本設計を行い、ウェスタンデザインセンターで 65816 を設計した人です。
独特な、癖の強い設計で、ファンも多い CPU を作り続けた人。
「思想的な後継」としては現在でも ARM がありますが、設計者などは全然別ね。
実のところ、僕は 6800 をあまり知りません。
通り一遍の知識はあるけど、プログラムまではしたことが無い、という意味ね。
6800 は、PDP-11 を元に設計された、と言われている 8bit CPU です。
当時としては、PDP-11 は最高の CPU 設計。
でも、小さなマイクロチップにこれを押し込めるには、まだ時代が速すぎた。
A B 二つの 8bit アキュムレータ、X PC SP の3本あるアドレスレジスタ。そしてフラグ用に 8bit 。
これがレジスタのすべてです。
PC はプログラムカウンタなので、16bit は当然。
SP はスタックポインタ、X はインデックスでした。これらも 16bit あるので、メモリのどこでも参照できます。
設計はチームで行われ、CPU だけでなく周辺チップなども開発されています。
メンズチは、主に周辺チップの担当でした。
6800 は後に改良され、互換性のない 6809 として発売されます。
どちらかというと売れたのは 6809 の方で、6800 はそれほど売れていないはず。
6809 の方は、メンズチは関わっていません。
別の会社に移籍してしまったためです。
6502 は、この 6800 を思い切って簡素化し、値段をずっと安くした CPU です。
モトローラではなく、モステクノロジーで作成された物。
アキュムレータは A だけになりました。
PC は 16bit ですが、SP とインデックスレジスタは 8bit に縮小されました。
16bit のアドレス空間を、8bit でアクセスするのではアドレスの完全な指定ができません。
そこで、スタックは、アドレスの上位が 1 のアドレス空間に固定になりました。
256バイトしかスタックが無いことになりますが、工夫すれば乗り切れます。
インデックスレジスタを使用する際も、命令と共に上位8ビットは指定することになります。
このため、メモリ空間は 256byte ごとに区切られることになりました。
6502 では、この 256byte 単位を「ページ」と呼びます。
改めて書くと、スタックは1ページ目に固定されていることになります。
6800 を「貧弱にしただけ」では出来ることも限られてしまいます。
6502 は、大胆な方法で拡張された機能もあります。
まず、インデックスレジスタは X Y の2つになりました。
配列をコピーする際など、インデックスが2つ必要になる場合は多いです。
必要とされる機能を、ちゃんと用意したのです。
ただし、X Y の持つ機能は、微妙に異なります。
これも、利用される状況を考え、微妙に異なる機能を持たせた方が便利だからそうなっているのです。
アキュムレータは1本だけに減らされています。
アキュムレータとは「計算に使うレジスタ」なので、普通に考えると、必ず2本必要です。
6502 では、ここに設計の最大の特徴があります。
先ほど書いた「ページ」と組み合わせ、0ページ目の 256byte のメモリは、アキュムレータと組み合わせて計算しやすい命令が揃っているのです。
つまり、一見するとアキュムレータは1本ですが、実は +256 本ある、というような設計になっているのです。
6800 よりも設計が簡素化され、安くなっているにもかかわらず、機能は 6800 を上回る部分もある。
後に作られ、大人気となる Z80 と比べたって遜色ないのです。
ただし、癖が強いので使いこなすのには腕が必要です。
ウォズニアックはこの CPU を気に入り、Apple I に採用しました。
その後 Apple II でも採用され、爆発的なヒットとなったのは多くの人が知る通り。
さらに、ファミコンでも 6502 の一部機能を省略したものが使用されています。
設計はたった3人で行われ、メンズチは演算回路など、中心となる部分を作っています。
65816 は、Apple II の後継機を 16bit にしたかったアップル社の要望で設計された CPU です。
単純に 16bit CPU が欲しいのではなく、過去の 8bit 資産を完全に活かせることが重要要件でした。
モステクノロジーではなく、メンズチが設立した、ウェスタン・デザイン・センターで作成されています。
65xx シリーズで、8bit と 16bit の2つのモードを持つ。
それが 65816 の名前の由来です。
6502 では 8bit だった、アキュムレータ、スタックポインタ、インデックス X Y が、16bit に拡張されています。
やった! これで全メモリ空間を指定できる!
…のではなく、メモリ空間も 24bit に拡張されています。やっぱり 8bit 足りない。
そして、やっぱり「256byte をレジスタ代わりに使える」方式は残されています。
ただし、この 256byte はアドレス先頭に固定ではなく、新設されたレジスタで指定されたメモリから始まります。
サブルーチン内でローカル変数が欲しいときは、このアドレスを移動して、終了後に元に戻せば大丈夫。
同時に使えるメモリは相変わらず 256byte ですが、ひと手間かければ無限に増えるようになったのです。
設計は、メンズチ1人で行っています。
妹さんが雑用を手伝ったりはしたらしいけど。
そして、65816 の最大の特徴は、8bit と 16bit がモード切替だということです。
このモードは、基本的にレジスタ・メモリアクセス幅を変えるだけだと思ってください。
「16bit の拡張命令が増えた」のではなく、モードを切り替えて同じ命令を使います。
でも、そのことを除けば、基本的に機能は同じ。
これは、「16bit モードで 8bit のアクセスをする方法が無い」という意味にもなります。
読み込むときは、16bit で読み込んで、上位データを and 0 して消してしまえばよいだけ。
8bit を書き込むときは結構面倒なことになります。
でも、8bit / 16bit モードの切り替えは遅かったので、工夫した方が高速に動く。
高速にしたい場合、8bit アクセスを無くす、というのが一番良い方法でしたけど、遅くてもいいからメモリ節約したい場合もあった。
こう書くと使いにくいダメ CPU のようですが、メンズチは 6502 の時から一貫して「小さな回路規模で最大の効果」を念頭に設計しています。
命令は 8bit/16bit で共通で、データ幅だけを完全に切り替える、という設計は、この観点で見ると非常に素晴らしい割り切り方です。
256byte のゼロページアドレッシングを残しつつも、0ページの位置を変えられる、というのも、簡素ながら良く練り込まれた設計。
そもそも 6502 の設計が面倒くさくて使いにくい、という人には、65816 もダメでしょう。
その一方で、6502 の簡素な美しさが好きだという人は、65816 もきっと好きになれます。
そういう、癖の強い設計の CPU です。
先に書いたように、65816 は、16bit の Apple II を作るために設計されました。
実際に Apple II GS という名前で発売されています。
GS は Graphics and Sound の略。
Apple II 独特の、貧弱な画面とサウンドを大幅強化して、CPU も 16bit にして、OS も GUI にしたマシン。
もう Apple II じゃないじゃん、と言われそうだけど、ちゃんと互換性もある。
ちなみに、Mac 発売以降に作られていて、OS も Mac 風。
Apple II 部署と Mac 部署は仲悪かったはずだから、会社の方針で使い勝手の統一を図ったとかではなくて、「対抗心で作った」のではないかな、と思ってます。
もっとも、仲が悪かったのは Jobs のせいで、Woz は怒ってすでに会社辞めているし、Jobs も混乱の原因を取らされてクビにになった後に Apple II GS が作られているのだけど。
そして、実は ADB の採用第1号マシンです。
ADB … Apple Desktop Bus は、マウスやキーボードをコンピューターに接続するための規格。
これ以前は、周辺機器ごとに違う接続方法があり、直接コンピューターに接続するのが普通でした。
ADB では、今後機器を増やしても大丈夫な設計指針があり、デイジーチェーン(直列つなぎ)で機器を増やせたので、柔軟な周辺機器設計が可能になりました。
IBM 系の PC で、この ADB を真似しようとして後に作られたのが USB ね。
こちらも iMac が大々的に採用したことで普及したのだけど。
65816 は、6502 上位互換なのでスーパーファミコンにも搭載されています。
スーパーファミコンは、ファミコンとの互換性はありませんでしたが、開発時にはギリギリまで「上位互換」として作られていました。
その名残で、スーパーファミコンは起動するとまず 8bit モードで動作し、メモリなどもすべてファミコンとほぼ互換性を持った状態で見えるようになっています。
その後 16bit へ切り替える命令が実行されると、スーパーファミコンの全機能が利用できるようになるのです。
スーパーファミコンは画面モードとしても「ファミコン互換モード」を持っていたし、なぜ互換機路線をやめたのかは不明。
多分、将来の拡張性も考えた際に、カートリッジ形状を変えたかったのではないかとも思いますし、些細な部分で完全互換が難しくなったのかもしれません。
当初は「上位互換」として発表されたため、後に上位互換が無理だとわかっても「アダプタで対応」となりました。
ただ、この「アダプタ」は、スーパーファミコンとは独立した機械。ジョイパッドや電源アダプタなどを共有できる、というだけ。
つまり、新設計されたファミコンでした。
結局「アダプタ」という誤解を招く名称もなくなり、後に AV ファミコンとして発売になっています。
同じテーマの日記(最近の一覧)
関連ページ
【訃報】6502 の開発責任者、チャック・ぺドル【日記 19/12/28】
別年同日の日記
申し訳ありませんが、現在意見投稿をできない状態にしています。 |
1992年、大学3年の時には、「アトリエドゥーブル」という会社でアルバイトしていました。こちらも短期だけどね。
今は解散してしまい、存在しない会社。
この会社、横浜のマンションの一室…というか、3室でやってた。
1室はメイン開発室。1室は、先の会社の例と同じで、ライバル会社からの請負を扱う「別室」。もう1室は会議室を兼ねた社長室でした。
実は、さらにもう1室あるけど、これは社長の自宅。
すぐ近くだから、時々社長の奥さんが社長室に現れたりする。
(奥さんが来ると、社長は仕事場に顔を出すなと怒るのだけど)
非常にアットホームな、良い雰囲気の会社でした。
アルバイトで最初に頼まれた仕事は、CD-I 用のゲーム 「Mystic Midway:Rest in Pieces」の日本語化作業。
CD-I って、フィリップスが作った「マルチメディア端末」ね。
事実上はゲーム機だったのだけど、CD-ROM を搭載した機械としてはかなり初期の物。
ドゥーブルでは、すでに CD-I のタイトルをいくつか作っていて、「東京私立校受験ガイド リセエンヌ グラフィックス」とか、「斉藤由貴 Anniversary」とか、かなり売れたそうです。
特に、「斉藤由貴 Anniversary」は、この時点での「日本で最も売れた CD-I タイトル」だったはず。
たしか、300枚くらいと聞いたような…
#受験ガイドは、主に女子高の制服を集めた図鑑データベースです。
当時はまだバブル崩壊直後で、まだ残り香のあったころ。
特に私立高校の間で「新しい制服を作る」のが流行していました。
著名デザイナーに依頼したかわいい制服など、それを目当てで受験する女子中学生が多かったためです。
そして、選ぶ側の女子中学生にも、かわいい制服を一覧できる図鑑などに需要があったのです。
書籍も流行っていたけど、CD-I ソフトは主に私立中学・進学塾相手に売れたのだとか。
さて、「Mystic Midway:Rest in Pieces」日本語版の話。
日本語版には「ひとり墓ッ地でキモだめし」というサブタイトルがついていましたが。
日本語版と言っても、プログラムなど一切いじりません。
先に書いたように、一番売れて 300枚、なんて世界なので、細かな作業していたら割に合わない。
アメリカでそこそこ売れたゲームの権利を買ってきて、簡単に改造するだけです。
CD-I は「マルチメディア機」だったので、良く喋りました。
この音声ファイルを全部日本語に差し替える、というのが目標。
すでに、声優さんに喋って貰った音声データはありました。
DAT (デジタル・オーディオ・テープ)に入っていて、秒数も元の物に合わせてある。
元ファイルのファイル名と、バイト数の表もある。
MacII を使って DAT から音声を取り込み(この時点では 48KHz のデータ)、CD-I で使う 44.1KHz にコンバートします。
そして、元ファイルと1バイトたりとも違わないように、正確にファイルを切り出します。
Mac には 5inch MO を接続してありました。
当時はハードディスクはまだ高価なもので、パソコンに内蔵しているのは 40M ~80M 程度。
外付けでも結構高価な 120M があり、サーバー用などならやっと 250M くらい…という時代。
でも、CD-ROM ゲームを作るのですから、650M の記憶域が必要です。
5inch MO は、650M を記録できました。もっとも、これはメディアを両面使った場合の話で、片面は半分。
#CD-R はまだ普及していません。規格ができたのは 1990年だけど、普及は 1995年ごろから。
そして、この MO ドライブ自体が非常に高価。
ドゥーブルには当然こんな高価な機材は無く、ドライブごと借りていました。
「両面で」650M なのに、普通に開発していたのだから、容量は半分程度しか使っていなかったのではないかな…
#もしかしたら、ヘッドが両面にあって、裏返さずに両面のデータを読めたのかもしれません。
先に作りだした「日本語化」ファイルを、MO 上で元ファイルと同じ名前で保存します。
完成したら、テストプレイ。
…どうやって遊んだのだろう。記憶にない。
開発用の特殊な CD-I 本体とかで、MO ドライブを CD-ROM に見立てて起動したりできたのかもしれません。
ここら辺、どうやっていたのか全然覚えていない。
ただ、テストプレイをやっていた記憶だけはあります。
しばらく遊んでみて問題なさそうなので、日本語化完了。
全てのデータを MO に入れて、ドライブとメディアを一緒に発注元に送り返します。
MO ってリムーバブルメディアだけど、常にドライブとメディアをセットで移動している状態。
先に書いたように、ドライブが高価だったからね。
ちなみに、ゲーム内容は「射的」です。
画面下で左右にしか動かない銃を動かして、画面内を左右にしか動かないターゲットを撃つの。
玉数制限もありますし、一定時間たってもゲーム終了します。
一定点数取れば次の面に進めるのだけど、点数が達してなければゲームオーバー。
このゲーム、一応「アメリカではヒットした」ということで日本語版が作られたわけですが…
なんでこんなゲームがヒットしたんだろう (^^;
#まぁ、つまらないわけではなくて、それなりに良くまとまってはいた気がします。
でも、5千円払って買うゲームではないよね、という感じ。
2021.8.30 追記
このページを英語翻訳して紹介している海外のページを発見したのだが、そのページには貴重な実物写真が多数入っている。
Mystic Midwayの日本語版のジャケット写真もあるし、リセエンヌグラフィックや、斉藤由貴のアニバーサリーの写真もある。
日本にいてもお目にかからない日本版のソフトまで集めているという、海外コレクターおそるべし。
同じテーマの日記(最近の一覧)
関連ページ
【訃報】6502 の開発責任者、チャック・ぺドル【日記 19/12/28】
別年同日の日記
申し訳ありませんが、現在意見投稿をできない状態にしています。 |