1990年代・パソコン通信全盛の時代、多くのユーザーはアプリケーションやフリーソフトウェアといった「デジタルコンテンツ」を複数のファイルをデータ圧縮して1ファイルに梱包した形(通称:アーカイブ)で流通させていました。日本国内のMSXシーンでは主に「PMArc(拡張子 .PMA)」と「LHA(拡張子 .LZH)」の2種類のデータ圧縮形式が使われていました。
2023年現在、データ圧縮形式は国際的に「ZIP」が広く用いられています。MSXシーンにおいては実機用のZIP解凍アプリ(UNZIP)が長らく存在しませんでしたが、最近はようやくZIPアーカイブが利用できるようになってきました。
UNZIP(解凍)アプリ
ここで挙げるアプリはどれもファイルの解凍は可能ですが、利用可能なOSと機能に違いがあります。表中の◯は対応、✕は非対応、△は一部対応の機能です。
アプリ名 | OS | ファイルサイズ | タイムスタンプ | サブディレクトリ | ファイル属性 |
---|---|---|---|---|---|
UNZIP-CPM-Z80 | CP/M | ✕ | ✕ | ✕ | ✕ |
TuNzIp | DOS2 | △ | ✕ | ✕ | ✕ |
SofaUnZip | DOS2 | ◯ | ◯ | ✕ | ✕ |
CP/M用:UNZIP-CPM-Z80
CP/M用のUNZIPアプリです。CP/M用の外部コマンドは基本的にMSX-DOS(1)でも利用可能です。2023年現在も開発が進行中で、今後の機能アップやバグ修正にも期待が持てます。
↓ Webサイトはこちら ↓ github.com
CP/M UNZIPの注意点は…
- このアプリはMSX-DOS1でも動作しますが、解凍したファイルのタイムスタンプが反映されません(展開日時になってしまう)。
- このアプリはMSX-DOS1でも動作しますが、解凍したファイルのサイズが増える可能性があります(128バイト単位になってしまう)。
- ZIPアーカイブ内に含まれるサブディレクトリは無視されます。必ずカレントディレクトリに解凍されます。
- ZIPアーカイブ内に含まれるファイルの属性は無視されます。Windows等のPCではReadOnly等の属性が付いたファイルはそのまま解凍されるのですが、このアプリでは属性が反映されません。
CP/M用アプリはタイムスタンプとファイルサイズが可変してしまう!
CP/M UNZIPの最大の注意点は、CP/M用であるが故の不具合が生じることです。その大きな不具合を2つ挙げます。
1つ目は、解凍したファイルのタイムスタンプが反映されません。MSX-DOSに慣れているとにわかに信じがたいのですが、かつて国際的に普及したCP/Mにはタイムスタンプの概念がありません(厳密に言うとCP/M ver.3ではタイムスタンプが実装されたそうですが普及しなかったそうです)。
UNZIPに限らず、MSX-DOS上でCP/M用のアプリを起動して何らかのファイルを生成すると、タイムスタンプは「作成した日時」や「1980/01/01 00:00:00(FATファイルシステムの最古日時)」等になってしまいます。ZIPアーカイブには圧縮したファイルのタイムスタンプも情報として保存されているのですが…タイムスタンプの情報がフロッピーディスクへ記録されることはありません。
2つ目は、解凍したファイルは本来のデータ量を超えたファイルサイズで解凍される可能性があります。MSX-DOSに慣れているとにわかに信じがたいのですが、CP/Mはファイルサイズを128バイト単位でしか管理しないため、1バイトのファイルですら128バイトに増えた状態で解凍されてしまいます。
UNZIPに限らず、MSX-DOS上でCP/M用のアプリを起動して何らかのファイルを生成すると128バイト単位で生成されます。ZIPアーカイブには圧縮したファイルのサイズも情報として保存されているのですが…。
MSX-DOS2用:TuNzIp
展開速度が速い、MSX-DOS2(Nextor)用のUNZIPアプリ。作者は、MSX-DOS2後継OS「Nextor」の開発にも携わるTNI(The New Image)。
↓ ダウンロードはこちら ↓ www.tni.nl
TuNzIpの注意点は…
- MSX-DOS2専用アプリなのでMSX-DOS1は非対応です。
- このアプリはMSX-DOS2専用ではありますが、UNZIP同様に 解凍したファイルのタイムスタンプが反映されません(展開日時になってしまう)。
- ファイルサイズは適切に解凍されますが、一部のファイルが0バイトで解凍される可能性があります(原因調査中)。
- ZIPアーカイブ内に含まれるサブディレクトリは無視されます。必ずカレントディレクトリに解凍されます。
- ZIPアーカイブ内に含まれるファイルの属性は無視されます。Windows等のPCではReadOnly等の属性が付いたファイルはそのまま解凍されるのですが、このアプリでは属性が反映されません。
一部のファイルの解凍が0バイトになる現象が見つかっています。
MSX-DOS2用:SofaUnZip(SUZ)
他のUNZIPアプリでは欠けていた、解凍したファイルのタイムスタンプが反映される、そしてファイルサイズが適切に保存される、今のところ唯一のUNZIPアプリ。作者は、仮想ROM・FDアプリ「SofaRun」でおなじみのLouthraxさん。
↓ ダウンロードはこちら ↓ https://louthrax.net/mgr/sofaunzip.htmllouthrax.net
SofaUnZipの注意点は…
- MSX-DOS2専用アプリなのでMSX-DOS1は非対応です。
- ZIPアーカイブ内に含まれるサブディレクトリは無視されます。必ずカレントディレクトリに展開されます。
- ZIPアーカイブ内に含まれるファイルの属性は無視されます。Windows等のPCではReadOnly等の属性が付いたファイルはそのまま解凍されるのですが、このアプリでは属性が反映されません。
UNZIPFIX(タイムスタンプ修正ツール)
ZIPで解凍するとタイムスタンプが変わってしまう…安心してください。上記アプリで解凍したファイルのタイムスタンプを修正(復活)できる、痒いところに手が届くDOSアプリが登場です。
作者は、国産8bitレトロPC向けCP/M・MSX-DOS互換OS「LSX-Dodgers」やMSXのコンテンツをROM化する「Tablacus DISK ROM」シリーズでお馴染みのGakuさん。元々はLSX-Dodgers向けのアプリのようですがMSX-DOS1・DOS2(Nextor)にも対応しているので、MSXユーザーの皆様も安心してUNZIPが使えます!
UNZIP解凍テスト用ディスクイメージ
ダウンロードはこちら ☞ https://p.gigamix.jp/devmsx/cg/20230904_unzip_test.dsk
ZIP(圧縮)アプリは、存在しない
今のところ、MSXの実機でZIPアーカイブを作成できる環境は存在しないようです。WindowsなどPCを用いて作成したほうが速いかもしれません。
こぼれ話
過去に存在した、もう一つのZIPアーカイブ「ARJ形式」
今でも海外のWebサイトで拡張子 .ARJのZIPアーカイブが公開されていることがあります。これらはここで採り上げたUNZIPアプリでは解凍できませんのでご注意ください。
UNZIPFIX タイムスタンプこぼれ話
タイムスタンプを変更する処理が、OSごと3つに別れているのですね…手間かかってますね…
8bit OSにおけるCP/Mの普及度はどのくらいだったのか(感覚的に)
CP/M用アプリを調査する際に偶然見つけたアンケート。
MSXを使っているならCP/Mの存在は無視できない…MSXで育った人間だと「互換OSを使用」を選ばざるを得ない。
MSX-DOSのシステムファイル(MSXDOS.SYS および COMMAND.COM)はFDDの実物に対してバンドルされていて、DOS単体のパッケージ販売がありませんでした(MSX-DOS TOOLSは除く)が、MSX・FANの付録ディスクを介して配られているという事実も大きいかもしれず。
8bit OSにおけるMSX-DOSの普及度はどのくらいだったのか
パチンコの遊技機で採用されているから普及度は地味に大きい。