恵方巻きは呪詛。気持ち悪い。

f:id:juangotoh:20200214052108p:plain
 なにかコンビニが定期売上イベントにしてしまった恵方巻。あれ気持ち悪くないか?

 恵方巻きは、太巻きを、その年の恵方に向かって、無言で食べきる行事とされている。関西の一部地方で生まれた風習らしいのだが。そもそも。その年の恵方というのがピンとこない。陰陽道で、その年の福徳を司る神が毎年変わる。その神の座す方角が恵方である。もう陰陽道という段階で呪術的だ。そして無言。言葉を発してはいけないというのは禁忌であり、破ればなんらかの祟りがありそうだ。「方角」と「言葉」が縛られている。あからさまに呪術っぽい。

 節分前にスーパーに行ったら床にコンパスが描かれていて、矢印のところに「今年の恵方」と書かれていた。いや親切だが、このスーパーで恵方巻きを買って、家に帰って、スーパーの床に書かれていた恵方を再現できるのだろうか。そう、恵方の判定は本来陰陽寮の博士とかが算出して民衆に示すようなものなのだ。呪術師が本格的に呪を為すための秘匿技術である。言葉を発してはいけないというのは、鬼や死霊に見つからないための知恵である。耳なし芳一の故事にもある。

 太巻きを一本まるごと無言で食べきる。しかも一方方向を向いてということは、途中で口を離して汁物を飲むのもNGである。汁を飲むために顔の角度が変わるかもしれない。結構苦行である。

 太巻きを食べる作法、角度や無言を破った場合にどうなるのかという説明はない。しかし、これだけ縛りをきつくした呪術なら、わずかに角度を間違ったり、ため息程度でも音を発したら、たちまち床下から黒い手が無数に生えてきて、失敗した人を冥府に引きずり込むような恐ろしさを感じる。

 この風習が、1990年代あたりから、コンビニ各社に取り入れられ、急速に全国に広まり、コンビニ本部からの事実上のノルマ押しつけでバイト諸君が自爆買いせざるを得なくなったわけだが。そんな犠牲を払ってこのような暗黒呪術にしか思えない風習を広めてよいのだろうか。とても気持ち悪いと思うのだ。単純に、たとえば5人家族全員が、茶の間で全員同じ方向を向いて、一切口を開かず一心に太巻きをもりもり食べきる絵面を想像するだけでもとても気持ち悪い。

古よりのMacintosh批判への答え

north.thco.mp

 この記事、気持ちとしてはなるほどなあとは思うのだ。Macは伝統的に「オシャレ」で「カッコよく」「コンピューターの理想」で「使わないやつは馬鹿」みたいな傲慢さを醸し出していた。ついでに高価なので使う人を単純に値段で選別していた。しかし、実際のところ、そんなにMacユーザーがDOSWindowsのユーザーをいちいち小馬鹿にしたりしてはいなかったし、CMでもMac以外をdisることはなかった。いやラーメンズのCMとかあったじゃんと思うでしょ。あれもうすっかりMacの優位性失われた後のもので、むしろMacユーザー側が「うわ、かっこ悪いからやめてほしいなあ」と思ったものだ。少なくとも日本のテレビでMacのCMなんて、キャノン販売が代理店やってた時代の、観音の絵のやつとか、なにひとつ優位性を語るどころか、意味すらわからないぼんやりファッショナブルなものがごく少数あっただけだと思うぞ。雑誌広告でもそりゃあ「Appleならなにができる」的なものはあっても、他のパソコンをdisるものなんてほとんど見た覚えがない。

 1990年当時ならまだClassic MacOSの時代だ。対象が「黒い画面をキーボードでいじっている」ならDOSであろう。DOSであろうとROM BASICであろうと、Macのビットマップ画面主体のOSとは全く違っていたから、大きなパラダイムの転換があった。Macは、DOSUNIXGUIを追加したものではない。最初からGUIオンリーのシステムとして作られている。なのでコンソール画面というものが一切存在しない。初代Macintoshにはカーソルキーすら搭載されなかった。これはジョブズが「マウスを使わせる」ためにそうしたと言われている。後のモデルではカーソルキーが搭載されるようになったが、とにかくマウス主体の操作を覚えさせるためにその使用を強制させたのだ。当時は今と違ってポインティングデバイスという物自体が「新しい物」だった。Macを購入すると、本体にマウスは付属していたが、キーボードは別売りだったのだ。その意味で「マウスだけで操作できる」は極端ではあるが間違いではない。なんならソフトウエアキーボードをマウスでクリックすれば文字も入力できる。もちろん実用的ではないので普通キーボードも購入したが。対象的なのがWindowsで、こちらは「マウスがなくても操作ができる」のである。キーボードからメニューを開き、メニューの頭文字を打ち込むことでメニュー選択と同等の結果を得られる。これは本当に考え方の違いである。

 コントロールキーがなく、コマンドキーがその代わりだとあるが、逆である。コントロールキーはもともとコントロールコードを端末に入力するためのもので、コンソールがないMacには不要とされていた。コマンドキーは「命令を打ち込む」ためのもので、メニュー項目のうち、何度も使うものに「キーボードショートカット」が割り当てられていた。マウス操作による命令の代替手段である。LisaとMacでCommand-Zがアンドゥー、Command-Xがカット、Command-Cがコピー、Command-Vがペースト、というショートカットが標準化された。ペーストがなぜPじゃないんだという話だが、Xがハサミ、Vがピンセットという説もあるが、実際のところキーボード左下列にZXCVが並んでいるというのが一番の理由だろう。Commandキーと組み合わせて、左手で素早く操作できる。これらが頻繁に使用するショートカットであるからここにまとめられていたと考えられる。命令の単語の頭文字は必要なのではないのだ。それが必要なのはWindowsのキーボードアクセラレータであって、Macのキーボードショートカットは、あくまでメニューをマウスで使用しているうちに何度も見るショートカットを覚え、やがてキーボードから素早く使えるようになるという学習段階を考えたものである。そして、コントロールキーがないからCtrtl-Cの代わりにCommand-Cを割り当てたのではない。逆である。MacでCommand-C,X,V,Zが普及したからWindwsなどでも使われるようになった。さらにメニューの命令を実行するためのコマンドキーが存在しなかったから、コントロールコード用のCtrlキーを代用したのだ。

 Windowsのキーボードアクセラレータは、原則的に全てのメニュー項目につけるものだ。英語版なら単に頭文字である。Fでファイルメニューを開き、Oで書類を開くというように使う。つまりマウス無しで使用するためのものだ。それに対し、Macの場合は頻繁に使用するメニューにショートカットを割り当てる。それ以外はマウスを使うしかない。マウスがすべての操作の基本で、その中で覚えられる範囲で頻繁に使う機能をキーから入力できるようにしていた。

 Macマルチタスクであるかどうかについては、初期の頃は完全なシングルタスクだった。ただしアップルメニューから呼び出せる小さなプログラム(デスクアクセサリー)はアプリケーションの空き領域に読み込まれてイベントを受け取ることができたのでマルチタスク的に使用できた。その後、コオペラティブマルチタスクが導入され、プリエンプティブマルチタスクの導入は計画がされたが難航し、最終的にNeXTの買収によるMac OS Xによって実現される。ここで思い出として語られているのはおそらくコオペラティブマルチタスクが実装された頃ではないかと思う。あるいはマルチタスク化されず本当に切り替えだけしていたSwitcherの頃の話かもしれないが、どっちにしろ大した違いはない。メモリ保護に関しては68000系CPUを使用していた時代は全くなされていなかったし、PowerPCの時代になってもOS Xまではまともになされていなかったと思う。それは事実なので仕方ない。プログラムがOSを容易に落とすことができたのは確かである。ただここからの話がわからない。

何より皮肉なのは、panic後のコンソール画面はDOSと同じ「黒い画面」ということだった。これには大笑いさせてもらった。背景を白のままに維持しておくぐらい簡単だと思うのに、なぜかデバッグは黒い画面を相手にキーボードで操作しなければならないのだ。

 大笑いしてもらって申し訳ないが、当時のMacintoshには黒いコンソール画面は存在しなかった。ビットマップとウィンドウからなる画面を表示するための機能はあったが、全画面に黒字に白で文字を流すような機能自体がROMにもOSファイルにも含まれていなかった。起動時にMacsBugというデバッガを読み込ませているなら、クラッシュの際に運が良ければデバッガ画面にいけたが、これが白地に黒である。なお、開発者でなければ普通MacsBugなんて使わないので、このような画面を一度も見たことのないユーザーの方が多いと思う。
f:id:juangotoh:20200206181957p:plain

 90年代のMacでシステムクラッシュを起こすことをpanicとは呼ばなかったし、これはOS Xの時代の記憶が混ざっているのではないだろうか。あちらはUNIXベースなのでコンソール画面を搭載していたし、しかしその頃になるとアプリケーションからカーネルパニックを起こすのは難しくなっていたと思うのだが…

 なお、僕自身は昔Macユーザーだったが、現在は主に金銭的理由でショップブランド改造PCでWindows 10 を使用しており、特に不満もない。

R800ユーザーズマニュアルを読んで

 国会図書館に遠隔複写を申請していた、月刊Datum1990年10月号掲載の「R800ユーザーズマニュアル暫定版」が届いたのでざっと読んでみた。そもそもあんましハードウェアは詳しくないのだけど、いくつかわかったこと。

 速度アップと乗算命令追加以外でわりと特徴的なことは、

  • 新割り込みモード
  • DMA

 あたりだろう。新割り込みモードは、8段階の優先度付き割り込みで、割り込みベクターレジスタに登録した8ビットの値を上位アドレスにして、そこから2バイトずつ置かれたアドレスに割り込みごとにジャンプするようだ。従来の割り込みと新割り込みの切り替えは割り込みベクターレジスタベクターを書き込むかどうかで行われる。
 MMUというかマッパーは、24ビットのアドレススペースの上位11ビットを変更できるマッパーレジスタが9本用意され、8KB単位でページの内容を入れ替えられる模様。MAP0(0000H~1FFFH)からMAP7(E000H~FFFFH)までの8本と、新割り込み時に使われるMAP0'(0000H~1FFFH)がある。
 DMAはメモリ・メモリ間、メモリ・I/O間の高速データ転送を行う。これは24ビットリニアアドレスで実行可能。

 これらはすべて内部拡張レジスタを使用する。CSREGピンをLowに設定すると内部拡張レジスタが使用できる。なおMSX turbo Rではこのピンは常にHighなので、内部拡張レジスタにアクセスすることはできない。
 内部拡張レジスタは各8ビットでレジスタアドレス00Hから41Hまで存在するが、これらは通常のレジスタ、AとかHLみたいにマシン語の命令で直接操作できるわけではない。

内部I/OレジスタはCSREGピンを「LOW」にすることでアクセスできます。アドレス信号のA0が「LOW」の時、内部I/Oレジスタポインターが書き込まれ「HIGH」の時データが書き込まれます。ポインターはデータ書き込みごとにオートインクリメントされるためマッパレジスタ等の高速書き込みが可能です

 とあるのだがこの文章では具体的にどうしたらいいのかよくわからない。A0が「LOW」ということはアドレスの末尾が0であればいいのだろうけど、CSREGを「LOW」にしたあとで、メモリアクセスすればいいのかI/Oアクセスすればいいのか。どっちでもいいのか、まあとにかくA0を「LOW」にし、何らかの方法でレジスタポインターに目的のレジスタアドレスを設定し、A0を「HIGH」つまり奇数アドレスを設定してレジスタの中身を読み書きすることになるようだ。CSREGを切り替えるには外部回路を作ってI/Oで制御するのが一般的だと思うけど、一旦CSREGを「LOW」にしたらA0=「LOW」でレジスタポインタ、A0=「HIGH」でレジスタデータになるのなら、偶数奇数すべてのアドレスでこのどちらかになるわけで、LDやIN,OUT命令が全部拡張レジスタアクセスになっちゃうとしたら、どうやって戻せばいいんだろうか…うむ、なにか読み違えているっぽい。

せめてアセンブラで書かれた内部拡張レジスタ利用のサンプルコードでもあればと思うのだけど。そんなのはなかった。たとえばI/OポートFFHに0を書き込むとCSREGがLOWになって、1を書き込むとHIGHになるという前提で

XOR A ; A=0
OUT (FFH),A ; CSREGをLOWに
OUT (0),A ; Aが0だから拡張レジスタ0(メモリマッパー0のMA13-MA15)を指定
OUT (1),A ; 拡張レジスタ0に0を設定、ポインタはインクリメントされる。
INC A ; A=1
OUT (1),A ;拡張レジスタ1(メモリマッパー0のMA16-MA23)に1を設定
; これによって物理アドレス 010000Hがマッパー0に設定され、
; 論理アドレス0000Hが物理アドレス010000Hにマップされる。
OUT (FFH),A ;CSREGをHIGHに

とかなんとか。いやこの例は、内部拡張レジスタアクセスが、偶数アドレスと奇数アドレスのIN、OUT命令でできるという憶測に基づくものなので、全然間違ってるかもしれないし、そもそも上で書いたように、I/Oアドレス奇数偶数全部拡張レジスタアクセスになっちゃってるとしたら、最後のOUT(FFH),Aは希望する動作にならないと思うし。

R800というCPU

 MSX turbo Rに採用されたR800というCPUは、Z80互換で10倍速と言われた、当時のMSXユーザーにとっては夢のようなCPUであった。考えてほしい、今使っているあなたのパソコン、10倍速くなりますと言われてワクワクしないユーザーがいるだろうか。実際は画面描画用のVDPが前世代のままで、画面表示にウェイトがかかりまくったので、TurboRであらゆるソフトが10倍速く動いたわけではなかったのだけど。

 もともと、Z80というCPUは、8ビット時代においてやたら高機能なCPUだった。BCDによる十進数計算をサポートし、大量のメモリ領域を1命令で転送するブロック転送なんてのも機械語に入ってたくらいである。そんな複雑で高機能なCPUなので、クロックあたりの速度はそれほと高くなかった。大概の命令に4クロックくらいかかるし。Apple IICommodore 64が採用していた6502と比べると、クロックあたり性能がだいたい半分だったと言われている。ただまあ、大体の場合Z80採用パソコンのほうがクロック数が高かったので、平均して同じくらいの性能を出していた模様だ。

 MSX turboRの企画がASCII社内で持ち上がったとき、Z80互換、非互換を含め次世代MSXにふさわしいCPUが色々検討されたらしい。そんな中で、ASCII社内でMSX事業部とは関係なく、岸岡和也という一人の技術者が、Z80高速化CPUを研究していた。CPUの研究をIT系とはいえただの出版社のいち社員ができるのかと疑問に思うのだが、当時のASCIIってバブル時代だけに半導体設計製造のアスキー三井セミコンダクターなんて会社も持ってたし、そういうこともあるのだろう。これがのちのR800になる。

 R800は、4004以来伝統だった演算回路が4ビットしかない8080/Z80の構造を、内部16ビット演算機に改める。4クロックかかる命令を1クロックでできるようにする。16ビットアドレスの上位8ビットが変化しない256バイト以内のメモリアクセスは上位ビットを読み込まないことで高速化するなどの、こまかい改良を積み重ねて、最終的に10倍速にまでもっていった。ただ、これはトランジスター一個一個並べる論理設計を一人で行ったという話ではない。1980年代後半はカスタムLSIであるASICの設計が、論理回路マトリックスにして大量に並べ、接続を設計するゲートアレイと、演算器やRAM、ROMといった定番ユニットをレディメイドで作成して組み合わせるスタンダードセルという方式が普及していた。R800はこのスタンダードセル方式で作られたらしい。
f:id:juangotoh:20191111164649p:plain

MSX turbo Rの悲劇は、これがMSX規格の最後になったこと。そして採用メーカーがパナソニックただ一社で、出た機種が、FS-A1STとFS-A1GTのニ機種のみ。お世辞にも普及したとは言い難い。対応ソフトも少なかったので、R800の高速性などは、あまり伝えられることもなく消えていった。

 近年、MSX turbo R のMSX BASICでナムコアーケードゲームドルアーガの塔」を驚くほどの再現度で移植した動画が公開された。
www.youtube.com
8ビットホビーパソコン時代でもこれくらいはできなくはなかった。でも、機械語を使わないBASICではまず無理だったはずだ。こんなにカラーとキャラと動きを両立させられるBASICゲームなんてなかったといっていい。BASICでもこんなに速い。R800の実力を30年後に実感した作品である。

 Z80互換や拡張CPUはいろいろある。ザイログのZ800、Z280、日立のHD64180、川崎製鉄のKC80。しかし、R800アスキー三井セミコンダクターが製造し、市場に出たのはパナソニックMSX turbo Rパソコン用だけで、CPU単体の発売がなされた記録がない。MSX turbo Rが出た時代は、8086系の16ビットCPUが全盛期であり、これに対抗するのはモトローラの68000系MPU。もはやZ80互換CPUの時代ではなかった。一瞬ニッチに超高性能Z80が登場して、「いやそんなのいらねーし」と無視された感じなんである。

 Z80を作ったザイログという会社はいまでも残っているし、Z80互換CPUもeZ80など、Z80互換で50MHz動作できるものも販売しているのだが、コンシューマ向けパソコンのCPUに使われたZ80高速互換CPUでは、おそらくR800が唯一にして最高速であったと思われる。

 MSX用チップで言うと、ついに発売されなかったMSX3用のVDP。ヤマハのV9978がある。これはMSXMSX2MSX2+との互換性を保ったまま、さらなる高解像度、多色表示を実現する予定だったチップである。しかし、当時の技術では要求性能を得ることが難しく、結局MSX turbo Rでは前世代、MSX2+と同じV9958を採用する。V9978は、V9958以前との互換性を切り捨てたV9990として販売された。このチップがもともとMSX3用の企画から始まったという話は人口に敷衍したため、のちにヨーロッパの会社がV9990を仕入れて、MSX用カートリッジの形に製造、販売する。MSXの製品寿命が終わったあとの製品なのだけど、ユーザーたちは「ありえたかもしれないMSX3」の幻想に取り憑かれる。その後も度々独立メーカーたちからV9990カートリッジが発売され、MSXエミュレーターも、V9990エミュレーションをサポートするようになる。

 V9990はMSXに一度も採用されなかったし、過去のVDPとの互換性もないので、MSXが現役であれば採用されるはずもない。だけど、現実にチップが製造販売され、ストックがあったことで普及している。

 一方R800MSXの高速なCPUであるのだけど。単独で市場に販売されることがなかったため、その実態は驚くほど知られていない。R800
ハードウェアレベルの仕様は、「R800ユーザーズマニュアル暫定版」という冊子が世に出た唯一のものらしい。これはアスキーシステム事業部名で、関連会社に配られ、さらにCQ出版半導体情報誌Datum、1990年10月号に掲載されたらしい。ちょっと気になったので、この記事を、国立国会図書館に複製申請しているところである。

2019/11/14 追記:
 R800MSX turbo Rに使用されただけで市販されなかったと思っており、そのように記述しましたが、共立電子で単品購入したという方の証言を得ましたので訂正いたします。

RISC-VとPowerVR

 高額なライセンスが不要で、命令の拡張方法も用意されているオープンソースCPU命令セットアーキテクチャ(ISA)のRISC-Vは、今のところはIntelやARMの牙城、PCや高性能モバイル端末のメインとして使われるというよりも、組み込み向けのコントローラー用という位置づけだろう。ただ、ISAが最初から32ビット~128ビットの高性能CPUを念頭に設計されているので、環境さえ整えばスマホやデスクトップPC、インターネットサーバーなどにも使いやすいはず。GCCなどもとっくに対応済みで、RISC-Vの開発環境も整っているし、Linuxの移植はとうに済んでいる。しかし検索してみるとわかるが、RISC-VでのLinux動作記事なんかは、みんなシリアルコンソールで動いており、GUIデスクトップ動作している記事は一つだけ。それも動画で動いているところを見せているものはなく、静止画で画面を映しているだけである。
abopen.com

f:id:juangotoh:20191111160014p:plain
RISC-VデスクトップPC動作画面

 この記事では、市販のビデオカードを使うためにRISC-V評価ボードにPCIeスイッチング用のASICを搭載した拡張ボードを接続して動かしましたという感じで、なんというか余計な手間と費用が半端ない感じだ。PC用ビデオカードは、つまりPCのマザーボードで動くのが普通であり、RISC-V用のPC形式マザーボードなんてないから大変なんである。ARMはどうかというと、こちらはSoCとして、チップにGPUを含めた形が多い。Raspberry piなんかは、BroadcomのSoCを使っていて、これはVideoCoreというGPUを内蔵している。NVidiaが作ってるARM SoCの場合はもちろんGeForceの縮小版みたいなのが内蔵されてるし、AppleもA11で自社製GPUを内蔵している。なお、自社でGPUを調達できないメーカーは、ARMが提供するMaliというGPUが使える。なんかメーカーごとにバラバラだけど、ARM系のビデオは基本OpenGLなので、画面出力APIはだいたい同じなのでいいのだ。

 で、RISC-Vだが、これはあくまで「CPU」部分だけの規格であり、少なくともいまのところGPUの仕様なんかは一切作っていない。それではいつまでたってもスマホやパソコンみたいな応用には結びつかない。まあRISC-Vはそもそも大学の研究テーマだし、そういうのもありかなと思うのだけど、その大学(UCB)からスピンアウトして実際のチップをいち早く作って販売しているメーカー、SiFiveは大学じゃなくて会社だから、RISC-Vの技術を現実のSoCにするためにいろいろやってるわけで、無償で使えるISAだけではSoCは作れないから、周辺インターフェースのIPを所有する会社を説得して、SoC作るためのライセンス交渉をウチがやります。作りたいSoCのデザイン持ち込んでくれればうちがまとめてライセンス交渉しますよという商売を始める。そこにGPUメーカーとして参加したのがイマジネーションテクノロジーズである。この会社、PowerVRというGPUを作ってるのだけど、これ、聞いたことないだろうか。
riscv.org


 僕くらいの年代だと、PowerVRって、セガドリームキャストが採用した3Dチップなんである。「PowerVR、生きとったんかワレ!!」って萬画太郎の絵で驚くような感覚である。
f:id:juangotoh:20191109025634p:plain

 細かく言うと、PowerVRは、もともとPC用の3Dアクセラレーターとして作られたのだけど、最初は本当に3Dしかできなかったので、2Dのグラボと二枚刺ししないといけなくて、PC用としては全然普及しなかったんだよね。その後ドリキャスで使われて、セガがこけた後は、ARMのCPUと組み合わせるGPUとしてずーっとやってきたらしい。PowerVRは、3D表示でメモリを節約することに特化してたので、モバイル用に相性がよかった。ところが、ARMが自社製GPUのMaliを作り出したり、Appleが「お前に支払うライセンス料はねえ!」と自社GPU開発して、かなり追い詰められてるっぽい。一時期会社を買ってくれる人募集とかしていたみたい。そんなイマジネーションが、RISC-Vと組んで復活できるのか。なかなか注目に値すると思うのだけどどうだろうか…

次世代MSXについて現在明かされていること

 前回書いた次世代MSXだが、西和彦氏が言ってるだけではないかと思うかもしれない。しかしD4エンタープライズ代表取締役鈴木直人氏がインタビューに答えている。
igcc.jp

鈴木 実は今「1 chip MSX」の次の構想があり、D4と西さんとで設計をしている最中です。2019年内には、具体的な次のMSXハードを提案できると思います。

――ビッグニュースですね! 復刻してくださいという声は多かったと思うんですが、それが叶うということですね。

鈴木 形自体はまったく別ですし、アーキテクチャもちょっと違うんですけども、かなり「えっ!?」と言わせるハードウェアを提案できるかと思います。プロジェクトEGGも初動から連動するような仕様で今、動いています。

https://igcc.jp/d4%E3%82%A8%E3%83%B3%E3%82%BF%E3%83%BC%E3%83%97%E3%83%A9%E3%82%A4%E3%82%BA2/

 西和彦氏のサイトでの記述は以下の通り。

#143 次世代MSXとIoT MSX
2018-08-07
次世代のMSXを開発している。CPUはARMとR800FPGAの上で何にでもプログラムできるハードウェアでRaspberry Piと同じ大きさの基盤にした。年内に発表したいと思っている。名前は未定。

IoTの分野とMSXとの接点は、ワンチップでMSXと無線通信機能を一体化した5ミリ角のシリコンチップのダイを開発中である。来年の秋ぐらいまでに発表したい。組込用のコントローラーとして。

#144 次世代MSXとIoT MSX その2
2018-08-28
次世代MSXについて書いたらかなりの反響だったので、もう少し詳しく書くことにしたい。Raspberry Piの大きさで、電源はAC48V。基板の上にAC-DCコンバーター搭載して、USB3.0の電源供給もカバー。ザイリンクスのPGAを搭載。EthernetWiFiBluetoothUSB3.0。100ピン多目的Busコネクター。基板を64枚スタックするとマルチプロセッサーになる。OSはWindows10、LinuxMSX OS(MSX DOSの進化形)。FPGAソースコードはオープンにする。LinuxMSX OSもソースコードはオープンにする。オンラインのグループウェアを提供。情報交換と情報公開のプラットフォームにする。D4E社に協賛してもらってゲームソフトウェアを安価に提供の予定。Cコンパイラを調整中。MSX BASICライセンス予定。CPUはARMとR800

http://nishi.org/

 西氏が作っているのは2種類。次世代MSXとIoT MSXである。IoT MSXは組み込み用のチップであって、パソコンとは別物だ。問題は次世代MSXの方である。この文章はあえて曖昧にしているのかもしれないが、どうも実態がよくわからない。CPUはARMとR800とあるが、これをザイリンクスのFPGA上にすべて記述するのか、それともCPUは普通に作られたものを搭載して、それとは別にFPGAを搭載するのか。どうもFPGA上にCPUコアを載せてしまうように読めるのだがどうだろうか。少しあとの方のコラムに、MSXの事とは明示されていないが以下の記述がある。

#263 35ドルのコンピュータのこれから
2019-06-11
大ヒットとなった英国のワンボードコンピューター、ラズベリーPiの後を追って類似の商品がたくさん出てきた。ARMのCPUの数が現行は4つであるが、これが増えたものが1つの方向。もう一つはCPUがARMではなくx86でフルWindowsが動くものもある。私はこれが大好きだ。では、東大のラボで何を作るのか。私が今作っているのは巨大なFPGAを搭載し、高速のBUS構造を持ったアーキテクチャをソフトウェアでプログラミングできるワンボードコンピューターを設計している。年内に発表し、試作品を世界中に届けたい。東大の生協と楽天と、amazonで。

http://nishi.org/

 この「巨大なFPGAを搭載し、高速のBUS構造を持ったアーキテクチャをソフトウェアでプログラミングできるワンボードコンピューター」が次世代MSXではないかと思われる。Windows 10を動かすようなARMコアをR800とともに乗せるなら、「巨大なFPGA」を使うのもわかる。D4Eの鈴木氏が「2019年内に」と言っている事とも符合する。

 とにかく、次世代MSXは、ラズパイサイズでFPGAを使った、64枚スタックできる基板ということになる。(64枚スタックするとマルチプロセッサになるという意味がよくわからない。64枚ないとマルチプロセッサにならないのだろうか??)また、基板をスタックするということは、基板上にはMSXのカートリッジスロットは配置されないのだろうか。いやラズパイサイズだったら多分載せるスペースが足らないだろうけど。

 あとVDPについて何も語っていないのが気になる。今CPUやOSまで変えてV9958でもあるまい。V9990でもたかだかVGA解像度、しかもインターレースモードである。単に昔のMSXシリーズの再現ならそれでいいとしても、今の時代にわざわざ次世代として発表するならフルHD対応は最低限、下手すると4Kくらいは期待されるのではないか。ただ、D4Eを通して旧作ゲームの配信を考えているようなので、V9958互換機能は必須になるだろう。あるいは旧作ゲームはARM上で動くWindowsLinuxでのエミュレーションになるのかもしれない。D4EのプロジェクトEGGはそもそもエミュレーションで動いているし。搭載するARMが、実チップであるかFPGA上のIPコアであるかはさておき、それがラズパイと同様にGPUのVideoCoreまで搭載しているなら、V9958エミュレーションくらいは楽にこなせるはずだ。

 この考えが正しければ、カートリッジスロットはなし。旧作ゲームは配信で遊ぶ。新MSXとしての機能は旧MSXとの互換性が低いか、もしかしたらほとんどないかもしれない。旧MSX-DOSソフトは機種ごとにグラフィック環境がバラバラだった時代のCP/MMS-DOSのように、テキストを使うものくらいしか動かないかも。メモリーマッパーなんかも廃止されてR800MMUを使うかもしれない(R800は内蔵MMUで16MBまで使えたはず。turbo Rでは互換性のためにこの機能は使われなかった)。そもそもZ80を載せないのであれば、R800Z80に比べて高速であるだけで非互換性が出てしまう。MSX2+までZ80 3.58MHzで固定だったため、アクションゲームなどは実時間で制御していないものが大半だろう。だからturbo RではZ80R800を切り替えて使っていたわけで。そこまでいくと「どこがMSXなんだろう」となるかもしれないけど。

MSXの中古価格が偉い高騰している&次世代MSX

近年、8ビット時代のレトロパソコンが人気だ。その流れで、MSXの中古価格が偉いことになっている。30年前の新品価格並で売られていることがある。MSX最終規格、turbo RのPanasonic FS-A1STが不具合有りで8万円とかそんな感じ。こないだなんてアマゾンでMSX1のSONY HB-101が87500円で売られていた。

8ビットパソコンは、日立、シャープ、NEC富士通が先行して殆どのシェアを握り、参入が遅れたメーカーはなかなか入り込めなかった。そこでマイクロソフトアスキーが共通企画としてMSXを提唱し、家電メーカーが我先に参入することになる。比較的低価格でゲーム向けのパソコン規格になったので、各社からかなりの数が販売された。ただゲーム機としては性能でファミコンに負けていたし、表現力を増したMSX2MSX2+MSX turbo Rといった後継規格が出るたびに対応メーカーが減り続ける。MSX2で色数とか増しても、性能が変わらなかったので多色モードを使うと遅くなるし、コナミなんかはかなり末期までシューティングゲームはMSX1の規格で作り続けていた。あとの規格になるほどメーカーも台数も少なくなるので、どれでも動く最初のMSX1に合わせてゲームが作られていたわけだ。まして時代は16ビットパソコンがあたりまえになる1990年。この年発表されたMSX turbo Rに対応する機種は、とうとうパナソニック一社からしか発売されなかった。

そんなこんなで、10年くらい前まで、MSXは中古パソコン市場なんかでも見向きもされない。ハードオフでジャンクコーナーに1000円で投げ売りされるようなものだったのだ。

ちなみに僕は1986年に29800円という激安価格で発売された、MSX2のFS-A1を買った。この機種は一体型でFDDもなかったので、外付けFDDとRGBモニターをセットで買ったら、合計で約10万円になって「くそ」と思った記憶がある。なお、このパソコンのイメージキャラクターは、なんかマッチョでむさ苦しいアシュギーネという親父だった。
f:id:juangotoh:20191105013145j:plain
このパソコン使ってたころ、アスキーが運営していたパソコン通信のASCII NETから、MSXのユーザー向けのMSX NETを独立させるという話が出て、南青山のASCIIに呼び出された。MSX NETのCOMIC SIGのSIGOPやってくれないかという話で、引き受けるならSONYのセパレート型MSX2。HB-F500を貸与するという。
f:id:juangotoh:20191105013758j:plain
もちろん引き受けましたよ。その後ASCII NETはASCII NET PCSに、MSX NETはASCII NET MSXに名前が変わり、やがてパソコン通信サービス自体を終了。貸与されたHB-F500は返せと言われることもなく引っ越しするたび持っていったのだけど、押し入れにしまわれて、最終的に廃棄しました。最初に自分で買った29800円のFS-A1もとっくに捨てた。こいつらいまでも持ってたら、合計10万円以上で売れたんじゃねえかなあ。捨てるまで故障もしなかったし。

MSXは21世紀が始まる頃にはほぼ無価値のジャンクに成り果てていた。しかしこの安いパソコンでゲームをして、プログラミングを学んだ世代が忘れずに大人になって、2006年の1チップMSXに結実する。これ、MSXの生みの親、西和彦氏が結構乗り気で規格承認して推し進めたんだけど、当時思ったほど予約注文集まらなくて、西さんうっちゃったんだよね。でもいざ売り出されたら即座に5000個完売。こういうのに需要があるというのが浮き彫りになった。

その後レトロゲームやレトロPCはFPGAでロジック構築する流れから、Raspberry piのようなSoCボードでエミュレーションするほうが簡単という流れになる。任天堂ファミコンスーファミのエミュ機を出す。HAL研がMZ-80やPC-8001のエミュ機を出す。だから、次にMSX公式の機械が出るなら、やっぱソフトウェアエミュレーターになると思ったのだけど、どうも西和彦氏は違うことを考えているようだ。

nishi.org
コラムの#143,#144に次世代MSX開発中という話が出ている。FPGAで、ARMとR800を実装するらしい。OSはWindows 10、LinuxMSX OS(MSX DOSの進化系)とのこと。
これはもうMSXの再現ではないだろう。turbo Rは互換性のためにZ80R800を切り替えていた。ARMとR800では、旧MSXシリーズとの互換性を切り捨てたと思える。MSXWindowsLinuxは必要なのか。ほんとうに次世代MSXを作る気なのだろうか。そもそもLinuxWindowsが動くARMコアをR800とともに載せられるFPGAマシンって、リーズナブルな値段で作れるのか?

2019年中にも発表されると言われている次世代MSX。いったいどんなものになるのか楽しみなような不安なような。