[Subject Prev][Subject Next][Thread Prev][Thread Next][Subject Index][Thread Index]

[OSASK 2788] Re: Smaller color



  こんにちは、川合です。


I.Tak. さんは 2001/12/24 23:15:44 の「[OSASK 2786] Re: Smaller c
olor」で書きました:

> bedit はデバッガだと感じるとともに、マシン語の知識と kill コマンド
>が欲しくなる今日この頃です。

  マシン後の知識は容易に手に入ると思いますが、killコマンドを作る
のはちょっと面倒です。タスクを殺すだけならたいしたことはないんで
すが、リソースをちゃんと開放してやらなければいけませんから。だか
らすぐにはできません。もうしばらく先の話です。

>>  スタックを使うという方法を思い付きました。これはどうでしょう?
> よく出ますね(^^

  これが一番良さそうなので、これを一番最初に申し上げるべきでした
(笑)。後になって別のアイデアが出るのは、考えが浅い証拠です。

>>  またtek0展開に際しては、EBXとEDI以外のレジスタは保存されます。
>>仕様を確認しました。これを利用して、上記の手法をさらに精練する事
>>もできます。
> あれ、popad を見て全額保証だと思っていたんですが、……スタック操作
>ですか。何が入ってくるのかも気になります。

  今はどうあれ、これらの値は保存しないというのが仕様です。

  EDIは最初、展開先のアドレスを指していますが、ルーチンを抜けた
あとは最後に展開したバイトの次のアドレスを指しています。この仕様
は複数の展開ブロックや展開アルゴリズムを連続して利用しやすくする
ためのものです。

  EBXの値はどういう値にさせようと思っていたのかちょっと忘れまし
た。とりあえず、値は信用できないと思ってください。

>……というとこまで来ました。が、これを読んだからにはまた縮みます ^^)/

  はい、楽しみです。どこまで行くかな・・・。

> 質問です。
>特別コマンドは、初期化コマンドに偽装するような形で書きますよね。
>では、特別コマンドだけ使うときは、特別終了コマンドと通常終了
>コマンドのどちらが正しいのでしょうか?

  正しいのは、特別終了コマンドです。

> つまりこうです。
>pioneerを読んだところ、特別コマンドの終了は -1 の特別終了でも 0 の
>通常終了でも良さそうでした。が、0 を使ったらライブラリ初期化ができて
>いないためかエラーを起こしました(pioneer以外で止まったから。コマンド
>終了コマンドを使うためにも初期化が必要?)。では、初期化を済ませたら、
>どうなるのでしょうか? (意味はないかも)

  初期化が済んでいれば、通常終了は可能です、多分。

> 特別コマンド終了コマンドは言い逃れっぽい感じがします。偽装を含め
>美しくはありません。

  同感です。あれは設計の失敗であるということを素直に認めます。実
用上の問題はないものの、美しくないです。OSASKの理念の一つである
シンプルさの追求に適合していません。

  ぐいぐい00仕様としてはあの仕様のままで行きますが(互換性のため
です)、将来のぐいぐい01仕様ではこの辺はもっとすっきりした形に再
編されるでしょう。


  それでは。

--
    川合 秀実(KAWAI Hidemi)
川合堂社長 / OSASK計画総指揮 / カーネル開発班
E-mail:kawai !Atmark! imasy.org
Homepage http://www.imasy.org/~kawai/