* OSASK共通ドライバ仕様
 -(まだOSASK-MLやOSASK-Wikiには書けない段階)
 -()
 
 *** IA-32ネイティブ
 
 -FS:EBX
 --コマンドライン構造体
 ---0x00000000で終了。
 ---0x00000001:基本的なinfo。最低ワークエリアサイズ、状態セーブ対応など。マイナーリビジョン。(メジャーバージョンやエンディアン情報は、あらかじめ分かっているべきものだから、ここにはかいてない。)
 ---0x00000002:コンストラクタ(パラメータがあるかもしれない)。
 ---0x00000003:デストラクタ。パラメータはない。だからデストラクトに必要な情報は覚えておくように。
 ---終了コマンドで終わる場合、EBXは次のアドレスを指す。
 ---終了コマンド以外は、次の4バイトがオプションになるが、オプションの24-31bitは、コマンド長になる(dw単位で、cmdとoptを含まない)。
 
 ---0x00000004-0x00000007:リザーブ。
 ---0x00000008-:自由。
 
 -DS:ESI
 --ワーク。呼び出し元に設定してもらえる。コールゲートをくぐる場合はこの限りではない。
 
 * 以下、没っぽい
 
 
 -GS:EDX
 --(A)
 ---使わない。
 --(B)
 ---外部入出力ポインタ。
 ---こいつの導入に伴い、書き込み即値は撤廃。
 --(C)
 ---不定型および、マルチセグメント型の場合、GS:EDXからfarポインタが並ぶ(8バイトずつ)。
 ---これはkabaの場合、インタプリタによってセットさせる。
 
 
 *** 汎用バイトコード
 -オブジェクトセレクタを使って、セグメントをエミュレーション。オブジェクトセレクタ値なら、ただの定数なので機種依存問題はない。OSASKアプリにおけるスロット番号のような役目を果たす。
 -LDTへの設定に相当するものは、外部関数で適当に作る。リミットは上限と下限。コピーと、アクセス可能域の制限はできるが、ベースは変更不能。
 -タスク制御、ページ制御、オブジェクトセレクタ設定部分は、各OS依存として、汎用バイトコードでの記述は検討しない。

リロード   新規 編集 差分 添付   トップ 一覧 検索 最終更新 バックアップ   ヘルプ   最終更新のRSS