Gigamix Online

懐かしの8bitおもちゃPC「MSX」を骨までしゃぶり尽くそう。MSXの最新ニュース、ブログ、自作ソフトの配布など。

祝・開局『ワイドFM』を聴くための『SIMフリースマホ』新提案

今週のお題「今年買って良かったモノ」

【2022.04.02更新】私の所有する「Zenfone 8」もFMラジオ機能が搭載されていましたので更新します。

※当記事のオリジナルは、2015年12月2日 に公開されましたが、ちまちま更新しています。基本的には2015年12月時点の知識となっています。2022年現在は「ラジスマ」

愛用していたタブレット端末が故障し、代替目的で買ったSIMフリーAndroidスマホが想像以上に良かったので、タイムリーな「ワイドFM」の話題を混ぜて紹介。

あっ、MSXとは関係ない記事です。

ワイドFMとは

 簡単に言うと、電波が入りにくくなった昨今のAMラジオ放送を、FMでも聴けるようにする「FM補完放送」の仕組みです。関東地方では、TBSラジオ文化放送ニッポン放送の3局が2015年12月7日(月)より放送開始されました。

放送局 AM周波数 FM周波数
TBSラジオ 954 kHz 90.5 MHz
文化放送 1134 kHz 91.6 MHz
ニッポン放送 1242 kHz 93.0 MHz

http://widefm.jp/

 しかしこのワイドFM、新しい周波数(旧アナログテレビ 1~3chの帯域)に対応するラジオでなければ聴くことができません。「地デジ化」が実施された2011年7月以降に発売された受信機器でワイドFMを聴くなら、機器の買い替えが必要なケースがあります。

 ワイドFM対応機器の一覧表はニッポン放送のサイトが一番詳しそうだが…やはり昭和な雰囲気が佇むのは否めない。

www.1242.com

スマホなら「radiko」もあるけどね

 今はスマホ全盛の2022年。4G LTEや5G通信によるストリーミングが当たり前のものとなり、誰でも生中継配信できてしまう。昔ながらのラジオは勢いを落とす中、スマホアプリ「radiko(ラジコ)」によってラジオの需要をかろうじてスマホ世代へ繋いでいるところ。

radiko.jp

 とは言え、通信速度を下げて通信コストを抑える「格安SIM」と、スペックを落として端末コストを抑える「SIMフリースマホ」がじわじわと普及しつつあります。これまでのスマホ利用では金銭的負担が大きく、性能はそこそこだが低価格でスマホを利用したい人達に好まれている。格安航空会社(LCC)と既存の航空会社(FSC)の違い、みたいなもの。

ワイドFMにも対応!FM受信機能が搭載された「SIMフリースマホ

 日本では珍しいものの海外ではFMラジオ放送の受信機能が搭載されているAndroidスマホがいろいろあります。日本のような高速モバイル通信がまだ整備されていない諸外国では、FMラジオも重要な情報インフラの一つです。

 そんな折、日本でも普及し始めたSIMフリースマホで、FM放送が受信できる端末が2015年に発売されました。ASUS製のSIMフリースマートフォン「ZenFone」シリーズ。

名称 型番 発売日 ラジスマ 備考
Zenfone 8 ZA590KS 2021/08 非対応 -
ZenFone 6 ZS630KL 2019/08 対応 -
ZenFone 5Z ZS620KL 2018/06 非対応 -
ZenFone 5 A500KL 2018/05 非対応 -
ZenFone Zoom ZX551ML 2017/06 非対応 -
ZenFone 3 ZE520KL 2016/10 非対応 システム更新でワイドFM対応
ZenFone Go ZB551KL 2016/04 非対応 -
ZenFone Selfie ZD551KL 2015/09 非対応 -
Zenfone 2 Laser ZE500KL 2015/08 非対応 システム更新でワイドFM対応
Zenfone 2 ZE551ML 2015/04 非対応 -
  • 他のZenFone シリーズにもFMラジオ受信機能があるかもしれませんが未確認です

 私はZenFone 2 Laserを購入(後に5Z、8も購入しました)。いやー、これは2015年買って良かったものの一つとなった。

(補足)ASUS製品以外にも以下のようなスマホがFMラジオの受信に対応しているようです。

SIMフリーか否かはここでは言及しません。また、SIMの利用国によって対応する帯域が変化し、ワイドFM使用可能・不可能が変わるようです。ご自分の目で確かめてください。

「ラジスマ」の登場(2022年4月2日)

radisma.com

 「radiko+FM放送」のハイブリッド視聴アプリに対応するAndroid端末を「ラジスマ」対応機種と呼ぶようです。民法ラジオ各局のキャンペーンとしても展開されています。シャープのAQUOSシリーズが「ラジスマ」の筆頭機種となっています。

 ちなみに、FMラジオ受信機能が無い端末でも、「ラジスマ」非対応機種でも、radikoの視聴アプリとして利用できます。

play.google.com

使い方

イヤホンケーブルを用意

 ZenFone シリーズのスマホでFM放送を聴くには、まず先に何かしらイヤホンケーブルをスマホに繋げる必要がある。イヤホンケーブルがアンテナ代わり。その後、専用アプリを起動し、チューニングします。

f:id:nf_ban:20151202194906j:plain:w320

 この仕掛けにより、USB Type-C端子やBluetooth経由でイヤホンに接続するスマートフォンではFMラジオの電波を受信できない仕様です。

「FMラジオ」アプリを起動

 ZenFone シリーズにプリインストールされている「FMラジオ」アプリを起動します。

f:id:nf_ban:20151202190832j:plain:w240

 このとき、イヤホンを接続していないとアプリが警告を出して起動しませせん。

f:id:nf_ban:20151202190857j:plain:w240

 起動後の画面はこんな感じ。アイコンを見れば何をタップすれば何ができるかはおよそ想像できると思います。

f:id:nf_ban:20151202190847j:plain:w240

ワイドFMに対応する帯域のリージョンへ変更(ワイドFM非対応機種の場合)

「帯域の選択」で「日本」から「ヨーロッパ」へ変更すると、ワイドFMが受信可能となる。「日本」の設定ではワイドFMの周波数に届かない。

f:id:nf_ban:20151202190908j:plain:w240

リージョン 対応周波数 ワイドFM
デフォルト 76.0~90.0 MHz 非対応
ヨーロッパ 87.5~108.0 MHz 対応
アメリ 87.5~107.9 MHz 非対応!?
日本 76.0~90.0 MHz 非対応

一見「アメリカ」の周波数でもワイドFMを受信できそうな気がするが、アメリカの周波数は0.2MHz単位で奇数と決められており、日本で周波数の末尾が偶数な局は受信できない。「アメリカ」より、0.1MHz単位でチューニングできる「ヨーロッパ」設定のほうが都合がよろしいかと。

既存のFM局を受信する際は「日本」を選択する。やや面倒くさいが、そういう仕様である。
【2016.10.06 更新】ZenFone シリーズの場合、システムアップデートを行うと、日本の設定で「ワイドFM」対応になる機種があります。(後述)

チューニング

左右の▲アイコンをタップすれば、周波数を増減できる。更新マークっぽいアイコンをタップすると、受信可能な周波数をスキャン(一括検索)する。

f:id:nf_ban:20151202190904j:plain:w240

受信できる周波数は、画面下部に一覧表示される。ここをタップしてチャンネルを切り替えることもできる。

お気に入りの周波数を保存

専用アプリでは、お気に入りの周波数を5件まで登録することも可能。既存のFM局と合わせたら最早5件じゃ足りねーよ!

f:id:nf_ban:20151202190912j:plain:w240

MVNOでの運用に最適

ぶっちゃけ、radikoがあればワイドFMは不要である。なにしろ、FMラジオなんていう前世紀の代物など当然対応しないApple様のiPhoneは、日本での普及率がダントツの6割ですし、FMラジオ搭載機能が付いたスマホユーザー自体が珍しい。

だが待って欲しい。radikoアプリを常用すれば大量のパケット通信が発生し、パケット通信量や通信料金に影響を与えてしまう。MVNOを使うような節約家の方々なら、パケ消費量の高いアプリは利用を躊躇するのではありませんか?

わざわざモバイル通信を発生させてパケットを消費しなくても無料でFM放送を受信できるのだから、MVNOを使うような節約家の方々にピッタリではありませんか?

イヤホンは本体に付属するので無料。ラジオを聴くためのパケット通信も不要で、無料。radikoのインストールも不要。radikoで発生する「放送のタイムラグ」や「著作権対策による内容差し替えや無音状態」も、FM放送では発生しない。最高じゃないか!

インフラの二重化は有益。災害時にも役立つはず

 FM放送と4G LTEや5Gの両方とも使えることは海外はもとより日本国内でも有用です。

 FM放送の受信状況が悪ければradikoを使えば聴けるだろうし、モバイル回線が使用不能になったり通信制限が発生するようなケースではFM放送に切り替えて聴ける。インフラの二重化は特に災害時に役立ってくれるだろうと思います。

f:id:nf_ban:20151212142752j:plain

 インフラをどちらか一つに決めて使う必要も無い。せっかく両方使えるのだから、用途に応じて両方使えば良い!!

FMラジオアプリのアップデート希望(ZenFone 2 Laser、2015年12月2日)

 本当なら既存局と新局の両方をカバーする「日本の新しい周波数」に対応したアプリのアップデートが欲しいところだが…これは難しいですかなぁ。ZenFone 2 Laserの場合「FMラジオ」アプリはGoogle Playに登録されておらず、OSやファームウェアのアップデートに期待するしかない。

リージョンの切り替え作業無しで全て聴けるのが理想なんですけどね…ASUSさん、なんとかなりませんか!?

【2016.10.06 更新】システムアップデートで「ワイドFM」対応に!

10月のシステムアップデートにより、日本の設定だけで「ワイドFM」ラジオが聴けるようになりました!もし ZenFone シリーズの機種をお持ちの方は、これを期にアップデートしてみてはいかがでしょうか?

【2016.10.07 更新】ZenFone 3のFMラジオアプリも「ワイドFM」対応に!

ASUSフラグシップモデル「ZenFone 3」のFMラジオアプリも「ワイドFM」対応である旨が発表されました!

もう、買っちゃえ!誰も止めやしない!

「ワイドFM」と「SIMフリースマホ」、どちらにも興味があるなら「ZenFone シリーズ」のAndroidバイスは本当にオススメです。ワイドFMを聴きたいからSIMフリースマホを購入したって、手段と目的がめちゃくちゃだけど、別にいいじゃないですか!

MSX版「仮装大賞パネル」

【2022.02.22更新】 ver.2.01をリリースしました。

 巷によくある仮装大賞のパネルをMSXパソコンで再現しました。皆さんの、謎の努力と技術の結晶により作られた、謎のコンテンツ。

MSX版「仮装大賞パネル」ver.2 リリースしました。https://t.co/qL5mDZbZS4 スタートSE(らいきんぐ!さんの2月11日版)をお借りしました。MSXの音源を酷使するとこんな音が出るなんて…せひスペースキー連打でご堪能ください。#MSX #OPLL #YM2413 #SCC #欽ちゃんの仮装大賞 pic.twitter.com/DR6CJfpGPZ — Takashi Kobayashi (@nf_ban) 2022年2月13日

https://p.gigamix.jp/kasoutaisho/cg/kasoutaisho_title.png

ダウンロード

ソフト名MSX版「仮装大賞パネル」ver.2.01
ハードMSX2(VRAM 128KB)、MSX2+MSX turbo R
要:MSX-MUSIC及びその互換品、コナミのSCCカートリッジ及びその互換品
対応OSMSX-BASIC ver.2.0 以降
作者プログラミング・グラフィック:nf_ban(Gigamix)
BGMデータ作成:焼飯太郎、たかを、gary、らいきんぐ!
BGMデータ制作環境(MSXplay)提供:DSA
SEドライバ提供:鈴見咲君高
協力:ものすごく沢山
(敬称略)
リソース ディスクイメージ KASOU.DSK 2022.02.22, 737280 Bytes

バージョンアップ履歴

  • 2022.02.22:ver.2.01をリリース。らいきんぐ!さんのスタートSE最新版を実装しました。
  • 2022.02.14:ver.2をリリース。システム改良による処理速度の向上、らいきんぐ!さんのスタートSEを実装しました。
  • 2022.02.07:ver.1をリリース。

マニュアル

  • スペースキー または ジョイパッドのAボタン…1点ずつカウントします。15点以上で「合格」。15点未満の状態で4秒間カウントしないと「不合格」。上限は20点です。
  • ESCキー または ジョイパッドのBボタン…リセットします。

BGMデータが誕生するまで

 日本人なら誰でも一度は観ているかもしれない歴史のあるテレビ番組「欽ちゃん&香取慎吾の仮装大賞」の各種サウンドエフェクトを、よりによってMSXパソコンの3大メジャー音源(PSG・OPLL・SCC)を使ってどこまで実物に近づけるか?という識者の方々による謎のチャレンジプロジェクトtwitterMSXクラスタで発生していました。

 昔懐かしの作曲技術 MMLMusic Macro Language)で今回作曲されたBGMデータは当クラブでメンテナンスしているMSX用ミュージックドライバ「MGSDRV」で再生可能なデータ形式でした。MGSDRV形式MMLのオンライン制作環境であるWebサービスMSXplay」上で次々とシェアされてゆくBGMデータのクオリティが日に日に向上していくさまをリアルタイムで見ていたため、ワクワクしながら行く末を見守っていました。行き着く先には、何が待っているのか…

伝説の始まり

ついでに(?)欽ちゃんの仮装大賞OPもお願いします。 — 反動 (@FF14_hando) 2022年2月1日

 伝説はここからはじまる。

ぜひMSXで再現を!w — 反動 (@FF14_hando) 2022年2月1日
いや。。!こういうの、焼飯さんが絶対上手いって🤣💦 — 新田忠弘【Tadahiro Nitta】 (@TadahiroNitta) 2022年2月1日

 元マイクロキャビンの新田さんに話が振られる(新田さんは最近MSXFM音源を用いた音楽活動を再開していた)。

不合格ジングルの誕生

耳コピ途中経過報告・・ まず、鐘の音が「C5」でカーン。矩形波①が同じ「C5」から緩やかに下降。矩形波②が「C5⇔E♭6」を繰り返しながら同じ速度で下降。こんな感じだと思いますが、これをMSXでどうやって再現するかです・・ — K.H.(焼飯太郎) (@Yakimeshi_Taroh) 2022年2月1日

 焼飯太郎さんがMMLを書き始める。

当時のシンセなら簡単に出来そうな事が、MSXだとすっごい面倒です!ww(SOUND文ならもっと簡単に出来るとか?)とりあえず矩形波②の方だけ。ピッチ下降がはやすぎるかも・・https://t.co/FamU6VVyl3 — K.H.(焼飯太郎) (@Yakimeshi_Taroh) 2022年2月1日

 初版のデータがついに公開される。ここから怒涛の勢いで識者の皆さんがわいのわいの語り始める(追いきれませんので上のツイートでTLを見てください)。

さらに磨きがかかりましたね!鐘の音色作ってみたいw(けどいま会社😵 — たかを🎯 (@takawo_n) 2022年2月1日
過去に作った音色で合うか分かりませんが…、これってどうでしょう? ;TL FB {14, 0, ;AR DR SL RR KL MT AM VB EG KR DT 15, 2, 1, 2, 0, 1, 0, 0, 0, 0, 0, 15, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0 } — たかを🎯 (@takawo_n) 2022年2月2日

 たかをさんが、鐘の音を作り始める。

OPLLの音色を調整してみました!鐘のアタック感がむつかしー!😖https://t.co/BMJWUuofGE — たかを🎯 (@takawo_n) 2022年2月2日
合わせました・・めっちゃ良くないですか!?アタック感はエンベロープ設定で補完してみました。https://t.co/PEqM9Hw1Ll — K.H.(焼飯太郎) (@Yakimeshi_Taroh) 2022年2月2日

 ここで二人の合作になる。

おおお・・・すごいw — 反動 (@FF14_hando) 2022年2月2日
いいですねえw そして、あの鐘は仏具のリンの音だった説がw — たかを🎯 (@takawo_n) 2022年2月2日
原音と、エンベロープ付きで比べてみました。後者の方が、硬く大きなバチで叩いた感がでているかな?と。しかしデチューンが生む豊かな響きが心地良い・・ pic.twitter.com/e728EeAFYS — K.H.(焼飯太郎) (@Yakimeshi_Taroh) 2022年2月2日
フォロワーさん達との会話の流れから偶然生まれた耳コピ作品。FM音源音色(鐘の音)作成はたかをさん(@takawo_n)です。#MSX #MSXplay #OPLL #YM2413 #SCC #CHIPTUNE #欽ちゃんの仮装大賞 https://t.co/Ip2liBnrb1 — K.H.(焼飯太郎) (@Yakimeshi_Taroh) 2022年2月3日

 斯くして「不合格ジングル」完成!実機で鳴る音とは思えないクオリティ!

合格ジングルの誕生

 「不合格」があるのなら、「合格」も欲しくなる機運が高まる。

 焼飯さん、けっきょく作り始める(笑)

 合格ジングルに含まれるボワボワ…という特徴的な音。garyさんが波形を測定し始める。

 ここで、3人の合作となる。

 ティンパニが追加。これが隠し味のように効いてくる。

 「合格ジングル」完成!こちらも凄い完成度!

スタートSEの誕生

 たかをさん、「スタートSE」を作り始める(笑)

 今回は音が複雑に入り組んでいて難儀なようです。

 ほぼ完璧な音が完成したと思ったら。

 おもむろに新素材が投入される。その音源はとてもクリア。

 素材の音質向上で見えなかった要素が見えるようになり、今までの根底が覆る。

 試行錯誤を経ていよいよ完成に近づいたと誰もが思っていたタイミングで。

 らいきんぐ!さんが飛び道具を出してくる。使用トラックが a から e までということは、OPLL 5音で再生している!?

 原曲とほとんど見分けが付かない驚愕のMML

 らいきんぐ!さんによる、スタートSEの改良版、リリース(ver.2.01にて実装)。

MSXplayというツールで複数人での共作が出来るのはすごい件

 この一連の流れは、MSXplayで作ったデータを皆でシェアして改善点を出し合うというインターネット(SNS)と再生環境(スマホ・PC)があればこそ実現したことであり、MSXの実機そしてMGSDRVが全盛だった1990年代のパソコン通信ではこのスピード感は到底出せなかったわけです。MSXであれ技術が常に進化していることを肌で実感しました。

 MSXplayのWebサイトはこちら。→ https://msxplay.com/

「仮装大賞パネル」をMSXで作ってみる

 おもちゃメーカーのタカラが2004年頃に「仮装大賞パネル」という玩具というか一種のパロディグッズを発売していました。動画を一通り確認したところで、これは「DMシステム2」を使えば早く実装できるんじゃないか?という算段がありました。

 もう、作る気マンマンで作業する日曜日ですね。

 現状揃ってる素材でロジックを組んだ状態を動画で仮公開。想像以上にハッタリ度が高い!というか元のMGSデータのクオリティが凄すぎて、MSXから出る音の時点でもう面白くて笑える状態。

 焼飯さんからカウント音の素材をいただく。SEの素材が揃ったので、SE用のMMLを書きはじめる…

ver.1 公開

 せっかくだからMSXの実機で動作する様子をスマホで撮ってツイートしました。

 BGMデータ制作スタッフの皆さんからの喜びのコメント。俺(nf_ban)が勝手に組み込んだだけなんですけどね…

 音と映像のミックスでこんなに面白コンテンツになろうとは。

 いやね、ホント、こっちが聞きたい。

 ホントこれです。これ。

 ファッ!?!?

カウント音のバグ発見と修正

 9点の音、A+(B-) ではなく A ではないかという。

 なんと、A が正解でした。デバッグしなきゃ!!(ver.2で修正しました)

ver.2 公開

 らいきんぐ!さん作スタートSEデータのクオリティに一同騒然とする中、俺(nf_ban)がそのデータを組み込み、ver.2をリリース。

 他の実機でも動いた!

 WebMSXでも動きます(turbo R推奨)。

 スマホiPhoneAndroid)でも、いけます!

次のミッション!?

 俺、一旦釘を刺す。

 DMシステム2開発者・ごりぽんさんの飛び道具が飛んでくる(笑)。デバイスデバイスドライバが作られちゃったら対応せざるを得ない!

つづく

お店で展示されました

 お客様はどんな顔して画面を見たのか…

懐かしの「へぇボタン」ムーブメントを思い出した

 実は去る2000年初頭に「トリビアの泉」の「へぇボタン」をコンピュータで再現する謎のムーブメントがインターネットで発生していました。

www.dfnt.net

 実は俺(nf_ban)も当時MSX版「へぇボタン」を作ってこのお祭りに参加していたのですが、今回の勢いは、かなりそれに近かったです!

gigamix.hatenablog.com

 ついでにMSX用へぇボタンで仮装大賞パネルを操作するという暴挙。「へぇ」するたびに仮装大賞パネルで音が出てくる。リセットボタンで再起動。奇しくもどちらも20点満点。UIが同じ!

MSX版「仮装大賞パネル」制作の裏側

 なお、コンテンツ制作時に作成した各種素材データはディスクイメージの「MAKING」ディレクトリに保存してありますので、興味がある方はどうぞご確認ください。

ミドルウェア:DMシステム2

 DMシステム2は、MSX BASICに拡張命令を追加し表現を広げる、MSXパソコン用ミドルウェアです。今回は元々のBGMデータ(MSXplay=MGSDRV用楽曲データ)を再生するだけでなく、鈴見咲君高さんのSEドライバによる効果音発声、VDPマクロ機能によるパレットアニメーション・フェードイン処理、キー入力機能(DMM)、圧縮データの展開(BPE)、BSAVEヘッダの付かないバイナリデータを直接メモリへ転送するなど多方面に活躍し、開発期間を大幅に短縮できました。

ver.1 メモリマップ

アドレス サイズ 用途
0000 - 2FFF 12288 DMシステム2本体(その1)
3000 - 30FF 256 パレットアニメーション用データ(KASOU.PL5)
3100 - 317F 128 VDPマクロ用データ(KASOUMCR.BIN)
3300 - 37FF 1152 不合格ジングル(KASOU1.MGS)
3900 - 3EFF 1536 合格ジングル(KASOU2.MGS)
4000 - 7FFF 16384 DMシステム2本体(その2)
8000 - BFFF 16384 MSX BASIC用フリーエリア
C000 - FFFF 16384 MSXシステムが使用

 関連データは基本的にいわゆる裏RAMへ配置し、BASICフリーエリアの消費を抑えるようにしました。DMシステム2の場合、3000h~3FFFhまでの4KBに空きエリアがあります。

 ちなみにこれらのバイナリデータはすべてBSAVEヘッダが存在していませんので、通常のMSX BASICでこれらをメモリへロードすることはなかなか容易ではないはずです。DMシステム2には「CALL LOAD」というなんでもかんでもファイルをメモリへロードする拡張命令が用意されていますので、BSAVEヘッダの有無を問わず出来上がったファイルをそのまま利用できます。

 パレットアニメーション用パレットデータ(KASOU.PL5)は、VRAMのパレットテーブル(32 bytes)と同一形式のデータを8個つなげたもので、グラフサウルスと同じ仕様です。

今回はパレットデータが分離されているので、画像パーツデータ(KASOU.SR5)はSCREEN5の256×212pxのビットマップデータしか入っていません(グラフサウルスでKASOU.SR5+KASOU.PL5をロードすると真っ黒のみのパレットが反映されて画面がブラックアウトするので地獄を見ると思います)。

 VDPマクロというのは、 BASICの処理と並列して独自にVDP操作を行うDMシステム2の機能の一つです。今回は画面のフェードインと合格時にパネルのランプを回転点灯する処理(パレットアニメーション)に用いています。ランプの点灯はVDPマクロで実行し、BASIC上ではキー入力の待機をしています。

ver.2 メモリマップ

アドレス サイズ 用途
0000 - 2FFF 12288 DMシステム2本体(その1)
3000 - 3FFF 4096 スタートSE(START.MGS)
4000 - 7FFF 16384 DMシステム2本体(その2)
8000 - CAFF 19200 MSX BASIC用フリーエリア
CB00 - CEFF 1024 不合格ジングル(FAILURE.MGS)
CF00 - D3FF 1280 合格ジングル(PASS.MGS)
D400 - D7FF 128 VDPマクロデータ領域(KASOUMCR.BIN)
D480 - D5FF 384 パレットデータ領域(KASOUPLT.BIN)
D600 - D7FF 512 SE用データ領域(KASOUSE.BIN)
D800 - FFFF 10240 MSXシステムが使用
  • 皆さんおまちかね「スタートSE」を実装しました。らいきんぐ!さんの2月11日付けの内容を採用しました。
  • 裏RAMだけでデータを配置することが不可能となったため、「スタートSE」以外のデータはすべてメインRAMへ配置しました。
  • メモリ管理を再設計し、かつBASICフリーエリアを拡大しました。
  • 素材画像は使用する領域で2分割して、DMシステム2のデータ圧縮・展開機能「BPE(Byte Pair Encoding)」を採用しました。27KB程度のベタ画像データが3KB程度の圧縮画像になりました。
  • 合格時の演出であるランプの点灯速度(パレットアニメーション)を速めました。実は、実際はもっと速い。
  • スタート時に合格ラインのランプが点灯するアニメーションも追加したのですが、ドットが足りずによく見えません!つらい。
  • アニメーション一つ追加によりパレットデータも一つ追加となりグラフサウルスとの互換性が失われたので、ファイルの拡張子も「.PL5」から「.BIN(単なるバイナリーデータ扱い)」へ変更しました。

 DMシステム2はどなたでも無料でご利用いただけます。→ https://gigamix.jp/ds2/

BGMドライバ:MGSDRV

 1990年代のパソコン通信の頃に流行した、MSX用ミュージックドライバです。PSG・FM音源(OPLL)・SCCの3音源に対応し、多彩な音楽表現を可能としました。前述のDMシステム2にMGSDRV(サブセット版)が内蔵されていますので、MSXplayで作成したBGMデータを実機のBASIC環境上で再生することができます。

 今回これを作ろうと思ったのも、完成度の高いMGSDRV形式BGMデータがMSXplayでシェアされていたからに他なりません。

 なお、KASOU1・KASOU2それぞれ元のMML内にカウント音(と演奏までの待ち時間)も含まれていましたが当方で削除し、すぐに演奏する状態でリコンパイルしたMGSDRV形式データをコンテンツで用いています。オリジナルのデータは「MAKING」ディレクトリへ保存しました。

 MGSDRVはどなたでも無料でご利用いただけます。→ https://gigamix.jp/mgsdrv/

SEドライバ:DM2SZMKO(SE-SZMK)

 得点をカウントする度に鳴る効果音の発声処理にDMシステム2のSE機能を用いています。今回採用した鈴見咲君高さんのドライバは当クラブ製のものとは違いMMLで記述することができるので、手軽にSEを発声することができました。合計20個のSEをBASICプログラムのDATA文で定義しています。

 DM2SZMKO(SE-SZMK)は以下のURLで配布中です。→ https://hp.vector.co.jp/authors/VA011751/MSXHIKID.HTM

製品情報

  • 初出:2022年
  • 対応ハードウェア:MSX2(VRAM 128KB)、MSX2+MSX turbo R
  • メディア:2DDフロッピーディスク 1枚
  • コピーライト表記:DM-SYSTEM2 © Gigamix All rights reserved. MGSDRV © Ain./Gigamix

Windows 11のコマンドプロンプトでMSX-DOSの外部コマンドを実行する方法

 いにしえの8bitパソコン「MSX」のDOSアプリ(MSX-DOS 外部コマンド)を2022年現在の最新環境であるWindows 11のコマンドプロンプトで実行する方法が俺的に便利だったので忘備録としてメモします。

https://p.gigamix.jp/devmsx/cg/win11cmd-msxdos_title.jpg

 仕掛けをざっくり言うと、Windowsコマンドプロンプト環境下で「MS-DOS」の実行環境を構築し、そのMS-DOSの実行環境下で「MSX-DOS」の実行環境を構築します。なお当方の利用環境はWindows 11です。Windows 11より下のOS(64bit版)でも実行できるかもしれません。

用意するもの

 MS-DOSのシステムファイル(MSDOS.SYS、IO.SYS、COMMAND.COMのようなファイル)およびMSX-DOSのシステムファイル(MSXDOS.SYS、COMMAND.COM)は必要ありません。

64bit版 Windows(のコマンドプロンプト

 当方は「Windows 11」を利用しています。Windows 11は64bit版のみリリースされており、32bit版は存在しません。

MS-DOS Player for Win32-x64

 TAKEDA, toshiyaさんがリリースしている、intel製16bit CPUの「MS-DOS(いわゆるDOS汎用)」アプリを64bit版Windowsコマンドプロンプトで起動するためのプログラムです。

 ダウンロードはこちら。↓

takeda-toshiya.my.coocan.jp

 プログラム(実行ファイル)は多数の中から選べますが、当方は「IA32_x64版」を利用しています。

 「IA32_x86版」など各種x86版のプログラムを用いれば32bit版 Windowsの各種コマンドプロンプトでも実行できるかもしれませんが、当方は未確認です。

MSX-DOS Emulator

 Inatcher さんがリリースしている、Zilog製8bit CPU(いわゆるZ80)の「MSX-DOS」及び「CP/M」用アプリをMS-DOS環境で起動するためのプログラムです。

 ダウンロードはこちら。↓

www.vector.co.jp

 プログラム(実行ファイル)は8086版(MSX.EXE)と80386版(MSX386.EXE)の2種類が存在しますが、当方は「80386版(MSX386.EXE)」を利用しています。

MSX-DOSの外部コマンド

 いにしえのフロッピーディスクから頑張って掘り出してください(投げやり)。

コマンドの実行

 MS-DOS Player、MSX-DOS Emulator、実行したい外部コマンドや各種ファイルを同一ディレクトリに格納してから、コマンドプロンプトで以下のように実行します。

msdos msx386 <MSX-DOSの外部コマンド> <外部コマンドのオプション指定>

 こう記述することで、msdosMS-DOS Player)がmsx386(MSX-DOS Emulator)を実行し、msx386がMSX-DOSの外部コマンドを実行します。二重のエミュレート環境!しかも爆速!

 「MSX-DOSの外部コマンド」は、拡張子(.COM)まで正確に記述する必要があります。拡張子を省略するとMSX-DOS Emulatorは正しく実行できません。

使用例

MGSEL用ディレクトリファイルを作成する

 MGSDRVの音楽プレイヤーアプリ「MGSEL」に対応する楽曲データのインデックスファイルを、MGSF.COM という外部コマンドで生成する方法。

msdos msx386 MGSF.COM SAMPLE *.MGS

 こう記述すると、ディレクトリ内に存在する全てのMGSDRV形式データファイル(拡張子 .MGS)のタイトル情報を収集し、SAMPLE.DIR というインデックスファイルを生成します。

実行できないアプリ

グラフィック処理を伴うアプリ

 ざっくり言うと、コンソール画面(テキスト画面)外で動作するアプリは実行できません。実行時にSCREENモードが変わるアプリは期待薄です。テキストモードの変更に関してはある程度動くかもしれませんが…

スロット・I/O・BIOSを利用するアプリ

 MSX本体のハードウェア機能と直結する処理を伴うアプリは実行できません。前述のグラフィック処理もけっきょくはVDPを操作して処理されるものですし、音が鳴る・特定のスロットやポートを読み書きしている・MSXBIOSを利用している…等の処理も本体ハードウェアの機能を利用しています。

 今回の仕掛けはあくまでDOS(ファイル操作と最低限の入出力)のエミュレート環境であって、MSXの本体機能をエミュレートする環境ではありません。

MSX-DOS2用アプリは実行できないかも?

 MSX-DOS Emulatorが想定するMSX-DOSのバージョンは 1 です。MSX-DOS2用アプリは実行できないかもしれません。

 MGSCはMSX-DOS1でも動作するアプリですが、プログラム内にDOS2のファンクションコール(70h)が含まれているらしいために動作しないようです。

 PMarc2は実行されるもののデータ生成は行われないようです。

【オマケ】CP/M用アプリをWindows PCで動作させる方法

 MSX-DOS Emulatorでは実行できない・実行してもファイルが正常に生成できない場合は「iz-cpm」を用いると成功する場合があります。

github.com

 ぜひお試しください。

MegaSCSIにNextorカーネルを入れてSCSIデバイスをFAT16で動かしたい(模索編)

書きかけ中

 今のところ、完全に手詰まりです。情報求む!

https://p.gigamix.jp/devmsx/cg/megascsi-carnivore2_1280x960.png

将来的にやりたいこと

SCSIストレージをFAT16フォーマットで管理したい

 MSX-DOS2はFAT12(最大容量 32MBytes)なので、それより大きな容量のストレージはパーティーションを切らなければなりません。MegaSCSIのパーティーション分割ツール「SFORM-1」「SFORM-2」で分割したストレージをWindows PCでマウントすると全てのパーティーションがマウントされます。230MBytesのMOドライブですら7ドライブのマウントとなります。正直、うざいです。

 近年登場したDOS2の上位互換OS「Nextor」はFAT16に標準対応していますので、MegaSCSIのカーネルをDOS2からNextorへ変更したいのです。

SCSI経由でクラウドストレージへ繋ぎたい

BOOTHでRaSCSI基板購入して、MSXからMOドライブとして使うことできた。結構嬉しい。はじめ勘違いしてRasPiB+を使っててうまくく動かず。3Bに交換して動いた #RaSCSI #MSX pic.twitter.com/MaXln2yPIw — ハルマッキン (@Harumakkin) 2020年10月28日
MSXでEtherは無理にせよRaSCSI経由でクラウドストレージを直接マウントできれば最高ですね(できるのか調べてませんが)。MegaSCSIなので基本的にFAT12運用なんですよね…(FAT16化に失敗したままウン年経過して未だ実現せず)。Nextor動けばなぁ。 — Takashi Kobayashi (@nf_ban) 2020年10月29日
いちおう、 linuxのクラウドマウントで任意のドライブにマウントできるので あとは rascsi版のドライバがあればナチュラルにアクセスできるはず。(ソースはあるよ) — applesorce (@applesorce) 2020年10月29日

 MegaSCSIとRaSCSIを接続し、RaSCSIと各種クラウドストレージを接続することでMSXのドライブをクラウド化することは可能なようなんですけど、まだ実践したことがありませんが、夢がありますね!

 フロッピーディスクの生産中止によってSDカードやUSB FDD(Rookie Drive NX)への移行が求められ(ワンチップMSXがまさにそれ)、今度はSDカードも低容量の製品が不足になりつつあるので、直接ネットへ繋がるソリューションが今後求められてゆくのでしょうね。

試したこと

NextorのカーネルROMイメージをMGINSTで強引にインストールする(がエラーで弾かれる)

ダメ元でやってみましたが、残念ながら Illegal DOS と怒られました😅 pic.twitter.com/JjcbuuxyQr — HRA! (@thara1129) 2021年11月12日

 MegaSCSIのインストーラ「MGINST」がNextorカーネルを認識してくれません。ここが解決するのが一番の近道なのですが…

NextorのカーネルROMイメージをMGLOADで強引にインストールする(とSCSI機器が無効になる)

「カーネル」って要は先頭2バイトがABで始まるDISK ROMイメージなのね。MSX-DOS(1)は16KB、DOS2は64KB、Nextorは128KB。で、そのカーネル(ASCII 8KタイプのNextor)をMegaSCSIへMGLOADでインストールするとSCSIもSRAMも潰れるけどFDDだけでNextorが起動するのね。自作DOS2カートリッジみたいなものか。 pic.twitter.com/E9YKuKsFFm — Takashi Kobayashi (@nf_ban) May 20, 2021
MegaSCSIはカーネルをSRAMへインストールした余りがストレージに化ける。製品版は1MBytesで、DOS2は960KB、Nextorなら896KBでいける計算。で、MGINSTは①カーネルROMのチェックとインストール、②SRAMストレージ部の初期化、③システムファイルのコピー、④SCSI関係の何かを処理してるんだろうなぁ。 — Takashi Kobayashi (@nf_ban) May 20, 2021
ってことは、SCSI関係はよく分からないけど、仮にMegaSCSIのSRAMへNextorのカーネル(128KBytes)をインストールしてSRAMを初期化することができたら、残量896KBytesでNextorが起動できるようにはできそうだ。まぁMegaSCSIのカーネルとして見えないと意味ないかもしれないけど… — Takashi Kobayashi (@nf_ban) May 20, 2021

 「MGINST」の代わりに「MGLOAD」を利用すればNextorが起動するのですが、SCSI機器の利用が停止になります。これではただの似非RAMディスクカートリッジになってしまいます。

WindowsSCSIバイスFAT16でフォーマットして、Nextorで認識するかを試みる(が失敗)

 WindowsでフォーマットしたストレージをNextorで認識できるかと思ったら、認識できませんでした。MegaSCSIで接続されたストレージだから認識できないのかもしれない。今回試したフォーマットの手順が正しい手順なのかもよく分からないのです。

SCSIをUSBへ変換するケーブルは今となっては貴重なので大事にしたい。これを使って230MBのMOをWindows10でフォーマットすれば、FAT16になるはず…? pic.twitter.com/6Md7Ft31Je — Takashi Kobayashi (@nf_ban) June 20, 2020
FAT12のパーティーション7つが全部ドライブとしてマウントされてしまういつもの光景 pic.twitter.com/drFPQW99bb — Takashi Kobayashi (@nf_ban) June 20, 2020
「コンピュータの管理」画面で、この「ディスク1」の領域を全部繋げないと1ドライブにならないのだよね…たしか… pic.twitter.com/5K0oC2YsRr — Takashi Kobayashi (@nf_ban) June 20, 2020
なぜか左から2番目のパーティーションだけがボリュームを開放できないのでそれ以外全部を開放してからSD FormatterでフォーマットするとFAT16のパーティーション1個になります。 pic.twitter.com/YKlp9QHwF3 — Takashi Kobayashi (@nf_ban) June 20, 2020
Windows 10でフォーマットすると例のSystem Volume Informationフォルダが作られてしまうので、MSXへ戻す前に予め削除しておきます。色々方法はあるらしいのですが俺はコマンドプロンプトで rmdir
で、Carninore2のNextorへ持ってくると、IDEのAドライブ(CF, FAT16 512MB)とSCSIのCドライブ(SD, FAT12 32MB)は認識するも、SCSIのDドライブ(MO, FAT16 230MB)はMSX-DOSのディスクでない的なエラーが出て認識しないという(BドライブはMegaSCSIのSRAMディスクなので除外)。Nextorで認識できないかなぁ。 pic.twitter.com/86eE5Zka6P — Takashi Kobayashi (@nf_ban) June 20, 2020
んー。まずはMegaSCSIをFAT16利用可能な環境に変更したうえで、WindowsでなくMSXの実機でFAT16でフォーマットとファイル読み書きできる仕組みを作らないと、これ以上はNextorのテストにならないかもね… — Takashi Kobayashi (@nf_ban) June 20, 2020

MegaSCSIのMSX-DOS2にFAT16パッチを当ててみる(が失敗)

MSX-DOS2のCOMMAND2,COMにOKEIさんのFAT16パッチを当てる様子。パッチ当てたあとのファイルサイズが変わらないから、新旧はタイムスタンプでしか見分けする方法が今のところ分からない。 pic.twitter.com/f9oIBg00X4 — Takashi Kobayashi (@nf_ban) June 20, 2020
あれ!?FAT16パッチがフリーズしてるんじゃないのかな…プロンプト出ないのだけれど pic.twitter.com/HMtpmOfLcZ — Takashi Kobayashi (@nf_ban) June 20, 2020
DOS2の常駐物が先にあるとダメなのか、RAMディスクを作成してしまうとダメなのか分からないけど、RRAMDISKの自動起動を止めたらFAT16パッチが常駐したらしい。これでFAT12もFAT16もいけるかな? pic.twitter.com/dKhYB4lSU2 — Takashi Kobayashi (@nf_ban) June 20, 2020
と思ったのだが、やはりFAT16のMOはアクセスできない様子。SCSIのデバイス認識は問題なし。COMMAND2もMMもFAT16パッチ当ててDOS2にFAT16を常駐したうえでWindowsで初期化したFAT16のドライブへアクセスできないとなれば、もうMSXの実機でFAT16で初期化しないと使えないんじゃなかろうか?どうかな? pic.twitter.com/cXCJFEAf7K — Takashi Kobayashi (@nf_ban) June 20, 2020

 MSX-DOS2に「FAT16パッチ」というものを適用する方法があるのですが、その利用法がよく分かりません。

 1chipMSXに付属していたMSX-DOS2はFAT16パッチが適用済みで、FAT16(最大容量 2GBytes)のSDカードが読み書きできるようになっていましたが、そのMSXDOS2.SYS と COMMAND2.COM を利用するだけではMegaSCSIのストレージを認識できませんでした。

 FAT16バッチのダウンロードは、OKEIさんのWebサイトへ。→ http://www.ucatv.ne.jp/~kmizuo/fat16/down.html

NextorPatcherを利用する(とMegaSCSIはNextorカーネルに変わるがSCSI機器が無効になる)

にが工房さんのNextorPatcherでインストール用ROMイメージが簡単に作れるかも?と思ったけど対応するNextorがMegaFlashROM SCC+SD専用(=純正ROM非対応)だから俺の用途には無理そうなんだよね…まだ試してないけど… — Takashi Kobayashi (@nf_ban) May 20, 2021
ダメもとでNextorPatcherで作成した1MBytesのROMイメージをMGINSTでMegaSCSIへインストールしたら初期画面がMegaFlashROM SCC+SDのものに変わったけどまさかのNextor起動OK。空き容量は誤差でこんなもんかな。さすがにESETは起動しない(フリーズ)。MegaSCSIのカーネルとして認識されるには何が必要か… pic.twitter.com/xknlV8V8r7 — Takashi Kobayashi (@nf_ban) May 20, 2021
設定例 pic.twitter.com/yKLYevnGQJ — Takashi Kobayashi (@nf_ban) May 20, 2021

 にがHP工房さんのWebサイトで配布されている「NextorPatcher」を用いると特殊なカーネルROMのイメージを作成できます。それをMegaSCSIへインストールすると確かにNextorで起動できることは確認しましたが、ストレージとして利用できるのはSRAMディスク(似非RAMディスク)だけであり、SCSIバイスは全く認識できませんでした。単にカーネルだけを載せ替えるだけでは意味が無いようです。

 NextorPatcherのダウンロードは、にがHP工房さんのWebサイトへ。→ http://niga2.sytes.net/sp/tutorial/nexpat.html

MegaSCSIでFAT16のフォーマットを試みる(が失敗)

あれっ。MegaSCSIでFAT16でデバイスをフォーマットする方法って、どうやるんだったっけか。あとで調べよう… pic.twitter.com/tWRQSPMvgb — Takashi Kobayashi (@nf_ban) June 18, 2020
CF単体のフォーマットでよければ、パーティーション切ったのちにwindowsなりでfat16フォーマットとかどうでしょう・・? x68000のCF-SCSIのパーティーションはそれでフォーマットした気がする・・ — applesorce (@applesorce) June 18, 2020
Windowsで初期化するのは簡単なのですがSystem Volume Informationフォルダが勝手に作成される昨今(MSX実機では削除できない)なので、できるだけ実機で初期化してみたかったんです。それと今回初期化したかったのはSCSIのMO 230MBです。USB-USB変換コネクタを持ってるから試してみます。 — Takashi Kobayashi (@nf_ban) June 19, 2020

そもそもDOS2+FAT16パッチの使い方が分からない件

 MSX-DOS2が起動してから FAT16.COM を実行することで、FAT16パッチが適用される。/H オプションを付けると、現在の状況を出力する。

 Sunrise ATA-IDEカートリッジでMSX-DOS2+FAT16パッチを活用する事例は存在します。FAT16パッチ適用後に専用フォーマッタ「IDEFDISK.COM」を起動すると、FAT16でデバイスをフォーマットできるようです。

 MegaSCSIも、FAT16パッチ適用後に「SFORM-2.COM」を起動すると、同じようにFAT16でフォーマットできるのか!?

FS-PW1に松下仕様12ドット漢字ROMは載っていないんじゃないか説

 風の噂で聞きました。FS-PW1はワープロパソコンFS-4600F相当のワープロソフト「MSXワープロⅢ」が搭載されているので、FS-4600Fに搭載されている「松下仕様12ドット漢字ROM」がFS-PW1にも載っているのではないか?と。

 当方が分かる範囲で検証結果をまとめていますが、現在有力な説は、FS-PW1には松下仕様の12ドット漢字ROMが搭載されていない です。

 「松下仕様12ドット漢字ROM」については、こちらの記事で解説しています。

gigamix.hatenablog.com

https://www.msx.org/wiki/images/thumb/6/67/Fspw1c.jpg/740px-Fspw1c.jpg

FS-PW1に搭載されている機能

  • ワープロソフト「MSXワープロⅢ」
  • MSX-JE(日本語変換機能)
  • MSX標準 漢字ROM(16px角, JIS第一水準のみ)
  • 印刷用 24ドット漢字ROM(24px角)※プリンタ側に存在

FS-PW1を分解して解析

ヤフオクで落札したFS-PW1が届いたので腑分け。TC531000AP-6616は第一水準確定、μPD23C2000C-183やMB831000-340も漢字ROMっぽいけど詳細不明、サブ基板の方はMEIの型番ルールだし多分ワープロソフトのROMかな。1000が1Mbit、2000が2Mbit、と思われるので漢字ROM全体で4Mbit(512KB)かな? pic.twitter.com/4a0QdUqCUc — ごりぽん (@goripon_tw) 2021年10月18日

 「似非RAMDisk MAXIMUM」「漢字FlashROM」等のMSX用同人ハードで知られるにがHPさんから寄せられた見解も交えて解説します。

 FS-PW1に実装されているROMを全部引っこ抜いて内容を検証した内訳は次の通りです。

IC名 容量 型番 用途
IC102 128kB DA531P66616-0 MSX標準 漢字ROM 16×16px
IC109 256kB D23C2000C-183 熟語辞書
IC107 128kB 831000-20 340 8A 熟語辞書
IC115 128kB DA1024D0359R 8C2 A1 ワープロソフト
IC114 128kB DA1024D0358R 8D3 A4 ワープロ(16kB) + 名刺(48kB) + 連文節(32kB) + 単漢字(32kB)

usbsecretbase.michikusa.jp

ワープロソフト

 FS-PW1のワープロソフトは、サブ基板のメーカー不明のIC114「DA1024D0358R」とIC115「DA1024D0359R(1Mbit ROM)」に入っています。ROMが番号が通し番号になっていますので、組で2Mbit ROMとして使う前提と思われます。

 ワープロソフトはIC115がROMヘッダ付きで、ワープロソフトのメニュー等の文字列が確認できました。IC114がヘッダなしですのでIC115側が前半バンク、IC114が後半バンクと思われます。IC114の内容を見ると最後の32kBは単漢字変換ソフトであることがヘッダから読み取れました。よってこれらはフォントROMでないことは確定です。

熟語辞書

 FS-PW1の熟語辞書はIC109が前半256kBで「合」~「習志野市」の熟語が入り、IC107が後半128kBで「ならず者」~「腕白」まで入っていました。システムからは384kB連続したバンクとして見えるのだろうと思います。

 384kBytesの熟語ROMを入れるのに当時は512kBのROMが高価であったため、256kB+128kBで組み合わせるのがコストや実装面積で合理的という判断があったのかもしれません。

MSX標準 漢字ROM

 FS-PW1のMSX標準漢字ROMは「DA531P6616」と刻印されているもの(ROMの型番としては「TC531000AP-6616」=東芝製1MbitのマスクROM)だそうで、1Mbitの容量では第一水準しか入らないようです。

usbsecretbase.michikusa.jp

 28pパッケージのマスクROMには最大1Mbitしか入らず、2Mbit以上のものは必ず32p以上のパッケージになります。FS-PW1にはNECの40p 4Mbit ROMのuPD23C2000Cが使われていますが、この時代には2MbitのROMとして40pの8/16bit共用のものが利用しやすかった(32pパッケージはなかったのかも)のだろうと思います。

 漢字ROMは標準のものも松下12ドットのものも、いずれもハードウェア的にはアドレス線の下位5bitにカウンタを接続する必要があり、プログラム用のROMとは独立してアドレス線が制御されています。このカウンタは双方の漢字ROMシステムを同時に使わない前提で共用にできますから、同じゲートアレイで制御するのが合理的で、FS-4600Fでは通常の漢字ROMと12ドットROMが隣り合って実装されていることから考えて、そのように制御されている可能性があります。

 ちなみに「DA」の型番が付いたICは松下がICに付ける部品番号で、他のROMやゲートアレイにも付いているものがあるそうです(JIS第一水準漢字ROMはFS-A1F、FS-4600F、FS-PW1の3機種においていずれも「DA531P6616」が使われています)。松下のサービスマニュアルに品番として掲載されているものなので、DA品番が共通しているものはROM内容も共通であると推測されます。

印刷用のフォントROM

 印刷用フォントROMはカートリッジには含まれませんが、これはプリンタ側の画像で512kBのマスクROMを確認しています。

松下仕様12ドット漢字ROMがFS-PW1には搭載されていない根拠

 ROM内容を精査しても漢字ROMは1Mbitの第一水準16ドットフォントしか搭載されておらず、取説の容量表記は誤記であることが裏付けられました。それ以外は説明書の容量通りと考えて矛盾はありません。

マニュアルは誤植でした

PW1のマニュアルに記載されている表示用漢字ROMが256KBってのは第1水準にしては2倍の容量なんですよね…。もしかして多機種とアクセス方法が違うとか… pic.twitter.com/xI3X3Wq0Vu — レイドオン・バンゲリング・ベイ(バンゲリング帝国そろそろ解雇) (@bungeling01) 2021年10月8日

A1FMのマニュアルには 12ドットフォントの表記がありました。 pic.twitter.com/WA7EpMLxVP — レイドオン・バンゲリング・ベイ(バンゲリング帝国そろそろ解雇) (@bungeling01) 2021年10月6日

 FS-PW1のマニュアルには「表示用漢字ROM」の容量が256KBytesと書いてあります。これが第二水準まで対応する「MSX標準の16px漢字ROM」だけであればその容量通りとなりますが、FS-PW1の漢字ROMは東芝製1MbitのマスクROMだそうで、1Mbitの容量では第一水準の内容しか入らないためにこれは誤報、と判断しました。

なぜFS-PW1を解析することになったのか

 松下電器パナソニック)はMSXのハードウェアでワープロを実現するためのソリューションを多数展開していました。その折、低解像度であったMSXの画面に多くの文字を増やすために考案された(と推測される)「松下仕様12ドット漢字ROM」という12×12pxのスモールフォントが内的(松下以外のメーカーには非公開)に活用されていました。

gigamix.hatenablog.com

 ところがこのスモールフォントROMはMSXの拡張I/Oについて公表されていた仕様から外れた松下独自の設計となっており、接続する他のハードウェアによってはI/Oの衝突が発生して誤動作や故障を起こす 危険性が2021年の今頃になって発覚しました

 にがHPさんの同人ハードウェア「漢字FlashROM」が一部環境で不具合が発生する原因がこの松下仕様12ドット漢字ROMである疑いがあり、ROMの仕様を再確認する必要がありました。松下仕様12ドット漢字ROMを本体に内蔵しているMSX2の実機「FS-4600F」のワープロソフトの相当品がFS-PW1にも搭載されていたため、フォントROMの存在の可能性が指摘されていました。

本体を入手してROMを解析する以前の根拠

 本体を解析する前までの根拠として、以下の検証結果が挙げられました。

  • FS-PW1では、拡張I/Oポート40hに FEh を書いても 8 を書いても、他の拡張I/Oポートに動きが見られない。他機種では何らかの拡張I/Oポートに 0 が返ります。
  • 他機種では適正な手順で漢字ROMからデータを取り出すことが可能になるプログラムが、FS-PW1ではデータを取り出せない(無効を意味するFFh=255が返る)。
  • 他の機種で採用されている松下仕様のROMと思われる「354 BA」のICはFS-PW1には存在しませんし、機能が統合されたようなROMは存在しないようにも見えます。
  • FS-PW1の基板に実装されているICの部品を精査しても、松下仕様のフォントを搭載できる余地が考えられない。

拡張I/Oから松下仕様12ドット漢字ROMをイネーブルできない

A1 + PW1の実行結果ですが…… pic.twitter.com/1IhxhL5aTy — レイドオン・バンゲリング・ベイ(バンゲリング帝国そろそろ解雇) (@bungeling01) 2021年10月6日

いやー。これ、ROM有効化の手順が他と違うのかな。FS-PW1に松下仕様12ドット漢字ROM搭載は、誤報かもしれない… — Takashi Kobayashi (@nf_ban) 2021年10月8日

 他の3機種(FS-4600F、FS-A1FM、FS-CM1)ではイネーブルできる手順で、FS-PW1ではイネーブルできません。

1枚目の右下の「354 BA」と書かれたICが松下仕様12ドット漢字ROMのようです。FS-4600Fにも搭載されています。FS-A1FMは複数機能が1チップ化されてるので、これではない。FS-PW1は搭載されていないらしく。 — Takashi Kobayashi (@nf_ban) 2021年10月9日

 FS-PW1は他機種とは違うイネーブル手順が存在するのかもしれませんが、けっきょくその方法が分かりません。この機種だけ特別な手順なのでしょうか?そんなの効率が悪くなりませんか。可能性は低いと思います。

松下仕様12ドット漢字ROMのフォントビュアーが利用できない

松下仕様の漢字フォントビュアーのプログラムが完成しました。もしお時間ありましたら、FS-PW1やFS-A1FMで表示できるかお試しいただきたく。🙏https://t.co/fCxGtFfyDr — Takashi Kobayashi (@nf_ban) 2021年10月8日

面白いですねぇ (⌒,_ゝ⌒) これはA1FMの実行結果です pic.twitter.com/pqezG5cxxX — レイドオン・バンゲリング・ベイ(バンゲリング帝国そろそろ解雇) (@bungeling01) 2021年10月8日

A1F + PW1の実行結果 pic.twitter.com/5zs3eapPyG — レイドオン・バンゲリング・ベイ(バンゲリング帝国そろそろ解雇) (@bungeling01) 2021年10月8日

PW1、A1FMと同じコード表示ですが出ません( ̄▽ ̄;) やはりROM積んでいないとか……? pic.twitter.com/lJENZPtGIK — レイドオン・バンゲリング・ベイ(バンゲリング帝国そろそろ解雇) (@bungeling01) 2021年10月8日

 フォントがイネーブルできないんだから漢字フォントも表示できないのは当たり前。

関連情報へのリンク

usbsecretbase.michikusa.jp

Panasonic FS-PW1 - MSX Wiki