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

[OSASK 1879] from OSASK BOARD



このメールは、OSASK伝言板に書き込まれた内容です。
この書き込みに返事を書く場合は、下のURLから書き込みを行なって下さい。


http://www.imasy.or.jp/~mone/osask/index.cgi?REFER=3b7318d4_18147

From: 川合秀実
Message-ID: 3b7318d4_18147
Date: 2001/08/10 08:12
Subject: Re: サイズについて

 (長くなってきたので分けました)

>あと、guide06を見て思ったことを率直に述べます。
>といっても素人なので本当に思っただけのことですが。。。

 ありがとうございます。参考にさせていただきます。

>1.(アセンブラで)使いにくそう
>2.(Windowsに比べて)キャッシュミスがごくわずかに増えそう

 どの辺が、使いにくそうで、キャッシュミスが増えそうなんでしょうか。具体
的に指摘していただけると、大変参考になりそうなのですが・・・。

 メモリ上にファンクションをずらーっと並べておいて、EBXにその先頭アドレ
スをロードして、far-callをすれば終わりなので、そんなに使いにくいとは思っ
ていなかったのですが・・・。

 ご面倒でなければ、pack004s内のhello.askやcolor.askなどをご覧ください。
使用例です。

>3.ユーザがシステムワークエリアを指定するのはちょっと・・・・

 このワークエリアには、破壊されても困らない(=他のタスクには影響しない)
ようなデーターしか入りません。アプリがわざわざ自滅したければしてもいいで
しょう。他のタスクにも影響するような重要なデーターはアプリからはアクセス
できないところにシステムが隠し持っています。

>4.LIB_ControlSoundTrackのfreq?

 出したい音の周波数を指定します。今のところ、周波数しか指定できません(
そのうち機能拡張することになると思います)。

>6.例外発生時のエラー対策ができない?

 いや、これは仕様上はできるんです。現在のところ、全てのファンクションが
無事に終了すると、EBXは最後の「コマンド終了コマンド」を指して、CF = 0,
ZF = 1の状態でリターンしてきます。エラーがあった場合、EBXはそのエラーを
起こしたファンクションを指し、CFかZFを正常終了時とは異なる状態で(CFにす
るかZFにするかはまだ決めていませんが)、リターンしてくるようにするつもり
です。そして、エラー原因を詳しく知るためのファンクションもあり、それを使
って、どんな理由でエラーになったのかを知ることができます。

 エラーの原因を取り除たあとでもう一度呼び出したい場合は、EBXの値をその
ままで呼び出せばいいです。また、そのファンクションをスキップして残りのフ
ァンクションを実行させたい時は、EBXに適当な値を加算してから呼び出します
。

 以上の話は仕様上の話でありまして、実装上は、エラーを検出した時点でハン
グアップしています(笑)。十分なエラー処理を書くだけの時間的余裕がまだない
んです。

>7.良くも悪くもまとも

 そういっていただけると、とりあえず救われた気持ちになります(笑)。

>最近アセンブラばっかり打ってるからなぁ>自分。

 いいことです(笑)。非常に親近感を覚えます(笑)。