Gigamix Online

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

Multi Mente(通称MM) MSXの定番ファイルマネージャ(ビルド成功&作者捜索編)

【2022.05.23更新】漢字フォントが文字化けする(blueMSX)を追記しました。
【2021.11.11更新】過去に配布されていたMMのソースコードをもとに、現在の開発環境でのリビルドに成功しました。
【2021.04.18更新】ANKフォントの適用方法を追記しました。
【2021.3.9更新】OKEIさん提供の「Multi Menteパッチ」が更新されましたので追記しました。
【2021.2.20更新】最新版(ver.2.07)の配布を開始しました。また、MMのソースコードを発掘し、調査中です。

 言わずと知れた、MSXフリーク必携の多機能ファイラー(ファイルマネージャー)アプリ。

https://p.gigamix.jp/multimente/cg/mm207_k-1.png

ダウンロード

ソフト名MM version 2.07K
概要Multi Mente の略であり、DISK上にある様々なファイルを快適に操作出来るように作られたツールです。
対応OSMSX-DOS2/Nextor
作者MOGU
リソース 再配布版 MM207_K.LZH 2021.02.20, 41526 Bytes
再配布版 MM207_K.ZIP 2021.02.20, 40869 Bytes

 MMの最新版は「ver.2.07(テストバージョン)」です。正式配布版(安定版)は、以下の ver.2.03 です。

ソフト名MM version 2.03K
概要Multi Mente の略であり、DISK上にある様々なファイルを快適に操作出来るように作られたツールです。
対応OSMSX-DOS2/Nextor
作者MOGU
リソース 原版 MM203_K.PMA 1995.02.14, 25228 Bytes
再圧縮版 MM203_K.LZH 2021.02.04, 21913 Bytes
再圧縮版 MM203_K.ZIP 2021.02.04, 21751 Bytes

MMの配布条件

 当クラブで配布する各種アーカイブの転載、配布は自由に行なって構いませんが、アーカイブの内容は変更しないでください。

 不明な点があれば、下記WEBページ、またはメールアドレスまでお問い合わせください。

 過去に流通したMMのLZHアーカイブに作者MOGUさんに関する住所などの個人情報を記載したドキュメントファイルが含まれていましたが、2021年2月現在これらはアクセス不能となっておりますので、当サイトで配布するアーカイブではドキュメントを修正させていただきました。よろしくお願いします。

連絡先

MSX Club Gigamix
Website https://www.gigamix.jp/
Twitter @nf_ban (Takashi Kobayashi)
E-mail nf_ban@gigamix.jp (Takashi Kobayashi)

OKEIさんの「Multi Menteパッチ」の適用について

https://p.gigamix.jp/multimente/cg/mm207_k_okei-patch.png

 OKEIさんのMulti Menteパッチとは、MM.COMの指定されたアドレスのプログラムデータを直接書き換えることでプログラムの不具合を修正するデータ集です。プログラムデータを直接書き換えるためには「バイナリエディタ」と呼ばれる編集用アプリケーションが必要になります。

OKEIさんのWebサイト → http://www.ucatv.ne.jp/~kmizuo/

 バイナリエディタは多種多様なものであふれていますが、私(nf_ban)は以下のアプリケーションを利用しています。

 OKEIさんのMulti Menteパッチで指定されているアドレスはMSX実機向けの「SHEM」で編集する際に用いるアドレスです。そのため、OKEIさんが指示するパッチのアドレスは編集上の先頭アドレスが0100hになっていることに注意してください。

 先頭アドレスが0100hになっているのはMSX-DOSの仕様によるものです。Windows PC等のバイナリエディタでは一般的に0000hが先頭アドレスになるので、OKEIさんが指示するアドレスから 100h 引かないと正しいアドレスになりません

【熟練者のみ】ふってぃさんの「Multi Menteパッチ」の適用について

 FS-A1GTにはMSXViewのフォントROMが内蔵されていましたが、FS-A1STは内蔵されていないもののROMを後付けできるような基板構成になっていました。難度の高い改造作業かつMMにパッチを当てることで、Viewフォントの表示が可能なようです。

#MSX #A1ST メモ#ROM2 (FONT)は4Mbit#ROMX はシルク通り1Mor512Kbit どちらもデータは8bit幅。多分、これで合ってると思う。CSもS1990に繋がってるから、ソケット化してROM差せばOKかな。 pic.twitter.com/N8soy2smDe — ふってぃ@スーパーチキュウ人2 (@futtyt) 2021年9月14日
でけた(^^)/ 1つ目がA1STの内蔵フォントで、2つ目が要町 as MSX-ViewをA1ST実機で表示したもの。 pic.twitter.com/s2ZIWuIkds — ふってぃ@スーパーチキュウ人2 (@futtyt) 2021年10月1日
#MSX #A1ST #Viewfont #MultiMente 以下の手順にてA1STに内蔵したView fontをMultiMenteから利用できました。1. 4MbitのEEPROMにView fontを書込む。2. ROMを基板上のROM2(FONT)に装着する。3. MultiMente 2.07のバイナリを書換える。15a6 0e -> a0 15c0 04 -> 00 5ba3 02 -> 00 以上! — ふってぃ@スーパーチキュウ人2 (@futtyt) 2021年10月1日

確認済みの不具合および仕様

 以下に挙げるいくつかの不具合はOKEIさん提供の「Multi Menteパッチ」を当てることで回避できます(後述)。OKEIさんありがとうございます!!

と思っていたのだが、OKEIさんがMultiMenteパッチの内容を再検討してNextor対応を含む新しいMMパッチの情報を昨日付けで公開して下さったため、当方で記事化するよりこっちが早くて確実だった。助かる!MSX界のレジェンドパッチワーカーによるウン年ぶりの更新を見逃すな!!https://t.co/srWxeNZviW pic.twitter.com/4wMrJjFONr — Takashi Kobayashi (@nf_ban) 2021年3月7日

2000年以降の年表示が崩れる(2000年問題

 MMは画面右上に現在の日時が表示されていますが、2000年以降の年表示が崩れる不具合があります(ファイル管理には影響がありません)。パッチを当てることで回避できます。

FAT16のストレージへアクセスできない(MSX-DOS2)

https://p.gigamix.jp/multimente/cg/mm207_k_fat16.png

 MSX-DOS2環境にて対応できる最大ストレージ容量はFAT12の上限である32MBytesです。32MBを超えるFAT16のストレージは本来であれば認識できませんが、DOS2用FAT16.COM(OKEIさん提供のアプリ)とパッチの併用で回避できる、はずなのですが…。

FAT16のストレージへアクセスするとハングアップする(FAT16パッチ適用済のMSX-DOS2)

修正前の2.07Kでもハングアップしますね。 pic.twitter.com/4UvJ1ukmD5 — HRA! (@thara1129) 2021年11月19日
DOS2(FAT16)を2GBのSDカードでも試してみましたが、やはりここでハングアップ。SDカードの種類はあまり関係なさそうですね。 pic.twitter.com/vIsytxH6M3 — HRA! (@thara1129) 2021年11月19日

 FAT16パッチ適用済みのDOS2においてもFAT16のストレージ参照時にハングアップするようです。DOS2のFAT16パッチ適用+MMのFAT16パッチ適用でMMが動作している人を見たことがありません。1chipMSXでは実は昔からMMが使えなかったんでしょうか?

FAT16のストレージへアクセスできない(Nextor)

 NextorはFAT16のストレージに標準対応するMSX-DOS2の上位互換OSですが、Nextor上のMMはFAT16のストレージを認識できません。Nextor用のパッチを当てることで回避できます(DOS2用のパッチでは回避できません)。パッチはDOS2用とNextor用の両方を適用しておいたほうが後々便利かと思います。

ソート結果が書き込めない(Nextor)

Nextorフォーマット対策済のMultiMente、Yキーでソート結果を書き込もうとしても書き込めないっぽい…これは地味不便だ…。 https://t.co/u6DXZRZPMk — 大槻真嗣 (@s_ohtsuki) 2020年8月27日

 MMには、ファイルの並び順を自由に入れ替えて保存できるという「ソート結果の書き込み機能」があるのですが、NextorではFAT16FAT12のストレージを問わずソート結果が書き込めない(無視される)ようです。

https://p.gigamix.jp/multimente/cg/mm203_k_sort.png

ファイル・ディレクトリが存在しないドライブで、何らかのファイルが存在しているように見える(Nextor)

Nextorだと(?)、空のドライブにアクセスした際に、ファイルが1つある様に見えてしまうバグ。起動直後は問題ないので、内部的なファイル名バッファの内容か何かを表示してしまっている様な感じ。 — kansaizine (@kansaizine) 2021年11月11日

 空のドライブなのに、一手前に読み込んだディレクトリ情報が反映されてファイルが存在しているように見えるバグがあります。

ファイル数・ディレクトリ数が112個収容されたフロッピーディスクドライブで、ファイル数や容量が正しく表示できない

サブディレクトリやSDカード等で113個以上のファイルを表示した後ファイル・ディレクトリ・ボリュームが112個入ったFDのルートディレクトリを表示するとファイル数表示がおかしくなるようです pic.twitter.com/ZhArd01Pgr — 大槻真嗣 (@s_ohtsuki) 2021年11月14日
過去に112個入れてその後減らしたFDでも同じ症状が出るみたいです…ってよく見たら容量も増えてる(苦笑)。RAMDISK等ファイル数の少ないドライブに切り替えた後FDのルートディレクトリを表示すると元に戻るみたいですが。 pic.twitter.com/q1B8yeGPvA — 大槻真嗣 (@s_ohtsuki) 2021年11月14日
テストしました。①環境変更DATEは効きませんでした(マニュアルにDATEって載ってなかったような)。②Aドライブ(SDカード)に178ファイル、Bドライブ(フロッピー)に112ファイル格納したうえでMMを実行すると、確かにBドライブのファイル数が112ではなく128に増えてますね…これはMMの不具合ですね。 pic.twitter.com/JuI13BsHg6 — Takashi Kobayashi (@nf_ban) 2021年11月15日

 格納できるファイル数の上限が112である2DDフロッピーディスクと112を超える大容量ストレージドライブを併用すると、フロッピーディスク側のドライブが正常に表示できなくなります。フロッピーディスクを一度取り出して再読み込みすると正常に戻ります。Nextor・DOS2のどちらでも発生します。

フロッピーを一度フォーマットしたうえでMultiMenteでファイルを1個ずつコピーして調べた結果、表示不良の法則がなんとなく掴めました。これ…NextorはもとよりMSX-DOS2でも出る類の不具合かもしれないですね(このテストはNextor上で実行)。 pic.twitter.com/MJTIraxGLO — Takashi Kobayashi (@nf_ban) 2021年11月15日

 FDD側のファイル数が112未満なら問題は発生しません。111なら正常動作。

DOS/V系2HDフォーマットの1.44Mbだと224ぽいですが、RookieDriveNXの変則2HDだとどうでしょうか・・・ — 超兄貴 〜シン・MSX〜 (@SuperAniki_MSX) 2021年11月15日

 Rookie Drive NXはWindows PC向けのUSB FDDMSXのストレージドライブとして利用できるカートリッジです。2DDのほか2HDにも対応することが大きな特長ですが、2HDの場合は最大ファイル数が224になります。2HDではどのような動きになるのか…?

 Rookie Drive NXのWebサイトはこちら → https://rookiedrive.com/en/

認識できるファイル・ディレクトリ数が255の制限がある

MSX のファイラ MultiMente は 255以上のファイルやディレクトリは無視されるけど,sharksym氏の M File Manager はそれ以上も認識される+2画面で最高.それぞれ一長一短があるので,MM と M と SofaRun を使いわけるのがベストと思う. pic.twitter.com/8ZYvPjyhFJ
— tyr105店員 (@tyr105) 2021年3月8日

 1ディレクトリに255以上のファイル・ディレクトリが存在すると256番目以降を認識できません。

ANKフォントが文字化けする

メモリフル実装した奴、こうなるんだよなー。DRAMのチェックは全部通ったんだけど… - applesorce (@applesorce) 2021年2月19日
うむむ、16MB拡張とmega flashrom+Sccの組み合わせと違法に漢字flashのせてるのはだめっぽい?(A1Fは漢字romぬいただけ) これは既存のmmとmegaflashromと同じ挙動。 pic.twitter.com/n53ChCSJQw — applesorce (@applesorce) 2021年11月19日
似非SCC1024kにて だ、だめかぁ。 pic.twitter.com/QsJueHJ102 — applesorce (@applesorce) 2021年11月19日
似非SCC 512もだめちん。ではなぜ似非SDISKはいけるんだろ。 pic.twitter.com/rPEv8l5cSW — applesorce (@applesorce) 2021年11月19日

 ゆうくんさんのサイトによると、スロット0にプライマリのマッパメモリが存在するとANKフォントの表示が崩れるようです。applesorceさんのMSX2(FS-A1F)は改造によってスロット0に512KBytesのマッパーRAMを搭載したはず…。外部ANKフォントの設定によって文字化けの不具合を回避できます。→ http://miyako.asablo.jp/blog/2017/01/08/8311605

 すぐに使えるANKフォントデータはMSX Resource Centerにて配布しているようです。→ https://www.msx.org/

 ANKフォントデータの作り方は、以下のブログに書きました。なお、生成したフォントデータをMMで利用するにはMM用に加工する必要があります

gigamix.hatenablog.com

MSXの8pxフォントデータが自由に作れるようになったのでせっかくだからMultiMenteのANKフォントに反映させてみたら文字化け。正しい手順は①フォントデータのコード0から31の部分を削除、②BSAVEヘッダも削除して保存、③環境変数FONT0808をAUTOEXEC.BAT等で設定する、で利用可能になります。 pic.twitter.com/lTo9fEGGRI — Takashi Kobayashi (@nf_ban) 2021年4月18日

漢字フォントが文字化けする(blueMSX)

MSX用ファイラーMMですぐ使えるフォントってのダウンロードして環境変数も設定したのに、なぜか漢字が化ける。なんで!?と思ったけどやっと原因がわかった。MM用コンフィグの漢字表示の使用フォントを0 (内部フォント) に設定すればいいだけだった。そんな情報ネットのどこにもなかったぞ!#MSX pic.twitter.com/MqWXbNAfKF — ゼドル@楽鯖 (@Zedol_FF11) 2022年5月19日
なる…blueMSXはデフォルトでMSXViewのフォントデータが存在しないのにハードウェア上は接続状態になる仕様なのでMM.CFGで KANJIF=1 に設定するとMultiMenteで漢字だけ表示できないのですね。2004年に俺が書いたレビュー記事ですが…今役立ちました。🤣MSXPLAYer(写真)やopenMSXでは正常動作します。 pic.twitter.com/qRbuZCZ8OS — Takashi Kobayashi (@nf_ban) 2022年5月22日

 blueMSXのMSXturboRモードはデフォルトでMSXViewのフォントデータが存在しないのにハードウェア上はスロットに接続された状態で起動する仕様なので、MM.CFGで「KANJIF」に「1(Viewフォントを使用する) 」に設定するとMultiMenteで漢字だけ表示できない現象が発生します。

 blueMSXでは、MM.CFGの「KANJIF」に「0(ゼロ。内部フォント=標準漢字ROMを使用)」を設定することで回避できます。

 解説すると、これはMM側のバグではなく、blueMSX側の不備であるために発生します。通常であればViewフォントが存在しない環境では標準漢字ROMを用いる表示処理に自動で切り替わるのですが、blueMSXではViewフォントが存在する環境(ただしフォントデータは存在しない)ですので、標準漢字ROMを用いずに存在しないViewフォントデータを利用しようとして漢字表示に失敗してしまいます。

 しかもblueMSXの場合「内蔵Viewフォント」のスロットはスロット1・2より若いので、外付けのMSXView漢字ROMカートリッジを接続しても内蔵フォントが先に存在を判定されてしまいますので、この不具合はハードウェア的に回避できません。

 MSXPLAYerやopenMSX等他のエミュレータでは正常に動作します。

MGSDRV形式データの再生時にタイトルが正常に表示されない

失礼します.MultiMente上で,ごく一部の MGS データのタイトルが正常に表示されないのは既知の不具合でしょうか? MGSEL では正常表示されます.可能でしたら修正案に加えて頂きたくお願い致します. pic.twitter.com/dQLgbnI65b — tyr105店員 (@tyr105) 2021年11月19日
自分の持ってるデータが同じだとすると、タイトル文字にTABコード(09h)が入ってて、MMではそれ以降非表示になっているんじゃないでしょうか? pic.twitter.com/9SHzpG9X0I — Takashi Kobayashi (@nf_ban) 2021年11月19日

 MGSC(MSXplay)によるMMLコンパイル時、タイトル欄( #title {"<文字列>"})にTABコード(09h)を入力した状態でMGSDRV形式データ(拡張子 .MGS)を生成すると、MMではTABコード以降の文字列が表示できません。

MSXViewフォントによる文字表示で、JIS第2水準の文字に対応していない

ふと気付いたんだけど、MM(MultiMente)でMSX-View漢字ROMを使った場合、もしかして第2水準ってMSX-View側じゃなく標準16ドット漢字が使われてたりする?(汗) ソースあるんだから解析しろよと言われそうですが、現時点でまだ解析していないのですよ。 — ごりぽん (@goripon_tw) 2021年11月13日
MSXView付属カートリッジ、要町 as MSX-View、k12x8shnの3種類を実機(A1ST)で確認してみたら、すべて同じ字形でした。純正カートリッジは12×8pxフォントでは2水が無いから他と比較して同じ出力結果であれば全て標準漢字ROMから縮小されている…ということですかね。 pic.twitter.com/LUL9iVNv5x — Takashi Kobayashi (@nf_ban) 2021年11月13日

 MMが対応しているMSXViewの付属カートリッジ(およびFS-A1GT内蔵品)の12×8pxフォントはJIS第二水準の文字データが存在しませんでした。のちにJIS第二水準のフォントデータに対応する拡張仕様がA to Cさんにより提唱され、「要町 as MSX-View」「k12x8hsn」といったMSXView互換ROMイメージが開発されました。

 MMではJIS第1水準の文字のみ対応しており、第2水準の文字はMSX標準漢字ROMのフォントデータが使用されています(第2水準の標準漢字ROMも存在しない場合はいわゆる「豆腐」が表示されます)。不具合というよりはMMの開発当時は拡張仕様が存在しなかったのでやむなし、ということです。

環境変数 DATE に対応していない(隠し機能)

SET DATE=https://t.co/atRbmy4iYW.YYで時計を表示するとこんな感じですね…ファイル詳細の方は影響を受けてませんが(ぉぃ) pic.twitter.com/Q127FExoIe — 大槻真嗣 (@s_ohtsuki) 2021年11月14日

 MSX-DOS2/Nextorの環境変数 DATE に「DD.MM.YY」というような文字を代入すると過去のMMではその旨反映されたようです。この機能はマニュアルには記載されていない隠し機能なため、一旦保留とさせていただきます。

 ちなみに、環境変数 TIME に「12」を代入すると午前・午後の12時間表記に変更されます。

あとがき

配布条件の確認の経緯

 MMの配布条件は「同梱ファイルの内容を改変する事なく配布することによってのみ転載可(アーカイバの圧縮方式変更は可)」「転載先等を事後報告可」になっていますが、MMの最新版(ver.2.07)はテストバージョンであるので転載・配布は一切厳禁と指定されていました。

ファイラーMM(Multi Mente)の配布条件を改めて確認してみると、最新版のver.2.07はテストバージョンだから転載・配布禁止と書いてある。今使ってるMMはテストバージョンだったのか。正式版の2.03ではその文面が消えているから、つまりそういうことなんだろう。だから1chipMSX同梱のMMはv2.03なのか… pic.twitter.com/tJonVJfpxi — Takashi Kobayashi (@nf_ban) 2021年2月1日

 正式公開版(ver.2.03)は「テストバージョンである」「転載・配布は一切厳禁」の文言が記載されていないため転載・配布は可能なようですので、当初はver.2.03を配布していまました。残念ながら機能低下は致し方なし…

 ですがその後、2001年頃に私(nf_ban)が作者のMOGUさんからアーカイブの転載許諾を得ていたことが判明しました(ド忘れしていました)。

【朗報&悲報】2001年7月19日頃にMSXのファイラー「MM」ネット転載の件で作者のMOGUさんとメールで意見交換しているログファイルを発掘。20年前に転載許可をいただいていたらしい(ド忘れ…)。MOGUさんのメアドも見つかったがプロバイダがサービス終了。ドメインは生きているが、メアドはどうか…? — Takashi Kobayashi (@nf_ban) 2021年2月11日

MMのソースコードが発掘され、再構築(リビルド)に成功しました

 2010年頃にMOGUさん自身がMMのソースコードを限定的に配布していたことも判明しました。このソースコードは当方でも入手し、2021年現在の開発環境でリビルドすることに成功しました

うーん…。入院数時間にして、とりあえずMM(MultiMente)をソースからエラーなくビルドして、出来たCOMファイルから起動することに成功した(嬉)。英語版としてビルドされてるっぽいのでここから研究が必要だろうけど…。しかし「MM.EXE」の正体がよくわからん(汗)。無くても起動は出来るんだよね…。 pic.twitter.com/FKnDNZFOR8 — ごりぽん (@goripon_tw) 2021年11月8日
MM(MultiMente)、さきほどVer.2.07Kと完全一致のバイナリを作成できました。ソース側にほんのちょっと修正(バグ修正?)が加わっていて一致させるのに苦労しましたが…。これでソースとビルド環境の復元は完了。あとは既知のバグの修正ですかね。【緩募】MMで修正して欲しいバグ(笑)。 — ごりぽん (@goripon_tw) 2021年11月11日

 2021年2月に試行錯誤していた様子はこちら

MMのソースコードらしいアーカイブが見つかる。C言語ではなくフルアセンブラっぽい。M80・L80かな?ただ、ファイルにダブりが見つかって、どれが正しいものなのか…? — Takashi Kobayashi (@nf_ban) 2021年2月13日

このMAKEEXEというバッチファイルっぽいのが見当たらない…。 - kansaizine (@kansaizine) 2021年2月17日

 2021年現在の開発環境でビルドできた暁には、作者のMOGUさんへ事後報告させていただきたいです。しかし何処へ…もしこれを見ていたらご連絡をお待ちしております。→ https://twitter.com/nf_ban or nf_ban@gigamix.jp

派生版もあります

 MSXのストレージドライブにSDカードを採用する2000年頃より、MSX-DOS2(FAT12)で管理できる最大容量の32MBをはるかに凌ぐ容量のストレージが市場に出回りました。また、FAT16に対応するNextor DOSの開発およびSDカードスロット搭載の「多機能カートリッジ」が多数発売されたため、2021年現在ではFAT16に対応するよう改造されたMMが流通するようになりました。私が知っているものは、以下のものです。

 出処不明で動作が無保証ですが、神経質でない人なら便利かもしれません。

DOS2・FAT16パッチの備忘録

 私は、実はDOS2環境でFAT16環境を構築できた実績がありません。何を実行すると正解なのかがよく分かってないからです。そんな状況において、DOS2のFAT16ストレージをMMで認識させる手順はちょっと分かりません。

 以下、私が試した結果を記します。

  • FAT16パッチ(FAT16.COM)は、Nextor環境ではインストールできません(元々FAT16に対応しているのでパッチが不要)。
  • MultiMenteパッチはMM ver.2.03には適用できません。ver.2.07専用です。
  • Nextor用のMultiMenteパッチは、DOS2では効果がありません。
  • COMMAND2.COMのdirコマンドをFAT16に対応させる「PATCHCOM」というパッチも存在しますが、Nextor環境(COMMAND2.COM ver.2.44)ではインストールできません。
  • 1chipMSXのCD-ROMに付属されていたMSX-DOS2はFAT16パッチ適用済みのものであるようです。

と思ったのだが、夕方に自力でFAT16パッチを当てたDOS2のシステムファイルとCD-ROMに入ってたものがタイムスタンプこそ違うものの中身の比較で全く同じの様子。んーこの内容だったら既にMegaSCSIに入ってるなぁ。念のため移し替えるかな? — Takashi Kobayashi (@nf_ban) 2020年6月21日

 詳しい方がいらっしゃいましたら、ぜひ教えてください。