のんびり茶屋

のんびり茶屋(https://creativw.sakura.ne.jp/nishikaw/)のblogになります。

MSXについてつらつらと

2021-09-25 23:10:27 | コンピュータ

ZガンダムとMSXは
もっと良い落とし所があったはずで
それはどの辺りだったのか?
を1人で考える事が多いです。
以下はMSXの話。

--------

MSX1のハード構成は
調達しやすく安く作れるように、と思われるんだけど
古めの部品構成で遅いパソコンだった。
けれどそれを動かすシステム周りのソフトの強さは異常だったと思う。

ほぼ全ての周辺機器をBIOSコールで扱える便利さは半端なく
BIOSガンガン呼んで使ってるうちは
アセンブラでも高級言語感覚でプログラムが書けた。
今になってMath-Packの凄さにも驚く。
(0.001を1000回足すと1になります。他の言語で試してください)

BIOSが整備されている事と繋がってるんだけど
BASICで大体の機能を制御できるのもめちゃめちゃ便利だった。
MSX以外のパソコンのBASICを触ると
あれも出来ないこれも出来ないばかりで驚いたものです。
強いて、俗にいう多色刷(SCREEN1.5)は
BASICでモードや命令が欲しかった。

当時のホビーパソコンの中では最廉価の部類のはずなのに
敷居の低さと使い勝手を両立していたのは本当に凄い。
しかもこの超機能がわずか32KBのMAIN-ROMに収まってるのほんと凄い。

ここまでできるのは
もちろんハードが良くできてるからなんだけど
例えばこの頃の他のハード、
PC-6001やPC-8801(SRより前)みたいに
画像周りがCPU速度の足を引っ張らないし

 FM-7と違って"キーを離す"を検知できるし
 X1と違ってシステムレベルで1/60秒の割り込みできるし
連射パッド使えたしで。
(X1はキーの同時押しも基本できなかったそうです)。

でもそれ以上にソフトの力が凄すぎるんだよなぁ。
こうして文にするとMSXって
決して安かろう悪かろうではなかった。

いろんな所で何回も書いてるけど
MSX2で追加されたSUB-ROMのBitbltは異常で、
割り込みやタイミングを気にせずに
あれだけ柔軟な画像転送が
簡単にできちゃうのは本当に凄い。
しかもBASICでもその恩恵が受けれて
BASICなのにあの表示速度は本当に凄い。

しかもこれらソフト群が全てのMSXに”内蔵”されているから
本体一つでこれら機能が普通に使えるのが当然になっているのも
他機種を触った後だと本当にすごい事だと実感。
他機種のプログラムで言うところの
ランタイムライブラリやドライバに相当する機能を
全てのMSXがROMで本体に内蔵しているから
プログラムの配布時にライセンスの問題が起きにくい。
(他機種だとライブラリの同梱不可で配布断念とかあった訳で)
今思えばMSXDOS.SYSとCOMMAND.COMも内蔵できた気がする。
A1GTはMSXDOS2.SYSとCOMMAND2.COMが内蔵されてて最強なの。

他にも後に拡張された
日本語入力やMSX-DOS等でMSXに慣れていると
他機種……例えばPC-9801を触った時に
「フロッピーディスクのフォーマットが
外部コマンドで別途ディスクがいる?」とか

「周辺機器や漢字変換を使えるようにするには
CONFIG.SYSでの事前手続きでそれ用の別途ファイル(ドライバ)を
毎回起動時(起動後は不可)に読み込まないといけない??」とか
漢字変換はMS-DOS(これも別売で驚く)に付属している
NECAIという漢字辞書はフロッピー運用で遅いわ容量が少ないわで
使い勝手はMSX-JEとは比べ物にならないダメさだった事とか。

他にも「起動するディスクは意図して事前に作成しないといけない?」とか
「同人ゲーム売る際に起動する状態(DOSやBASICを組み込ん)で売れないの?」とか

(※注)MSXもDOS(MSXDOS.SYS、COMMAND.COM、同2)を同梱する事はできませんが
市販ソフト同様に自動起動する方法が別で用意されています。

他機種で基本的な事に毎回躓く度に
MSXのシステム面の出来が凄すぎやしないかと
いつも驚いていたものです。
MSXって本当は面倒な事をソフト面で整えてくれていたんだよなぁ。

以上の解説どおり当時使う分にはがんばっているMSXですが
やはり後から拡張されたあれやこれが小さな不具合を起こす事はあって、
それでもトリッキーな使い方をしなければ
全然大丈夫なのは充分凄いのだけれど。

そしてこれだけソフト偏重だと
何をやるにも慢性的に遅いパソコンだった事も
間違いない事実ではありました。

--------

と、そんなMSXには順当にアップデートして
その時代その時代をもう少しだけ走って欲しかったという思いもあって
それを妄想する事がよくあります。

例えばMSX2の時点で2+の時にやったスロット構成の規定化をしていれば
スロット0-0のRAMに普通にインタースロットコールが出来ない等の
諸問題も防げたのではとか
加えてRAM64Kでもメモリマッパ搭載必須にしてくれていれば
メモリ増設時に無駄がなくて良かったのにとか。

他にはMSX2+の時に
漢字BASIC止まり(漢字BASICはDOS2のサブセット)じゃなくて

RAM128KとFDD必須にしてDOS2標準装備だったら……とか。
それで定価どのくらい上がるかは問題ではあるのだけど。

巷で良く聞いた2+の時にCPUやVDPが少しでも速くなってたら、って意見もわかるけど
あのタイミングでDOS2必須になってたら夢があったイメージ。

FM音源もヤマハのOPMをSFG-01の時点で
BIOSと拡張BASIC内蔵して標準規格にして
他社も互換品出せるようにして
徐々にコストダウンして普及できなかったかとか

MSX-AUDIOはサンプリング音声機能はPSGでドライバ作って代用して
規格範囲に振れ幅つくるのナシにしたりして普及したかなぁとか
加えてOPL2まで待ててればどうなったかなぁとか。

今までの話と違う方向だと
MSX2の時点で(現実のMSX2と同じ構成としても)

互換性を捨ててハードソフト共にパフォーマンスチューニングしていたら
どうなっていたか?とかも妄想します。
しばらくはMSX1とMSX2で平行してゆっくりMSX2へ、的な。
今でいうETC2.0のパターンだけど
現状ETC全然2.0移行してないの見ると
MSX2は互換性確保で正解だったんだろうな。

あ、全然話飛んで、
詳しくないけどスロット切り替えって
ページ3はワークエリアやスタックがあるから
実質切り替えれないように思うんだけど
活用方法あったのだろうか。

--------

こんな塩梅でMSXってハードもシステム周りもこれだけ万全なんだから
次にMSXに必要だったのは各ソフトハウスのアプリケーション開発環境の充実で、
83年頃から自由に使って良いと公言して汎用ルーチンのソースを用意して
例えば効果音対応のBGMドライバとそれの演奏データを出力するエディタとか
Z80はもちろんTMS9918AやAY-3-8910の具体的な応用テクニック集に
ソフト制作時の具体的な注意事項を

各ソフトハウスやユーザーに提供していたら
ソフトの質を上げれなかったかなぁ、とか。

ただ当時のプログラマーはプライドが高く、
みんな秘伝の技を隠し持っているような時代だった印象なので
テクニックのシェアっていうのは無理っぽい気がしないでもない。

ゲームソフト系も83年末の時点でメガROMがあって
移植度の高いゼビウスがほぼローンチで出てればどうなってたかなぁ、とか。
MSX2のローンチでスペースマンボウがあったらとか妄想します。

--------

話変わって。
当時MSXは儲かるって各メーカーに本体販売を売り込んだ時の具体的内容って

キャプテン端末とワープロ需要が大きかったと思うんだけど
もしキャプテンがもっと既存のパソコンのスペックに寄り添った仕様で
通信速度の現実を理解して
廉価なホビーパソコンで充分に表現できる程度の仕様(THE LINKSくらい)に
妥協していたら何か変わったかなとかも妄想します。

日本語ワープロに関しては本気で
漢字ROM等の表示規格の整備、漢字変換方法の研究と洗練、
MSXに最適化した実用ソフト向けプログラミング等々のリファレンスを
1983年時点で他社に提供できていたら……。

ぶっちゃけMSX-Writeクラスのワープロソフトが1983年末の時点で完成していて
それをOEMで各社にリリースできるようにしていたら、とか妄想します。
なんならそんなMSX本体をベースに各社独自に拡張してワープロ専用機として作って
(そういう作り方が最適と各メーカーに思わせるだけの
リファレンス機を用意できるか……ではありますが。)
ライセンス料ビジネスとか出来ていればMSXの流れ変わってたのかなぁとか。

でもこれらの話って当時はハードソフト共にコピー~海賊版対策が重要で
それに対処しつつ……なのでこんな理想論突っ走る余裕はなかったんだろうけど。

--------

次のMSXを、ってみんなTwitterで語っているけど
私が妄想するのは、
A1GT(A1STベースでもいいかも……、
いや、MSX-MIDI内蔵ならi8251とi8253が使える)を基本として

互換性捨てて後に拡張された規格を最初から想定して
BIOS、BASIC、DOS周りの
徹底的なバグフィックス、チューニング、リファクタリングをした

最適化バージョンは見てみたい。
例えばST、GTベースで互換性切るならDOS1はいらないし、
なぜか死ぬほど遅かったSET SCROLLの最適化とか
BASICのCOLOR(15,7,7,7)とCALL PALETTEみたいな
同じ機能の命令の削除~統一もできるし
つまり予約語の関係で後付け命令のSET~とかCALL~とかも
もっと適切な名前の命令に置き換えれるしそんな感じの整理を。

まだまだ互換性捨てれば
起動直後からMML通りの正確な音長で鳴るPLAY文とか

日本語環境が最初から後付け感なく取り込まれてるとか
Z80に戻すだけじゃなくてちゃんとデバイスの速度を見て
最低限のウェイトでのI/Oアクセスとか
(例えばRAMディスクはウェイトいらない訳で)
R800の時にZ80をサブで同時使用はあこがれるけど

これはスロットの関係とかでメモリ配分的に良い落としどころがない印象。
R800のMMUとDMAを活用するの前提の再設計も見てみたい。

(使いやすいかはさておいてPC-8801みたいに
Z80にちょっとメモリを与えてFDDを任せるって展開も見たい気がする。
ディスクアクセス中に音楽が鳴る!!)

……と、そういう手を加えると互換性死ぬのは間違いないので
結果動くソフトがなくなるし
そもそもそれはMSXか?ともなるので意味がないとは思いつつも

turboRのハードとソフトのポテンシャルのギリギリって
どの辺だったんだろう、は見てみたい気もします。

--------

尻切れな文章ですがこれにて。
MSXは本当に作りやすいやさしいパソコンでした。
そこは忘れたくない。