| 開発者 | コモドールインターナショナル MetaComCo plc. |
|---|---|
| 初回リリース | 1986年5月5日 |
| フォーマットの種類 | Amiga 実行ファイル |
ハンクは、モトローラ68000 CPUおよび同ファミリーの他のプロセッサに基づくAmiga オペレーティングシステムのツールとプログラムの実行可能 ファイル形式です。このファイル形式はもともと MetaComCo によってTRIPOSの一部として定義され、AmigaDOS の基礎となりました。[1] この種の実行可能ファイルは、Amiga でプログラムされたソフトウェアが内部構造でハンクと呼ばれる多数の部分に分割され、各部分にコードまたはデータのいずれかを含めることができることからその名前が付けられました。
ハンク構造
Amiga 実行可能ファイル内のハンクは、さまざまなタイプで存在する可能性があります。32ビットハンク、16 ビットハンク、さらには8 ビットハンクもあります。
ハンクの種類はAmigaOSで標準化され、コモドールが Amiga コンピューターを製造していた時代に、プログラマーに Amiga でのコーディング方法を説明するためにコモドールが編集したAmigaDOS マニュアルに詳しく記載されています。ハンクの構造は正式に成文化され、コモドールの委員会によってのみ変更可能で、委員会は Amiga オペレーティング システムの新しいリリースの開発者に変更を伝えました。
Amiga ハンクの構造は非常にシンプルです。ハンクの先頭には、その種類の「コード部分」が既知で有効な Amiga ハンク タイプであることを示すヘッダーがあり、その後にハンク自体の長さを示す ID が続き、下部には実際のコードまたはデータを含むハンクのセグメントがあります。
Amiga実行ファイルの機能
Amiga 実行可能ファイルは、Amiga のグラフィカルシェル、 Workbench、または Amiga のコマンド ライン インタープリター(CLI、後に AmigaShell と呼ばれる) から起動できます。
Amiga 実行可能ファイルには、特定のファイル名拡張子は必要ありません。たとえば、計算機アプレット「Calculator 」は、「 Calculator.com」、「Calculator.exe」、「Calculator.bin」、または「Calculator.jpeg 」に名前を変更できます。AmigaOSはファイル名拡張子を区別しないため、これらはすべてプログラムまたはツールの有効な名前です。
AmigaOS は、有効な実行可能ファイルを処理していることを認識するために別の方法を採用しました。ファイル ヘッダーには、16進値$000003f3を生成する特定のバイト シーケンスがあります。実行可能ファイルを示し、それを自動的に実行できるようにするこのシーケンスは、マジック クッキーと呼ばれます (ルイス キャロルの「不思議の国のアリス」に登場するマジック クッキーに由来)。[引用が必要]
Amiga 上の実行可能ファイルを識別するためのこの種のソリューションは、マジック クッキーがマジック ナンバーと呼ばれるUNIX / Unix 系オペレーティング システムで採用されている同様のソリューションから採用されました。
Amiga 実行ファイルの構造
Amiga 実行ファイルの内部構造は非常にシンプルです。ファイルの先頭にはマジック クッキーがあり、次に実行ファイル内のハンクの合計数が宣言され、その直後に「0」(ゼロ) から始まるハンクの累進数が続きます。
最初のハンクには常に 0 という番号が付けられるため、実行可能ファイルが (たとえば) 3 つのハンクに分割されている場合、最初のハンクには「0」、2 番目のハンクには「1」、3 番目のハンクには「2」というように番号が付けられます。
実際のハンクが始まる直前には、実行可能ファイル内に存在するハンクの長さに関する情報を含むテーブルがあり、ファイルの最後の部分には実際のハンクが配置されます。各ハンクは、 HUNK_CODE、HUNK_DATAなどのタイプ名で説明されています。
構造の表現:
ハンクの種類
Amiga の既知のハンク タイプは次のとおりです。
* 拡張ハンク形式
メタデータ
Amiga は、ハンク構造を簡単に適応させてこの機能をサポートできるため、メタデータをハンクに保存できましたが、実行可能ファイルのハンク形式はELFに取って代わられ、この機能を Amiga 標準の 1 つとして実装できる中央機関 (解雇された Commodore など) は存在しません。
Amiga は、一部のメタデータを「.info」(拡張子のサフィックスの名前からこう呼ばれます) と呼ばれる サイドカー ファイルに保存します。
「.info」ファイルは、プロジェクト (データファイル) がディスクに保存されるたびに作成されます。例: ユーザーが「MyProject」というファイルを保存すると、ディスク上に「MyProject」と「MyProject.info」という 2 つのファイルが作成されます。
「MyProject」ファイルにはプロジェクト ファイルの実際のデータが含まれていますが、「MyProject.info」ファイルにはアイコンと、ファイルの作成元ソフトウェアに関する情報が含まれています。そのため、マウスでプロジェクト アイコンをクリックして呼び出すと、親ソフトウェアが開きます (ユーザーはいつでもこの情報を変更できるため、他のプログラムが、物理的にプロジェクト ファイルを作成した元のソフトウェアではなく、自分が作成したプロジェクト ファイルであると認識できます)。
MacOS などの他のシステムとは異なり、 AmigaOSにはアプリケーション バインディングは存在しません。
「.info」ファイルには、プロジェクト ファイルの特定の特性とユーザー コメントも含まれています。
「.info」ファイルはワークベンチ画面には表示されません (ワークベンチは Amiga デスクトップのデフォルトの GUI です)。デスクトップ画面には、「info」ファイルから取り出されたプロジェクト ファイルのアイコンのみが表示されます。実際、アイコンはプロジェクト自体と「.info」に保存されたメタデータを接続する仮想メディアです。
ユーザーがマウスの左ボタンでアイコンをクリックすると、プロジェクト「.info」はそれを作成したプログラムを呼び出します。ユーザーがアイコンをクリックして適切なメニュー項目を選択すると、ダイアログ ボックスが表示され、ユーザーは「.info」ファイルに含まれるメタデータを操作できるようになります。
「.info」ファイルは、マウスでアイコンを移動することで、関連するプロジェクト ファイルと一緒にコピーまたは移動され、AmigaShell などの Amiga のコマンド ライン インターフェイス、またはDirectory Opusや DiskMaster などのサード パーティのファイル マネージャーやディレクトリ リスト作成ツールを使用して、スタンドアロン ファイルとして表示できます。
「.info」ファイルが実行可能プログラムを表す場合、「.info」ファイルには、実行可能ファイル用に予約できる RAM バッファのスタックに関する情報 (例: 4096、8192、16384 バイト以上の RAM) や、コマンド ライン インターフェイスを使用して呼び出すことができる引数も含まれています。たとえば、Amiga プログラムは、デスクトップ画面とは独立して独自のグラフィック ユーザー インターフェイス画面を開くことができます。情報ファイル ダイアログ ボックスで「Screen=800x600」や「Depth=8」などの引数を呼び出すと、ユーザーはこの情報を関連する「.info」ファイルに保存でき、プログラムは、800×600 サイズ、8 ビットの色深度 (256 色に相当) の独自の画面で生産性ソフトウェアを開きます。
ユーザーは「.info」ファイルを削除することもできますが、その場合、デスクトップ上にプロジェクト ファイルを表すアイコンを表示する利点が失われ、そこに含まれるすべてのメタデータも失われます。
アイコン
「.info」メタデータ ファイルに含まれるビットマップ アイコンの簡単な表示:
アイコンは「.info」ファイルに含まれる RAW ビットマップ データであり、標準の Amiga IFF / LBMファイルではありません。ユーザーは、初期バージョンからオペレーティング システムに含まれているAmigaOS標準プログラム「IconEdit」を使用してアイコンを処理できます。AmigaOS バージョン 2.0 以降、IconEdit は AmigaOS で標準グラフィック ファイルとして使用される通常の IFF/LBM ファイルをインポートして保存できます。[2]
Cloantoの Personal Paint などの一部の Amiga プログラムでは、通常の Amiga アイコンとして、または既存の Amiga ".info" ファイルとしてビットマップ データを表示、読み込み、保存できます。
従来の Amiga アイコンには、2 つの異なるビットマップ イメージを使用して、2 状態のアイコンを設定できます。最初のビットマップには、「静かな」アイコンのデータ (アイコンの「静かな状態」とも呼ばれます) が含まれます。2 番目のビットマップ イメージには、アイコンの「選択された」状態のデータが含まれます。ユーザーがアイコンをクリックしてアクティブにすると、静かなアイコンのビットマップ データが、選択されたアイコンのビットマップ データに突然置き換えられます。このような動作により、Amiga アイコンは動く漫画のような効果が得られます。この 2 番目のビットマップが「.info」ファイルに存在しない場合 (両方のビットマップを作成する必要はありません)、アイコンが選択されると、逆の色効果が使用されます。
サードパーティのアイコン「エンジン」が存在し、AmigaOS の外観を他のオペレーティング システムの最新の標準に合わせようとしています。これらのプログラムは、アイコン処理専用の OS ルーチンにパッチを適用し、カスタム ルーチンに置き換えます。そのような試みの 1 つであるNewIcons は、AmigaOS 3.x の事実上の標準になりました。これは非常に人気があったため、AmigaOS 3.5 以降で使用される新しいアイコン システムであるGlowIcons は、そのアイコン ファイル形式に基づいています。
すべての最新の Amiga 系オペレーティング システム ( AmigaOS 4、MorphOS、AROS ) は、RAW ビットマップ データ、IFF/LBM ファイル、またはPNGファイルのいずれかを、任意のアイコンの標準内部ビットマップ イメージとして関連付けることができます。
オーバーレイされた実行ファイル
HUNK_OVERLAYタイプは、プログラムを実行するために必要なRAMの量を減らすことを目的としています。オーバーレイ構造を持つ実行可能ファイルには、常にメモリ内にあるルートノードがあり、プログラムの残りの部分は、必要に応じて自動的にロードおよびアンロードされる小さなモジュールに分割されます。[3]
オーバーレイ フォーマットは、コードに小さなスタブを追加することで機能します。コードがサブモジュールに分岐すると、オーバーレイ マネージャーが呼び出され、必要なモジュールがロードされます。Commodore は、C コードでこれらのスタブを自動的に挿入できるように、また、標準オーバーレイ マネージャーが読み取れるオーバーレイ テーブルを生成できるように、標準オーバーレイ マネージャーを定義しました。
しかし、オーバーレイ形式は、特に意図された方法ではほとんど使用されませんでした。カスタムオーバーレイマネージャーでより一般的に使用されていました。オーバーレイ形式の一般的な使用法は、実行ファイルを圧縮する Titanics Cruncher [4]でした。圧縮された実行ファイル全体をメモリにロードしてから解凍する代わりに、Titanics Cruncher はオーバーレイを使用して、小さなデクランチャーのみをメモリにロードし、読み込んだデータを解凍しました。
Amigaで使用されるその他の実行ファイル形式
サードパーティのアドオンを使用すると、AmigaOS 3.9 までは、Motorola 68000 用に作成された Hunk 形式以外のさまざまな種類の実行可能ファイルを認識します。
エルフ
Phase5はPowerUPアクセラレータボード用にELF実行ファイルを実装したが、動的リンクが扱いにくいことがわかった。このフォーマットはその後AmigaOS 4.0、MorphOS、AROSで標準として採用された。ELFサポートはサードパーティ開発者によってWarpUpに追加され、Hyperion EntertainmentはいくつかのWarpUpゲームをELFフォーマットのみでリリースした。[5]
拡張ハンク形式
1997年、Haage & PartnerはPowerUPアクセラレータボード用のWarpUp PowerPCカーネルを開発しました。ELFバイナリ形式の代わりに、既存のハンク形式を拡張することを選択しました。ELFバイナリ形式の問題は、ユーザーがELF実行可能ファイルをロードするためにシステムにパッチを当てる必要があり、PPC/68kコードを混在させることができなかったことです。Haage & Partnerが開発した拡張ハンク形式(EHF)では、PowerPCアクセラレータがインストールされていない場合、既存のシステムを変更することなく、PPCコードと68kコードを単一の実行可能ファイルに混在させることができました。 [1] [2]。
AmigaOS 4 と MorphOS
AmigaOS 4.0とMorphOS はELF をネイティブに実行できますが、これらのシステムは PowerPC プロセッサ ベースのマシンで実行するように設計されているため、開発者はAmigaOS 3.9 で使用される WarpUP ソフトウェアとの互換性も追加しました。さらに、MorphOS は、PowerUP アクセラレータ カード用に Phase5 によって実装された PowerUp ソフトウェア互換性を実装しています。
どちらの新しいオペレーティング システムも、 AmigaOS 3.1に基づく古い Amiga API環境を実装しているため、Amiga Hunk 形式も実行でき、エミュレーションを通じて 68000 コードを実行できます。
- 注:
- ^ Amiga.History サイトの Amiga 上の PPC プロセッサの歴史に関するページも参照してください。
- ^ EHF 仕様は、 Wayback Machine で 2007-11-16 にアーカイブされています(英語版もあります)。Haage&Partners サイトにあります。
参照
- 実行ファイル形式の比較
- vasm、 vbccの無料アセンブラの一部
参考文献
- AmigaDOS マニュアル第 3 版( Bantam Books)、Commodore Business Machines、1991 年 7 月。ISBN 0-553-35403-5
- Amiga ROM カーネル リファレンス マニュアル、Includes および Autodocs (第 3版、ダーク グレーの表紙) Addison-Wesley、1991 年。ISBN 0-201-56773-3
- Commodore Business Machines: 1989 Amiga Developers Conference Notes、Commodore、1989 年。CATS 部品番号: NOTES89 および NOTES89D
- Commodore Business Machines: V3.1 Amiga Developer Update ディスク セット、Commodore、1994 年。CATS 部品番号: AMDEV3.1
(コモドールが Amiga 開発者に配布したこのフロッピー セットの情報は古くなっており、更新されて「開発者 CD」に置き換えられています)
- Commodore Business Machines: 1988 Amiga Developers Conference Notes Commodore、1988 年。CATS 部品番号: NOTES88 および NOTES88D
- スティーブン・レヴィ:Amiga プログラマーズ・ガイド、Compute! Publications、1986 年。ISBN 0-87455-028-9
- ユージン・P・モーティモア:Amigaプログラマーズ・ハンドブック、 Sybex、1985年。ISBN 0-89588-343-0
注記
- ^ METACOMCO plc. (1986). Tripos の紹介。
- ^ http://krashan.ppa.pl//articles/amigaicons/ 詳細は
- ^ http://aminet.net/package/docs/misc/Overlay バイナリオーバーレイファイルに関するドキュメント
- ^ Titanics Cruncher 1.2 (ツール/実行/データ クランチャー) (Titanics 製)
- ^ Steffen Haeuser (2002年12月18日). 「blast from the past」. 2011年8月1日閲覧。
外部リンク
- Amiga が PowerUP に移行 非公式 PowerUP サポート ホームページ
- Amiga hunk フォーマットのサードパーティの説明
