Kago

使用例

どの例も、MSX-DOS2が動くMSXでの操作です。すべてのコマンドの出力を、画面に表示されるとおりに示しています。 MSXが表示するので、出力は英語です。

ディレクトリのツリーをZIPアーカイブにまとめる

ディレクトリを指定すると、その下にあるものがすべて、どの深さまでも入ります。ディレクトリごとにまずその項目が、次にその中のファイルが追加されます。形式は拡張子.ZIPで決まり、.LZHや.PMAならそれぞれの形式になります。

A:\>kago game.zip game
KAGO LZH/PMA/ZIP Compressor v1.0.1
Copyright (C) 2026 Javier Lavandeira
https://kago.tools

Adding GAME\ OK
Adding GAME\GAME.COM OK
Adding GAME\GAME.DAT OK
Adding GAME\README.TXT OK
Adding GAME\MUSIC\ OK
Adding GAME\MUSIC\TITLE.MWM OK
Adding GAME\MUSIC\STAGE1.MWM OK
Adding GAME\MUSIC\STAGE2.MWM OK
Adding GAME\SAVE\ OK

A:\>

現代のコンピューターで作ったLZHアーカイブを一覧する

現代のコンピューターのlhaは、-lh7-や-lh6-(64 KBと32 KBの窓)で圧縮します。これまでのMSXの解凍ツールでは開けませんが、UNKAGOは窓をマッパー・メモリに置いて読みます。/Lは解凍せずに一覧します。圧縮後と元のサイズ、方式、日付、パスが表示されます。

A:\DOWNLOAD>unkago /l sdk.lzh
UNKAGO LZH/PMA/ZIP Decompressor v1.0.1
Copyright (C) 2026 Javier Lavandeira
https://kago.tools

    Packed   Original Method Date             Name
---------- ---------- ------ ---------------- ------------
         0          0 -lhd-  2026-09-14 21:03 sdk\
      5112      14837 -lh7-  2026-09-14 21:02 sdk\README.md
     19634      61402 -lh7-  2026-09-14 20:57 sdk\msxbios.inc
      8327      23119 -lh7-  2026-09-14 20:57 sdk\msxdos2.inc
         0          0 -lhd-  2026-09-14 21:03 sdk\examples\
       911       2240 -lh6-  2026-09-12 18:44 sdk\examples\hello.as
      4406       9984 -lh7-  2026-09-12 18:45 sdk\examples\sprites.as
---------- ---------- ------                  ------------
     38390     111582        7 files

A:\DOWNLOAD>

PMAアーカイブを書く

PMAはPMarcとPMARC2の形式です。KAGOは-pm2-で圧縮し、書いたアーカイブはPMEXTでも解凍できます。PMARC2と違い、KAGOはファイルの本当の日付と正確なサイズを記録します。

A:\EDITOR>kago tools.pma *.com *.doc
KAGO LZH/PMA/ZIP Compressor v1.0.1
Copyright (C) 2026 Javier Lavandeira
https://kago.tools

Adding EDIT.COM OK
Adding FIND.COM OK
Adding EDIT.DOC OK
Adding FIND.DOC OK

A:\EDITOR>unkago /l tools.pma
UNKAGO LZH/PMA/ZIP Decompressor v1.0.1
Copyright (C) 2026 Javier Lavandeira
https://kago.tools

    Packed   Original Method Date             Name
---------- ---------- ------ ---------------- ------------
      9418      15744 -pm2-  2026-08-30 22:15 EDIT.COM
      2190       3328 -pm2-  2026-08-30 22:16 FIND.COM
      6025      17903 -pm2-  2026-08-29 19:40 EDIT.DOC
      1342       3071 -pm2-  2026-08-29 19:52 FIND.DOC
---------- ---------- ------                  ------------
     18975      40046        4 files

A:\EDITOR>

ZIPアーカイブを別のディレクトリに解凍する

/D:で別の場所に解凍できます。解凍先がなければ作ります。MSX-DOSの8.3形式に収まらない長い名前は、WindowsがMS-DOS向けに短くするのと同じ方法で短くし、そのことを表示します。UNKAGOは書き込みを始める前に、ディスクとメモリに収まるかどうかを確かめます。

A:\>unkago /d:b:\backup rescue.zip
UNKAGO LZH/PMA/ZIP Decompressor v1.0.1
Copyright (C) 2026 Javier Lavandeira
https://kago.tools

Extracting Space Rescue\ as SPACER~1\ OK
Extracting Space Rescue\rescue.com as SPACER~1\RESCUE.COM OK
Extracting Space Rescue\read me.txt as SPACER~1\README~1.TXT OK
Extracting Space Rescue\gfx\ as SPACER~1\GFX\ OK
Extracting Space Rescue\gfx\title.sc5 as SPACER~1\GFX\TITLE.SC5 OK
Extracting Space Rescue\gfx\sprites.dat as SPACER~1\GFX\SPRITES.DAT OK

A:\>

自己解凍形式のPMAファイルを開く

MSXのプログラムの多くは、自分自身を解凍する.COMのプログラム、つまり自己解凍形式のPMAファイルで配布されました。UNKAGOは実行せずに中のアーカイブを読み、付いている解凍プログラムは除きます。これはPMEXT 2.22の配布ファイル、PMEXT222.COMです。

A:\>unkago /l pmext222.com
UNKAGO LZH/PMA/ZIP Decompressor v1.0.1
Copyright (C) 2026 Javier Lavandeira
https://kago.tools

    Packed   Original Method Date             Name
---------- ---------- ------ ---------------- ------------
       477        913 -pm2-  1991-07-23 18:25 !.
      4989      12186 -pm2-  1991-07-23 18:07 PMEXT2.DOC
      8140      12928 -pm2-  1991-07-23 17:30 PMEXT.COM
---------- ---------- ------                  ------------
     13606      26027        3 files

A:\>unkago /q pmext222.com
Extracting !. OK
Extracting PMEXT2.DOC OK
Extracting PMEXT.COM OK

A:\>

LZHアーカイブにファイルを追加する

/Aを付けると、KAGOは既存のアーカイブに追加します。3つの形式のどれでもかまいません。同じパスのファイルがすでにあれば古いメンバーを置き換え、ほかのメンバーは1バイトも変えずにコピーします。新しいアーカイブはまず古いものの隣に書くので、途中で問題が起きても古いアーカイブはそのまま残ります。

A:\WORK>kago /a docs.lzh *.txt
KAGO LZH/PMA/ZIP Compressor v1.0.1
Copyright (C) 2026 Javier Lavandeira
https://kago.tools

Replacing NOTES.TXT OK
Adding TODO.TXT OK
Replacing README.TXT OK

A:\WORK>unkago /l /q docs.lzh
    Packed   Original Method Date             Name
---------- ---------- ------ ---------------- ------------
      2210       5390 -lh5-  2026-09-02 23:11 MANUAL.DOC
      1873       4512 -lh5-  2026-10-06 21:48 NOTES.TXT
       402        815 -lh5-  2026-10-05 08:30 TODO.TXT
       690       1428 -lh5-  2026-10-06 22:02 README.TXT
---------- ---------- ------                  ------------
      5175      12145        4 files

A:\WORK>

一部のメンバーだけを解凍する

アーカイブ名のあとに名前を書くと、一覧や解凍の対象を選べます。*と?はパス全体に対するワイルドカードとして働き、ディレクトリ名を書くとその下のすべてが選ばれます。何にも一致しない名前は最後に報告されます。

A:\>unkago game.zip *.mwm game\save readme.doc
UNKAGO LZH/PMA/ZIP Decompressor v1.0.1
Copyright (C) 2026 Javier Lavandeira
https://kago.tools

Extracting GAME\MUSIC\TITLE.MWM OK
Extracting GAME\MUSIC\STAGE1.MWM OK
Extracting GAME\MUSIC\STAGE2.MWM OK
Extracting GAME\SAVE\ OK
Not in the archive: README.DOC

A:\>

すでにあるファイル

UNKAGOは、指示がなければファイルを置き換えません。そのファイルを飛ばし、そのことを表示します。/Oを付けると上書きします。

A:\GAMES>unkago /q game.zip
Extracting GAME\ OK
Skipping GAME\GAME.COM: it already exists
Skipping GAME\GAME.DAT: it already exists
Extracting GAME\README.TXT OK
Extracting GAME\MUSIC\ OK
Extracting GAME\MUSIC\TITLE.MWM OK
Extracting GAME\MUSIC\STAGE1.MWM OK
Extracting GAME\MUSIC\STAGE2.MWM OK
Extracting GAME\SAVE\ OK

A:\GAMES>unkago /o /q game.zip game\*.com
Extracting GAME\GAME.COM OK

A:\GAMES>

少ないメモリで圧縮する

KAGOは、実行したときに空いているマッパー・メモリを使います。最大の圧縮に必要な量(ZIPなら80 KB)に足りなければ、そのことを表示し、何かを書く前に確認します。少ないメモリで圧縮するとアーカイブは少し大きくなりますが、正しいアーカイブであることに変わりはありません。バッチ・ファイルでは、/Yで確認なしに進められます。

A:\>kago backup.zip work
KAGO LZH/PMA/ZIP Compressor v1.0.1
Copyright (C) 2026 Javier Lavandeira
https://kago.tools

Full packing needs 80 KB of mapper memory, but only 64 KB are free.
Pack with less? (Y/N) Y
Adding WORK\ OK
Adding WORK\MAIN.AS OK
Adding WORK\MAIN.INC OK
Adding WORK\BUILD.BAT OK

A:\>

ディスクの空きが足りないとき

UNKAGOは書き込みを始める前に、メンバーが使う領域をクラスタ単位で合計し、解凍先の空き容量と比べます。収まらなければ何も書きません。一部のメンバーだけを選ぶか、別のディスクを選べば解凍できます。

A:\>unkago /q /d:b: sdk.lzh
Extracting this archive would take 128 KB on disk, but only 92 KB are free on B:.

A:\>unkago /q /d:b: sdk.lzh *.as
Extracting sdk\examples\hello.as OK
Extracting sdk\examples\sprites.as OK

A:\>

スイッチで形式を選ぶ

名前が.ZIP、.LZH、.LHA、.PMAで終わらないアーカイブは、/F:で形式を指定します。UNKAGOにはスイッチはいりません。名前にかかわらず、形式を自分で判別します。

A:\>kago /f:lzh backup.dat *.as
KAGO LZH/PMA/ZIP Compressor v1.0.1
Copyright (C) 2026 Javier Lavandeira
https://kago.tools

Adding MAIN.AS OK
Adding SOUND.AS OK

A:\>unkago /l /q backup.dat
    Packed   Original Method Date             Name
---------- ---------- ------ ---------------- ------------
      3988      11240 -lh5-  2026-10-07 09:12 MAIN.AS
      1504       3891 -lh5-  2026-10-06 23:40 SOUND.AS
---------- ---------- ------                  ------------
      5492      15131        2 files

A:\>

MSXで使い方を見る

/?を付けるか、ツールの名前だけを入力すると、使い方が表示されます。

A:\>unkago /?
UNKAGO LZH/PMA/ZIP Decompressor v1.0.1
Copyright (C) 2026 Javier Lavandeira
https://kago.tools

Usage: UNKAGO [switches] archive [members...]

  /D:path  extract into path, made if missing:
           B:  B:\TEST  \TEMP  TEMP\FILES
  /L       list the archive, extract nothing
  /O       overwrite files that already exist
  /Q       quiet: no banner, no progress
  /V       the banner above, and nothing else
  /?       this text

Members may use * and ?. Naming a directory
extracts everything under it.

A:\>