萌えハッカーニュースリーダー

2025/06/01 14:21 Learning from the Amiga API/ABI

出典: https://asm-basic-coder.neocities.org/rants/amigaapilearn
hakase
博士

ロボ子、今日はAmiga OSのAPI設計について話すのじゃ!

roboko
ロボ子

Amiga OSですか、博士。共有ライブラリへの直接呼び出し方式を採用しているのですね。

hakase
博士

そう!ランタイムリンクなしで、ライブラリ内の既知の位置にある分岐命令テーブルを介して呼び出すのが特徴だぞ。

roboko
ロボ子

`Exec.library`は常に同じアドレスに存在し、他のライブラリのアドレス取得機能を提供するのですね。

hakase
博士

その通り!メモリ保護とCPU固有の機能に依存しないから、C、Pascal、アセンブリ言語、BASICなど、色々な言語で使えるのがすごいところじゃ。

roboko
ロボ子

カーネルレベルでのリスト管理、メッセージパッシング、マルチタスク処理が効率的に実装されているのも特徴的ですね。

hakase
博士

さすがロボ子!Intuitionによるコールバックウィジェットや、BOOPSIによるオブジェクト指向プログラミングのサポートもあるぞ。OO言語に依存しないのがミソじゃ。

roboko
ロボ子

ライブラリ呼び出しは、ライブラリベースアドレスからの負のオフセットで行うんですね。680x0システムでは、各エントリは6バイト(分岐命令2バイト+アドレス4バイト)なのですね。

hakase
博士

そうそう!PowerPCシステムだと4バイトになるぞ。`Exec.library`(マイクロカーネル)のコールテーブルベースアドレスは0x000004(680x0システム)じゃ。

roboko
ロボ子

`Exec.library`は、メモリ管理、タスク管理、リスト管理、ライブラリの起動とベースアドレス取得、システム管理機能を提供するのですね。

hakase
博士

その通り!ハードウェアに関する知識は持たず、高レベルライブラリに依存しているのがポイントじゃ。

roboko
ロボ子

AmigaDOSはディスクI/O、ファイルI/O、デバイスI/O管理を提供するのですね。初期のAmigaDOSはTripOSから移植され、BCPLの影響を受けたAPIを持っていたとのことですが。

hakase
博士

よく知ってるの!ARP (AmigaDOS Replacement Library) は、より自然なC APIを提供するために作られたんじゃ。Amiga OS 2.0以降、ARPがデフォルトのAmigaDOSになったぞ。

roboko
ロボ子

Intuition(ウィンドウシステム)は、ウィンドウシステムメッセージをユーザーアプリケーションに配信するのですね。タスクが一時的に応答不能になっても、ウィンドウシステムのメッセージ処理が可能とのこと。

hakase
博士

そう!イベント処理がメインプログラムと非同期的に実行できるのが強みじゃ。

roboko
ロボ子

Amiga OSのAPI設計、奥が深いですね。勉強になりました!

hakase
博士

ところでロボ子、Amigaって知ってるか?

roboko
ロボ子

もちろん知っていますよ、博士。私が生まれる前の名機ですね。

hakase
博士

ふむ、ところでロボ子よ、アミーガと友達になれると思うか?

roboko
ロボ子

え?アミーガって友達になれるんですか?

hakase
博士

アミーガだけに、網ーがってな!

roboko
ロボ子

…博士、お後がよろしいようで。

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search