MSX復活 /MSX 3rd generation project

次世代MSX

次世代MSX

MSXとは

MSXは、1983年にマイクロソフトとアスキーが提唱したパソコンの共通規格です。MSX推進の中心人物は、アスキー創業者の西和彦氏(情報学 博士)です。

1970年代後半から登場したパーソナル・コンピュータは、マイクロソフトBASICを搭載していましたがメーカー(NEC,日立,富士通,シャープなど)ごとの特徴がありソフトの互換性はありませんでした。そこでMSX規格を提唱し、賛同した多くのメーカー(松下電器やソニーなど)からMSXマシンが発売になりました。

MSXマシンはMSX-BASICを搭載しており、BASICプログラムはどのMSXマシンでも動作しました。また、オプションのMSX-DOS(CP/M互換)を導入すれば、CP/Mで動作する数多くのアプリケーションを利用可能でした。

MSX規格は、MSX1 → MSX2 → MSX2+ → MSX turboR と進化し、数多くのMSXマシンが発売になりました。

その当時の私は、マイクロプロセッサ6809を搭載した富士通のFM-7を購入したばかりで、MSXには興味を持っていませんでした。新しいゲームマシンが登場したぐらいにとらえていました。

次世代MSXプロジェクト

2022年、AMAZONで発売している拙著Kindle本を紹介するためにTwitter(@Yuki_book1956)をはじめました。

Yuki twitter

Yuki twitter

西和彦氏がTwitter(@nishikazuhiko)で発信している次世代MSXについて気になりました。第3世代となる次世代のMSXを開発するようです。
しかし、Twitterの細切れ情報では全体像がつかめませんでした。MSX3.14と言われても何のことかサッパリわかりませんでした。

西さんの発言を読んでいくと、3つのプロジェクトを進めていることが分かりました。

  1. MSX0   :小さな IoTコンピュータ
  2. MSX3   :AVメディア・コンピュータ
  3. MSX Turbo:パーソナル・スーパーコンピュータ

MSX3という言葉が、次世代のMSX(第3世代)プロジェクト全体を現したり、新しいMSX3マシンを示したりするので混乱しそうです。さらに、第2世代MSX規格のMSX turboRとパーソナル・スーパーコンピュータMSX Turboの単語がほぼ同じなので間違えそうです。

西和彦氏のエッセイにも、時々MSXに関する記載があります。

#709 MSX3を世に問う 2022-08-24

40年前に始めて、30年前に撤退したパソコンMSXをもう一度本気で取り組もうと考えている。

・・・ 中略 ・・・

  1. MSXの本体
  2. IoTとしてのMSX
  3. パーソナルスーパーコンピューターとしてのMSX
  4. MSX関連のサービス

    次世代MSXプロジェクト(図)

    プロジェクトの全体像を把握するためにTwitterの情報を1枚の図に整理してみました。

    MSX 3rd generation project

    MSX 3rd generation project

    「いいね」をたくさんいただいたり、リツイートしていただいたり、Twitterの反響もよく驚いています。また、西和彦さんからお誉めの返信もありうれしくなってしまいます。

    次世代MSXプロジェクト(日本語テキスト)

    1枚の図で次世代MSXを整理したのですが、海外の方は日本語を読めないため内容を理解することが困難でした。

    こんな、返信がありました。It is possible translate this image to English?

    そこで、HTMLテキストで掲載します。Google翻訳すると内容を読むことができるようになるかと思います。


    次世代MSXとは

    1983年 MSX1誕生 → MSX2、MSX2+、MSXturboR に進化

    MSXの次世代(第3世代)(MSX 3rd generation project)
    MSX0   小さなIoT・マシン
    MSX3   ホビーAV・マシン
    MSX Turbo パーソナル・スーパー・マシン

    MSX0 ・・・ 小さなIoT・マシン(MSX2+機能を含む)

    • IoT(Internet of Things)用途で、Groveセンサーモジュールを接続するマッチ箱サイズの小型コンピュータ
    • 公式MSXエミュレータでMSX1,MSX2/2+ソフト実行可
    • ソフト
      • MSX-DOS2
      • MSX-BASIC(インタプリタ/コンパイラ)
      • MSX-C
      • MSX-Cライブラリ
      • MSXエミュレータ
      • MSX0 Remote Desktop for Windows
      • MSX0 Control panel for Windows
    • MSX DATA PACK (600ページの本,PDF)
    • 製品化計画
      MSX0stack :
      M5stack(ESP32)
      MSX0Wio :
      Wio Terminal(ATSAMD51P19)
      MSX0pro :
      M5stack+Zynq-7010(FPGA)
      … FPGAでR800 (Z80互換)とV9958(HDMI)を実装
      MSX0カートリッジ

    MSX3 ・・・ ホビーAV・マシン

    • 大きなテレビをHDMI接続したAVメディアマシン
    • MSX0カートリッジを接続可能
    • 2つのOS(V2.0でOSを統合)
      MSXOS   :
      R800(Z80) CPU (BASIC,C)
      Linux OS :
      ARM CPU VM32/64 (BASIC,Pyhton,C/C++,… etc.)
      LinuxではTAOX(tao社のOS)が動作
    • MSXM(モジュール基板)をMSX100busでスタック(max16)する
      • MSX engine 3(32bit ARM ×2)      /32bit Linux
      • MSX engine 4(64bit ARM ×4 ラズパイCM4)/64bit Linux
      • MSX engine 6(64bit ARM ×4)      /64bit Linux
      • MSX Video engine(8K GPGPU :Jetson Orin nano, Orin NX)
      • MSX Audio engine (AD DSP)
    • FPGA = R800(Z80互換) , V9998(2K Video) or V9999(4K Video)
    • MSXシステム ・・・(同じソフトが動作可。パフォーマンスが異なる)
      MSX3 :
      MSX engine3+FPGA(R800,V9998)
      MSX3.1 :
      MSX engine3+engine6+FPGA(R800,V9999)
      MSX3.14 :
      MSX engine3+engine4(CM4)+FPGA(R800,V9998)

    FPGA R800 は、MSX2 Z80の2000倍の速度

    • CPU Z80 → R800 (×10倍)
    • クロック 3.5MHz → 700MHz (×200倍)

    MSX turbo ・・・ パーソナル・スーパー・マシン

    • パーソナル・スーパーコンピュータ Many CPU(10ドル/CPU 安価に)
    • MSX turboに続けてCPUの種類と個数で表記する 例)
      • MSX turbo A128:(ARM×128個)
      • MSX turbo X16X:(XMOS×16個)
    • Linux、 MPI(Message Passing Interface)とFortran/Occam 言語


    MSX 3rd generation project

    MSX 3rd generation project


    Next Generation MSX Project(English Text)

    What is next generation MSX?

    1983 Birth of MSX1 → Evolution to MSX2, MSX2+, MSXturboR

    The next generation of MSX (3rd generation)
    MSX0   Small IoT machine
    MSX3   Hobby AV machine
    MSX Turbo Personal super machine

    MSX0 ・・・ Small IoT machine (including MSX2+ functions)

    • A small computer the size of a matchbox that connects Grove sensor modules for IoT (Internet of Things) applications
    • MSX1, MSX2/2+ software can be executed with the official MSX emulator
    • soft
      • MSX-DOS2
      • MSX-BASIC (interpreter/compiler)
      • MSX-C
      • MSX-C library
      • MSX emulator
      • MSX0 Remote Desktop for Windows
      • MSX0 Control panel for Windows
    • MSX DATA PACK (600 page book,PDF)
    • Commercialization plan
      MSX0stack:
      M5stack (ESP32)
      MSX0 Wio:
      Wio Terminal (ATSAMD51P19)
      MSX0pro:
      M5stack + Zynq-7010 (FPGA) … R800 (Z80 compatible) and V9958 (HDMI) implemented on FPGA
      MSX0 cartridge

    MSX3 ・・・ Hobby AV Machine machine

    • AV media machine with a large TV connected via HDMI
    • MSX0 cartridge can be connected
    • Two OS (OS integrated in V2.0)
      MSX OS:
      R800(Z80) CPU (BASIC,C)
      Linux OS:
      ARM CPU VM32/64 (BASIC, Python, C/C++,… etc.)
      TAOX (Tao’s OS) runs on Linux
    • Stack MSXM (module board) with MSX100bus (max16)
      • MSX engine 3 (32bit ARM x 2) /32bit Linux
      • MSX engine 4 (64bit ARM x 4 Raspberry Pi CM4) /64bit Linux
      • MSX engine 6 (64bit ARM x 4) /64bit Linux
      • MSX Video engine (8K GPGPU: Jetson Orin nano, Orin NX)
      • MSX Audio engine (AD DSP)
    • FPGA = R800 (Z80 compatible), V9998 (2K Video) or V9999 (4K Video)
    • MSX system … (The same software works. different performance)
      MSX3:
      MSX engine3 +FPGA(R800,V9998)
      MSX3.1:
      MSX engine3 + engine6 +FPGA(R800,V9999)
      MSX3.14:
      MSX engine3 + engine4(CM4)+FPGA(R800,V9998)

    FPGA R800 is 2000 times faster than MSX2 Z80

    • CPU Z80 → R800 (x10 times)
    • Clock 3.5MHz → 700MHz (x200 times)

    MSX turbo ・・・ Personal super machine

    • Personal supercomputer Many CPU ($10/CPU ​​cheap)
    • Following MSX turbo, indicate the type and number of CPUs example)
      • MSX turbo A128:(128 ARMs)
      • MSX turbo X16X:(16 XMOS)
    • Linux, MPI (Message Passing Interface) and Fortran/Occam language

    MSX3のコア技術 TAOX

    2000年に注目されたTAO社のOS

    TAOXと言う言葉を聞いたことがありませんでした。調べてみると、英tao社の仮想OS「Elate」をベースに開発した組み込み向けリアルタイムOSのようです。

    アスキーとは、2000年ぐらいから提携しているらしいです。

    Tao、ジャスト、アスキー、携帯向けの日本語Java環境を共同開発

    英Taoがジャストシステム、アスキーと組込み型Javaで提携

    モバイルJava普及で急浮上の「intent」とは?

    MSX3のLinuxではTAOXが動作します。

    TAOXの仕組み

    MSX TAOXとは

    MSX TAOXとは

    • アプリプログラムは、仮想プロセッサ(Vertual Processor)VPコードにコンパイル
    • VPコードは、実行前にターゲットCPUのネイティブコードにトランスレートされ高速に実行
    • VPによる高速エミュレーション技術でプラットフォームに依存しない実行環境

    TAOXでコンパチビリティ

    MSX TAOXでアプリコンパチビリティ

    MSX TAOXでアプリコンパチビリティ

    VPコード(VM64)にコンパイルしたアプリプログラムは、コンパチビリティがあり下記のプラットフォームで同じコードが走ります。

    • MSX3.1のARM 64bit Linux
    • PCのx86 64bit Linux

    『TAOXで動作するプログラムの実行効率はどうなのだろう?』という疑問があります。

    • 1) Cプログラムをコンパイルしたネイティブコード
    • 2) VPコードにコンパイルしてTAOXでトランスレートしたネイティブコード

    1)と2)のプログラムの実行効率は同じぐらいなのだろうか。西さんによれば、TAOXで動作させる2)のプログラムは『使える範囲』で動作するとのことです。

    また、TAOX無しでMSX3はありえないという重要な技術ということです。

    twitter TAOX

    MSXのWEB情報

    次世代MSXについていろいろな情報がWEBに書かれています。

    次世代MSXプロジェクト第1弾「MSX0」とは何なのか?』

    この記事がわかりやすいです。

    『次世代MSXプロジェクト第1弾「MSX0」量産試作機を解説する』

    この記事もわかりやすいです。

    『西和彦、次世代MSXプロジェクト第1弾MSX0のすべてを語る』

    この記事がMSX0を中心として詳しく解説しています。

    『第3世代MSXってなんぞ?』

    西和彦氏のツイート発言を引用して整理した @pocopyさんのウェブページです。
    西和彦さんの発言と写真があり、具体的なイメージがわかりやすいです。

    MSXに期待

    2023年1月にMSX0stackのクラウドファンディングが開始されました。

    MSX0stack

    MSX0stack

    MSX0stackは、ESP32 CPUでZ80をエミュレーションして、公式MSXエミュレータでMSX1/2/2+用ソフトを稼働させるという非常に興味深いマシンです。それに加えて、IoTという新しい用途にも使えるマシンです。個人的には、その先にあるFPGAでR800を実装したMSX0proマシンがとても欲しくなってます。

    そして、その先のMSX3はどんな形でリリースされるのか興味が尽きません。『MSX0がつなぐ未来の先にMSX3』予兆を感じるので、なぜかワクワクしてしまいます。MSX Turboという個人でも使えるパーソナル・スーパーコンピューターには夢があります。

    これらの次世代MSXを若い学生が触れて興味を持ち、優秀なソフトウェア技術者が誕生することを願っています。